Merge "Move MainThreadInitializedObject to Launcher3 Go." into main

This commit is contained in:
Treehugger Robot
2025-02-27 13:03:12 -08:00
committed by Android (Google) Code Review
17 changed files with 140 additions and 247 deletions
@@ -35,8 +35,8 @@ import com.android.launcher3.testing.shared.ResourceUtils
import com.android.launcher3.util.AllModulesMinusWMProxy
import com.android.launcher3.util.DisplayController
import com.android.launcher3.util.FakePrefsModule
import com.android.launcher3.util.MainThreadInitializedObject.SandboxContext
import com.android.launcher3.util.NavigationMode
import com.android.launcher3.util.SandboxContext
import com.android.launcher3.util.WindowBounds
import com.android.launcher3.util.rule.TestStabilityRule
import com.android.launcher3.util.rule.setFlags
@@ -56,7 +56,6 @@ import com.android.launcher3.model.BgDataModel;
import com.android.launcher3.model.BgDataModel.Callbacks;
import com.android.launcher3.model.ModelDbController;
import com.android.launcher3.testing.TestInformationProvider;
import com.android.launcher3.util.MainThreadInitializedObject.SandboxContext;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
@@ -27,7 +27,6 @@ import android.os.UserHandle
import android.view.Display
import androidx.test.core.app.ApplicationProvider
import com.android.launcher3.util.LauncherModelHelper.SandboxModelContext
import com.android.launcher3.util.MainThreadInitializedObject.ObjectSandbox
import org.junit.Rule
import org.junit.rules.ExternalResource
import org.junit.rules.TestRule
@@ -69,7 +68,7 @@ class SandboxApplication private constructor(private val base: SandboxApplicatio
// Defer to the true application to decide whether to clean up. For instance, we do not want
// to cleanup under Robolectric.
val app = ApplicationProvider.getApplicationContext<Context>()
return if (app is ObjectSandbox) app.shouldCleanUpOnDestroy() else true
return (app as? SandboxContext)?.shouldCleanUpOnDestroy() ?: true
}
override fun apply(statement: Statement, description: Description): Statement {
@@ -16,7 +16,6 @@
package com.android.launcher3.util
import android.content.Context
import android.hardware.display.DisplayManager
import android.view.Display
import android.view.Display.DEFAULT_DISPLAY
@@ -63,16 +62,4 @@ class SandboxApplicationTest {
onDestroy()
}
}
@Test
fun testGetObject_objectCreatesDisplayContext_isSandboxed() {
class TestSingleton(context: Context) : SafeCloseable {
override fun close() = Unit
val displayContext = context.createDisplayContext(display)
}
val displayContext = MainThreadInitializedObject { TestSingleton(it) }[app].displayContext
assertThat(displayContext.applicationContext).isEqualTo(app)
}
}
@@ -18,8 +18,6 @@ package com.android.launcher3.util;
import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
import static com.android.launcher3.util.MainThreadInitializedObject.SandboxContext;
import android.content.ContextWrapper;
import androidx.annotation.Nullable;
@@ -44,7 +42,7 @@ import java.util.concurrent.CountDownLatch;
* There are 2 constructors in this class. The base context can be {@link SandboxContext} or
* Instrumentation target context.
* Using {@link SandboxContext} as base context allows custom implementations for
* MainThreadInitializedObject providers.
* providing objects in Dagger components.
*/
public class TestSandboxModelContextWrapper extends ActivityContextWrapper implements