Browse Source

refactor(更新) :
- 移除未使用的 `AuthDialog` 类及其布局文件
- 清理 `ArcsoftTestActivity` 中的人脸识别相关代码,移除无用逻辑和注释,优化日志输出
- 简化 `BleConnectionManager` 中的日志输出及空安全处理
- `BitmapUtil` 内容类型推断方法 `extFromContentType` 增加对 "image/jpg" 的处理
- `BaseFragment` 的 `refreshPage` 方法增加日志输出
- 移除部分 XML 布局和配置文件中多余的注释和空行
- 移除多个类中未使用的导入和变量
- 统一 `BleConnectionManager` 和 `BusinessManager` 中异常日志的输出格式
- 优化 `BleQueueDispatcher` 中检查设备连接状态的逻辑

周文健 1 month ago
parent
commit
d284fc9958
29 changed files with 59 additions and 406 deletions
  1. 1 1
      app/src/main/java/com/grkj/iscs_mars/BusinessManager.kt
  2. 0 1
      app/src/main/java/com/grkj/iscs_mars/MyApplication.kt
  3. 0 14
      app/src/main/java/com/grkj/iscs_mars/ble/BleCmdManager.kt
  4. 11 11
      app/src/main/java/com/grkj/iscs_mars/ble/BleConnectionManager.kt
  5. 13 9
      app/src/main/java/com/grkj/iscs_mars/ble/BleQueueDispatcher.kt
  6. 3 2
      app/src/main/java/com/grkj/iscs_mars/ble/BleReturnDispatcher.kt
  7. 0 2
      app/src/main/java/com/grkj/iscs_mars/ble/BleUtil.kt
  8. 0 4
      app/src/main/java/com/grkj/iscs_mars/extentions/Context.kt
  9. 3 245
      app/src/main/java/com/grkj/iscs_mars/util/ActivityUtils.kt
  10. 11 12
      app/src/main/java/com/grkj/iscs_mars/util/BitmapUtil.kt
  11. 5 2
      app/src/main/java/com/grkj/iscs_mars/util/CommonUtils.kt
  12. 0 4
      app/src/main/java/com/grkj/iscs_mars/util/NetApi.kt
  13. 0 2
      app/src/main/java/com/grkj/iscs_mars/view/activity/HomeActivity.kt
  14. 2 27
      app/src/main/java/com/grkj/iscs_mars/view/activity/test/face/arcsoft/ArcsoftTestActivity.kt
  15. 4 1
      app/src/main/java/com/grkj/iscs_mars/view/base/BaseFragment.kt
  16. 0 22
      app/src/main/java/com/grkj/iscs_mars/view/dialog/AuthDialog.kt
  17. 0 1
      app/src/main/java/com/grkj/iscs_mars/view/fragment/EmptyFragment.kt
  18. 0 1
      app/src/main/java/com/grkj/iscs_mars/view/fragment/JobProgressFragment.kt
  19. 0 1
      app/src/main/java/com/grkj/iscs_mars/view/fragment/SettingFragment.kt
  20. 0 2
      app/src/main/java/com/grkj/iscs_mars/view/presenter/HomePresenter.kt
  21. 0 1
      app/src/main/java/com/grkj/iscs_mars/view/presenter/LoginPresenter.kt
  22. 0 1
      app/src/main/java/com/grkj/iscs_mars/view/presenter/StepPresenter.kt
  23. 6 7
      app/src/main/java/com/grkj/iscs_mars/view/widget/CustomMarkLayer.kt
  24. 0 5
      app/src/main/res/layout/activity_arcsoft_test.xml
  25. 0 10
      app/src/main/res/layout/layout_selectable_input.xml
  26. 0 2
      app/src/main/res/values-night/themes.xml
  27. 0 2
      app/src/main/res/values/themes.xml
  28. 0 4
      app/src/main/res/xml/backup_rules.xml
  29. 0 10
      app/src/main/res/xml/data_extraction_rules.xml

+ 1 - 1
app/src/main/java/com/grkj/iscs_mars/BusinessManager.kt

@@ -1448,7 +1448,7 @@ object BusinessManager {
                 data: ByteArray?,
                 isTotalFail: Boolean
             ) {
-                LogUtil.e("switch mode work fail : ${exception?.code} - ${exception?.description}")
+                LogUtil.e("switch mode work fail : ${exception.code} - ${exception.description}")
                 Executor.delayOnMain(500) {
                     switchWorkMode(bleDevice, isNeedLoading)
                 }

+ 0 - 1
app/src/main/java/com/grkj/iscs_mars/MyApplication.kt

@@ -16,7 +16,6 @@ import com.grkj.iscs_mars.util.NetHttpManager
 import com.grkj.iscs_mars.util.SPUtils
 import com.grkj.iscs_mars.util.log.LogUtil
 import com.grkj.iscs_mars.websocket.WebSocketConfig
-import com.lztek.toolkit.Lztek
 import com.sik.cronjob.managers.CronJobManager
 import com.sik.sikcore.SIKCore
 

+ 0 - 14
app/src/main/java/com/grkj/iscs_mars/ble/BleCmdManager.kt

@@ -73,13 +73,6 @@ object BleCmdManager {
     }
 
     fun handleRsp(bleBean: BleBean, byteArray: ByteArray) {
-//        val len = byteArray[2].toInt()
-//        val token = byteArray.copyOfRange(len + 7, len + 11)
-//        if (token.contentEquals(bleBean.token)) {
-//            LogUtil.i("Token is right")
-//        } else {
-//            LogUtil.e("Token is wrong")
-//        }
         when {
             // 获取令牌
             byteArray.startsWith(BleConst.RSP_GET_TOKEN) -> handleToken(
@@ -197,7 +190,6 @@ object BleCmdManager {
         } else {
             json.toByteArray().copyOfRange(idx * 128, (idx + 1) * 128)
         }
-//        val jsonInfo = total + idx.toByteArray() + CRC16.crc16(data, 0, data.size - 1).toByteArray() + data.size.toByteArray() + data
         val jsonInfo =
             total + idx.toByteArray() + data.crc16(0, data.size) + data.size.toByteArray() + data
         LogUtil.d(
@@ -559,14 +551,8 @@ object BleCmdManager {
 
             val fileInfo =
                 byteArrayOf(type.toByte()) + flnm + flsz + flcrc + pgtotal.toByteArray() + idx.toByteArray() + pgcrc + pgsz + pgdata
-//        println("______________________________________________________________________________")
-//        println("${file.readBytes().size}")
-//        println("${byteArrayOf(type.toByte()).size} : ${flnm.size} : ${flsz.size} : ${flcrc.size} : ${pgtotal.toByteArray().size} : ${idx.toByteArray().size} : ${pgcrc.size} : ${pgsz.size} : ${pgdata.size}")
-//        println("______________________________________________________________________________")
-//        println("file info size : ${fileInfo.size}")
             val cmd =
                 REQ_TRANSFER_FILE + (fileInfo.size + 1).toByteArray(1) + 0x01.toByteArray(1) + fileInfo
-//        println("cmd size : ${REQ_TRANSFER_FILE.size} : ${(fileInfo.size + 1).toByteArray(1).size} : ${0x01.toByteArray(1).size} : ${fileInfo.size}")
 
             BusinessManager.getBleDeviceByMac(mac)?.let {
                 BleUtil.instance?.write(

+ 11 - 11
app/src/main/java/com/grkj/iscs_mars/ble/BleConnectionManager.kt

@@ -291,14 +291,14 @@ object BleConnectionManager {
             }
 
             override fun onScanFinished(scanResultList: List<BleDevice>) {
-                LogUtil.i("蓝牙连接-onScanFinished: $mac - ${scanResultList?.none { it.mac == mac }}")
+                LogUtil.i("蓝牙连接-onScanFinished: $mac - ${scanResultList.none { it.mac == mac }}")
                 if (isNeedLoading) sendEventMsg(
                     MsgEvent(
                         MSG_EVENT_LOADING, LoadingMsg(false, null, null)
                     )
                 )
                 // 没有扫描到
-                if (scanResultList?.none { it.mac == mac } == true) {
+                if (scanResultList.none { it.mac == mac } == true) {
                     LogUtil.w("$mac is not scanned")
                     prepareDoneCallBack?.invoke(false, null)
                 }
@@ -354,7 +354,7 @@ object BleConnectionManager {
                                 )
                             )
                         )
-                        LogUtil.e("蓝牙连接-onConnectFail : ${bleDevice?.mac} - ${exception?.description}")
+                        LogUtil.e("蓝牙连接-onConnectFail : ${bleDevice?.mac} - ${exception.description}")
                         prepareDoneCallBack?.invoke(false, null)
                     }
 
@@ -368,8 +368,8 @@ object BleConnectionManager {
                                 MSG_EVENT_LOADING, LoadingMsg(false, null, null)
                             )
                         )
-                        LogUtil.i("蓝牙连接-onConnectSuccess : ${bleDevice?.mac}")
-                        bleDevice?.let {
+                        LogUtil.i("蓝牙连接-onConnectSuccess : ${bleDevice.mac}")
+                        bleDevice.let {
                             deviceList.removeIf { it.bleDevice.mac == bleDevice.mac }
                             val bleBean = BleBean(it)
                             deviceList.add(bleBean)
@@ -396,7 +396,7 @@ object BleConnectionManager {
                                 MSG_EVENT_LOADING, LoadingMsg(false, null, false)
                             )
                         )
-                        LogUtil.i("蓝牙连接-onDisConnected : ${device?.mac} - $isActiveDisConnected")
+                        LogUtil.i("蓝牙连接-onDisConnected : ${device.mac} - $isActiveDisConnected")
                         if (BleSendDispatcher.isConnected(bleDevice.mac)) {
                             BleSendDispatcher.clear(bleDevice.mac)
                         }
@@ -425,7 +425,7 @@ object BleConnectionManager {
                                 MSG_EVENT_LOADING, LoadingMsg(false, null, false)
                             )
                         )
-                        LogUtil.i("蓝牙连接-onConnectCancel : ${bleDevice?.mac}")
+                        LogUtil.i("蓝牙连接-onConnectCancel : ${bleDevice.mac}")
                     }
                 })
         }
@@ -479,7 +479,7 @@ object BleConnectionManager {
                                 MSG_EVENT_LOADING, LoadingMsg(false, null, false)
                             )
                         )
-                        LogUtil.e("蓝牙连接-onIndicateFailure : ${bleBean.bleDevice.mac} - ${exception?.description}")
+                        LogUtil.e("蓝牙连接-onIndicateFailure : ${bleBean.bleDevice.mac} - ${exception.description}")
                         Executor.delayOnIO(500) {
                             if (isIndicateSuccess) {
                                 return@delayOnIO
@@ -645,12 +645,12 @@ object BleConnectionManager {
                     newDevice: BleDevice,
                     scannedBefore: Boolean
                 ) {
-                    val mac = newDevice?.mac ?: return
+                    val mac = newDevice.mac
                     LogUtil.i("设备录入-onScanning:$mac")
                 }
 
                 override fun onScanFinished(scanResultList: List<BleDevice>) {
-                    val devicesSnapshot = scanResultList?.toList().orEmpty()
+                    val devicesSnapshot = scanResultList.toList().orEmpty()
                     ThreadUtils.runOnIO {
                         val handlerDeviceSize = AtomicInteger(0)
                         devicesSnapshot.forEach {
@@ -789,7 +789,7 @@ object BleConnectionManager {
                 newDevice: BleDevice,
                 scannedBefore: Boolean
             ) {
-                val mac = newDevice?.mac ?: return
+                val mac = newDevice.mac ?: return
                 LogUtil.d("设备录入-onScanning:$mac")
                 if (mac !in existsMac) {
                     callback(newDevice)

+ 13 - 9
app/src/main/java/com/grkj/iscs_mars/ble/BleQueueDispatcher.kt

@@ -61,15 +61,19 @@ abstract class BleQueueDispatcher {
         if (activeMacs.containsKey(mac) || taskQueue.any { it.first == mac } || connectedMacs.contains(
                 mac
             )) {
-            if (connectedMacs.contains(mac)) {
-                LogUtil.i("${this::class.java} 检查到钥匙已连接")
-                onResult(true)
-            } else if (activeMacs.containsKey(mac)) {
-                LogUtil.i("${this::class.java} 检查到钥匙连接中添加回调")
-                activeMacs[mac]?.add(onResult)
-            } else if (taskQueue.find { it.first == mac } != null) {
-                LogUtil.i("${this::class.java} 检查到钥匙队列中添加回调")
-                taskQueue.find { it.first == mac }?.second?.add(onResult)
+            when {
+                connectedMacs.contains(mac) -> {
+                    LogUtil.i("${this::class.java} 检查到钥匙已连接")
+                    onResult(true)
+                }
+                activeMacs.containsKey(mac) -> {
+                    LogUtil.i("${this::class.java} 检查到钥匙连接中添加回调")
+                    activeMacs[mac]?.add(onResult)
+                }
+                taskQueue.find { it.first == mac } != null -> {
+                    LogUtil.i("${this::class.java} 检查到钥匙队列中添加回调")
+                    taskQueue.find { it.first == mac }?.second?.add(onResult)
+                }
             }
             // 如果已存在断连计划,取消它
             pendingDisconnectJobs.remove(mac)?.cancel()

+ 3 - 2
app/src/main/java/com/grkj/iscs_mars/ble/BleReturnDispatcher.kt

@@ -3,7 +3,6 @@ package com.grkj.iscs_mars.ble
 import com.grkj.iscs_mars.BusinessManager
 import com.grkj.iscs_mars.R
 import com.grkj.iscs_mars.util.CommonUtils
-import com.sik.sikcore.SIKCore
 import com.sik.sikcore.thread.ThreadUtils
 
 object BleReturnDispatcher : BleQueueDispatcher() {
@@ -11,7 +10,9 @@ object BleReturnDispatcher : BleQueueDispatcher() {
 
     override fun doConnect(mac: String, callback: (Boolean) -> Unit) {
         ThreadUtils.runOnMain {
-            BusinessManager.sendLoadingEventMsg(CommonUtils.getStr(R.string.loading_msg_return_key_start).toString())
+            BusinessManager.sendLoadingEventMsg(
+                CommonUtils.getStr(R.string.loading_msg_return_key_start).toString()
+            )
         }
         ThreadUtils.runOnIO {
             val isConnected = BleConnectionManager.tryConnectWithOptionalCharge(mac, isSend = false)

+ 0 - 2
app/src/main/java/com/grkj/iscs_mars/ble/BleUtil.kt

@@ -156,8 +156,6 @@ class BleUtil private constructor() {
         isStart: Boolean = true,
         indicateCallback: CustomBleIndicateCallback?
     ) {
-        // stopIndicate包含removeIndicateCallback
-//        BleManager.removeIndicateCallback(bleDevice, indicateUUID)
         BleManager.stopIndicate(bleDevice, serviceUUID, indicateUUID)
         if (!isStart) {
             return

+ 0 - 4
app/src/main/java/com/grkj/iscs_mars/extentions/Context.kt

@@ -1,16 +1,12 @@
 package com.grkj.iscs_mars.extentions
 
-import android.Manifest
 import android.annotation.SuppressLint
 import android.content.Context
 import android.content.pm.PackageManager
-import android.os.Build
-import androidx.core.app.ActivityCompat
 import androidx.core.content.ContextCompat
 import androidx.lifecycle.Observer
 import com.grkj.iscs_mars.util.NetManager
 import com.sik.sikcore.device.DeviceUtils
-import java.util.Locale
 
 /**
  * 网络管理器

+ 3 - 245
app/src/main/java/com/grkj/iscs_mars/util/ActivityUtils.kt

@@ -1,17 +1,7 @@
 package com.grkj.iscs_mars.util
 
-import android.R
 import android.app.Activity
-import android.app.ActivityOptions
-import android.content.Context
-import android.content.Intent
-import android.os.Bundle
-import android.util.Pair
-import android.view.View
-import androidx.core.app.ActivityCompat
-import androidx.core.app.ActivityOptionsCompat
-import java.util.*
-import kotlin.system.exitProcess
+import java.util.Stack
 
 /**
  * @author tamsiree
@@ -23,34 +13,6 @@ import kotlin.system.exitProcess
 object ActivityUtils {
     var activityStack: Stack<Activity?>? = null
 
-    /**
-     * 获取栈中指定Activity实例
-     *
-     * @param T activity
-     * @return 栈中存在的指定Activity/null
-     */
-    inline fun <reified T>  getSpecActivity(): T? {
-        activityStack?.forEach {
-            it?.let { itActivity ->
-                if (itActivity is T) {
-                    return itActivity
-                }
-            }
-        }
-        return null
-    }
-
-    /**
-     * 清理指定activity之后的activity
-     */
-    inline fun <reified T> clearSpecTop() {
-        activityStack?.asReversed()?.forEach {
-            if (it !is T) {
-                it?.finish()
-            }
-        }
-    }
-
     /**
      * 添加Activity 到栈
      *
@@ -71,14 +33,11 @@ object ActivityUtils {
      */
     @JvmStatic
     fun removeActivity(activity: Activity?) {
-        if (activity != null) {
-            if (activityStack!!.contains(activity)) {
-                activityStack?.remove(activity)
-            }
+        if (activity != null && activityStack!!.contains(activity)) {
+            activityStack?.remove(activity)
         }
     }
 
-
     /**
      * 获取当前的Activity(堆栈中最后一个压入的)
      */
@@ -86,205 +45,4 @@ object ActivityUtils {
     fun currentActivity(): Activity? {
         return activityStack?.lastElement()
     }
-
-    /**
-     * 结束当前Activity(堆栈中最后一个压入的)
-     */
-    @JvmStatic
-    @JvmOverloads
-    fun finishActivity(isTransition: Boolean = false) {
-        val activity = activityStack?.lastElement()
-        if (isTransition) {
-            activity?.onBackPressed()
-        } else {
-            activity?.finish()
-        }
-    }
-
-    /**
-     * 结束指定类名的Activity
-     */
-    @JvmStatic
-    fun finishActivity(cls: Class<out Activity>) {
-        for (activity in activityStack!!) {
-            if (activity!!.javaClass == cls) {
-                finishActivity(activity)
-            }
-        }
-    }
-
-    /**
-     * 结束所有的Activity
-     */
-    @JvmStatic
-    fun finishAllActivity() {
-        val size = activityStack!!.size
-        for (i in 0 until size) {
-            if (null != activityStack!![i]) {
-                activityStack!![i]!!.finish()
-            }
-        }
-        activityStack!!.clear()
-        exitProcess(0)
-    }
-
-    /**
-     * 判断是否存在指定Activity
-     *
-     * @param context     上下文
-     * @param packageName 包名
-     * @param className   activity全路径类名
-     * @return `true`: 是<br></br>`false`: 否
-     */
-    @JvmStatic
-    fun isExistActivity(context: Context, packageName: String?, className: String?): Boolean {
-        val intent = Intent()
-        intent.setClassName(packageName!!, className!!)
-        return !(context.packageManager.resolveActivity(intent, 0) == null || intent.resolveActivity(context.packageManager) == null || context.packageManager.queryIntentActivities(intent, 0).size == 0)
-    }
-
-    /**
-     * 要求最低API为11
-     * Activity 跳转
-     * 跳转后Finish之前所有的Activity
-     *
-     * @param context Context
-     * @param goal    Activity
-     */
-    /**
-     * 要求最低API为11
-     * Activity 跳转
-     * 跳转后Finish之前所有的Activity
-     *
-     * @param context Context
-     * @param goal    Activity
-     */
-    @JvmStatic
-    @JvmOverloads
-    fun skipActivityAndFinishAll(context: Context, goal: Class<out Activity>?, bundle: Bundle? = null, isFade: Boolean = false) {
-        val intent = Intent(context, goal)
-        if (bundle != null) {
-            intent.putExtras(bundle)
-        }
-        intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
-        context.startActivity(intent)
-        finishActivity(context, false)
-        if (isFade) {
-            fadeTransition(context)
-        }
-    }
-
-    /**
-     * Activity 跳转
-     *
-     * @param context Context
-     * @param goal    Activity
-     */
-    @JvmStatic
-    fun skipActivityAndFinish(context: Context, goal: Class<out Activity>?, isFade: Boolean = false, isTransition: Boolean = false) {
-        skipActivity(context, goal, null, isFade)
-        finishActivity(context, isTransition)
-    }
-
-    /**
-     * Activity 跳转
-     *
-     * @param context Context
-     * @param goal    Activity
-     */
-    @JvmStatic
-    @JvmOverloads
-    fun skipActivityAndFinish(context: Context, goal: Class<out Activity>?, bundle: Bundle? = null, isFade: Boolean = false, isTransition: Boolean = false) {
-        skipActivity(context, goal, bundle, isFade)
-        finishActivity(context, isTransition)
-    }
-
-    /**
-     * Activity 跳转
-     *
-     * @param context Context
-     * @param goal    Activity
-     */
-    @JvmStatic
-    @JvmOverloads
-    fun skipActivity(context: Context, goal: Class<out Activity>?, bundle: Bundle? = null, isFade: Boolean = false) {
-        val intent = Intent(context, goal)
-        if (bundle != null) {
-            intent.putExtras(bundle)
-        }
-        context.startActivity(intent)
-        if (isFade) {
-            fadeTransition(context)
-        }
-    }
-
-    @JvmStatic
-    @JvmOverloads
-    fun skipActivityForResult(context: Activity, goal: Class<out Activity>?, bundle: Bundle? = null, requestCode: Int) {
-        val intent = Intent(context, goal)
-        if (bundle != null) {
-            intent.putExtras(bundle)
-        }
-        context.startActivityForResult(intent, requestCode)
-    }
-
-    @JvmStatic
-    @JvmOverloads
-    fun skipActivityOnTransitions(mContext: Context?, goal: Class<out Activity>?, bundle: Bundle? = null, vararg pairs: Pair<View, String>?) {
-        val intent = Intent(mContext, goal)
-        val bundle1 = ActivityOptions.makeSceneTransitionAnimation(mContext as Activity?, *pairs).toBundle()
-        if (bundle != null) {
-            intent.putExtras(bundle)
-        }
-        ActivityCompat.startActivity(mContext!!, intent, bundle1)
-    }
-
-    @JvmStatic
-    @JvmOverloads
-    fun skipActivityTransition(mContext: Context, goal: Class<out Activity>?, bundle: Bundle? = null, view: View?, elementName: String?) {
-        val intent = Intent(mContext, goal)
-        val bundle1 = ActivityOptionsCompat.makeSceneTransitionAnimation((mContext as Activity), view!!, elementName!!).toBundle()
-        if (bundle != null) {
-            intent.putExtras(bundle)
-        }
-        mContext.startActivity(intent, bundle1)
-    }
-
-    /**
-     * 获取launcher activity
-     *
-     * @param context     上下文
-     * @param packageName 包名
-     * @return launcher activity
-     */
-    @JvmStatic
-    fun getLauncherActivity(context: Context, packageName: String): String {
-        val intent = Intent(Intent.ACTION_MAIN, null)
-        intent.addCategory(Intent.CATEGORY_LAUNCHER)
-        val pm = context.packageManager
-        val infos = pm.queryIntentActivities(intent, 0)
-        for (info in infos) {
-            if (info.activityInfo.packageName == packageName) {
-                return info.activityInfo.name
-            }
-        }
-        return "no $packageName"
-    }
-
-    @JvmStatic
-    @JvmOverloads
-    fun finishActivity(mContext: Context, isTransition: Boolean = false) {
-        removeActivity((mContext as Activity))
-        if (isTransition) {
-            mContext.onBackPressed()
-        } else {
-            mContext.finish()
-        }
-    }
-
-    @JvmStatic
-    fun fadeTransition(mContext: Context) {
-        (mContext as Activity).overridePendingTransition(R.anim.fade_in, R.anim.fade_out)
-    }
-
 }

+ 11 - 12
app/src/main/java/com/grkj/iscs_mars/util/BitmapUtil.kt

@@ -18,7 +18,6 @@ import coil.request.ImageRequest
 import coil.request.SuccessResult
 import coil.size.Size
 import com.bumptech.glide.Glide
-import com.bumptech.glide.Priority
 import com.bumptech.glide.load.DataSource
 import com.bumptech.glide.load.DecodeFormat
 import com.bumptech.glide.load.engine.DiskCacheStrategy
@@ -30,7 +29,6 @@ import com.bumptech.glide.request.target.Target
 import com.bumptech.glide.request.transition.Transition
 import com.grkj.iscs_mars.util.log.LogUtil
 import com.sik.sikcore.SIKCore
-import com.sik.siknet.http.httpDownloadFile
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.isActive
 import kotlinx.coroutines.withContext
@@ -78,21 +76,22 @@ object BitmapUtil {
 
     private fun extFromUrl(url: String): String? {
         val last = url.substringBefore('#').substringBefore('?').substringAfterLast('/', "")
-        val ext  = last.substringAfterLast('.', "").lowercase()
+        val ext = last.substringAfterLast('.', "").lowercase()
         return ext.takeIf { it.isNotEmpty() && it.length <= 5 }
     }
 
     private fun extFromContentType(ct: String?): String? {
         if (ct.isNullOrBlank()) return null
         return when (ct.substringBefore(';').trim().lowercase()) {
-            "image/png"      -> "png"
+            "image/png" -> "png"
             "image/jpeg",
-            "image/jpg"      -> "jpg"
-            "image/webp"     -> "webp"
-            "image/gif"      -> "gif"
-            "image/bmp"      -> "bmp"
-            "image/svg+xml"  -> "svg"
-            else             -> null
+            "image/jpg" -> "jpg"
+
+            "image/webp" -> "webp"
+            "image/gif" -> "gif"
+            "image/bmp" -> "bmp"
+            "image/svg+xml" -> "svg"
+            else -> null
         }
     }
 
@@ -109,7 +108,7 @@ object BitmapUtil {
 
                     // 1) 后缀推断
                     val urlExt = extFromUrl(url)
-                    val ctExt  = extFromContentType(resp.header("Content-Type"))
+                    val ctExt = extFromContentType(resp.header("Content-Type"))
                     val finalExt = (urlExt ?: ctExt)?.let { ".$it" } ?: ""
 
                     // 2) 目标文件
@@ -520,7 +519,7 @@ object BitmapUtil {
             return null
         }
 
-        val app = SIKCore.getApplication() ?: return null
+        val app = SIKCore.getApplication()
 
         // 懒加载一个带 SvgDecoder 的 ImageLoader(只建一次)
         val loader by lazy {

+ 5 - 2
app/src/main/java/com/grkj/iscs_mars/util/CommonUtils.kt

@@ -16,7 +16,6 @@ import com.grkj.iscs_mars.model.Constants.PERMISSION_REQUEST_CODE
 import pub.devrel.easypermissions.EasyPermissions
 import java.text.SimpleDateFormat
 import java.util.Locale
-import kotlin.system.exitProcess
 
 object CommonUtils {
 
@@ -32,7 +31,11 @@ object CommonUtils {
         return pxValue / density
     }
 
-    fun checkPermission(activity: AppCompatActivity, permissions: Array<String>, callBack: () -> Unit) {
+    fun checkPermission(
+        activity: AppCompatActivity,
+        permissions: Array<String>,
+        callBack: () -> Unit
+    ) {
         val isPermission = EasyPermissions.hasPermissions(activity, *permissions)
         if (isPermission) {
             callBack.invoke()

+ 0 - 4
app/src/main/java/com/grkj/iscs_mars/util/NetApi.kt

@@ -1,14 +1,10 @@
 package com.grkj.iscs_mars.util
 
 import android.graphics.Bitmap
-import com.google.gson.Gson
-import com.google.gson.reflect.TypeToken
 import com.grkj.iscs_mars.BusinessManager
 import com.grkj.iscs_mars.MyApplication
-import com.grkj.iscs_mars.model.SimData
 import com.grkj.iscs_mars.model.Token
 import com.grkj.iscs_mars.model.UrlConsts
-import com.grkj.iscs_mars.model.vo.BaseVO
 import com.grkj.iscs_mars.model.vo.FileStreamReqParam
 import com.grkj.iscs_mars.model.vo.cabinet.LockCabinetPageRespVO
 import com.grkj.iscs_mars.model.vo.card.CardInfoRespVO

+ 0 - 2
app/src/main/java/com/grkj/iscs_mars/view/activity/HomeActivity.kt

@@ -1,6 +1,5 @@
 package com.grkj.iscs_mars.view.activity
 
-import android.content.Intent
 import android.view.InputDevice
 import android.view.KeyEvent
 import android.widget.ImageView
@@ -35,7 +34,6 @@ import com.grkj.iscs_mars.view.fragment.DockTestFragment
 import com.grkj.iscs_mars.view.fragment.ExceptionReportFragment
 import com.grkj.iscs_mars.view.fragment.JobManagementFragment
 import com.grkj.iscs_mars.view.fragment.SettingFragment
-import com.grkj.iscs_mars.view.fragment.SwitchStatusFragment
 import com.grkj.iscs_mars.view.fragment.SystemSettingFragment
 import com.grkj.iscs_mars.view.iview.IHomeView
 import com.grkj.iscs_mars.view.presenter.HomePresenter

+ 2 - 27
app/src/main/java/com/grkj/iscs_mars/view/activity/test/face/arcsoft/ArcsoftTestActivity.kt

@@ -106,6 +106,7 @@ class ArcsoftTestActivity : BaseActivity<ActivityArcsoftTestBinding>(), OnGlobal
         )
         LogUtil.i("initEngine:  init: $afCode")
         if (afCode != ErrorInfo.MOK) {
+            LogUtil.i("初始化失败:${afCode}")
         }
     }
 
@@ -144,11 +145,7 @@ class ArcsoftTestActivity : BaseActivity<ActivityArcsoftTestBinding>(), OnGlobal
 
 
             override fun onPreview(nv21: ByteArray?, camera: Camera?) {
-//                if (faceRectView != null) {
-//                    faceRectView.clearFaceInfo()
-//                }
                 val faceInfoList: List<FaceInfo> = ArrayList()
-                //                long start = System.currentTimeMillis();
                 var code = faceEngine!!.detectFaces(
                     nv21,
                     previewSize!!.width,
@@ -156,7 +153,7 @@ class ArcsoftTestActivity : BaseActivity<ActivityArcsoftTestBinding>(), OnGlobal
                     FaceEngine.CP_PAF_NV21,
                     faceInfoList
                 )
-                if (code == ErrorInfo.MOK && faceInfoList.size > 0) {
+                if (code == ErrorInfo.MOK && faceInfoList.isNotEmpty()) {
                     code = faceEngine!!.process(
                         nv21,
                         previewSize!!.width,
@@ -174,7 +171,6 @@ class ArcsoftTestActivity : BaseActivity<ActivityArcsoftTestBinding>(), OnGlobal
 
                 val ageInfoList: List<AgeInfo> = ArrayList()
                 val genderInfoList: List<GenderInfo> = ArrayList()
-                val face3DAngleList: List<Face3DAngle> = ArrayList()
                 val faceLivenessInfoList: List<LivenessInfo> = ArrayList()
                 val ageCode = faceEngine!!.getAge(ageInfoList)
                 val genderCode = faceEngine!!.getGender(genderInfoList)
@@ -190,31 +186,13 @@ class ArcsoftTestActivity : BaseActivity<ActivityArcsoftTestBinding>(), OnGlobal
                 if (faceLivenessInfoList.none { it.liveness == LivenessInfo.ALIVE }) {
                     return
                 }
-//                val bitmap = FaceUtils.getFaceBitmap(nv21!!, previewSize!!.width, previewSize!!.height, faceInfoList[0])
                 val bitmap = NV21ToBitmap(this@ArcsoftTestActivity).nv21ToBitmap(
                     nv21,
                     previewSize!!.width,
                     previewSize!!.height
                 )
-//                val bitmap = BitmapUtil.convertNV21ToBitmap(nv21, previewSize!!.width, previewSize!!.height)
                 LogUtil.i("识别结果 : ${bitmap == null} - $faceInfoList")
                 mBinding?.ivCapture?.setImageBitmap(bitmap)
-//                if (faceRectView != null && drawHelper != null) {
-//                    val drawInfoList: MutableList<DrawInfo> = ArrayList<DrawInfo>()
-//                    for (i in faceInfoList.indices) {
-//                        drawInfoList.add(
-//                            DrawInfo(
-//                                drawHelper.adjustRect(faceInfoList[i].rect),
-//                                genderInfoList[i].gender,
-//                                ageInfoList[i].age,
-//                                faceLivenessInfoList[i].liveness,
-//                                RecognizeColor.COLOR_UNKNOWN,
-//                                null
-//                            )
-//                        )
-//                    }
-//                    drawHelper.draw(faceRectView, drawInfoList)
-//                }
             }
 
             override fun onCameraClosed() {
@@ -226,9 +204,6 @@ class ArcsoftTestActivity : BaseActivity<ActivityArcsoftTestBinding>(), OnGlobal
             }
 
             override fun onCameraConfigurationChanged(cameraID: Int, displayOrientation: Int) {
-//                if (drawHelper != null) {
-//                    drawHelper.setCameraDisplayOrientation(displayOrientation)
-//                }
                 LogUtil.i("onCameraConfigurationChanged: $cameraID  $displayOrientation")
             }
         }

+ 4 - 1
app/src/main/java/com/grkj/iscs_mars/view/base/BaseFragment.kt

@@ -7,6 +7,7 @@ import android.view.ViewGroup
 import androidx.fragment.app.Fragment
 import androidx.viewbinding.ViewBinding
 import com.grkj.iscs_mars.model.bo.PageChangeBO
+import com.grkj.iscs_mars.util.log.LogUtil
 import com.grkj.iscs_mars.view.dialog.LoadingProgressDialog
 
 abstract class BaseFragment<T : ViewBinding?> : Fragment() {
@@ -42,5 +43,7 @@ abstract class BaseFragment<T : ViewBinding?> : Fragment() {
         }
     }
 
-    open fun refreshPage(pageChangeBO: PageChangeBO) {}
+    open fun refreshPage(pageChangeBO: PageChangeBO) {
+        LogUtil.i("刷新页面")
+    }
 }

+ 0 - 22
app/src/main/java/com/grkj/iscs_mars/view/dialog/AuthDialog.kt

@@ -1,22 +0,0 @@
-package com.grkj.iscs_mars.view.dialog
-
-import android.content.Context
-import com.grkj.iscs_mars.view.base.BaseDialog
-import com.grkj.iscs_mars.databinding.DialogAuthBinding
-
-class AuthDialog(ctx: Context) : BaseDialog<DialogAuthBinding>(ctx) {
-
-    override val viewBinding: DialogAuthBinding
-        get() = DialogAuthBinding.inflate(layoutInflater)
-
-    override fun initView() {
-
-    }
-
-    /**
-     * 更新结果
-     */
-    fun updateResult(isSuccess: Boolean) {
-
-    }
-}

+ 0 - 1
app/src/main/java/com/grkj/iscs_mars/view/fragment/EmptyFragment.kt

@@ -2,7 +2,6 @@ package com.grkj.iscs_mars.view.fragment
 
 import com.grkj.iscs_mars.databinding.FragmentEmptyBinding
 import com.grkj.iscs_mars.view.base.BaseFragment
-import com.grkj.iscs_mars.view.base.BaseMvpFragment
 
 /**
  * 空白界面

+ 0 - 1
app/src/main/java/com/grkj/iscs_mars/view/fragment/JobProgressFragment.kt

@@ -17,7 +17,6 @@ import com.grkj.iscs_mars.model.eventmsg.UpdateTicketProgressMsg
 import com.grkj.iscs_mars.model.vo.ticket.TicketDetailMonitorRespVO
 import com.grkj.iscs_mars.model.vo.ticket.TicketDetailRespVO
 import com.grkj.iscs_mars.util.CommonUtils
-import com.grkj.iscs_mars.util.SPUtils
 import com.grkj.iscs_mars.util.ToastUtils
 import com.grkj.iscs_mars.util.log.LogUtil
 import com.grkj.iscs_mars.view.base.BaseMvpFragment

+ 0 - 1
app/src/main/java/com/grkj/iscs_mars/view/fragment/SettingFragment.kt

@@ -5,7 +5,6 @@ import com.grkj.iscs_mars.BusinessManager
 import com.grkj.iscs_mars.R
 import com.grkj.iscs_mars.databinding.FragmentSettingBinding
 import com.grkj.iscs_mars.extentions.setSelected
-import com.grkj.iscs_mars.model.ISCSDomainData
 import com.grkj.iscs_mars.util.SPUtils
 import com.grkj.iscs_mars.view.adapter.SettingAdapter
 import com.grkj.iscs_mars.view.base.BaseFragment

+ 0 - 2
app/src/main/java/com/grkj/iscs_mars/view/presenter/HomePresenter.kt

@@ -3,7 +3,6 @@ package com.grkj.iscs_mars.view.presenter
 import com.grkj.iscs_mars.BusinessManager
 import com.grkj.iscs_mars.MyApplication
 import com.grkj.iscs_mars.R
-import com.grkj.iscs_mars.ble.BleConnectionManager
 import com.grkj.iscs_mars.ble.BleReturnDispatcher
 import com.grkj.iscs_mars.extentions.serialNo
 import com.grkj.iscs_mars.modbus.DockBean
@@ -21,7 +20,6 @@ import com.grkj.iscs_mars.util.log.LogUtil
 import com.grkj.iscs_mars.view.base.BasePresenter
 import com.grkj.iscs_mars.view.iview.IHomeView
 import com.sik.sikcore.thread.ThreadUtils
-import kotlinx.coroutines.delay
 
 class HomePresenter : BasePresenter<IHomeView>() {
 

+ 0 - 1
app/src/main/java/com/grkj/iscs_mars/view/presenter/LoginPresenter.kt

@@ -2,7 +2,6 @@ package com.grkj.iscs_mars.view.presenter
 
 import android.content.Context
 import android.graphics.Bitmap
-import cn.zhxu.okhttps.HttpUtils
 import com.grkj.iscs_mars.BusinessManager
 import com.grkj.iscs_mars.R
 import com.grkj.iscs_mars.extentions.removeLeadingZeros

+ 0 - 1
app/src/main/java/com/grkj/iscs_mars/view/presenter/StepPresenter.kt

@@ -26,7 +26,6 @@ import com.grkj.iscs_mars.view.widget.CustomStationLayer
 import com.onlylemi.mapview.library.MapView
 import com.sik.sikcore.thread.ThreadUtils
 import kotlinx.coroutines.delay
-import kotlin.coroutines.suspendCoroutine
 
 class StepPresenter : BasePresenter<IStepView>() {
 

+ 6 - 7
app/src/main/java/com/grkj/iscs_mars/view/widget/CustomMarkLayer.kt

@@ -5,15 +5,11 @@ import android.graphics.Canvas
 import android.graphics.Color
 import android.graphics.Matrix
 import android.graphics.Paint
-import android.util.Pair
 import android.view.MotionEvent
 import com.grkj.iscs_mars.util.IconCache
 import com.grkj.iscs_mars.view.fragment.WorkshopFragment.CustomPoint
 import com.onlylemi.mapview.library.MapView
 import com.onlylemi.mapview.library.layer.MapBaseLayer
-import com.onlylemi.mapview.library.utils.MapMath
-import kotlin.math.cos
-import kotlin.math.sin
 
 /**
  * 首页地图区域图层
@@ -150,7 +146,8 @@ class CustomMarkLayer @JvmOverloads constructor(
                 val badgeLeft = iconCenterX - badgeSize / 2f
                 val badgeRight = iconCenterX + badgeSize / 2f
 
-                val hitBadge = sx > badgeLeft && sx < badgeRight && sy > badgeTop && sy < badgeBottom
+                val hitBadge =
+                    sx > badgeLeft && sx < badgeRight && sy > badgeTop && sy < badgeBottom
                 if (hitBadge) {
                     num = i
                     btnIndex = j
@@ -245,7 +242,8 @@ class CustomMarkLayer @JvmOverloads constructor(
                             else
                                 list[j].bitmap!!
 
-                            val iconBm = iconCache.get(srcBm, mBitmapSize)   // 已是 mBitmapSize × mBitmapSize
+                            val iconBm =
+                                iconCache.get(srcBm, mBitmapSize)   // 已是 mBitmapSize × mBitmapSize
                             iconBm.density = Bitmap.DENSITY_NONE             // 不复制,不分配,直接用
                             paint.isFilterBitmap = true
                             paint.isDither = true
@@ -288,7 +286,8 @@ class CustomMarkLayer @JvmOverloads constructor(
                             paint.color = Color.WHITE
                             val fmNum = paint.fontMetrics
                             val textX = iconCenterX - w / 2f
-                            val textY = badgeTop + (badgeSize - (fmNum.descent - fmNum.ascent)) / 2f - fmNum.ascent
+                            val textY =
+                                badgeTop + (badgeSize - (fmNum.descent - fmNum.ascent)) / 2f - fmNum.ascent
                             canvas.drawText(numberText, textX, textY, paint)
                             paint.textSize = keepTextSize
                         }

+ 0 - 5
app/src/main/res/layout/activity_arcsoft_test.xml

@@ -12,11 +12,6 @@
         android:layout_width="match_parent"
         android:layout_height="match_parent" />
 
-<!--    <RelativeLayout-->
-<!--        android:layout_width="match_parent"-->
-<!--        android:layout_height="match_parent"-->
-<!--        android:background="@color/white"/>-->
-
     <ImageView
         android:id="@+id/iv_capture"
         android:layout_width="100dp"

+ 0 - 10
app/src/main/res/layout/layout_selectable_input.xml

@@ -28,14 +28,4 @@
         android:padding="@dimen/selectable_input_edit_padding"
         android:textColor="@color/black"
         android:textSize="@dimen/common_text_size" />
-
-    <!--    <Spinner-->
-    <!--        android:id="@+id/spinner"-->
-    <!--        android:layout_width="match_parent"-->
-    <!--        android:layout_height="wrap_content"-->
-    <!--        android:layout_gravity="center_vertical"-->
-    <!--        android:background="@drawable/selectable_input_spinner_bg"-->
-    <!--        android:minHeight="@dimen/selectable_input_min_height"-->
-    <!--        android:spinnerMode="dropdown"-->
-    <!--        android:visibility="gone" />-->
 </LinearLayout>

+ 0 - 2
app/src/main/res/values-night/themes.xml

@@ -1,7 +1,5 @@
 <resources xmlns:tools="http://schemas.android.com/tools">
     <!-- Base application theme. -->
     <style name="Base.Theme.ISCS" parent="Theme.Material3.DayNight.NoActionBar">
-        <!-- Customize your dark theme here. -->
-        <!-- <item name="colorPrimary">@color/my_dark_primary</item> -->
     </style>
 </resources>

+ 0 - 2
app/src/main/res/values/themes.xml

@@ -1,8 +1,6 @@
 <resources xmlns:tools="http://schemas.android.com/tools">
     <!-- Base application theme. -->
     <style name="Base.Theme.ISCS" parent="Theme.Material3.DayNight.NoActionBar">
-        <!-- Customize your light theme here. -->
-        <!-- <item name="colorPrimary">@color/my_light_primary</item> -->
     </style>
 
     <style name="Theme.ISCS" parent="Base.Theme.ISCS" />

+ 0 - 4
app/src/main/res/xml/backup_rules.xml

@@ -6,8 +6,4 @@
    See https://developer.android.com/about/versions/12/backup-restore
 -->
 <full-backup-content>
-    <!--
-   <include domain="sharedpref" path="."/>
-   <exclude domain="sharedpref" path="device.xml"/>
--->
 </full-backup-content>

+ 0 - 10
app/src/main/res/xml/data_extraction_rules.xml

@@ -5,15 +5,5 @@
 -->
 <data-extraction-rules>
     <cloud-backup>
-        <!-- TODO: Use <include> and <exclude> to control what is backed up.
-        <include .../>
-        <exclude .../>
-        -->
     </cloud-backup>
-    <!--
-    <device-transfer>
-        <include .../>
-        <exclude .../>
-    </device-transfer>
-    -->
 </data-extraction-rules>