From 1c6b112a32c0986904abd714f8b651c3b44cbcac Mon Sep 17 00:00:00 2001 From: lizhanwei <Dana_Lee1016@126.com> Date: 星期五, 10 一月 2020 15:07:13 +0800 Subject: [PATCH] 1,暂时删除驾校信息页;2,删除输入密码页,直接打开设置 ;3,写了一个viewmodel用来监听连接状态,结果不能跨页面传递,observe到数据变化 --- app/src/main/java/safeluck/drive/evaluation/fragment/BaseSettingFragment.java | 2 app/src/main/java/safeluck/drive/evaluation/Constant.java | 1 app/src/main/res/values/strings.xml | 6 + app/src/main/java/safeluck/drive/evaluation/adapter/SimpleFragmentAdapter.java | 10 +- app/src/main/res/layout/layout_rtk_setting.xml | 67 +++++++++++++ app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java | 2 app/src/main/java/safeluck/drive/evaluation/fragment/RTKConfigFragment.java | 47 +++++++++ app/src/main/java/safeluck/drive/evaluation/app.java | 21 --- app/src/main/java/safeluck/drive/evaluation/MainActivity.java | 39 +++++++ app/src/main/java/safeluck/drive/evaluation/fragment/HomeFragment.java | 17 ++- app/src/main/java/safeluck/drive/evaluation/viewmodels/RTKConnAndLoginViewModel.java | 15 +++ app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java | 2 app/src/main/java/safeluck/drive/evaluation/viewmodels/RTKConnAndLogin.java | 32 ++++++ 13 files changed, 226 insertions(+), 35 deletions(-) diff --git a/app/src/main/java/safeluck/drive/evaluation/Constant.java b/app/src/main/java/safeluck/drive/evaluation/Constant.java index b54bbc3..ac559cd 100644 --- a/app/src/main/java/safeluck/drive/evaluation/Constant.java +++ b/app/src/main/java/safeluck/drive/evaluation/Constant.java @@ -54,4 +54,5 @@ public static final String VEHICLE = "vehiclemodel.json"; public static final String BIND_RTKCONFIG_TOPIC = "rtkconfig_topic"; + public static final String BIND_CONNECT_RTK_TOPIC = "rtk_connect_login_topic"; } diff --git a/app/src/main/java/safeluck/drive/evaluation/MainActivity.java b/app/src/main/java/safeluck/drive/evaluation/MainActivity.java index 282cd33..6c43669 100644 --- a/app/src/main/java/safeluck/drive/evaluation/MainActivity.java +++ b/app/src/main/java/safeluck/drive/evaluation/MainActivity.java @@ -36,6 +36,8 @@ import safeluck.drive.evaluation.util.PermissionManager; import safeluck.drive.evaluation.viewmodels.MainViewModel; +import safeluck.drive.evaluation.viewmodels.RTKConnAndLogin; +import safeluck.drive.evaluation.viewmodels.RTKConnAndLoginViewModel; public class MainActivity extends SupportActivity { @@ -46,7 +48,8 @@ private RTKConfig mRTKConfig;//RTK閰嶇疆淇℃伅 private Gson gson = new Gson(); String[] PERMISSIONS = new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.CAMERA}; - + RTKConnAndLoginViewModel rtkConnAndLoginViewModel; + RTKConnAndLogin rtkConnAndLogin; private ICEventListener icEventListener = new ICEventListener() { @Override @@ -70,6 +73,32 @@ }else{ MyLog.d(TAG,"RTKConfig鏈彇鍒版暟鎹�"); } + } + if (msgCode == Constant.RTK_PLATFORM_CONNECT_STATUS||msgCode== Constant.RTK_PLATFORM_REGISTER_RESULT){ + if (msgCode == Constant.RTK_PLATFORM_REGISTER_RESULT){ + try { + JSONObject jsonObject3 = new JSONObject((String) obj); + int loginCode = jsonObject3.getInt("login_code"); + MyLog.d(TAG,"RTK骞冲彴鐧诲綍缁撴灉锛�"+loginCode); + rtkConnAndLogin.setLogin_code(loginCode); + + } catch (JSONException e) { + e.printStackTrace(); + } + + }else{ + try { + JSONObject jsonObject3 = new JSONObject((String) obj); + int connect_status = jsonObject3.getInt("connected"); + MyLog.i(TAG,"RTK骞冲彴杩炴帴鐘舵�侊細"+connect_status); + rtkConnAndLogin.setLogin_code(connect_status); + + } catch (JSONException e) { + e.printStackTrace(); + } + + } + rtkConnAndLoginViewModel.getRtkConnAndLogin().postValue(rtkConnAndLogin); } } }; @@ -100,6 +129,9 @@ mRTKConfig = rtkConfig; } }); + + rtkConnAndLoginViewModel= ViewModelProviders.of(this).get(RTKConnAndLoginViewModel.class); + rtkConnAndLogin = new RTKConnAndLogin(); mPermissionsManager = new PermissionManager(this) { @@ -147,7 +179,8 @@ loadRootFragment(R.id.fl_container,HomeFragment.newInstance()); } - CEventCenter.onBindEvent(true,icEventListener,Constant.BIND_RTKCONFIG_TOPIC); + CEventCenter.onBindEvent(true,icEventListener,Constant.BIND_RTKCONFIG_TOPIC);//鍙戦�乺tk閰嶇疆娑堟伅 + CEventCenter.onBindEvent(true,icEventListener, Constant.BIND_CONNECT_RTK_TOPIC);//鏀跺埌rtk杩炴帴 鐧诲綍缁撴灉 } @@ -155,6 +188,8 @@ protected void onDestroy() { super.onDestroy(); CEventCenter.onBindEvent(false,icEventListener,Constant.BIND_RTKCONFIG_TOPIC); + + CEventCenter.onBindEvent(false,icEventListener, Constant.BIND_CONNECT_RTK_TOPIC); Log.i(TAG, "onDestroy: "); } diff --git a/app/src/main/java/safeluck/drive/evaluation/adapter/SimpleFragmentAdapter.java b/app/src/main/java/safeluck/drive/evaluation/adapter/SimpleFragmentAdapter.java index 746513c..5b04a49 100644 --- a/app/src/main/java/safeluck/drive/evaluation/adapter/SimpleFragmentAdapter.java +++ b/app/src/main/java/safeluck/drive/evaluation/adapter/SimpleFragmentAdapter.java @@ -21,7 +21,7 @@ * All Rights Saved! Chongqing AnYun Tech co. LTD */ public class SimpleFragmentAdapter extends FragmentPagerAdapter { - private String[] mTitles = new String[]{"鍩虹鏁版嵁","RTK閰嶇疆","椹炬牎淇℃伅","GPS淇℃伅"}; + private String[] mTitles = new String[]{"鍩虹鏁版嵁","RTK閰嶇疆","GPS淇℃伅"}; public SimpleFragmentAdapter(FragmentManager fm) { super(fm); } @@ -38,11 +38,11 @@ supportFragment = RTKConfigFragment.newInstance(); //ftp break; +// case 2: +// supportFragment = JiaXiaoFragment.newInstance(); +// //椹炬牎淇℃伅 +// break; case 2: - supportFragment = JiaXiaoFragment.newInstance(); - //椹炬牎淇℃伅 - break; - case 3: supportFragment = GpsInfoFragment.newInstance(); break; default:break; diff --git a/app/src/main/java/safeluck/drive/evaluation/app.java b/app/src/main/java/safeluck/drive/evaluation/app.java index a2b63fc..dee03d5 100644 --- a/app/src/main/java/safeluck/drive/evaluation/app.java +++ b/app/src/main/java/safeluck/drive/evaluation/app.java @@ -120,12 +120,7 @@ case Constant.RTK_PLATFORM_REGISTER_RESULT: //RTK骞冲彴鐧诲綍缁撴灉 - try { - JSONObject jsonObject = new JSONObject(json); - int rtklogincode = jsonObject.getInt("login_code"); - } catch (JSONException e) { - e.printStackTrace(); - } + CEventCenter.dispatchEvent(Constant.BIND_CONNECT_RTK_TOPIC,cmd,0,json); break; @@ -150,20 +145,8 @@ 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); + CEventCenter.dispatchEvent(Constant.BIND_CONNECT_RTK_TOPIC,cmd,0,json); break; case Constant.FETCH_MAP_INFO: diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/BaseSettingFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/BaseSettingFragment.java index c235d12..20f7fc7 100644 --- a/app/src/main/java/safeluck/drive/evaluation/fragment/BaseSettingFragment.java +++ b/app/src/main/java/safeluck/drive/evaluation/fragment/BaseSettingFragment.java @@ -59,7 +59,7 @@ tabLayout.addTab(tabLayout.newTab()); tabLayout.addTab(tabLayout.newTab()); tabLayout.addTab(tabLayout.newTab()); - tabLayout.addTab(tabLayout.newTab()); +// tabLayout.addTab(tabLayout.newTab()); tb = view.findViewById(R.id.toolbar); tb.setNavigationIcon(R.drawable.ic_arrow_back_white_24dp); tb.setNavigationOnClickListener(new View.OnClickListener() { diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/HomeFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/HomeFragment.java index abd31ce..7c11237 100644 --- a/app/src/main/java/safeluck/drive/evaluation/fragment/HomeFragment.java +++ b/app/src/main/java/safeluck/drive/evaluation/fragment/HomeFragment.java @@ -99,13 +99,18 @@ break; case R.id.system_setting: //鎵撳紑杈撳叆瀵嗙爜鐣岄潰 - PasswordFragment passwordFragment = findFragment(PasswordFragment.class); - if (passwordFragment == null) { - passwordFragment = (PasswordFragment) PasswordFragment.newInstance(); - start(passwordFragment); - } else { - start(passwordFragment); +// PasswordFragment passwordFragment = findFragment(PasswordFragment.class); +// if (passwordFragment == null) { +// passwordFragment = (PasswordFragment) PasswordFragment.newInstance(); +// start(passwordFragment); +// } else { +// start(passwordFragment); +// } + BaseSettingFragment sysSetingFragment = findFragment(BaseSettingFragment.class); + if (sysSetingFragment == null) { + sysSetingFragment = (BaseSettingFragment) BaseSettingFragment.newInstance(); } + startWithPop(sysSetingFragment); break; } diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java index f1efb47..f239c8a 100644 --- a/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java +++ b/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java @@ -101,7 +101,7 @@ } private void sendRTKConfig2RemoteService() { MyLog.d(TAG,"涓诲姩鎺ㄩ�丷TKConfig"); - CEventCenter.dispatchEvent(Constant.BIND_RTKCONFIG_TOPIC,Constant.PUSH_RTK_PLATFORM_INFO,0,""); + CEventCenter.dispatchEvent(Constant.BIND_RTKCONFIG_TOPIC,Constant.FETCH_RTK_PLATFORM_INFO,0,""); } @Override public void onClick(View v) { 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 e6506df..4d424ba 100644 --- a/app/src/main/java/safeluck/drive/evaluation/fragment/RTKConfigFragment.java +++ b/app/src/main/java/safeluck/drive/evaluation/fragment/RTKConfigFragment.java @@ -1,5 +1,6 @@ package safeluck.drive.evaluation.fragment; +import android.content.Context; import android.os.Bundle; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -11,13 +12,20 @@ import android.view.View; import android.view.ViewGroup; import android.widget.EditText; +import android.widget.TextView; +import com.anyun.exam.lib.MyLog; import com.google.gson.Gson; import me.yokeyword.fragmentation.SupportFragment; +import safeluck.drive.evaluation.Constant; import safeluck.drive.evaluation.DB.rtktb.RTKConfigViewModel; import safeluck.drive.evaluation.R; import safeluck.drive.evaluation.DB.rtktb.RTKConfig; +import safeluck.drive.evaluation.cEventCenter.CEventCenter; +import safeluck.drive.evaluation.cEventCenter.ICEventListener; +import safeluck.drive.evaluation.viewmodels.RTKConnAndLogin; +import safeluck.drive.evaluation.viewmodels.RTKConnAndLoginViewModel; /**FTP閰嶇疆UI * MyApplication2 @@ -30,6 +38,8 @@ private static final String TAG = "RTKConfigFragment"; private EditText et_ip,et_port,et_city_id,et_city_province,et_phone; + // RTK娉ㄥ唽鐘舵�併�丷TK杩炴帴鐘舵�併�� + private TextView tv_reg,tv_connect,tv_model,tv_sn,tv_imei,tv_login; private RTKConfigViewModel rtkConfigViewModel; private RTKConfig mRtkConfig; @@ -55,8 +65,25 @@ et_city_province.setText(String.valueOf(rtkConfig.getProvince())); et_port.setText(String.valueOf(rtkConfig.getPort())); et_phone.setText(rtkConfig.getPhone()); + tv_sn.setText(getResources().getString(R.string.rtk_config_sn,rtkConfig.getSn())); + tv_model.setText(getResources().getString(R.string.rtk_config_model,rtkConfig.getModel())); + tv_imei.setText(getResources().getString(R.string.rtk_config_imei,rtkConfig.getImei())); + tv_reg.setText(getResources().getString(R.string.rtk_register_status,rtkConfig.getRegistered())); + } }); + + + RTKConnAndLoginViewModel rtkConnAndLoginViewModel = ViewModelProviders.of(this).get(RTKConnAndLoginViewModel.class); + rtkConnAndLoginViewModel.getRtkConnAndLogin().observe(this, new Observer<RTKConnAndLogin>() { + @Override + public void onChanged(RTKConnAndLogin rtkConnAndLogin) { + MyLog.i(TAG,"骞冲彴鐧诲綍缁撴灉鍙婅繛鎺ョ姸鎬�"+rtkConnAndLogin.toString()); + tv_connect.setText(getResources().getString(R.string.rtk_connect_status,rtkConnAndLogin.getConnect_status())); + tv_connect.setText(getResources().getString(R.string.rtk_config_login,rtkConnAndLogin.getLogin_code())); + } + }); + return view; } @@ -67,6 +94,13 @@ 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); + + tv_connect = view.findViewById(R.id.tv_rtk_connect);//RTK骞冲彴杩炴帴鐘舵�� + tv_imei = view.findViewById(R.id.tv_rtk_imei); + tv_login = view.findViewById(R.id.tv_rtk_login);//RTK骞冲彴鐧诲綍缁撴灉 + tv_model = view.findViewById(R.id.tv_rtk_model); + tv_reg = view.findViewById(R.id.tv_rtk_reg);//RTK骞冲彴娉ㄥ唽鐘舵�� + tv_sn = view.findViewById(R.id.tv_rtk_sn); } @Override @@ -84,4 +118,17 @@ break; } } + + + + @Override + public void onAttach(Context context) { + super.onAttach(context); + + } + + @Override + public void onDetach() { + super.onDetach(); + } } diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java index 127c355..e51a495 100644 --- a/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java +++ b/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java @@ -119,7 +119,7 @@ private void sendRTKConfig2RemoteService() { MyLog.d(TAG,"涓诲姩鎺ㄩ�丷TKConfig"); - CEventCenter.dispatchEvent(Constant.BIND_RTKCONFIG_TOPIC,Constant.PUSH_RTK_PLATFORM_INFO,0,""); + CEventCenter.dispatchEvent(Constant.BIND_RTKCONFIG_TOPIC,Constant.FETCH_RTK_PLATFORM_INFO,0,""); } @Override diff --git a/app/src/main/java/safeluck/drive/evaluation/viewmodels/RTKConnAndLogin.java b/app/src/main/java/safeluck/drive/evaluation/viewmodels/RTKConnAndLogin.java new file mode 100644 index 0000000..b80d107 --- /dev/null +++ b/app/src/main/java/safeluck/drive/evaluation/viewmodels/RTKConnAndLogin.java @@ -0,0 +1,32 @@ +package safeluck.drive.evaluation.viewmodels; + +import androidx.annotation.NonNull; + +public class RTKConnAndLogin { + private int login_code = 1;//RTK骞冲彴鐧诲綍缁撴灉 0-鎴愬姛 鍏朵粬澶辫触 + private int connect_status;//RTK骞冲彴杩炴帴鐘舵�� + + public int getLogin_code() { + return login_code; + } + + public void setLogin_code(int login_code) { + this.login_code = login_code; + } + + public int getConnect_status() { + return connect_status; + } + + public void setConnect_status(int connect_status) { + this.connect_status = connect_status; + } + + @Override + public String toString() { + return "RTKConnAndLogin{" + + "login_code=" + login_code + + ", connect_status=" + connect_status + + '}'; + } +} diff --git a/app/src/main/java/safeluck/drive/evaluation/viewmodels/RTKConnAndLoginViewModel.java b/app/src/main/java/safeluck/drive/evaluation/viewmodels/RTKConnAndLoginViewModel.java new file mode 100644 index 0000000..5604021 --- /dev/null +++ b/app/src/main/java/safeluck/drive/evaluation/viewmodels/RTKConnAndLoginViewModel.java @@ -0,0 +1,15 @@ +package safeluck.drive.evaluation.viewmodels; + +import androidx.lifecycle.MutableLiveData; +import androidx.lifecycle.ViewModel; + +public class RTKConnAndLoginViewModel extends ViewModel { + private MutableLiveData<RTKConnAndLogin> rtkConnAndLogin; + + public MutableLiveData<RTKConnAndLogin> getRtkConnAndLogin(){ + if (rtkConnAndLogin == null){ + rtkConnAndLogin = new MutableLiveData<>(); + } + return rtkConnAndLogin; + } +} diff --git a/app/src/main/res/layout/layout_rtk_setting.xml b/app/src/main/res/layout/layout_rtk_setting.xml index 7be4603..83faf92 100644 --- a/app/src/main/res/layout/layout_rtk_setting.xml +++ b/app/src/main/res/layout/layout_rtk_setting.xml @@ -98,6 +98,73 @@ android:layout_marginBottom="10dp" android:background="@color/colorAccent" /> + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="horizontal"> + <TextView + android:textColor="@android:color/black" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:id="@+id/tv_rtk_reg" + android:text="@string/rtk_register_status" + android:layout_weight="1"/> + <TextView + android:textColor="@android:color/black" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:id="@+id/tv_rtk_connect" + android:text="@string/rtk_connect_status" + android:layout_weight="1"/> + <TextView + android:textColor="@android:color/black" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:id="@+id/tv_rtk_imei" + android:text="@string/rtk_config_imei" + android:layout_weight="1"/> + + </LinearLayout> + <View + android:layout_width="match_parent" + android:layout_height="1px" + android:layout_marginTop="10dp" + android:layout_marginBottom="10dp" + android:background="@color/colorAccent" + /> + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="horizontal"> + <TextView + android:textColor="@android:color/black" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:id="@+id/tv_rtk_login" + android:text="@string/rtk_config_login" + android:layout_weight="1"/> <TextView + android:textColor="@android:color/black" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:id="@+id/tv_rtk_model" + android:text="@string/rtk_config_model" + android:layout_weight="1"/> + <TextView + android:textColor="@android:color/black" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:id="@+id/tv_rtk_sn" + android:text="@string/rtk_config_sn" + android:layout_weight="1"/> + + </LinearLayout> + <View + android:layout_width="match_parent" + android:layout_height="1px" + android:layout_marginTop="10dp" + android:layout_marginBottom="10dp" + android:background="@color/colorAccent" + /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 47b5726..6865919 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -18,4 +18,10 @@ <string name="request_permission">This sample needs camera permission.</string> <string name="camera_error">This device doesn\'t support Camera2 API.</string> <string name="rtk_addr_des">RTK骞冲彴鍦板潃锛�</string> + <string name="rtk_register_status">RTK娉ㄥ唽鐘舵�侊細%1$d</string> + <string name="rtk_config_imei">IMEI:%1$s</string> + <string name="rtk_config_model">Model:%1$s</string> + <string name="rtk_config_sn">SN:%1$s</string> + <string name="rtk_connect_status">RTK杩炴帴鐘舵�侊細%1$d</string> + <string name="rtk_config_login">RTK鐧诲綍缁撴灉锛�%1$d</string> </resources> -- Gitblit v1.8.0