From 590c1cff46b105d774271f950caa9f65523f05c1 Mon Sep 17 00:00:00 2001
From: Linjiajia <319408893@qq.com>
Date: 星期五, 29 十二月 2023 20:20:40 +0800
Subject: [PATCH] 1、增加护眼模式主题\n2、修复显示问题

---
 app/src/main/java/com/application/zhangshi_app_android/ui/main/MainActivity.java |  143 ++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 134 insertions(+), 9 deletions(-)

diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/main/MainActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/main/MainActivity.java
index a44e4f2..9892470 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/main/MainActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/main/MainActivity.java
@@ -1,22 +1,37 @@
 package com.application.zhangshi_app_android.ui.main;
 
 
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.text.TextUtils;
+import android.util.TypedValue;
+import android.view.Menu;
 import android.view.MenuItem;
 
 import androidx.annotation.NonNull;
+import androidx.fragment.app.Fragment;
+import androidx.lifecycle.Observer;
 import androidx.viewpager2.widget.ViewPager2;
 
 import com.android.app_base.base.adapter.BaseVp2FragmentAdapter;
-import com.android.app_base.base.view.BaseActivity;
 import com.android.app_base.base.view.BaseFragment;
 import com.android.app_base.helper.DoubleClickHelper;
 import com.android.app_base.manager.AppManager;
+import com.android.app_base.manager.UserManager;
+import com.android.app_base.utils.rxbus.MessageEvent;
+import com.android.app_base.utils.rxbus.RxBus;
 import com.application.zhangshi_app_android.BR;
 import com.application.zhangshi_app_android.R;
+import com.application.zhangshi_app_android.bean.GrowthExperienceInformationBean;
+import com.application.zhangshi_app_android.bean.UpdateVersionBean;
 import com.application.zhangshi_app_android.databinding.ActivityMainBinding;
-import com.application.zhangshi_app_android.ui.function.FunctionFragment;
-import com.application.zhangshi_app_android.ui.home.HomeFragment;
+import com.application.zhangshi_app_android.ui.DLBaseActivity;
+import com.application.zhangshi_app_android.ui.dialog.UpdateDialog;
+import com.application.zhangshi_app_android.ui.function.HomeFragment;
+import com.application.zhangshi_app_android.ui.home.TreeFragment;
 import com.application.zhangshi_app_android.ui.personal_center.PersonalCenterFragment;
+import com.blankj.utilcode.util.AppUtils;
 import com.blankj.utilcode.util.ToastUtils;
 import com.google.android.material.navigation.NavigationBarView;
 
@@ -25,7 +40,14 @@
  * @date 2023.3.15
  * @desc app涓婚〉
  */
-public class MainActivity extends BaseActivity<ActivityMainBinding, MainViewModel> {
+public class MainActivity extends DLBaseActivity<ActivityMainBinding, MainViewModel> {
+    BaseVp2FragmentAdapter<BaseFragment> mPagerAdapter;
+
+    @Override
+    protected boolean isDrawerLayoutEnabled() {
+        return false;
+    }
+
     @Override
     public int getLayoutId() {
         return R.layout.activity_main;
@@ -38,13 +60,15 @@
 
     @Override
     public void initParam() {
+
     }
+
 
     @Override
     public void initView() {
-        BaseVp2FragmentAdapter<BaseFragment> mPagerAdapter = new BaseVp2FragmentAdapter<>(this);
+        mPagerAdapter = new BaseVp2FragmentAdapter<>(this);
         mPagerAdapter.addFragment(HomeFragment.newInstance());
-        mPagerAdapter.addFragment(FunctionFragment.newInstance());
+        mPagerAdapter.addFragment(TreeFragment.newInstance());
         mPagerAdapter.addFragment(PersonalCenterFragment.newInstance());
         binding.mainVp.setAdapter(mPagerAdapter);
         binding.mainVp.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
@@ -55,7 +79,7 @@
             }
         });
         binding.mainVp.setUserInputEnabled(false);
-
+        binding.mainVp.setOffscreenPageLimit(3);
         // 涓嶄娇鐢ㄥ浘鏍囬粯璁ゅ彉鑹�
         binding.mainBnv.setItemIconTintList(null);
         binding.mainBnv.setOnItemSelectedListener(new NavigationBarView.OnItemSelectedListener() {
@@ -65,7 +89,7 @@
                     case R.id.navigation_home:
                         binding.mainVp.setCurrentItem(0);
                         return true;
-                    case R.id.navigation_function:
+                    case R.id.navigation_tree:
                         binding.mainVp.setCurrentItem(1);
                         return true;
                     case R.id.navigation_personal_center:
@@ -77,17 +101,101 @@
                 return false;
             }
         });
+        Menu menu = binding.mainBnv.getMenu();
+        // 鑾峰彇褰撳墠涓婚涓殑鑿滃崟鍥炬爣璧勬簮
+        TypedValue typedValue1 = new TypedValue();
+        getTheme().resolveAttribute(R.attr.menuIconHome, typedValue1, true);
+        int icon1ResId = typedValue1.resourceId;
+        TypedValue typedValue2 = new TypedValue();
+        getTheme().resolveAttribute(R.attr.menuIconTree, typedValue2, true);
+        int icon2ResId = typedValue2.resourceId;
+        TypedValue typedValue3 = new TypedValue();
+        getTheme().resolveAttribute(R.attr.menuIconUser, typedValue3, true);
+        int icon3ResId = typedValue3.resourceId;
+        // 璁剧疆鑿滃崟椤瑰浘鏍�
+        menu.findItem(R.id.navigation_home).setIcon(icon1ResId);
+        menu.findItem(R.id.navigation_tree).setIcon(icon2ResId);
+        menu.findItem(R.id.navigation_personal_center).setIcon(icon3ResId);
     }
 
     @Override
     public void initData() {
-
+        viewModel.getUpdateVersion();
+        if (TextUtils.isEmpty(UserManager.getInstance().getUserName()) || TextUtils.isEmpty(UserManager.getInstance().getUserAvatar())) {
+            viewModel.getInfo();
+        }
     }
 
     @Override
     public void initLiveDataObserve() {
+        viewModel.getUpdateVersionBeanLiveData().observe(this, new Observer<UpdateVersionBean>() {
+            @Override
+            public void onChanged(UpdateVersionBean updateVersionBean) {
+                if(updateVersionBean != null && updateVersionBean.getVersionCode()> AppUtils.getAppVersionCode()&&!TextUtils.isEmpty(updateVersionBean.getAppUrl())){
+//                    VersionUpdateDialog.Builder dialogBuilder = new VersionUpdateDialog.Builder(getSelfActivity())
+//                            .setContent(updateVersionBean.getContent())
+//                            .setDownloadUrl(updateVersionBean.getAppUrl())
+//                    ;
+//                    if(updateVersionBean.getForceUpdate() == 1){
+//                        dialogBuilder.setCancelable(false);
+//                        dialogBuilder.setCanceledOnTouchOutside(false);
+//                    }
+//                    dialogBuilder.show();
+
+                    new UpdateDialog.Builder(getSelfActivity())
+                            // 鐗堟湰鍚�
+                            .setVersionName(updateVersionBean.getVersionName())
+                            // 鏄惁寮哄埗鏇存柊
+                            .setForceUpdate(updateVersionBean.getForceUpdate()==1)
+                            // 鏇存柊鏃ュ織
+                            .setUpdateLog(updateVersionBean.getContent())
+                            // 涓嬭浇 URL
+                            .setDownloadUrl(updateVersionBean.getAppUrl())
+                            // 鏂囦欢 MD5
+                            .setFileMd5(updateVersionBean.getMd5())
+                            .show();
+                }
+            }
+        });
+
+        viewModel.getInfoLiveData().observe(this, new Observer<GrowthExperienceInformationBean>() {
+            @Override
+            public void onChanged(GrowthExperienceInformationBean informationBean) {
+                if(informationBean != null){
+                    UserManager.getInstance().setUserName(informationBean.getNickName());
+                    UserManager.getInstance().setUserAvatar(informationBean.getImg());
+                    RxBus.getInstance().post(new MessageEvent(MessageEvent.EVENT_UPDATE_USER_INFO,informationBean));
+                }
+
+            }
+        });
 
     }
+
+    @Override
+    protected void onNewIntent(Intent intent) {
+        super.onNewIntent(intent);
+        switchFragment(mPagerAdapter.getFragmentIndex((Class<? extends Fragment>) intent.getSerializableExtra(INTENT_KEY_IN_FRAGMENT_CLASS)));
+    }
+
+    private void switchFragment(int fragmentIndex) {
+        if (fragmentIndex == -1) {
+            return;
+        }
+
+        switch (fragmentIndex) {
+            case 0:
+            case 1:
+            case 2:
+            case 3:
+                binding.mainVp.setCurrentItem(fragmentIndex);
+                binding.mainBnv.setSelectedItemId(binding.mainBnv.getMenu().getItem(fragmentIndex).getItemId());
+                break;
+            default:
+                break;
+        }
+    }
+
 
     @Override
     protected void onDestroy() {
@@ -106,4 +214,21 @@
             ToastUtils.showShort("鍐嶆寜涓�娆¢��鍑�");
         }
     }
+
+    private static final String INTENT_KEY_IN_FRAGMENT_INDEX = "fragmentIndex";
+    private static final String INTENT_KEY_IN_FRAGMENT_CLASS = "fragmentClass";
+
+    public static void start(Context context) {
+        start(context, TreeFragment.class);
+    }
+
+    public static void start(Context context, Class<? extends Fragment> fragmentClass) {
+        Intent intent = new Intent(context, MainActivity.class);
+        intent.putExtra(INTENT_KEY_IN_FRAGMENT_CLASS, fragmentClass);
+        if (!(context instanceof Activity)) {
+            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+        }
+        context.startActivity(intent);
+    }
+
 }

--
Gitblit v1.9.1