diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 9449392..f4bd709 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -15,7 +15,7 @@ dependencies { implementation(fileTree(mapOf("dir" to "src/main/libs", "include" to listOf("*.aar")))) implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0") // implementation(files("src\\main\\libs\\Baidu_ocpc_action_2_7_2.aar")) - implementation(files("src\\main\\libs\\OpenInstall.jar")) +// implementation(files("src\\main\\libs\\OpenInstall.jar")) // implementation("com.google.firebase:firebase-crashlytics-buildtools:3.0.2") // implementation(files("src/main/libs/openinstall.jar")) diff --git a/app/src/main/java/com/yingmao/clash/act/ChangeNodeActivity.kt b/app/src/main/java/com/yingmao/clash/act/ChangeNodeActivity.kt index fcc081a..8d65ee9 100644 --- a/app/src/main/java/com/yingmao/clash/act/ChangeNodeActivity.kt +++ b/app/src/main/java/com/yingmao/clash/act/ChangeNodeActivity.kt @@ -38,6 +38,7 @@ import com.yingmao.clash.conf.Conf import com.yingmao.clash.entity.ClashNodebBean import com.yingmao.clash.fragment.NewAccFragment import com.yingmao.clash.fragment.NewAccFragment.Companion.CHECK_NODE_REQUEST_CODE +import com.yingmao.clash.fragment.NewAccFragment.Companion.clashRunning import com.yingmao.clash.fragment.NewAccFragment.Companion.isGlo import com.yingmao.clash.remote.Resource import com.yingmao.clash.util.Utils @@ -126,13 +127,23 @@ class ChangeNodeActivity : BaseActivity(), View.OnClickListener { tvProA.setOnClickListener { - setBackground(ProxyMode.PAC) - MMKV.defaultMMKV().encode(BZYConstants.MMKV_KEY_GLOBAL_MODEL, false) + if(!clashRunning){ + setBackground(ProxyMode.PAC) + MMKV.defaultMMKV().encode(BZYConstants.MMKV_KEY_GLOBAL_MODEL, false) + }else{ + RxToast.info(resources.getString(R.string.closeRunningChoose)) + } + } tvProj.setOnClickListener { - MMKV.defaultMMKV().encode(BZYConstants.MMKV_KEY_GLOBAL_MODEL, true) - setBackground(ProxyMode.GLOBAL) + if(!clashRunning){ + MMKV.defaultMMKV().encode(BZYConstants.MMKV_KEY_GLOBAL_MODEL, true) + setBackground(ProxyMode.GLOBAL) + }else{ + RxToast.info(resources.getString(R.string.closeRunningChoose)) + } + } aiBack.setOnClickListener { @@ -434,7 +445,7 @@ class ChangeNodeActivity : BaseActivity(), View.OnClickListener { } override fun cancelButton() { - doProfile(false) +// doProfile(false) } }) diff --git a/app/src/main/java/com/yingmao/clash/act/LoginActivity.kt b/app/src/main/java/com/yingmao/clash/act/LoginActivity.kt index 60efe5c..7decc0c 100644 --- a/app/src/main/java/com/yingmao/clash/act/LoginActivity.kt +++ b/app/src/main/java/com/yingmao/clash/act/LoginActivity.kt @@ -332,7 +332,7 @@ class LoginActivity : BaseActivity(), View.OnClickListener { } } - private fun initUserAgreementView(textView: TextView) { + private fun initUserAgreementView(userAgreementCB: CheckBox) { val config = resources.configuration val language = config.locale.language if (language.equals("en")) { @@ -346,7 +346,8 @@ class LoginActivity : BaseActivity(), View.OnClickListener { 24, Spannable.SPAN_EXCLUSIVE_INCLUSIVE ) - textView.text = spannableStringBuilder + userAgreementCB.text = spannableStringBuilder + userAgreementCB.isChecked=true val intent = Intent(this@LoginActivity, AgreementAndPrivacyActivity::class.java) intent.putExtra( BZYConstants.EXTRA_KEY_AGREEMENT, @@ -365,7 +366,8 @@ class LoginActivity : BaseActivity(), View.OnClickListener { resources.getString(R.string.AgreeAgreement).length, Spannable.SPAN_EXCLUSIVE_INCLUSIVE ) - textView.text = spannableStringBuilder + userAgreementCB.text = spannableStringBuilder + userAgreementCB.isChecked=true val intent = Intent(this@LoginActivity, AgreementAndPrivacyActivity::class.java) intent.putExtra( BZYConstants.EXTRA_KEY_AGREEMENT, @@ -380,8 +382,8 @@ class LoginActivity : BaseActivity(), View.OnClickListener { resources.getString(R.string.AgreeAgreement).length, Spannable.SPAN_EXCLUSIVE_INCLUSIVE ) - textView.text = spannableStringBuilder - textView.movementMethod = LinkMovementMethod.getInstance() + userAgreementCB.text = spannableStringBuilder + userAgreementCB.movementMethod = LinkMovementMethod.getInstance() } else { val spannableStringBuilder = SpannableStringBuilder(resources.getString(R.string.AgreeAgreement)) @@ -389,11 +391,12 @@ class LoginActivity : BaseActivity(), View.OnClickListener { override fun onClick(view: View) { spannableStringBuilder.setSpan( null, - 2, 8, + 13, Spannable.SPAN_EXCLUSIVE_INCLUSIVE ) - textView.text = spannableStringBuilder + userAgreementCB.text = spannableStringBuilder + userAgreementCB.isChecked=true val intent = Intent(this@LoginActivity, AgreementAndPrivacyActivity::class.java) intent.putExtra( BZYConstants.EXTRA_KEY_AGREEMENT, @@ -402,17 +405,18 @@ class LoginActivity : BaseActivity(), View.OnClickListener { startActivity(intent) } } - spannableStringBuilder.setSpan(clickableSpan, 2, 8, Spannable.SPAN_EXCLUSIVE_INCLUSIVE) + spannableStringBuilder.setSpan(clickableSpan, 8, 13, Spannable.SPAN_EXCLUSIVE_INCLUSIVE) val privacyClickableSpan: MyClickableSpan = object : MyClickableSpan() { override fun onClick(view: View) { spannableStringBuilder.setSpan( null, - 9, - 15, + 14, + resources.getString(R.string.AgreeAgreement).length, Spannable.SPAN_EXCLUSIVE_INCLUSIVE ) - textView.text = spannableStringBuilder + userAgreementCB.text = spannableStringBuilder + userAgreementCB.isChecked=true val intent = Intent(this@LoginActivity, AgreementAndPrivacyActivity::class.java) intent.putExtra( BZYConstants.EXTRA_KEY_AGREEMENT, @@ -423,12 +427,12 @@ class LoginActivity : BaseActivity(), View.OnClickListener { } spannableStringBuilder.setSpan( privacyClickableSpan, - 9, - 15, + 14, + resources.getString(R.string.AgreeAgreement).length, Spannable.SPAN_EXCLUSIVE_INCLUSIVE ) - textView.text = spannableStringBuilder - textView.movementMethod = LinkMovementMethod.getInstance() + userAgreementCB.text = spannableStringBuilder + userAgreementCB.movementMethod = LinkMovementMethod.getInstance() } } diff --git a/app/src/main/java/com/yingmao/clash/act/NewMainActivity.kt b/app/src/main/java/com/yingmao/clash/act/NewMainActivity.kt index d6b0da2..faefcfe 100644 --- a/app/src/main/java/com/yingmao/clash/act/NewMainActivity.kt +++ b/app/src/main/java/com/yingmao/clash/act/NewMainActivity.kt @@ -1217,5 +1217,6 @@ class NewMainActivity : BaseActivity() { } } + clashBinder?.setLogObserver(null) } } \ No newline at end of file diff --git a/app/src/main/java/com/yingmao/clash/fragment/NewAccFragment.kt b/app/src/main/java/com/yingmao/clash/fragment/NewAccFragment.kt index a739a69..c34c24e 100644 --- a/app/src/main/java/com/yingmao/clash/fragment/NewAccFragment.kt +++ b/app/src/main/java/com/yingmao/clash/fragment/NewAccFragment.kt @@ -75,6 +75,17 @@ open class NewAccFragment : BaseFragment(), CoroutineScope by CoroutineScope(Dis const val CLASH_STOP = 33 var isGlo: Boolean = false var clashRunning: Boolean = false + var clashRec: BroadcastReceiver? = null + fun cleanRec(context: Context) { + clashRec?.let { + try { + context.unregisterReceiver(clashRec) + }catch (e: Exception){ + e.printStackTrace() + } + + } + } } lateinit var accelerateViewModel: AccelerateViewModel @@ -128,13 +139,14 @@ open class NewAccFragment : BaseFragment(), CoroutineScope by CoroutineScope(Dis intentFilter.addAction(Intents.ACTION_CLASH_REQUEST_STOP) intentFilter.addAction(Intents.ACTION_Glo_Mode) intentFilter.addAction(Intents.ACTION_OVERRIDE_CHANGED) + clashRec=ClashBP() if (Build.VERSION.SDK_INT >= 34 && requireContext().applicationInfo.targetSdkVersion >= 34) { requireContext().registerReceiver( - ClashBP(), intentFilter, Context.RECEIVER_EXPORTED + clashRec, intentFilter, Context.RECEIVER_EXPORTED ) } else { requireContext().registerReceiver( - ClashBP(), intentFilter + clashRec, intentFilter ) } } @@ -721,4 +733,8 @@ open class NewAccFragment : BaseFragment(), CoroutineScope by CoroutineScope(Dis newMain.goBackupRechargeWeb() } } + override fun onDestroy() { + super.onDestroy() + cleanRec(requireContext()) + } } \ No newline at end of file diff --git a/app/src/main/libs/common.aar b/app/src/main/libs/common.aar index e794d8b..453757c 100644 Binary files a/app/src/main/libs/common.aar and b/app/src/main/libs/common.aar differ diff --git a/app/src/main/libs/core.aar b/app/src/main/libs/core.aar index 6d7babc..3feb490 100644 Binary files a/app/src/main/libs/core.aar and b/app/src/main/libs/core.aar differ diff --git a/app/src/main/libs/hideapi.aar b/app/src/main/libs/hideapi.aar index ee463dd..1347c7d 100644 Binary files a/app/src/main/libs/hideapi.aar and b/app/src/main/libs/hideapi.aar differ diff --git a/app/src/main/libs/service.aar b/app/src/main/libs/service.aar index 02efbb8..e0a1b40 100644 Binary files a/app/src/main/libs/service.aar and b/app/src/main/libs/service.aar differ diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml index 7f449fa..ed71c90 100644 --- a/app/src/main/res/values-en/strings.xml +++ b/app/src/main/res/values-en/strings.xml @@ -421,5 +421,5 @@ In order to implement and strengthen awareness of personal information security Order Date Membership Validity Period: Gift - + Please disconnect and switch modes \ No newline at end of file diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml index 2fe187b..c1bfbdd 100644 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -405,13 +405,13 @@ 請勾選復選框表明你同意刪除賬號 - Web Payment - Order Number: - DayVip - HourVip - Payment Methods: - Order Date - Membership Validity Period: - Gift - + 網頁付款 + 訂單號碼: + 天Vip + 小时Vip + 付款方式: + 訂單日期 + 會員有效期限: + 禮品 + 請斷開連線後在進行模式切換 \ No newline at end of file diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 5d9f270..4883ce2 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -403,13 +403,13 @@ 請勾選復選框表明你同意刪除賬號 - Web Payment - Order Number: - DayVip - HourVip - Payment Methods: - Order Date - Membership Validity Period: - Gift - + 網頁付款 + 訂單號碼: + 天Vip + 小时Vip + 付款方式: + 訂單日期 + 會員有效期限: + 禮品 + 請斷開連線後在進行模式切換 \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index dd19e26..85c03a6 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -130,7 +130,7 @@ 登录失败 检查登录失败 登录异常 - 同意《隐私协议》和《用户协议》 + 我已知晓并同意《隐私协议》和《用户协议》 请您充分阅读并理解《隐私政策》和《用户协议》我们非常重视您的隐私和个人信息,在您使用过程中,我们会收集部分个人信息。例如,会申请设备信息等。您可以点击《用户协议》和《隐私政策》查看详细内容。您可以选择“同意”继续使用我们的服务,或者选择“不同意”退出。 请仔细阅读并同意《隐私协议》和《用户协议》 小提示:自动注册初始密码为 123456,手动注册请忽略 @@ -437,4 +437,5 @@ 订单日期 会员有效期: 赠送 + 请断开连接后在进行模式切换 \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index 71600b6..425f045 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -93,7 +93,7 @@ subprojects { } productFlavors { flavorDimensions("feature") - create("8279") { + create("5555") { isDefault = true dimension = flavorDimensionList[0] buildConfigField("boolean", "PREMIUM", "Boolean.parseBoolean(\"false\")") @@ -101,7 +101,7 @@ subprojects { buildConfigField("boolean", "is_back_cn", "false") buildConfigField("String", "applicationId", "\"com.jsq.wufu\"") buildConfigField("String", "service_url", "\"https://api.yijianlianjsq.com/\"") - buildConfigField("String", "productId", "\"8279\"") + buildConfigField("String", "productId", "\"5555\"") manifestPlaceholders( mapOf( "APP_NAME" to "@string/wf", @@ -112,7 +112,7 @@ subprojects { } sourceSets { - getByName("8279") { + getByName("5555") { java.srcDirs("src/foss/java") } }