Repository: incubator-weex Updated Branches: refs/heads/release-0.16 54719936f -> 65c0910d2
* [android] fix imagesave permissions Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/65c0910d Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/65c0910d Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/65c0910d Branch: refs/heads/release-0.16 Commit: 65c0910d2ba82bf12733ba7d4cfe498d17e5b0ee Parents: 5471993 Author: miomin <691292...@qq.com> Authored: Thu Oct 19 11:11:25 2017 +0800 Committer: miomin <691292...@qq.com> Committed: Thu Oct 19 11:11:25 2017 +0800 ---------------------------------------------------------------------- .../src/main/java/com/alibaba/weex/IndexActivity.java | 12 ------------ .../main/java/com/taobao/weex/ui/component/WXImage.java | 10 ++++++++++ 2 files changed, 10 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/65c0910d/android/playground/app/src/main/java/com/alibaba/weex/IndexActivity.java ---------------------------------------------------------------------- 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 866733a..0603363 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 @@ -103,18 +103,6 @@ public class IndexActivity extends AbstractWeexActivity { }; LocalBroadcastManager.getInstance(this).registerReceiver(mReloadReceiver, new IntentFilter(WXSDKEngine.JS_FRAMEWORK_RELOAD)); - - requestWeexPermission(); - } - - private void requestWeexPermission() { - if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { - if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)) { - Toast.makeText(this, "please give me the permission", Toast.LENGTH_SHORT).show(); - } else { - ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, WRITE_EXTERNAL_STORAGE_PERMISSION_REQUEST_CODE); - } - } } @Override http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/65c0910d/android/sdk/src/main/java/com/taobao/weex/ui/component/WXImage.java ---------------------------------------------------------------------- diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXImage.java b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXImage.java index 1cf5d02..1c4d062 100644 --- a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXImage.java +++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXImage.java @@ -19,6 +19,7 @@ package com.taobao.weex.ui.component; import android.Manifest; +import android.app.Activity; import android.content.Context; import android.content.pm.PackageManager; import android.graphics.RectF; @@ -27,6 +28,7 @@ import android.net.Uri; import android.os.Build; import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; import android.text.TextUtils; import android.widget.ImageView; @@ -71,6 +73,7 @@ public class WXImage extends WXComponent<ImageView> { public static final String SUCCEED = "success"; public static final String ERRORDESC = "errorDesc"; + private static final int WRITE_EXTERNAL_STORAGE_PERMISSION_REQUEST_CODE = 0x2; private String mSrc; private int mBlurRadius; @@ -356,6 +359,13 @@ public class WXImage extends WXComponent<ImageView> { public void save(final JSCallback saveStatuCallback) { if (ContextCompat.checkSelfPermission(getContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { + if (getContext() instanceof Activity) { + ActivityCompat.requestPermissions((Activity) getContext(), + new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, WRITE_EXTERNAL_STORAGE_PERMISSION_REQUEST_CODE); + } + } + + if (ContextCompat.checkSelfPermission(getContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { if (saveStatuCallback != null) { Map<String, Object> result = new HashMap<>(); result.put(SUCCEED, false);