浏览代码

修改bug

Pq 3 年之前
父节点
当前提交
c931679277

+ 3 - 0
BaseLibrary/src/main/java/com/cooleshow/base/constanst/Constants.java

@@ -18,4 +18,7 @@ public class Constants {
     public static final int PAY_ERROR_BY_NOT_INSTALL =2;//支付失败,未安装
     public static final int PAY_ERROR =3;//支付失败
     public static final int PAY_CANCEL =4;//支付取消
+
+
+    public static final String MAIN_PAGE_SELECT_POTION_KEY = "select_position";
 }

+ 2 - 0
BaseLibrary/src/main/java/com/cooleshow/base/constanst/RouteConstants.java

@@ -5,4 +5,6 @@ package com.cooleshow.base.constanst;
  * 路由跳转原生页面标记集合
  */
 public class RouteConstants {
+    public static final String A="homework";
+    public static final String PAGE_TAG_BUY_PRACTICE="buyPractice";//购买陪练课->跳转首页课表
 }

+ 11 - 0
BaseLibrary/src/main/java/com/cooleshow/base/utils/JumpUtils.java

@@ -5,6 +5,8 @@ import android.text.TextUtils;
 import com.alibaba.android.arouter.launcher.ARouter;
 import com.cooleshow.base.bean.RouteBean;
 import com.cooleshow.base.common.WebConstants;
+import com.cooleshow.base.constanst.Constants;
+import com.cooleshow.base.constanst.RouteConstants;
 import com.cooleshow.base.router.RouterPath;
 
 /**
@@ -22,6 +24,15 @@ public class JumpUtils {
 
         if (TextUtils.equals(action, ACTION_APP)) {
             //跳转原生页面
+            if (!TextUtils.isEmpty(routeBean.pageTag)) {
+                if (TextUtils.equals(routeBean.pageTag, RouteConstants.PAGE_TAG_BUY_PRACTICE)) {
+                    //购买陪练课,跳转首页课表
+                    ARouter.getInstance().build(RouterPath.APPCenter.PATH_HOME)
+                            .withInt(Constants.MAIN_PAGE_SELECT_POTION_KEY, 1)
+                            .navigation();
+                    return true;
+                }
+            }
         } else {
             //跳转H5页面
             if (TextUtils.isEmpty(routeBean.url)) {

+ 34 - 0
student/src/main/java/com/cooleshow/student/ui/main/MainActivity.java

@@ -1,6 +1,7 @@
 package com.cooleshow.student.ui.main;
 
 import android.Manifest;
+import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
 import android.text.TextUtils;
@@ -38,6 +39,8 @@ import java.util.ArrayList;
 
 import io.rong.imlib.RongIMClient;
 
+import static com.cooleshow.base.constanst.Constants.MAIN_PAGE_SELECT_POTION_KEY;
+
 /**
  * 创建日期:2022/5/25 18:02
  *
@@ -46,16 +49,47 @@ import io.rong.imlib.RongIMClient;
  */
 @Route(path = RouterPath.APPCenter.PATH_HOME)
 public class MainActivity extends BaseMVPActivity<ActivityMainBinding, MainPresenter> implements MainContract.MainView {
+
     private ArrayList<Fragment> mFragments = new ArrayList<>();
     private HomeFragment mHomeFragment;
     private MineFragment mMineFragment;
     private MallFragment shopMallFragment;
 
+    /**
+     * 打开首页并选中指定tab
+     *
+     * @param context
+     * @param pos
+     */
+    public static void openAndSelectPos(Context context, int pos) {
+        Intent intent = new Intent(context, MainActivity.class);
+        intent.putExtra(MAIN_PAGE_SELECT_POTION_KEY, pos);
+        context.startActivity(intent);
+    }
+
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         QMUIStatusBarHelper.setStatusBarLightMode(this);
         EventBus.getDefault().register(this);
+        parseIntent(getIntent());
+    }
+
+    @Override
+    protected void onNewIntent(Intent intent) {
+        super.onNewIntent(intent);
+        parseIntent(intent);
+    }
+
+    private void parseIntent(Intent intent) {
+        if (intent.hasExtra(MAIN_PAGE_SELECT_POTION_KEY)) {
+            //跳转选中某个tab
+            int selectPos = intent.getIntExtra(MAIN_PAGE_SELECT_POTION_KEY, 0);
+            if (selectPos >= mFragments.size()) {
+                return;
+            }
+            setPositionItem(selectPos);
+        }
     }
 
     @Override

+ 37 - 0
teacher/src/main/java/com/cooleshow/teacher/ui/main/MainActivity.java

@@ -1,6 +1,8 @@
 package com.cooleshow.teacher.ui.main;
 
 import android.Manifest;
+import android.content.Context;
+import android.content.Intent;
 import android.os.Bundle;
 import android.text.TextUtils;
 import android.view.MenuItem;
@@ -39,6 +41,8 @@ import androidx.fragment.app.Fragment;
 
 import io.rong.imlib.RongIMClient;
 
+import static com.cooleshow.base.constanst.Constants.MAIN_PAGE_SELECT_POTION_KEY;
+
 /**
  * Author by pq, Date on 2022/4/20.
  */
@@ -49,12 +53,25 @@ public class MainActivity extends BaseMVPActivity<ActivityMainBinding, MainPrese
     private MineFragment mMineFragment;
     private MallFragment shopMallFragment;
 
+    /**
+     * 打开首页并选中指定tab
+     *
+     * @param context
+     * @param pos
+     */
+    public static void openAndSelectPos(Context context, int pos) {
+        Intent intent = new Intent(context, MainActivity.class);
+        intent.putExtra(MAIN_PAGE_SELECT_POTION_KEY, pos);
+        context.startActivity(intent);
+    }
+
 
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         QMUIStatusBarHelper.setStatusBarLightMode(this);
         EventBus.getDefault().register(this);
+        parseIntent(getIntent());
     }
 
     @NonNull
@@ -64,6 +81,23 @@ public class MainActivity extends BaseMVPActivity<ActivityMainBinding, MainPrese
     }
 
     @Override
+    protected void onNewIntent(Intent intent) {
+        super.onNewIntent(intent);
+        parseIntent(getIntent());
+    }
+
+    private void parseIntent(Intent intent) {
+        if (intent.hasExtra(MAIN_PAGE_SELECT_POTION_KEY)) {
+            //跳转选中某个tab
+            int selectPos = intent.getIntExtra(MAIN_PAGE_SELECT_POTION_KEY, 0);
+            if (selectPos >= mFragments.size()) {
+                return;
+            }
+            setPositionItem(selectPos);
+        }
+    }
+
+    @Override
     protected void initView() {
         HomePageAdapter homePageAdapter = new HomePageAdapter(this);
         mHomeFragment = new HomeFragment();
@@ -90,6 +124,9 @@ public class MainActivity extends BaseMVPActivity<ActivityMainBinding, MainPrese
         });
     }
 
+    public void setPositionItem(int position) {
+        viewBinding.navigation.setSelectedItemId(getViewBinding().navigation.getMenu().getItem(position).getItemId());
+    }
 
     @Override
     public void onBackPressed() {