登录页面同意相关协议才能登录
This commit is contained in:
@@ -10,6 +10,7 @@ import android.text.TextUtils;
|
||||
import android.text.method.LinkMovementMethod;
|
||||
import android.text.style.ForegroundColorSpan;
|
||||
import android.view.View;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
@@ -32,7 +33,7 @@ import io.reactivex.functions.BiConsumer;
|
||||
|
||||
public abstract class BaseLoginAct extends BaseActivity {
|
||||
|
||||
protected TextView tvProtocol;
|
||||
protected CheckBox tvProtocol;
|
||||
protected TextView wxLogin;
|
||||
protected TextView qqLogin;
|
||||
protected TextView tvLoginQuickPass;
|
||||
|
@@ -20,8 +20,9 @@
|
||||
<string name="hint_login_password_2">请输入密码</string>
|
||||
<string name="text_login_to_register">立即注册</string>
|
||||
<string name="text_login_forget_password">忘记密码</string>
|
||||
<string name="text_login_protocol">登录即代表您同意%s与%s</string>
|
||||
<string name="text_login_protocol">同意%s与%s</string>
|
||||
<string name="text_login_protocol_2">注册即代表同意 %s</string>
|
||||
<string name="text_login_protocol_3">阅读并同意%s与\n%s方可登录</string>
|
||||
<string name="text_how_to_set_pwd">未设置兔兔密码的用户记得前往\n兔兔设置密码哦 %s</string>
|
||||
<string name="text_bind_and_login">登录并绑定</string>
|
||||
<string name="text_reset_password_now">立即重置</string>
|
||||
|
@@ -0,0 +1,88 @@
|
||||
package com.yizhuan.erban.quick_pass;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.os.Bundle;
|
||||
import android.text.SpannableString;
|
||||
import android.text.Spanned;
|
||||
import android.text.method.LinkMovementMethod;
|
||||
import android.text.style.ForegroundColorSpan;
|
||||
import android.view.View;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.core.content.ContextCompat;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseDialog;
|
||||
import com.yizhuan.erban.common.widget.OriginalDrawStatusClickSpan;
|
||||
import com.yizhuan.erban.databinding.DialogProtocolBinding;
|
||||
import com.yizhuan.erban.ui.webview.CommonWebViewActivity;
|
||||
import com.yizhuan.xchat_android_core.UriProvider;
|
||||
|
||||
public class ProtocolDialog extends BaseDialog<DialogProtocolBinding> {
|
||||
|
||||
public static ProtocolDialog newInstance() {
|
||||
return new ProtocolDialog();
|
||||
}
|
||||
|
||||
private View.OnClickListener onClickListener;
|
||||
|
||||
public void setOnClickListener(View.OnClickListener onClickListener) {
|
||||
this.onClickListener = onClickListener;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void init() {
|
||||
setProtocol();
|
||||
getBinding().btnCancel.setOnClickListener(v -> {
|
||||
if (onClickListener != null){
|
||||
onClickListener.onClick(v);
|
||||
}
|
||||
dismissAllowingStateLoss();
|
||||
});
|
||||
getBinding().btnOk.setOnClickListener(v -> {
|
||||
if (onClickListener != null){
|
||||
onClickListener.onClick(v);
|
||||
}
|
||||
dismissAllowingStateLoss();
|
||||
});
|
||||
}
|
||||
|
||||
protected void setProtocol() {
|
||||
Context context = requireContext();
|
||||
|
||||
String privacyAgreementTip = context.getString(R.string.tip_privacy_agreement);
|
||||
String userAgreementTip = context.getString(R.string.tip_user_agreement);
|
||||
String privacyAgreementDescTip = context.getString(R.string.text_login_protocol_3, privacyAgreementTip, userAgreementTip);
|
||||
SpannableString ss = new SpannableString(privacyAgreementDescTip);
|
||||
int privacyAgreementTipIndex = privacyAgreementDescTip.indexOf(privacyAgreementTip);
|
||||
int userAgreementTipIndex = privacyAgreementDescTip.indexOf(userAgreementTip);
|
||||
|
||||
|
||||
ss.setSpan(new ForegroundColorSpan(ContextCompat.getColor(context, R.color.appColor)), privacyAgreementTipIndex, privacyAgreementTipIndex + privacyAgreementTip.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||
ss.setSpan(new OriginalDrawStatusClickSpan(ContextCompat.getColor(context, R.color.appColor)) {
|
||||
@Override
|
||||
public void onClick(@NonNull View widget) {
|
||||
if (widget instanceof TextView)
|
||||
((TextView) widget).setHighlightColor(getResources().getColor(android.R.color.transparent));
|
||||
|
||||
CommonWebViewActivity.start(context, UriProvider.getPrivacyAgreement());
|
||||
}
|
||||
}, privacyAgreementTipIndex, privacyAgreementTipIndex + privacyAgreementTip.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||
ss.setSpan(new ForegroundColorSpan(ContextCompat.getColor(context, R.color.appColor)), userAgreementTipIndex, userAgreementTipIndex + userAgreementTip.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||
ss.setSpan(new OriginalDrawStatusClickSpan(ContextCompat.getColor(context, R.color.appColor)) {
|
||||
@Override
|
||||
public void onClick(@NonNull View widget) {
|
||||
if (widget instanceof TextView)
|
||||
((TextView) widget).setHighlightColor(getResources().getColor(android.R.color.transparent));
|
||||
|
||||
CommonWebViewActivity.start(context, UriProvider.getUserProtocolUrl());
|
||||
}
|
||||
}, userAgreementTipIndex, userAgreementTipIndex + privacyAgreementTip.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||
|
||||
getBinding().tvProtocol.setText(ss);
|
||||
getBinding().tvProtocol.setHighlightColor(Color.TRANSPARENT);
|
||||
getBinding().tvProtocol.setMovementMethod(new LinkMovementMethod());
|
||||
}
|
||||
}
|
@@ -127,6 +127,17 @@ public class QuickPassLoginAct extends BaseLoginAct implements View.OnClickListe
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (!tvProtocol.isChecked()) {
|
||||
ProtocolDialog protocolDialog = ProtocolDialog.newInstance();
|
||||
protocolDialog.setOnClickListener(view -> {
|
||||
if (view.getId() == R.id.btn_ok) {
|
||||
tvProtocol.setChecked(true);
|
||||
v.callOnClick();
|
||||
}
|
||||
});
|
||||
protocolDialog.show(this);
|
||||
return;
|
||||
}
|
||||
switch (v.getId()) {
|
||||
case R.id.img_wx_login:
|
||||
wxLogin();
|
||||
@@ -141,14 +152,10 @@ public class QuickPassLoginAct extends BaseLoginAct implements View.OnClickListe
|
||||
StatisticsProtocol.Event.EVENT_ONE_CLICK_LOGIN, "一键登录");
|
||||
preFetchMobileNum();
|
||||
break;
|
||||
|
||||
case R.id.img_phone_login:
|
||||
// phoneLogin.setEnabled(false);
|
||||
StatisticManager.Instance().onEvent(
|
||||
StatisticsProtocol.Event.EVENT_ONE_CLICK_LOGIN_CHANGE_ID, "一键登录-切换账号");
|
||||
// getDialogManager().showProgressDialog(QuickPassLoginAct.this);
|
||||
LoginPhoneActivity.start(QuickPassLoginAct.this);
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -335,4 +342,13 @@ public class QuickPassLoginAct extends BaseLoginAct implements View.OnClickListe
|
||||
}
|
||||
|
||||
|
||||
private boolean checkProtocol() {
|
||||
|
||||
if (!tvProtocol.isChecked()) {
|
||||
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -61,15 +61,18 @@
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
tools:ignore="SpUsage" />
|
||||
|
||||
<TextView
|
||||
<CheckBox
|
||||
android:id="@+id/tv_protocol"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginBottom="@dimen/dp_15"
|
||||
android:button="@null"
|
||||
android:drawableStart="@drawable/selector_radio_btn"
|
||||
android:text="@string/text_login_protocol"
|
||||
android:textColor="@color/color_999999"
|
||||
android:textColor="#FFBBB1FF"
|
||||
android:textSize="@dimen/dp_12"
|
||||
android:drawablePadding="@dimen/dp_5"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
@@ -142,4 +145,4 @@
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
tools:text="遇到问题点击这里" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
70
app/src/module_quick_pass/res/layout/dialog_protocol.xml
Normal file
70
app/src/module_quick_pass/res/layout/dialog_protocol.xml
Normal file
@@ -0,0 +1,70 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layout xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<data>
|
||||
|
||||
</data>
|
||||
<LinearLayout xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="295dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:background="@drawable/shape_white_corner_8dp"
|
||||
android:orientation="vertical"
|
||||
tools:background="@color/black_transparent_10">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginStart="39dp"
|
||||
android:layout_marginTop="20dp"
|
||||
android:layout_marginEnd="39dp"
|
||||
android:layout_marginBottom="@dimen/dp_14"
|
||||
android:singleLine="true"
|
||||
android:text="提示"
|
||||
android:textColor="@color/color_333333"
|
||||
android:textSize="@dimen/sp_16"
|
||||
android:textStyle="bold"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_protocol"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginStart="39dp"
|
||||
android:layout_marginEnd="39dp"
|
||||
android:layout_marginBottom="@dimen/dp_20"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center_horizontal"
|
||||
android:text="阅读并同意《隐私政策》与《用户协议》方可登录"
|
||||
android:textColor="@color/color_333333"
|
||||
android:textSize="13sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/btn_ok"
|
||||
android:layout_width="150dp"
|
||||
android:layout_height="38dp"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:background="@drawable/bg_common_confirm"
|
||||
android:gravity="center"
|
||||
android:text="同意"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="15sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/btn_cancel"
|
||||
android:layout_width="105dp"
|
||||
android:layout_height="20dp"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginBottom="20dp"
|
||||
android:gravity="center"
|
||||
android:text="暂不使用"
|
||||
android:textColor="@color/color_333333"
|
||||
android:textSize="15sp" />
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</layout>
|
Reference in New Issue
Block a user