ConfigUtils.kt 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248
  1. package com.develop.common.utils
  2. import android.content.Context
  3. import android.util.Log
  4. import com.azhon.appupdate.util.LogUtil
  5. import com.develop.base.ext.GlobalApp
  6. import com.develop.base.ext.getSN
  7. import com.develop.common.bean.CfConfig
  8. import com.develop.common.bean.TuyaConfig
  9. import com.develop.common.bean.WorkMode
  10. import com.google.gson.Gson
  11. import org.json.JSONObject
  12. import java.io.IOException
  13. import java.io.InputStream
  14. import java.nio.charset.Charset
  15. object ConfigUtils {
  16. data class Lang(
  17. val name: String?,
  18. val value: String,
  19. val icon: String?,
  20. val show: Boolean?,
  21. val showName: String
  22. )
  23. data class LangConfig(var langs: ArrayList<Lang>)
  24. fun loadConfig(): CfConfig? {
  25. return try {
  26. var sn = getSN()
  27. var brandNum = sn.substring(0, 3)
  28. val fileList = GlobalApp().assets.list("") ?: arrayOf()
  29. var inputStream: InputStream? = null
  30. if (sn.startsWith("000B")) {
  31. //由于000B 是要黑色风格,因为皮肤包问题,估在这添加多000B配置
  32. inputStream = GlobalApp().assets.open("config_000B.json")
  33. }else if (sn.startsWith("010I")||sn.startsWith("010H")){
  34. inputStream = GlobalApp().assets.open("config_010IH.json")
  35. } else if (sn.startsWith("011F")){
  36. inputStream = GlobalApp().assets.open("config_011F.json")
  37. }else {
  38. if (fileList.contains("config_${brandNum}.json")) {
  39. inputStream = GlobalApp().assets.open("config_${brandNum}.json")
  40. } else {
  41. inputStream = GlobalApp().assets.open("config.json")
  42. }
  43. }
  44. // inputStream = GlobalApp().assets.open("config_036.json")
  45. val size = inputStream.available()
  46. val buffer = ByteArray(size)
  47. inputStream.read(buffer)
  48. inputStream.close()
  49. val jsonString = String(buffer, Charset.defaultCharset())
  50. val gson = Gson()
  51. var cfConfig = gson.fromJson(jsonString, CfConfig::class.java)
  52. if (sn.startsWith("033I") || sn.startsWith("033K")) {
  53. /**
  54. * 由于config_033的json配置没有扭橙,但是033I的客户需要添加一个,估在这做判断
  55. * */
  56. var workMode = WorkMode(
  57. "citrus_juicer", "CITRUS_JUICER",
  58. "ic_grid_citrus_juicer", "ic_mode_citrus_juicer", "SOUP", true
  59. );
  60. cfConfig.workModes.add(workMode)
  61. }
  62. return cfConfig
  63. } catch (ex: IOException) {
  64. ex.printStackTrace()
  65. null
  66. }
  67. }
  68. fun loadCookConfig(): CfConfig? {
  69. return try {
  70. var sn = getSN()
  71. var brandNum = sn.substring(0, 3)
  72. val fileList = GlobalApp().assets.list("") ?: arrayOf()
  73. var inputStream: InputStream? = null
  74. // if (fileList.contains("config_${brandNum}.json")) {
  75. // inputStream = GlobalApp().assets.open("config_${brandNum}.json")
  76. // } else {
  77. // inputStream = GlobalApp().assets.open("config.json")
  78. // }
  79. inputStream = GlobalApp().assets.open("config.json")
  80. // inputStream = GlobalApp().assets.open("config_036.json")
  81. val size = inputStream.available()
  82. val buffer = ByteArray(size)
  83. inputStream.read(buffer)
  84. inputStream.close()
  85. val jsonString = String(buffer, Charset.defaultCharset())
  86. val gson = Gson()
  87. val cfConfig = gson.fromJson(jsonString, CfConfig::class.java)
  88. cfConfig;
  89. } catch (ex: IOException) {
  90. ex.printStackTrace()
  91. null
  92. }
  93. }
  94. fun loadLangConfig(): LangConfig? {
  95. return try {
  96. var sn = getSN()
  97. var brandNum = sn.substring(0, 3)
  98. val fileList = GlobalApp().assets.list("") ?: arrayOf()
  99. var inputStream: InputStream? = null
  100. if (fileList.contains("lang_config_${brandNum}.json")) {
  101. inputStream = GlobalApp().assets.open("lang_config_${brandNum}.json")
  102. } else {
  103. inputStream = GlobalApp().assets.open("lang_config.json")
  104. }
  105. val size = inputStream.available()
  106. val buffer = ByteArray(size)
  107. inputStream.read(buffer)
  108. inputStream.close()
  109. val jsonString = String(buffer, Charset.defaultCharset())
  110. val gson = Gson()
  111. val cfConfig = gson.fromJson(jsonString, LangConfig::class.java)
  112. return cfConfig
  113. } catch (ex: IOException) {
  114. ex.printStackTrace()
  115. null
  116. }
  117. }
  118. fun selectLangConfig(): LangConfig? {
  119. return try {
  120. var inputStream: InputStream? = null
  121. inputStream = GlobalApp().assets.open("lang_config.json")
  122. val size = inputStream.available()
  123. val buffer = ByteArray(size)
  124. inputStream.read(buffer)
  125. inputStream.close()
  126. val jsonString = String(buffer, Charset.defaultCharset())
  127. val gson = Gson()
  128. val cfConfig = gson.fromJson(jsonString, LangConfig::class.java)
  129. return cfConfig
  130. } catch (ex: IOException) {
  131. ex.printStackTrace()
  132. null
  133. }
  134. }
  135. fun loadTuyaConfig(): Map<String, String>? {
  136. return try {
  137. var sn = getSN()
  138. var inputStream: InputStream? = null
  139. inputStream = GlobalApp().assets.open("tuya_config.json")
  140. val size = inputStream.available()
  141. val buffer = ByteArray(size)
  142. inputStream.read(buffer)
  143. inputStream.close()
  144. val jsonString = String(buffer, Charset.defaultCharset())
  145. val gson = Gson()
  146. val cfConfig = gson.fromJson(jsonString, TuyaConfig::class.java)
  147. cfConfig.licences.get(sn)
  148. } catch (ex: IOException) {
  149. ex.printStackTrace()
  150. null
  151. }
  152. }
  153. fun getMode(type: String): WorkMode? {
  154. return loadConfig()?.workModes?.find { it.type == type }?.copy()
  155. }
  156. fun getErrCodeStr(context: Context, code: Int): String {
  157. var str = when (code) {
  158. 7 -> {
  159. context.getString(com.develop.common.R.string.e7_errCode)
  160. }
  161. 8 -> {
  162. context.getString(com.develop.common.R.string.e8_errCode)
  163. }
  164. 9 -> {
  165. context.getString(com.develop.common.R.string.e9_errCode)
  166. }
  167. 10 -> {
  168. context.getString(com.develop.common.R.string.e10_errCode)
  169. }
  170. 11 -> {
  171. context.getString(com.develop.common.R.string.e11_errCode)
  172. }
  173. 12 -> {
  174. context.getString(com.develop.common.R.string.e12_errCode)
  175. }
  176. 13 -> {
  177. context.getString(com.develop.common.R.string.e13_errCode)
  178. }
  179. 14 -> {
  180. context.getString(com.develop.common.R.string.e14_errCode)
  181. }
  182. 15 -> {
  183. ""
  184. // context.getString(com.develop.common.R.string.e15_errCode)
  185. }
  186. 16 -> {
  187. context.getString(com.develop.common.R.string.e16_errCode)
  188. }
  189. else -> {
  190. ""
  191. }
  192. }
  193. return str
  194. }
  195. fun getBooleanErrCode(code: Int): Boolean {
  196. //客户要求 errorCode 15 (彩屏错误提示) 跳过判断
  197. return code == 7 || code == 8 || code == 9 || code == 10 || code == 11 || code == 12 || code == 13 || code == 14 || code == 16
  198. }
  199. }