Android Open Source - wally Shared Preferences Data Provider

From Project

Back to project page wally.


The source code is released under:

Apache License

If you think the Android project wally 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

 * Copyright (C) 2014 Freddie (Musenkishi) Lust-Hed
 *//from   w  ww  .j  a  va 2  s. c  om
 * 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
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * See the License for the specific language governing permissions and
 * limitations under the License.

package com.musenkishi.wally.dataprovider;

import android.content.Context;
import android.content.SharedPreferences;

import com.musenkishi.wally.models.Filter;
import com.musenkishi.wally.models.filters.FilterAspectRatioKeys;
import com.musenkishi.wally.models.filters.FilterBoardsKeys;
import com.musenkishi.wally.models.filters.FilterPurityKeys;
import com.musenkishi.wally.models.filters.FilterResOptKeys;
import com.musenkishi.wally.models.filters.FilterResolutionKeys;
import com.musenkishi.wally.models.filters.FilterTimeSpanKeys;

 * A class that handles shared preferences data.
 * Created by Musenkishi on 2014-03-13 21:05.
public class SharedPreferencesDataProvider {

    public static final String SHARED_PREF_KEY = "com.musenkishi.wally.sharedpreferences";

    public static final String FILTER_KEY = ".filterKey";
    public static final String FILTER_VALUE = ".filterValue";
    private static final String FILTER_CUSTOM = ".filterIsCustom";
    public static final String CRASH_LOGGING = ".crashlogging";
    public static final String APP_START_COUNT = ".appStartCount";
    public static final String LATEST_VERSION_INSTALLED = ".lastVersionInstalled";

    public static final int CRASH_LOGGING_NOT_READ = 193784;
    public static final int CRASH_LOGGING_NOT_APPROVED = 193785;
    public static final int CRASH_LOGGING_APPROVED = 193786;

    private SharedPreferences sharedPreferences;

    public SharedPreferences getPrefs() {
        return sharedPreferences;

    public SharedPreferencesDataProvider(Context context) {
        sharedPreferences = context.getSharedPreferences(SHARED_PREF_KEY, Context.MODE_PRIVATE);

    public int getLatestVersion(int defaultVersion) {
        return sharedPreferences.getInt(LATEST_VERSION_INSTALLED, defaultVersion);

    public void setLatestVersion(int version) {
        sharedPreferences.edit().putInt(LATEST_VERSION_INSTALLED, version).apply();

    public int getAppStartCount(){
        return sharedPreferences.getInt(APP_START_COUNT, 1);

    public void incrementAppStartCount(){
        int count = getAppStartCount() + 1;
        sharedPreferences.edit().putInt(APP_START_COUNT, count).apply();

    public int hasUserApprovedCrashLogging(){
        return sharedPreferences.getInt(CRASH_LOGGING, CRASH_LOGGING_NOT_READ);

    public void setUserApprovedCrashLogging(int crashLoggingState){
        sharedPreferences.edit().putInt(CRASH_LOGGING, crashLoggingState).apply();

    public Filter<String, String> getTimespan(String tag){
        String savedKey = sharedPreferences.getString(tag + FILTER_KEY, FilterTimeSpanKeys.TIMESPAN_3_DAYS.getKey());
        String savedValue = sharedPreferences.getString(tag + FILTER_VALUE, FilterTimeSpanKeys.TIMESPAN_3_DAYS.getValue());
        return new Filter<String, String>(savedKey, savedValue);

    public void setTimespan(String tag, Filter<String, String> timespan){
        sharedPreferences.edit().putString(tag + FILTER_KEY, timespan.getKey()).apply();
        sharedPreferences.edit().putString(tag + FILTER_VALUE, timespan.getValue()).apply();

    public String getBoards(String tag) {
        return sharedPreferences.getString(tag, FilterBoardsKeys.BOARD_GENERAL_KEY + FilterBoardsKeys.BOARD_ANIME_KEY + "0");

    public void setBoards(String tag, String paramValue) {
        sharedPreferences.edit().putString(tag, paramValue).apply();

    public String getPurity(String tag) {
        return sharedPreferences.getString(tag, FilterPurityKeys.SFW_KEY + "00"); //This will default to SFW purity

    public void setPurity(String tag, String paramValue) {
        sharedPreferences.edit().putString(tag, paramValue).apply();

    public Filter<String, String> getAspectRatio(String tag){
        String savedKey = sharedPreferences.getString(tag + FILTER_KEY, FilterAspectRatioKeys.RATIO_ALL.getKey());
        String savedValue = sharedPreferences.getString(tag + FILTER_VALUE, FilterAspectRatioKeys.RATIO_ALL.getValue());
        return new Filter<String, String>(savedKey, savedValue);

    public void setAspectRatio(String tag, Filter<String, String> aspectRatio){
        sharedPreferences.edit().putString(tag + FILTER_KEY, aspectRatio.getKey()).apply();
        sharedPreferences.edit().putString(tag + FILTER_VALUE, aspectRatio.getValue()).apply();

    public String getResolutionOption(String tag) {
        return sharedPreferences.getString(tag, FilterResOptKeys.EXACTLY);

    public void setResolutionOption(String tag, String paramValue){
        sharedPreferences.edit().putString(tag, paramValue).apply();

    public Filter<String, String> getResolution(String tag){
        String savedKey = sharedPreferences.getString(tag + FILTER_KEY, FilterResolutionKeys.RES_ALL.getKey());
        String savedValue = sharedPreferences.getString(tag + FILTER_VALUE, FilterResolutionKeys.RES_ALL.getValue());
        boolean savedIsCustom = sharedPreferences.getBoolean(tag + FILTER_CUSTOM, FilterResolutionKeys.RES_ALL.isCustom());
        return new Filter<String, String>(savedKey, savedValue, savedIsCustom);

    public void setResolution(String tag, Filter<String, String> resolution) {
        sharedPreferences.edit().putString(tag + FILTER_KEY, resolution.getKey()).apply();
        sharedPreferences.edit().putString(tag + FILTER_VALUE, resolution.getValue()).apply();
        sharedPreferences.edit().putBoolean(tag + FILTER_CUSTOM, resolution.isCustom()).apply();

Java Source Code List