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

Commit edf588d3 authored by Dave Mankoff's avatar Dave Mankoff Committed by Android (Google) Code Review
Browse files

Merge "Fix ContrastDialog not displaying." into main

parents b797ec26 9ccb1b53
Loading
Loading
Loading
Loading
+14 −11
Original line number Diff line number Diff line
@@ -35,7 +35,9 @@ import java.util.concurrent.Executor
import javax.inject.Inject

/** Dialog to select contrast options */
class ContrastDialogDelegate @Inject constructor(
class ContrastDialogDelegate
@Inject
constructor(
    private val sysuiDialogFactory: SystemUIDialog.Factory,
    @Main private val mainExecutor: Executor,
    private val uiModeManager: UiModeManager,
@@ -43,15 +45,12 @@ class ContrastDialogDelegate @Inject constructor(
    private val secureSettings: SecureSettings,
) : SystemUIDialog.Delegate, UiModeManager.ContrastChangeListener {

    override fun createDialog(): SystemUIDialog {
        return sysuiDialogFactory.create(this)
    }

    @VisibleForTesting lateinit var contrastButtons: Map<Int, FrameLayout>
    lateinit var dialogView: View
    @VisibleForTesting var initialContrast: Float = fromContrastLevel(CONTRAST_LEVEL_STANDARD)

    override fun onCreate(dialog: SystemUIDialog, savedInstanceState: Bundle?) {
    override fun createDialog(): SystemUIDialog {
        val dialog = sysuiDialogFactory.create(this)
        dialogView = dialog.layoutInflater.inflate(R.layout.contrast_dialog, null)
        with(dialog) {
            setView(dialogView)
@@ -67,12 +66,16 @@ class ContrastDialogDelegate @Inject constructor(
            }
            setPositiveButton(com.android.settingslib.R.string.done) { _, _ -> dialog.dismiss() }
        }

        return dialog
    }

    override fun onCreate(dialog: SystemUIDialog, savedInstanceState: Bundle?) {
        contrastButtons =
            mapOf(
                CONTRAST_LEVEL_STANDARD to dialogView.requireViewById(
                    R.id.contrast_button_standard),
                CONTRAST_LEVEL_MEDIUM to dialogView.requireViewById(R.id.contrast_button_medium),
                CONTRAST_LEVEL_HIGH to dialogView.requireViewById(R.id.contrast_button_high)
                CONTRAST_LEVEL_STANDARD to dialog.requireViewById(R.id.contrast_button_standard),
                CONTRAST_LEVEL_MEDIUM to dialog.requireViewById(R.id.contrast_button_medium),
                CONTRAST_LEVEL_HIGH to dialog.requireViewById(R.id.contrast_button_high)
            )

        contrastButtons.forEach { (contrastLevel, contrastButton) ->
+17 −7
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import android.provider.Settings
import android.testing.AndroidTestingRunner
import android.testing.TestableLooper.RunWithLooper
import android.view.LayoutInflater
import android.view.View
import android.widget.FrameLayout
import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
@@ -39,6 +40,8 @@ import com.android.systemui.util.time.FakeSystemClock
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.ArgumentCaptor
import org.mockito.ArgumentMatchers.anyInt
import org.mockito.Mock
import org.mockito.Mockito.eq
import org.mockito.Mockito.verify
@@ -80,6 +83,13 @@ class ContrastDialogDelegateTest : SysuiTestCase() {
                mockUserTracker,
                mockSecureSettings
            )

        mContrastDialogDelegate.createDialog()
        val viewCaptor = ArgumentCaptor.forClass(View::class.java)
        verify(sysuiDialog).setView(viewCaptor.capture())
        whenever(sysuiDialog.requireViewById(anyInt()) as View?).then {
            viewCaptor.value.requireViewById(it.getArgument(0))
        }
    }

    @Test