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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappActivity.java

Issue 2126583002: Reland: Use metadata when launching WebAPKs. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 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: 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 a74c5146324ddea0b4a1945c0eed029d5117621a..926cedf41ccdefbf4b2ba29d5a3e02ffe68fb24f 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
@@ -62,7 +62,7 @@ public class WebappActivity extends FullScreenActivity {
private final WebappDirectoryManager mDirectoryManager;
- private WebappInfo mWebappInfo;
+ protected WebappInfo mWebappInfo;
private boolean mOldWebappCleanupStarted;
@@ -244,12 +244,14 @@ public class WebappActivity extends FullScreenActivity {
return mWebappInfo;
}
- private void initializeWebappData() {
- final int backgroundColor = ColorUtils.getOpaqueColor(mWebappInfo.backgroundColor(
+ protected int getBackgroundColor() {
+ return ColorUtils.getOpaqueColor(mWebappInfo.backgroundColor(
ApiCompatibilityUtils.getColor(getResources(), R.color.webapp_default_bg)));
+ }
+ private void initializeWebappData() {
mSplashScreen = new FrameLayout(this);
- mSplashScreen.setBackgroundColor(backgroundColor);
+ mSplashScreen.setBackgroundColor(getBackgroundColor());
ViewGroup contentView = (ViewGroup) findViewById(android.R.id.content);
contentView.addView(mSplashScreen);
@@ -258,48 +260,55 @@ public class WebappActivity extends FullScreenActivity {
mWebappUma.recordSplashscreenBackgroundColor(mWebappInfo.hasValidBackgroundColor()
? WebappUma.SPLASHSCREEN_COLOR_STATUS_CUSTOM
: WebappUma.SPLASHSCREEN_COLOR_STATUS_DEFAULT);
- mWebappUma.recordSplashscreenThemeColor(mWebappInfo.hasValidThemeColor()
- ? WebappUma.SPLASHSCREEN_COLOR_STATUS_CUSTOM
- : WebappUma.SPLASHSCREEN_COLOR_STATUS_DEFAULT);
- initializeSplashScreenWidgets(backgroundColor);
- }
-
- protected void initializeSplashScreenWidgets(final int backgroundColor) {
- final Intent intent = getIntent();
WebappRegistry.getWebappDataStorage(this, mWebappInfo.id(),
new WebappRegistry.FetchWebappDataStorageCallback() {
@Override
public void onWebappDataStorageRetrieved(WebappDataStorage storage) {
- if (storage == null) return;
-
- // The information in the WebappDataStorage may have been purged by the
- // user clearing their history or not launching the web app recently.
- // Restore the data if necessary from the intent.
- storage.updateFromShortcutIntent(intent);
-
- // A recent last used time is the indicator that the web app is still
- // present on the home screen, and enables sources such as notifications to
- // launch web apps. Thus, we do not update the last used time when the web
- // app is not directly launched from the home screen, as this interferes
- // with the heuristic.
- if (mWebappInfo.isLaunchedFromHomescreen()) {
- storage.updateLastUsedTime();
- }
-
- // Retrieve the splash image if it exists.
- storage.getSplashScreenImage(new WebappDataStorage.FetchCallback<Bitmap>() {
- @Override
- public void onDataRetrieved(Bitmap splashImage) {
- initializeSplashScreenWidgets(backgroundColor, splashImage);
- }
- });
+ onDataStorageFetched(storage);
}
}
);
}
- protected void initializeSplashScreenWidgets(int backgroundColor, Bitmap splashImage) {
+ protected void recordSplashScreenThemeColorUma() {
+ mWebappUma.recordSplashscreenThemeColor(mWebappInfo.hasValidThemeColor()
+ ? WebappUma.SPLASHSCREEN_COLOR_STATUS_CUSTOM
+ : WebappUma.SPLASHSCREEN_COLOR_STATUS_DEFAULT);
+ }
+
+ protected void onDataStorageFetched(WebappDataStorage storage) {
+ recordSplashScreenThemeColorUma();
+ if (storage == null) return;
+
+ // The information in the WebappDataStorage may have been purged by the
+ // user clearing their history or not launching the web app recently.
+ // Restore the data if necessary from the intent.
+ storage.updateFromShortcutIntent(getIntent());
+
+ // A recent last used time is the indicator that the web app is still
+ // present on the home screen, and enables sources such as notifications to
+ // launch web apps. Thus, we do not update the last used time when the web
+ // app is not directly launched from the home screen, as this interferes
+ // with the heuristic.
+ if (mWebappInfo.isLaunchedFromHomescreen()) {
+ storage.updateLastUsedTime();
+ }
+
+ retrieveSplashScreenImage(storage);
+ }
+
+ protected void retrieveSplashScreenImage(WebappDataStorage storage) {
+ // Retrieve the splash image if it exists.
+ storage.getSplashScreenImage(new WebappDataStorage.FetchCallback<Bitmap>() {
+ @Override
+ public void onDataRetrieved(Bitmap splashImage) {
+ initializeSplashScreenWidgets(splashImage);
+ }
+ });
+ }
+
+ protected void initializeSplashScreenWidgets(Bitmap splashImage) {
Bitmap displayIcon = splashImage == null ? mWebappInfo.icon() : splashImage;
int minimiumSizeThreshold = getResources().getDimensionPixelSize(
R.dimen.webapp_splash_image_size_minimum);
@@ -348,7 +357,7 @@ public class WebappActivity extends FullScreenActivity {
appNameView.setText(mWebappInfo.name());
if (splashIconView != null) splashIconView.setImageBitmap(displayIcon);
- if (ColorUtils.shouldUseLightForegroundOnBackground(backgroundColor)) {
+ if (ColorUtils.shouldUseLightForegroundOnBackground(getBackgroundColor())) {
appNameView.setTextColor(ApiCompatibilityUtils.getColor(getResources(),
R.color.webapp_splash_title_light));
}

Powered by Google App Engine
This is Rietveld 408576698