青少年模式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

@@ -2,15 +2,6 @@ package com.mango.moshen.application;
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.level.event.CharmLevelUpEvent;
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.SharedPreferenceUtils;
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.Subscribe;
@@ -76,6 +77,7 @@ public class GlobalHandleManager {
public void onReceiveLotteryActivity(LotteryInfo lotteryInfo) {
Activity activity = getActivity();
if (activity == null) return;
if (UserUtils.isPmMode()) return;
LotteryDialogManager.checkLotteryDialog(activity);
}
@@ -83,6 +85,7 @@ public class GlobalHandleManager {
public void onVipUpgradeEvent(VipUpgradeEvent vipUpgradeEvent) {
Activity activity = getActivity();
if (activity == null) return;
if (UserUtils.isPmMode()) return;
UserModel.get().onlyUpdateLoginUserInfoCache();
VipUpgradeDialog.newInstance(vipUpgradeEvent.getVipInfo()).show(activity);
}
@@ -91,6 +94,7 @@ public class GlobalHandleManager {
public void onCpInviteEvent(CpInviteInfo entity) {
Activity activity = getActivity();
if (activity == null) return;
if (UserUtils.isPmMode()) return;
CpGlobalDialog.newInstance(entity, activity).openDialog();
}
@@ -98,11 +102,13 @@ public class GlobalHandleManager {
public void onNewUserChargeEvent(NewUserChargeEvent event) {
Activity activity = getActivity();
if (activity == null) return;
if (UserUtils.isPmMode()) return;
new NewUserChargePrizeDialog(activity, event.getChargeProdTitle(), event.getFirstChargeRewardList()).openDialog();
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onShowCommonWebEvent(ShowCommonWebEvent event) {
if (UserUtils.isPmMode()) return;
CommonWebViewActivity.start(event.getContext(), event.getUrl());
}
@@ -114,6 +120,7 @@ public class GlobalHandleManager {
if (UserModel.get().getCacheLoginUserInfo() == null) {
return;
}
if (UserUtils.isPmMode()) return;
CheckLostUserInfo checkLostUserInfo = (CheckLostUserInfo) event.getData();
@@ -128,6 +135,7 @@ public class GlobalHandleManager {
Activity activity = getActivity();
if (activity == null) return;
if (AvRoomDataManager.get().isSelfGamePlaying()) return;
if (UserUtils.isPmMode()) return;
LevelUpDialog.start(activity, event.getLevelName(), true);
}
@@ -136,6 +144,7 @@ public class GlobalHandleManager {
Activity activity = getActivity();
if (activity == null) return;
if (AvRoomDataManager.get().isSelfGamePlaying()) return;
if (UserUtils.isPmMode()) return;
LevelUpDialog.start(activity, event.getLevelName(), false);
}

View File

@@ -8,6 +8,10 @@ import android.view.View;
import android.view.ViewGroup;
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.mango.moshen.R;
import com.mango.moshen.base.BaseBindingActivity;
@@ -94,9 +98,21 @@ public class PatriarchPwdActivity extends BaseBindingActivity<ActivityPatriarchP
isParentMode ? 0 : 1)
.subscribe(s -> {
toast(isParentMode ? "青少年模式已关闭" : "青少年模式已开启");
DemoCache.savePmMode(!isParentMode);
UserModel.get().getCacheLoginUserInfo().setParentMode(!isParentMode);
UserModel.get().getCacheLoginUserInfo().setHasSetParentPwd(true);
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();
});
}

View File

@@ -10,6 +10,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
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.support.glide.GlideApp;
import com.opensource.svgaplayer.SVGADrawable;
@@ -124,6 +125,10 @@ public class MainRedPointTab extends RelativeLayout {
@SuppressLint("SetTextI18n")
public void setNumber(int number) {
//原谅我吧,我也不想写这样的代码
if (UserUtils.isPmMode()) {
number = 0;
}
if (mTvNum instanceof BubbleView) {
((BubbleView) mTvNum).setNumText(number);
} else {

View File

@@ -1,5 +1,6 @@
package com.mango.moshen.utils;
import com.mango.core.DemoCache;
import com.mango.core.auth.AuthModel;
import com.mango.core.manager.AvRoomDataManager;
import com.mango.core.user.UserModel;
@@ -35,7 +36,8 @@ public class UserUtils {
}
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:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="10dp"
android:background="@color/bg_normal_1c1b22"
android:onClick="@{click}"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
@@ -714,10 +714,11 @@
android:id="@+id/ll_pm_mode"
android:layout_width="match_parent"
android:layout_height="44dp"
android:gravity="center_vertical"
android:layout_marginStart="15dp"
android:layout_marginTop="10dp"
android:layout_marginEnd="15dp"
android:background="@drawable/shape_white_8dp_round"
android:gravity="center_vertical"
android:onClick="@{click}">
<com.mango.xchat_android_library.widget.DrawableCenterTextView
@@ -740,12 +741,12 @@
<TextView
android:layout_width="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_marginEnd="12dp"
android:drawableEnd="@drawable/arrow_right_3"
android:drawablePadding="5dp"
android:includeFontPadding="false"
android:text="已开启"
android:textColor="#CCCCCC"
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_SPEED_MSG_COUNT = "key_speed_msg_count";
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;
@@ -348,5 +349,12 @@ public class DemoCache {
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);
}
}