diff --git a/app/src/main/java/com/yizhuan/erban/MainActivity.java b/app/src/main/java/com/yizhuan/erban/MainActivity.java index 07147628a..9376c9270 100644 --- a/app/src/main/java/com/yizhuan/erban/MainActivity.java +++ b/app/src/main/java/com/yizhuan/erban/MainActivity.java @@ -250,9 +250,9 @@ public class MainActivity extends BaseMvpActivity .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 getMvpPresenter().exitRoom(); LoginActivity.start(MainActivity.this); PmDialogShowMrg.get().onLogout(); + finish(); } public void onNeedLogin() { diff --git a/app/src/main/java/com/yizhuan/erban/other/activity/SplashActivity.java b/app/src/main/java/com/yizhuan/erban/other/activity/SplashActivity.java index 54e0f1de3..61ff9d47e 100644 --- a/app/src/main/java/com/yizhuan/erban/other/activity/SplashActivity.java +++ b/app/src/main/java/com/yizhuan/erban/other/activity/SplashActivity.java @@ -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; diff --git a/app/src/main/java/com/yizhuan/erban/ui/login/LoginActivity.java b/app/src/main/java/com/yizhuan/erban/ui/login/LoginActivity.java index c532af538..5341d48ee 100644 --- a/app/src/main/java/com/yizhuan/erban/ui/login/LoginActivity.java +++ b/app/src/main/java/com/yizhuan/erban/ui/login/LoginActivity.java @@ -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(); } diff --git a/app/src/main/java/com/yizhuan/erban/ui/login/LoginCodeActivity.kt b/app/src/main/java/com/yizhuan/erban/ui/login/LoginCodeActivity.kt index d5f61adb7..e16e2ea84 100644 --- a/app/src/main/java/com/yizhuan/erban/ui/login/LoginCodeActivity.kt +++ b/app/src/main/java/com/yizhuan/erban/ui/login/LoginCodeActivity.kt @@ -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() { 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() { @Subscribe(threadMode = ThreadMode.MAIN) fun onLoginEvent(event: LoginEvent?) { dialogManager.dismissDialog() - setResult(RESULT_OK) + NimMiddleActivity.delayOpenCommunity = false + MainActivity.start(this) finish() } diff --git a/app/src/main/java/com/yizhuan/erban/ui/login/LoginPasswordActivity.java b/app/src/main/java/com/yizhuan/erban/ui/login/LoginPasswordActivity.java index cbf80c732..018958966 100644 --- a/app/src/main/java/com/yizhuan/erban/ui/login/LoginPasswordActivity.java +++ b/app/src/main/java/com/yizhuan/erban/ui/login/LoginPasswordActivity.java @@ -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), "LINE:pekoyuyin", 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(); } } diff --git a/app/src/main/java/com/yizhuan/erban/ui/login/LoginPhoneActivity.kt b/app/src/main/java/com/yizhuan/erban/ui/login/LoginPhoneActivity.kt index 3ffda0c84..a5b43fb3e 100644 --- a/app/src/main/java/com/yizhuan/erban/ui/login/LoginPhoneActivity.kt +++ b/app/src/main/java/com/yizhuan/erban/ui/login/LoginPhoneActivity.kt @@ -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(), */ @Subscribe(threadMode = ThreadMode.MAIN) fun onLoginEvent(event: LoginEvent?) { - setResult(RESULT_OK) + NimMiddleActivity.delayOpenCommunity = false + MainActivity.start(this) finish() } diff --git a/app/src/main/java/com/yizhuan/erban/utils/CleanLeakUtils.java b/app/src/main/java/com/yizhuan/erban/utils/CleanLeakUtils.java index 6d0a84932..64dcc3277 100644 --- a/app/src/main/java/com/yizhuan/erban/utils/CleanLeakUtils.java +++ b/app/src/main/java/com/yizhuan/erban/utils/CleanLeakUtils.java @@ -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; } diff --git a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/home/model/HomeModel.kt b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/home/model/HomeModel.kt index 61adf9c74..945dbd489 100644 --- a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/home/model/HomeModel.kt +++ b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/home/model/HomeModel.kt @@ -399,14 +399,6 @@ object HomeModel : BaseModel() { @GET("/single/broadcast/morePopularityAnchorList") suspend fun getMoreSingleAnchorList(@Query("singleRoomSortId") id: Long?): ServiceResult> - /** - * 获取首页Tab配置 - * - * @return - */ - @GET("/app/bottomBar/getCurrentAppBottomBar") - suspend fun getMainTabList(): ServiceResult> - /** * @return */ diff --git a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/market_verify/MarketVerifyModel.java b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/market_verify/MarketVerifyModel.java index 63e383ae9..5cb5e02f1 100644 --- a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/market_verify/MarketVerifyModel.java +++ b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/market_verify/MarketVerifyModel.java @@ -52,25 +52,6 @@ public class MarketVerifyModel extends BaseModel implements IMarketVerifyModel{ @Subscribe(threadMode = ThreadMode.MAIN) public void onLogin(LoginEvent event){ -// loadVersionConfigFromServer( -// String.valueOf(AuthModel.get().getCurrentUid()) -// ) -// .subscribe(new SingleObserver() { -// @Override -// public void onSubscribe(Disposable d) { -// -// } -// -// @Override -// public void onSuccess(Boolean aBoolean) { -// EventBus.getDefault().post(new MarketVerifyUpdateEvent()); -// } -// -// @Override -// public void onError(Throwable e) { -// -// } -// }); } @Override diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/auth/AuthModel.java b/core/src/main/java/com/yizhuan/xchat_android_core/auth/AuthModel.java index f24da8ed6..f6d0212a7 100644 --- a/core/src/main/java/com/yizhuan/xchat_android_core/auth/AuthModel.java +++ b/core/src/main/java/com/yizhuan/xchat_android_core/auth/AuthModel.java @@ -219,25 +219,19 @@ public class AuthModel extends BaseModel implements IAuthModel { if (currentAccountInfo == null || TextUtils.isEmpty(currentAccountInfo.getAccess_token())) { return Single.error(new Throwable(""));//没有账号信息 } - return requestTicket().flatMap(new Function>() { - @Override - public SingleSource apply(TicketResult ticketResult) throws Exception { - if (!ticketResult.isSuccess()) { - return Single.error(new Throwable(ticketResult.getMessage())); - } - ticketInfo = ticketResult.getData(); - DemoCache.saveTicketInfo(ticketInfo); - return Single.just(ResUtil.getString(R.string.xchat_android_core_auth_authmodel_01)); - } - }) + return requestTicket().flatMap(ticketResult -> { + if (!ticketResult.isSuccess()) { + return Single.error(new Throwable(ticketResult.getMessage())); + } + ticketInfo = ticketResult.getData(); + DemoCache.saveTicketInfo(ticketInfo); + return Single.just(ResUtil.getString(R.string.xchat_android_core_auth_authmodel_01)); + }) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .flatMap(new Function>() { - @Override - public SingleSource apply(String s) throws Exception { - Log.i("IMLogin", "apply"); - return imLogin(currentAccountInfo); - } + .flatMap((Function>) s -> { + Log.i("IMLogin", "apply"); + return imLogin(currentAccountInfo); }) .doOnSuccess(s -> { EventBus.getDefault().post(new LoginEvent()); @@ -258,66 +252,63 @@ public class AuthModel extends BaseModel implements IAuthModel { @Override public Single login(String phoneAreaCode, String account, String password, String code, String yiDunToken, String shuMeiDeviceId) { - return Single.create(new SingleOnSubscribe() { - @Override - public void subscribe(SingleEmitter emitter) throws Exception { - //获取登录信息 - try { - LoginResult loginResult = api.login( - phoneAreaCode, - DESUtils.DESAndBase64(account), - VersionUtil.getLocalName(BasicConfig.INSTANCE.getAppContext()), - "erban-client", - DESUtils.DESAndBase64(account), - DESAndBase64(password), - "password", - "uyzjdhds", - code, - yiDunToken, - shuMeiDeviceId - ).blockingGet(); - if (!loginResult.isSuccess()) { - if (loginResult.getCode() == CODE_BAN_ACCOUNT || loginResult.getCode() == CODE_BAN_DEVICE) { - emitter.onError(new BanAccountException(loginResult.getReason(), loginResult.getDate())); - } else if (loginResult.getCode() == CODE_ACCOUNT_CANCEL) { - emitter.onError(new AccountCancelException(loginResult.getMessage(), loginResult.getErbanNo(), loginResult.getCancelDate())); - } else if (loginResult.getCode() == SUPER_CODE_SHOW_CODE) { - //是否是超管 - if (loginResult.getSuperCodeVerify() == 1) { - emitter.onError(new IsSuperAdminException(loginResult.getMessage())); - } else { - emitter.onError(new Throwable(loginResult.getMessage())); - } - } else { - emitter.onError(new Throwable(loginResult.getMessage())); - } - return; - } - currentAccountInfo = loginResult.getData(); - DemoCache.saveCurrentAccountInfo(currentAccountInfo); - //成功获取到uid后,就通知首页刷新审核中状态的数据 - EventBus.getDefault().post(new GetCurrentUidEvent(true)); - } catch (Exception e) { - emitter.onError(new Throwable(OldHttpErrorHandleUtil.handle(e))); - return; + return Single.create((SingleOnSubscribe) emitter -> { + //获取登录信息 + try { + LoginResult loginResult = api.login( + phoneAreaCode, + DESUtils.DESAndBase64(account), + VersionUtil.getLocalName(BasicConfig.INSTANCE.getAppContext()), + "erban-client", + DESUtils.DESAndBase64(account), + DESAndBase64(password), + "password", + "uyzjdhds", + code, + yiDunToken, + shuMeiDeviceId + ).blockingGet(); + if (!loginResult.isSuccess()) { + if (loginResult.getCode() == CODE_BAN_ACCOUNT || loginResult.getCode() == CODE_BAN_DEVICE) { + emitter.onError(new BanAccountException(loginResult.getReason(), loginResult.getDate())); + } else if (loginResult.getCode() == CODE_ACCOUNT_CANCEL) { + emitter.onError(new AccountCancelException(loginResult.getMessage(), loginResult.getErbanNo(), loginResult.getCancelDate())); + } else if (loginResult.getCode() == SUPER_CODE_SHOW_CODE) { + //是否是超管 + if (loginResult.getSuperCodeVerify() == 1) { + emitter.onError(new IsSuperAdminException(loginResult.getMessage())); + } else { + emitter.onError(new Throwable(loginResult.getMessage())); } - //获取tick - try { - TicketResult ticketResult = requestTicket().blockingGet(); - if (!ticketResult.isSuccess()) { - emitter.onError(new Throwable(ticketResult.getMessage())); - return; - } - ticketInfo = ticketResult.getData(); - DemoCache.saveTicketInfo(ticketInfo); - - } catch (Exception e) { - emitter.onError(new Throwable(OldHttpErrorHandleUtil.handle(e))); - return; - } - emitter.onSuccess(ResUtil.getString(R.string.xchat_android_core_auth_authmodel_02)); + } else { + emitter.onError(new Throwable(loginResult.getMessage())); } - }) + return; + } + currentAccountInfo = loginResult.getData(); + DemoCache.saveCurrentAccountInfo(currentAccountInfo); + //成功获取到uid后,就通知首页刷新审核中状态的数据 + EventBus.getDefault().post(new GetCurrentUidEvent(true)); + } catch (Exception e) { + emitter.onError(new Throwable(OldHttpErrorHandleUtil.handle(e))); + return; + } + //获取tick + try { + TicketResult ticketResult = requestTicket().blockingGet(); + if (!ticketResult.isSuccess()) { + emitter.onError(new Throwable(ticketResult.getMessage())); + return; + } + ticketInfo = ticketResult.getData(); + DemoCache.saveTicketInfo(ticketInfo); + + } catch (Exception e) { + emitter.onError(new Throwable(OldHttpErrorHandleUtil.handle(e))); + return; + } + emitter.onSuccess(ResUtil.getString(R.string.xchat_android_core_auth_authmodel_02)); + }) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .flatMap(new Function>() { @@ -1150,31 +1141,6 @@ public class AuthModel extends BaseModel implements IAuthModel { @Field("shuMeiDeviceId") String shuMeiDeviceId ); - - /** - * 登录接口 - * - * @param phone - * @param version - * @param client_id - * @param username - * @param password - * @param grant_type - * @param client_secret - * @return - */ - @FormUrlEncoded - @POST("/oauth/token") - Single loginForOldMember(@Field("phone") String phone, - @Field("version") String version, - @Field("client_id") String client_id, - @Field("username") String username, - @Field("password") String password, - @Field("grant_type") String grant_type, - @Field("client_secret") String client_secret, - @Field("operateType") int type, - @Field("qqOpenid") String openid); - /** * 登出接口 * diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/family/model/FamilyModel.java b/core/src/main/java/com/yizhuan/xchat_android_core/family/model/FamilyModel.java index 55a809279..f615e9dea 100644 --- a/core/src/main/java/com/yizhuan/xchat_android_core/family/model/FamilyModel.java +++ b/core/src/main/java/com/yizhuan/xchat_android_core/family/model/FamilyModel.java @@ -120,19 +120,12 @@ public class FamilyModel extends BaseModel implements IFamilyModel { @Subscribe(threadMode = ThreadMode.MAIN) public void onLoginEvent(LoginEvent event) { - Logger.i("FamilyModel", ResUtil.getString(R.string.family_model_familymodel_01)); -// syncMyFamilyFromServer().subscribe(); - - if (null == getCustomServiceInfo()){ -// loadFamilyCustomServiceInfo().subscribe(); - } } @Subscribe(threadMode = ThreadMode.MAIN) public void onLogoutEvent(LogoutEvent event) { Logger.i("FamilyModel", ResUtil.getString(R.string.family_model_familymodel_02)); setMyFamily(null); - }