diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-06-15 21:43:07 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-06-15 21:43:07 +0000 |
commit | 754d79a3be0953b8313dd42bb0c39f69c0ec2303 (patch) | |
tree | 379110a63dc18cab24c0f5f3f2f99401c60b8b5c | |
parent | d578ccb69405201cb55aa517516510a877c567e8 (diff) | |
parent | e7aa26feeefbae9ab7e1ffe7fd5de6ec072dd988 (diff) | |
download | robolectric-shadows-android12-mainline-tzdata3-release.tar.gz |
Snap for 8730993 from e7aa26feeefbae9ab7e1ffe7fd5de6ec072dd988 to mainline-tzdata3-releaseaml_tz3_314012070aml_tz3_314012050aml_tz3_314012010aml_tz3_313110000aml_tz3_312511020aml_tz3_312511010aml_tz3_312410020aml_tz3_312410010android12-mainline-tzdata3-releaseaml_tz3_314012010
Change-Id: I6c9435af1c0ed3c4c5d793cbc9e85a5d24732401
32 files changed, 158 insertions, 301 deletions
diff --git a/Android.bp b/Android.bp index 774c382db..112833b57 100644 --- a/Android.bp +++ b/Android.bp @@ -99,12 +99,13 @@ java_device_for_host { "icu4j-icudata-jarjar", "icu4j-icutzdata-jarjar", "ims-common", + "android.test.base_static", "libphonenumber-platform", "okhttp-for-host", "services", "services.accessibility", "telephony-common", - "android.car", + ], } @@ -154,11 +155,11 @@ java_library_host { "Robolectric_sandbox", "Robolectric_junit", "Robolectric_utils", - "asm-9.2", + "asm-6.0", // if upgrading to ASM 7.0+, unset my_require_v53_or_lower_class_files in robotest-internal.mk (requires robolectric 4.0.x, see b/135459087) "junit", - "asm-tree-9.2", + "asm-tree-6.0", "guava", - "asm-commons-9.2", + "asm-commons-6.0", "bouncycastle-unbundled", "robolectric-sqlite4java-0.282", "hamcrest", @@ -1,6 +1,8 @@ brettchabot@google.com -hoisie@google.com +christianw@google.com +jongerrish@google.com jplemieux@google.com +justinklaassen@google.com leechou@google.com yukl@google.com tmfang@google.com
\ No newline at end of file diff --git a/annotations/Android.bp b/annotations/Android.bp index 17743c885..bc8fa9fe8 100644 --- a/annotations/Android.bp +++ b/annotations/Android.bp @@ -19,5 +19,4 @@ java_library_host { ], libs: ["robolectric-host-android_all"], srcs: ["src/main/java/**/*.java"], - visibility: ["//visibility:public"], } diff --git a/junit/Android.bp b/junit/Android.bp index 38ab52978..65f12adf9 100644 --- a/junit/Android.bp +++ b/junit/Android.bp @@ -18,12 +18,12 @@ java_library_host { "Robolectric_shadowapi", "Robolectric_sandbox", "Robolectric_utils", - "asm-commons-9.2", + "asm-commons-6.0", "guava", - "asm-tree-9.2", + "asm-tree-6.0", "hamcrest", "junit", - "asm-9.2", + "asm-6.0", "jsr305", ], srcs: ["src/main/java/**/*.java"], diff --git a/processor/Android.bp b/processor/Android.bp index 043ef198c..fdf2dc618 100644 --- a/processor/Android.bp +++ b/processor/Android.bp @@ -22,11 +22,11 @@ java_plugin { static_libs: [ "Robolectric_annotations", "Robolectric_shadowapi", - "asm-commons-9.2", + "asm-commons-6.0", "guava", - "asm-tree-9.2", + "asm-tree-6.0", "gson-prebuilt-jar", - "asm-9.2", + "asm-6.0", "jsr305", ], diff --git a/processor/sdks.txt b/processor/sdks.txt index 5444e46e9..b9931ca3d 100644 --- a/processor/sdks.txt +++ b/processor/sdks.txt @@ -13,4 +13,3 @@ prebuilts/misc/common/robolectric/android-all/android-all-9-robolectric-4913185- prebuilts/misc/common/robolectric/android-all/android-all-9plus-robolectric-5616371.jar prebuilts/misc/common/robolectric/android-all/android-all-10-robolectric-5803371.jar prebuilts/misc/common/robolectric/android-all/android-all-R-beta2-robolectric-6625208.jar -prebuilts/misc/common/robolectric/android-all/android-all-S-beta3-robolectric-7541949.jar diff --git a/report-internal.mk b/report-internal.mk index 4b790c20c..a12479c97 100644 --- a/report-internal.mk +++ b/report-internal.mk @@ -49,9 +49,6 @@ $(call dist-for-goals, $(my_report_target), \ $(my_coverage_output_zip):robotests-coverage/$(LOCAL_MODULE)/robolectric-html-coverage.zip \ $(my_coverage_output):robotests-coverage/$(LOCAL_MODULE)/robolectric-coverage.xml) -ALL_TARGETS.$(my_coverage_output_zip).META_LIC:=$(module_license_metadata) -ALL_TARGETS.$(my_coverage_output).META_LIC:=$(module_license_metadata) - # Running the coverage will always generate the report. $(my_target): $(my_coverage_output) diff --git a/resources/src/main/java/org/robolectric/res/android/ByteBucketArray.java b/resources/src/main/java/org/robolectric/res/android/ByteBucketArray.java index 0636e1921..209fb1ee8 100644 --- a/resources/src/main/java/org/robolectric/res/android/ByteBucketArray.java +++ b/resources/src/main/java/org/robolectric/res/android/ByteBucketArray.java @@ -24,7 +24,7 @@ public abstract class ByteBucketArray<T> { } // byte bucketIndex = static_cast<byte>(index) >> 4; - byte bucketIndex = (byte) (Byte.toUnsignedInt((byte) index) >> 4); + byte bucketIndex = (byte) (index >> 4); T[] bucket = (T[]) mBuckets[bucketIndex]; if (bucket == null) { return mDefault; @@ -38,7 +38,7 @@ public abstract class ByteBucketArray<T> { // (uint32_t) index, (uint32_t) size()); // uint8_t bucketIndex = static_cast<uint8_t>(index) >> 4; - byte bucketIndex = (byte) (Byte.toUnsignedInt((byte) index) >> 4); + byte bucketIndex = (byte) (((byte) index) >> 4); Object[] bucket = mBuckets[bucketIndex]; if (bucket == null) { bucket = mBuckets[bucketIndex] = new Object[BUCKET_SIZE]; @@ -60,7 +60,7 @@ public abstract class ByteBucketArray<T> { } // editItemAt(index) = value; - byte bucketIndex = (byte) (Byte.toUnsignedInt((byte) index) >> 4); + byte bucketIndex = (byte) (((byte) index) >> 4); Object[] bucket = mBuckets[bucketIndex]; if (bucket == null) { bucket = mBuckets[bucketIndex] = new Object[BUCKET_SIZE]; diff --git a/robolectric/Android.bp b/robolectric/Android.bp index ab08b47ff..90c413da9 100644 --- a/robolectric/Android.bp +++ b/robolectric/Android.bp @@ -25,13 +25,13 @@ java_library_host { "robolectric-host-androidx-test-monitor", "robolectric-maven-ant-tasks-2.1.3", "bouncycastle-unbundled", - "asm-commons-9.2", + "asm-commons-6.0", "guava", "robolectric-xstream-1.4.8", - "asm-tree-9.2", + "asm-tree-6.0", "junit", "robolectric-ant-1.8.0", - "asm-9.2", + "asm-6.0", "jsr305", "robolectric-host-android_all", ], @@ -70,17 +70,17 @@ java_test_host { "bouncycastle-unbundled", "hamcrest", "robolectric-sqlite4java-0.282", - "asm-commons-9.2", + "asm-commons-6.0", "robolectric-diffutils-1.3.0", "guava", "objenesis", "robolectric-xstream-1.4.8", - "asm-tree-9.2", + "asm-tree-6.0", "junit", "icu4j", "truth-prebuilt", "robolectric-ant-1.8.0", - "asm-9.2", + "asm-6.0", "jsr305", ], libs: ["robolectric-host-android_all"], diff --git a/robolectric/src/main/java/org/robolectric/android/AndroidInterceptors.java b/robolectric/src/main/java/org/robolectric/android/AndroidInterceptors.java index c009fb0ec..51ea2a779 100644 --- a/robolectric/src/main/java/org/robolectric/android/AndroidInterceptors.java +++ b/robolectric/src/main/java/org/robolectric/android/AndroidInterceptors.java @@ -9,9 +9,6 @@ import android.content.Context; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; import java.lang.invoke.MethodType; -import java.lang.ref.Reference; -import java.lang.ref.SoftReference; -import java.lang.ref.WeakReference; import java.util.Collection; import java.util.LinkedHashMap; import java.util.Locale; @@ -35,7 +32,6 @@ public class AndroidInterceptors { new SystemArrayCopyInterceptor(), new LocaleAdjustLanguageCodeInterceptor(), new SystemLogInterceptor(), - new ReferenceRefersToInterceptor(), new NoOpInterceptor() ); } @@ -242,33 +238,6 @@ public class AndroidInterceptors { } } - /** AndroidInterceptor for Reference.refersTo. */ - public static class ReferenceRefersToInterceptor extends Interceptor { - private static final String METHOD = "refersTo"; - - public ReferenceRefersToInterceptor() { - super( - new MethodRef(WeakReference.class.getName(), METHOD), - new MethodRef(SoftReference.class.getName(), METHOD)); - } - - static boolean refersTo(Reference ref, Object obj) { - return ref.get() == obj; - } - - @Override - public Function<Object, Object> handle(MethodSignature methodSignature) { - return (theClass, value, params) -> refersTo((Reference) value, params[0]); - } - - @Override - public MethodHandle getMethodHandle(String methodName, MethodType type) - throws NoSuchMethodException, IllegalAccessException { - return lookup.findStatic(getClass(), METHOD, - methodType(boolean.class, Reference.class, Object.class)); - } - } - public static class NoOpInterceptor extends Interceptor { public NoOpInterceptor() { super( diff --git a/robolectric/src/main/java/org/robolectric/internal/AndroidConfigurer.java b/robolectric/src/main/java/org/robolectric/internal/AndroidConfigurer.java index 69afa6458..c7b986e46 100644 --- a/robolectric/src/main/java/org/robolectric/internal/AndroidConfigurer.java +++ b/robolectric/src/main/java/org/robolectric/internal/AndroidConfigurer.java @@ -104,10 +104,6 @@ public class AndroidConfigurer { // This results in an error where two __robo_data__ fields get added to the same object. builder.doNotInstrumentPackage("androidx.room.migration"); builder.doNotInstrumentPackage("androidx.test"); - // Robolectric instrumentation causes issues with - // androidx.lifecycle.viewmodel.MutableCreationExtras and androidx.lifecycle.ViewModelProvider - // constructor. - builder.doNotInstrumentPackage("androidx.lifecycle"); builder.doNotInstrumentPackage("android.arch.persistence.room.migration"); builder.doNotInstrumentPackage("android.support.test"); diff --git a/robolectric/src/main/java/org/robolectric/internal/SdkConfig.java b/robolectric/src/main/java/org/robolectric/internal/SdkConfig.java index 901d518f4..d2cbf145a 100644 --- a/robolectric/src/main/java/org/robolectric/internal/SdkConfig.java +++ b/robolectric/src/main/java/org/robolectric/internal/SdkConfig.java @@ -33,8 +33,7 @@ public class SdkConfig implements Comparable<SdkConfig> { // BEGIN-INTERNAL // TODO: Update jar with final R release. addSdk(Build.VERSION_CODES.R, "R-beta2", "6625208", "REL"); - addSdk(Build.VERSION_CODES.S, "S-beta3", "7541949", "REL"); - addSdk(Build.VERSION_CODES.CUR_DEVELOPMENT, "current", "r0", "ZZZ"); + addSdk(Build.VERSION_CODES.S, "S", "r0", "S"); // END-INTERNAL } diff --git a/robolectric/src/test/java/org/robolectric/shadows/ShadowBluetoothAdapterTest.java b/robolectric/src/test/java/org/robolectric/shadows/ShadowBluetoothAdapterTest.java index 2734d6026..42e9f6162 100644 --- a/robolectric/src/test/java/org/robolectric/shadows/ShadowBluetoothAdapterTest.java +++ b/robolectric/src/test/java/org/robolectric/shadows/ShadowBluetoothAdapterTest.java @@ -2,15 +2,12 @@ package org.robolectric.shadows; import static android.os.Build.VERSION_CODES.JELLY_BEAN_MR2; import static android.os.Build.VERSION_CODES.LOLLIPOP; -import static android.os.Build.VERSION_CODES.S_V2; -import static android.os.Build.VERSION_CODES.TIRAMISU; import static com.google.common.truth.Truth.assertThat; import static org.robolectric.Shadows.shadowOf; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothProfile; -import android.bluetooth.BluetoothStatusCodes; import androidx.test.ext.junit.runners.AndroidJUnit4; import java.util.UUID; import org.junit.Before; @@ -89,65 +86,28 @@ public class ShadowBluetoothAdapterTest { } @Test - @Config(maxSdk = S_V2) public void scanMode_getAndSet_connectable() throws Exception { - assertThat(bluetoothAdapter.setScanMode(BluetoothAdapter.SCAN_MODE_CONNECTABLE)).isEqualTo( - true); + assertThat(bluetoothAdapter.setScanMode(BluetoothAdapter.SCAN_MODE_CONNECTABLE)).isTrue(); assertThat(bluetoothAdapter.getScanMode()).isEqualTo(BluetoothAdapter.SCAN_MODE_CONNECTABLE); } @Test - @Config(maxSdk = S_V2) public void scanMode_getAndSet_discoverable() throws Exception { assertThat(bluetoothAdapter.setScanMode(BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE)) - .isEqualTo(true); + .isTrue(); assertThat(bluetoothAdapter.getScanMode()) .isEqualTo(BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE); } @Test - @Config(maxSdk = S_V2) public void scanMode_getAndSet_none() throws Exception { - assertThat(bluetoothAdapter.setScanMode(BluetoothAdapter.SCAN_MODE_NONE)).isEqualTo(true); + assertThat(bluetoothAdapter.setScanMode(BluetoothAdapter.SCAN_MODE_NONE)).isTrue(); assertThat(bluetoothAdapter.getScanMode()).isEqualTo(BluetoothAdapter.SCAN_MODE_NONE); } @Test - @Config(maxSdk = S_V2) public void scanMode_getAndSet_invalid() throws Exception { - assertThat(bluetoothAdapter.setScanMode(9999)).isEqualTo(false); - } - - - @Test - @Config(minSdk = TIRAMISU) - public void scanMode_getAndSet_connectable_min_T() throws Exception { - assertThat(bluetoothAdapter.setScanMode(BluetoothAdapter.SCAN_MODE_CONNECTABLE)).isEqualTo( - BluetoothStatusCodes.SUCCESS); - assertThat(bluetoothAdapter.getScanMode()).isEqualTo(BluetoothAdapter.SCAN_MODE_CONNECTABLE); - } - - @Test - @Config(minSdk = TIRAMISU) - public void scanMode_getAndSet_discoverable_min_T() throws Exception { - assertThat(bluetoothAdapter.setScanMode(BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE)) - .isEqualTo(BluetoothStatusCodes.SUCCESS); - assertThat(bluetoothAdapter.getScanMode()) - .isEqualTo(BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE); - } - - @Test - @Config(minSdk = TIRAMISU) - public void scanMode_getAndSet_none_min_T() throws Exception { - assertThat(bluetoothAdapter.setScanMode(BluetoothAdapter.SCAN_MODE_NONE)).isEqualTo( - BluetoothStatusCodes.SUCCESS); - assertThat(bluetoothAdapter.getScanMode()).isEqualTo(BluetoothAdapter.SCAN_MODE_NONE); - } - - @Test - @Config(minSdk = TIRAMISU) - public void scanMode_getAndSet_invalid_min_T() throws Exception { - assertThat(bluetoothAdapter.setScanMode(9999)).isEqualTo(BluetoothStatusCodes.ERROR_UNKNOWN); + assertThat(bluetoothAdapter.setScanMode(9999)).isFalse(); } @Test diff --git a/robolectric/src/test/java/org/robolectric/shadows/ShadowLocaleDataTest.java b/robolectric/src/test/java/org/robolectric/shadows/ShadowLocaleDataTest.java index c1986b2db..0ae09f90e 100644 --- a/robolectric/src/test/java/org/robolectric/shadows/ShadowLocaleDataTest.java +++ b/robolectric/src/test/java/org/robolectric/shadows/ShadowLocaleDataTest.java @@ -4,7 +4,6 @@ import static android.os.Build.VERSION_CODES.JELLY_BEAN_MR1; import static android.os.Build.VERSION_CODES.LOLLIPOP; import static android.os.Build.VERSION_CODES.LOLLIPOP_MR1; import static android.os.Build.VERSION_CODES.M; -import static android.os.Build.VERSION_CODES.S; import static com.google.common.truth.Truth.assertThat; import android.os.Build; @@ -20,7 +19,6 @@ import org.robolectric.util.ReflectionHelpers; public class ShadowLocaleDataTest { @Test - @Config(maxSdk = Build.VERSION_CODES.S) public void shouldSupportLocaleEn_US() throws Exception { LocaleData localeData = LocaleData.get(Locale.US); @@ -42,32 +40,31 @@ public class ShadowLocaleDataTest { assertThat(localeData.longStandAloneWeekdayNames).isEqualTo(localeData.longWeekdayNames); assertThat(localeData.shortStandAloneWeekdayNames).isEqualTo(localeData.shortWeekdayNames); - assertThat((String) ReflectionHelpers.getField(localeData, "fullTimeFormat")).isEqualTo("h:mm:ss a zzzz"); - assertThat((String) ReflectionHelpers.getField(localeData, "longTimeFormat")).isEqualTo("h:mm:ss a z"); - assertThat((String) ReflectionHelpers.getField(localeData, "mediumTimeFormat")).isEqualTo("h:mm:ss a"); - assertThat((String) ReflectionHelpers.getField(localeData, "shortTimeFormat")).isEqualTo("h:mm a"); + assertThat(localeData.fullTimeFormat).isEqualTo("h:mm:ss a zzzz"); + assertThat(localeData.longTimeFormat).isEqualTo("h:mm:ss a z"); + assertThat(localeData.mediumTimeFormat).isEqualTo("h:mm:ss a"); + assertThat(localeData.shortTimeFormat).isEqualTo("h:mm a"); - assertThat((String) ReflectionHelpers.getField(localeData, "fullDateFormat")).isEqualTo("EEEE, MMMM d, y"); - assertThat((String) ReflectionHelpers.getField(localeData, "longDateFormat")).isEqualTo("MMMM d, y"); - assertThat((String) ReflectionHelpers.getField(localeData, "mediumDateFormat")).isEqualTo("MMM d, y"); - assertThat((String) ReflectionHelpers.getField(localeData, "shortDateFormat")).isEqualTo("M/d/yy"); + assertThat(localeData.fullDateFormat).isEqualTo("EEEE, MMMM d, y"); + assertThat(localeData.longDateFormat).isEqualTo("MMMM d, y"); + assertThat(localeData.mediumDateFormat).isEqualTo("MMM d, y"); + assertThat(localeData.shortDateFormat).isEqualTo("M/d/yy"); - assertThat((char) ReflectionHelpers.getField(localeData, "zeroDigit")).isEqualTo('0'); - assertThat((char) ReflectionHelpers.getField(localeData, "decimalSeparator")).isEqualTo('.'); - assertThat((char) ReflectionHelpers.getField(localeData, "groupingSeparator")).isEqualTo(','); - assertThat((char) ReflectionHelpers.getField(localeData, "patternSeparator")).isEqualTo(';'); + assertThat(localeData.zeroDigit).isEqualTo('0'); + assertThat(localeData.decimalSeparator).isEqualTo('.'); + assertThat(localeData.groupingSeparator).isEqualTo(','); + assertThat(localeData.patternSeparator).isEqualTo(';'); - assertThat((char) ReflectionHelpers.getField(localeData, "monetarySeparator")).isEqualTo('.'); - assertThat((char) ReflectionHelpers.getField(localeData, "perMill")).isEqualTo('‰'); + assertThat(localeData.monetarySeparator).isEqualTo('.'); - assertThat((String) ReflectionHelpers.getField(localeData, "exponentSeparator")).isEqualTo("E"); - assertThat((String) ReflectionHelpers.getField(localeData, "infinity")).isEqualTo("∞"); - assertThat((String) ReflectionHelpers.getField(localeData, "NaN")).isEqualTo("NaN"); + assertThat(localeData.exponentSeparator).isEqualTo("E"); + assertThat(localeData.infinity).isEqualTo("∞"); + assertThat(localeData.NaN).isEqualTo("NaN"); - assertThat((String) ReflectionHelpers.getField(localeData, "numberPattern")).isEqualTo("#,##0.###"); - assertThat((String) ReflectionHelpers.getField(localeData, "integerPattern")).isEqualTo("#,##0"); - assertThat((String) ReflectionHelpers.getField(localeData, "currencyPattern")).isEqualTo("¤#,##0.00;(¤#,##0.00)"); - assertThat((String) ReflectionHelpers.getField(localeData, "percentPattern")).isEqualTo("#,##0%"); + assertThat(localeData.numberPattern).isEqualTo("#,##0.###"); + assertThat(localeData.integerPattern).isEqualTo("#,##0"); + assertThat(localeData.currencyPattern).isEqualTo("¤#,##0.00;(¤#,##0.00)"); + assertThat(localeData.percentPattern).isEqualTo("#,##0%"); } @Test @@ -95,10 +92,25 @@ public class ShadowLocaleDataTest { } @Test - @Config(minSdk = LOLLIPOP_MR1, maxSdk = S) + @Config(maxSdk = Build.VERSION_CODES.O) + public void shouldSupportLocaleEn_US_perMill() throws Exception { + LocaleData localeData = LocaleData.get(Locale.US); + char perMillValue = ReflectionHelpers.getField(localeData, "perMill"); + assertThat(perMillValue).isEqualTo('‰'); + } + + @Test + @Config(minSdk = Build.VERSION_CODES.P) + public void shouldSupportLocaleEn_US_perMillPostP() throws Exception { + LocaleData localeData = LocaleData.get(Locale.US); + assertThat(localeData.perMill).isEqualTo("‰"); + } + + @Test + @Config(minSdk = LOLLIPOP_MR1) public void shouldSupportLocaleEn_US_percentPost22() throws Exception { LocaleData localeData = LocaleData.get(Locale.US); - assertThat((String) ReflectionHelpers.getField(localeData, "percent")).isEqualTo("%"); + assertThat(localeData.percent).isEqualTo("%"); } @Test @@ -125,11 +137,11 @@ public class ShadowLocaleDataTest { } @Test - @Config(minSdk = LOLLIPOP, maxSdk = S) + @Config(minSdk = LOLLIPOP) public void shouldSupportLocaleEn_US_since_lollipop() throws Exception { LocaleData localeData = LocaleData.get(Locale.US); - assertThat((String) ReflectionHelpers.getField(localeData, "minusSign")).isEqualTo("-"); + assertThat(localeData.minusSign).isEqualTo("-"); } @Test diff --git a/robotest-internal.mk b/robotest-internal.mk index 77e173024..938c1a57e 100644 --- a/robotest-internal.mk +++ b/robotest-internal.mk @@ -12,20 +12,21 @@ my_target_xml := $(intermediates)/$(my_filename_stem)-output.xml my_target_output := $(intermediates)/$(my_filename_stem)-output.txt my_target_retval := $(intermediates)/$(my_filename_stem)-retval.txt -ALL_TARGETS.$(my_target_output).META_LIC:=$(module_license_metadata) -ALL_TARGETS.$(my_target_xml).META_LIC:=$(module_license_metadata) - # We should always re-run the tests, even if nothing has changed. # So until the build system has a dedicated "no cache" option, claim # to write a file that is never produced. my_target_nocache := $(intermediates)/$(my_filename_stem)-nocache +# OpenJDK 10+ java binaries include v54+ classfiles which require ASM 7.0 or higher. +# While this build is still using ASM 6.0, pin to an OpenJDK 9 java binary: +my_require_v53_or_lower_class_files := true + # Private variables. $(my_target_output): PRIVATE_MODULE := $(LOCAL_MODULE) $(my_target_output): PRIVATE_TESTS := $(my_tests) $(my_target_output): PRIVATE_JARS := $(my_jars) $(my_target_output): PRIVATE_JAVA_ARGS := $(my_java_args) -$(my_target_output): PRIVATE_JAVA_PATH := $(ANDROID_JAVA11_HOME)/bin: +$(my_target_output): PRIVATE_JAVA_PATH := $(if $(my_require_v53_or_lower_class_files),$(ANDROID_JAVA9_HOME)/bin:,) $(my_target_output): PRIVATE_ROBOLECTRIC_PATH := $(my_robolectric_path) $(my_target_output): PRIVATE_ROBOLECTRIC_SCRIPT_PATH := $(my_robolectric_script_path) $(my_target_output): PRIVATE_TARGET_MESSAGE := $(my_target_message) @@ -97,3 +98,4 @@ my_target_retval := my_target_xml := my_target_nocache := my_filename_stem := +my_require_v53_or_lower_class_files := diff --git a/run_robolectric_module_tests.mk b/run_robolectric_module_tests.mk index 96f1cb59b..6cb0a24a7 100644 --- a/run_robolectric_module_tests.mk +++ b/run_robolectric_module_tests.mk @@ -53,8 +53,7 @@ copy_android_all_jar_pairs := \ $(android_all_source_dir)/android-all-9-robolectric-4913185-2.jar:$(android_all_target_dir)/android-all-9-robolectric-4913185-2.jar \ $(android_all_source_dir)/android-all-9plus-robolectric-5616371.jar:$(android_all_target_dir)/android-all-9plus-robolectric-5616371.jar \ $(android_all_source_dir)/android-all-R-beta2-robolectric-6625208.jar:$(android_all_target_dir)/android-all-R-beta2-robolectric-6625208.jar \ - $(android_all_source_dir)/android-all-S-beta3-robolectric-7541949.jar:$(android_all_target_dir)/android-all-S-beta3-robolectric-7541949.jar \ - $(local_android_all_source_jar):$(android_all_target_dir)/android-all-current-robolectric-r0.jar + $(local_android_all_source_jar):$(android_all_target_dir)/android-all-S-robolectric-r0.jar copy_android_all_jars := $(call copy-many-files, $(copy_android_all_jar_pairs)) # If debugging the tests was requested, set up the JVM parameters to enable it. diff --git a/run_robotests.mk b/run_robotests.mk index b5a6ee44e..e69eb1cf0 100644 --- a/run_robotests.mk +++ b/run_robotests.mk @@ -88,9 +88,8 @@ ifneq ($(DISABLE_ROBO_RUN_TESTS),true) # directory from which this module is invoked. ifeq ($(strip $(LOCAL_ROBOTEST_FILES)),) LOCAL_ROBOTEST_FILES := $(call find-files-in-subdirs,$(LOCAL_PATH)/src,*Test.java,.) - LOCAL_ROBOTEST_FILES += $(call find-files-in-subdirs,$(LOCAL_PATH)/src,*Test.kt,.) endif - # Convert the paths into package names by removing .java or *.kt extensions and replacing "/" with "." + # Convert the paths into package names by removing .java extension and replacing "/" with "." my_tests := $(sort $(subst /,.,$(basename $(LOCAL_ROBOTEST_FILES)))) ifdef my_test_filter_command my_tests := $(sort $(shell echo '$(my_tests)' | tr ' ' '\n' | $(my_test_filter_command))) @@ -136,8 +135,7 @@ ifneq ($(DISABLE_ROBO_RUN_TESTS),true) $(android_all_lib_path)/android-all-9-robolectric-4913185-2.jar:$(my_robolectric_path)/android-all-9-robolectric-4913185-2.jar \ $(android_all_lib_path)/android-all-10-robolectric-5803371.jar:$(my_robolectric_path)/android-all-10-robolectric-5803371.jar \ $(android_all_lib_path)/android-all-R-beta2-robolectric-6625208.jar:$(my_robolectric_path)/android-all-R-beta2-robolectric-6625208.jar \ - $(android_all_lib_path)/android-all-S-beta3-robolectric-7541949.jar:$(my_robolectric_path)/android-all-S-beta3-robolectric-7541949.jar \ - $(local_android_all_source_jar):$(my_robolectric_path)/android-all-current-robolectric-r0.jar + $(local_android_all_source_jar):$(my_robolectric_path)/android-all-S-robolectric-r0.jar copy_android_all_jars := $(call copy-many-files, $(copy_android_all_jar_pairs)) $(my_target): $(copy_android_all_jars) diff --git a/sandbox/Android.bp b/sandbox/Android.bp index ae6aa36cf..cad5fd576 100644 --- a/sandbox/Android.bp +++ b/sandbox/Android.bp @@ -18,10 +18,10 @@ java_library_host { "Robolectric_annotations", "Robolectric_shadowapi", "Robolectric_utils", - "asm-commons-9.2", + "asm-commons-6.0", "guava", - "asm-tree-9.2", - "asm-9.2", + "asm-tree-6.0", + "asm-6.0", "jsr305", ], } @@ -41,13 +41,13 @@ java_test_host { "Robolectric_utils", "mockito", "hamcrest", - "asm-commons-9.2", + "asm-commons-6.0", "guava", "objenesis", - "asm-tree-9.2", + "asm-tree-6.0", "junit", "truth-prebuilt", - "asm-9.2", + "asm-6.0", "jsr305", ], test_suites: ["general-tests"], diff --git a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowActivityThread.java b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowActivityThread.java index 829151728..f41493e1a 100644 --- a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowActivityThread.java +++ b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowActivityThread.java @@ -42,7 +42,7 @@ public class ShadowActivityThread { throws Exception { if (method.getName().equals("getApplicationInfo")) { String packageName = (String) args[0]; - int flags = ((Number) args[1]).intValue(); + int flags = (Integer) args[1]; if (packageName.equals(ShadowActivityThread.applicationInfo.packageName)) { return ShadowActivityThread.applicationInfo; @@ -57,7 +57,7 @@ public class ShadowActivityThread { } } else if (method.getName().equals("getActivityInfo")) { ComponentName className = (ComponentName) args[0]; - int flags = ((Number) args[1]).intValue(); + int flags = (Integer) args[1]; try { return RuntimeEnvironment.application @@ -68,7 +68,7 @@ public class ShadowActivityThread { } } else if (method.getName().equals("getServiceInfo")) { ComponentName className = (ComponentName) args[0]; - int flags = ((Number) args[1]).intValue(); + int flags = (Integer) args[1]; try { return RuntimeEnvironment.application @@ -78,7 +78,7 @@ public class ShadowActivityThread { throw new RemoteException(e.getMessage()); } } else if (method.getName().equals("getInstalledApplications")) { - int flags = ((Number) args[0]).intValue(); + int flags = (Integer) args[0]; int userId = (Integer) args[1]; return new ParceledListSlice<>( RuntimeEnvironment.application diff --git a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowBluetoothAdapter.java b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowBluetoothAdapter.java index ddfca8229..e184e4dc9 100644 --- a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowBluetoothAdapter.java +++ b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowBluetoothAdapter.java @@ -2,7 +2,6 @@ package org.robolectric.shadows; import static android.os.Build.VERSION_CODES.JELLY_BEAN_MR2; import static android.os.Build.VERSION_CODES.LOLLIPOP; -import static android.os.Build.VERSION_CODES.TIRAMISU; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothAdapter.LeScanCallback; @@ -10,7 +9,6 @@ import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothProfile; import android.bluetooth.BluetoothServerSocket; import android.bluetooth.BluetoothSocket; -import android.bluetooth.BluetoothStatusCodes; import android.os.ParcelUuid; import java.util.Collections; import java.util.HashMap; @@ -20,10 +18,9 @@ import java.util.Set; import java.util.UUID; import org.robolectric.annotation.Implementation; import org.robolectric.annotation.Implements; -import org.robolectric.RuntimeEnvironment; @SuppressWarnings({"UnusedDeclaration"}) -@Implements(value = BluetoothAdapter.class, looseSignatures = true) +@Implements(BluetoothAdapter.class) public class ShadowBluetoothAdapter { private static final int ADDRESS_LENGTH = 17; @@ -143,16 +140,15 @@ public class ShadowBluetoothAdapter { } @Implementation - protected Object setScanMode(int scanMode) { + protected boolean setScanMode(int scanMode) { if (scanMode != BluetoothAdapter.SCAN_MODE_CONNECTABLE && scanMode != BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE && scanMode != BluetoothAdapter.SCAN_MODE_NONE) { - return (RuntimeEnvironment.getApiLevel() >= TIRAMISU) ? - BluetoothStatusCodes.ERROR_UNKNOWN : false; + return false; } + this.scanMode = scanMode; - return (RuntimeEnvironment.getApiLevel() >= TIRAMISU) ? - BluetoothStatusCodes.SUCCESS : true; + return true; } @Implementation diff --git a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowContextImpl.java b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowContextImpl.java index 51cf6bb96..2b29bdb4d 100644 --- a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowContextImpl.java +++ b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowContextImpl.java @@ -242,13 +242,6 @@ public class ShadowContextImpl { } @Implementation - protected Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter, - String broadcastPermission, Handler scheduler, int flags) { - return getShadowInstrumentation() - .registerReceiver(receiver, filter, broadcastPermission, scheduler, realContextImpl); - } - - @Implementation protected Intent registerReceiver( BroadcastReceiver receiver, IntentFilter filter, diff --git a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowDisplayManagerGlobal.java b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowDisplayManagerGlobal.java index b9691d104..8f730a9cb 100644 --- a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowDisplayManagerGlobal.java +++ b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowDisplayManagerGlobal.java @@ -81,7 +81,7 @@ public class ShadowDisplayManagerGlobal { } // @Override // todo: use @Implements/@Implementation for signature checking - public int[] getDisplayIds(boolean includeDisabledDisplays) throws RemoteException { + public int[] getDisplayIds() throws RemoteException { int[] ids = new int[displayInfos.size()]; int i = 0; for (Integer displayId : displayInfos.keySet()) { diff --git a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowLocaleData.java b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowLocaleData.java index 5ce12951b..50f58f1aa 100644 --- a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowLocaleData.java +++ b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowLocaleData.java @@ -6,7 +6,6 @@ import static android.os.Build.VERSION_CODES.LOLLIPOP; import static android.os.Build.VERSION_CODES.LOLLIPOP_MR1; import static android.os.Build.VERSION_CODES.M; import static android.os.Build.VERSION_CODES.Q; -import static android.os.Build.VERSION_CODES.S; import static org.robolectric.RuntimeEnvironment.getApiLevel; import java.util.Locale; @@ -62,6 +61,11 @@ public class ShadowLocaleData { localeData.longStandAloneWeekdayNames = localeData.longWeekdayNames; localeData.shortStandAloneWeekdayNames = localeData.shortWeekdayNames; + localeData.fullTimeFormat = "h:mm:ss a zzzz"; + localeData.longTimeFormat = "h:mm:ss a z"; + localeData.mediumTimeFormat = "h:mm:ss a"; + localeData.shortTimeFormat = "h:mm a"; + if (getApiLevel() >= M) { localeData.timeFormat_hm = "h:mm a"; localeData.timeFormat_Hm = "HH:mm"; @@ -70,6 +74,45 @@ public class ShadowLocaleData { ReflectionHelpers.setField(localeData, "timeFormat24", "HH:mm"); } + localeData.fullDateFormat = "EEEE, MMMM d, y"; + localeData.longDateFormat = "MMMM d, y"; + localeData.mediumDateFormat = "MMM d, y"; + localeData.shortDateFormat = "M/d/yy"; + + localeData.zeroDigit = '0'; + localeData.decimalSeparator = '.'; + localeData.groupingSeparator = ','; + localeData.patternSeparator = ';'; + + if (getApiLevel() >= LOLLIPOP_MR1) { + // Lollipop MR1 uses a String + localeData.percent = "%"; + } else { + // Upto Lollipop was a char + ReflectionHelpers.setField(localeData, "percent", '%'); + } + + if (getApiLevel() >= android.os.Build.VERSION_CODES.P) { + // P uses a String + localeData.perMill = "‰"; + } else { + // Up to P was a char + ReflectionHelpers.setField(localeData, "perMill", '‰'); + } + + localeData.monetarySeparator = '.'; + + if (getApiLevel() >= LOLLIPOP) { + // Lollipop uses a String + localeData.minusSign = "-"; + } else { + // Upto KitKat was a char + ReflectionHelpers.setField(localeData, "minusSign", '-'); + } + + localeData.exponentSeparator = "E"; + localeData.infinity = "\u221E"; + localeData.NaN = "NaN"; // These fields are removed in Android R or later if (getApiLevel() <= Q) { @@ -78,49 +121,9 @@ public class ShadowLocaleData { ReflectionHelpers.setField(localeData, "yesterday", "Yesterday"); } - - // These fields are removed in Android T or later - if (getApiLevel() <= S) { - ReflectionHelpers.setField(localeData, "fullDateFormat", "EEEE, MMMM d, y"); - ReflectionHelpers.setField(localeData, "longDateFormat", "MMMM d, y"); - ReflectionHelpers.setField(localeData, "mediumDateFormat", "MMM d, y"); - ReflectionHelpers.setField(localeData, "shortDateFormat", "M/d/yy"); - ReflectionHelpers.setField(localeData, "zeroDigit", '0'); - ReflectionHelpers.setField(localeData, "decimalSeparator", '.'); - ReflectionHelpers.setField(localeData, "groupingSeparator", ','); - ReflectionHelpers.setField(localeData, "patternSeparator", ';'); - ReflectionHelpers.setField(localeData, "monetarySeparator", '.'); - ReflectionHelpers.setField(localeData, "exponentSeparator", "E"); - ReflectionHelpers.setField(localeData, "infinity", "\u221E"); - ReflectionHelpers.setField(localeData, "NaN", "NaN"); - ReflectionHelpers.setField(localeData, "numberPattern", "\u0023,\u0023\u00230.\u0023\u0023\u0023"); - ReflectionHelpers.setField(localeData, "integerPattern", "\u0023,\u0023\u00230"); - ReflectionHelpers.setField(localeData, "currencyPattern", "\u00A4\u0023,\u0023\u00230.00;(\u00A4\u0023,\u0023\u00230.00)"); - ReflectionHelpers.setField(localeData, "percentPattern", "\u0023,\u0023\u00230%"); - - if (getApiLevel() >= LOLLIPOP_MR1) { - // Lollipop MR1 uses a String - ReflectionHelpers.setField(localeData, "percent", "%"); - } else { - // Upto Lollipop was a char - ReflectionHelpers.setField(localeData, "percent", '%'); - } - - if (getApiLevel() >= android.os.Build.VERSION_CODES.P) { - // P uses a String - ReflectionHelpers.setField(localeData, "perMill", "‰"); - } else { - // Up to P was a char - ReflectionHelpers.setField(localeData, "perMill", '‰'); - } - - if (getApiLevel() >= LOLLIPOP) { - // Lollipop uses a String - ReflectionHelpers.setField(localeData, "minusSign", "-"); - } else { - // Upto KitKat was a char - ReflectionHelpers.setField(localeData, "minusSign", '-'); - } - } + localeData.numberPattern = "\u0023,\u0023\u00230.\u0023\u0023\u0023"; + localeData.integerPattern = "\u0023,\u0023\u00230"; + localeData.currencyPattern = "\u00A4\u0023,\u0023\u00230.00;(\u00A4\u0023,\u0023\u00230.00)"; + localeData.percentPattern = "\u0023,\u0023\u00230%"; } } diff --git a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowPackageBackwardCompatibility.java b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowPackageBackwardCompatibility.java deleted file mode 100644 index 60a465bae..000000000 --- a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowPackageBackwardCompatibility.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.robolectric.shadows; - -import static android.os.Build.VERSION_CODES.P; - -import com.android.server.pm.parsing.library.PackageSharedLibraryUpdater; -import java.util.List; -import java.util.function.Supplier; -import org.robolectric.annotation.Implementation; -import org.robolectric.annotation.Implements; - -/** - * Shadow of {@link PackageBackwardCompatibility} to handle a scenario that can come up when - * multiple Android versions end up on the classpath - */ -@Implements(className = "android.content.pm.PackageBackwardCompatibility", maxSdk = P) -public class ShadowPackageBackwardCompatibility { - - /** - * Stubbing this out as if Android S+ is on the classpath, we'll get a ClassCastException instead - * of a ClassNotFoundException. Since we don't really need this logic, simpler to just skip it - */ - @Implementation - protected static boolean addOptionalUpdater( - List<PackageSharedLibraryUpdater> packageUpdaters, - String className, - Supplier<PackageSharedLibraryUpdater> defaultUpdater) { - return false; - } -} diff --git a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowPackageManager.java b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowPackageManager.java index 56b93bac8..d8a3011c3 100644 --- a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowPackageManager.java +++ b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowPackageManager.java @@ -53,11 +53,11 @@ import android.content.pm.PackageParser; import android.content.pm.PackageParser.Component; import android.content.pm.PackageParser.Package; import android.content.pm.PackageStats; +import android.content.pm.PackageUserState; import android.content.pm.PermissionGroupInfo; import android.content.pm.PermissionInfo; import android.content.pm.ResolveInfo; import android.content.pm.Signature; -import android.content.pm.pkg.FrameworkPackageUserState; import android.content.res.Resources; import android.graphics.drawable.Drawable; import android.net.Uri; @@ -775,7 +775,7 @@ public class ShadowPackageManager { 0, 0, new HashSet<String>(), - FrameworkPackageUserState.DEFAULT); + new PackageUserState()); } else if (RuntimeEnvironment.getApiLevel() >= LOLLIPOP_MR1) { packageInfo = ReflectionHelpers.callStaticMethod( @@ -788,7 +788,7 @@ public class ShadowPackageManager { ReflectionHelpers.ClassParameter.from(long.class, 0L), ReflectionHelpers.ClassParameter.from(ArraySet.class, new ArraySet<>()), ReflectionHelpers.ClassParameter.from( - FrameworkPackageUserState.class, FrameworkPackageUserState.DEFAULT)); + PackageUserState.class, new PackageUserState())); } else if (RuntimeEnvironment.getApiLevel() >= JELLY_BEAN_MR1) { packageInfo = ReflectionHelpers.callStaticMethod( @@ -801,7 +801,7 @@ public class ShadowPackageManager { ReflectionHelpers.ClassParameter.from(long.class, 0L), ReflectionHelpers.ClassParameter.from(HashSet.class, new HashSet<>()), ReflectionHelpers.ClassParameter.from( - FrameworkPackageUserState.class, FrameworkPackageUserState.DEFAULT)); + PackageUserState.class, new PackageUserState())); } else { packageInfo = ReflectionHelpers.callStaticMethod( diff --git a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowPackageParser.java b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowPackageParser.java index 494079303..8c2f6e1fa 100644 --- a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowPackageParser.java +++ b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowPackageParser.java @@ -72,15 +72,5 @@ public class ShadowPackageParser { public boolean hasFeature(String feature) { return false; } - - // @Override for SDK < 30 - public String[] getOverlayPaths(String s, String s1) { - return null; - } - - // @Override for SDK < 30 - public String[] getOverlayApks(String s) { - return null; - } } } diff --git a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowSystemServiceRegistry.java b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowSystemServiceRegistry.java index 61a4174fa..542d137c4 100644 --- a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowSystemServiceRegistry.java +++ b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowSystemServiceRegistry.java @@ -21,10 +21,9 @@ public class ShadowSystemServiceRegistry { classForName("android.app.SystemServiceRegistry"), "SYSTEM_SERVICE_FETCHERS"); Class staticApplicationServiceFetcherClass = null; - if (RuntimeEnvironment.getApiLevel() >= Build.VERSION_CODES.N - && RuntimeEnvironment.getApiLevel() < Build.VERSION_CODES.S) { - staticApplicationServiceFetcherClass = - classForName("android.app.SystemServiceRegistry$StaticApplicationContextServiceFetcher"); + if (RuntimeEnvironment.getApiLevel() >= Build.VERSION_CODES.N) { + staticApplicationServiceFetcherClass = + classForName("android.app.SystemServiceRegistry$StaticApplicationContextServiceFetcher"); } else if (RuntimeEnvironment.getApiLevel() == Build.VERSION_CODES.M) { staticApplicationServiceFetcherClass = classForName("android.app.SystemServiceRegistry$StaticOuterContextServiceFetcher"); @@ -34,8 +33,7 @@ public class ShadowSystemServiceRegistry { classForName("android.app.SystemServiceRegistry$StaticServiceFetcher"); for (Object o : fetchers.values()) { - if (staticApplicationServiceFetcherClass != null - && staticApplicationServiceFetcherClass.isInstance(o)) { + if (staticApplicationServiceFetcherClass.isInstance(o)) { ReflectionHelpers.setField( staticApplicationServiceFetcherClass, o, "mCachedInstance", null); } else if (staticServiceFetcherClass.isInstance(o)) { diff --git a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowUserManager.java b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowUserManager.java index e1625d159..44996faa7 100644 --- a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowUserManager.java +++ b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowUserManager.java @@ -7,7 +7,6 @@ import static android.os.Build.VERSION_CODES.M; import static android.os.Build.VERSION_CODES.N; import static android.os.Build.VERSION_CODES.N_MR1; import static android.os.Build.VERSION_CODES.R; -import static android.os.Build.VERSION_CODES.TIRAMISU; import static org.robolectric.shadow.api.Shadow.directlyOn; @@ -259,12 +258,6 @@ public class ShadowUserManager { protected boolean hasUserRestrictionForUser(String restrictionKey, UserHandle userHandle) { return hasUserRestriction(restrictionKey, userHandle); } - - @Implementation(minSdk = TIRAMISU) - protected boolean hasUserRestrictionForUser(String restrictionKey, int userId) { - Bundle bundle = userRestrictions.get(userId); - return bundle != null && bundle.getBoolean(restrictionKey); - } // END-INTERNAL public void setUserRestriction(UserHandle userHandle, String restrictionKey, boolean value) { diff --git a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowViewRootImpl.java b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowViewRootImpl.java index ad17119d4..c42e50710 100644 --- a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowViewRootImpl.java +++ b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowViewRootImpl.java @@ -11,11 +11,10 @@ import android.os.Looper; import android.util.MergedConfiguration; import android.view.Display; import android.view.IWindowSession; -import android.view.InsetsState; import android.view.ViewRootImpl; import android.view.WindowManager; import android.window.ClientWindowFrames; - +import java.util.ArrayList; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Implementation; import org.robolectric.annotation.Implements; @@ -24,8 +23,6 @@ import org.robolectric.annotation.Resetter; import org.robolectric.util.ReflectionHelpers; import org.robolectric.util.ReflectionHelpers.ClassParameter; -import java.util.ArrayList; - @Implements(value = ViewRootImpl.class, isInAndroidSdk = false) public class ShadowViewRootImpl { @@ -153,7 +150,7 @@ public class ShadowViewRootImpl { ClassParameter.from(android.view.DisplayCutout.ParcelableWrapper.class, new android.view.DisplayCutout.ParcelableWrapper())); // END-INTERNAL - } else if (apiLevel <= Build.VERSION_CODES.S_V2) { + } else if (apiLevel >= Build.VERSION_CODES.S) { // BEGIN-INTERNAL ReflectionHelpers.callInstanceMethod(ViewRootImpl.class, component, "dispatchResized", ClassParameter.from(ClientWindowFrames.class, clientWindowFrame), @@ -163,19 +160,6 @@ public class ShadowViewRootImpl { ClassParameter.from(boolean.class, false), ClassParameter.from(int.class, 0)); // END-INTERNAL - } else if (apiLevel >= Build.VERSION_CODES.TIRAMISU) { - // BEGIN-INTERNAL - ReflectionHelpers.callInstanceMethod(ViewRootImpl.class, component, "dispatchResized", - ClassParameter.from(ClientWindowFrames.class, clientWindowFrame), - ClassParameter.from(boolean.class, true), - ClassParameter.from(MergedConfiguration.class, new MergedConfiguration()), - ClassParameter.from(InsetsState.class, new InsetsState()), - ClassParameter.from(boolean.class, false), - ClassParameter.from(boolean.class, false), - ClassParameter.from(int.class, 0), - ClassParameter.from(int.class, 0), - ClassParameter.from(int.class, 0)); - // END-INTERNAL } else { throw new RuntimeException("Could not find AndroidRuntimeAdapter for API level: " + apiLevel); } diff --git a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowWifiInfo.java b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowWifiInfo.java index ef2e463ea..a2dca62fd 100644 --- a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowWifiInfo.java +++ b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowWifiInfo.java @@ -61,9 +61,9 @@ public class ShadowWifiInfo { private static Object getWifiSsid(String ssid) { WifiSsid wifiSsid; if (ssid.startsWith("0x")) { - wifiSsid = WifiSsid.fromString(ssid.substring(2)); + wifiSsid = WifiSsid.createFromHex(ssid); } else { - wifiSsid = WifiSsid.fromUtf8Text(ssid); + wifiSsid = WifiSsid.createFromAsciiEncoded(ssid); } return wifiSsid; } diff --git a/shadows/httpclient/Android.bp b/shadows/httpclient/Android.bp index 39d57a8be..613f852af 100644 --- a/shadows/httpclient/Android.bp +++ b/shadows/httpclient/Android.bp @@ -27,10 +27,6 @@ java_library_host { plugins: ["Robolectric_processor"], javacflags: ["-Aorg.robolectric.annotation.processing.shadowPackage=org.robolectric.shadows.httpclient"], srcs: ["src/main/java/**/*.java"], - - errorprone: { - javacflags: ["-Xep:EqualsNull:WARN"], - }, } //############################################# @@ -55,14 +51,14 @@ java_test_host { "bouncycastle-unbundled", "hamcrest", "robolectric-httpclient-4.0.3", - "asm-commons-9.2", + "asm-commons-6.0", "robolectric-httpcore-4.0.1", "guava", - "asm-tree-9.2", + "asm-tree-6.0", "junit", "truth-prebuilt", "robolectric-ant-1.8.0", - "asm-9.2", + "asm-6.0", "jsr305", "robolectric-host-android_all", "robolectric-host-org_apache_http_legacy", diff --git a/shadows/supportv4/Android.bp b/shadows/supportv4/Android.bp index 04714e520..a1d30f8d9 100644 --- a/shadows/supportv4/Android.bp +++ b/shadows/supportv4/Android.bp @@ -53,14 +53,14 @@ java_test_host { "mockito", "bouncycastle-unbundled", "hamcrest", - "asm-commons-9.2", + "asm-commons-6.0", "guava", "objenesis", - "asm-tree-9.2", + "asm-tree-6.0", "junit", "truth-prebuilt", "robolectric-ant-1.8.0", - "asm-9.2", + "asm-6.0", "jsr305", ], libs: ["robolectric-host-android_all"], |