Merge "API for accessing preloaded files cache"
diff --git a/api/system-current.txt b/api/system-current.txt
index d102a6e..ac3a9a1 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -8992,6 +8992,7 @@
method public abstract android.content.pm.PackageManager getPackageManager();
method public abstract java.lang.String getPackageName();
method public abstract java.lang.String getPackageResourcePath();
+ method public abstract java.io.File getPreloadsFileCache();
method public abstract android.content.res.Resources getResources();
method public abstract android.content.SharedPreferences getSharedPreferences(java.lang.String, int);
method public final java.lang.String getString(int);
@@ -9203,6 +9204,7 @@
method public android.content.pm.PackageManager getPackageManager();
method public java.lang.String getPackageName();
method public java.lang.String getPackageResourcePath();
+ method public java.io.File getPreloadsFileCache();
method public android.content.res.Resources getResources();
method public android.content.SharedPreferences getSharedPreferences(java.lang.String, int);
method public java.lang.Object getSystemService(java.lang.String);
@@ -43391,6 +43393,7 @@
method public android.content.pm.PackageManager getPackageManager();
method public java.lang.String getPackageName();
method public java.lang.String getPackageResourcePath();
+ method public java.io.File getPreloadsFileCache();
method public android.content.res.Resources getResources();
method public android.content.SharedPreferences getSharedPreferences(java.lang.String, int);
method public java.lang.Object getSystemService(java.lang.String);
diff --git a/core/java/android/app/ContextImpl.java b/core/java/android/app/ContextImpl.java
index e154d2b..045bd0a 100644
--- a/core/java/android/app/ContextImpl.java
+++ b/core/java/android/app/ContextImpl.java
@@ -638,6 +638,15 @@
}
}
+ /**
+ * @hide
+ */
+ @Nullable
+ @Override
+ public File getPreloadsFileCache() {
+ return Environment.getDataPreloadsFileCacheDirectory(getPackageName());
+ }
+
@Override
public File getFileStreamPath(String name) {
return makeFilename(getFilesDir(), name);
diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java
index 44e6ac5..44f6c43 100644
--- a/core/java/android/content/Context.java
+++ b/core/java/android/content/Context.java
@@ -1230,6 +1230,16 @@
public abstract File getExternalCacheDir();
/**
+ * Returns absolute path to application-specific directory in the preloaded cache.
+ * <p>Files stored in the cache directory can be deleted when the device runs low on storage.
+ * There is no guarantee when these files will be deleted.
+ * @hide
+ */
+ @Nullable
+ @SystemApi
+ public abstract File getPreloadsFileCache();
+
+ /**
* Returns absolute paths to application-specific directories on all
* shared/external storage devices where the application can place cache
* files it owns. These files are internal to the application, and not
diff --git a/core/java/android/content/ContextWrapper.java b/core/java/android/content/ContextWrapper.java
index 38cdbb4..c932b23 100644
--- a/core/java/android/content/ContextWrapper.java
+++ b/core/java/android/content/ContextWrapper.java
@@ -281,6 +281,13 @@
return mBase.getDir(name, mode);
}
+
+ /** @hide **/
+ @Override
+ public File getPreloadsFileCache() {
+ return mBase.getPreloadsFileCache();
+ }
+
@Override
public SQLiteDatabase openOrCreateDatabase(String name, int mode, CursorFactory factory) {
return mBase.openOrCreateDatabase(name, mode, factory);
diff --git a/test-runner/src/android/test/mock/MockContext.java b/test-runner/src/android/test/mock/MockContext.java
index 6bcd08a..3f5ca84 100644
--- a/test-runner/src/android/test/mock/MockContext.java
+++ b/test-runner/src/android/test/mock/MockContext.java
@@ -765,6 +765,10 @@
throw new UnsupportedOperationException();
}
+ /** @hide **/
+ @Override
+ public File getPreloadsFileCache() { throw new UnsupportedOperationException(); }
+
@Override
public Context createDeviceProtectedStorageContext() {
throw new UnsupportedOperationException();
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeContext.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeContext.java
index 852ab94..2c9fe29 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeContext.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeContext.java
@@ -1412,6 +1412,12 @@
}
@Override
+ public File getPreloadsFileCache() {
+ // pass
+ return null;
+ }
+
+ @Override
public ContentResolver getContentResolver() {
if (mContentResolver == null) {
mContentResolver = new BridgeContentResolver(this);