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

Commit ec2f639c authored by Nicolo' Mazzucato's avatar Nicolo' Mazzucato
Browse files

Use shade dialog context to open channel editor dialog

This is needed as the shade is now using a TYPE_NOTIFICATION_SHADE window context that doesn't support opening dialogs.

Bug: 362719719
Bug: 383294128
Bug: 397974982
Test: ChannelEditorDialogControllerTest
Flag: com.android.systemui.shade_window_goes_around
Change-Id: I7bc07b3d3c83c5670f01ebcdf7d0bab25fe2236c
parent d1406116
Loading
Loading
Loading
Loading
+4 −5
Original line number Diff line number Diff line
@@ -21,7 +21,6 @@ import android.app.INotificationManager
import android.app.NotificationChannel
import android.app.NotificationChannel.DEFAULT_CHANNEL_ID
import android.app.NotificationChannelGroup
import android.app.NotificationManager.IMPORTANCE_NONE
import android.app.NotificationManager.Importance
import android.content.Context
import android.graphics.Color
@@ -40,7 +39,7 @@ import android.widget.TextView
import com.android.internal.annotations.VisibleForTesting
import com.android.systemui.res.R
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.shade.ShadeDisplayAware
import com.android.systemui.shade.domain.interactor.ShadeDialogContextInteractor
import javax.inject.Inject

private const val TAG = "ChannelDialogController"
@@ -59,9 +58,9 @@ private const val TAG = "ChannelDialogController"
 */
@SysUISingleton
class ChannelEditorDialogController @Inject constructor(
    @ShadeDisplayAware private val context: Context,
    private val shadeDialogContextInteractor: ShadeDialogContextInteractor,
    private val noMan: INotificationManager,
    private val dialogBuilder: ChannelEditorDialog.Builder
    private val dialogBuilder: ChannelEditorDialog.Builder,
) {

    private var prepared = false
@@ -272,7 +271,7 @@ class ChannelEditorDialogController @Inject constructor(
    }

    private fun initDialog() {
        dialogBuilder.setContext(context)
        dialogBuilder.setContext(shadeDialogContextInteractor.context)
        dialog = dialogBuilder.build()

        dialog.window?.requestFeature(Window.FEATURE_NO_TITLE)
+5 −2
Original line number Diff line number Diff line
@@ -31,13 +31,13 @@ import android.testing.TestableLooper
import android.view.View

import com.android.systemui.SysuiTestCase
import com.android.systemui.shade.domain.interactor.FakeShadeDialogContextInteractor

import org.junit.Assert.assertEquals
import org.junit.Before
import org.junit.runner.RunWith
import org.junit.Test
import org.mockito.Answers
import org.mockito.ArgumentMatchers.anyBoolean
import org.mockito.ArgumentMatchers.eq
import org.mockito.Mock
import org.mockito.Mockito
@@ -66,11 +66,14 @@ class ChannelEditorDialogControllerTest : SysuiTestCase() {
    @Mock
    private lateinit var dialog: ChannelEditorDialog

    private val shadeDialogContextInteractor = FakeShadeDialogContextInteractor(mContext)

    @Before
    fun setup() {
        MockitoAnnotations.initMocks(this)
        `when`(dialogBuilder.build()).thenReturn(dialog)
        controller = ChannelEditorDialogController(mContext, mockNoMan, dialogBuilder)
        controller =
            ChannelEditorDialogController(shadeDialogContextInteractor, mockNoMan, dialogBuilder)

        channel1 = NotificationChannel(TEST_CHANNEL, TEST_CHANNEL_NAME, IMPORTANCE_DEFAULT)
        channel2 = NotificationChannel(TEST_CHANNEL2, TEST_CHANNEL_NAME2, IMPORTANCE_NONE)