Index: chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappActivity.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappActivity.java |
index 1912b565e9877cc30608894e1893de9ebd040cd3..3b2973a1cc629571eb46c6b6d4ed33c3de3f98f2 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappActivity.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappActivity.java |
@@ -8,7 +8,6 @@ import android.content.Intent; |
import android.graphics.Bitmap; |
import android.graphics.drawable.Drawable; |
import android.net.Uri; |
-import android.os.AsyncTask; |
import android.os.Bundle; |
import android.text.TextUtils; |
import android.util.Log; |
@@ -33,7 +32,6 @@ import org.chromium.chrome.browser.tab.EmptyTabObserver; |
import org.chromium.chrome.browser.tab.Tab; |
import org.chromium.chrome.browser.tab.TabObserver; |
import org.chromium.chrome.browser.util.ColorUtils; |
-import org.chromium.chrome.browser.util.FeatureUtilities; |
import org.chromium.content.browser.ScreenOrientationProvider; |
import org.chromium.content_public.browser.LoadUrlParams; |
import org.chromium.content_public.browser.WebContentsObserver; |
@@ -52,7 +50,7 @@ public class WebappActivity extends FullScreenActivity { |
private static final long MS_BEFORE_NAVIGATING_BACK_FROM_INTERSTITIAL = 1000; |
private final WebappInfo mWebappInfo; |
- private AsyncTask<Void, Void, Void> mCleanupTask; |
+ private final WebappDirectoryManager mDirectoryManager; |
private WebContentsObserver mWebContentsObserver; |
@@ -69,6 +67,7 @@ public class WebappActivity extends FullScreenActivity { |
*/ |
public WebappActivity() { |
mWebappInfo = WebappInfo.createEmpty(); |
+ mDirectoryManager = new WebappDirectoryManager(); |
} |
@Override |
@@ -109,9 +108,6 @@ public class WebappActivity extends FullScreenActivity { |
WebappInfo info = WebappInfo.create(getIntent()); |
if (info != null) mWebappInfo.copy(info); |
- mCleanupTask = new WebappDirectoryManager(getActivityDirectory(), |
- WEBAPP_SCHEME, FeatureUtilities.isDocumentModeEligible(this)); |
- |
ScreenOrientationProvider.lockOrientation((byte) mWebappInfo.orientation(), this); |
super.preInflationStartup(); |
} |
@@ -133,13 +129,13 @@ public class WebappActivity extends FullScreenActivity { |
@Override |
public void onStartWithNative() { |
super.onStartWithNative(); |
- if (mCleanupTask.getStatus() == AsyncTask.Status.PENDING) mCleanupTask.execute(); |
+ mDirectoryManager.cleanUpDirectories(this, getId()); |
} |
@Override |
public void onStopWithNative() { |
super.onStopWithNative(); |
- mCleanupTask.cancel(true); |
+ mDirectoryManager.cancelCleanup(); |
if (getActivityTab() != null) getActivityTab().saveState(getActivityDirectory()); |
if (getFullscreenManager() != null) { |
getFullscreenManager().setPersistentFullscreenMode(false); |
@@ -332,14 +328,19 @@ public class WebappActivity extends FullScreenActivity { |
DocumentUtils.updateTaskDescription(this, title, icon, color, mBrandColor == null); |
} |
+ /** Returns a unique identifier for this WebappActivity. */ |
+ protected String getId() { |
+ return mWebappInfo.id(); |
+ } |
+ |
/** |
* Get the active directory by this web app. |
* |
* @return The directory used for the current web app. |
*/ |
@Override |
- protected File getActivityDirectory() { |
- return WebappDirectoryManager.getWebappDirectory(mWebappInfo.id()); |
+ protected final File getActivityDirectory() { |
+ return mDirectoryManager.getWebappDirectory(this, getId()); |
} |
@VisibleForTesting |