青少年模式部分功能不可用

This commit is contained in:
huangjian
2022-09-28 16:32:35 +08:00
parent fd923e1b31
commit 0f79d17e80
16 changed files with 188 additions and 11 deletions

View File

@@ -25,6 +25,9 @@ import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentTransaction;
import androidx.lifecycle.ViewModelProvider;
import com.mango.moshen.home.fragment.PmModeFragment;
import com.mango.moshen.ui.patriarch.PmModeChangeEvent;
import com.mango.moshen.utils.UserUtils;
import com.netease.nim.uikit.StatusBarUtil;
import com.netease.nim.uikit.common.util.log.LogUtil;
import com.netease.nim.uikit.common.util.string.StringUtil;
@@ -314,6 +317,7 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
}
private void checkShowAnchorCardView() {
if (UserUtils.isPmMode()) return;
if (touchRunnable != null || !mResumed || AvRoomDataManager.get().mCurrentRoomInfo != null)
return;
int anchorCardViewType = DemoCache.readAnchorCardView();
@@ -611,7 +615,19 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
@Override
public void onTabClick(int tabType) {
Fragment showFragment = fragmentArray.get(tabType);
Fragment showFragment;
//青少年模式下,除了我的Tab,固定显示PmModeFragment
if (UserUtils.isPmMode() && tabType != MainTabType.TAB_TYPE_ME) {
int tempTabType = MainTabType.TAB_TYPE_PM_MODE;
showFragment = fragmentArray.get(tempTabType);
if (showFragment == null) {
showFragment = PmModeFragment.Companion.newInstance();
fragmentArray.put(tempTabType, showFragment);
}
} else {
showFragment = fragmentArray.get(tabType);
}
if (showFragment == tempFragment) return;
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
@@ -665,6 +681,8 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
}
});
checkShowAnchorCardView();
onTabClick(mCurrentTabType);
}
@@ -690,6 +708,7 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
@SuppressLint("CheckResult")
private void handleChannelPageInfo() {
if (UserUtils.isPmMode()) return;
if (handleSplashJump()) return;
if (handleLinkedJump()) return;
@@ -925,6 +944,11 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
}
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onPmModeChangeEvent(PmModeChangeEvent event) {
onTabClick(mCurrentTabType);
}
@Override
public void onClick(View v) {
switch (v.getId()) {

View File

@@ -7,6 +7,7 @@ import android.util.Log;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.coorchice.library.utils.LogUtils;
import com.mango.moshen.utils.UserUtils;
import com.netease.nimlib.sdk.NimIntent;
import com.netease.nimlib.sdk.msg.constant.MsgTypeEnum;
import com.netease.nimlib.sdk.msg.model.IMMessage;
@@ -64,6 +65,10 @@ public class NimMiddleActivity extends BaseActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.i(TAG, "NimMiddleActivity");
if (UserUtils.isPmMode()){
finish();
return;
}
Intent intent = getIntent();
if (intent != null) {
try {

View File

@@ -628,6 +628,7 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
private void onEnterRoom() {
mRoomInfo = AvRoomDataManager.get().mCurrentRoomInfo;
showRedPackage(AvRoomDataManager.get().mCurrentRoomInfo);
Logger.i("进入房间成功:" + mRoomInfo.getRoomId());
dismissDialog();
if (AvRoomDataManager.get().isSingleRoom() && DemoCache.readSingleRoomTip()) {

View File

@@ -969,6 +969,7 @@ public abstract class BaseActivity extends RxAppCompatActivity
* @return
*/
private boolean isNeedToHandleBroadcastMessageActivity() {
if (UserUtils.isPmMode()) return false;
List<Class> acts = new ArrayList<>();
acts.add(LoginPhoneActivity.class);
acts.add(LoginCodeActivity.class);

View File

@@ -40,7 +40,8 @@ class ContactsListFragment : BaseViewBindingFragment<FragmentContactListBinding>
dialogManager.showOkCancelDialog(getString(R.string.tips_clear_unread_count),
getString(R.string.text_canle), getString(R.string.tips_ok_label_clear),
object : AbsOkDialogListener() {
override fun onOk() {}
override fun onOk() {
}
override fun onCancel() {
EventBus.getDefault().post(ContactTrashEvent())
}

View File

@@ -59,6 +59,8 @@ import com.mango.core.user.bean.UserInfo
import com.mango.core.user.event.LoginUserInfoUpdateEvent
import com.mango.core.utils.CurrentTimeUtils
import com.mango.core.utils.StarUtils
import com.mango.moshen.ui.patriarch.PatriarchModeActivity
import com.mango.moshen.utils.UserUtils
import com.mango.xchat_android_library.utils.FormatUtils
import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers
@@ -179,7 +181,8 @@ class MeFragment : BaseFragment(), View.OnClickListener {
mBinding.ivVipIcon.isVisible = true
mBinding.flVipSeek.isVisible = true
mBinding.ivVipIcon.load(it.vipIcon)
mBinding.tvVipDesc.text = "还差${RoomRankDialogUtils.getRoomRankValueText(it.levelUpScore)}权力值升级"
mBinding.tvVipDesc.text =
"还差${RoomRankDialogUtils.getRoomRankValueText(it.levelUpScore)}权力值升级"
mBinding.tvVipName.text = it.vipName
mBinding.tvNextVipName.text = it.nextVipName
mBinding.seekBarVip.max = it.levelUpScore
@@ -331,6 +334,8 @@ class MeFragment : BaseFragment(), View.OnClickListener {
setUserLevel(it.userLevelVo)
initNewUserCharge(it)
setWalletInfo()
mBinding.flPmMode.isVisible = it.isParentMode
mBinding.meItemSkill.isVisible = !it.isParentMode
}
}
@@ -431,8 +436,10 @@ class MeFragment : BaseFragment(), View.OnClickListener {
override fun onClick(v: View) {
when (v.id) {
R.id.iv_user_head, R.id.rl_user_info ->
R.id.iv_user_head, R.id.rl_user_info -> {
if (UserUtils.isPmMode()) return
mUserInfo?.let { UIHelper.showUserInfoAct(mContext, it.uid) }
}
R.id.iv_edit ->
mUserInfo?.let { UIHelper.showUserInfoModifyAct(mContext, it.uid) }
@@ -477,6 +484,7 @@ class MeFragment : BaseFragment(), View.OnClickListener {
"usercenter_nugift_pop_click"
)
}
R.id.ll_pm_mode -> PatriarchModeActivity.start(mContext)
else -> {}
}
}

View File

@@ -0,0 +1,40 @@
package com.mango.moshen.home.fragment
import android.os.Bundle
import androidx.fragment.app.activityViewModels
import androidx.recyclerview.widget.LinearLayoutManager
import com.mango.moshen.base.BaseViewBindingFragment
import com.mango.moshen.common.EmptyViewHelper
import com.mango.moshen.databinding.FragmentRoomHotBinding
import com.mango.moshen.home.HomeViewModel
import com.mango.moshen.home.adapter.RoomHotAdapter
import com.mango.moshen.ui.utils.RVDelegate
import com.mango.core.home.bean.HomeRoomInfo
import com.mango.core.home.event.RefreshHomeDataEvent
import com.mango.moshen.R
import com.mango.moshen.base.BaseFragment
import org.greenrobot.eventbus.EventBus
import org.greenrobot.eventbus.Subscribe
import org.greenrobot.eventbus.ThreadMode
class PmModeFragment : BaseFragment() {
companion object {
fun newInstance(): PmModeFragment {
val args = Bundle()
val fragment = PmModeFragment()
fragment.arguments = args
return fragment
}
}
override fun initiate() {
}
override fun getRootLayoutId(): Int {
return R.layout.fragment_pm_mode
}
}

View File

@@ -16,6 +16,8 @@ import com.mango.core.user.UserModel;
import com.mango.core.user.bean.UserInfo;
import com.mango.xchat_android_library.annatation.ActLayoutRes;
import org.greenrobot.eventbus.EventBus;
@ActLayoutRes(R.layout.activity_patriarch_pwd)
public class PatriarchPwdActivity extends BaseBindingActivity<ActivityPatriarchPwdBinding> {
@@ -82,13 +84,19 @@ public class PatriarchPwdActivity extends BaseBindingActivity<ActivityPatriarchP
@SuppressLint("CheckResult")
private void commit() {
if (UserModel.get().getCacheLoginUserInfo() == null) {
toast("获取登录用户信息失败,请尝试重新登录");
return;
}
boolean isParentMode = UserModel.get().getCacheLoginUserInfo().isParentMode();
UserModel.get().openOrClosePatriarchMode(
DESAndBase64(mBinding.etPwd.getText().toString()),
UserModel.get().getCacheLoginUserInfo().isParentMode() ? 0 : 1)
DESAndBase64(mBinding.etPwd.getText().toString()),
isParentMode ? 0 : 1)
.subscribe(s -> {
toast(UserModel.get().getCacheLoginUserInfo().isParentMode() ? "青少年模式已关闭" : "青少年模式已开启");
UserModel.get().getCacheLoginUserInfo().setParentMode(!UserModel.get().getCacheLoginUserInfo().isParentMode());
toast(isParentMode ? "青少年模式已关闭" : "青少年模式已开启");
UserModel.get().getCacheLoginUserInfo().setParentMode(!isParentMode);
UserModel.get().getCacheLoginUserInfo().setHasSetParentPwd(true);
EventBus.getDefault().post(new PmModeChangeEvent(!isParentMode));
finish();
});
}

View File

@@ -0,0 +1,3 @@
package com.mango.moshen.ui.patriarch
data class PmModeChangeEvent(val isOpen: Boolean)

View File

@@ -34,4 +34,8 @@ public class UserUtils {
return 0;
}
public static boolean isPmMode() {
return UserModel.get().getCacheLoginUserInfo() != null && UserModel.get().getCacheLoginUserInfo().isParentMode();
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

View File

@@ -56,7 +56,7 @@
android:drawableStart="@drawable/shape_pm_point"
android:drawablePadding="10dp"
android:paddingRight="28dp"
android:text="针对青少年推送精选优化的内容"
android:text="部分功能可能无法使用"
android:textColor="@color/text_normal_c6c6e9"
android:textSize="14sp" />
@@ -101,7 +101,7 @@
android:gravity="center"
android:text="开启青少年模式"
android:background="@drawable/bg_common_cancel"
android:textColor="@color/color_7154EE"
android:textColor="@color/app_248cfe"
android:textSize="15sp" />

View File

@@ -243,6 +243,7 @@
android:text="技能卡"
android:textColor="@color/color_333333"
android:textSize="12sp"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@@ -602,7 +603,6 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/ll_setting_entrance"
app:layout_constraintVertical_bias="0"
tools:visibility="visible">
<FrameLayout
@@ -698,6 +698,62 @@
</FrameLayout>
<FrameLayout
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:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/rl_user_info">
<LinearLayout
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_marginEnd="15dp"
android:background="@drawable/shape_white_8dp_round"
android:onClick="@{click}">
<com.mango.xchat_android_library.widget.DrawableCenterTextView
android:id="@+id/tv_open_pm_mode"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginStart="12dp"
android:drawableStart="@drawable/ic_pm_mode_left"
android:includeFontPadding="false"
android:text="青少年模式中,暂无内容"
android:textColor="@color/color_333333"
android:textSize="12dp" />
<View
android:layout_width="0dp"
android:layout_height="1px"
android:layout_weight="1" />
<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:textColor="#CCCCCC"
android:textSize="12sp" />
</LinearLayout>
</FrameLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>

View File

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_pm_mode_opened" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:includeFontPadding="false"
android:text="青少年模式中,暂无内容"
android:textColor="@color/color_666666"
android:textSize="14sp"
/>
</LinearLayout>

View File

@@ -7,4 +7,5 @@ public interface MainTabType {
int TAB_TYPE_GAME = 3;
int TAB_TYPE_MSG = 4;
int TAB_TYPE_ME = 5;
int TAB_TYPE_PM_MODE = 6;
}