Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/pageinfo/WebsiteSettingsPopup.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/pageinfo/WebsiteSettingsPopup.java b/chrome/android/java/src/org/chromium/chrome/browser/pageinfo/WebsiteSettingsPopup.java |
| index ddb525452dc8eedbff82a490db6fc124202f5b9e..f7c0f1c5e07d6900f233cfd17e803d758612097f 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/pageinfo/WebsiteSettingsPopup.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/pageinfo/WebsiteSettingsPopup.java |
| @@ -10,6 +10,7 @@ import android.animation.AnimatorSet; |
| import android.animation.ObjectAnimator; |
| import android.app.Activity; |
| import android.app.Dialog; |
| +import android.content.ActivityNotFoundException; |
| import android.content.ClipData; |
| import android.content.ClipboardManager; |
| import android.content.Context; |
| @@ -48,6 +49,7 @@ import org.chromium.base.annotations.CalledByNative; |
| import org.chromium.base.metrics.RecordUserAction; |
| import org.chromium.chrome.R; |
| import org.chromium.chrome.browser.ContentSettingsType; |
| +import org.chromium.chrome.browser.instantapps.InstantAppsHandler; |
| import org.chromium.chrome.browser.offlinepages.OfflinePageItem; |
| import org.chromium.chrome.browser.offlinepages.OfflinePageUtils; |
| import org.chromium.chrome.browser.omnibox.OmniboxUrlEmphasizer; |
| @@ -254,6 +256,7 @@ public class WebsiteSettingsPopup implements OnClickListener { |
| private final ElidedUrlTextView mUrlTitle; |
| private final TextView mUrlConnectionMessage; |
| private final LinearLayout mPermissionsList; |
| + private final Button mInstantAppButton; |
| private final Button mSiteSettingsButton; |
| // The dialog the container is placed in. |
| @@ -294,6 +297,9 @@ public class WebsiteSettingsPopup implements OnClickListener { |
| // The name of the content publisher, if any. |
| private String mContentPublisher; |
| + // The intent associated with the instant app for this URL (or null if one does not exist). |
| + private Intent mInstantAppIntent; |
| + |
| /** |
| * Creates the WebsiteSettingsPopup, but does not display it. Also initializes the corresponding |
| * C++ object and saves a pointer to it. |
| @@ -352,6 +358,10 @@ public class WebsiteSettingsPopup implements OnClickListener { |
| mPermissionsList = (LinearLayout) mContainer |
| .findViewById(R.id.website_settings_permissions_list); |
| + mInstantAppButton = |
| + (Button) mContainer.findViewById(R.id.website_settings_instant_app_button); |
| + mInstantAppButton.setOnClickListener(this); |
| + |
| mSiteSettingsButton = |
| (Button) mContainer.findViewById(R.id.website_settings_site_settings_button); |
| mSiteSettingsButton.setOnClickListener(this); |
| @@ -466,6 +476,10 @@ public class WebsiteSettingsPopup implements OnClickListener { |
| || mParsedUrl.getScheme().equals("https"))) { |
| mSiteSettingsButton.setVisibility(View.GONE); |
| } |
| + |
| + mInstantAppIntent = mIsInternalPage ? null |
| + : InstantAppsHandler.getInstance().getInstantAppIntentForUrl(mFullUrl); |
| + if (mInstantAppIntent == null) mInstantAppButton.setVisibility(View.GONE); |
| } |
| /** |
| @@ -749,6 +763,12 @@ public class WebsiteSettingsPopup implements OnClickListener { |
| mContext.startActivity(preferencesIntent); |
| } |
| }); |
| + } else if (view == mInstantAppButton) { |
| + try { |
| + mContext.startActivity(mInstantAppIntent); |
|
Maria
2016/09/26 17:36:26
Can you add a RecordUserAction("Android.InstantApp
Ted C
2016/09/26 18:05:04
Done.
|
| + } catch (ActivityNotFoundException e) { |
| + mInstantAppButton.setEnabled(false); |
| + } |
| } else if (view == mUrlTitle) { |
| // Expand/collapse the displayed URL title. |
| mUrlTitle.toggleTruncation(); |
| @@ -809,6 +829,7 @@ public class WebsiteSettingsPopup implements OnClickListener { |
| List<View> animatableViews = new ArrayList<View>(); |
| animatableViews.add(mUrlTitle); |
| animatableViews.add(mUrlConnectionMessage); |
| + animatableViews.add(mInstantAppButton); |
| for (int i = 0; i < mPermissionsList.getChildCount(); i++) { |
| animatableViews.add(mPermissionsList.getChildAt(i)); |
| } |