|
@@ -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);
|
|
|
+ }
|
|
|
}
|