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

Commit 8a67803c authored by George Lin's avatar George Lin
Browse files

Fix smartspace flickering when back from clock customization

This is due to multiple times of callback messages sent to the lock
screen preview renderer.
By removing redundent messages, the flickers are gone.

Test: See bug.
Bug: 416057623
Flag: com.android.systemui.shared.new_customization_picker_ui
Change-Id: I661a84131e04388d26fbb651f3ea9013c458e4f4
parent a6b36ce7
Loading
Loading
Loading
Loading
+2 −31
Original line number Diff line number Diff line
@@ -25,21 +25,16 @@ import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
import com.android.customization.model.grid.DefaultShapeGridManager.Companion.COL_GRID_NAME
import com.android.customization.model.grid.DefaultShapeGridManager.Companion.COL_SHAPE_KEY
import com.android.customization.picker.clock.shared.ClockSize
import com.android.customization.picker.clock.ui.view.ClockViewFactory
import com.android.customization.picker.color.data.util.MaterialColorsGenerator
import com.android.systemui.shared.keyguard.shared.model.KeyguardQuickAffordanceSlots.SLOT_ID_BOTTOM_END
import com.android.systemui.shared.keyguard.shared.model.KeyguardQuickAffordanceSlots.SLOT_ID_BOTTOM_START
import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants.CLOCK_SIZE_DYNAMIC
import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants.CLOCK_SIZE_SMALL
import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants.KEY_CLOCK_SIZE
import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants.KEY_HIDE_SMART_SPACE
import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants.KEY_INITIALLY_SELECTED_SLOT_ID
import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants.KEY_QUICK_AFFORDANCE_ID
import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants.KEY_SLOT_ID
import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants.MESSAGE_ID_DEFAULT_PREVIEW
import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants.MESSAGE_ID_HIDE_SMART_SPACE
import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants.MESSAGE_ID_PREVIEW_CLOCK_SIZE
import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants.MESSAGE_ID_PREVIEW_QUICK_AFFORDANCE_SELECTED
import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants.MESSAGE_ID_SLOT_SELECTED
import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants.MESSAGE_ID_START_CUSTOMIZING_QUICK_AFFORDANCES
@@ -147,35 +142,11 @@ constructor(
                        }

                        launch {
                            combine(
                                    viewModel.clockPickerViewModel.previewingClockSize,
                                    viewModel.clockPickerViewModel
                                        .showKeyguardPreviewRendererSmartspace,
                                    ::Pair,
                                )
                            viewModel.clockPickerViewModel.showKeyguardPreviewRendererSmartspace
                                .collect {
                                    (previewingClockSize, showKeyguardPreviewRendererSmartspace) ->
                                    workspaceCallback.sendMessage(
                                        MESSAGE_ID_HIDE_SMART_SPACE,
                                        Bundle().apply {
                                            putBoolean(
                                                KEY_HIDE_SMART_SPACE,
                                                !showKeyguardPreviewRendererSmartspace,
                                            )
                                        },
                                    )

                                    workspaceCallback.sendMessage(
                                        MESSAGE_ID_PREVIEW_CLOCK_SIZE,
                                        Bundle().apply {
                                            putString(
                                                KEY_CLOCK_SIZE,
                                                when (previewingClockSize) {
                                                    ClockSize.DYNAMIC -> CLOCK_SIZE_DYNAMIC
                                                    ClockSize.SMALL -> CLOCK_SIZE_SMALL
                                                },
                                            )
                                        },
                                        Bundle().apply { putBoolean(KEY_HIDE_SMART_SPACE, !it) },
                                    )
                                }
                        }