Add instrumentation test to privacy sandbox sdk test project.

Added a few test cases (mostly ignored) to a connected test which
goes through core deployment flows.

Test: PrivacySandboxSdkConnectedTest
Bug: 240533883
Change-Id: Iad6d06a80fde1185d01b044ac8120958cc762a3b
diff --git a/build-system/integration-test/connected/src/test/java/com/android/build/gradle/integration/connected/application/PrivacySandboxSdkConnectedTest.kt b/build-system/integration-test/connected/src/test/java/com/android/build/gradle/integration/connected/application/PrivacySandboxSdkConnectedTest.kt
new file mode 100644
index 0000000..89bbd33
--- /dev/null
+++ b/build-system/integration-test/connected/src/test/java/com/android/build/gradle/integration/connected/application/PrivacySandboxSdkConnectedTest.kt
@@ -0,0 +1,92 @@
+/*
+ * Copyright (C) 2020 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.build.gradle.integration.connected.application
+
+import com.android.build.gradle.integration.common.fixture.GradleTestProject.Companion.builder
+import com.android.build.gradle.integration.connected.utils.getEmulator
+import com.android.ddmlib.AndroidDebugBridge
+import com.android.ddmlib.IDevice
+import org.junit.Before
+import org.junit.ClassRule
+import org.junit.Ignore
+import org.junit.Rule
+import org.junit.Test
+import java.util.concurrent.TimeUnit
+
+
+/**
+ * Connected tests using UTP test executor.
+ */
+class PrivacySandboxSdkConnectedTest {
+    init {
+        AndroidDebugBridge.init(true)
+    }
+    // private val adb: AndroidDebugBridge by lazy { AndroidDebugBridge.createBridge(10, TimeUnit.SECONDS) }
+    private val adb: AndroidDebugBridge =  AndroidDebugBridge.createBridge(10, TimeUnit.SECONDS)
+    private lateinit var device: IDevice
+
+    @get:Rule var project = builder()
+        .fromTestProject("privacySandboxSdk/libraryAndConsumer")
+        .create()
+
+    @Before
+    fun setUp() {
+        // fail fast if no response
+        project.addAdbTimeout();
+        adb.hasInitialDeviceList()
+        assert(adb.devices.size == 1)
+        device = adb.devices[0]
+
+        device.uninstallPackage("com.example.rubidumconsumer")
+        device.uninstallPackage("com.example.rubidumconsumer.test")
+        device.uninstallPackage("com.myrbsdk_10000")
+    }
+
+    @Test
+    fun `connectedAndroidTest task, SDK preinstalled`() {
+        project.execute(":app:buildPrivacySandboxSdkApksForDebug")
+        device.installPackage(
+            project.getSubproject("app").getIntermediateFile(
+                "extracted_apks_from_privacy_sandbox_sdks",
+                "debug",
+                "ads-sdk",
+                "standalone.apk"
+            ).path,
+            /* reinstall */ true
+        )
+        project.execute("connectedAndroidTest")
+    }
+
+    @Test
+    @Ignore // This doesn't work because deployment is not handled yet.
+    fun `connectedAndroidTest task`() {
+        project.execute("connectedAndroidTest")
+    }
+
+    @Test
+    @Ignore // This doesn't work because deployment is not handled yet.
+    fun `install and uninstall works for both SDK and APK`() {
+        project.execute("installDebug")
+        // Verify both APKs are installed here.
+        project.execute("uninstallAll")
+        // Verify both APKs are deleted
+    }
+
+    companion object {
+        @JvmField @ClassRule val emulator = getEmulator()
+    }
+}
diff --git a/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/ads-sdk-implementation/build.gradle b/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/ads-sdk-implementation/build.gradle
index 8549509..733f73e 100644
--- a/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/ads-sdk-implementation/build.gradle
+++ b/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/ads-sdk-implementation/build.gradle
@@ -4,7 +4,7 @@
 
 android {
     namespace 'com.example.ads_sdk_implementation'
-    compileSdk = 33
+    compileSdkPreview = 'TiramisuPrivacySandbox'
 
     defaultConfig {
         minSdk 33
@@ -19,4 +19,4 @@
 
 dependencies {
   implementation 'androidx.annotation:annotation:1.2.0-rc01'
-}
\ No newline at end of file
+}
diff --git a/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/ads-sdk-implementation/src/main/java/com/myrbsdk/MyAdsSdkEntryPoint.java b/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/ads-sdk-implementation/src/main/java/com/myrbsdk/MyAdsSdkEntryPoint.java
index f98e95c..38e31f8 100644
--- a/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/ads-sdk-implementation/src/main/java/com/myrbsdk/MyAdsSdkEntryPoint.java
+++ b/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/ads-sdk-implementation/src/main/java/com/myrbsdk/MyAdsSdkEntryPoint.java
@@ -3,11 +3,11 @@
 import android.app.sdksandbox.SandboxedSdkContext;
 import android.app.sdksandbox.SandboxedSdkProvider;
 import android.content.Context;
+import android.graphics.Color;
 import android.os.Bundle;
 import android.util.Log;
 import android.view.View;
-import android.widget.TextView;
-
+import android.widget.LinearLayout;
 
 import androidx.annotation.RequiresApi;
 
@@ -26,9 +26,14 @@
     @Override
     public View getView(Context windowContext, Bundle bundle) {
         Log.i("SDK", "getView");
-        TextView textView = new TextView(windowContext);
-        textView.setText("Hello from the SDK!");
-        return textView;
+
+        LinearLayout layout = new LinearLayout(windowContext);
+        layout.setLayoutParams(new LinearLayout.LayoutParams(
+            LinearLayout.LayoutParams.MATCH_PARENT,
+            LinearLayout.LayoutParams.MATCH_PARENT
+        ));
+        layout.setBackgroundColor(Color.RED);
+        return layout;
     }
 
     @Override
@@ -36,3 +41,4 @@
         Log.i("SDK", "onDataReceived");
     }
 }
+
diff --git a/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/ads-sdk-stub/build.gradle b/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/ads-sdk-stub/build.gradle
deleted file mode 100644
index dd089fd..0000000
--- a/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/ads-sdk-stub/build.gradle
+++ /dev/null
@@ -1,18 +0,0 @@
-plugins {
-    id 'com.android.library'
-}
-
-android {
-    namespace 'com.example.ads_sdk_stub'
-    compileSdk = 33
-
-    defaultConfig {
-        minSdk 33
-        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
-    }
-
-    compileOptions {
-        sourceCompatibility JavaVersion.VERSION_1_8
-        targetCompatibility JavaVersion.VERSION_1_8
-    }
-}
diff --git a/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/ads-sdk-stub/src/main/AndroidManifest.xml b/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/ads-sdk-stub/src/main/AndroidManifest.xml
deleted file mode 100644
index abfbe8f..0000000
--- a/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/ads-sdk-stub/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android">
-    <application></application>
-</manifest>
\ No newline at end of file
diff --git a/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/ads-sdk-stub/src/main/assets/example.txt b/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/ads-sdk-stub/src/main/assets/example.txt
deleted file mode 100644
index e69de29..0000000
--- a/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/ads-sdk-stub/src/main/assets/example.txt
+++ /dev/null
diff --git a/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/ads-sdk-stub/src/main/java/com/myrbsdk/MyAdsSdkEntryPointStub.java b/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/ads-sdk-stub/src/main/java/com/myrbsdk/MyAdsSdkEntryPointStub.java
deleted file mode 100644
index 3c37999..0000000
--- a/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/ads-sdk-stub/src/main/java/com/myrbsdk/MyAdsSdkEntryPointStub.java
+++ /dev/null
@@ -1,3 +0,0 @@
-package com.myrbsdk;
-
-public class MyAdsSdkEntryPointStub {}
diff --git a/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/ads-sdk/build.gradle b/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/ads-sdk/build.gradle
index 4ba4257..d7f6d1d 100644
--- a/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/ads-sdk/build.gradle
+++ b/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/ads-sdk/build.gradle
@@ -3,19 +3,17 @@
 }
 
 android {
-    compileSdk = 33
+    compileSdkPreview 'TiramisuPrivacySandbox'
     minSdk = 33
     namespace = "com.example.adssdk"
 
     bundle {
         packageName = "com.myrbsdk"
-      // TODO(b/240533883): Import the T preview SDK and use the implementation class instead
-        sdkProviderClassName = "com.myrbsdk.MyAdsSdkEntryPointStub"
+        sdkProviderClassName = "com.myrbsdk.MyAdsSdkEntryPoint"
         setVersion(1, 0, 0)
     }
 }
 
-// TODO(b/240533883): Import the T preview SDK and use the implementation module instead.
 dependencies {
-    include project(':ads-sdk-stub')
+    include project(':ads-sdk-implementation')
 }
diff --git a/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/app/build.gradle b/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/app/build.gradle
index 20c32a7..a650b29 100644
--- a/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/app/build.gradle
+++ b/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/app/build.gradle
@@ -1,31 +1,38 @@
 plugins {
-  id 'com.android.application'
-  id 'org.jetbrains.kotlin.android'
+    id 'com.android.application'
+    id 'org.jetbrains.kotlin.android'
 }
 
 android {
-  namespace 'com.example.rubidumconsumer'
-  compileSdk = 33
-  defaultConfig {
-    applicationId "com.example.rubidumconsumer"
-    minSdk 24
-    targetSdk 33
-    versionCode 1
-    versionName "1.0"
-  }
+    namespace 'com.example.rubidumconsumer'
+    compileSdkPreview = 'TiramisuPrivacySandbox'
+    defaultConfig {
+        applicationId "com.example.rubidumconsumer"
+        minSdk 24
+        targetSdk 34
+        versionCode 1
+        versionName "1.0"
 
-  compileOptions {
-    sourceCompatibility JavaVersion.VERSION_1_8
-    targetCompatibility JavaVersion.VERSION_1_8
-  }
-  kotlinOptions {
-    jvmTarget = '1.8'
-  }
+        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
+    }
+
+    compileOptions {
+        sourceCompatibility JavaVersion.VERSION_1_8
+        targetCompatibility JavaVersion.VERSION_1_8
+    }
+    kotlinOptions {
+        jvmTarget = '1.8'
+    }
 }
 
 dependencies {
-  implementation project(':ads-sdk')
-  implementation 'androidx.core:core-ktx:1.6.0'
-  implementation 'androidx.appcompat:appcompat:1.3.0'
-  implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
-}
\ No newline at end of file
+    implementation project(':ads-sdk')
+    implementation 'androidx.appcompat:appcompat:1.4.1'
+
+    // This is implementation because of https://github.com/android/android-test/issues/1412
+    // (or https://issuetracker.google.com/issues/240993946)
+    // It needs to merge the underlying bootstrap activities to the main manifest
+    implementation 'androidx.test.ext:junit:1.1.3'
+    testImplementation 'junit:junit:4.13.2'
+    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
+}
diff --git a/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/app/src/androidTest/java/com/example/rubidumconsumer/MainActivityTest.kt b/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/app/src/androidTest/java/com/example/rubidumconsumer/MainActivityTest.kt
new file mode 100644
index 0000000..4266984
--- /dev/null
+++ b/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/app/src/androidTest/java/com/example/rubidumconsumer/MainActivityTest.kt
@@ -0,0 +1,25 @@
+package com.example.rubidumconsumer
+
+import android.graphics.Color
+import androidx.test.ext.junit.rules.ActivityScenarioRule
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.platform.app.InstrumentationRegistry
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class MainActivityTest {
+
+    @get:Rule var rule = ActivityScenarioRule(MainActivity::class.java)
+
+    @Test
+    fun viewIsUpdatedBySdk() {
+        InstrumentationRegistry.getInstrumentation().apply {
+            waitForIdle {
+                val bitmap = uiAutomation.takeScreenshot()
+                assert(bitmap.getPixel(bitmap.width / 2, bitmap.height / 2) == Color.RED)
+            }
+        }
+    }
+}
diff --git a/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/app/src/main/java/com/example/rubidumconsumer/MainActivity.java b/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/app/src/main/java/com/example/rubidumconsumer/MainActivity.java
index 885a39c..36579a5 100644
--- a/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/app/src/main/java/com/example/rubidumconsumer/MainActivity.java
+++ b/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/app/src/main/java/com/example/rubidumconsumer/MainActivity.java
@@ -1,57 +1,62 @@
-// TODO(b/240533883): Re-enable commented out parts when the T preview SDK is imported
 package com.example.rubidumconsumer;
 
 import android.annotation.SuppressLint;
-// import android.app.sdksandbox.SdkSandboxManager;
+import android.app.sdksandbox.SdkSandboxManager;
 import androidx.appcompat.app.AppCompatActivity;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Looper;
 import android.view.SurfaceControlViewHost;
+import android.view.SurfaceView;
 import android.view.View;
-
-//import com.example.rubidumconsumer.databinding.ActivityMainBinding;
+import android.view.WindowManager;
+import android.view.WindowMetrics;
 
 @SuppressLint("NewApi")
 public class MainActivity extends AppCompatActivity {
 
-    static final String SDK_PACKAGE_NAME = "com.myrbsdk"; // Needs to be the package name of the SDK as defined in the SdkModulesConfig.pb.json when building the SDK
+    // Needs to be the package name of the SDK as defined in the SdkModulesConfig.pb.json when building the SDK
+    static final String SDK_PACKAGE_NAME = "com.myrbsdk";
 
-    //private SdkSandboxManager sdkSandboxManager;
+    private SdkSandboxManager sdkSandboxManager;
 
-    //private RemoteSdkCallbackImpl callback;
-    //private ActivityMainBinding binding;
+    private RemoteSdkCallbackImpl callback;
+    private SurfaceView renderedView;
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        //binding = ActivityMainBinding.inflate(getLayoutInflater());
-        //View view = binding.getRoot();
-        //setContentView(view);
-        //sdkSandboxManager = getApplicationContext().getSystemService(
-        //        SdkSandboxManager.class);
+        setContentView(R.layout.activity_main);
+        renderedView = findViewById(R.id.rendered_view);
+        sdkSandboxManager = getApplicationContext().getSystemService(
+                SdkSandboxManager.class);
     }
 
     @Override
     public void onResume() {
         super.onResume();
-        //binding.renderedView.setZOrderOnTop(true);
-        //binding.renderedView.setVisibility(View.INVISIBLE);
-
-        //callback = new RemoteSdkCallbackImpl(this);
-        //sdkSandboxManager.loadSdk(SDK_PACKAGE_NAME, new Bundle(), Runnable::run, callback);
+        renderedView.setVisibility(View.INVISIBLE);
+        callback = new RemoteSdkCallbackImpl(this);
+        sdkSandboxManager.loadSdk(SDK_PACKAGE_NAME, new Bundle(), Runnable::run, callback);
     }
 
-    //void requestSurfacePackage() {
-    //    sdkSandboxManager.requestSurfacePackage(
-    //            SDK_PACKAGE_NAME, getDisplay().getDisplayId(),
-    //            200, 200, new Bundle(), Runnable::run, callback);
-    //}
-    //
-    //void renderSurfaceView(SurfaceControlViewHost.SurfacePackage surfacePackage) {
-    //    new Handler(Looper.getMainLooper()).post(() -> {
-    //        binding.renderedView.setChildSurfacePackage(surfacePackage);
-    //        binding.renderedView.setVisibility(View.VISIBLE);
-    //    });
-    //}
+    void requestSurfacePackage() {
+        final WindowMetrics metrics = getApplicationContext().getSystemService(
+                WindowManager.class).getCurrentWindowMetrics();
+
+        sdkSandboxManager.requestSurfacePackage(
+                SDK_PACKAGE_NAME, getDisplay().getDisplayId(),
+                metrics.getBounds().width(),
+                metrics.getBounds().height(),
+                new Bundle(),
+                Runnable::run,
+                callback);
+    }
+
+    void renderSurfaceView(SurfaceControlViewHost.SurfacePackage surfacePackage) {
+        new Handler(Looper.getMainLooper()).post(() -> {
+            renderedView.setChildSurfacePackage(surfacePackage);
+            renderedView.setVisibility(View.VISIBLE);
+        });
+    }
 }
diff --git a/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/app/src/main/java/com/example/rubidumconsumer/RemoteSdkCallbackImpl.java b/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/app/src/main/java/com/example/rubidumconsumer/RemoteSdkCallbackImpl.java
index cd84e34..76e87ef 100644
--- a/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/app/src/main/java/com/example/rubidumconsumer/RemoteSdkCallbackImpl.java
+++ b/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/app/src/main/java/com/example/rubidumconsumer/RemoteSdkCallbackImpl.java
@@ -1,44 +1,43 @@
-// TODO(b/240533883): Re-enable commented out parts when the T preview SDK is imported
-//package com.example.rubidumconsumer;
-//
-//import android.annotation.SuppressLint;
-//import android.app.sdksandbox.SdkSandboxManager.LoadSdkCallback;
-//import android.app.sdksandbox.SdkSandboxManager.RequestSurfacePackageCallback;
-//import android.os.Bundle;
-//import android.util.Log;
-//import android.view.SurfaceControlViewHost;
-//import androidx.annotation.NonNull;
-//
-//@SuppressLint("NewApi")
-//public class RemoteSdkCallbackImpl implements LoadSdkCallback, RequestSurfacePackageCallback {
-//
-//    RemoteSdkCallbackImpl(MainActivity mainActivity) {
-//        this.mainActivity = mainActivity;
-//    }
-//
-//    private MainActivity mainActivity;
-//
-//    @Override
-//    public void onLoadSdkSuccess(Bundle bundle) {
-//        Log.i("App", "onLoadSdkSuccess");
-//        mainActivity.requestSurfacePackage();
-//    }
-//
-//    @Override
-//    public void onLoadSdkFailure(int errorCode, String errorMessage) {
-//        Log.i("App", String.format("onLoadSdkFailure. Error code: %d, Error message: %s",errorCode, errorMessage));
-//    }
-//
-//    @Override
-//    public void onSurfacePackageReady(@NonNull SurfaceControlViewHost.SurfacePackage surfacePackage,
-//                                      int i, @NonNull Bundle bundle) {
-//        Log.i("App", "onSurfacePackageReady");
-//        mainActivity.renderSurfaceView(surfacePackage);
-//    }
-//
-//    @Override
-//    public void onSurfacePackageError(int errorCode, String errorMessage) {
-//        Log.i("App", "onSurfacePackageError");
-//    }
-//}
+package com.example.rubidumconsumer;
+
+import android.annotation.SuppressLint;
+import android.app.sdksandbox.SdkSandboxManager;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.SurfaceControlViewHost;
+import androidx.annotation.NonNull;
+
+@SuppressLint("NewApi")
+public class RemoteSdkCallbackImpl implements SdkSandboxManager.LoadSdkCallback, SdkSandboxManager.RequestSurfacePackageCallback {
+
+
+    RemoteSdkCallbackImpl(MainActivity mainActivity) {
+        this.mainActivity = mainActivity;
+    }
+
+    private MainActivity mainActivity;
+
+    @Override
+    public void onLoadSdkSuccess(Bundle bundle) {
+        Log.i("App", "onLoadSdkSuccess");
+        mainActivity.requestSurfacePackage();
+    }
+
+    @Override
+    public void onLoadSdkFailure(int errorCode, String errorMessage) {
+        Log.i("App", String.format("onLoadSdkFailure. Error code: %d, Error message: %s",errorCode, errorMessage));
+    }
+
+    @Override
+    public void onSurfacePackageReady(@NonNull SurfaceControlViewHost.SurfacePackage surfacePackage,
+                                      int i, @NonNull Bundle bundle) {
+        Log.i("App", "onSurfacePackageReady");
+        mainActivity.renderSurfaceView(surfacePackage);
+    }
+
+    @Override
+    public void onSurfacePackageError(int errorCode, String errorMessage) {
+        Log.i("App", "onSurfacePackageError");
+    }
+}
 
diff --git a/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/app/src/main/res/layout/activity_main.xml b/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/app/src/main/res/layout/activity_main.xml
index 03ad632..1b878ac 100644
--- a/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/app/src/main/res/layout/activity_main.xml
+++ b/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/app/src/main/res/layout/activity_main.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
@@ -7,10 +7,6 @@
     tools:context=".MainActivity">
     <SurfaceView
         android:id="@+id/rendered_view"
-        android:layout_width="200dp"
-        android:layout_height="200dp"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent"/>
-</androidx.constraintlayout.widget.ConstraintLayout>
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"/>
+</LinearLayout>
diff --git a/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/build.gradle b/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/build.gradle
index a1fefff..a5a7957 100644
--- a/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/build.gradle
+++ b/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/build.gradle
@@ -1,23 +1,11 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+apply from: "../commonHeader.gradle"
+
 buildscript {
+    apply from: "../commonHeader.gradle"  // for $kotlinVersion
+    apply from: "../commonBuildScript.gradle"
 
-  ext.kotlin_version = 'to-be-replaced-by-AndroidGradleTests'
-
-  repositories {
-    // This will be populated by AndroidGradleTestCase
-    google()
-    mavenCentral()
-  }
-  dependencies {
-    classpath 'com.android.tools.build:gradle:0.0.0' // The version will be populated by AndroidGradleTestCase
-    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
-  }
+    dependencies {
+        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$rootProject.kotlinVersion"
+    }
 }
-
-allprojects {
-  repositories {
-    // This will be populated by AndroidGradleTestCase
-    google()
-    mavenCentral()
-  }
-}
-
diff --git a/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/settings.gradle b/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/settings.gradle
index 528e5f3..288816b 100644
--- a/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/settings.gradle
+++ b/build-system/integration-test/test-projects/privacySandboxSdk/libraryAndConsumer/settings.gradle
@@ -1,4 +1,5 @@
+apply from: "../commonLocalRepo.gradle", to: pluginManagement
+
 include ':app'
-// TODO(b/240533883): Import the T preview SDK and use the implementation module instead.
-include ':ads-sdk-stub'
+include ':ads-sdk-implementation'
 include ':ads-sdk'