Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b5a35b81 authored by Jeff Sharkey's avatar Jeff Sharkey
Browse files

Refactor cache behavior from "atmoic" to "group".

Using the word "atomic" has too much baggage relating to locking
guarantees, so move to something softer.

Add isQuotaSupported() for CTS tests.

Move CacheQuotaStrategy over to using SparseLongArray, which has a
more efficient memory footprint inside the system server.

Test: cts-tradefed run commandAndExit cts-dev -m CtsAppSecurityHostTestCases -t android.appsecurity.cts.StorageHostTest
Bug: 35812899, 35684969, 36482620
Change-Id: I894f53e6f3bc76c77d1bb18c51db14833df14a49
parent 20f0d091
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -31899,13 +31899,13 @@ package android.os.storage {
    method public android.os.storage.StorageVolume getPrimaryStorageVolume();
    method public android.os.storage.StorageVolume getStorageVolume(java.io.File);
    method public java.util.List<android.os.storage.StorageVolume> getStorageVolumes();
    method public boolean isCacheBehaviorAtomic(java.io.File) throws java.io.IOException;
    method public boolean isCacheBehaviorGroup(java.io.File) throws java.io.IOException;
    method public boolean isCacheBehaviorTombstone(java.io.File) throws java.io.IOException;
    method public boolean isEncrypted(java.io.File);
    method public boolean isObbMounted(java.lang.String);
    method public boolean mountObb(java.lang.String, java.lang.String, android.os.storage.OnObbStateChangeListener);
    method public android.os.ParcelFileDescriptor openProxyFileDescriptor(int, android.os.ProxyFileDescriptorCallback) throws java.io.IOException;
    method public void setCacheBehaviorAtomic(java.io.File, boolean) throws java.io.IOException;
    method public void setCacheBehaviorGroup(java.io.File, boolean) throws java.io.IOException;
    method public void setCacheBehaviorTombstone(java.io.File, boolean) throws java.io.IOException;
    method public boolean unmountObb(java.lang.String, boolean, android.os.storage.OnObbStateChangeListener);
    field public static final java.lang.String ACTION_MANAGE_STORAGE = "android.os.storage.action.MANAGE_STORAGE";
+2 −0
Original line number Diff line number Diff line
@@ -169,6 +169,8 @@ package android.os.storage {
    method public deprecated long getExternalCacheSizeBytes();
    method public android.os.storage.StorageVolume getPrimaryVolume();
    method public android.os.storage.StorageVolume[] getVolumeList();
    method public deprecated boolean isCacheBehaviorAtomic(java.io.File) throws java.io.IOException;
    method public deprecated void setCacheBehaviorAtomic(java.io.File, boolean) throws java.io.IOException;
  }

}
+2 −2
Original line number Diff line number Diff line
@@ -34729,13 +34729,13 @@ package android.os.storage {
    method public android.os.storage.StorageVolume getPrimaryStorageVolume();
    method public android.os.storage.StorageVolume getStorageVolume(java.io.File);
    method public java.util.List<android.os.storage.StorageVolume> getStorageVolumes();
    method public boolean isCacheBehaviorAtomic(java.io.File) throws java.io.IOException;
    method public boolean isCacheBehaviorGroup(java.io.File) throws java.io.IOException;
    method public boolean isCacheBehaviorTombstone(java.io.File) throws java.io.IOException;
    method public boolean isEncrypted(java.io.File);
    method public boolean isObbMounted(java.lang.String);
    method public boolean mountObb(java.lang.String, java.lang.String, android.os.storage.OnObbStateChangeListener);
    method public android.os.ParcelFileDescriptor openProxyFileDescriptor(int, android.os.ProxyFileDescriptorCallback) throws java.io.IOException;
    method public void setCacheBehaviorAtomic(java.io.File, boolean) throws java.io.IOException;
    method public void setCacheBehaviorGroup(java.io.File, boolean) throws java.io.IOException;
    method public void setCacheBehaviorTombstone(java.io.File, boolean) throws java.io.IOException;
    method public boolean unmountObb(java.lang.String, boolean, android.os.storage.OnObbStateChangeListener);
    field public static final java.lang.String ACTION_MANAGE_STORAGE = "android.os.storage.action.MANAGE_STORAGE";
+2 −0
Original line number Diff line number Diff line
@@ -163,6 +163,8 @@ package android.os.storage {
    method public deprecated long getExternalCacheSizeBytes();
    method public android.os.storage.StorageVolume getPrimaryVolume();
    method public android.os.storage.StorageVolume[] getVolumeList();
    method public deprecated boolean isCacheBehaviorAtomic(java.io.File) throws java.io.IOException;
    method public deprecated void setCacheBehaviorAtomic(java.io.File, boolean) throws java.io.IOException;
  }

}
+3 −2
Original line number Diff line number Diff line
@@ -6950,6 +6950,7 @@ package android.app.usage {
  public class StorageStatsManager {
    method public long getFreeBytes(java.lang.String);
    method public long getTotalBytes(java.lang.String);
    method public boolean isQuotaSupported(java.lang.String);
    method public android.app.usage.ExternalStorageStats queryExternalStatsForUser(java.lang.String, android.os.UserHandle);
    method public android.app.usage.StorageStats queryStatsForPackage(java.lang.String, java.lang.String, android.os.UserHandle);
    method public android.app.usage.StorageStats queryStatsForUid(java.lang.String, int);
@@ -32024,13 +32025,13 @@ package android.os.storage {
    method public android.os.storage.StorageVolume getPrimaryStorageVolume();
    method public android.os.storage.StorageVolume getStorageVolume(java.io.File);
    method public java.util.List<android.os.storage.StorageVolume> getStorageVolumes();
    method public boolean isCacheBehaviorAtomic(java.io.File) throws java.io.IOException;
    method public boolean isCacheBehaviorGroup(java.io.File) throws java.io.IOException;
    method public boolean isCacheBehaviorTombstone(java.io.File) throws java.io.IOException;
    method public boolean isEncrypted(java.io.File);
    method public boolean isObbMounted(java.lang.String);
    method public boolean mountObb(java.lang.String, java.lang.String, android.os.storage.OnObbStateChangeListener);
    method public android.os.ParcelFileDescriptor openProxyFileDescriptor(int, android.os.ProxyFileDescriptorCallback) throws java.io.IOException;
    method public void setCacheBehaviorAtomic(java.io.File, boolean) throws java.io.IOException;
    method public void setCacheBehaviorGroup(java.io.File, boolean) throws java.io.IOException;
    method public void setCacheBehaviorTombstone(java.io.File, boolean) throws java.io.IOException;
    method public boolean unmountObb(java.lang.String, boolean, android.os.storage.OnObbStateChangeListener);
    field public static final java.lang.String ACTION_MANAGE_STORAGE = "android.os.storage.action.MANAGE_STORAGE";
Loading