diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 35c9d6e..bf36568 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -29,7 +29,8 @@ - + (android.R.id.content).getChildAt(0)) initView() } diff --git a/app/src/main/java/com/yingmao/clash/act/ForGetPwdActivity.kt b/app/src/main/java/com/yingmao/clash/act/ForGetPwdActivity.kt index 7c3cfc2..5d5081f 100644 --- a/app/src/main/java/com/yingmao/clash/act/ForGetPwdActivity.kt +++ b/app/src/main/java/com/yingmao/clash/act/ForGetPwdActivity.kt @@ -13,6 +13,7 @@ import android.widget.ImageView import android.widget.SeekBar import android.widget.TextView import androidx.appcompat.app.AppCompatActivity +import androidx.appcompat.widget.AppCompatImageView import androidx.lifecycle.ViewModelProvider import com.yingmao.clash.R import com.yingmao.clash.base.BaseActivity @@ -28,7 +29,7 @@ import java.util.Timer import java.util.TimerTask -class ForGetPwdActivity : BaseNotTitleActivity(), SeekBar.OnSeekBarChangeListener, +class ForGetPwdActivity : BaseActivity(), SeekBar.OnSeekBarChangeListener, CompoundButton.OnCheckedChangeListener { lateinit var seekBar: SeekBar @@ -45,7 +46,6 @@ class ForGetPwdActivity : BaseNotTitleActivity(), SeekBar.OnSeekBarChangeListene override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_forget_pwd) - showBack() setupUI(findViewById(android.R.id.content).getChildAt(0)) initView() @@ -92,9 +92,9 @@ class ForGetPwdActivity : BaseNotTitleActivity(), SeekBar.OnSeekBarChangeListene } } -// findViewById(R.id.iv_back).setOnClickListener { -// onBackPressed() -// } + findViewById(R.id.aiBack).setOnClickListener { + finish() + } } override fun httpSuccess(httpStatus: HttpStatus.Success) { diff --git a/app/src/main/java/com/yingmao/clash/act/MemberRechargeActivity.kt b/app/src/main/java/com/yingmao/clash/act/MemberRechargeActivity.kt index d39d215..fef8043 100644 --- a/app/src/main/java/com/yingmao/clash/act/MemberRechargeActivity.kt +++ b/app/src/main/java/com/yingmao/clash/act/MemberRechargeActivity.kt @@ -51,7 +51,9 @@ import com.yingmao.clash.util.PayUtils import com.yingmao.clash.util.ThreadUtils import com.yingmao.clash.view.RxToast import com.yingmao.clash.view.dialog.DialogDoMainChoose +import com.yingmao.clash.view.dialog.PayConfirmDialog import com.yingmao.clash.view.dialog.RxDialogShapeLoading +import com.yingmao.clash.view.dialog.SplashDialog import kotlinx.coroutines.DelicateCoroutinesApi import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.MainScope @@ -168,8 +170,23 @@ class MemberRechargeActivity : BaseActivity() { RxToast.info(resources.getString(R.string.selectRechargeAmount)) return@setOnClickListener } - viewModel.pay("1", selectedGrade!!, "pointCard") + if(BuildConfig.productId=="9788"){ + val payConfirm = + PayConfirmDialog(this) + payConfirm.showDialog(this@MemberRechargeActivity) + payConfirm.setOnDialogClickListener(object : PayConfirmDialog.ActivityLinkListener{ + override fun onFinishClickListener() { + viewModel.pay("1", selectedGrade!!, "pointCard") + payConfirm.cancel() + } + override fun onCancelClickListener() { + payConfirm.cancel() + } + }) + }else{ + viewModel.pay("1", selectedGrade!!, "pointCard") + } } } diff --git a/app/src/main/java/com/yingmao/clash/view/dialog/PayConfirmDialog.java b/app/src/main/java/com/yingmao/clash/view/dialog/PayConfirmDialog.java new file mode 100644 index 0000000..c2b65de --- /dev/null +++ b/app/src/main/java/com/yingmao/clash/view/dialog/PayConfirmDialog.java @@ -0,0 +1,69 @@ +package com.yingmao.clash.view.dialog; + +import android.annotation.SuppressLint; +import android.app.Dialog; +import android.content.Context; +import android.content.Intent; +import android.view.Gravity; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; +import android.widget.TextView; + +import com.yingmao.clash.R; +import com.yingmao.clash.act.AgreementAndPrivacyActivity; +import com.yingmao.clash.conf.BZYConstants; + +public class PayConfirmDialog extends Dialog { + + public PayConfirmDialog(Context context) { + super(context); + setContentView(R.layout.pay_confirm_layout); + //设置点击布局外则Dialog消失 + setCanceledOnTouchOutside(false); + } + @SuppressLint("SetTextI18n") + public void showDialog(Context context) { + Window window = getWindow(); + //设置弹窗动画 + assert window != null; + window.setWindowAnimations(R.style.style_dialog); + //设置Dialog背景色 + window.setBackgroundDrawableResource(R.color.colorTransparent); + WindowManager.LayoutParams wl = window.getAttributes(); + //设置弹窗位置 + wl.gravity = Gravity.CENTER; + window.setAttributes(wl); + show(); + TextView noAgree=findViewById(R.id.tv_pay_cancle); + TextView agree=findViewById(R.id.tv_pay_finish); + noAgree.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if(activityLinkListener!=null){ + activityLinkListener.onCancelClickListener(); + } + } + }); + agree.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if(activityLinkListener!=null){ + activityLinkListener.onFinishClickListener(); + } + } + }); + + } + /********************** 回调 ************************/ + private ActivityLinkListener activityLinkListener; + + public void setOnDialogClickListener(ActivityLinkListener activityLinkListener){ + this.activityLinkListener = activityLinkListener; + } + + public interface ActivityLinkListener{ + void onFinishClickListener(); + void onCancelClickListener(); + } +} diff --git a/app/src/main/java/com/yingmao/clash/webview/CustomerServiceWebView.kt b/app/src/main/java/com/yingmao/clash/webview/CustomerServiceWebView.kt index 9b13f26..1aea100 100644 --- a/app/src/main/java/com/yingmao/clash/webview/CustomerServiceWebView.kt +++ b/app/src/main/java/com/yingmao/clash/webview/CustomerServiceWebView.kt @@ -1,17 +1,23 @@ package com.yingmao.clash.webview import android.annotation.SuppressLint +import android.content.ActivityNotFoundException +import android.content.Intent import android.graphics.Rect +import android.net.Uri import android.os.Bundle import android.text.TextUtils import android.view.View import android.view.ViewTreeObserver.OnGlobalLayoutListener +import android.webkit.ValueCallback +import android.webkit.WebChromeClient import android.webkit.WebSettings import android.webkit.WebView import android.webkit.WebViewClient import android.widget.EditText import android.widget.LinearLayout import android.widget.ScrollView +import android.widget.Toast import androidx.appcompat.widget.AppCompatImageView import androidx.constraintlayout.widget.ConstraintLayout import androidx.lifecycle.ViewModelProvider @@ -31,6 +37,7 @@ class CustomerServiceWebView:BaseActivity() { private lateinit var rootView: LinearLayout private lateinit var webViewVM: WebViewAtyVM private var customerServiceHost = "" +// private var fileChooserCallback: ValueCallback>? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -59,6 +66,26 @@ class CustomerServiceWebView:BaseActivity() { } } } +// csWebView.webChromeClient = object : WebChromeClient() { +// override fun onShowFileChooser( +// webView: WebView?, +// filePathCallback: ValueCallback>, +// fileChooserParams: FileChooserParams +// ): Boolean { +// fileChooserCallback?.onReceiveValue(null) +// fileChooserCallback = filePathCallback +// +// val intent = fileChooserParams.createIntent() +// try { +// startActivityForResult(intent, 1001) +// } catch (e: ActivityNotFoundException) { +// fileChooserCallback = null +// Toast.makeText(this@CustomerServiceWebView, "无法打开文件选择器", Toast.LENGTH_SHORT).show() +// return false +// } +// return true +// } +// } getCustomerServiceUrl() } @@ -120,4 +147,16 @@ class CustomerServiceWebView:BaseActivity() { csWebView=findViewById(R.id.csWebView) rootView=findViewById(R.id.root_view) } +// override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { +// super.onActivityResult(requestCode, resultCode, data) +// if (requestCode == 1001) { +// val result = +// if (resultCode == RESULT_OK && data != null) WebChromeClient.FileChooserParams.parseResult(resultCode, data) +// else null +// fileChooserCallback?.onReceiveValue(result) +// fileChooserCallback = null +// } else { +// super.onActivityResult(requestCode, resultCode, data) +// } +// } } \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_mode_black.xml b/app/src/main/res/drawable/ic_mode_black.xml new file mode 100644 index 0000000..55faf49 --- /dev/null +++ b/app/src/main/res/drawable/ic_mode_black.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/layout/activity_band_phone.xml b/app/src/main/res/layout/activity_band_phone.xml index 5f07329..755320f 100644 --- a/app/src/main/res/layout/activity_band_phone.xml +++ b/app/src/main/res/layout/activity_band_phone.xml @@ -3,7 +3,6 @@ android:layout_width="match_parent" android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto" - android:background="@drawable/homeact_linea_bg" android:orientation="vertical" > @@ -20,7 +19,7 @@ android:id="@+id/aiBack" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:src="@drawable/ic_mode_back" + android:src="@drawable/ic_mode_black" android:padding="5dp" android:layout_marginStart="15dp" app:layout_constraintStart_toStartOf="parent" @@ -37,7 +36,7 @@ android:layout_height="wrap_content" android:layout_marginTop="54dp" android:text="@string/BindAccount" - android:textColor="#4072FE" + android:textColor="#000000" android:textSize="@dimen/layout_login_welcome_textsize" android:textStyle="bold" /> @@ -49,7 +48,7 @@ android:layout_height="wrap_content" android:layout_marginTop="@dimen/layout_login_username_title_text_top_margin" android:text="@string/phone_number" - android:textColor="#4F4F4F" + android:textColor="#000000" android:textSize="13sp" /> @@ -83,7 +82,7 @@ android:layout_height="wrap_content" android:layout_marginTop="@dimen/layout_login_pwd_title_text_top_margin" android:text="@string/sms_code" - android:textColor="#4F4F4F" + android:textColor="#000000" android:textSize="13sp" /> diff --git a/app/src/main/res/layout/activity_change_pwd.xml b/app/src/main/res/layout/activity_change_pwd.xml index 7320626..989854d 100644 --- a/app/src/main/res/layout/activity_change_pwd.xml +++ b/app/src/main/res/layout/activity_change_pwd.xml @@ -3,7 +3,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="@drawable/homeact_linea_bg"> + > @@ -59,7 +59,7 @@ android:maxLines="1" android:textColor="#4F4F4F" android:textSize="@dimen/layout_login_et_textsize" - android:hint="@string/correctCode" + android:hint="@string/please_input_original_password" android:textColorHint="@color/gray_BDBDBD" android:textStyle="bold" app:layout_constraintEnd_toEndOf="parent" @@ -110,6 +110,8 @@ android:background="@drawable/login_et_bg_selector" android:maxLines="1" android:textColor="#4F4F4F" + android:hint="@string/please_input_new_password" + android:textColorHint="@color/gray_BDBDBD" android:textSize="@dimen/layout_login_et_textsize" android:textStyle="bold" app:layout_constraintEnd_toEndOf="parent" diff --git a/app/src/main/res/layout/activity_forget_pwd.xml b/app/src/main/res/layout/activity_forget_pwd.xml index 74bc0cc..b6a5918 100644 --- a/app/src/main/res/layout/activity_forget_pwd.xml +++ b/app/src/main/res/layout/activity_forget_pwd.xml @@ -4,7 +4,6 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="@drawable/homeact_linea_bg" > @@ -21,7 +20,7 @@ android:id="@+id/aiBack" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:src="@drawable/ic_mode_back" + android:src="@drawable/ic_mode_black" android:padding="5dp" android:layout_marginStart="15dp" app:layout_constraintStart_toStartOf="parent" @@ -45,7 +44,7 @@ android:layout_height="wrap_content" android:layout_marginTop="@dimen/layout_login_welcome_text_top_margin" android:text="@string/forget_pwd" - android:textColor="@color/blue_4072FE" + android:textColor="#000000" android:layout_marginStart="40dp" android:textSize="@dimen/layout_login_welcome_textsize" android:textStyle="bold" @@ -59,7 +58,7 @@ android:layout_height="wrap_content" android:layout_marginTop="23dp" android:text="@string/phone_and_email" - android:textColor="@color/black_4F4F4F" + android:textColor="#000000" android:textSize="@dimen/layout_login_username_title_textsize" app:layout_constraintStart_toStartOf="@+id/tv_welcome_back" app:layout_constraintTop_toBottomOf="@+id/tv_welcome_back" /> @@ -109,7 +108,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/sms_code" - android:textColor="@color/black_4F4F4F" + android:textColor="#000000" android:textSize="@dimen/layout_login_pwd_title_textsize" tools:ignore="MissingConstraints"/> @@ -119,11 +118,12 @@ android:layout_height="wrap_content" android:layout_below="@+id/tv_sms" android:layout_marginRight="5dp" - android:background="@drawable/login_et_bg_selector" android:inputType="number" android:maxLines="1" android:textColor="@color/white" + android:hint="@string/correctCode" + android:textColorHint="@color/gray_BDBDBD" android:textSize="@dimen/layout_login_et_textsize" android:textStyle="bold" /> @@ -200,7 +200,7 @@ android:layout_height="wrap_content" android:layout_marginTop="@dimen/layout_login_pwd_title_text_top_margin" android:text="@string/new_password_check" - android:textColor="@color/black_4F4F4F" + android:textColor="#000000" android:textSize="@dimen/layout_login_pwd_title_textsize" /> + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml index 3a91306..08acf04 100644 --- a/app/src/main/res/values-en/strings.xml +++ b/app/src/main/res/values-en/strings.xml @@ -371,4 +371,5 @@ Service Description\n Change country/region Safety mode Speed mode + Only supports acceleration of content that is allowed by domestic and foreign laws and regulations, no firewall-breaking function, confirm whether to recharge \ 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 e8e643b..bf7e3d3 100644 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -361,5 +361,5 @@ 變更國家/地區 安全模式 極速模式 - + 僅支持加速境內、境外法律法規允許訪問的內容,無翻墻功能,是否確認充值 \ 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 927b452..7967594 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -359,4 +359,5 @@ 變更國家/地區 安全模式 極速模式 + 僅支持加速境內、境外法律法規允許訪問的內容,無翻墻功能,是否確認充值 \ 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 5b5f8eb..e0852cb 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -383,4 +383,5 @@ 《服务条款》 《隐私政策》 为贯彻与加强个人信息安全防护意识,请仔细阅读以下列出的相关协议 + 仅支持加速境内、境外法律法规允许访问的内容,无翻墙功能,是否确认充值 \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index d530175..a94b39e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -71,8 +71,8 @@ subprojects { // targetSdk = 32 minSdk = 21 targetSdk = 34 - versionName = "1.0.4.2" - versionCode = 1042 + versionName = "1.0.4.3" + versionCode = 1043 resValue("string", "release_name", "v$versionName") resValue("integer", "release_code", "$versionCode") externalNativeBuild { @@ -119,6 +119,25 @@ subprojects { ) ) } + create("9531") { + isDefault = true + dimension = flavorDimensionList[0] + buildConfigField("boolean", "PREMIUM", "Boolean.parseBoolean(\"false\")") + buildConfigField("boolean", "is_back_cn", "false") + buildConfigField("boolean", "is_ym", "true") + buildConfigField("boolean", "is_tz", "false") + buildConfigField("boolean", "is_yunti", "false") + buildConfigField("String", "applicationId", "\"com.jsq.mashanglian\"") + buildConfigField("String", "service_url", "\"https://api.wfvpnpro.com/\"") + buildConfigField("boolean", "is_free", "false") + buildConfigField("String", "productId", "\"9531\"") + manifestPlaceholders( + mapOf( + "APP_NAME" to "@string/ConnectImmediately", + "APP_ICON" to "@mipmap/logo_connect_immediately" + ) + ) + } } sourceSets { getByName("9788") {