ccc преди 1 седмица
родител
ревизия
e86242ee85
променени са 35 файла, в които са добавени 496 реда и са изтрити 115 реда
  1. 2 0
      buildSrc/src/main/kotlin/com/quyunshuo/sbm10/buildsrc/DependencyConfig.kt
  2. 3 3
      buildSrc/src/main/kotlin/com/quyunshuo/sbm10/buildsrc/ProjectBuildConfig.kt
  3. 1 0
      lib_base/build.gradle
  4. 1 1
      lib_base/src/main/java/com/quyunshuo/sbm10/base/mvvm/v/BaseFrameFragment.kt
  5. 241 0
      lib_base/src/main/java/com/quyunshuo/sbm10/base/utils/AutoSizeTextView.kt
  6. 55 24
      module_backstage/src/main/java/com/module/backstage/fragment/param/DebugParamFragment.kt
  7. 13 13
      module_backstage/src/main/java/com/module/backstage/fragment/product/DebugProductFragment.kt
  8. 27 14
      module_backstage/src/main/java/com/module/backstage/repo/SystemSettingsFragmentRepo.kt
  9. 4 4
      module_backstage/src/main/java/com/module/backstage/vm/SystemSettingsFragmentVM.kt
  10. 9 3
      module_backstage/src/main/res/layout/backstage_activity_setting.xml
  11. 1 1
      module_backstage/src/main/res/layout/backstage_fragment_debug_product.xml
  12. 7 2
      module_backstage/src/main/res/layout/backstage_fragment_price.xml
  13. 15 5
      module_backstage/src/main/res/layout/backstage_fragment_reset_pwd.xml
  14. 6 2
      module_backstage/src/main/res/layout/backstage_fragment_show_product.xml
  15. 3 1
      module_backstage/src/main/res/layout/backstage_item_debug_product.xml
  16. 3 1
      module_backstage/src/main/res/layout/backstage_item_general_param.xml
  17. 3 1
      module_backstage/src/main/res/layout/backstage_item_input.xml
  18. 3 1
      module_backstage/src/main/res/layout/backstage_item_input_text.xml
  19. 3 1
      module_backstage/src/main/res/layout/backstage_item_price.xml
  20. 9 3
      module_backstage/src/main/res/layout/backstage_item_product.xml
  21. 3 1
      module_backstage/src/main/res/layout/backstage_item_slider.xml
  22. 3 1
      module_backstage/src/main/res/layout/backstage_item_spinner.xml
  23. 3 1
      module_backstage/src/main/res/layout/backstage_item_system_settings.xml
  24. 8 4
      module_home/src/main/java/com/quyunshuo/module/home/dialog/PayChooseDialogFragment.kt
  25. 7 3
      module_home/src/main/java/com/quyunshuo/module/home/fragment/fragment/HomeFragment.kt
  26. 10 9
      module_home/src/main/java/com/quyunshuo/module/home/fragment/vm/HomeFragmentVM.kt
  27. 3 1
      module_home/src/main/java/com/quyunshuo/module/home/service/GlobalServiceViewModel.kt
  28. 3 1
      module_home/src/main/res/layout/home_dialog_pay_choose.xml
  29. 3 1
      module_home/src/main/res/layout/home_fragment_buy.xml
  30. 32 9
      module_home/src/main/res/layout/home_fragment_home.xml
  31. 3 1
      module_home/src/main/res/layout/home_fragment_userlogin.xml
  32. 3 1
      module_home/src/main/res/layout/home_item_cart_product.xml
  33. 3 1
      module_home/src/main/res/layout/home_item_home_product.xml
  34. 2 1
      module_pay/src/main/java/com/module/pay/common/OtherEnum.kt
  35. 1 0
      serialport-api/src/main/java/com/hboxs/serialport/sbc/SBCHeartbeat.kt

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

@@ -67,6 +67,7 @@ object DependencyConfig {
         const val Serialport = "1.0.0"                     //串口支付设备
         const val XLog = "1.11.1"                          // xlog
         const val Hawk = "2.0.1"                          // hawk
+        const val AutoFitTextView = "10"               //自动缩放textview
 
         // 第三方SDK--------------------------------------------------------------
         const val TencentBugly = "3.3.9"                    // 腾讯Bugly 异常上报
@@ -185,6 +186,7 @@ object DependencyConfig {
         const val Serialport ="com.azhon:serialport:${Version.Serialport}"
         const val XLog = "com.elvishew:xlog:${Version.XLog}"
         const val Hawk = "com.orhanobut:hawk:${Version.Hawk}"
+        const val AutoFitTextView = "com.github.AndroidDeveloperLB:AutoFitTextView:${Version.AutoFitTextView}"
     }
 
     /**

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

@@ -11,10 +11,10 @@ object ProjectBuildConfig {
     const val applicationId = "com.quyunshuo.sbm10"
     const val minSdkVersion = 21
     const val targetSdkVersion = 29
-    const val versionCode = 20//版本号
-    const val versionName = "1.0.20"//版本名
+    const val versionCode = 22//版本号
+    const val versionName = "1.0.22"//版本名
     const val isAppMode = false
-    const val appVersion = 1  //国内外版本修改
+    const val appVersion = 2  //国内外版本修改
 
     /**
      * 项目当前的版本状态

+ 1 - 0
lib_base/build.gradle

@@ -74,6 +74,7 @@ dependencies {
     api DependencyConfig.GitHub.Serialport
     api DependencyConfig.GitHub.XLog
     api DependencyConfig.GitHub.Hawk
+    api DependencyConfig.GitHub.AutoFitTextView
 
     api DependencyConfig.SDK.TencentBugly
     api DependencyConfig.SDK.TencentBuglyNative

+ 1 - 1
lib_base/src/main/java/com/quyunshuo/sbm10/base/mvvm/v/BaseFrameFragment.kt

@@ -107,7 +107,7 @@ abstract class BaseFrameFragment<VB : ViewBinding, VM : BaseViewModel> : Fragmen
             "BillCoinFragment" -> fragmentName = "纸币硬币支付"
             "NayaxCardFragment" -> fragmentName = "nayax支付"
             "QrCodeFragment" -> fragmentName = "二码合一支付"
-            else-> fragmentName=className
+            else-> fragmentName=""
         }
         return fragmentName
     }

+ 241 - 0
lib_base/src/main/java/com/quyunshuo/sbm10/base/utils/AutoSizeTextView.kt

@@ -0,0 +1,241 @@
+package com.quyunshuo.sbm10.base.utils
+
+import android.annotation.TargetApi
+import android.content.Context
+import android.content.res.Resources
+import android.graphics.Canvas
+import android.graphics.RectF
+import android.graphics.Typeface
+import android.os.Build
+import android.text.TextPaint
+import android.util.AttributeSet
+import android.util.Log
+import android.util.TypedValue
+import androidx.appcompat.widget.AppCompatTextView
+
+
+/**
+ * 这个控件可以让安卓8(api 26)以下的版本也可以使用字体自动缩放功能
+ */
+private const val NO_LINE_LIMIT = -1
+class AutoSizeTextView @JvmOverloads constructor(
+    context: Context,
+    attrs: AttributeSet? = null,
+    defStyle: Int = android.R.attr.textViewStyle
+) : AppCompatTextView(context, attrs, defStyle) {
+    private var minTextSize = 0f
+    private var maxTextSize = 0f
+    private val availableSpaceRect = RectF()
+    private val sizeTester: SizeTester
+    private var spacingMult = 1.0f
+    private var spacingAdd = 0.0f
+    private var widthLimit: Int = 0
+    private var maxLines: Int = 0
+    private var initialized = false
+    private var textPaint: TextPaint? = null
+
+    private interface SizeTester {
+        /**
+         * @param suggestedSize  Size of text to be tested
+         * @param availableSpace available space in which text must fit
+         * @return an integer < 0 if after applying `suggestedSize` to
+         * text, it takes less space than `availableSpace`, > 0
+         * otherwise
+         */
+        fun onTestSize(suggestedSize: Int, availableSpace: RectF): Int
+    }
+
+    init {
+        minTextSize =
+            TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 12f, resources.displayMetrics)
+        maxTextSize = textSize
+        textPaint = TextPaint(paint)
+        if (maxLines == 0)
+            maxLines = NO_LINE_LIMIT
+        sizeTester = object : SizeTester {
+            val textRect = RectF()
+
+            @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
+            override fun onTestSize(suggestedSize: Int, availableSpace: RectF): Int {
+                textPaint!!.textSize = suggestedSize.toFloat()
+                val transformationMethod = transformationMethod
+                val text = transformationMethod?.getTransformation(
+                    getText(), this@AutoSizeTextView
+                )?.toString()
+                    ?: getText().toString()
+                val singleLine = maxLines == 1
+                if (singleLine) {
+                    textRect.bottom = textPaint!!.fontSpacing
+                    textRect.right = textPaint!!.measureText(text)
+                }
+                textRect.offsetTo(0f, 0f)
+                return if (availableSpace.contains(textRect)) -1 else 1
+            }
+        }
+        initialized = true
+    }
+
+    fun isValidWordWrap(before: Char, after: Char): Boolean {
+        return before == ' ' || before == '-'
+    }
+
+    override fun setAllCaps(allCaps: Boolean) {
+        super.setAllCaps(allCaps)
+        adjustTextSize()
+    }
+
+    override fun setTypeface(tf: Typeface?) {
+        super.setTypeface(tf)
+        adjustTextSize()
+    }
+
+    override fun setMaxLines(maxLines: Int) {
+        super.setMaxLines(maxLines)
+        this.maxLines = maxLines
+        adjustTextSize()
+    }
+
+    override fun getMaxLines(): Int {
+        return maxLines
+    }
+
+    override fun setSingleLine() {
+        super.setSingleLine()
+        maxLines = 1
+        adjustTextSize()
+    }
+
+    override fun setSingleLine(singleLine: Boolean) {
+        super.setSingleLine(singleLine)
+        if (singleLine)
+            maxLines = 1
+        else
+            maxLines = NO_LINE_LIMIT
+        adjustTextSize()
+    }
+
+    override fun setLines(lines: Int) {
+        super.setLines(lines)
+        maxLines = lines
+        adjustTextSize()
+    }
+
+    fun setMinTextSize(minTextSize: Float) {
+        this.minTextSize = minTextSize
+        adjustTextSize()
+    }
+
+    private fun superSetTextSize(minTextSize: Int) {
+        val textSize =
+            binarySearch(minTextSize, maxTextSize.toInt(), sizeTester, availableSpaceRect)
+        super.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize.toFloat())
+    }
+
+    override fun setTextSize(size: Float) {
+        super.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize)
+        maxTextSize = size
+        adjustTextSize()
+    }
+
+    fun setTextSizeManually(size:Float){
+        super.setTextSize(TypedValue.COMPLEX_UNIT_PX, size)
+    }
+
+    override fun setTextSize(unit: Int, size: Float) {
+        val context = context
+        val resources = if (context == null)
+            Resources.getSystem()
+        else
+            context.resources
+        maxTextSize = TypedValue.applyDimension(unit, size, resources.displayMetrics)
+        adjustTextSize()
+    }
+
+    fun adjustTextSize() {
+        if (!initialized)
+            return
+        val minTextSize = minTextSize.toInt()
+        val heightLimit = measuredHeight - compoundPaddingBottom - compoundPaddingTop
+        widthLimit = measuredWidth - compoundPaddingLeft - compoundPaddingRight
+        if (widthLimit <= 0)
+            return
+        refreshTextPaint()
+        availableSpaceRect.right = widthLimit.toFloat()
+        availableSpaceRect.bottom = heightLimit.toFloat()
+        superSetTextSize(minTextSize)
+    }
+
+    override fun setLineSpacing(add: Float, mult: Float) {
+        super.setLineSpacing(add, mult)
+        spacingMult = mult
+        spacingAdd = add
+    }
+
+    private fun refreshTextPaint() {
+        textPaint = TextPaint(paint)
+    }
+
+    private fun binarySearch(
+        start: Int,
+        end: Int,
+        sizeTester: SizeTester,
+        availableSpace: RectF
+    ): Int {
+        var lastBest = start
+        var lo = start
+        var hi = end - 1
+        var mid: Int
+        while (lo <= hi) {
+            mid = (lo + hi).ushr(1)
+            val midValCmp = sizeTester.onTestSize(mid, availableSpace)
+            when {
+                midValCmp < 0 -> {
+                    lastBest = lo
+                    lo = mid + 1
+                }
+                midValCmp > 0 -> {
+                    hi = mid - 1
+                    lastBest = hi
+                }
+                else -> return mid
+            }
+        }
+        return lastBest
+    }
+
+    override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
+        super.onMeasure(widthMeasureSpec, heightMeasureSpec)
+        Log.d(
+            "TAG",
+            "onMeasure() called with: widthMeasureSpec = $widthMeasureSpec, heightMeasureSpec = $heightMeasureSpec"
+        )
+    }
+
+    override fun onLayout(changed: Boolean, left: Int, top: Int, right: Int, bottom: Int) {
+        super.onLayout(changed, left, top, right, bottom)
+        Log.d(
+            "TAG",
+            "onLayout() called with: changed = $changed, left = $left, top = $top, right = $right, bottom = $bottom"
+        )
+    }
+
+    override fun onDraw(canvas: Canvas) {
+        super.onDraw(canvas)
+        Log.d("TAG", "onDraw() called with: canvas = $canvas")
+        onDraw?.invoke(this, textSize)
+    }
+
+    override fun onTextChanged(text: CharSequence, start: Int, before: Int, after: Int) {
+        super.onTextChanged(text, start, before, after)
+        adjustTextSize()
+    }
+
+    override fun onSizeChanged(width: Int, height: Int, oldwidth: Int, oldheight: Int) {
+        super.onSizeChanged(width, height, oldwidth, oldheight)
+        if (width != oldwidth || height != oldheight) {
+            adjustTextSize()
+        }
+    }
+
+    var onDraw: ((view: AutoSizeTextView, textSize: Float) -> Unit)? = null
+}

+ 55 - 24
module_backstage/src/main/java/com/module/backstage/fragment/param/DebugParamFragment.kt

@@ -173,42 +173,73 @@ class DebugParamFragment :
         var i = 0
         val len = lis.size
         Log.d(TAG, "paramDataList0: " + lis)
-        while (i < len) {
-            when (i) {
-                5 -> {
-                    if (lis[5]=="1") {
-                        if (lis[9] == "1") {
+        if (SBCHeartbeat.sbmVersion<=0){
+            while (i < len) {
+                when (i) {
+                    5 -> {
+                        if (lis[5]=="1") {
+                            if (lis[9] == "1") {
+                                getValue4(lis, i, 4)
+                            } else if (lis[9] == "0") {
+                                getValue4(lis, i, 5)
+                            }
+                        }else{
                             getValue4(lis, i, 4)
-                            Log.d(TAG, "paramDataList:getValue4 4")
-                        } else if (lis[9] == "0") {
                             getValue4(lis, i, 5)
-                            Log.d(TAG, "paramDataList:getValue4 5")
                         }
-                    }else{
-                        getValue4(lis, i, 4)
-                        getValue4(lis, i, 5)
                     }
-                }
 
-                8 -> {
-                    if (lis[8]=="1") {
-                        if (lis[9] == "0") {
+                    8 -> {
+                        if (lis[8]=="1") {
+                            if (lis[9] == "0") {
+                                getValue4(lis, i, 6)
+                            } else if (lis[9] == "1") {
+                                getValue4(lis, i, 7)
+                            }
+                        }else{
                             getValue4(lis, i, 6)
-                            Log.d(TAG, "paramDataList:getValue4 6")
-                        } else if (lis[9] == "1") {
                             getValue4(lis, i, 7)
-                            Log.d(TAG, "paramDataList:getValue4 7")
                         }
-                    }else{
-                        getValue4(lis, i, 6)
-                        getValue4(lis, i, 7)
                     }
+
+                    0 -> getValue(lis, i, 8)
+                    1 -> getValue(lis, i, 10)
                 }
+                i++
+            }
+        }else{
+            while (i < len) {
+                when (i) {
+                    17 -> {
+                        if (lis[17]=="1") {
+                            if (lis[18] == "1") {
+                                getValue4(lis, i, 4)
+                            } else if (lis[18] == "0") {
+                                getValue4(lis, i, 5)
+                            }
+                        }else{
+                            getValue4(lis, i, 4)
+                            getValue4(lis, i, 5)
+                        }
+                    }
 
-                0 -> getValue(lis, i, 8)
-                1 -> getValue(lis, i, 10)
+                    16 -> {
+                        if (lis[16]=="1") {
+                            if (lis[18] == "0") {
+                                getValue4(lis, i, 7)
+                            } else if (lis[18] == "1") {
+                                getValue4(lis, i, 6)
+                            }
+                        }else{
+                            getValue4(lis, i, 7)
+                            getValue4(lis, i, 6)
+                        }
+                    }
+                    4 -> getValue(lis, i, 8)
+                    5 -> getValue(lis, i, 10)
+                }
+                i++
             }
-            i++
         }
     }
 

+ 13 - 13
module_backstage/src/main/java/com/module/backstage/fragment/product/DebugProductFragment.kt

@@ -10,6 +10,7 @@ import com.google.gson.Gson
 import com.google.gson.reflect.TypeToken
 import com.quyunshuo.sbm10.base.DialogClickListener
 import com.hboxs.serialport.plc.util.HexUtils
+import com.hboxs.serialport.sbc.SBCHeartbeat
 import com.hboxs.serialport.sbc.VBoxMessage
 import com.hboxs.serialport.sbc.VboxSerialPortSendQueue
 import com.hboxs.serialport.sbc.frame.VboxCommand
@@ -99,7 +100,7 @@ class DebugProductFragment :
                             return
                         }
                     }
-                    when(deviceState){
+                    when(SBCHeartbeat.devCode){
                         "02"->showOkCancelDialog(position)
                         else->{
                             ToastUtil.switchToastStyleToError(UiUtil.getStringRes(R.string.make_faild)+":"+deviceState)
@@ -231,49 +232,48 @@ class DebugProductFragment :
     }
 
     fun deviceStatusCheck(): String {
-        if (deviceState=="") {
+        if (SBCHeartbeat.devCode=="") {
             //没有和plc通讯上
             return UiUtil.getStringRes(R.string.home_tips_dialog_1)
         }
-//
 //        if (Heartbeat.managerId ==""){
 //            //没有连接服务器
 //            return UiUtil.getStringRes(R.string.home_tips_dialog_6)
 //        }
-        if (deviceState == "00") {
+        if (SBCHeartbeat.devCode == "00") {
             //整机初次上电。
             return UiUtil.getStringRes(R.string.home_tips_dialog_2)
         }
-        if (deviceState == "01") {
+        if (SBCHeartbeat.devCode == "01") {
             //机器复位中。
             return UiUtil.getStringRes(R.string.home_tips_dialog_4)
         }
-        if (deviceState == "02") {
+        if (SBCHeartbeat.devCode == "02") {
             //机器开机完毕
             return "02"
         }
-        if (deviceState == "03") {
+        if (SBCHeartbeat.devCode == "03") {
             //机器报警了。
             return UiUtil.getStringRes(R.string.home_tips_dialog_3)
         }
-        if (deviceState == "04") {
+        if (SBCHeartbeat.devCode == "04") {
             //机器制作中
             return UiUtil.getStringRes(R.string.home_tips_dialog_5)
         }
-        if (deviceState == "05") {
+        if (SBCHeartbeat.devCode == "05") {
             //下玉米完毕
             return UiUtil.getStringRes(R.string.home_tips_dialog_5)
         }
-        if (deviceState == "06") {
+        if (SBCHeartbeat.devCode == "06") {
             //玉米爆开
             return UiUtil.getStringRes(R.string.home_tips_dialog_5)
         }
-        if (deviceState == "10") {
+        if (SBCHeartbeat.devCode == "10") {
             //未取出
             return UiUtil.getStringRes(R.string.home_make_success_tips)
         }
-
-        return deviceState
+        XLogUtil.d("当前机器状态:"+SBCHeartbeat.devCode)
+        return SBCHeartbeat.devCode
     }
 
     private fun showTipsDialog(content: String) {

+ 27 - 14
module_backstage/src/main/java/com/module/backstage/repo/SystemSettingsFragmentRepo.kt

@@ -1,7 +1,9 @@
 package com.module.backstage.repo
 
+import android.os.Build
 import com.module.pay.common.OtherEnum
 import com.quyunshuo.sbm10.base.mvvm.m.BaseRepository
+import com.quyunshuo.sbm10.common.constant.MMKVName
 import java.util.Arrays
 import javax.inject.Inject
 
@@ -47,6 +49,7 @@ class SystemSettingsFragmentRepo @Inject constructor() : BaseRepository() {
     //功能开启
     var functionOpenList: MutableList<OtherEnum> = Arrays.asList(
         OtherEnum.STAFF_LOGIN,
+        OtherEnum.LANGUAGE_SWITCH,
     )
     //购物车设置
     var shoppingCartList: MutableList<OtherEnum> = Arrays.asList(
@@ -71,27 +74,37 @@ class SystemSettingsFragmentRepo @Inject constructor() : BaseRepository() {
         OtherEnum.COIN_DIVIDE,
     )
     //其他
-    var otherSetList: MutableList<OtherEnum> = Arrays.asList(
-        OtherEnum.PROMOTION_CODE,
-        OtherEnum.MAKE_CLEAN_PRICE,
-        OtherEnum.AD_RULE,
-        OtherEnum.AUTO_RETURN_HOME,
-        OtherEnum.SLEEP_STATE,
-        OtherEnum.SLEEP_TEXT,
-        OtherEnum.CURRENCY_UNIT,
-        OtherEnum.LANGUAGE_SWITCH,
-    )
-    //其他
-    var otherSetListLogo: MutableList<OtherEnum> = Arrays.asList(
+
+    var list: MutableList<OtherEnum> =mutableListOf(
         OtherEnum.PROMOTION_CODE,
         OtherEnum.MAKE_CLEAN_PRICE,
         OtherEnum.AD_RULE,
         OtherEnum.AUTO_RETURN_HOME,
         OtherEnum.SLEEP_STATE,
         OtherEnum.SLEEP_TEXT,
-        OtherEnum.LOGO_TEXT,
         OtherEnum.CURRENCY_UNIT,
-        OtherEnum.LANGUAGE_SWITCH,
     )
 
+    val otherSetList: MutableList<OtherEnum>
+        get() {
+            if (MMKVName.IS_SHOW_CHANGLOGE){
+                if (!list.contains(OtherEnum.LOGO_TEXT)){
+                    list.add(1,OtherEnum.LOGO_TEXT)
+                }
+            }
+            return  list
+        }
+
+//    //其他
+//    var otherSetListLogo: MutableList<OtherEnum> = Arrays.asList(
+//        OtherEnum.PROMOTION_CODE,
+//        OtherEnum.MAKE_CLEAN_PRICE,
+//        OtherEnum.AD_RULE,
+//        OtherEnum.AUTO_RETURN_HOME,
+//        OtherEnum.SLEEP_STATE,
+//        OtherEnum.SLEEP_TEXT,
+//        OtherEnum.LOGO_TEXT,
+//        OtherEnum.CURRENCY_UNIT,
+//    )
+
 }

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

@@ -50,11 +50,11 @@ class SystemSettingsFragmentVM @Inject constructor(private val mRepo: SystemSett
             }
             5 -> {
 //                if (SpUtils.getBoolean(MMKVName.IS_SHOW_CHANGLOGE, false) == true) {
-                if (MMKVName.IS_SHOW_CHANGLOGE) {
-                    return mRepo.otherSetListLogo
-                }else{
+//                if (MMKVName.IS_SHOW_CHANGLOGE) {
+//                    return mRepo.otherSetListLogo
+//                }else{
                     return mRepo.otherSetList
-                }
+//                }
             }
             else -> {
                 return mRepo.arrayList

+ 9 - 3
module_backstage/src/main/res/layout/backstage_activity_setting.xml

@@ -36,7 +36,9 @@
             app:layout_constraintStart_toStartOf="parent"
             app:layout_constraintTop_toTopOf="parent">
 
-            <TextView
+            <com.quyunshuo.sbm10.base.utils.AutoSizeTextView
+                app:autoSizeTextType="uniform"
+                app:autoSizeMaxTextSize="70sp"
                 android:id="@+id/tv_system_set"
                 android:layout_width="250dp"
                 android:layout_height="250dp"
@@ -107,7 +109,9 @@
                 android:textSize="40sp"/>
         </LinearLayout>
 
-        <TextView
+        <com.quyunshuo.sbm10.base.utils.AutoSizeTextView
+            app:autoSizeTextType="uniform"
+            app:autoSizeMaxTextSize="50sp"
             android:id="@+id/btn_update_app"
             android:layout_width="300dp"
             android:layout_height="120dp"
@@ -155,7 +159,9 @@
         </RelativeLayout>
 
 
-        <TextView
+        <com.quyunshuo.sbm10.base.utils.AutoSizeTextView
+            app:autoSizeTextType="uniform"
+            app:autoSizeMaxTextSize="50sp"
             android:id="@+id/btn_connection_server"
             android:layout_width="300dp"
             android:autoSizeTextType="uniform"

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

@@ -55,7 +55,7 @@
                     android:id="@+id/tv_lutou"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
-                    android:text="40°C"
+                    android:text="0°C"
                     android:textStyle="bold"
                     android:textColor="#966035"
                     android:textSize="40sp" />

+ 7 - 2
module_backstage/src/main/res/layout/backstage_fragment_price.xml

@@ -31,7 +31,10 @@
             android:gravity="center"
             android:background="@drawable/backstage_shape_orange_line"
             android:layout_height="120dp">
-            <TextView
+
+            <com.quyunshuo.sbm10.base.utils.AutoSizeTextView
+                app:autoSizeTextType="uniform"
+                app:autoSizeMaxTextSize="45sp"
                 android:id="@+id/backstage_textview7"
                 android:layout_width="wrap_content"
                 android:maxWidth="480dp"
@@ -66,7 +69,9 @@
                 app:layout_constraintTop_toTopOf="@+id/backstage_textview7" />
         </LinearLayout>
 
-        <TextView
+        <com.quyunshuo.sbm10.base.utils.AutoSizeTextView
+            app:autoSizeTextType="uniform"
+            app:autoSizeMaxTextSize="50sp"
             android:id="@+id/tv_confirm"
             android:gravity="center"
             android:layout_width="480dp"

+ 15 - 5
module_backstage/src/main/res/layout/backstage_fragment_reset_pwd.xml

@@ -29,7 +29,9 @@
             app:layout_constraintStart_toStartOf="parent"
             app:layout_constraintTop_toTopOf="parent" />
 
-        <TextView
+        <com.quyunshuo.sbm10.base.utils.AutoSizeTextView
+            app:autoSizeTextType="uniform"
+            app:autoSizeMaxTextSize="52sp"
             android:id="@+id/backstage_textview4"
             android:layout_width="430dp"
             android:layout_height="wrap_content"
@@ -61,7 +63,9 @@
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toEndOf="@id/backstage_textview4" />
 
-        <TextView
+        <com.quyunshuo.sbm10.base.utils.AutoSizeTextView
+            app:autoSizeTextType="uniform"
+            app:autoSizeMaxTextSize="52sp"
             android:id="@+id/backstage_textview3"
             android:layout_width="430dp"
             app:layout_constraintEnd_toStartOf="@id/backstage_edittext"
@@ -94,7 +98,9 @@
             app:layout_constraintBaseline_toBaselineOf="@+id/backstage_textview3"
             app:layout_constraintEnd_toEndOf="parent" />
 
-        <TextView
+        <com.quyunshuo.sbm10.base.utils.AutoSizeTextView
+            app:autoSizeTextType="uniform"
+            app:autoSizeMaxTextSize="52sp"
             android:id="@+id/backstage_textview5"
             android:layout_width="430dp"
             android:layout_height="wrap_content"
@@ -129,7 +135,9 @@
             app:layout_constraintBaseline_toBaselineOf="@+id/backstage_textview5"
             app:layout_constraintEnd_toEndOf="parent" />
 
-        <TextView
+        <com.quyunshuo.sbm10.base.utils.AutoSizeTextView
+            app:autoSizeTextType="uniform"
+            app:autoSizeMaxTextSize="42sp"
             android:id="@+id/home_return_to_upper_level1"
             android:layout_width="260dp"
             android:layout_height="100dp"
@@ -151,7 +159,9 @@
             app:layout_constraintVertical_bias="0.533" />
 
 
-        <TextView
+        <com.quyunshuo.sbm10.base.utils.AutoSizeTextView
+            app:autoSizeTextType="uniform"
+            app:autoSizeMaxTextSize="42sp"
             android:id="@+id/home_return_to_upper_level"
             android:layout_width="260dp"
             android:layout_height="100dp"

+ 6 - 2
module_backstage/src/main/res/layout/backstage_fragment_show_product.xml

@@ -15,7 +15,9 @@
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toTopOf="parent" />
 
-    <TextView
+    <com.quyunshuo.sbm10.base.utils.AutoSizeTextView
+        app:autoSizeTextType="uniform"
+        app:autoSizeMaxTextSize="42sp"
         android:id="@+id/tv_confirm"
         android:gravity="center"
         android:layout_width="380dp"
@@ -36,7 +38,9 @@
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent" />
 
-    <TextView
+    <com.quyunshuo.sbm10.base.utils.AutoSizeTextView
+        app:autoSizeTextType="uniform"
+        app:autoSizeMaxTextSize="42sp"
         android:id="@+id/tv_reset"
         android:gravity="center"
         android:layout_width="380dp"

+ 3 - 1
module_backstage/src/main/res/layout/backstage_item_debug_product.xml

@@ -19,7 +19,9 @@
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toTopOf="parent" />
 
-    <TextView
+    <com.quyunshuo.sbm10.base.utils.AutoSizeTextView
+        app:autoSizeTextType="uniform"
+        app:autoSizeMaxTextSize="45sp"
         android:id="@+id/tv_name"
         android:layout_width="wrap_content"
         android:layout_marginTop="20dp"

+ 3 - 1
module_backstage/src/main/res/layout/backstage_item_general_param.xml

@@ -7,7 +7,9 @@
     android:layout_marginLeft="20dp"
     android:layout_marginTop="40dp">
 
-    <TextView
+    <com.quyunshuo.sbm10.base.utils.AutoSizeTextView
+        app:autoSizeTextType="uniform"
+        app:autoSizeMaxTextSize="40sp"
         android:id="@+id/tv_name"
         android:layout_width="250dp"
         android:layout_height="160dp"

+ 3 - 1
module_backstage/src/main/res/layout/backstage_item_input.xml

@@ -6,7 +6,9 @@
     android:layout_height="wrap_content"
     android:layout_marginTop="40dp">
 
-    <TextView
+    <com.quyunshuo.sbm10.base.utils.AutoSizeTextView
+        app:autoSizeMaxTextSize="52sp"
+        app:autoSizeTextType="uniform"
         android:id="@+id/tv_name"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"

+ 3 - 1
module_backstage/src/main/res/layout/backstage_item_input_text.xml

@@ -6,7 +6,9 @@
     android:layout_height="wrap_content"
     android:layout_marginTop="40dp">
 
-    <TextView
+    <com.quyunshuo.sbm10.base.utils.AutoSizeTextView
+        app:autoSizeMaxTextSize="52sp"
+        app:autoSizeTextType="uniform"
         android:id="@+id/tv_name"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"

+ 3 - 1
module_backstage/src/main/res/layout/backstage_item_price.xml

@@ -21,7 +21,9 @@
             android:layout_marginRight="90dp"
             android:src="@drawable/product_1" />
 
-        <TextView
+        <com.quyunshuo.sbm10.base.utils.AutoSizeTextView
+            app:autoSizeTextType="uniform"
+            app:autoSizeMaxTextSize="50sp"
             android:id="@+id/tv_name"
             android:layout_width="wrap_content"
             android:maxWidth="430dp"

+ 9 - 3
module_backstage/src/main/res/layout/backstage_item_product.xml

@@ -19,7 +19,9 @@
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toTopOf="parent" />
 
-    <TextView
+    <com.quyunshuo.sbm10.base.utils.AutoSizeTextView
+        app:autoSizeMaxTextSize="50sp"
+        app:autoSizeTextType="uniform"
         android:id="@+id/tv_name"
         android:layout_width="550dp"
         android:layout_height="wrap_content"
@@ -35,7 +37,9 @@
         app:layout_constraintStart_toEndOf="@+id/iv_sugar"
         app:layout_constraintTop_toTopOf="parent" />
 
-    <TextView
+    <com.quyunshuo.sbm10.base.utils.AutoSizeTextView
+        app:autoSizeTextType="uniform"
+        app:autoSizeMaxTextSize="50sp"
         android:id="@+id/backstage_textview7"
         android:layout_width="150dp"
         android:layout_height="150dp"
@@ -96,7 +100,9 @@
         app:layout_constraintStart_toEndOf="@+id/et_sugarprice"
         app:layout_constraintTop_toBottomOf="@id/backstage_textview8" />
 
-    <TextView
+    <com.quyunshuo.sbm10.base.utils.AutoSizeTextView
+        app:autoSizeTextType="uniform"
+        app:autoSizeMaxTextSize="30sp"
         android:id="@+id/tv_update_pic"
         android:layout_width="300dp"
         android:layout_height="140dp"

+ 3 - 1
module_backstage/src/main/res/layout/backstage_item_slider.xml

@@ -6,7 +6,9 @@
     android:layout_height="wrap_content"
     android:layout_marginTop="40dp">
 
-    <TextView
+    <com.quyunshuo.sbm10.base.utils.AutoSizeTextView
+        app:autoSizeTextType="uniform"
+        app:autoSizeMaxTextSize="52sp"
         android:id="@+id/tv_name"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"

+ 3 - 1
module_backstage/src/main/res/layout/backstage_item_spinner.xml

@@ -6,7 +6,9 @@
     android:layout_height="wrap_content"
     android:layout_marginTop="40dp">
 
-    <TextView
+    <com.quyunshuo.sbm10.base.utils.AutoSizeTextView
+        app:autoSizeMaxTextSize="50sp"
+        app:autoSizeTextType="uniform"
         android:id="@+id/tv_name"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"

+ 3 - 1
module_backstage/src/main/res/layout/backstage_item_system_settings.xml

@@ -6,7 +6,9 @@
     android:layout_height="wrap_content"
     android:layout_marginTop="40dp">
 
-    <TextView
+    <com.quyunshuo.sbm10.base.utils.AutoSizeTextView
+        app:autoSizeMaxTextSize="50sp"
+        app:autoSizeTextType="uniform"
         android:id="@+id/tv_name"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"

+ 8 - 4
module_home/src/main/java/com/quyunshuo/module/home/dialog/PayChooseDialogFragment.kt

@@ -120,10 +120,13 @@ class PayChooseDialogFragment :
             })
             adapter = homeProductAdapter
         }
-        for (mutableEntry in arrayListState) {
-            payMentNav(mutableEntry.key)
-            break
-
+        if (arrayListState.size==1){
+            for (mutableEntry in arrayListState) {
+                mBinding.rlPayMessage.visibility = View.VISIBLE
+                mBinding.rlSelectPay.visibility = View.GONE
+                payMentNav(mutableEntry.key)
+                break
+            }
         }
         with(rvCartProduct) {
             val gridLayoutManager =
@@ -155,6 +158,7 @@ class PayChooseDialogFragment :
         bundle.putString("PROMOTION_CODE",promotionCode)
         navController.navigate(enumByValue.navId,bundle)
         //点击取消的时候发送一个event,这样统一一点,因为mdb刷卡器也可以取消,nayax也可以取消。。
+        Log.d("payMentNav", "payMentNav: ")
         EventBus.getDefault().post(ApiMessageEvent(PayName.CANCEL_PAY,""))
     }
 

+ 7 - 3
module_home/src/main/java/com/quyunshuo/module/home/fragment/fragment/HomeFragment.kt

@@ -12,6 +12,7 @@ import android.view.LayoutInflater
 import android.view.MotionEvent
 import android.view.View
 import android.view.ViewGroup
+import android.widget.TextView.AUTO_SIZE_TEXT_TYPE_UNIFORM
 import androidx.annotation.RequiresApi
 import androidx.fragment.app.Fragment
 import androidx.fragment.app.viewModels
@@ -214,7 +215,8 @@ class HomeFragment : BaseFragment<HomeFragmentHomeBinding, HomeFragmentVM>(), Vi
                     myHandler.sendEmptyMessage(NETWORK_LEVEL)
                 }
             })
-        if (payType.contains("BillCoin")) {
+        Log.d(TAG, "initView:payType "+payType)
+        if (payType.contains("BillCoin")||MMKVName.APP_VERSION==2&&payType=="") {
             llCashAacpe.visibility = View.VISIBLE
         } else {
             llCashAacpe.visibility = View.GONE
@@ -247,7 +249,7 @@ class HomeFragment : BaseFragment<HomeFragmentHomeBinding, HomeFragmentVM>(), Vi
      * 定制化、UI显隐等
      */
     private fun initUi() {
-        if (!SpUtils.getBoolean(MMKVName.SHOPPING_TROLLEY, false)!!) {
+        if (!SpUtils.getBoolean(MMKVName.SHOPPING_TROLLEY, true)!!) {
             mBinding.clShoppingCart.setVisible(false)
         }
         if (!SpUtils.getBoolean(MMKVName.LANGUAGE_SWITCH,false)!!){
@@ -284,6 +286,8 @@ class HomeFragment : BaseFragment<HomeFragmentHomeBinding, HomeFragmentVM>(), Vi
     }
 
     private fun shoppingCarSumPrice(price: Double) {
+//        mBinding.tvTotal.setAutoSizeTextTypeWithDefaults(1)
+        Log.d(TAG, "shoppingCarSumPrice: "+Build.VERSION.SDK_INT)
         mBinding.tvTotal.text = price.toString()
     }
 
@@ -318,7 +322,7 @@ class HomeFragment : BaseFragment<HomeFragmentHomeBinding, HomeFragmentVM>(), Vi
                 return
             }
         }
-        if (checkToBuy()) return//是否开机
+//        if (checkToBuy()) return//是否开机
 //        selectProductDataBean = ProTypeEnum.getEnumByValue(product!!.nameChinese)
         //todo 测试做糖 传递价格等信息过去。
 //        gotoMake(product.nameChinese)

+ 10 - 9
module_home/src/main/java/com/quyunshuo/module/home/fragment/vm/HomeFragmentVM.kt

@@ -12,6 +12,7 @@ import com.hboxs.serialport.plc.thread.ThreadHomeParam
 import com.hboxs.serialport.plc.util.AdvacedUtil
 import com.hboxs.serialport.plc.util.AsciiUtils
 import com.hboxs.serialport.plc.util.HexadecimalUtil
+import com.hboxs.serialport.sbc.SBCHeartbeat
 import com.hboxs.serialport.sbc.VBoxMessage
 import com.hboxs.serialport.sbc.frame.VboxCommand
 import com.module.database.room.SZDatabase
@@ -230,7 +231,7 @@ class HomeFragmentVM @Inject constructor(private val mRepo: HomeFragmentRepo) :
     }
 
     fun deviceStatusCheck(): String {
-        if (D2Value.value == null) {
+        if (SBCHeartbeat.devCode == "") {
             //没有和plc通讯上
             return UiUtil.getStringRes(R.string.home_tips_dialog_1)
         }
@@ -239,35 +240,35 @@ class HomeFragmentVM @Inject constructor(private val mRepo: HomeFragmentRepo) :
 //            //没有连接服务器
 //            return UiUtil.getStringRes(R.string.home_tips_dialog_6)
 //        }
-        if (D2Value.value == "00") {
+        if (SBCHeartbeat.devCode == "00") {
             //整机初次上电。
             return UiUtil.getStringRes(R.string.home_tips_dialog_2)
         }
-        if (D2Value.value == "01") {
+        if (SBCHeartbeat.devCode == "01") {
             //机器复位中。
             return UiUtil.getStringRes(R.string.home_tips_dialog_4)
         }
-        if (D2Value.value == "02") {
+        if (SBCHeartbeat.devCode == "02") {
             //机器开机完毕
             return "02"
         }
-        if (D2Value.value == "03") {
+        if (SBCHeartbeat.devCode == "03") {
             //机器报警了。
             return UiUtil.getStringRes(R.string.home_tips_dialog_3)
         }
-        if (D2Value.value == "04") {
+        if (SBCHeartbeat.devCode == "04") {
             //机器制作中
             return UiUtil.getStringRes(R.string.home_tips_dialog_5)
         }
-        if (D2Value.value == "05") {
+        if (SBCHeartbeat.devCode == "05") {
             //下玉米完毕
             return UiUtil.getStringRes(R.string.home_tips_dialog_5)
         }
-        if (D2Value.value == "07") {
+        if (SBCHeartbeat.devCode == "07") {
             //玉米爆开
             return UiUtil.getStringRes(R.string.home_tips_dialog_5)
         }
-        if (D2Value.value == "10") {
+        if (SBCHeartbeat.devCode == "10") {
             //未取出
             return UiUtil.getStringRes(R.string.home_make_success_tips)
         }

+ 3 - 1
module_home/src/main/java/com/quyunshuo/module/home/service/GlobalServiceViewModel.kt

@@ -550,7 +550,7 @@ class GlobalServiceViewModel @Inject constructor(
         val sumHexPairs = HexUtils.sumHexPairs(messageEvent.data)
         if (sumHexPairs) {
             SBCHeartbeat.initIsSuccess = true
-            SBCHeartbeat.devCode = messageEvent.data.substring(0, 2)
+//            SBCHeartbeat.devCode = messageEvent.data.substring(0, 2)
             //是否保存设备数据了。
             SBCHeartbeat.saveDevData = messageEvent.data.substring(2, 4)
             if (SBCHeartbeat.saveDevData.equals("00")) {
@@ -619,6 +619,8 @@ class GlobalServiceViewModel @Inject constructor(
                     28
                 )
             )
+            SBCHeartbeat.sbmVersion = HexadecimalUtil.hex2dec(
+                messageEvent.data.substring(30,32)).toInt()
         } else {
             _initIsSuccess.value = false
             SBCHeartbeat.initIsSuccess = false

+ 3 - 1
module_home/src/main/res/layout/home_dialog_pay_choose.xml

@@ -57,7 +57,9 @@
             android:layout_marginTop="37dp"
             app:layout_constraintStart_toStartOf="@+id/home_guideline4">
 
-            <TextView
+            <com.quyunshuo.sbm10.base.utils.AutoSizeTextView
+                app:autoSizeTextType="uniform"
+                app:autoSizeMaxTextSize="56sp"
                 android:id="@+id/tv_title"
                 android:layout_width="wrap_content"
                 android:maxWidth="600dp"

+ 3 - 1
module_home/src/main/res/layout/home_fragment_buy.xml

@@ -60,7 +60,9 @@
         app:layout_constraintWidth_percent="0.1"
         app:srcCompat="@drawable/ic_click_hand" />
 
-    <TextView
+    <com.quyunshuo.sbm10.base.utils.AutoSizeTextView
+        app:autoSizeTextType="uniform"
+        app:autoSizeMaxTextSize="60sp"
         android:id="@+id/click_tip"
         android:layout_width="wrap_content"
         android:minWidth="300dp"

+ 32 - 9
module_home/src/main/res/layout/home_fragment_home.xml

@@ -107,12 +107,15 @@
             app:layout_constraintStart_toStartOf="parent"
             app:layout_constraintTop_toTopOf="parent" />
 
-        <TextView
+        <com.quyunshuo.sbm10.base.utils.AutoSizeTextView
+
+            app:autoSizeTextType="uniform"
+            app:autoSizeMaxTextSize="50sp"
             android:id="@+id/tv_clientId"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:text="@string/home_dev_id"
             android:autoSizeTextType="uniform"
+            android:text="@string/home_dev_id"
             android:textColor="@color/black"
             android:textSize="50sp"
             app:layout_constraintStart_toStartOf="parent"
@@ -123,12 +126,12 @@
         android:id="@+id/btn_cif"
         android:layout_width="200dp"
         android:layout_height="150dp"
-        android:autoSizeTextType="uniform"
         android:layout_marginTop="20dp"
-        android:padding="20dp"
         android:layout_marginRight="100dp"
+        android:autoSizeTextType="uniform"
         android:background="@drawable/home_rectangle_t_blue_background"
         android:gravity="center"
+        android:padding="20dp"
         android:text="@string/contact_details"
         android:textColor="@color/black"
         android:textSize="40sp"
@@ -151,7 +154,9 @@
             android:layout_height="150dp"
             android:src="@drawable/icon_language" />
 
-        <TextView
+        <com.quyunshuo.sbm10.base.utils.AutoSizeTextView
+            app:autoSizeTextType="uniform"
+            app:autoSizeMaxTextSize="40sp"
             android:id="@+id/tv_language_switch"
             android:layout_width="200dp"
             android:layout_height="150dp"
@@ -281,16 +286,34 @@
             app:layout_constraintStart_toStartOf="@+id/iv_shopping_trolley"
             app:layout_constraintTop_toTopOf="@+id/iv_shopping_trolley" />
 
-        <TextView
+        <!--        <TextView-->
+        <!--            android:id="@+id/tv_total"-->
+        <!--            android:layout_width="wrap_content"-->
+        <!--            android:maxWidth="300dp"-->
+        <!--            android:layout_height="wrap_content"-->
+        <!--            android:maxHeight="100dp"-->
+        <!--            android:autoSizeTextType="uniform"-->
+        <!--            android:layout_centerVertical="true"-->
+        <!--            android:layout_marginLeft="20dp"-->
+        <!--            android:gravity="center_vertical"-->
+        <!--            android:text="@string/not_selected"-->
+        <!--            android:textColor="#d4237a"-->
+        <!--            android:textSize="50sp"-->
+        <!--            app:layout_constraintBottom_toBottomOf="@+id/iv_shopping_trolley"-->
+        <!--            app:layout_constraintStart_toEndOf="@+id/iv_shopping_trolley"-->
+        <!--            app:layout_constraintTop_toTopOf="@+id/iv_shopping_trolley" />-->
+
+        <com.quyunshuo.sbm10.base.utils.AutoSizeTextView
+            app:autoSizeTextType="uniform"
+            app:autoSizeMaxTextSize="50sp"
             android:id="@+id/tv_total"
             android:layout_width="wrap_content"
-            android:maxWidth="300dp"
             android:layout_height="wrap_content"
-            android:maxHeight="100dp"
-            android:autoSizeTextType="uniform"
             android:layout_centerVertical="true"
             android:layout_marginLeft="20dp"
             android:gravity="center_vertical"
+            android:maxWidth="280dp"
+            android:maxHeight="100dp"
             android:text="@string/not_selected"
             android:textColor="#d4237a"
             android:textSize="50sp"

+ 3 - 1
module_home/src/main/res/layout/home_fragment_userlogin.xml

@@ -80,7 +80,9 @@
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintTop_toTopOf="parent" />
 
-    <TextView
+    <com.quyunshuo.sbm10.base.utils.AutoSizeTextView
+        app:autoSizeTextType="uniform"
+        app:autoSizeMaxTextSize="52sp"
         android:id="@+id/home_return_to_upper_level"
         android:layout_width="wrap_content"
         android:maxWidth="500dp"

+ 3 - 1
module_home/src/main/res/layout/home_item_cart_product.xml

@@ -32,7 +32,9 @@
             app:layout_constraintStart_toEndOf="@+id/home_imageview9"
             app:layout_constraintTop_toTopOf="@+id/home_imageview9" />
 
-        <TextView
+        <com.quyunshuo.sbm10.base.utils.AutoSizeTextView
+            app:autoSizeTextType="uniform"
+            app:autoSizeMaxTextSize="34sp"
             android:id="@+id/tv_price"
             android:layout_width="250dp"
             android:layout_height="wrap_content"

+ 3 - 1
module_home/src/main/res/layout/home_item_home_product.xml

@@ -21,7 +21,9 @@
         app:layout_constraintTop_toTopOf="parent" />
 
 
-    <TextView
+    <com.quyunshuo.sbm10.base.utils.AutoSizeTextView
+        app:autoSizeTextType="uniform"
+        app:autoSizeMaxTextSize="70sp"
         android:id="@+id/tv_name"
         android:layout_width="wrap_content"
         android:maxWidth="650dp"

+ 2 - 1
module_pay/src/main/java/com/module/pay/common/OtherEnum.kt

@@ -48,6 +48,8 @@ enum class OtherEnum(var nameId:Int,var nameS:String,var category:String,var def
     PROMOTION_CODE(R.string.promotion_code,"优惠码","功能开启",false, 1,MMKVName.PROMOTION_CODE),
     MAKE_CLEAN_PRICE(R.string.make_clean_price,"制作后清零金额","功能开启",false, 1,MMKVName.MAKE_CLEAN_PRICE),
     STAFF_LOGIN(R.string.staff_login,"员工登录","功能开启",false, 1,MMKVName.STAFF_LOGIN),
+    LANGUAGE_SWITCH(R.string.more_language,"多语言","功能开启",false, 1,MMKVName.LANGUAGE_SWITCH),
+
     //提示没有退币功能。
     AD_RULE(R.string.ad_rule,"广告规则","其他",true, 1,MMKVName.AD_RULE),
     AUTO_RETURN_HOME(R.string.auto_return_home,"自动返回首页(分钟)","其他","10", 2,MMKVName.AUTO_RETURN_HOME),
@@ -55,7 +57,6 @@ enum class OtherEnum(var nameId:Int,var nameS:String,var category:String,var def
     SLEEP_TEXT(R.string.sleep_text,"休眠中文本","其他","", 7,MMKVName.SLEEP_TEXT),
     LOGO_TEXT(R.string.logo_text,"图标变更","其他","7777", 2,MMKVName.LOGO_TEXT),
     CURRENCY_UNIT(R.string.currency_unit,"货币单位","其他",ArrayList<String>(MMKVName.UNIT_DATA), 3,MMKVName.CURRENCY_UNIT),
-    LANGUAGE_SWITCH(R.string.more_language,"多语言","其他",false, 1,MMKVName.LANGUAGE_SWITCH),
 
     SHOPPING_TROLLEY(R.string.shopping_trolley,"购物车功能","购物车设置",true, 1,MMKVName.SHOPPING_TROLLEY),
     SHOPPING_CART_SIZE(R.string.shopping_cart_size,"购物车可添加数量","购物车设置","3", 2,MMKVName.SHOPPING_CART_SIZE),

+ 1 - 0
serialport-api/src/main/java/com/hboxs/serialport/sbc/SBCHeartbeat.kt

@@ -25,6 +25,7 @@ object SBCHeartbeat {
     var windSpeedMid:String =""//气泵低速
     var windSpeedHei:String =""//气泵低速
 
+    var sbmVersion:Int= 0//单片机版本号
     @Volatile
     var firstData = false  //如果队列里面有数据,为false, 反之亦然。
 }