You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by bo...@apache.org on 2016/10/26 20:02:43 UTC

cordova-plugin-compat git commit: CB-11625: Adding the BuildConfig fetching code as a backup to using a new preference

Repository: cordova-plugin-compat
Updated Branches:
  refs/heads/master 6f4395982 -> 23520f8e5


CB-11625: Adding the BuildConfig fetching code as a backup to using a new preference

This closes #2


Project: http://git-wip-us.apache.org/repos/asf/cordova-plugin-compat/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-plugin-compat/commit/23520f8e
Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugin-compat/tree/23520f8e
Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugin-compat/diff/23520f8e

Branch: refs/heads/master
Commit: 23520f8e5d45f4231195db3f12748545a74c1340
Parents: 6f43959
Author: Joe Bowser <bo...@apache.org>
Authored: Fri Oct 21 13:53:41 2016 -0700
Committer: Joe Bowser <bo...@apache.org>
Committed: Wed Oct 26 13:01:08 2016 -0700

----------------------------------------------------------------------
 plugin.xml                   |  3 +-
 src/android/BuildHelper.java | 70 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 72 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-plugin-compat/blob/23520f8e/plugin.xml
----------------------------------------------------------------------
diff --git a/plugin.xml b/plugin.xml
index e1c816d..875e751 100644
--- a/plugin.xml
+++ b/plugin.xml
@@ -30,7 +30,8 @@
 
     <!-- android -->
     <platform name="android">
-        <source-file src="src/android/PermissionHelper.java" target-dir="src/org/apache/cordova" />
+      <source-file src="src/android/PermissionHelper.java" target-dir="src/org/apache/cordova" />
+      <source-file src="src/android/BuildHelper.java" target-dir="src/org/apache/cordova" />
     </platform>
 
 </plugin>

http://git-wip-us.apache.org/repos/asf/cordova-plugin-compat/blob/23520f8e/src/android/BuildHelper.java
----------------------------------------------------------------------
diff --git a/src/android/BuildHelper.java b/src/android/BuildHelper.java
new file mode 100644
index 0000000..d9b18aa
--- /dev/null
+++ b/src/android/BuildHelper.java
@@ -0,0 +1,70 @@
+/*
+       Licensed to the Apache Software Foundation (ASF) under one
+       or more contributor license agreements.  See the NOTICE file
+       distributed with this work for additional information
+       regarding copyright ownership.  The ASF licenses this file
+       to you under the Apache License, Version 2.0 (the
+       "License"); you may not use this file except in compliance
+       with the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+       Unless required by applicable law or agreed to in writing,
+       software distributed under the License is distributed on an
+       "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+       KIND, either express or implied.  See the License for the
+       specific language governing permissions and limitations
+       under the License.
+*/
+
+package org.apache.cordova;
+
+/*
+ * This is a utility class that allows us to get the BuildConfig variable, which is required
+ * for the use of different providers.  This is not guaranteed to work, and it's better for this
+ * to be set in the build step in config.xml
+ *
+ */
+
+import android.app.Activity;
+import android.content.Context;
+
+import java.lang.reflect.Field;
+
+
+public class BuildHelper {
+
+
+    private static String TAG="BuildHelper";
+
+    /*
+     * This needs to be implemented if you wish to use the Camera Plugin or other plugins
+     * that read the Build Configuration.
+     *
+     * Thanks to Phil@Medtronic and Graham Borland for finding the answer and posting it to
+     * StackOverflow.  This is annoying as hell!  However, this method does not work with
+     * ProGuard, and you should use the config.xml to define the application_id
+     *
+     */
+
+    public static Object getBuildConfigValue(Context ctx, String key)
+    {
+        try
+        {
+            Class<?> clazz = Class.forName(ctx.getPackageName() + ".BuildConfig");
+            Field field = clazz.getField(key);
+            return field.get(null);
+        } catch (ClassNotFoundException e) {
+            LOG.d(TAG, "Unable to get the BuildConfig, is this built with ANT?");
+            e.printStackTrace();
+        } catch (NoSuchFieldException e) {
+            LOG.d(TAG, key + " is not a valid field. Check your build.gradle");
+        } catch (IllegalAccessException e) {
+            LOG.d(TAG, "Illegal Access Exception: Let's print a stack trace.");
+            e.printStackTrace();
+        }
+
+        return null;
+    }
+
+}


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org