Pārlūkot izejas kodu

老师端首页筛选跳转逻辑修改

Pq 2 gadi atpakaļ
vecāks
revīzija
d103a04fc0

+ 37 - 12
teacher/src/main/java/com/cooleshow/teacher/adapter/TeachableInstrumentAdapter.java

@@ -24,10 +24,12 @@ public class TeachableInstrumentAdapter extends BaseQuickAdapter<TeachableInstru
 
     private int mSelectCount;
     private int count;
+    private boolean isSingleSelect;//是否单选
 
-    public TeachableInstrumentAdapter(List<TeachableInstrumentBean> data, int selectCount) {
+    public TeachableInstrumentAdapter(List<TeachableInstrumentBean> data, int selectCount, boolean isSingleSelect) {
         super(R.layout.layout_teachable_instrument, data);
         mSelectCount = selectCount;
+        this.isSingleSelect = isSingleSelect;
     }
 
 
@@ -45,19 +47,11 @@ public class TeachableInstrumentAdapter extends BaseQuickAdapter<TeachableInstru
             rv_item.setNestedScrollingEnabled(false);
             rv_item.setAdapter(teachableInstrumentItemAdapter);
             teachableInstrumentItemAdapter.setSelectedListener((bean, position) -> {
-                if (!bean.isSelect) {
-                    count++;
-                    bean.isSelect = true;
-                    if (count + mSelectCount > 5) {
-                        count--;
-                        bean.isSelect = false;
-                        ToastUtil.getInstance().showShort("最多选5个乐器!");
-                    }
+                if (isSingleSelect) {
+                    setOtherUnSelect(bean.id);
                 } else {
-                    bean.isSelect = false;
-                    count--;
+                    multiSelect(teachableInstrumentItemAdapter, bean, position);
                 }
-                teachableInstrumentItemAdapter.notifyItemChanged(position);
             });
         } else {
             rv_item.setVisibility(View.GONE);
@@ -65,4 +59,35 @@ public class TeachableInstrumentAdapter extends BaseQuickAdapter<TeachableInstru
 
     }
 
+    private void multiSelect(TeachableInstrumentItemAdapter teachableInstrumentItemAdapter, TeachableInstrumentBean bean, int position) {
+        if (!bean.isSelect) {
+            count++;
+            bean.isSelect = true;
+            if (count + mSelectCount > 5) {
+                count--;
+                bean.isSelect = false;
+                ToastUtil.getInstance().showShort("最多选5个乐器!");
+            }
+        } else {
+            bean.isSelect = false;
+            count--;
+        }
+        teachableInstrumentItemAdapter.notifyItemChanged(position);
+    }
+
+    private void setOtherUnSelect(long id) {
+        for (TeachableInstrumentBean teachableInstrumentBean : getData()) {
+            if (null != teachableInstrumentBean.subjects && teachableInstrumentBean.subjects.size() > 0) {
+                for (TeachableInstrumentBean subject : teachableInstrumentBean.subjects) {
+                    if (subject.id == id) {
+                        subject.isSelect = true;
+                    } else {
+                        subject.isSelect = false;
+                    }
+                }
+            }
+        }
+        TeachableInstrumentAdapter.this.notifyDataSetChanged();
+    }
+
 }

+ 0 - 1
teacher/src/main/java/com/cooleshow/teacher/contract/HomeContract.java

@@ -37,7 +37,6 @@ public interface HomeContract {
 
         void getAwardStatus(AwardStatusBean awardStatusBean);
 
-        void subjectSelectSuccess(List<TeachableInstrumentBean> data);
     }
 
     interface Presenter {

+ 1 - 1
teacher/src/main/java/com/cooleshow/teacher/presenter/main/HomePresenter.java

@@ -277,7 +277,7 @@ public class HomePresenter extends BasePresenter<HomeContract.HomeView> implemen
             @Override
             protected void onSuccess(List<TeachableInstrumentBean> data) {
                 if (getView() != null) {
-                    getView().subjectSelectSuccess(data);
+//                    getView().subjectSelectSuccess(data);
                 }
             }
         });

+ 9 - 1
teacher/src/main/java/com/cooleshow/teacher/ui/main/MainActivity.java

@@ -163,7 +163,7 @@ public class MainActivity extends BaseMVPActivity<ActivityMainBinding, MainPrese
         MessageFragment messageFragment = new MessageFragment();
         shopMallFragment = new MallFragment();
         mMineFragment = new MineFragment();
-        mHomeFragment =new NewHomeFragment();
+        mHomeFragment = new NewHomeFragment();
         mFragments.add(mHomeFragment);
         mFragments.add(courseTableFragment);
         mFragments.add(messageFragment);
@@ -492,6 +492,14 @@ public class MainActivity extends BaseMVPActivity<ActivityMainBinding, MainPrese
 
 
     @Override
+    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+        if (mHomeFragment != null) {
+            mHomeFragment.onActivityResult(requestCode, resultCode, data);
+        }
+    }
+
+    @Override
     public void onDestroy() {
         super.onDestroy();
         EventBus.getDefault().unregister(this);

+ 28 - 57
teacher/src/main/java/com/cooleshow/teacher/ui/main/NewHomeFragment.java

@@ -1,5 +1,6 @@
 package com.cooleshow.teacher.ui.main;
 
+import android.content.Intent;
 import android.text.TextUtils;
 import android.view.Gravity;
 import android.view.View;
@@ -67,6 +68,7 @@ import java.util.Date;
 import java.util.List;
 
 import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.fragment.app.Fragment;
 import androidx.recyclerview.widget.LinearLayoutManager;
 
@@ -76,6 +78,7 @@ import androidx.recyclerview.widget.LinearLayoutManager;
 public class NewHomeFragment extends BaseMVPFragment<FragmentNewHomeLayoutBinding, HomePresenter> implements HomeContract.HomeView, View.OnClickListener {
     public static final int MAX_HOT_MUSIC_LIST_PAGE = 4;//热门曲目一页最大条数
     public static final int MAX_GOOD_MUSIC_LIST_PAGE = 4;//精品曲目一页最大条数
+    public static final int SELECT_SUBJECT_REQUEST_CODE = 1001;//获取乐器筛选条件
     public static final String STYLE_TYPE = "STYLE";
     public static final String VIDEON_TYPE = "VIDEO";
     public static final String LIVE_TYPE = "LIVE";
@@ -94,9 +97,6 @@ public class NewHomeFragment extends BaseMVPFragment<FragmentNewHomeLayoutBindin
     private SmartRefreshLayout refreshLayout;
     private HomeHotMusicSheetAdapter mRecommendAdapter;
     private HomeHotMusicSheetAdapter mLatestAdapter;
-    private OptionsPickerView pvOptions;
-    private List<SubjectBean> subjectBeanList = new ArrayList<>();
-    private int currentSelectSubjectPosition = 0;
     private String currentSubjectId = "";
 
     @Override
@@ -157,7 +157,6 @@ public class NewHomeFragment extends BaseMVPFragment<FragmentNewHomeLayoutBindin
         //banner自带图片轮播的适配器
         mViewBinding.banner.setAdapter(mBannerImageAdapter, true);
         initListener();
-        presenter.queryAllSubjects();
     }
 
 
@@ -184,7 +183,6 @@ public class NewHomeFragment extends BaseMVPFragment<FragmentNewHomeLayoutBindin
         mViewBinding.tvCurrentSubject.setOnClickListener(this);
         mViewBinding.refreshLayout.setOnRefreshListener(refreshLayout -> {
             mViewBinding.refreshLayout.finishRefresh();
-            presenter.queryAllSubjects();//查询所有声部
             refreshMusicData();
             presenter.queryCountOfUnread();
             presenter.queryLiveAndVideo();
@@ -514,29 +512,6 @@ public class NewHomeFragment extends BaseMVPFragment<FragmentNewHomeLayoutBindin
         }
     }
 
-    @Override
-    public void subjectSelectSuccess(List<TeachableInstrumentBean> data) {
-        if (isDetached() || !isAdded()) {
-            return;
-        }
-        //添加所有声部
-        subjectBeanList.clear();
-        if (data != null && data.size() > 0) {
-            for (int i = 0; i < data.size(); i++) {
-                TeachableInstrumentBean teachableInstrumentBean = data.get(i);
-                SubjectBean subjectBean = new SubjectBean(teachableInstrumentBean.name, String.valueOf(teachableInstrumentBean.id));
-                subjectBeanList.add(subjectBean);
-                if( teachableInstrumentBean.subjects!=null &&  teachableInstrumentBean.subjects.size()>0){
-                    for (int j = 0; j < teachableInstrumentBean.subjects.size(); j++) {
-                        TeachableInstrumentBean child = teachableInstrumentBean.subjects.get(j);
-                        SubjectBean childSubjectBean = new SubjectBean(child.name, String.valueOf(child.id));
-                        subjectBeanList.add(childSubjectBean);
-                    }
-                }
-            }
-        }
-    }
-
     private void showAwardTipDialog() {
         if (UserHelper.getShowAwardDialogTipIsCompleted()) {
             return;
@@ -768,36 +743,32 @@ public class NewHomeFragment extends BaseMVPFragment<FragmentNewHomeLayoutBindin
         badgeDesDialog.show();
     }
 
-    private void selectSubject() {
-        if (subjectBeanList.size() == 0) {
-            subjectBeanList.add(new SubjectBean("全部", ""));
-        }
-        pvOptions = new OptionsPickerBuilder(getContext(), (options1, options2, options3, v) -> {
-            this.currentSelectSubjectPosition = options1;
-            SubjectBean bean = subjectBeanList.get(options1);
-            currentSubjectId = bean.id;
-            mViewBinding.tvCurrentSubject.setText(bean.name);
-            if (presenter != null) {
-                //同步选中id
-                presenter.syncSubjectFilter(currentSubjectId);
+    @Override
+    public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+        if (requestCode == SELECT_SUBJECT_REQUEST_CODE) {
+            try {
+                List<TeachableInstrumentBean> selectTeachableInstrument = (List<TeachableInstrumentBean>) data.getSerializableExtra("selectTeachableInstrument");
+                if (selectTeachableInstrument != null && selectTeachableInstrument.size() > 0) {
+                    TeachableInstrumentBean teachableInstrumentBean = selectTeachableInstrument.get(0);
+                    currentSubjectId = String.valueOf(teachableInstrumentBean.id);
+                    mViewBinding.tvCurrentSubject.setText(teachableInstrumentBean.name);
+                    if (presenter != null) {
+                        //同步选中id
+                        presenter.syncSubjectFilter(currentSubjectId);
+                    }
+                    refreshMusicData();
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
             }
-            refreshMusicData();
-        }).setLayoutRes(R.layout.pickerview_address_layout, v -> {
-            //自定义布局中的控件初始化及事件处理
-            final TextView tvSubmit = (TextView) v.findViewById(com.cooleshow.base.R.id.tv_finish);
-            TextView ivCancel = (TextView) v.findViewById(com.cooleshow.base.R.id.tv_cancel);
-            tvSubmit.setOnClickListener(v12 -> {
-                pvOptions.returnData();
-                pvOptions.dismiss();
-            });
-            ivCancel.setOnClickListener(v1 -> pvOptions.dismiss());
-
-        }).isDialog(false).build();
-        pvOptions.setPicker(subjectBeanList);
-        if (currentSelectSubjectPosition < subjectBeanList.size()) {
-            pvOptions.setSelectOptions(currentSelectSubjectPosition);
-        }
-        pvOptions.show();
+        }
+    }
+
+    private void selectSubject() {
+        ARouter.getInstance().build(RouterPath.MineCenter.MINE_TEACHABLE_INSTRUMENT)
+                .withBoolean("isSingleSelect", true)
+                .navigation(getActivity(), SELECT_SUBJECT_REQUEST_CODE);
     }
 
     /**

+ 8 - 1
teacher/src/main/java/com/cooleshow/teacher/ui/minestyle/TeachableInstrumentActivity.java

@@ -34,6 +34,8 @@ import io.rong.imkit.utils.StatusBarUtil;
  */
 @Route(path = RouterPath.MineCenter.MINE_TEACHABLE_INSTRUMENT)
 public class TeachableInstrumentActivity extends BaseMVPActivity<ActivityTeachableInstrumentBinding, TeachableInstrumentPresenter> implements TeachableInstrumentContract.TeachableInstrumentView, View.OnClickListener {
+    public static final String IS_SINGLE_SELECT = "isSingleSelect";
+
     private RecyclerView instrumentList;
     private TeachableInstrumentAdapter teachableInstrumentAdapter;
     @Autowired(name = "bundle")
@@ -64,17 +66,22 @@ public class TeachableInstrumentActivity extends BaseMVPActivity<ActivityTeachab
 
 
     private List<TeachableInstrumentBean> dataList = new ArrayList<>();
+    private boolean isSingleSelect;
 
     @Override
     protected void initView() {
         ARouter.getInstance().inject(this);
+        isSingleSelect = getIntent().getBooleanExtra(IS_SINGLE_SELECT, false);
+        if (isSingleSelect) {
+            viewBinding.tvTips.setText("最多可选择1个乐器");
+        }
         initCarryData();
         initMidTitleToolBar(viewBinding.toolbarInclude.toolbar, "可教授乐器");
         instrumentList = viewBinding.rvInstrument;
         viewBinding.tvConfirm.setOnClickListener(this);
         LinearLayoutManager manager = new LinearLayoutManager(this);
         instrumentList.setLayoutManager(manager);
-        teachableInstrumentAdapter = new TeachableInstrumentAdapter(dataList,carryList.size());
+        teachableInstrumentAdapter = new TeachableInstrumentAdapter(dataList, carryList.size(), isSingleSelect);
         instrumentList.setAdapter(teachableInstrumentAdapter);
     }
 

+ 1 - 0
teacher/src/main/res/layout/activity_teachable_instrument.xml

@@ -11,6 +11,7 @@
         layout="@layout/common_toolbar_layout" />
 
     <TextView
+        android:paddingStart="10dp"
         android:id="@+id/tv_tips"
         android:layout_width="match_parent"
         android:layout_height="36dp"