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

Unified Diff: content/public/android/java/src/org/chromium/content/browser/BackgroundSyncLauncher.java

Issue 1324173002: [Background Sync] Use GcmNetworkManager to start the browser for sync events. (Closed) Base URL: https://chromium.googlesource.com/chromium/src@bgsync-fix-background5
Patch Set: Move the BackgroundSyncLauncher into /chrome Created 5 years, 2 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
Index: content/public/android/java/src/org/chromium/content/browser/BackgroundSyncLauncher.java
diff --git a/content/public/android/java/src/org/chromium/content/browser/BackgroundSyncLauncher.java b/content/public/android/java/src/org/chromium/content/browser/BackgroundSyncLauncher.java
deleted file mode 100644
index bad267185182d208dcaf14efc6b12dae6704278a..0000000000000000000000000000000000000000
--- a/content/public/android/java/src/org/chromium/content/browser/BackgroundSyncLauncher.java
+++ /dev/null
@@ -1,117 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.content.browser;
-
-import android.content.Context;
-import android.content.SharedPreferences;
-import android.os.AsyncTask;
-import android.preference.PreferenceManager;
-
-import org.chromium.base.VisibleForTesting;
-import org.chromium.base.annotations.CalledByNative;
-import org.chromium.base.annotations.JNINamespace;
-
-/**
- * The {@link BackgroundSyncLauncher} singleton is created and owned by the C++ browser. It
- * registers interest in waking up the browser the next time the device goes online after the
- *browser closes via the {@link #setLaunchWhenNextOnline} method.
- *
- * Thread model: This class is to be run on the UI thread only.
- */
-@JNINamespace("content")
-public class BackgroundSyncLauncher {
- static final String PREF_BACKGROUND_SYNC_LAUNCH_NEXT_ONLINE = "bgsync_launch_next_online";
-
- // The instance of BackgroundSyncLauncher currently owned by a C++
- // BackgroundSyncLauncherAndroid, if any. If it is non-null then the browser is running.
- private static BackgroundSyncLauncher sInstance;
-
- /**
- * Create a BackgroundSyncLauncher object, which is owned by C++.
- * @param context The app context.
- */
- @VisibleForTesting
- @CalledByNative
- protected static BackgroundSyncLauncher create(Context context) {
- if (sInstance != null) {
- throw new IllegalStateException("Already instantiated");
- }
-
- sInstance = new BackgroundSyncLauncher(context);
- return sInstance;
- }
-
- /**
- * Called when the C++ counterpart is deleted.
- */
- @VisibleForTesting
- @CalledByNative
- protected void destroy() {
- assert sInstance == this;
- sInstance = null;
- }
-
- /**
- * Callback for {@link #shouldLaunchWhenNextOnline}. The run method is invoked on the UI thread.
- */
- public static interface ShouldLaunchCallback { public void run(Boolean shouldLaunch); }
-
- /**
- * Returns whether the browser should be launched when the device next goes online.
- * This is set by C++ and reset to false each time {@link BackgroundSyncLauncher}'s singleton is
- * created (the native browser is started). This call is asynchronous and will run the callback
- * on the UI thread when complete.
- * @param context The application context.
- * @param sharedPreferences The shared preferences.
- */
- protected static void shouldLaunchWhenNextOnline(
- final Context context, final ShouldLaunchCallback callback) {
- new AsyncTask<Void, Void, Boolean>() {
- @Override
- protected Boolean doInBackground(Void... params) {
- SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
- return prefs.getBoolean(PREF_BACKGROUND_SYNC_LAUNCH_NEXT_ONLINE, false);
- }
- @Override
- protected void onPostExecute(Boolean shouldLaunch) {
- callback.run(shouldLaunch);
- }
- }.execute();
- }
-
- /**
- * Set interest (or disinterest) in launching the browser the next time the device goes online
- * after the browser closes. On creation of the {@link BackgroundSyncLauncher} class (on browser
- * start) this value is reset to false. This is set by C++ and reset to false each time
- * {@link BackgroundSyncLauncher}'s singleton is created (the native browser is started). This
- * call is asynchronous.
- */
- @VisibleForTesting
- @CalledByNative
- protected void setLaunchWhenNextOnline(final Context context, final boolean shouldLaunch) {
- new AsyncTask<Void, Void, Void>() {
- @Override
- protected Void doInBackground(Void... params) {
- SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
- prefs.edit()
- .putBoolean(PREF_BACKGROUND_SYNC_LAUNCH_NEXT_ONLINE, shouldLaunch)
- .apply();
- return null;
- }
- }.execute();
- }
-
- /**
- * True if the native browser has started and created an instance of {@link
- * BackgroundSyncLauncher}.
- */
- protected static boolean hasInstance() {
- return sInstance != null;
- }
-
- private BackgroundSyncLauncher(Context context) {
- setLaunchWhenNextOnline(context, false);
- }
-}

Powered by Google App Engine
This is Rietveld 408576698