summaryrefslogtreecommitdiffstats
path: root/base/android
diff options
context:
space:
mode:
authornileshagrawal@chromium.org <nileshagrawal@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-09-18 01:51:27 +0000
committernileshagrawal@chromium.org <nileshagrawal@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-09-18 01:51:27 +0000
commit9be878f1a45d4a2572fd1fd235b07a83a2aba19e (patch)
tree55e302f4cc0b64282bf012159cb540cf73ba2207 /base/android
parentde268534131dd15c275874199072e642cfee645a (diff)
downloadchromium_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.cc2
-rw-r--r--base/android/build_info.h7
-rw-r--r--base/android/java/src/org/chromium/base/BuildInfo.java129
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 "";
+ }
+ }
}