@@ -17,16 +17,10 @@ package androidx.privacysandbox.sdkruntime.client.loader
17
17
18
18
import android.content.Context
19
19
import android.os.Build
20
- import android.os.Bundle
21
- import android.os.IBinder
22
20
import androidx.privacysandbox.sdkruntime.client.TestSdkConfigs
23
21
import androidx.privacysandbox.sdkruntime.client.config.LocalSdkConfig
24
- import androidx.privacysandbox.sdkruntime.core.AppOwnedSdkSandboxInterfaceCompat
25
22
import androidx.privacysandbox.sdkruntime.core.LoadSdkCompatException
26
- import androidx.privacysandbox.sdkruntime.core.SandboxedSdkCompat
27
23
import androidx.privacysandbox.sdkruntime.core.Versions
28
- import androidx.privacysandbox.sdkruntime.core.activity.SdkSandboxActivityHandlerCompat
29
- import androidx.privacysandbox.sdkruntime.core.controller.LoadSdkCallback
30
24
import androidx.privacysandbox.sdkruntime.core.controller.SdkSandboxControllerCompat
31
25
import androidx.test.core.app.ApplicationProvider
32
26
import androidx.test.ext.junit.runners.AndroidJUnit4
@@ -35,7 +29,7 @@ import androidx.test.filters.SmallTest
35
29
import androidx.testutils.assertThrows
36
30
import com.google.common.truth.Truth.assertThat
37
31
import java.io.File
38
- import java.util.concurrent.Executor
32
+ import java.lang.reflect.Proxy
39
33
import org.junit.Before
40
34
import org.junit.Test
41
35
import org.junit.runner.RunWith
@@ -157,45 +151,18 @@ class SdkLoaderTest {
157
151
}
158
152
159
153
private object NoOpFactory : SdkLoader.ControllerFactory {
160
- override fun createControllerFor (sdkConfig : LocalSdkConfig ) = NoOpImpl ()
161
- }
162
-
163
- private class NoOpImpl : SdkSandboxControllerCompat .SandboxControllerImpl {
164
-
165
- override fun loadSdk (
166
- sdkName : String ,
167
- params : Bundle ,
168
- executor : Executor ,
169
- callback : LoadSdkCallback
170
- ) {
171
- executor.execute {
172
- callback.onError(
173
- LoadSdkCompatException (
174
- LoadSdkCompatException .LOAD_SDK_INTERNAL_ERROR ,
175
- " NoOp"
176
- )
177
- )
178
- }
179
- }
180
-
181
- override fun getSandboxedSdks (): List <SandboxedSdkCompat > {
182
- throw UnsupportedOperationException (" NoOp" )
183
- }
184
154
185
- override fun getAppOwnedSdkSandboxInterfaces (): List <AppOwnedSdkSandboxInterfaceCompat > {
186
- throw UnsupportedOperationException (" NoOp" )
187
- }
155
+ val controllerImplClass = SdkSandboxControllerCompat .SandboxControllerImpl ::class .java
188
156
189
- override fun registerSdkSandboxActivityHandler (
190
- handlerCompat : SdkSandboxActivityHandlerCompat
191
- ): IBinder {
192
- throw UnsupportedOperationException (" NoOp" )
193
- }
157
+ val noOpProxy = Proxy .newProxyInstance(
158
+ controllerImplClass.classLoader,
159
+ arrayOf(controllerImplClass)
160
+ ) { proxy, method, args ->
161
+ throw UnsupportedOperationException (
162
+ " Unexpected method call (NoOp) object:$proxy , method: $method , args: $args "
163
+ )
164
+ } as SdkSandboxControllerCompat .SandboxControllerImpl
194
165
195
- override fun unregisterSdkSandboxActivityHandler (
196
- handlerCompat : SdkSandboxActivityHandlerCompat
197
- ) {
198
- throw UnsupportedOperationException (" NoOp" )
199
- }
166
+ override fun createControllerFor (sdkConfig : LocalSdkConfig ) = noOpProxy
200
167
}
201
168
}
0 commit comments