feat:完成登录、注册UI改变(删除快捷登录页面)
@@ -739,6 +739,7 @@
|
||||
android:theme="@style/dialog_web_view_activity" />
|
||||
<activity
|
||||
android:name=".ui.login.LoginPasswordActivity"
|
||||
android:launchMode="singleTask"
|
||||
android:screenOrientation="portrait" /> <!-- 社区 -->
|
||||
<activity
|
||||
android:name=".ui.setting.ResetPasswordActivity"
|
||||
|
@@ -23,6 +23,7 @@ import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
import androidx.lifecycle.ViewModelProvider;
|
||||
|
||||
import com.chwl.app.ui.login.LoginPasswordActivity;
|
||||
import com.chwl.core.settings.SettingsModel;
|
||||
import com.netease.nim.uikit.StatusBarUtil;
|
||||
import com.netease.nim.uikit.common.util.log.LogUtil;
|
||||
@@ -61,7 +62,6 @@ import com.chwl.app.service.DaemonService;
|
||||
import com.chwl.app.ui.im.ImInitHelper;
|
||||
import com.chwl.app.ui.im.avtivity.NimP2PMessageActivity;
|
||||
import com.chwl.app.ui.login.BindPhoneActivity;
|
||||
import com.chwl.app.ui.login.LoginActivity;
|
||||
import com.chwl.app.ui.login.fragment.AddUserInfoFragment;
|
||||
import com.chwl.app.ui.patriarch.help.LimitEnterRoomHelper;
|
||||
import com.chwl.app.ui.patriarch.help.PmDialogShowMrg;
|
||||
@@ -511,14 +511,14 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
public void onLogout() {
|
||||
Logger.e(TAG, "onLogout Success ~~~~");
|
||||
getMvpPresenter().exitRoom();
|
||||
LoginActivity.start(MainActivity.this);
|
||||
LoginPasswordActivity.start(MainActivity.this);
|
||||
PmDialogShowMrg.get().onLogout();
|
||||
finish();
|
||||
}
|
||||
|
||||
public void onNeedLogin() {
|
||||
NimMiddleActivity.openCommunity = false;
|
||||
LoginActivity.start(MainActivity.this);
|
||||
LoginPasswordActivity.start(MainActivity.this);
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
|
@@ -12,6 +12,7 @@ import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
|
||||
import com.bumptech.glide.request.RequestOptions;
|
||||
import com.chwl.app.ui.login.LoginPasswordActivity;
|
||||
import com.netease.nim.uikit.StatusBarUtil;
|
||||
import com.netease.nim.uikit.support.glide.GlideApp;
|
||||
import com.chwl.app.MainActivity;
|
||||
@@ -19,7 +20,6 @@ import com.chwl.app.NimMiddleActivity;
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.databinding.ActivitySplashBinding;
|
||||
import com.chwl.app.other.SplashBitmapTransformation;
|
||||
import com.chwl.app.ui.login.LoginActivity;
|
||||
import com.chwl.core.DemoCache;
|
||||
import com.chwl.core.auth.entity.AccountInfo;
|
||||
import com.chwl.core.channel_page.model.ChannelPageModel;
|
||||
@@ -56,7 +56,7 @@ public class SplashActivity extends AppCompatActivity implements View.OnClickLis
|
||||
if (!isTaskRoot()) {
|
||||
AccountInfo currentAccountInfo = DemoCache.readCurrentAccountInfo();
|
||||
if (currentAccountInfo == null || TextUtils.isEmpty(currentAccountInfo.getAccess_token())) {
|
||||
LoginActivity.start(this);
|
||||
LoginPasswordActivity.start(this);
|
||||
} else {
|
||||
MainActivity.start(SplashActivity.this);
|
||||
}
|
||||
@@ -133,7 +133,7 @@ public class SplashActivity extends AppCompatActivity implements View.OnClickLis
|
||||
AccountInfo currentAccountInfo = DemoCache.readCurrentAccountInfo();
|
||||
if (currentAccountInfo == null || TextUtils.isEmpty(currentAccountInfo.getAccess_token())) {
|
||||
NimMiddleActivity.openCommunity = false;
|
||||
LoginActivity.start(this);
|
||||
LoginPasswordActivity.start(this);
|
||||
finish();
|
||||
} else {
|
||||
if (intent != null) {
|
||||
|
@@ -1,295 +0,0 @@
|
||||
package com.chwl.app.ui.login;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
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.KeyEvent;
|
||||
import android.view.View;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.core.content.ContextCompat;
|
||||
|
||||
import com.example.module_base.support.google.IGoogleService;
|
||||
import com.netease.nim.uikit.StatusBarUtil;
|
||||
import com.trello.rxlifecycle3.android.ActivityEvent;
|
||||
import com.chwl.app.MainActivity;
|
||||
import com.chwl.app.NimMiddleActivity;
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.application.IReportConstants;
|
||||
import com.chwl.app.application.ReportManager;
|
||||
import com.chwl.app.base.BaseActivity;
|
||||
import com.chwl.app.common.widget.OriginalDrawStatusClickSpan;
|
||||
import com.chwl.app.ui.login.helper.LogoutHelper;
|
||||
import com.chwl.app.ui.webview.CommonWebViewActivity;
|
||||
import com.chwl.core.Constants;
|
||||
import com.chwl.core.DemoCache;
|
||||
import com.chwl.core.UriProvider;
|
||||
import com.chwl.core.auth.AuthModel;
|
||||
import com.chwl.core.auth.event.LoginEvent;
|
||||
import com.chwl.core.auth.event.LoginReportEvent;
|
||||
import com.chwl.library.common.SpConstants;
|
||||
import com.chwl.library.common.util.SPUtils;
|
||||
import com.chwl.library.utils.AppMetaDataUtil;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
import io.reactivex.SingleObserver;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
|
||||
public class LoginActivity extends BaseActivity implements View.OnClickListener {
|
||||
|
||||
private static final String NEED_CHECKED_PROTOCOL = "need_checked_protocol";
|
||||
protected CheckBox tvProtocol;
|
||||
private TextView tvProtocolHint;
|
||||
|
||||
public static void start(Context context) {
|
||||
Intent intent = new Intent(context, LoginActivity.class);
|
||||
context.startActivity(intent);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_login);
|
||||
EventBus.getDefault().register(this);
|
||||
onFindViews();
|
||||
onSetListener();
|
||||
setProtocol();
|
||||
//登录页展示时
|
||||
HashMap<String, Object> map = new HashMap<>(2);
|
||||
map.put(IReportConstants.MODULE, IReportConstants.PEKO_LOGIN);
|
||||
ReportManager.get().reportEvent(IReportConstants.LOGIN_SHOW, map);
|
||||
}
|
||||
|
||||
|
||||
private void onFindViews() {
|
||||
tvProtocol = findViewById(R.id.tv_protocol);
|
||||
tvProtocolHint = findViewById(R.id.tv_protocol_hint);
|
||||
findViewById(R.id.cs_google).setVisibility(View.VISIBLE);
|
||||
String loginType = SPUtils.getString(SpConstants.LOGIN_TYPE, "");
|
||||
switch (loginType) {
|
||||
case SpConstants.GOOGLE:
|
||||
findViewById(R.id.tv_google_last_login).setVisibility(View.VISIBLE);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void onSetListener() {
|
||||
findViewById(R.id.cs_google).setOnClickListener(this);
|
||||
findViewById(R.id.layout_other).setOnClickListener(this);
|
||||
}
|
||||
|
||||
protected void setProtocol() {
|
||||
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, 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.color_1E1E1F)), privacyAgreementTipIndex, privacyAgreementTipIndex + privacyAgreementTip.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||
ss.setSpan(new OriginalDrawStatusClickSpan(ContextCompat.getColor(context, R.color.color_1E1E1F)) {
|
||||
@Override
|
||||
public void onClick(@NonNull View widget) {
|
||||
//隐私政策点击
|
||||
HashMap<String, Object> map = new HashMap<>(5);
|
||||
map.put(IReportConstants.CLICK_TYPE, IReportConstants.TWO);
|
||||
map.put(IReportConstants.MODULE, IReportConstants.PEKO_LOGIN);
|
||||
map.put(IReportConstants.PAGE, IReportConstants.TWO);
|
||||
ReportManager.get().reportEvent(IReportConstants.AGREEMENT_CLICK, map);
|
||||
|
||||
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.color_1F1A4E)), userAgreementTipIndex, userAgreementTipIndex + userAgreementTip.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||
ss.setSpan(new OriginalDrawStatusClickSpan(ContextCompat.getColor(context, R.color.color_1F1A4E)) {
|
||||
@Override
|
||||
public void onClick(@NonNull View widget) {
|
||||
//用户协议点击
|
||||
HashMap<String, Object> map = new HashMap<>(5);
|
||||
map.put(IReportConstants.CLICK_TYPE, IReportConstants.ONE);
|
||||
map.put(IReportConstants.MODULE, IReportConstants.PEKO_LOGIN);
|
||||
map.put(IReportConstants.PAGE, IReportConstants.TWO);
|
||||
ReportManager.get().reportEvent(IReportConstants.AGREEMENT_CLICK, map);
|
||||
|
||||
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);
|
||||
|
||||
tvProtocol.setText(ss);
|
||||
tvProtocol.setHighlightColor(Color.TRANSPARENT);
|
||||
tvProtocol.setMovementMethod(new LinkMovementMethod());
|
||||
|
||||
if (DemoCache.readBoolean(NEED_CHECKED_PROTOCOL, false)) {
|
||||
tvProtocol.setChecked(true);
|
||||
}
|
||||
|
||||
tvProtocol.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
||||
if (isChecked) {
|
||||
//协议点击同意
|
||||
HashMap<String, Object> map = new HashMap<>(5);
|
||||
map.put(IReportConstants.CLICK_TYPE, IReportConstants.THREE);
|
||||
map.put(IReportConstants.MODULE, IReportConstants.PEKO_LOGIN);
|
||||
map.put(IReportConstants.PAGE, IReportConstants.TWO);
|
||||
ReportManager.get().reportEvent(IReportConstants.AGREEMENT_CLICK, map);
|
||||
|
||||
tvProtocolHint.setVisibility(View.GONE);
|
||||
DemoCache.saveBoolean(NEED_CHECKED_PROTOCOL, true);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (!tvProtocol.isChecked()) {
|
||||
tvProtocolHint.setVisibility(View.VISIBLE);
|
||||
return;
|
||||
}
|
||||
|
||||
switch (v.getId()) {
|
||||
case R.id.cs_google:
|
||||
reportLoginType(IReportConstants.THREE);
|
||||
getDialogManager().showProgressDialog(this);
|
||||
AuthModel.get().googleLogin(this)
|
||||
.compose(bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.subscribe(new SingleObserver<String>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(String result) {
|
||||
reportLoginResult(IReportConstants.THREE, IReportConstants.ONE, "");
|
||||
// HashMap<String, Object> map = new HashMap<>(2);
|
||||
// map.put(FirebaseAnalytics.Param.METHOD, getString(R.string.login_google));
|
||||
// ReportManager.get().reportEvent(FirebaseAnalytics.Event.LOGIN, map);
|
||||
// ReportManager.get().reportAdjustEvent(IReportConstants.ADJUST_LOGIN);
|
||||
getDialogManager().dismissDialog();
|
||||
SPUtils.putString(SpConstants.LOGIN_TYPE, SpConstants.GOOGLE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
reportLoginResult(IReportConstants.THREE, IReportConstants.ZERO, e.getMessage());
|
||||
getDialogManager().dismissDialog();
|
||||
dealWithLoginError(e);
|
||||
e.printStackTrace();
|
||||
}
|
||||
});
|
||||
|
||||
break;
|
||||
case R.id.layout_other:
|
||||
reportLoginType(IReportConstants.FIVE);
|
||||
LoginPasswordActivity.start(LoginActivity.this);
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
AuthModel.get().getGoogleLoginService().onActivityResult(requestCode, resultCode, data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 上报登录结果
|
||||
*
|
||||
* @param loginType
|
||||
* @param result
|
||||
* @param failDetail
|
||||
*/
|
||||
private void reportLoginResult(int loginType, int result, String failDetail) {
|
||||
HashMap<String, Object> map = new HashMap<>(6);
|
||||
map.put(IReportConstants.LOGIN_TYPE, loginType);
|
||||
map.put(IReportConstants.MODULE, IReportConstants.PEKO_LOGIN);
|
||||
map.put(IReportConstants.RESULT, result);
|
||||
if (result == IReportConstants.ZERO) {
|
||||
map.put(IReportConstants.FAIL_DETAIL, failDetail);
|
||||
}
|
||||
ReportManager.get().reportEvent(IReportConstants.LOGIN_RESULT, map);
|
||||
}
|
||||
|
||||
/**
|
||||
* 上报登录方式
|
||||
*
|
||||
* @param loginType 登录方式
|
||||
*/
|
||||
private void reportLoginType(int loginType) {
|
||||
HashMap<String, Object> map = new HashMap<>(3);
|
||||
map.put(IReportConstants.CLICK_TYPE, loginType);
|
||||
map.put(IReportConstants.MODULE, IReportConstants.PEKO_LOGIN);
|
||||
ReportManager.get().reportEvent(IReportConstants.LOGIN_CLICK, map);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setStatusBar() {
|
||||
super.setStatusBar();
|
||||
StatusBarUtil.transparencyBar(this);
|
||||
StatusBarUtil.StatusBarLightMode(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean needSteepStateBar() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public void dealWithLoginError(Throwable e) {
|
||||
LogoutHelper.dealWithLoginError(this, e);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
||||
if (keyCode == KeyEvent.KEYCODE_BACK) {
|
||||
moveTaskToBack(true);
|
||||
return true;
|
||||
}
|
||||
return super.onKeyDown(keyCode, event);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
getDialogManager().dismissDialog();
|
||||
EventBus.getDefault().unregister(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* 注册成功后发送过来的事件
|
||||
*/
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onLoginEvent(LoginEvent event) {
|
||||
getDialogManager().dismissDialog();
|
||||
NimMiddleActivity.delayOpenCommunity = false;
|
||||
MainActivity.start(this);
|
||||
finish();
|
||||
}
|
||||
|
||||
/**
|
||||
* 三方登录上报事件
|
||||
*/
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onLoginReportEvent(LoginReportEvent event) {
|
||||
HashMap<String, Object> map = new HashMap<>(3);
|
||||
map.put(IReportConstants.LOGIN_TYPE, event.getLoginType());
|
||||
map.put(IReportConstants.MODULE, IReportConstants.PEKO_LOGIN);
|
||||
ReportManager.get().reportEvent(IReportConstants.LOGIN_REQUEST, map);
|
||||
}
|
||||
|
||||
}
|
@@ -2,20 +2,32 @@ package com.chwl.app.ui.login;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Color;
|
||||
import android.os.Bundle;
|
||||
import android.os.CountDownTimer;
|
||||
import android.text.Editable;
|
||||
import android.text.SpannableString;
|
||||
import android.text.Spanned;
|
||||
import android.text.TextUtils;
|
||||
import android.text.TextWatcher;
|
||||
import android.text.method.LinkMovementMethod;
|
||||
import android.text.style.ForegroundColorSpan;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.EditText;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.widget.AppCompatEditText;
|
||||
import androidx.appcompat.widget.AppCompatTextView;
|
||||
import androidx.core.content.ContextCompat;
|
||||
|
||||
import com.chwl.app.common.widget.OriginalDrawStatusClickSpan;
|
||||
import com.chwl.app.ui.webview.CommonWebViewActivity;
|
||||
import com.chwl.core.UriProvider;
|
||||
import com.coorchice.library.SuperTextView;
|
||||
import com.netease.nim.uikit.StatusBarUtil;
|
||||
import com.trello.rxlifecycle3.android.ActivityEvent;
|
||||
@@ -49,6 +61,7 @@ import io.reactivex.disposables.Disposable;
|
||||
|
||||
public class LoginPasswordActivity extends BaseActivity {
|
||||
|
||||
private static final String NEED_CHECKED_PROTOCOL = "need_checked_protocol";
|
||||
private View btnNext;
|
||||
private AppCompatTextView tvAccountLogin;
|
||||
private AppCompatTextView tvCodeLogin;
|
||||
@@ -66,6 +79,9 @@ public class LoginPasswordActivity extends BaseActivity {
|
||||
|
||||
private CountDownTimer cdt = null;
|
||||
|
||||
protected CheckBox tvProtocol;
|
||||
private TextView tvProtocolHint;
|
||||
|
||||
private final TextWatcher textWatcher = new TextWatcherWrapper() {
|
||||
@Override
|
||||
public void afterTextChanged(Editable s) {
|
||||
@@ -125,7 +141,8 @@ public class LoginPasswordActivity extends BaseActivity {
|
||||
edtPhone.addTextChangedListener(textWatcher);
|
||||
edtPassword.addTextChangedListener(textWatcher);
|
||||
btnSmsNext = findViewById(R.id.btn_sms_next);
|
||||
findViewById(R.id.iv_back).setOnClickListener(v -> finish());
|
||||
tvProtocol = findViewById(R.id.tv_protocol);
|
||||
tvProtocolHint = findViewById(R.id.tv_protocol_hint);
|
||||
btnNext.setOnClickListener(v -> login());
|
||||
findViewById(R.id.tv_forget_password).setOnClickListener(v ->
|
||||
ResetPasswordActivity.start(context, ResetPasswordActivity.FROM_NOT_LOGIN)
|
||||
@@ -147,9 +164,17 @@ public class LoginPasswordActivity extends BaseActivity {
|
||||
llSmsLogin.setVisibility(View.VISIBLE);
|
||||
});
|
||||
tvAreaCode.setOnClickListener(v -> {
|
||||
if (!tvProtocol.isChecked()) {
|
||||
tvProtocolHint.setVisibility(View.VISIBLE);
|
||||
return;
|
||||
}
|
||||
AreaCodeActivity.startForResult(this, 100);
|
||||
});
|
||||
tvRegain.setOnClickListener(v -> {
|
||||
if (!tvProtocol.isChecked()) {
|
||||
tvProtocolHint.setVisibility(View.VISIBLE);
|
||||
return;
|
||||
}
|
||||
if (TextUtils.isEmpty(etAccount.getText().toString().trim())) {
|
||||
toast(getString(R.string.ui_setting_resetpasswordactivity_04));
|
||||
return;
|
||||
@@ -190,6 +215,10 @@ public class LoginPasswordActivity extends BaseActivity {
|
||||
});
|
||||
});
|
||||
btnSmsNext.setOnClickListener(v -> {
|
||||
if (!tvProtocol.isChecked()) {
|
||||
tvProtocolHint.setVisibility(View.VISIBLE);
|
||||
return;
|
||||
}
|
||||
//发起登录
|
||||
HashMap<String, Object> map = new HashMap<>(3);
|
||||
map.put(IReportConstants.LOGIN_TYPE, IReportConstants.FOUR);
|
||||
@@ -241,6 +270,7 @@ public class LoginPasswordActivity extends BaseActivity {
|
||||
}
|
||||
});
|
||||
});
|
||||
setProtocol();
|
||||
}
|
||||
|
||||
private void startCounter() {
|
||||
@@ -311,6 +341,10 @@ public class LoginPasswordActivity extends BaseActivity {
|
||||
}
|
||||
|
||||
private void login() {
|
||||
if (!tvProtocol.isChecked()) {
|
||||
tvProtocolHint.setVisibility(View.VISIBLE);
|
||||
return;
|
||||
}
|
||||
getDialogManager().showProgressDialog(this, getString(R.string.login_is_logining));
|
||||
AuthModel.get().login(
|
||||
"",
|
||||
@@ -383,4 +417,79 @@ public class LoginPasswordActivity extends BaseActivity {
|
||||
MainActivity.start(LoginPasswordActivity.this);
|
||||
finish();
|
||||
}
|
||||
|
||||
|
||||
protected void setProtocol() {
|
||||
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, 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.color_1E1E1F)), privacyAgreementTipIndex, privacyAgreementTipIndex + privacyAgreementTip.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||
ss.setSpan(new OriginalDrawStatusClickSpan(ContextCompat.getColor(context, R.color.color_1E1E1F)) {
|
||||
@Override
|
||||
public void onClick(@NonNull View widget) {
|
||||
//隐私政策点击
|
||||
HashMap<String, Object> map = new HashMap<>(5);
|
||||
map.put(IReportConstants.CLICK_TYPE, IReportConstants.TWO);
|
||||
map.put(IReportConstants.MODULE, IReportConstants.PEKO_LOGIN);
|
||||
map.put(IReportConstants.PAGE, IReportConstants.TWO);
|
||||
ReportManager.get().reportEvent(IReportConstants.AGREEMENT_CLICK, map);
|
||||
|
||||
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.color_1F1A4E)), userAgreementTipIndex, userAgreementTipIndex + userAgreementTip.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||
ss.setSpan(new OriginalDrawStatusClickSpan(ContextCompat.getColor(context, R.color.color_1F1A4E)) {
|
||||
@Override
|
||||
public void onClick(@NonNull View widget) {
|
||||
//用户协议点击
|
||||
HashMap<String, Object> map = new HashMap<>(5);
|
||||
map.put(IReportConstants.CLICK_TYPE, IReportConstants.ONE);
|
||||
map.put(IReportConstants.MODULE, IReportConstants.PEKO_LOGIN);
|
||||
map.put(IReportConstants.PAGE, IReportConstants.TWO);
|
||||
ReportManager.get().reportEvent(IReportConstants.AGREEMENT_CLICK, map);
|
||||
|
||||
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);
|
||||
|
||||
tvProtocol.setText(ss);
|
||||
tvProtocol.setHighlightColor(Color.TRANSPARENT);
|
||||
tvProtocol.setMovementMethod(new LinkMovementMethod());
|
||||
|
||||
if (DemoCache.readBoolean(NEED_CHECKED_PROTOCOL, false)) {
|
||||
tvProtocol.setChecked(true);
|
||||
}
|
||||
|
||||
tvProtocol.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
||||
if (isChecked) {
|
||||
//协议点击同意
|
||||
HashMap<String, Object> map = new HashMap<>(5);
|
||||
map.put(IReportConstants.CLICK_TYPE, IReportConstants.THREE);
|
||||
map.put(IReportConstants.MODULE, IReportConstants.PEKO_LOGIN);
|
||||
map.put(IReportConstants.PAGE, IReportConstants.TWO);
|
||||
ReportManager.get().reportEvent(IReportConstants.AGREEMENT_CLICK, map);
|
||||
|
||||
tvProtocolHint.setVisibility(View.GONE);
|
||||
DemoCache.saveBoolean(NEED_CHECKED_PROTOCOL, true);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
||||
if (keyCode == KeyEvent.KEYCODE_BACK) {
|
||||
moveTaskToBack(true);
|
||||
return true;
|
||||
}
|
||||
return super.onKeyDown(keyCode, event);
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -5,6 +5,7 @@ import android.os.Bundle;
|
||||
import android.text.InputFilter;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.RadioButton;
|
||||
@@ -13,6 +14,7 @@ import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.widget.AppCompatTextView;
|
||||
|
||||
import com.google.android.material.textfield.TextInputEditText;
|
||||
import com.netease.nim.uikit.common.util.sys.ScreenUtil;
|
||||
import com.sleepbot.datetimepicker.time.RadialPickerLayout;
|
||||
import com.sleepbot.datetimepicker.time.TimePickerDialog;
|
||||
import com.trello.rxlifecycle3.android.FragmentEvent;
|
||||
@@ -73,6 +75,12 @@ public class AddUserInfoFragment extends BaseFragment
|
||||
|
||||
@Override
|
||||
public void initiate() {
|
||||
View titleBar = mView.findViewById(R.id.tv_title);
|
||||
ViewGroup.LayoutParams layoutParams = titleBar.getLayoutParams();
|
||||
if (layoutParams instanceof ViewGroup.MarginLayoutParams) {
|
||||
((ViewGroup.MarginLayoutParams) layoutParams).setMargins(0, ScreenUtil.getStatusBarHeight(getContext()), 0, 0);
|
||||
titleBar.setLayoutParams(layoutParams);
|
||||
}
|
||||
gender = -1;
|
||||
okBtn.setOnClickListener(this);
|
||||
tvRandomNick.setOnClickListener(this);
|
||||
|
BIN
app/src/main/res/drawable-xxhdpi/base_ic_indicator.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
app/src/main/res/drawable-xxhdpi/ic_female_normal.png
Normal file
After Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 11 KiB |
BIN
app/src/main/res/drawable-xxhdpi/ic_female_press.png
Normal file
After Width: | Height: | Size: 68 KiB |
Before Width: | Height: | Size: 25 KiB |
BIN
app/src/main/res/drawable-xxhdpi/ic_logo_text.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
app/src/main/res/drawable-xxhdpi/ic_male_normal.png
Normal file
After Width: | Height: | Size: 35 KiB |
Before Width: | Height: | Size: 11 KiB |
BIN
app/src/main/res/drawable-xxhdpi/ic_male_press.png
Normal file
After Width: | Height: | Size: 64 KiB |
Before Width: | Height: | Size: 26 KiB |
BIN
app/src/main/res/drawable-xxhdpi/login_bg_top.png
Normal file
After Width: | Height: | Size: 252 KiB |
@@ -4,9 +4,9 @@
|
||||
android:viewportWidth="20"
|
||||
android:viewportHeight="20">
|
||||
<path
|
||||
android:pathData="M7.585,10.663L7.456,10.687L1.623,12.127L1.579,12.148L1.494,12.173L1.409,12.212C1.336,12.247 1.284,12.277 1.244,12.307C1.185,12.353 1.13,12.404 1.081,12.457C1.047,12.496 1.025,12.534 1.012,12.575C1,12.613 0.996,12.67 1.005,12.745C1.012,12.799 1.028,12.856 1.053,12.914L1.097,13.001L4.403,18.231L4.543,18.378L4.628,18.443L4.647,18.453L4.674,18.462C4.802,18.5 4.852,18.505 4.939,18.496C5.031,18.487 5.161,18.446 5.205,18.417C5.32,18.338 5.368,18.297 5.416,18.224L5.453,18.161L6.874,14.839L6.219,16.291L7.006,16.534C8.079,16.854 9.2,17.026 10.37,17.053L10.81,17.056L11.256,17.045C14.68,16.906 17.07,15.419 18.479,12.56L18.63,12.239L18.772,11.907L18.797,11.844L18.768,11.876C18.621,12.025 18.466,12.169 18.305,12.307C17.895,12.656 17.354,13.002 16.681,13.345C15.995,13.696 15.252,13.948 14.459,14.099C13.662,14.252 12.706,14.276 11.59,14.174C10.614,14.085 9.591,13.874 8.516,13.539L8.052,13.388L7.642,13.249L8.488,11.337L8.497,11.305L8.524,11.24L8.543,11.119C8.552,11.059 8.552,11.013 8.546,10.982C8.529,10.9 8.514,10.852 8.487,10.801C8.473,10.776 8.411,10.723 8.381,10.711L8.281,10.678L8.093,10.638C7.989,10.619 7.797,10.628 7.585,10.663ZM15.242,1.503C15.192,1.497 15.131,1.5 15.061,1.514C14.982,1.53 14.935,1.549 14.895,1.579C14.844,1.619 14.796,1.668 14.754,1.721L14.697,1.802L13.835,3.671L13.492,3.541C12.235,3.063 10.835,2.813 9.285,2.787C5.841,2.723 3.361,3.997 1.79,6.619C1.667,6.829 1.551,7.048 1.44,7.274L1.279,7.62L1.199,7.806L1.393,7.621L1.693,7.36C2.105,7.017 2.657,6.683 3.354,6.349C4.055,6.014 4.803,5.783 5.59,5.658C6.378,5.533 7.333,5.533 8.453,5.656C9.431,5.762 10.451,5.994 11.521,6.352L11.983,6.514L12.392,6.662L12.204,7.056L11.436,8.653L11.409,8.762L11.407,8.826L11.41,8.878C11.417,8.962 11.422,8.975 11.469,9.05C11.505,9.109 11.601,9.183 11.713,9.214C11.863,9.255 12.067,9.267 12.306,9.249L12.491,9.23L18.505,7.903C18.468,7.903 18.442,7.907 18.423,7.913L18.401,7.921L18.577,7.837C18.62,7.818 18.661,7.796 18.705,7.77L18.774,7.728C18.812,7.705 18.862,7.663 18.926,7.598C18.958,7.565 18.977,7.534 18.988,7.501C19,7.462 19.004,7.405 18.994,7.32C18.988,7.261 18.973,7.196 18.954,7.134L18.921,7.047L15.776,1.82L15.669,1.692C15.622,1.645 15.576,1.61 15.532,1.584L15.481,1.559L15.386,1.528L15.31,1.513L15.242,1.503Z"
|
||||
android:pathData="M1.911,5.733C1.911,5.733 3.551,3.204 6.143,1.847C8.736,0.49 11.929,0.88 14.022,2.196C16.118,3.511 16.823,4.622 16.823,4.622L18.628,3.594C18.628,3.594 19,3.409 19,3.841L19,10.299C19,10.299 19,10.874 18.564,10.668C18.199,10.495 14.235,8.241 12.987,7.53C12.303,7.224 12.904,6.975 12.904,6.975L14.646,5.979C14.646,5.979 13.652,4.735 12.198,4.076C10.643,3.265 9.186,3.169 7.403,3.843C6.238,4.282 4.868,5.408 3.882,7.069L1.911,5.733L1.911,5.733ZM18.089,14.267C18.089,14.267 16.449,16.796 13.857,18.154C11.266,19.511 8.071,19.12 5.978,17.804C3.882,16.488 3.177,15.377 3.177,15.377L1.372,16.405C1.372,16.405 1,16.59 1,16.159L1,9.701C1,9.701 1,9.126 1.436,9.332C1.801,9.504 5.765,11.758 7.013,12.47C7.697,12.775 7.096,13.025 7.096,13.025L5.354,14.02C5.354,14.02 6.348,15.265 7.802,15.924C9.357,16.734 10.814,16.831 12.597,16.157C13.762,15.717 15.132,14.592 16.118,12.93L18.089,14.267L18.089,14.267Z"
|
||||
android:strokeWidth="1"
|
||||
android:fillColor="#1E1E1F"
|
||||
android:fillColor="#A3A5AB"
|
||||
android:fillType="nonZero"
|
||||
android:strokeColor="#00000000"/>
|
||||
</vector>
|
||||
|
@@ -1,141 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/color_white">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:scaleType="centerCrop"
|
||||
android:src="@drawable/login_bg" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/iv_logo"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_140"
|
||||
android:src="@drawable/login_ic_logo"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_logo_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_10"
|
||||
android:src="@drawable/login_ic_logo_name"
|
||||
app:layout_constraintEnd_toEndOf="@id/iv_logo"
|
||||
app:layout_constraintStart_toStartOf="@id/iv_logo"
|
||||
app:layout_constraintTop_toBottomOf="@id/iv_logo" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/cs_google"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/dp_54"
|
||||
android:layout_marginHorizontal="@dimen/dp_32"
|
||||
android:layout_marginBottom="@dimen/dp_24"
|
||||
android:background="@drawable/base_shape_1e1e1f_8dp"
|
||||
android:gravity="center"
|
||||
app:layout_constraintBottom_toTopOf="@id/layout_other">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@drawable/login_ic_google" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/tv_google"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_16"
|
||||
android:gravity="center"
|
||||
android:text="@string/login_google"
|
||||
android:textColor="@color/base_color_theme"
|
||||
android:textSize="@dimen/dp_16" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/tv_google_last_login"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="23dp"
|
||||
android:layout_marginTop="-10dp"
|
||||
android:layout_marginEnd="-10dp"
|
||||
android:background="@drawable/base_shape_ccffffff_100dp"
|
||||
android:gravity="center"
|
||||
android:paddingHorizontal="11dp"
|
||||
android:text="@string/last_login"
|
||||
android:textColor="#1E1E1F"
|
||||
android:textSize="@dimen/sp_12"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintEnd_toEndOf="@+id/cs_google"
|
||||
app:layout_constraintTop_toTopOf="@+id/cs_google"
|
||||
tools:visibility="visible" />
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/layout_other"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/dp_54"
|
||||
android:layout_marginHorizontal="@dimen/dp_32"
|
||||
android:layout_marginBottom="@dimen/dp_92"
|
||||
android:background="@drawable/base_shape_theme_8dp"
|
||||
android:gravity="center"
|
||||
android:orientation="horizontal"
|
||||
app:layout_constraintBottom_toTopOf="@id/tv_protocol"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/tv_others"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:drawablePadding="@dimen/dp_4"
|
||||
android:gravity="center"
|
||||
android:includeFontPadding="false"
|
||||
android:text="@string/login_select_other_login_type"
|
||||
android:textColor="#1E1E1F"
|
||||
android:textSize="@dimen/dp_16"
|
||||
app:drawableEndCompat="@drawable/base_arrow_right_1e1e1f" />
|
||||
</LinearLayout>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/tv_protocol_hint"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/bg_login_protocol_hint"
|
||||
android:gravity="center"
|
||||
android:paddingHorizontal="4dp"
|
||||
android:paddingBottom="6dp"
|
||||
android:text="@string/login_agree_with_the_protocol"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_10"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toTopOf="@+id/tv_protocol"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<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_32"
|
||||
android:button="@null"
|
||||
android:checked="true"
|
||||
android:drawableStart="@drawable/selector_login_radio_btn"
|
||||
android:drawablePadding="@dimen/dp_5"
|
||||
android:text="@string/text_login_protocol"
|
||||
android:textColor="#8E9094"
|
||||
android:textSize="@dimen/dp_12"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
tools:ignore="SpUsage" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
@@ -6,21 +6,29 @@
|
||||
android:layout_height="match_parent"
|
||||
android:background="#F7F7F7">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/iv_back"
|
||||
<ImageView
|
||||
android:id="@+id/iv_top"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:adjustViewBounds="true"
|
||||
android:src="@drawable/login_bg_top"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_logo"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_20"
|
||||
android:layout_marginTop="@dimen/dp_50"
|
||||
android:src="@drawable/login_left"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
android:layout_marginTop="88dp"
|
||||
android:src="@drawable/ic_logo_text"
|
||||
app:layout_constraintTop_toTopOf="@id/iv_top" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/tv_account_login"
|
||||
android:layout_width="@dimen/dp_0"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_42"
|
||||
android:layout_marginTop="@dimen/dp_21"
|
||||
android:gravity="center_horizontal"
|
||||
android:paddingVertical="10dp"
|
||||
android:text="@string/account_login"
|
||||
@@ -30,7 +38,7 @@
|
||||
app:layout_constraintEnd_toStartOf="@+id/tv_code_login"
|
||||
app:layout_constraintHorizontal_weight="1"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/iv_back" />
|
||||
app:layout_constraintTop_toBottomOf="@id/iv_logo" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_account_indicator"
|
||||
@@ -275,4 +283,41 @@
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/tv_protocol_hint"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/bg_login_protocol_hint"
|
||||
android:gravity="center"
|
||||
android:paddingHorizontal="4dp"
|
||||
android:paddingBottom="6dp"
|
||||
android:text="@string/login_agree_with_the_protocol"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_10"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toTopOf="@+id/tv_protocol"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<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_32"
|
||||
android:button="@null"
|
||||
android:checked="true"
|
||||
android:drawableStart="@drawable/selector_login_radio_btn"
|
||||
android:drawablePadding="@dimen/dp_5"
|
||||
android:text="@string/text_login_protocol"
|
||||
android:textColor="#8E9094"
|
||||
android:textSize="@dimen/dp_12"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
tools:ignore="SpUsage" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
@@ -5,10 +5,17 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="#F7F7F7"
|
||||
android:fitsSystemWindows="true"
|
||||
android:gravity="center_horizontal"
|
||||
android:orientation="vertical">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_top"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:adjustViewBounds="true"
|
||||
android:src="@drawable/login_bg_top"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_title"
|
||||
android:layout_width="match_parent"
|
||||
@@ -77,7 +84,6 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="end"
|
||||
android:layout_marginStart="15dp"
|
||||
android:background="@drawable/selector_radiobutton_gender_female"
|
||||
android:button="@null" />
|
||||
|
||||
|