From 2ccd3e37ca45696383d724b15c9109277c6c233f Mon Sep 17 00:00:00 2001
From: lizhanwei <Dana_Lee1016@126.com>
Date: 星期四, 09 一月 2020 14:23:59 +0800
Subject: [PATCH] 1.增减rtf配置信息数据库表;2.rtkConfigFragment可以配置rtf平台ip/port/cityid/proviceid/phone;3,student表只有一个1001默认测试学员必须有
---
app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfig.java | 38 ++++++
app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigViewModel.java | 29 ++++
app/src/main/java/safeluck/drive/evaluation/app.java | 87 +++++++++++---
app/src/main/assets/students_file.json | 7 -
app/src/main/java/safeluck/drive/evaluation/MainActivity.java | 2
app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigDao.java | 24 ++++
app/src/main/java/safeluck/drive/evaluation/DB/WorkRoomDataBase.java | 8 +
app/src/main/java/safeluck/drive/evaluation/fragment/RTKConfigFragment.java | 37 +++++
app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKWorkRepository.java | 64 ++++++++++
app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigWork.java | 50 ++++++++
10 files changed, 316 insertions(+), 30 deletions(-)
diff --git a/app/src/main/assets/students_file.json b/app/src/main/assets/students_file.json
index 8423b11..d04d564 100644
--- a/app/src/main/assets/students_file.json
+++ b/app/src/main/assets/students_file.json
@@ -1,10 +1,5 @@
[
- {
- "stu_id":1000,
- "ID": "410923198910162546",
- "name": "寮犱笁",
- "sex":1
- },
+
{
"stu_id":1001,
"ID": "410923198910162545",
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/WorkRoomDataBase.java b/app/src/main/java/safeluck/drive/evaluation/DB/WorkRoomDataBase.java
index 07cc5de..d4d21a4 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/WorkRoomDataBase.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/WorkRoomDataBase.java
@@ -24,6 +24,9 @@
import safeluck.drive.evaluation.DB.failitems.FailProjDao;
import safeluck.drive.evaluation.DB.failitems.FailedProj;
import safeluck.drive.evaluation.DB.failitems.FailedProjWorker;
+import safeluck.drive.evaluation.DB.rtktb.RTKConfig;
+import safeluck.drive.evaluation.DB.rtktb.RTKConfigDao;
+import safeluck.drive.evaluation.DB.rtktb.RTKConfigWork;
/**
@@ -32,7 +35,7 @@
* 閭锛�632393724@qq.com
* All Rights Saved! Chongqing AnYun Tech co. LTD
*/
-@Database(entities = {Student.class, CriteriaForI.class, FailedProj.class, CriteriaForII.class},version = 2,exportSchema = false)
+@Database(entities = {Student.class, CriteriaForI.class, FailedProj.class, CriteriaForII.class, RTKConfig.class},version = 1,exportSchema = false)
public abstract class WorkRoomDataBase extends RoomDatabase {
private static final String TAG = "WorkRoomDataBase";
public abstract StudentDao getstudentDao();
@@ -72,11 +75,13 @@
OneTimeWorkRequest oneTimeWorkRequest1 = OneTimeWorkRequest.from(CriteriaForIWorker.class);
OneTimeWorkRequest oneTimeWorkRequest3 = OneTimeWorkRequest.from(CriteriaForIIWorker.class);
OneTimeWorkRequest oneTimeWorkRequest2 = OneTimeWorkRequest.from(FailedProjWorker.class);
+ OneTimeWorkRequest RTKConfigWorkRequest = OneTimeWorkRequest.from(RTKConfigWork.class);
Log.i(TAG, "onCreate: 鍒涘缓鏁版嵁搴撳悗寤虹珛鏁版嵁琛ㄦ彃鍏ユ暟鎹�");
WorkManager.getInstance(mContext).enqueue(oneTimeWorkRequest);
WorkManager.getInstance(mContext).enqueue(oneTimeWorkRequest1);
WorkManager.getInstance(mContext).enqueue(oneTimeWorkRequest2);
WorkManager.getInstance(mContext).enqueue(oneTimeWorkRequest3);
+ WorkManager.getInstance(mContext).enqueue(RTKConfigWorkRequest);
}
@Override
@@ -93,4 +98,5 @@
}
+ public abstract RTKConfigDao getRTKConfigDao();
}
diff --git a/app/src/main/java/safeluck/drive/evaluation/bean/RTKConfig.java b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfig.java
similarity index 71%
rename from app/src/main/java/safeluck/drive/evaluation/bean/RTKConfig.java
rename to app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfig.java
index 438bdcf..7af5cb3 100644
--- a/app/src/main/java/safeluck/drive/evaluation/bean/RTKConfig.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfig.java
@@ -1,4 +1,7 @@
-package safeluck.drive.evaluation.bean;
+package safeluck.drive.evaluation.DB.rtktb;
+
+import androidx.room.Entity;
+import androidx.room.PrimaryKey;
/**
* MyApplication2
@@ -6,6 +9,7 @@
* 閭锛�632393724@qq.com
* All Rights Saved! Chongqing AnYun Tech co. LTD
*/
+@Entity(tableName = "rtkconfig_table")
public class RTKConfig {
/**
@@ -23,6 +27,7 @@
*/
private String ip;
+
private int port;
private int province;
private int city;
@@ -32,7 +37,19 @@
private String phone;
private String password;
private int registered;
+ @PrimaryKey
+ private int _id;
+
+ public int get_id() {
+ return _id;
+ }
+
+ public void set_id(int _id) {
+ this._id = _id;
+ }
+
private int interval;
+
public String getIp() {
return ip;
@@ -121,4 +138,23 @@
public void setInterval(int interval) {
this.interval = interval;
}
+
+ @Override
+ public String toString() {
+ return "RTKConfig{" +
+ "ip='" + ip + '\'' +
+ ", port=" + port +
+ ", province=" + province +
+ ", city=" + city +
+ ", model='" + model + '\'' +
+ ", sn='" + sn + '\'' +
+ ", imei='" + imei + '\'' +
+ ", phone='" + phone + '\'' +
+ ", password='" + password + '\'' +
+ ", registered=" + registered +
+ ", interval=" + interval +
+ '}';
+ }
+
+
}
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigDao.java b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigDao.java
new file mode 100644
index 0000000..85d9de4
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigDao.java
@@ -0,0 +1,24 @@
+package safeluck.drive.evaluation.DB.rtktb;
+
+import androidx.lifecycle.LiveData;
+import androidx.room.Dao;
+import androidx.room.Insert;
+import androidx.room.OnConflictStrategy;
+import androidx.room.Query;
+import androidx.room.Update;
+
+@Dao
+public interface RTKConfigDao {
+ @Insert(onConflict = OnConflictStrategy.REPLACE)
+ void insert(RTKConfig rtkConfig);
+
+
+ @Query("SELECT * from rtkconfig_table")
+ LiveData<RTKConfig> getRTKConfig();
+
+ @Update
+ void update(RTKConfig rtkConfig);
+
+ @Query("SELECT * from rtkconfig_table")
+ RTKConfig getRTKConfigNoLive();
+}
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigViewModel.java b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigViewModel.java
new file mode 100644
index 0000000..fa63110
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigViewModel.java
@@ -0,0 +1,29 @@
+package safeluck.drive.evaluation.DB.rtktb;
+
+import android.app.Application;
+
+import androidx.annotation.NonNull;
+import androidx.lifecycle.AndroidViewModel;
+import androidx.lifecycle.LiveData;
+
+
+public class RTKConfigViewModel extends AndroidViewModel {
+ RTKWorkRepository rtkWorkRepository;
+ public RTKConfigViewModel(@NonNull Application application) {
+ super(application);
+ rtkWorkRepository = new RTKWorkRepository(application);
+ }
+
+ public void insertRTKConfig(final RTKConfig rtkConfig){
+ rtkWorkRepository.insertRTKConfig(rtkConfig);
+ }
+
+ public LiveData<RTKConfig> getRTKConfig(){
+ return rtkWorkRepository.getRTKConfig();
+ }
+
+
+ public void update(final RTKConfig rtkConfig){
+ rtkWorkRepository.update(rtkConfig);
+ }
+}
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigWork.java b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigWork.java
new file mode 100644
index 0000000..9928694
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigWork.java
@@ -0,0 +1,50 @@
+package safeluck.drive.evaluation.DB.rtktb;
+
+import android.content.Context;
+
+import androidx.annotation.NonNull;
+import androidx.work.Worker;
+import androidx.work.WorkerParameters;
+
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
+import com.google.gson.stream.JsonReader;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.lang.reflect.Type;
+import java.util.List;
+
+import safeluck.drive.evaluation.Constant;
+import safeluck.drive.evaluation.DB.Student;
+import safeluck.drive.evaluation.DB.WorkRoomDataBase;
+import safeluck.drive.evaluation.util.FileUtil;
+
+public class RTKConfigWork extends Worker {
+ private Context context;
+ public RTKConfigWork(@NonNull Context context, @NonNull WorkerParameters workerParams) {
+ super(context, workerParams);
+ this.context = context;
+ }
+
+ @NonNull
+ @Override
+ public Result doWork() {
+ try {
+ InputStream inputStream = getApplicationContext().getAssets().open(Constant.RTK_CONFIG_JSON);
+ InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
+ JsonReader jsonReader = new JsonReader(inputStreamReader);
+
+ Gson gson = new Gson();
+ Type type = new TypeToken<RTKConfig>(){}.getType();
+
+ RTKConfig mstus=gson.fromJson(jsonReader, type);
+ WorkRoomDataBase.getWorkRoomDataBase(getApplicationContext()).getRTKConfigDao().insert(mstus);
+ } catch (IOException e) {
+ e.printStackTrace();
+ return Result.failure();
+ }
+ return Result.success();
+ }
+}
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKWorkRepository.java b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKWorkRepository.java
new file mode 100644
index 0000000..4f67f92
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKWorkRepository.java
@@ -0,0 +1,64 @@
+package safeluck.drive.evaluation.DB.rtktb;
+
+import android.app.Application;
+
+import androidx.lifecycle.LiveData;
+
+import com.anyun.exam.lib.MyLog;
+
+import safeluck.drive.evaluation.DB.WorkRoomDataBase;
+
+public class RTKWorkRepository {
+ private static final String TAG = "RTKWorkRepository";
+ private RTKConfigDao rtkConfigDao;
+ private LiveData<RTKConfig> rtkConfig;
+ private RTKConfig rtkConfig1;
+
+ public RTKWorkRepository(Application application) {
+ rtkConfigDao = WorkRoomDataBase.getWorkRoomDataBase(application).getRTKConfigDao();
+ rtkConfig = rtkConfigDao.getRTKConfig();
+ WorkRoomDataBase.dataBaseWriteExecutor.execute(new Runnable() {
+ @Override
+ public void run() {
+ MyLog.d(TAG,"鑾峰彇RTK閰嶇疆淇℃伅琛�");
+ rtkConfig1 = rtkConfigDao.getRTKConfigNoLive();
+ }
+ });
+
+ }
+
+ public void insertRTKConfig(final RTKConfig rtkConfig){
+ WorkRoomDataBase.dataBaseWriteExecutor.execute(new Runnable() {
+ @Override
+ public void run() {
+ rtkConfigDao.insert(rtkConfig);
+ }
+ });
+ }
+
+ public LiveData<RTKConfig> getRTKConfig(){
+ return rtkConfig;
+ }
+
+ public void update(final RTKConfig rtkConfig){
+ WorkRoomDataBase.dataBaseWriteExecutor.execute(new Runnable() {
+ @Override
+ public void run() {
+ rtkConfigDao.update(rtkConfig);
+ }
+ });
+ }
+
+ public RTKConfig getRTKConfigNoLive() {
+ if (rtkConfig1 == null){
+ WorkRoomDataBase.dataBaseWriteExecutor.execute(new Runnable() {
+ @Override
+ public void run() {
+ MyLog.d(TAG,"鍐嶆鑾峰彇RTK閰嶇疆淇℃伅琛�");
+ rtkConfig1 = rtkConfigDao.getRTKConfigNoLive();
+ }
+ });
+ }
+ return rtkConfig1;
+ }
+}
diff --git a/app/src/main/java/safeluck/drive/evaluation/MainActivity.java b/app/src/main/java/safeluck/drive/evaluation/MainActivity.java
index 5ae9c29..98a0b6e 100644
--- a/app/src/main/java/safeluck/drive/evaluation/MainActivity.java
+++ b/app/src/main/java/safeluck/drive/evaluation/MainActivity.java
@@ -54,6 +54,8 @@
});
+
+
mPermissionsManager = new PermissionManager(this) {
@Override
public void authorized(int requestCode) {
diff --git a/app/src/main/java/safeluck/drive/evaluation/app.java b/app/src/main/java/safeluck/drive/evaluation/app.java
index ee68c5c..8b384a0 100644
--- a/app/src/main/java/safeluck/drive/evaluation/app.java
+++ b/app/src/main/java/safeluck/drive/evaluation/app.java
@@ -1,8 +1,6 @@
package safeluck.drive.evaluation;
import android.app.Application;
-import android.os.Handler;
-import android.util.Log;
import android.widget.Toast;
@@ -27,8 +25,8 @@
import safeluck.drive.evaluation.DB.failitems.FailedProj;
import safeluck.drive.evaluation.DB.failitems.FailedProjRepository;
-import safeluck.drive.evaluation.bean.RTKConfig;
-import safeluck.drive.evaluation.cEventCenter.CEventCenter;
+import safeluck.drive.evaluation.DB.rtktb.RTKConfig;
+import safeluck.drive.evaluation.DB.rtktb.RTKWorkRepository;
import safeluck.drive.evaluation.util.SystemUtil;
/**
@@ -42,7 +40,8 @@
private static final String TAG = "app";
private Gson gson;
RTKConfig rtkConfig;
- FailedProjRepository failedProjRepository;
+ FailedProjRepository failedProjRepository;//澶辫触椤圭洰琛ㄦ暟鎹簱
+ RTKWorkRepository rtkWorkRepository;//淇濆瓨RTK閰嶇疆琛�
Random random = new Random();
@Override
@@ -68,19 +67,20 @@
//RTK閰嶇疆淇℃伅
- rtkConfig = new RTKConfig();
- rtkConfig.setCity(12);
- rtkConfig.setImei("460123874561");
- rtkConfig.setInterval(1);
- rtkConfig.setIp("47.93.80.84");
- rtkConfig.setModel("123");
- rtkConfig.setPhone("2019101500000001");
- rtkConfig.setPort(12125);
- rtkConfig.setProvince(23);
- rtkConfig.setSn("2019101500000001");
+// rtkConfig = new RTKConfig();
+// rtkConfig.setCity(12);
+// rtkConfig.setImei("460123874561");
+// rtkConfig.setInterval(1);
+// rtkConfig.setIp("47.93.80.84");
+// rtkConfig.setModel("123");
+// rtkConfig.setPhone("2019101500000001");
+// rtkConfig.setPort(12125);
+// rtkConfig.setProvince(23);
+// rtkConfig.setSn("2019101500000001");
//鏁版嵁搴撴搷浣�
MyLog.i(TAG, "onCreate111");
failedProjRepository = new FailedProjRepository(this);
+ rtkWorkRepository = new RTKWorkRepository(this);
}
}
@@ -106,7 +106,10 @@
Toast.makeText(this, "NDK start", Toast.LENGTH_SHORT).show();
break;
case Constant.RTK_PLATFORM_REGISTER_STATUS:
- failedProjRepository.insert(new FailedProj(Constant.SUBJECT_I, cmd + random.nextInt(30), Constant.TEST_STU_ID));
+
+ failedProjRepository.insert(new FailedProj(Constant.SUBJECT_I, cmd + random.nextInt(26), Constant.TEST_STU_ID));
+ rtkConfig = rtkWorkRepository.getRTKConfigNoLive();
+
try {
JSONObject jsonObject = new JSONObject(json);
String rtkLoginPwd = jsonObject.getString("password");
@@ -116,19 +119,49 @@
} catch (JSONException e) {
e.printStackTrace();
}
+ rtkWorkRepository.insertRTKConfig(rtkConfig);
break;
case Constant.RTK_PLATFORM_REGISTER_RESULT:
- failedProjRepository.insert(new FailedProj(Constant.SUBJECT_I, cmd + random.nextInt(30), Constant.TEST_STU_ID));
+ failedProjRepository.insert(new FailedProj(Constant.SUBJECT_I, cmd + random.nextInt(26), Constant.TEST_STU_ID));
+
+ try {
+ JSONObject jsonObject = new JSONObject(json);
+ int rtklogincode = jsonObject.getInt("login_code");
+ rtkConfig.setRegistered(rtklogincode);
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
break;
case Constant.FETCH_RTK_PLATFORM_INFO:
+ rtkConfig = rtkWorkRepository.getRTKConfigNoLive();
if (gson == null) {
gson = new Gson();
}
- MyLog.i(TAG, "RTK閰嶇疆淇℃伅锛�" + gson.toJson(rtkConfig));
- AYSdk.getInstance().sendCmd(Constant.PUSH_RTK_PLATFORM_INFO, gson.toJson(rtkConfig));
+ if (rtkConfig==null){
+
+ rtkConfig = rtkWorkRepository.getRTKConfigNoLive();
+ }
+ if (rtkConfig != null){
+ String rtkjson = gson.toJson(rtkConfig);
+ MyLog.i(TAG, "RTK閰嶇疆淇℃伅锛�" + rtkjson);
+
+ //鍘婚櫎id瀛楁
+ JSONObject jsonObject = null;
+ try {
+ jsonObject = new JSONObject(rtkjson);
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ jsonObject.remove("_id");
+ rtkjson = null;
+ rtkjson = jsonObject.toString();
+ MyLog.i(TAG, "RTK閰嶇疆淇℃伅锛�" + rtkjson);
+ AYSdk.getInstance().sendCmd(Constant.PUSH_RTK_PLATFORM_INFO, rtkjson);
+ }
+
break;
case Constant.JUDGE_INFO:
@@ -140,6 +173,22 @@
MyLog.d(TAG, "鑰冭瘯寮�濮嬶紝闇�瑕佸垹闄や笂涓�涓�冭瘯瀛﹀憳鐨勬暟鎹簱澶辫触椤圭洰琛�");
failedProjRepository.deleteAll();
break;
+ case Constant.RTK_PLATFORM_CONNECT_STATUS:
+ rtkConfig = rtkWorkRepository.getRTKConfigNoLive();
+
+ try {
+ JSONObject jsonObject3 = new JSONObject(json);
+ String ip = jsonObject3.getString("ip");
+ int port = jsonObject3.getInt("port");
+ int reg_code = jsonObject3.getInt("connected");
+ rtkConfig.setRegistered(reg_code);
+ rtkConfig.setIp(ip);
+ rtkConfig.setPort(port);
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ rtkWorkRepository.insertRTKConfig(rtkConfig);
+ break;
}
}
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/RTKConfigFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/RTKConfigFragment.java
index 2988784..e6506df 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/RTKConfigFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/RTKConfigFragment.java
@@ -3,6 +3,10 @@
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import androidx.lifecycle.Observer;
+import androidx.lifecycle.ViewModelProviders;
+
+import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -11,8 +15,9 @@
import com.google.gson.Gson;
import me.yokeyword.fragmentation.SupportFragment;
+import safeluck.drive.evaluation.DB.rtktb.RTKConfigViewModel;
import safeluck.drive.evaluation.R;
-import safeluck.drive.evaluation.bean.RTKConfig;
+import safeluck.drive.evaluation.DB.rtktb.RTKConfig;
/**FTP閰嶇疆UI
* MyApplication2
@@ -25,6 +30,8 @@
private static final String TAG = "RTKConfigFragment";
private EditText et_ip,et_port,et_city_id,et_city_province,et_phone;
+ private RTKConfigViewModel rtkConfigViewModel;
+ private RTKConfig mRtkConfig;
public static SupportFragment newInstance(){
return new RTKConfigFragment();
@@ -37,19 +44,43 @@
View view = inflater.inflate(R.layout.layout_rtk_setting,container,false);
initView(view);
+ rtkConfigViewModel= ViewModelProviders.of(this).get(RTKConfigViewModel.class);
+ rtkConfigViewModel.getRTKConfig().observe(this, new Observer<RTKConfig>() {
+ @Override
+ public void onChanged(RTKConfig rtkConfig) {
+ Log.i(TAG, "RTKConfig Changed: "+rtkConfig.toString());
+ mRtkConfig = rtkConfig;
+ et_ip.setText(rtkConfig.getIp());
+ et_city_id.setText(String.valueOf(rtkConfig.getCity()));
+ et_city_province.setText(String.valueOf(rtkConfig.getProvince()));
+ et_port.setText(String.valueOf(rtkConfig.getPort()));
+ et_phone.setText(rtkConfig.getPhone());
+ }
+ });
return view;
}
private void initView(View view) {
view.findViewById(R.id.btn_save_rtk).setOnClickListener(this);
+ et_ip = view.findViewById(R.id.rtk_addr_ip);
+ et_city_id = view.findViewById(R.id.et_city_id);
+ et_city_province = view.findViewById(R.id.et_provice_id);
+ et_phone = view.findViewById(R.id.et_phone);
+ et_port = view.findViewById(R.id.rtk_addr_port);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btn_save_rtk:
- Gson gson = new Gson();
- String rtkConfigjson = gson.toJson(RTKConfig.class);
+ if (mRtkConfig != null){
+ mRtkConfig.setPort(Integer.parseInt(et_port.getText().toString().trim()));
+ mRtkConfig.setCity(Integer.parseInt(et_city_id.getText().toString().trim()));
+ mRtkConfig.setProvince(Integer.parseInt(et_city_province.getText().toString().trim()));
+ mRtkConfig.setIp(et_ip.getText().toString().trim());
+ mRtkConfig.setPhone(et_phone.getText().toString().trim());
+ rtkConfigViewModel.insertRTKConfig(mRtkConfig);
+ }
break;
}
}
--
Gitblit v1.8.0