Merge changes from topic "flip_flag_v2" into tm-qpr-dev am: 9eff0afd4f

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20328004

Change-Id: Ib66b594fe031fb05af5ace72f02fb705d7f58c8b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Fabian Kozynski
2022-11-07 14:51:37 +00:00
committed by Automerger Merge Worker
9 changed files with 43 additions and 12 deletions

View File

@@ -407,7 +407,7 @@
<dimen name="match_parent">-1px</dimen> <dimen name="match_parent">-1px</dimen>
<!-- Height of status bar in split shade mode - visible only on large screens --> <!-- Height of status bar in split shade mode - visible only on large screens -->
<dimen name="large_screen_shade_header_height">@*android:dimen/quick_qs_offset_height</dimen> <dimen name="large_screen_shade_header_height">48dp</dimen>
<dimen name="large_screen_shade_header_min_height">@dimen/qs_header_row_min_height</dimen> <dimen name="large_screen_shade_header_min_height">@dimen/qs_header_row_min_height</dimen>
<dimen name="large_screen_shade_header_left_padding">@dimen/qs_horizontal_margin</dimen> <dimen name="large_screen_shade_header_left_padding">@dimen/qs_horizontal_margin</dimen>

View File

@@ -107,7 +107,7 @@
android:id="@+id/privacy_container"> android:id="@+id/privacy_container">
<Layout <Layout
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="0dp" android:layout_height="@dimen/large_screen_shade_header_min_height"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/date" app:layout_constraintTop_toTopOf="@id/date"
app:layout_constraintBottom_toBottomOf="@id/date" app:layout_constraintBottom_toBottomOf="@id/date"

View File

@@ -98,7 +98,7 @@
android:id="@+id/privacy_container"> android:id="@+id/privacy_container">
<Layout <Layout
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="0dp" android:layout_height="@dimen/large_screen_shade_header_min_height"
app:layout_constraintStart_toEndOf="@id/date" app:layout_constraintStart_toEndOf="@id/date"
app:layout_constraintEnd_toEndOf="@id/end_guide" app:layout_constraintEnd_toEndOf="@id/end_guide"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"

View File

@@ -151,7 +151,7 @@ object Flags {
// 500 - quick settings // 500 - quick settings
// TODO(b/254512321): Tracking Bug // TODO(b/254512321): Tracking Bug
@JvmField val COMBINED_QS_HEADERS = UnreleasedFlag(501, teamfood = true) @JvmField val COMBINED_QS_HEADERS = ReleasedFlag(501)
val PEOPLE_TILE = ResourceBooleanFlag(502, R.bool.flag_conversations) val PEOPLE_TILE = ResourceBooleanFlag(502, R.bool.flag_conversations)
@JvmField @JvmField
@@ -159,7 +159,7 @@ object Flags {
ResourceBooleanFlag(503, R.bool.flag_lockscreen_qs_user_detail_shortcut) ResourceBooleanFlag(503, R.bool.flag_lockscreen_qs_user_detail_shortcut)
// TODO(b/254512747): Tracking Bug // TODO(b/254512747): Tracking Bug
val NEW_HEADER = UnreleasedFlag(505, teamfood = true) val NEW_HEADER = ReleasedFlag(505)
// TODO(b/254512383): Tracking Bug // TODO(b/254512383): Tracking Bug
@JvmField @JvmField

View File

@@ -29,6 +29,7 @@ import android.widget.FrameLayout;
import com.android.systemui.Dumpable; import com.android.systemui.Dumpable;
import com.android.systemui.R; import com.android.systemui.R;
import com.android.systemui.qs.customize.QSCustomizer; import com.android.systemui.qs.customize.QSCustomizer;
import com.android.systemui.util.LargeScreenUtils;
import java.io.PrintWriter; import java.io.PrintWriter;
@@ -52,6 +53,7 @@ public class QSContainerImpl extends FrameLayout implements Dumpable {
private boolean mQsDisabled; private boolean mQsDisabled;
private int mContentHorizontalPadding = -1; private int mContentHorizontalPadding = -1;
private boolean mClippingEnabled; private boolean mClippingEnabled;
private boolean mUseCombinedHeaders;
public QSContainerImpl(Context context, AttributeSet attrs) { public QSContainerImpl(Context context, AttributeSet attrs) {
super(context, attrs); super(context, attrs);
@@ -66,6 +68,10 @@ public class QSContainerImpl extends FrameLayout implements Dumpable {
setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_NO); setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_NO);
} }
void setUseCombinedHeaders(boolean useCombinedHeaders) {
mUseCombinedHeaders = useCombinedHeaders;
}
@Override @Override
public boolean hasOverlappingRendering() { public boolean hasOverlappingRendering() {
return false; return false;
@@ -143,9 +149,15 @@ public class QSContainerImpl extends FrameLayout implements Dumpable {
void updateResources(QSPanelController qsPanelController, void updateResources(QSPanelController qsPanelController,
QuickStatusBarHeaderController quickStatusBarHeaderController) { QuickStatusBarHeaderController quickStatusBarHeaderController) {
int topPadding = QSUtils.getQsHeaderSystemIconsAreaHeight(mContext);
if (mUseCombinedHeaders
&& !LargeScreenUtils.shouldUseLargeScreenShadeHeader(mContext.getResources())) {
topPadding = mContext.getResources()
.getDimensionPixelSize(R.dimen.large_screen_shade_header_height);
}
mQSPanelContainer.setPaddingRelative( mQSPanelContainer.setPaddingRelative(
mQSPanelContainer.getPaddingStart(), mQSPanelContainer.getPaddingStart(),
QSUtils.getQsHeaderSystemIconsAreaHeight(mContext), topPadding,
mQSPanelContainer.getPaddingEnd(), mQSPanelContainer.getPaddingEnd(),
mQSPanelContainer.getPaddingBottom()); mQSPanelContainer.getPaddingBottom());

View File

@@ -22,6 +22,8 @@ import android.content.res.Configuration;
import android.view.MotionEvent; import android.view.MotionEvent;
import android.view.View; import android.view.View;
import com.android.systemui.flags.FeatureFlags;
import com.android.systemui.flags.Flags;
import com.android.systemui.plugins.FalsingManager; import com.android.systemui.plugins.FalsingManager;
import com.android.systemui.qs.dagger.QSScope; import com.android.systemui.qs.dagger.QSScope;
import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.statusbar.policy.ConfigurationController;
@@ -37,7 +39,6 @@ public class QSContainerImplController extends ViewController<QSContainerImpl> {
private final ConfigurationController mConfigurationController; private final ConfigurationController mConfigurationController;
private final FalsingManager mFalsingManager; private final FalsingManager mFalsingManager;
private final NonInterceptingScrollView mQSPanelContainer; private final NonInterceptingScrollView mQSPanelContainer;
private final ConfigurationController.ConfigurationListener mConfigurationListener = private final ConfigurationController.ConfigurationListener mConfigurationListener =
new ConfigurationController.ConfigurationListener() { new ConfigurationController.ConfigurationListener() {
@Override @Override
@@ -65,13 +66,15 @@ public class QSContainerImplController extends ViewController<QSContainerImpl> {
QSPanelController qsPanelController, QSPanelController qsPanelController,
QuickStatusBarHeaderController quickStatusBarHeaderController, QuickStatusBarHeaderController quickStatusBarHeaderController,
ConfigurationController configurationController, ConfigurationController configurationController,
FalsingManager falsingManager) { FalsingManager falsingManager,
FeatureFlags featureFlags) {
super(view); super(view);
mQsPanelController = qsPanelController; mQsPanelController = qsPanelController;
mQuickStatusBarHeaderController = quickStatusBarHeaderController; mQuickStatusBarHeaderController = quickStatusBarHeaderController;
mConfigurationController = configurationController; mConfigurationController = configurationController;
mFalsingManager = falsingManager; mFalsingManager = falsingManager;
mQSPanelContainer = mView.getQSPanelContainer(); mQSPanelContainer = mView.getQSPanelContainer();
view.setUseCombinedHeaders(featureFlags.isEnabled(Flags.COMBINED_QS_HEADERS));
} }
@Override @Override

View File

@@ -288,8 +288,15 @@ public class QuickStatusBarHeader extends FrameLayout {
} }
MarginLayoutParams qqsLP = (MarginLayoutParams) mHeaderQsPanel.getLayoutParams(); MarginLayoutParams qqsLP = (MarginLayoutParams) mHeaderQsPanel.getLayoutParams();
qqsLP.topMargin = largeScreenHeaderActive || !mUseCombinedQSHeader ? mContext.getResources() if (largeScreenHeaderActive) {
.getDimensionPixelSize(R.dimen.qqs_layout_margin_top) : qsOffsetHeight; qqsLP.topMargin = mContext.getResources()
.getDimensionPixelSize(R.dimen.qqs_layout_margin_top);
} else if (!mUseCombinedQSHeader) {
qqsLP.topMargin = qsOffsetHeight;
} else {
qqsLP.topMargin = mContext.getResources()
.getDimensionPixelSize(R.dimen.large_screen_shade_header_min_height);
}
mHeaderQsPanel.setLayoutParams(qqsLP); mHeaderQsPanel.setLayoutParams(qqsLP);
updateBatteryMode(); updateBatteryMode();

View File

@@ -246,6 +246,8 @@ class LargeScreenShadeHeaderController @Inject constructor(
qsCarrierGroup.updateTextAppearance(R.style.TextAppearance_QS_Status_Carriers) qsCarrierGroup.updateTextAppearance(R.style.TextAppearance_QS_Status_Carriers)
if (header is MotionLayout) { if (header is MotionLayout) {
loadConstraints() loadConstraints()
header.minHeight = resources
.getDimensionPixelSize(R.dimen.large_screen_shade_header_min_height)
lastInsets?.let { updateConstraintsForInsets(header, it) } lastInsets?.let { updateConstraintsForInsets(header, it) }
} }
updateResources() updateResources()

View File

@@ -1152,8 +1152,15 @@ public final class NotificationPanelViewController {
mLargeScreenShadeHeaderHeight = mLargeScreenShadeHeaderHeight =
mResources.getDimensionPixelSize(R.dimen.large_screen_shade_header_height); mResources.getDimensionPixelSize(R.dimen.large_screen_shade_header_height);
mQuickQsHeaderHeight = mUseLargeScreenShadeHeader ? mLargeScreenShadeHeaderHeight : // TODO: When the flag is eventually removed, it means that we have a single view that is
SystemBarUtils.getQuickQsOffsetHeight(mView.getContext()); // the same height in QQS and in Large Screen (large_screen_shade_header_height). Eventually
// the concept of largeScreenHeader or quickQsHeader will disappear outside of the class
// that controls the view as the offset needs to be the same regardless.
if (mUseLargeScreenShadeHeader || mFeatureFlags.isEnabled(Flags.COMBINED_QS_HEADERS)) {
mQuickQsHeaderHeight = mLargeScreenShadeHeaderHeight;
} else {
mQuickQsHeaderHeight = SystemBarUtils.getQuickQsOffsetHeight(mView.getContext());
}
int topMargin = mUseLargeScreenShadeHeader ? mLargeScreenShadeHeaderHeight : int topMargin = mUseLargeScreenShadeHeader ? mLargeScreenShadeHeaderHeight :
mResources.getDimensionPixelSize(R.dimen.notification_panel_margin_top); mResources.getDimensionPixelSize(R.dimen.notification_panel_margin_top);
mLargeScreenShadeHeaderController.setLargeScreenActive(mUseLargeScreenShadeHeader); mLargeScreenShadeHeaderController.setLargeScreenActive(mUseLargeScreenShadeHeader);