You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by ky...@apache.org on 2019/01/08 08:07:06 UTC
[incubator-weex] branch master updated: [android] modify playground
app camera runtime permission request behavior (#1221)
This is an automated email from the ASF dual-hosted git repository.
kyork pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-weex.git
The following commit(s) were added to refs/heads/master by this push:
new b874c1f [android] modify playground app camera runtime permission request behavior (#1221)
b874c1f is described below
commit b874c1f925b8332260c132d9c0959e00b97bb8ca
Author: Shen Lin <sh...@gmail.com>
AuthorDate: Tue Jan 8 16:07:02 2019 +0800
[android] modify playground app camera runtime permission request behavior (#1221)
---
.../main/java/com/alibaba/weex/IndexActivity.java | 13 +++++----
.../alibaba/weex/extend/module/WXEventModule.java | 34 ++++++++++++++++++----
2 files changed, 36 insertions(+), 11 deletions(-)
diff --git a/android/playground/app/src/main/java/com/alibaba/weex/IndexActivity.java b/android/playground/app/src/main/java/com/alibaba/weex/IndexActivity.java
index 752f8e3..2f0f971 100644
--- a/android/playground/app/src/main/java/com/alibaba/weex/IndexActivity.java
+++ b/android/playground/app/src/main/java/com/alibaba/weex/IndexActivity.java
@@ -150,11 +150,14 @@ public class IndexActivity extends AbstractWeexActivity {
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
- if (requestCode == CAMERA_PERMISSION_REQUEST_CODE && grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
- startActivity(new Intent(this, CaptureActivity.class));
- } else if (requestCode == WRITE_EXTERNAL_STORAGE_PERMISSION_REQUEST_CODE && grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
- } else {
- Toast.makeText(this, "request camara permission fail!", Toast.LENGTH_SHORT).show();
+ if (requestCode == CAMERA_PERMISSION_REQUEST_CODE) {
+ if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
+ startActivity(new Intent(this, CaptureActivity.class));
+ } else {
+ Toast.makeText(this, "request camara permission fail!", Toast.LENGTH_SHORT).show();
+ }
+ } else if (requestCode == WRITE_EXTERNAL_STORAGE_PERMISSION_REQUEST_CODE
+ && grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
}
}
diff --git a/android/playground/app/src/main/java/com/alibaba/weex/extend/module/WXEventModule.java b/android/playground/app/src/main/java/com/alibaba/weex/extend/module/WXEventModule.java
index 5ab286a..5c63a1f 100644
--- a/android/playground/app/src/main/java/com/alibaba/weex/extend/module/WXEventModule.java
+++ b/android/playground/app/src/main/java/com/alibaba/weex/extend/module/WXEventModule.java
@@ -20,11 +20,14 @@ package com.alibaba.weex.extend.module;
import android.Manifest;
import android.app.Activity;
+import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
+import android.support.v7.app.AlertDialog;
+import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.widget.Toast;
@@ -57,8 +60,8 @@ public class WXEventModule extends WXModule {
if ("weex://go/scan".equals(url)) {
if (ContextCompat.checkSelfPermission(mWXSDKInstance.getContext(), Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.shouldShowRequestPermissionRationale((Activity) mWXSDKInstance.getContext(), Manifest.permission.CAMERA)) {
- Toast.makeText(mWXSDKInstance.getContext(), "Weex playground need the camera permission to scan QR code", Toast.LENGTH_SHORT).show();
- } else {
+ showCameraPermissionRationale();
+ } else{
ActivityCompat.requestPermissions((Activity) mWXSDKInstance.getContext(), new String[]{Manifest.permission.CAMERA}, CAMERA_PERMISSION_REQUEST_CODE);
}
} else {
@@ -89,6 +92,21 @@ public class WXEventModule extends WXModule {
mWXSDKInstance.fireModuleEvent("event", this, params);
}
}
+
+ private void showCameraPermissionRationale() {
+ if (mWXSDKInstance.getContext() instanceof AppCompatActivity) {
+ AlertDialog.Builder builder = new AlertDialog.Builder(((AppCompatActivity) mWXSDKInstance.getContext()));
+ builder.setMessage("Weex playground need the camera permission to scan QR code");
+ builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ ActivityCompat.requestPermissions((Activity) mWXSDKInstance.getContext(), new String[]{Manifest.permission.CAMERA}, CAMERA_PERMISSION_REQUEST_CODE);
+ }
+ });
+ builder.create().show();
+ }
+ }
+
/*
* a test method for macaca case, you can fire globalEvent when download finish、device shaked and so on.
* @param event event name
@@ -108,9 +126,13 @@ public class WXEventModule extends WXModule {
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
- super.onRequestPermissionsResult(requestCode, permissions, grantResults);
- if (requestCode == CAMERA_PERMISSION_REQUEST_CODE && grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
- mWXSDKInstance.getContext().startActivity(new Intent(mWXSDKInstance.getContext(), CaptureActivity.class));
- }
+ super.onRequestPermissionsResult(requestCode, permissions, grantResults);
+ if (requestCode == CAMERA_PERMISSION_REQUEST_CODE) {
+ if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
+ mWXSDKInstance.getContext().startActivity(new Intent(mWXSDKInstance.getContext(), CaptureActivity.class));
+ } else {
+ Toast.makeText(mWXSDKInstance.getContext(), "request camara permission fail!", Toast.LENGTH_SHORT).show();
+ }
+ }
}
}