From 63608b5dca9eebb6fa2cb1a8652b395f1d910c3e Mon Sep 17 00:00:00 2001 From: 张钢 <floatgang@163.com> Date: 星期一, 02 九月 2024 13:52:17 +0800 Subject: [PATCH] 对新接口进行了适配 --- app/src/main/java/com/application/zhangshi_app_android/ui/main/MainActivity.java | 145 +++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 136 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..36e1f8b 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,38 @@ 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.Log; +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 +41,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 +61,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 +80,7 @@ } }); binding.mainVp.setUserInputEnabled(false); - + binding.mainVp.setOffscreenPageLimit(3); // 涓嶄娇鐢ㄥ浘鏍囬粯璁ゅ彉鑹� binding.mainBnv.setItemIconTintList(null); binding.mainBnv.setOnItemSelectedListener(new NavigationBarView.OnItemSelectedListener() { @@ -65,7 +90,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 +102,102 @@ 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()); + UserManager.getInstance().setClanId(informationBean.getClanId()); + 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 +216,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