Browse Source

修改部分问题

Pq 1 năm trước cách đây
mục cha
commit
c84c76431a

+ 11 - 5
institution/src/main/java/com/cooleshow/institution/stu/constants/HomePageType.java

@@ -4,17 +4,23 @@ package com.cooleshow.institution.stu.constants;
  * Author by pq, Date on 2023/9/11.
  */
 public enum HomePageType {
-    EMPTY(0),//暂无声部训练
-    SUBJECT_PRACTICE(1),//声部练习
-    ALL_PRACTICE(2),//合奏练习
-    TRACK_LIST(3);//独奏曲目
+    EMPTY(0,""),//暂无声部训练
+    SUBJECT_PRACTICE(1,"SUBJECT"),//声部练习
+    ALL_PRACTICE(2,"ENSEMBLE"),//合奏练习
+    TRACK_LIST(3,"MUSIC");//独奏曲目
     private int value;
+    private String type;
 
     public int getValue() {
         return value;
     }
 
-    HomePageType(int value) {
+    public String getType() {
+        return type;
+    }
+
+    HomePageType(int value, String type) {
         this.value = value;
+        this.type = type;
     }
 }

+ 5 - 0
institution/src/main/java/com/cooleshow/institution/stu/constants/JGWebConstants.java

@@ -30,6 +30,11 @@ public class JGWebConstants {
 
     //会员中心
     public static final String STUDENT_MEMBER_CENTER = getBaseUrlH5() + "/#/memberCenter";
+    //排行榜
+    public static final String RANK_BOARD = getBaseUrlH5() + "/#/ranking-list";
+    public static final String ACTIVATION_CODE = getBaseUrlH5() + "/#/activation-code";
+    public static final String TRAIN_TOOLS = getBaseUrlH5() + "/#/train-tool";
+    public static final String TRAIN_LIST = getBaseUrlH5() + "/#/train-list?subjectType=%s";
 
     private static String getBaseUrlH5() {
         return BuildConfig.BASE_URL_H5_JG;

+ 23 - 2
institution/src/main/java/com/cooleshow/institution/stu/constants/JGWebStartHelper.java

@@ -72,10 +72,10 @@ public class JGWebStartHelper {
                 .navigation();
     }
     public static void startActivationCodePage() {
-        //热门专辑
+        //激活码
         ARouter.getInstance()
                 .build(RouterPath.WebCenter.ACTIVITY_HTML)
-                .withString(WebConstants.WEB_URL, JGWebConstants.STUDENT_MUSIC_ALBUM)
+                .withString(WebConstants.WEB_URL, JGWebConstants.ACTIVATION_CODE)
                 .navigation();
     }
 
@@ -99,4 +99,25 @@ public class JGWebStartHelper {
                 .withString(WebConstants.WEB_URL, JGWebConstants.STUDENT_MEMBER_CENTER)
                 .navigation();
     }
+
+    public static void startRankBoard(){
+        ARouter.getInstance()
+                .build(RouterPath.WebCenter.ACTIVITY_HTML)
+                .withString(WebConstants.WEB_URL, JGWebConstants.RANK_BOARD)
+                .navigation();
+    }
+
+    public static void startTrainTools(){
+        ARouter.getInstance()
+                .build(RouterPath.WebCenter.ACTIVITY_HTML)
+                .withString(WebConstants.WEB_URL, JGWebConstants.TRAIN_TOOLS)
+                .navigation();
+    }
+
+    public static void startTrainList(String type){
+        ARouter.getInstance()
+                .build(RouterPath.WebCenter.ACTIVITY_HTML)
+                .withString(WebConstants.WEB_URL, String.format(JGWebConstants.TRAIN_LIST,type))
+                .navigation();
+    }
 }

+ 22 - 2
institution/src/main/java/com/cooleshow/institution/stu/ui/main/CardAnimFragment.java

@@ -1,12 +1,14 @@
 package com.cooleshow.institution.stu.ui.main;
 
 import android.os.Bundle;
+import android.text.TextUtils;
 import android.view.View;
 
 import com.cooleshow.base.ui.fragment.BaseFragment;
 import com.cooleshow.base.utils.LOG;
 import com.cooleshow.institution.stu.constants.Constants;
 import com.cooleshow.institution.stu.constants.HomePageType;
+import com.cooleshow.institution.stu.constants.JGWebStartHelper;
 import com.cooleshow.institution.stu.databinding.FgCardAnimLayoutBinding;
 
 /**
@@ -14,11 +16,13 @@ import com.cooleshow.institution.stu.databinding.FgCardAnimLayoutBinding;
  */
 public class CardAnimFragment extends BaseFragment<FgCardAnimLayoutBinding> {
     private int pageType = HomePageType.EMPTY.getValue();
+    private String pageTypeValue = HomePageType.EMPTY.getType();
     private int mStatus;
 
-    public static CardAnimFragment newInstance(int type, int status) {
+    public static CardAnimFragment newInstance(int type, String typeValue, int status) {
         Bundle bundle = new Bundle();
         bundle.putInt("type", type);
+        bundle.putString("typeValue", typeValue);
         bundle.putInt("status", status);
         CardAnimFragment cardAnimFragment = new CardAnimFragment();
         cardAnimFragment.setArguments(bundle);
@@ -34,6 +38,7 @@ public class CardAnimFragment extends BaseFragment<FgCardAnimLayoutBinding> {
     protected void initView(View rootView) {
         if (getArguments() != null) {
             pageType = getArguments().getInt("type", HomePageType.EMPTY.getValue());
+            pageTypeValue = getArguments().getString("typeValue", HomePageType.EMPTY.getType());
             mStatus = getArguments().getInt("status", -1);
         }
         loadAnim();
@@ -44,6 +49,15 @@ public class CardAnimFragment extends BaseFragment<FgCardAnimLayoutBinding> {
                 mViewBinding.groupUnlock.setVisibility(View.VISIBLE);
             }
         }
+        mViewBinding.viewClick.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                if (!TextUtils.isEmpty(pageTypeValue)) {
+                    JGWebStartHelper.startTrainList(pageTypeValue);
+                }
+            }
+        });
+
     }
 
 
@@ -62,6 +76,12 @@ public class CardAnimFragment extends BaseFragment<FgCardAnimLayoutBinding> {
     }
 
     public void startAnim(boolean isStart) {
+        if(!isAdded()){
+            return;
+        }
+        if(mViewBinding == null){
+            return;
+        }
         if (isStart) {
             mViewBinding.viewLiveAnim.setProgress(0);
             mViewBinding.viewLiveAnim.playAnimation();
@@ -85,7 +105,7 @@ public class CardAnimFragment extends BaseFragment<FgCardAnimLayoutBinding> {
         mViewBinding.viewUnlock.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-
+                JGWebStartHelper.startTrainTools();
             }
         });
     }

+ 25 - 4
institution/src/main/java/com/cooleshow/institution/stu/ui/main/HomeCardFragment.java

@@ -12,6 +12,7 @@ import com.cooleshow.institution.stu.adapter.HomeCardPageAdapter;
 import com.cooleshow.institution.stu.bean.HomePageMode;
 import com.cooleshow.institution.stu.constants.Constants;
 import com.cooleshow.institution.stu.constants.HomePageType;
+import com.cooleshow.institution.stu.constants.JGWebStartHelper;
 import com.cooleshow.institution.stu.databinding.FgHomeCardLayoutBinding;
 import com.cooleshow.institution.stu.presenter.HomePresenter;
 import com.cooleshow.institution.stu.viewmodel.HomeViewModel;
@@ -23,6 +24,8 @@ import java.util.List;
 
 import androidx.fragment.app.Fragment;
 import androidx.lifecycle.ViewModelProviders;
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.recyclerview.widget.SimpleItemAnimator;
 import androidx.viewpager2.widget.CompositePageTransformer;
 import androidx.viewpager2.widget.MarginPageTransformer;
 import androidx.viewpager2.widget.ViewPager2;
@@ -61,6 +64,7 @@ public class HomeCardFragment extends BaseMVPFragment<FgHomeCardLayoutBinding, H
     }
 
     private void initListener() {
+        mViewBinding.viewSearchBg.setOnClickListener(this);
         mViewBinding.ivMoreTrack.setOnClickListener(this);
         mViewBinding.viewPager.registerOnPageChangeCallback(mPageChangeCallback);
     }
@@ -106,35 +110,52 @@ public class HomeCardFragment extends BaseMVPFragment<FgHomeCardLayoutBinding, H
             mHomeViewModel.getHomePageModeEvent().postValue(new HomePageMode(Constants.MORE_MUSIC_TRACK));
             return;
         }
+        if(id == R.id.view_search_bg){
+            JGWebStartHelper.startSearch();
+            return;
+        }
     }
 
     public void refreshUserInfo(StudentUserInfo data) {
         if (data != null) {
+            int cPos = mViewBinding.viewPager.getCurrentItem();
             mViewBinding.tvName.setText(data.getTenantName());
             if (data.getTenantAlbumStatus() == Constants.HOME_PAGE_STATUS_EMPTY) {
                 loadEmpty();
             } else {
                 load(data.getTenantAlbumStatus());
             }
+            if (cPos >= mCardPageAdapter.getFragments().size()) {
+                cPos = 0;
+            }
+            mViewBinding.viewPager.setCurrentItem(cPos, false);
         }
     }
 
     private void load(int status) {
+        if (mCardPageAdapter.getItemCount() == pages.length) {
+            return;
+        }
         ArrayList<Fragment> list = new ArrayList<>();
         for (int i = 0; i < pages.length; i++) {
             HomePageType page = pages[i];
-            CardAnimFragment cardAnimFragment = CardAnimFragment.newInstance(page.getValue(),status);
+            CardAnimFragment cardAnimFragment = CardAnimFragment.newInstance(page.getValue(), page.getType(), status);
             list.add(cardAnimFragment);
         }
         mCardPageAdapter.setFragments(list);
-        mCardPageAdapter.notifyDataSetChanged();
+        mViewBinding.viewPager.setAdapter(mCardPageAdapter);
+//        mCardPageAdapter.notifyDataSetChanged();
     }
 
     private void loadEmpty() {
+        if (mCardPageAdapter.getItemCount() == 1) {
+            return;
+        }
         ArrayList<Fragment> list = new ArrayList<>();
-        CardAnimFragment cardAnimFragment = CardAnimFragment.newInstance(HomePageType.EMPTY.getValue(),-1);
+        CardAnimFragment cardAnimFragment = CardAnimFragment.newInstance(HomePageType.EMPTY.getValue(), HomePageType.EMPTY.getType(), -1);
         list.add(cardAnimFragment);
         mCardPageAdapter.setFragments(list);
-        mCardPageAdapter.notifyDataSetChanged();
+        mViewBinding.viewPager.setAdapter(mCardPageAdapter);
+//        mCardPageAdapter.notifyDataSetChanged();
     }
 }

+ 13 - 0
institution/src/main/java/com/cooleshow/institution/stu/ui/main/MineFragment.java

@@ -147,5 +147,18 @@ public class MineFragment extends BaseMVPFragment<FgMineLayoutBinding, MinePrese
             JGWebStartHelper.startVipCenter();
             return;
         }
+        if (id == R.id.view_student_num){
+            JGWebStartHelper.startTrainTools();
+            return;
+        }
+
+        if(id == R.id.tv_rank_board){
+            JGWebStartHelper.startRankBoard();
+            return;
+        }
+        if(id == R.id.tv_activation_code){
+            JGWebStartHelper.startActivationCodePage();
+            return;
+        }
     }
 }

+ 5 - 6
institution/src/main/java/com/cooleshow/institution/stu/ui/setting/PersonalSettingActivity.java

@@ -16,7 +16,6 @@ import com.bigkoo.pickerview.builder.TimePickerBuilder;
 import com.bigkoo.pickerview.listener.CustomListener;
 import com.bigkoo.pickerview.view.TimePickerView;
 import com.cooleshow.base.bean.TeachableInstrumentBean;
-import com.cooleshow.base.constanst.EventConstants;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.activity.BaseMVPActivity;
 import com.cooleshow.base.utils.ActivityUtils;
@@ -157,7 +156,7 @@ public class PersonalSettingActivity extends BaseMVPActivity<JgActivityPersonalS
             presenter.submitSetDetail(jsonObject.toString());
         }).setRangDate(startDate, endDate)
                 .setDate(endDate)
-                .setLayoutRes(R.layout.pickerview_default_layout, new CustomListener() {
+                .setLayoutRes(R.layout.jg_pickerview_default_layout, new CustomListener() {
                     @Override
                     public void customLayout(View v) {
                         //自定义布局中的控件初始化及事件处理
@@ -200,7 +199,7 @@ public class PersonalSettingActivity extends BaseMVPActivity<JgActivityPersonalS
     }
 
     private void modifySex() {
-        PopupUtil.showInBottom(this, R.layout.pop_modify_sex, (view, popupWindow) -> {
+        PopupUtil.showInBottom(this, R.layout.jg_pop_modify_sex, (view, popupWindow) -> {
             TextView tv_boy = view.findViewById(R.id.tv_boy);
             TextView tv_girl = view.findViewById(R.id.tv_girl);
             TextView tv_cancel = view.findViewById(R.id.tv_cancel);
@@ -234,7 +233,7 @@ public class PersonalSettingActivity extends BaseMVPActivity<JgActivityPersonalS
     }
 
     private void selectHeader() {
-        PopupUtil.showInBottom(this, R.layout.pop_modify_header, (view, popupWindow) -> {
+        PopupUtil.showInBottom(this, R.layout.jg_pop_modify_header, (view, popupWindow) -> {
             TextView tv_camera = view.findViewById(R.id.tv_camera);
             TextView tv_album = view.findViewById(R.id.tv_album);
             TextView tv_cancel = view.findViewById(R.id.tv_cancel);
@@ -324,7 +323,7 @@ public class PersonalSettingActivity extends BaseMVPActivity<JgActivityPersonalS
         PictureSelector.create(this)
                 .openCamera(PictureMimeType.ofImage())
                 .loadImageEngine(GlideEngine.createGlideEngine())
-                .theme(com.cooleshow.base.R.style.picture_daya_style)// 主题样式设置 具体参考 values/styles   用法:R .style.picture.white.style
+                .theme(R.style.jgPictureDayaStyle)// 主题样式设置 具体参考 values/styles   用法:R .style.picture.white.style
                 .selectionMode(PictureConfig.SINGLE)// 多选 or 单选 PictureConfig.MULTIPLE or PictureConfig.SINGLE
                 .enableCrop(true)// 是否裁剪 true or false
                 .cutOutQuality(100)
@@ -338,7 +337,7 @@ public class PersonalSettingActivity extends BaseMVPActivity<JgActivityPersonalS
         PictureSelector.create(this)
                 .openGallery(PictureMimeType.ofImage())//全部.PictureMimeType.ofAll()、图片.ofImage()、视频.ofVideo()、音频.ofAudio()
                 .loadImageEngine(GlideEngine.createGlideEngine())
-                .theme(com.cooleshow.base.R.style.picture_daya_style)// 主题样式设置 具体参考 values/styles   用法:R .style.picture.white.style
+                .theme(R.style.jgPictureDayaStyle)// 主题样式设置 具体参考 values/styles   用法:R .style.picture.white.style
                 .selectionMode(PictureConfig.SINGLE)// 多选 or 单选 PictureConfig.MULTIPLE or PictureConfig.SINGLE
                 .enableCrop(true)// 是否裁剪 true or false
                 .cutOutQuality(100)

+ 5 - 0
institution/src/main/res/drawable/shape_66000000_12dp.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="@color/color_66000000"/>
+    <corners android:radius="11.8dp"/>
+</shape>

+ 13 - 2
institution/src/main/res/layout/fg_card_anim_layout.xml

@@ -2,7 +2,8 @@
 <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
-    android:layout_height="match_parent">
+    android:layout_height="match_parent"
+    xmlns:tools="http://schemas.android.com/tools">
 
     <com.airbnb.lottie.LottieAnimationView
         android:id="@+id/view_live_anim"
@@ -14,10 +15,20 @@
         app:lottie_loop="true" />
 
     <View
+        android:id="@+id/view_click"
+        android:layout_width="0dp"
+        android:layout_height="0dp"
+        app:layout_constraintBottom_toBottomOf="@+id/view_live_anim"
+        app:layout_constraintLeft_toLeftOf="@+id/view_live_anim"
+        app:layout_constraintRight_toRightOf="@+id/view_live_anim"
+        app:layout_constraintTop_toTopOf="@+id/view_live_anim" />
+
+    <View
         android:id="@+id/view_unlock"
         android:layout_width="0dp"
         android:layout_height="0dp"
-        android:background="@color/color_66000000"
+        android:background="@drawable/shape_66000000_12dp"
+        app:layout_constraintDimensionRatio="w,296:571"
         app:layout_constraintBottom_toBottomOf="@+id/view_live_anim"
         app:layout_constraintLeft_toLeftOf="@+id/view_live_anim"
         app:layout_constraintRight_toRightOf="@+id/view_live_anim"

+ 2 - 0
institution/src/main/res/layout/fg_home_card_layout.xml

@@ -99,6 +99,8 @@
         app:layout_constraintTop_toBottomOf="@+id/view_search_bg">
 
         <androidx.viewpager2.widget.ViewPager2
+            android:scrollbars="none"
+            android:overScrollMode="never"
             android:clipChildren="false"
             android:id="@+id/viewPager"
             android:layout_width="match_parent"

+ 0 - 0
institution/src/main/res/layout/pickerview_default_layout.xml → institution/src/main/res/layout/jg_pickerview_default_layout.xml


+ 0 - 0
institution/src/main/res/layout/pop_modify_header.xml → institution/src/main/res/layout/jg_pop_modify_header.xml


+ 0 - 0
institution/src/main/res/layout/pop_modify_sex.xml → institution/src/main/res/layout/jg_pop_modify_sex.xml


+ 56 - 0
institution/src/main/res/values/styles.xml

@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <style name="jgPictureDayaStyle" parent="AppTheme">
+        <!-- Customize your theme here. -->
+        <!--标题栏背景色-->
+        <item name="colorPrimary">@color/color_fe2451</item>
+        <!--状态栏背景色-->
+        <item name="colorPrimaryDark">@color/color_fe2451</item>
+        <!--是否改变图片列表界面状态栏字体颜色为黑色-->
+        <item name="picture.statusFontColor">false</item>
+        <!--返回键图标-->
+        <item name="picture.leftBack.icon">@drawable/icon_back_arrow_white</item>
+        <!--标题下拉箭头-->
+        <item name="picture.arrow_down.icon">@drawable/picture_icon_arrow_down</item>
+        <!--标题上拉箭头-->
+        <item name="picture.arrow_up.icon">@drawable/picture_icon_arrow_up</item>
+        <!--标题文字颜色-->
+        <item name="picture.title.textColor">@color/white</item>
+        <!--标题栏右边文字-->
+        <item name="picture.right.textColor">@color/white</item>
+        <!--图片列表勾选样式-->
+        <item name="picture.checked.style">@drawable/checkbox_selector</item>
+        <!--开启图片列表勾选数字模式-->
+        <item name="picture.style.checkNumMode">false</item>
+        <!--选择图片样式0/9-->
+        <item name="picture.style.numComplete">false</item>
+        <!--图片列表底部背景色-->
+        <item name="picture.bottom.bg">@color/color_fe2451</item>
+        <!--图片列表预览文字颜色-->
+        <item name="picture.preview.textColor">@color/white</item>
+        <!--图片列表已完成文字颜色-->
+        <item name="picture.complete.textColor">@color/white</item>
+        <!--图片已选数量圆点背景色-->
+        <item name="picture.num.style">@drawable/picture_num_oval</item>
+        <!--预览界面标题文字颜色-->
+        <item name="picture.ac_preview.title.textColor">@color/white</item>
+        <!--预览界面已完成文字颜色-->
+        <item name="picture.ac_preview.complete.textColor">@color/white</item>
+        <!--预览界面标题栏背景色-->
+        <item name="picture.ac_preview.title.bg">@color/color_fe2451</item>
+        <!--预览界面底部背景色-->
+        <item name="picture.ac_preview.bottom.bg">@color/color_fe2451</item>
+        <!--预览界面返回箭头-->
+        <item name="picture.preview.leftBack.icon">@drawable/picture_icon_back</item>
+        <!--是否改变预览界面状态栏字体颜色为黑色-->
+        <!--<item name="picture.preview.statusFontColor">false</item>-->
+        <!--裁剪页面标题背景色-->
+        <item name="picture.crop.toolbar.bg">@color/color_fe2451</item>
+        <!--裁剪页面状态栏颜色-->
+        <item name="picture.crop.status.color">@color/color_fe2451</item>
+        <!--裁剪页面标题文字颜色-->
+        <item name="picture.crop.title.color">@color/white</item>
+        <!--相册文件夹列表选中图标-->
+        <item name="picture.folder_checked_dot">@drawable/picture_orange_oval</item>
+    </style>
+</resources>