Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3f8f0a43 authored by Mill Chen's avatar Mill Chen
Browse files

Dissable scrolling behavior for collapsing toolbar

We intended to make subsetting pages disable the scrolling behavior
within the collapsing toolbar area. The collapsing toolbar is still
able to be expanded/collapsed depending on the content of page.

Fix: 191614437
Fix: 189003332
Test: manual test
Cannot scroll/drag with the collapsing toolbar area

Change-Id: I6755268781b8b3d1a76bf71f9e39e6de4eeb76e3
parent daeda052
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ import android.widget.Toolbar;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.fragment.app.FragmentActivity;

import com.android.settings.R;
@@ -45,6 +46,7 @@ import com.android.settingslib.core.lifecycle.HideNonSystemOverlayMixin;
import com.android.settingslib.transition.SettingsTransitionHelper;
import com.android.settingslib.transition.SettingsTransitionHelper.TransitionType;

import com.google.android.material.appbar.AppBarLayout;
import com.google.android.material.appbar.CollapsingToolbarLayout;
import com.google.android.material.resources.TextAppearanceConfig;
import com.google.android.setupcompat.util.WizardManagerHelper;
@@ -64,6 +66,7 @@ public class SettingsBaseActivity extends FragmentActivity implements CategoryHa

    protected CategoryMixin mCategoryMixin;
    protected CollapsingToolbarLayout mCollapsingToolbarLayout;
    protected AppBarLayout mAppBarLayout;
    private Toolbar mToolbar;

    @Override
@@ -108,6 +111,8 @@ public class SettingsBaseActivity extends FragmentActivity implements CategoryHa
        if (isToolbarEnabled() && !isAnySetupWizard) {
            super.setContentView(R.layout.collapsing_toolbar_base_layout);
            mCollapsingToolbarLayout = findViewById(R.id.collapsing_toolbar);
            mAppBarLayout = findViewById(R.id.app_bar);
            disableCollapsingToolbarLayoutScrollingBehavior();
        } else {
            super.setContentView(R.layout.settings_base_layout);
        }
@@ -274,6 +279,20 @@ public class SettingsBaseActivity extends FragmentActivity implements CategoryHa
        return false;
    }

    private void disableCollapsingToolbarLayoutScrollingBehavior() {
        final CoordinatorLayout.LayoutParams params =
                (CoordinatorLayout.LayoutParams) mAppBarLayout.getLayoutParams();
        final AppBarLayout.Behavior behavior = new AppBarLayout.Behavior();
        behavior.setDragCallback(
                new AppBarLayout.Behavior.DragCallback() {
                    @Override
                    public boolean canDrag(@NonNull AppBarLayout appBarLayout) {
                        return false;
                    }
                });
        params.setBehavior(behavior);
    }

    private int getTransitionType(Intent intent) {
        return intent.getIntExtra(EXTRA_PAGE_TRANSITION_TYPE,
                SettingsTransitionHelper.TransitionType.TRANSITION_SHARED_AXIS);