parent
6975284835
commit
cb9217cea8
|
|
@ -15,7 +15,7 @@ dependencies {
|
||||||
implementation(fileTree(mapOf("dir" to "src/main/libs", "include" to listOf("*.aar"))))
|
implementation(fileTree(mapOf("dir" to "src/main/libs", "include" to listOf("*.aar"))))
|
||||||
implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0")
|
implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0")
|
||||||
// implementation(files("src\\main\\libs\\Baidu_ocpc_action_2_7_2.aar"))
|
// 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("com.google.firebase:firebase-crashlytics-buildtools:3.0.2")
|
||||||
// implementation(files("src/main/libs/openinstall.jar"))
|
// implementation(files("src/main/libs/openinstall.jar"))
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,7 @@ import com.yingmao.clash.conf.Conf
|
||||||
import com.yingmao.clash.entity.ClashNodebBean
|
import com.yingmao.clash.entity.ClashNodebBean
|
||||||
import com.yingmao.clash.fragment.NewAccFragment
|
import com.yingmao.clash.fragment.NewAccFragment
|
||||||
import com.yingmao.clash.fragment.NewAccFragment.Companion.CHECK_NODE_REQUEST_CODE
|
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.fragment.NewAccFragment.Companion.isGlo
|
||||||
import com.yingmao.clash.remote.Resource
|
import com.yingmao.clash.remote.Resource
|
||||||
import com.yingmao.clash.util.Utils
|
import com.yingmao.clash.util.Utils
|
||||||
|
|
@ -126,13 +127,23 @@ class ChangeNodeActivity : BaseActivity(), View.OnClickListener {
|
||||||
|
|
||||||
|
|
||||||
tvProA.setOnClickListener {
|
tvProA.setOnClickListener {
|
||||||
|
if(!clashRunning){
|
||||||
setBackground(ProxyMode.PAC)
|
setBackground(ProxyMode.PAC)
|
||||||
MMKV.defaultMMKV().encode(BZYConstants.MMKV_KEY_GLOBAL_MODEL, false)
|
MMKV.defaultMMKV().encode(BZYConstants.MMKV_KEY_GLOBAL_MODEL, false)
|
||||||
|
}else{
|
||||||
|
RxToast.info(resources.getString(R.string.closeRunningChoose))
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
tvProj.setOnClickListener {
|
tvProj.setOnClickListener {
|
||||||
|
if(!clashRunning){
|
||||||
MMKV.defaultMMKV().encode(BZYConstants.MMKV_KEY_GLOBAL_MODEL, true)
|
MMKV.defaultMMKV().encode(BZYConstants.MMKV_KEY_GLOBAL_MODEL, true)
|
||||||
setBackground(ProxyMode.GLOBAL)
|
setBackground(ProxyMode.GLOBAL)
|
||||||
|
}else{
|
||||||
|
RxToast.info(resources.getString(R.string.closeRunningChoose))
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
aiBack.setOnClickListener {
|
aiBack.setOnClickListener {
|
||||||
|
|
@ -434,7 +445,7 @@ class ChangeNodeActivity : BaseActivity(), View.OnClickListener {
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun cancelButton() {
|
override fun cancelButton() {
|
||||||
doProfile(false)
|
// doProfile(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -332,7 +332,7 @@ class LoginActivity : BaseActivity(), View.OnClickListener {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun initUserAgreementView(textView: TextView) {
|
private fun initUserAgreementView(userAgreementCB: CheckBox) {
|
||||||
val config = resources.configuration
|
val config = resources.configuration
|
||||||
val language = config.locale.language
|
val language = config.locale.language
|
||||||
if (language.equals("en")) {
|
if (language.equals("en")) {
|
||||||
|
|
@ -346,7 +346,8 @@ class LoginActivity : BaseActivity(), View.OnClickListener {
|
||||||
24,
|
24,
|
||||||
Spannable.SPAN_EXCLUSIVE_INCLUSIVE
|
Spannable.SPAN_EXCLUSIVE_INCLUSIVE
|
||||||
)
|
)
|
||||||
textView.text = spannableStringBuilder
|
userAgreementCB.text = spannableStringBuilder
|
||||||
|
userAgreementCB.isChecked=true
|
||||||
val intent = Intent(this@LoginActivity, AgreementAndPrivacyActivity::class.java)
|
val intent = Intent(this@LoginActivity, AgreementAndPrivacyActivity::class.java)
|
||||||
intent.putExtra(
|
intent.putExtra(
|
||||||
BZYConstants.EXTRA_KEY_AGREEMENT,
|
BZYConstants.EXTRA_KEY_AGREEMENT,
|
||||||
|
|
@ -365,7 +366,8 @@ class LoginActivity : BaseActivity(), View.OnClickListener {
|
||||||
resources.getString(R.string.AgreeAgreement).length,
|
resources.getString(R.string.AgreeAgreement).length,
|
||||||
Spannable.SPAN_EXCLUSIVE_INCLUSIVE
|
Spannable.SPAN_EXCLUSIVE_INCLUSIVE
|
||||||
)
|
)
|
||||||
textView.text = spannableStringBuilder
|
userAgreementCB.text = spannableStringBuilder
|
||||||
|
userAgreementCB.isChecked=true
|
||||||
val intent = Intent(this@LoginActivity, AgreementAndPrivacyActivity::class.java)
|
val intent = Intent(this@LoginActivity, AgreementAndPrivacyActivity::class.java)
|
||||||
intent.putExtra(
|
intent.putExtra(
|
||||||
BZYConstants.EXTRA_KEY_AGREEMENT,
|
BZYConstants.EXTRA_KEY_AGREEMENT,
|
||||||
|
|
@ -380,8 +382,8 @@ class LoginActivity : BaseActivity(), View.OnClickListener {
|
||||||
resources.getString(R.string.AgreeAgreement).length,
|
resources.getString(R.string.AgreeAgreement).length,
|
||||||
Spannable.SPAN_EXCLUSIVE_INCLUSIVE
|
Spannable.SPAN_EXCLUSIVE_INCLUSIVE
|
||||||
)
|
)
|
||||||
textView.text = spannableStringBuilder
|
userAgreementCB.text = spannableStringBuilder
|
||||||
textView.movementMethod = LinkMovementMethod.getInstance()
|
userAgreementCB.movementMethod = LinkMovementMethod.getInstance()
|
||||||
} else {
|
} else {
|
||||||
val spannableStringBuilder =
|
val spannableStringBuilder =
|
||||||
SpannableStringBuilder(resources.getString(R.string.AgreeAgreement))
|
SpannableStringBuilder(resources.getString(R.string.AgreeAgreement))
|
||||||
|
|
@ -389,11 +391,12 @@ class LoginActivity : BaseActivity(), View.OnClickListener {
|
||||||
override fun onClick(view: View) {
|
override fun onClick(view: View) {
|
||||||
spannableStringBuilder.setSpan(
|
spannableStringBuilder.setSpan(
|
||||||
null,
|
null,
|
||||||
2,
|
|
||||||
8,
|
8,
|
||||||
|
13,
|
||||||
Spannable.SPAN_EXCLUSIVE_INCLUSIVE
|
Spannable.SPAN_EXCLUSIVE_INCLUSIVE
|
||||||
)
|
)
|
||||||
textView.text = spannableStringBuilder
|
userAgreementCB.text = spannableStringBuilder
|
||||||
|
userAgreementCB.isChecked=true
|
||||||
val intent = Intent(this@LoginActivity, AgreementAndPrivacyActivity::class.java)
|
val intent = Intent(this@LoginActivity, AgreementAndPrivacyActivity::class.java)
|
||||||
intent.putExtra(
|
intent.putExtra(
|
||||||
BZYConstants.EXTRA_KEY_AGREEMENT,
|
BZYConstants.EXTRA_KEY_AGREEMENT,
|
||||||
|
|
@ -402,17 +405,18 @@ class LoginActivity : BaseActivity(), View.OnClickListener {
|
||||||
startActivity(intent)
|
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() {
|
val privacyClickableSpan: MyClickableSpan = object : MyClickableSpan() {
|
||||||
override fun onClick(view: View) {
|
override fun onClick(view: View) {
|
||||||
spannableStringBuilder.setSpan(
|
spannableStringBuilder.setSpan(
|
||||||
null,
|
null,
|
||||||
9,
|
14,
|
||||||
15,
|
resources.getString(R.string.AgreeAgreement).length,
|
||||||
Spannable.SPAN_EXCLUSIVE_INCLUSIVE
|
Spannable.SPAN_EXCLUSIVE_INCLUSIVE
|
||||||
)
|
)
|
||||||
textView.text = spannableStringBuilder
|
userAgreementCB.text = spannableStringBuilder
|
||||||
|
userAgreementCB.isChecked=true
|
||||||
val intent = Intent(this@LoginActivity, AgreementAndPrivacyActivity::class.java)
|
val intent = Intent(this@LoginActivity, AgreementAndPrivacyActivity::class.java)
|
||||||
intent.putExtra(
|
intent.putExtra(
|
||||||
BZYConstants.EXTRA_KEY_AGREEMENT,
|
BZYConstants.EXTRA_KEY_AGREEMENT,
|
||||||
|
|
@ -423,12 +427,12 @@ class LoginActivity : BaseActivity(), View.OnClickListener {
|
||||||
}
|
}
|
||||||
spannableStringBuilder.setSpan(
|
spannableStringBuilder.setSpan(
|
||||||
privacyClickableSpan,
|
privacyClickableSpan,
|
||||||
9,
|
14,
|
||||||
15,
|
resources.getString(R.string.AgreeAgreement).length,
|
||||||
Spannable.SPAN_EXCLUSIVE_INCLUSIVE
|
Spannable.SPAN_EXCLUSIVE_INCLUSIVE
|
||||||
)
|
)
|
||||||
textView.text = spannableStringBuilder
|
userAgreementCB.text = spannableStringBuilder
|
||||||
textView.movementMethod = LinkMovementMethod.getInstance()
|
userAgreementCB.movementMethod = LinkMovementMethod.getInstance()
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1217,5 +1217,6 @@ class NewMainActivity : BaseActivity() {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
clashBinder?.setLogObserver(null)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -75,6 +75,17 @@ open class NewAccFragment : BaseFragment(), CoroutineScope by CoroutineScope(Dis
|
||||||
const val CLASH_STOP = 33
|
const val CLASH_STOP = 33
|
||||||
var isGlo: Boolean = false
|
var isGlo: Boolean = false
|
||||||
var clashRunning: 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
|
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_CLASH_REQUEST_STOP)
|
||||||
intentFilter.addAction(Intents.ACTION_Glo_Mode)
|
intentFilter.addAction(Intents.ACTION_Glo_Mode)
|
||||||
intentFilter.addAction(Intents.ACTION_OVERRIDE_CHANGED)
|
intentFilter.addAction(Intents.ACTION_OVERRIDE_CHANGED)
|
||||||
|
clashRec=ClashBP()
|
||||||
if (Build.VERSION.SDK_INT >= 34 && requireContext().applicationInfo.targetSdkVersion >= 34) {
|
if (Build.VERSION.SDK_INT >= 34 && requireContext().applicationInfo.targetSdkVersion >= 34) {
|
||||||
requireContext().registerReceiver(
|
requireContext().registerReceiver(
|
||||||
ClashBP(), intentFilter, Context.RECEIVER_EXPORTED
|
clashRec, intentFilter, Context.RECEIVER_EXPORTED
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
requireContext().registerReceiver(
|
requireContext().registerReceiver(
|
||||||
ClashBP(), intentFilter
|
clashRec, intentFilter
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -721,4 +733,8 @@ open class NewAccFragment : BaseFragment(), CoroutineScope by CoroutineScope(Dis
|
||||||
newMain.goBackupRechargeWeb()
|
newMain.goBackupRechargeWeb()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
override fun onDestroy() {
|
||||||
|
super.onDestroy()
|
||||||
|
cleanRec(requireContext())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -421,5 +421,5 @@ In order to implement and strengthen awareness of personal information security
|
||||||
<string name="OrderDate">Order Date</string>
|
<string name="OrderDate">Order Date</string>
|
||||||
<string name="MembershipValidityPeriod">Membership Validity Period:</string>
|
<string name="MembershipValidityPeriod">Membership Validity Period:</string>
|
||||||
<string name="Gift">Gift</string>
|
<string name="Gift">Gift</string>
|
||||||
|
<string name="closeRunningChoose">Please disconnect and switch modes</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
@ -405,13 +405,13 @@
|
||||||
<string name="checkStr">請勾選復選框表明你同意刪除賬號</string>
|
<string name="checkStr">請勾選復選框表明你同意刪除賬號</string>
|
||||||
|
|
||||||
|
|
||||||
<string name="WebPayment">Web Payment</string>
|
<string name="WebPayment">網頁付款</string>
|
||||||
<string name="OrderNumber">Order Number:</string>
|
<string name="OrderNumber">訂單號碼:</string>
|
||||||
<string name="DayVip">DayVip</string>
|
<string name="DayVip">天Vip</string>
|
||||||
<string name="hourVip">HourVip</string>
|
<string name="hourVip">小时Vip</string>
|
||||||
<string name="PaymentMethods">Payment Methods:</string>
|
<string name="PaymentMethods">付款方式:</string>
|
||||||
<string name="OrderDate">Order Date</string>
|
<string name="OrderDate">訂單日期</string>
|
||||||
<string name="MembershipValidityPeriod">Membership Validity Period:</string>
|
<string name="MembershipValidityPeriod">會員有效期限:</string>
|
||||||
<string name="Gift">Gift</string>
|
<string name="Gift">禮品</string>
|
||||||
|
<string name="closeRunningChoose">請斷開連線後在進行模式切換</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
@ -403,13 +403,13 @@
|
||||||
<string name="checkStr">請勾選復選框表明你同意刪除賬號</string>
|
<string name="checkStr">請勾選復選框表明你同意刪除賬號</string>
|
||||||
|
|
||||||
|
|
||||||
<string name="WebPayment">Web Payment</string>
|
<string name="WebPayment">網頁付款</string>
|
||||||
<string name="OrderNumber">Order Number:</string>
|
<string name="OrderNumber">訂單號碼:</string>
|
||||||
<string name="DayVip">DayVip</string>
|
<string name="DayVip">天Vip</string>
|
||||||
<string name="hourVip">HourVip</string>
|
<string name="hourVip">小时Vip</string>
|
||||||
<string name="PaymentMethods">Payment Methods:</string>
|
<string name="PaymentMethods">付款方式:</string>
|
||||||
<string name="OrderDate">Order Date</string>
|
<string name="OrderDate">訂單日期</string>
|
||||||
<string name="MembershipValidityPeriod">Membership Validity Period:</string>
|
<string name="MembershipValidityPeriod">會員有效期限:</string>
|
||||||
<string name="Gift">Gift</string>
|
<string name="Gift">禮品</string>
|
||||||
|
<string name="closeRunningChoose">請斷開連線後在進行模式切換</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
@ -130,7 +130,7 @@
|
||||||
<string name="LoginFailed">登录失败</string>
|
<string name="LoginFailed">登录失败</string>
|
||||||
<string name="CheckLoginFailure">检查登录失败</string>
|
<string name="CheckLoginFailure">检查登录失败</string>
|
||||||
<string name="LoginException">登录异常</string>
|
<string name="LoginException">登录异常</string>
|
||||||
<string name="AgreeAgreement">同意《隐私协议》和《用户协议》</string>
|
<string name="AgreeAgreement">我已知晓并同意《隐私协议》和《用户协议》</string>
|
||||||
<string name="AgreeAgreement2">请您充分阅读并理解《隐私政策》和《用户协议》我们非常重视您的隐私和个人信息,在您使用过程中,我们会收集部分个人信息。例如,会申请设备信息等。您可以点击《用户协议》和《隐私政策》查看详细内容。您可以选择“同意”继续使用我们的服务,或者选择“不同意”退出。</string>
|
<string name="AgreeAgreement2">请您充分阅读并理解《隐私政策》和《用户协议》我们非常重视您的隐私和个人信息,在您使用过程中,我们会收集部分个人信息。例如,会申请设备信息等。您可以点击《用户协议》和《隐私政策》查看详细内容。您可以选择“同意”继续使用我们的服务,或者选择“不同意”退出。</string>
|
||||||
<string name="ReadAgreement">请仔细阅读并同意《隐私协议》和《用户协议》</string>
|
<string name="ReadAgreement">请仔细阅读并同意《隐私协议》和《用户协议》</string>
|
||||||
<string name="loginTips">小提示:自动注册初始密码为 123456,手动注册请忽略</string>
|
<string name="loginTips">小提示:自动注册初始密码为 123456,手动注册请忽略</string>
|
||||||
|
|
@ -437,4 +437,5 @@
|
||||||
<string name="OrderDate">订单日期</string>
|
<string name="OrderDate">订单日期</string>
|
||||||
<string name="MembershipValidityPeriod">会员有效期:</string>
|
<string name="MembershipValidityPeriod">会员有效期:</string>
|
||||||
<string name="Gift">赠送</string>
|
<string name="Gift">赠送</string>
|
||||||
|
<string name="closeRunningChoose">请断开连接后在进行模式切换</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
@ -93,7 +93,7 @@ subprojects {
|
||||||
}
|
}
|
||||||
productFlavors {
|
productFlavors {
|
||||||
flavorDimensions("feature")
|
flavorDimensions("feature")
|
||||||
create("8279") {
|
create("5555") {
|
||||||
isDefault = true
|
isDefault = true
|
||||||
dimension = flavorDimensionList[0]
|
dimension = flavorDimensionList[0]
|
||||||
buildConfigField("boolean", "PREMIUM", "Boolean.parseBoolean(\"false\")")
|
buildConfigField("boolean", "PREMIUM", "Boolean.parseBoolean(\"false\")")
|
||||||
|
|
@ -101,7 +101,7 @@ subprojects {
|
||||||
buildConfigField("boolean", "is_back_cn", "false")
|
buildConfigField("boolean", "is_back_cn", "false")
|
||||||
buildConfigField("String", "applicationId", "\"com.jsq.wufu\"")
|
buildConfigField("String", "applicationId", "\"com.jsq.wufu\"")
|
||||||
buildConfigField("String", "service_url", "\"https://api.yijianlianjsq.com/\"")
|
buildConfigField("String", "service_url", "\"https://api.yijianlianjsq.com/\"")
|
||||||
buildConfigField("String", "productId", "\"8279\"")
|
buildConfigField("String", "productId", "\"5555\"")
|
||||||
manifestPlaceholders(
|
manifestPlaceholders(
|
||||||
mapOf(
|
mapOf(
|
||||||
"APP_NAME" to "@string/wf",
|
"APP_NAME" to "@string/wf",
|
||||||
|
|
@ -112,7 +112,7 @@ subprojects {
|
||||||
|
|
||||||
}
|
}
|
||||||
sourceSets {
|
sourceSets {
|
||||||
getByName("8279") {
|
getByName("5555") {
|
||||||
java.srcDirs("src/foss/java")
|
java.srcDirs("src/foss/java")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue