首页底部Tab获取服务端配置

This commit is contained in:
huangjian
2022-01-17 15:50:30 +08:00
parent 6df8ada83d
commit bd9a8ab679
14 changed files with 349 additions and 270 deletions

View File

@@ -6,7 +6,6 @@ import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.text.TextUtils;
@@ -112,7 +111,6 @@ import com.yizhuan.erban.ui.widget.MainTabLayout;
import com.yizhuan.erban.ui.widget.RecallDialog;
import com.yizhuan.erban.utils.CleanLeakUtils;
import com.yizhuan.erban.utils.PushMessageHandler;
import com.yizhuan.erban.utils.UserUtils;
import com.yizhuan.xchat_android_core.Constants;
import com.yizhuan.xchat_android_core.UriProvider;
import com.yizhuan.xchat_android_core.auth.AuthModel;
@@ -123,8 +121,8 @@ import com.yizhuan.xchat_android_core.channel_page.model.ChannelPageModel;
import com.yizhuan.xchat_android_core.community.attachment.DynamicSysAttachment;
import com.yizhuan.xchat_android_core.community.event.SquareTaskEvent;
import com.yizhuan.xchat_android_core.community.event.UnReadCountEvent;
import com.yizhuan.xchat_android_core.home.bean.MainTabType;
import com.yizhuan.xchat_android_core.home.event.VisitorUnreadCountEvent;
import com.yizhuan.xchat_android_core.user.bean.ProtocolInfo;
import com.yizhuan.xchat_android_core.community.im.WorldDynamicAttachment;
import com.yizhuan.xchat_android_core.home.model.GameHomeModel;
import com.yizhuan.xchat_android_core.home.model.HomeModel;
@@ -151,6 +149,7 @@ import com.yizhuan.xchat_android_core.im.custom.bean.RedPackageAttachment;
import com.yizhuan.xchat_android_core.im.custom.bean.RedPacketAttachment;
import com.yizhuan.xchat_android_core.im.custom.bean.SysMsgAttachment;
import com.yizhuan.xchat_android_core.im.custom.bean.SysMsgV2Attachment;
import com.yizhuan.xchat_android_core.initial.InitialModel;
import com.yizhuan.xchat_android_core.level.event.CharmLevelUpEvent;
import com.yizhuan.xchat_android_core.level.event.LevelUpEvent;
import com.yizhuan.xchat_android_core.linked.LinkedModel;
@@ -160,8 +159,6 @@ import com.yizhuan.xchat_android_core.manager.AvRoomDataManager;
import com.yizhuan.xchat_android_core.manager.IMBroadcastManager;
import com.yizhuan.xchat_android_core.manager.IMMessageManager;
import com.yizhuan.xchat_android_core.manager.RoomEvent;
import com.yizhuan.xchat_android_core.market_verify.MarketVerifyModel;
import com.yizhuan.xchat_android_core.market_verify.event.MarketVerifyUpdateEvent;
import com.yizhuan.xchat_android_core.miniworld.bean.OpenAudioPartyAttachment;
import com.yizhuan.xchat_android_core.patriarch.event.CloseMinRoomEvent;
import com.yizhuan.xchat_android_core.patriarch.event.ImPushMsgPmLimitTimeEvent;
@@ -170,7 +167,6 @@ import com.yizhuan.xchat_android_core.pay.bean.ShowCommonWebEvent;
import com.yizhuan.xchat_android_core.public_chat_hall.attachment.AitMeAttachment;
import com.yizhuan.xchat_android_core.recall.bean.CheckLostUserInfo;
import com.yizhuan.xchat_android_core.recall.event.CheckLostUserEvent;
import com.yizhuan.xchat_android_core.redPacket.bean.RedPacketInfoV2;
import com.yizhuan.xchat_android_core.room.bean.RoomInfo;
import com.yizhuan.xchat_android_core.statistic.StatisticManager;
import com.yizhuan.xchat_android_core.statistic.protocol.StatisticsProtocol;
@@ -180,15 +176,12 @@ import com.yizhuan.xchat_android_core.user.event.LoadLoginUserInfoEvent;
import com.yizhuan.xchat_android_core.user.event.LoginUserInfoUpdateEvent;
import com.yizhuan.xchat_android_core.user.event.NeedBindPhoneEvent;
import com.yizhuan.xchat_android_core.user.event.NeedCompleteInfoEvent;
import com.yizhuan.xchat_android_core.utils.LogUtils;
import com.yizhuan.xchat_android_core.utils.SharedPreferenceUtils;
import com.yizhuan.xchat_android_core.utils.StringUtils;
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
import com.yizhuan.xchat_android_library.threadmgr.ThreadPoolManager;
import com.yizhuan.xchat_android_library.utils.AppMetaDataUtil;
import com.yizhuan.xchat_android_library.utils.JavaUtil;
import com.yizhuan.xchat_android_library.utils.codec.DESUtils;
import com.yizhuan.xchat_android_library.utils.pref.CommonPref;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
@@ -200,9 +193,6 @@ import java.util.ArrayList;
import java.util.List;
import io.flutter.embedding.android.FlutterFragment;
import io.reactivex.SingleObserver;
import io.reactivex.disposables.Disposable;
import io.reactivex.functions.Consumer;
import static com.yizhuan.xchat_android_core.channel_page.model.ChannelPageModel.KEY_FLAG_VALID_CHANNEL_PAGE;
@@ -226,7 +216,7 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
private LivingIconView userLivingView;
private View viewClose;
private MainTabLayout mMainTabLayout;
private int mCurrentMainPosition = MainTabLayout.MAIN_TAB_POS_HOME;
private int mCurrentTabType = MainTabType.TAB_TYPE_HOME;
/**
* 房间最小化动画换成属性动画原先的补间动画影响了activity的生命周期
*/
@@ -268,11 +258,11 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
};
{
fragmentArray.put(MainTabLayout.MAIN_TAB_POS_HOME, new HomeFragment());
fragmentArray.put(MainTabLayout.MAIN_TAB_POS_MSG, new ContactsListFragment());
fragmentArray.put(MainTabLayout.MAIN_TAB_POS_SQUARE, new SquareFragment());
fragmentArray.put(MainTabLayout.MAIN_TAB_POS_ME, new MeFragment());
fragmentArray.put(MainTabLayout.MAIN_TAB_POS_GAME, new GameFragment
fragmentArray.put(MainTabType.TAB_TYPE_HOME, new HomeFragment());
fragmentArray.put(MainTabType.TAB_TYPE_MSG, new ContactsListFragment());
fragmentArray.put(MainTabType.TAB_TYPE_SQUARE, new SquareFragment());
fragmentArray.put(MainTabType.TAB_TYPE_ME, new MeFragment());
fragmentArray.put(MainTabType.TAB_TYPE_GAME, new GameFragment
.CachedEngineFragmentBuilder(GameFragment.class, FlutterBoost.ENGINE_ID)
.url(BuildConfig.DEBUG ? RouterConstants.FLUTTER_PAGE_MAIN_DEBUG : RouterConstants.FLUTTER_PAGE_MAIN)
.build());
@@ -295,14 +285,13 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt(Constants.KEY_MAIN_POSITION, mCurrentMainPosition);
outState.putInt(Constants.KEY_MAIN_POSITION, mCurrentTabType);
}
@Override
protected void onRestoreInstanceState(@NotNull Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
mCurrentMainPosition = savedInstanceState.getInt(Constants.KEY_MAIN_POSITION);
mCurrentTabType = savedInstanceState.getInt(Constants.KEY_MAIN_POSITION);
}
@Override
@@ -311,31 +300,14 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
homeViewModel = new ViewModelProvider(this).get(HomeViewModel.class);
NimMiddleActivity.firstEnter = false;
if (savedInstanceState != null) {
mCurrentMainPosition = savedInstanceState.getInt(Constants.KEY_MAIN_POSITION);
mCurrentTabType = savedInstanceState.getInt(Constants.KEY_MAIN_POSITION);
}
Log.e(TAG, "onCreate: " + DESUtils.DESAndBase64("112030"));
setContentView(R.layout.activity_main);
//自动登录
AuthModel.get().autoLogin().subscribe(new SingleObserver<String>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onSuccess(String s) {
}
@Override
public void onError(Throwable e) {
onNeedLogin();
//toast(e.getMessage());
}
});
initTitleBar(getString(R.string.app_name));
AuthModel.get().autoLogin()
.doOnError(throwable -> onNeedLogin())
.subscribe();
initView();
//引导页
// startGuild();
initMaterialView();
onParseIntent();
updateDatas();
@@ -344,6 +316,9 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
initTeamSessionCustomization();
EventBus.getDefault().register(this);
otherModelInit();
InitialModel.get().getMainTabInfosLiveData().observe(this, mainTabInfos -> {
mMainTabLayout.setMainTabInfoList(mainTabInfos);
});
}
private void otherModelInit() {
@@ -497,11 +472,7 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
private void updateDatas() {
if ("baidutg".equals(AppMetaDataUtil.getChannelID())) {
mMainTabLayout.select(MainTabLayout.MAIN_TAB_POS_HOME);
} else {
mMainTabLayout.select(mCurrentMainPosition);
}
mMainTabLayout.setDefaultTabType(mCurrentTabType);
handleNimIntent();
}
@@ -535,11 +506,11 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
}
} else if (intent.hasExtra(GAME_TAB) && intent.getBooleanExtra(GAME_TAB, false)) {
if (mMainTabLayout != null) {
mMainTabLayout.select(MainTabLayout.MAIN_TAB_POS_GAME);
mMainTabLayout.setDefaultTabType(MainTabType.TAB_TYPE_GAME);
}
} else if (intent.hasExtra(MSG_TAB) && intent.getBooleanExtra(MSG_TAB, false)) {
if (mMainTabLayout != null) {
mMainTabLayout.select(MainTabLayout.MAIN_TAB_POS_MSG);
mMainTabLayout.setDefaultTabType(MainTabType.TAB_TYPE_MSG);
}
}
}
@@ -636,7 +607,7 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
Log.i("checkLostUser", "onLogin");
//登录成功查询未读信息数量
mMainTabLayout.setmUnReadDynamicCount(0);
mMainTabLayout.setUnReadDynamicCount(0);
int unreadCount = IMMessageManager.get().queryUnreadMsg();
mMainTabLayout.setMsgNum(unreadCount);
openCommunityNotice();
@@ -788,9 +759,9 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
@SuppressLint("RestrictedApi")
@Override
public void onTabClick(int position) {
public void onTabClick(int tabType) {
Fragment showFragment = fragmentArray.get(position);
Fragment showFragment = fragmentArray.get(tabType);
if (showFragment == tempFragment) return;
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
@@ -801,7 +772,7 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
if (tempFragment != null) transaction.hide(tempFragment);
tempFragment = showFragment;
if (!isDestroyed()) transaction.commitNowAllowingStateLoss();
mCurrentMainPosition = position;
mCurrentTabType = tabType;
}
@Override
@@ -815,14 +786,6 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
DaemonService.stop(MainActivity.this);
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onMarketVerifyUpdateEvent(MarketVerifyUpdateEvent event) {
//审核包隐藏tab
if (MarketVerifyModel.get().isMarketChecking()) {
mMainTabLayout.showOrHideTab(MainTabLayout.MAIN_TAB_POS_SQUARE, View.GONE);
}
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onReceiveRecallStatus(CheckLostUserEvent event) {
@@ -840,7 +803,7 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
}
public boolean isShowMeTab() {
return mCurrentMainPosition == MainTabLayout.MAIN_TAB_POS_ME;
return mCurrentTabType == MainTabType.TAB_TYPE_ME;
}
/**
@@ -1020,7 +983,7 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
@Subscribe(threadMode = ThreadMode.MAIN)
public void onUnReadCount(UnReadCountEvent event) {
mMainTabLayout.setmUnReadDynamicCount(event.getTotal());
mMainTabLayout.setUnReadDynamicCount(event.getTotal());
}
@Subscribe(threadMode = ThreadMode.MAIN)
@@ -1064,7 +1027,7 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
}
boolean isNimPush = intent.getBooleanExtra(NimMiddleActivity.EXTRA_IS_NIM_PUSH, false);
if (isNimPush && mMainTabLayout != null) {
mMainTabLayout.select(MainTabLayout.MAIN_TAB_POS_MSG);
mMainTabLayout.setDefaultTabType(MainTabType.TAB_TYPE_MSG);
}
}