浏览代码

业务组装

Frankensteinly 1 年之前
父节点
当前提交
c45b24c188

+ 155 - 0
app/src/main/java/com/grkj/iscs/BusinessManager.kt

@@ -1,9 +1,24 @@
 package com.grkj.iscs
 
+import android.bluetooth.BluetoothGatt
+import android.os.Build
+import android.util.Log
+import androidx.appcompat.app.AppCompatActivity
+import com.clj.fastble.BleManager
+import com.clj.fastble.data.BleDevice
+import com.clj.fastble.exception.BleException
+import com.grkj.iscs.base.BaseActivity
+import com.grkj.iscs.ble.BleBean
+import com.grkj.iscs.ble.BleCmdManager
+import com.grkj.iscs.ble.BleUtil
+import com.grkj.iscs.ble.CustomBleGattCallback
+import com.grkj.iscs.ble.CustomBleIndicateCallback
+import com.grkj.iscs.ble.CustomBleScanCallback
 import com.grkj.iscs.extentions.removeLeadingZeros
 import com.grkj.iscs.extentions.toHexStrings
 import com.grkj.iscs.modbus.DockBean
 import com.grkj.iscs.modbus.ModBusController
+import com.grkj.iscs.model.Constants.PERMISSION_REQUEST_CODE
 import com.grkj.iscs.model.DeviceConst.DEVICE_TYPE_CARD
 import com.grkj.iscs.model.DeviceConst.DEVICE_TYPE_FINGERPRINT
 import com.grkj.iscs.model.DeviceConst.DEVICE_TYPE_KEY
@@ -12,13 +27,18 @@ import com.grkj.iscs.model.DeviceConst.DOCK_TYPE_ELEC_LOCK_BOARD
 import com.grkj.iscs.model.DeviceConst.DOCK_TYPE_KEY
 import com.grkj.iscs.model.DeviceConst.DOCK_TYPE_LOCK
 import com.grkj.iscs.model.DeviceConst.DOCK_TYPE_PORTABLE
+import com.grkj.iscs.util.CommonUtils
+import com.grkj.iscs.util.ToastUtils
 import com.grkj.iscs.util.log.LogUtil
+import pub.devrel.easypermissions.AfterPermissionGranted
 
 /**
  * 业务层管理
  */
 object BusinessManager {
 
+    /****************************************** ModBus ******************************************/
+
     fun connectDock(count: Int, isNeedInit: Boolean = false) {
         ModBusController.setSlaveCount(count)
         ModBusController.interruptReadTrashBinStatus(false)
@@ -163,4 +183,139 @@ object BusinessManager {
             }
         }
     }
+
+
+    /****************************************** 蓝牙 ******************************************/
+
+    /**
+     * 下发工作票
+     */
+    fun sendTicket(mac: String, activity: AppCompatActivity, loadingCallBack: (Boolean, String?) -> Unit) {
+        CommonUtils.checkBlePermission(activity) {
+            doScanBle(mac, loadingCallBack)
+        }
+    }
+
+    @AfterPermissionGranted(PERMISSION_REQUEST_CODE)
+    fun doScanBle(mac: String, loadingCallBack: (Boolean, String?) -> Unit) {
+        LogUtil.d("扫描开始:$mac")
+        BleUtil.instance?.scan(object : CustomBleScanCallback() {
+            override fun onPrompt(promptStr: String?) {
+                BleManager.getInstance().enableBluetooth()
+            }
+
+            override fun onScanStarted(success: Boolean) {
+                LogUtil.d("扫描开始:${success}")
+                BleUtil.instance?.deviceList?.clear()
+            }
+
+            override fun onScanning(bleDevice: BleDevice?) {
+                bleDevice?.let {
+                    Log.d("doScanBle", "扫描到的设备:${it.mac}")
+                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
+                        if (!it.name.isNullOrBlank()) {
+                            BleUtil.instance?.deviceList?.add(BleBean(it))
+                        } else {
+
+                        }
+                    } else {
+                        BleUtil.instance?.deviceList?.add(BleBean(it))
+                    }
+                }
+            }
+
+            override fun onScanFinished(scanResultList: MutableList<BleDevice>?) {
+                if (BleUtil.instance?.deviceList?.isEmpty() == true) {
+                    ToastUtils.tip(R.string.ble_no_device_found)
+                    return
+                }
+                BleUtil.instance?.getBleDeviceByMac(mac)?.bleDevice?.let {
+                    doConnect(it, loadingCallBack)
+                }
+            }
+        })
+    }
+
+    fun doConnect(bleDevice: BleDevice, loadingCallBack: (Boolean, String?) -> Unit) {
+        loadingCallBack.invoke(true, CommonUtils.getStr(R.string.ble_connecting))
+        BleManager.getInstance().disconnect(bleDevice)
+        BleUtil.instance?.connectBySelect(bleDevice,
+            object : CustomBleGattCallback() {
+                override fun onPrompt(promptStr: String?) {
+                    loadingCallBack.invoke(false, promptStr)
+                }
+
+                override fun onStartConnect() {
+                }
+
+                override fun onConnectFail(bleDevice: BleDevice?, exception: BleException?) {
+                    loadingCallBack.invoke(false, CommonUtils.getStr(R.string.ble_connect_fail))
+                }
+
+                override fun onConnectSuccess(
+                    bleDevice: BleDevice?,
+                    gatt: BluetoothGatt?,
+                    status: Int
+                ) {
+                    loadingCallBack.invoke(false, null)
+                    LogUtil.i("onConnectSuccess : $bleDevice")
+                    bleDevice?.let {
+                        val bleBean = BleBean(it)
+                        BleUtil.instance?.deviceList?.add(bleBean)
+                        // 设置MTU
+                        BleUtil.instance?.setMtu(it)
+                        // 监听
+                        indicate(bleBean)
+                    }
+
+                }
+
+                override fun onDisConnected(
+                    isActiveDisConnected: Boolean,
+                    device: BleDevice?,
+                    gatt: BluetoothGatt?,
+                    status: Int
+                ) {
+                    loadingCallBack.invoke(false, null)
+                    ToastUtils.tip(CommonUtils.getStr(R.string.ble_disconnect))
+                    BleUtil.instance?.getBleDeviceByMac(device?.mac)?.let {
+                        BleUtil.instance?.deviceList?.remove(it)
+                    }
+                }
+            })
+    }
+
+    fun indicate(bleBean: BleBean?) {
+        bleBean?.let {
+            BleUtil.instance?.indicate(it.bleDevice, indicateCallback = object : CustomBleIndicateCallback() {
+                override fun onPrompt(promptStr: String?) {
+                    LogUtil.i("监听onPrompt : $promptStr")
+                }
+
+                override fun onConnectPrompt(promptStr: String?) {
+                    LogUtil.i("监听onConnectPrompt : $promptStr")
+                }
+
+                override fun onDisConnectPrompt(promptStr: String?) {
+                    LogUtil.i("监听onDisConnectPrompt : $promptStr")
+                }
+
+                override fun onIndicateSuccess() {
+                    LogUtil.i("监听成功")
+                }
+
+                override fun onIndicateFailure(exception: BleException?) {
+                    LogUtil.i("监听失败")
+                }
+
+                override fun onCharacteristicChanged(data: ByteArray?) {
+                    LogUtil.i("监听数据 : ${data?.toHexStrings()}")
+                    data?.let { itData ->
+                        BleCmdManager.handleRsp(it, itData)
+                    }
+                }
+            })
+        }
+
+    }
 }

+ 9 - 23
app/src/main/java/com/grkj/iscs/activity/BleActivity.kt

@@ -28,6 +28,7 @@ import com.grkj.iscs.ble.BleCmdManager
 import com.grkj.iscs.extentions.toHexStrings
 import com.grkj.iscs.util.ToastUtils
 import com.grkj.iscs.ble.BleUtil
+import com.grkj.iscs.util.CommonUtils
 import com.grkj.iscs.util.log.LogUtil
 import com.leon.lfilepickerlibrary.LFilePicker
 import com.zhy.adapter.recyclerview.CommonAdapter
@@ -49,7 +50,11 @@ class BleActivity : BaseActivity<ActivityBleBinding>() {
         mBinding?.srl?.setEnableRefresh(true)
         mBinding?.srl?.setEnableLoadMore(false)
         mBinding?.srl?.autoRefresh()
-        mBinding?.srl?.setOnRefreshListener { checkPermission() }
+        mBinding?.srl?.setOnRefreshListener {
+            CommonUtils.checkBlePermission(this) {
+                doScan()
+            }
+        }
 
         mBinding?.rvBle?.adapter =
             object : CommonAdapter<BleBean>(this, R.layout.item_ble, BleUtil.instance?.deviceList) {
@@ -178,7 +183,7 @@ class BleActivity : BaseActivity<ActivityBleBinding>() {
                         })
                     }
 
-                    holder.setOnClickListener(R.id.mode1) {
+                    holder.setOnClickListener(R.id.work_mode) {
                         BleCmdManager.switchMode(byteArrayOf(0x01), item?.bleDevice!!, object : CustomBleWriteCallback() {
                             override fun onPrompt(promptStr: String?) {}
 
@@ -193,7 +198,7 @@ class BleActivity : BaseActivity<ActivityBleBinding>() {
                         })
                     }
 
-                    holder.setOnClickListener(R.id.mode2) {
+                    holder.setOnClickListener(R.id.standby_mode) {
                         BleCmdManager.switchMode(byteArrayOf(0x02), item?.bleDevice!!, object : CustomBleWriteCallback() {
                             override fun onPrompt(promptStr: String?) {}
 
@@ -290,26 +295,6 @@ class BleActivity : BaseActivity<ActivityBleBinding>() {
         }
     }
 
-    private fun checkPermission() {
-        val permissions: Array<String> = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
-            arrayOf(
-                BLUETOOTH_SCAN,
-                BLUETOOTH_ADVERTISE,
-                BLUETOOTH_CONNECT,
-                ACCESS_FINE_LOCATION,
-                ACCESS_COARSE_LOCATION
-            )
-        } else {
-            arrayOf(ACCESS_FINE_LOCATION, ACCESS_COARSE_LOCATION)
-        }
-        val isPermission = EasyPermissions.hasPermissions(this, *permissions)
-        if (isPermission) {
-            doScan()
-        } else {
-            EasyPermissions.requestPermissions(this, "", PERMISSION_REQUEST_CODE, *permissions)
-        }
-    }
-
     @AfterPermissionGranted(PERMISSION_REQUEST_CODE)
     fun doScan() {
         Log.d("doScanBle", "扫描开始:$")
@@ -375,6 +360,7 @@ class BleActivity : BaseActivity<ActivityBleBinding>() {
                     gatt: BluetoothGatt?,
                     status: Int
                 ) {
+                    handleLoading(false)
                     LogUtil.i("onConnectSuccess : $bleDevice")
                     bleDevice?.let {
                         mBinding?.rvBle?.adapter?.notifyItemChanged(position)

+ 10 - 7
app/src/main/java/com/grkj/iscs/activity/PresentationLoginActivity.kt

@@ -17,7 +17,9 @@ import com.grkj.iscs.model.DeviceConst.DEVICE_TYPE_LOCK
 import com.grkj.iscs.model.DeviceConst.DOCK_TYPE_KEY
 import com.grkj.iscs.model.DeviceConst.DOCK_TYPE_LOCK
 import com.grkj.iscs.model.DeviceConst.DOCK_TYPE_PORTABLE
+import com.grkj.iscs.presentation.LockerTogetherActivity
 import com.grkj.iscs.presentation.PresentationActivity
+import com.grkj.iscs.presentation.PresentationManager
 import com.grkj.iscs.util.Executor
 import com.grkj.iscs.util.FileUtil
 import com.grkj.iscs.util.ToastUtils
@@ -25,8 +27,6 @@ import com.grkj.iscs.util.log.LogUtil
 
 class PresentationLoginActivity : BaseActivity<ActivityPresentationLoginBinding>() {
 
-    val cardList = mutableListOf("267747D5", "34A347D5", "464947D5")
-
     override val viewBinding: ActivityPresentationLoginBinding
         get() = ActivityPresentationLoginBinding.inflate(layoutInflater)
 
@@ -40,8 +40,8 @@ class PresentationLoginActivity : BaseActivity<ActivityPresentationLoginBinding>
             return
         }
         println("Mac Json : $str")
-        val cardList: List<CardInfoBean> =
-            Gson().fromJson(str, object : TypeToken<List<CardInfoBean>>() {}.type)
+        PresentationManager.cardList =
+            Gson().fromJson(str, object : TypeToken<List<PresentationManager.CardInfoBean>>() {}.type)
 
         handleLoading(true, "正在初始化设备...")
         BusinessManager.connectDock(1, true)
@@ -59,10 +59,15 @@ class PresentationLoginActivity : BaseActivity<ActivityPresentationLoginBinding>
                                     ModBusController.readPortalCaseCardRfid(dockBean.addr.toInt() - 1) { res ->
                                         val rfid = res.copyOfRange(3, 11).toHexStrings(false).removeLeadingZeros()
                                         println("卡片RFID : $rfid")
-                                        if (cardList.any { it.rfid == rfid }) {
+                                        if (PresentationManager.cardList.any { it.rfid == rfid && it.isLocker}) {
                                             ToastUtils.tip("登录成功,欢迎 $rfid")
                                             startActivity(Intent(this, PresentationActivity::class.java))
                                             return@readPortalCaseCardRfid
+                                        } else if (PresentationManager.cardList.any { it.rfid == rfid && !it.isLocker}) {
+                                            // TODO 共锁人界面
+                                            ToastUtils.tip("登录成功,欢迎 $rfid")
+                                            startActivity(Intent(this, LockerTogetherActivity::class.java))
+                                            return@readPortalCaseCardRfid
                                         }
                                         ToastUtils.tip("登录失败,$rfid 没有权限")
                                     }
@@ -79,6 +84,4 @@ class PresentationLoginActivity : BaseActivity<ActivityPresentationLoginBinding>
         super.onDestroy()
         ModBusController.unregisterListener(this)
     }
-
-    data class CardInfoBean(val rfid: String, val mac: String)
 }

+ 1 - 1
app/src/main/java/com/grkj/iscs/ble/BleUtil.kt

@@ -54,7 +54,7 @@ class BleUtil private constructor() {
     }
 
     fun getBleDeviceByMac(mac: String?): BleBean? {
-        return deviceList.stream().filter { it.bleDevice.mac == mac }?.findFirst()?.get()
+        return deviceList.find { it.bleDevice.mac == mac }
     }
 
     fun scan(bleScanCallback: CustomBleScanCallback) {

+ 9 - 2
app/src/main/java/com/grkj/iscs/modbus/ModBusController.kt

@@ -349,14 +349,21 @@ object ModBusController {
      * 根据RFID找钥匙
      */
     fun getKeyByRfid(rfid: String): DockBean.KeyBean? {
-        return dockList.find { it.type == DOCK_TYPE_KEY }?.getKeyList()?.find { it.rfid == rfid }
+        return dockList.find { it.type == DOCK_TYPE_KEY || it.type == DOCK_TYPE_PORTABLE }?.getKeyList()?.find { it.rfid == rfid }
     }
 
     /**
      * 根据RFID找锁具
      */
     fun getLockByRfid(rfid: String): DockBean.LockBean? {
-        return dockList.find { it.type == DOCK_TYPE_LOCK }?.getLockList()?.find { it.rfid == rfid }
+        return dockList.find { it.type == DOCK_TYPE_LOCK || it.type == DOCK_TYPE_PORTABLE }?.getLockList()?.find { it.rfid == rfid }
+    }
+
+    /**
+     * 根据类型获取底座列表
+     */
+    fun getDockByType(type: Byte): List<DockBean> {
+        return dockList.filter { it.type == type }
     }
 
     fun openAllLockBuckles() {

+ 24 - 45
app/src/main/java/com/grkj/iscs/presentation/PresentationActivity.kt

@@ -1,6 +1,5 @@
 package com.grkj.iscs.presentation
 
-import android.os.Environment
 import android.view.Gravity
 import android.widget.CheckBox
 import androidx.recyclerview.widget.LinearLayoutManager
@@ -8,8 +7,11 @@ import com.grkj.iscs.BusinessManager
 import com.grkj.iscs.R
 import com.grkj.iscs.base.BaseMvpActivity
 import com.grkj.iscs.databinding.ActivityPresentationBinding
+import com.grkj.iscs.extentions.toHexStrings
 import com.grkj.iscs.modbus.ModBusController
-import com.grkj.iscs.util.FileUtil
+import com.grkj.iscs.model.DeviceConst
+import com.grkj.iscs.util.ToastUtils
+import com.grkj.iscs.util.log.LogUtil
 import com.grkj.iscs.widget.SelectableInput
 import com.manu.mdatepicker.MDatePicker
 import com.zhy.adapter.recyclerview.CommonAdapter
@@ -24,47 +26,12 @@ class PresentationActivity :
     override val viewBinding: ActivityPresentationBinding
         get() = ActivityPresentationBinding.inflate(layoutInflater)
 
-    companion object {
-        private val mSopList = mutableListOf(
-            PresentationBean(
-                "士力架车间",
-                "打包线1",
-                "士力架包装车间-打包线1-保养",
-                "士力架包装车间-打包线1-保养",
-                "SOP001",
-                "保养",
-                mutableListOf("E-1", "E-2")
-            ),
-            PresentationBean(
-                "德芙车间",
-                "打包线2",
-                "德芙包装车间-打包线2-维护",
-                "德芙包装车间-打包线2-维护",
-                "SOP002",
-                "维护",
-                mutableListOf("E-2", "E-3")
-            )
-        )
-
-        // 上锁人
-        private val mLockerList = mutableListOf("上锁人1", "上锁人2", "上锁人3")
-        // 安全员
-        private val mSafetyList = mutableListOf("安全员1", "安全员2", "安全员3")
-        // 共锁人
-        private val mLockerTogetherList = mutableListOf(
-            LockerTogetherBean("共锁人1", false),
-            LockerTogetherBean("共锁人2", false),
-            LockerTogetherBean("共锁人3", false))
-    }
-
     override fun initView() {
-        // TODO 从login页过来的话要注掉
-//        BusinessManager.connectDock(1, false)
 
-        mBinding?.siSop?.mOptionList = mSopList.stream().map { it.sop }.collect(Collectors.toList())
+        mBinding?.siSop?.mOptionList = PresentationManager.mSopList.stream().map { it.sop }.collect(Collectors.toList())
         mBinding?.siSop?.setOnSpinnerSelectListener(object : SelectableInput.OnSpinnerSelectListener {
             override fun onSelect(str: String?, index: Int) {
-                val sop = mSopList[index]
+                val sop = PresentationManager.mSopList[index]
                 mBinding?.siWorkshop?.setText(sop.workshop)
                 mBinding?.siLine?.setText(sop.line)
                 mBinding?.siTicketName?.setText(sop.ticketName)
@@ -74,8 +41,8 @@ class PresentationActivity :
             }
         })
 
-        mBinding?.siPersonLock?.mOptionList = mLockerList
-        mBinding?.siPersonSafety?.mOptionList = mSafetyList
+        mBinding?.siPersonLock?.mOptionList = PresentationManager.mLockerList
+        mBinding?.siPersonSafety?.mOptionList = PresentationManager.mSafetyList
 
         mBinding?.confirm?.setOnClickListener {
             confirm()
@@ -106,8 +73,8 @@ class PresentationActivity :
         }
 
         (mBinding?.rvLockerTogether?.layoutManager as LinearLayoutManager).orientation =  LinearLayoutManager.HORIZONTAL
-        mBinding?.rvLockerTogether?.adapter = object : CommonAdapter<LockerTogetherBean>(this, R.layout.item_rv_locker_together, mLockerTogetherList) {
-            override fun convert(holder: ViewHolder, data: LockerTogetherBean, position: Int) {
+        mBinding?.rvLockerTogether?.adapter = object : CommonAdapter<PresentationManager.LockerTogetherBean>(this, R.layout.item_rv_locker_together, PresentationManager.mLockerTogetherList) {
+            override fun convert(holder: ViewHolder, data: PresentationManager.LockerTogetherBean, position: Int) {
                 holder.setText(R.id.tv_name, data.name)
                 holder.setChecked(R.id.cb, data.isChecked)
                 holder.getView<CheckBox>(R.id.cb).setOnCheckedChangeListener { _, b ->
@@ -118,7 +85,19 @@ class PresentationActivity :
     }
 
     private fun confirm() {
-
+        BusinessManager.sendTicket("64:E8:33:47:59:7A", this) { b, s ->
+            handleLoading(b, s)
+        }
+        val lockBean0 = ModBusController.getLockByRfid("706BD295")
+        val lockBean2 = ModBusController.getLockByRfid("1068D495")
+        val lockIdxList = mutableListOf(lockBean0!!.idx, lockBean2!!.idx)
+        val dockList = ModBusController.getDockByType(DeviceConst.DOCK_TYPE_PORTABLE)
+        if (dockList.isNotEmpty()) {
+            ToastUtils.tip("地址是 : ${dockList[0].addr.toInt()}")
+            ModBusController.controlLockBuckle(true, dockList[0].addr.toInt() - 1, lockIdxList) { res ->
+                LogUtil.i("confirm开锁卡扣 : ${res.toHexStrings()}")
+            }
+        }
     }
 
     override fun initPresenter(): PresentationPresenter {
@@ -130,5 +109,5 @@ class PresentationActivity :
         BusinessManager.disconnectDock()
     }
 
-    data class LockerTogetherBean(var name: String? = null, var isChecked: Boolean = false)
+
 }

+ 46 - 0
app/src/main/java/com/grkj/iscs/util/CommonUtils.kt

@@ -0,0 +1,46 @@
+package com.grkj.iscs.util
+
+import android.Manifest.permission.ACCESS_COARSE_LOCATION
+import android.Manifest.permission.ACCESS_FINE_LOCATION
+import android.Manifest.permission.BLUETOOTH_ADVERTISE
+import android.Manifest.permission.BLUETOOTH_CONNECT
+import android.Manifest.permission.BLUETOOTH_SCAN
+import android.content.Context
+import android.os.Build
+import androidx.appcompat.app.AppCompatActivity
+import com.grkj.iscs.MyApplication
+import com.grkj.iscs.model.Constants.PERMISSION_REQUEST_CODE
+import pub.devrel.easypermissions.EasyPermissions
+
+object CommonUtils {
+    fun dip2px(dpValue: Float): Int {
+        val density = MyApplication.instance!!.resources.displayMetrics.density
+        return (dpValue * density + 0.5f).toInt()
+    }
+
+    fun checkBlePermission(activity: AppCompatActivity, callBack: () -> Unit) {
+        val permissions: Array<String> = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
+            arrayOf(
+                BLUETOOTH_SCAN,
+                BLUETOOTH_ADVERTISE,
+                BLUETOOTH_CONNECT,
+                ACCESS_FINE_LOCATION,
+                ACCESS_COARSE_LOCATION
+            )
+        } else {
+            arrayOf(ACCESS_FINE_LOCATION, ACCESS_COARSE_LOCATION)
+        }
+        val isPermission = EasyPermissions.hasPermissions(activity, *permissions)
+        if (isPermission) {
+            callBack.invoke()
+        } else {
+            EasyPermissions.requestPermissions(activity, "", PERMISSION_REQUEST_CODE, *permissions)
+        }
+    }
+
+    fun getStr(textId: Int, ctx: Context? = null): String? {
+        return ctx?.resources?.getString(textId) ?: let {
+            MyApplication.instance?.applicationContext?.resources?.getString(textId)
+        }
+    }
+}

+ 4 - 0
app/src/main/java/com/grkj/iscs/util/ToastUtils.kt

@@ -4,6 +4,7 @@ import android.content.Context
 import android.os.Looper
 import android.widget.Toast
 import com.grkj.iscs.MyApplication
+import com.grkj.iscs.R
 
 class ToastUtils private constructor(context: Context) : Toast(context) {
 
@@ -18,5 +19,8 @@ class ToastUtils private constructor(context: Context) : Toast(context) {
             }
             makeText(MyApplication.instance!!, text, duration).show()
         }
+
+        fun tip(text: Int, duration: Int = LENGTH_SHORT) =
+            tip(MyApplication.instance?.applicationContext?.resources?.getString(text), duration)
     }
 }

+ 0 - 10
app/src/main/java/com/grkj/iscs/util/Utils.kt

@@ -1,10 +0,0 @@
-package com.grkj.iscs.util
-
-import com.grkj.iscs.MyApplication
-
-object Utils {
-    fun dip2px(dpValue: Float): Int {
-        val density = MyApplication.instance!!.resources.displayMetrics.density
-        return (dpValue * density + 0.5f).toInt()
-    }
-}

+ 7 - 7
app/src/main/java/com/grkj/iscs/widget/PageControl.java

@@ -11,7 +11,7 @@ import android.widget.TextView;
 import androidx.annotation.Nullable;
 
 import com.grkj.iscs.R;
-import com.grkj.iscs.util.Utils;
+import com.grkj.iscs.util.CommonUtils;
 
 /**
  * @date 2018/12/16
@@ -73,11 +73,11 @@ public class PageControl extends LinearLayout implements View.OnClickListener {
     private TextView createView() {
         TextView page = new TextView(context);
 //        page.setBackgroundResource(R.drawable.selecter_btn_round5_gray);
-        page.setPadding(Utils.INSTANCE.dip2px(10), 0, Utils.INSTANCE.dip2px(10), 0);
+        page.setPadding(CommonUtils.INSTANCE.dip2px(10), 0, CommonUtils.INSTANCE.dip2px(10), 0);
         page.setGravity(Gravity.CENTER);
-        LayoutParams layoutParam = new LayoutParams(LayoutParams.WRAP_CONTENT, Utils.INSTANCE.dip2px(30));
-        page.setMinWidth(Utils.INSTANCE.dip2px(30));
-        layoutParam.setMargins(0, 0, Utils.INSTANCE.dip2px(5), 0);
+        LayoutParams layoutParam = new LayoutParams(LayoutParams.WRAP_CONTENT, CommonUtils.INSTANCE.dip2px(30));
+        page.setMinWidth(CommonUtils.INSTANCE.dip2px(30));
+        layoutParam.setMargins(0, 0, CommonUtils.INSTANCE.dip2px(5), 0);
         page.setLayoutParams(layoutParam);
         return page;
     }
@@ -138,7 +138,7 @@ public class PageControl extends LinearLayout implements View.OnClickListener {
     private void middleView() {
         TextView first = new TextView(context);
         first.setText("...");
-        first.setPadding(Utils.INSTANCE.dip2px(10), 0, Utils.INSTANCE.dip2px(10), 0);
+        first.setPadding(CommonUtils.INSTANCE.dip2px(10), 0, CommonUtils.INSTANCE.dip2px(10), 0);
         first.setGravity(Gravity.CENTER);
         first.setOnClickListener(this);
         this.addView(first);
@@ -201,7 +201,7 @@ public class PageControl extends LinearLayout implements View.OnClickListener {
     private void createAllView() {
         setBtnGroup();
         this.removeAllViews();
-        this.setPadding(Utils.INSTANCE.dip2px(10), Utils.INSTANCE.dip2px(20), Utils.INSTANCE.dip2px(10), Utils.INSTANCE.dip2px(20));
+        this.setPadding(CommonUtils.INSTANCE.dip2px(10), CommonUtils.INSTANCE.dip2px(20), CommonUtils.INSTANCE.dip2px(10), CommonUtils.INSTANCE.dip2px(20));
         createPrevious();
         if((firstButton >= buttonCount ||curPage == buttonCount)&& totalCount > buttonCount){
             firstButton = curPage - 2;

+ 4 - 4
app/src/main/res/layout/item_ble.xml

@@ -147,22 +147,22 @@
             android:layout_margin="5dp"/>
 
         <Button
-            android:id="@+id/mode1"
+            android:id="@+id/work_mode"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:minWidth="0dp"
             android:minHeight="0dp"
-            android:text="Mode1"
+            android:text="M-Work"
             android:textSize="10sp"
             android:layout_margin="5dp"/>
 
         <Button
-            android:id="@+id/mode2"
+            android:id="@+id/standby_mode"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:minWidth="0dp"
             android:minHeight="0dp"
-            android:text="Mode2"
+            android:text="M-StandBy"
             android:textSize="10sp"
             android:layout_margin="5dp"/>
 

+ 6 - 0
app/src/main/res/values/strings.xml

@@ -24,6 +24,12 @@
     <string name="current_time">当前时间</string>
     <string name="current_sop_number">当前作业票</string>
 
+    <string name="ble_no_device_found">没有扫描到设备</string>
+    <string name="ble_connecting">连接中,请稍后...</string>
+    <string name="ble_connect_fail">连接失败,请重试!</string>
+    <string name="ble_disconnect">连接断开了,请重试!</string>
+
+
     <!--  演示页  -->
     <string name="presentation_select_sop">选择SOP</string>
     <string name="presentation_select_workshop">选择车间</string>