Jelajahi Sumber

更新优化,010D 翻译目录

zhangshenjie 8 bulan lalu
induk
melakukan
8d2186efc8

+ 1 - 0
BusinessCommon/src/main/java/com/develop/common/data_repo/db/DataFactory.kt

@@ -510,6 +510,7 @@ val dataSn = getSN()
 
 
     fun genSortNameList(resource: Resources): MutableList<FilterSortModel> {
+        //注意,做调整的话,外部对应的需要也要做调整  updateSortName 的方法
         val result = mutableListOf<FilterSortModel>()
         val sn = getSN()
         //处理033隐藏最受欢迎分类  R.string.most_popular

+ 1 - 1
BusinessCommon/src/main/java/com/develop/common/data_repo/db/entity/DevRecipe.kt

@@ -136,7 +136,7 @@ data class DevRecipe(
     var useNum: Long?,
 
     @ColumnInfo(name = "update_time")
-    val updateTime: Long?,
+    var updateTime: Long?,
 
     @ColumnInfo(name = "create_time")
     val createTime: Long?,

+ 8 - 2
BusinessCommon/src/main/java/com/develop/common/utils/AppVersionUtil.kt

@@ -383,7 +383,9 @@ object AppVersionUtil {
                     )
                 }
             }.catch {
-                ToastUtils.showShort("下载失败 :" + it.toString())
+//                ToastUtils.showShort("下载失败 :" + it.toString())
+                ToastUtils.showShort("Download failed")
+
             }
 
         }
@@ -415,6 +417,10 @@ object AppVersionUtil {
                     deleteDevRecipeRelTags(recipeNumber)
                     deleteDevRecipePortionSizes(recipeNumber)
                     recipeList.forEach {
+                        //加此判断是因为 食谱包有可能updateTime是空或者0 ,由于食谱那边有个new的排序,是需要用到updateTime,估写入的时候做判断
+                        if (it.updateTime==null ||it.updateTime==0L){
+                            it.updateTime = System.currentTimeMillis()
+                        }
                         deleteNumAndLangRecipe(it.number, it.lang)
                     }
 
@@ -443,7 +449,7 @@ object AppVersionUtil {
                     insertDevRecipePortionSizes(contentData.devRecipePortionSizes)
                     insertDevRecipeRelTags(contentData.devRecipeRelTags)
                     insertDevRecipeTags(contentData.devRecipeTags)
-                    insertDevRecipes(contentData.devRecipes)
+                    insertDevRecipes(recipeList)
 
                     //作为下载食谱的新标
                     numberList.add(recipeNumber)

+ 9 - 0
BusinessCommon/src/main/java/com/develop/common/utils/StringUtils.java

@@ -73,6 +73,15 @@ public class StringUtils {
         }
         return content.toString();
     }
+    public static boolean doesUpdateTxtFileExist() {
+        File file = new File("system/media/cofa_update_recipe.txt");
+        return file.exists();
+    }
+    public static boolean doesFileExist(String filePath) {
+        File file = new File(filePath);
+        return file.exists();
+    }
+
 
     public static int getScreenSize(Context context) {
         DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();

+ 8 - 3
BusinessCommon/src/main/java/com/develop/common/widget/FoodContentView.kt

@@ -90,8 +90,11 @@ class FoodContentView : ConstraintLayout {
                 }
 
                 if (numberList.contains(mFoodContent?.foodId ?:"00000000")){
+
+                    //由于存在的numberList
                     //处理更新菜谱的标识 ,点击以后消除更新食谱编号
-                    var list = GsonUtils.GsonToList<String>(numberList)
+                    var listNew = isRecipesList()
+                    var list = GsonUtils.GsonToList<String>(listNew)
                     var strs = ""
                     if (list.isNotEmpty()){
                         for (str in list){
@@ -103,9 +106,11 @@ class FoodContentView : ConstraintLayout {
                             list.remove(strs)
 
                         }
+
+                        //保存更新食谱数据
+                        setRecipesList(GsonUtils.GsonString(list))
                     }
-                    //保存更新食谱数据
-                    setRecipesList(GsonUtils.GsonString(list))
+
                     binding.ivContentNew.visibility = View.INVISIBLE
                 }
             }

+ 6 - 1
BusinessCommon/src/main/java/com/develop/common/widget/HomeFunctionTopBar.kt

@@ -56,7 +56,12 @@ class HomeFunctionTopBar : RelativeLayout, View.OnClickListener {
 
 
         }else{
-            binding.homeTopLayout.background = resources.getDrawable(R.color.bg_color)
+            if (isNightTheme()){
+                binding.homeTopLayout.background = resources.getDrawable(R.color.black)
+            }else{
+                binding.homeTopLayout.background = resources.getDrawable(R.color.bg_color)
+            }
+
             binding.ivWifi.src = R.drawable.icon_wifi_act_signal_level
             binding.ivFunction.background_drawable = R.drawable.ic_home
         }

+ 27 - 9
BusinessMain/src/main/java/com/develop/main/ui/RecipesFragment.kt

@@ -19,6 +19,7 @@ import com.blankj.utilcode.util.NetworkUtils
 import com.bumptech.glide.Glide
 import com.develop.base.ext.background_color
 import com.develop.base.ext.background_drawable
+import com.develop.base.ext.getSN
 import com.develop.base.ext.globalApp
 import com.develop.base.ext.isBrand011A
 import com.develop.base.ext.isBrand062
@@ -59,7 +60,7 @@ import org.greenrobot.eventbus.Subscribe
 class RecipesFragment : CommonBVMFragment<FragmentCommeListBinding, HomeViewModel>() {
 
     private var filterSortSearchView: HomeFilterSortSearchView? = null
-
+    private var sn = getSN()
     private var sortRv: RecyclerView? = null
     private var filterRv: RecyclerView? = null
 
@@ -878,14 +879,20 @@ class RecipesFragment : CommonBVMFragment<FragmentCommeListBinding, HomeViewMode
 
         }
     }
-
-    /**更新分类排序并获取对应数据*/
-    private fun updateSortName(pos: Int, needRefresh: Boolean = true) {
-        loadingDialog.showDialog(childFragmentManager, "loadingDialog")
-        if (!fromRefreshEvent) {
-            filterSortSearchView?.updateSortName(
-                sortDataList[pos].name
-            )
+    private fun updateSorted (pos: Int){
+        if (sn.startsWith("011")||sn.startsWith("033")){
+            viewModel.sortedType = when (pos) {
+                1 -> {
+                    SortedType.Newest
+                }
+                0 -> {
+                    SortedType.A2Z
+                }
+                else -> {
+                    SortedType.A2Z
+                }
+            }
+        }else{
             viewModel.sortedType = when (pos) {
                 1 -> {
                     SortedType.Popular
@@ -908,6 +915,17 @@ class RecipesFragment : CommonBVMFragment<FragmentCommeListBinding, HomeViewMode
                 }
             }
         }
+
+    }
+    /**更新分类排序并获取对应数据*/
+    private fun updateSortName(pos: Int, needRefresh: Boolean = true) {
+        loadingDialog.showDialog(childFragmentManager, "loadingDialog")
+        if (!fromRefreshEvent) {
+            filterSortSearchView?.updateSortName(
+                sortDataList[pos].name
+            )
+            updateSorted(pos)
+        }
         fromRefreshEvent = false
         viewModel.lastSortedPos = pos
         if (needRefresh) {

+ 48 - 40
BusinessMain/src/main/java/com/develop/main/viewmodel/HomeViewModel.kt

@@ -190,54 +190,62 @@ class HomeViewModel : BaseViewModel() {
                     }
             }
 
-            totalLocalRecipes.sortWith(Comparator { t, t2 ->
-                when (sortedType) {
-                    SortedType.Popular -> {
-                        if ((t.useNum ?: 0) > (t2.useNum ?: 0)) {
-                            return@Comparator -1
-                        } else if ((t.useNum ?: 0) == (t2.useNum ?: 0)) {
-                            return@Comparator 0
-                        } else {
-                            return@Comparator 1
+            //不知道为什么,排序最新时间,之前写的sortWith没有排序,估我在这自己写
+            //(snModel.startsWith("011")||snModel.startsWith("033"))
+            if (sortedType == SortedType.Newest){
+                totalLocalRecipes.sortWith(compareByDescending { it.updateTime })
+            }else{
+                totalLocalRecipes.sortWith(Comparator { t, t2 ->
+                    when (sortedType) {
+                        SortedType.Popular -> {
+                            if ((t.useNum ?: 0) > (t2.useNum ?: 0)) {
+                                return@Comparator -1
+                            } else if ((t.useNum ?: 0) == (t2.useNum ?: 0)) {
+                                return@Comparator 0
+                            } else {
+                                return@Comparator 1
+                            }
                         }
-                    }
 
-                    SortedType.Newest -> {
-                        if ((t.updateTime ?: 0L) > (t2.updateTime ?: 0L)) {
-                            return@Comparator 1
-                        } else if ((t.updateTime ?: 0L) == (t2.updateTime
-                                ?: 0L)
-                        ) return@Comparator 0
-                        else {
-                            return@Comparator -1
-                        }
+                        SortedType.Newest -> {
+                            if ((t.updateTime ?: 0L) > (t2.updateTime ?: 0L)) {
+                                return@Comparator 1
+                            } else if ((t.updateTime ?: 0L) == (t2.updateTime
+                                    ?: 0L)
+                            ) return@Comparator 0
+                            else {
+                                return@Comparator -1
+                            }
 
-                    }
+                        }
 
-                    SortedType.Score -> {
-                        val score1 = t.score?.toInt() ?: 0
-                        val score2 = t2.score?.toInt() ?: 0
-                        if (score1 > score2) {
-                            return@Comparator -1
-                        } else if (score1 == score2) {
-                            return@Comparator 0
-                        } else {
-                            return@Comparator 1
+                        SortedType.Score -> {
+                            val score1 = t.score?.toInt() ?: 0
+                            val score2 = t2.score?.toInt() ?: 0
+                            if (score1 > score2) {
+                                return@Comparator -1
+                            } else if (score1 == score2) {
+                                return@Comparator 0
+                            } else {
+                                return@Comparator 1
+                            }
                         }
-                    }
 
-                    SortedType.A2Z -> {
-                        val score1 = t.name?.compareTo(t2.name ?: "") ?: 0
-                        if (score1 > 0) {
-                            return@Comparator 1
-                        } else if (score1 == 0) {
-                            return@Comparator 0
-                        } else {
-                            return@Comparator -1
+                        SortedType.A2Z -> {
+                            val score1 = t.name?.compareTo(t2.name ?: "") ?: 0
+                            if (score1 > 0) {
+                                return@Comparator 1
+                            } else if (score1 == 0) {
+                                return@Comparator 0
+                            } else {
+                                return@Comparator -1
+                            }
                         }
                     }
-                }
-            })
+                })
+
+            }
+
             totalLocalSize = totalLocalRecipes.size
             val localRecipeList = if (totalLocalSize < 12) {
                 hasMoreLocal = false

+ 9 - 3
BusinessSetting/src/main/java/com/develop/setting/ui/AboutActivity.kt

@@ -224,8 +224,11 @@ class AboutActivity : CommonBVMActivity<ActivityAboutBinding, AboutViewModel>()
 
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
-
+//            var time = System.currentTimeMillis();
+//        Log.d("TAG recipe", "TIME:$time")
 //        var update = StringUtils.getUpdateTime()
+        var isFile = StringUtils.doesFileExist("system/media/cofa_update_recipe.txt")
+        var isFileOne = StringUtils.doesFileExist("system/media/cofa_update.txt")
 //        Log.d("TAG recipe", "TIME:$update")
         val ivLogoParam = binding.ivLogo.layoutParams as RelativeLayout.LayoutParams
         val ivUpdateParam = binding.icUpdate.layoutParams as LinearLayout.LayoutParams
@@ -242,8 +245,11 @@ class AboutActivity : CommonBVMActivity<ActivityAboutBinding, AboutViewModel>()
                 marginStart = dimenRes(com.develop.common.R.dimen.convert_135px)
             }
             if (isBrand036I()) {
-                binding.ivLogo.setGone()
-                binding.ivLogo.setBackgroundResource(com.develop.common.R.drawable.ic_logo_036i)
+                binding.ivLogo.setVisible()
+                //由于校准称重功能,但客户需要隐藏图标,估设置大布局的背景颜色
+//                binding.ivLogo.setBackgroundResource(com.develop.common.R.drawable.ic_logo_036i)
+//                binding.ivLogo.setBackgroundResource(com.develop.common.R.color.bg_color)
+                binding.ivLogo.background = null
             }else if (sn.startsWith("011")){
 
                 ivLogoParam.apply {

+ 1 - 0
BusinessSetting/src/main/res/layout/activity_about.xml

@@ -34,6 +34,7 @@
 
         <ImageView
             android:id="@+id/iv_logo"
+
             android:layout_width="@dimen/convert_180px"
             android:layout_height="@dimen/convert_180px"
             android:layout_centerHorizontal="true"

+ 1 - 1
BusinessStep/src/main/java/com/develop/step/ui/ModesDetailActivity.kt

@@ -137,7 +137,7 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
     private var sn = getSN()
     private var keep: Boolean = false
     private var mWeightTime: Long = 0  //防止客户重复点击称重
-    private  var isWeightNum  : Float = 0F
+    private  var isWeightNum  : Float = -50F
     private lateinit var baseMode: BaseDevMode
 
     private val deviceStateDialog by lazy {

+ 1 - 1
BusinessStep/src/main/res/layout/activity_cook_step_base.xml

@@ -247,7 +247,7 @@
                     android:layout_marginEnd="@dimen/convert_310px"
                     android:layout_marginBottom="@dimen/convert_42px"
                     android:includeFontPadding="false"
-                    android:text="50g"
+                    android:text="0g"
                     android:textColor="#ffffff"
                     android:textSize="@dimen/convert_72px"
                     app:layout_constraintBottom_toTopOf="@+id/weight_view"

+ 1 - 1
BusinessStep/src/main/res/layout/activity_mode_detail.xml

@@ -481,7 +481,7 @@
             android:layout_gravity="center_horizontal"
             android:layout_marginBottom="@dimen/convert_42px"
             android:includeFontPadding="false"
-            android:text="50g"
+            android:text="0g"
             android:textColor="#ffffff"
             android:textSize="@dimen/convert_72px"
             app:layout_constraintBottom_toTopOf="@+id/weight_view"

+ 12 - 2
app/build.gradle

@@ -18,8 +18,8 @@ ext {
 
     versionCode = Integer.parseInt(new SimpleDateFormat("yyMMddHH").format(new Date()) + 1)
 //    versionCode=230617180
-    brandCode="011D"
-//    brandCode = "010D"
+//    brandCode="036I"
+    brandCode = "010D"
     model = "1039"
 
 }
@@ -697,6 +697,16 @@ android {
 //            buildConfigField("String", "appCode", "\"1.01\"")
 //            buildConfigField("String", "time","\"${getCurrentTime()}\"" )
 
+//            manifestPlaceholders = [channelName: "brand002DTuya"]
+//            buildConfigField("String", "UpdatePlatform", "\"normal\"")
+//            resValue("string", "app_theme", "@style/Splash002DTheme")
+//            buildConfigField("String", "model", "\"1039\"")
+//            buildConfigField("String", "brandCode", "\"002D\"")
+//            //appCode 1.01 指向bug修复,2.01指向功能变更
+//            buildConfigField("String", "appCode", "\"1.01\"")
+//            buildConfigField("String", "time","\"${getCurrentTime()}\"" )
+
+
         }
     }
 

app/src/brand010D/values-de/strings.xml → app/src/brand010D/res/values-de/strings.xml


app/src/brand010D/values-fr/strings.xml → app/src/brand010D/res/values-fr/strings.xml


app/src/brand010D/values-it/strings.xml → app/src/brand010D/res/values-it/strings.xml


+ 83 - 32
app/src/main/java/com/develop/foodcooking/FoodCookingApp.kt

@@ -20,6 +20,7 @@ import com.develop.base.app.BaseApp
 import com.develop.base.ext.getBrandNum
 import com.develop.base.ext.getOtaFileMd5
 import com.develop.base.ext.getSN
+import com.develop.base.ext.getUpdateRecipeTime
 import com.develop.base.ext.globalApp
 import com.develop.base.ext.setAppCode
 import com.develop.base.ext.setIsBrand011A
@@ -28,6 +29,7 @@ import com.develop.base.ext.setIsBrand054A
 import com.develop.base.ext.setIsBrand062
 import com.develop.base.ext.setNightTheme
 import com.develop.base.ext.setOtaFileMd5
+import com.develop.base.ext.setUpdateRecipeTime
 import com.develop.base.util.MMkvUtils
 import com.develop.common.bean.TuyaEvent
 import com.develop.common.data_repo.FoodDataProvider
@@ -145,7 +147,7 @@ class FoodCookingApp : BaseApp() {
             .switchThemeSkin(if (isNight) 1 else if (is062) 2 else if (is011) 3 else 0)
 
         //由于之前011黑色风格 故在这做 011兼容, 这个判断,不能在设置皮肤前面
-        if (isNight || is011){
+        if (isNight || is011) {
             setNightTheme(true)
         }
         CofarSDK.init(getBrandNum())
@@ -154,41 +156,90 @@ class FoodCookingApp : BaseApp() {
         CofarSDK.stopNative()
 
         Thread {
-            val md5 = getOtaFileMd5()
-            val sn = getSN()
-            Log.d("TAG md5","time :"+System.currentTimeMillis())
-            //大概50秒才获取到
-//            val zipMd2 = StringUtils.getFileMD5("system/media/cofa_cooking.zip")
-            Log.d("TAG md5", "md5 :$md5")
-            var zipMd5 = ""
-            if (md5.isNotEmpty()){
-                zipMd5  = FileUtils.getFileMD5ToString("system/media/cofa_cooking.zip")
-            }
-            Log.d("TAG md5","time2222 :"+System.currentTimeMillis())
-            Log.d("TAG md5", "string :$zipMd5")
-            //处理ota食谱更新问题
-            if (sn.startsWith("010") && (md5.isEmpty() || md5 != zipMd5)) {
-                /**
-                 *  如果MD5的值不存在,重新解压
-                 *  如果MD5的值不一样的,就代表食谱包已经重新更新
-                 *  需要先删除sd卡目录下的cofa文件,再重新解压
-                 * */
-                FileUtils.delete(File(Environment.getExternalStorageDirectory(), "cofa_cooking"))
-                FileUtils.delete(File(Environment.getExternalStorageDirectory(), "success.lock"))
-
-                FoodDataProvider.prepareData(this)
+            var isUpdateFile = StringUtils.doesUpdateTxtFileExist()
+            //之前根据zip包的md5 更新,现在做一个文本获取进行更新, 先判断是否存在,存在再处理,不存在就走之前的方法
+            if (isUpdateFile) {
+                Log.d("TAG update", "isUpdateFile  文件存在 ")
+                var fileUpdate = StringUtils.getUpdateTime()
+                var roomUpdate  =  getUpdateRecipeTime()
+
+                Log.d("TAG update", "fileUpdate :   $fileUpdate")
+                Log.d("TAG update", "roomUpdate :   $roomUpdate")
+
+                //当本地时间为空,或者file的文件时间比本地时间大的时候,证明食谱包更新了
+                if (roomUpdate=="" || fileUpdate.toLong()>roomUpdate.toLong()){
+                    Log.d("TAG update", "isUpdateFile1111111--------  文件存在 ")
+
+
+                    //需要删掉
+                    FileUtils.delete(
+                        File(
+                            Environment.getExternalStorageDirectory(),
+                            "cofa_cooking"
+                        )
+                    )
+                    FileUtils.delete(
+                        File(
+                            Environment.getExternalStorageDirectory(),
+                            "success.lock"
+                        )
+                    )
+
+                    FoodDataProvider.prepareData(this)
+                }else{
+                    FoodDataProvider.prepareData(this)
+                }
+
+                setUpdateRecipeTime(fileUpdate)
+
+
+
             } else {
-                FoodDataProvider.prepareData(this)
-            }
-            //010 每一次都把md5的值set进去
-            if (sn.startsWith("010")) {
-                //优化启动程序
-                if (zipMd5.isEmpty()){
+                val md5 = getOtaFileMd5()
+                val sn = getSN()
+                Log.d("TAG md5", "time :" + System.currentTimeMillis())
+                //大概50秒才获取到
+//            val zipMd2 = StringUtils.getFileMD5("system/media/cofa_cooking.zip")
+                Log.d("TAG md5", "md5 :$md5")
+                var zipMd5 = ""
+                if (md5.isNotEmpty()) {
                     zipMd5 = FileUtils.getFileMD5ToString("system/media/cofa_cooking.zip")
                 }
-                setOtaFileMd5(zipMd5)
+                Log.d("TAG md5", "time2222 :" + System.currentTimeMillis())
+                Log.d("TAG md5", "string :$zipMd5")
+                //处理ota食谱更新问题
+                if (sn.startsWith("010") && (md5.isEmpty() || md5 != zipMd5)) {
+                    /**
+                     *  如果MD5的值不存在,重新解压
+                     *  如果MD5的值不一样的,就代表食谱包已经重新更新
+                     *  需要先删除sd卡目录下的cofa文件,再重新解压
+                     * */
+                    FileUtils.delete(
+                        File(
+                            Environment.getExternalStorageDirectory(),
+                            "cofa_cooking"
+                        )
+                    )
+                    FileUtils.delete(
+                        File(
+                            Environment.getExternalStorageDirectory(),
+                            "success.lock"
+                        )
+                    )
+
+                    FoodDataProvider.prepareData(this)
+                } else {
+                    FoodDataProvider.prepareData(this)
+                }
+                //010 每一次都把md5的值set进去
+                if (sn.startsWith("010")) {
+                    //优化启动程序
+                    if (zipMd5.isEmpty()) {
+                        zipMd5 = FileUtils.getFileMD5ToString("system/media/cofa_cooking.zip")
+                    }
+                    setOtaFileMd5(zipMd5)
+                }
             }
-
         }.start()
 //        val powerManager = getSystemService(POWER_SERVICE) as PowerManager
 //        val wakeLock: PowerManager.WakeLock =

+ 9 - 0
libBase/src/main/java/com/develop/base/ext/GlobaExt.kt

@@ -206,6 +206,7 @@ fun getSN(): String {
 //    return "011A10390020123010190001"
 
     if (BuildConfig.DEBUG) {
+//        return "002D10390020123010190001"
 //        return "045A21030020123010190001"
 //        return "000A30150020123010190001"
 //     return "000A10390020123010170001"
@@ -215,6 +216,7 @@ fun getSN(): String {
 //        return "010F10390020123010190001"
 //        return "011D10390020123010190001"
         return "011A10390020123010190001"
+//        return "011A10390020123010190009"
 //        return "000A50370020123010190004"
 //        return "011A50370020123010190003"
 //        return "011A50370020123010190006"
@@ -400,6 +402,13 @@ fun getOtaFileMd5(): String {
     return MMkvUtils.getString("isOtaZipMd5") ?: ""
 }
 
+fun setUpdateRecipeTime(time :String) {
+    MMkvUtils.save("isUpdateTime", time)
+}
+fun getUpdateRecipeTime():String {
+    return MMkvUtils.getString("isUpdateTime") ?: ""
+}
+
 fun isBrand062(): Boolean {
     return MMkvUtils.getBool("is062", false)
 }