From a5b60d3a3f11bad34c9ed9b970d7e7929e03615b Mon Sep 17 00:00:00 2001 From: qiji4215 Date: Mon, 24 Apr 2023 16:24:57 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E5=A2=9E=E5=8A=A0=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=98=BE=E7=A4=BA2=E3=80=81=E9=87=8D?= =?UTF-8?q?=E6=9E=84=E5=B8=B8=E9=87=8F=E5=87=BD=E6=95=B03=E3=80=81?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=B8=B8=E7=94=A8=E9=A2=9C=E8=89=B2=E5=B8=B8?= =?UTF-8?q?=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/navinfo/omqs/Constant.kt | 37 +++++ .../java/com/navinfo/omqs/OMQSApplication.kt | 5 - .../java/com/navinfo/omqs/bean/TaskBean.kt | 1 - .../navinfo/omqs/system/SystemConstant.java | 42 ----- .../omqs/ui/activity/login/LoginViewModel.kt | 6 +- .../omqs/ui/activity/map/MainActivity.kt | 5 +- .../omqs/ui/activity/map/MainViewModel.kt | 3 +- .../navinfo/omqs/ui/dialog/CommonDialog.java | 55 +++--- .../qsrecordlist/QsRecordListAdapter.kt | 6 +- .../qsrecordlist/QsRecordListFragment.kt | 8 + .../omqs/ui/manager/TakePhotoManager.java | 8 +- .../omqs/ui/widget/RecycleViewDivider.kt | 144 ++++++++++++++++ .../DateTimeUtil.java} | 4 +- .../java/com/navinfo/omqs/util/ShareUtil.java | 44 ++--- .../common_dialog_confirm_text_selector.xml | 2 +- app/src/main/res/drawable/separator.xml | 9 + .../res/layout/adapter_offline_map_city.xml | 12 +- .../res/layout/adapter_qs_record_list.xml | 40 ++++- app/src/main/res/layout/adapter_task_list.xml | 2 +- .../res/layout/transient_notification.xml | 2 +- app/src/main/res/values/colors.xml | 157 +++++++++++++++++- app/src/main/res/values/dimens.xml | 2 +- app/src/main/res/values/styles.xml | 14 +- 23 files changed, 471 insertions(+), 137 deletions(-) delete mode 100644 app/src/main/java/com/navinfo/omqs/system/SystemConstant.java create mode 100644 app/src/main/java/com/navinfo/omqs/ui/widget/RecycleViewDivider.kt rename app/src/main/java/com/navinfo/omqs/{system/SystemDateTime.java => util/DateTimeUtil.java} (99%) create mode 100644 app/src/main/res/drawable/separator.xml diff --git a/app/src/main/java/com/navinfo/omqs/Constant.kt b/app/src/main/java/com/navinfo/omqs/Constant.kt index 6612fdc2..e308b0ab 100644 --- a/app/src/main/java/com/navinfo/omqs/Constant.kt +++ b/app/src/main/java/com/navinfo/omqs/Constant.kt @@ -1,8 +1,11 @@ package com.navinfo.omqs +import androidx.core.util.rangeTo import io.realm.Realm +import java.util.* class Constant { + companion object { /** * sd卡根目录 @@ -19,6 +22,19 @@ class Constant { */ lateinit var DATA_PATH: String + /** + * 用户id + */ + lateinit var USER_ID: String + + //数据版本 + lateinit var VERSION_ID: String + + /** + * 用户数据目录 + */ + lateinit var USER_DATA_PATH: String + /** * 离线地图目录 */ @@ -36,7 +52,28 @@ class Constant { const val message_version_right_off = "1" //立即发送 const val MESSAGE_PAGE_SIZE = 30 //消息列表一页最多数量 + lateinit var realm: Realm + + //选择相机默认或者外设 + const val SELECT_CAMERA_STATE = "select_camera_state" + + //是否连接 + const val CAMERA_CONNECT_STATE = "camera_connect_state" + + //是否可以点击 + const val CAMERA_CLICK_STATE = "camera_click_state" + + //拍照模式 + const val TAKE_CAMERA_MODE = "take_camera_mode" + + const val TAKE_CAMERA_IP = "take_camera_ip" + + const val TAKE_CAMERA_MAC = "take_camera_mac" + + //选择拍照或者录像 + const val SELECT_TAKEPHOTO_OR_RECORD = "select_takephoto_or_record" + } } \ No newline at end of file diff --git a/app/src/main/java/com/navinfo/omqs/OMQSApplication.kt b/app/src/main/java/com/navinfo/omqs/OMQSApplication.kt index 8937ad93..ae704354 100644 --- a/app/src/main/java/com/navinfo/omqs/OMQSApplication.kt +++ b/app/src/main/java/com/navinfo/omqs/OMQSApplication.kt @@ -1,16 +1,11 @@ package com.navinfo.omqs import android.app.Application -import android.util.Log -import com.navinfo.omqs.db.MyRealmModule import com.navinfo.omqs.tools.FileManager import com.navinfo.omqs.ui.manager.TakePhotoManager import com.navinfo.omqs.util.NetUtils import dagger.hilt.android.HiltAndroidApp import org.videolan.vlc.Util -import io.realm.Realm -import io.realm.RealmConfiguration -import java.io.File import java.security.MessageDigest @HiltAndroidApp diff --git a/app/src/main/java/com/navinfo/omqs/bean/TaskBean.kt b/app/src/main/java/com/navinfo/omqs/bean/TaskBean.kt index 9fed8d44..d4ae318e 100644 --- a/app/src/main/java/com/navinfo/omqs/bean/TaskBean.kt +++ b/app/src/main/java/com/navinfo/omqs/bean/TaskBean.kt @@ -2,7 +2,6 @@ package com.navinfo.omqs.bean import com.google.gson.annotations.SerializedName import com.navinfo.omqs.Constant -import com.navinfo.omqs.system.SystemConstant import com.navinfo.omqs.tools.FileManager.Companion.FileDownloadStatus import io.realm.RealmList import io.realm.RealmObject diff --git a/app/src/main/java/com/navinfo/omqs/system/SystemConstant.java b/app/src/main/java/com/navinfo/omqs/system/SystemConstant.java deleted file mode 100644 index 2683529b..00000000 --- a/app/src/main/java/com/navinfo/omqs/system/SystemConstant.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.navinfo.omqs.system; - -import java.util.UUID; - -/** - * 系统变量对象 - */ -public class SystemConstant { - - public static String USER_ID = "1"; - - //选择相机默认或者外设 - public static String SELECT_CAMERA_STATE = "select_camera_state"; - //是否连接 - public static String CAMERA_CONNECT_STATE = "camera_connect_state"; - //是否可以点击 - public static String CAMERA_CLICK_STATE = "camera_click_state"; - //拍照模式 - public static String TAKE_CAMERA_MODE = "take_camera_mode"; - - public static String TAKE_CAMERA_IP = "take_camera_ip"; - - public static String TAKE_CAMERA_MAC = "take_camera_mac"; - - - //选择拍照或者录像 - public static String SELECT_TAKEPHOTO_OR_RECORD = "select_takephoto_or_record"; - - /** - * 获取uuid - * @param isUpperCase - * true 大写 false 小写 - */ - public static String getUuid(boolean isUpperCase){ - String uuid = UUID.randomUUID().toString().replaceAll("-", ""); - if(isUpperCase) - uuid = uuid.toUpperCase(); - - return uuid; - } - -} diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/login/LoginViewModel.kt b/app/src/main/java/com/navinfo/omqs/ui/activity/login/LoginViewModel.kt index da6ccc0e..3d81a683 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/activity/login/LoginViewModel.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/activity/login/LoginViewModel.kt @@ -17,8 +17,8 @@ import dagger.hilt.android.lifecycle.HiltViewModel import io.realm.Realm import io.realm.RealmConfiguration import kotlinx.coroutines.* -import okio.IOException import java.io.File +import java.io.IOException import javax.inject.Inject enum class LoginStatus { @@ -153,8 +153,10 @@ class LoginViewModel @Inject constructor( /** * 创建用户目录 */ - @Throws(IOException::class) private fun createUserFolder(context: Context, userId: String) { + Constant.USER_ID = userId + Constant.VERSION_ID = userId + Constant.USER_DATA_PATH = Constant.DATA_PATH + Constant.USER_ID + "/" + Constant.VERSION_ID // 在SD卡创建用户目录,解压资源等 // 初始化Realm Realm.init(context.applicationContext) diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt index 47442314..14d6015c 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt @@ -14,10 +14,7 @@ import com.navinfo.omqs.Constant import com.navinfo.omqs.R import com.navinfo.omqs.databinding.ActivityMainBinding import com.navinfo.omqs.http.offlinemapdownload.OfflineMapDownloadManager -import com.navinfo.omqs.system.SystemConstant import com.navinfo.omqs.ui.activity.BaseActivity -import com.navinfo.omqs.ui.fragment.evaluationresult.EvaluationResultFragment -import com.navinfo.omqs.ui.fragment.evaluationresult.EvaluationResultViewModel import dagger.hilt.android.AndroidEntryPoint import javax.inject.Inject @@ -48,7 +45,7 @@ class MainActivity : BaseActivity() { binding.mainActivityMap, null, Constant.MAP_PATH, - Constant.DATA_PATH+ SystemConstant.USER_ID+"/trace.sqlite" + Constant.USER_DATA_PATH+"/trace.sqlite" ) //关联生命周期 binding.lifecycleOwner = this diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt index 76aba0e5..101e765c 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt @@ -16,7 +16,6 @@ import com.navinfo.collect.library.utils.GeometryTools import com.navinfo.collect.library.utils.GeometryToolsKt import com.navinfo.omqs.Constant import com.navinfo.omqs.R -import com.navinfo.omqs.system.SystemConstant import com.navinfo.omqs.ui.dialog.CommonDialog import com.navinfo.omqs.ui.manager.TakePhotoManager import dagger.hilt.android.lifecycle.HiltViewModel @@ -122,7 +121,7 @@ class MainViewModel @Inject constructor( TraceDataBase.getDatabase( context, - Constant.DATA_PATH + SystemConstant.USER_ID + "/trace.sqlite" + Constant.USER_DATA_PATH + "/trace.sqlite" ).niLocationDao.insert(niLocation) niLocationList.removeAt(0) Log.e("qj", "saveTrace") diff --git a/app/src/main/java/com/navinfo/omqs/ui/dialog/CommonDialog.java b/app/src/main/java/com/navinfo/omqs/ui/dialog/CommonDialog.java index 43567e82..ccdbc354 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/dialog/CommonDialog.java +++ b/app/src/main/java/com/navinfo/omqs/ui/dialog/CommonDialog.java @@ -36,11 +36,10 @@ import com.navinfo.collect.library.garminvirbxe.SensorParams; import com.navinfo.collect.library.garminvirbxe.HostBean; import com.navinfo.omqs.Constant; import com.navinfo.omqs.R; -import com.navinfo.omqs.system.SystemConstant; -import com.navinfo.omqs.system.SystemDateTime; import com.navinfo.omqs.ui.activity.map.MainActivity; import com.navinfo.omqs.ui.manager.TakePhotoManager; import com.navinfo.omqs.ui.other.BaseToast; +import com.navinfo.omqs.util.DateTimeUtil; import com.navinfo.omqs.util.FileUtils; import com.navinfo.omqs.util.NetUtils; import com.navinfo.omqs.util.ShareUtil; @@ -282,13 +281,13 @@ public class CommonDialog extends Dialog implements SurfaceHolder.Callback, IVid Log.e("AAA", "连接中"); connectstate = false; - mShareUtil.setConnectstate(SystemConstant.USER_ID, connectstate); + mShareUtil.setConnectstate(Constant.USER_ID, connectstate); mOneBtConnect.setText("连接中"); updateCameraResources(2, getmDeviceNum()); } else { connectstate = false; - mShareUtil.setConnectstate(SystemConstant.USER_ID, connectstate); + mShareUtil.setConnectstate(Constant.USER_ID, connectstate); click_state = true; mOneBtConnect.setEnabled(click_state); @@ -357,11 +356,11 @@ public class CommonDialog extends Dialog implements SurfaceHolder.Callback, IVid Message msg = new Message(); - String picPath = Constant.DATA_PATH + "/" + SystemConstant.USER_ID + "/pic.jpg"; + String picPath = Constant.DATA_PATH + "/" + Constant.USER_ID + "/pic.jpg"; //创建目录 - if(!new File(Constant.DATA_PATH + "/" + SystemConstant.USER_ID).exists()){ - new File(Constant.DATA_PATH + "/" + SystemConstant.USER_ID).mkdirs(); + if(!new File(Constant.DATA_PATH + "/" + Constant.USER_ID).exists()){ + new File(Constant.DATA_PATH + "/" + Constant.USER_ID).mkdirs(); } //多次获取照片信息,解决概率事件无法获取有效照片问题 @@ -376,7 +375,7 @@ public class CommonDialog extends Dialog implements SurfaceHolder.Callback, IVid Log.e("AAA", "获取单张拍照时间" + time+"次数"+i); if (!TextUtils.isEmpty(time)) { - long picTime = SystemDateTime.getPicTime(time); + long picTime = DateTimeUtil.getPicTime(time); long disTime = mStartCheckTime - picTime / 1000; @@ -482,7 +481,7 @@ public class CommonDialog extends Dialog implements SurfaceHolder.Callback, IVid updateCameraResources(0, getmDeviceNum()); connectstate = true; - mShareUtil.setConnectstate(SystemConstant.USER_ID, connectstate); + mShareUtil.setConnectstate(Constant.USER_ID, connectstate); stopVideo(); mOneBtConnect.setPressed(true); mOneBtConnect.setBackgroundResource(R.drawable.btn_red_disconnect_bg); @@ -614,7 +613,7 @@ public class CommonDialog extends Dialog implements SurfaceHolder.Callback, IVid mGpsTv.setText("相机GPS信号差,请稍等片刻,或将相机移到开发地带。"); mGpsTv.setVisibility(View.VISIBLE); mStartOrEndTakePicture.setEnabled(status); - mShareUtil.setContinusTakePhotoState(SystemConstant.USER_ID, true); + mShareUtil.setContinusTakePhotoState(Constant.USER_ID, true); } } @@ -778,7 +777,7 @@ public class CommonDialog extends Dialog implements SurfaceHolder.Callback, IVid ImageView ivStatus = (ImageView) findViewById(resId); if (ivStatus != null) { - String time = SystemDateTime.getDateSimpleTime(SystemDateTime.getTimeInfo(SystemDateTime.getTime()) - 0/*MainActivity.disGoogleTime*/); + String time = DateTimeUtil.getDateSimpleTime(DateTimeUtil.getTimeInfo(DateTimeUtil.getTime()) - 0/*MainActivity.disGoogleTime*/); ivStatus.setImageDrawable(null); @@ -810,7 +809,7 @@ public class CommonDialog extends Dialog implements SurfaceHolder.Callback, IVid if (connectstate) { Log.i("chentao", "打开/结束连拍:" + arg1); - mShareUtil.setContinusTakePhotoState(SystemConstant.USER_ID, arg1); + mShareUtil.setContinusTakePhotoState(Constant.USER_ID, arg1); if (!arg1) { @@ -829,7 +828,7 @@ public class CommonDialog extends Dialog implements SurfaceHolder.Callback, IVid mStartOrEndTakePicture.setChecked(true); - mShareUtil.setContinusTakePhotoState(SystemConstant.USER_ID, true); + mShareUtil.setContinusTakePhotoState(Constant.USER_ID, true); BaseToast.makeText(context, "外接相机没有连接成功!不能进行连续拍照!", Toast.LENGTH_SHORT).show(); } @@ -845,9 +844,9 @@ public class CommonDialog extends Dialog implements SurfaceHolder.Callback, IVid connectstate = false; - mShareUtil.setContinusTakePhotoState(SystemConstant.USER_ID, true); + mShareUtil.setContinusTakePhotoState(Constant.USER_ID, true); - mShareUtil.setConnectstate(SystemConstant.USER_ID, connectstate); + mShareUtil.setConnectstate(Constant.USER_ID, connectstate); mStartOrEndTakePicture.setChecked(true); @@ -908,10 +907,10 @@ public class CommonDialog extends Dialog implements SurfaceHolder.Callback, IVid public void onCheckedChanged(CompoundButton arg0, boolean arg1) { if (connectstate) { Log.i("chentao", "选择相机:" + arg1); - mShareUtil.setSelectCameraKind(SystemConstant.USER_ID, arg1); + mShareUtil.setSelectCameraKind(Constant.USER_ID, arg1); } else { mSelectCamera.setChecked(false); - mShareUtil.setSelectCameraKind(SystemConstant.USER_ID, false); + mShareUtil.setSelectCameraKind(Constant.USER_ID, false); BaseToast.makeText(context, "外接相机没有连接成功!只能使用系统相机,谢谢!", Toast.LENGTH_SHORT).show(); } } @@ -962,7 +961,7 @@ public class CommonDialog extends Dialog implements SurfaceHolder.Callback, IVid } //重置拍照按钮 - mShareUtil.setContinusTakePhotoState(SystemConstant.USER_ID, true); + mShareUtil.setContinusTakePhotoState(Constant.USER_ID, true); } //设置另外一台相机状态 @@ -980,11 +979,11 @@ public class CommonDialog extends Dialog implements SurfaceHolder.Callback, IVid } - shareUtilOther.setSelectTakePhotoOrRecord(SystemConstant.USER_ID, !isCheck); + shareUtilOther.setSelectTakePhotoOrRecord(Constant.USER_ID, !isCheck); - shareUtilOther.setContinusTakePhotoState(SystemConstant.USER_ID, true); + shareUtilOther.setContinusTakePhotoState(Constant.USER_ID, true); - mShareUtil.setSelectTakePhotoOrRecord(SystemConstant.USER_ID, isCheck); + mShareUtil.setSelectTakePhotoOrRecord(Constant.USER_ID, isCheck); if (isCheck) { @@ -993,18 +992,18 @@ public class CommonDialog extends Dialog implements SurfaceHolder.Callback, IVid takephotoManager.setCameraMode(getmDeviceNum(), SensorWorkingMode.CAMERA_VEDIO_TIMELAPSE); - mShareUtil.setTakeCameraMode(SystemConstant.USER_ID, 0); + mShareUtil.setTakeCameraMode(Constant.USER_ID, 0); - shareUtilOther.setTakeCameraMode(SystemConstant.USER_ID, 1); + shareUtilOther.setTakeCameraMode(Constant.USER_ID, 1); } else { mTakePhotoOrRecord.setText("拍照"); setmImgViewImageDrawable(1); - mShareUtil.setTakeCameraMode(SystemConstant.USER_ID, 1); + mShareUtil.setTakeCameraMode(Constant.USER_ID, 1); - shareUtilOther.setTakeCameraMode(SystemConstant.USER_ID, 0); + shareUtilOther.setTakeCameraMode(Constant.USER_ID, 0); takephotoManager.setCameraMode(getmDeviceNum(), SensorWorkingMode.CAMEAR_PHOTO_CONTINUOUS_PHOTO); @@ -1074,7 +1073,7 @@ public class CommonDialog extends Dialog implements SurfaceHolder.Callback, IVid BaseToast.makeText(context, TextUtils.isEmpty(msg) ? "相机丢失连接,请检查网络是否畅通!" : msg, Toast.LENGTH_SHORT).show(); connectstate = false; - mShareUtil.setConnectstate(SystemConstant.USER_ID, connectstate); + mShareUtil.setConnectstate(Constant.USER_ID, connectstate); mOneBtConnect.setPressed(false); mOneBtConnect.setBackgroundResource(R.drawable.btn_connect_bg_enabled); mOneBtConnect.setText("一键连接"); @@ -1536,9 +1535,9 @@ public class CommonDialog extends Dialog implements SurfaceHolder.Callback, IVid mHostBean = hostBean; - mShareUtil.setTakeCameraIP(SystemConstant.USER_ID, hostBean.ipAddress.toString()); + mShareUtil.setTakeCameraIP(Constant.USER_ID, hostBean.ipAddress.toString()); - mShareUtil.setTakeCameraMac(SystemConstant.USER_ID, hostBean.hardwareAddress.toString()); + mShareUtil.setTakeCameraMac(Constant.USER_ID, hostBean.hardwareAddress.toString()); takephotoManager.connect(getmDeviceNum(), hostBean, params); } diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/qsrecordlist/QsRecordListAdapter.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/qsrecordlist/QsRecordListAdapter.kt index cc55ecf2..e0118941 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/qsrecordlist/QsRecordListAdapter.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/qsrecordlist/QsRecordListAdapter.kt @@ -50,10 +50,14 @@ class QsRecordListAdapter( } private fun changeViews(binding: AdapterQsRecordListBinding, qsRecordBean: QsRecordBean) { + binding.qsRecordClassType.text = qsRecordBean.classType + binding.qsRecordProblemType.text = qsRecordBean.problemType + binding.qsRecordPhenomenon.text = qsRecordBean.phenomenon + binding.qsRecordProblemLink.text = qsRecordBean.problemLink } override fun getItemViewRes(position: Int): Int { - return R.layout.adapter_offline_map_city + return R.layout.adapter_qs_record_list } } diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/qsrecordlist/QsRecordListFragment.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/qsrecordlist/QsRecordListFragment.kt index cf8ca525..2dc9b7ff 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/qsrecordlist/QsRecordListFragment.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/qsrecordlist/QsRecordListFragment.kt @@ -5,11 +5,16 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.viewModels +import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView.VERTICAL +import com.navinfo.omqs.R import com.navinfo.omqs.databinding.FragmentQsRecordListBinding import com.navinfo.omqs.ui.fragment.BaseFragment import com.navinfo.omqs.ui.fragment.tasklist.QsRecordListAdapter +import com.navinfo.omqs.ui.widget.RecycleViewDivider import dagger.hilt.android.AndroidEntryPoint +import org.apache.poi.xwpf.usermodel.VerticalAlign import javax.inject.Inject @AndroidEntryPoint @@ -42,6 +47,9 @@ class QsRecordListFragment : BaseFragment(){ viewModel.liveDataQSList.observe(viewLifecycleOwner) { adapter.refreshData(it) } + val itemDecoration = DividerItemDecoration(context, DividerItemDecoration.VERTICAL) + itemDecoration.setDrawable(resources.getDrawable(R.drawable.separator)) + binding.qsRecyclerview.addItemDecoration(itemDecoration) viewModel.getList(requireContext()) } diff --git a/app/src/main/java/com/navinfo/omqs/ui/manager/TakePhotoManager.java b/app/src/main/java/com/navinfo/omqs/ui/manager/TakePhotoManager.java index dce99378..bdbe51fb 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/manager/TakePhotoManager.java +++ b/app/src/main/java/com/navinfo/omqs/ui/manager/TakePhotoManager.java @@ -16,9 +16,9 @@ import com.navinfo.collect.library.sensor.ISensor.SensorWorkingMode; import com.navinfo.collect.library.sensor.ISensor.enmSensorType; import com.navinfo.collect.library.sensor.ISensor.enmSignalQuality; import com.navinfo.collect.library.sensor.SensorManager; -import com.navinfo.omqs.system.SystemConstant; +import com.navinfo.collect.library.utils.StringUtil; +import com.navinfo.omqs.Constant; import com.navinfo.omqs.util.ShareUtil; - import java.io.File; import java.util.ArrayList; import java.util.HashMap; @@ -392,7 +392,7 @@ public class TakePhotoManager { setCameraMode(indexClent, SensorWorkingMode.CAMERA_VEDIO_TIMELAPSE); - ShareUtil.getCameraMode(mCon).setContinusTakePhotoState(SystemConstant.USER_ID, false); + ShareUtil.getCameraMode(mCon).setContinusTakePhotoState(Constant.USER_ID, false); StartRecording(hostBean, indexClent); @@ -405,7 +405,7 @@ public class TakePhotoManager { if (hostBean != null) { CameraGarminVirbXE cameraGarminVirbXE = findCameraGarminVirbXE(hostBean, index); if (cameraGarminVirbXE != null) { - cameraGarminVirbXE.snapPicture(SystemConstant.getUuid(true)); + cameraGarminVirbXE.snapPicture(StringUtil.Companion.createUUID()); } } } diff --git a/app/src/main/java/com/navinfo/omqs/ui/widget/RecycleViewDivider.kt b/app/src/main/java/com/navinfo/omqs/ui/widget/RecycleViewDivider.kt new file mode 100644 index 00000000..7edd2369 --- /dev/null +++ b/app/src/main/java/com/navinfo/omqs/ui/widget/RecycleViewDivider.kt @@ -0,0 +1,144 @@ +package com.navinfo.omqs.ui.widget + +import android.content.Context +import android.graphics.Canvas +import android.graphics.Paint +import android.graphics.Rect +import android.graphics.drawable.Drawable +import android.view.View +import androidx.core.content.ContextCompat +import androidx.recyclerview.widget.DividerItemDecoration +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView + +/** + * Create by --- on 2018/12/6 0006. + *@description: + */ +/** + * 默认分割线:高度为2px,颜色为灰色 + * + * @param context + * @param orientation 列表方向 LinearLayoutManager.VERTICAL或LinearLayoutManager.HORIZONTAL + */ +class RecycleViewDivider(context: Context, private val mOrientation: Int) : RecyclerView.ItemDecoration() { + + private var mPaint: Paint? = null + private var mDivider: Drawable? = null + private var mDividerHeight = 2//分割线高度,默认为1px + + init { + if (mOrientation != LinearLayoutManager.VERTICAL && mOrientation != LinearLayoutManager.HORIZONTAL) { + throw IllegalArgumentException("请输入正确的参数!") + } + + val a = context.obtainStyledAttributes(ATTRS) + mDivider = a.getDrawable(0) + a.recycle() + } + + /** + * 自定义分割线 + * + * @param context + * @param orientation 列表方向 + * @param drawableId 分割线图片 + */ + constructor(context: Context, orientation: Int, drawableId: Int) : this(context, orientation) { + mDivider = ContextCompat.getDrawable(context, drawableId) + mDividerHeight = mDivider!!.intrinsicHeight + } + + /** + * 自定义分割线 + * + * @param context + * @param orientation 列表方向 + * @param dividerHeight 分割线高度 + * @param dividerColor 分割线颜色 + */ + constructor(context: Context, orientation: Int, dividerHeight: Int, dividerColor: Int) : this( + context, + orientation + ) { + mDividerHeight = dividerHeight + mPaint = Paint(Paint.ANTI_ALIAS_FLAG) + mPaint!!.color = dividerColor + mPaint!!.style = Paint.Style.FILL + } + + + //获取分割线尺寸 + override fun getItemOffsets(outRect: Rect, view: View, parent: RecyclerView, state: RecyclerView.State) { + super.getItemOffsets(outRect, view, parent, state) + if (mOrientation == LinearLayoutManager.VERTICAL) { + outRect.set(0, 0, 0, mDividerHeight) + } else { + outRect.set(0, 0, mDividerHeight, 0) + } + } + + //绘制分割线 + override fun onDraw(c: Canvas, parent: RecyclerView, state: RecyclerView.State) { + super.onDraw(c, parent, state) + if (mOrientation == LinearLayoutManager.VERTICAL) { + drawVertical(c, parent) + } else { + drawHorizontal(c, parent) + } + } + + /** + * 绘制纵向列表时的分隔线 这时分隔线是横着的 + * 每次 left相同,top根据child变化,right相同,bottom也变化 + * @param canvas + * @param parent + */ + private fun drawVertical(canvas: Canvas, parent: RecyclerView) { + val left = parent.paddingLeft + val right = parent.measuredWidth - parent.paddingRight + val childSize = parent.childCount + for (i in 0 until childSize) { + val child = parent.getChildAt(i) + val layoutParams = child.layoutParams as RecyclerView.LayoutParams + val top = child.bottom + layoutParams.bottomMargin + val bottom = top + mDividerHeight + if (mDivider != null) { + mDivider!!.setBounds(left, top, right, bottom) + mDivider!!.draw(canvas) + } + if (mPaint != null) { + canvas.drawRect(left.toFloat(), top.toFloat(), right.toFloat(), bottom.toFloat(), mPaint!!) + } + } + } + + /** + * 绘制横向列表时的分隔线 这时分隔线是竖着的 + * l、r 变化; t、b 不变 + * @param canvas + * @param parent + */ + private fun drawHorizontal(canvas: Canvas, parent: RecyclerView) { + val top = parent.paddingTop + val bottom = parent.measuredHeight - parent.paddingBottom + val childSize = parent.childCount + for (i in 0 until childSize) { + val child = parent.getChildAt(i) + val layoutParams = child.layoutParams as RecyclerView.LayoutParams + val left = child.right + layoutParams.rightMargin + val right = left + mDividerHeight + if (mDivider != null) { + mDivider!!.setBounds(left, top, right, bottom) + mDivider!!.draw(canvas) + } + if (mPaint != null) { + canvas.drawRect(left.toFloat(), top.toFloat(), right.toFloat(), bottom.toFloat(), mPaint!!) + } + } + } + + companion object { + private val ATTRS = intArrayOf(android.R.attr.listDivider) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/navinfo/omqs/system/SystemDateTime.java b/app/src/main/java/com/navinfo/omqs/util/DateTimeUtil.java similarity index 99% rename from app/src/main/java/com/navinfo/omqs/system/SystemDateTime.java rename to app/src/main/java/com/navinfo/omqs/util/DateTimeUtil.java index cc0539f3..c760ba75 100644 --- a/app/src/main/java/com/navinfo/omqs/system/SystemDateTime.java +++ b/app/src/main/java/com/navinfo/omqs/util/DateTimeUtil.java @@ -1,4 +1,4 @@ -package com.navinfo.omqs.system; +package com.navinfo.omqs.util; import java.text.ParseException; import java.text.ParsePosition; @@ -13,7 +13,7 @@ import java.util.Date; * @Date 2023年4月17日 下午1:56:02 * @Description: 时间工具类 */ -public class SystemDateTime { +public class DateTimeUtil { // 时间字符串 private static String systemDate; // 全部时间信息 diff --git a/app/src/main/java/com/navinfo/omqs/util/ShareUtil.java b/app/src/main/java/com/navinfo/omqs/util/ShareUtil.java index 54e2511e..b3441a8b 100644 --- a/app/src/main/java/com/navinfo/omqs/util/ShareUtil.java +++ b/app/src/main/java/com/navinfo/omqs/util/ShareUtil.java @@ -3,7 +3,7 @@ package com.navinfo.omqs.util; import android.content.Context; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; -import com.navinfo.omqs.system.SystemConstant; +import com.navinfo.omqs.Constant; /** * @ClassName: ShareUtil.java @@ -57,9 +57,9 @@ public class ShareUtil { return false; if(mSharePre==null){ - mSharePre = mContext.getSharedPreferences(SystemConstant.SELECT_CAMERA_STATE, Context.MODE_PRIVATE); + mSharePre = mContext.getSharedPreferences(Constant.SELECT_CAMERA_STATE, Context.MODE_PRIVATE); } - return mSharePre.getBoolean(mDeviceNum+SystemConstant.USER_ID+SELECT_CAMERA_KIND, false); + return mSharePre.getBoolean(mDeviceNum+Constant.USER_ID+SELECT_CAMERA_KIND, false); } /** @@ -76,7 +76,7 @@ public class ShareUtil { return ; if(mSharePre==null){ - mSharePre = mContext.getSharedPreferences(SystemConstant.SELECT_CAMERA_STATE, Context.MODE_PRIVATE); + mSharePre = mContext.getSharedPreferences(Constant.SELECT_CAMERA_STATE, Context.MODE_PRIVATE); } editor=mSharePre.edit(); @@ -98,10 +98,10 @@ public class ShareUtil { return true; if(mSharePre==null){ - mSharePre = mContext.getSharedPreferences(SystemConstant.SELECT_TAKEPHOTO_OR_RECORD, Context.MODE_PRIVATE); + mSharePre = mContext.getSharedPreferences(Constant.SELECT_TAKEPHOTO_OR_RECORD, Context.MODE_PRIVATE); } - return mSharePre.getBoolean(mDeviceNum+SystemConstant.USER_ID+SELECT_TAKE_PHOTO_OR_RECORD, mDeviceNum==1?true:false); + return mSharePre.getBoolean(mDeviceNum+Constant.USER_ID+SELECT_TAKE_PHOTO_OR_RECORD, mDeviceNum==1?true:false); } @@ -119,7 +119,7 @@ public class ShareUtil { return ; if(mSharePre==null){ - mSharePre = mContext.getSharedPreferences(SystemConstant.SELECT_TAKEPHOTO_OR_RECORD, Context.MODE_PRIVATE); + mSharePre = mContext.getSharedPreferences(Constant.SELECT_TAKEPHOTO_OR_RECORD, Context.MODE_PRIVATE); } editor=mSharePre.edit(); @@ -139,9 +139,9 @@ public class ShareUtil { return true; if(mSharePre==null){ - mSharePre = mContext.getSharedPreferences(SystemConstant.SELECT_CAMERA_STATE, Context.MODE_PRIVATE); + mSharePre = mContext.getSharedPreferences(Constant.SELECT_CAMERA_STATE, Context.MODE_PRIVATE); } - return mSharePre.getBoolean(mDeviceNum+SystemConstant.USER_ID+CONTINUS_TAKE_PHOTO_STATE, true); + return mSharePre.getBoolean(mDeviceNum+Constant.USER_ID+CONTINUS_TAKE_PHOTO_STATE, true); } @@ -159,7 +159,7 @@ public class ShareUtil { return ; if(mSharePre==null){ - mSharePre = mContext.getSharedPreferences(SystemConstant.SELECT_CAMERA_STATE, Context.MODE_PRIVATE); + mSharePre = mContext.getSharedPreferences(Constant.SELECT_CAMERA_STATE, Context.MODE_PRIVATE); } editor=mSharePre.edit(); @@ -178,9 +178,9 @@ public class ShareUtil { return false; if(mSharePre==null){ - mSharePre = mContext.getSharedPreferences(SystemConstant.CAMERA_CONNECT_STATE, Context.MODE_PRIVATE); + mSharePre = mContext.getSharedPreferences(Constant.CAMERA_CONNECT_STATE, Context.MODE_PRIVATE); } - return mSharePre.getBoolean(mDeviceNum+SystemConstant.USER_ID+CAMERA_CONNECT_STATE, false); + return mSharePre.getBoolean(mDeviceNum+Constant.USER_ID+CAMERA_CONNECT_STATE, false); } /** @@ -197,7 +197,7 @@ public class ShareUtil { return ; if(mSharePre==null){ - mSharePre = mContext.getSharedPreferences(SystemConstant.CAMERA_CONNECT_STATE, Context.MODE_PRIVATE); + mSharePre = mContext.getSharedPreferences(Constant.CAMERA_CONNECT_STATE, Context.MODE_PRIVATE); } editor=mSharePre.edit(); @@ -216,10 +216,10 @@ public class ShareUtil { return 0; if(mSharePre==null){ - mSharePre = mContext.getSharedPreferences(SystemConstant.TAKE_CAMERA_MODE, Context.MODE_PRIVATE); + mSharePre = mContext.getSharedPreferences(Constant.TAKE_CAMERA_MODE, Context.MODE_PRIVATE); } - return mSharePre.getInt(mDeviceNum+SystemConstant.USER_ID+TAKE_CAMERA_MODE, mDeviceNum==1?0:1); + return mSharePre.getInt(mDeviceNum+Constant.USER_ID+TAKE_CAMERA_MODE, mDeviceNum==1?0:1); } @@ -238,7 +238,7 @@ public class ShareUtil { if(mSharePre==null){ - mSharePre = mContext.getSharedPreferences(SystemConstant.TAKE_CAMERA_MODE, Context.MODE_PRIVATE); + mSharePre = mContext.getSharedPreferences(Constant.TAKE_CAMERA_MODE, Context.MODE_PRIVATE); } editor=mSharePre.edit(); @@ -257,9 +257,9 @@ public class ShareUtil { return ""; if(mSharePre==null){ - mSharePre = mContext.getSharedPreferences(SystemConstant.TAKE_CAMERA_IP, Context.MODE_PRIVATE); + mSharePre = mContext.getSharedPreferences(Constant.TAKE_CAMERA_IP, Context.MODE_PRIVATE); } - String ip=mSharePre.getString(mDeviceNum+SystemConstant.USER_ID+TAKE_CAMERA_IP, ""); + String ip=mSharePre.getString(mDeviceNum+Constant.USER_ID+TAKE_CAMERA_IP, ""); return ip; } @@ -277,7 +277,7 @@ public class ShareUtil { return ; if(mSharePre==null){ - mSharePre = mContext.getSharedPreferences(SystemConstant.TAKE_CAMERA_IP, Context.MODE_PRIVATE); + mSharePre = mContext.getSharedPreferences(Constant.TAKE_CAMERA_IP, Context.MODE_PRIVATE); } editor=mSharePre.edit(); @@ -297,9 +297,9 @@ public class ShareUtil { return ""; if(mSharePre==null){ - mSharePre = mContext.getSharedPreferences(SystemConstant.TAKE_CAMERA_MAC, Context.MODE_PRIVATE); + mSharePre = mContext.getSharedPreferences(Constant.TAKE_CAMERA_MAC, Context.MODE_PRIVATE); } - String mac=mSharePre.getString(mDeviceNum+SystemConstant.USER_ID+TAKE_CAMERA_MAC, ""); + String mac=mSharePre.getString(mDeviceNum+Constant.USER_ID+TAKE_CAMERA_MAC, ""); return mac; } @@ -317,7 +317,7 @@ public class ShareUtil { return ; if(mSharePre==null){ - mSharePre = mContext.getSharedPreferences(SystemConstant.TAKE_CAMERA_MAC, Context.MODE_PRIVATE); + mSharePre = mContext.getSharedPreferences(Constant.TAKE_CAMERA_MAC, Context.MODE_PRIVATE); } editor=mSharePre.edit(); diff --git a/app/src/main/res/color/common_dialog_confirm_text_selector.xml b/app/src/main/res/color/common_dialog_confirm_text_selector.xml index 7d3143dd..39807346 100644 --- a/app/src/main/res/color/common_dialog_confirm_text_selector.xml +++ b/app/src/main/res/color/common_dialog_confirm_text_selector.xml @@ -1,5 +1,5 @@ - + diff --git a/app/src/main/res/drawable/separator.xml b/app/src/main/res/drawable/separator.xml new file mode 100644 index 00000000..161848ea --- /dev/null +++ b/app/src/main/res/drawable/separator.xml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/adapter_offline_map_city.xml b/app/src/main/res/layout/adapter_offline_map_city.xml index 3f9f5700..fd9a2d21 100644 --- a/app/src/main/res/layout/adapter_offline_map_city.xml +++ b/app/src/main/res/layout/adapter_offline_map_city.xml @@ -4,7 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="@color/cv_bg_color" + android:background="@color/ivory" android:paddingLeft="10dp" android:paddingRight="10dp" android:paddingTop="5dp" @@ -15,19 +15,18 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="省市名称" - android:textColor="@color/white" + style="@style/map_size_font_style" android:textSize="@dimen/default_font_size" /> + android:text="文件大小" /> + style="@style/content_font_default_size_13sp" /> + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/adapter_task_list.xml b/app/src/main/res/layout/adapter_task_list.xml index e40e1db4..c1de572f 100644 --- a/app/src/main/res/layout/adapter_task_list.xml +++ b/app/src/main/res/layout/adapter_task_list.xml @@ -4,7 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="@color/cv_bg_color" + android:background="@color/ivory" android:paddingLeft="10dp" android:paddingRight="10dp" android:paddingTop="5dp" diff --git a/app/src/main/res/layout/transient_notification.xml b/app/src/main/res/layout/transient_notification.xml index 6c495d72..fa406fb0 100644 --- a/app/src/main/res/layout/transient_notification.xml +++ b/app/src/main/res/layout/transient_notification.xml @@ -32,6 +32,6 @@ android:shadowColor="#BB000000" android:shadowRadius="2.75" android:textAppearance="@android:style/TextAppearance.Small" - android:textColor="@android:color/background_light" /> + android:textColor="@android:color/white" /> \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 6e54318f..0c83ad36 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -1,17 +1,160 @@ - #FF000000 - #FFFFFFFF - #FF0000 #00000000 - #ff8d36 - #1abbfe #dadade + #3F51B5 + #303F9F + #FF4081 + #FFFFFF + #FFFFF0 + #FFFFE0 + #FFFF00 + #FFFAFA + #FFFAF0 + #FFFACD + #FFF8DC + #FFF5EE + #FFF0F5 + #FFEFD5 + #FFEBCD + #FFE4E1 + #FFE4C4 + #FFE4B5 + #FFDEAD + #FFDAB9 + #FFD700 + #FFC0CB + #FFB6C1 + #FFA500 + #FFA07A + #FF8C00 + #FF7F50 + #FF69B4 + #FF6347 + #FF4500 + #FF1493 + #FF00FF + #FF00FF + #FF0000 + #FDF5E6 + #FAFAD2 + #FAF0E6 + #FAEBD7 + #FA8072 + #F8F8FF + #F5FFFA + #F5F5F5 + #F5F5DC + #F5DEB3 + #F4A460 + #F0FFFF + #F0FFF0 + #F0F8FF + #F0E68C + #F08080 + #EEE8AA + #EE82EE + #E9967A + #E6E6FA + #E0FFFF + #DEB887 + #DDA0DD + #DCDCDC + #DC143C + #DB7093 + #DAA520 + #DA70D6 + #D8BFD8 + #D3D3D3 + #D3D3D3 + #D2B48C + #D2691E + #CD853F + #CD5C5C + #C71585 + #C0C0C0 + #BDB76B + #BC8F8F + #BA55D3 + #B8860B + #B22222 + #B0E0E6 + #B0C4DE + #AFEEEE + #ADFF2F + #ADD8E6 + #A9A9A9 + #A9A9A9 + #A52A2A + #A0522D + #9932CC + #98FB98 + #9400D3 + #9370DB + #90EE90 + #8FBC8F + #8B4513 + #8B008B + #8B0000 + #8A2BE2 + #87CEFA + #87CEEB + #808080 + #808080 + #808000 + #800080 + #800000 + #7FFFD4 + #7FFF00 + #7CFC00 + #7B68EE + #778899 + #778899 + #708090 + #708090 + #6B8E23 + #6A5ACD + #696969 + #696969 + #66CDAA + #6495ED + #5F9EA0 + #556B2F + #4B0082 + #48D1CC + #483D8B + #4682B4 + #4169E1 + #40E0D0 + #3CB371 + #32CD32 + #2F4F4F + #2F4F4F + #2E8B57 + #228B22 + #20B2AA + #1E90FF + #191970 + #00FFFF + #00FFFF + #00FF7F + #00FF00 + #00FA9A + #00CED1 + #00BFFF + #008B8B + #008080 + #008000 + #006400 + #0000FF + #0000CD + #00008B + #000080 + #000000 + #999999 #FF3B30 - #553C3F41 #108ee9 - #ffffffff #d1d1d1 diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 480ce172..7785420d 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -6,7 +6,7 @@ 8dp 176dp 10dp - 15dp + 15sp 13sp 10sp 1dp diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 4c69500a..857f9501 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -17,17 +17,27 @@ + +