From a37c664debea2a2f81261060ebb91b5d5e38fb7d Mon Sep 17 00:00:00 2001 From: Maxime Biais Date: Wed, 20 Aug 2014 17:07:37 +0200 Subject: [PATCH 1/6] move BuildUtils to WPUtils subtree, rename BuildUtils to PackageUtils and add getPackageInfo and getVersionCode methods --- .../wordpress/android/util/BuildUtils.java | 21 --------- .../wordpress/android/util/PackageUtils.java | 45 +++++++++++++++++++ 2 files changed, 45 insertions(+), 21 deletions(-) delete mode 100644 WordPress/src/main/java/org/wordpress/android/util/BuildUtils.java create mode 100644 libs/utils/WordPressUtils/src/main/java/org/wordpress/android/util/PackageUtils.java diff --git a/WordPress/src/main/java/org/wordpress/android/util/BuildUtils.java b/WordPress/src/main/java/org/wordpress/android/util/BuildUtils.java deleted file mode 100644 index 84dce52ae928..000000000000 --- a/WordPress/src/main/java/org/wordpress/android/util/BuildUtils.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.wordpress.android.util; - -import org.wordpress.android.BuildConfig; - -public class BuildUtils { - - /* - * 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; - } -} diff --git a/libs/utils/WordPressUtils/src/main/java/org/wordpress/android/util/PackageUtils.java b/libs/utils/WordPressUtils/src/main/java/org/wordpress/android/util/PackageUtils.java new file mode 100644 index 000000000000..52900a0bf27e --- /dev/null +++ b/libs/utils/WordPressUtils/src/main/java/org/wordpress/android/util/PackageUtils.java @@ -0,0 +1,45 @@ +package org.wordpress.android.util; + +import android.content.Context; +import android.content.pm.PackageInfo; +import android.content.pm.PackageManager; + +public class PackageUtils { + /** + * Return true if Debug build. false otherwise. + */ + public static boolean isDebugBuild() { + return BuildConfig.DEBUG; + } + + public static PackageInfo getPackageInfo(Context context) { + try { + PackageManager manager = context.getPackageManager(); + return manager.getPackageInfo(context.getPackageName(), 0); + } catch (PackageManager.NameNotFoundException e) { + return null; + } + } + + /** + * Return version code, or 0 if it can't be read + */ + public static int getVersionCode(Context context) { + PackageInfo packageInfo = getPackageInfo(context); + if (packageInfo != null) { + return packageInfo.versionCode; + } + return 0; + } + + /** + * Return version name, or the string "0" if it can't be read + */ + public static String getVersionName(Context context) { + PackageInfo packageInfo = getPackageInfo(context); + if (packageInfo != null) { + return packageInfo.versionName; + } + return "0"; + } +} From 7717425e88107417378de5898352d06bbd1f7098 Mon Sep 17 00:00:00 2001 From: Maxime Biais Date: Wed, 20 Aug 2014 17:10:10 +0200 Subject: [PATCH 2/6] fix #1713: add package version code to mixpanel properties --- .../android/analytics/AnalyticsTrackerMixpanel.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/WordPress/src/main/java/org/wordpress/android/analytics/AnalyticsTrackerMixpanel.java b/WordPress/src/main/java/org/wordpress/android/analytics/AnalyticsTrackerMixpanel.java index edf3604506d4..f381fcb20718 100644 --- a/WordPress/src/main/java/org/wordpress/android/analytics/AnalyticsTrackerMixpanel.java +++ b/WordPress/src/main/java/org/wordpress/android/analytics/AnalyticsTrackerMixpanel.java @@ -15,6 +15,7 @@ import org.wordpress.android.BuildConfig; import org.wordpress.android.WordPress; import org.wordpress.android.util.AppLog; +import org.wordpress.android.util.PackageUtils; import java.util.EnumMap; import java.util.Iterator; @@ -29,6 +30,9 @@ public class AnalyticsTrackerMixpanel implements AnalyticsTracker.Tracker { private static final String DOTCOM_USER = "dotcom_user"; private static final String JETPACK_USER = "jetpack_user"; private static final String MIXPANEL_NUMBER_OF_BLOGS = "number_of_blogs"; + private static final String VERSION_CODE = "version_code"; + + public AnalyticsTrackerMixpanel() { mAggregatedProperties = new EnumMap(AnalyticsTracker.Stat.class); @@ -170,6 +174,7 @@ public void refreshMetadata() { properties.put(DOTCOM_USER, connected); properties.put(JETPACK_USER, jetpackUser); properties.put(MIXPANEL_NUMBER_OF_BLOGS, numBlogs); + properties.put(VERSION_CODE, PackageUtils.getVersionCode(WordPress.getContext())); mMixpanel.registerSuperProperties(properties); } catch (JSONException e) { AppLog.e(AppLog.T.UTILS, e); From d388151f039eb34ae3728d9d9b3a3f61aecdef84 Mon Sep 17 00:00:00 2001 From: Maxime Biais Date: Wed, 20 Aug 2014 17:16:47 +0200 Subject: [PATCH 3/6] use getVersionName in WordPress.java --- .../java/org/wordpress/android/WordPress.java | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/WordPress.java b/WordPress/src/main/java/org/wordpress/android/WordPress.java index 056b2046381e..27b235c1f3dd 100644 --- a/WordPress/src/main/java/org/wordpress/android/WordPress.java +++ b/WordPress/src/main/java/org/wordpress/android/WordPress.java @@ -7,8 +7,6 @@ import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; -import android.content.pm.PackageInfo; -import android.content.pm.PackageManager; import android.content.res.Configuration; import android.database.sqlite.SQLiteException; import android.os.AsyncTask; @@ -49,7 +47,7 @@ import org.wordpress.android.util.AppLog; import org.wordpress.android.util.AppLog.T; import org.wordpress.android.util.BitmapLruCache; -import org.wordpress.android.util.BuildUtils; +import org.wordpress.android.util.PackageUtils; import org.wordpress.android.util.DateTimeUtils; import org.wordpress.android.util.HelpshiftHelper; import org.wordpress.android.util.ProfilingUtils; @@ -151,7 +149,7 @@ public void onCreate() { ProfilingUtils.start("WordPress.onCreate"); // Enable log recording AppLog.enableRecording(true); - if (!BuildUtils.isDebugBuild()) { + if (!PackageUtils.isDebugBuild()) { Crashlytics.start(this); } versionName = ProfilingUtils.getVersionName(this); @@ -574,15 +572,7 @@ public static String getLoginUrl(Blog blog) { private static String mUserAgent; public static String getUserAgent() { if (mUserAgent == null) { - PackageInfo pkgInfo; - try { - String pkgName = getContext().getApplicationInfo().packageName; - pkgInfo = getContext().getPackageManager().getPackageInfo(pkgName, 0); - } catch (PackageManager.NameNotFoundException e) { - return USER_AGENT_APPNAME; - } - - mUserAgent = USER_AGENT_APPNAME + "/" + pkgInfo.versionName + mUserAgent = USER_AGENT_APPNAME + "/" + PackageUtils.getVersionName(getContext()) + " (Android " + Build.VERSION.RELEASE + "; " + Locale.getDefault().toString() + "; " + Build.MANUFACTURER + " " + Build.MODEL + "/" + Build.PRODUCT + ")"; From 1d7478d41c27bb0a96347503dbc58a9de2bf84fa Mon Sep 17 00:00:00 2001 From: Maxime Biais Date: Wed, 20 Aug 2014 17:17:08 +0200 Subject: [PATCH 4/6] remove unused method from ProfilingUtils --- .../org/wordpress/android/util/ProfilingUtils.java | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/libs/utils/WordPressUtils/src/main/java/org/wordpress/android/util/ProfilingUtils.java b/libs/utils/WordPressUtils/src/main/java/org/wordpress/android/util/ProfilingUtils.java index 251db2a3b7fb..991c7680b478 100644 --- a/libs/utils/WordPressUtils/src/main/java/org/wordpress/android/util/ProfilingUtils.java +++ b/libs/utils/WordPressUtils/src/main/java/org/wordpress/android/util/ProfilingUtils.java @@ -1,8 +1,5 @@ package org.wordpress.android.util; -import android.content.Context; -import android.content.pm.PackageInfo; -import android.content.pm.PackageManager; import android.os.SystemClock; import org.wordpress.android.util.AppLog.T; @@ -76,16 +73,5 @@ public void dumpToLog() { } AppLog.d(T.PROFILING, mLabel + ": end, " + (now - first) + " ms"); } - - // Returns app version name String - public static String getVersionName(Context context) { - PackageManager pm = context.getPackageManager(); - try { - PackageInfo pi = pm.getPackageInfo(context.getPackageName(), 0); - return pi.versionName == null ? "" : pi.versionName; - } catch (PackageManager.NameNotFoundException e) { - return ""; - } - } } From de42e07c668ec1bb76dfa2811a5cb79370be7884 Mon Sep 17 00:00:00 2001 From: Maxime Biais Date: Thu, 21 Aug 2014 15:08:35 +0200 Subject: [PATCH 5/6] remove ProfilingUtils.getVersionName calls --- WordPress/src/main/java/org/wordpress/android/WordPress.java | 2 +- .../src/main/java/org/wordpress/android/util/AppLog.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/WordPress.java b/WordPress/src/main/java/org/wordpress/android/WordPress.java index 27b235c1f3dd..c2f94554a836 100644 --- a/WordPress/src/main/java/org/wordpress/android/WordPress.java +++ b/WordPress/src/main/java/org/wordpress/android/WordPress.java @@ -152,7 +152,7 @@ public void onCreate() { if (!PackageUtils.isDebugBuild()) { Crashlytics.start(this); } - versionName = ProfilingUtils.getVersionName(this); + versionName = PackageUtils.getVersionName(this); initWpDb(); wpStatsDB = new WordPressStatsDB(this); mContext = this; diff --git a/libs/utils/WordPressUtils/src/main/java/org/wordpress/android/util/AppLog.java b/libs/utils/WordPressUtils/src/main/java/org/wordpress/android/util/AppLog.java index 292c974ec7fa..2a11d7ee6f8d 100644 --- a/libs/utils/WordPressUtils/src/main/java/org/wordpress/android/util/AppLog.java +++ b/libs/utils/WordPressUtils/src/main/java/org/wordpress/android/util/AppLog.java @@ -175,7 +175,7 @@ public static ArrayList toHtmlList(Context context) { ArrayList items = new ArrayList(); // add version & device info - be sure to change HEADER_LINE_COUNT if additional lines are added - items.add("WordPress Android version: " + ProfilingUtils.getVersionName(context) + ""); + items.add("WordPress Android version: " + PackageUtils.getVersionName(context) + ""); items.add("Android device name: " + DeviceUtils.getInstance().getDeviceName(context) + ""); Iterator it = mLogEntries.iterator(); @@ -193,7 +193,7 @@ public static String toPlainText(Context context) { StringBuilder sb = new StringBuilder(); // add version & device info - sb.append("WordPress Android version: " + ProfilingUtils.getVersionName(context)).append("\n") + sb.append("WordPress Android version: " + PackageUtils.getVersionName(context)).append("\n") .append("Android device name: " + DeviceUtils.getInstance().getDeviceName(context)).append("\n\n"); Iterator it = mLogEntries.iterator(); From 9a8ff2c24df30b858e733bacd4ea8c434c4e7e03 Mon Sep 17 00:00:00 2001 From: Maxime Biais Date: Mon, 25 Aug 2014 14:25:30 +0200 Subject: [PATCH 6/6] move mContext assignement to the top of onCreate --- WordPress/src/main/java/org/wordpress/android/WordPress.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/WordPress/src/main/java/org/wordpress/android/WordPress.java b/WordPress/src/main/java/org/wordpress/android/WordPress.java index c2f94554a836..a5407c65b190 100644 --- a/WordPress/src/main/java/org/wordpress/android/WordPress.java +++ b/WordPress/src/main/java/org/wordpress/android/WordPress.java @@ -146,6 +146,8 @@ public static BitmapLruCache getBitmapCache() { @Override public void onCreate() { super.onCreate(); + mContext = this; + ProfilingUtils.start("WordPress.onCreate"); // Enable log recording AppLog.enableRecording(true); @@ -155,7 +157,6 @@ public void onCreate() { versionName = PackageUtils.getVersionName(this); initWpDb(); wpStatsDB = new WordPressStatsDB(this); - mContext = this; RestClientUtils.setUserAgent(getUserAgent());