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

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

Issue 1239923002: webapps: add splashscreen for installed webapps (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@manifest-title
Patch Set: Fix compile and remove scaling Created 5 years, 3 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 c7aac5665dd5181258862445362115df833ebd15..18e9f1678a746fd9bc8da5a97f25997a8e223323 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
@@ -15,6 +15,8 @@ import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
import org.chromium.base.ActivityState;
import org.chromium.base.ApplicationStatus;
@@ -29,6 +31,7 @@ import org.chromium.chrome.browser.ssl.ConnectionSecurityLevel;
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;
@@ -160,16 +163,7 @@ public class WebappActivity extends FullScreenActivity {
@Override
public void postInflationStartup() {
- ViewGroup contentView = (ViewGroup) findViewById(android.R.id.content);
- mSplashScreen = (ViewGroup) LayoutInflater.from(this)
- .inflate(R.layout.webapp_splashscreen, contentView, false);
-
- if (mWebappInfo.backgroundColor() == ShortcutHelper.MANIFEST_COLOR_INVALID_OR_MISSING) {
- mSplashScreen.setBackgroundResource(R.color.webapp_default_bg);
- } else {
- mSplashScreen.setBackgroundColor((int) mWebappInfo.backgroundColor());
- }
- contentView.addView(mSplashScreen);
+ addSplashscreen();
super.postInflationStartup();
WebappControlContainer controlContainer =
@@ -184,6 +178,45 @@ public class WebappActivity extends FullScreenActivity {
return mWebappInfo;
}
+ private void addSplashscreen() {
gone 2015/09/04 18:25:56 nit: initializeSplashscreen? You're doing more th
newt (away) 2015/09/04 18:45:49 Be consistent with whether you treat splash screen
Lalit Maganti 2015/09/04 19:12:02 Done and gone with SplashScreen because it's what
+ ViewGroup contentView = (ViewGroup) findViewById(android.R.id.content);
+ mSplashScreen = (ViewGroup) LayoutInflater.from(this)
+ .inflate(R.layout.webapp_splashscreen, contentView, false);
+
+ final int backgroundColor;
+ if (mWebappInfo.backgroundColor() == ShortcutHelper.MANIFEST_COLOR_INVALID_OR_MISSING) {
+ backgroundColor = getResources().getColor(R.color.webapp_default_bg);
+ } else {
+ backgroundColor = (int) mWebappInfo.backgroundColor();
+ }
+ mSplashScreen.setBackgroundColor(backgroundColor);
+
+ contentView.addView(mSplashScreen);
newt (away) 2015/09/04 18:45:49 Where / when does the splash screen get removed fr
Lalit Maganti 2015/09/04 19:12:02 On first paint. The code to do this is already pre
+
+ WebappDataStorage.open(this, mWebappInfo.id())
+ .getSplashScreenImage(new WebappDataStorage.FetchCallback<Bitmap>() {
+ @Override
+ public void onDataRetrieved(Bitmap splashIcon) {
+ if (mSplashScreen == null || splashIcon == null) return;
+ addSplashscreenIconAndText(splashIcon, backgroundColor);
+ }
+ });
+ }
+
+ private void addSplashscreenIconAndText(Bitmap splashIcon, int backgroundColor) {
gone 2015/09/04 18:25:56 nit: setSplashscreenIconAndText?
Lalit Maganti 2015/09/04 19:12:02 Done.
+ TextView appNameView = (TextView) mSplashScreen.findViewById(R.id
newt (away) 2015/09/04 18:45:49 Don't wrap lines in the middle of a constant (R.id
Lalit Maganti 2015/09/04 19:12:02 Done.
+ .webapp_splashscreen_name);
+ ImageView splashIconView = (ImageView) mSplashScreen.findViewById(R.id
+ .webapp_splashscreen_icon);
+ appNameView.setText(mWebappInfo.shortName());
+ splashIconView.setImageBitmap(splashIcon);
+
+ if (ColorUtils.shoudUseLightForegroundOnBackground(backgroundColor)) {
+ appNameView.setTextColor(getResources().getColor(R.color
+ .webapp_splash_title_light));
+ }
+ }
+
private void updateUrlBar() {
Tab tab = getActivityTab();
if (tab == null || mUrlBar == null) return;
« chrome/android/java/res/values/dimens.xml ('K') | « chrome/android/java/res/values/dimens.xml ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698