Clean up QS/NSSL bottom margin calculation

The root cause of b/222594381 was a deviation between the two mostly
repetitive branches of an if-else.

This change factors out the not-repetitive part of those two branches
into a top-level case, and then merges the rest of the cases between the
two branches.

It also removes the default value for stackScrollMargin, since that
saves a couple lines of code but makes the resulting outputs harder to
discern by eye.

Also, spell out some wildcard imports to make ktlint happy.

Bug: 222594381
Test: manual, on Pixel 5a
Change-Id: I6a034a6fb475be363667cb64ab2b3516a8df6005
This commit is contained in:
Julia Tuttle
2022-06-09 17:04:24 -04:00
parent 716c5618df
commit 140fab5078

View File

@@ -6,7 +6,11 @@ import android.view.ViewGroup.LayoutParams.WRAP_CONTENT
import android.view.WindowInsets
import androidx.annotation.VisibleForTesting
import androidx.constraintlayout.widget.ConstraintSet
import androidx.constraintlayout.widget.ConstraintSet.*
import androidx.constraintlayout.widget.ConstraintSet.BOTTOM
import androidx.constraintlayout.widget.ConstraintSet.END
import androidx.constraintlayout.widget.ConstraintSet.PARENT_ID
import androidx.constraintlayout.widget.ConstraintSet.START
import androidx.constraintlayout.widget.ConstraintSet.TOP
import com.android.systemui.R
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.flags.FeatureFlags
@@ -171,33 +175,23 @@ class NotificationsQSContainerController @Inject constructor(
private fun calculateBottomSpacing(): Paddings {
val containerPadding: Int
var stackScrollMargin = notificationsBottomMargin
if (splitShadeEnabled) {
if (isGestureNavigation) {
// only default cutout padding, taskbar always hides
containerPadding = bottomCutoutInsets
} else if (taskbarVisible) {
// navigation buttons + visible taskbar means we're NOT on homescreen
containerPadding = bottomStableInsets
} else {
// navigation buttons + hidden taskbar means we're on homescreen
containerPadding = 0
// we need extra margin for notifications as navigation buttons are below them
stackScrollMargin = bottomStableInsets + notificationsBottomMargin
}
val stackScrollMargin: Int
if (!splitShadeEnabled && (isQSCustomizing || isQSDetailShowing)) {
// Clear out bottom paddings/margins so the qs customization can be full height.
containerPadding = 0
stackScrollMargin = 0
} else if (isGestureNavigation) {
// only default cutout padding, taskbar always hides
containerPadding = bottomCutoutInsets
stackScrollMargin = notificationsBottomMargin
} else if (taskbarVisible) {
// navigation buttons + visible taskbar means we're NOT on homescreen
containerPadding = bottomStableInsets
stackScrollMargin = notificationsBottomMargin
} else {
if (isQSCustomizing || isQSDetailShowing) {
// Clear out bottom paddings/margins so the qs customization can be full height.
containerPadding = 0
stackScrollMargin = 0
} else if (isGestureNavigation) {
containerPadding = bottomCutoutInsets
} else if (taskbarVisible) {
containerPadding = bottomStableInsets
} else {
containerPadding = 0
stackScrollMargin = bottomStableInsets + notificationsBottomMargin
}
// navigation buttons + hidden taskbar means we're on homescreen
containerPadding = 0
stackScrollMargin = bottomStableInsets + notificationsBottomMargin
}
val qsContainerPadding = if (!(isQSCustomizing || isQSDetailShowing)) {
// We also want this padding in the bottom in these cases