diff options
| author | 2015-12-08 02:27:07 +0000 | |
|---|---|---|
| committer | 2015-12-08 02:27:07 +0000 | |
| commit | 6b8e8500f8e02081d1e3540cdcdfdefe15de9c40 (patch) | |
| tree | 976e0eb35b42c768b253e962a216d90973ad1506 | |
| parent | 4cbc315305379b0892cc4fb347d7050f3058f81e (diff) | |
| parent | 6a6cdafaec56fcd793214678c7fcc52f0b860cfc (diff) | |
Merge "APIs to obtain SharedPreferences paths."
| -rw-r--r-- | api/current.txt | 4 | ||||
| -rw-r--r-- | api/system-current.txt | 4 | ||||
| -rw-r--r-- | api/test-current.txt | 4 | ||||
| -rw-r--r-- | core/java/android/app/ContextImpl.java | 12 | ||||
| -rw-r--r-- | core/java/android/content/Context.java | 27 | ||||
| -rw-r--r-- | core/java/android/content/ContextWrapper.java | 11 | ||||
| -rw-r--r-- | core/java/android/preference/PreferenceManager.java | 8 | ||||
| -rw-r--r-- | test-runner/src/android/test/mock/MockContext.java | 11 | ||||
| -rw-r--r-- | tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeContext.java | 12 |
9 files changed, 62 insertions, 31 deletions
diff --git a/api/current.txt b/api/current.txt index bb6b52c9b534..007ed134d9ab 100644 --- a/api/current.txt +++ b/api/current.txt @@ -7823,6 +7823,7 @@ package android.content { method public abstract android.content.res.Resources getResources(); method public abstract android.content.SharedPreferences getSharedPreferences(java.lang.String, int); method public abstract android.content.SharedPreferences getSharedPreferences(java.io.File, int); + method public abstract java.io.File getSharedPreferencesPath(java.lang.String); method public final java.lang.String getString(int); method public final java.lang.String getString(int, java.lang.Object...); method public abstract java.lang.Object getSystemService(java.lang.String); @@ -8007,6 +8008,7 @@ package android.content { method public android.content.res.Resources getResources(); method public android.content.SharedPreferences getSharedPreferences(java.lang.String, int); method public android.content.SharedPreferences getSharedPreferences(java.io.File, int); + method public java.io.File getSharedPreferencesPath(java.lang.String); method public java.lang.Object getSystemService(java.lang.String); method public java.lang.String getSystemServiceName(java.lang.Class<?>); method public android.content.res.Resources.Theme getTheme(); @@ -28468,6 +28470,7 @@ package android.preference { method public android.preference.PreferenceScreen createPreferenceScreen(android.content.Context); method public android.preference.Preference findPreference(java.lang.CharSequence); method public static android.content.SharedPreferences getDefaultSharedPreferences(android.content.Context); + method public static java.lang.String getDefaultSharedPreferencesName(android.content.Context); method public android.content.SharedPreferences getSharedPreferences(); method public int getSharedPreferencesMode(); method public java.lang.String getSharedPreferencesName(); @@ -36272,6 +36275,7 @@ package android.test.mock { method public android.content.res.Resources getResources(); method public android.content.SharedPreferences getSharedPreferences(java.lang.String, int); method public android.content.SharedPreferences getSharedPreferences(java.io.File, int); + method public java.io.File getSharedPreferencesPath(java.lang.String); method public java.lang.Object getSystemService(java.lang.String); method public java.lang.String getSystemServiceName(java.lang.Class<?>); method public android.content.res.Resources.Theme getTheme(); diff --git a/api/system-current.txt b/api/system-current.txt index ad722f4ab474..1a05551a3fe9 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -8068,6 +8068,7 @@ package android.content { method public abstract android.content.res.Resources getResources(); method public abstract android.content.SharedPreferences getSharedPreferences(java.lang.String, int); method public abstract android.content.SharedPreferences getSharedPreferences(java.io.File, int); + method public abstract java.io.File getSharedPreferencesPath(java.lang.String); method public final java.lang.String getString(int); method public final java.lang.String getString(int, java.lang.Object...); method public abstract java.lang.Object getSystemService(java.lang.String); @@ -8261,6 +8262,7 @@ package android.content { method public android.content.res.Resources getResources(); method public android.content.SharedPreferences getSharedPreferences(java.lang.String, int); method public android.content.SharedPreferences getSharedPreferences(java.io.File, int); + method public java.io.File getSharedPreferencesPath(java.lang.String); method public java.lang.Object getSystemService(java.lang.String); method public java.lang.String getSystemServiceName(java.lang.Class<?>); method public android.content.res.Resources.Theme getTheme(); @@ -30461,6 +30463,7 @@ package android.preference { method public android.preference.PreferenceScreen createPreferenceScreen(android.content.Context); method public android.preference.Preference findPreference(java.lang.CharSequence); method public static android.content.SharedPreferences getDefaultSharedPreferences(android.content.Context); + method public static java.lang.String getDefaultSharedPreferencesName(android.content.Context); method public android.content.SharedPreferences getSharedPreferences(); method public int getSharedPreferencesMode(); method public java.lang.String getSharedPreferencesName(); @@ -38599,6 +38602,7 @@ package android.test.mock { method public android.content.res.Resources getResources(); method public android.content.SharedPreferences getSharedPreferences(java.lang.String, int); method public android.content.SharedPreferences getSharedPreferences(java.io.File, int); + method public java.io.File getSharedPreferencesPath(java.lang.String); method public java.lang.Object getSystemService(java.lang.String); method public java.lang.String getSystemServiceName(java.lang.Class<?>); method public android.content.res.Resources.Theme getTheme(); diff --git a/api/test-current.txt b/api/test-current.txt index 1cf9a531eb4e..7be966eb7517 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -7823,6 +7823,7 @@ package android.content { method public abstract android.content.res.Resources getResources(); method public abstract android.content.SharedPreferences getSharedPreferences(java.lang.String, int); method public abstract android.content.SharedPreferences getSharedPreferences(java.io.File, int); + method public abstract java.io.File getSharedPreferencesPath(java.lang.String); method public final java.lang.String getString(int); method public final java.lang.String getString(int, java.lang.Object...); method public abstract java.lang.Object getSystemService(java.lang.String); @@ -8007,6 +8008,7 @@ package android.content { method public android.content.res.Resources getResources(); method public android.content.SharedPreferences getSharedPreferences(java.lang.String, int); method public android.content.SharedPreferences getSharedPreferences(java.io.File, int); + method public java.io.File getSharedPreferencesPath(java.lang.String); method public java.lang.Object getSystemService(java.lang.String); method public java.lang.String getSystemServiceName(java.lang.Class<?>); method public android.content.res.Resources.Theme getTheme(); @@ -28468,6 +28470,7 @@ package android.preference { method public android.preference.PreferenceScreen createPreferenceScreen(android.content.Context); method public android.preference.Preference findPreference(java.lang.CharSequence); method public static android.content.SharedPreferences getDefaultSharedPreferences(android.content.Context); + method public static java.lang.String getDefaultSharedPreferencesName(android.content.Context); method public android.content.SharedPreferences getSharedPreferences(); method public int getSharedPreferencesMode(); method public java.lang.String getSharedPreferencesName(); @@ -36274,6 +36277,7 @@ package android.test.mock { method public android.content.res.Resources getResources(); method public android.content.SharedPreferences getSharedPreferences(java.lang.String, int); method public android.content.SharedPreferences getSharedPreferences(java.io.File, int); + method public java.io.File getSharedPreferencesPath(java.lang.String); method public java.lang.Object getSystemService(java.lang.String); method public java.lang.String getSystemServiceName(java.lang.Class<?>); method public android.content.res.Resources.Theme getTheme(); diff --git a/core/java/android/app/ContextImpl.java b/core/java/android/app/ContextImpl.java index 23c4198e348f..a703c531b1c3 100644 --- a/core/java/android/app/ContextImpl.java +++ b/core/java/android/app/ContextImpl.java @@ -321,11 +321,6 @@ class ContextImpl extends Context { } @Override - public File getSharedPrefsFile(String name) { - return makeFilename(getPreferencesDir(), name + ".xml"); - } - - @Override public SharedPreferences getSharedPreferences(String name, int mode) { // At least one application in the world actually passes in a null // name. This happened to work because when we generated the file name @@ -337,7 +332,7 @@ class ContextImpl extends Context { } } - final File file = getSharedPrefsFile(name); + final File file = getSharedPreferencesPath(name); return getSharedPreferences(file, mode); } @@ -571,6 +566,11 @@ class ContextImpl extends Context { } @Override + public File getSharedPreferencesPath(String name) { + return makeFilename(getPreferencesDir(), name + ".xml"); + } + + @Override public String[] fileList() { final String[] list = getFilesDir().list(); return (list != null) ? list : EMPTY_STRING_ARRAY; diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java index 6cc549745f66..4c7e853491cc 100644 --- a/core/java/android/content/Context.java +++ b/core/java/android/content/Context.java @@ -606,13 +606,13 @@ public abstract class Context { public abstract String getPackageCodePath(); /** - * {@hide} - * Return the full path to the shared prefs file for the given prefs group name. - * - * <p>Note: this is not generally useful for applications, since they should - * not be directly accessing the file system. + * @hide + * @deprecated use {@link #getSharedPreferencesPath(String)} */ - public abstract File getSharedPrefsFile(String name); + @Deprecated + public File getSharedPrefsFile(String name) { + return getSharedPreferencesPath(name); + } /** * Retrieve and hold the contents of the preferences file 'name', returning @@ -654,6 +654,7 @@ public abstract class Context { * @return The single {@link SharedPreferences} instance that can be used * to retrieve and modify the preference values. * + * @see #getSharedPreferencesPath(String) * @see #MODE_PRIVATE * @see #MODE_WORLD_READABLE * @see #MODE_WORLD_WRITEABLE @@ -739,6 +740,20 @@ public abstract class Context { public abstract File getFileStreamPath(String name); /** + * Returns the absolute path on the filesystem where a file created with + * {@link #getSharedPreferences(String, int)} is stored. + * <p> + * The returned path may change over time if the calling app is moved to an + * adopted storage device, so only relative paths should be persisted. + * + * @param name The name of the shared preferences for which you would like + * to get a path. + * @return An absolute path to the given file. + * @see #getSharedPreferences(String, int) + */ + public abstract File getSharedPreferencesPath(String name); + + /** * Returns the absolute path to the directory on the filesystem where files * created with {@link #openFileOutput} are stored. * <p> diff --git a/core/java/android/content/ContextWrapper.java b/core/java/android/content/ContextWrapper.java index a345aae27205..f5e915989cad 100644 --- a/core/java/android/content/ContextWrapper.java +++ b/core/java/android/content/ContextWrapper.java @@ -160,12 +160,6 @@ public class ContextWrapper extends Context { return mBase.getPackageCodePath(); } - /** @hide */ - @Override - public File getSharedPrefsFile(String name) { - return mBase.getSharedPrefsFile(name); - } - @Override public SharedPreferences getSharedPreferences(String name, int mode) { return mBase.getSharedPreferences(name, mode); @@ -199,6 +193,11 @@ public class ContextWrapper extends Context { } @Override + public File getSharedPreferencesPath(String name) { + return mBase.getSharedPreferencesPath(name); + } + + @Override public String[] fileList() { return mBase.fileList(); } diff --git a/core/java/android/preference/PreferenceManager.java b/core/java/android/preference/PreferenceManager.java index 4e4b1c90eca9..fda632689c28 100644 --- a/core/java/android/preference/PreferenceManager.java +++ b/core/java/android/preference/PreferenceManager.java @@ -371,7 +371,13 @@ public class PreferenceManager { getDefaultSharedPreferencesMode()); } - private static String getDefaultSharedPreferencesName(Context context) { + /** + * Returns the name used for storing default shared preferences. + * + * @see #getDefaultSharedPreferences(Context) + * @see Context#getSharedPreferencesPath(String) + */ + public static String getDefaultSharedPreferencesName(Context context) { return context.getPackageName() + "_preferences"; } diff --git a/test-runner/src/android/test/mock/MockContext.java b/test-runner/src/android/test/mock/MockContext.java index c967c2ba6e21..225edf89013b 100644 --- a/test-runner/src/android/test/mock/MockContext.java +++ b/test-runner/src/android/test/mock/MockContext.java @@ -130,12 +130,6 @@ public class MockContext extends Context { throw new UnsupportedOperationException(); } - /** @hide */ - @Override - public File getSharedPrefsFile(String name) { - throw new UnsupportedOperationException(); - } - @Override public String getPackageCodePath() { throw new UnsupportedOperationException(); @@ -172,6 +166,11 @@ public class MockContext extends Context { } @Override + public File getSharedPreferencesPath(String name) { + throw new UnsupportedOperationException(); + } + + @Override public String[] fileList() { 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 ff15f3badb38..921475935438 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 @@ -1365,6 +1365,12 @@ public final class BridgeContext extends Context { } @Override + public File getSharedPreferencesPath(String name) { + // pass + return null; + } + + @Override public File getFilesDir() { // pass return null; @@ -1424,12 +1430,6 @@ public final class BridgeContext extends Context { } @Override - public File getSharedPrefsFile(String name) { - // pass - return null; - } - - @Override public SharedPreferences getSharedPreferences(String arg0, int arg1) { if (mSharedPreferences == null) { mSharedPreferences = new BridgeSharedPreferences(); |