[Modify]优化登录和主页逻辑

This commit is contained in:
wushaocheng
2023-02-02 20:49:06 +08:00
parent afa0f65960
commit 7fa3e781d1
11 changed files with 121 additions and 168 deletions

View File

@@ -250,9 +250,9 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
.doOnError(throwable -> onNeedLogin())
.subscribe();
initView();
InitialModel.get().getMainTabInfosLiveData().observeForever(mainTabInfos -> {
if (mainTabInfos != null) {
mMainTabLayout.setMainTabInfoList(mainTabInfos);
InitialModel.get().getMainTabInfosLiveData().observeForever(mainTabInfo -> {
if (mainTabInfo != null) {
mMainTabLayout.setMainTabInfoList(mainTabInfo);
}
});
//检测更新
@@ -530,6 +530,7 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
getMvpPresenter().exitRoom();
LoginActivity.start(MainActivity.this);
PmDialogShowMrg.get().onLogout();
finish();
}
public void onNeedLogin() {

View File

@@ -22,6 +22,9 @@ import com.yizhuan.erban.application.XChatApplication;
import com.yizhuan.erban.databinding.ActivitySplashBinding;
import com.yizhuan.erban.other.SplashBitmapTransformation;
import com.yizhuan.erban.other.dialog.PrivacyAgreementDialog;
import com.yizhuan.erban.ui.login.LoginActivity;
import com.yizhuan.xchat_android_core.DemoCache;
import com.yizhuan.xchat_android_core.auth.entity.AccountInfo;
import com.yizhuan.xchat_android_core.channel_page.model.ChannelPageModel;
import com.yizhuan.xchat_android_core.initial.InitialModel;
import com.yizhuan.xchat_android_core.initial.SplashComponent;
@@ -53,7 +56,12 @@ public class SplashActivity extends AppCompatActivity implements View.OnClickLis
//修复 https://blog.csdn.net/u011153817/article/details/77335255
// https://blog.csdn.net/zhangcanyan/article/details/52777265 这样的启动异常问题.
if (!isTaskRoot()) {
MainActivity.start(SplashActivity.this);
AccountInfo currentAccountInfo = DemoCache.readCurrentAccountInfo();
if (currentAccountInfo == null || TextUtils.isEmpty(currentAccountInfo.getAccess_token())) {
LoginActivity.start(this);
} else {
MainActivity.start(SplashActivity.this);
}
return;
}
@@ -115,9 +123,7 @@ public class SplashActivity extends AppCompatActivity implements View.OnClickLis
mBinding.tvJump.setVisibility(View.VISIBLE);
}
} else {
NimMiddleActivity.delayOpenCommunity = false;
MainActivity.start(SplashActivity.this);
finish();
jumpActivity(null);
}
}
@@ -129,12 +135,28 @@ public class SplashActivity extends AppCompatActivity implements View.OnClickLis
if (needJump) {
return;
}
NimMiddleActivity.delayOpenCommunity = false;
MainActivity.start(SplashActivity.this);
finish();
jumpActivity(null);
}, COUNT_DOWN_TIME * 1000);
}
public void jumpActivity(Intent intent) {
AccountInfo currentAccountInfo = DemoCache.readCurrentAccountInfo();
if (currentAccountInfo == null || TextUtils.isEmpty(currentAccountInfo.getAccess_token())) {
NimMiddleActivity.openCommunity = false;
LoginActivity.start(this);
finish();
} else {
if (intent != null) {
NimMiddleActivity.delayOpenCommunity = false;
MainActivity.start(this, intent);
finish();
} else {
NimMiddleActivity.delayOpenCommunity = false;
MainActivity.start(SplashActivity.this);
finish();
}
}
}
@Override
public void onClick(View v) {
@@ -148,18 +170,14 @@ public class SplashActivity extends AppCompatActivity implements View.OnClickLis
Intent intent = new Intent();
intent.putExtra("url", link);
intent.putExtra("type", type);
NimMiddleActivity.delayOpenCommunity = false;
MainActivity.start(this, intent);
finish();
jumpActivity(intent);
break;
case R.id.tv_skip:
if (mLocalSplashVo == null) {
return;
}
needJump = true;
NimMiddleActivity.delayOpenCommunity = false;
MainActivity.start(this);
finish();
jumpActivity(null);
break;
default:
break;

View File

@@ -20,6 +20,8 @@ import com.google.firebase.analytics.FirebaseAnalytics;
import com.netease.nim.uikit.StatusBarUtil;
import com.tongdaxing.erban.upgrade.AppUpgradeHelper;
import com.trello.rxlifecycle3.android.ActivityEvent;
import com.yizhuan.erban.MainActivity;
import com.yizhuan.erban.NimMiddleActivity;
import com.yizhuan.erban.R;
import com.yizhuan.erban.application.IReportConstants;
import com.yizhuan.erban.application.ReportManager;
@@ -183,7 +185,6 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
ReportManager.get().reportEvent(FirebaseAnalytics.Event.LOGIN, map);
ReportManager.get().reportAdjustEvent(IReportConstants.ADJUST_LOGIN);
getDialogManager().dismissDialog();
finish();
}
@Override
@@ -213,7 +214,6 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
ReportManager.get().reportEvent(FirebaseAnalytics.Event.LOGIN, map);
ReportManager.get().reportAdjustEvent(IReportConstants.ADJUST_LOGIN);
getDialogManager().dismissDialog();
finish();
}
@Override
@@ -244,7 +244,6 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
ReportManager.get().reportEvent(FirebaseAnalytics.Event.LOGIN, map);
ReportManager.get().reportAdjustEvent(IReportConstants.ADJUST_LOGIN);
getDialogManager().dismissDialog();
finish();
}
@Override
@@ -336,7 +335,8 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
@Subscribe(threadMode = ThreadMode.MAIN)
public void onLoginEvent(LoginEvent event) {
getDialogManager().dismissDialog();
setResult(RESULT_OK);
NimMiddleActivity.delayOpenCommunity = false;
MainActivity.start(this);
finish();
}

View File

@@ -14,6 +14,8 @@ import com.coorchice.library.utils.LogUtils
import com.google.firebase.analytics.FirebaseAnalytics
import com.netease.nim.uikit.StatusBarUtil
import com.trello.rxlifecycle3.android.ActivityEvent
import com.yizhuan.erban.MainActivity
import com.yizhuan.erban.NimMiddleActivity
import com.yizhuan.erban.R
import com.yizhuan.erban.application.IReportConstants
import com.yizhuan.erban.application.ReportManager
@@ -209,8 +211,6 @@ class LoginCodeActivity : BaseViewBindingActivity<ActivityLoginCodeBinding>() {
ReportManager.get().reportEvent(FirebaseAnalytics.Event.LOGIN, map)
ReportManager.get().reportAdjustEvent(IReportConstants.ADJUST_LOGIN)
stopCounter()
setResult(RESULT_OK)
finish()
}
override fun onError(e: Throwable) {
@@ -256,7 +256,8 @@ class LoginCodeActivity : BaseViewBindingActivity<ActivityLoginCodeBinding>() {
@Subscribe(threadMode = ThreadMode.MAIN)
fun onLoginEvent(event: LoginEvent?) {
dialogManager.dismissDialog()
setResult(RESULT_OK)
NimMiddleActivity.delayOpenCommunity = false
MainActivity.start(this)
finish()
}

View File

@@ -8,10 +8,11 @@ import android.text.TextUtils;
import android.text.TextWatcher;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import com.google.firebase.analytics.FirebaseAnalytics;
import com.netease.nim.uikit.StatusBarUtil;
import com.yizhuan.erban.MainActivity;
import com.yizhuan.erban.NimMiddleActivity;
import com.yizhuan.erban.R;
import com.yizhuan.erban.application.IReportConstants;
import com.yizhuan.erban.application.ReportManager;
@@ -72,10 +73,7 @@ public class LoginPasswordActivity extends BaseActivity {
findViewById(R.id.iv_back).setOnClickListener(v -> finish());
btnNext.setOnClickListener(v -> login());
findViewById(R.id.tv_forget_password).setOnClickListener(v ->
ResetPasswordActivity.start(context, ResetPasswordActivity.FROM_NOT_LOGIN)
// getDialogManager().showOkCancelWithTitleDialog(getString(R.string.login_contact_service), "LINEpekoyuyin", getString(R.string.button_ok), "", true, () -> {
//
// })
ResetPasswordActivity.start(context, ResetPasswordActivity.FROM_NOT_LOGIN)
);
}
@@ -126,8 +124,6 @@ public class LoginPasswordActivity extends BaseActivity {
ReportManager.get().reportEvent(FirebaseAnalytics.Event.LOGIN, map);
ReportManager.get().reportAdjustEvent(IReportConstants.ADJUST_LOGIN);
getDialogManager().dismissDialog();
setResult(RESULT_OK);
finish();
}
@Override
@@ -141,6 +137,7 @@ public class LoginPasswordActivity extends BaseActivity {
/**
* 上报登录结果
*
* @param result
* @param failDetail
*/
@@ -149,7 +146,7 @@ public class LoginPasswordActivity extends BaseActivity {
map.put(IReportConstants.LOGIN_TYPE, IReportConstants.FIVE);
map.put(IReportConstants.MODULE, IReportConstants.PEKO_LOGIN);
map.put(IReportConstants.RESULT, result);
if(result == IReportConstants.ZERO){
if (result == IReportConstants.ZERO) {
map.put(IReportConstants.FAIL_DETAIL, failDetail);
}
ReportManager.get().reportEvent(IReportConstants.LOGIN_RESULT, map);
@@ -165,7 +162,8 @@ public class LoginPasswordActivity extends BaseActivity {
@Subscribe(threadMode = ThreadMode.MAIN)
public void onLoginEvent(LoginEvent event) {
getDialogManager().dismissDialog();
setResult(RESULT_OK);
NimMiddleActivity.delayOpenCommunity = false;
MainActivity.start(LoginPasswordActivity.this);
finish();
}
}

View File

@@ -9,6 +9,8 @@ import android.widget.EditText
import com.coorchice.library.utils.LogUtils
import com.netease.nim.uikit.StatusBarUtil
import com.trello.rxlifecycle3.android.ActivityEvent
import com.yizhuan.erban.MainActivity
import com.yizhuan.erban.NimMiddleActivity
import com.yizhuan.erban.R
import com.yizhuan.erban.base.BaseViewBindingActivity
import com.yizhuan.erban.databinding.ActivityLoginPhoneBinding
@@ -143,7 +145,8 @@ class LoginPhoneActivity : BaseViewBindingActivity<ActivityLoginPhoneBinding>(),
*/
@Subscribe(threadMode = ThreadMode.MAIN)
fun onLoginEvent(event: LoginEvent?) {
setResult(RESULT_OK)
NimMiddleActivity.delayOpenCommunity = false
MainActivity.start(this)
finish()
}

View File

@@ -19,7 +19,7 @@ import java.lang.reflect.Field;
public class CleanLeakUtils {
public static void fixInputMethodManagerLeak(Context destContext) {
//在15<=API<=23中都存在
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT || Build.VERSION.SDK_INT > Build.VERSION_CODES.M) {
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M) {
return;
}