[gbb-cct] Adding Layout files for toolbar view of child page [Light Mode Main PIH Title]: https://screenshot.googleplex.com/Bfi2J763LiAuDbc [Light Mode Child Page Title]: https://screenshot.googleplex.com/39PZELasopUsz8g [Dark Mode Main PIH Title]: https://screenshot.googleplex.com/6b63N2KTSqbZNfQ [Dark Mode Child Page Title]: https://screenshot.googleplex.com/A5BPWYzX5T3yGsv Bug: b/290846168 Change-Id: I620719dce5dbe7bf11bb1e632620121e1b4243b5 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4753193 Code-Coverage: Findit <findit-for-me@appspot.gserviceaccount.com> Reviewed-by: Sinan Sahin <sinansahin@google.com> Commit-Queue: Kamal Choudhury <kamalchoudhury@google.com> Reviewed-by: Jinsuk Kim <jinsukkim@chromium.org> Cr-Commit-Position: refs/heads/main@{#1181977}
diff --git a/chrome/browser/ui/android/page_insights/java/res/layout/page_insights_sheet_toolbar.xml b/chrome/browser/ui/android/page_insights/java/res/layout/page_insights_sheet_toolbar.xml index aef2d30..0ebd60f 100644 --- a/chrome/browser/ui/android/page_insights/java/res/layout/page_insights_sheet_toolbar.xml +++ b/chrome/browser/ui/android/page_insights/java/res/layout/page_insights_sheet_toolbar.xml
@@ -24,7 +24,7 @@ android:src="@drawable/drag_handlebar" /> <org.chromium.components.browser_ui.widget.text.TextViewWithCompoundDrawables - android:id="@+id/page_insights_header" + android:id="@+id/page_insights_main_header" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="5dp" @@ -34,4 +34,34 @@ android:text="@string/page_insights_hub_title_text" android:textAppearance="@style/TextAppearance.Headline2.Primary.Baseline" /> + <LinearLayout + android:id="@+id/page_insights_child_page_header" + android:layout_width="match_parent" + android:layout_height="35dp" + android:orientation="horizontal" + android:importantForAccessibility="no" + android:visibility="gone"> + + <ImageButton + android:id="@+id/page_insights_back_button" + android:layout_width="wrap_content" + android:layout_height="30dp" + android:paddingVertical="10dp" + android:paddingHorizontal="15dp" + android:src="@drawable/ic_arrow_back_24dp" + app:tint="@color/default_icon_color_baseline" + android:background="@android:color/transparent" + android:importantForAccessibility="yes" + android:contentDescription="@string/page_insights_back_button_description"/> + + <TextView + android:id="@+id/page_insights_child_title" + android:layout_width="wrap_content" + android:layout_height="35dp" + android:paddingVertical="3dp" + android:paddingHorizontal="5dp" + android:textAppearance="@style/TextAppearance.TextAccentLarge.Primary.Baseline"/> + + </LinearLayout> + </LinearLayout>
diff --git a/chrome/browser/ui/android/page_insights/java/src/org/chromium/chrome/browser/page_insights/PageInsightsSheetContent.java b/chrome/browser/ui/android/page_insights/java/src/org/chromium/chrome/browser/page_insights/PageInsightsSheetContent.java index 6e5de28f..abfae586 100644 --- a/chrome/browser/ui/android/page_insights/java/src/org/chromium/chrome/browser/page_insights/PageInsightsSheetContent.java +++ b/chrome/browser/ui/android/page_insights/java/src/org/chromium/chrome/browser/page_insights/PageInsightsSheetContent.java
@@ -8,10 +8,12 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.TextView; import android.widget.FrameLayout; import androidx.annotation.Nullable; +import androidx.annotation.VisibleForTesting; import org.chromium.components.browser_ui.bottomsheet.BottomSheetContent; public class PageInsightsSheetContent implements BottomSheetContent { @@ -27,7 +29,10 @@ */ public PageInsightsSheetContent(Context context) { mToolbarView = (ViewGroup) LayoutInflater.from(context).inflate( - R.layout.page_insights_sheet_toolbar, null); + R.layout.page_insights_sheet_toolbar, null); + mToolbarView + .findViewById(R.id.page_insights_back_button) + .setOnClickListener((view)-> onBackButtonPressed()); mSheetContentView = new FrameLayout(context); } @@ -116,4 +121,24 @@ public int getSheetClosedAccessibilityStringId() { return R.string.page_insights_sheet_closed; } + + private void onBackButtonPressed(){ + mToolbarView.findViewById(R.id.page_insights_main_header).setVisibility(View.VISIBLE); + mToolbarView.findViewById(R.id.page_insights_child_page_header).setVisibility(View.GONE); + } + + // TODO(kamalchoudhury): Update the function to fetch the title from child page once data + // fetching from server is finalized. + private String getChildSheetTitle() { + return "Places on this page"; + } + + // TODO(kamalchoudhury): Update the function once data fetching from server is finalized. + @VisibleForTesting + public void renderChildPage(){ + TextView childTitle = mToolbarView.findViewById(R.id.page_insights_child_title); + childTitle.setText(getChildSheetTitle()); + mToolbarView.findViewById(R.id.page_insights_main_header).setVisibility(View.GONE); + mToolbarView.findViewById(R.id.page_insights_child_page_header).setVisibility(View.VISIBLE); + } }
diff --git a/chrome/browser/ui/android/page_insights/java/src/org/chromium/chrome/browser/page_insights/PageInsightsSheetContentTest.java b/chrome/browser/ui/android/page_insights/java/src/org/chromium/chrome/browser/page_insights/PageInsightsSheetContentTest.java index 42c3a8c..b45f687d 100644 --- a/chrome/browser/ui/android/page_insights/java/src/org/chromium/chrome/browser/page_insights/PageInsightsSheetContentTest.java +++ b/chrome/browser/ui/android/page_insights/java/src/org/chromium/chrome/browser/page_insights/PageInsightsSheetContentTest.java
@@ -12,6 +12,7 @@ import androidx.test.filters.MediumTest; +import androidx.test.filters.SmallTest; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -24,7 +25,6 @@ import org.chromium.base.test.BaseActivityTestRule; import org.chromium.base.test.BaseJUnit4ClassRunner; import org.chromium.base.test.util.Batch; -import org.chromium.components.browser_ui.bottomsheet.BottomSheetContent; import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; import org.chromium.components.browser_ui.bottomsheet.BottomSheetControllerFactory; import org.chromium.components.browser_ui.bottomsheet.BottomSheetTestSupport; @@ -46,7 +46,7 @@ private BottomSheetController mBottomSheetController; private ScrimCoordinator mScrimCoordinator; - private BottomSheetContent mSheetContent; + private PageInsightsSheetContent mSheetContent; private BottomSheetTestSupport mTestSupport; @BeforeClass @@ -111,4 +111,30 @@ TestThreadUtils.runOnUiThreadBlocking(() -> mBottomSheetController.collapseSheet(false)); assertEquals(BottomSheetController.SheetState.PEEK, mBottomSheetController.getSheetState()); } + + @Test + @SmallTest + public void backButtonPressed(){ + TestThreadUtils.runOnUiThreadBlocking(() -> { + getToolbarViewById(R.id.page_insights_back_button).performClick(); + assertEquals(View.VISIBLE, + getToolbarViewById(R.id.page_insights_main_header).getVisibility()); + assertEquals(View.GONE, + getToolbarViewById(R.id.page_insights_child_page_header).getVisibility()); + }); + } + + @Test + @SmallTest + public void childPageRendered(){ + mSheetContent.renderChildPage(); + assertEquals(View.GONE, + getToolbarViewById(R.id.page_insights_main_header).getVisibility()); + assertEquals(View.VISIBLE, + getToolbarViewById(R.id.page_insights_child_page_header).getVisibility()); + } + + private View getToolbarViewById(int viewId){ + return mSheetContent.getToolbarView().findViewById(viewId); + } }
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd index 5ff58dc..c74d6ef 100644 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -4397,6 +4397,9 @@ <message name="IDS_PAGE_INSIGHTS_HUB_TITLE_TEXT" desc="The title of Page Insights Sheet."> Related Insights </message> + <message name="IDS_PAGE_INSIGHTS_BACK_BUTTON_DESCRIPTION" desc="The content description of back button in page insights sheet."> + Page insights back button + </message> <!-- WebFeed --> <message name="IDS_WEB_FEED_FOLLOW_LOADING_DESCRIPTION" desc="The content description of the loading spinner after the user presses Follow and is waiting for a response.">
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PAGE_INSIGHTS_BACK_BUTTON_DESCRIPTION.png.sha1 b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PAGE_INSIGHTS_BACK_BUTTON_DESCRIPTION.png.sha1 new file mode 100644 index 0000000..b07e2a0 --- /dev/null +++ b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PAGE_INSIGHTS_BACK_BUTTON_DESCRIPTION.png.sha1
@@ -0,0 +1 @@ +52047b5db25a12527ece7a8b8eca4c6e22ed999a \ No newline at end of file
diff --git a/ui/android/java/res/values/styles.xml b/ui/android/java/res/values/styles.xml index 50e636934..7d9e1962 100644 --- a/ui/android/java/res/values/styles.xml +++ b/ui/android/java/res/values/styles.xml
@@ -99,6 +99,9 @@ <style name="TextAppearance.TextLarge"> <item name="android:textSize">@dimen/text_size_large</item> </style> + <style name="TextAppearance.TextAccentLarge" parent="TextAppearance.TextLarge"> + <item name="android:fontFamily">@font/accent_font</item> + </style> <style name="TextAppearance.TextMediumThick" parent="TextAppearance.RobotoMediumStyle"> <item name="android:textSize">@dimen/text_size_medium</item> </style> @@ -234,7 +237,7 @@ <item name="android:textColor">@color/default_text_color_on_accent1_baseline_list</item> </style> <style name="TextAppearance.MenuChip.Text.Blue" parent="TextAppearance.Button.Text.Blue"> - <item name="android:textSize">@dimen/text_size_small</item> + <item name="android:textSize">@dimen/text_size_small</item> </style> <!-- Blue Non Adaptive button text styles --> @@ -284,6 +287,10 @@ <item name="android:textColor">@color/default_text_color_list_baseline</item> </style> + <style name="TextAppearance.TextAccentLarge.Primary.Baseline" parent="TextAppearance.TextAccentLarge"> + <item name="android:textColor">@color/default_text_color_list_baseline</item> + </style> + <style name="TextAppearance.TextMediumThick.Primary.Baseline" parent="TextAppearance.TextMediumThick"> <item name="android:textColor">@color/default_text_color_list_baseline</item> </style> @@ -318,14 +325,14 @@ <!-- Dividers --> <style name="HorizontalDivider" - tools:ignore="UnusedResources"> + tools:ignore="UnusedResources"> <item name="android:layout_width">match_parent</item> <item name="android:layout_height">@dimen/divider_height</item> <item name="android:background">?android:attr/listDivider</item> <item name="android:importantForAccessibility">no</item> </style> <style name="VerticalDivider" - tools:ignore="UnusedResources"> + tools:ignore="UnusedResources"> <item name="android:layout_width">@dimen/divider_height</item> <item name="android:layout_height">match_parent</item> <item name="android:background">?android:attr/listDivider</item>