Explorar o código

加强部分代码权限流程

Pq hai 1 ano
pai
achega
5fa234050a

+ 41 - 6
musicMerge/src/main/java/com/cooleshow/musicmerge/ui/work/MyWorkDraftFragment.java

@@ -1,7 +1,9 @@
 package com.cooleshow.musicmerge.ui.work;
 
+import android.Manifest;
 import android.view.View;
 import android.widget.CompoundButton;
+import android.widget.TextView;
 
 import com.alibaba.android.arouter.launcher.ARouter;
 import com.chad.library.adapter.base.BaseQuickAdapter;
@@ -9,8 +11,10 @@ import com.chad.library.adapter.base.listener.OnItemClickListener;
 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.ToastUtil;
 import com.cooleshow.base.utils.Utils;
+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;
@@ -21,6 +25,7 @@ import com.cooleshow.musicmerge.databinding.FgMyWorkDraftLayoutBinding;
 import com.cooleshow.musicmerge.presenter.work.MyWorkPresenter;
 import com.scwang.smart.refresh.layout.api.RefreshLayout;
 import com.scwang.smart.refresh.layout.listener.OnRefreshListener;
+import com.tbruyelle.rxpermissions3.RxPermissions;
 
 import java.util.ArrayList;
 
@@ -97,12 +102,7 @@ public class MyWorkDraftFragment extends BaseMVPFragment<FgMyWorkDraftLayoutBind
                         mListAdapter.setSelectId(rowsBean.getId());
                         updateSelectNum();
                     } else {
-                        ARouter.getInstance().build(RouterPath.MusicTuner.MUSIC_MERGE_PAGE)
-                                .withString("recordId", rowsBean.getMusicPracticeRecordId())
-                                .withString("worksId", rowsBean.getId())
-                                .withString("coverImg", rowsBean.getImg())
-                                .withString("title", rowsBean.getMusicSheetName())
-                                .navigation(getActivity(), REQUEST_CODE);
+                        goAdjustActivity(rowsBean);
                     }
                 }
 
@@ -155,6 +155,41 @@ public class MyWorkDraftFragment extends BaseMVPFragment<FgMyWorkDraftLayoutBind
         });
     }
 
+    private void goAdjustActivity(MyWorkListBean.RowsBean rowsBean) {
+        new RxPermissions(this)
+                .request(Manifest.permission.RECORD_AUDIO)
+                .subscribe(permission -> {
+                    if (permission) {
+                        startAdjust(rowsBean);
+                    } else {
+                        DialogUtil.showInCenter(getChildFragmentManager(), com.cooleshow.base.R.layout.accompany_permissions_popu, (holder, dialog) -> {
+                            TextView tvTitle = holder.getView(com.cooleshow.base.R.id.tv_title);
+                            TextView tvContent = holder.getView(com.cooleshow.base.R.id.tv_content);
+                            View btncancel = holder.getView(com.cooleshow.base.R.id.btn_cancel);
+                            View btnCommit = holder.getView(com.cooleshow.base.R.id.btn_commit);
+                            tvTitle.setText("提示");
+                            tvContent.setText("请开启麦克风访问权限");
+                            btncancel.setOnClickListener(view1 -> {
+                                dialog.dismiss();
+                            });
+                            btnCommit.setOnClickListener(view1 -> {
+                                PermissionUtils.toSelfSetting(getContext());
+                                dialog.dismiss();
+                            });
+                        });
+                    }
+                });
+    }
+
+    private void startAdjust(MyWorkListBean.RowsBean rowsBean) {
+        ARouter.getInstance().build(RouterPath.MusicTuner.MUSIC_MERGE_PAGE)
+                .withString("recordId", rowsBean.getMusicPracticeRecordId())
+                .withString("worksId", rowsBean.getId())
+                .withString("coverImg", rowsBean.getImg())
+                .withString("title", rowsBean.getMusicSheetName())
+                .navigation(getActivity(), REQUEST_CODE);
+    }
+
     private void updateSelectNum() {
         ArrayList<String> selectIds = mListAdapter.getSelectIds();
         if (selectIds != null) {