Ver Fonte

修改我的作品列表样式以及项目loading样式

Pq há 9 meses atrás
pai
commit
52b33baf3f
26 ficheiros alterados com 655 adições e 41 exclusões
  1. 3 1
      BaseLibrary/src/main/java/com/cooleshow/base/common/WebConstants.java
  2. 1 5
      BaseLibrary/src/main/java/com/cooleshow/base/widgets/ProgressLoading2.java
  3. 131 0
      BaseLibrary/src/main/java/com/cooleshow/base/widgets/dialog/CommonFilterDialog.java
  4. 34 0
      BaseLibrary/src/main/res/layout/dialog_common_filter_layout.xml
  5. 26 0
      BaseLibrary/src/main/res/layout/item_common_filter_layout.xml
  6. 6 3
      BaseLibrary/src/main/res/layout/progress_dialog.xml
  7. 21 7
      musicMerge/src/main/java/com/cooleshow/musicmerge/adapter/MyDraftWorkListAdapter.java
  8. 20 7
      musicMerge/src/main/java/com/cooleshow/musicmerge/adapter/MyWorkListAdapter.java
  9. 9 0
      musicMerge/src/main/java/com/cooleshow/musicmerge/bean/MyWorkListBean.java
  10. 1 1
      musicMerge/src/main/java/com/cooleshow/musicmerge/constants/WorksType.java
  11. 18 4
      musicMerge/src/main/java/com/cooleshow/musicmerge/presenter/work/MyWorkPresenter.java
  12. 15 0
      musicMerge/src/main/java/com/cooleshow/musicmerge/ui/MusicHandleActivity.java
  13. 2 2
      musicMerge/src/main/java/com/cooleshow/musicmerge/ui/MusicHandleActivity_.java
  14. 3 0
      musicMerge/src/main/java/com/cooleshow/musicmerge/ui/MusicHandleSettingFragment.java
  15. 74 2
      musicMerge/src/main/java/com/cooleshow/musicmerge/ui/work/MyWorkDraftFragment.java
  16. 79 6
      musicMerge/src/main/java/com/cooleshow/musicmerge/ui/work/MyWorkPublishFragment.java
  17. BIN
      musicMerge/src/main/res/drawable-xhdpi/mh_icon_arrow_down_black.png
  18. BIN
      musicMerge/src/main/res/drawable-xhdpi/mh_icon_search.png
  19. BIN
      musicMerge/src/main/res/drawable-xxhdpi/mh_icon_arrow_down_black.png
  20. BIN
      musicMerge/src/main/res/drawable-xxhdpi/mh_icon_search.png
  21. 6 0
      musicMerge/src/main/res/drawable/shape_works_file_type_tag.xml
  22. 6 0
      musicMerge/src/main/res/drawable/shape_works_file_type_tag2.xml
  23. 82 2
      musicMerge/src/main/res/layout/fg_my_work_draft_layout.xml
  24. 82 1
      musicMerge/src/main/res/layout/fg_my_work_publish_layout.xml
  25. 18 0
      musicMerge/src/main/res/layout/item_my_draft_work_layout.xml
  26. 18 0
      musicMerge/src/main/res/layout/item_my_work_layout.xml

+ 3 - 1
BaseLibrary/src/main/java/com/cooleshow/base/common/WebConstants.java

@@ -15,7 +15,9 @@ public abstract class WebConstants {
     public static final String WEB_JS_INTERFACE = "COLEXIU";
     public static final String WEB_URL = "web_url";//
     public static final String WEB_TITLE = "title";//
-    public static final String WEB_SOCKET_URL_TEST = "wss://test.kt.colexiu.com/audioAnalysis_kt";
+    //临时测试
+    public static final String WEB_SOCKET_URL_TEST = "wss://dev.colexiu.com/audioAnalysis";
+//    public static final String WEB_SOCKET_URL_TEST = "wss://test.kt.colexiu.com/audioAnalysis_kt";
     public static final String WEB_SOCKET_URL_RELEASE = "wss://mec.colexiu.com/audioAnalysis";
     public static final String WEB_SOCKET_URL_PRERELEASE = "wss://dev.kt.colexiu.com/audioAnalysis_kt";
 

+ 1 - 5
BaseLibrary/src/main/java/com/cooleshow/base/widgets/ProgressLoading2.java

@@ -76,14 +76,10 @@ public class ProgressLoading2 extends BaseFullDialog {
     }
 
     public void showLoadingAndCancel(String text) {
-        show();
+        showLoading(text);
         if (mTvCancel != null) {
             mTvCancel.setVisibility(View.VISIBLE);
         }
-        if (mTvLoadingText != null) {
-            mTvLoadingText.setText(text);
-            mTvLoadingText.setVisibility(View.VISIBLE);
-        }
     }
 
     public void updateLoadingText(String text) {

+ 131 - 0
BaseLibrary/src/main/java/com/cooleshow/base/widgets/dialog/CommonFilterDialog.java

@@ -0,0 +1,131 @@
+package com.cooleshow.base.widgets.dialog;
+
+import android.app.Dialog;
+import android.content.Context;
+import android.graphics.Color;
+import android.os.Bundle;
+import android.view.Gravity;
+import android.view.View;
+import android.view.Window;
+import android.view.WindowManager;
+import android.widget.TextView;
+
+import com.chad.library.adapter.base.BaseQuickAdapter;
+import com.chad.library.adapter.base.listener.OnItemClickListener;
+import com.chad.library.adapter.base.viewholder.BaseViewHolder;
+import com.contrarywind.interfaces.IPickerViewData;
+import com.cooleshow.base.R;
+import com.cooleshow.base.interfaces.IFilterViewData;
+
+import java.util.List;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+/**
+ * Author by pq, Date on 2023/2/20.
+ */
+public class CommonFilterDialog<T> extends Dialog implements View.OnClickListener {
+
+    private RecyclerView mRecyclerView;
+    private BaseQuickAdapter<T, BaseViewHolder> mAdapter;
+    private OnEventListener mEventListener;
+    private int selectPos = -1;
+
+    public CommonFilterDialog(@NonNull Context context) {
+        super(context, R.style.BottomDialogStyle);
+    }
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.dialog_common_filter_layout);
+        Window window = getWindow();
+        //设置dialog在屏幕底部
+        window.setGravity(Gravity.BOTTOM);
+        //设置dialog弹出时的动画效果,从屏幕底部向上弹出
+        window.setWindowAnimations(R.style.BottomAnimation);
+        window.getDecorView().setPadding(0, 0, 0, 0);
+        //获得window窗口的属性
+        WindowManager.LayoutParams lp = window.getAttributes();
+        //设置窗口宽度为充满全屏
+        lp.width = WindowManager.LayoutParams.MATCH_PARENT;
+        //设置窗口高度为包裹内容
+        lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
+        lp.horizontalMargin = 0;
+        lp.verticalMargin = 0;
+        //将设置好的属性set回去
+        window.setAttributes(lp);
+
+        mRecyclerView = findViewById(R.id.recyclerView);
+        mAdapter = new BaseQuickAdapter<T, BaseViewHolder>(R.layout.item_common_filter_layout) {
+            @Override
+            protected void convert(@NonNull BaseViewHolder holder, T t) {
+                String text = "";
+                if (t instanceof IFilterViewData) {
+                    IFilterViewData iFilterData = (IFilterViewData) t;
+                    text = iFilterData.getShowName();
+                }
+                if (t instanceof IPickerViewData) {
+                    IPickerViewData iPickerViewData = (IPickerViewData) t;
+                    text = iPickerViewData.getPickerViewText();
+                }
+                if (t instanceof String) {
+                    text = (String) t;
+                }
+                TextView tv_text = holder.getView(R.id.tv_text);
+                tv_text.setText(text);
+                if (holder.getLayoutPosition() == selectPos) {
+                    tv_text.setBackgroundResource(R.drawable.shape_f2f2f2_6dp);
+                    tv_text.setTextColor(getContext().getResources().getColor(R.color.color_2dc7aa));
+                } else {
+                    tv_text.setBackgroundColor(Color.TRANSPARENT);
+                    tv_text.setTextColor(getContext().getResources().getColor(R.color.color_333333));
+                }
+            }
+        };
+        mRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
+        mRecyclerView.setAdapter(mAdapter);
+        TextView tv_cancel = findViewById(R.id.tv_cancel);
+        tv_cancel.setOnClickListener(this);
+        mAdapter.setOnItemClickListener(new OnItemClickListener() {
+            @Override
+            public void onItemClick(@NonNull BaseQuickAdapter<?, ?> adapter, @NonNull View view, int position) {
+                if (mEventListener != null) {
+                    dismiss();
+                    mEventListener.onItemClickListener(adapter, position);
+                    selectPos = position;
+                    mAdapter.notifyDataSetChanged();
+                }
+            }
+        });
+    }
+
+    public void setData(List<T> data) {
+        if (mAdapter != null) {
+            mAdapter.setNewInstance(data);
+        }
+    }
+
+    public void setSelectPos(int pos) {
+        this.selectPos = pos;
+    }
+
+    @Override
+    public void onClick(View v) {
+        int id = v.getId();
+        if (id == R.id.tv_cancel) {
+            dismiss();
+            return;
+        }
+    }
+
+    public void setOnEventListener(OnEventListener listener) {
+        this.mEventListener = listener;
+    }
+
+    public interface OnEventListener {
+        void onItemClickListener(BaseQuickAdapter baseQuickAdapter, int pos);
+    }
+}

+ 34 - 0
BaseLibrary/src/main/res/layout/dialog_common_filter_layout.xml

@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout 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="wrap_content"
+    android:background="@drawable/bg_white_top_10dp"
+    android:orientation="vertical"
+    android:paddingTop="15dp"
+    android:paddingBottom="15dp">
+
+    <androidx.recyclerview.widget.RecyclerView
+        android:id="@+id/recyclerView"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:overScrollMode="never"
+        android:scrollbars="none" />
+
+    <View
+        android:layout_marginTop="10dp"
+        android:layout_width="match_parent"
+        android:layout_height="1dp"
+        android:background="@color/color_f2f2f2" />
+
+    <TextView
+        android:id="@+id/tv_cancel"
+        android:layout_width="match_parent"
+        android:layout_height="50dp"
+        android:gravity="center"
+        android:text="取消"
+        android:textColor="@color/color_aaaaaa"
+        android:textSize="@dimen/sp_16"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+</LinearLayout>

+ 26 - 0
BaseLibrary/src/main/res/layout/item_common_filter_layout.xml

@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-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="44dp"
+    android:paddingStart="13dp"
+    android:paddingEnd="13dp"
+    xmlns:tools="http://schemas.android.com/tools">
+
+
+    <TextView
+        android:id="@+id/tv_text"
+        android:gravity="center"
+        android:includeFontPadding="false"
+        tools:text="已完成"
+        android:textColor="@color/color_333333"
+        android:textSize="@dimen/sp_16"
+        android:layout_width="0dp"
+        android:layout_height="match_parent"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+
+
+</androidx.constraintlayout.widget.ConstraintLayout>

+ 6 - 3
BaseLibrary/src/main/res/layout/progress_dialog.xml

@@ -14,10 +14,12 @@
         android:paddingEnd="13dp"
         android:paddingStart="13dp"
         android:paddingBottom="5dp"
+        android:paddingTop="20dp"
         android:gravity="center_horizontal"
         android:minHeight="98dp"
         android:id="@+id/ll_content"
         android:minWidth="98dp"
+        android:orientation="vertical"
         android:layout_gravity="center"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content">
@@ -31,10 +33,11 @@
 
         <com.airbnb.lottie.LottieAnimationView
             android:id="@+id/view_loading_anim"
-            android:layout_width="wrap_content"
-            android:layout_height="47dp"
+            android:layout_width="80dp"
+            android:layout_height="48dp"
             android:layout_gravity="center"
-            app:lottie_autoPlay="false"
+            app:lottie_autoPlay="true"
+            app:lottie_clipToCompositionBounds="false"
             app:lottie_imageAssetsFolder="lottie/refresh/images/"
             app:lottie_loop="true" />
 

+ 21 - 7
musicMerge/src/main/java/com/cooleshow/musicmerge/adapter/MyDraftWorkListAdapter.java

@@ -3,6 +3,7 @@ package com.cooleshow.musicmerge.adapter;
 import android.text.TextUtils;
 import android.view.View;
 import android.widget.ImageView;
+import android.widget.TextView;
 
 import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.chad.library.adapter.base.viewholder.BaseViewHolder;
@@ -11,6 +12,7 @@ import com.cooleshow.base.utils.SizeUtils;
 import com.cooleshow.base.utils.TimeUtils;
 import com.cooleshow.musicmerge.R;
 import com.cooleshow.musicmerge.bean.MyWorkListBean;
+import com.cooleshow.musicmerge.constants.WorksType;
 
 import java.util.ArrayList;
 import java.util.Date;
@@ -95,14 +97,26 @@ public class MyDraftWorkListAdapter extends BaseQuickAdapter<MyWorkListBean.Rows
         int posResult = isContain(bean.getId());
         selectView.setSelected(posResult != -1);
 
-        View cs_root = holder.getView(R.id.cs_root);
-        RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) cs_root.getLayoutParams();
-        if(holder.getLayoutPosition() == 0){
-            params.setMargins(SizeUtils.dp2px(13),SizeUtils.dp2px(12),SizeUtils.dp2px(13),SizeUtils.dp2px(12));
-        }else{
-            params.setMargins(SizeUtils.dp2px(13),0,SizeUtils.dp2px(13),SizeUtils.dp2px(12));
+        String fileType = bean.getFileType();
+        TextView tv_tag = holder.getView(R.id.tv_tag);
+        try {
+            WorksType worksType = WorksType.valueOf(fileType);
+            tv_tag.setVisibility(View.VISIBLE);
+            tv_tag.setText(worksType.getValue());
+            tv_tag.setBackgroundResource(worksType == WorksType.AUDIO ? R.drawable.shape_works_file_type_tag : R.drawable.shape_works_file_type_tag2);
+        } catch (Exception e) {
+            e.printStackTrace();
+            tv_tag.setVisibility(View.GONE);
         }
-        cs_root.setLayoutParams(params);
+//
+//        View cs_root = holder.getView(R.id.cs_root);
+//        RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) cs_root.getLayoutParams();
+//        if(holder.getLayoutPosition() == 0){
+//            params.setMargins(SizeUtils.dp2px(13),SizeUtils.dp2px(12),SizeUtils.dp2px(13),SizeUtils.dp2px(12));
+//        }else{
+//            params.setMargins(SizeUtils.dp2px(13),0,SizeUtils.dp2px(13),SizeUtils.dp2px(12));
+//        }
+//        cs_root.setLayoutParams(params);
     }
 
     private int isContain(String id) {

+ 20 - 7
musicMerge/src/main/java/com/cooleshow/musicmerge/adapter/MyWorkListAdapter.java

@@ -2,6 +2,7 @@ package com.cooleshow.musicmerge.adapter;
 
 import android.view.View;
 import android.widget.ImageView;
+import android.widget.TextView;
 
 import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.chad.library.adapter.base.viewholder.BaseViewHolder;
@@ -10,6 +11,7 @@ import com.cooleshow.base.utils.SizeUtils;
 import com.cooleshow.base.utils.TimeUtils;
 import com.cooleshow.musicmerge.R;
 import com.cooleshow.musicmerge.bean.MyWorkListBean;
+import com.cooleshow.musicmerge.constants.WorksType;
 
 import java.util.Date;
 
@@ -37,13 +39,24 @@ public class MyWorkListAdapter extends BaseQuickAdapter<MyWorkListBean.RowsBean,
         String dateStr = TimeUtils.date2String(date, TimeUtils.getSafeDateFormatForDay());
         holder.setText(R.id.tv_date, dateStr);
 
-        View cs_root = holder.getView(R.id.cs_root);
-        RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) cs_root.getLayoutParams();
-        if(holder.getLayoutPosition() == 0){
-            params.setMargins(SizeUtils.dp2px(13),SizeUtils.dp2px(12),SizeUtils.dp2px(13),SizeUtils.dp2px(12));
-        }else{
-            params.setMargins(SizeUtils.dp2px(13),0,SizeUtils.dp2px(13),SizeUtils.dp2px(12));
+        String fileType = bean.getFileType();
+        TextView tv_tag = holder.getView(R.id.tv_tag);
+        try {
+            WorksType worksType = WorksType.valueOf(fileType);
+            tv_tag.setVisibility(View.VISIBLE);
+            tv_tag.setText(worksType.getValue());
+            tv_tag.setBackgroundResource(worksType == WorksType.AUDIO ? R.drawable.shape_works_file_type_tag : R.drawable.shape_works_file_type_tag2);
+        } catch (Exception e) {
+            e.printStackTrace();
+            tv_tag.setVisibility(View.GONE);
         }
-        cs_root.setLayoutParams(params);
+//        View cs_root = holder.getView(R.id.cs_root);
+//        RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) cs_root.getLayoutParams();
+//        if(holder.getLayoutPosition() == 0){
+//            params.setMargins(SizeUtils.dp2px(13),SizeUtils.dp2px(12),SizeUtils.dp2px(13),SizeUtils.dp2px(12));
+//        }else{
+//            params.setMargins(SizeUtils.dp2px(13),0,SizeUtils.dp2px(13),SizeUtils.dp2px(12));
+//        }
+//        cs_root.setLayoutParams(params);
     }
 }

+ 9 - 0
musicMerge/src/main/java/com/cooleshow/musicmerge/bean/MyWorkListBean.java

@@ -135,6 +135,15 @@ public class MyWorkListBean {
         private String submitTime;
         private String createTime;
         private String expireTime;
+        private String fileType;
+
+        public String getFileType() {
+            return fileType;
+        }
+
+        public void setFileType(String fileType) {
+            this.fileType = fileType;
+        }
 
         public String getExpireTime() {
             return expireTime;

+ 1 - 1
musicMerge/src/main/java/com/cooleshow/musicmerge/constants/WorksType.java

@@ -1,7 +1,7 @@
 package com.cooleshow.musicmerge.constants;
 
 
-import com.daya.common_stu_tea.interfaces.IFilterViewData;
+import com.cooleshow.base.interfaces.IFilterViewData;
 
 /**
  * Author by pq, Date on 2024/5/14.

+ 18 - 4
musicMerge/src/main/java/com/cooleshow/musicmerge/presenter/work/MyWorkPresenter.java

@@ -1,5 +1,7 @@
 package com.cooleshow.musicmerge.presenter.work;
 
+import android.text.TextUtils;
+
 import com.cooleshow.base.common.BaseConstant;
 import com.cooleshow.base.constanst.Constants;
 import com.cooleshow.base.presenter.BasePresenter;
@@ -16,14 +18,20 @@ import org.json.JSONObject;
  * Author by pq, Date on 2023/8/31.
  */
 public class MyWorkPresenter extends BasePresenter<MyWorkContract.View> {
-    public void getMyPublishWorks(int page) {
+    public void getMyPublishWorks(int page, String fileType, String search) {
         JSONObject jsonObject = new JSONObject();
         try {
             jsonObject.put("type", "FORMAL");
+            if (!TextUtils.isEmpty(fileType)) {
+                jsonObject.put("fileType", fileType);
+            }
+            if (!TextUtils.isEmpty(search)) {
+                jsonObject.put("keyword", search);
+            }
             jsonObject.put("page", page);
             jsonObject.put("rows", Constants.DEFAULT_DATA_SIZE);
         } catch (JSONException e) {
-            throw new RuntimeException(e);
+            e.printStackTrace();
         }
         addSubscribe(create(Api.class).getMyWorks(BaseConstant.CLIENT_API_GROUP_NAME,RequestBodyUtil.convertToRequestBodyJson(jsonObject.toString())), new BaseObserver<MyWorkListBean>(getView()) {
             @Override
@@ -43,14 +51,20 @@ public class MyWorkPresenter extends BasePresenter<MyWorkContract.View> {
         });
     }
 
-    public void getMyDraftWorks(int page) {
+    public void getMyDraftWorks(int page,String fileType, String search) {
         JSONObject jsonObject = new JSONObject();
         try {
             jsonObject.put("type", "DRAFT");
+            if (!TextUtils.isEmpty(fileType)) {
+                jsonObject.put("fileType", fileType);
+            }
+            if (!TextUtils.isEmpty(search)) {
+                jsonObject.put("keyword", search);
+            }
             jsonObject.put("page", page);
             jsonObject.put("rows", Constants.DEFAULT_DATA_SIZE);
         } catch (JSONException e) {
-            throw new RuntimeException(e);
+            e.printStackTrace();
         }
         addSubscribe(create(Api.class).getMyWorks(BaseConstant.CLIENT_API_GROUP_NAME,RequestBodyUtil.convertToRequestBodyJson(jsonObject.toString())), new BaseObserver<MyWorkListBean>(getView()) {
             @Override

+ 15 - 0
musicMerge/src/main/java/com/cooleshow/musicmerge/ui/MusicHandleActivity.java

@@ -306,6 +306,11 @@ public class MusicHandleActivity extends BaseMVPActivity<AcMusicHandleLayoutBind
             public void pausePlay() {
                 MusicHandleActivity.this.pausePlay();
             }
+
+            @Override
+            public void retryRecord() {
+
+            }
         });
         viewBinding.seekPlay.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
             @Override
@@ -1172,6 +1177,11 @@ public class MusicHandleActivity extends BaseMVPActivity<AcMusicHandleLayoutBind
             public void toShare(ShareType shareType) {
                 goShare(intentBean, shareType);
             }
+
+            @Override
+            public void goLookDetail() {
+
+            }
         });
         shareDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
             @Override
@@ -1363,6 +1373,11 @@ public class MusicHandleActivity extends BaseMVPActivity<AcMusicHandleLayoutBind
     }
 
     @Override
+    public void getDetailByRecordSuccess(MusicDataBean data) {
+
+    }
+
+    @Override
     protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
         super.onActivityResult(requestCode, resultCode, data);
         UMShareAPI.get(MusicHandleActivity.this).onActivityResult(requestCode, resultCode, data);

+ 2 - 2
musicMerge/src/main/java/com/cooleshow/musicmerge/ui/MusicHandleActivity_.java

@@ -1372,7 +1372,7 @@ public class MusicHandleActivity_ extends BaseMVPActivity<AcMusicHandleLayoutBin
     private void showSaveTipDialog() {
         pausePlay();
         CommonConfirmDialog2 commonConfirmDialog = new CommonConfirmDialog2(this);
-        commonConfirmDialog.setWidth(SizeUtils.dp2px(387));
+        commonConfirmDialog.setWidth(SizeUtils.dp2px(350));
         commonConfirmDialog.show();
         commonConfirmDialog.setIsCanCel(false);
         commonConfirmDialog.setTitle("提示");
@@ -1691,7 +1691,7 @@ public class MusicHandleActivity_ extends BaseMVPActivity<AcMusicHandleLayoutBin
 
     private void showOtherTipDialog() {
         CommonConfirmDialog2 commonConfirmDialog = new CommonConfirmDialog2(this);
-        commonConfirmDialog.setWidth(SizeUtils.dp2px(387));
+        commonConfirmDialog.setWidth(SizeUtils.dp2px(350));
         commonConfirmDialog.show();
         commonConfirmDialog.setIsCanCel(false);
         commonConfirmDialog.setTitle("提示");

+ 3 - 0
musicMerge/src/main/java/com/cooleshow/musicmerge/ui/MusicHandleSettingFragment.java

@@ -446,6 +446,9 @@ public class MusicHandleSettingFragment extends BaseFragment<FgMusicHandleSettin
         return value;
     }
 
+    public String getConfigJson(int defaultDelay, int evaluateDelay) {
+        return getConfigJson(defaultDelay, evaluateDelay, MusicMergeConfig.STAFF, 0);
+    }
     public String getConfigJson(int defaultDelay, int evaluateDelay, String musicRenderType, int partIndex) {
         if (isDetached()) {
             return "";

+ 74 - 2
musicMerge/src/main/java/com/cooleshow/musicmerge/ui/work/MyWorkDraftFragment.java

@@ -1,6 +1,8 @@
 package com.cooleshow.musicmerge.ui.work;
 
 import android.Manifest;
+import android.content.DialogInterface;
+import android.text.Editable;
 import android.view.View;
 import android.widget.CompoundButton;
 import android.widget.TextView;
@@ -12,6 +14,8 @@ import com.cooleshow.base.constanst.Constants;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.fragment.BaseMVPFragment;
 import com.cooleshow.base.utils.PermissionUtils;
+import com.cooleshow.base.utils.SoftKeyboardUtil;
+import com.cooleshow.base.utils.SoftKeyboardUtils;
 import com.cooleshow.base.utils.ToastUtil;
 import com.cooleshow.base.utils.UiUtils;
 import com.cooleshow.base.utils.Utils;
@@ -20,8 +24,11 @@ import com.cooleshow.base.widgets.DialogUtil;
 import com.cooleshow.base.widgets.EmptyViewLayout;
 import com.cooleshow.base.widgets.dialog.CommonConfirmDialog;
 import com.cooleshow.base.widgets.dialog.CommonConfirmDialog2;
+import com.cooleshow.base.widgets.dialog.CommonFilterDialog;
+import com.cooleshow.musicmerge.R;
 import com.cooleshow.musicmerge.adapter.MyDraftWorkListAdapter;
 import com.cooleshow.musicmerge.bean.MyWorkListBean;
+import com.cooleshow.musicmerge.constants.WorksType;
 import com.cooleshow.musicmerge.contract.MyWorkContract;
 import com.cooleshow.musicmerge.databinding.FgMyWorkDraftLayoutBinding;
 import com.cooleshow.musicmerge.presenter.work.MyWorkPresenter;
@@ -31,6 +38,7 @@ import com.scwang.smart.refresh.layout.listener.OnRefreshListener;
 import com.tbruyelle.rxpermissions3.RxPermissions;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 
 import androidx.annotation.NonNull;
 import androidx.recyclerview.widget.LinearLayoutManager;
@@ -38,13 +46,18 @@ import androidx.recyclerview.widget.LinearLayoutManager;
 /**
  * Author by pq, Date on 2023/10/30.
  */
-public class MyWorkDraftFragment extends BaseMVPFragment<FgMyWorkDraftLayoutBinding, MyWorkPresenter> implements MyWorkContract.View {
+public class MyWorkDraftFragment extends BaseMVPFragment<FgMyWorkDraftLayoutBinding, MyWorkPresenter> implements MyWorkContract.View, View.OnClickListener {
     public static final int REQUEST_CODE = 10001;
+    private ArrayList<WorksType> mWorksTypes;
     private int currentPage = 1;
     private boolean hasNext = true;
     private MyDraftWorkListAdapter mListAdapter;
 
     private boolean isEditMode = false;
+    private CommonFilterDialog<WorksType> mCommonFilterDialog;
+    private String fileType;
+    private String searchStr;
+    private int filterSelectPos = 0;
 
     @Override
     protected FgMyWorkDraftLayoutBinding getLayoutView() {
@@ -70,6 +83,10 @@ public class MyWorkDraftFragment extends BaseMVPFragment<FgMyWorkDraftLayoutBind
         mListAdapter.setEmptyView(emptyViewLayout);
         mViewBinding.recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
         mViewBinding.recyclerView.setAdapter(mListAdapter);
+        WorksType[] values = WorksType.values();
+        mWorksTypes = new ArrayList<>();
+        mWorksTypes.addAll(Arrays.asList(values));
+
         initListener();
         getData();
     }
@@ -97,6 +114,8 @@ public class MyWorkDraftFragment extends BaseMVPFragment<FgMyWorkDraftLayoutBind
     }
 
     private void initListener() {
+        mViewBinding.tvFilter.setOnClickListener(this);
+        mViewBinding.tvSearch.setOnClickListener(this);
         mListAdapter.setOnItemClickListener(new OnItemClickListener() {
             @Override
             public void onItemClick(@NonNull BaseQuickAdapter<?, ?> adapter, @NonNull View view, int position) {
@@ -221,7 +240,7 @@ public class MyWorkDraftFragment extends BaseMVPFragment<FgMyWorkDraftLayoutBind
 
     private void getData() {
         if (presenter != null) {
-            presenter.getMyDraftWorks(currentPage);
+            presenter.getMyDraftWorks(currentPage, fileType, searchStr);
         }
     }
 
@@ -280,4 +299,57 @@ public class MyWorkDraftFragment extends BaseMVPFragment<FgMyWorkDraftLayoutBind
         hasNext = dataSize >= Constants.DEFAULT_DATA_SIZE;
         mViewBinding.refreshLayout.setNoMoreData(!hasNext);
     }
+
+    @Override
+    public void onClick(View v) {
+        int id = v.getId();
+        if (id == R.id.tv_filter) {
+            selectFilter(mViewBinding.tvFilter);
+            return;
+        }
+        if (id == R.id.tv_search) {
+            Editable editable = mViewBinding.etTargetName.getText();
+            if (editable != null) {
+                searchStr = editable.toString().trim();
+            } else {
+                searchStr = "";
+            }
+            refresh();
+            mViewBinding.etTargetName.clearFocus();
+            SoftKeyboardUtils.hideSoftKeyboard(mViewBinding.etTargetName);
+            return;
+        }
+    }
+
+    private void selectFilter(TextView targetView) {
+        if (mCommonFilterDialog == null) {
+            mCommonFilterDialog = new CommonFilterDialog<WorksType>(getContext());
+            mCommonFilterDialog.setOnEventListener(new CommonFilterDialog.OnEventListener() {
+                @Override
+                public void onItemClickListener(BaseQuickAdapter baseQuickAdapter, int pos) {
+                    if (mWorksTypes != null && pos < mWorksTypes.size()) {
+                        WorksType worksType = mWorksTypes.get(pos);
+                        MyWorkDraftFragment.this.filterSelectPos = pos;
+                        fileType = worksType.getId();
+                        mViewBinding.tvFilter.setText(worksType.getValue());
+                        refresh();
+                    }
+                }
+            });
+
+            mCommonFilterDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
+                @Override
+                public void onDismiss(DialogInterface dialog) {
+                    UiUtils.refreshFilterTextStyle(false, targetView);
+                }
+            });
+        }
+
+        if (!mCommonFilterDialog.isShowing()) {
+            mCommonFilterDialog.show();
+            UiUtils.refreshFilterTextStyle(true, targetView);
+        }
+        mCommonFilterDialog.setSelectPos(filterSelectPos);
+        mCommonFilterDialog.setData(mWorksTypes);
+    }
 }

+ 79 - 6
musicMerge/src/main/java/com/cooleshow/musicmerge/ui/work/MyWorkPublishFragment.java

@@ -1,35 +1,51 @@
 package com.cooleshow.musicmerge.ui.work;
 
+import android.content.DialogInterface;
+import android.text.Editable;
 import android.view.View;
+import android.widget.TextView;
 
 import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.chad.library.adapter.base.listener.OnItemClickListener;
 import com.cooleshow.base.constanst.Constants;
 import com.cooleshow.base.ui.fragment.BaseMVPFragment;
+import com.cooleshow.base.utils.SoftKeyboardUtil;
+import com.cooleshow.base.utils.SoftKeyboardUtils;
+import com.cooleshow.base.utils.UiUtils;
 import com.cooleshow.base.utils.helper.WebStartHelper;
 import com.cooleshow.base.widgets.EmptyViewLayout;
+import com.cooleshow.base.widgets.dialog.CommonFilterDialog;
+import com.cooleshow.musicmerge.R;
 import com.cooleshow.musicmerge.adapter.MyWorkListAdapter;
 import com.cooleshow.musicmerge.bean.MyWorkListBean;
+import com.cooleshow.musicmerge.constants.WorksType;
 import com.cooleshow.musicmerge.contract.MyWorkContract;
 import com.cooleshow.musicmerge.databinding.FgMyWorkPublishLayoutBinding;
 import com.cooleshow.musicmerge.presenter.work.MyWorkPresenter;
 import com.scwang.smart.refresh.footer.ClassicsFooter;
 import com.scwang.smart.refresh.layout.api.RefreshLayout;
+import com.scwang.smart.refresh.layout.listener.OnLoadMoreListener;
 import com.scwang.smart.refresh.layout.listener.OnRefreshListener;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+
 import androidx.annotation.NonNull;
 import androidx.recyclerview.widget.LinearLayoutManager;
 
 /**
  * Author by pq, Date on 2023/10/30.
  */
-public class MyWorkPublishFragment extends BaseMVPFragment<FgMyWorkPublishLayoutBinding, MyWorkPresenter> implements MyWorkContract.View {
-
+public class MyWorkPublishFragment extends BaseMVPFragment<FgMyWorkPublishLayoutBinding, MyWorkPresenter> implements MyWorkContract.View, View.OnClickListener {
+    private ArrayList<WorksType> mWorksTypes;
     private MyWorkListAdapter mListAdapter;
 
     private int currentPage = 1;
     private boolean hasNext = true;
-
+    private CommonFilterDialog<WorksType> mCommonFilterDialog;
+    private String fileType;
+    private String searchStr;
+    private int filterSelectPos = 0;
     @Override
     protected FgMyWorkPublishLayoutBinding getLayoutView() {
         return FgMyWorkPublishLayoutBinding.inflate(getLayoutInflater());
@@ -53,7 +69,9 @@ public class MyWorkPublishFragment extends BaseMVPFragment<FgMyWorkPublishLayout
         mListAdapter.setEmptyView(emptyViewLayout);
         mViewBinding.recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
         mViewBinding.recyclerView.setAdapter(mListAdapter);
-
+        WorksType[] values = WorksType.values();
+        mWorksTypes = new ArrayList<>();
+        mWorksTypes.addAll(Arrays.asList(values));
 
         initListener();
         getData();
@@ -70,6 +88,8 @@ public class MyWorkPublishFragment extends BaseMVPFragment<FgMyWorkPublishLayout
     }
 
     private void initListener() {
+        mViewBinding.tvFilter.setOnClickListener(this);
+        mViewBinding.tvSearch.setOnClickListener(this);
 
         mListAdapter.setOnItemClickListener(new OnItemClickListener() {
             @Override
@@ -86,7 +106,7 @@ public class MyWorkPublishFragment extends BaseMVPFragment<FgMyWorkPublishLayout
                 refresh();
             }
         });
-        mViewBinding.refreshLayout.setOnLoadMoreListener(new com.scwang.smart.refresh.layout.listener.OnLoadMoreListener() {
+        mViewBinding.refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
             @Override
             public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
                 //上拉加载
@@ -102,7 +122,7 @@ public class MyWorkPublishFragment extends BaseMVPFragment<FgMyWorkPublishLayout
 
     private void getData() {
         if (presenter != null) {
-            presenter.getMyPublishWorks(currentPage);
+            presenter.getMyPublishWorks(currentPage, fileType, searchStr);
         }
     }
 
@@ -157,4 +177,57 @@ public class MyWorkPublishFragment extends BaseMVPFragment<FgMyWorkPublishLayout
     public void delSuccess() {
 
     }
+
+    @Override
+    public void onClick(View v) {
+        int id = v.getId();
+        if (id == R.id.tv_filter) {
+            selectFilter(mViewBinding.tvFilter);
+            return;
+        }
+        if (id == R.id.tv_search) {
+            Editable editable = mViewBinding.etTargetName.getText();
+            if (editable != null) {
+                searchStr = editable.toString().trim();
+            } else {
+                searchStr = "";
+            }
+            refresh();
+            mViewBinding.etTargetName.clearFocus();
+            SoftKeyboardUtils.hideSoftKeyboard(mViewBinding.etTargetName);
+            return;
+        }
+    }
+
+    private void selectFilter(TextView targetView) {
+        if (mCommonFilterDialog == null) {
+            mCommonFilterDialog = new CommonFilterDialog<WorksType>(getContext());
+            mCommonFilterDialog.setOnEventListener(new CommonFilterDialog.OnEventListener() {
+                @Override
+                public void onItemClickListener(BaseQuickAdapter baseQuickAdapter, int pos) {
+                    if (mWorksTypes != null && pos < mWorksTypes.size()) {
+                        MyWorkPublishFragment.this.filterSelectPos =pos;
+                        WorksType worksType = mWorksTypes.get(pos);
+                        fileType = worksType.getId();
+                        mViewBinding.tvFilter.setText(worksType.getValue());
+                        refresh();
+                    }
+                }
+            });
+
+            mCommonFilterDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
+                @Override
+                public void onDismiss(DialogInterface dialog) {
+                    UiUtils.refreshFilterTextStyle(false, targetView);
+                }
+            });
+        }
+
+        if (!mCommonFilterDialog.isShowing()) {
+            mCommonFilterDialog.show();
+            UiUtils.refreshFilterTextStyle(true, targetView);
+        }
+        mCommonFilterDialog.setSelectPos(filterSelectPos);
+        mCommonFilterDialog.setData(mWorksTypes);
+    }
 }

BIN
musicMerge/src/main/res/drawable-xhdpi/mh_icon_arrow_down_black.png


BIN
musicMerge/src/main/res/drawable-xhdpi/mh_icon_search.png


BIN
musicMerge/src/main/res/drawable-xxhdpi/mh_icon_arrow_down_black.png


BIN
musicMerge/src/main/res/drawable-xxhdpi/mh_icon_search.png


+ 6 - 0
musicMerge/src/main/res/drawable/shape_works_file_type_tag.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#CC627FC1"/>
+    <corners android:topRightRadius="8dp"
+        android:bottomLeftRadius="8dp"/>
+</shape>

+ 6 - 0
musicMerge/src/main/res/drawable/shape_works_file_type_tag2.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#CCEE4D28"/>
+    <corners android:topRightRadius="8dp"
+        android:bottomLeftRadius="8dp"/>
+</shape>

+ 82 - 2
musicMerge/src/main/res/layout/fg_my_work_draft_layout.xml

@@ -3,14 +3,94 @@
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="match_parent">
+    <TextView
+        android:layout_marginStart="10dp"
+        android:id="@+id/tv_filter"
+        android:layout_width="wrap_content"
+        android:layout_height="0dp"
+        android:drawableRight="@drawable/mh_icon_arrow_down_black"
+        android:drawablePadding="5dp"
+        android:ellipsize="end"
+        android:gravity="center"
+        android:includeFontPadding="false"
+        android:maxLength="6"
+        android:maxLines="1"
+        android:paddingStart="10dp"
+        android:text="全部"
+        android:textColor="@color/color_333333"
+        android:textSize="@dimen/sp_14"
+        android:visibility="visible"
+        app:layout_constraintBottom_toBottomOf="@+id/view_search_bg"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintTop_toTopOf="@+id/view_search_bg" />
+
+    <View
+        android:id="@+id/view_search_bg"
+        android:layout_width="0dp"
+        android:layout_height="35dp"
+        android:layout_marginStart="8dp"
+        android:layout_marginTop="12dp"
+        android:layout_marginEnd="14dp"
+        android:background="@drawable/bg_white_18dp"
+        app:layout_constraintLeft_toRightOf="@+id/tv_filter"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <ImageView
+        android:id="@+id/iv_search_icon"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="12dp"
+        android:src="@drawable/mh_icon_search"
+        app:layout_constraintBottom_toBottomOf="@+id/view_search_bg"
+        app:layout_constraintLeft_toLeftOf="@+id/view_search_bg"
+        app:layout_constraintTop_toTopOf="@+id/view_search_bg" />
+
+    <com.cooleshow.base.widgets.ClearEditText
+        android:id="@+id/et_target_name"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_marginEnd="5dp"
+        android:background="@null"
+        android:ellipsize="end"
+        android:hint="请输入曲目名称"
+        android:maxLines="1"
+        android:paddingStart="8dp"
+        android:textColor="@color/color_999999"
+        android:textSize="@dimen/sp_13"
+        app:layout_constraintBottom_toBottomOf="@+id/view_search_bg"
+        app:layout_constraintLeft_toRightOf="@+id/iv_search_icon"
+        app:layout_constraintRight_toLeftOf="@+id/tv_search"
+        app:layout_constraintTop_toTopOf="@+id/view_search_bg" />
+
+    <TextView
+        android:id="@+id/tv_search"
+        android:layout_width="56dp"
+        android:layout_height="28dp"
+        android:layout_marginEnd="4dp"
+        android:background="@drawable/shape_2dc7aa_18dp"
+        android:gravity="center"
+        android:text="搜索"
+        android:textColor="@color/white"
+        android:textSize="@dimen/sp_14"
+        app:layout_constraintBottom_toBottomOf="@+id/view_search_bg"
+        app:layout_constraintRight_toRightOf="@+id/view_search_bg"
+        app:layout_constraintTop_toTopOf="@+id/view_search_bg" />
+
+    <androidx.constraintlayout.widget.Group
+        android:id="@+id/group_search"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        app:constraint_referenced_ids="tv_search,et_target_name,iv_search_icon,view_search_bg" />
+
 
     <com.scwang.smart.refresh.layout.SmartRefreshLayout
         android:id="@+id/refreshLayout"
         android:layout_width="match_parent"
         android:layout_height="0dp"
-        app:layout_constraintBottom_toBottomOf="parent"
+        android:layout_marginTop="12dp"
         app:layout_constraintBottom_toTopOf="@+id/cs_bottom"
-        app:layout_constraintTop_toTopOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/view_search_bg"
         app:srlEnableLoadMore="true">
 
         <androidx.recyclerview.widget.RecyclerView

+ 82 - 1
musicMerge/src/main/res/layout/fg_my_work_publish_layout.xml

@@ -4,13 +4,94 @@
     android:layout_width="match_parent"
     android:layout_height="match_parent">
 
+    <TextView
+        android:layout_marginStart="10dp"
+        android:id="@+id/tv_filter"
+        android:layout_width="wrap_content"
+        android:layout_height="0dp"
+        android:drawableRight="@drawable/mh_icon_arrow_down_black"
+        android:drawablePadding="5dp"
+        android:ellipsize="end"
+        android:gravity="center"
+        android:includeFontPadding="false"
+        android:maxLength="6"
+        android:maxLines="1"
+        android:paddingStart="10dp"
+        android:text="全部"
+        android:textColor="@color/color_333333"
+        android:textSize="@dimen/sp_14"
+        android:visibility="visible"
+        app:layout_constraintBottom_toBottomOf="@+id/view_search_bg"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintTop_toTopOf="@+id/view_search_bg" />
+
+    <View
+        android:id="@+id/view_search_bg"
+        android:layout_width="0dp"
+        android:layout_height="35dp"
+        android:layout_marginStart="8dp"
+        android:layout_marginTop="12dp"
+        android:layout_marginEnd="14dp"
+        android:background="@drawable/bg_white_18dp"
+        app:layout_constraintLeft_toRightOf="@+id/tv_filter"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <ImageView
+        android:id="@+id/iv_search_icon"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="12dp"
+        android:src="@drawable/mh_icon_search"
+        app:layout_constraintBottom_toBottomOf="@+id/view_search_bg"
+        app:layout_constraintLeft_toLeftOf="@+id/view_search_bg"
+        app:layout_constraintTop_toTopOf="@+id/view_search_bg" />
+
+    <com.cooleshow.base.widgets.ClearEditText
+        android:id="@+id/et_target_name"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_marginEnd="5dp"
+        android:background="@null"
+        android:ellipsize="end"
+        android:hint="请输入曲目名称"
+        android:maxLines="1"
+        android:paddingStart="8dp"
+        android:textColor="@color/color_999999"
+        android:textSize="@dimen/sp_13"
+        app:layout_constraintBottom_toBottomOf="@+id/view_search_bg"
+        app:layout_constraintLeft_toRightOf="@+id/iv_search_icon"
+        app:layout_constraintRight_toLeftOf="@+id/tv_search"
+        app:layout_constraintTop_toTopOf="@+id/view_search_bg" />
+
+    <TextView
+        android:id="@+id/tv_search"
+        android:layout_width="56dp"
+        android:layout_height="28dp"
+        android:layout_marginEnd="4dp"
+        android:background="@drawable/shape_2dc7aa_18dp"
+        android:gravity="center"
+        android:text="搜索"
+        android:textColor="@color/white"
+        android:textSize="@dimen/sp_14"
+        app:layout_constraintBottom_toBottomOf="@+id/view_search_bg"
+        app:layout_constraintRight_toRightOf="@+id/view_search_bg"
+        app:layout_constraintTop_toTopOf="@+id/view_search_bg" />
+
+    <androidx.constraintlayout.widget.Group
+        android:id="@+id/group_search"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        app:constraint_referenced_ids="tv_search,et_target_name,iv_search_icon,view_search_bg" />
+
     <com.scwang.smart.refresh.layout.SmartRefreshLayout
         android:id="@+id/refreshLayout"
         android:layout_width="match_parent"
         android:layout_height="0dp"
         app:srlEnableRefresh="true"
+        android:layout_marginTop="12dp"
         app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintTop_toTopOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/view_search_bg"
         app:srlEnableLoadMore="true">
 
         <androidx.recyclerview.widget.RecyclerView

+ 18 - 0
musicMerge/src/main/res/layout/item_my_draft_work_layout.xml

@@ -45,6 +45,24 @@
         android:layout_height="56dp"/>
 
     <TextView
+        tools:visibility="visible"
+        android:visibility="gone"
+        android:id="@+id/tv_tag"
+        android:paddingBottom="1dp"
+        android:paddingTop="1dp"
+        android:paddingEnd="6dp"
+        android:paddingStart="6dp"
+        android:includeFontPadding="false"
+        android:background="@drawable/shape_works_file_type_tag"
+        app:layout_constraintRight_toRightOf="@+id/iv_icon"
+        app:layout_constraintTop_toTopOf="@+id/iv_icon"
+        tools:text="音频"
+        android:textColor="@color/white"
+        android:textSize="@dimen/sp_9"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"/>
+
+    <TextView
         app:layout_constraintRight_toLeftOf="@+id/iv_play_tag"
         android:id="@+id/tv_title"
         tools:text="山茶花读不懂白玫瑰山茶花读不懂白玫瑰山茶花读不懂白玫瑰山茶花读不懂白玫瑰山茶花读不懂白玫瑰"

+ 18 - 0
musicMerge/src/main/res/layout/item_my_work_layout.xml

@@ -33,6 +33,24 @@
         app:layout_constraintTop_toTopOf="parent"
         android:layout_height="56dp"/>
 
+
+    <TextView
+        android:visibility="gone"
+        android:id="@+id/tv_tag"
+        android:paddingBottom="1dp"
+        android:paddingTop="1dp"
+        android:paddingEnd="6dp"
+        android:paddingStart="6dp"
+        android:includeFontPadding="false"
+        android:background="@drawable/shape_works_file_type_tag"
+        app:layout_constraintRight_toRightOf="@+id/iv_icon"
+        app:layout_constraintTop_toTopOf="@+id/iv_icon"
+        tools:text="音频"
+        android:textColor="@color/white"
+        android:textSize="@dimen/sp_9"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"/>
+
     <TextView
         android:id="@+id/tv_title"
         tools:text="山茶花读不懂白玫瑰山茶花读不懂白玫瑰山茶花读不懂白玫瑰山茶花读不懂白玫瑰山茶花读不懂白玫瑰"