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

This commit is contained in:
Marcello Galhardo
2023-07-06 17:46:05 +00:00
committed by Android (Google) Code Review
10 changed files with 128 additions and 128 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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