From c0b90aef2d1367d2f1ad38092415cf87d6494876 Mon Sep 17 00:00:00 2001 From: Mill Chen Date: Wed, 3 Mar 2021 01:02:57 +0800 Subject: [PATCH] Support regular toolbar To make Settings UI consistent, the different types of toolbar will be applied according to what the android platform is. The collapsing toolbar is only supported on S or higher and the general toolbar will be shown on the other platforms. Bug: 179380824 Test: visual verified Change-Id: Ia59f9ec22010708c46ece55d69b47870ed16f021 --- .../res/layout/toolbar_base_layout.xml | 36 +++++++++++++++++++ .../CollapsingToolbarBaseActivity.java | 20 +++++++++-- 2 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 packages/SettingsLib/CollapsingToolbarBaseActivity/res/layout/toolbar_base_layout.xml diff --git a/packages/SettingsLib/CollapsingToolbarBaseActivity/res/layout/toolbar_base_layout.xml b/packages/SettingsLib/CollapsingToolbarBaseActivity/res/layout/toolbar_base_layout.xml new file mode 100644 index 0000000000000..c799b99628286 --- /dev/null +++ b/packages/SettingsLib/CollapsingToolbarBaseActivity/res/layout/toolbar_base_layout.xml @@ -0,0 +1,36 @@ + + + + + + + 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 637805fc81c3a..ad94cd0318a77 100644 --- a/packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/CollapsingToolbarBaseActivity.java +++ b/packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/CollapsingToolbarBaseActivity.java @@ -24,6 +24,7 @@ import android.view.ViewGroup; import android.widget.Toolbar; import androidx.annotation.Nullable; +import androidx.core.os.BuildCompat; import androidx.fragment.app.FragmentActivity; import com.google.android.material.appbar.CollapsingToolbarLayout; @@ -40,8 +41,15 @@ public class CollapsingToolbarBaseActivity extends FragmentActivity { protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - super.setContentView(R.layout.collapsing_toolbar_base_layout); - mCollapsingToolbarLayout = findViewById(R.id.collapsing_toolbar); + // TODO(b/181723278): Update the version check after SDK for S is finalized + // The collapsing toolbar is only supported if the android platform version is S or higher. + // Otherwise the regular action bar will be shown. + if (BuildCompat.isAtLeastS()) { + super.setContentView(R.layout.collapsing_toolbar_base_layout); + mCollapsingToolbarLayout = findViewById(R.id.collapsing_toolbar); + } else { + super.setContentView(R.layout.toolbar_base_layout); + } final Toolbar toolbar = findViewById(R.id.action_bar); setActionBar(toolbar); @@ -90,6 +98,14 @@ public class CollapsingToolbarBaseActivity extends FragmentActivity { super.setTitle(titleId); } + @Override + public boolean onNavigateUp() { + if (!super.onNavigateUp()) { + finish(); + } + return true; + } + /** * Returns an instance of collapsing toolbar. */