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

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

Issue 2459023002: Merge WebappInfo and WebApkMetaData part 2/2 (Closed)
Patch Set: Merge branch 'update_fail_refactor003' into update_fail_refactor01 Created 4 years, 1 month 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/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 481ed32da5f9f67579045050dc5520a787aa6dbe..518e9fdcc00b4b7a106b216b54e1bf7755f783f4 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
@@ -22,10 +22,40 @@ import org.chromium.content_public.common.ScreenOrientationValues;
public class WebappInfo {
private static final String TAG = "WebappInfo";
+ /**
+ * Parameter for {@link WebappInfo#create()} method which allows either a Bitmap or a PNG
+ * encoded string to be passed as a parameter.
+ */
+ public static class Icon {
+ private String mEncoded;
+ private Bitmap mDecoded;
+
+ public Icon(String encoded) {
+ mEncoded = encoded;
+ }
+
+ public Icon(Bitmap decoded) {
+ mDecoded = decoded;
+ }
+
+ public String encoded() {
+ if (mEncoded == null) {
+ mEncoded = ShortcutHelper.encodeBitmapAsString(mDecoded);
+ }
+ return mEncoded;
+ }
+
+ public Bitmap decoded() {
+ if (mDecoded == null) {
+ mDecoded = ShortcutHelper.decodeBitmapFromString(mEncoded);
+ }
+ return mDecoded;
+ }
+ }
+
private boolean mIsInitialized;
private String mId;
- private String mEncodedIcon;
- private Bitmap mDecodedIcon;
+ private Icon mIcon;
private Uri mUri;
private Uri mScopeUri;
private String mName;
@@ -94,8 +124,8 @@ public class WebappInfo {
String name = nameFromIntent(intent);
String shortName = shortNameFromIntent(intent);
- return create(id, url, scope, icon, name, shortName, displayMode, orientation, source,
- themeColor, backgroundColor, isIconGenerated);
+ return create(id, url, scope, new Icon(icon), name, shortName, displayMode,
+ orientation, source, themeColor, backgroundColor, isIconGenerated);
}
/**
@@ -113,7 +143,7 @@ public class WebappInfo {
* @param backgroundColor The background color of the webapp.
* @param isIconGenerated Whether the |icon| was generated by Chromium.
*/
- public static WebappInfo create(String id, String url, String scope, String icon, String name,
+ public static WebappInfo create(String id, String url, String scope, Icon icon, String name,
String shortName, int displayMode, int orientation, int source, long themeColor,
long backgroundColor, boolean isIconGenerated) {
if (id == null || url == null) {
@@ -125,7 +155,7 @@ public class WebappInfo {
source, themeColor, backgroundColor, isIconGenerated);
}
- protected WebappInfo(String id, String url, String scope, String encodedIcon, String name,
+ protected WebappInfo(String id, String url, String scope, Icon icon, String name,
String shortName, int displayMode, int orientation, int source, long themeColor,
long backgroundColor, boolean isIconGenerated) {
Uri uri = Uri.parse(url);
@@ -134,7 +164,7 @@ public class WebappInfo {
}
Uri scopeUri = Uri.parse(scope);
- mEncodedIcon = encodedIcon;
+ mIcon = icon;
mId = id;
mName = name;
mShortName = shortName;
@@ -235,18 +265,16 @@ public class WebappInfo {
return hasValidBackgroundColor() ? (int) mBackgroundColor : fallback;
}
- // This is needed for clients that want to send the icon trough an intent.
+ // This is needed for clients that want to send the icon through an intent.
public String encodedIcon() {
- return mEncodedIcon;
+ return (mIcon == null) ? null : mIcon.encoded();
}
/**
* Returns the icon in Bitmap form. Caches the result for future retrievals.
*/
public Bitmap icon() {
- if (mDecodedIcon != null) return mDecodedIcon;
- mDecodedIcon = ShortcutHelper.decodeBitmapFromString(mEncodedIcon);
- return mDecodedIcon;
+ return (mIcon == null) ? null : mIcon.decoded();
}
/**
« no previous file with comments | « chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkUpdateManager.java ('k') | chrome/android/java_sources.gni » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698