修改备用服务器文件地址

This commit is contained in:
cyh 2024-10-21 14:38:00 +08:00
parent 4fc198bd26
commit a6a429f9f0
10 changed files with 423 additions and 137 deletions

View File

@ -104,6 +104,10 @@ dependencies {
implementation("com.github.bumptech.glide:glide:4.13.2") implementation("com.github.bumptech.glide:glide:4.13.2")
// implementation("com.luozm.captcha:captcha:1.1.2") // implementation("com.luozm.captcha:captcha:1.1.2")
implementation("com.aliyun.dpa:oss-android-sdk:2.9.19") implementation("com.aliyun.dpa:oss-android-sdk:2.9.19")
} }
tasks.getByName("clean", type = Delete::class) { tasks.getByName("clean", type = Delete::class) {

View File

@ -145,7 +145,7 @@ class LoginActivity : BaseActivity(), View.OnClickListener {
override fun httpFailure(httpStatus: HttpStatus.Failure) { override fun httpFailure(httpStatus: HttpStatus.Failure) {
super.httpFailure(httpStatus) super.httpFailure(httpStatus)
if (httpStatus.reqType == HttpReqType.LOGIN) { if (httpStatus.reqType == HttpReqType.LOGIN) {
if (Utils.switchServer()) { if (super.switchServer()) {
loginViewMode.login(username_encrypt, password_encrypt) loginViewMode.login(username_encrypt, password_encrypt)
} else { } else {
if (::rxDialogShapeLoading.isInitialized && rxDialogShapeLoading.isShowing) { if (::rxDialogShapeLoading.isInitialized && rxDialogShapeLoading.isShowing) {

View File

@ -102,6 +102,8 @@ class SplashActivity : BaseActivity() {
// } // }
// } // }
var clashBinder = MainApplication.getApp()?.let { var clashBinder = MainApplication.getApp()?.let {
ClashManager(it).wrap() as IClashManager ClashManager(it).wrap() as IClashManager
} }
@ -135,6 +137,10 @@ class SplashActivity : BaseActivity() {
override fun err() { override fun err() {
Log.e("data", "getHost err") Log.e("data", "getHost err")
//失败也注册
MainScope().launch {
isNeedRegister()
}
} }
}) })
} }
@ -256,6 +262,7 @@ class SplashActivity : BaseActivity() {
splashAtyVM.register(params) splashAtyVM.register(params)
} }
@Synchronized
fun doRegisterByEncryption() { fun doRegisterByEncryption() {
var req_json = JsonObject() var req_json = JsonObject()
@ -509,7 +516,7 @@ class SplashActivity : BaseActivity() {
HttpReqType.REGISTER -> { HttpReqType.REGISTER -> {
com.yingmao.clash.common.log.Log.d("httpFailure HttpReqType.REGISTER") com.yingmao.clash.common.log.Log.d("httpFailure HttpReqType.REGISTER")
if (Utils.switchServer()) {//切换服务器并直接重试 if (super.switchServer()) {//切换服务器并直接重试
// doRegister() // doRegister()
doRegisterByEncryption() doRegisterByEncryption()
} else { } else {
@ -548,7 +555,7 @@ class SplashActivity : BaseActivity() {
HttpReqType.CHECK_LOGIN -> { HttpReqType.CHECK_LOGIN -> {
com.yingmao.clash.common.log.Log.d("httpFailure HttpReqType.CHECK_LOGIN") com.yingmao.clash.common.log.Log.d("httpFailure HttpReqType.CHECK_LOGIN")
if (Utils.switchServer()) { if (super.switchServer()) {
splashAtyVM.checkLogin() splashAtyVM.checkLogin()
} else { } else {
toLoginPage() toLoginPage()

View File

@ -8,6 +8,7 @@ import android.content.pm.ActivityInfo
import android.content.res.Configuration import android.content.res.Configuration
import android.os.Bundle import android.os.Bundle
import android.text.TextUtils import android.text.TextUtils
import android.util.Log
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.view.inputmethod.InputMethodManager import android.view.inputmethod.InputMethodManager
@ -15,8 +16,12 @@ import android.widget.*
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import com.orhanobut.logger.Logger import com.orhanobut.logger.Logger
import com.tencent.mmkv.MMKV
import com.yingmao.clash.BuildConfig
import com.yingmao.clash.R import com.yingmao.clash.R
import com.yingmao.clash.act.MainActivity import com.yingmao.clash.act.MainActivity
import com.yingmao.clash.conf.BZYConstants
import com.yingmao.clash.conf.Conf
import com.yingmao.clash.core.bridge.ClashException import com.yingmao.clash.core.bridge.ClashException
import com.yingmao.clash.core.model.TunnelState import com.yingmao.clash.core.model.TunnelState
//import com.yingmao.clash.design.model.DarkMode //import com.yingmao.clash.design.model.DarkMode
@ -250,4 +255,42 @@ open class BaseActivity : AppCompatActivity(), CoroutineScope by MainScope(), Br
baseLoading?.cancel() baseLoading?.cancel()
} }
} }
@Synchronized
fun switchServer(): Boolean {
var isChange = false
val mmkv = MMKV.defaultMMKV()
val originalUrl =
mmkv.decodeString(BZYConstants.MMKV_KEY_CURRENT_HOST, BuildConfig.service_url)
var newUrlString = originalUrl
val routerHost = mmkv.decodeStringSet(BZYConstants.MMKV_KEY_ROUTER_HOST, HashSet())
routerHost?.let {
// it.forEach { url ->
// com.yingmao.clash.common.log.Log.d("url==>$url")
// }
if (it.isEmpty()) {
Log.d(Conf.TAG, "routerHost isEmpty")
return isChange
}
Log.d(Conf.TAG, "routerHost not empty")
val iterator = it.iterator()
while (iterator.hasNext()) {
val newUrl = iterator.next()
//Log.e("Data", "遍历备用的url:$newUrl")
if (newUrl == originalUrl) {
iterator.remove()
} else {
//Log.e("Retry", "切换到新url:$newUrl")
mmkv.encode(BZYConstants.MMKV_KEY_OLD_CURRENT_HOST, originalUrl)
isChange = true
newUrlString = newUrl
iterator.remove()
break
}
}
mmkv.encode(BZYConstants.MMKV_KEY_ROUTER_HOST, routerHost)
mmkv.encode(BZYConstants.MMKV_KEY_CURRENT_HOST, newUrlString)
}
return isChange
}
} }

View File

@ -157,10 +157,10 @@ interface HttpApi {
// @GET("/darkSuperman/lazy/blob/master/fire.json") // @GET("/darkSuperman/lazy/blob/master/fire.json")
// suspend fun getHost() : String // suspend fun getHost() : String
@GET("/darkSuperman/lazy/raw/master/host.json") @GET("/host.txt")
suspend fun getHost(): String suspend fun getHost(): String
@GET("/darkSuperman/lazy/raw/master/hostdef.json") @GET("/hostdef.txt")
suspend fun getHostDef(): String suspend fun getHostDef(): String
// @Headers( // @Headers(

View File

@ -51,7 +51,7 @@ class NetService private constructor() : INetService {
fun getCurrentUrl(): String { fun getCurrentUrl(): String {
val hh = if (!BuildConfig.is_back_cn) { val hh = if (!BuildConfig.is_back_cn) {
// "https://app.bazhuayujiasu.cc:18001" // "https://app.bazhuayujiasu1.cc:18001"
// "https://api.gaogaoshousoft.cc:18001" // "https://api.gaogaoshousoft.cc:18001"
// "https://api.yingmaox.cc:8700" // "https://api.yingmaox.cc:8700"
// "https://113.108.210.50:21002" // "https://113.108.210.50:21002"

View File

@ -26,6 +26,7 @@ public class AESUtil {
public final static String MD5 = "MD5"; public final static String MD5 = "MD5";
public final static String SHA1 = "SHA1"; public final static String SHA1 = "SHA1";
public final static String SHA256 = "SHA256"; public final static String SHA256 = "SHA256";
/** /**
* 返回一个签名的对应类型的字符串 * 返回一个签名的对应类型的字符串
* *

View File

@ -287,42 +287,5 @@ object Utils {
} }
} }
@Synchronized
fun switchServer(): Boolean {
var isChange = false
val mmkv = MMKV.defaultMMKV()
val originalUrl =
mmkv.decodeString(BZYConstants.MMKV_KEY_CURRENT_HOST, BuildConfig.service_url)
var newUrlString = originalUrl
val routerHost = mmkv.decodeStringSet(BZYConstants.MMKV_KEY_ROUTER_HOST, HashSet())
routerHost?.let {
it.forEach { url ->
com.yingmao.clash.common.log.Log.d("url==>$url")
}
if (it.isEmpty()) {
Log.d(Conf.TAG, "routerHost isEmpty")
return isChange
}
Log.d(Conf.TAG, "routerHost not empty")
val iterator = it.iterator()
while (iterator.hasNext()) {
val newUrl = iterator.next()
//Log.e("Data", "遍历备用的url:$newUrl")
if (newUrl == originalUrl) {
iterator.remove()
} else {
//Log.e("Retry", "切换到新url:$newUrl")
mmkv.encode(BZYConstants.MMKV_KEY_OLD_CURRENT_HOST, originalUrl)
isChange = true
newUrlString = newUrl
iterator.remove()
break
}
}
mmkv.encode(BZYConstants.MMKV_KEY_ROUTER_HOST, routerHost)
mmkv.encode(BZYConstants.MMKV_KEY_CURRENT_HOST, newUrlString)
}
return isChange
}
} }

View File

@ -15,6 +15,8 @@ import com.yingmao.clash.listener.AsyncCallback
import com.yingmao.clash.net.http.HttpApi import com.yingmao.clash.net.http.HttpApi
import com.yingmao.clash.net.http.HttpReqType import com.yingmao.clash.net.http.HttpReqType
import com.yingmao.clash.net.http.NetService import com.yingmao.clash.net.http.NetService
import com.yingmao.clash.util.AESUtil
import kotlinx.coroutines.Job import kotlinx.coroutines.Job
@ -40,7 +42,9 @@ class SplashAtyVM : PublicViewMode() {
} }
fun getHost(function: () -> Job) { fun getHost(function: () -> Job) {
val rt = NetService.instances.createFreeBaseUrl("https://gitee.com/") NetService.instances
val rt = NetService.instances.createFreeBaseUrl("https://yingmao.oss-cn-hongkong.aliyuncs.com/")
doAsyncNoNeedReturn(HttpReqType.GET_HOST) { doAsyncNoNeedReturn(HttpReqType.GET_HOST) {
try { //TODO bug 会引起崩溃 try { //TODO bug 会引起崩溃
val host = if (BuildConfig.is_ym) { val host = if (BuildConfig.is_ym) {
@ -52,7 +56,7 @@ class SplashAtyVM : PublicViewMode() {
val hostSet = host.split("+").toSet() val hostSet = host.split("+").toSet()
MMKV.defaultMMKV().encode(BZYConstants.MMKV_KEY_ROUTER_HOST, hostSet) MMKV.defaultMMKV().encode(BZYConstants.MMKV_KEY_ROUTER_HOST, hostSet)
} }
Log.e("data", "获取到的url1:$host")
} catch (e: Exception) { } catch (e: Exception) {
e.printStackTrace() e.printStackTrace()
} }
@ -60,23 +64,26 @@ class SplashAtyVM : PublicViewMode() {
} }
fun getHost(callback: AsyncCallback) { fun getHost(callback: AsyncCallback) {
val rt = NetService.instances.createFreeBaseUrl("https://gitee.com/") val rt = NetService.instances.createFreeBaseUrl("https://yingmao.oss-cn-hongkong.aliyuncs.com/")
doAsyncNoNeedReturn(HttpReqType.GET_HOST) { doAsyncNoNeedReturn(HttpReqType.GET_HOST) {
try { //TODO bug 会引起崩溃 try { //TODO bug 会引起崩溃
if (BuildConfig.productId == "182265") { if (BuildConfig.productId == "182265") {
} else { } else {
val host = if (BuildConfig.is_ym) {
var host = if (BuildConfig.is_ym) {
rt.getHost() rt.getHost()
} else { } else {
rt.getHostDef() rt.getHostDef()
} }
Log.e("data", "2:$host")
if (!TextUtils.isEmpty(host)) { if (!TextUtils.isEmpty(host)) {
host= AESUtil.decrypt(host)
val hostSet = host.split("+").toSet() val hostSet = host.split("+").toSet()
MMKV.defaultMMKV().encode(BZYConstants.MMKV_KEY_ROUTER_HOST, hostSet) MMKV.defaultMMKV().encode(BZYConstants.MMKV_KEY_ROUTER_HOST, hostSet)
} }
Log.e("data", "2:$host") Log.e("data", "22:$host")
} }
callback.suc() callback.suc()
} catch (e: Exception) { } catch (e: Exception) {

View File

@ -51,8 +51,8 @@ subprojects {
minSdk = 21 minSdk = 21
//noinspection ExpiredTargetSdkVersion //noinspection ExpiredTargetSdkVersion
targetSdk = 31 targetSdk = 31
versionName = "1.0.2.0" versionName = "1.0.2.1"
versionCode = 1020 versionCode = 1021
resValue("string", "release_name", "v$versionName") resValue("string", "release_name", "v$versionName")
resValue("integer", "release_code", "$versionCode") resValue("integer", "release_code", "$versionCode")
externalNativeBuild { externalNativeBuild {
@ -101,90 +101,48 @@ subprojects {
) )
) )
} }
//八爪鱼
create("182227") {
isDefault = true
dimension = flavorDimensionList[0]
buildConfigField("boolean", "PREMIUM", "Boolean.parseBoolean(\"false\")")
if (isApp) {
// applicationIdSuffix = ".meta"
}
buildConfigField("boolean", "is_free", "false")
buildConfigField("boolean", "is_back_cn", "false")
buildConfigField("boolean", "is_ym", "false")
buildConfigField("String", "applicationId", "\"com.yingmao.clash\"")
// buildConfigField("String", "service_url", "\"https://api.gaogaoshousoft.cc:18001\"")
buildConfigField("String", "service_url", "\"https://app.bazhuayujiasu.cc:18001\"")
buildConfigField("String", "productId", "\"182227\"")
manifestPlaceholders(
mapOf(
"APP_NAME" to "@string/app_name", "APP_ICON" to "@mipmap/logo"
)
)
}
create("182250") {
isDefault = true
dimension = flavorDimensionList[0]
buildConfigField("boolean", "PREMIUM", "Boolean.parseBoolean(\"false\")")
if (isApp) {
// applicationIdSuffix = ".meta"
}
buildConfigField("boolean", "is_free", "false")
buildConfigField("boolean", "is_back_cn", "false")
buildConfigField("boolean", "is_ym", "false")
buildConfigField("String", "applicationId", "\"com.yingmao.clash\"")
// buildConfigField("String", "service_url", "\"https://api.gaogaoshousoft.cc:18001\"")
buildConfigField("String", "service_url", "\"https://app.bazhuayujiasu.cc:18001\"")
buildConfigField("String", "productId", "\"182250\"")
manifestPlaceholders(
mapOf(
"APP_NAME" to "@string/app_name", "APP_ICON" to "@mipmap/logo"
)
)
}
create("182256") {
isDefault = true
dimension = flavorDimensionList[0]
buildConfigField("boolean", "PREMIUM", "Boolean.parseBoolean(\"false\")")
if (isApp) {
// applicationIdSuffix = ".meta"
}
buildConfigField("boolean", "is_free", "false")
buildConfigField("boolean", "is_back_cn", "false")
buildConfigField("boolean", "is_ym", "false")
buildConfigField("String", "applicationId", "\"com.yingmao.clash\"")
// buildConfigField("String", "service_url", "\"https://api.gaogaoshousoft.cc:18001\"")
buildConfigField("String", "service_url", "\"https://app.bazhuayujiasu.cc:18001\"")
buildConfigField("String", "productId", "\"182256\"")
manifestPlaceholders(
mapOf(
"APP_NAME" to "@string/app_name", "APP_ICON" to "@mipmap/logo"
)
)
}
create("182251") {
isDefault = true
dimension = flavorDimensionList[0]
buildConfigField("boolean", "PREMIUM", "Boolean.parseBoolean(\"false\")")
if (isApp) {
// applicationIdSuffix = ".meta"
}
buildConfigField("boolean", "is_free", "false")
buildConfigField("boolean", "is_back_cn", "false")
buildConfigField("boolean", "is_ym", "false")
buildConfigField("String", "applicationId", "\"com.yingmao.clash\"")
// buildConfigField("String", "service_url", "\"https://api.gaogaoshousoft.cc:18001\"")
buildConfigField("String", "service_url", "\"https://app.bazhuayujiasu.cc:18001\"")
buildConfigField("String", "productId", "\"182251\"")
manifestPlaceholders(
mapOf(
"APP_NAME" to "@string/app_name", "APP_ICON" to "@mipmap/logo"
)
)
}
//影猫 //影猫
create("6768") {
isDefault = true
dimension = flavorDimensionList[0]
buildConfigField("boolean", "PREMIUM", "Boolean.parseBoolean(\"false\")")
if (isApp) {
}
buildConfigField("boolean", "is_back_cn", "false")
buildConfigField("boolean", "is_ym", "true")
buildConfigField("String", "applicationId", "\"com.yingmao.clash\"")
buildConfigField("String", "service_url", "\"https://api.ymvpnpro.cc:8700\"")
buildConfigField("boolean", "is_free", "false")
buildConfigField("String", "productId", "\"6768\"")
manifestPlaceholders(
mapOf(
"APP_NAME" to "@string/app_name_gz", "APP_ICON" to "@mipmap/ic_logo_9972"
)
)
}
create("2256") {
isDefault = true
dimension = flavorDimensionList[0]
buildConfigField("boolean", "PREMIUM", "Boolean.parseBoolean(\"false\")")
if (isApp) {
// applicationIdSuffix = ".meta"
}
buildConfigField("boolean", "is_back_cn", "false")
buildConfigField("boolean", "is_ym", "true")
buildConfigField("String", "applicationId", "\"com.yingmao.clash\"")
// buildConfigField("String", "service_url", "\"https://api.gaogaoshousoft.cc:8700\"")
buildConfigField("String", "service_url", "\"https://api.ymvpnpro.cc:8700\"")
buildConfigField("boolean", "is_free", "false")
buildConfigField("String", "productId", "\"2256\"")
manifestPlaceholders(
mapOf(
"APP_NAME" to "@string/app_name_gz", "APP_ICON" to "@mipmap/ic_logo_9972"
)
)
}
create("9586") { create("9586") {
isDefault = true isDefault = true
dimension = flavorDimensionList[0] dimension = flavorDimensionList[0]
@ -195,7 +153,7 @@ subprojects {
buildConfigField("boolean", "is_back_cn", "false") buildConfigField("boolean", "is_back_cn", "false")
buildConfigField("boolean", "is_ym", "true") buildConfigField("boolean", "is_ym", "true")
buildConfigField("String", "applicationId", "\"com.yingmao.clash\"") buildConfigField("String", "applicationId", "\"com.yingmao.clash\"")
// buildConfigField("String", "service_url", "\"https://api.gaogaoshousoft.cc:18001\"") // buildConfigField("String", "service_url", "\"https://api.gaogaoshousoft.cc:8700\"")
buildConfigField("String", "service_url", "\"https://api.ymvpnpro.cc:8700\"") buildConfigField("String", "service_url", "\"https://api.ymvpnpro.cc:8700\"")
buildConfigField("boolean", "is_free", "false") buildConfigField("boolean", "is_free", "false")
buildConfigField("String", "productId", "\"9586\"") buildConfigField("String", "productId", "\"9586\"")
@ -218,7 +176,7 @@ subprojects {
buildConfigField("boolean", "is_back_cn", "false") buildConfigField("boolean", "is_back_cn", "false")
buildConfigField("boolean", "is_ym", "true") buildConfigField("boolean", "is_ym", "true")
buildConfigField("String", "applicationId", "\"com.yingmao.clash\"") buildConfigField("String", "applicationId", "\"com.yingmao.clash\"")
// buildConfigField("String", "service_url", "\"https://api.gaogaoshousoft.cc:18001\"") // buildConfigField("String", "service_url", "\"https://api.gaogaoshousoft.cc:8700\"")
buildConfigField("String", "service_url", "\"https://api.ymvpnpro.cc:8700\"") buildConfigField("String", "service_url", "\"https://api.ymvpnpro.cc:8700\"")
buildConfigField("boolean", "is_free", "false") buildConfigField("boolean", "is_free", "false")
buildConfigField("String", "productId", "\"9707\"") buildConfigField("String", "productId", "\"9707\"")
@ -240,7 +198,7 @@ subprojects {
buildConfigField("boolean", "is_back_cn", "false") buildConfigField("boolean", "is_back_cn", "false")
buildConfigField("boolean", "is_ym", "true") buildConfigField("boolean", "is_ym", "true")
buildConfigField("String", "applicationId", "\"com.yingmao.clash\"") buildConfigField("String", "applicationId", "\"com.yingmao.clash\"")
// buildConfigField("String", "service_url", "\"https://api.gaogaoshousoft.cc:18001\"") // buildConfigField("String", "service_url", "\"https://api.gaogaoshousoft.cc:8700\"")
buildConfigField("String", "service_url", "\"https://api.ymvpnpro.cc:8700\"") buildConfigField("String", "service_url", "\"https://api.ymvpnpro.cc:8700\"")
buildConfigField("boolean", "is_free", "false") buildConfigField("boolean", "is_free", "false")
buildConfigField("String", "productId", "\"9686\"") buildConfigField("String", "productId", "\"9686\"")
@ -619,6 +577,309 @@ subprojects {
) )
) )
} }
//八爪鱼 182227 182250 182256 182251
create("182227") {
isDefault = true
dimension = flavorDimensionList[0]
buildConfigField("boolean", "PREMIUM", "Boolean.parseBoolean(\"false\")")
if (isApp) {
// applicationIdSuffix = ".meta"
}
buildConfigField("boolean", "is_free", "false")
buildConfigField("boolean", "is_back_cn", "false")
buildConfigField("boolean", "is_ym", "false")
buildConfigField("String", "applicationId", "\"com.yingmao.clash\"")
// buildConfigField("String", "service_url", "\"https://api.gaogaoshousoft.cc:8700\"")
buildConfigField("String", "service_url", "\"https://app.bazhuayujiasu.cc:8700\"")
buildConfigField("String", "productId", "\"182227\"")
manifestPlaceholders(
mapOf(
"APP_NAME" to "@string/app_name", "APP_ICON" to "@mipmap/logo"
)
)
}
create("182250") {
isDefault = true
dimension = flavorDimensionList[0]
buildConfigField("boolean", "PREMIUM", "Boolean.parseBoolean(\"false\")")
if (isApp) {
// applicationIdSuffix = ".meta"
}
buildConfigField("boolean", "is_free", "false")
buildConfigField("boolean", "is_back_cn", "false")
buildConfigField("boolean", "is_ym", "false")
buildConfigField("String", "applicationId", "\"com.yingmao.clash\"")
// buildConfigField("String", "service_url", "\"https://api.gaogaoshousoft.cc:8700\"")
buildConfigField("String", "service_url", "\"https://app.bazhuayujiasu.cc:8700\"")
buildConfigField("String", "productId", "\"182250\"")
manifestPlaceholders(
mapOf(
"APP_NAME" to "@string/app_name", "APP_ICON" to "@mipmap/logo"
)
)
}
create("182256") {
isDefault = true
dimension = flavorDimensionList[0]
buildConfigField("boolean", "PREMIUM", "Boolean.parseBoolean(\"false\")")
if (isApp) {
// applicationIdSuffix = ".meta"
}
buildConfigField("boolean", "is_free", "false")
buildConfigField("boolean", "is_back_cn", "false")
buildConfigField("boolean", "is_ym", "false")
buildConfigField("String", "applicationId", "\"com.yingmao.clash\"")
// buildConfigField("String", "service_url", "\"https://api.gaogaoshousoft.cc:8700\"")
buildConfigField("String", "service_url", "\"https://app.bazhuayujiasu.cc:8700\"")
buildConfigField("String", "productId", "\"182256\"")
manifestPlaceholders(
mapOf(
"APP_NAME" to "@string/app_name", "APP_ICON" to "@mipmap/logo"
)
)
}
create("182251") {
isDefault = true
dimension = flavorDimensionList[0]
buildConfigField("boolean", "PREMIUM", "Boolean.parseBoolean(\"false\")")
if (isApp) {
// applicationIdSuffix = ".meta"
}
buildConfigField("boolean", "is_free", "false")
buildConfigField("boolean", "is_back_cn", "false")
buildConfigField("boolean", "is_ym", "false")
buildConfigField("String", "applicationId", "\"com.yingmao.clash\"")
// buildConfigField("String", "service_url", "\"https://api.gaogaoshousoft.cc:8700\"")
buildConfigField("String", "service_url", "\"https://app.bazhuayujiasu.cc:8700\"")
buildConfigField("String", "productId", "\"182251\"")
manifestPlaceholders(
mapOf(
"APP_NAME" to "@string/app_name", "APP_ICON" to "@mipmap/logo"
)
)
}
create("182258") {
isDefault = true
dimension = flavorDimensionList[0]
buildConfigField("boolean", "PREMIUM", "Boolean.parseBoolean(\"false\")")
buildConfigField("boolean", "is_free", "false")
buildConfigField("boolean", "is_back_cn", "false")
buildConfigField("boolean", "is_ym", "false")
buildConfigField("String", "applicationId", "\"com.yingmao.clash\"")
buildConfigField("String", "service_url", "\"https://app.bazhuayujiasu.cc:8700\"")
buildConfigField("String", "productId", "\"182258\"")
manifestPlaceholders(
mapOf(
"APP_NAME" to "@string/app_name", "APP_ICON" to "@mipmap/logo"
)
)
}
create("11111") {
isDefault = true
dimension = flavorDimensionList[0]
buildConfigField("boolean", "PREMIUM", "Boolean.parseBoolean(\"false\")")
buildConfigField("boolean", "is_free", "false")
buildConfigField("boolean", "is_back_cn", "false")
buildConfigField("boolean", "is_ym", "false")
buildConfigField("String", "applicationId", "\"com.yingmao.clash\"")
buildConfigField("String", "service_url", "\"https://app.bazhuayujiasu.cc:8700\"")
buildConfigField("String", "productId", "\"11111\"")
manifestPlaceholders(
mapOf(
"APP_NAME" to "@string/app_name", "APP_ICON" to "@mipmap/logo"
)
)
}
create("182254") {
isDefault = true
dimension = flavorDimensionList[0]
buildConfigField("boolean", "PREMIUM", "Boolean.parseBoolean(\"false\")")
buildConfigField("boolean", "is_free", "false")
buildConfigField("boolean", "is_back_cn", "false")
buildConfigField("boolean", "is_ym", "false")
buildConfigField("String", "applicationId", "\"com.yingmao.clash\"")
buildConfigField("String", "service_url", "\"https://app.bazhuayujiasu.cc:8700\"")
buildConfigField("String", "productId", "\"182254\"")
manifestPlaceholders(
mapOf(
"APP_NAME" to "@string/app_name", "APP_ICON" to "@mipmap/logo"
)
)
}
create("182223") {
isDefault = true
dimension = flavorDimensionList[0]
buildConfigField("boolean", "PREMIUM", "Boolean.parseBoolean(\"false\")")
buildConfigField("boolean", "is_free", "false")
buildConfigField("boolean", "is_back_cn", "false")
buildConfigField("boolean", "is_ym", "false")
buildConfigField("String", "applicationId", "\"com.yingmao.clash\"")
buildConfigField("String", "service_url", "\"https://app.bazhuayujiasu.cc:8700\"")
buildConfigField("String", "productId", "\"182223\"")
manifestPlaceholders(
mapOf(
"APP_NAME" to "@string/app_name", "APP_ICON" to "@mipmap/logo"
)
)
}
create("182222") {
isDefault = true
dimension = flavorDimensionList[0]
buildConfigField("boolean", "PREMIUM", "Boolean.parseBoolean(\"false\")")
buildConfigField("boolean", "is_free", "false")
buildConfigField("boolean", "is_back_cn", "false")
buildConfigField("boolean", "is_ym", "false")
buildConfigField("String", "applicationId", "\"com.yingmao.clash\"")
buildConfigField("String", "service_url", "\"https://app.bazhuayujiasu.cc:8700\"")
buildConfigField("String", "productId", "\"182222\"")
manifestPlaceholders(
mapOf(
"APP_NAME" to "@string/app_name", "APP_ICON" to "@mipmap/logo"
)
)
}
create("182257") {
isDefault = true
dimension = flavorDimensionList[0]
buildConfigField("boolean", "PREMIUM", "Boolean.parseBoolean(\"false\")")
buildConfigField("boolean", "is_free", "false")
buildConfigField("boolean", "is_back_cn", "false")
buildConfigField("boolean", "is_ym", "false")
buildConfigField("String", "applicationId", "\"com.yingmao.clash\"")
buildConfigField("String", "service_url", "\"https://app.bazhuayujiasu.cc:8700\"")
buildConfigField("String", "productId", "\"182257\"")
manifestPlaceholders(
mapOf(
"APP_NAME" to "@string/app_name", "APP_ICON" to "@mipmap/logo"
)
)
}
create("182225") {
isDefault = true
dimension = flavorDimensionList[0]
buildConfigField("boolean", "PREMIUM", "Boolean.parseBoolean(\"false\")")
buildConfigField("boolean", "is_free", "false")
buildConfigField("boolean", "is_back_cn", "false")
buildConfigField("boolean", "is_ym", "false")
buildConfigField("String", "applicationId", "\"com.yingmao.clash\"")
buildConfigField("String", "service_url", "\"https://app.bazhuayujiasu.cc:8700\"")
buildConfigField("String", "productId", "\"182225\"")
manifestPlaceholders(
mapOf(
"APP_NAME" to "@string/app_name", "APP_ICON" to "@mipmap/logo"
)
)
}
create("182224") {
isDefault = true
dimension = flavorDimensionList[0]
buildConfigField("boolean", "PREMIUM", "Boolean.parseBoolean(\"false\")")
buildConfigField("boolean", "is_free", "false")
buildConfigField("boolean", "is_back_cn", "false")
buildConfigField("boolean", "is_ym", "false")
buildConfigField("String", "applicationId", "\"com.yingmao.clash\"")
buildConfigField("String", "service_url", "\"https://app.bazhuayujiasu.cc:8700\"")
buildConfigField("String", "productId", "\"182224\"")
manifestPlaceholders(
mapOf(
"APP_NAME" to "@string/app_name", "APP_ICON" to "@mipmap/logo"
)
)
}
create("182226") {
isDefault = true
dimension = flavorDimensionList[0]
buildConfigField("boolean", "PREMIUM", "Boolean.parseBoolean(\"false\")")
buildConfigField("boolean", "is_free", "false")
buildConfigField("boolean", "is_back_cn", "false")
buildConfigField("boolean", "is_ym", "false")
buildConfigField("String", "applicationId", "\"com.yingmao.clash\"")
buildConfigField("String", "service_url", "\"https://app.bazhuayujiasu.cc:8700\"")
buildConfigField("String", "productId", "\"182226\"")
manifestPlaceholders(
mapOf(
"APP_NAME" to "@string/app_name", "APP_ICON" to "@mipmap/logo"
)
)
}
create("182261") {
isDefault = true
dimension = flavorDimensionList[0]
buildConfigField("boolean", "PREMIUM", "Boolean.parseBoolean(\"false\")")
buildConfigField("boolean", "is_free", "false")
buildConfigField("boolean", "is_back_cn", "false")
buildConfigField("boolean", "is_ym", "false")
buildConfigField("String", "applicationId", "\"com.yingmao.clash\"")
buildConfigField("String", "service_url", "\"https://app.bazhuayujiasu.cc:8700\"")
buildConfigField("String", "productId", "\"182261\"")
manifestPlaceholders(
mapOf(
"APP_NAME" to "@string/app_name", "APP_ICON" to "@mipmap/logo"
)
)
}
create("182221") {
isDefault = true
dimension = flavorDimensionList[0]
buildConfigField("boolean", "PREMIUM", "Boolean.parseBoolean(\"false\")")
buildConfigField("boolean", "is_free", "false")
buildConfigField("boolean", "is_back_cn", "false")
buildConfigField("boolean", "is_ym", "false")
buildConfigField("String", "applicationId", "\"com.yingmao.clash\"")
buildConfigField("String", "service_url", "\"https://app.bazhuayujiasu.cc:8700\"")
buildConfigField("String", "productId", "\"182221\"")
manifestPlaceholders(
mapOf(
"APP_NAME" to "@string/app_name", "APP_ICON" to "@mipmap/logo"
)
)
}
create("182228") {
isDefault = true
dimension = flavorDimensionList[0]
buildConfigField("boolean", "PREMIUM", "Boolean.parseBoolean(\"false\")")
buildConfigField("boolean", "is_free", "false")
buildConfigField("boolean", "is_back_cn", "false")
buildConfigField("boolean", "is_ym", "false")
buildConfigField("String", "applicationId", "\"com.yingmao.clash\"")
buildConfigField("String", "service_url", "\"https://app.bazhuayujiasu.cc:8700\"")
buildConfigField("String", "productId", "\"182228\"")
manifestPlaceholders(
mapOf(
"APP_NAME" to "@string/app_name", "APP_ICON" to "@mipmap/logo"
)
)
}
create("182253") {
isDefault = true
dimension = flavorDimensionList[0]
buildConfigField("boolean", "PREMIUM", "Boolean.parseBoolean(\"false\")")
buildConfigField("boolean", "is_free", "false")
buildConfigField("boolean", "is_back_cn", "false")
buildConfigField("boolean", "is_ym", "false")
buildConfigField("String", "applicationId", "\"com.yingmao.clash\"")
buildConfigField("String", "service_url", "\"https://app.bazhuayujiasu.cc:8700\"")
buildConfigField("String", "productId", "\"182253\"")
manifestPlaceholders(
mapOf(
"APP_NAME" to "@string/app_name", "APP_ICON" to "@mipmap/logo"
)
)
}
//太子 182265 //太子 182265
@ -633,7 +894,7 @@ subprojects {
buildConfigField("boolean", "is_ym", "true") buildConfigField("boolean", "is_ym", "true")
buildConfigField("boolean", "is_free", "false") buildConfigField("boolean", "is_free", "false")
buildConfigField("String", "applicationId", "\"com.yingmao.clash\"") buildConfigField("String", "applicationId", "\"com.yingmao.clash\"")
// buildConfigField("String", "service_url", "\"https://api.gaogaoshousoft.cc:18001\"") // buildConfigField("String", "service_url", "\"https://api.gaogaoshousoft.cc:8700\"")
buildConfigField("String", "service_url", "\"https://api.otcopusvpn.cc:18008\"") buildConfigField("String", "service_url", "\"https://api.otcopusvpn.cc:18008\"")
buildConfigField("String", "productId", "\"182265\"") buildConfigField("String", "productId", "\"182265\"")
manifestPlaceholders( manifestPlaceholders(
@ -656,8 +917,8 @@ subprojects {
buildConfigField("boolean", "is_ym", "false") buildConfigField("boolean", "is_ym", "false")
buildConfigField("boolean", "is_free", "true") buildConfigField("boolean", "is_free", "true")
buildConfigField("String", "applicationId", "\"com.yingmao.clash\"") buildConfigField("String", "applicationId", "\"com.yingmao.clash\"")
// buildConfigField("String", "service_url", "\"https://api.gaogaoshousoft.cc:18001\"") // buildConfigField("String", "service_url", "\"https://api.gaogaoshousoft.cc:8700\"")
buildConfigField("String", "service_url", "\"https://app.bazhuayujiasu.cc:18001\"") buildConfigField("String", "service_url", "\"https://app.bazhuayujiasu.cc:8700\"")
buildConfigField("String", "productId", "\"22222\"") buildConfigField("String", "productId", "\"22222\"")
manifestPlaceholders( manifestPlaceholders(
mapOf( mapOf(