Return-Path: X-Original-To: apmail-cordova-commits-archive@www.apache.org Delivered-To: apmail-cordova-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 92ACF17940 for ; Wed, 23 Sep 2015 19:58:14 +0000 (UTC) Received: (qmail 72657 invoked by uid 500); 23 Sep 2015 19:58:14 -0000 Delivered-To: apmail-cordova-commits-archive@cordova.apache.org Received: (qmail 72587 invoked by uid 500); 23 Sep 2015 19:58:14 -0000 Mailing-List: contact commits-help@cordova.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list commits@cordova.apache.org Received: (qmail 71035 invoked by uid 99); 23 Sep 2015 19:58:13 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 23 Sep 2015 19:58:13 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 1D5EBE0A8D; Wed, 23 Sep 2015 19:58:13 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: bowserj@apache.org To: commits@cordova.apache.org Date: Wed, 23 Sep 2015 19:58:39 -0000 Message-Id: <404f861f95474bac9f8596663229124b@git.apache.org> In-Reply-To: <06f6c6c7d0c746a08d138630fdaa05ed@git.apache.org> References: <06f6c6c7d0c746a08d138630fdaa05ed@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [28/45] android commit: Refactoring based on feedback from Andrew Refactoring based on feedback from Andrew Project: http://git-wip-us.apache.org/repos/asf/cordova-android/repo Commit: http://git-wip-us.apache.org/repos/asf/cordova-android/commit/1f8a2319 Tree: http://git-wip-us.apache.org/repos/asf/cordova-android/tree/1f8a2319 Diff: http://git-wip-us.apache.org/repos/asf/cordova-android/diff/1f8a2319 Branch: refs/heads/5.0.x Commit: 1f8a23193efc9db48ba53c7f6147cf36f590457d Parents: 2cd5e3c Author: Joe Bowser Authored: Fri Aug 28 16:50:16 2015 -0700 Committer: Joe Bowser Committed: Fri Aug 28 16:50:16 2015 -0700 ---------------------------------------------------------------------- .../src/org/apache/cordova/CordovaActivity.java | 3 +- .../org/apache/cordova/CordovaInterface.java | 3 +- .../apache/cordova/CordovaInterfaceImpl.java | 32 ++++++++++++++++++-- .../src/org/apache/cordova/CordovaPlugin.java | 7 ----- .../src/org/apache/cordova/PluginManager.java | 22 -------------- 5 files changed, 33 insertions(+), 34 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cordova-android/blob/1f8a2319/framework/src/org/apache/cordova/CordovaActivity.java ---------------------------------------------------------------------- diff --git a/framework/src/org/apache/cordova/CordovaActivity.java b/framework/src/org/apache/cordova/CordovaActivity.java index 171e2a8..43e013b 100755 --- a/framework/src/org/apache/cordova/CordovaActivity.java +++ b/framework/src/org/apache/cordova/CordovaActivity.java @@ -493,8 +493,7 @@ public class CordovaActivity extends Activity { @Override public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { - PluginManager pm = this.appView.getPluginManager(); - pm.onRequestPermissionResult(requestCode, permissions, grantResults); + cordovaInterface.onRequestPermissionResult(requestCode, permissions, grantResults); } } http://git-wip-us.apache.org/repos/asf/cordova-android/blob/1f8a2319/framework/src/org/apache/cordova/CordovaInterface.java ---------------------------------------------------------------------- diff --git a/framework/src/org/apache/cordova/CordovaInterface.java b/framework/src/org/apache/cordova/CordovaInterface.java index 3fa6e63..2aa0452 100755 --- a/framework/src/org/apache/cordova/CordovaInterface.java +++ b/framework/src/org/apache/cordova/CordovaInterface.java @@ -70,5 +70,6 @@ public interface CordovaInterface { */ public ExecutorService getThreadPool(); - public void requestPermission(CordovaPlugin plugin); + public void requestPermission(CordovaPlugin plugin, String permission); + public void requestPermissions(CordovaPlugin plugin); } http://git-wip-us.apache.org/repos/asf/cordova-android/blob/1f8a2319/framework/src/org/apache/cordova/CordovaInterfaceImpl.java ---------------------------------------------------------------------- diff --git a/framework/src/org/apache/cordova/CordovaInterfaceImpl.java b/framework/src/org/apache/cordova/CordovaInterfaceImpl.java index 146bacb..7b436af 100644 --- a/framework/src/org/apache/cordova/CordovaInterfaceImpl.java +++ b/framework/src/org/apache/cordova/CordovaInterfaceImpl.java @@ -38,6 +38,7 @@ public class CordovaInterfaceImpl implements CordovaInterface { protected ActivityResultHolder savedResult; protected CordovaPlugin activityResultCallback; + protected CordovaPlugin permissionResultCallback; protected String initCallbackService; protected int activityResultRequestCode; @@ -162,9 +163,36 @@ public class CordovaInterfaceImpl implements CordovaInterface { } } - public void requestPermission(CordovaPlugin plugin) + /** + * Called by the system when the user grants permissions + * + * @param requestCode + * @param permissions + * @param grantResults + */ + public void onRequestPermissionResult(int requestCode, String[] permissions, + int[] grantResults) { + if(permissionResultCallback != null) + { + permissionResultCallback.onRequestPermissionResult(requestCode, permissions, grantResults); + permissionResultCallback = null; + } + } + + public void requestPermission(CordovaPlugin plugin, String permission) { + permissionResultCallback = plugin; + String[] permissions = new String [1]; + permissions[0] = permission; + int requestCode = 1; + getActivity().requestPermissions(permissions, requestCode); + } + + public void requestPermissions(CordovaPlugin plugin) { - pluginManager.requestPermission(plugin); + permissionResultCallback = plugin; + String[] permissions = plugin.getPermissionRequest(); + int requestCode = 1; + getActivity().requestPermissions(permissions, requestCode); } } http://git-wip-us.apache.org/repos/asf/cordova-android/blob/1f8a2319/framework/src/org/apache/cordova/CordovaPlugin.java ---------------------------------------------------------------------- diff --git a/framework/src/org/apache/cordova/CordovaPlugin.java b/framework/src/org/apache/cordova/CordovaPlugin.java index 6cb2a3c..6e82027 100644 --- a/framework/src/org/apache/cordova/CordovaPlugin.java +++ b/framework/src/org/apache/cordova/CordovaPlugin.java @@ -372,13 +372,6 @@ public class CordovaPlugin { return permissions; } - /** - * requestPermission - */ - public void requestPermission() { - cordova.requestPermission(this); - } - public boolean hasPermisssion() { for(String p : permissions) { http://git-wip-us.apache.org/repos/asf/cordova-android/blob/1f8a2319/framework/src/org/apache/cordova/PluginManager.java ---------------------------------------------------------------------- diff --git a/framework/src/org/apache/cordova/PluginManager.java b/framework/src/org/apache/cordova/PluginManager.java index e543b04..3afbc18 100755 --- a/framework/src/org/apache/cordova/PluginManager.java +++ b/framework/src/org/apache/cordova/PluginManager.java @@ -511,26 +511,4 @@ public class PluginManager { } } - /** - * Called by the system when the user grants permissions - * - * @param requestCode - * @param permissions - * @param grantResults - */ - public void onRequestPermissionResult(int requestCode, String[] permissions, - int[] grantResults) { - if(permissionRequester != null) - { - permissionRequester.onRequestPermissionResult(requestCode, permissions, grantResults); - permissionRequester = null; - } - } - - public void requestPermission(CordovaPlugin plugin) { - permissionRequester = plugin; - String[] permissions = plugin.getPermissionRequest(); - int requestCode = 1; - ctx.getActivity().requestPermissions(permissions, requestCode); - } } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org For additional commands, e-mail: commits-help@cordova.apache.org