[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>