build.gradle 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440
  1. import org.json.JSONObject
  2. apply plugin: 'com.android.application'
  3. apply from: 'xmlclassguard.gradle'
  4. android {
  5. compileSdkVersion 31
  6. flavorDimensions "baseUrl"
  7. productFlavors {
  8. userdev {
  9. dimension "baseUrl"
  10. buildConfigField "String", "BASE_URL", "\"https://www.kpkingpark.com\""
  11. buildConfigField "String", "UPDATE_KEY", "\"59e95b20-759a-472a-bf07-a4e4b2e7a1f0\""
  12. buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user8/\""
  13. buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\""
  14. buildConfigField "String", "UPDATE_JSON", "\"config.json\""
  15. buildConfigField "String", "WEB_URL", "\"wss://saffron.ghpcarphone.com/69f3476bb6e001a9c320719073f055cc/app/\""
  16. buildConfigField "String", "FRPC_IP", "\"XXXXXX\""
  17. buildConfigField "String", "FRPC_PORT", "\"XXXXX\""
  18. }
  19. user1 {
  20. //ghpcarphone
  21. dimension "baseUrl"
  22. applicationId "com.ghpcarphone.ussd"
  23. buildConfigField "String", "BASE_URL", "\"https://www.ghpcarphone.com\""
  24. buildConfigField "String", "UPDATE_KEY", "\"bfbc2f7f-779a-4719-9295-60eefbb9269f\""
  25. buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user1/\""
  26. buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\""
  27. buildConfigField "String", "UPDATE_JSON", "\"config.json\""
  28. buildConfigField "String", "WEB_URL", "\"wss://naughty.lkluckpanda.online:443/69f3476bb6e001a9c320719073f055cc/app/\""
  29. buildConfigField "String", "FRPC_IP", "\"XXXXXX\""
  30. buildConfigField "String", "FRPC_PORT", "\"XXXXX\""
  31. }
  32. user2 {
  33. //dcduckcake
  34. dimension "baseUrl"
  35. applicationId "com.dcduckcake.ussd"
  36. buildConfigField "String", "BASE_URL", "\"https://www.dcduckcake.com\""
  37. buildConfigField "String", "UPDATE_KEY", "\"2be6db19-4be6-45f5-8a93-368ad7cb6405\""
  38. buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/userdemo/\""
  39. buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\""
  40. buildConfigField "String", "UPDATE_JSON", "\"config.json\""
  41. buildConfigField "String", "WEB_URL", "\"wss://naughty.lkluckpanda.online:443/69f3476bb6e001a9c320719073f055cc/app/\""
  42. buildConfigField "String", "FRPC_IP", "\"XXXXXX\""
  43. buildConfigField "String", "FRPC_PORT", "\"XXXXX\""
  44. }
  45. user3 {
  46. //bcblackcoffee
  47. dimension "baseUrl"
  48. applicationId "com.bcblackcoffee.ussd"
  49. buildConfigField "String", "BASE_URL", "\"https://www.bcblackcoffee.com\""
  50. buildConfigField "String", "UPDATE_KEY", "\"64f225d4-e9a4-4c9f-93eb-133ff2f16c3e\""
  51. buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/userdemo/\""
  52. buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\""
  53. buildConfigField "String", "UPDATE_JSON", "\"config.json\""
  54. buildConfigField "String", "WEB_URL", "\"wss://naughty.lkluckpanda.online:443/69f3476bb6e001a9c320719073f055cc/app/\""
  55. buildConfigField "String", "FRPC_IP", "\"XXXXXX\""
  56. buildConfigField "String", "FRPC_PORT", "\"XXXXX\""
  57. }
  58. user4 {
  59. //lkluckpanda
  60. dimension "baseUrl"
  61. applicationId "com.lkluckpanda.ussd"
  62. buildConfigField "String", "BASE_URL", "\"https://www.lkluckpanda.com\""
  63. buildConfigField "String", "UPDATE_KEY", "\"64f225d4-e9a4-4c9f-93eb-133ff2f16c3e\""
  64. buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user4/\""
  65. buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\""
  66. buildConfigField "String", "UPDATE_JSON", "\"config.json\""
  67. buildConfigField "String", "WEB_URL", "\"\""
  68. buildConfigField "String", "FRPC_IP", "\"XXXXXX\""
  69. buildConfigField "String", "FRPC_PORT", "\"XXXXX\""
  70. }
  71. user5 {
  72. dimension "baseUrl"
  73. applicationId "com.user.ussd"
  74. buildConfigField "String", "BASE_URL", "\"https://www.dcduckcake.com\""
  75. buildConfigField "String", "UPDATE_KEY", "\"f6602356-ff46-422e-87ba-d5fbe3f0adf7\""
  76. buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user5/\""
  77. buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\""
  78. buildConfigField "String", "UPDATE_JSON", "\"config.json\""
  79. buildConfigField "String", "WEB_URL", "\"wss://stretch.dcduckcake.com/ca4c62f1ae5f4514acc6132a9f2716a7/app/\""
  80. buildConfigField "String", "FRPC_IP", "\"XXXXXX\""
  81. buildConfigField "String", "FRPC_PORT", "\"XXXXX\""
  82. }
  83. user6 {
  84. //喀麦隆 com.ghpcarphone.cm
  85. dimension "baseUrl"
  86. applicationId "com.ghpcarphone.cm"
  87. buildConfigField "String", "BASE_URL", "\"https://cm-www.ghpcarphone.com\""
  88. buildConfigField "String", "UPDATE_KEY", "\"455b5053-9d7f-43ae-a115-76f16cfaf3f5\""
  89. buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user6/\""
  90. buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\""
  91. buildConfigField "String", "UPDATE_JSON", "\"config.json\""
  92. buildConfigField "String", "WEB_URL", "\"wss://cm-naughty.lkluckpanda.online/69f3476bb6e001a9c320719073f055cc/app/\""
  93. buildConfigField "String", "FRPC_IP", "\"XXXXXX\""
  94. buildConfigField "String", "FRPC_PORT", "\"XXXXX\""
  95. }
  96. user7 {
  97. //斯里兰卡 包名com.si.ussd
  98. dimension "baseUrl"
  99. applicationId "com.si.ussd"
  100. buildConfigField "String", "BASE_URL", "\"https://www.lovepizzaxx.com\""
  101. buildConfigField "String", "UPDATE_KEY", "\"d3bf5c93-5119-4092-bd5f-a3e99fbce2ed\""
  102. buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user7/\""
  103. buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\""
  104. buildConfigField "String", "UPDATE_JSON", "\"config.json\""
  105. buildConfigField "String", "WEB_URL", "\"wss://lk-naughty.lkluckpanda.online/69f3476bb6e001a9c320719073f055cc/app/\""
  106. buildConfigField "String", "FRPC_IP", "\"XXXXXX\""
  107. buildConfigField "String", "FRPC_PORT", "\"XXXXX\""
  108. }
  109. user8 {
  110. //肯尼亚 包名com.kpkingpark.ussd
  111. dimension "baseUrl"
  112. applicationId "com.kpkingpark.ussd"
  113. buildConfigField "String", "BASE_URL", "\"https://www.kpkingpark.com\""
  114. buildConfigField "String", "UPDATE_KEY", "\"59e95b20-759a-472a-bf07-a4e4b2e7a1f0\""
  115. buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user8/\""
  116. buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\""
  117. buildConfigField "String", "UPDATE_JSON", "\"config.json\""
  118. buildConfigField "String", "WEB_URL", "\"wss://saffron.ghpcarphone.com/69f3476bb6e001a9c320719073f055cc/app/\""
  119. buildConfigField "String", "FRPC_IP", "\"XXXXXX\""
  120. buildConfigField "String", "FRPC_PORT", "\"XXXXX\""
  121. }
  122. user9 {
  123. //科特迪瓦 包名com.ghpcarphone.cote
  124. dimension "baseUrl"
  125. applicationId "com.ghpcarphone.cote"
  126. buildConfigField "String", "BASE_URL", "\"https://cote-www.ghpcarphone.com\""
  127. buildConfigField "String", "UPDATE_KEY", "\"bbddc5d7-9d45-4a3b-afdd-a8a36c96f4af\""
  128. buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user9/\""
  129. buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\""
  130. buildConfigField "String", "UPDATE_JSON", "\"config.json\""
  131. buildConfigField "String", "WEB_URL", "\"wss://ci-naughty.lkluckpanda.online:443/69f3476bb6e001a9c320719073f055cc/app/\""
  132. buildConfigField "String", "FRPC_IP", "\"XXXXXX\""
  133. buildConfigField "String", "FRPC_PORT", "\"XXXXX\""
  134. }
  135. user10 {
  136. //测试-0
  137. //包名:com.nbwz.lvix.gdjgnp.gfhw,
  138. //密钥:appkey2254.jks
  139. //app名称:IronMan
  140. dimension "baseUrl"
  141. applicationId "com.nbwz.lvix.gdjgnp.gfhw"
  142. buildConfigField "String", "BASE_URL", "\"https://www.kpkingpark.com\""
  143. buildConfigField "String", "UPDATE_KEY", "\"87d8f3b8-3e95-47f4-9d9d-b7affd5e997c\""
  144. buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user10/\""
  145. buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\""
  146. buildConfigField "String", "UPDATE_JSON", "\"config.json\""
  147. buildConfigField "String", "WEB_URL", "\"\""
  148. buildConfigField "String", "FRPC_IP", "\"3.68.158.69\""
  149. buildConfigField "String", "FRPC_PORT", "\"XXXXX\""
  150. }
  151. user11 {
  152. //测试-1
  153. //包名:com.cdfo.emvyey.axkcae.ixjl
  154. //密钥:appkey201517_1
  155. //app名称:CaptainAmerica
  156. //下载路径:http://up.lkluckpanda.online/user10/man/t1/guy.apk
  157. applicationId "com.cdfo.emvyey.axkcae.ixjl"
  158. dimension "baseUrl"
  159. buildConfigField "String", "BASE_URL", "\"https://www.kpkingpark.com\""
  160. buildConfigField "String", "UPDATE_KEY", "\"87d8f3b8-3e95-47f4-9d9d-b7affd5e997c\""
  161. buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user10/man/t1/\""
  162. buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\""
  163. buildConfigField "String", "UPDATE_JSON", "\"config.json\""
  164. buildConfigField "String", "WEB_URL", "\"\""
  165. buildConfigField "String", "FRPC_IP", "\"3.68.158.69\""
  166. buildConfigField "String", "FRPC_PORT", "\"XXXXX\""
  167. }
  168. user12 {
  169. //测试-2
  170. //包名:com.fyxmwe.ewha.dfajdm.lfuqog
  171. //密钥:appkey201519_2
  172. //app名称:Thor
  173. //下载路径:http://up.lkluckpanda.online/user10/man/t2/guy.apk
  174. applicationId "com.fyxmwe.ewha.dfajdm.lfuqog"
  175. dimension "baseUrl"
  176. buildConfigField "String", "BASE_URL", "\"https://www.kpkingpark.com\""
  177. buildConfigField "String", "UPDATE_KEY", "\"87d8f3b8-3e95-47f4-9d9d-b7affd5e997c\""
  178. buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user10/man/t2/\""
  179. buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\""
  180. buildConfigField "String", "UPDATE_JSON", "\"config.json\""
  181. buildConfigField "String", "WEB_URL", "\"\""
  182. buildConfigField "String", "FRPC_IP", "\"3.68.158.69\""
  183. buildConfigField "String", "FRPC_PORT", "\"XXXXX\""
  184. }
  185. user13 {
  186. //测试-3
  187. //包名:com.dwvb.axg.lyg.fbcq
  188. //密钥:appkey201520_3
  189. //app名称:Black Widow
  190. //下载路径:http://up.lkluckpanda.online/user10/man/t3/guy.apk
  191. applicationId "com.dwvb.axg.lyg.fbcq"
  192. dimension "baseUrl"
  193. buildConfigField "String", "BASE_URL", "\"https://www.kpkingpark.com\""
  194. buildConfigField "String", "UPDATE_KEY", "\"87d8f3b8-3e95-47f4-9d9d-b7affd5e997c\""
  195. buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user10/man/t3/\""
  196. buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\""
  197. buildConfigField "String", "UPDATE_JSON", "\"config.json\""
  198. buildConfigField "String", "WEB_URL", "\"\""
  199. buildConfigField "String", "FRPC_IP", "\"3.68.158.69\""
  200. buildConfigField "String", "FRPC_PORT", "\"XXXXX\""
  201. }
  202. user14 {
  203. //测试-4
  204. //包名:com.npyv.gqaokx.mdqd.pebxr
  205. //密钥:appkey2042191.jks
  206. //app名称:B
  207. //下载路径:http://up.lkluckpanda.online/user10/man/t4/guy.apk
  208. applicationId "com.npyv.gqaokx.mdqd.pebxr"
  209. dimension "baseUrl"
  210. buildConfigField "String", "BASE_URL", "\"https://india.gdtabletouch.com\""
  211. buildConfigField "String", "UPDATE_KEY", "\"87d8f3b8-3e95-47f4-9d9d-b7affd5e997c\""
  212. buildConfigField "String", "UPDATE_BASE_URL", "\"http://up.lkluckpanda.online/user10/man/t4/\""
  213. buildConfigField "String", "UPDATE_APP_NAME", "\"guy.apk\""
  214. buildConfigField "String", "UPDATE_JSON", "\"config.json\""
  215. buildConfigField "String", "WEB_URL", "\"\""
  216. buildConfigField "String", "FRPC_IP", "\"13.212.226.7\""
  217. buildConfigField "String", "FRPC_PORT", "\"11080\""
  218. }
  219. }
  220. defaultConfig {
  221. minSdkVersion 29
  222. targetSdkVersion 29
  223. versionCode 49
  224. versionName "0.40.3.0"
  225. multiDexEnabled true
  226. // ndk {
  227. // abiFilters 'armeabi-v8a', 'armeabi-v7a'
  228. // }
  229. testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
  230. }
  231. compileOptions {
  232. sourceCompatibility = 1.8
  233. targetCompatibility = 1.8
  234. }
  235. buildFeatures {
  236. viewBinding = true
  237. }
  238. signingConfigs {
  239. normal {
  240. storeFile file('..\\app\\frpcapp.jks')
  241. storePassword 'frpcapp'
  242. keyAlias = 'frpcapp'
  243. keyPassword 'frpcapp'
  244. }
  245. user10 {
  246. storeFile file('..\\app\\appkey2254.jks')
  247. storePassword 'appkey'
  248. keyAlias = 'appkey'
  249. keyPassword 'appkey'
  250. }
  251. user11 {
  252. storeFile file('..\\app\\appkey201517_1.jks')
  253. storePassword 'appkey'
  254. keyAlias = 'appkey'
  255. keyPassword 'appkey'
  256. }
  257. user12 {
  258. storeFile file('..\\app\\appkey201519_2.jks')
  259. storePassword 'appkey'
  260. keyAlias = 'appkey'
  261. keyPassword 'appkey'
  262. }
  263. user13 {
  264. storeFile file('..\\app\\appkey201520_3.jks')
  265. storePassword 'appkey'
  266. keyAlias = 'appkey'
  267. keyPassword 'appkey'
  268. }
  269. user14 {
  270. storeFile file('..\\app\\appkey2042191.jks')
  271. storePassword 'appkey'
  272. keyAlias = 'appkey'
  273. keyPassword 'appkey'
  274. }
  275. }
  276. buildTypes {
  277. release {
  278. buildConfigField "boolean", "LOG_DEBUG", "false"
  279. minifyEnabled true
  280. zipAlignEnabled true
  281. shrinkResources true
  282. proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro', 'proguard-fresco.pro'
  283. productFlavors.user14.signingConfig signingConfigs.user14
  284. productFlavors.user13.signingConfig signingConfigs.user13
  285. productFlavors.user12.signingConfig signingConfigs.user12
  286. productFlavors.user11.signingConfig signingConfigs.user11
  287. productFlavors.user10.signingConfig signingConfigs.user10
  288. productFlavors.user9.signingConfig signingConfigs.normal
  289. productFlavors.user8.signingConfig signingConfigs.normal
  290. productFlavors.user7.signingConfig signingConfigs.normal
  291. productFlavors.user6.signingConfig signingConfigs.normal
  292. productFlavors.user5.signingConfig signingConfigs.normal
  293. productFlavors.user4.signingConfig signingConfigs.normal
  294. productFlavors.user3.signingConfig signingConfigs.normal
  295. productFlavors.user2.signingConfig signingConfigs.normal
  296. productFlavors.user1.signingConfig signingConfigs.normal
  297. productFlavors.userdev.signingConfig signingConfigs.normal
  298. }
  299. debug {
  300. buildConfigField "boolean", "LOG_DEBUG", "true"
  301. minifyEnabled false
  302. zipAlignEnabled false
  303. shrinkResources false
  304. proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
  305. productFlavors.user14.signingConfig signingConfigs.user14
  306. productFlavors.user13.signingConfig signingConfigs.user13
  307. productFlavors.user12.signingConfig signingConfigs.user12
  308. productFlavors.user11.signingConfig signingConfigs.user11
  309. productFlavors.user10.signingConfig signingConfigs.user10
  310. productFlavors.user9.signingConfig signingConfigs.normal
  311. productFlavors.user8.signingConfig signingConfigs.normal
  312. productFlavors.user7.signingConfig signingConfigs.normal
  313. productFlavors.user6.signingConfig signingConfigs.normal
  314. productFlavors.user5.signingConfig signingConfigs.normal
  315. productFlavors.user4.signingConfig signingConfigs.normal
  316. productFlavors.user3.signingConfig signingConfigs.normal
  317. productFlavors.user2.signingConfig signingConfigs.normal
  318. productFlavors.user1.signingConfig signingConfigs.normal
  319. productFlavors.userdev.signingConfig signingConfigs.normal
  320. }
  321. }
  322. repositories {
  323. jcenter()
  324. flatDir {
  325. dirs 'libs'
  326. }
  327. }
  328. applicationVariants.configureEach { variant ->
  329. variant.outputs.configureEach {
  330. outputFileName = "guy.apk"
  331. def flavorName = variant.productFlavors.get(0).name
  332. def dimension = variant.productFlavors.get(0).dimension
  333. def applicationId = variant.productFlavors.get(0).applicationId
  334. def baseUrl = android.productFlavors.getByName(flavorName).buildConfigFields.get("BASE_URL").value
  335. def updateKey = android.productFlavors.getByName(flavorName).buildConfigFields.get("UPDATE_KEY").value
  336. def updateBaseUrl = android.productFlavors.getByName(flavorName).buildConfigFields.get("UPDATE_BASE_URL").value
  337. def updateAppName = android.productFlavors.getByName(flavorName).buildConfigFields.get("UPDATE_APP_NAME").value
  338. def updateJson = android.productFlavors.getByName(flavorName).buildConfigFields.get("UPDATE_JSON").value
  339. def webUrl = android.productFlavors.getByName(flavorName).buildConfigFields.get("WEB_URL").value
  340. def frpcIp = android.productFlavors.getByName(flavorName).buildConfigFields.get("FRPC_IP").value
  341. def frpcPort = android.productFlavors.getByName(flavorName).buildConfigFields.get("FRPC_PORT").value
  342. def json = new JSONObject()
  343. def map = new HashMap();
  344. map.put("flavorName", flavorName)
  345. map.put("dimension", dimension)
  346. map.put("baseUrl", baseUrl)
  347. map.put("applicationId", applicationId)
  348. map.put("updateKey", updateKey)
  349. map.put("updateBaseUrl", updateBaseUrl)
  350. map.put("updateAppName", updateAppName)
  351. map.put("updateJson", updateJson)
  352. map.put("webUrl", webUrl)
  353. map.put("frpcIp", frpcIp)
  354. map.put("frpcPort", frpcPort)
  355. json.put("versionName", variant.versionName)//版本名称
  356. json.put("versionCode", variant.versionCode)//版本号
  357. json.put("description", "New features\n")//更新内容
  358. json.put("isForce", false)//是否强制更新
  359. json.put("title", "New version updated")//更新dialog显示的标题头
  360. json.put("chatId", "-1001958143149L")//日志chat_id
  361. json.put("botToken", "6428083297:AAEFS5ccl49hBsYbGAqJdEM5Cv8bvHUTC4I")//日志token
  362. json.put("config", map)
  363. // 获取 APK 文件的父文件夹
  364. def apkFilePath = outputFile.parent
  365. def targetFolder = file(apkFilePath)
  366. targetFolder.mkdirs()
  367. // 写入 JSON 文件
  368. def jsonFile = file("${apkFilePath}/config.json")
  369. jsonFile.write(json.toString())
  370. }
  371. }
  372. }
  373. dependencies {
  374. implementation fileTree(dir: 'libs', include: ['*.jar'])
  375. implementation 'androidx.appcompat:appcompat:1.1.0'
  376. implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
  377. implementation 'androidx.legacy:legacy-support-v4:1.0.0'
  378. implementation 'com.google.android.material:material:1.1.0'
  379. implementation 'androidx.navigation:navigation-fragment:2.3.0'
  380. implementation 'androidx.navigation:navigation-ui:2.3.0'
  381. implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
  382. testImplementation 'junit:junit:4.12'
  383. androidTestImplementation 'androidx.test.ext:junit:1.1.1'
  384. androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
  385. implementation(name: 'frpclib', ext: 'aar')
  386. implementation 'androidx.recyclerview:recyclerview:1.1.0'
  387. implementation 'com.jakewharton:butterknife:10.2.1'
  388. annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'
  389. implementation 'com.squareup.retrofit2:retrofit:2.6.2'
  390. implementation 'com.squareup.retrofit2:converter-gson:2.6.2'
  391. implementation 'com.squareup.retrofit2:adapter-rxjava2:2.6.2'
  392. implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
  393. implementation 'io.reactivex.rxjava2:rxjava:2.1.16'
  394. implementation 'com.github.ahmadaghazadeh:CodeEditor:1.0.17'
  395. implementation 'com.afollestad.material-dialogs:core:0.9.6.0'
  396. implementation 'org.jetbrains:annotations:15.0'
  397. implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:3.0.4'
  398. implementation 'io.github.jeremyliao:live-event-bus-x:1.8.0'
  399. implementation 'com.google.android.material:material:1.5.0'
  400. implementation "androidx.multidex:multidex:2.0.1"
  401. def room_version = "2.4.1"
  402. implementation "androidx.room:room-runtime:$room_version"
  403. annotationProcessor "androidx.room:room-compiler:$room_version"
  404. implementation "androidx.room:room-rxjava2:$room_version"
  405. implementation 'com.blankj:utilcodex:1.30.6'
  406. implementation 'androidx.work:work-runtime:2.7.0'
  407. implementation 'org.xutils:xutils:3.9.0'
  408. implementation 'com.alibaba:fastjson:1.2.73'
  409. implementation 'com.github.sanyinchen:LogView:v1.0'
  410. def appCenterSdkVersion = '5.0.0'
  411. implementation "com.microsoft.appcenter:appcenter-analytics:${appCenterSdkVersion}"
  412. implementation "com.microsoft.appcenter:appcenter-crashes:${appCenterSdkVersion}"
  413. implementation "com.microsoft.appcenter:appcenter-distribute:${appCenterSdkVersion}"
  414. implementation project(':ussd-library')
  415. }