diff options
author | Eric Biggers <ebiggers@google.com> | 2023-11-16 23:06:32 +0000 |
---|---|---|
committer | Eric Biggers <ebiggers@google.com> | 2023-11-17 19:24:25 +0000 |
commit | 82724e7932baa898c199bbc7ad4b53e7f2459cf2 (patch) | |
tree | 2d42320e523283a0987fc41c47d076a480513efe | |
parent | 639656f8968f7649a20e265a751d749e831971d0 (diff) | |
download | robolectric-shadows-82724e7932baa898c199bbc7ad4b53e7f2459cf2.tar.gz |
Do not use isFileEncryptedNativeOrEmulated() on Android 14 and later
Starting in Android 14 (U), the hidden static method
StorageManager#isFileEncryptedNativeOrEmulated() is deprecated and has
no callers other than robolectric. Therefore, stop depending on it.
This unblocks the removal of this obsolete code.
Bug: 232458753
Test: presubmit
Change-Id: Ib43f8272290c9f3f7108170293523168106e30d1
-rw-r--r-- | robolectric/src/test/java/org/robolectric/shadows/ShadowStorageManagerTest.java | 11 | ||||
-rw-r--r-- | shadows/framework/src/main/java/org/robolectric/shadows/ShadowStorageManager.java | 5 |
2 files changed, 13 insertions, 3 deletions
diff --git a/robolectric/src/test/java/org/robolectric/shadows/ShadowStorageManagerTest.java b/robolectric/src/test/java/org/robolectric/shadows/ShadowStorageManagerTest.java index e1c4c7104..220317adc 100644 --- a/robolectric/src/test/java/org/robolectric/shadows/ShadowStorageManagerTest.java +++ b/robolectric/src/test/java/org/robolectric/shadows/ShadowStorageManagerTest.java @@ -1,6 +1,7 @@ package org.robolectric.shadows; import static android.os.Build.VERSION_CODES.N; +import static android.os.Build.VERSION_CODES.TIRAMISU; import static com.google.common.truth.Truth.assertThat; import static org.robolectric.RuntimeEnvironment.application; import static org.robolectric.Shadows.shadowOf; @@ -17,6 +18,7 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.annotation.Config; +import org.robolectric.util.ReflectionHelpers; /** Unit tests for {@link ShadowStorageManager}. */ @RunWith(AndroidJUnit4.class) @@ -53,10 +55,15 @@ public class ShadowStorageManagerTest { } @Test - @Config(minSdk = N) + @Config(minSdk = N, maxSdk = TIRAMISU) public void isFileEncryptedNativeOrEmulated() { shadowOf(storageManager).setFileEncryptedNativeOrEmulated(true); - assertThat(StorageManager.isFileEncryptedNativeOrEmulated()).isTrue(); + // Use reflection, as this method is planned to be removed from StorageManager in V. + assertThat( + (boolean) + ReflectionHelpers.callStaticMethod( + StorageManager.class, "isFileEncryptedNativeOrEmulated")) + .isTrue(); } @Test diff --git a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowStorageManager.java b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowStorageManager.java index 2614d7e88..f17c6f434 100644 --- a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowStorageManager.java +++ b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowStorageManager.java @@ -2,6 +2,7 @@ package org.robolectric.shadows; import static android.os.Build.VERSION_CODES.M; import static android.os.Build.VERSION_CODES.N; +import static android.os.Build.VERSION_CODES.TIRAMISU; import static org.robolectric.RuntimeEnvironment.application; import android.os.UserManager; @@ -82,8 +83,10 @@ public class ShadowStorageManager { return null; } + // Use maxSdk=T for this method, since starting in U, this method in StorageManager is deprecated + // and is no longer called by the Android framework. It's planned to be removed entirely in V. @HiddenApi - @Implementation(minSdk = N) + @Implementation(minSdk = N, maxSdk = TIRAMISU) protected static boolean isFileEncryptedNativeOrEmulated() { return isFileEncryptionSupported; } |