From 08999b42325ddafa4801d42e5b8c38af897b10bc Mon Sep 17 00:00:00 2001 From: Danilo Ercoli Date: Wed, 4 Dec 2013 11:43:17 +0100 Subject: [PATCH] Send the app identifier to the server when registering the app for PNs. Ref #396 --- .../ui/notifications/NotificationUtils.java | 8 ++++++++ src/org/wordpress/android/util/Utils.java | 16 ++++++++++++++++ src/org/xmlrpc/android/WPComXMLRPCApi.java | 11 ++++++++--- 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/src/org/wordpress/android/ui/notifications/NotificationUtils.java b/src/org/wordpress/android/ui/notifications/NotificationUtils.java index 8a08271b5dd2..67df6a65af64 100644 --- a/src/org/wordpress/android/ui/notifications/NotificationUtils.java +++ b/src/org/wordpress/android/ui/notifications/NotificationUtils.java @@ -8,6 +8,7 @@ import org.json.JSONObject; import org.wordpress.android.WordPress; import org.wordpress.android.models.Note; +import org.wordpress.android.util.Utils; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; @@ -72,4 +73,11 @@ public static String unzipString(byte[] zbytes) { } return unzipped; } + + public static String getAppPushNotificationsName(){ + if (Utils.isDebugBuild()) + return "org.wordpress.android.debug.build"; + else + return "org.wordpress.android.playstore"; + } } diff --git a/src/org/wordpress/android/util/Utils.java b/src/org/wordpress/android/util/Utils.java index b0630b35554c..bf749b8fe6b1 100644 --- a/src/org/wordpress/android/util/Utils.java +++ b/src/org/wordpress/android/util/Utils.java @@ -9,6 +9,7 @@ import android.net.NetworkInfo; import android.util.TypedValue; +import org.wordpress.android.BuildConfig; import org.wordpress.android.R; import org.wordpress.android.WordPress; @@ -70,4 +71,19 @@ public static boolean isNetworkAvailable() { NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); return activeNetworkInfo != null && activeNetworkInfo.isConnected(); } + + /* + * Return true if Debug build. false otherwise. + * + * ADT (r17) or Higher => BuildConfig.java is generated automatically by Android build tools, and is placed into the gen folder. + * + * BuildConfig containing a DEBUG constant that is automatically set according to your build type. + * You can check the (BuildConfig.DEBUG) constant in your code to run debug-only functions. + */ + public static boolean isDebugBuild() { + if (BuildConfig.DEBUG) { + return true; + } + return false; + } } \ No newline at end of file diff --git a/src/org/xmlrpc/android/WPComXMLRPCApi.java b/src/org/xmlrpc/android/WPComXMLRPCApi.java index 801593e93a12..a07e7c38d3f7 100644 --- a/src/org/xmlrpc/android/WPComXMLRPCApi.java +++ b/src/org/xmlrpc/android/WPComXMLRPCApi.java @@ -20,6 +20,7 @@ import org.wordpress.android.Constants; import org.wordpress.android.WordPress; import org.wordpress.android.WordPressDB; +import org.wordpress.android.ui.notifications.NotificationUtils; import org.wordpress.android.util.DeviceUtils; import org.wordpress.android.util.MapUtils; @@ -49,6 +50,7 @@ public void registerWPComToken(final Context ctx, String token) { contentStruct.put("os_version", android.os.Build.VERSION.RELEASE); contentStruct.put("device_uuid", uuid); contentStruct.put("production", true); //production, NOT sandbox. + contentStruct.put("app_secret_key", NotificationUtils.getAppPushNotificationsName()); Object[] params = { settings.getString(WordPress.WPCOM_USERNAME_PREFERENCE, ""), @@ -80,7 +82,8 @@ public void unregisterWPComToken(Context ctx, String token) { WordPressDB.decryptPassword(settings.getString(WordPress.WPCOM_PASSWORD_PREFERENCE, "")), token, false, - "android" + "android", + NotificationUtils.getAppPushNotificationsName() }; XMLRPCClient client = new XMLRPCClient(URI.create(Constants.wpcomXMLRPCURL), "", ""); @@ -111,7 +114,8 @@ public void getNotificationSettings(final XMLRPCCallback callback, Context conte settings.getString(WordPress.WPCOM_USERNAME_PREFERENCE, ""), WordPressDB.decryptPassword(settings.getString(WordPress.WPCOM_PASSWORD_PREFERENCE, "")), gcmToken, - "android" + "android", + NotificationUtils.getAppPushNotificationsName() }; client.callAsync(new XMLRPCCallback() { @@ -193,7 +197,8 @@ public void setNotificationSettings(Context context) { WordPressDB.decryptPassword(settings.getString(WordPress.WPCOM_PASSWORD_PREFERENCE, "")), updatedSettings, gcmToken, - "android" + "android", + NotificationUtils.getAppPushNotificationsName() }; client.callAsync(new XMLRPCCallback() {