123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252 |
- package com.develop.common.utils
- import android.os.Bundle
- import android.util.Log
- import com.blankj.utilcode.util.ToastUtils
- import com.develop.base.ext.appGlobalScope
- import com.develop.base.ext.globalApp
- import com.develop.base.ext.navigateTo
- import com.develop.base.util.AppActivityManager
- import com.develop.base.util.TopResumedAtyHolder
- import com.develop.base.util.TuyaEventEntity
- import com.develop.common.R
- import com.develop.common.data_repo.FoodDataProvider
- import com.develop.common.food_sdk.FloatWindowManager
- import com.develop.common.router.Screens
- import com.develop.common.tag.MODE_TYPE
- import com.develop.common.tag.NUMBER_TAG
- import com.develop.common.tag.SOURCE_TAG
- import com.google.gson.Gson
- import com.kuyuntech.cofarcooking.device.sdk.constant.core.DevModes
- import com.kuyuntech.cofarcooking.device.sdk.constant.core.DevStatus
- import com.kuyuntech.cofarcooking.device.sdk.constant.core.WorkModes
- import com.kuyuntech.cofarcooking.device.sdk.util.core.CofarSDK
- import kotlinx.coroutines.Dispatchers
- import kotlinx.coroutines.launch
- import kotlinx.coroutines.withContext
- import org.greenrobot.eventbus.EventBus
- object CommonUtils {
- var gson = Gson()
- fun navigateToRemoteRecipe(number: String) {
- if (CofarSDK.devInfo().runningStatus != DevStatus.STOP) {
- EventBus.getDefault().post(TuyaEventEntity(recipeNumber = number, isType = 1))
- return
- }
- //需要关闭的页面
- for (activity in AppActivityManager.getInstance().activityList()) {
- if (activity.localClassName.contains("CookDetailActivity")
- || activity.localClassName.contains("CookStepActivity")
- || activity.localClassName.contains("ModesDetailActivity")
- ) {
- activity.finish()
- }
- }
- FoodDataProvider.getDatabase().recipeDao().apply {
- var recipeNumber = number
- if (recipeNumber.contains("@")) {
- var (numbers, language) = recipeNumber.split("@")
- recipeNumber = numbers
- }
- val recipeBean = queryRecipe(recipeNumber)
- if (recipeBean != null) {
- TopResumedAtyHolder.getCurrentActivity()?.navigateTo(Screens.Cook.COOK_DETAIL) {
- withString(
- SOURCE_TAG, "local"
- )
- withString(NUMBER_TAG, number)
- }
- } else {
- TopResumedAtyHolder.getCurrentActivity()?.navigateTo(Screens.Cook.COOK_DETAIL) {
- withString(
- SOURCE_TAG, "remote"
- )
- withString(NUMBER_TAG, number)
- }
- }
- }
- }
- fun navigateToAdaptedCooking() {
- //判断设备是否正在运行,而还判断是否有挂起程序,挂起程序是否自动程序且还要是diy模式才可以重新进入ModeDetail页面
- if (CofarSDK.devInfo().runningStatus != DevStatus.STOP && !FloatWindowManager.isModeDiyShow()) {
- EventBus.getDefault().post(TuyaEventEntity(recipeNumber = "", isType = 0))
- return
- }
- //当时测试有个BUG,料理机点击diy以后,手机没识别,然后手机点击diy模式,会导致程序崩溃,具体日志没看到什么东西,估在这多一个判断
- //当前模式是diy,且当前页面是ModesDetailActivity的时候,return方法
- if ((CofarSDK.devInfo().runningInstId == "ADAPTED_COOKING" || CofarSDK.devInfo().runningInstId == "AF_DIY")
- && AppActivityManager.getInstance().topActivity.localClassName.contains("ModesDetailActivity")
- ) {
- return
- }
- //需要关闭的页面
- for (activity in AppActivityManager.getInstance().activityList()) {
- if (activity.localClassName.contains("CookDetailActivity") || activity.localClassName.contains(
- "CookStepActivity"
- ) || activity.localClassName.contains("ModesDetailActivity")
- ) {
- if (devReady()) {
- return
- } else {
- activity.finish()
- }
- }
- }
- if (DevModes.SOUP == CofarSDK.devInfo().devMode) {
- val bundle = Bundle()
- bundle.putString(MODE_TYPE, WorkModes.ADAPTED_COOKING)
- bundle.putString("OP_MODE", "APP")
- TopResumedAtyHolder.getCurrentActivity()?.navigateTo(Screens.Cook.COOK_MODES) {
- with(bundle)
- }
- } else if (DevModes.AIR_FRYER == CofarSDK.devInfo().devMode) {
- val bundle = Bundle()
- bundle.putString(MODE_TYPE, WorkModes.AF_DIY)
- bundle.putString("OP_MODE", "APP")
- TopResumedAtyHolder.getCurrentActivity()?.navigateTo(Screens.Cook.COOK_MODES) {
- with(bundle)
- }
- }
- }
- fun devReady(): Boolean {
- if (DevModes.SOUP == CofarSDK.devInfo().devMode) {
- return TopResumedAtyHolder.getCurrentActivity()?.localClassName?.indexOf("ModesDetailActivity") != -1 && CofarSDK.devInfo().mode.mode === WorkModes.ADAPTED_COOKING && !CofarSDK.devInfo().isWeightStatus
- } else if (DevModes.AIR_FRYER == CofarSDK.devInfo().devMode) {
- return TopResumedAtyHolder.getCurrentActivity()?.localClassName?.indexOf("ModesDetailActivity") != -1 && CofarSDK.devInfo().mode.mode === WorkModes.AF_DIY && !CofarSDK.devInfo().isWeightStatus
- }
- return false
- }
- fun <T> getTuyaBean(
- url: String,
- apiVersion: String,
- json: String,
- t: Class<T>,
- tuyaHttp: TuyaHttp<T>
- ) {
- appGlobalScope.launch(Dispatchers.IO) {
- // if (!TuyaUtilsSo.getInstance().tuyaInitSuccess || !TuyaUtilsSo.getInstance().tuyaNetwork){
- // ToastUtils.showShort(globalApp().getString(R.string.connect_tuya))
- // tuyaHttp.fail()
- // return@launch
- // }
- Log.e("tuya","url :"+url +" json:"+json)
- // var httpResponse = TuyaUtils.ioTSDKManager.httpRequest(url, apiVersion, json)
- // var str = ""
- // if (httpResponse.errorCode == 0) {
- // str = httpResponse.result
- // }else{
- // tuyaHttp.fail()
- // }
- var str = TuyaUtilsSo.getInstance().getPointer(url, apiVersion, json)
- if ("" == str || str ==null){
- ToastUtils.showShort(globalApp().getString(R.string.connect_tuya))
- tuyaHttp.fail()
- }
- withContext(Dispatchers.Main){
- tuyaHttp.bean(GsonUtils.GsonToBean(str,t))
- }
- }
- }
- fun getTuyaLike(
- url: String,
- apiVersion: String,
- json: String,
- tuyaHttp: TuyaBooleanHttp
- ) {
- appGlobalScope.launch(Dispatchers.IO) {
- if (!TuyaUtilsSo.getInstance().tuyaInitSuccess || !TuyaUtilsSo.getInstance().tuyaNetwork){
- ToastUtils.showShort(globalApp().getString(R.string.connect_tuya))
- tuyaHttp.fail()
- return@launch
- }
- var str = false
- var json = TuyaUtilsSo.getInstance().getPointer(url, apiVersion, json)
- str = !("" == json || json ==null)
- withContext(Dispatchers.Main){
- tuyaHttp.bean(str)
- }
- }
- }
- fun <T> getTuyaList(
- url: String,
- apiVersion: String,
- json: String,
- t: Class<T>,
- tuyaHttpList: TuyaHttpList<T>
- ) {
- appGlobalScope.launch(Dispatchers.IO) {
- // if (!TuyaUtilsSo.getInstance().tuyaInitSuccess || !TuyaUtilsSo.getInstance().tuyaNetwork ){
- // ToastUtils.showShort(globalApp().getString(R.string.connect_tuya))
- // tuyaHttpList.fail()
- // return@launch
- // }
- Log.e("tuya","url :"+url +" json:"+json)
- var str = TuyaUtilsSo.getInstance().getPointer(url, apiVersion, json)
- if ("" == str || str ==null){
- ToastUtils.showShort(globalApp().getString(R.string.connect_tuya))
- tuyaHttpList.fail()
- }
- withContext(Dispatchers.Main) {
- tuyaHttpList.bean(GsonUtils.jsonToList(str, t))
- }
- }
- }
- interface TuyaHttpList<T> {
- fun bean(t: MutableList<T>)
- fun fail()
- }
- interface TuyaHttp<T> {
- fun bean(t: T)
- fun fail()
- }
- interface TuyaBooleanHttp {
- fun bean(t: Boolean)
- fun fail()
- }
- }
|