/*
This file is part of ZAX.
ZAX 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.
ZAX 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 ZAX. If not, see <http://www.gnu.org/licenses/>.
*/
package com.inovex.zabbixmobile.model;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.preference.PreferenceManager;
import android.util.Log;
/**
* Singleton providing an interface to the application's shared preferences.
*
*/
public class ZaxPreferences {
private SharedPreferences mPref;
public static ZaxPreferences getInstance(Context context) {
return (new ZaxPreferences(context));
}
private ZaxPreferences(Context context) {
refresh(context);
}
public int getWidgetRefreshInterval() {
try {
return Integer.parseInt(mPref.getString(
"widget_refresh_interval_mins", "15"));
} catch (NumberFormatException e) {
return 0;
}
}
public void registerOnSharedPreferenceChangeListener(
OnSharedPreferenceChangeListener listener) {
mPref.registerOnSharedPreferenceChangeListener(listener);
}
public void unregisterOnSharedPreferenceChangeListener(
OnSharedPreferenceChangeListener listener) {
mPref.unregisterOnSharedPreferenceChangeListener(listener);
}
public boolean isDarkTheme() {
return mPref.getBoolean("dark_theme", false);
}
public String getPersistedServerName(){
return mPref.getString("server_name", "");
}
public void setPersistedServerName(String name){
Editor edit = mPref.edit();
edit.putString("server_name",name);
}
public long getServerSelection() {
return mPref.getLong("server_selection", 0);
}
public void setServerSelection(long selection) {
Editor edit = mPref.edit();
edit.putLong("server_selection", selection);
edit.commit();
}
public void refresh(Context context) {
SharedPreferences pref = PreferenceManager
.getDefaultSharedPreferences(context);
mPref = pref;
}
public boolean hasOldServerPreferences() {
if (mPref.getString("zabbix_url", null) != null) {
return true;
}
return false;
}
public void migrateServerPreferences(Context context, long id) {
ZaxServerPreferences p = new ZaxServerPreferences(context, id, true);
p.savePrefs();
refresh(context);
mPref.edit().remove("zabbix_url").commit();
}
public boolean isOldNotificationIcons() {
return mPref.getBoolean("zabbix_push_old_icons", false);
}
public boolean isPushEnabled() {
return mPref.getBoolean("pubnub_push_enabled", mPref.getBoolean("zabbix_push_enabled",false));
}
public String getPushRingtone() {
return mPref.getString("zabbix_push_ringtone", null);
}
public String getPushOkRingtone(){
return mPref.getString("push_ok_ringtone", null);
}
public String getPushSubscribeKey() {
return mPref.getString("pubnub_push_subscribe_key", mPref.getString("zabbix_push_subscribe_key", "")).trim();
}
public void setWidgetServer(int mAppWidgetId, long id) {
Editor edit = mPref.edit();
edit.putLong("widget_server_"+mAppWidgetId, id);
edit.commit();
Log.d("ZaxPreferences", "widget server="+mAppWidgetId+"="+id);
}
public long getWidgetServer(int mAppWidgetId) {
Log.d("ZaxPreferences", "get widget server from "+mAppWidgetId+"="+mPref.getLong("widget_server_"+mAppWidgetId, -1));
return mPref.getLong("widget_server_"+mAppWidgetId, -1);
}
public String getGCMSenderID() {
return mPref.getString("gcm_sender_id", "");
}
public void setTokenSentToServer(boolean status){
mPref.edit().putBoolean("sent_token_to_server",status);
}
public boolean isTokenSentToServer(){
return mPref.getBoolean("sent_token_to_server",false);
}
public String getGCMServerUrl() {
return mPref.getString("gcm_server_url", "");
}
public boolean isVibrate() {return mPref.getBoolean("vibrate",true);};
}