登录页面同意相关协议才能登录

This commit is contained in:
huangjian
2021-06-04 11:11:01 +08:00
committed by zu
parent ef630e6da9
commit 1dc9f87e13
6 changed files with 188 additions and 9 deletions

View File

@@ -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;

View File

@@ -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>

View File

@@ -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());
}
}

View File

@@ -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;
}
}

View File

@@ -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>

View 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>