diff --git a/app/build.gradle b/app/build.gradle index 0c1044373..21a2b2fbb 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -269,9 +269,6 @@ dependencies { implementation 'it.sephiroth.android.library.imagezoom:library:1.0.4' - // 易盾一键登录 - implementation 'io.github.yidun:quicklogin:3.1.5' - implementation 'com.github.fodroid:XRadioGroup:v1.5' //华为推送 implementation 'com.huawei.hms:push:6.5.0.300' diff --git a/app/src/main/java/com/nnbc123/app/base/BaseLoginAct.java b/app/src/main/java/com/nnbc123/app/base/BaseLoginAct.java index 7194e76a7..851e0fb80 100644 --- a/app/src/main/java/com/nnbc123/app/base/BaseLoginAct.java +++ b/app/src/main/java/com/nnbc123/app/base/BaseLoginAct.java @@ -1,14 +1,10 @@ package com.nnbc123.app.base; -import android.annotation.SuppressLint; import android.graphics.Color; import android.os.Bundle; import android.text.SpannableString; -import android.text.SpannableStringBuilder; import android.text.Spanned; -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; @@ -22,24 +18,15 @@ import com.nnbc123.app.common.widget.OriginalDrawStatusClickSpan; import com.nnbc123.app.ui.webview.CommonWebViewActivity; import com.nnbc123.core.UriProvider; import com.nnbc123.core.auth.AuthModel; -import com.nnbc123.core.bean.LoginTipsInfo; -import com.nnbc123.core.market_verify.MarketVerifyModel; import com.nnbc123.core.statistic.StatisticManager; import com.nnbc123.core.statistic.protocol.StatisticsProtocol; -import com.nnbc123.xchat_android_constants.XChatConstants; import io.reactivex.SingleObserver; import io.reactivex.disposables.Disposable; -import io.reactivex.functions.BiConsumer; public abstract class BaseLoginAct extends BaseActivity { protected CheckBox tvProtocol; - protected TextView wxLogin; - protected TextView qqLogin; - protected TextView tvLoginQuickPass; - protected TextView tvLoginTip; - protected TextView tvDesc; protected boolean canClick = true; @@ -92,82 +79,6 @@ public abstract class BaseLoginAct extends BaseActivity { tvProtocol.setMovementMethod(new LinkMovementMethod()); } - @SuppressLint("CheckResult") - protected void showLoginTip() { - MarketVerifyModel.get().loadLoginTip() - .compose(bindToLifecycle()) - .subscribe(new BiConsumer() { - @Override - public void accept(LoginTipsInfo loginTipsInfo, Throwable throwable) throws Exception { - if (throwable == null) { - showTvDesc(loginTipsInfo.getTips()); - showTvLoginTip(loginTipsInfo.isShowWechat() || loginTipsInfo.isShowQq()); - showThirdPartLogin(loginTipsInfo.isShowWechat(), loginTipsInfo.isShowQq(), loginTipsInfo.isShowOneClick()); - } else { - showTvLoginTip(false); - showThirdPartLogin(false, false, false); - } - } - }); - } - - protected void showThirdPartLogin(boolean isShowWechat, boolean isShowQq, boolean isShowOneClick) { - showwxLogin(isShowWechat); - showqqLogin(isShowQq); - showOneClickLogin(isShowOneClick); - } - - private void showTvLoginTip(boolean visible) { - if (tvLoginTip != null) { - tvLoginTip.setVisibility(visible ? View.VISIBLE : View.GONE); - } - } - - private void showwxLogin(boolean visible) { - if (wxLogin != null) { - wxLogin.setVisibility(visible ? View.VISIBLE : View.GONE); - } - } - - private void showqqLogin(boolean visible) { - if (qqLogin != null) { - qqLogin.setVisibility(visible ? View.VISIBLE : View.GONE); - } - } - - private void showOneClickLogin(boolean visible) { - if (tvLoginQuickPass != null) { - tvLoginQuickPass.setVisibility(visible ? View.VISIBLE : View.GONE); - } - } - - private void showTvDesc(String tips) { - if (tvDesc != null && !TextUtils.isEmpty(tips)) { - SpannableStringBuilder builder = new SpannableStringBuilder(tips); - int start = tips.indexOf("如何登录"); - - if (start > -1) { - builder.setSpan(new ForegroundColorSpan(ContextCompat.getColor(context, R.color.color_FE4C62)), start, start + 5, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); - builder.setSpan(new OriginalDrawStatusClickSpan() { - @Override - public void onClick(@NonNull View widget) { - if (!canClick) { - return; - } - CommonWebViewActivity.start(BaseLoginAct.this, UriProvider.WEB_URL + XChatConstants.LOGIN_ERBAN_ACCOUNT_URL); - } - }, start, start + 5, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); - - } - - - tvDesc.setText(builder); - tvDesc.setHighlightColor(Color.TRANSPARENT); - tvDesc.setMovementMethod(new LinkMovementMethod()); - - } - } - protected void wxLogin() { // 易盾保护 token // String yiDunToken = watchman.getToken(XChatConstants.YI_DUN_BUSINESS_ID); diff --git a/app/src/main/res/drawable-xhdpi/bg_last_login.png b/app/src/main/res/drawable-xhdpi/bg_last_login.png new file mode 100644 index 000000000..fef98ec6f Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/bg_last_login.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_login_google.png b/app/src/main/res/drawable-xhdpi/ic_login_google.png new file mode 100644 index 000000000..de90a694c Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_login_google.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_login_line.png b/app/src/main/res/drawable-xhdpi/ic_login_line.png new file mode 100644 index 000000000..525ddbbdd Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_login_line.png differ diff --git a/app/src/main/res/drawable/shape_login_btn_bg.xml b/app/src/main/res/drawable/shape_login_btn_bg.xml new file mode 100644 index 000000000..779fdba47 --- /dev/null +++ b/app/src/main/res/drawable/shape_login_btn_bg.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/res/layout/activity_login_password.xml b/app/src/main/res/layout/activity_login_password.xml index bb7b0db27..d3d6f440c 100644 --- a/app/src/main/res/layout/activity_login_password.xml +++ b/app/src/main/res/layout/activity_login_password.xml @@ -45,6 +45,7 @@ android:textColor="@color/text_title_282828" android:textSize="@dimen/sp_15" android:textStyle="bold" + android:visibility="gone" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" /> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b405e0d44..04513fdc3 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -989,4 +989,7 @@ %d钻/局 为了实现连麦及语音输入等功能,请您允许应用向您获取“麦克风”权限 访问你的本地内容,以能正常使用图片上传、视频发送等应用功能 + 上次登录 + Line登录 + Google登录 diff --git a/app/src/module_quick_pass/java/com/nnbc123/app/quick_pass/QuickLoginUiConfig.java b/app/src/module_quick_pass/java/com/nnbc123/app/quick_pass/QuickLoginUiConfig.java deleted file mode 100644 index ecf20ca22..000000000 --- a/app/src/module_quick_pass/java/com/nnbc123/app/quick_pass/QuickLoginUiConfig.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.nnbc123.app.quick_pass; - -import android.content.Context; -import android.graphics.Color; - -import androidx.core.content.ContextCompat; - -import com.netease.nis.quicklogin.helper.UnifyUiConfig; -import com.nnbc123.app.R; -import com.nnbc123.core.PreferencesUtils; - -/** - * Created by hzhuqi on 2019/12/31 - */ -public class QuickLoginUiConfig { - public static UnifyUiConfig getUiConfig(final Context context) { - - int logoToTop = 60; - int logoWidth = 100; - int logoHeight = 100; - int maskNumToTop = logoToTop + logoHeight + 170; - int maskNumSize = 20; - int sloganToTop = maskNumToTop + maskNumSize + 10; - int sloganSize = 14; - int loginBtnToTop = sloganToTop + sloganSize + 30; - int loginBtnHeight = 45; - - int X_OFFSET = 0; - int BOTTOM_OFFSET = 0; - final boolean privacyState = PreferencesUtils.readPrivacyState(); - UnifyUiConfig uiConfig = new UnifyUiConfig.Builder() - // 状态栏 - .setStatusBarDarkColor(true) - .setStatusBarColor(ContextCompat.getColor(context, R.color.bg_normal_1c1b22)) - .setBackgroundImage("bg_normal") - // 设置导航栏 - .setHideNavigation(false) - .setHideNavigationBackIcon(false) - .setNavigationIcon("quick_pass_back") - .setNavigationHeight(50) - .setNavigationBackIconWidth(25) - .setNavigationBackIconHeight(25) - .setNavigationTitle("一键登录") - .setNavigationTitleColor(ContextCompat.getColor(context, R.color.text_normal_282828)) - // 设置logo - .setLogoIconName("quick_pass_logo") - .setLogoWidth(logoWidth) - .setLogoHeight(logoHeight) - .setLogoXOffset(X_OFFSET) - .setLogoTopYOffset(logoToTop) - .setHideLogo(false) - //手机掩码 - .setMaskNumberColor(ContextCompat.getColor(context, R.color.text_normal_282828)) - .setMaskNumberSize(maskNumSize) - .setMaskNumberXOffset(X_OFFSET) - .setMaskNumberTopYOffset(maskNumToTop) - .setMaskNumberBottomYOffset(BOTTOM_OFFSET) - // 认证品牌 - .setSloganSize(sloganSize) - .setSloganColor(ContextCompat.getColor(context, R.color.text_secondary_878b9c)) - .setSloganXOffset(X_OFFSET) - .setSloganTopYOffset(sloganToTop) - .setSloganBottomYOffset(BOTTOM_OFFSET) - // 登录按钮 - .setLoginBtnTextColor(ContextCompat.getColor(context, R.color.text_normal_282828)) - .setLoginBtnText("本机号码一键登录") - .setLoginBtnBackgroundRes("bg_common_confirm") - .setLoginBtnWidth(280) - .setLoginBtnHeight(loginBtnHeight) - .setLoginBtnTextSize(15) - .setLoginBtnXOffset(X_OFFSET) - .setLoginBtnTopYOffset(loginBtnToTop) - .setLoginBtnBottomYOffset(BOTTOM_OFFSET) - // 隐私栏 - .setPrivacyTextStart("登录即代表同意") - .setPrivacyTextEnd(context.getString(R.string.authorization_text)) - .setPrivacyTextColor(ContextCompat.getColor(context, R.color.text_secondary_878b9c)) - .setPrivacyProtocolColor(ContextCompat.getColor(context, R.color.app_248cfe)) - .setHidePrivacyCheckBox(false) - - /** - * offset只是设置左侧的间距,无法左右居中,易盾并没有提供左右居中的api; - * 通过更改yd_quick_login_privacy.xml实现(文件在quicklogin_libary-external-release.aar) - */ -// .setPrivacyXOffset(43) - - .setPrivacyState(privacyState) - .setPrivacySize(12) -// .setPrivacyTopYOffset(510) - .setPrivacyBottomYOffset(20) - .setPrivacyMarginLeft(20) - .setPrivacyMarginRight(20) - .setCheckedImageName("quick_pass_checked") - .setUnCheckedImageName("quick_pass_uncheck") - // 协议详情页导航栏 - .setProtocolPageNavTitle("服务条款") - .setProtocolPageNavBackIcon("quick_pass_back") - .setProtocolPageNavColor(Color.WHITE) - .setClickEventListener((viewType, code) -> { - if (viewType == 2) { - PreferencesUtils.savePrivacyState(code == 1); - } - }) - .build(context); - return uiConfig; - } -} diff --git a/app/src/module_quick_pass/java/com/nnbc123/app/quick_pass/QuickPassLoginAct.java b/app/src/module_quick_pass/java/com/nnbc123/app/quick_pass/QuickPassLoginAct.java index 349c03074..c7c5501a4 100644 --- a/app/src/module_quick_pass/java/com/nnbc123/app/quick_pass/QuickPassLoginAct.java +++ b/app/src/module_quick_pass/java/com/nnbc123/app/quick_pass/QuickPassLoginAct.java @@ -14,14 +14,10 @@ import android.widget.TextView; import androidx.core.content.ContextCompat; import com.netease.nim.uikit.StatusBarUtil; -import com.netease.nis.quicklogin.QuickLogin; -import com.netease.nis.quicklogin.listener.QuickLoginPreMobileListener; -import com.netease.nis.quicklogin.listener.QuickLoginTokenListener; import com.nnbc123.app.R; import com.nnbc123.app.base.BaseLoginAct; import com.nnbc123.app.ui.login.LoginPasswordActivity; import com.nnbc123.app.ui.login.LoginPhoneActivity; -import com.nnbc123.xchat_android_constants.XChatConstants; import com.nnbc123.core.DemoCache; import com.nnbc123.core.auth.AuthModel; import com.nnbc123.core.auth.event.LoginEvent; @@ -30,6 +26,7 @@ import com.nnbc123.core.auth.exception.BanAccountException; import com.nnbc123.core.auth.exception.IsSuperAdminException; import com.nnbc123.core.statistic.StatisticManager; import com.nnbc123.core.statistic.protocol.StatisticsProtocol; +import com.nnbc123.library.utils.SingleToastUtil; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; @@ -40,21 +37,12 @@ import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; -import io.reactivex.SingleObserver; -import io.reactivex.disposables.Disposable; - public class QuickPassLoginAct extends BaseLoginAct implements View.OnClickListener { - private static final String NEED_CHECKED_PROTOCOL = "need_checked_protocol"; private static final int quickPassRequestCode = 1000; - private TextView tvLoginQuickPass; - private QuickLogin login;// BUSINESS_ID为从易盾官网申请的业务id - - private TextView phoneLogin; - private TextView tvProtocolHint; public static void start(Context context) { @@ -67,31 +55,22 @@ public class QuickPassLoginAct extends BaseLoginAct implements View.OnClickListe super.onCreate(savedInstanceState); setContentView(R.layout.act_quick_pass); EventBus.getDefault().register(this); - login = QuickLogin.getInstance(getApplicationContext(), XChatConstants.QUICK_PASS_BUSINESS_ID);// BUSINESS_ID为从易盾官网申请的业务id - login.setUnifyUiConfig(QuickLoginUiConfig.getUiConfig(getApplicationContext())); onFindViews(); onSetListener(); - showLoginTip(); AuthModel.get().isFromLogin = true; } private void onFindViews() { tvProtocol = findViewById(R.id.tv_protocol); tvProtocolHint = findViewById(R.id.tv_protocol_hint); - wxLogin = findViewById(R.id.img_wx_login); - tvLoginQuickPass = findViewById(R.id.tv_login_quick_pass); - qqLogin = findViewById(R.id.img_qq_login); - tvDesc = findViewById(R.id.tv_desc); - phoneLogin = findViewById(R.id.img_phone_login); setProtocol(); } private void onSetListener() { - wxLogin.setOnClickListener(this); - qqLogin.setOnClickListener(this); - tvLoginQuickPass.setOnClickListener(this); - phoneLogin.setOnClickListener(this); + findViewById(R.id.cs_google).setOnClickListener(this); + findViewById(R.id.cs_line).setOnClickListener(this); + findViewById(R.id.tv_password_login).setOnClickListener(this); } @Override @@ -116,26 +95,16 @@ public class QuickPassLoginAct extends BaseLoginAct implements View.OnClickListe return; } switch (v.getId()) { - case R.id.img_wx_login: - wxLogin(); + case R.id.tv_password_login: + LoginPasswordActivity.start(QuickPassLoginAct.this); break; - - case R.id.img_qq_login: - qqLogin(); + case R.id.cs_google: + SingleToastUtil.showToast("Google"); break; - - case R.id.tv_login_quick_pass: - StatisticManager.Instance().onEvent( - StatisticsProtocol.EVENT_ONE_CLICK_LOGIN, "一键登录"); - preFetchMobileNum(); - break; - case R.id.img_phone_login: - StatisticManager.Instance().onEvent( - StatisticsProtocol.EVENT_ONE_CLICK_LOGIN_CHANGE_ID, "一键登录-切换账号"); - LoginPhoneActivity.start(QuickPassLoginAct.this); + case R.id.cs_line: + SingleToastUtil.showToast("Line"); break; } - } @Override @@ -150,81 +119,6 @@ public class QuickPassLoginAct extends BaseLoginAct implements View.OnClickListe return true; } - private void preFetchMobileNum() { - getDialogManager().showProgressDialog(this, ""); - login.prefetchMobileNumber(new QuickLoginPreMobileListener() { - @Override - public void onGetMobileNumberSuccess(String YDToken, final String mobileNumber) { - // 注:对于3网UI统一版本SDK,即2.0.0及以后版本,直接在该回调中调用取号接口onePass即可 - getDialogManager().dismissDialog(); - onePass(); - } - - @Override - public void onGetMobileNumberError(String YDToken, final String msg) { - - toast("一键登录失败,请使用其他方式登录"); - getDialogManager().dismissDialog(); - //跳转到手机登录页 - LoginPhoneActivity.startForResult(QuickPassLoginAct.this, quickPassRequestCode); - } - }); - } - - private void onePass() { - // 易盾保护 token 登录 -// String yiDunLoginToken = watchman.getToken(XChatConstants.YI_DUN_LOGIN_BUSINESS_ID); - // 数美天网 deviceId -// String shuMeiDeviceId = SmAntiFraud.getDeviceId(); - login.onePass(new QuickLoginTokenListener() { - @Override - public void onGetTokenSuccess(String s, String s1) { - setClickEnable(false); - AuthModel.get().quickPassLogin(s, s1, "", "") - .compose(bindToLifecycle()) - .subscribe(new SingleObserver() { - @Override - public void onSubscribe(Disposable d) { - if (mCompositeDisposable != null) { - mCompositeDisposable.add(d); - } - } - - @Override - public void onSuccess(String s) { - setClickEnable(false); - login.quitActivity(); - StatisticManager.Instance().onEvent( - StatisticsProtocol.EVENT_ONE_CLICK_LOGIN_SUCCEED, "一键登录成功"); - } - - @Override - public void onError(Throwable e) { - dealWithLoginError(e); - setClickEnable(true); - StatisticManager.Instance().onEvent( - StatisticsProtocol.EVENT_ONE_CLICK_LOGIN_FAILED, "一键登录失败"); - } - }); - - } - - @Override - public void onGetTokenError(String s, String s1) { - toast("一键登录失败,请使用其他登录方式"); - LoginPhoneActivity.startForResult(QuickPassLoginAct.this, quickPassRequestCode); - setClickEnable(true); - } - - @Override - public void onCancelGetToken() { - super.onCancelGetToken(); - setClickEnable(true); - } - }); - - } - @Override public void dealWithLoginError(Throwable e) { if (!(e instanceof IsSuperAdminException)) { @@ -290,44 +184,6 @@ public class QuickPassLoginAct extends BaseLoginAct implements View.OnClickListe } } - @Override - protected void showThirdPartLogin(boolean isShowWechat, boolean isShowQq, boolean isOneClick) { - wxLogin.setVisibility(isShowWechat ? View.VISIBLE : View.INVISIBLE); - qqLogin.setVisibility(isShowQq ? View.VISIBLE : View.INVISIBLE); - - if (isOneClick){ - login.prefetchMobileNumber(new QuickLoginPreMobileListener() { - @Override - public void onGetMobileNumberSuccess(String YDToken, final String mobileNumber) { - tvLoginQuickPass.setVisibility(View.VISIBLE); - } - - @Override - public void onGetMobileNumberError(String YDToken, final String msg) { - tvLoginQuickPass.setVisibility(View.INVISIBLE); - } - }); - }else { - tvLoginQuickPass.setVisibility(View.INVISIBLE); - } - super.showThirdPartLogin(isShowWechat, isShowQq, isOneClick); - } - - private void setClickEnable(boolean enable) { - if (tvLoginQuickPass != null) { - tvLoginQuickPass.setEnabled(enable); - } - if (wxLogin != null) { - wxLogin.setEnabled(enable); - } - if (qqLogin != null) { - qqLogin.setEnabled(enable); - } -// if (phoneLogin != null) { -// phoneLogin.setEnabled(enable); -// } - canClick = enable; - } @Override protected void onDestroy() { @@ -344,15 +200,4 @@ public class QuickPassLoginAct extends BaseLoginAct implements View.OnClickListe setResult(RESULT_OK); finish(); } - - - private boolean checkProtocol() { - - if (!tvProtocol.isChecked()) { - - } - - return false; - } - } diff --git a/app/src/module_quick_pass/res/layout/act_quick_pass.xml b/app/src/module_quick_pass/res/layout/act_quick_pass.xml index 3a2d7cad7..2b3b544e6 100644 --- a/app/src/module_quick_pass/res/layout/act_quick_pass.xml +++ b/app/src/module_quick_pass/res/layout/act_quick_pass.xml @@ -30,36 +30,129 @@ app:layout_constraintStart_toStartOf="parent" /> + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - -