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

Commit 657d5e03 authored by Matt Pietal's avatar Matt Pietal
Browse files

Align NSSL bottom to barrier

This will allow for proper notification sizing when the lock icon
and/or the ambient indication area are present.

Fixes: 308772985
Manual: Observe layouts in both default and splitshade blueprints, in
both orientations
Flag: ACONFIG com.android.systemui.keyguard_shade_migration_nssl
DEVELOPMENT

Change-Id: I9c9bd894933a2f0157f5a4eeae19ec596ecf307d
parent a582c451
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -106,5 +106,5 @@
    </FrameLayout>

    <include layout="@layout/ambient_indication"
             android:id="@+id/ambient_indication_container" />
             android:id="@id/ambient_indication_container" />
</com.android.systemui.statusbar.phone.KeyguardBottomAreaView>
+2 −0
Original line number Diff line number Diff line
@@ -223,6 +223,8 @@
    <item type="id" name="lock_icon_bg" />
    <item type="id" name="burn_in_layer" />
    <item type="id" name="communal_tutorial_indicator" />
    <item type="id" name="nssl_placeholder_barrier_bottom" />
    <item type="id" name="ambient_indication_container" />

    <!-- Privacy dialog -->
    <item type="id" name="privacy_dialog_close_app_button" />
+1 −8
Original line number Diff line number Diff line
@@ -26,7 +26,6 @@ import androidx.constraintlayout.widget.ConstraintSet.START
import androidx.constraintlayout.widget.ConstraintSet.TOP
import com.android.systemui.Flags.migrateClocksToBlueprint
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.deviceentry.shared.DeviceEntryUdfpsRefactor
import com.android.systemui.keyguard.shared.KeyguardShadeMigrationNssl
import com.android.systemui.keyguard.ui.viewmodel.KeyguardSmartspaceViewModel
import com.android.systemui.res.R
@@ -92,13 +91,7 @@ constructor(
            connect(R.id.nssl_placeholder, START, PARENT_ID, START)
            connect(R.id.nssl_placeholder, END, PARENT_ID, END)

            val lockId =
                if (DeviceEntryUdfpsRefactor.isEnabled) {
                    R.id.device_entry_icon_view
                } else {
                    R.id.lock_icon_view
                }
            connect(R.id.nssl_placeholder, BOTTOM, lockId, TOP)
            addNotificationPlaceholderBarrier(this)
        }
    }
}
+28 −0
Original line number Diff line number Diff line
@@ -20,7 +20,12 @@ package com.android.systemui.keyguard.ui.view.layout.sections
import android.content.Context
import android.view.View
import android.view.ViewGroup
import androidx.constraintlayout.widget.Barrier
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.constraintlayout.widget.ConstraintSet
import androidx.constraintlayout.widget.ConstraintSet.BOTTOM
import androidx.constraintlayout.widget.ConstraintSet.TOP
import com.android.systemui.deviceentry.shared.DeviceEntryUdfpsRefactor
import com.android.systemui.keyguard.shared.KeyguardShadeMigrationNssl
import com.android.systemui.keyguard.shared.model.KeyguardSection
import com.android.systemui.res.R
@@ -54,6 +59,29 @@ constructor(
    private val placeHolderId = R.id.nssl_placeholder
    private var disposableHandle: DisposableHandle? = null

    /**
     * Align the notification placeholder bottom to the top of either the lock icon or the ambient
     * indication area, whichever is higher.
     */
    protected fun addNotificationPlaceholderBarrier(constraintSet: ConstraintSet) {
        val lockId =
            if (DeviceEntryUdfpsRefactor.isEnabled) {
                R.id.device_entry_icon_view
            } else {
                R.id.lock_icon_view
            }

        constraintSet.apply {
            createBarrier(
                R.id.nssl_placeholder_barrier_bottom,
                Barrier.TOP,
                0,
                *intArrayOf(lockId, R.id.ambient_indication_container)
            )
            connect(R.id.nssl_placeholder, BOTTOM, R.id.nssl_placeholder_barrier_bottom, TOP)
        }
    }

    override fun addViews(constraintLayout: ConstraintLayout) {
        if (!KeyguardShadeMigrationNssl.isEnabled) {
            return
+1 −9
Original line number Diff line number Diff line
@@ -19,14 +19,12 @@ package com.android.systemui.keyguard.ui.view.layout.sections

import android.content.Context
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.Flags.migrateClocksToBlueprint
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.deviceentry.shared.DeviceEntryUdfpsRefactor
import com.android.systemui.keyguard.shared.KeyguardShadeMigrationNssl
import com.android.systemui.keyguard.ui.viewmodel.KeyguardSmartspaceViewModel
import com.android.systemui.res.R
@@ -97,13 +95,7 @@ constructor(
            connect(R.id.nssl_placeholder, START, PARENT_ID, START)
            connect(R.id.nssl_placeholder, END, PARENT_ID, END)

            val lockId =
                if (DeviceEntryUdfpsRefactor.isEnabled) {
                    R.id.device_entry_icon_view
                } else {
                    R.id.lock_icon_view
                }
            connect(R.id.nssl_placeholder, BOTTOM, lockId, TOP)
            addNotificationPlaceholderBarrier(this)
        }
    }
}
Loading