Merge aosp-main-future for b/319669529

Bug: 319669529
Merged-In: I9b0caf2d63fdb00321391d4b50a0bee5f00bbc41
Change-Id: Ie90db52e8471b4438cda28763cf0fc54f802b7eb
diff --git a/Android.bp b/Android.bp
index 46c0bea..6cba22f 100644
--- a/Android.bp
+++ b/Android.bp
@@ -70,14 +70,6 @@
     src: ":DocumentsUI",
 }
 
-filegroup {
-    name: "DocumentsUI-srcs",
-    srcs: [
-        "src/**/*.java",
-        ":statslog-docsui-java-gen",
-    ],
-}
-
 java_library {
     name: "docsui-statsd",
     srcs: [
@@ -101,14 +93,10 @@
 }
 
 android_library {
-    name: "DocumentsUI-res-lib",
+    name: "DocumentsUI-lib",
+    defaults: ["documentsui_defaults"],
 
-    manifest: "AndroidManifest.xml",
-
-    static_libs: [
-        "androidx.appcompat_appcompat",
-        "com.google.android.material_material",
-    ],
+    manifest: "AndroidManifestLib.xml",
 
     resource_dirs: [
         "res",
@@ -118,6 +106,11 @@
         "--auto-add-overlay",
     ],
 
+    srcs: [
+        "src/**/*.java",
+        ":statslog-docsui-java-gen",
+    ],
+
     sdk_version: "system_current",
     target_sdk_version: "33",
     min_sdk_version: "29",
@@ -128,28 +121,13 @@
 }
 
 android_library {
-    name: "DocumentsUIUnitTests-res-lib",
+    name: "DocumentsUIManifestLib",
+    defaults: ["documentsui_defaults"],
 
-    manifest: "AndroidManifestForUnitTests.xml",
+    manifest: "AndroidManifest.xml",
 
-    static_libs: [
-        "androidx.appcompat_appcompat",
-        "com.google.android.material_material",
-        "modules-utils-build_system",
-    ],
-
-    resource_dirs: [
-        "res",
-    ],
-
-    licenses: [
-        "Android-Apache-2.0",
-        "packages_apps_DocumentsUI_res_drawable_pd_license",
-    ],
-
-    aaptflags: [
-        "--auto-add-overlay",
-    ],
+    resource_dirs: [],
+    libs: ["DocumentsUI-lib"],
 
     sdk_version: "system_current",
     target_sdk_version: "33",
@@ -167,13 +145,8 @@
 
     manifest: "AndroidManifest.xml",
 
-    srcs: [
-        ":DocumentsUI-srcs",
-    ],
-
-    resource_dirs: [
-        "res",
-    ],
+    static_libs: ["DocumentsUI-lib"],
+    resource_dirs: [],
 
     licenses: [
         "Android-Apache-2.0",
diff --git a/AndroidManifestForUnitTests.xml b/AndroidManifestLib.xml
similarity index 100%
rename from AndroidManifestForUnitTests.xml
rename to AndroidManifestLib.xml
diff --git a/perf-tests/Android.bp b/perf-tests/Android.bp
index d98c36c..4cf6c65 100644
--- a/perf-tests/Android.bp
+++ b/perf-tests/Android.bp
@@ -8,7 +8,6 @@
     manifest: "AndroidManifest.xml",
 
     srcs: [
-        ":DocumentsUIPerfTests-files",
         "src/**/*.java",
     ],
 
@@ -23,6 +22,7 @@
     ],
 
     static_libs: [
+        "DocumentsUIPerfTests-lib",
         "androidx.legacy_legacy-support-v4",
         "androidx.test.rules",
         "androidx.test.espresso.core",
diff --git a/src/com/android/documentsui/ActionModeController.java b/src/com/android/documentsui/ActionModeController.java
index 89b8ff3..1bd4eea 100644
--- a/src/com/android/documentsui/ActionModeController.java
+++ b/src/com/android/documentsui/ActionModeController.java
@@ -79,7 +79,8 @@
                     Log.d(TAG, "Starting action mode.");
                 }
                 mActionMode = mActivity.startActionMode(this);
-                final View closeButton = mActivity.findViewById(R.id.action_mode_close_button);
+                final View closeButton =
+                        mActivity.findViewById(androidx.appcompat.R.id.action_mode_close_button);
                 if (closeButton != null) {
                     closeButton.setContentDescription(mActivity.getString(android.R.string.cancel));
                 }
diff --git a/src/com/android/documentsui/NavigationViewManager.java b/src/com/android/documentsui/NavigationViewManager.java
index a9dec9e..0a66aa5 100644
--- a/src/com/android/documentsui/NavigationViewManager.java
+++ b/src/com/android/documentsui/NavigationViewManager.java
@@ -141,7 +141,8 @@
         // move directory_header out of the AppBarLayout.
 
         Window window = mActivity.getWindow();
-        View actionBar = window.getDecorView().findViewById(R.id.action_mode_bar);
+        View actionBar =
+                window.getDecorView().findViewById(androidx.appcompat.R.id.action_mode_bar);
         int dynamicHeaderColor = ContextCompat.getColor(mActivity,
                 offset == 0 ? mDefaultStatusBarColorResId : R.color.color_surface_header);
         if (actionBar != null) {
diff --git a/src/com/android/documentsui/inspector/KeyValueRow.java b/src/com/android/documentsui/inspector/KeyValueRow.java
index 00ef819..349d017 100644
--- a/src/com/android/documentsui/inspector/KeyValueRow.java
+++ b/src/com/android/documentsui/inspector/KeyValueRow.java
@@ -98,9 +98,11 @@
     public void setOnClickListener(OnClickListener callback) {
         TextView clickable = ((TextView) findViewById(R.id.table_row_value));
         mDefaultTextColor = clickable.getTextColors();
-        TypedArray ta = getContext().obtainStyledAttributes(R.styleable.TextAppearance);
-        int linkColor = ta.getColor(R.styleable.TextAppearance_android_textColorLink,
-                mDefaultTextColor.getDefaultColor());
+        TypedArray ta =
+                getContext().obtainStyledAttributes(androidx.appcompat.R.styleable.TextAppearance);
+        int linkColor =
+                ta.getColor(androidx.appcompat.R.styleable.TextAppearance_android_textColorLink,
+                        mDefaultTextColor.getDefaultColor());
         ta.recycle();
         clickable.setTextColor(linkColor);
         clickable.setPaintFlags(clickable.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
diff --git a/src/com/android/documentsui/queries/SearchViewManager.java b/src/com/android/documentsui/queries/SearchViewManager.java
index b0c2987..053dc93 100644
--- a/src/com/android/documentsui/queries/SearchViewManager.java
+++ b/src/com/android/documentsui/queries/SearchViewManager.java
@@ -227,7 +227,7 @@
         mSearchView.setOnCloseListener(this);
         mSearchView.setOnSearchClickListener(this);
         mSearchView.setOnQueryTextFocusChangeListener(this);
-        final View clearButton = mSearchView.findViewById(R.id.search_close_btn);
+        final View clearButton = mSearchView.findViewById(androidx.appcompat.R.id.search_close_btn);
         if (clearButton != null) {
             clearButton.setPadding(clearButton.getPaddingStart() + getPixelForDp(4),
                     clearButton.getPaddingTop(), clearButton.getPaddingEnd() + getPixelForDp(4),
@@ -239,7 +239,7 @@
             });
         }
         if (SdkLevel.isAtLeastU()) {
-            final View textView = mSearchView.findViewById(R.id.search_src_text);
+            final View textView = mSearchView.findViewById(androidx.appcompat.R.id.search_src_text);
             if (textView != null) {
                 try {
                     textView.setIsHandwritingDelegate(true);
diff --git a/tests/Android.bp b/tests/Android.bp
index 65a4bbd..0ae6b06 100644
--- a/tests/Android.bp
+++ b/tests/Android.bp
@@ -16,35 +16,79 @@
     default_applicable_licenses: ["Android-Apache-2.0"],
 }
 
-filegroup {
-    name: "DocumentsUIPerfTests-files",
+java_defaults {
+    name: "DocumentsUITests-defaults",
+    libs: [
+        "android.test.base",
+        "android.test.mock",
+        "android.test.runner",
+    ],
+
+    static_libs: [
+        "DocumentsUI-lib",
+        "androidx.test.rules",
+        "androidx.test.espresso.core",
+        "androidx.test.ext.truth",
+        "guava",
+        "mockito-target",
+        "androidx.test.uiautomator_uiautomator",
+    ],
+}
+
+android_library {
+    name: "DocumentsUIPerfTests-lib",
     srcs: [
         "common/com/android/documentsui/**/*.java",
         "functional/com/android/documentsui/ActivityTest.java",
     ],
+    resource_dirs: [],
+    libs: [
+        "android.test.base",
+        "android.test.mock",
+        "android.test.runner",
+        "DocumentsUI-lib",
+    ],
+
+    static_libs: [
+        "androidx.legacy_legacy-support-v4",
+        "androidx.test.rules",
+        "androidx.test.espresso.core",
+        "mockito-target",
+        "ub-janktesthelper",
+        "androidx.test.uiautomator_uiautomator",
+    ],
 }
 
-filegroup {
-    name: "DocumentsUITests-srcs",
+android_library {
+    name: "DocumentsUIUnitTests-lib",
+    defaults: ["DocumentsUITests-defaults"],
+
+    manifest: "AndroidManifestUnitTests.xml",
+
+    srcs: [
+        "common/**/*.java",
+        "unit/**/*.java",
+    ],
+
+    resource_dirs: [
+        "res",
+    ],
+
+    min_sdk_version : "29",
+    target_sdk_version : "29",
+}
+
+android_library {
+    name: "DocumentsUITests-lib",
+    defaults: ["DocumentsUITests-defaults"],
+
+    manifest: "AndroidManifest.xml",
+
     srcs: [
         "common/**/*.java",
         "functional/**/*.java",
         "unit/**/*.java",
     ],
-}
-
-filegroup {
-    name: "DocumentsUIUnitTests-srcs",
-    srcs: [
-        "common/**/*.java",
-        "unit/**/*.java",
-    ],
-}
-
-android_library {
-    name: "DocumentsUITests-res-lib",
-
-    manifest: "AndroidManifest.xml",
 
     asset_dirs: [
         "assets",
@@ -57,7 +101,6 @@
     aaptflags: [
         // pack some raw file locate in assets folder
         "-0 .zip",
-        "--auto-add-overlay",
     ],
 
     min_sdk_version : "29",
@@ -66,36 +109,14 @@
 
 android_test {
     name: "DocumentsUITests",
+    defaults: ["DocumentsUITests-defaults"],
 
     manifest: "AndroidManifest.xml",
 
-    srcs: [
-        "common/**/*.java",
-        "functional/**/*.java",
-        "unit/**/*.java",
-    ],
-
-    resource_dirs: [
-        "res",
-    ],
-
-    aaptflags: [
-        "-0 .zip",
-    ],
-
-    libs: [
-        "android.test.base",
-        "android.test.mock",
-        "android.test.runner",
-    ],
+    resource_dirs: [],
 
     static_libs: [
-        "androidx.test.rules",
-        "androidx.test.espresso.core",
-        "androidx.test.ext.truth",
-        "guava",
-        "mockito-target",
-        "androidx.test.uiautomator_uiautomator",
+        "DocumentsUITests-lib",
     ],
 
     jarjar_rules: "jarjar-rules.txt",
diff --git a/tests/AndroidManifestUnitTests.xml b/tests/AndroidManifestUnitTests.xml
new file mode 100644
index 0000000..13d7a08
--- /dev/null
+++ b/tests/AndroidManifestUnitTests.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.android.documentsui.tests">
+
+</manifest>
diff --git a/tests/common/com/android/documentsui/bots/SearchBot.java b/tests/common/com/android/documentsui/bots/SearchBot.java
index 51f9394..bde74ca 100644
--- a/tests/common/com/android/documentsui/bots/SearchBot.java
+++ b/tests/common/com/android/documentsui/bots/SearchBot.java
@@ -33,12 +33,13 @@
 import android.content.Context;
 import android.view.View;
 
-import androidx.recyclerview.R;
 import androidx.test.uiautomator.UiDevice;
 import androidx.test.uiautomator.UiObject;
 import androidx.test.uiautomator.UiObjectNotFoundException;
 import androidx.test.uiautomator.UiSelector;
 
+import com.android.documentsui.R;
+
 import org.hamcrest.Matcher;
 
 /**
@@ -60,7 +61,7 @@
     // require this input be not clickable.
     @SuppressWarnings("unchecked")
     private static final Matcher<View> SEARCH_INPUT = allOf(
-            withId(R.id.search_src_text),
+            withId(androidx.appcompat.R.id.search_src_text),
             isDisplayed());
 
     public SearchBot(UiDevice device, Context context, int timeout) {
diff --git a/tests/functional/com/android/documentsui/FilesActivityDefaultsUiTest.java b/tests/functional/com/android/documentsui/FilesActivityDefaultsUiTest.java
index b8ef8d6..a33cca3 100644
--- a/tests/functional/com/android/documentsui/FilesActivityDefaultsUiTest.java
+++ b/tests/functional/com/android/documentsui/FilesActivityDefaultsUiTest.java
@@ -21,7 +21,6 @@
 
 import android.os.RemoteException;
 
-import androidx.recyclerview.R;
 import androidx.test.filters.LargeTest;
 
 import com.android.documentsui.base.RootInfo;
diff --git a/tests/functional/com/android/documentsui/SearchViewUiTest.java b/tests/functional/com/android/documentsui/SearchViewUiTest.java
index 04ea87a..78ce44a 100644
--- a/tests/functional/com/android/documentsui/SearchViewUiTest.java
+++ b/tests/functional/com/android/documentsui/SearchViewUiTest.java
@@ -19,7 +19,6 @@
 import static com.android.documentsui.StubProvider.ROOT_0_ID;
 import static com.android.documentsui.StubProvider.ROOT_1_ID;
 
-import androidx.recyclerview.R;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.Suppress;