Linjiajia
2023-07-25 82e57df230ecb744af6c8865f80870ba03c86d89
app/src/main/java/com/application/zhangshi_app_android/ui/main/MainActivity.java
@@ -1,9 +1,17 @@
package com.application.zhangshi_app_android.ui.main;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.MenuItem;
import android.view.View;
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;
@@ -13,12 +21,17 @@
import com.android.app_base.manager.AppManager;
import com.application.zhangshi_app_android.BR;
import com.application.zhangshi_app_android.R;
import com.application.zhangshi_app_android.bean.UpdateVersionBean;
import com.application.zhangshi_app_android.databinding.ActivityMainBinding;
import com.application.zhangshi_app_android.ui.dialog.VersionUpdateDialog;
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.personal_center.PersonalCenterFragment;
import com.blankj.utilcode.util.AppUtils;
import com.blankj.utilcode.util.ToastUtils;
import com.google.android.material.navigation.NavigationBarView;
import java.io.Serializable;
/**
 * @author Ljj
@@ -26,6 +39,7 @@
 * @desc app主页
 */
public class MainActivity extends BaseActivity<ActivityMainBinding, MainViewModel> {
    BaseVp2FragmentAdapter<BaseFragment> mPagerAdapter;
    @Override
    public int getLayoutId() {
        return R.layout.activity_main;
@@ -42,7 +56,7 @@
    @Override
    public void initView() {
        BaseVp2FragmentAdapter<BaseFragment> mPagerAdapter = new BaseVp2FragmentAdapter<>(this);
        mPagerAdapter = new BaseVp2FragmentAdapter<>(this);
        mPagerAdapter.addFragment(HomeFragment.newInstance());
        mPagerAdapter.addFragment(FunctionFragment.newInstance());
        mPagerAdapter.addFragment(PersonalCenterFragment.newInstance());
@@ -55,7 +69,7 @@
            }
        });
        binding.mainVp.setUserInputEnabled(false);
        binding.mainVp.setOffscreenPageLimit(3);
        // 不使用图标默认变色
        binding.mainBnv.setItemIconTintList(null);
        binding.mainBnv.setOnItemSelectedListener(new NavigationBarView.OnItemSelectedListener() {
@@ -81,12 +95,28 @@
    @Override
    public void initData() {
        viewModel.getUpdateVersion();
    }
    @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.isForceUpdate()){
                        dialogBuilder.setCancelable(false);
                        dialogBuilder.setCanceledOnTouchOutside(false);
                    }
                    dialogBuilder.show();
                }
            }
        });
    }
    @Override
@@ -106,4 +136,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, HomeFragment.class);
    }
    public static void start(Context context, Class<? extends BaseFragment> 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);
    }
}