From 71ae129696bcf1d8e548da3ddddc6f4e040e2456 Mon Sep 17 00:00:00 2001 From: Sunny Shao Date: Thu, 11 Aug 2022 15:31:20 +0800 Subject: [PATCH] Fix the header can't be scrolling problem in landscape mode - Settings header is restricted scrolling by this ag/15029686 - To void some pages can't show the contain part while heading unscrolling. We allow the header can be scrolling in the landscape mode. Fixes: 207353353 Test: make RunSettingsRoboTests -j Change-Id: I7de4e7cb8d86516ec039f5fe7d033097dca1c9d8 --- .../collapsingtoolbar/CollapsingToolbarDelegate.java | 9 ++++++--- .../widget/CollapsingCoordinatorLayout.java | 9 ++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/CollapsingToolbarDelegate.java b/packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/CollapsingToolbarDelegate.java index f4af9c7e0e789..01698b7937aaa 100644 --- a/packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/CollapsingToolbarDelegate.java +++ b/packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/CollapsingToolbarDelegate.java @@ -19,6 +19,7 @@ package com.android.settingslib.collapsingtoolbar; import static android.text.Layout.HYPHENATION_FREQUENCY_NORMAL_FAST; import android.app.ActionBar; +import android.content.res.Configuration; import android.graphics.text.LineBreakConfig; import android.os.Build; import android.view.LayoutInflater; @@ -97,7 +98,7 @@ public class CollapsingToolbarDelegate { .build())); } } - disableCollapsingToolbarLayoutScrollingBehavior(); + autoSetCollapsingToolbarLayoutScrolling(); mToolbar = view.findViewById(R.id.action_bar); mContentFrameLayout = view.findViewById(R.id.content_frame); final ActionBar actionBar = mHostCallback.setActionBar(mToolbar); @@ -148,7 +149,7 @@ public class CollapsingToolbarDelegate { return mAppBarLayout; } - private void disableCollapsingToolbarLayoutScrollingBehavior() { + private void autoSetCollapsingToolbarLayoutScrolling() { if (mAppBarLayout == null) { return; } @@ -159,7 +160,9 @@ public class CollapsingToolbarDelegate { new AppBarLayout.Behavior.DragCallback() { @Override public boolean canDrag(@NonNull AppBarLayout appBarLayout) { - return false; + // Header can be scrolling while device in landscape mode. + return appBarLayout.getResources().getConfiguration().orientation + == Configuration.ORIENTATION_LANDSCAPE; } }); params.setBehavior(behavior); diff --git a/packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/widget/CollapsingCoordinatorLayout.java b/packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/widget/CollapsingCoordinatorLayout.java index 522de93be1fff..d67ac3b86050e 100644 --- a/packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/widget/CollapsingCoordinatorLayout.java +++ b/packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/widget/CollapsingCoordinatorLayout.java @@ -21,6 +21,7 @@ import static android.text.Layout.HYPHENATION_FREQUENCY_NORMAL_FAST; import android.app.ActionBar; import android.app.Activity; import android.content.Context; +import android.content.res.Configuration; import android.content.res.TypedArray; import android.graphics.text.LineBreakConfig; import android.os.Build; @@ -122,7 +123,7 @@ public class CollapsingCoordinatorLayout extends CoordinatorLayout { mCollapsingToolbarLayout.setTitle(mToolbarTitle); } } - disableCollapsingToolbarLayoutScrollingBehavior(); + autoSetCollapsingToolbarLayoutScrolling(); } /** @@ -243,7 +244,7 @@ public class CollapsingCoordinatorLayout extends CoordinatorLayout { mCollapsingToolbarLayout.findViewById(R.id.support_action_bar); } - private void disableCollapsingToolbarLayoutScrollingBehavior() { + private void autoSetCollapsingToolbarLayoutScrolling() { if (mAppBarLayout == null) { return; } @@ -254,7 +255,9 @@ public class CollapsingCoordinatorLayout extends CoordinatorLayout { new AppBarLayout.Behavior.DragCallback() { @Override public boolean canDrag(@NonNull AppBarLayout appBarLayout) { - return false; + // Header can be scrolling while device in landscape mode. + return appBarLayout.getResources().getConfiguration().orientation + == Configuration.ORIENTATION_LANDSCAPE; } }); params.setBehavior(behavior);