Merge "Add Kotlin-friendly SingleActivityFactory class" into udc-qpr-dev am: d785a3cdfa

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23874530

Change-Id: I5ca4eace1324e885c118d4068cfe7dfc23726599
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Marcello Galhardo
2023-07-06 18:31:27 +00:00
committed by Automerger Merge Worker
10 changed files with 128 additions and 128 deletions

View File

@@ -11,9 +11,9 @@ import android.window.OnBackInvokedCallback
import android.window.OnBackInvokedDispatcher import android.window.OnBackInvokedDispatcher
import androidx.test.filters.SmallTest import androidx.test.filters.SmallTest
import androidx.test.rule.ActivityTestRule import androidx.test.rule.ActivityTestRule
import androidx.test.runner.intercepting.SingleActivityFactory
import com.android.systemui.R import com.android.systemui.R
import com.android.systemui.SysuiTestCase import com.android.systemui.SysuiTestCase
import com.android.systemui.activity.SingleActivityFactory
import com.android.systemui.controls.CustomIconCache import com.android.systemui.controls.CustomIconCache
import com.android.systemui.controls.controller.ControlsControllerImpl import com.android.systemui.controls.controller.ControlsControllerImpl
import com.android.systemui.flags.FakeFeatureFlags import com.android.systemui.flags.FakeFeatureFlags
@@ -63,12 +63,8 @@ class ControlsEditingActivityTest : SysuiTestCase() {
@JvmField @JvmField
var activityRule = var activityRule =
ActivityTestRule( ActivityTestRule(
object : /* activityFactory= */ SingleActivityFactory {
SingleActivityFactory<TestableControlsEditingActivity>( TestableControlsEditingActivity(
TestableControlsEditingActivity::class.java
) {
override fun create(intent: Intent?): TestableControlsEditingActivity {
return TestableControlsEditingActivity(
featureFlags, featureFlags,
uiExecutor, uiExecutor,
controller, controller,
@@ -77,10 +73,9 @@ class ControlsEditingActivityTest : SysuiTestCase() {
mockDispatcher, mockDispatcher,
latch latch
) )
}
}, },
false, /* initialTouchMode= */ false,
false /* launchActivity= */ false,
) )
@Before @Before

View File

@@ -13,9 +13,9 @@ import android.window.OnBackInvokedDispatcher
import androidx.test.filters.FlakyTest import androidx.test.filters.FlakyTest
import androidx.test.filters.SmallTest import androidx.test.filters.SmallTest
import androidx.test.rule.ActivityTestRule import androidx.test.rule.ActivityTestRule
import androidx.test.runner.intercepting.SingleActivityFactory
import com.android.systemui.R import com.android.systemui.R
import com.android.systemui.SysuiTestCase import com.android.systemui.SysuiTestCase
import com.android.systemui.activity.SingleActivityFactory
import com.android.systemui.controls.ControlStatus import com.android.systemui.controls.ControlStatus
import com.android.systemui.controls.ControlsServiceInfo import com.android.systemui.controls.ControlsServiceInfo
import com.android.systemui.controls.controller.ControlsController import com.android.systemui.controls.controller.ControlsController
@@ -91,12 +91,8 @@ class ControlsFavoritingActivityTest : SysuiTestCase() {
@JvmField @JvmField
var activityRule = var activityRule =
ActivityTestRule( ActivityTestRule(
object : /* activityFactory= */ SingleActivityFactory {
SingleActivityFactory<TestableControlsFavoritingActivity>( TestableControlsFavoritingActivity(
TestableControlsFavoritingActivity::class.java
) {
override fun create(intent: Intent?): TestableControlsFavoritingActivity {
return TestableControlsFavoritingActivity(
featureFlags, featureFlags,
executor, executor,
controller, controller,
@@ -105,10 +101,9 @@ class ControlsFavoritingActivityTest : SysuiTestCase() {
mockDispatcher, mockDispatcher,
latch latch
) )
}
}, },
false, /* initialTouchMode= */ false,
false /* launchActivity= */ false,
) )
@Before @Before

View File

@@ -29,8 +29,8 @@ import android.window.OnBackInvokedCallback
import android.window.OnBackInvokedDispatcher import android.window.OnBackInvokedDispatcher
import androidx.test.filters.SmallTest import androidx.test.filters.SmallTest
import androidx.test.rule.ActivityTestRule import androidx.test.rule.ActivityTestRule
import androidx.test.runner.intercepting.SingleActivityFactory
import com.android.systemui.SysuiTestCase import com.android.systemui.SysuiTestCase
import com.android.systemui.activity.SingleActivityFactory
import com.android.systemui.controls.ControlsServiceInfo import com.android.systemui.controls.ControlsServiceInfo
import com.android.systemui.controls.controller.ControlsController import com.android.systemui.controls.controller.ControlsController
import com.android.systemui.controls.panels.AuthorizedPanelsRepository import com.android.systemui.controls.panels.AuthorizedPanelsRepository
@@ -91,12 +91,8 @@ class ControlsProviderSelectorActivityTest : SysuiTestCase() {
@JvmField @JvmField
var activityRule = var activityRule =
ActivityTestRule( ActivityTestRule(
object : /* activityFactory= */ SingleActivityFactory {
SingleActivityFactory<TestableControlsProviderSelectorActivity>( TestableControlsProviderSelectorActivity(
TestableControlsProviderSelectorActivity::class.java
) {
override fun create(intent: Intent?): TestableControlsProviderSelectorActivity {
return TestableControlsProviderSelectorActivity(
executor, executor,
backExecutor, backExecutor,
listingController, listingController,
@@ -107,10 +103,9 @@ class ControlsProviderSelectorActivityTest : SysuiTestCase() {
mockDispatcher, mockDispatcher,
latch latch
) )
}
}, },
false, /* initialTouchMode= */ false,
false /* launchActivity= */ false,
) )
@Before @Before

View File

@@ -30,8 +30,8 @@ import android.testing.TestableLooper
import androidx.lifecycle.Lifecycle import androidx.lifecycle.Lifecycle
import androidx.test.filters.MediumTest import androidx.test.filters.MediumTest
import androidx.test.rule.ActivityTestRule import androidx.test.rule.ActivityTestRule
import androidx.test.runner.intercepting.SingleActivityFactory
import com.android.systemui.SysuiTestCase import com.android.systemui.SysuiTestCase
import com.android.systemui.activity.SingleActivityFactory
import com.android.systemui.controls.controller.ControlInfo import com.android.systemui.controls.controller.ControlInfo
import com.android.systemui.controls.controller.ControlsController import com.android.systemui.controls.controller.ControlsController
import com.android.systemui.settings.UserTracker import com.android.systemui.settings.UserTracker
@@ -81,19 +81,18 @@ class ControlsRequestDialogTest : SysuiTestCase() {
@Rule @Rule
@JvmField @JvmField
var activityRule = ActivityTestRule<TestControlsRequestDialog>( var activityRule = ActivityTestRule(
object : SingleActivityFactory<TestControlsRequestDialog>( /* activityFactory= */ SingleActivityFactory {
TestControlsRequestDialog::class.java TestControlsRequestDialog(
) {
override fun create(intent: Intent?): TestControlsRequestDialog {
return TestControlsRequestDialog(
mainExecutor, mainExecutor,
controller, controller,
userTracker, userTracker,
listingController listingController
) )
} },
}, false, false) /* initialTouchMode= */ false,
/* launchActivity= */ false,
)
private lateinit var control: Control private lateinit var control: Control

View File

@@ -23,8 +23,8 @@ import android.testing.AndroidTestingRunner
import android.testing.TestableLooper import android.testing.TestableLooper
import androidx.test.filters.SmallTest import androidx.test.filters.SmallTest
import androidx.test.rule.ActivityTestRule import androidx.test.rule.ActivityTestRule
import androidx.test.runner.intercepting.SingleActivityFactory
import com.android.systemui.SysuiTestCase import com.android.systemui.SysuiTestCase
import com.android.systemui.activity.SingleActivityFactory
import com.android.systemui.broadcast.BroadcastDispatcher import com.android.systemui.broadcast.BroadcastDispatcher
import com.android.systemui.controls.settings.ControlsSettingsDialogManager import com.android.systemui.controls.settings.ControlsSettingsDialogManager
import com.android.systemui.flags.FeatureFlags import com.android.systemui.flags.FeatureFlags
@@ -53,12 +53,8 @@ class ControlsActivityTest : SysuiTestCase() {
@JvmField @JvmField
var activityRule = var activityRule =
ActivityTestRule( ActivityTestRule(
object : /* activityFactory= */ SingleActivityFactory {
SingleActivityFactory<TestableControlsActivity>( TestableControlsActivity(
TestableControlsActivity::class.java
) {
override fun create(intent: Intent?): TestableControlsActivity {
return TestableControlsActivity(
uiController, uiController,
broadcastDispatcher, broadcastDispatcher,
dreamManager, dreamManager,
@@ -66,10 +62,9 @@ class ControlsActivityTest : SysuiTestCase() {
controlsSettingsDialogManager, controlsSettingsDialogManager,
keyguardStateController, keyguardStateController,
) )
}
}, },
false, /* initialTouchMode= */ false,
false /* launchActivity= */ false,
) )
@Before @Before

View File

@@ -22,9 +22,9 @@ import android.testing.AndroidTestingRunner
import android.testing.TestableLooper import android.testing.TestableLooper
import androidx.test.filters.SmallTest import androidx.test.filters.SmallTest
import androidx.test.rule.ActivityTestRule import androidx.test.rule.ActivityTestRule
import androidx.test.runner.intercepting.SingleActivityFactory
import com.android.dx.mockito.inline.extended.ExtendedMockito.verify import com.android.dx.mockito.inline.extended.ExtendedMockito.verify
import com.android.systemui.SysuiTestCase import com.android.systemui.SysuiTestCase
import com.android.systemui.activity.SingleActivityFactory
import com.android.systemui.notetask.LaunchNotesRoleSettingsTrampolineActivity.Companion.ACTION_MANAGE_NOTES_ROLE_FROM_QUICK_AFFORDANCE import com.android.systemui.notetask.LaunchNotesRoleSettingsTrampolineActivity.Companion.ACTION_MANAGE_NOTES_ROLE_FROM_QUICK_AFFORDANCE
import com.android.systemui.notetask.NoteTaskEntryPoint.QUICK_AFFORDANCE import com.android.systemui.notetask.NoteTaskEntryPoint.QUICK_AFFORDANCE
import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.any
@@ -47,12 +47,8 @@ class LaunchNotesRoleSettingsTrampolineActivityTest : SysuiTestCase() {
@Rule @Rule
@JvmField @JvmField
val activityRule = val activityRule =
ActivityTestRule<LaunchNotesRoleSettingsTrampolineActivity>( ActivityTestRule(
/* activityFactory= */ object : /* activityFactory= */ SingleActivityFactory {
SingleActivityFactory<LaunchNotesRoleSettingsTrampolineActivity>(
LaunchNotesRoleSettingsTrampolineActivity::class.java
) {
override fun create(intent: Intent?) =
LaunchNotesRoleSettingsTrampolineActivity(noteTaskController) LaunchNotesRoleSettingsTrampolineActivity(noteTaskController)
}, },
/* initialTouchMode= */ false, /* initialTouchMode= */ false,

View File

@@ -16,14 +16,13 @@
package com.android.systemui.notetask.shortcut package com.android.systemui.notetask.shortcut
import android.content.Intent
import android.testing.AndroidTestingRunner import android.testing.AndroidTestingRunner
import android.testing.TestableLooper import android.testing.TestableLooper
import androidx.test.filters.SmallTest import androidx.test.filters.SmallTest
import androidx.test.rule.ActivityTestRule import androidx.test.rule.ActivityTestRule
import androidx.test.runner.intercepting.SingleActivityFactory
import com.android.dx.mockito.inline.extended.ExtendedMockito.verify import com.android.dx.mockito.inline.extended.ExtendedMockito.verify
import com.android.systemui.SysuiTestCase import com.android.systemui.SysuiTestCase
import com.android.systemui.activity.SingleActivityFactory
import com.android.systemui.notetask.NoteTaskController import com.android.systemui.notetask.NoteTaskController
import com.android.systemui.notetask.NoteTaskEntryPoint import com.android.systemui.notetask.NoteTaskEntryPoint
import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.any
@@ -47,12 +46,8 @@ class LaunchNoteTaskActivityTest : SysuiTestCase() {
@JvmField @JvmField
val activityRule = val activityRule =
ActivityTestRule<LaunchNoteTaskActivity>( ActivityTestRule<LaunchNoteTaskActivity>(
/* activityFactory= */ object : /* activityFactory= */ SingleActivityFactory {
SingleActivityFactory<LaunchNoteTaskActivity>(LaunchNoteTaskActivity::class.java) { LaunchNoteTaskActivity(controller = noteTaskController)
override fun create(intent: Intent?) =
LaunchNoteTaskActivity(
controller = noteTaskController,
)
}, },
/* initialTouchMode= */ false, /* initialTouchMode= */ false,
/* launchActivity= */ false, /* launchActivity= */ false,

View File

@@ -16,7 +16,6 @@
package com.android.systemui.settings.brightness package com.android.systemui.settings.brightness
import android.content.Intent
import android.graphics.Rect import android.graphics.Rect
import android.os.Handler import android.os.Handler
import android.testing.AndroidTestingRunner import android.testing.AndroidTestingRunner
@@ -25,9 +24,9 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.test.filters.SmallTest import androidx.test.filters.SmallTest
import androidx.test.rule.ActivityTestRule import androidx.test.rule.ActivityTestRule
import androidx.test.runner.intercepting.SingleActivityFactory
import com.android.systemui.R import com.android.systemui.R
import com.android.systemui.SysuiTestCase import com.android.systemui.SysuiTestCase
import com.android.systemui.activity.SingleActivityFactory
import com.android.systemui.settings.FakeDisplayTracker import com.android.systemui.settings.FakeDisplayTracker
import com.android.systemui.settings.UserTracker import com.android.systemui.settings.UserTracker
import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.any
@@ -59,19 +58,17 @@ class BrightnessDialogTest : SysuiTestCase() {
@JvmField @JvmField
var activityRule = var activityRule =
ActivityTestRule( ActivityTestRule(
object : SingleActivityFactory<TestDialog>(TestDialog::class.java) { /* activityFactory= */ SingleActivityFactory {
override fun create(intent: Intent?): TestDialog { TestDialog(
return TestDialog(
userTracker, userTracker,
displayTracker, displayTracker,
brightnessSliderControllerFactory, brightnessSliderControllerFactory,
mainExecutor, mainExecutor,
backgroundHandler backgroundHandler
) )
}
}, },
false, /* initialTouchMode= */ false,
false /* launchActivity= */ false,
) )
@Before @Before

View File

@@ -25,8 +25,8 @@ import android.testing.TestableLooper
import android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS import android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS
import androidx.test.filters.SmallTest import androidx.test.filters.SmallTest
import androidx.test.rule.ActivityTestRule import androidx.test.rule.ActivityTestRule
import androidx.test.runner.intercepting.SingleActivityFactory
import com.android.systemui.SysuiTestCase import com.android.systemui.SysuiTestCase
import com.android.systemui.activity.SingleActivityFactory
import com.google.common.truth.Truth.assertThat import com.google.common.truth.Truth.assertThat
import javax.inject.Inject import javax.inject.Inject
@@ -49,19 +49,17 @@ class UsbPermissionActivityTest : SysuiTestCase() {
open class UsbPermissionActivityTestable @Inject constructor ( open class UsbPermissionActivityTestable @Inject constructor (
val message: UsbAudioWarningDialogMessage val message: UsbAudioWarningDialogMessage
) ) : UsbPermissionActivity(UsbAudioWarningDialogMessage())
: UsbPermissionActivity(UsbAudioWarningDialogMessage())
@Rule @Rule
@JvmField @JvmField
var activityRule = ActivityTestRule<UsbPermissionActivityTestable>( var activityRule = ActivityTestRule(
object : SingleActivityFactory<UsbPermissionActivityTestable>( /* activityFactory= */ SingleActivityFactory {
UsbPermissionActivityTestable::class.java UsbPermissionActivityTestable(mMessage)
) { },
override fun create(intent: Intent?): UsbPermissionActivityTestable { /* initialTouchMode= */ false,
return UsbPermissionActivityTestable(mMessage) /* launchActivity= */ false,
} )
}, false, false)
private val activityIntent = Intent(mContext, UsbPermissionActivityTestable::class.java) private val activityIntent = Intent(mContext, UsbPermissionActivityTestable::class.java)
.apply { .apply {

View File

@@ -0,0 +1,35 @@
/*
* Copyright (C) 2023 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.systemui.activity
import android.app.Activity
import android.content.Intent
import androidx.test.runner.intercepting.SingleActivityFactory
/**
* Builds a new [SingleActivityFactory] which delegating any call of [SingleActivityFactory.create]
* to the [instantiate] parameter.
*
* For more details, see [SingleActivityFactory].
*/
inline fun <reified T : Activity> SingleActivityFactory(
crossinline instantiate: (intent: Intent?) -> T,
): SingleActivityFactory<T> {
return object : SingleActivityFactory<T>(T::class.java) {
override fun create(intent: Intent?): T = instantiate(intent)
}
}