Revert "Revert "Revert "Revert "Replace field injection with con..."

Revert submission 3342809-revert-3340780-revert-3344343-revert-3343291-k2-upgrade-wpp-KWLCODKLEN-OROSEWLQYI-UXWYBKSHRY

Reason for revert: One more try

Reverted changes: /q/submissionid:3342809-revert-3340780-revert-3344343-revert-3343291-k2-upgrade-wpp-KWLCODKLEN-OROSEWLQYI-UXWYBKSHRY

Change-Id: Icbbd8abb17846ae626091c941bda7a7509c72280
Merged-In: I49dcf5fa23ed7e902b67c371a963f37d36d524d2
Merged-In: Ia8750cd6b654bee82d4f2907cfb3b9ebd56297fd
diff --git a/src/com/android/wallpaper/module/WallpaperPicker2Injector.kt b/src/com/android/wallpaper/module/WallpaperPicker2Injector.kt
index 4fa84d5..8392927 100755
--- a/src/com/android/wallpaper/module/WallpaperPicker2Injector.kt
+++ b/src/com/android/wallpaper/module/WallpaperPicker2Injector.kt
@@ -69,6 +69,15 @@
 constructor(
     @MainDispatcher private val mainScope: CoroutineScope,
     @BackgroundDispatcher private val bgDispatcher: CoroutineDispatcher,
+    private val displayUtils: Lazy<DisplayUtils>,
+    private val requester: Lazy<Requester>,
+    private val networkStatusNotifier: Lazy<NetworkStatusNotifier>,
+    private val partnerProvider: Lazy<PartnerProvider>,
+    private val uiModeManager: Lazy<UiModeManagerWrapper>,
+    private val userEventLogger: Lazy<UserEventLogger>,
+    private val injectedWallpaperClient: Lazy<WallpaperClient>,
+    private val injectedWallpaperInteractor: Lazy<WallpaperInteractor>,
+    private val prefs: Lazy<WallpaperPreferences>,
 ) : Injector {
     private var alarmManagerWrapper: AlarmManagerWrapper? = null
     private var bitmapCropper: BitmapCropper? = null
@@ -94,17 +103,6 @@
     private var previewActivityIntentFactory: InlinePreviewIntentFactory? = null
     private var viewOnlyPreviewActivityIntentFactory: InlinePreviewIntentFactory? = null
 
-    // Injected objects, sorted by alphabetical order on the type of object
-    @Inject lateinit var displayUtils: Lazy<DisplayUtils>
-    @Inject lateinit var requester: Lazy<Requester>
-    @Inject lateinit var networkStatusNotifier: Lazy<NetworkStatusNotifier>
-    @Inject lateinit var partnerProvider: Lazy<PartnerProvider>
-    @Inject lateinit var uiModeManager: Lazy<UiModeManagerWrapper>
-    @Inject lateinit var userEventLogger: Lazy<UserEventLogger>
-    @Inject lateinit var injectedWallpaperClient: Lazy<WallpaperClient>
-    @Inject lateinit var injectedWallpaperInteractor: Lazy<WallpaperInteractor>
-    @Inject lateinit var prefs: Lazy<WallpaperPreferences>
-
     override fun getApplicationCoroutineScope(): CoroutineScope {
         return mainScope
     }
@@ -163,9 +161,7 @@
             ?: DefaultDrawableLayerResolver().also { drawableLayerResolver = it }
     }
 
-    override fun getEffectsController(
-        context: Context,
-    ): EffectsController? {
+    override fun getEffectsController(context: Context): EffectsController? {
         return null
     }
 
@@ -281,7 +277,7 @@
     override fun getWallpaperStatusChecker(context: Context): WallpaperStatusChecker {
         return wallpaperStatusChecker
             ?: DefaultWallpaperStatusChecker(
-                    wallpaperManager = WallpaperManager.getInstance(context.applicationContext),
+                    wallpaperManager = WallpaperManager.getInstance(context.applicationContext)
                 )
                 .also { wallpaperStatusChecker = it }
     }
@@ -292,7 +288,7 @@
 
     override fun getUndoInteractor(
         context: Context,
-        lifecycleOwner: LifecycleOwner
+        lifecycleOwner: LifecycleOwner,
     ): UndoInteractor {
         return undoInteractor
             ?: UndoInteractor(
@@ -317,7 +313,7 @@
                             client = getWallpaperClient(context),
                             wallpaperPreferences = getPreferences(context = appContext),
                             backgroundDispatcher = bgDispatcher,
-                        ),
+                        )
                 )
                 .also { wallpaperInteractor = it }
     }
@@ -362,7 +358,7 @@
 
     override fun getWallpaperColorResources(
         wallpaperColors: WallpaperColors,
-        context: Context
+        context: Context,
     ): WallpaperColorResources {
         return DefaultWallpaperColorResources(wallpaperColors)
     }
diff --git a/tests/common/src/com/android/wallpaper/testing/TestInjector.kt b/tests/common/src/com/android/wallpaper/testing/TestInjector.kt
index 10d1c80..df2d724 100644
--- a/tests/common/src/com/android/wallpaper/testing/TestInjector.kt
+++ b/tests/common/src/com/android/wallpaper/testing/TestInjector.kt
@@ -71,8 +71,18 @@
 
 /** Test implementation of [Injector] */
 @Singleton
-open class TestInjector @Inject constructor(private val userEventLogger: UserEventLogger) :
-    Injector {
+open class TestInjector
+@Inject
+constructor(
+    private val userEventLogger: UserEventLogger,
+    private val displayUtils: DisplayUtils,
+    private val requester: Requester,
+    private val networkStatusNotifier: NetworkStatusNotifier,
+    private val partnerProvider: PartnerProvider,
+    private val wallpaperClient: FakeWallpaperClient,
+    private val injectedWallpaperInteractor: WallpaperInteractor,
+    private val prefs: WallpaperPreferences,
+) : Injector {
     private var appScope: CoroutineScope? = null
     private var alarmManagerWrapper: AlarmManagerWrapper? = null
     private var bitmapCropper: BitmapCropper? = null
@@ -95,15 +105,6 @@
     private var previewActivityIntentFactory: InlinePreviewIntentFactory? = null
     private var viewOnlyPreviewActivityIntentFactory: InlinePreviewIntentFactory? = null
 
-    // Injected objects, sorted by alphabetical order of the type of object
-    @Inject lateinit var displayUtils: DisplayUtils
-    @Inject lateinit var requester: Requester
-    @Inject lateinit var networkStatusNotifier: NetworkStatusNotifier
-    @Inject lateinit var partnerProvider: PartnerProvider
-    @Inject lateinit var wallpaperClient: FakeWallpaperClient
-    @Inject lateinit var injectedWallpaperInteractor: WallpaperInteractor
-    @Inject lateinit var prefs: WallpaperPreferences
-
     override fun getApplicationCoroutineScope(): CoroutineScope {
         return appScope ?: CoroutineScope(Dispatchers.Main).also { appScope = it }
     }
@@ -149,9 +150,7 @@
             ?: TestDrawableLayerResolver().also { drawableLayerResolver = it }
     }
 
-    override fun getEffectsController(
-        context: Context,
-    ): EffectsController? {
+    override fun getEffectsController(context: Context): EffectsController? {
         return null
     }
 
@@ -161,7 +160,7 @@
 
     override fun getIndividualPickerFragment(
         context: Context,
-        collectionId: String
+        collectionId: String,
     ): IndividualPickerFragment {
         return IndividualPickerFragment.newInstance(collectionId)
     }
@@ -257,13 +256,13 @@
 
     override fun getUndoInteractor(
         context: Context,
-        lifecycleOwner: LifecycleOwner
+        lifecycleOwner: LifecycleOwner,
     ): UndoInteractor {
         return undoInteractor
             ?: UndoInteractor(
                 getApplicationCoroutineScope(),
                 UndoRepository(),
-                HashMap()
+                HashMap(),
             ) // Empty because we don't support undoing in WallpaperPicker2..also{}
     }
 
@@ -280,7 +279,7 @@
                             client = getWallpaperClient(context),
                             wallpaperPreferences = getPreferences(context = context),
                             backgroundDispatcher = Dispatchers.IO,
-                        ),
+                        )
                 )
                 .also { wallpaperInteractor = it }
     }
@@ -296,7 +295,7 @@
 
     override fun getWallpaperColorResources(
         wallpaperColors: WallpaperColors,
-        context: Context
+        context: Context,
     ): WallpaperColorResources {
         return DefaultWallpaperColorResources(wallpaperColors)
     }
diff --git a/tests/robotests/src/com/android/wallpaper/module/DefaultWallpaperPersisterTest.java b/tests/robotests/src/com/android/wallpaper/module/DefaultWallpaperPersisterTest.java
index ab23396..8c0df46 100644
--- a/tests/robotests/src/com/android/wallpaper/module/DefaultWallpaperPersisterTest.java
+++ b/tests/robotests/src/com/android/wallpaper/module/DefaultWallpaperPersisterTest.java
@@ -22,7 +22,10 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static kotlinx.coroutines.test.TestCoroutineDispatchersKt.StandardTestDispatcher;
+
 import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
 import static org.robolectric.shadows.ShadowLooper.shadowMainLooper;
 
@@ -38,7 +41,11 @@
 import com.android.wallpaper.module.DefaultWallpaperPersisterTest.TestSetWallpaperCallback.SetWallpaperStatus;
 import com.android.wallpaper.module.WallpaperPersister.SetWallpaperCallback;
 import com.android.wallpaper.module.logging.TestUserEventLogger;
+import com.android.wallpaper.network.Requester;
+import com.android.wallpaper.picker.customization.data.repository.WallpaperRepository;
+import com.android.wallpaper.picker.customization.domain.interactor.WallpaperInteractor;
 import com.android.wallpaper.testing.FakeDisplaysProvider;
+import com.android.wallpaper.testing.FakeWallpaperClient;
 import com.android.wallpaper.testing.TestAsset;
 import com.android.wallpaper.testing.TestBitmapCropper;
 import com.android.wallpaper.testing.TestCurrentWallpaperInfoFactory;
@@ -47,6 +54,11 @@
 import com.android.wallpaper.testing.TestWallpaperPreferences;
 import com.android.wallpaper.testing.TestWallpaperStatusChecker;
 import com.android.wallpaper.util.DisplayUtils;
+import com.android.wallpaper.util.DisplaysProvider;
+
+import kotlinx.coroutines.test.TestDispatcher;
+import kotlinx.coroutines.test.TestScope;
+import kotlinx.coroutines.test.TestScopeKt;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -75,7 +87,6 @@
 
     @Before
     public void setUp() {
-        InjectorProvider.setInjector(new TestInjector(new TestUserEventLogger()));
         mContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
         mManager = spy(WallpaperManager.getInstance(mContext));
         mPrefs = new TestWallpaperPreferences();
@@ -83,6 +94,29 @@
         DisplayUtils displayUtils = new DisplayUtils(mContext, new FakeDisplaysProvider(mContext));
         TestBitmapCropper cropper = new TestBitmapCropper();
         TestWallpaperStatusChecker statusChecker = new TestWallpaperStatusChecker();
+        TestDispatcher testDispatcher = StandardTestDispatcher(null, null);
+        TestScope testScope = TestScopeKt.TestScope(testDispatcher);
+        WallpaperInteractor wallpaperInteractor =
+                new WallpaperInteractor(
+                        new WallpaperRepository(
+                                testScope.getBackgroundScope(),
+                                new FakeWallpaperClient(),
+                                new TestWallpaperPreferences(),
+                                testDispatcher
+                        ),
+                        () -> true
+                );
+
+        InjectorProvider.setInjector(new TestInjector(
+                new TestUserEventLogger(),
+                new DisplayUtils(mContext, mock(DisplaysProvider.class)),
+                mock(Requester.class),
+                mock(NetworkStatusNotifier.class),
+                mock(PartnerProvider.class),
+                new FakeWallpaperClient(),
+                wallpaperInteractor,
+                mock(WallpaperPreferences.class)
+        ));
         TestCurrentWallpaperInfoFactory wallpaperInfoFactory =
                 new TestCurrentWallpaperInfoFactory(mContext);
 
diff --git a/tests/src/com/android/wallpaper/picker/preview/ui/fragment/SmallPreviewFragmentTest.kt b/tests/src/com/android/wallpaper/picker/preview/ui/fragment/SmallPreviewFragmentTest.kt
deleted file mode 100644
index c661931..0000000
--- a/tests/src/com/android/wallpaper/picker/preview/ui/fragment/SmallPreviewFragmentTest.kt
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * 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.wallpaper.picker.preview.ui.fragment
-
-import androidx.test.filters.MediumTest
-import androidx.test.runner.AndroidJUnit4
-import com.android.wallpaper.model.WallpaperInfo
-import com.android.wallpaper.module.InjectorProvider
-import com.android.wallpaper.module.logging.TestUserEventLogger
-import com.android.wallpaper.testing.TestInjector
-import com.android.wallpaper.testing.TestStaticWallpaperInfo
-import org.junit.Before
-import org.junit.Ignore
-import org.junit.Test
-import org.junit.runner.RunWith
-
-@MediumTest
-@RunWith(AndroidJUnit4::class)
-class SmallPreviewFragmentTest {
-    private val testStaticWallpaper =
-        TestStaticWallpaperInfo(TestStaticWallpaperInfo.COLOR_DEFAULT).setWallpaperAttributions()
-    private val testUserEventLogger = TestUserEventLogger()
-
-    @Before
-    fun setUp() {
-        InjectorProvider.setInjector(TestInjector(testUserEventLogger))
-    }
-
-    @Test @Ignore("b/295958495") fun testWallpaperInfoIsNotNull() {}
-
-    private fun TestStaticWallpaperInfo.setWallpaperAttributions(): WallpaperInfo {
-        setAttributions(listOf("Title", "Subtitle 1", "Subtitle 2"))
-        setCollectionId("collectionStatic")
-        setWallpaperId("wallpaperStatic")
-        setActionUrl("http://google.com")
-        return this
-    }
-}