summaryrefslogtreecommitdiff
path: root/packages/SettingsLib/CollapsingToolbarBaseActivity
diff options
context:
space:
mode:
Diffstat (limited to 'packages/SettingsLib/CollapsingToolbarBaseActivity')
-rw-r--r--packages/SettingsLib/CollapsingToolbarBaseActivity/Android.bp1
-rw-r--r--packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/CollapsingToolbarBaseActivity.java26
2 files changed, 25 insertions, 2 deletions
diff --git a/packages/SettingsLib/CollapsingToolbarBaseActivity/Android.bp b/packages/SettingsLib/CollapsingToolbarBaseActivity/Android.bp
index e50019680deb..2f911c4e6546 100644
--- a/packages/SettingsLib/CollapsingToolbarBaseActivity/Android.bp
+++ b/packages/SettingsLib/CollapsingToolbarBaseActivity/Android.bp
@@ -18,6 +18,7 @@ android_library {
"androidx.core_core",
"com.google.android.material_material",
"SettingsLibSettingsTransition",
+ "SettingsLibUtils",
],
sdk_version: "system_current",
min_sdk_version: "29",
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 a1cd37189b51..84a6b36e3d7c 100644
--- a/packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/CollapsingToolbarBaseActivity.java
+++ b/packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/CollapsingToolbarBaseActivity.java
@@ -28,6 +28,8 @@ import androidx.annotation.Nullable;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.fragment.app.FragmentActivity;
+import com.android.settingslib.utils.BuildCompatUtils;
+
import com.google.android.material.appbar.AppBarLayout;
import com.google.android.material.appbar.CollapsingToolbarLayout;
import com.google.android.material.resources.TextAppearanceConfig;
@@ -44,10 +46,15 @@ public class CollapsingToolbarBaseActivity extends FragmentActivity {
private CollapsingToolbarLayout mCollapsingToolbarLayout;
@Nullable
private AppBarLayout mAppBarLayout;
+ private int mCustomizeLayoutResId = 0;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ if (mCustomizeLayoutResId > 0 && !BuildCompatUtils.isAtLeastS()) {
+ super.setContentView(mCustomizeLayoutResId);
+ return;
+ }
// Force loading font synchronously for collapsing toolbar layout
TextAppearanceConfig.setShouldLoadFontSynchronously(true);
super.setContentView(R.layout.collapsing_toolbar_base_layout);
@@ -81,12 +88,27 @@ public class CollapsingToolbarBaseActivity extends FragmentActivity {
@Override
public void setContentView(View view) {
- ((ViewGroup) findViewById(R.id.content_frame)).addView(view);
+ final ViewGroup parent = findViewById(R.id.content_frame);
+ if (parent != null) {
+ parent.addView(view);
+ }
}
@Override
public void setContentView(View view, ViewGroup.LayoutParams params) {
- ((ViewGroup) findViewById(R.id.content_frame)).addView(view, params);
+ final ViewGroup parent = findViewById(R.id.content_frame);
+ if (parent != null) {
+ parent.addView(view, params);
+ }
+ }
+
+ /**
+ * This method allows an activity to replace the default layout with a customize layout. Notice
+ * that it will no longer apply the features being provided by this class when this method
+ * gets called.
+ */
+ protected void setCustomizeContentView(int layoutResId) {
+ mCustomizeLayoutResId = layoutResId;
}
@Override