Explorar o código

2855系统自行脱离
隐藏logo功能

ccc hai 2 meses
pai
achega
6f7a110c49
Modificáronse 23 ficheiros con 298 adicións e 36 borrados
  1. 2 2
      buildSrc/src/main/kotlin/com/quyunshuo/sbm10/buildsrc/ProjectBuildConfig.kt
  2. 5 0
      lib_base/src/main/res/values-ar/strings.xml
  3. 5 0
      lib_base/src/main/res/values-de/strings.xml
  4. 5 0
      lib_base/src/main/res/values-en/strings.xml
  5. 5 0
      lib_base/src/main/res/values-fr/strings.xml
  6. 6 1
      lib_base/src/main/res/values/strings.xml
  7. 3 1
      lib_common/src/main/java/com/quyunshuo/sbm10/common/constant/MMKVName.kt
  8. 47 1
      module_backstage/src/main/java/com/module/backstage/activity/setting/SettingActivity.kt
  9. 11 0
      module_backstage/src/main/java/com/module/backstage/activity/setting/SettingRepository.kt
  10. 24 0
      module_backstage/src/main/java/com/module/backstage/activity/setting/SettingViewModel.kt
  11. 26 0
      module_backstage/src/main/java/com/module/backstage/adapter/TestAdapter.kt
  12. 8 2
      module_backstage/src/main/java/com/module/backstage/dialog/DevOnOffDialog.kt
  13. 70 23
      module_backstage/src/main/java/com/module/backstage/fragment/other/SystemSettingsFragment.kt
  14. 11 0
      module_backstage/src/main/java/com/module/backstage/listener/DebugClickListener.kt
  15. 11 0
      module_backstage/src/main/java/com/module/backstage/listener/UpdateClickListener.kt
  16. 8 0
      module_backstage/src/main/java/com/module/backstage/repo/SystemSettingsFragmentRepo.kt
  17. 12 0
      module_backstage/src/main/java/com/module/backstage/vm/OtherFragmentVM.kt
  18. 7 1
      module_backstage/src/main/java/com/module/backstage/vm/SystemSettingsFragmentVM.kt
  19. 18 0
      module_backstage/src/main/res/layout/backstage_activity_setting.xml
  20. 1 1
      module_backstage/src/main/res/layout/backstage_dialog_devonoff.xml
  21. 2 1
      module_home/src/main/java/com/quyunshuo/module/home/service/ManageMqtt.kt
  22. 3 3
      module_home/src/main/res/layout/home_fragment_bill_coin.xml
  23. 8 0
      module_pay/src/main/java/com/module/pay/service/HomeApiService.kt

+ 2 - 2
buildSrc/src/main/kotlin/com/quyunshuo/sbm10/buildsrc/ProjectBuildConfig.kt

@@ -11,8 +11,8 @@ object ProjectBuildConfig {
     const val applicationId = "com.quyunshuo.sbm10"
     const val minSdkVersion = 21
     const val targetSdkVersion = 29
-    const val versionCode = 6
-    const val versionName = "1.0.6"
+    const val versionCode = 7
+    const val versionName = "1.0.7"
     const val isAppMode = false
     /**
      * 项目当前的版本状态

+ 5 - 0
lib_base/src/main/res/values-ar/strings.xml

@@ -287,6 +287,11 @@
     <string name="now_make">الصنع:</string>
     <string name="make_loading">يتم تسخين الجهاز مسبقًا، يرجى الانتظار بصبر. . . </string>
     <string name="pay_success">تم الدفع بنجاح</string>
+    <string name="time_cash_clear">يرجى الدفع خلال المدة المحددة، وإلا فسيتم صرف المبلغ.</string>
+    <string name="still_need">ما زلت بحاجة إلى</string>
+    <string name="money">مال</string>
+    <string name="out_system">مغادرة النظام</string>
+    <string name="out_system_msg">هل ترغب بمغادرة النظام؟ </string>
 
 </resources>
 <!--阿拉伯语-->

+ 5 - 0
lib_base/src/main/res/values-de/strings.xml

@@ -286,5 +286,10 @@
     <string name="now_make">Herstellung:</string>
     <string name="make_loading">Die Maschine heizt vor, bitte warten Sie geduldig. . . </string>
     <string name="pay_success">Zahlung erfolgreich</string>
+    <string name="time_cash_clear">Bitte zahlen Sie innerhalb der angegebenen Zeit, andernfalls wird das Geld verrechnet.</string>
+    <string name="still_need">Noch benötigt</string>
+    <string name="money">Geld</string>
+    <string name="out_system">System verlassen</string>
+    <string name="out_system_msg">Möchten Sie das System verlassen?</string>
 
 </resources><!--德语-->

+ 5 - 0
lib_base/src/main/res/values-en/strings.xml

@@ -286,6 +286,11 @@
     <string name="now_make">Making:</string>
     <string name="make_loading">The machine is preheating, please wait patiently. . . </string>
     <string name="pay_success">Payment successful</string>
+    <string name="time_cash_clear">Please pay within the specified time, otherwise the cash will be cleared</string>
+    <string name="still_need">Still need</string>
+    <string name="money">Money</string>
+    <string name="out_system">Leave the system</string>
+    <string name="out_system_msg">Do you want to leave the system? </string>
 
 </resources>
     <!--英文-->

+ 5 - 0
lib_base/src/main/res/values-fr/strings.xml

@@ -285,5 +285,10 @@
     <string name="now_make">Fabrication:</string>
     <string name="make_loading">La machine est en préchauffage, veuillez patienter. . . </string>
     <string name="pay_success">Paiement réussi</string>
+    <string name="time_cash_clear">Veuillez payer dans le délai indiqué, sinon l\'argent sera encaissé.</string>
+    <string name="still_need">Encore besoin</string>
+    <string name="money">Argent</string>
+    <string name="out_system">Quitter le système</string>
+    <string name="out_system_msg">Voulez-vous quitter le système?</string>
 
 </resources><!--法语-->

+ 6 - 1
lib_base/src/main/res/values/strings.xml

@@ -223,7 +223,7 @@
     <string name="contact_message">联系信息</string>
     <string name="unify_price">统一修改价格:</string>
     <string name="software_version">软件版本号</string>
-    <string name="body_version">软件版本号</string>
+    <string name="body_version">机箱版本号</string>
     <string name="name">名字</string>
     <string name="show">显示</string>
     <string name="hide">隐藏</string>
@@ -286,6 +286,11 @@
     <string name="now_make">正在制作:</string>
     <string name="make_loading">机器预热中,请耐心等待。。。</string>
     <string name="pay_success">支付成功</string>
+    <string name="time_cash_clear">请在限定时间内支付完毕,否则清零</string>
+    <string name="still_need">还差</string>
+    <string name="money">金额</string>
+    <string name="out_system">脱离系统</string>
+    <string name="out_system_msg">是否脱离系统?</string>
 
 </resources>
 <!--中文-->

+ 3 - 1
lib_common/src/main/java/com/quyunshuo/sbm10/common/constant/MMKVName.kt

@@ -182,7 +182,9 @@ abstract class MMKVName {
         val COIN_PULSE_DIVIDE: String
             //硬币脉冲相除
             get() = "COIN_PULSE_DIVIDE"
-
+        val IS_SHOW_CHANGLOGE: String
+            //是否展示修改logo
+            get() = "IS_SHOW_CHANGLOGE"
     }
     // 这里可以继续添加其他常量
 

+ 47 - 1
module_backstage/src/main/java/com/module/backstage/activity/setting/SettingActivity.kt

@@ -12,6 +12,7 @@ import android.util.Log
 import android.view.MenuItem
 import android.view.MotionEvent
 import android.view.View
+import android.view.View.GONE
 import android.view.View.VISIBLE
 import android.view.WindowManager
 import android.view.inputmethod.InputMethodManager
@@ -25,6 +26,7 @@ import androidx.core.content.ContextCompat
 import androidx.core.view.get
 import androidx.lifecycle.LifecycleObserver
 import androidx.navigation.findNavController
+import androidx.navigation.fragment.findNavController
 import com.alibaba.android.arouter.facade.annotation.Route
 import com.alibaba.android.arouter.launcher.ARouter
 import com.google.gson.Gson
@@ -88,6 +90,7 @@ class SettingActivity : BaseActivity<BackstageActivitySettingBinding, SettingVie
     private var backPressedTime: Long = 0
     var devOnOffDialog: DevOnOffDialog? = null
     var connectionServerDialog: ConnectionServerDialog? = null
+    var outServerDialog: DevOnOffDialog? = null
     var updateAppDialog: UpdateAppDialog? = null
     var apkInfoBean: ApkInfoBean? = null//更新信息
     var windSpeed = 0
@@ -144,6 +147,19 @@ class SettingActivity : BaseActivity<BackstageActivitySettingBinding, SettingVie
         homeReturnToUpperLevel.setOnClickListener(this@SettingActivity)
         ivDevOnAndOff.setOnClickListener(this@SettingActivity)
         btnConnectionServer.setOnClickListener(this@SettingActivity)
+        LongClickUtils.setLongClick(Handler(), llOutSystem, 3000, object : View.OnLongClickListener {
+            override fun onLongClick(p0: View?): Boolean {
+                if (SpUtils.getString(
+                        MMKVName.CONNECT_STATE, ConnectStateEnum.DISCONNECTED.name
+                    )==ConnectStateEnum.CONNECTED.name){
+                    btnOutServer.visibility=VISIBLE
+                }else{
+                    return true
+                }
+                return true
+            }
+        })
+        btnOutServer.setOnClickListener(this@SettingActivity)
         btnUpdateApp.setOnClickListener(this@SettingActivity)
         //设置连接状态
         connectState(
@@ -225,9 +241,16 @@ class SettingActivity : BaseActivity<BackstageActivitySettingBinding, SettingVie
         observeLiveData(mViewModel.isM3Success, ::closeDialog)
         observeLiveData(mViewModel.connectState, ::connectState)
         observeLiveData(mViewModel.apkInfo, ::updateApp)
+        observeLiveData(mViewModel.connectOut, ::connectOut)
+
         lifecycle.addObserver(this)
 
     }
+    private fun connectOut(b: Boolean) {
+        if (b){
+            mBinding.btnOutServer.visibility = GONE
+        }
+    }
 
     private fun updateApp(apkInfoBean: ApkInfoBean) {
         this.apkInfoBean = apkInfoBean
@@ -315,6 +338,10 @@ class SettingActivity : BaseActivity<BackstageActivitySettingBinding, SettingVie
                 showConnectionServer()
             }
 
+            R.id.btn_out_server -> {
+                showOutServer()
+            }
+
             R.id.btn_update_app -> {
                 if (mBinding.tvUpdateHint.visibility != VISIBLE) {
                     ToastUtil.switchToastStyleToInfo(UiUtil.getStringRes(R.string.backstage_latest_version))
@@ -326,7 +353,25 @@ class SettingActivity : BaseActivity<BackstageActivitySettingBinding, SettingVie
             else -> {}
         }
     }
-
+    private fun showOutServer() {
+        if (outServerDialog == null) {
+            outServerDialog = DevOnOffDialog(this@SettingActivity)
+            outServerDialog?.setListener(object : DialogClickListener {
+                override fun onClickListener(type: Int, text: String?) {
+                    when (type) {
+                        outServerDialog?.type1 -> {
+                            // 脱离系统
+                            mViewModel.initOutSystem()
+                            outServerDialog?.dismiss()
+                        }
+                        else -> {}
+                    }
+                }
+            })
+        }
+        outServerDialog?.setContent(R.string.out_system_msg,R.string.backstage_confirm)
+        outServerDialog?.show()
+    }
     private fun showUpdateApp() {
         if (updateAppDialog == null) {
             updateAppDialog = UpdateAppDialog(this@SettingActivity)
@@ -424,6 +469,7 @@ class SettingActivity : BaseActivity<BackstageActivitySettingBinding, SettingVie
                 }
             }
         })
+        devOnOffDialog?.setContent(R.string.backstage_open_dev_tips,R.string.backstage_start_dev)
         devOnOffDialog?.show()
     }
 

+ 11 - 0
module_backstage/src/main/java/com/module/backstage/activity/setting/SettingRepository.kt

@@ -45,6 +45,17 @@ class SettingRepository @Inject constructor() : BaseRepository() {
             emit(this)
         }
     }
+    /**
+     * 脱离系统
+     */
+    suspend fun initOutSystem() = request<String> {
+        var params = HashMap<String, String>()
+        params["clientId"] = Heartbeat.deviceId!!
+        Log.d(TAG, "initDev1: "+params)
+        mApi.separate(params).run {
+            emit(this)
+        }
+    }
 
     /**
      * 检查更新

+ 24 - 0
module_backstage/src/main/java/com/module/backstage/activity/setting/SettingViewModel.kt

@@ -58,6 +58,9 @@ class SettingViewModel @Inject constructor(private val mRepo: SettingRepository)
     private var _apkInfo = MutableLiveData<ApkInfoBean>()
     val apkInfo: LiveData<ApkInfoBean> get() = _apkInfo
 
+    private var _connectOut = MutableLiveData<Boolean>()
+    val connectOut: LiveData<Boolean> get() = _connectOut
+
 
     /**
      * 模拟获取数据
@@ -96,6 +99,27 @@ class SettingViewModel @Inject constructor(private val mRepo: SettingRepository)
 
     }
 
+    fun initOutSystem() {
+        if (Heartbeat.clientId == null || Heartbeat.clientId == ""&&SpUtils.getString(
+                MMKVName.MANAGER_ID,
+                "")!="2855") {
+            ToastUtil.switchToastStyleToWarn("无法脱离系统")
+            return
+        }
+        //脱离系统
+        viewModelScope.launch(Dispatchers.IO) {
+            mRepo.initOutSystem().catch {
+                Log.d(TAG, "initDev onerror: " + it)
+            }.collect {
+                CoroutineScope(Dispatchers.Main).launch {
+                    Log.d(TAG, "initDev onnext: " + it)
+                    ToastUtil.switchToastStyleToSuccess(it)
+                    _connectOut.value=true
+                }
+            }
+        }
+    }
+
     fun initDev(text: String?) {
         if (Heartbeat.clientId == null || Heartbeat.clientId == "") {
             ToastUtil.switchToastStyleToWarn("id获取失败,请重试")

+ 26 - 0
module_backstage/src/main/java/com/module/backstage/adapter/TestAdapter.kt

@@ -10,6 +10,7 @@ import android.provider.Settings
 import android.util.Log
 import android.view.LayoutInflater
 import android.view.View
+import android.view.View.OnLongClickListener
 import android.view.ViewGroup
 import android.widget.AdapterView
 import android.widget.AdapterView.OnItemSelectedListener
@@ -27,6 +28,7 @@ import com.module.backstage.databinding.BackstageItemSliderBinding
 import com.module.backstage.databinding.BackstageItemSpinnerBinding
 import com.module.backstage.databinding.BackstageItemSystemSettingsBinding
 import com.module.backstage.databinding.BackstageItemTextBinding
+import com.module.backstage.listener.UpdateClickListener
 import com.module.pay.common.OtherEnum
 import com.quyunshuo.sbm10.base.utils.SpUtils
 import com.quyunshuo.sbm10.common.constant.MMKVName
@@ -70,6 +72,10 @@ class TestAdapter(var productList: MutableList<OtherEnum>) :
         RecyclerView.ViewHolder(viewBinding.root)
 
     var type3Position: Int = 0 //记录多选值的position
+    private var updateClickListener: UpdateClickListener? = null
+    fun setOnLongClickListener(monLongClickListener: UpdateClickListener?) {
+        this.updateClickListener = monLongClickListener
+    }
 
     // 在 init 初始化的时候,添加多类型
     init {
@@ -89,6 +95,26 @@ class TestAdapter(var productList: MutableList<OtherEnum>) :
                     // 绑定 item 数据
                     holder.viewBinding.run {
                         tvName.text = UiUtil.getStringRes(item!!.nameId)
+                        tvName.setOnLongClickListener(object : OnLongClickListener {
+                            override fun onLongClick(v: View?): Boolean {
+                                if (item.mmkvName == MMKVName.PROMOTION_CODE) {
+                                    if (updateClickListener != null) {
+                                        if (SpUtils.getBoolean(
+                                                MMKVName.IS_SHOW_CHANGLOGE, false
+                                            ) == true
+                                        ) {
+                                            SpUtils.putBoolean(MMKVName.IS_SHOW_CHANGLOGE, false)
+                                        } else {
+                                            SpUtils.putBoolean(MMKVName.IS_SHOW_CHANGLOGE, true)
+                                        }
+                                        updateClickListener?.setOnLongClickListener(
+                                            item.type, position, ""
+                                        )
+                                    }
+                                }
+                                return false
+                            }
+                        })
                         rgSwitch.setOnCheckedChangeListener { group, checkedId ->
                             when (checkedId) {
                                 R.id.rb_close -> {

+ 8 - 2
module_backstage/src/main/java/com/module/backstage/dialog/DevOnOffDialog.kt

@@ -1,9 +1,12 @@
 package com.module.backstage.dialog
 
 import android.content.Context
+import android.widget.TextView
 import com.hboxs.serialport.plc.DialogClickListener
+import com.module.backstage.R
 import com.module.backstage.databinding.BackstageDialogDevonoffBinding
 import com.quyunshuo.sbm10.base.mvvm.v.BaseFrameDialog
+import com.quyunshuo.sbm10.common.util.UiUtil
 
 /**
  * 开关机的对话框
@@ -23,7 +26,6 @@ class DevOnOffDialog(mContext: Context) : BaseFrameDialog<BackstageDialogDevonof
         tvStartDev.setOnClickListener{
             devOnoffDialoglistener?.onClickListener(type1,null)
         }
-
     }
 
     override fun createVB() = BackstageDialogDevonoffBinding.inflate(layoutInflater)
@@ -35,9 +37,13 @@ class DevOnOffDialog(mContext: Context) : BaseFrameDialog<BackstageDialogDevonof
     override fun initRequestData() {
     }
 
+    fun setContent(title:Int,btn1:Int){
+        mBinding.homeTextview.text = UiUtil.getStringRes(title)
+        mBinding.tvStartDev.text = UiUtil.getStringRes(btn1)
+    }
+
     fun setListener(listener: DialogClickListener) {
         this.devOnoffDialoglistener = listener
     }
 
-
 }

+ 70 - 23
module_backstage/src/main/java/com/module/backstage/fragment/other/SystemSettingsFragment.kt

@@ -14,6 +14,7 @@ import com.module.backstage.R
 import com.module.backstage.adapter.TestAdapter
 import com.module.backstage.databinding.BackstageFragmentSystemSettingsBinding
 import com.module.backstage.dialog.OKCancelDialog
+import com.module.backstage.listener.UpdateClickListener
 import com.quyunshuo.sbm10.common.listener.AdapterClickListener
 import com.module.backstage.vm.SystemSettingsFragmentVM
 import com.module.backstage.weight.HorizontalSpaceItemDecoration
@@ -29,7 +30,8 @@ import dagger.hilt.android.AndroidEntryPoint
  * @since 2021/8/1 11:46 下午
  */
 @AndroidEntryPoint
-class SystemSettingsFragment : BaseFragment<BackstageFragmentSystemSettingsBinding, SystemSettingsFragmentVM>() {
+class SystemSettingsFragment : BaseFragment<BackstageFragmentSystemSettingsBinding, SystemSettingsFragmentVM>(),
+    AdapterClickListener, UpdateClickListener {
 
     private val TAG = "GeneralParamFragment"
     var okCancelDialog: OKCancelDialog? = null
@@ -42,34 +44,58 @@ class SystemSettingsFragment : BaseFragment<BackstageFragmentSystemSettingsBindi
         mBinding.generalRvProduct.adapter = null
         super.onDestroyView()
     }
+    var functionIndex=0
 
     override fun BackstageFragmentSystemSettingsBinding.initView() {
-        with(generalRvProduct){
-            //设置布局排列方式,默认垂直排列
-            val gridLayoutManager: GridLayoutManager =
-                GridLayoutManager(this@SystemSettingsFragment.context, 1, GridLayoutManager.VERTICAL, false)
-            layoutManager = gridLayoutManager
-            val functionIndex = arguments?.getInt("FUNCTION")
+        if (arguments!=null){
+            functionIndex = arguments?.getInt("FUNCTION")!!
+        }
+        functionIndex.let { initRcy(it) }
 
-            otherAdapter = TestAdapter(mViewModel.getGeneralParamData(functionIndex))
-            otherAdapter!!.setItemListener(object : AdapterClickListener {
-                override fun onClickListener(view: View?, position: Int, data: String?) {
-//                    if (data==null) {
-//                        addAllKeyboardView(view)
+//        with(generalRvProduct){
+//            //设置布局排列方式,默认垂直排列
+//            val gridLayoutManager: GridLayoutManager =
+//                GridLayoutManager(this@SystemSettingsFragment.context, 1, GridLayoutManager.VERTICAL, false)
+//            layoutManager = gridLayoutManager
+//            val functionIndex = arguments?.getInt("FUNCTION")
+//
+//            otherAdapter = TestAdapter(mViewModel.getGeneralParamData(functionIndex))
+//            otherAdapter!!.setItemListener(object : AdapterClickListener {
+//                override fun onClickListener(view: View?, position: Int, data: String?) {
+////                    if (data==null) {
+////                        addAllKeyboardView(view)
+////                        return
+////                    }
+//                    if ("".equals(data)) {
+//                        ToastUtil.switchToastStyleToWarn(UiUtil.getStringRes(R.string.backstage_data_null_tips))
 //                        return
 //                    }
-                    if ("".equals(data)) {
-                        ToastUtil.switchToastStyleToWarn(UiUtil.getStringRes(R.string.backstage_data_null_tips))
-                        return
-                    }
-                    if (data != null) {
-                        showOkCancelDialog(position,data)
-                    }
-                }
-            })
-            adapter = otherAdapter
-            addItemDecoration(HorizontalSpaceItemDecoration(10))
+//                    if (data != null) {
+//                        showOkCancelDialog(position,data)
+//                    }
+//                }
+//            })
+//            adapter = otherAdapter
+//            addItemDecoration(HorizontalSpaceItemDecoration(10))
+//        }
+    }
+
+    fun initRcy(functionIndex:Int) {
+        mBinding.generalRvProduct.let {
+            val gridLayoutManager: GridLayoutManager =
+                GridLayoutManager(
+                    this@SystemSettingsFragment.context,
+                    1,
+                    GridLayoutManager.VERTICAL,
+                    false
+                )
+            it.layoutManager = gridLayoutManager
+            otherAdapter = TestAdapter(mViewModel.getGeneralParamData(functionIndex))
+            otherAdapter!!.setItemListener(this)
+            it.adapter = otherAdapter
+            //    it.addItemDecoration(HorizontalSpaceItemDecoration(100))
         }
+        otherAdapter?.setOnLongClickListener(this)
     }
 
     override fun initObserve() {
@@ -95,4 +121,25 @@ class SystemSettingsFragment : BaseFragment<BackstageFragmentSystemSettingsBindi
         })
         okCancelDialog?.show()
     }
+
+    override fun setOnLongClickListener(type: Int, position: Int, data: String?) {
+        /*     otherAdapter = TestAdapter(mViewModel.getGeneralParamData(functionIndex))
+             rvOtherSearch.adapter = otherAdapter*/
+        initRcy(functionIndex)
+        //   otherAdapter?.setData(mViewModel.getGeneralParamData(functionIndex))
+    }
+
+    override fun onClickListener(view: View?, position: Int, data: String?) {
+        if (data == null) {
+            addAllKeyboardView(view)
+            return
+        }
+        if ("".equals(data)) {
+            ToastUtil.switchToastStyleToWarn(
+                UiUtil.getStringRes(com.module.backstage.R.string.backstage_data_null_tips)
+            )
+            return
+        }
+        showOkCancelDialog(position, data)
+    }
 }

+ 11 - 0
module_backstage/src/main/java/com/module/backstage/listener/DebugClickListener.kt

@@ -0,0 +1,11 @@
+package com.module.backstage.listener
+
+import android.view.View
+
+/**
+ * 对话框按钮的点击事件
+ */
+fun interface DebugClickListener{
+    fun onClickListener( type:Int,isSelected: Boolean, position: Int,data:String?)
+
+}

+ 11 - 0
module_backstage/src/main/java/com/module/backstage/listener/UpdateClickListener.kt

@@ -0,0 +1,11 @@
+package com.module.backstage.listener
+
+import android.view.View
+
+/**
+ * 对话框按钮的点击事件
+ */
+fun interface UpdateClickListener{
+    fun setOnLongClickListener(type:Int,position: Int,data:String?)
+
+}

+ 8 - 0
module_backstage/src/main/java/com/module/backstage/repo/SystemSettingsFragmentRepo.kt

@@ -77,6 +77,14 @@ class SystemSettingsFragmentRepo @Inject constructor() : BaseRepository() {
         OtherEnum.AD_RULE,
         OtherEnum.AUTO_RETURN_HOME,
         OtherEnum.SLEEP_TEXT,
+    )
+    //其他
+    var otherSetListLogo: MutableList<OtherEnum> = Arrays.asList(
+        OtherEnum.PROMOTION_CODE,
+        OtherEnum.MAKE_CLEAN_PRICE,
+        OtherEnum.AD_RULE,
+        OtherEnum.AUTO_RETURN_HOME,
+        OtherEnum.SLEEP_TEXT,
         OtherEnum.LOGO_TEXT
     )
 

+ 12 - 0
module_backstage/src/main/java/com/module/backstage/vm/OtherFragmentVM.kt

@@ -3,9 +3,12 @@ package com.module.backstage.vm
 import androidx.lifecycle.LiveData
 import androidx.lifecycle.MutableLiveData
 import com.elvishew.xlog.XLog
+import com.module.backstage.R
 import com.module.backstage.repo.OtherFragmentRepo
 import com.module.pay.common.OtherEnum
 import com.quyunshuo.sbm10.base.mvvm.vm.BaseViewModel
+import com.quyunshuo.sbm10.base.utils.SpUtils
+import com.quyunshuo.sbm10.common.constant.MMKVName
 import com.quyunshuo.sbm10.common.util.UiUtil
 import com.quyunshuo.sbm10.common.util.XLogUtil
 import dagger.hilt.android.lifecycle.HiltViewModel
@@ -35,12 +38,21 @@ class OtherFragmentVM @Inject constructor(private val mRepo: OtherFragmentRepo)
     val readAllDataSuccess: LiveData<Int> get() = _readAllDataSuccess
 
     fun search(searchText: CharSequence) {
+        var isOpenChangLogo = SpUtils.getBoolean(
+            MMKVName.IS_SHOW_CHANGLOGE,
+            false
+        )
         list.clear()
         val arrayList = mRepo.arrayList
         XLogUtil.d("arrayList :$arrayList")
         for (otherEnum in arrayList) {
             val stringRes = UiUtil.getStringRes(otherEnum.nameId).uppercase()
             if (stringRes.contains(searchText.toString().uppercase())) {
+                if (isOpenChangLogo == true && UiUtil.getStringRes(R.string.logo_text)
+                        .contains(searchText.toString().uppercase())
+                ) {
+                    return
+                }
                 list.add(otherEnum)
             }
         }

+ 7 - 1
module_backstage/src/main/java/com/module/backstage/vm/SystemSettingsFragmentVM.kt

@@ -6,6 +6,8 @@ import androidx.lifecycle.MutableLiveData
 import com.module.backstage.repo.SystemSettingsFragmentRepo
 import com.module.pay.common.OtherEnum
 import com.quyunshuo.sbm10.base.mvvm.vm.BaseViewModel
+import com.quyunshuo.sbm10.base.utils.SpUtils
+import com.quyunshuo.sbm10.common.constant.MMKVName
 import dagger.hilt.android.lifecycle.HiltViewModel
 import javax.inject.Inject
 
@@ -47,7 +49,11 @@ class SystemSettingsFragmentVM @Inject constructor(private val mRepo: SystemSett
                 return mRepo.changeSetList
             }
             5 -> {
-                return mRepo.otherSetList
+                if (SpUtils.getBoolean(MMKVName.IS_SHOW_CHANGLOGE, false) == true) {
+                    return mRepo.otherSetListLogo
+                }else{
+                    return mRepo.otherSetList
+                }
             }
             else -> {
                 return mRepo.arrayList

+ 18 - 0
module_backstage/src/main/res/layout/backstage_activity_setting.xml

@@ -55,6 +55,7 @@
 
 
         <LinearLayout
+            android:id="@+id/ll_out_system"
             android:layout_width="wrap_content"
             android:orientation="vertical"
             android:layout_height="wrap_content"
@@ -167,6 +168,23 @@
             app:layout_constraintStart_toEndOf="@+id/rl_system"
             app:layout_constraintTop_toTopOf="parent" />
 
+        <TextView
+            android:id="@+id/btn_out_server"
+            android:layout_width="300dp"
+            android:layout_height="120dp"
+            android:layout_marginStart="100dp"
+            android:layout_marginTop="20dp"
+            android:background="@drawable/setting_rectangle_t_blue_background"
+            android:gravity="center"
+            android:minWidth="232dp"
+            android:visibility="gone"
+            android:paddingHorizontal="10dp"
+            android:text="@string/out_system"
+            android:textColor="@color/black"
+            android:textSize="50sp"
+            app:layout_constraintStart_toEndOf="@id/rl_system"
+            app:layout_constraintTop_toBottomOf="@id/btn_connection_server"/>
+
     </androidx.constraintlayout.widget.ConstraintLayout>
 
 

+ 1 - 1
module_backstage/src/main/res/layout/backstage_dialog_devonoff.xml

@@ -52,7 +52,7 @@
             android:layout_height="120dp"
             android:background="@drawable/home_rectangle_red_background"
             android:gravity="center"
-            android:text="关机"
+            android:text="@string/close_dev"
             android:visibility="gone"
             android:textColor="@color/white"
             android:textSize="52sp"

+ 2 - 1
module_home/src/main/java/com/quyunshuo/module/home/service/ManageMqtt.kt

@@ -19,6 +19,7 @@ import org.eclipse.paho.client.mqttv3.MqttCallbackExtended
 import org.eclipse.paho.client.mqttv3.MqttConnectOptions
 import org.eclipse.paho.client.mqttv3.MqttException
 import org.eclipse.paho.client.mqttv3.MqttMessage
+import org.greenrobot.eventbus.EventBus
 import javax.inject.Inject
 import javax.inject.Singleton
 
@@ -99,7 +100,7 @@ class ManageMqtt @Inject constructor() {
                         //todo 收到消息,要进行一些处理的。 Eventbus
                         log("收到消息:$topicName     $message")
                         val str1: String = String(message.getPayload())
-                        org.greenrobot.eventbus.EventBus.getDefault()
+                        EventBus.getDefault()
                             .post(
                                 MqttMessageBean(
                                     topicName,

+ 3 - 3
module_home/src/main/res/layout/home_fragment_bill_coin.xml

@@ -26,7 +26,7 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_marginTop="20dp"
-            android:text="还差"
+            android:text="@string/still_need"
             android:textColor="#1C1C1D"
             android:textSize="60sp"
             app:layout_constraintEnd_toEndOf="@+id/iv_card_icon"
@@ -48,7 +48,7 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_marginTop="20dp"
-            android:text=""
+            android:text="@string/money"
             android:textColor="#1C1C1D"
             android:textSize="60sp"
             app:layout_constraintEnd_toEndOf="@+id/iv_card_icon"
@@ -61,7 +61,7 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_marginTop="36dp"
-        android:text="请在限定时间内支付完毕,否则清零"
+        android:text="@string/time_cash_clear"
         android:textColor="#1C1C1D"
         android:textSize="36sp"
         app:layout_constraintEnd_toEndOf="@+id/ll_price"

+ 8 - 0
module_pay/src/main/java/com/module/pay/service/HomeApiService.kt

@@ -3,6 +3,8 @@ package com.module.pay.service
 import com.quyunshuo.wanandroid.common.bean.BaseResponse
 import okhttp3.RequestBody
 import retrofit2.http.Body
+import retrofit2.http.FieldMap
+import retrofit2.http.FormUrlEncoded
 import retrofit2.http.GET
 import retrofit2.http.POST
 import retrofit2.http.QueryMap
@@ -41,6 +43,12 @@ interface HomeApiService {
     suspend fun initDev(@QueryMap params: Map<String, String>): String
 
     /**
+     * 脱离系统
+     */
+    @POST("/SZWL-SERVER/api/app_equipment/index/separate.htm")
+    suspend fun separate(@QueryMap params: Map<String, String>): String
+
+    /**
      * 检查更新
      */
     @GET("/SZWL-SERVER/api/appApkInfo/apkinfo.htm")