Parcourir la source

增加老师端我的课程课程说明弹窗

Pq il y a 8 mois
Parent
commit
5316df8982

+ 7 - 0
BaseLibrary/src/main/java/com/cooleshow/base/widgets/dialog/CourseTipDialog.java

@@ -104,6 +104,13 @@ public class CourseTipDialog extends Dialog implements View.OnClickListener {
         }
     }
 
+    public void showCustomData(List<CourseTipBean> data) {
+        mBannerAdapter.setDatas(data);
+        if(data.size()<=1){
+            mBanner.removeIndicator();
+        }
+    }
+
     private class MyBannerAdapter extends BannerAdapter<CourseTipBean, ViewHolder> {
 
         public MyBannerAdapter(List<CourseTipBean> datas) {

+ 2 - 0
BaseLibrary/src/main/res/values/strings.xml

@@ -35,8 +35,10 @@
     <string name="interest_course_tip_str">趣纠课以一对一专属、高度针对性的形式进行,每次课程时长为25分钟。本课程专为解决学生日常练习中的疑问与误区设计,尤其适合那些在自我练习后感到困惑或不确定自己方法是否正确的学生。不同于传统的教学模式,趣纠课不侧重于新知识或新技能的传授,而是全心全意致力于检查学生现有的练习成果,并及时纠正其中出现的问题。这种方式不仅有助于学生巩固已掌握的知识和技能,还能有效防止错误习惯的形成和发展,为他们今后的学习打下更加坚实的基础。</string>
     <string name="live_course_tip_str">直播课是现代教育领域中一种广受欢迎的课程形式,它集实时互动、多媒体展示和高度便利性于一体,为学习者带来了独特且丰富的学习体验。特别是在管乐直播课中,教师可以通过播放经典音乐作品,加深学生对音乐之美的感知与理解。对于那些需要具体操作演示的教学内容,直播课能够提供清晰直观的视角,让教师的每一个动作细节都展现在学生面前,确保学习效果。直播课程的内容围绕特定主题精心设计,旨在满足不同学习者的需求,促进知识与技能的有效传递。</string>
     <string name="video_course_tip_str">直播课是现代教育领域中一种广受欢迎的课程形式,它集实时互动、多媒体展示和高度便利性于一体,为学习者带来了独特且丰富的学习体验。特别是在管乐直播课中,教师可以通过播放经典音乐作品,加深学生对音乐之美的感知与理解。对于那些需要具体操作演示的教学内容,直播课能够提供清晰直观的视角,让教师的每一个动作细节都展现在学生面前,确保学习效果。直播课程的内容围绕特定主题精心设计,旨在满足不同学习者的需求,促进知识与技能的有效传递。</string>
+    <string name="piano_course_tip_str">直播课是现代教育领域中一种广受欢迎的课程形式,它集实时互动、多媒体展示和高度便利性于一体,为学习者带来了独特且丰富的学习体验。特别是在管乐直播课中,教师可以通过播放经典音乐作品,加深学生对音乐之美的感知与理解。对于那些需要具体操作演示的教学内容,直播课能够提供清晰直观的视角,让教师的每一个动作细节都展现在学生面前,确保学习效果。直播课程的内容围绕特定主题精心设计,旨在满足不同学习者的需求,促进知识与技能的有效传递。</string>
     <string name="vip_course_tip_title">什么是VIP定制课程?</string>
     <string name="interest_course_tip_title">什么是趣纠课?</string>
     <string name="live_course_tip_title">什么是直播课?</string>
     <string name="video_course_tip_title">什么是视频课?</string>
+    <string name="piano_course_tip_title">什么是琴房课?</string>
 </resources>

+ 53 - 4
teacher/src/main/java/com/cooleshow/teacher/ui/course/MineCourseActivity.java

@@ -8,10 +8,12 @@ import android.view.View;
 import android.widget.TextView;
 
 import com.alibaba.android.arouter.facade.annotation.Route;
+import com.cooleshow.base.bean.CourseTipBean;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.activity.BaseMVPActivity;
 import com.cooleshow.base.ui.fragment.BaseMVPFragment;
 import com.cooleshow.base.utils.helper.QMUIStatusBarHelper;
+import com.cooleshow.base.widgets.dialog.CourseTipDialog;
 import com.cooleshow.teacher.R;
 import com.cooleshow.teacher.adapter.MineCoursePageAdapter;
 import com.cooleshow.teacher.bean.QuerySubjectBean;
@@ -34,15 +36,17 @@ import androidx.viewpager2.widget.ViewPager2;
  * Author by pq, Date on 2022/4/25.
  */
 @Route(path = RouterPath.CourseCenter.TEACHER_MINE_COURSE)
-public class MineCourseActivity extends BaseMVPActivity<ActivityMineCourseLayoutBinding, MineCoursePresenter> implements MineCourseContract.MineCourseView {
+public class MineCourseActivity extends BaseMVPActivity<ActivityMineCourseLayoutBinding, MineCoursePresenter> implements MineCourseContract.MineCourseView, View.OnClickListener {
     public static final String SELECT_POSITION = "selectPosition";
-    private List<String> titles = new ArrayList<String>(Arrays.asList("VIP定制课","趣纠课", "直播课", "视频课", "琴房课"));
+    private List<String> titles = new ArrayList<String>(Arrays.asList("VIP定制课", "趣纠课", "直播课", "视频课", "琴房课"));
     private ArrayList<Fragment> mFragments = new ArrayList<>();
     private LiveCourseGroupFragment mLiveCourseFragment;
     private VideoCourseGroupFragment mVideoCourseFragment;
     private PianoCourseGroupFragment mPianoRoomCourseGroupFragment;
     private VIPCourseGroupFragment mVipCourseFragment;
     private InterestCourseGroupFragment mInterestCourseGroupFragment;
+    private CourseTipDialog mCourseTipDialog;
+    private ArrayList<CourseTipBean> courseTipList;
 
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
@@ -60,7 +64,9 @@ public class MineCourseActivity extends BaseMVPActivity<ActivityMineCourseLayout
     protected void initView() {
         initMidTitleToolBar(viewBinding.toolbarInclude.toolbar, "我的课程");
         viewBinding.toolbarInclude.toolbar.setBackgroundColor(Color.TRANSPARENT);
-
+        viewBinding.toolbarInclude.tvRight.setVisibility(View.VISIBLE);
+        viewBinding.toolbarInclude.tvRight.setImageResource(R.drawable.icon_question_mark);
+        viewBinding.toolbarInclude.tvRight.setOnClickListener(this);
     }
 
 
@@ -68,9 +74,10 @@ public class MineCourseActivity extends BaseMVPActivity<ActivityMineCourseLayout
     public void initData() {
         super.initData();
         initListener();
+        initCourseTipData();
         int selectPosition = getIntent().getIntExtra(SELECT_POSITION, -1);
 
-        TabLayoutMediator tabLayoutMediator = new TabLayoutMediator(viewBinding.tablayout,  viewBinding.viewPager, (tab, position) -> {
+        TabLayoutMediator tabLayoutMediator = new TabLayoutMediator(viewBinding.tablayout, viewBinding.viewPager, (tab, position) -> {
             //这里需要根据position修改tab的样式和文字等
             createTab(tab, titles.get(position));
         });
@@ -101,6 +108,26 @@ public class MineCourseActivity extends BaseMVPActivity<ActivityMineCourseLayout
         }
     }
 
+    private void initCourseTipData() {
+        courseTipList = new ArrayList<>();
+        int[] titles = new int[]{com.cooleshow.base.R.string.vip_course_tip_title,
+                com.cooleshow.base.R.string.interest_course_tip_title,
+                com.cooleshow.base.R.string.live_course_tip_title,
+                com.cooleshow.base.R.string.video_course_tip_title,
+                com.cooleshow.base.R.string.piano_course_tip_title};
+        int[] desDatas = new int[]{com.cooleshow.base.R.string.vip_course_tip_str,
+                com.cooleshow.base.R.string.interest_course_tip_str,
+                com.cooleshow.base.R.string.live_course_tip_str,
+                com.cooleshow.base.R.string.video_course_tip_str,
+                com.cooleshow.base.R.string.piano_course_tip_str};
+        for (int i = 0; i < titles.length; i++) {
+            CourseTipBean courseTipBean = new CourseTipBean();
+            courseTipBean.setTitle(getString(titles[i]));
+            courseTipBean.setDes(getString(desDatas[i]));
+            courseTipList.add(courseTipBean);
+        }
+    }
+
     private void initListener() {
         viewBinding.tablayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
             @Override
@@ -179,4 +206,26 @@ public class MineCourseActivity extends BaseMVPActivity<ActivityMineCourseLayout
         tab.setCustomView(view);
         return tab;
     }
+
+    @Override
+    public void onClick(View v) {
+        int id = v.getId();
+        if (id == com.cooleshow.base.R.id.tv_right) {
+            showTipDialog();
+            return;
+        }
+    }
+
+    private void showTipDialog() {
+        if (mCourseTipDialog == null) {
+            mCourseTipDialog = new CourseTipDialog(this);
+        }
+        if (!mCourseTipDialog.isShowing()) {
+            mCourseTipDialog.show();
+        }
+        //仅显示VIP定制课
+        mCourseTipDialog.showCustomData(courseTipList);
+        int pos = viewBinding.viewPager.getCurrentItem();
+        mCourseTipDialog.setSelect(pos);
+    }
 }