Loading packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/CollapsingToolbarAppCompatActivity.java +3 −0 Original line number Diff line number Diff line Loading @@ -76,6 +76,9 @@ public class CollapsingToolbarAppCompatActivity extends AppCompatActivity implem protected void onCreate(@Nullable Bundle savedInstanceState) { EdgeToEdgeUtils.enable(this); super.onCreate(savedInstanceState); getToolbarDelegate().registerToolbarCollapseBehavior(this); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { DynamicColors.applyToActivityIfAvailable(this); } Loading packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/CollapsingToolbarBaseActivity.java +2 −0 Original line number Diff line number Diff line Loading @@ -70,6 +70,8 @@ public class CollapsingToolbarBaseActivity extends FragmentActivity implements EdgeToEdgeUtils.enable(this); super.onCreate(savedInstanceState); getToolbarDelegate().registerToolbarCollapseBehavior(this); if (SettingsThemeHelper.isExpressiveTheme(this)) { setTheme(com.android.settingslib.widget.theme.R.style.Theme_SubSettingsBase_Expressive); } Loading packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/CollapsingToolbarDelegate.java +35 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import android.content.res.TypedArray; import android.graphics.drawable.Drawable; import android.graphics.text.LineBreakConfig; import android.os.Build; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.View; Loading @@ -38,6 +39,9 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import androidx.coordinatorlayout.widget.CoordinatorLayout; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentManager; import com.android.settingslib.collapsingtoolbar.widget.ScrollableToolbarItemLayout; import com.android.settingslib.widget.SettingsThemeHelper; Loading Loading @@ -513,6 +517,37 @@ public class CollapsingToolbarDelegate { mActionButton.setContentDescription(contentDescription); } /** * Set the state of CollapsingToolbar to collapsed when multiple fragments share a single * FragmentManager within an activity. */ public void registerToolbarCollapseBehavior(@NonNull Activity activity) { if (!(activity instanceof FragmentActivity)) { return; } FragmentManager fragmentManager = ((FragmentActivity) activity).getSupportFragmentManager(); fragmentManager.registerFragmentLifecycleCallbacks( new FragmentManager.FragmentLifecycleCallbacks() { @Override public void onFragmentViewCreated(@NonNull FragmentManager fm, @NonNull Fragment f, @NonNull View v, @Nullable Bundle savedInstanceState) { super.onFragmentViewCreated(fm, f, v, savedInstanceState); if (!SettingsThemeHelper.isExpressiveTheme(activity)) { return; } // Check if multiple fragments use the same activity if (fm.getBackStackEntryCount() > 0) { AppBarLayout appBarLayout = getAppBarLayout(); if (appBarLayout != null) { appBarLayout.post(() -> appBarLayout.setExpanded(false, true)); } else { Log.e(TAG, "AppBarLayout is null, can't collapse toolbar."); } } } }, false); } private void autoSetCollapsingToolbarLayoutScrolling(AppBarLayout appBarLayout) { if (appBarLayout == null) { return; Loading Loading
packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/CollapsingToolbarAppCompatActivity.java +3 −0 Original line number Diff line number Diff line Loading @@ -76,6 +76,9 @@ public class CollapsingToolbarAppCompatActivity extends AppCompatActivity implem protected void onCreate(@Nullable Bundle savedInstanceState) { EdgeToEdgeUtils.enable(this); super.onCreate(savedInstanceState); getToolbarDelegate().registerToolbarCollapseBehavior(this); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { DynamicColors.applyToActivityIfAvailable(this); } Loading
packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/CollapsingToolbarBaseActivity.java +2 −0 Original line number Diff line number Diff line Loading @@ -70,6 +70,8 @@ public class CollapsingToolbarBaseActivity extends FragmentActivity implements EdgeToEdgeUtils.enable(this); super.onCreate(savedInstanceState); getToolbarDelegate().registerToolbarCollapseBehavior(this); if (SettingsThemeHelper.isExpressiveTheme(this)) { setTheme(com.android.settingslib.widget.theme.R.style.Theme_SubSettingsBase_Expressive); } Loading
packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/CollapsingToolbarDelegate.java +35 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import android.content.res.TypedArray; import android.graphics.drawable.Drawable; import android.graphics.text.LineBreakConfig; import android.os.Build; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.View; Loading @@ -38,6 +39,9 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import androidx.coordinatorlayout.widget.CoordinatorLayout; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentManager; import com.android.settingslib.collapsingtoolbar.widget.ScrollableToolbarItemLayout; import com.android.settingslib.widget.SettingsThemeHelper; Loading Loading @@ -513,6 +517,37 @@ public class CollapsingToolbarDelegate { mActionButton.setContentDescription(contentDescription); } /** * Set the state of CollapsingToolbar to collapsed when multiple fragments share a single * FragmentManager within an activity. */ public void registerToolbarCollapseBehavior(@NonNull Activity activity) { if (!(activity instanceof FragmentActivity)) { return; } FragmentManager fragmentManager = ((FragmentActivity) activity).getSupportFragmentManager(); fragmentManager.registerFragmentLifecycleCallbacks( new FragmentManager.FragmentLifecycleCallbacks() { @Override public void onFragmentViewCreated(@NonNull FragmentManager fm, @NonNull Fragment f, @NonNull View v, @Nullable Bundle savedInstanceState) { super.onFragmentViewCreated(fm, f, v, savedInstanceState); if (!SettingsThemeHelper.isExpressiveTheme(activity)) { return; } // Check if multiple fragments use the same activity if (fm.getBackStackEntryCount() > 0) { AppBarLayout appBarLayout = getAppBarLayout(); if (appBarLayout != null) { appBarLayout.post(() -> appBarLayout.setExpanded(false, true)); } else { Log.e(TAG, "AppBarLayout is null, can't collapse toolbar."); } } } }, false); } private void autoSetCollapsingToolbarLayoutScrolling(AppBarLayout appBarLayout) { if (appBarLayout == null) { return; Loading