青少年模式bugfix

This commit is contained in:
huangjian
2022-10-13 17:21:30 +08:00
parent 0d26386ade
commit a7069bedb3
7 changed files with 59 additions and 18 deletions

View File

@@ -946,7 +946,7 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
@Subscribe(threadMode = ThreadMode.MAIN) @Subscribe(threadMode = ThreadMode.MAIN)
public void onPmModeChangeEvent(PmModeChangeEvent event) { public void onPmModeChangeEvent(PmModeChangeEvent event) {
onTabClick(mCurrentTabType); onTabClick(mCurrentTabType);
} }
@Override @Override

View File

@@ -2,15 +2,6 @@ package com.mango.moshen.application;
import android.app.Activity; import android.app.Activity;
import com.tencent.bugly.beta.Beta;
import com.trello.rxlifecycle3.components.support.RxAppCompatActivity;
import com.mango.moshen.avroom.newuserchargegift.NewUserChargePrizeDialog;
import com.mango.moshen.relation.cp.dialog.CpGlobalDialog;
import com.mango.moshen.ui.webview.CommonWebViewActivity;
import com.mango.moshen.ui.widget.LevelUpDialog;
import com.mango.moshen.ui.widget.RecallDialog;
import com.mango.moshen.ui.widget.lottery_dialog.LotteryDialogManager;
import com.mango.moshen.vip.VipUpgradeDialog;
import com.mango.core.activity.bean.LotteryInfo; import com.mango.core.activity.bean.LotteryInfo;
import com.mango.core.level.event.CharmLevelUpEvent; import com.mango.core.level.event.CharmLevelUpEvent;
import com.mango.core.level.event.LevelUpEvent; import com.mango.core.level.event.LevelUpEvent;
@@ -25,6 +16,16 @@ import com.mango.core.user.UserModel;
import com.mango.core.utils.ActivityUtil; import com.mango.core.utils.ActivityUtil;
import com.mango.core.utils.SharedPreferenceUtils; import com.mango.core.utils.SharedPreferenceUtils;
import com.mango.core.vip.VipUpgradeEvent; import com.mango.core.vip.VipUpgradeEvent;
import com.mango.moshen.avroom.newuserchargegift.NewUserChargePrizeDialog;
import com.mango.moshen.relation.cp.dialog.CpGlobalDialog;
import com.mango.moshen.ui.webview.CommonWebViewActivity;
import com.mango.moshen.ui.widget.LevelUpDialog;
import com.mango.moshen.ui.widget.RecallDialog;
import com.mango.moshen.ui.widget.lottery_dialog.LotteryDialogManager;
import com.mango.moshen.utils.UserUtils;
import com.mango.moshen.vip.VipUpgradeDialog;
import com.tencent.bugly.beta.Beta;
import com.trello.rxlifecycle3.components.support.RxAppCompatActivity;
import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.Subscribe;
@@ -76,6 +77,7 @@ public class GlobalHandleManager {
public void onReceiveLotteryActivity(LotteryInfo lotteryInfo) { public void onReceiveLotteryActivity(LotteryInfo lotteryInfo) {
Activity activity = getActivity(); Activity activity = getActivity();
if (activity == null) return; if (activity == null) return;
if (UserUtils.isPmMode()) return;
LotteryDialogManager.checkLotteryDialog(activity); LotteryDialogManager.checkLotteryDialog(activity);
} }
@@ -83,6 +85,7 @@ public class GlobalHandleManager {
public void onVipUpgradeEvent(VipUpgradeEvent vipUpgradeEvent) { public void onVipUpgradeEvent(VipUpgradeEvent vipUpgradeEvent) {
Activity activity = getActivity(); Activity activity = getActivity();
if (activity == null) return; if (activity == null) return;
if (UserUtils.isPmMode()) return;
UserModel.get().onlyUpdateLoginUserInfoCache(); UserModel.get().onlyUpdateLoginUserInfoCache();
VipUpgradeDialog.newInstance(vipUpgradeEvent.getVipInfo()).show(activity); VipUpgradeDialog.newInstance(vipUpgradeEvent.getVipInfo()).show(activity);
} }
@@ -91,6 +94,7 @@ public class GlobalHandleManager {
public void onCpInviteEvent(CpInviteInfo entity) { public void onCpInviteEvent(CpInviteInfo entity) {
Activity activity = getActivity(); Activity activity = getActivity();
if (activity == null) return; if (activity == null) return;
if (UserUtils.isPmMode()) return;
CpGlobalDialog.newInstance(entity, activity).openDialog(); CpGlobalDialog.newInstance(entity, activity).openDialog();
} }
@@ -98,11 +102,13 @@ public class GlobalHandleManager {
public void onNewUserChargeEvent(NewUserChargeEvent event) { public void onNewUserChargeEvent(NewUserChargeEvent event) {
Activity activity = getActivity(); Activity activity = getActivity();
if (activity == null) return; if (activity == null) return;
if (UserUtils.isPmMode()) return;
new NewUserChargePrizeDialog(activity, event.getChargeProdTitle(), event.getFirstChargeRewardList()).openDialog(); new NewUserChargePrizeDialog(activity, event.getChargeProdTitle(), event.getFirstChargeRewardList()).openDialog();
} }
@Subscribe(threadMode = ThreadMode.MAIN) @Subscribe(threadMode = ThreadMode.MAIN)
public void onShowCommonWebEvent(ShowCommonWebEvent event) { public void onShowCommonWebEvent(ShowCommonWebEvent event) {
if (UserUtils.isPmMode()) return;
CommonWebViewActivity.start(event.getContext(), event.getUrl()); CommonWebViewActivity.start(event.getContext(), event.getUrl());
} }
@@ -114,6 +120,7 @@ public class GlobalHandleManager {
if (UserModel.get().getCacheLoginUserInfo() == null) { if (UserModel.get().getCacheLoginUserInfo() == null) {
return; return;
} }
if (UserUtils.isPmMode()) return;
CheckLostUserInfo checkLostUserInfo = (CheckLostUserInfo) event.getData(); CheckLostUserInfo checkLostUserInfo = (CheckLostUserInfo) event.getData();
@@ -128,6 +135,7 @@ public class GlobalHandleManager {
Activity activity = getActivity(); Activity activity = getActivity();
if (activity == null) return; if (activity == null) return;
if (AvRoomDataManager.get().isSelfGamePlaying()) return; if (AvRoomDataManager.get().isSelfGamePlaying()) return;
if (UserUtils.isPmMode()) return;
LevelUpDialog.start(activity, event.getLevelName(), true); LevelUpDialog.start(activity, event.getLevelName(), true);
} }
@@ -136,6 +144,7 @@ public class GlobalHandleManager {
Activity activity = getActivity(); Activity activity = getActivity();
if (activity == null) return; if (activity == null) return;
if (AvRoomDataManager.get().isSelfGamePlaying()) return; if (AvRoomDataManager.get().isSelfGamePlaying()) return;
if (UserUtils.isPmMode()) return;
LevelUpDialog.start(activity, event.getLevelName(), false); LevelUpDialog.start(activity, event.getLevelName(), false);
} }

View File

@@ -8,6 +8,10 @@ import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import com.mango.core.DemoCache;
import com.mango.core.room.bean.RoomInfo;
import com.mango.core.room.model.AvRoomModel;
import com.mango.xchat_android_library.net.rxnet.callback.CallBack;
import com.netease.nim.uikit.StatusBarUtil; import com.netease.nim.uikit.StatusBarUtil;
import com.mango.moshen.R; import com.mango.moshen.R;
import com.mango.moshen.base.BaseBindingActivity; import com.mango.moshen.base.BaseBindingActivity;
@@ -94,9 +98,21 @@ public class PatriarchPwdActivity extends BaseBindingActivity<ActivityPatriarchP
isParentMode ? 0 : 1) isParentMode ? 0 : 1)
.subscribe(s -> { .subscribe(s -> {
toast(isParentMode ? "青少年模式已关闭" : "青少年模式已开启"); toast(isParentMode ? "青少年模式已关闭" : "青少年模式已开启");
DemoCache.savePmMode(!isParentMode);
UserModel.get().getCacheLoginUserInfo().setParentMode(!isParentMode); UserModel.get().getCacheLoginUserInfo().setParentMode(!isParentMode);
UserModel.get().getCacheLoginUserInfo().setHasSetParentPwd(true); UserModel.get().getCacheLoginUserInfo().setHasSetParentPwd(true);
EventBus.getDefault().post(new PmModeChangeEvent(!isParentMode)); EventBus.getDefault().post(new PmModeChangeEvent(!isParentMode));
AvRoomModel.get().exitRoom(new CallBack<RoomInfo>() {
@Override
public void onSuccess(RoomInfo data) {
}
@Override
public void onFail(int code, String error) {
}
});
finish(); finish();
}); });
} }

View File

@@ -10,6 +10,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import com.bumptech.glide.load.resource.bitmap.CenterCrop; import com.bumptech.glide.load.resource.bitmap.CenterCrop;
import com.mango.moshen.utils.UserUtils;
import com.netease.nim.uikit.common.ui.draggablebubbles.BubbleView; import com.netease.nim.uikit.common.ui.draggablebubbles.BubbleView;
import com.netease.nim.uikit.support.glide.GlideApp; import com.netease.nim.uikit.support.glide.GlideApp;
import com.opensource.svgaplayer.SVGADrawable; import com.opensource.svgaplayer.SVGADrawable;
@@ -124,6 +125,10 @@ public class MainRedPointTab extends RelativeLayout {
@SuppressLint("SetTextI18n") @SuppressLint("SetTextI18n")
public void setNumber(int number) { public void setNumber(int number) {
//原谅我吧,我也不想写这样的代码
if (UserUtils.isPmMode()) {
number = 0;
}
if (mTvNum instanceof BubbleView) { if (mTvNum instanceof BubbleView) {
((BubbleView) mTvNum).setNumText(number); ((BubbleView) mTvNum).setNumText(number);
} else { } else {

View File

@@ -1,5 +1,6 @@
package com.mango.moshen.utils; package com.mango.moshen.utils;
import com.mango.core.DemoCache;
import com.mango.core.auth.AuthModel; import com.mango.core.auth.AuthModel;
import com.mango.core.manager.AvRoomDataManager; import com.mango.core.manager.AvRoomDataManager;
import com.mango.core.user.UserModel; import com.mango.core.user.UserModel;
@@ -35,7 +36,8 @@ public class UserUtils {
} }
public static boolean isPmMode() { public static boolean isPmMode() {
return UserModel.get().getCacheLoginUserInfo() != null && UserModel.get().getCacheLoginUserInfo().isParentMode(); return UserModel.get().getCacheLoginUserInfo() != null ?
UserModel.get().getCacheLoginUserInfo().isParentMode() : DemoCache.readPmMode();
} }
} }

View File

@@ -702,8 +702,8 @@
android:id="@+id/fl_pm_mode" android:id="@+id/fl_pm_mode"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_marginTop="10dp"
android:background="@color/bg_normal_1c1b22" android:background="@color/bg_normal_1c1b22"
android:onClick="@{click}"
android:visibility="gone" android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
@@ -714,10 +714,11 @@
android:id="@+id/ll_pm_mode" android:id="@+id/ll_pm_mode"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="44dp" android:layout_height="44dp"
android:gravity="center_vertical"
android:layout_marginStart="15dp" android:layout_marginStart="15dp"
android:layout_marginTop="10dp"
android:layout_marginEnd="15dp" android:layout_marginEnd="15dp"
android:background="@drawable/shape_white_8dp_round" android:background="@drawable/shape_white_8dp_round"
android:gravity="center_vertical"
android:onClick="@{click}"> android:onClick="@{click}">
<com.mango.xchat_android_library.widget.DrawableCenterTextView <com.mango.xchat_android_library.widget.DrawableCenterTextView
@@ -740,12 +741,12 @@
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:drawableEnd="@drawable/arrow_right_3"
android:text="已开启"
android:drawablePadding="5dp"
android:layout_marginEnd="12dp"
android:includeFontPadding="false"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_marginEnd="12dp"
android:drawableEnd="@drawable/arrow_right_3"
android:drawablePadding="5dp"
android:includeFontPadding="false"
android:text="已开启"
android:textColor="#CCCCCC" android:textColor="#CCCCCC"
android:textSize="12sp" /> android:textSize="12sp" />

View File

@@ -59,6 +59,7 @@ public class DemoCache {
private static final String KEY_KICK_OUT_ROOM = "kick_out_room"; private static final String KEY_KICK_OUT_ROOM = "kick_out_room";
private static final String KEY_SPEED_MSG_COUNT = "key_speed_msg_count"; private static final String KEY_SPEED_MSG_COUNT = "key_speed_msg_count";
private static final String KEY_COLLECTION_ROOM_INDEX = "key_collection_room_index"; private static final String KEY_COLLECTION_ROOM_INDEX = "key_collection_room_index";
private static final String KEY_PM_MODE = "key_pm_mode";
private static StatusBarNotificationConfig notificationConfig; private static StatusBarNotificationConfig notificationConfig;
@@ -348,5 +349,12 @@ public class DemoCache {
return SettingsPref.instance().getInt(KEY_COLLECTION_ROOM_INDEX, 0); return SettingsPref.instance().getInt(KEY_COLLECTION_ROOM_INDEX, 0);
} }
public static void savePmMode(boolean value) {
SettingsPref.instance().putBoolean(KEY_PM_MODE + AuthModel.get().getCurrentUid(), value);
}
public static boolean readPmMode() {
return SettingsPref.instance().getBoolean(KEY_PM_MODE + AuthModel.get().getCurrentUid(), false);
}
} }