aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Biggers <ebiggers@google.com>2023-11-16 23:06:32 +0000
committerEric Biggers <ebiggers@google.com>2023-11-17 19:24:25 +0000
commit82724e7932baa898c199bbc7ad4b53e7f2459cf2 (patch)
tree2d42320e523283a0987fc41c47d076a480513efe
parent639656f8968f7649a20e265a751d749e831971d0 (diff)
downloadrobolectric-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.java11
-rw-r--r--shadows/framework/src/main/java/org/robolectric/shadows/ShadowStorageManager.java5
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;
}