/*
* Copyright 2014 Google Inc. All rights reserved.
*
* 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 com.myMinistry.util;
import java.util.Calendar;
import java.util.TimeZone;
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import com.myMinistry.R;
import com.myMinistry.provider.MinistryDatabase;
/**
* Utilities and constants related to app preferences.
*/
public class PrefUtils {
private static final String PREF_PUBLISHER_NAME = "publisher_name";
private static final String PREF_VERSION_NUMBER = "version_number";
private static final String PREF_HAS_OPENED_BEFORE = "has_opened_before";
private static final String PREF_BACKUP_DAILY = "db_backup_daily";
private static final String PREF_BACKUP_DAILY_TIME = "db_backup_daily_time";
private static final String PREF_BACKUP_WEEKLY = "db_backup_weekly";
private static final String PREF_BACKUP_WEEKLY_TIME = "db_backup_weekly_time";
private static final String PREF_BACKUP_WEEKLY_WEEKDAY = "db_backup_weekly_weekday";
private static final String PREF_ENTRY_TYPE_SORT = "entry_type_sort";
private static final String PREF_PUBLICATION_TYPE_SORT = "publication_type_sort";
private static final String PREF_PUBLICATION_SORT = "publication_sort";
private static final String PREF_HOUSEHOLDER_SORT = "householder_sort";
private static final String PREF_PUBLISHER_ID = "publisher_id";
private static final String PREF_SUMMARY_MONTH = "saved_month";
private static final String PREF_SUMMARY_YEAR = "saved_year";
private static final String PREF_LOCALE = "locale";
public static TimeZone getDisplayTimeZone(Context context) {
//TimeZone defaultTz = TimeZone.getDefault();
return TimeZone.getDefault();
//return (isUsingLocalTime(context) && defaultTz != null)
//? defaultTz : Config.CONFERENCE_TIMEZONE;
}
/*
public static void init(final Context context) {
// Check what year we're configured for
//SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
//int conferenceYear = sp.getInt(PREF_CONFERENCE_YEAR, 0);
if (conferenceYear != Config.CONFERENCE_YEAR) {
LOGD(TAG, "App not yet set up for " + PREF_CONFERENCE_YEAR + ". Resetting data.");
// Application is configured for a different conference year. Reset preferences.
sp.edit().clear().putInt(PREF_CONFERENCE_YEAR, Config.CONFERENCE_YEAR).commit();
}
}
*/
public static boolean hasOpenedBefore(final Context context) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
return sp.getBoolean(PREF_HAS_OPENED_BEFORE, false);
}
public static void markOpenedBefore(final Context context) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
sp.edit().putBoolean(PREF_HAS_OPENED_BEFORE, true).commit();
}
public static void registerOnSharedPreferenceChangeListener(final Context context,
SharedPreferences.OnSharedPreferenceChangeListener listener) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
sp.registerOnSharedPreferenceChangeListener(listener);
}
public static void unrgisterOnSharedPreferenceChangeListener(final Context context,
SharedPreferences.OnSharedPreferenceChangeListener listener) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
sp.unregisterOnSharedPreferenceChangeListener(listener);
}
public static int getSummaryMonth(final Context context, Calendar date) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
return sp.getInt(PREF_SUMMARY_MONTH, date.get(Calendar.MONTH));
}
public static void setSummaryMonth(final Context context, Calendar date) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
sp.edit().putInt(PREF_SUMMARY_MONTH, date.get(Calendar.MONTH)).commit();
}
public static int getSummaryYear(final Context context, Calendar date) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
return sp.getInt(PREF_SUMMARY_YEAR, date.get(Calendar.YEAR));
}
public static void setSummaryYear(final Context context, Calendar date) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
sp.edit().putInt(PREF_SUMMARY_YEAR, date.get(Calendar.YEAR)).commit();
}
public static void setSummaryMonthAndYear(final Context context, Calendar date) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
sp.edit().putInt(PREF_SUMMARY_MONTH, date.get(Calendar.MONTH)).commit();
sp.edit().putInt(PREF_SUMMARY_YEAR, date.get(Calendar.YEAR)).commit();
}
public static int getPublisherId(final Context context) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
return sp.getInt(PREF_PUBLISHER_ID, MinistryDatabase.CREATE_ID);
}
public static void setPublisherId(final Context context, int publisherId) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
sp.edit().putInt(PREF_PUBLISHER_ID, publisherId).commit();
}
public static String getPublisherName(final Context context) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
return sp.getString(PREF_PUBLISHER_NAME, context.getResources().getString(R.string.navdrawer_item_select_publisher));
}
public static void setPublisherName(final Context context, String name) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
sp.edit().putString(PREF_PUBLISHER_NAME, name).commit();
}
public static int getVersionNumber(final Context context) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
return sp.getInt(PREF_VERSION_NUMBER, 0);
}
public static void setVersionNumber(final Context context, int versionNumber) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
sp.edit().putInt(PREF_VERSION_NUMBER, versionNumber).commit();
}
public static boolean shouldDBBackupDaily(final Context context) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
return sp.getBoolean(PREF_BACKUP_DAILY, false);
}
public static void setDBBackupDaily(final Context context, boolean shouldBackUp) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
sp.edit().putBoolean(PREF_BACKUP_DAILY, shouldBackUp).commit();
}
public static String getDBBackupDailyTime(final Context context) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
return sp.getString(PREF_BACKUP_DAILY_TIME, "");
}
public static void setDBBackupDailyTime(final Context context, String backupTime) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
sp.edit().putString(PREF_BACKUP_DAILY_TIME, backupTime).commit();
}
public static boolean shouldDBBackupWeekly(final Context context) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
return sp.getBoolean(PREF_BACKUP_WEEKLY, false);
}
public static void setDBBackupWeekly(final Context context, boolean shouldBackUp) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
sp.edit().putBoolean(PREF_BACKUP_WEEKLY, shouldBackUp).commit();
}
public static String getDBBackupWeeklyTime(final Context context) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
return sp.getString(PREF_BACKUP_WEEKLY_TIME, "");
}
public static void setDBBackupWeeklyTime(final Context context, String backupTime) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
sp.edit().putString(PREF_BACKUP_WEEKLY_TIME, backupTime).commit();
}
public static int getDBBackupWeeklyWeekday(final Context context) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
return sp.getInt(PREF_BACKUP_WEEKLY_WEEKDAY, 0);
}
public static void setDBBackupWeeklyWeekday(final Context context, int weekday) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
sp.edit().putInt(PREF_BACKUP_WEEKLY_WEEKDAY, weekday).commit();
}
public static int getEntryTypeSort(final Context context) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
return sp.getInt(PREF_ENTRY_TYPE_SORT, 0);
}
public static void setEntryTypeSort(final Context context, int sortId) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
sp.edit().putInt(PREF_ENTRY_TYPE_SORT, sortId).commit();
}
public static int getPublicationTypeSort(final Context context) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
return sp.getInt(PREF_PUBLICATION_TYPE_SORT, 0);
}
public static void setPublicationTypeSort(final Context context, int sortId) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
sp.edit().putInt(PREF_PUBLICATION_TYPE_SORT, sortId).commit();
}
public static int getPublicationSort(final Context context) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
return sp.getInt(PREF_PUBLICATION_SORT, 0);
}
public static void setPublicationSort(final Context context, int sortId) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
sp.edit().putInt(PREF_PUBLICATION_SORT, sortId).commit();
}
public static int getHouseholderSort(final Context context) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
return sp.getInt(PREF_HOUSEHOLDER_SORT, 0);
}
public static void setHouseholderSort(final Context context, int sortId) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
sp.edit().putInt(PREF_HOUSEHOLDER_SORT, sortId).commit();
}
public static boolean shouldCalculateRolloverTime(final Context context) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
return sp.getBoolean(context.getString(R.string.pref_key_rollover), true);
}
public static boolean shouldShowMinutesInTotals(final Context context) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
return sp.getBoolean(context.getString(R.string.pref_key_show_minutes), true);
}
public static String getLocale(final Context context) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
return sp.getString(PREF_LOCALE, "en");
}
public static void setLocale(final Context context, String locale) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
sp.edit().putString(PREF_LOCALE, locale).commit();
}
}