Commit 46028b45 by daniel.roek

Removed SharedPrefs from Android implementation

parent 523f53ff
...@@ -112,7 +112,7 @@ final class PermissionManager { ...@@ -112,7 +112,7 @@ final class PermissionManager {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && permission == PermissionConstants.PERMISSION_GROUP_IGNORE_BATTERY_OPTIMIZATIONS) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && permission == PermissionConstants.PERMISSION_GROUP_IGNORE_BATTERY_OPTIMIZATIONS) {
activityRegistry.addListener( activityRegistry.addListener(
new ActivityResultListener(successCallback) new ActivityResultListener(successCallback)
); );
String packageName = activity.getPackageName(); String packageName = activity.getPackageName();
...@@ -196,20 +196,12 @@ final class PermissionManager { ...@@ -196,20 +196,12 @@ final class PermissionManager {
} }
final int permissionStatus = ContextCompat.checkSelfPermission(context, name); final int permissionStatus = ContextCompat.checkSelfPermission(context, name);
if (permissionStatus == PackageManager.PERMISSION_DENIED) { if (permissionStatus == PackageManager.PERMISSION_DENIED) {
if (!PermissionUtils.getRequestedPermissionBefore(context, name)) { return PermissionConstants.PERMISSION_STATUS_DENIED;
return PermissionConstants.PERMISSION_STATUS_NOT_DETERMINED;
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M &&
PermissionUtils.isNeverAskAgainSelected(activity, name)) {
return PermissionConstants.PERMISSION_STATUS_NEVER_ASK_AGAIN;
} else {
return PermissionConstants.PERMISSION_STATUS_DENIED;
}
} else if (permissionStatus != PackageManager.PERMISSION_GRANTED) { } else if (permissionStatus != PackageManager.PERMISSION_GRANTED) {
return PermissionConstants.PERMISSION_STATUS_DENIED; return PermissionConstants.PERMISSION_STATUS_DENIED;
} }
} }
} }
return PermissionConstants.PERMISSION_STATUS_GRANTED; return PermissionConstants.PERMISSION_STATUS_GRANTED;
} }
...@@ -256,7 +248,7 @@ final class PermissionManager { ...@@ -256,7 +248,7 @@ final class PermissionManager {
@VisibleForTesting @VisibleForTesting
static final class ActivityResultListener static final class ActivityResultListener
implements PluginRegistry.ActivityResultListener { implements PluginRegistry.ActivityResultListener {
// There's no way to unregister permission listeners in the v1 embedding, so we'll be called // There's no way to unregister permission listeners in the v1 embedding, so we'll be called
// duplicate times in cases where the user denies and then grants a permission. Keep track of if // duplicate times in cases where the user denies and then grants a permission. Keep track of if
...@@ -273,7 +265,7 @@ final class PermissionManager { ...@@ -273,7 +265,7 @@ final class PermissionManager {
@Override @Override
public boolean onActivityResult(int requestCode, int resultCode, Intent data) { public boolean onActivityResult(int requestCode, int resultCode, Intent data) {
if(alreadyCalled || requestCode != PermissionConstants.PERMISSION_CODE_IGNORE_BATTERY_OPTIMIZATIONS) { if (alreadyCalled || requestCode != PermissionConstants.PERMISSION_CODE_IGNORE_BATTERY_OPTIMIZATIONS) {
return false; return false;
} }
...@@ -291,7 +283,7 @@ final class PermissionManager { ...@@ -291,7 +283,7 @@ final class PermissionManager {
@VisibleForTesting @VisibleForTesting
static final class RequestPermissionsListener static final class RequestPermissionsListener
implements PluginRegistry.RequestPermissionsResultListener { implements PluginRegistry.RequestPermissionsResultListener {
// There's no way to unregister permission listeners in the v1 embedding, so we'll be called // There's no way to unregister permission listeners in the v1 embedding, so we'll be called
// duplicate times in cases where the user denies and then grants a permission. Keep track of if // duplicate times in cases where the user denies and then grants a permission. Keep track of if
...@@ -314,8 +306,7 @@ final class PermissionManager { ...@@ -314,8 +306,7 @@ final class PermissionManager {
} }
@Override @Override
public boolean onRequestPermissionsResult(int id, String[] permissions, int[] grantResults) public boolean onRequestPermissionsResult(int id, String[] permissions, int[] grantResults) {
{
if (alreadyCalled || id != PermissionConstants.PERMISSION_CODE) { if (alreadyCalled || id != PermissionConstants.PERMISSION_CODE) {
return false; return false;
} }
......
...@@ -3,7 +3,6 @@ package com.baseflow.permissionhandler; ...@@ -3,7 +3,6 @@ package com.baseflow.permissionhandler;
import android.Manifest; import android.Manifest;
import android.app.Activity; import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.content.SharedPreferences;
import android.content.pm.PackageInfo; import android.content.pm.PackageInfo;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.os.Build; import android.os.Build;
...@@ -262,10 +261,6 @@ public class PermissionUtils { ...@@ -262,10 +261,6 @@ public class PermissionUtils {
if (names == null || names.isEmpty()) { if (names == null || names.isEmpty()) {
return; return;
} }
for (String name : names) {
PermissionUtils.setRequestedPermission(activity, name);
}
} }
@RequiresApi(api = Build.VERSION_CODES.M) @RequiresApi(api = Build.VERSION_CODES.M)
...@@ -279,20 +274,7 @@ public class PermissionUtils { ...@@ -279,20 +274,7 @@ public class PermissionUtils {
@RequiresApi(api = Build.VERSION_CODES.M) @RequiresApi(api = Build.VERSION_CODES.M)
static boolean neverAskAgainSelected(final Activity activity, final String permission) { static boolean neverAskAgainSelected(final Activity activity, final String permission) {
final boolean hasRequestedPermissionBefore = getRequestedPermissionBefore(activity, permission);
final boolean shouldShowRequestPermissionRationale = ActivityCompat.shouldShowRequestPermissionRationale(activity, permission); final boolean shouldShowRequestPermissionRationale = ActivityCompat.shouldShowRequestPermissionRationale(activity, permission);
return hasRequestedPermissionBefore && !shouldShowRequestPermissionRationale; return !shouldShowRequestPermissionRationale;
}
static void setRequestedPermission(final Context context, final String permission) {
SharedPreferences genPrefs = context.getSharedPreferences("GENERIC_PREFERENCES", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = genPrefs.edit();
editor.putBoolean(permission, true);
editor.apply();
}
static boolean getRequestedPermissionBefore(final Context context, final String permission) {
SharedPreferences genPrefs = context.getSharedPreferences("GENERIC_PREFERENCES", Context.MODE_PRIVATE);
return genPrefs.getBoolean(permission, false);
} }
} }
#
# NOTE: This podspec is NOT to be published. It is only used as a local source!
#
Pod::Spec.new do |s|
s.name = 'Flutter'
s.version = '1.0.0'
s.summary = 'High-performance, high-fidelity mobile apps.'
s.description = <<-DESC
Flutter provides an easy and productive way to build and deploy high-performance mobile apps for Android and iOS.
DESC
s.homepage = 'https://flutter.io'
s.license = { :type => 'MIT' }
s.author = { 'Flutter Dev Team' => 'flutter-dev@googlegroups.com' }
s.source = { :git => 'https://github.com/flutter/engine', :tag => s.version.to_s }
s.ios.deployment_target = '8.0'
s.vendored_frameworks = 'Flutter.framework'
end
...@@ -16,7 +16,8 @@ dependencies: ...@@ -16,7 +16,8 @@ dependencies:
flutter: flutter:
sdk: flutter sdk: flutter
meta: ^1.3.0 meta: ^1.3.0
permission_handler_platform_interface: ^3.0.0-nullsafety permission_handler_platform_interface: #^3.0.0-nullsafety.1
path: ../permission_handler_platform_interface
dev_dependencies: dev_dependencies:
effective_dart: ^1.3.0 effective_dart: ^1.3.0
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment