浏览代码

增加云教练权限提示

Pq 10 月之前
父节点
当前提交
bdd0e2d374

+ 1 - 1
BaseLibrary/src/main/java/com/cooleshow/base/utils/helper/PermissionTipHelper.java

@@ -66,7 +66,7 @@ public class PermissionTipHelper {
                 mPermissionTipDialog.setDes(des);
             }
         };
-        //增加延时是因为手写手机有拒绝权限并不再询问的选项,当去请求权限的时候会直接返回拒绝,这样的话就不需要显示这个提示了窗
+        //增加延时是因为部分手机有拒绝权限并不再询问的选项,当去请求权限的时候会直接返回拒绝,这样的话就不需要显示这个提示了窗
         ThreadUtils.runOnUiThreadDelayed(mRunnable, 300);
     }
 

+ 29 - 7
accompany/src/main/java/com/daya/orchestra/accompany/web/AccompanyFragment.java

@@ -63,6 +63,7 @@ import com.cooleshow.base.utils.ToastUtil;
 import com.cooleshow.base.utils.UiUtils;
 import com.cooleshow.base.utils.Utils;
 import com.cooleshow.base.utils.WebParamsUtils;
+import com.cooleshow.base.utils.helper.PermissionTipHelper;
 import com.cooleshow.base.websocket.JWebSocketClient;
 import com.cooleshow.base.widgets.BaseDialog;
 import com.cooleshow.base.widgets.CommonDialog;
@@ -380,9 +381,12 @@ public class AccompanyFragment extends BaseMVPFragment<FragmentAccompanyBinding,
     public void startEvaluating(JSONObject message) {
         isWiredHeadsetOn = false;
         isSendStartEvaluatingMessage = true;
+        String[] permissions = new String[]{Manifest.permission.RECORD_AUDIO};
+        PermissionTipHelper.getInstance().showTipDialog(this, permissions);
         new RxPermissions(this)
-                .request(Manifest.permission.RECORD_AUDIO)
+                .request(permissions)
                 .subscribe(permission -> {
+                    PermissionTipHelper.getInstance().dismissDialog();
                     if (permission) {
 //                        startWebSocketClient(message);
                         if (webSocketClient != null && !webSocketClient.isOpen()) {
@@ -836,9 +840,12 @@ public class AccompanyFragment extends BaseMVPFragment<FragmentAccompanyBinding,
         onSendMessage(message.toString());
         isWiredHeadsetOn = true;
         if (webSocketClient == null) {
+            String[] permissions = new String[]{Manifest.permission.RECORD_AUDIO};
+            PermissionTipHelper.getInstance().showTipDialog(this, permissions);
             new RxPermissions(this)
-                    .request(Manifest.permission.RECORD_AUDIO)
+                    .request(permissions)
                     .subscribe(permission -> {
+                        PermissionTipHelper.getInstance().dismissDialog();
                         if (permission) {
                             startWebSocketClient(message);
                         } else {
@@ -1171,9 +1178,12 @@ public class AccompanyFragment extends BaseMVPFragment<FragmentAccompanyBinding,
      */
     @Override
     public void openCamera(JSONObject message) {
+        String[] permissions = new String[]{Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO, Manifest.permission.WRITE_EXTERNAL_STORAGE};
+        PermissionTipHelper.getInstance().showTipDialog(this, permissions);
         new RxPermissions(this)
-                .request(Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO, Manifest.permission.WRITE_EXTERNAL_STORAGE)
+                .request(permissions)
                 .subscribe(permission -> {
+                    PermissionTipHelper.getInstance().dismissDialog();
                     if (permission) {
                         if (onAccompanyListener != null)
                             onAccompanyListener.openCamera();
@@ -1203,9 +1213,12 @@ public class AccompanyFragment extends BaseMVPFragment<FragmentAccompanyBinding,
 
     @Override
     public void startCapture(JSONObject message) {
+        String[] permissions = new String[]{Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO, Manifest.permission.WRITE_EXTERNAL_STORAGE};
+        PermissionTipHelper.getInstance().showTipDialog(this, permissions);
         new RxPermissions(this)
-                .request(Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO, Manifest.permission.WRITE_EXTERNAL_STORAGE)
+                .request(permissions)
                 .subscribe(permission -> {
+                    PermissionTipHelper.getInstance().dismissDialog();
                     if (permission) {
                         if (onAccompanyListener != null) {
                             onAccompanyListener.startCapture();
@@ -1669,9 +1682,12 @@ public class AccompanyFragment extends BaseMVPFragment<FragmentAccompanyBinding,
                 ToastUtil.getInstance().showShort("文件异常");
                 return;
             }
+            String[] permissions = new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE};
+            PermissionTipHelper.getInstance().showTipDialog(this, permissions);
             new RxPermissions(this)
-                    .request(Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE)
+                    .request(permissions)
                     .subscribe(permission -> {
+                        PermissionTipHelper.getInstance().dismissDialog();
                         if (permission) {
                             try {
                                 String type = midiFile.substring(midiFile.lastIndexOf(".") + 1);
@@ -2021,9 +2037,12 @@ public class AccompanyFragment extends BaseMVPFragment<FragmentAccompanyBinding,
 
     @Override
     public void cloudToggleFollow(String mode) {
+        String[] permissions = new String[]{Manifest.permission.RECORD_AUDIO};
+        PermissionTipHelper.getInstance().showTipDialog(this, permissions);
         new RxPermissions(this)
-                .request(Manifest.permission.RECORD_AUDIO)
+                .request(permissions)
                 .subscribe(permission -> {
+                    PermissionTipHelper.getInstance().dismissDialog();
                     if (permission) {
                         handleCloudFollow(mode);
                     }
@@ -2052,9 +2071,12 @@ public class AccompanyFragment extends BaseMVPFragment<FragmentAccompanyBinding,
 
     @Override
     public void startTune(JSONObject message) {
+        String[] permissions = new String[]{Manifest.permission.RECORD_AUDIO};
+        PermissionTipHelper.getInstance().showTipDialog(this, permissions);
         new RxPermissions(this)
-                .request(Manifest.permission.RECORD_AUDIO)
+                .request(permissions)
                 .subscribe(permission -> {
+                    PermissionTipHelper.getInstance().dismissDialog();
                     if (permission) {
                         if (mPlayHelper != null) {
                             mPlayHelper.startTune(message);