Android Open Source - ponyville-live-android Object Preference From Project Back to project page ponyville-live-android .
License The source code is released under:
Apache License
If you think the Android project ponyville-live-android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code package com.ponyvillelive.app.prefs;
/ * w w w . j a v a 2 s . c o m * /
import android.content.SharedPreferences;
import com.google.gson.Gson;
import java.lang.reflect.Type;
public class ObjectPreference<T> {
private final SharedPreferences preferences;
private final String key;
private final Gson gson;
private final Type type;
private final T defaultValue;
private T value;
public ObjectPreference(SharedPreferences preferences, Gson gson, Class<T> type, String key) {
this (preferences, gson, type, key, null);
}
public ObjectPreference(SharedPreferences preferences, Gson gson, Class<T> type, String key,
T defaultValue) {
this.preferences = preferences;
this.key = key;
this.gson = gson;
this.type = type;
this.defaultValue = defaultValue;
}
public T get() {
if (value == null) {
String stringValue = preferences.getString(key, null);
if (stringValue == null) {
return defaultValue;
}
value = gson.fromJson(stringValue, type);
}
return value;
}
public boolean isSet() {
return preferences.contains(key);
}
public void set(T value) {
String stringValue = gson.toJson(value, type);
preferences.edit().putString(key, stringValue).apply();
this.value = value;
}
public void delete() {
value = null;
preferences.edit().remove(key).apply();
}
}
Java Source Code List com.ponyvillelive.app.DebugPvlModule.java com.ponyvillelive.app.Modules.java com.ponyvillelive.app.Modules.java com.ponyvillelive.app.PvlApp.java com.ponyvillelive.app.PvlModule.java com.ponyvillelive.app.model.ArrayResponse.java com.ponyvillelive.app.model.DebugData.java com.ponyvillelive.app.model.Entity.java com.ponyvillelive.app.model.MapResponse.java com.ponyvillelive.app.model.NowPlayingMeta.java com.ponyvillelive.app.model.ObjectResponse.java com.ponyvillelive.app.model.Show.java com.ponyvillelive.app.model.SongWrapper.java com.ponyvillelive.app.model.Song.java com.ponyvillelive.app.model.StationMeta.java com.ponyvillelive.app.model.Station.java com.ponyvillelive.app.net.API.java com.ponyvillelive.app.net.DebugNetModule.java com.ponyvillelive.app.net.MockAPI.java com.ponyvillelive.app.net.NetModule.java com.ponyvillelive.app.prefs.AnimationSpeed.java com.ponyvillelive.app.prefs.ApiEndpoint.java com.ponyvillelive.app.prefs.ApiEndpoints.java com.ponyvillelive.app.prefs.BooleanPreference.java com.ponyvillelive.app.prefs.Endpoint.java com.ponyvillelive.app.prefs.Endpoints.java com.ponyvillelive.app.prefs.IntPreference.java com.ponyvillelive.app.prefs.IsMockMode.java com.ponyvillelive.app.prefs.MockDownloader.java com.ponyvillelive.app.prefs.NetworkProxy.java com.ponyvillelive.app.prefs.ObjectPreference.java com.ponyvillelive.app.prefs.PicassoDebugging.java com.ponyvillelive.app.prefs.PixelGridEnabled.java com.ponyvillelive.app.prefs.PixelRatioEnabled.java com.ponyvillelive.app.prefs.ScalpelEnabled.java com.ponyvillelive.app.prefs.ScalpelWireframeEnabled.java com.ponyvillelive.app.prefs.SeenDebugDrawer.java com.ponyvillelive.app.prefs.StringPreference.java com.ponyvillelive.app.ui.ActionbarHideSlidePanelListener.java com.ponyvillelive.app.ui.ActivityHierarchyServer.java com.ponyvillelive.app.ui.AnimationSpeedAdapter.java com.ponyvillelive.app.ui.AppContainer.java com.ponyvillelive.app.ui.BindableAdapter.java com.ponyvillelive.app.ui.BottomDrawerFragment.java com.ponyvillelive.app.ui.DebugAppContainer.java com.ponyvillelive.app.ui.DebugUiModule.java com.ponyvillelive.app.ui.EnumAdapter.java com.ponyvillelive.app.ui.HierarchyTreeChangeListener.java com.ponyvillelive.app.ui.MainActivity.java com.ponyvillelive.app.ui.NetworkDelayAdapter.java com.ponyvillelive.app.ui.NetworkErrorAdapter.java com.ponyvillelive.app.ui.NetworkVarianceAdapter.java com.ponyvillelive.app.ui.ProxyAdapter.java com.ponyvillelive.app.ui.ServerEndpointAdapter.java com.ponyvillelive.app.ui.SocketActivityHierarchyServer.java com.ponyvillelive.app.ui.StationAdapter.java com.ponyvillelive.app.ui.StationFragment.java com.ponyvillelive.app.ui.TrackListAdapter.java com.ponyvillelive.app.ui.UiModule.java com.ponyvillelive.app.util.Strings.java