/**
* *******************************************************************************
* Copyright 2015 Tom Praschan
* <p/>
* 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
* <p/>
* http://www.apache.org/licenses/LICENSE-2.0
* <p/>
* 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 de.tap.easy_xkcd.utils;
import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
import android.os.Environment;
import android.preference.PreferenceManager;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.util.Log;
import android.view.View;
import com.tap.xkcd_reader.R;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import de.tap.easy_xkcd.Activities.NestedSettingsActivity;
import de.tap.easy_xkcd.database.DatabaseManager;
public class PrefHelper {
private SharedPreferences sharedPrefs;
private SharedPreferences prefs;
private List<Integer> randList;
private int randIndex = 0;
private static final String FULL_OFFLINE = "pref_offline";
private static final String COMIC_TITLES = "comic_titles";
private static final String COMIC_TRANS = "comic_trans";
private static final String COMIC_URLS = "comic_urls";
private static final String SUBTITLE_ENABLED = "pref_subtitle";
private static final String HIGHEST_COMIC_URL = "highest_comic_url";
private static final String OFFLINE_TITLE = "title";
private static final String OFFLINE_ALT = "alt";
private static final String OFFLINE_HIGHEST = "highest_offline";
private static final String NEWEST_COMIC = "Newest Comic";
private static final String LAST_COMIC = "Last Comic";
private static final String ALT_VIBRATION = "pref_alt";
private static final String ALT_BACK = "pref_alt_back";
private static final String ALT_TIP = "alt_tip";
private static final String WHAT_IF_TIP = "whatif_tip";
private static final String RANDOM_TIP = "random_tip";
private static final String SHARE_IMAGE = "pref_share";
private static final String SHARE_MOBILE = "pref_mobile";
private static final String NOTIFICATIONS_INTERVAL = "pref_notifications";
private static final String MONDAY_UPDATE = "monday_update";
private static final String WEDNESDAY_UPDATE = "wednesday_update";
private static final String FRIDAY_UPDATE = "friday_update";
private static final String TUESDAY_UPDATE_WHATIF = "tuesday_update_whatif";
private static final String WEDNESDAY_UPDATE_WHATIF = "wednesday_update_whatif";
private static final String THURSDAY_UPDATE_WHATIF = "thursday_update_whatif";
private static final String ALT_DEFAULT = "pref_show_alt";
private static final String LAST_WHATIF = "last_whatif";
private static final String WHATIF_READ = "whatif_read";
private static final String WHATIF_FAV = "whatif_fav";
private static final String NEWEST_WHATIF = "whatif_newest";
private static final String HIDE_READ_WHATIF = "hide_read";
private static final String HIDE_READ_OVERVIEW = "hide_read_overview";
private static final String SWIPE_ENABLED = "whatif_swipe";
private static final String RATE_SNACKBAR = "rate_snackbar";
private static final String WHATIF_OFFLINE = "pref_offline_whatif";
private static final String WHATIF_TITLES = "whatif_titles";
private static final String NOMEDIA_CREATED = "nomedia_created";
private static final String SHARE_ALT = "pref_share_alt";
private static final String PREF_ZOOM = "pref_zoom";
private static final String PREF_DONATE = "pref_hide_donate";
private static final String DATABASE_LOADED = "database_loaded";
private static final String ALT_STYLE = "pref_alt_style";
private static final String ALT_OPTIONS = "pref_alt_options";
private static final String ALT_ACTIVATION = "pref_alt_activation";
private static final String SURVEY_SNACKBAR = "survey_snackbar";
private static final String CUSTOM_THEMES_SNACKBAR = "custom_themes_snackbar";
private static final String COLORED_NAVBAR = "pref_navbar";
private static final String MOBILE_ENABLED = "pref_update_mobile";
private static final String OFFLINE_PATH = "pref_offline_path";
private static final String ZOOM_SCROLL = "pref_zoom_scroll";
private static final String OVERVIEW_FAV = "overview_fav";
private static final String DEFAULT_ZOOM = "pref_default_zoom";
private static final String OVERVIEW_STYLE = "overview_style";
private static final String BOOKMARK = "bookmark";
private static final String WHAT_IF_SUNBEAM_LOADED = "sun_beam";
private static final String LAUNCH_TO_OVERVIEW = "pref_overview_default";
private static final String INCLUDE_LINK = "pref_include_link";
private static final String WIDGET_ALT = "widget_alt";
private static final String WIDGET_COMIC_NUMBER = "widget_comicNumber";
private static final String NAV_DRAWER_SWIPE = "disable_nav_drawer_swipe";
public PrefHelper(Context context) {
sharedPrefs = context.getSharedPreferences("MainActivity", Activity.MODE_PRIVATE);
prefs = PreferenceManager.getDefaultSharedPreferences(context);
}
public boolean fullOfflineEnabled() {
return prefs.getBoolean(FULL_OFFLINE, false);
}
public void setFullOffline(boolean value) {
prefs.edit().putBoolean(FULL_OFFLINE, value).apply();
}
public boolean navDrawerSwipe() {
return prefs.getBoolean(NAV_DRAWER_SWIPE, true);
}
public void setNavDrawerSwipe(boolean value) {
prefs.edit().putBoolean(NAV_DRAWER_SWIPE, value).apply();
}
public boolean fabEnabled(String prefTag) {
return prefs.getStringSet("pref_random", new HashSet<String>()).contains(prefTag);
}
public boolean subtitleEnabled() {
return prefs.getBoolean(SUBTITLE_ENABLED, true);
}
public boolean classicAltStyle() {
return Integer.parseInt(prefs.getString(ALT_STYLE, "0")) == 0;
}
public boolean databaseLoaded() {
return sharedPrefs.getBoolean(DATABASE_LOADED, false);
}
public void setDatabaseLoaded() {
sharedPrefs.edit().putBoolean(DATABASE_LOADED, true).apply();
}
public void setTitles(String titles) {
sharedPrefs.edit().putString(COMIC_TITLES, titles).apply();
}
public void setUrls(String urls, int highest) {
sharedPrefs.edit().putString(COMIC_URLS, urls).putInt(HIGHEST_COMIC_URL, highest).apply();
}
public void setTrans(String trans) {
sharedPrefs.edit().putString(COMIC_TRANS, trans).apply();
}
public int getHighestUrls() {
return sharedPrefs.getInt(HIGHEST_COMIC_URL, 0);
}
public void addTitle(String title, int i) {
sharedPrefs.edit().putString(OFFLINE_TITLE + String.valueOf(i), title).apply();
}
public String getTitle(int number) {
return sharedPrefs.getString(OFFLINE_TITLE + String.valueOf(number), "");
}
public void addAlt(String alt, int i) {
sharedPrefs.edit().putString(OFFLINE_ALT + String.valueOf(i), alt).apply();
}
public String getAlt(int number) {
return sharedPrefs.getString(OFFLINE_ALT + String.valueOf(number), "");
}
public void setHighestOffline(int number) {
sharedPrefs.edit().putInt(OFFLINE_HIGHEST, number).apply();
}
public int getHighestOffline() {
return sharedPrefs.getInt(OFFLINE_HIGHEST, 0);
}
public int getNewest() {
return sharedPrefs.getInt(NEWEST_COMIC, 0);
}
public void deleteTitleAndAlt(int newest, DatabaseManager databaseManager) {
SharedPreferences.Editor editor = sharedPrefs.edit();
for (int i = 1; i <= newest; i++) {
if (databaseManager.checkFavorite(i)) {
editor.putString(OFFLINE_TITLE, "");
editor.putString(OFFLINE_ALT, "");
}
}
editor.apply();
}
public void setLastComic(int number) {
sharedPrefs.edit().putInt(LAST_COMIC, number).apply();
}
public int getLastComic() {
return sharedPrefs.getInt(LAST_COMIC, 0);
}
public void setNewestComic(int number) {
sharedPrefs.edit().putInt(NEWEST_COMIC, number).apply();
}
public boolean altVibration() {
return prefs.getStringSet(ALT_OPTIONS, new HashSet<String>()).contains(ALT_VIBRATION);
}
public boolean altBackButton() {
return prefs.getStringSet(ALT_OPTIONS, new HashSet<String>()).contains(ALT_BACK);
}
public boolean showAltTip() {
return sharedPrefs.getBoolean(ALT_TIP, true);
}
public boolean showWhatIfTip() {
return sharedPrefs.getBoolean(WHAT_IF_TIP, true);
}
public boolean showRandomTip() {
return sharedPrefs.getBoolean(RANDOM_TIP, true);
}
public void setAltTip(boolean value) {
sharedPrefs.edit().putBoolean(ALT_TIP, value).apply();
}
public void setWhatIfTip(boolean value) {
sharedPrefs.edit().putBoolean(WHAT_IF_TIP, value).apply();
}
public void setRandomTip(boolean value) {
sharedPrefs.edit().putBoolean(RANDOM_TIP, value).apply();
}
public boolean shareImage() {
return prefs.getBoolean(SHARE_IMAGE, false);
}
public boolean shareMobile() {
return prefs.getBoolean(SHARE_MOBILE, false);
}
public int getNotificationInterval() {
String hours = prefs.getString(NOTIFICATIONS_INTERVAL, "0");
switch (hours) {
case "12":
case "6":
hours = "5";
break;
}
return Integer.parseInt(hours) * 60 * 60 * 1000;
}
public boolean checkComicUpdated(int day) {
switch (day) {
case Calendar.MONDAY:
return sharedPrefs.getBoolean(MONDAY_UPDATE, false);
case Calendar.WEDNESDAY:
return sharedPrefs.getBoolean(WEDNESDAY_UPDATE, false);
case Calendar.FRIDAY:
return sharedPrefs.getBoolean(FRIDAY_UPDATE, false);
}
return true;
}
public boolean checkWhatIfUpdated(int day) {
switch (day) {
case Calendar.TUESDAY:
return sharedPrefs.getBoolean(TUESDAY_UPDATE_WHATIF, false);
case Calendar.WEDNESDAY:
return sharedPrefs.getBoolean(WEDNESDAY_UPDATE_WHATIF, false);
case Calendar.THURSDAY:
return sharedPrefs.getBoolean(THURSDAY_UPDATE_WHATIF, false);
}
return true;
}
public void setWhatIfUpdated(int day, boolean found) {
SharedPreferences.Editor editor = sharedPrefs.edit();
switch (day) {
case Calendar.TUESDAY:
editor.putBoolean(TUESDAY_UPDATE_WHATIF, found);
editor.putBoolean(WEDNESDAY_UPDATE_WHATIF, false);
editor.putBoolean(THURSDAY_UPDATE_WHATIF, false);
break;
case Calendar.WEDNESDAY:
editor.putBoolean(WEDNESDAY_UPDATE_WHATIF, found);
editor.putBoolean(TUESDAY_UPDATE_WHATIF, false);
editor.putBoolean(THURSDAY_UPDATE_WHATIF, false);
break;
case Calendar.THURSDAY:
editor.putBoolean(THURSDAY_UPDATE_WHATIF, found);
editor.putBoolean(TUESDAY_UPDATE_WHATIF, false);
editor.putBoolean(WEDNESDAY_UPDATE_WHATIF, false);
break;
}
editor.apply();
Log.d("Update Status WhatIf:", String.valueOf(sharedPrefs.getBoolean(TUESDAY_UPDATE_WHATIF, false))
+ String.valueOf(sharedPrefs.getBoolean(WEDNESDAY_UPDATE_WHATIF, false))
+ String.valueOf(sharedPrefs.getBoolean(THURSDAY_UPDATE_WHATIF, false)));
}
public void setUpdated(int day, boolean found) {
SharedPreferences.Editor editor = sharedPrefs.edit();
switch (day) {
case Calendar.MONDAY:
editor.putBoolean(MONDAY_UPDATE, found);
editor.putBoolean(WEDNESDAY_UPDATE, false);
editor.putBoolean(FRIDAY_UPDATE, false);
break;
case Calendar.WEDNESDAY:
editor.putBoolean(WEDNESDAY_UPDATE, found);
editor.putBoolean(FRIDAY_UPDATE, false);
editor.putBoolean(MONDAY_UPDATE, false);
break;
case Calendar.FRIDAY:
editor.putBoolean(FRIDAY_UPDATE, found);
editor.putBoolean(MONDAY_UPDATE, false);
editor.putBoolean(WEDNESDAY_UPDATE, false);
break;
}
editor.apply();
Log.d("Update Status:", String.valueOf(sharedPrefs.getBoolean(MONDAY_UPDATE, false))
+ String.valueOf(sharedPrefs.getBoolean(WEDNESDAY_UPDATE, false))
+ String.valueOf(sharedPrefs.getBoolean(FRIDAY_UPDATE, false)));
}
public boolean altByDefault() {
return prefs.getStringSet(ALT_OPTIONS, new HashSet<String>()).contains(ALT_DEFAULT);
}
public int getLastWhatIf() {
return sharedPrefs.getInt(LAST_WHATIF, 0);
}
public void setLastWhatIf(int number) {
sharedPrefs.edit().putInt(LAST_WHATIF, number).apply();
}
/*public boolean WhatIfNightModeEnabled() {
return sharedPrefs.getBoolean(WHATIF_NIGHT_MODE, false);
}
public void setWhatIfNightMode(boolean value) {
sharedPrefs.edit().putBoolean(WHATIF_NIGHT_MODE, value).apply();
}*/
public void setWhatifRead(String added) {
String read = sharedPrefs.getString(WHATIF_READ, "");
if (!read.equals("")) {
read = read + "," + added;
} else {
read = added;
}
sharedPrefs.edit().putString(WHATIF_READ, read).apply();
}
public void setAllUnread() {
sharedPrefs.edit().putString(WHATIF_READ, "").apply();
}
public void setAllWhatIfRead() {
for (int i = 1; i<=getNewestWhatIf(); i++)
setWhatifRead(String.valueOf(i));
}
public boolean checkRead(int number) {
String read = sharedPrefs.getString(WHATIF_READ, "");
if (read.equals("")) {
return false;
}
String[] readList = read.split(",");
int[] readInt = new int[readList.length];
for (int i = 0; i < readInt.length; i++)
readInt[i] = Integer.parseInt(readList[i]);
Arrays.sort(readInt);
int a = Arrays.binarySearch(readInt, number);
return (a >= 0);
}
/*public void setComicRead(String added) {
String read = sharedPrefs.getString(COMIC_READ, "");
if (!read.equals("")) {
read = read + "," + added;
} else {
read = added;
}
SharedPreferences.Editor editor = sharedPrefs.edit();
editor.putString(COMIC_READ, read);
editor.apply();
}*/
/*public int[] getComicRead() {
String read = sharedPrefs.getString(COMIC_READ, "");
if (!read.equals("")) {
String[] readList = Favorites.sortArray(read.split(","));
int[] readInt = new int[readList.length];
for (int i = 0; i < readInt.length; i++) {
readInt[i] = Integer.parseInt(readList[i]);
}
return readInt;
}
return null;
} */
public void setWhatIfFavorite(String added) {
String fav = sharedPrefs.getString(WHATIF_FAV, "");
if (!fav.equals("")) {
fav = fav + "," + added;
} else {
fav = added;
}
sharedPrefs.edit().putString(WHATIF_FAV, fav).apply();
}
public boolean checkWhatIfFav(int number) {
String fav = sharedPrefs.getString(WHATIF_FAV, "");
if (fav.equals("")) {
return false;
}
String[] favList = fav.split(",");
int[] favInt = new int[favList.length];
for (int i = 0; i < favInt.length; i++)
favInt[i] = Integer.parseInt(favList[i]);
Arrays.sort(favInt);
int a = Arrays.binarySearch(favInt, number);
return (a >= 0);
}
public void removeWhatifFav(int number) {
String[] old = sharedPrefs.getString(WHATIF_FAV, "").split(",");
int[] oldInt = new int[old.length];
for (int i = 0; i < old.length; i++)
oldInt[i] = Integer.parseInt(old[i]);
Arrays.sort(oldInt);
int a = Arrays.binarySearch(oldInt, number);
String[] out = new String[old.length - 1];
if (out.length != 0 && a >= 0) {
System.arraycopy(old, 0, out, 0, a);
System.arraycopy(old, a + 1, out, a, out.length - a);
StringBuilder sb = new StringBuilder();
sb.append(out[0]);
for (int i = 1; i < out.length; i++) {
sb.append(",");
sb.append(out[i]);
}
sharedPrefs.edit().putString(WHATIF_FAV, sb.toString()).apply();
} else {
sharedPrefs.edit().putString(WHATIF_FAV, "").apply();
}
}
/*public void setComicsUnread() {
sharedPrefs.edit().putString(COMIC_READ, "").apply();
}*/
public boolean hideReadWhatIf() {
return sharedPrefs.getBoolean(HIDE_READ_WHATIF, false);
}
public void setHideReadWhatIf(boolean value) {
sharedPrefs.edit().putBoolean(HIDE_READ_WHATIF, value).apply();
}
public boolean hideRead() {
return sharedPrefs.getBoolean(HIDE_READ_OVERVIEW, false);
}
public void setHideRead(boolean value) {
sharedPrefs.edit().putBoolean(HIDE_READ_OVERVIEW, value).apply();
}
public boolean swipeEnabled() {
return sharedPrefs.getBoolean(SWIPE_ENABLED, false);
}
public void setSwipeEnabled(boolean value) {
sharedPrefs.edit().putBoolean(SWIPE_ENABLED, value).apply();
}
public boolean showRateDialog() {
int n = sharedPrefs.getInt(RATE_SNACKBAR, 0);
if (n < 31) {
SharedPreferences.Editor editor = sharedPrefs.edit();
editor.putInt(RATE_SNACKBAR, n + 1);
editor.apply();
}
return (n == 12 | n == 30);
}
public void showRateSnackbar(final String packageName, final Context context, FloatingActionButton mFab) {
// Thanks to /u/underhound for this great idea! https://www.reddit.com/r/Android/comments/3i6uw0/dev_i_think_ive_mastered_the_art_of_asking_for/
if (showRateDialog()) {
View.OnClickListener oc = new View.OnClickListener() {
@Override
public void onClick(View v) {
Uri uri = Uri.parse("market://details?id=" + packageName);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
SharedPreferences.Editor editor = sharedPrefs.edit();
editor.putInt(RATE_SNACKBAR, 32);
editor.apply();
try {
context.startActivity(intent);
} catch (ActivityNotFoundException e) {
context.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://play.google.com/store/apps/details?id=" + packageName)));
}
}
};
Snackbar.make(mFab, R.string.snackbar_rate, Snackbar.LENGTH_LONG)
.setAction(R.string.snackbar_rate_action, oc)
.show();
}
}
public int getNewestWhatIf() {
return sharedPrefs.getInt(NEWEST_WHATIF, 1);
}
public void setNewestWhatif(int number) {
sharedPrefs.edit().putInt(NEWEST_WHATIF, number).apply();
}
public void setFullOfflineWhatIf(boolean value) {
prefs.edit().putBoolean(WHATIF_OFFLINE, value).apply();
}
public boolean fullOfflineWhatIf() {
return prefs.getBoolean(WHATIF_OFFLINE, false);
}
public void setWhatIfTitles(String titles) {
sharedPrefs.edit().putString(WHATIF_TITLES, titles).apply();
}
public ArrayList<String> getWhatIfTitles() {
String titles = sharedPrefs.getString(WHATIF_TITLES, "");
return new ArrayList<>(Arrays.asList(titles.split("&&")));
}
public boolean nomediaCreated() {
SharedPreferences.Editor editor = sharedPrefs.edit();
boolean created = sharedPrefs.getBoolean(NOMEDIA_CREATED, false);
if (!created)
editor.putBoolean(NOMEDIA_CREATED, true).apply();
return created;
}
public boolean shareAlt() {
return prefs.getStringSet(ALT_OPTIONS, new HashSet<String>()).contains(SHARE_ALT);
}
public int getZoom(int webDefault) {
int i;
try {
i = Integer.parseInt(prefs.getString(PREF_ZOOM, String.valueOf(webDefault)));
} catch (Exception e) {
i = webDefault;
}
return i;
}
public boolean hideDonate() {
return prefs.getBoolean(PREF_DONATE, false);
}
public void setHideDonate(boolean value) {
prefs.edit().putBoolean(PREF_DONATE, value).apply();
}
public boolean altLongTap() {
return Integer.parseInt(prefs.getString(ALT_ACTIVATION, "1")) == 1;
}
public void showSurveySnackbar(final Context context, FloatingActionButton fab) {
int n = sharedPrefs.getInt("survey count", 0);
if (!sharedPrefs.getBoolean(SURVEY_SNACKBAR, false) && n == 15) {
View.OnClickListener oc = new View.OnClickListener() {
@Override
public void onClick(View v) {
Uri uri = Uri.parse("https://docs.google.com/forms/d/1c9hb80NU67CImMKAlOH4p9-F63_duC7qAL30FhJv9Xg/viewform?usp=send_form");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
context.startActivity(intent);
}
};
sharedPrefs.edit().putBoolean(SURVEY_SNACKBAR, true).apply();
Snackbar.make(fab, R.string.snackbar_survey, Snackbar.LENGTH_LONG)
.setAction(R.string.snackbar_survey_oc, oc)
.show();
} else if (n < 15) {
sharedPrefs.edit().putInt("survey count", n + 1).apply();
}
}
public void showFeatureSnackbar(final Activity activity, FloatingActionButton fab) {
if (!sharedPrefs.getBoolean(CUSTOM_THEMES_SNACKBAR, false)) {
View.OnClickListener oc = new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(activity, NestedSettingsActivity.class);
intent.putExtra("key", "appearance");
activity.startActivityForResult(intent, 1);
}
};
SharedPreferences.Editor editor = sharedPrefs.edit();
editor.putBoolean(CUSTOM_THEMES_SNACKBAR, true);
editor.apply();
Snackbar.make(fab, R.string.snackbar_feature, Snackbar.LENGTH_LONG)
.setAction(R.string.snackbar_feature_oc, oc)
.show();
}
}
public int getRandomNumber(int current) {
if (randList == null) {
randList = new ArrayList<>();
for (int i = 1; i < getNewest(); i++) {
if (i != current)
randList.add(i);
}
Collections.shuffle(randList);
randList.add(0, current);
}
int result;
if (randIndex == 0) {
result = randList.get(randIndex + 1);
randIndex++;
} else {
randIndex++;
result = randList.get(randIndex);
}
return result;
}
public int getPreviousRandom(int i) {
if (randList != null && randIndex > 0) {
int result;
if (randIndex == 1) {
randIndex--;
result = randList.get(randIndex);
} else {
result = randList.get(randIndex - 1);
randIndex--;
}
return result;
}
return i;
}
public boolean colorNavbar() {
return prefs.getBoolean(COLORED_NAVBAR, true);
}
public boolean mobileEnabled() {
return prefs.getBoolean(MOBILE_ENABLED, true);
}
/*public boolean autoNightEnabled() {
return prefs.getBoolean(AUTO_NIGHT, false);
}*/
/*public boolean nightThemeEnabled() {
try {
if (prefs.getBoolean(NIGHT_THEME, false) && autoNightEnabled()) {
int hour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY);
int minute = Calendar.getInstance().get(Calendar.MINUTE);
int[] start = getAutoNightStart();
int[] end = getAutoNightEnd();
if (hour == start[0]) {
return minute >= start[1];
}
if (hour == end[0]) {
return minute < end[1];
}
if (hour > start[0] && hour > end[0] && end[0] >= start[0]) {
return false;
}
if (hour > start[0]) {*/
/*if (end[0] > start[0]) {
return hour < end[0];
} else {
return true;
} */
/* return end[0] <= start[0] || hour < end[0];
} else {
return hour < end[0];
}
} else {
return prefs.getBoolean(NIGHT_THEME, false);
}
} catch (NullPointerException e) {
Log.e("error", "night theme null pointer");
return false;
}
}*/
/*public int[] getAutoNightStart() {
return new int[]{
sharedPrefs.getInt(AUTO_NIGHT_START_HOUR, 21),
sharedPrefs.getInt(AUTO_NIGHT_START_MIN, 0)
};
}
public int[] getAutoNightEnd() {
return new int[]{
sharedPrefs.getInt(AUTO_NIGHT_END_HOUR, 8),
sharedPrefs.getInt(AUTO_NIGHT_END_MIN, 0)
};
}
public void setAutoNightStart(int[] time) {
sharedPrefs.edit()
.putInt(AUTO_NIGHT_START_HOUR, time[0])
.putInt(AUTO_NIGHT_START_MIN, time[1])
.apply();
}
public void setAutoNightEnd(int[] time) {
sharedPrefs.edit()
.putInt(AUTO_NIGHT_END_HOUR, time[0])
.putInt(AUTO_NIGHT_END_MIN, time[1])
.apply();
}*/
/*public String getStartSummary() {
int[] start = getAutoNightStart();
String suffix = "";
String minute = String.valueOf(start[1]);
if (start[1] < 10) {
minute = "0" + minute;
}
return start[0] + ":" + minute + suffix;
}
public String getEndSummary() {
int[] end = getAutoNightEnd();
String suffix = "";
String minute = String.valueOf(end[1]);
if (end[1] < 10) {
minute = "0" + minute;
}
return end[0] + ":" + minute + suffix;
} */
public File getOfflinePath() {
String path = prefs.getString(OFFLINE_PATH, "default");
if (path.equals("default"))
return Environment.getExternalStorageDirectory();
return new File(path);
}
public void setOfflinePath(String path) {
prefs.edit().putString(OFFLINE_PATH, path).apply();
}
public boolean isWifi(Context context) {
if (context == null) {
Log.e("error", "context null");
return true;
}
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = cm.getActiveNetworkInfo();
return (info != null && info.isConnected() && info.getType() == ConnectivityManager.TYPE_WIFI);
}
public boolean isOnline(Context context) {
ConnectivityManager cm =
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
return netInfo != null && netInfo.isConnected();
}
public boolean scrollDisabledWhileZoom() {
return prefs.getBoolean(ZOOM_SCROLL, true);
}
public boolean overviewFav() {
return sharedPrefs.getBoolean(OVERVIEW_FAV, false);
}
public void setOverviewFav(boolean value) {
sharedPrefs.edit().putBoolean(OVERVIEW_FAV, value).apply();
}
public boolean defaultZoom() {
return prefs.getBoolean(DEFAULT_ZOOM, true);
}
public int getOverviewStyle() {
return sharedPrefs.getInt(OVERVIEW_STYLE, 1);
}
public void setOverviewStyle(int style) {
sharedPrefs.edit().putInt(OVERVIEW_STYLE, style).apply();
}
public void setBookmark(int number) {
sharedPrefs.edit().putInt(BOOKMARK, number).apply();
}
public int getBookmark() {
return sharedPrefs.getInt(BOOKMARK, 0);
}
public boolean sunBeamDownloaded() {
return sharedPrefs.getBoolean(WHAT_IF_SUNBEAM_LOADED, false);
}
public void setSunbeamLoaded() {
sharedPrefs.edit().putBoolean(WHAT_IF_SUNBEAM_LOADED, true).apply();
}
public boolean launchToOverview() {
return prefs.getBoolean(LAUNCH_TO_OVERVIEW, false);
}
public boolean includeLink() {return prefs.getBoolean(INCLUDE_LINK, false);}
public boolean widgetShowAlt() {return prefs.getBoolean(WIDGET_ALT, false);}
public boolean widgetShowComicNumber() {return prefs.getBoolean(WIDGET_COMIC_NUMBER, true);}
}