From e83318eed981f0c4718f901276d7c7586fab586b Mon Sep 17 00:00:00 2001 From: Paige Mcauliffe Date: Fri, 14 Oct 2022 21:35:36 +0000 Subject: [PATCH 1/5] Add testing sample for Espresso Device --- ui/espresso/EspressoDeviceSample/BUILD.bazel | 61 +++++ ui/espresso/EspressoDeviceSample/README.md | 25 ++ .../EspressoDeviceSample/app/build.gradle | 73 ++++++ .../app/src/androidTest/AndroidManifest.xml | 27 ++ .../RequiresDisplayTest.kt | 96 +++++++ .../app/src/main/AndroidManifest.xml | 36 +++ .../app/src/main/AppManifest.xml | 22 ++ .../EspressoDeviceSample/MainActivity.java | 31 +++ .../main/res/drawable-hdpi/ic_launcher.png | Bin 0 -> 2088 bytes .../main/res/drawable-mdpi/ic_launcher.png | Bin 0 -> 1330 bytes .../main/res/drawable-xhdpi/ic_launcher.png | Bin 0 -> 2800 bytes .../main/res/drawable-xxhdpi/ic_launcher.png | Bin 0 -> 4432 bytes .../main/res/drawable-xxxhdpi/ic_launcher.png | Bin 0 -> 6155 bytes .../app/src/main/res/layout/activity_main.xml | 24 ++ .../app/src/main/res/values-v13/styles.xml | 19 ++ .../app/src/main/res/values-v21/styles.xml | 19 ++ .../app/src/main/res/values-w820dp/dimens.xml | 22 ++ .../app/src/main/res/values/dimens.xml | 21 ++ .../app/src/main/res/values/strings.xml | 20 ++ .../app/src/main/res/values/styles.xml | 20 ++ ui/espresso/EspressoDeviceSample/build.gradle | 39 +++ .../EspressoDeviceSample/gradle.properties | 19 ++ .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59821 bytes .../gradle/wrapper/gradle-wrapper.properties | 5 + ui/espresso/EspressoDeviceSample/gradlew | 234 ++++++++++++++++++ ui/espresso/EspressoDeviceSample/gradlew.bat | 89 +++++++ .../EspressoDeviceSample/settings.gradle | 1 + 27 files changed, 903 insertions(+) create mode 100644 ui/espresso/EspressoDeviceSample/BUILD.bazel create mode 100644 ui/espresso/EspressoDeviceSample/README.md create mode 100644 ui/espresso/EspressoDeviceSample/app/build.gradle create mode 100644 ui/espresso/EspressoDeviceSample/app/src/androidTest/AndroidManifest.xml create mode 100644 ui/espresso/EspressoDeviceSample/app/src/androidTest/java/com/example/android/testing/espresso/EspressoDeviceSample/RequiresDisplayTest.kt create mode 100644 ui/espresso/EspressoDeviceSample/app/src/main/AndroidManifest.xml create mode 100644 ui/espresso/EspressoDeviceSample/app/src/main/AppManifest.xml create mode 100644 ui/espresso/EspressoDeviceSample/app/src/main/java/com/example/android/testing/espresso/EspressoDeviceSample/MainActivity.java create mode 100644 ui/espresso/EspressoDeviceSample/app/src/main/res/drawable-hdpi/ic_launcher.png create mode 100644 ui/espresso/EspressoDeviceSample/app/src/main/res/drawable-mdpi/ic_launcher.png create mode 100644 ui/espresso/EspressoDeviceSample/app/src/main/res/drawable-xhdpi/ic_launcher.png create mode 100644 ui/espresso/EspressoDeviceSample/app/src/main/res/drawable-xxhdpi/ic_launcher.png create mode 100644 ui/espresso/EspressoDeviceSample/app/src/main/res/drawable-xxxhdpi/ic_launcher.png create mode 100644 ui/espresso/EspressoDeviceSample/app/src/main/res/layout/activity_main.xml create mode 100644 ui/espresso/EspressoDeviceSample/app/src/main/res/values-v13/styles.xml create mode 100644 ui/espresso/EspressoDeviceSample/app/src/main/res/values-v21/styles.xml create mode 100644 ui/espresso/EspressoDeviceSample/app/src/main/res/values-w820dp/dimens.xml create mode 100644 ui/espresso/EspressoDeviceSample/app/src/main/res/values/dimens.xml create mode 100644 ui/espresso/EspressoDeviceSample/app/src/main/res/values/strings.xml create mode 100644 ui/espresso/EspressoDeviceSample/app/src/main/res/values/styles.xml create mode 100644 ui/espresso/EspressoDeviceSample/build.gradle create mode 100644 ui/espresso/EspressoDeviceSample/gradle.properties create mode 100644 ui/espresso/EspressoDeviceSample/gradle/wrapper/gradle-wrapper.jar create mode 100644 ui/espresso/EspressoDeviceSample/gradle/wrapper/gradle-wrapper.properties create mode 100755 ui/espresso/EspressoDeviceSample/gradlew create mode 100644 ui/espresso/EspressoDeviceSample/gradlew.bat create mode 100644 ui/espresso/EspressoDeviceSample/settings.gradle diff --git a/ui/espresso/EspressoDeviceSample/BUILD.bazel b/ui/espresso/EspressoDeviceSample/BUILD.bazel new file mode 100644 index 000000000..8f9aeb559 --- /dev/null +++ b/ui/espresso/EspressoDeviceSample/BUILD.bazel @@ -0,0 +1,61 @@ +licenses(["notice"]) # Apache 2.0 + +load("//:common_defs.bzl", "minSdkVersion", "targetSdkVersion") +load("@rules_jvm_external//:defs.bzl", "artifact") + +android_library( + name = "EspressoDeviceBasicSampleLib", + srcs = glob(["app/src/main/**/*.java"]), + custom_package = "com.example.android.testing.espresso.EspressoDeviceBasicSample", + manifest = "app/src/main/AndroidManifest.xml", + resource_files = glob(["app/src/main/res/**/*"]), + deps = [ + artifact("com.google.guava:guava") + ], +) + +android_binary( + name = "EspressoDeviceBasicSample", + custom_package = "com.example.android.testing.espresso.EspressoDeviceBasicSample", + manifest = "app/src/main/AppManifest.xml", + manifest_values = { + "minSdkVersion": minSdkVersion, + "targetSdkVersion": targetSdkVersion, + }, + deps = [":BasicSampleLib"], +) + +android_library( + name = "EspressoDeviceBasicSampleTestLib", + srcs = glob(["app/src/androidTest/**/*.java"]), + custom_package = "com.example.android.testing.espresso.EspressoDeviceBasicSample.test", + deps = [ + ":EspressoDeviceBasicSampleLib", + "//:test_deps", + ], +) + +android_binary( + name = "EspressoDeviceBasicSampleTest", + custom_package = "com.example.android.testing.espresso.EspressoDeviceBasicSample.test", + instruments = ":EspressoDeviceBasicSample", + manifest = "app/src/androidTest/AndroidManifest.xml", + manifest_values = { + "minSdkVersion": minSdkVersion, + "targetSdkVersion": targetSdkVersion, + }, + deps = [":EspressoDeviceBasicSampleTestLib"], +) + +API_LEVELS = [ + "19_x86", + "21_x86", + "22_x86", + "23_x86", +] + +[android_instrumentation_test( + name = "EspressoDeviceBasicSampleInstrumentationTest_%s" % API_LEVEL, + target_device = "@android_test_support//tools/android/emulated_devices/generic_phone:android_%s_qemu2" % API_LEVEL, + test_app = ":EspressoDeviceBasicSampleTest", +) for API_LEVEL in API_LEVELS] diff --git a/ui/espresso/EspressoDeviceSample/README.md b/ui/espresso/EspressoDeviceSample/README.md new file mode 100644 index 000000000..4be8ed983 --- /dev/null +++ b/ui/espresso/EspressoDeviceSample/README.md @@ -0,0 +1,25 @@ +# Basic sample for Espresso Device + +The Espresso Device API enables synchronized interactions with the test device. This API is experimental and subject to change. Currently, it is only supported on instrumentation tests run on emulators. + +To skip tests on devices that do not have certain display attributes, such as display width and height, annotate your test with @RequiresDisplay. This annotation takes in a WidthSizeClassEnum and a HeightSizeClassEnum. It can be applied to test classes or test methods. For details on these size classes, see https://developer.android.com/guide/topics/large-screens/support-different-screen-sizes. + +This project uses the Gradle build system. You don't need an IDE to build and execute it but Android Studio 3.4 is recommended. + +1. Download the project code, preferably using `git clone`. +1. In Android Studio, select *File* | *Open...* and point to the `./build.gradle` file. +1. Check out the relevant code: + * The application under test is located in `src/main/java` + * Instrumentation Tests are in `src/androidTest/java` + * Local Tests are in `src/test/java` +1. Create and run the Instrumented test configuration + * Open *Run* menu | *Edit Configurations* + * Add a new *Android Instrumented Tests* configuration + * Choose the `app` module + * Connect a device or start an emulator + * Turn animations off. + (On your device, under Settings->Developer options disable the following 3 settings: "Window animation scale", "Transition animation scale" and "Animator duration scale") + * Run the newly created configuration + * The application will be started on the device/emulator and a series of actions will be performed automatically. + +If you are using Android Studio, the *Run* window will show the test results. \ No newline at end of file diff --git a/ui/espresso/EspressoDeviceSample/app/build.gradle b/ui/espresso/EspressoDeviceSample/app/build.gradle new file mode 100644 index 000000000..45fc500f8 --- /dev/null +++ b/ui/espresso/EspressoDeviceSample/app/build.gradle @@ -0,0 +1,73 @@ +apply plugin: 'com.android.application' + +apply plugin: 'kotlin-android' + +apply plugin: 'kotlin-android-extensions' + +android { + compileSdkVersion 33 + buildToolsVersion rootProject.buildToolsVersion + defaultConfig { + applicationId "com.example.android.testing.espresso.EspressoDeviceSample" + minSdkVersion 14 + targetSdkVersion 33 + versionCode 1 + versionName "1.0" + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + lintOptions { + abortOnError false + } + productFlavors { + } + testOptions { + unitTests { + includeAndroidResources = true + } + managedDevices { + devices { + + // run with ../gradlew nexusOneApi30DebugAndroidTest + nexusOneApi30(com.android.build.api.dsl.ManagedVirtualDevice) { + // A lower resolution device is used here for better emulator performance + device = "Nexus One" + apiLevel = 30 + // Also use the AOSP ATD image for better emulator performance + systemImageSource = "aosp-atd" + } + } + } + } +} + +tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all { + kotlinOptions { + jvmTarget = "1.8" + } +} + +dependencies { + // App dependencies + implementation 'androidx.annotation:annotation:' + rootProject.androidxAnnotationVersion; + implementation 'com.google.guava:guava:' + rootProject.guavaVersion + + // Testing-only dependencies + androidTestImplementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion" + androidTestImplementation 'androidx.test:core:' + rootProject.coreVersion + androidTestImplementation 'androidx.test:core-ktx:' + rootProject.coreVersion + androidTestImplementation 'androidx.test.ext:junit:' + rootProject.extJUnitVersion + androidTestImplementation 'androidx.test.ext:junit-ktx:' + rootProject.extJUnitVersion + androidTestImplementation 'androidx.test:runner:' + rootProject.runnerVersion + androidTestImplementation 'androidx.test.espresso:espresso-core:' + rootProject.espressoVersion + androidTestImplementation 'androidx.test.espresso:espresso-device:' + rootProject.espressoDeviceVersion + + testImplementation 'androidx.test:core:' + rootProject.coreVersion; + testImplementation 'androidx.test.ext:junit:' + rootProject.extJUnitVersion + testImplementation 'junit:junit:4.12' + testImplementation 'org.robolectric:robolectric:' + rootProject.robolectricVersion + testImplementation 'androidx.test.espresso:espresso-core:' + rootProject.espressoVersion + testImplementation 'androidx.test.espresso:espresso-intents:' + rootProject.espressoVersion + testImplementation 'androidx.test.ext:truth:' + rootProject.extTruthVersion + testImplementation 'androidx.test.espresso:espresso-device:' + rootProject.espressoDeviceVersion +} diff --git a/ui/espresso/EspressoDeviceSample/app/src/androidTest/AndroidManifest.xml b/ui/espresso/EspressoDeviceSample/app/src/androidTest/AndroidManifest.xml new file mode 100644 index 000000000..59978599c --- /dev/null +++ b/ui/espresso/EspressoDeviceSample/app/src/androidTest/AndroidManifest.xml @@ -0,0 +1,27 @@ + + + + + + + + diff --git a/ui/espresso/EspressoDeviceSample/app/src/androidTest/java/com/example/android/testing/espresso/EspressoDeviceSample/RequiresDisplayTest.kt b/ui/espresso/EspressoDeviceSample/app/src/androidTest/java/com/example/android/testing/espresso/EspressoDeviceSample/RequiresDisplayTest.kt new file mode 100644 index 000000000..ea9ea981b --- /dev/null +++ b/ui/espresso/EspressoDeviceSample/app/src/androidTest/java/com/example/android/testing/espresso/EspressoDeviceSample/RequiresDisplayTest.kt @@ -0,0 +1,96 @@ +/* + * Copyright 2022, 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.example.android.testing.espresso.EspressoDeviceSample + +import androidx.test.espresso.device.filter.RequiresDisplay +import androidx.test.espresso.device.sizeclass.HeightSizeClass +import androidx.test.espresso.device.sizeclass.WidthSizeClass +import androidx.test.ext.junit.runners.AndroidJUnit4 +import org.junit.Test +import org.junit.runner.RunWith + +/* + * Illustrates usage of @RequiresDisplay API to filter tests based on display attributes such a screen size. + */ +@RunWith(AndroidJUnit4::class) +class RequiresDisplayTest { + @Test + fun shouldAlwaysRun() {} + + @RequiresDisplay( + widthSizeClass = WidthSizeClass.Companion.WidthSizeClassEnum.COMPACT, + heightSizeClass = HeightSizeClass.Companion.HeightSizeClassEnum.COMPACT + ) + @Test + fun testOnDevicesWithCompactWidthAndHeight() {} + + @RequiresDisplay( + widthSizeClass = WidthSizeClass.Companion.WidthSizeClassEnum.COMPACT, + heightSizeClass = HeightSizeClass.Companion.HeightSizeClassEnum.MEDIUM + ) + @Test + fun testOnDevicesWithCompactWidthAndMediumHeight() {} + + @RequiresDisplay( + widthSizeClass = WidthSizeClass.Companion.WidthSizeClassEnum.MEDIUM, + heightSizeClass = HeightSizeClass.Companion.HeightSizeClassEnum.COMPACT + ) + @Test + fun testOnDevicesWithMediumWidthAndCompactHeight() {} + + @RequiresDisplay( + widthSizeClass = WidthSizeClass.Companion.WidthSizeClassEnum.COMPACT, + heightSizeClass = HeightSizeClass.Companion.HeightSizeClassEnum.EXPANDED + ) + @Test + fun testOnDevicesWithCompactWidthAndExpandedHeight() {} + + @RequiresDisplay( + widthSizeClass = WidthSizeClass.Companion.WidthSizeClassEnum.EXPANDED, + heightSizeClass = HeightSizeClass.Companion.HeightSizeClassEnum.COMPACT + ) + @Test + fun testOnDevicesWithExpandedWidthAndCompactHeight() {} + + @RequiresDisplay( + widthSizeClass = WidthSizeClass.Companion.WidthSizeClassEnum.MEDIUM, + heightSizeClass = HeightSizeClass.Companion.HeightSizeClassEnum.MEDIUM + ) + @Test + fun testOnDevicesWithMediumWidthAndHeight() {} + + @RequiresDisplay( + widthSizeClass = WidthSizeClass.Companion.WidthSizeClassEnum.EXPANDED, + heightSizeClass = HeightSizeClass.Companion.HeightSizeClassEnum.MEDIUM, + ) + @Test + fun testOnDevicesWithExpandedWidthAndMediumHeight() {} + + + @RequiresDisplay( + widthSizeClass = WidthSizeClass.Companion.WidthSizeClassEnum.MEDIUM, + heightSizeClass = HeightSizeClass.Companion.HeightSizeClassEnum.EXPANDED + ) + @Test + fun testOnDevicesWithMediumWidthAndExpandedHeight() {} + + @RequiresDisplay( + widthSizeClass = WidthSizeClass.Companion.WidthSizeClassEnum.EXPANDED, + heightSizeClass = HeightSizeClass.Companion.HeightSizeClassEnum.EXPANDED + ) + @Test + fun testOnDevicesWithExpandedWidthAndHeight() {} +} \ No newline at end of file diff --git a/ui/espresso/EspressoDeviceSample/app/src/main/AndroidManifest.xml b/ui/espresso/EspressoDeviceSample/app/src/main/AndroidManifest.xml new file mode 100644 index 000000000..361a31168 --- /dev/null +++ b/ui/espresso/EspressoDeviceSample/app/src/main/AndroidManifest.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + diff --git a/ui/espresso/EspressoDeviceSample/app/src/main/AppManifest.xml b/ui/espresso/EspressoDeviceSample/app/src/main/AppManifest.xml new file mode 100644 index 000000000..d2b10e2ad --- /dev/null +++ b/ui/espresso/EspressoDeviceSample/app/src/main/AppManifest.xml @@ -0,0 +1,22 @@ + + + + + + + diff --git a/ui/espresso/EspressoDeviceSample/app/src/main/java/com/example/android/testing/espresso/EspressoDeviceSample/MainActivity.java b/ui/espresso/EspressoDeviceSample/app/src/main/java/com/example/android/testing/espresso/EspressoDeviceSample/MainActivity.java new file mode 100644 index 000000000..99710b8ba --- /dev/null +++ b/ui/espresso/EspressoDeviceSample/app/src/main/java/com/example/android/testing/espresso/EspressoDeviceSample/MainActivity.java @@ -0,0 +1,31 @@ +/* + * Copyright 2022, 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.example.android.testing.espresso.EspressoDeviceSample; + +import android.app.Activity; +import android.os.Bundle; + +/** + * An empty {@link Activity} that Espresso Device APIs are tested against. + */ +public class MainActivity extends Activity { + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + } +} diff --git a/ui/espresso/EspressoDeviceSample/app/src/main/res/drawable-hdpi/ic_launcher.png b/ui/espresso/EspressoDeviceSample/app/src/main/res/drawable-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..6b0f252c49420b54313d16a30b3cf26836adcda4 GIT binary patch literal 2088 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 literal 0 HcmV?d00001 diff --git a/ui/espresso/EspressoDeviceSample/app/src/main/res/drawable-xhdpi/ic_launcher.png b/ui/espresso/EspressoDeviceSample/app/src/main/res/drawable-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..0edc166fef7b2ed5cd4a435de3f582a1c8f551d4 GIT binary patch literal 2800 zcmb7`c{~&T1I9m_jkyZVIU*`Uu1!{pxe2+NkiO0ckvVfNOZXyZ2_?&&BP@5$Oo#{( zg)&4cS5|KA*YDrof4@JT=lSRP_jz9L1WR)xUM?{%006J?dHsuj)A_$bu>bYB?2t16 za5Wn1>sW_6uKdI8gX|Thww;^DdR!HcfAnj%oVUS!I?kp(Kdn50JE5S|I$gksz!81r zbQ(iA-Q=BG<(#uXeKE8nFV+yb@$!R^G3s7H0T;^BWGqJB4(@a3t{690L)eF}y}4`8 z4{m*3wIdB}ueR0(ns^kwpKQUhe&p1oYu+P}E!&?RnBNb;oA=17rKRFxT_~+NlR}A#{i0uA~M^dHBzL{Hie7k<{qzwk^q3OSU{% z%+I&nlls&)Kwp)szJYfs>P#v*fdn@!cwu9%BG2?)`U@>6L?FnAa149`cPQGUY2GDG8Gg9P$TISg-jDq(aS|2~m z&?LIPw0z^nsmDjN^L6d~nBi?lq+q5UGf$DN`{U_RLupyZ24AqP zS9nCFE&81!#ML<^OZ}t;Pv4vv?TBbgJ=NIu&X};<;_qET%UuXIv#{E0?!QO6{BYMQ zUdX`k>XT+^c_T&csdih3L8w0yQ+g}}h*do9h+F$4V&!;A)9Eu!OW~JqgnJ)pBtn)) z#KH<$T=2}-Nv8fl&#R2=mf|52W&bUzV`iv|m*+y$ae2E^&C8?Hf39mpCi!#;QhI9c zDPt=pId88JIe7#35ijyIc?G*?Xy|^Iu^h?j=)B(+cP+@T7jptXdWW>Z@I&5SUMJnc zBl|F!k1mnd8J?~CNuIrepee&%Bv#0NR8UyHXbz)$RBNfp|Lm^|y}i93lf5VCsp)cx z6<)qms=0m|GpKw&{hbB^F$434)DoX1sv#KvU{l*kvhaNXEwZ(&cqQlgJCzy&4v49r zk?gs4p1z{X`>ClD?SYhsba(g#GF6MZyOFnmHNNrAcDU+wv%z4Wpo|xB^oQQ|XrB*b zla8_`=Dt8`cZYApq8;5`GFS10gEm83D_(5qHR$VuQ=BhY)z8TL z2P}R2)~8>W&iBo+&BaS#97@?@1B}ffByezWV5UEOjQo*sQH2YHL$piKJ55QH(We$e zCMG5YUm~nMA_lCf8`^r44^%Lvfbrv6f8Ihj9JmgD`lLyj(y&T2>&_B#ReGE~oZ-Ju z7OC>WQMQj5R+Z(bO@o*E(~#nr-_OcG-bx=ozDgkf<+d!5NSs($T%@X1%=@tc8HQBG zcKhW-{WlyO4Ru%U-+%OR0wAQ1}si6qAkN02E2Rgc+udl+Es!Td#Rzxx)9VmX1BSZ9EvYg zHIxD3>D2{(Q?jp2UTrOQ#`Srm$X%6dW5tN`wK9ul=H}E7&vP^*HV;vL#+b)#E-x?Z zQUm2?^2cn3i?*R!kf!To7o8DpY&^2!sRXOQt2` zfoJTjL+WO9{a)wNZ-uN=mp7_1mGOhhKUsl~JT(3ExI_DTP$1H^Xt=B?20gZS$3x$k z%D>GTQnau0d{+Q+ubp)(Nk_@cOFva3YZfBsxBw?-$7C$EXXPBllUL`@laq|$zB6?Z z+^b*t$$PaPL)T=EpTHrN5GOIhr|gDNiq&@C{W*YMGduJ^LnuFVESUyXVh4laj`5#Y z<2o(8o)oU+hJ}S?g}v^UpkO`Tx_$If$5YX2s<^~?bda>P9Xlftlcjh?h){_NhX~h+ zDJ`8&er}}7In;^8`+J1W9sb{AJVsi39BI-)5f5(TG@m{Z4

`1-9%1?O z!${y9372X;Of?OY3s7ioUh)u*WHlpthGHKZsa%vLd`D!uP=bX|G6;?VIZ(iv+E>Zf zFFsrR+BztBCyMKAAVm92!R?XCrJV}r?aI)QoRqi9!+SVp#z!@9o)bNph$3^6>_<+_ zc;*C={x0LNO>3reXsf`GG`TGhIx<9#zeUI54(FS}8T&g-CtYctj+w5-4NF4{EPZuC zU(k*4P>ESa3TN+edaLkj41*N}u1WDroID{!^>ab(TF-C`2XZVegB`44kC@Nv;Y|50 zS3Jv9t&uC=GB8OC1a-S%ChN|g`m2NF zbj;(D%h*GPoN(>)f4GH}1`J5Il2Y!1q=@y%6dT<4pMF?!>1c{#51ZXeJJHTAlsPqe zhUZwhu`VWkMD=6(yW&Ll#NR38yS literal 0 HcmV?d00001 diff --git a/ui/espresso/EspressoDeviceSample/app/src/main/res/drawable-xxhdpi/ic_launcher.png b/ui/espresso/EspressoDeviceSample/app/src/main/res/drawable-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..252724020dad616277a3633b66bb2304b1b0a1a7 GIT binary patch literal 4432 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 literal 0 HcmV?d00001 diff --git a/ui/espresso/EspressoDeviceSample/app/src/main/res/drawable-xxxhdpi/ic_launcher.png b/ui/espresso/EspressoDeviceSample/app/src/main/res/drawable-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..0e23e29d80952150c260f66e4cd5fefb617fa136 GIT binary patch literal 6155 zcmdUT=~fWLp-Z}ZXhph}Mg*imx$8b*;7c*?XTa>slYQG?WN%sc-=RAW(iGuk(0z{_lcfJ?=US@2~-Yd|X*x zM$g;i;0;c)-sGpi%91(93!&m%*?4vM86OxN5@p>TtSlLehhD^DVgX^at?pn{;pWa*N;^Dmi92dq81C5NKcr-4O=o1uES!8ROGK8J-yna#ob;<~zL{)0yuZv8 zZ<`3XyuZACI9xpFc$gH@h(>iocW@iBGDe^_YJf2KD+~$dC=Ya$BtX7)|DbTuPm62B=ZRj6Ck)IT}lujIc5 z@3OZhmvDyL_I{8DpZRxmXw-YM7@2HB5h(I4D;}AiZIKIbUdn7ZD-nwk%<~U#mf)b@ z9q#fi!%<9(I-DP|Mj~P9yrc+8X6dYHdKedDov>n`3&MPU&d4k%*-*9NR70Vl?YI@k zu*VfcC0L)i!@u)Xq|AmDBZw6TfgsW-H9nz5M*QBD9Y;=YGuI*7{8mXI+0sqm zrXcLhh|i5G+&Y4B8RRtc|M~NuIC#RMjuS+f_qgL$zxE``wXn5d zH`|aPY_hh<4R`8ZGQ0WuQzcC6GXRluSxR1wSiKeqJnt@v-RbIF5#zlYjf_#_9UAFW z`54&ncQO!lSlRzT8v7~OF~7c0v9zLsaAJD0jea~@#B`^Umvh$r_#k$3{&0tGxxZK% zlZ57SVmH*P<7&=Ucq^4L-r2HVEptQiO>$cGYk{*{>X;>O{*~i$H5|;te)`LDq-k2Ign^Vo{zy#jUk;b{B zUBPS;aX)+sPEVHGV z(sz!uS?NpG3YoSC1#Wn4)OYK;xxOXTxFPZ!%NoNo#b5f5bf%@{c_|r%QI{Qn2U6nQcsjB00%URjTiPH^>_gM{Pq;>Nrgwfn!yFU1v&ieXOR*Sc zcl}qviZFFleE!lmo0#%Wen?R+@2JA%w;6^vY#~xi#+GT%RoAeB1@PZ0GVi|SC)*sl zP~b4-uR)>N<0@%;-3*d#@flH&?-sZQ`fRn=D%?+G3p2VVr-;9@kv{zO&DYglanI`D=Z?)zQ{twQbK+x1-x4Dx^cBn&nHP*?y=S zv+-DU`RCplq(vQy4rji|cU1$$QJ2$ejpI%a&EtslO9+g*?68K-{rQM~q(!x9~ z-fuZD=<;6@crwgP4s3N*;C>fyihLNSXFkVrM{i9GCjClN?1`t)t-`l9Ux=F@Gfw)Z^}uysnzRdIFFH7jb1m|lvxsjSzRM*Eox8U~?|X9G_l zoh6!}mjN7zvV$KbtCoCGIs~x%4Z3n`C-1str4zqgoM&uy29}TBZIwp9 zFFAvBdV3T1^^h%vfq%?tq)X70T$&M9{R}GE?NM;6@wGPzjlhMmXVh~=9R?FQ-|VGs zJ%2c|rz-SwkHRE7$H&Ox_+rAKB5s`WncsW&vlr(&>9CZhvL+BF`4)rOG0*<{J!5{) zFIi1AT$tx)w*U9P$K%gs<$mT`uw@z=#2vw!M2kD(j3s1D{D$1%AP?M5LuJw_zHT>~)!uwC+F{LezRSo3!Ha?qyrL%iW@FxjTnY9aZT<3e%`Z5RW)7!{U+B`Qy<{uN&_LP-T`7A9Q2DK8VH37`oT5f~*qgR;sF&oB3#)(Nl)2B)~-Aj(5 za#3nyrO0i~H#K7c%F52z*S$AeC1xs%D&;RCK8rFD$W`A*osQ0N=$`?n) z+FuC!v}-5g23`PB4?PV9^MWlZ3vfz%W_)bxaiv(Are9Xo^yF(@+eHZ8C9p7`aAUSe&5VNTOFAMo>^bJ2o^ zhKBsxe9!Y$U33*N^#z-3cI4z3KJIeihrcxKHhyn8X8trMK{&%5!cb66;!dpchnxEk zA)barXDz;+fOc9n+30g=-?N=!necb1{~3G!hg0QsxO9mwUw%gOIRsb!kw;3SX}8?| z&zj zN)wYIGj;aUOz#%tTW81g=ajX~2d$_u@vI-bU2*-5;npt9# zFd;uZgEPp3Ev?Gmw0MrGD6%N5w+CZjSA5s1J2EU_>3qD4o0}=UV(<-DG5|p8!dD(osMr(0~a z>K$=kPMq@Lq{Cco^>`ssb%V2j@UMKO`5GOS#M2k5fLhqwexoR6`3#EqSvny4UgiqK zU1U}@IMZZ3nmv5nL2p>CdPYNJ%2E4M#YFpmBhG+YT(aW`FYPXk2;--z2&YhbH0wzC zj7=sHiKGHE6X_?-!otFf!^M`%U5i?7n8#-!ILxC~g>nbPmWyq$%o*NNj4mlDF<^x4 z@yY)oOpA27QU;d$gAc)YT9Q%f{I-V_NvVK@*WdlEbKj1z5K%Q>d@dnF&<(NE11y2A z|46al&IqSH!$LNs?cePsJxeK9T`dHv87AGQ$+|vg2}VQSRXj1*;)|PwQ1k_mLyuYvX2P~HRMn1*qD;{p zL+`8iAuH<%d}XnY@8eulCAa$PUd7T%2ya1zB_|}q?DGFcueQX=piI?(NLZ(QIR=}Z zAd$_U^Q4ZRH3?2WP0xeNORA73BGM;|)XcmWta~kll>9&HN9$5(gIVxV zKgjj%jbWf6(}IS_ZQZIn8f92*rmxeHlm+a7FUkaXU~t~tM6>lhvA-i~tv9_CSuEjZ zBJP@;;T3(C7$m+0sx;u%P4*urWst<5gM58WH5vu>w;zVt|I6_YM4;HqhlsPGNvEb| zf_M-E%Q`jflco@W;>!p)m-hqMu4WVNf)apBQboJ9x0DT0{R{k~cm$<^jrVLAz>Gi<9VBzfnoJV|q;)u26(=Ju8}|r4 z6q7=5&x1`?JCQFc$upWr?&qt7hjxll$V%Gezd8HLl)w27)5N*8wG$cH+3gr@oq)uU zhmlFr>gX{1K4->OAQd4IA}ZLrPqyCVK=EK?qFU5{ zAK$oCR11`@3nf^(FBCb+-RAC;xt5gJj7pr=hd?{ZcM>E2<^%f$G}SMIj-CeLIRzO> zY~5ZS9zw?7DOJu57tpScVcd-k*0YuHyn-<-;60P)J^CmQV$l_=7VbdA9;e^U@#{Pb zst7rLn0VB7N^x`t5{?UvJ0eFo`1yNK)SxpFhhN-ax;`@H2RoIzuk9(Wc+0 zt8K78aDJ~6*hbG^98Om*yOdgfOdU;ubkc&~z!q#9RNR6oDu^<651e|B;E^hrhBnY^ z=t;&L*3!M^%7N47LRHG2q{RN(1my%yP>R{z4ZQj8D-MUs6_c5FV8qd)LD}7p=zMIs z3*^pKz+C|cwOqL%g^w4?y~nact)~uxIBOK-cyQ86-n+y!+rOiexwU@lIcs^i=-fkK z{h3Pm{;*fo40^9LCRDh#ef|<(Im1A1*>R z&`R{3cRO*eyJp__4ve_keWcpy?5SW!G?J%-zcw*tdg*3VkzQn){nP#VAWBM*cTdpQ zF`?e4X}}?ag5#J}Q=JKEFuR=b;qgiHCSdbP3Vqbh;q@VO!^Hh?Vy@;bB0h(Rg;S9(w6QMjI+P!tMqBIR3-e;zE>eWNRx{sOcA~+H}p$kd@SIF z67LaD;2{z#dSF=z$6NK16N82Z*s2|Qq7us+xLvbS=ym7g9AVuf!uJJrvr&gk)`|WS3PNU<6huk}o zAD7p%cBS=85js$3P?hQcslU0Nq7x* z_G>*!f<8?*N)2uV!WJB+jF9S*j7Rd_$NGra;5oHj zAdM)<7KD-k)Y}eYYkb-y9$%@MbbgOp9yh zI={#3Bl@(|rMM*6dL36S!%hfdLkK);aG0OMygwZ^|K{wwhOB?3^PNxndTEIB^=y^p$3EjwwAYL-DYB+et2s4umYwzsE5u~=JxXS5KFO1aPp-D4}d&>R=ujKtO72J{hcV+Ic% zLXf2{vDXfC+w)p4z%~4!H3)1w<`xAZJ#He%N#NL``kp_qW4bR>cC_DZ&9!tvEras< zS-~m9mDUkQ|JeK8%$pO7s~yXryHig8=AN1PU(1kJCgsbD9Qc%A;^rSmun= zoF9=eT^zg(7O)z?KDN~yCWpdd$W$?4V1KleML!5nv(h{wt9spFu@8?^QLb&`StUk- zp+zK52b3R8W{vz`9ypKlLWrhRAv7LkyfcYIg{tTy@_(_El?Tv}#f(@Mr}wu + + + diff --git a/ui/espresso/EspressoDeviceSample/app/src/main/res/values-v13/styles.xml b/ui/espresso/EspressoDeviceSample/app/src/main/res/values-v13/styles.xml new file mode 100644 index 000000000..90618916c --- /dev/null +++ b/ui/espresso/EspressoDeviceSample/app/src/main/res/values-v13/styles.xml @@ -0,0 +1,19 @@ + + + +