Index: chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappInfo.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappInfo.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappInfo.java |
index 1f783435184a306a108c9876360192f343b7d92f..749b9bfd30a5725fd39fabf067460881c2fd206d 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappInfo.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappInfo.java |
@@ -31,6 +31,7 @@ public class WebappInfo { |
private String mShortName; |
private int mOrientation; |
private int mSource; |
+ private long mThemeColor; |
public static WebappInfo createEmpty() { |
return new WebappInfo(); |
@@ -66,11 +67,13 @@ public class WebappInfo { |
ShortcutHelper.EXTRA_ORIENTATION, ScreenOrientationValues.DEFAULT); |
int source = intent.getIntExtra( |
ShortcutHelper.EXTRA_SOURCE, ShortcutSource.UNKNOWN); |
+ long themeColor = intent.getLongExtra(ShortcutHelper.EXTRA_THEME_COLOR, |
+ ShortcutHelper.THEME_COLOR_INVALID_OR_MISSING); |
String name = nameFromIntent(intent); |
String shortName = shortNameFromIntent(intent); |
- return create(id, url, icon, name, shortName, orientation, source); |
+ return create(id, url, icon, name, shortName, orientation, source, themeColor); |
} |
/** |
@@ -82,9 +85,10 @@ public class WebappInfo { |
* @param shortName The short name of the webapp. |
* @param orientation Orientation of the webapp. |
* @param source Source where the webapp was added from. |
+ * @param themeColor The theme color of the webapp. |
*/ |
public static WebappInfo create(String id, String url, String icon, String name, |
- String shortName, int orientation, int source) { |
+ String shortName, int orientation, int source, long themeColor) { |
if (id == null || url == null) { |
Log.e("WebappInfo", "Data passed in was incomplete: " + id + ", " + url); |
return null; |
@@ -97,11 +101,11 @@ public class WebappInfo { |
} |
Uri uri = Uri.parse(url); |
- return new WebappInfo(id, uri, favicon, name, shortName, orientation, source); |
+ return new WebappInfo(id, uri, favicon, name, shortName, orientation, source, themeColor); |
} |
private WebappInfo(String id, Uri uri, Bitmap icon, String name, |
- String shortName, int orientation, int source) { |
+ String shortName, int orientation, int source, long themeColor) { |
mIcon = icon; |
mId = id; |
mName = name; |
@@ -109,6 +113,7 @@ public class WebappInfo { |
mUri = uri; |
mOrientation = orientation; |
mSource = source; |
+ mThemeColor = themeColor; |
mIsInitialized = mUri != null; |
} |
@@ -129,6 +134,7 @@ public class WebappInfo { |
outState.putString(ShortcutHelper.EXTRA_SHORT_NAME, mShortName); |
outState.putInt(ShortcutHelper.EXTRA_ORIENTATION, mOrientation); |
outState.putInt(ShortcutHelper.EXTRA_SOURCE, mSource); |
+ outState.putLong(ShortcutHelper.EXTRA_THEME_COLOR, mThemeColor); |
} |
/** |
@@ -144,6 +150,7 @@ public class WebappInfo { |
mShortName = newInfo.mShortName; |
mOrientation = newInfo.mOrientation; |
mSource = newInfo.mSource; |
+ mThemeColor = newInfo.mThemeColor; |
} |
public boolean isInitialized() { |
@@ -178,6 +185,16 @@ public class WebappInfo { |
return mSource; |
} |
+ /** |
+ * Theme color is actually a 32 bit unsigned integer which encodes a color |
+ * in ARGB format. mThemeColor is a long because we also need to encode the |
+ * error state of ShortcutHelper.THEME_COLOR_INVALID_OR_MISSING which is a |
+ * negative number. |
+ */ |
+ public long themeColor() { |
+ return mThemeColor; |
+ } |
+ |
// This is needed for clients that want to send the icon trough an intent. |
public String getEncodedIcon() { |
if (mIcon == null) return ""; |