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

Commit da20fdfb authored by Matt Pietal's avatar Matt Pietal
Browse files

Separate AOD shelf from status view

Create a new section for the aod shelf, and align it in different
locations based on split shade. Also use a placeholder view in order
to get proper sizes for NSSL.

Bug: 288242803
Fixes: 288237177
Test: atest SystemUITests
Test: all migration flags off/on

Change-Id: Ic0438db1f60e34908c7db56f4cc4b8f6f444be4a
parent 91f73c21
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -207,13 +207,14 @@
    <!-- keyboard backlight indicator-->
    <item type="id" name="backlight_icon" />

    <!-- IDs for use in the keyguard/lockscreen scene -->
    <item type="id" name="keyguard_root_view" />
    <item type="id" name="keyguard_indication_area" />
    <item type="id" name="keyguard_indication_text" />
    <item type="id" name="keyguard_indication_text_bottom" />
    <item type="id" name="nssl_guideline" />
    <item type="id" name="nssl_top_barrier" />
    <item type="id" name="nssl_bottom_barrier" />
    <item type="id" name="nssl_placeholder" />
    <item type="id" name="aod_notification_icon_container" />
    <item type="id" name="split_shade_guideline" />
    <item type="id" name="lock_icon" />
    <item type="id" name="lock_icon_bg" />
+15 −7
Original line number Diff line number Diff line
@@ -18,7 +18,6 @@ package com.android.keyguard;

import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;

import static com.android.keyguard.KeyguardClockSwitch.LARGE;
import static com.android.keyguard.KeyguardClockSwitch.SMALL;
import static com.android.systemui.flags.Flags.LOCKSCREEN_WALLPAPER_DREAM_ENABLED;
@@ -42,6 +41,7 @@ import com.android.systemui.R;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.flags.FeatureFlags;
import com.android.systemui.flags.Flags;
import com.android.systemui.keyguard.KeyguardUnlockAnimationController;
import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor;
import com.android.systemui.log.LogBuffer;
@@ -240,8 +240,10 @@ public class KeyguardClockSwitchController extends ViewController<KeyguardClockS

        View nic = mView.findViewById(
                R.id.left_aligned_notification_icon_container);
        if (nic != null) {
            nic.setVisibility(View.GONE);
        }
    }

    @Override
    protected void onViewAttached() {
@@ -307,8 +309,12 @@ public class KeyguardClockSwitchController extends ViewController<KeyguardClockS
    }

    int getNotificationIconAreaHeight() {
        if (mFeatureFlags.isEnabled(Flags.MIGRATE_KEYGUARD_STATUS_VIEW)) {
            return 0;
        } else {
            return mNotificationIconAreaController.getHeight();
        }
    }

    @Override
    protected void onViewDetached() {
@@ -518,11 +524,13 @@ public class KeyguardClockSwitchController extends ViewController<KeyguardClockS
    }

    private void updateAodIcons() {
        if (!mFeatureFlags.isEnabled(Flags.MIGRATE_KEYGUARD_STATUS_VIEW)) {
            NotificationIconContainer nic = (NotificationIconContainer)
                    mView.findViewById(
                            com.android.systemui.R.id.left_aligned_notification_icon_container);
            mNotificationIconAreaController.setupAodIcons(nic);
        }
    }

    private void setClock(ClockController clock) {
        if (clock != null && mLogBuffer != null) {
+4 −5
Original line number Diff line number Diff line
@@ -177,14 +177,13 @@ object KeyguardRootViewBinder {
            oldRight: Int,
            oldBottom: Int
        ) {
            val ksv = v.findViewById(R.id.keyguard_status_view) as View?
            val lockIcon = v.findViewById(R.id.lock_icon_view) as View?
            val nsslPlaceholder = v.findViewById(R.id.nssl_placeholder) as View?

            if (ksv != null && lockIcon != null) {
            if (nsslPlaceholder != null) {
                // After layout, ensure the notifications are positioned correctly
                viewModel.onSharedNotificationContainerPositionChanged(
                    ksv!!.top.toFloat() + ksv!!.height,
                    lockIcon!!.y
                    nsslPlaceholder.top.toFloat(),
                    nsslPlaceholder.bottom.toFloat(),
                )
            }
        }
+3 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.flags.FeatureFlags
import com.android.systemui.flags.Flags
import com.android.systemui.keyguard.shared.model.KeyguardBlueprint
import com.android.systemui.keyguard.ui.view.layout.sections.AodNotificationIconsSection
import com.android.systemui.keyguard.ui.view.layout.sections.DefaultAmbientIndicationAreaSection
import com.android.systemui.keyguard.ui.view.layout.sections.DefaultIndicationAreaSection
import com.android.systemui.keyguard.ui.view.layout.sections.DefaultLockIconSection
@@ -50,6 +51,7 @@ constructor(
    defaultStatusViewSection: DefaultStatusViewSection,
    defaultNotificationStackScrollLayoutSection: DefaultNotificationStackScrollLayoutSection,
    splitShadeGuidelines: SplitShadeGuidelines,
    aodNotificationIconsSection: AodNotificationIconsSection,
    private val featureFlags: FeatureFlags,
) : KeyguardBlueprint {
    override val id: String = DEFAULT
@@ -64,6 +66,7 @@ constructor(
            defaultStatusViewSection,
            defaultNotificationStackScrollLayoutSection,
            splitShadeGuidelines,
            aodNotificationIconsSection,
        )

    override fun addViews(
+3 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ package com.android.systemui.keyguard.ui.view.layout.blueprints
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.keyguard.shared.model.KeyguardBlueprint
import com.android.systemui.keyguard.ui.view.layout.sections.AlignShortcutsToUdfpsSection
import com.android.systemui.keyguard.ui.view.layout.sections.AodNotificationIconsSection
import com.android.systemui.keyguard.ui.view.layout.sections.DefaultAmbientIndicationAreaSection
import com.android.systemui.keyguard.ui.view.layout.sections.DefaultIndicationAreaSection
import com.android.systemui.keyguard.ui.view.layout.sections.DefaultLockIconSection
@@ -42,6 +43,7 @@ constructor(
    defaultStatusViewSection: DefaultStatusViewSection,
    splitShadeGuidelines: SplitShadeGuidelines,
    defaultNotificationStackScrollLayoutSection: DefaultNotificationStackScrollLayoutSection,
    aodNotificationIconsSection: AodNotificationIconsSection,
) : KeyguardBlueprint {
    override val id: String = SHORTCUTS_BESIDE_UDFPS

@@ -55,6 +57,7 @@ constructor(
            defaultStatusViewSection,
            defaultNotificationStackScrollLayoutSection,
            splitShadeGuidelines,
            aodNotificationIconsSection,
        )

    companion object {
Loading