Commit 8bf42472 authored by Jordan Oroshiba's avatar Jordan Oroshiba Committed by Commit Bot

Moving Lite Page text to header for PageInfoV2

Replacing the URL with the text for preview UI message text, replacing favicon with the lite page logo.

Screenshot: https://crbug.com/1077766#c82
Bug: 1077766
Change-Id: Ic236e12ac678881b6bace346bbaf5d89b7c7052b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2503577
Commit-Queue: Jordan Oroshiba <oroshiba@google.com>
Reviewed-by: default avatarScott Violet <sky@chromium.org>
Reviewed-by: default avatarChristian Dullweber <dullweber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#823193}
parent 5d1496e0
...@@ -36,6 +36,7 @@ import org.chromium.chrome.browser.profiles.Profile; ...@@ -36,6 +36,7 @@ import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.site_settings.ChromeSiteSettingsClient; import org.chromium.chrome.browser.site_settings.ChromeSiteSettingsClient;
import org.chromium.chrome.browser.ui.favicon.FaviconHelper; import org.chromium.chrome.browser.ui.favicon.FaviconHelper;
import org.chromium.chrome.browser.vr.VrModuleProvider; import org.chromium.chrome.browser.vr.VrModuleProvider;
import org.chromium.components.browser_ui.settings.SettingsUtils;
import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory; import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory;
import org.chromium.components.browser_ui.site_settings.SiteSettingsClient; import org.chromium.components.browser_ui.site_settings.SiteSettingsClient;
import org.chromium.components.content_settings.CookieControlsBridge; import org.chromium.components.content_settings.CookieControlsBridge;
...@@ -294,7 +295,10 @@ public class ChromePageInfoControllerDelegate extends PageInfoControllerDelegate ...@@ -294,7 +295,10 @@ public class ChromePageInfoControllerDelegate extends PageInfoControllerDelegate
Resources resources = mContext.getResources(); Resources resources = mContext.getResources();
int size = resources.getDimensionPixelSize(R.dimen.page_info_favicon_size); int size = resources.getDimensionPixelSize(R.dimen.page_info_favicon_size);
new FaviconHelper().getLocalFaviconImageForURL(mProfile, url, size, (image, iconUrl) -> { new FaviconHelper().getLocalFaviconImageForURL(mProfile, url, size, (image, iconUrl) -> {
if (image != null) { if (isShowingPreview()) {
callback.onResult(SettingsUtils.getTintedIcon(mContext,
R.drawable.preview_pin_round, R.color.infobar_icon_drawable_color));
} else if (image != null) {
callback.onResult(new BitmapDrawable(resources, image)); callback.onResult(new BitmapDrawable(resources, image));
} else if (UrlUtilities.isInternalScheme(new GURL(url))) { } else if (UrlUtilities.isInternalScheme(new GURL(url))) {
callback.onResult( callback.onResult(
...@@ -305,6 +309,12 @@ public class ChromePageInfoControllerDelegate extends PageInfoControllerDelegate ...@@ -305,6 +309,12 @@ public class ChromePageInfoControllerDelegate extends PageInfoControllerDelegate
}); });
} }
@Override
public Drawable getPreviewUiIcon() {
return SettingsUtils.getTintedIcon(mContext,
R.drawable.preview_pin_round, R.color.infobar_icon_drawable_color);
}
@VisibleForTesting @VisibleForTesting
void setOfflinePageStateForTesting(@OfflinePageState int offlinePageState) { void setOfflinePageStateForTesting(@OfflinePageState int offlinePageState) {
mOfflinePageState = offlinePageState; mOfflinePageState = offlinePageState;
......
...@@ -47,6 +47,28 @@ ...@@ -47,6 +47,28 @@
android:visibility="gone" /> android:visibility="gone" />
</LinearLayout> </LinearLayout>
<LinearLayout
android:id="@+id/page_info_preview_message_wrapper"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="48dp"
android:gravity="center"
android:paddingVertical="@dimen/page_info_popup_padding_vertical"
android:paddingHorizontal="@dimen/page_info_popup_padding_sides"
android:visibility="gone">
<org.chromium.components.browser_ui.widget.text.TextViewWithCompoundDrawables
android:id="@+id/page_info_preview_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawablePadding="@dimen/page_info_popup_button_padding_sides"
android:includeFontPadding="false"
android:lineSpacingExtra="6dp"
android:textAppearance="@style/TextAppearance.TextLarge.Primary"
app:drawableHeight="@dimen/page_info_favicon_size"
app:drawableWidth="@dimen/page_info_favicon_size" />
</LinearLayout>
<LinearLayout <LinearLayout
android:id="@+id/page_info_wrapper" android:id="@+id/page_info_wrapper"
android:layout_width="match_parent" android:layout_width="match_parent"
......
...@@ -38,22 +38,6 @@ ...@@ -38,22 +38,6 @@
android:layout_width="match_parent"/> android:layout_width="match_parent"/>
</LinearLayout> </LinearLayout>
<View
android:id="@+id/page_info_preview_separator"
android:layout_marginTop="16dp"
style="@style/HorizontalDivider"
android:visibility="gone" />
<TextView
android:id="@+id/page_info_preview_message"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/page_info_popup_padding_sides"
android:layout_marginTop="@dimen/page_info_popup_padding_vertical"
android:textAppearance="@style/TextAppearance.TextLarge.Primary"
android:text="@string/page_info_preview_message"
android:visibility="gone" />
<TextView <TextView
android:id="@+id/page_info_preview_load_original" android:id="@+id/page_info_preview_load_original"
android:layout_width="match_parent" android:layout_width="match_parent"
......
...@@ -32,6 +32,10 @@ public class PageInfoContainer extends FrameLayout { ...@@ -32,6 +32,10 @@ public class PageInfoContainer extends FrameLayout {
public int urlOriginLength; public int urlOriginLength;
// The URL to show in truncated state. // The URL to show in truncated state.
public String truncatedUrl; public String truncatedUrl;
// If the page has preview UI shown.
public boolean previewUIShown;
// The icon used for preview UI.
public Drawable previewUIIcon;
public Runnable urlTitleClickCallback; public Runnable urlTitleClickCallback;
public Runnable urlTitleLongClickCallback; public Runnable urlTitleLongClickCallback;
...@@ -39,6 +43,7 @@ public class PageInfoContainer extends FrameLayout { ...@@ -39,6 +43,7 @@ public class PageInfoContainer extends FrameLayout {
} }
private PageInfoView.ElidedUrlTextView mUrlTitle; private PageInfoView.ElidedUrlTextView mUrlTitle;
private TextView mTruncatedUrlTitle; private TextView mTruncatedUrlTitle;
private TextView mPreviewMessage;
private final ViewGroup mWrapper; private final ViewGroup mWrapper;
private final ViewGroup mContent; private final ViewGroup mContent;
...@@ -72,6 +77,13 @@ public class PageInfoContainer extends FrameLayout { ...@@ -72,6 +77,13 @@ public class PageInfoContainer extends FrameLayout {
View urlWrapper = findViewById(R.id.page_info_url_wrapper); View urlWrapper = findViewById(R.id.page_info_url_wrapper);
urlWrapper.setVisibility(params.urlTitleShown ? VISIBLE : GONE); urlWrapper.setVisibility(params.urlTitleShown ? VISIBLE : GONE);
mPreviewMessage = findViewById(R.id.page_info_preview_message);
mPreviewMessage.setText(R.string.page_info_preview_message);
mPreviewMessage.setCompoundDrawablesRelative(params.previewUIIcon, null, null, null);
View previewWrapper = findViewById(R.id.page_info_preview_message_wrapper);
previewWrapper.setVisibility(params.previewUIShown ? VISIBLE : GONE);
ChromeImageButton backButton = findViewById(R.id.subpage_back_button); ChromeImageButton backButton = findViewById(R.id.subpage_back_button);
backButton.setOnClickListener(v -> params.backButtonClickCallback.run()); backButton.setOnClickListener(v -> params.backButtonClickCallback.run());
} }
......
...@@ -263,6 +263,8 @@ public class PageInfoController implements PageInfoMainController, ModalDialogPr ...@@ -263,6 +263,8 @@ public class PageInfoController implements PageInfoMainController, ModalDialogPr
containerParams.urlTitleClickCallback = mContainer::toggleUrlTruncation; containerParams.urlTitleClickCallback = mContainer::toggleUrlTruncation;
containerParams.urlTitleLongClickCallback = viewParams.urlTitleLongClickCallback; containerParams.urlTitleLongClickCallback = viewParams.urlTitleLongClickCallback;
containerParams.urlTitleShown = viewParams.urlTitleShown; containerParams.urlTitleShown = viewParams.urlTitleShown;
containerParams.previewUIShown = viewParams.previewUIShown;
containerParams.previewUIIcon = mDelegate.getPreviewUiIcon();
mContainer.setParams(containerParams); mContainer.setParams(containerParams);
mDelegate.getFavicon(mFullUrl, favicon -> { mDelegate.getFavicon(mFullUrl, favicon -> {
if (favicon != null) { if (favicon != null) {
......
...@@ -232,4 +232,9 @@ public abstract class PageInfoControllerDelegate { ...@@ -232,4 +232,9 @@ public abstract class PageInfoControllerDelegate {
* The UI will use a fallback icon if null is supplied. * The UI will use a fallback icon if null is supplied.
*/ */
public abstract void getFavicon(String url, Callback<Drawable> callback); public abstract void getFavicon(String url, Callback<Drawable> callback);
/**
* @return Returns the drawable for the Preview UI.
*/
public abstract Drawable getPreviewUiIcon();
} }
...@@ -62,6 +62,14 @@ public class PageInfoViewV2 extends PageInfoView { ...@@ -62,6 +62,14 @@ public class PageInfoViewV2 extends PageInfoView {
@Override @Override
protected void initSiteSettings(PageInfoViewParams params) {} protected void initSiteSettings(PageInfoViewParams params) {}
@Override
protected void initPreview(PageInfoViewParams params) {
mPreviewLoadOriginal = findViewById(R.id.page_info_preview_load_original);
initializePageInfoViewChild(mPreviewLoadOriginal, params.previewUIShown,
params.previewShowOriginalClickCallback);
mPreviewLoadOriginal.setText(params.previewLoadOriginalMessage);
}
public PageInfoRowView getConnectionRowView() { public PageInfoRowView getConnectionRowView() {
return mConnectionRow; return mConnectionRow;
} }
......
...@@ -12,6 +12,7 @@ import android.graphics.drawable.Drawable; ...@@ -12,6 +12,7 @@ import android.graphics.drawable.Drawable;
import android.webkit.ValueCallback; import android.webkit.ValueCallback;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import org.chromium.base.Callback; import org.chromium.base.Callback;
import org.chromium.base.StrictModeContext; import org.chromium.base.StrictModeContext;
...@@ -127,6 +128,12 @@ public class PageInfoControllerDelegateImpl extends PageInfoControllerDelegate { ...@@ -127,6 +128,12 @@ public class PageInfoControllerDelegateImpl extends PageInfoControllerDelegate {
})); }));
} }
@Override
@Nullable
public Drawable getPreviewUiIcon() {
return null;
}
private static boolean isHttpOrHttps(GURL url) { private static boolean isHttpOrHttps(GURL url) {
String scheme = url.getScheme(); String scheme = url.getScheme();
return UrlConstants.HTTP_SCHEME.equals(scheme) || UrlConstants.HTTPS_SCHEME.equals(scheme); return UrlConstants.HTTP_SCHEME.equals(scheme) || UrlConstants.HTTPS_SCHEME.equals(scheme);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment