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

Commit 0b0c6cbd authored by Filip Pavlis's avatar Filip Pavlis
Browse files

Adds data store to provide data abstracion layer for Preferences.

Developers will be able to use PreferenceDataStore to replace default
SharedPreferences to store / retrieve the data.

Test: Separate CTS CL being submitted along this one, see the topic.

Change-Id: Ie46a876dcb14b46b8b2584735c106c25655ec6cf
parent 5962992e
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -29868,6 +29868,7 @@ package android.preference {
    method protected long getPersistedLong(long);
    method protected java.lang.String getPersistedString(java.lang.String);
    method public java.util.Set<java.lang.String> getPersistedStringSet(java.util.Set<java.lang.String>);
    method public android.preference.PreferenceDataStore getPreferenceDataStore();
    method public android.preference.PreferenceManager getPreferenceManager();
    method public android.content.SharedPreferences getSharedPreferences();
    method public boolean getShouldDisableView();
@@ -29917,6 +29918,7 @@ package android.preference {
    method public void setOnPreferenceClickListener(android.preference.Preference.OnPreferenceClickListener);
    method public void setOrder(int);
    method public void setPersistent(boolean);
    method public void setPreferenceDataStore(android.preference.PreferenceDataStore);
    method public void setSelectable(boolean);
    method public void setShouldDisableView(boolean);
    method public void setSummary(java.lang.CharSequence);
@@ -30017,6 +30019,21 @@ package android.preference {
    ctor public PreferenceCategory(android.content.Context);
  }
  public abstract interface PreferenceDataStore {
    method public default boolean getBoolean(java.lang.String, boolean);
    method public default float getFloat(java.lang.String, float);
    method public default int getInt(java.lang.String, int);
    method public default long getLong(java.lang.String, long);
    method public default java.lang.String getString(java.lang.String, java.lang.String);
    method public default java.util.Set<java.lang.String> getStringSet(java.lang.String, java.util.Set<java.lang.String>);
    method public default void putBoolean(java.lang.String, boolean);
    method public default void putFloat(java.lang.String, float);
    method public default void putInt(java.lang.String, int);
    method public default void putLong(java.lang.String, long);
    method public default void putString(java.lang.String, java.lang.String);
    method public default void putStringSet(java.lang.String, java.util.Set<java.lang.String>);
  }
  public abstract class PreferenceFragment extends android.app.Fragment {
    ctor public PreferenceFragment();
    method public void addPreferencesFromIntent(android.content.Intent);
@@ -30056,6 +30073,7 @@ package android.preference {
    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.preference.PreferenceDataStore getPreferenceDataStore();
    method public android.content.SharedPreferences getSharedPreferences();
    method public int getSharedPreferencesMode();
    method public java.lang.String getSharedPreferencesName();
@@ -30063,6 +30081,7 @@ package android.preference {
    method public boolean isStorageDeviceProtected();
    method public static void setDefaultValues(android.content.Context, int, boolean);
    method public static void setDefaultValues(android.content.Context, java.lang.String, int, int, boolean);
    method public void setPreferenceDataStore(android.preference.PreferenceDataStore);
    method public void setSharedPreferencesMode(int);
    method public void setSharedPreferencesName(java.lang.String);
    method public void setStorageDefault();
+19 −0
Original line number Diff line number Diff line
@@ -32500,6 +32500,7 @@ package android.preference {
    method protected long getPersistedLong(long);
    method protected java.lang.String getPersistedString(java.lang.String);
    method public java.util.Set<java.lang.String> getPersistedStringSet(java.util.Set<java.lang.String>);
    method public android.preference.PreferenceDataStore getPreferenceDataStore();
    method public android.preference.PreferenceManager getPreferenceManager();
    method public android.content.SharedPreferences getSharedPreferences();
    method public boolean getShouldDisableView();
@@ -32549,6 +32550,7 @@ package android.preference {
    method public void setOnPreferenceClickListener(android.preference.Preference.OnPreferenceClickListener);
    method public void setOrder(int);
    method public void setPersistent(boolean);
    method public void setPreferenceDataStore(android.preference.PreferenceDataStore);
    method public void setSelectable(boolean);
    method public void setShouldDisableView(boolean);
    method public void setSummary(java.lang.CharSequence);
@@ -32649,6 +32651,21 @@ package android.preference {
    ctor public PreferenceCategory(android.content.Context);
  }
  public abstract interface PreferenceDataStore {
    method public default boolean getBoolean(java.lang.String, boolean);
    method public default float getFloat(java.lang.String, float);
    method public default int getInt(java.lang.String, int);
    method public default long getLong(java.lang.String, long);
    method public default java.lang.String getString(java.lang.String, java.lang.String);
    method public default java.util.Set<java.lang.String> getStringSet(java.lang.String, java.util.Set<java.lang.String>);
    method public default void putBoolean(java.lang.String, boolean);
    method public default void putFloat(java.lang.String, float);
    method public default void putInt(java.lang.String, int);
    method public default void putLong(java.lang.String, long);
    method public default void putString(java.lang.String, java.lang.String);
    method public default void putStringSet(java.lang.String, java.util.Set<java.lang.String>);
  }
  public abstract class PreferenceFragment extends android.app.Fragment {
    ctor public PreferenceFragment();
    method public void addPreferencesFromIntent(android.content.Intent);
@@ -32688,6 +32705,7 @@ package android.preference {
    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.preference.PreferenceDataStore getPreferenceDataStore();
    method public android.content.SharedPreferences getSharedPreferences();
    method public int getSharedPreferencesMode();
    method public java.lang.String getSharedPreferencesName();
@@ -32696,6 +32714,7 @@ package android.preference {
    method public boolean isStorageDeviceProtected();
    method public static void setDefaultValues(android.content.Context, int, boolean);
    method public static void setDefaultValues(android.content.Context, java.lang.String, int, int, boolean);
    method public void setPreferenceDataStore(android.preference.PreferenceDataStore);
    method public void setSharedPreferencesMode(int);
    method public void setSharedPreferencesName(java.lang.String);
    method public void setStorageCredentialProtected();
+19 −0
Original line number Diff line number Diff line
@@ -29951,6 +29951,7 @@ package android.preference {
    method protected long getPersistedLong(long);
    method protected java.lang.String getPersistedString(java.lang.String);
    method public java.util.Set<java.lang.String> getPersistedStringSet(java.util.Set<java.lang.String>);
    method public android.preference.PreferenceDataStore getPreferenceDataStore();
    method public android.preference.PreferenceManager getPreferenceManager();
    method public android.content.SharedPreferences getSharedPreferences();
    method public boolean getShouldDisableView();
@@ -30000,6 +30001,7 @@ package android.preference {
    method public void setOnPreferenceClickListener(android.preference.Preference.OnPreferenceClickListener);
    method public void setOrder(int);
    method public void setPersistent(boolean);
    method public void setPreferenceDataStore(android.preference.PreferenceDataStore);
    method public void setSelectable(boolean);
    method public void setShouldDisableView(boolean);
    method public void setSummary(java.lang.CharSequence);
@@ -30100,6 +30102,21 @@ package android.preference {
    ctor public PreferenceCategory(android.content.Context);
  }
  public abstract interface PreferenceDataStore {
    method public default boolean getBoolean(java.lang.String, boolean);
    method public default float getFloat(java.lang.String, float);
    method public default int getInt(java.lang.String, int);
    method public default long getLong(java.lang.String, long);
    method public default java.lang.String getString(java.lang.String, java.lang.String);
    method public default java.util.Set<java.lang.String> getStringSet(java.lang.String, java.util.Set<java.lang.String>);
    method public default void putBoolean(java.lang.String, boolean);
    method public default void putFloat(java.lang.String, float);
    method public default void putInt(java.lang.String, int);
    method public default void putLong(java.lang.String, long);
    method public default void putString(java.lang.String, java.lang.String);
    method public default void putStringSet(java.lang.String, java.util.Set<java.lang.String>);
  }
  public abstract class PreferenceFragment extends android.app.Fragment {
    ctor public PreferenceFragment();
    method public void addPreferencesFromIntent(android.content.Intent);
@@ -30139,6 +30156,7 @@ package android.preference {
    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.preference.PreferenceDataStore getPreferenceDataStore();
    method public android.content.SharedPreferences getSharedPreferences();
    method public int getSharedPreferencesMode();
    method public java.lang.String getSharedPreferencesName();
@@ -30146,6 +30164,7 @@ package android.preference {
    method public boolean isStorageDeviceProtected();
    method public static void setDefaultValues(android.content.Context, int, boolean);
    method public static void setDefaultValues(android.content.Context, java.lang.String, int, int, boolean);
    method public void setPreferenceDataStore(android.preference.PreferenceDataStore);
    method public void setSharedPreferencesMode(int);
    method public void setSharedPreferencesName(java.lang.String);
    method public void setStorageDefault();
+181 −95

File changed.

Preview size limit exceeded, changes collapsed.

+164 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2016 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License
 */

package android.preference;

import android.annotation.Nullable;

import java.util.Set;

/**
 * A data store interface to be implemented and provided to the Preferences framework.
 *
 * Use this to replace the default {@link android.content.SharedPreferences}. By default, all "put"
 * methods throw {@link UnsupportedOperationException}.
 */
public interface PreferenceDataStore {

    /**
     * Set a String value to the data store.
     *
     * @param key The name of the preference to modify.
     * @param value The new value for the preference.
     * @see #getString(String, String)
     */
    default void putString(String key, @Nullable String value) {
        throw new UnsupportedOperationException("Not implemented on this data store");
    }

    /**
     * Set a set of String value to the data store.
     *
     * @param key The name of the preference to modify.
     * @param values The set of new values for the preference.
     * @see #getStringSet(String, Set)
     */
    default void putStringSet(String key, @Nullable Set<String> values) {
        throw new UnsupportedOperationException("Not implemented on this data store");
    }

    /**
     * Set an int value to the data store.
     *
     * @param key The name of the preference to modify.
     * @param value The new value for the preference.
     * @see #getInt(String, int)
     */
    default void putInt(String key, int value) {
        throw new UnsupportedOperationException("Not implemented on this data store");
    }

    /**
     * Set a long value to the data store.
     *
     * @param key The name of the preference to modify.
     * @param value The new value for the preference.
     * @see #getLong(String, long)
     */
    default void putLong(String key, long value) {
        throw new UnsupportedOperationException("Not implemented on this data store");
    }

    /**
     * Set a float value to the data store.
     *
     * @param key The name of the preference to modify.
     * @param value The new value for the preference.
     * @see #getFloat(String, float)
     */
    default void putFloat(String key, float value) {
        throw new UnsupportedOperationException("Not implemented on this data store");
    }

    /**
     * Set a boolean value to the data store.
     *
     * @param key The name of the preference to modify.
     * @param value The new value for the preference.
     * @see #getBoolean(String, boolean)
     */
    default void putBoolean(String key, boolean value) {
        throw new UnsupportedOperationException("Not implemented on this data store");
    }

    /**
     * Retrieve a String value from the data store.
     *
     * @param key The name of the preference to retrieve.
     * @param defValue Value to return if this preference does not exist.
     * @see #putString(String, String)
     */
    @Nullable
    default String getString(String key, @Nullable String defValue) {
        return defValue;
    }

    /**
     * Retrieve a set of String values from the data store.
     *
     * @param key The name of the preference to retrieve.
     * @param defValues Values to return if this preference does not exist.
     * @see #putStringSet(String, Set)
     */
    @Nullable
    default Set<String> getStringSet(String key, @Nullable Set<String> defValues) {
        return defValues;
    }

    /**
     * Retrieve an int value from the data store.
     *
     * @param key The name of the preference to retrieve.
     * @param defValue Value to return if this preference does not exist.
     * @see #putInt(String, int)
     */
    default int getInt(String key, int defValue) {
        return defValue;
    }

    /**
     * Retrieve a long value from the data store.
     *
     * @param key The name of the preference to retrieve.
     * @param defValue Value to return if this preference does not exist.
     * @see #putLong(String, long)
     */
    default long getLong(String key, long defValue) {
        return defValue;
    }

    /**
     * Retrieve a float value from the data store.
     *
     * @param key The name of the preference to retrieve.
     * @param defValue Value to return if this preference does not exist.
     * @see #putFloat(String, float)
     */
    default float getFloat(String key, float defValue) {
        return defValue;
    }

    /**
     * Retrieve a boolean value from the data store.
     *
     * @param key The name of the preference to retrieve.
     * @param defValue Value to return if this preference does not exist.
     * @see #getBoolean(String, boolean)
     */
    default boolean getBoolean(String key, boolean defValue) {
        return defValue;
    }
}
Loading