Pq 3 yıl önce
ebeveyn
işleme
d84a0bddd7

+ 36 - 1
BaseLibrary/src/main/java/com/cooleshow/base/ui/activity/scan/ScanActivity.java

@@ -51,6 +51,16 @@ public class ScanActivity extends BaseMVPActivity<ActivityScanLayoutBinding, Sca
         initMidTitleToolBar(viewBinding.toolbarInclude.toolbar, "扫码登录");
         viewBinding.toolbarInclude.tvRight.setVisibility(View.VISIBLE);
         viewBinding.toolbarInclude.tvRight.setImageResource(R.drawable.icon_scan_by_photo_album);
+        viewBinding.toolbarInclude.tvRight.setOnClickListener(this);
+    }
+
+    @Override
+    public void initData() {
+        super.initData();
+        checkCameraPermission();
+    }
+
+    private void initQrScan() {
         /**
          * 执行扫面Fragment的初始化操作
          */
@@ -63,7 +73,6 @@ public class ScanActivity extends BaseMVPActivity<ActivityScanLayoutBinding, Sca
          * 替换我们的扫描控件
          */
         getSupportFragmentManager().beginTransaction().replace(R.id.fl_my_container, captureFragment).commit();
-        viewBinding.toolbarInclude.tvRight.setOnClickListener(this);
     }
 
     @Override
@@ -111,6 +120,32 @@ public class ScanActivity extends BaseMVPActivity<ActivityScanLayoutBinding, Sca
         }
     }
 
+    private void checkCameraPermission() {
+        new RxPermissions(this)
+                .request(Manifest.permission.CAMERA)
+                .subscribe(permission -> {
+                    if (permission) {
+                        initQrScan();
+                    } else {
+                        DialogUtil.showInCenter(getSupportFragmentManager(), com.cooleshow.base.R.layout.common_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);
+                            TextView btncancel = holder.getView(com.cooleshow.base.R.id.btn_cancel);
+                            TextView btnCommit = holder.getView(com.cooleshow.base.R.id.btn_commit);
+                            tvTitle.setText("提示");
+                            tvContent.setText("扫描二维码需要相机权限,去设置?");
+                            btncancel.setOnClickListener(view1 -> {
+                                dialog.dismiss();
+                            });
+                            btnCommit.setOnClickListener(view1 -> {
+                                PermissionUtils.toSelfSetting(this);
+                                dialog.dismiss();
+                            });
+                        });
+                    }
+                });
+    }
+
     private void addPermissions() {
         new RxPermissions(this)
                 .request(Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE)