diff --git a/shell/platform/android/io/flutter/app/FlutterActivity.java b/shell/platform/android/io/flutter/app/FlutterActivity.java
index d40dadb409f68..f01e85a1a2437 100644
--- a/shell/platform/android/io/flutter/app/FlutterActivity.java
+++ b/shell/platform/android/io/flutter/app/FlutterActivity.java
@@ -114,7 +114,7 @@ protected void onPostResume() {
// @Override - added in API level 23
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
- eventDelegate.onRequestPermissionResult(requestCode, permissions, grantResults);
+ eventDelegate.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
@Override
diff --git a/shell/platform/android/io/flutter/app/FlutterActivityDelegate.java b/shell/platform/android/io/flutter/app/FlutterActivityDelegate.java
index 0ad8eb998eb1f..4472b8b194ef6 100644
--- a/shell/platform/android/io/flutter/app/FlutterActivityDelegate.java
+++ b/shell/platform/android/io/flutter/app/FlutterActivityDelegate.java
@@ -29,9 +29,7 @@
import android.widget.FrameLayout;
import io.flutter.plugin.common.BinaryMessenger;
import io.flutter.plugin.common.PluginRegistry;
-import io.flutter.plugin.common.PluginRegistry.ActivityResultListener;
import io.flutter.plugin.common.PluginRegistry.Registrar;
-import io.flutter.plugin.common.PluginRegistry.RequestPermissionResultListener;
import io.flutter.plugin.platform.PlatformPlugin;
import io.flutter.util.Preconditions;
import io.flutter.view.FlutterMain;
@@ -122,9 +120,16 @@ public Registrar registrarFor(String pluginKey) {
}
@Override
+ public boolean onRequestPermissionsResult(
+ int requestCode, String[] permissions, int[] grantResults) {
+ return flutterView.getPluginRegistry().onRequestPermissionsResult(requestCode, permissions, grantResults);
+ }
+
+ @Override
+ @Deprecated
public boolean onRequestPermissionResult(
int requestCode, String[] permissions, int[] grantResults) {
- return flutterView.getPluginRegistry().onRequestPermissionResult(requestCode, permissions, grantResults);
+ return onRequestPermissionsResult(requestCode, permissions, grantResults);
}
@Override
diff --git a/shell/platform/android/io/flutter/app/FlutterActivityEvents.java b/shell/platform/android/io/flutter/app/FlutterActivityEvents.java
index 728bc90eb7f08..cc62327ba3e89 100644
--- a/shell/platform/android/io/flutter/app/FlutterActivityEvents.java
+++ b/shell/platform/android/io/flutter/app/FlutterActivityEvents.java
@@ -9,6 +9,7 @@
import android.os.Bundle;
import io.flutter.plugin.common.PluginRegistry.ActivityResultListener;
import io.flutter.plugin.common.PluginRegistry.RequestPermissionResultListener;
+import io.flutter.plugin.common.PluginRegistry.RequestPermissionsResultListener;
/**
* A collection of Android {@code Activity} methods that are relevant to the
@@ -21,7 +22,10 @@
* {@code FlutterActivity}.
*/
public interface FlutterActivityEvents
- extends ComponentCallbacks2, ActivityResultListener, RequestPermissionResultListener {
+ extends ComponentCallbacks2,
+ ActivityResultListener,
+ RequestPermissionResultListener,
+ RequestPermissionsResultListener {
/**
* @see android.app.Activity#onCreate(android.os.Bundle)
*/
diff --git a/shell/platform/android/io/flutter/app/FlutterFragmentActivity.java b/shell/platform/android/io/flutter/app/FlutterFragmentActivity.java
index 3521ccc624cd1..cc8325df974e8 100644
--- a/shell/platform/android/io/flutter/app/FlutterFragmentActivity.java
+++ b/shell/platform/android/io/flutter/app/FlutterFragmentActivity.java
@@ -113,7 +113,7 @@ protected void onPostResume() {
// @Override - added in API level 23
public void onRequestPermissionsResult(
int requestCode, String[] permissions, int[] grantResults) {
- eventDelegate.onRequestPermissionResult(requestCode, permissions, grantResults);
+ eventDelegate.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
@Override
diff --git a/shell/platform/android/io/flutter/app/FlutterPluginRegistry.java b/shell/platform/android/io/flutter/app/FlutterPluginRegistry.java
index b755547a3a1ef..b4cde7702139e 100644
--- a/shell/platform/android/io/flutter/app/FlutterPluginRegistry.java
+++ b/shell/platform/android/io/flutter/app/FlutterPluginRegistry.java
@@ -21,6 +21,7 @@
public class FlutterPluginRegistry
implements PluginRegistry,
PluginRegistry.RequestPermissionResultListener,
+ PluginRegistry.RequestPermissionsResultListener,
PluginRegistry.ActivityResultListener,
PluginRegistry.NewIntentListener,
PluginRegistry.UserLeaveHintListener,
@@ -33,7 +34,7 @@ public class FlutterPluginRegistry
private FlutterView mFlutterView;
private final Map mPluginMap = new LinkedHashMap<>(0);
- private final List mRequestPermissionResultListeners = new ArrayList<>(0);
+ private final List mRequestPermissionsResultListeners = new ArrayList<>(0);
private final List mActivityResultListeners = new ArrayList<>(0);
private final List mNewIntentListeners = new ArrayList<>(0);
private final List mUserLeaveHintListeners = new ArrayList<>(0);
@@ -113,9 +114,21 @@ public Registrar publish(Object value) {
}
@Override
+ @Deprecated
public Registrar addRequestPermissionResultListener(
- RequestPermissionResultListener listener) {
- mRequestPermissionResultListeners.add(listener);
+ final RequestPermissionResultListener listener) {
+ return addRequestPermissionsResultListener(new RequestPermissionsResultListener() {
+ @Override
+ public boolean onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
+ return listener.onRequestPermissionResult(requestCode, permissions, grantResults);
+ }
+ });
+ }
+
+ @Override
+ public Registrar addRequestPermissionsResultListener(
+ RequestPermissionsResultListener listener) {
+ mRequestPermissionsResultListeners.add(listener);
return this;
}
@@ -145,15 +158,21 @@ public Registrar addViewDestroyListener(ViewDestroyListener listener) {
}
@Override
- public boolean onRequestPermissionResult(int requestCode, String[] permissions, int[] grantResults) {
- for (RequestPermissionResultListener listener : mRequestPermissionResultListeners) {
- if (listener.onRequestPermissionResult(requestCode, permissions, grantResults)) {
+ public boolean onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
+ for (RequestPermissionsResultListener listener : mRequestPermissionsResultListeners) {
+ if (listener.onRequestPermissionsResult(requestCode, permissions, grantResults)) {
return true;
}
}
return false;
}
+ @Deprecated
+ @Override
+ public boolean onRequestPermissionResult(int requestCode, String[] permissions, int[] grantResults) {
+ return onRequestPermissionsResult(requestCode, permissions, grantResults);
+ }
+
@Override
public boolean onActivityResult(int requestCode, int resultCode, Intent data) {
for (ActivityResultListener listener : mActivityResultListeners) {
diff --git a/shell/platform/android/io/flutter/plugin/common/PluginRegistry.java b/shell/platform/android/io/flutter/plugin/common/PluginRegistry.java
index 9c4ec0cade0ee..d06e64183c675 100644
--- a/shell/platform/android/io/flutter/plugin/common/PluginRegistry.java
+++ b/shell/platform/android/io/flutter/plugin/common/PluginRegistry.java
@@ -115,6 +115,16 @@ interface Registrar {
*/
Registrar publish(Object value);
+ /**
+ * Adds a callback allowing the plugin to take part in handling incoming
+ * calls to {@link Activity#onRequestPermissionsResult(int, String[], int[])}
+ * or {android.support.v4.app.ActivityCompat.OnRequestPermissionsResultCallback#onRequestPermissionsResult(int, String[], int[])}.
+ *
+ * @param listener a {@link RequestPermissionsResultListener} callback.
+ * @return this {@link Registrar}.
+ */
+ Registrar addRequestPermissionsResultListener(RequestPermissionsResultListener listener);
+
/**
* Adds a callback allowing the plugin to take part in handling incoming
* calls to {@link Activity#onRequestPermissionsResult(int, String[], int[])}
@@ -122,7 +132,12 @@ interface Registrar {
*
* @param listener a {@link RequestPermissionResultListener} callback.
* @return this {@link Registrar}.
+
+ * @deprecated on 2018-01-02 because of misspelling. This method will be made unavailable
+ * on 2018-02-06 (or at least four weeks after the deprecation is released). Use
+ * {@link #addRequestPermissionsResultListener(RequestPermissionsResultListener)} instead.
*/
+ @Deprecated
Registrar addRequestPermissionResultListener(RequestPermissionResultListener listener);
/**
@@ -163,13 +178,32 @@ interface Registrar {
}
/**
- * Delegate interface for handling results of permission requests on
+ * Delegate interface for handling result of permissions requests on
* behalf of the main {@link Activity}.
*/
+ interface RequestPermissionsResultListener {
+ /**
+ * @return true if the result has been handled.
+ */
+ boolean onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults);
+ }
+
+ /**
+ * Delegate interface for handling result of permissions requests on
+ * behalf of the main {@link Activity}.
+ *
+ * Deprecated on 2018-01-02 because of misspelling. This interface will be made
+ * unavailable on 2018-02-06 (or at least four weeks after the deprecation is released).
+ * Use {@link RequestPermissionsResultListener} instead.
+ */
interface RequestPermissionResultListener {
/**
* @return true if the result has been handled.
+ * @deprecated on 2018-01-02 because of misspelling. This method will be made
+ * unavailable on 2018-02-06 (or at least four weeks after the deprecation is released).
+ * Use {@link RequestPermissionsResultListener} instead.
*/
+ @Deprecated
boolean onRequestPermissionResult(int requestCode, String[] permissions, int[] grantResults);
}