Chromium Code Reviews| 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 179991e89dc477e4ae99fcb1c28e8fc872628e7e..e90547b844b49167090a5c4241181a1c310784fe 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 |
| @@ -23,6 +23,7 @@ public class WebappInfo { |
| private String mEncodedIcon; |
| private Bitmap mDecodedIcon; |
| private Uri mUri; |
| + private Uri mScope; |
|
pkotwicz
2016/05/18 23:00:17
I don't think that this member is needed at all. I
Xi Han
2016/05/19 18:31:49
Since WebAPK will have two scopes, the "launch sco
|
| private String mName; |
| private String mShortName; |
| private int mOrientation; |
| @@ -30,11 +31,17 @@ public class WebappInfo { |
| private long mThemeColor; |
| private long mBackgroundColor; |
| private boolean mIsIconGenerated; |
| + private String mPackageName; |
| public static WebappInfo createEmpty() { |
| return new WebappInfo(); |
| } |
| + public static String scopeFromIntent(Intent intent) { |
| + String scope = IntentUtils.safeGetStringExtra(intent, ShortcutHelper.EXTRA_SCOPE); |
| + return scope == null ? "" : scope; |
| + } |
| + |
| private static String titleFromIntent(Intent intent) { |
| // The reference to title has been kept for reasons of backward compatibility. For intents |
| // and shortcuts which were created before we utilized the concept of name and shortName, |
| @@ -53,6 +60,12 @@ public class WebappInfo { |
| return shortName == null ? titleFromIntent(intent) : shortName; |
| } |
| + public static String packageNameFromIntent(Intent intent) { |
| + String packageName = IntentUtils.safeGetStringExtra( |
| + intent, ShortcutHelper.EXTRA_WEBAPK_PACKAGE_NAME); |
| + return packageName == null ? "" : packageName; |
| + } |
| + |
| /** |
| * Construct a WebappInfo. |
| * @param intent Intent containing info about the app. |
| @@ -61,6 +74,7 @@ public class WebappInfo { |
| String id = IntentUtils.safeGetStringExtra(intent, ShortcutHelper.EXTRA_ID); |
| String icon = IntentUtils.safeGetStringExtra(intent, ShortcutHelper.EXTRA_ICON); |
| String url = IntentUtils.safeGetStringExtra(intent, ShortcutHelper.EXTRA_URL); |
| + String scope = scopeFromIntent(intent); |
| int orientation = IntentUtils.safeGetIntExtra(intent, |
| ShortcutHelper.EXTRA_ORIENTATION, ScreenOrientationValues.DEFAULT); |
| int source = IntentUtils.safeGetIntExtra(intent, |
| @@ -76,15 +90,17 @@ public class WebappInfo { |
| String name = nameFromIntent(intent); |
| String shortName = shortNameFromIntent(intent); |
| + String packageName = packageNameFromIntent(intent); |
| - return create(id, url, icon, name, shortName, orientation, source, |
| - themeColor, backgroundColor, isIconGenerated); |
| + return create(id, url, scope, icon, name, shortName, orientation, source, |
| + themeColor, backgroundColor, isIconGenerated, packageName); |
| } |
| /** |
| * Construct a WebappInfo. |
| * @param id ID for the webapp. |
| * @param url URL for the webapp. |
| + * @param scope Scope of URLs that the WebAPK can navigate to. |
| * @param icon Icon to show for the webapp. |
| * @param name Name of the webapp. |
| * @param shortName The short name of the webapp. |
| @@ -92,58 +108,44 @@ public class WebappInfo { |
| * @param source Source where the webapp was added from. |
| * @param themeColor The theme color of the webapp. |
| * @param isIconGenerated Whether the |icon| was generated by Chromium. |
| + * @param packageName The package name of the WebAPK that intents to start the WebApp |
| + * activity. |
| */ |
| - public static WebappInfo create(String id, String url, String icon, String name, |
| - String shortName, int orientation, int source, long themeColor, |
| - long backgroundColor, boolean isIconGenerated) { |
| + public static WebappInfo create(String id, String url, String scope, String icon, String name, |
| + String shortName, int orientation, int source, long themeColor, long backgroundColor, |
| + boolean isIconGenerated, String packageName) { |
| if (id == null || url == null) { |
| Log.e("WebappInfo", "Data passed in was incomplete: " + id + ", " + url); |
| return null; |
| } |
| Uri uri = Uri.parse(url); |
| - return new WebappInfo(id, uri, icon, name, shortName, orientation, source, |
| - themeColor, backgroundColor, isIconGenerated); |
| + Uri scope_uri = scope == null ? Uri.parse("") : Uri.parse(scope); |
| + return new WebappInfo(id, uri, scope_uri, icon, name, shortName, orientation, source, |
| + themeColor, backgroundColor, isIconGenerated, packageName); |
| } |
| - private WebappInfo(String id, Uri uri, String encodedIcon, String name, |
| - String shortName, int orientation, int source, long themeColor, |
| - long backgroundColor, boolean isIconGenerated) { |
| + private WebappInfo(String id, Uri uri, Uri scope, String encodedIcon, String name, |
| + String shortName, int orientation, int source, long themeColor, long backgroundColor, |
| + boolean isIconGenerated, String packageName) { |
| mEncodedIcon = encodedIcon; |
| mId = id; |
| mName = name; |
| mShortName = shortName; |
| mUri = uri; |
| + mScope = scope; |
| mOrientation = orientation; |
| mSource = source; |
| mThemeColor = themeColor; |
| mBackgroundColor = backgroundColor; |
| mIsIconGenerated = isIconGenerated; |
| mIsInitialized = mUri != null; |
| + mPackageName = packageName; |
| } |
| private WebappInfo() { |
| } |
| - /** |
| - * Copies all the fields from the given WebappInfo into this instance. |
| - * @param newInfo Information about the new webapp. |
| - */ |
| - void copy(WebappInfo newInfo) { |
| - mIsInitialized = newInfo.mIsInitialized; |
| - mEncodedIcon = newInfo.mEncodedIcon; |
| - mDecodedIcon = newInfo.mDecodedIcon; |
| - mId = newInfo.mId; |
| - mUri = newInfo.mUri; |
| - mName = newInfo.mName; |
| - mShortName = newInfo.mShortName; |
| - mOrientation = newInfo.mOrientation; |
| - mSource = newInfo.mSource; |
| - mThemeColor = newInfo.mThemeColor; |
| - mBackgroundColor = newInfo.mBackgroundColor; |
| - mIsIconGenerated = newInfo.mIsIconGenerated; |
| - } |
| - |
| public boolean isInitialized() { |
| return mIsInitialized; |
| } |
| @@ -156,6 +158,10 @@ public class WebappInfo { |
| return mUri; |
| } |
| + public Uri scope() { |
| + return mScope; |
| + } |
| + |
| public String name() { |
| return mName; |
| } |
| @@ -164,6 +170,10 @@ public class WebappInfo { |
| return mShortName; |
| } |
|
pkotwicz
2016/05/18 23:00:17
Can we rename this function to getWebApkPackage()
Xi Han
2016/05/19 18:31:50
Change to WebApkPackageName.
|
| + public String packageName() { |
| + return mPackageName; |
| + } |
| + |
| public int orientation() { |
| return mOrientation; |
| } |
| @@ -243,8 +253,7 @@ public class WebappInfo { |
| public void setWebappIntentExtras(Intent intent) { |
| intent.putExtra(ShortcutHelper.EXTRA_ID, id()); |
| intent.putExtra(ShortcutHelper.EXTRA_URL, uri().toString()); |
| - intent.putExtra(ShortcutHelper.EXTRA_SCOPE, |
| - ShortcutHelper.getScopeFromUrl(uri().toString())); |
| + intent.putExtra(ShortcutHelper.EXTRA_SCOPE, scope().toString()); |
| intent.putExtra(ShortcutHelper.EXTRA_ICON, encodedIcon()); |
| intent.putExtra(ShortcutHelper.EXTRA_VERSION, ShortcutHelper.WEBAPP_SHORTCUT_VERSION); |
| intent.putExtra(ShortcutHelper.EXTRA_NAME, name()); |
| @@ -254,6 +263,7 @@ public class WebappInfo { |
| intent.putExtra(ShortcutHelper.EXTRA_THEME_COLOR, themeColor()); |
| intent.putExtra(ShortcutHelper.EXTRA_BACKGROUND_COLOR, backgroundColor()); |
| intent.putExtra(ShortcutHelper.EXTRA_IS_ICON_GENERATED, isIconGenerated()); |
| + intent.putExtra(ShortcutHelper.EXTRA_WEBAPK_PACKAGE_NAME, packageName()); |
| } |
| /** |