Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3)

Side by Side Diff: base/android/java/src/org/chromium/base/BuildInfo.java

Issue 2772343003: Android: Remove GetApplicationContext part 1 (Closed)
Patch Set: Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.base; 5 package org.chromium.base;
6 6
7 import android.content.Context; 7 import android.content.Context;
8 import android.content.pm.ApplicationInfo; 8 import android.content.pm.ApplicationInfo;
9 import android.content.pm.PackageInfo; 9 import android.content.pm.PackageInfo;
10 import android.content.pm.PackageManager; 10 import android.content.pm.PackageManager;
(...skipping 26 matching lines...) Expand all
37 return Build.BRAND; 37 return Build.BRAND;
38 } 38 }
39 39
40 @CalledByNative 40 @CalledByNative
41 public static String getAndroidBuildId() { 41 public static String getAndroidBuildId() {
42 return Build.ID; 42 return Build.ID;
43 } 43 }
44 44
45 /** 45 /**
46 * @return The build fingerprint for the current Android install. The value is truncated to a 46 * @return The build fingerprint for the current Android install. The value is truncated to a
47 * 128 characters as this is used for crash and UMA reporting, which should avoid huge 47 * 128 characters as this is used for crash and UMA reporting, which should avoid huge
48 * strings. 48 * strings.
49 */ 49 */
50 @CalledByNative 50 @CalledByNative
51 public static String getAndroidBuildFingerprint() { 51 public static String getAndroidBuildFingerprint() {
52 return Build.FINGERPRINT.substring( 52 return Build.FINGERPRINT.substring(
53 0, Math.min(Build.FINGERPRINT.length(), MAX_FINGERPRINT_LENGTH)) ; 53 0, Math.min(Build.FINGERPRINT.length(), MAX_FINGERPRINT_LENGTH)) ;
54 } 54 }
55 55
56 @CalledByNative 56 @CalledByNative
57 public static String getDeviceManufacturer() { 57 public static String getDeviceManufacturer() {
58 return Build.MANUFACTURER; 58 return Build.MANUFACTURER;
59 } 59 }
60 60
61 @CalledByNative 61 @CalledByNative
62 public static String getDeviceModel() { 62 public static String getDeviceModel() {
63 return Build.MODEL; 63 return Build.MODEL;
64 } 64 }
65 65
66 @CalledByNative 66 @CalledByNative
67 public static String getGMSVersionCode(Context context) { 67 public static String getGMSVersionCode() {
68 String msg = "gms versionCode not available."; 68 String msg = "gms versionCode not available.";
69 try { 69 try {
70 PackageManager packageManager = context.getPackageManager(); 70 PackageManager packageManager =
71 ContextUtils.getApplicationContext().getPackageManager();
71 PackageInfo packageInfo = packageManager.getPackageInfo("com.google. android.gms", 0); 72 PackageInfo packageInfo = packageManager.getPackageInfo("com.google. android.gms", 0);
72 msg = Integer.toString(packageInfo.versionCode); 73 msg = Integer.toString(packageInfo.versionCode);
73 } catch (NameNotFoundException e) { 74 } catch (NameNotFoundException e) {
74 Log.d(TAG, "GMS package is not found.", e); 75 Log.d(TAG, "GMS package is not found.", e);
75 } 76 }
76 return msg; 77 return msg;
77 } 78 }
78 79
79 @CalledByNative 80 @CalledByNative
80 public static String getPackageVersionCode(Context context) { 81 public static String getPackageVersionCode() {
81 String msg = "versionCode not available."; 82 String msg = "versionCode not available.";
82 try { 83 try {
83 PackageManager pm = context.getPackageManager(); 84 PackageManager pm = ContextUtils.getApplicationContext().getPackageM anager();
estevenson 2017/03/27 21:00:54 optional nit: might be a little nicer to store con
Peter Wen 2017/03/27 22:31:06 Modified it a little bit by calling getPackageName
84 PackageInfo pi = pm.getPackageInfo(context.getPackageName(), 0); 85 PackageInfo pi =
86 pm.getPackageInfo(ContextUtils.getApplicationContext().getPa ckageName(), 0);
85 msg = ""; 87 msg = "";
86 if (pi.versionCode > 0) { 88 if (pi.versionCode > 0) {
87 msg = Integer.toString(pi.versionCode); 89 msg = Integer.toString(pi.versionCode);
88 } 90 }
89 } catch (NameNotFoundException e) { 91 } catch (NameNotFoundException e) {
90 Log.d(TAG, msg); 92 Log.d(TAG, msg);
91 } 93 }
92 return msg; 94 return msg;
93 } 95 }
94 96
95 @CalledByNative 97 @CalledByNative
96 public static String getPackageVersionName(Context context) { 98 public static String getPackageVersionName() {
97 String msg = "versionName not available"; 99 String msg = "versionName not available";
98 try { 100 try {
99 PackageManager pm = context.getPackageManager(); 101 PackageManager pm = ContextUtils.getApplicationContext().getPackageM anager();
100 PackageInfo pi = pm.getPackageInfo(context.getPackageName(), 0); 102 PackageInfo pi =
103 pm.getPackageInfo(ContextUtils.getApplicationContext().getPa ckageName(), 0);
101 msg = ""; 104 msg = "";
102 if (pi.versionName != null) { 105 if (pi.versionName != null) {
103 msg = pi.versionName; 106 msg = pi.versionName;
104 } 107 }
105 } catch (NameNotFoundException e) { 108 } catch (NameNotFoundException e) {
106 Log.d(TAG, msg); 109 Log.d(TAG, msg);
107 } 110 }
108 return msg; 111 return msg;
109 } 112 }
110 113
111 @CalledByNative 114 @CalledByNative
112 public static String getPackageLabel(Context context) { 115 public static String getPackageLabel() {
113 // Third-party code does disk read on the getApplicationInfo call. http: //crbug.com/614343 116 // Third-party code does disk read on the getApplicationInfo call. http: //crbug.com/614343
114 StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads(); 117 StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads();
115 try { 118 try {
116 PackageManager packageManager = context.getPackageManager(); 119 PackageManager packageManager =
117 ApplicationInfo appInfo = packageManager.getApplicationInfo(context. getPackageName(), 120 ContextUtils.getApplicationContext().getPackageManager();
121 ApplicationInfo appInfo = packageManager.getApplicationInfo(
122 ContextUtils.getApplicationContext().getPackageName(),
118 PackageManager.GET_META_DATA); 123 PackageManager.GET_META_DATA);
119 CharSequence label = packageManager.getApplicationLabel(appInfo); 124 CharSequence label = packageManager.getApplicationLabel(appInfo);
120 return label != null ? label.toString() : ""; 125 return label != null ? label.toString() : "";
121 } catch (NameNotFoundException e) { 126 } catch (NameNotFoundException e) {
122 return ""; 127 return "";
123 } finally { 128 } finally {
124 StrictMode.setThreadPolicy(oldPolicy); 129 StrictMode.setThreadPolicy(oldPolicy);
125 } 130 }
126 } 131 }
127 132
128 @CalledByNative 133 @CalledByNative
129 public static String getPackageName(Context context) { 134 public static String getPackageName() {
130 String packageName = context != null ? context.getPackageName() : null; 135 if (ContextUtils.getApplicationContext() == null) {
131 return packageName != null ? packageName : ""; 136 return "";
137 }
138 return ContextUtils.getApplicationContext().getPackageName();
132 } 139 }
133 140
134 @CalledByNative 141 @CalledByNative
135 public static String getBuildType() { 142 public static String getBuildType() {
136 return Build.TYPE; 143 return Build.TYPE;
137 } 144 }
138 145
139 /** 146 /**
140 * Check if this is a debuggable build of Android. Use this to enable develo per-only features. 147 * Check if this is a debuggable build of Android. Use this to enable develo per-only features.
141 */ 148 */
(...skipping 23 matching lines...) Expand all
165 172
166 /** 173 /**
167 * @return Whether the current app targets the SDK for at least O 174 * @return Whether the current app targets the SDK for at least O
168 */ 175 */
169 public static boolean targetsAtLeastO(Context appContext) { 176 public static boolean targetsAtLeastO(Context appContext) {
170 return isAtLeastO() 177 return isAtLeastO()
171 && appContext.getApplicationInfo().targetSdkVersion 178 && appContext.getApplicationInfo().targetSdkVersion
172 == Build.VERSION_CODES.CUR_DEVELOPMENT; 179 == Build.VERSION_CODES.CUR_DEVELOPMENT;
173 } 180 }
174 } 181 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698