/* This file is part of BeepMe. BeepMe is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. BeepMe is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with BeepMe. If not, see <http://www.gnu.org/licenses/>. Copyright 2012-2014 Michael Glanznig http://beepme.yourexp.at */ package com.glanznig.beepme.data; import android.content.Context; import android.content.SharedPreferences; import android.preference.PreferenceManager; import com.glanznig.beepme.R; import java.util.Collections; public class PreferenceHandler { public static final String KEY_BEEPER_ACTIVE = "beeperActivated"; public static final String KEY_VIBRATE_AT_BEEP = "vibrateAtBeep"; //public static final String KEY_TIMER_PROFILE_ID = "timerProfileId"; public static final String KEY_TEST_MODE = "testMode"; public static final String KEY_UPTIME_ID = "uptimeId"; public static final String KEY_SCHEDULED_BEEP_ID = "scheduledBeepId"; public static final String KEY_EXPORT_RUNNING_SINCE = "exportIsRunningSince"; public static final String KEY_IS_CALL = "isCall"; public static final String KEY_PAUSE_BEEPER_DURING_CALL = "pauseBeeperDuringCall"; public static final String KEY_APP_VERSION = "appVersion"; public static final String KEY_THUMBNAIL_SIZES = "thumbnailSizes"; public static final String KEY_BEEP_SOUND_ID = "beepSoundId"; private Context ctx; public PreferenceHandler(Context ctx) { this.ctx = ctx; } public void registerOnPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener listener) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx); prefs.registerOnSharedPreferenceChangeListener(listener); } public int getBeeperActive() { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx); return prefs.getInt(KEY_BEEPER_ACTIVE, 0); } public void setBeeperActive(int active) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx); SharedPreferences.Editor editor = prefs.edit(); editor.putInt(KEY_BEEPER_ACTIVE, active); editor.commit(); } public long getUptimeId() { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx); return prefs.getLong(KEY_UPTIME_ID, 0L); } public void setUptimeId(long uptimeId) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx); SharedPreferences.Editor editor = prefs.edit(); editor.putLong(KEY_UPTIME_ID, uptimeId); editor.commit(); } public long getScheduledBeepId() { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx); return prefs.getLong(KEY_SCHEDULED_BEEP_ID, 0L); } public void setScheduledBeepId(long beepId) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx); SharedPreferences.Editor editor = prefs.edit(); editor.putLong(KEY_SCHEDULED_BEEP_ID, beepId); editor.commit(); } public long exportRunningSince() { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx); return prefs.getLong(KEY_EXPORT_RUNNING_SINCE, 0L); } public void setExportRunningSince(long running) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx); SharedPreferences.Editor editor = prefs.edit(); editor.putLong(KEY_EXPORT_RUNNING_SINCE, running); editor.commit(); } public boolean isVibrateAtBeep() { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx); return prefs.getBoolean(KEY_VIBRATE_AT_BEEP, false); } public void setVibateAtBeep(boolean vibrate) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx); SharedPreferences.Editor editor = prefs.edit(); editor.putBoolean(KEY_VIBRATE_AT_BEEP, vibrate); editor.commit(); } public int getAppVersion() { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx); return prefs.getInt(KEY_APP_VERSION, 0); } public void setAppVersion(int version) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx); SharedPreferences.Editor editor = prefs.edit(); editor.putInt(KEY_APP_VERSION, version); editor.commit(); } public int[] getThumbnailSizes() { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx); String sizesString = prefs.getString(KEY_THUMBNAIL_SIZES, ""); if (sizesString != null && !sizesString.isEmpty()) { String[] parts = sizesString.split(","); int[] sizes = new int[parts.length]; for (int i = 0; i < parts.length; i++) { sizes[i] = Integer.valueOf(parts[i]).intValue(); } return sizes; } int[] empty = {}; return empty; } public void setThumbnailSizes(int[] sizes) { String sizesString = ""; for (int i = 0; i < sizes.length - 1; i++) { sizesString += sizes[i] + ","; } sizesString += sizes[sizes.length - 1]; SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx); SharedPreferences.Editor editor = prefs.edit(); editor.putString(KEY_THUMBNAIL_SIZES, sizesString); editor.commit(); } public boolean isTestMode() { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx); return prefs.getBoolean(KEY_TEST_MODE, false); } public void setTestMode(boolean test) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx); SharedPreferences.Editor editor = prefs.edit(); editor.putBoolean(KEY_TEST_MODE, test); editor.commit(); } /*public long getTimerProfileId() { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx); return Long.valueOf(prefs.getString(KEY_TIMER_PROFILE_ID, "1")); } public void setTimerProfileId(long profileId) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx); SharedPreferences.Editor editor = prefs.edit(); editor.putString(KEY_TIMER_PROFILE_ID, String.valueOf(profileId)); editor.commit(); }*/ public String getBeepSoundId() { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx); return prefs.getString(KEY_BEEP_SOUND_ID, Integer.valueOf(R.raw.pling).toString()); } public void setBeepSoundId(String beepId) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx); SharedPreferences.Editor editor = prefs.edit(); editor.putString(KEY_BEEP_SOUND_ID, beepId); editor.commit(); } public boolean isCall() { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx); return prefs.getBoolean(KEY_IS_CALL, false); } public void setCall(boolean call) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx); SharedPreferences.Editor editor = prefs.edit(); editor.putBoolean(KEY_IS_CALL, call); editor.commit(); } public boolean getPauseBeeperDuringCall() { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx); return prefs.getBoolean(KEY_PAUSE_BEEPER_DURING_CALL, true); } public void setPauseBeeperDuringCall(boolean pause) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx); SharedPreferences.Editor editor = prefs.edit(); editor.putBoolean(KEY_PAUSE_BEEPER_DURING_CALL, pause); editor.commit(); } }