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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/physicalweb/UrlManager.java

Issue 2604953002: Remove mContext field from UrlManager (Closed)
Patch Set: Add bug number Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/android/javatests/src/org/chromium/chrome/browser/physicalweb/UrlManagerTest.java » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/java/src/org/chromium/chrome/browser/physicalweb/UrlManager.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/UrlManager.java b/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/UrlManager.java
index e27a634d46b74b5050b77f94945df15ff9b3f072..99890d7f3d2cc85ecd8379316b828a2aa7d2a258 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/UrlManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/UrlManager.java
@@ -74,8 +74,6 @@ class UrlManager {
private static final long STALE_NOTIFICATION_TIMEOUT_MILLIS = 30 * 60 * 1000; // 30 Minutes
private static final long MAX_CACHE_TIME = 24 * 60 * 60 * 1000; // 1 Day
private static final int MAX_CACHE_SIZE = 100;
- private static UrlManager sInstance;
- private final Context mContext;
private final ObserverList<Listener> mObservers;
private final Set<String> mNearbyUrls;
private final Map<String, UrlInfo> mUrlInfoMap;
@@ -102,8 +100,8 @@ class UrlManager {
* @param context An instance of android.content.Context
*/
@VisibleForTesting
- public UrlManager(Context context) {
- mContext = context;
+ public UrlManager() {
+ Context context = ContextUtils.getApplicationContext();
mNotificationManager = new NotificationManagerProxyImpl(
(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE));
mPwsClient = new PwsClientImpl(context);
@@ -123,25 +121,19 @@ class UrlManager {
registerNativeInitStartupCallback();
}
- /**
- * Get a singleton instance of this class.
- * @return A singleton instance of this class.
- */
- @CalledByNative
- public static UrlManager getInstance() {
- if (sInstance == null) {
- sInstance = new UrlManager(ContextUtils.getApplicationContext());
- }
- return sInstance;
+ // "Initialization on demand holder idiom"
+ private static class LazyHolder {
+ private static final UrlManager INSTANCE = new UrlManager();
}
+
/**
* Get a singleton instance of this class.
- * @param context unused
* @return A singleton instance of this class.
*/
- public static UrlManager getInstance(Context context) {
- return getInstance();
+ @CalledByNative
+ public static UrlManager getInstance() {
+ return LazyHolder.INSTANCE;
}
/**
@@ -463,15 +455,17 @@ class UrlManager {
}
private PendingIntent createListUrlsIntent() {
- Intent intent = new Intent(mContext, ListUrlsActivity.class);
+ Context appContext = ContextUtils.getApplicationContext();
+ Intent intent = new Intent(appContext, ListUrlsActivity.class);
intent.putExtra(ListUrlsActivity.REFERER_KEY, ListUrlsActivity.NOTIFICATION_REFERER);
- PendingIntent pendingIntent = PendingIntent.getActivity(mContext, 0, intent, 0);
+ PendingIntent pendingIntent = PendingIntent.getActivity(appContext, 0, intent, 0);
return pendingIntent;
}
private PendingIntent createOptInIntent() {
- Intent intent = new Intent(mContext, PhysicalWebOptInActivity.class);
- PendingIntent pendingIntent = PendingIntent.getActivity(mContext, 0, intent, 0);
+ Context appContext = ContextUtils.getApplicationContext();
+ Intent intent = new Intent(appContext, PhysicalWebOptInActivity.class);
+ PendingIntent pendingIntent = PendingIntent.getActivity(appContext, 0, intent, 0);
return pendingIntent;
}
@@ -509,7 +503,8 @@ class UrlManager {
@Override
public void onPwsResults(final Collection<PwsResult> pwsResults) {
long duration = SystemClock.elapsedRealtime() - timestamp;
- PhysicalWebUma.onBackgroundPwsResolution(mContext, duration);
+ PhysicalWebUma.onBackgroundPwsResolution(
+ ContextUtils.getApplicationContext(), duration);
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
@@ -551,7 +546,7 @@ class UrlManager {
// We should only show notifications if there's no other notification-based client.
if (!PhysicalWeb.shouldIgnoreOtherClients()
&& PhysicalWebEnvironment
- .getInstance((ChromeApplication) mContext.getApplicationContext())
+ .getInstance((ChromeApplication) ContextUtils.getApplicationContext())
.hasNotificationBasedClient()) {
return;
}
@@ -561,11 +556,13 @@ class UrlManager {
// high priority notification
createOptInNotification(true);
PhysicalWeb.recordOptInNotification();
- PhysicalWebUma.onOptInHighPriorityNotificationShown(mContext);
+ PhysicalWebUma.onOptInHighPriorityNotificationShown(
+ ContextUtils.getApplicationContext());
} else {
// min priority notification
createOptInNotification(false);
- PhysicalWebUma.onOptInMinPriorityNotificationShown(mContext);
+ PhysicalWebUma.onOptInMinPriorityNotificationShown(
+ ContextUtils.getApplicationContext());
}
} else if (PhysicalWeb.isPhysicalWebPreferenceEnabled()) {
createNotification();
@@ -576,13 +573,14 @@ class UrlManager {
PendingIntent pendingIntent = createListUrlsIntent();
// Get values to display.
- Resources resources = mContext.getResources();
+ Context appContext = ContextUtils.getApplicationContext();
+ Resources resources = appContext.getResources();
String title = resources.getString(R.string.physical_web_notification_title);
Bitmap largeIcon = BitmapFactory.decodeResource(resources,
R.drawable.physical_web_notification_large);
// Create the notification.
- Notification notification = new NotificationCompat.Builder(mContext)
+ Notification notification = new NotificationCompat.Builder(appContext)
.setLargeIcon(largeIcon)
.setSmallIcon(R.drawable.ic_chrome)
.setContentTitle(title)
@@ -602,13 +600,14 @@ class UrlManager {
: NotificationCompat.PRIORITY_MIN;
// Get values to display.
- Resources resources = mContext.getResources();
+ Context appContext = ContextUtils.getApplicationContext();
+ Resources resources = appContext.getResources();
String title = resources.getString(R.string.physical_web_optin_notification_title);
String text = resources.getString(R.string.physical_web_optin_notification_text);
Bitmap largeIcon = BitmapFactory.decodeResource(resources, R.mipmap.app_icon);
// Create the notification.
- Notification notification = new NotificationCompat.Builder(mContext)
+ Notification notification = new NotificationCompat.Builder(appContext)
.setLargeIcon(largeIcon)
.setSmallIcon(R.drawable.ic_physical_web_notification)
.setContentTitle(title)
@@ -624,20 +623,25 @@ class UrlManager {
}
private PendingIntent createClearNotificationAlarmIntent() {
- Intent intent = new Intent(mContext, ClearNotificationAlarmReceiver.class);
- return PendingIntent.getBroadcast(mContext, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
+ Context appContext = ContextUtils.getApplicationContext();
+ Intent intent = new Intent(appContext, ClearNotificationAlarmReceiver.class);
+ return PendingIntent.getBroadcast(appContext, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
}
private void scheduleClearNotificationAlarm() {
PendingIntent pendingIntent = createClearNotificationAlarmIntent();
- AlarmManager alarmManager = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE);
+ Context appContext = ContextUtils.getApplicationContext();
+ AlarmManager alarmManager =
+ (AlarmManager) appContext.getSystemService(Context.ALARM_SERVICE);
long time = SystemClock.elapsedRealtime() + STALE_NOTIFICATION_TIMEOUT_MILLIS;
alarmManager.set(AlarmManager.ELAPSED_REALTIME, time, pendingIntent);
}
private void cancelClearNotificationAlarm() {
PendingIntent pendingIntent = createClearNotificationAlarmIntent();
- AlarmManager alarmManager = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE);
+ Context appContext = ContextUtils.getApplicationContext();
+ AlarmManager alarmManager =
+ (AlarmManager) appContext.getSystemService(Context.ALARM_SERVICE);
alarmManager.cancel(pendingIntent);
}
@@ -694,7 +698,8 @@ class UrlManager {
ThreadUtils.postOnUiThread(new Runnable() {
@Override
public void run() {
- BrowserStartupController.get(mContext, LibraryProcessType.PROCESS_BROWSER)
+ Context appContext = ContextUtils.getApplicationContext();
+ BrowserStartupController.get(appContext, LibraryProcessType.PROCESS_BROWSER)
.addStartupCompletedObserver(new StartupCallback() {
@Override
public void onSuccess(boolean alreadyStarted) {
@@ -796,7 +801,7 @@ class UrlManager {
}
@VisibleForTesting
- static void clearPrefsForTesting(Context context) {
+ static void clearPrefsForTesting() {
ContextUtils.getAppSharedPreferences().edit()
.remove(PREFS_VERSION_KEY)
.remove(PREFS_NEARBY_URLS_KEY)
« no previous file with comments | « no previous file | chrome/android/javatests/src/org/chromium/chrome/browser/physicalweb/UrlManagerTest.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698