From b83a442fe330ac8fe520f52e2081f790831ce86c Mon Sep 17 00:00:00 2001 From: zxj <275873859@qq.com> Date: Fri, 8 Aug 2025 17:26:09 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E9=85=8D=E8=89=B2?= =?UTF-8?q?=EF=BC=8C=E6=B7=BB=E5=8A=A0=E4=BA=86=E8=A7=A3=E9=99=A4=E7=BB=91?= =?UTF-8?q?=E5=AE=9A=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 32 ++----- .../java/com/sw/platecabinet/GlobalData.kt | 1 + .../sw/platecabinet/activity/BaseActivity.kt | 23 +++-- .../activity/UnBindDialogActivity.kt | 54 ++++++++++++ .../sw/platecabinet/fragment/BaseFragment.kt | 7 +- .../fragment/BindPlateFragment.kt | 16 +++- .../fragment/PlateOpenFragment.kt | 2 +- .../fragment/SettingListFragment.kt | 7 +- .../fragment/UnBindPlateFragment.kt | 33 +++++-- .../model/response/EquipmentUserInfo.kt | 5 ++ ...omDialog.java => CustomLoadingDialog.java} | 8 +- .../viewmodel/SettingViewModel.kt | 2 + .../platecabinet/viewmodel/UserViewModel.kt | 1 + app/src/main/res/drawable/bg_dialog.xml | 8 ++ ...btn_outline_887872.xml => btn_outline.xml} | 2 +- .../main/res/drawable/grid_button_unbind.xml | 2 +- app/src/main/res/drawable/ic_search.png | Bin 0 -> 1246 bytes .../main/res/drawable/ic_tip_warn_unbind.png | Bin 0 -> 2874 bytes app/src/main/res/drawable/shape_btn_bg.xml | 5 +- app/src/main/res/drawable/shape_pwd_bg.xml | 2 +- .../main/res/layout/activity_login_by_pwd.xml | 6 +- .../main/res/layout/activity_login_face.xml | 8 +- .../res/layout/activity_unbind_dialog.xml | 81 ++++++++++++++++++ .../main/res/layout/fragment_bind_plate.xml | 36 +++++--- .../layout/fragment_plate_cabinet_full.xml | 4 +- .../main/res/layout/fragment_plate_open.xml | 4 +- .../main/res/layout/fragment_unbind_plate.xml | 24 +++--- app/src/main/res/layout/item_bind_view.xml | 4 +- .../main/res/layout/item_search_user_info.xml | 4 +- app/src/main/res/layout/item_title_time.xml | 4 +- app/src/main/res/values/colors.xml | 8 +- app/src/main/res/values/themes.xml | 10 +++ .../com/sw/plate/utils/comn/SerialApi.java | 4 + 33 files changed, 297 insertions(+), 110 deletions(-) create mode 100644 app/src/main/java/com/sw/platecabinet/activity/UnBindDialogActivity.kt rename app/src/main/java/com/sw/platecabinet/view/{CustomDialog.java => CustomLoadingDialog.java} (90%) create mode 100644 app/src/main/res/drawable/bg_dialog.xml rename app/src/main/res/drawable/{btn_outline_887872.xml => btn_outline.xml} (86%) create mode 100644 app/src/main/res/drawable/ic_search.png create mode 100644 app/src/main/res/drawable/ic_tip_warn_unbind.png create mode 100644 app/src/main/res/layout/activity_unbind_dialog.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7ab7d9f..ca1728b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -26,6 +26,10 @@ android:supportsRtl="true" android:theme="@style/Theme.SmartPlateCabinet" tools:targetApi="31"> + @@ -35,41 +39,19 @@ - - - - - - - - - - - - - - - - - - - - + android:exported="false"> diff --git a/app/src/main/java/com/sw/platecabinet/GlobalData.kt b/app/src/main/java/com/sw/platecabinet/GlobalData.kt index 90033d6..f26018b 100644 --- a/app/src/main/java/com/sw/platecabinet/GlobalData.kt +++ b/app/src/main/java/com/sw/platecabinet/GlobalData.kt @@ -48,4 +48,5 @@ object GlobalKey { const val KEY_TOKEN = "tokenKey" const val KEY_FIRST_RUN = "firstRun" const val KEY_USER_INFO = "userInfoKey" + const val PARAM_EQUIPMENT_INFO = "equipmentUserInfo" } \ No newline at end of file diff --git a/app/src/main/java/com/sw/platecabinet/activity/BaseActivity.kt b/app/src/main/java/com/sw/platecabinet/activity/BaseActivity.kt index 755b94f..6d22945 100644 --- a/app/src/main/java/com/sw/platecabinet/activity/BaseActivity.kt +++ b/app/src/main/java/com/sw/platecabinet/activity/BaseActivity.kt @@ -26,13 +26,12 @@ import com.sw.platecabinet.databinding.ItemTitleTimeBinding import com.sw.platecabinet.ext.setClickListeners import com.sw.platecabinet.model.response.EquipmentUserInfo import com.sw.platecabinet.utils.PermissionHelper -import com.sw.platecabinet.view.CustomDialog +import com.sw.platecabinet.view.CustomLoadingDialog import com.sw.platecabinet.viewmodel.SettingViewModel import com.sw.platecabinet.viewmodel.UserViewModel import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job -import kotlinx.coroutines.flow.drop import kotlinx.coroutines.launch import timber.log.Timber @@ -44,7 +43,7 @@ abstract class BaseActivity : AppCompatActivity() { private var headerBinding: ItemTitleTimeBinding? = null protected lateinit var context: Context private var timeJob: Job? = null - private var mDialogWaiting: CustomDialog? = null + private var mDialogWaiting: CustomLoadingDialog? = null private val permissionHelpers = mutableMapOf() protected var keyEventHelper: ScanGunKeyEventHelper? = null @@ -181,7 +180,15 @@ abstract class BaseActivity : AppCompatActivity() { enforceImmersiveMode() } + override fun onWindowFocusChanged(hasFocus: Boolean) { + super.onWindowFocusChanged(hasFocus) + if (hasFocus) { + disableSystemUICompletely() + } + } + private fun disableSystemUICompletely() { + Timber.d("disableSystemUICompletely") // 禁用系统手势(Android 10+) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { window.insetsController?.systemBarsBehavior = @@ -206,6 +213,7 @@ abstract class BaseActivity : AppCompatActivity() { private fun enforceImmersiveMode() { + Timber.d("enforceImmersiveMode") // 持续强制隐藏系统栏(防止手势触发) window.decorView.postDelayed({ window.decorView.systemUiVisibility = ( @@ -223,7 +231,7 @@ abstract class BaseActivity : AppCompatActivity() { hideWaitingDialog() val view = View.inflate(this, R.layout.dialog_waiting, null) if (!TextUtils.isEmpty(tip)) (view.findViewById(R.id.tvTip) as TextView).setText(tip) - mDialogWaiting = CustomDialog(this, view, R.style.MyDialog) + mDialogWaiting = CustomLoadingDialog(this, view, R.style.MyDialog) mDialogWaiting!!.show() mDialogWaiting!!.setCancelable(true) return mDialogWaiting @@ -259,7 +267,7 @@ abstract class BaseActivity : AppCompatActivity() { } } lifecycleScope.launch { - viewModel.currentUserInfo.drop(1).collect { + viewModel.currentUserInfo.collect { if (it == null) return@collect handleLoginSuccess(it, false) } @@ -275,14 +283,14 @@ abstract class BaseActivity : AppCompatActivity() { } } lifecycleScope.launch { - settingViewModel.searchUserInfo.drop(1).collect { + settingViewModel.searchUserInfo.collect { Timber.d("registerDataChange 管理员 currentUserInfo = $it") if (it == null) return@collect handleLoginSuccess(it, true) } } lifecycleScope.launch { - settingViewModel.equipmentList.drop(1).collect { + settingViewModel.equipmentList.collect { if (it.isEmpty()) return@collect val unbindList = it.filter { !it.isBound() } if (unbindList.isEmpty()) { @@ -343,7 +351,6 @@ abstract class BaseActivity : AppCompatActivity() { } override fun onDestroy() { - SerialApi.close() timeJob?.cancel() keyEventHelper?.onDestroy() super.onDestroy() diff --git a/app/src/main/java/com/sw/platecabinet/activity/UnBindDialogActivity.kt b/app/src/main/java/com/sw/platecabinet/activity/UnBindDialogActivity.kt new file mode 100644 index 0000000..99e94be --- /dev/null +++ b/app/src/main/java/com/sw/platecabinet/activity/UnBindDialogActivity.kt @@ -0,0 +1,54 @@ +package com.sw.platecabinet.activity + +import android.graphics.Color +import android.view.Gravity +import android.view.ViewGroup +import androidx.core.graphics.drawable.toDrawable +import androidx.core.view.WindowCompat +import com.sw.platecabinet.GlobalKey +import com.sw.platecabinet.databinding.ActivityUnbindDialogBinding +import com.sw.platecabinet.databinding.ItemTitleTimeBinding +import com.sw.platecabinet.ext.dp +import com.sw.platecabinet.model.response.EquipmentUserInfo + +class UnBindDialogActivity : BaseActivity() { + private var equipmentUserInfo: EquipmentUserInfo? = null + + override fun inflateViewBinding(): ActivityUnbindDialogBinding { + return ActivityUnbindDialogBinding.inflate(layoutInflater) + } + + override fun inflateTitleBinding(): ItemTitleTimeBinding? { + return null + } + + override fun initialize() { + window?.apply { + WindowCompat.setDecorFitsSystemWindows(this, false) + setBackgroundDrawable(Color.TRANSPARENT.toDrawable()) + + attributes = attributes.apply { + y = 314.dp + width = (context.resources.displayMetrics.widthPixels * 0.8).toInt() + height = ViewGroup.LayoutParams.MATCH_PARENT + gravity = Gravity.CENTER + } + } + equipmentUserInfo = + intent.getParcelableExtra(GlobalKey.PARAM_EQUIPMENT_INFO) + if (equipmentUserInfo == null) return + binding.tvTipInfo.text = "即将解除【${equipmentUserInfo!!.name}】的餐盘" + binding.tvCancel.setOnClickListener { + finish() + } + binding.tvConfirm.setOnClickListener { + setResult(RESULT_OK) + finish() + } + } + + override fun finish() { + super.finish() + overridePendingTransition(0, 0) // 确保退出也无动画 + } +} \ No newline at end of file diff --git a/app/src/main/java/com/sw/platecabinet/fragment/BaseFragment.kt b/app/src/main/java/com/sw/platecabinet/fragment/BaseFragment.kt index 4f54730..b72aa2c 100644 --- a/app/src/main/java/com/sw/platecabinet/fragment/BaseFragment.kt +++ b/app/src/main/java/com/sw/platecabinet/fragment/BaseFragment.kt @@ -12,7 +12,7 @@ import androidx.fragment.app.viewModels import androidx.lifecycle.lifecycleScope import androidx.viewbinding.ViewBinding import com.sw.platecabinet.R -import com.sw.platecabinet.view.CustomDialog +import com.sw.platecabinet.view.CustomLoadingDialog import com.sw.platecabinet.viewmodel.SettingViewModel import kotlinx.coroutines.launch @@ -21,7 +21,7 @@ abstract class BaseFragment( ) : Fragment() { private var _binding: VB? = null protected val binding get() = _binding!! - private var mDialogWaiting: CustomDialog? = null + private var mDialogWaiting: CustomLoadingDialog? = null protected val viewModel by viewModels() override fun onCreateView( @@ -59,13 +59,12 @@ abstract class BaseFragment( hideWaitingDialog() val view = View.inflate(requireContext(), R.layout.dialog_waiting, null) if (!TextUtils.isEmpty(tip)) (view.findViewById(R.id.tvTip) as TextView).text = tip - mDialogWaiting = CustomDialog(requireContext(), view, R.style.MyDialog) + mDialogWaiting = CustomLoadingDialog(requireContext(), view, R.style.MyDialog) mDialogWaiting!!.show() mDialogWaiting!!.setCancelable(true) return mDialogWaiting } - /** * 隐藏等待提示框 */ diff --git a/app/src/main/java/com/sw/platecabinet/fragment/BindPlateFragment.kt b/app/src/main/java/com/sw/platecabinet/fragment/BindPlateFragment.kt index b47fd62..37035a4 100644 --- a/app/src/main/java/com/sw/platecabinet/fragment/BindPlateFragment.kt +++ b/app/src/main/java/com/sw/platecabinet/fragment/BindPlateFragment.kt @@ -26,7 +26,6 @@ import com.sw.platecabinet.model.response.EquipmentUserInfo import com.sw.platecabinet.model.response.SearchResult import com.sw.platecabinet.utils.Debouncer import com.sw.platecabinet.utils.KeyboardUtils -import kotlinx.coroutines.flow.drop import kotlinx.coroutines.launch import timber.log.Timber @@ -150,6 +149,17 @@ class BindPlateFragment : BaseFragment( false // 未处理其他动作 } } + binding.ivSearch.setOnClickListener { + debouncer.debounce { + // 执行搜索操作 + viewModel.getSearchMemberList( + param = binding.etUserInfo.text.toString(), + pageNum = 1 + ) + // 隐藏键盘 + KeyboardUtils.hideKeyboard(requireActivity()) + } + } binding.llBind.setOnClickListener { if (info == null || info!!.equipmentCode?.isEmpty() == true || info!!.equipmentBoxCode?.isEmpty() == true) { ToastUtils.showToast("传入的设备信息异常") @@ -186,12 +196,12 @@ class BindPlateFragment : BaseFragment( override fun registerDataChange() { super.registerDataChange() lifecycleScope.launch { - viewModel.searchMemberList.drop(1).collect { + viewModel.searchMemberList.collect { adapter.updateData(it) } } lifecycleScope.launch { - viewModel.bindStateChange.drop(1).collect { + viewModel.bindStateChange.collect { if (it.first == null) return@collect // 解绑状态过滤 val errorInfo = it.second if (errorInfo.isSuccess()) { diff --git a/app/src/main/java/com/sw/platecabinet/fragment/PlateOpenFragment.kt b/app/src/main/java/com/sw/platecabinet/fragment/PlateOpenFragment.kt index 37dfd54..3e1df6b 100644 --- a/app/src/main/java/com/sw/platecabinet/fragment/PlateOpenFragment.kt +++ b/app/src/main/java/com/sw/platecabinet/fragment/PlateOpenFragment.kt @@ -30,7 +30,7 @@ class PlateOpenFragment : arguments?.let { info = it.getParcelable(KEY_ACTION_TYPE) info?.let { - if (!it.isBound()) { + if (!it.hasEquipmentBox()) { binding.ivType.setImageResource(R.drawable.ic_tip_warn) binding.tvTitle.text = "暂无餐盘信息" binding.tvSubTitle.text = "请联系管理员" diff --git a/app/src/main/java/com/sw/platecabinet/fragment/SettingListFragment.kt b/app/src/main/java/com/sw/platecabinet/fragment/SettingListFragment.kt index 5c61643..b6a3e69 100644 --- a/app/src/main/java/com/sw/platecabinet/fragment/SettingListFragment.kt +++ b/app/src/main/java/com/sw/platecabinet/fragment/SettingListFragment.kt @@ -25,7 +25,6 @@ import com.sw.platecabinet.ext.maskName import com.sw.platecabinet.model.response.EquipmentUserInfo import com.sw.platecabinet.utils.ListArrangementUtil import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.flow.drop import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import timber.log.Timber @@ -49,7 +48,7 @@ class SettingListFragment : override fun registerDataChange() { super.registerDataChange() lifecycleScope.launch { - viewModel.equipmentList.drop(1).collect { it -> + viewModel.equipmentList.collect { it -> Timber.d("registerDateChange updateAdapter it = $it") updateAdapter(it) } @@ -128,7 +127,7 @@ class SettingListFragment : ) ) this.llOpen.setBackgroundResource(R.drawable.grid_button_bind) - this.tvOpen.setTextColor(resources.getColor(R.color.bind_F0C8B4)) + this.tvOpen.setTextColor(resources.getColor(R.color.bind_FFCC99)) this.llBindInfo.visibility = View.VISIBLE this.tvUnbind.visibility = View.GONE @@ -136,7 +135,7 @@ class SettingListFragment : this.tvLastTime.text = DateTimeUtils.getTimeAgo(date) } else { this.llRoot.setBackgroundResource(R.drawable.grid_item_unbind) - this.tvNum.setTextColor(resources.getColor(R.color.bind_F0C8B4)) + this.tvNum.setTextColor(resources.getColor(R.color.bind_FFCC99)) this.llOpen.setBackgroundResource(R.drawable.grid_button_unbind) this.tvOpen.setTextColor(resources.getColor(R.color.unbind_32283C)) this.llBindInfo.visibility = View.GONE diff --git a/app/src/main/java/com/sw/platecabinet/fragment/UnBindPlateFragment.kt b/app/src/main/java/com/sw/platecabinet/fragment/UnBindPlateFragment.kt index cdc3f81..b48bbb7 100644 --- a/app/src/main/java/com/sw/platecabinet/fragment/UnBindPlateFragment.kt +++ b/app/src/main/java/com/sw/platecabinet/fragment/UnBindPlateFragment.kt @@ -1,14 +1,18 @@ package com.sw.platecabinet.fragment +import android.app.Activity +import android.content.Intent import android.os.Bundle +import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.lifecycleScope import com.sw.inbound.utils.DateTimeUtils import com.sw.plate.utils.ToastUtils +import com.sw.platecabinet.GlobalKey +import com.sw.platecabinet.activity.UnBindDialogActivity import com.sw.platecabinet.databinding.FragmentUnbindPlateBinding import com.sw.platecabinet.ext.maskName import com.sw.platecabinet.ext.maskPhone import com.sw.platecabinet.model.response.EquipmentUserInfo -import kotlinx.coroutines.flow.drop import kotlinx.coroutines.launch /** @@ -30,6 +34,17 @@ class UnBindPlateFragment private constructor() : BaseFragment + if (result.resultCode == Activity.RESULT_OK) { + viewModel.unbindPlate( + equipmentBoxCode = info!!.equipmentBoxCode!!, + equipmentCode = info!!.equipmentCode!! + ) + } + } + override fun initialize() { arguments?.let { info = it.getParcelable(ARG_PARAM1) @@ -45,10 +60,11 @@ class UnBindPlateFragment private constructor() : BaseFragment + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/btn_outline_887872.xml b/app/src/main/res/drawable/btn_outline.xml similarity index 86% rename from app/src/main/res/drawable/btn_outline_887872.xml rename to app/src/main/res/drawable/btn_outline.xml index c3590b6..7aab849 100644 --- a/app/src/main/res/drawable/btn_outline_887872.xml +++ b/app/src/main/res/drawable/btn_outline.xml @@ -4,5 +4,5 @@ + android:color="#FFCC99" /> \ No newline at end of file diff --git a/app/src/main/res/drawable/grid_button_unbind.xml b/app/src/main/res/drawable/grid_button_unbind.xml index 3d93674..eeffb02 100644 --- a/app/src/main/res/drawable/grid_button_unbind.xml +++ b/app/src/main/res/drawable/grid_button_unbind.xml @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_search.png b/app/src/main/res/drawable/ic_search.png new file mode 100644 index 0000000000000000000000000000000000000000..aa4a14e072652d54de86c0832ba40b54715be23f GIT binary patch literal 1246 zcmV<41R?v0P)Px(m`OxIR9Hv7mwRj!RTPK6Gg~WF1c^!%i3+iQ5Q|1SyHSHN2xyR^1|uW}VuOZR z9z~6yF{HIbq6j`vsNL}qgYlL6NDPqR13^KQ?rceoQH&8yGy=v}Eh$h+=g92LKHF|f z*?9lkx##iiIcMhnt}uwDj(s7@T!a}w1h^>AtsT__!Zwa~zblh#{uo5qq=^(V)aHhZ zkaeUl2I}stAs~31NP& zv3`WObyB(b+k!3I7c0k=T9kQt?cK_egLlf5`jh$oxd2YA4rEovNIOtnAmK$HoK73G zB{mgT-Udde{Ztzy99`NkfW{jmi18Ir5*W3k?lcK6+IKq1Q?{CT^-A2H9SCECXWksl z64Tn69WPmdWa(S%W)w5n>;`TY)7m|hO{)M2iV(K zMabBkmFx*It-3Qwo~eYr1Z87ZEAE$Y^tD_7C$<@+%7^4I!gw*QqeTH|Y6>y_?;n8j zAbwoJmiIABF46BAhSOE@7s}Z|nO2J#tu03KOe^fA2piI~;GVo(B1?Yr0sM*mEK?$P z(ohGlKWJ^)Fb22u_w=jj>U@br-}C{T*aINm7tdRrY&keW>g(NNRv_8gg#8Q36+zrJ zVp@;+0CD?ighzsn@5QvPDt7WDfMb6SObOcjhM3WNg9_L$0L%P|ATE`e0VyVkI`$S| zW&qG6W^`_<1#3Va4U+8_)0$As#OXmy*gH{f3Vv@A)2dDZ)PTGgY#isnsNphaPEWBR z)UmxGyfmovlTvA|^Z~wUm_kX3*B^hm5|PNlcrgLgu`dIDO}_=I_eePUjt{WsxiU)6 zX#*(>=+;W5m1;>*IMlHp2A&CmDaMJhGRap>{--!@zmITNV9>_NuJLl+vW{Y8SI0gJ z2!S~sR*2LLZmL-f?Bhf@ALjCI=hd z5Z)%H^~sq)XiLn*6)$c|PwuC3RE0=p$kT#E_r|UvB+WpnpHw?=jTsVIxMwI3>K(-* z+d+I$BDnPEEfR@t&yJU?h!XaLD9@)2RF45Q*~jN#U^Ee%jf!{Vo}Xp^GjMhODcf6= z#_bIVxzb5>$0=P~FOle%g#dJK%*2q|Q}X8aKJ8R@(te~$Ze7vYYX-6%)UlreyjL+F z@F$dy5n4~F=0m8brF1l|Ohj}#NX5Vv(w($rAo{--G{yIvYaS;#vny*om7KMSE8MfG*GXSGC@9MbxFgISln(hEZQg3^we1p!i7 zv~}INbdR_rIL$mc<(=y(_3UYVPu(~evJL6{P_BLGpPZH!fEW}&{@+zk=aqM!N9dT) z_UDnlE*!ml`hge{!0C-b#=5U|{I3AX&zo0?sxj+8@AHJ(fB2fepCg~vEC2ui07*qo IM6N<$f*3|fUH||9 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/ic_tip_warn_unbind.png b/app/src/main/res/drawable/ic_tip_warn_unbind.png new file mode 100644 index 0000000000000000000000000000000000000000..bb3f39eff90def8ae52a318f8a610c6f59505a9f GIT binary patch literal 2874 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/shape_btn_bg.xml b/app/src/main/res/drawable/shape_btn_bg.xml index 191bd6f..c05f10d 100644 --- a/app/src/main/res/drawable/shape_btn_bg.xml +++ b/app/src/main/res/drawable/shape_btn_bg.xml @@ -1,8 +1,5 @@ - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_pwd_bg.xml b/app/src/main/res/drawable/shape_pwd_bg.xml index c8301e0..53c1433 100644 --- a/app/src/main/res/drawable/shape_pwd_bg.xml +++ b/app/src/main/res/drawable/shape_pwd_bg.xml @@ -3,5 +3,5 @@ + android:color="#FFCC99" /> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_login_by_pwd.xml b/app/src/main/res/layout/activity_login_by_pwd.xml index 3dbd034..7633776 100644 --- a/app/src/main/res/layout/activity_login_by_pwd.xml +++ b/app/src/main/res/layout/activity_login_by_pwd.xml @@ -21,7 +21,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:text="手机后四位" - android:textColor="#F0C8B4" + android:textColor="#FFCC99" android:textSize="26sp" android:textStyle="bold" /> @@ -62,7 +62,7 @@ android:layout_height="wrap_content" android:layout_marginTop="25dp" android:text="校验码" - android:textColor="#F0C8B4" + android:textColor="#FFCC99" android:textSize="26sp" android:textStyle="bold" /> @@ -115,7 +115,7 @@ android:layout_marginTop="40dp" android:padding="8dp" android:text="人脸识别" - android:textColor="#887872" + android:textColor="#FFCC99" android:textSize="26sp" android:textStyle="bold" /> diff --git a/app/src/main/res/layout/activity_login_face.xml b/app/src/main/res/layout/activity_login_face.xml index d82642e..f38396a 100644 --- a/app/src/main/res/layout/activity_login_face.xml +++ b/app/src/main/res/layout/activity_login_face.xml @@ -60,7 +60,7 @@ android:layout_marginTop="129dp" android:text="请正视屏幕" android:textStyle="bold" - android:textColor="#fff0c8b4" + android:textColor="#FFCC99" android:textSize="36sp" /> @@ -78,7 +78,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="密码登录" - android:textColor="#ff887872" + android:textColor="#FFCC99" android:textSize="24sp" /> @@ -90,7 +90,7 @@ android:padding="12dp" android:gravity="center" android:layout_marginTop="185dp" - android:textColor="#F0C8B4" + android:textColor="#FFCC99" android:textSize="36sp" /> diff --git a/app/src/main/res/layout/activity_unbind_dialog.xml b/app/src/main/res/layout/activity_unbind_dialog.xml new file mode 100644 index 0000000..122196d --- /dev/null +++ b/app/src/main/res/layout/activity_unbind_dialog.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_bind_plate.xml b/app/src/main/res/layout/fragment_bind_plate.xml index 6046e71..4a783a3 100644 --- a/app/src/main/res/layout/fragment_bind_plate.xml +++ b/app/src/main/res/layout/fragment_bind_plate.xml @@ -14,7 +14,7 @@ android:layout_height="wrap_content" android:layout_marginTop="60dp" android:text="柜体编号" - android:textColor="#ff7c6d6a" + android:textColor="#999999" android:textSize="20sp" /> @@ -43,7 +43,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="餐盘码" - android:textColor="#fff0c8b4" + android:textColor="#FFCC99" android:textSize="26sp" /> @@ -72,11 +72,11 @@ android:layout_height="match_parent" android:background="@color/transparent" android:gravity="center" - android:maxLines="1" android:hint="请录入餐盘码" android:inputType="number" - android:textColor="#fff0c8b4" - android:textColorHint="#ff7c6d6a" + android:maxLines="1" + android:textColor="#FFCC99" + android:textColorHint="#999999" android:textSize="26sp" android:textStyle="bold" tools:text="" /> @@ -92,7 +92,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="会员" - android:textColor="#fff0c8b4" + android:textColor="#FFCC99" android:textSize="26sp" /> @@ -117,17 +117,25 @@ + + @@ -162,6 +170,6 @@ android:layout_marginTop="46dp" android:paddingHorizontal="20dp" android:text="返回" - android:textColor="#ff887872" + android:textColor="#FFCC99" android:textSize="26sp" /> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_plate_cabinet_full.xml b/app/src/main/res/layout/fragment_plate_cabinet_full.xml index 83793a5..e061bc9 100644 --- a/app/src/main/res/layout/fragment_plate_cabinet_full.xml +++ b/app/src/main/res/layout/fragment_plate_cabinet_full.xml @@ -18,7 +18,7 @@ android:layout_height="wrap_content" android:layout_marginTop="48dp" android:text="餐盘柜已满" - android:textColor="#fff0c8b4" + android:textColor="#FFCC99" android:textSize="36sp" /> diff --git a/app/src/main/res/layout/fragment_plate_open.xml b/app/src/main/res/layout/fragment_plate_open.xml index 1739332..1f64a6d 100644 --- a/app/src/main/res/layout/fragment_plate_open.xml +++ b/app/src/main/res/layout/fragment_plate_open.xml @@ -51,7 +51,7 @@ android:layout_marginHorizontal="20dp" android:maxLines="1" android:ellipsize="end" - android:textColor="#ff887872" + android:textColor="#FFCC99" android:textSize="24sp" /> diff --git a/app/src/main/res/layout/fragment_unbind_plate.xml b/app/src/main/res/layout/fragment_unbind_plate.xml index 4905c55..2451a68 100644 --- a/app/src/main/res/layout/fragment_unbind_plate.xml +++ b/app/src/main/res/layout/fragment_unbind_plate.xml @@ -20,7 +20,7 @@ android:layout_height="wrap_content" android:layout_marginTop="25dp" android:text="柜体编号" - android:textColor="#ff7c6d6a" + android:textColor="#999999" android:textSize="20sp" /> @@ -53,7 +53,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="餐盘码" - android:textColor="#ff7c6d6a" + android:textColor="#999999" android:textSize="24sp" /> @@ -88,7 +88,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="姓名" - android:textColor="#ff7c6d6a" + android:textColor="#999999" android:textSize="24sp" /> @@ -123,7 +123,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="手机号" - android:textColor="#ff7c6d6a" + android:textColor="#999999" android:textSize="24sp" /> @@ -157,7 +157,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="最近使用" - android:textColor="#ff7c6d6a" + android:textColor="#999999" android:textSize="24sp" /> @@ -188,7 +188,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="解除绑定" - android:textColor="#ff11111c" + android:textColor="#11111C" android:textSize="30sp" android:textStyle="bold" /> @@ -200,6 +200,6 @@ android:layout_marginTop="48dp" android:paddingHorizontal="20dp" android:text="返回" - android:textColor="#ff887872" + android:textColor="#FFCC99" android:textSize="26sp" /> \ No newline at end of file diff --git a/app/src/main/res/layout/item_bind_view.xml b/app/src/main/res/layout/item_bind_view.xml index 96979a1..e31f9a1 100644 --- a/app/src/main/res/layout/item_bind_view.xml +++ b/app/src/main/res/layout/item_bind_view.xml @@ -16,7 +16,7 @@ android:layout_height="wrap_content" android:layout_marginStart="24dp" android:text="02" - android:textColor="#fff0c8b4" + android:textColor="#FFCC99" android:textSize="24sp" android:textStyle="bold" /> @@ -27,7 +27,7 @@ android:layout_marginStart="24dp" android:layout_weight="1" android:text="未绑定" - android:textColor="#fff0c8b4" + android:textColor="#FFCC99" android:textSize="18sp" android:textStyle="bold" android:visibility="gone" /> diff --git a/app/src/main/res/layout/item_search_user_info.xml b/app/src/main/res/layout/item_search_user_info.xml index 18140d3..b1067a5 100644 --- a/app/src/main/res/layout/item_search_user_info.xml +++ b/app/src/main/res/layout/item_search_user_info.xml @@ -12,7 +12,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="马*飞(8000)" - android:textColor="#fff0c8b4" + android:textColor="#FFCC99" android:textSize="26sp" android:textStyle="bold" /> @@ -22,7 +22,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="138****8000" - android:textColor="#ff7c6d6a" + android:textColor="#999999" android:textSize="20sp" android:textStyle="bold" /> \ No newline at end of file diff --git a/app/src/main/res/layout/item_title_time.xml b/app/src/main/res/layout/item_title_time.xml index 5a8a1dc..f77b81c 100644 --- a/app/src/main/res/layout/item_title_time.xml +++ b/app/src/main/res/layout/item_title_time.xml @@ -12,7 +12,7 @@ android:layout_height="wrap_content" android:gravity="center_vertical" android:paddingTop="20dp" - android:textColor="#F0C8B4" + android:textColor="#FFCC99" android:textSize="18sp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" @@ -24,7 +24,7 @@ android:layout_height="wrap_content" android:gravity="center_vertical" android:paddingTop="20dp" - android:textColor="#F0C8B4" + android:textColor="#FFCC99" android:textSize="18sp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="@id/tvLeftDate" diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index df74aac..1f5285e 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -7,12 +7,12 @@ #4E535D #585868 #FF9632 - #F0C8B4 - #F0C8B4 + #FFCC99 + #FFCC99 #32283C #4c91ceff #ff02f1be - #FF9933 - #887872 + #FFCC99 + #FFCC99 \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 54b043e..47c1731 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -22,4 +22,14 @@ false + \ No newline at end of file diff --git a/lib_face/src/main/java/com/sw/plate/utils/comn/SerialApi.java b/lib_face/src/main/java/com/sw/plate/utils/comn/SerialApi.java index 0c28597..d5b7801 100644 --- a/lib_face/src/main/java/com/sw/plate/utils/comn/SerialApi.java +++ b/lib_face/src/main/java/com/sw/plate/utils/comn/SerialApi.java @@ -36,6 +36,10 @@ public class SerialApi { } public static void close() { + if (serialPort != null) { + serialPort.close(); + serialPort = null; + } if (serialPortManager != null) { serialPortManager.close(); }