summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SettingsLib/CollapsingToolbarBaseActivity/res/layout-v31/collapsing_toolbar_base_layout.xml28
-rw-r--r--packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-night/themes.xml5
-rw-r--r--packages/SettingsLib/CollapsingToolbarBaseActivity/res/values/dimens.xml25
-rw-r--r--packages/SettingsLib/CollapsingToolbarBaseActivity/res/values/styles.xml11
-rw-r--r--packages/SettingsLib/CollapsingToolbarBaseActivity/res/values/themes.xml5
-rw-r--r--packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/AdjustableToolbarLayout.java21
-rw-r--r--packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/CollapsingToolbarBaseActivity.java6
-rw-r--r--packages/SettingsLib/SettingsTheme/res/values/themes.xml4
8 files changed, 76 insertions, 29 deletions
diff --git a/packages/SettingsLib/CollapsingToolbarBaseActivity/res/layout-v31/collapsing_toolbar_base_layout.xml b/packages/SettingsLib/CollapsingToolbarBaseActivity/res/layout-v31/collapsing_toolbar_base_layout.xml
index 62dfc51b5b30..579a6b203760 100644
--- a/packages/SettingsLib/CollapsingToolbarBaseActivity/res/layout-v31/collapsing_toolbar_base_layout.xml
+++ b/packages/SettingsLib/CollapsingToolbarBaseActivity/res/layout-v31/collapsing_toolbar_base_layout.xml
@@ -16,29 +16,39 @@
-->
<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/content_parent"
android:layout_width="match_parent"
- android:layout_height="match_parent">
+ android:layout_height="match_parent"
+ android:fitsSystemWindows="true">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/app_bar"
android:layout_width="match_parent"
- android:layout_height="180dp"
+ android:layout_height="wrap_content"
+ android:fitsSystemWindows="true"
+ android:outlineAmbientShadowColor="@android:color/transparent"
+ android:outlineSpotShadowColor="@android:color/transparent"
+ android:background="@android:color/transparent"
android:theme="@style/Theme.CollapsingToolbar.Settings">
<com.android.settingslib.collapsingtoolbar.AdjustableToolbarLayout
android:id="@+id/collapsing_toolbar"
- android:background="?android:attr/colorPrimary"
android:layout_width="match_parent"
- android:layout_height="match_parent"
+ android:layout_height="@dimen/toolbar_one_line_height"
+ android:clipToPadding="false"
+ app:contentScrim="?androidprv:attr/colorSurfaceHeader"
app:maxLines="3"
- app:contentScrim="?android:attr/colorPrimary"
+ app:layout_scrollFlags="scroll|exitUntilCollapsed|snap"
+ app:scrimAnimationDuration="50"
+ app:scrimVisibleHeightTrigger="@dimen/scrim_visible_height_trigger"
+ app:statusBarScrim="@empty"
+ app:titleCollapseMode="fade"
app:collapsedTitleTextAppearance="@style/CollapsingToolbarTitle.Collapsed"
- app:statusBarScrim="?android:attr/colorPrimary"
- app:layout_scrollFlags="scroll|exitUntilCollapsed"
- app:expandedTitleMarginStart="18dp"
- app:expandedTitleMarginEnd="18dp"
+ app:expandedTitleTextAppearance="@style/CollapsingToolbarTitle.Expanded"
+ app:expandedTitleMarginStart="@dimen/expanded_title_margin_start"
+ app:expandedTitleMarginEnd="@dimen/expanded_title_margin_end"
app:toolbarId="@id/action_bar">
<Toolbar
diff --git a/packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-night/themes.xml b/packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-night/themes.xml
index e20775ef45fd..878275a08752 100644
--- a/packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-night/themes.xml
+++ b/packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-night/themes.xml
@@ -15,8 +15,9 @@
limitations under the License.
-->
<resources>
- <style name="Theme.CollapsingToolbar.Settings"
- parent="@style/Theme.MaterialComponents.DayNight">
+ <style name="Theme.CollapsingToolbar.Settings" parent="@style/Theme.MaterialComponents.DayNight">
+ <item name="elevationOverlayEnabled">true</item>
+ <item name="elevationOverlayColor">?attr/colorPrimary</item>
<item name="colorPrimary">@*android:color/primary_dark_device_default_settings</item>
<item name="colorAccent">@*android:color/accent_device_default_dark</item>
</style>
diff --git a/packages/SettingsLib/CollapsingToolbarBaseActivity/res/values/dimens.xml b/packages/SettingsLib/CollapsingToolbarBaseActivity/res/values/dimens.xml
new file mode 100644
index 000000000000..f0cdaf603ba1
--- /dev/null
+++ b/packages/SettingsLib/CollapsingToolbarBaseActivity/res/values/dimens.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2021 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources>
+ <!-- Collapsing toolbar layout dimensions -->
+ <dimen name="toolbar_one_line_height">226dp</dimen>
+ <dimen name="toolbar_two_lines_height">270dp</dimen>
+ <dimen name="toolbar_three_lines_height">314dp</dimen>
+ <dimen name="scrim_visible_height_trigger">174dp</dimen>
+ <dimen name="expanded_title_margin_start">24dp</dimen>
+ <dimen name="expanded_title_margin_end">24dp</dimen>
+</resources> \ No newline at end of file
diff --git a/packages/SettingsLib/CollapsingToolbarBaseActivity/res/values/styles.xml b/packages/SettingsLib/CollapsingToolbarBaseActivity/res/values/styles.xml
index 1157a346d6ec..2a72a1ad65db 100644
--- a/packages/SettingsLib/CollapsingToolbarBaseActivity/res/values/styles.xml
+++ b/packages/SettingsLib/CollapsingToolbarBaseActivity/res/values/styles.xml
@@ -15,16 +15,11 @@
limitations under the License.
-->
<resources>
- <style name="CollapsingToolbarTitle.Collapsed"
- parent="@android:style/TextAppearance.DeviceDefault.Widget.ActionBar.Title">
+ <style name="CollapsingToolbarTitle.Collapsed" parent="@android:style/TextAppearance.DeviceDefault.Widget.ActionBar.Title">
<item name="android:fontFamily">@*android:string/config_headlineFontFamily</item>
</style>
- <style name="CollapsingToolbarTitle" parent="CollapsingToolbarTitle.Collapsed">
- <item name="android:textSize">36sp</item>
- </style>
-
- <style name="CollapsingToolbarTitle.MoreThanTwoLines">
- <item name="android:textSize">24sp</item>
+ <style name="CollapsingToolbarTitle.Expanded" parent="CollapsingToolbarTitle.Collapsed">
+ <item name="android:textSize">36dp</item>
</style>
</resources> \ No newline at end of file
diff --git a/packages/SettingsLib/CollapsingToolbarBaseActivity/res/values/themes.xml b/packages/SettingsLib/CollapsingToolbarBaseActivity/res/values/themes.xml
index de545b0711e3..2e7a6a9181fe 100644
--- a/packages/SettingsLib/CollapsingToolbarBaseActivity/res/values/themes.xml
+++ b/packages/SettingsLib/CollapsingToolbarBaseActivity/res/values/themes.xml
@@ -15,8 +15,9 @@
limitations under the License.
-->
<resources>
- <style name="Theme.CollapsingToolbar.Settings"
- parent="@style/Theme.MaterialComponents.DayNight">
+ <style name="Theme.CollapsingToolbar.Settings" parent="@style/Theme.MaterialComponents.DayNight">
+ <item name="elevationOverlayEnabled">true</item>
+ <item name="elevationOverlayColor">?attr/colorPrimary</item>
<item name="colorPrimary">@*android:color/primary_device_default_settings_light</item>
<item name="colorAccent">@*android:color/accent_device_default_light</item>
</style>
diff --git a/packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/AdjustableToolbarLayout.java b/packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/AdjustableToolbarLayout.java
index e75a97857456..b3053ac76b55 100644
--- a/packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/AdjustableToolbarLayout.java
+++ b/packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/AdjustableToolbarLayout.java
@@ -19,6 +19,7 @@ package com.android.settingslib.collapsingtoolbar;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
+import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -51,17 +52,24 @@ public class AdjustableToolbarLayout extends CollapsingToolbarLayout {
initCollapsingToolbar();
}
+ @SuppressWarnings("RestrictTo")
private void initCollapsingToolbar() {
this.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
@Override
public void onLayoutChange(View v, int left, int top, int right, int bottom,
int oldLeft, int oldTop, int oldRight, int oldBottom) {
v.removeOnLayoutChangeListener(this);
- final int count = getLineCount();
+ final int count = getLineCountWithReflection();
if (count > TOOLBAR_MAX_LINE_NUMBER) {
- setExpandedTitleTextAppearance(R.style.CollapsingToolbarTitle_MoreThanTwoLines);
- } else {
- setExpandedTitleTextAppearance(R.style.CollapsingToolbarTitle);
+ final ViewGroup.LayoutParams lp = getLayoutParams();
+ lp.height = getResources()
+ .getDimensionPixelSize(R.dimen.toolbar_three_lines_height);
+ setLayoutParams(lp);
+ } else if (count == TOOLBAR_MAX_LINE_NUMBER) {
+ final ViewGroup.LayoutParams lp = getLayoutParams();
+ lp.height = getResources()
+ .getDimensionPixelSize(R.dimen.toolbar_two_lines_height);
+ setLayoutParams(lp);
}
}
});
@@ -73,9 +81,10 @@ public class AdjustableToolbarLayout extends CollapsingToolbarLayout {
* drawn in a canvas and the text process is wrapped in a CollapsingTextHelper, the way we used
* here is to get the line count from the CollapsingTextHelper via Java Reflection.
*/
- private int getLineCount() {
+ private int getLineCountWithReflection() {
try {
- final Field textHelperField = this.getClass().getDeclaredField("collapsingTextHelper");
+ final Field textHelperField =
+ this.getClass().getSuperclass().getDeclaredField("collapsingTextHelper");
textHelperField.setAccessible(true);
final Object textHelperObj = textHelperField.get(this);
diff --git a/packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/CollapsingToolbarBaseActivity.java b/packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/CollapsingToolbarBaseActivity.java
index b29205d3bce2..f5641bd84619 100644
--- a/packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/CollapsingToolbarBaseActivity.java
+++ b/packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/CollapsingToolbarBaseActivity.java
@@ -78,16 +78,18 @@ public class CollapsingToolbarBaseActivity extends SettingsTransitionActivity {
public void setTitle(CharSequence title) {
if (mCollapsingToolbarLayout != null) {
mCollapsingToolbarLayout.setTitle(title);
+ } else {
+ super.setTitle(title);
}
- super.setTitle(title);
}
@Override
public void setTitle(int titleId) {
if (mCollapsingToolbarLayout != null) {
mCollapsingToolbarLayout.setTitle(getText(titleId));
+ } else {
+ super.setTitle(titleId);
}
- super.setTitle(titleId);
}
@Override
diff --git a/packages/SettingsLib/SettingsTheme/res/values/themes.xml b/packages/SettingsLib/SettingsTheme/res/values/themes.xml
index 9c096d28c5c8..771fbc2e0b1f 100644
--- a/packages/SettingsLib/SettingsTheme/res/values/themes.xml
+++ b/packages/SettingsLib/SettingsTheme/res/values/themes.xml
@@ -26,7 +26,11 @@
<!-- Using in SubSettings page including injected settings page -->
<style name="Theme.SubSettingsBase" parent="Theme.SettingsBase">
+ <!-- Suppress the built-in action bar -->
<item name="android:windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
+ <!-- Set up edge-to-edge configuration for top app bar -->
+ <item name="android:navigationBarColor">@android:color/transparent</item>
+ <item name="android:statusBarColor">@android:color/transparent</item>
</style>
</resources> \ No newline at end of file