diff options
author | nileshagrawal@chromium.org <nileshagrawal@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-09-18 01:51:27 +0000 |
---|---|---|
committer | nileshagrawal@chromium.org <nileshagrawal@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-09-18 01:51:27 +0000 |
commit | 9be878f1a45d4a2572fd1fd235b07a83a2aba19e (patch) | |
tree | 55e302f4cc0b64282bf012159cb540cf73ba2207 /base/android | |
parent | de268534131dd15c275874199072e642cfee645a (diff) | |
download | chromium_src-9be878f1a45d4a2572fd1fd235b07a83a2aba19e.zip chromium_src-9be878f1a45d4a2572fd1fd235b07a83a2aba19e.tar.gz chromium_src-9be878f1a45d4a2572fd1fd235b07a83a2aba19e.tar.bz2 |
Add package label to base::android::BuildInfo
BUG=
Review URL: https://chromiumcodereview.appspot.com/10908271
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157274 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/android')
-rw-r--r-- | base/android/build_info.cc | 2 | ||||
-rw-r--r-- | base/android/build_info.h | 7 | ||||
-rw-r--r-- | base/android/java/src/org/chromium/base/BuildInfo.java | 129 |
3 files changed, 80 insertions, 58 deletions
diff --git a/base/android/build_info.cc b/base/android/build_info.cc index fcb2eef..0414efa 100644 --- a/base/android/build_info.cc +++ b/base/android/build_info.cc @@ -51,6 +51,8 @@ BuildInfo::BuildInfo(JNIEnv* env) env, GetApplicationContext()))), package_version_name_(StrDupJString(Java_BuildInfo_getPackageVersionName( env, GetApplicationContext()))), + package_label_(StrDupJString(Java_BuildInfo_getPackageLabel( + env, GetApplicationContext()))), java_exception_info_(NULL) { } diff --git a/base/android/build_info.h b/base/android/build_info.h index 895bf61..3714071 100644 --- a/base/android/build_info.h +++ b/base/android/build_info.h @@ -15,7 +15,7 @@ namespace base { namespace android { // BuildInfo is a singleton class that stores android build and device -// information. It will be called from Android specific java code and gets used +// information. It will be called from Android specific code and gets used // primarily in crash reporting. // It is also used to store the last java exception seen during JNI. @@ -63,6 +63,10 @@ class BuildInfo { return package_version_name_; } + const char* package_label() const { + return package_label_; + } + const char* java_exception_info() const { return java_exception_info_; } @@ -87,6 +91,7 @@ class BuildInfo { const char* const android_build_fp_; const char* const package_version_code_; const char* const package_version_name_; + const char* const package_label_; // This is set via set_java_exception_info, not at constructor time. const char* java_exception_info_; diff --git a/base/android/java/src/org/chromium/base/BuildInfo.java b/base/android/java/src/org/chromium/base/BuildInfo.java index d88eebc..dc2be6b 100644 --- a/base/android/java/src/org/chromium/base/BuildInfo.java +++ b/base/android/java/src/org/chromium/base/BuildInfo.java @@ -5,84 +5,99 @@ package org.chromium.base; import android.content.Context; +import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.os.Build; import android.util.Log; +import org.chromium.base.CalledByNative; + /** * BuildInfo is a utility class providing easy access to {@link PackageInfo} * information. This is primarly of use for accessesing package information * from native code. */ public class BuildInfo { - private static final String TAG = "BuildInfo"; - private static final int MAX_FINGERPRINT_LENGTH = 128; - - /** - * BuildInfo is a static utility class and therefore should'nt be - * instantiated. - */ - private BuildInfo() { - } + private static final String TAG = "BuildInfo"; + private static final int MAX_FINGERPRINT_LENGTH = 128; - @CalledByNative - public static String getDevice() { - return Build.DEVICE; - } + /** + * BuildInfo is a static utility class and therefore shouldn't be + * instantiated. + */ + private BuildInfo() { + } - @CalledByNative - public static String getBrand() { - return Build.BRAND; - } + @CalledByNative + public static String getDevice() { + return Build.DEVICE; + } - @CalledByNative - public static String getAndroidBuildId() { - return Build.ID; - } + @CalledByNative + public static String getBrand() { + return Build.BRAND; + } - /** - * @return The build fingerprint for the current Android install. The value is truncated to a - * 128 characters as this is used for crash and UMA reporting, which should avoid huge - * strings. - */ - @CalledByNative - public static String getAndroidBuildFingerprint() { - return Build.FINGERPRINT.substring( - 0, Math.min(Build.FINGERPRINT.length(), MAX_FINGERPRINT_LENGTH)); - } + @CalledByNative + public static String getAndroidBuildId() { + return Build.ID; + } - @CalledByNative - public static String getDeviceModel() { - return Build.MODEL; - } + /** + * @return The build fingerprint for the current Android install. The value is truncated to a + * 128 characters as this is used for crash and UMA reporting, which should avoid huge + * strings. + */ + @CalledByNative + public static String getAndroidBuildFingerprint() { + return Build.FINGERPRINT.substring( + 0, Math.min(Build.FINGERPRINT.length(), MAX_FINGERPRINT_LENGTH)); + } - @CalledByNative - public static String getPackageVersionCode(Context context) { - String msg = "versionCode not available."; - try { - PackageManager pm = context.getPackageManager(); - PackageInfo pi = pm.getPackageInfo(context.getPackageName(), 0); - msg = "" + pi.versionCode; - } catch (NameNotFoundException e) { - Log.d(TAG, msg); + @CalledByNative + public static String getDeviceModel() { + return Build.MODEL; } - return msg; - } + @CalledByNative + public static String getPackageVersionCode(Context context) { + String msg = "versionCode not available."; + try { + PackageManager pm = context.getPackageManager(); + PackageInfo pi = pm.getPackageInfo(context.getPackageName(), 0); + msg = "" + pi.versionCode; + } catch (NameNotFoundException e) { + Log.d(TAG, msg); + } + return msg; - @CalledByNative - public static String getPackageVersionName(Context context) { - String msg = "versionName not available"; - try { - PackageManager pm = context.getPackageManager(); - PackageInfo pi = pm.getPackageInfo(context.getPackageName(), 0); - msg = pi.versionName; - } catch (NameNotFoundException e) { - Log.d(TAG, msg); } - return msg; - } + @CalledByNative + public static String getPackageVersionName(Context context) { + String msg = "versionName not available"; + try { + PackageManager pm = context.getPackageManager(); + PackageInfo pi = pm.getPackageInfo(context.getPackageName(), 0); + msg = pi.versionName; + } catch (NameNotFoundException e) { + Log.d(TAG, msg); + } + return msg; + } + + @CalledByNative + public static String getPackageLabel(Context context) { + try { + PackageManager packageManager = context.getPackageManager(); + ApplicationInfo appInfo = packageManager.getApplicationInfo(context.getPackageName(), + PackageManager.GET_META_DATA); + CharSequence label = packageManager.getApplicationLabel(appInfo); + return label != null ? label.toString() : ""; + } catch (NameNotFoundException e) { + return ""; + } + } } |