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 <[email protected]> Authored: Fri Oct 21 13:53:41 2016 -0700 Committer: Joe Bowser <[email protected]> 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: [email protected] For additional commands, e-mail: [email protected]
