diff --git a/WordPress/src/main/java/org/wordpress/android/WordPress.java b/WordPress/src/main/java/org/wordpress/android/WordPress.java index 056b2046381e..a5407c65b190 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; @@ -148,16 +146,17 @@ public static BitmapLruCache getBitmapCache() { @Override public void onCreate() { super.onCreate(); + mContext = this; + ProfilingUtils.start("WordPress.onCreate"); // Enable log recording AppLog.enableRecording(true); - if (!BuildUtils.isDebugBuild()) { + if (!PackageUtils.isDebugBuild()) { Crashlytics.start(this); } - versionName = ProfilingUtils.getVersionName(this); + versionName = PackageUtils.getVersionName(this); initWpDb(); wpStatsDB = new WordPressStatsDB(this); - mContext = this; RestClientUtils.setUserAgent(getUserAgent()); @@ -574,15 +573,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 + ")"; 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); 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/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(); 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"; + } +} 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 ""; - } - } }