Refactor: Unify SharedPreferences using SharedPreferences Manager

This commit is contained in:
srv-twry 2018-02-27 09:25:52 +05:30 committed by Isaac Hutt
parent f4243a58f7
commit 6646b319c9
15 changed files with 289 additions and 172 deletions

View File

@ -36,7 +36,6 @@ import android.net.Uri;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.preference.PreferenceManager;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import android.support.design.widget.CoordinatorLayout; import android.support.design.widget.CoordinatorLayout;
import android.support.design.widget.Snackbar; import android.support.design.widget.Snackbar;
@ -91,6 +90,7 @@ import org.kiwix.kiwixmobile.utils.KiwixTextToSpeech;
import org.kiwix.kiwixmobile.utils.LanguageUtils; import org.kiwix.kiwixmobile.utils.LanguageUtils;
import org.kiwix.kiwixmobile.utils.NetworkUtils; import org.kiwix.kiwixmobile.utils.NetworkUtils;
import org.kiwix.kiwixmobile.utils.RateAppCounter; import org.kiwix.kiwixmobile.utils.RateAppCounter;
import org.kiwix.kiwixmobile.utils.SharedPreferenceUtil;
import org.kiwix.kiwixmobile.utils.StyleUtils; import org.kiwix.kiwixmobile.utils.StyleUtils;
import org.kiwix.kiwixmobile.utils.files.FileReader; import org.kiwix.kiwixmobile.utils.files.FileReader;
import org.kiwix.kiwixmobile.utils.files.FileUtils; import org.kiwix.kiwixmobile.utils.files.FileUtils;
@ -131,17 +131,7 @@ import static org.kiwix.kiwixmobile.utils.Constants.EXTRA_NOTIFICATION_ID;
import static org.kiwix.kiwixmobile.utils.Constants.EXTRA_SEARCH; import static org.kiwix.kiwixmobile.utils.Constants.EXTRA_SEARCH;
import static org.kiwix.kiwixmobile.utils.Constants.EXTRA_ZIM_FILE; import static org.kiwix.kiwixmobile.utils.Constants.EXTRA_ZIM_FILE;
import static org.kiwix.kiwixmobile.utils.Constants.EXTRA_ZIM_FILE_2; import static org.kiwix.kiwixmobile.utils.Constants.EXTRA_ZIM_FILE_2;
import static org.kiwix.kiwixmobile.utils.Constants.PREF_BACK_TO_TOP;
import static org.kiwix.kiwixmobile.utils.Constants.PREF_BOTTOM_TOOLBAR;
import static org.kiwix.kiwixmobile.utils.Constants.PREF_EXTERNAL_LINK_POPUP;
import static org.kiwix.kiwixmobile.utils.Constants.PREF_FULLSCREEN;
import static org.kiwix.kiwixmobile.utils.Constants.PREF_HIDE_TOOLBAR;
import static org.kiwix.kiwixmobile.utils.Constants.PREF_KIWIX_MOBILE; import static org.kiwix.kiwixmobile.utils.Constants.PREF_KIWIX_MOBILE;
import static org.kiwix.kiwixmobile.utils.Constants.PREF_LANG;
import static org.kiwix.kiwixmobile.utils.Constants.PREF_NEW_TAB_BACKGROUND;
import static org.kiwix.kiwixmobile.utils.Constants.PREF_WIFI_ONLY;
import static org.kiwix.kiwixmobile.utils.Constants.PREF_ZOOM;
import static org.kiwix.kiwixmobile.utils.Constants.PREF_ZOOM_ENABLED;
import static org.kiwix.kiwixmobile.utils.Constants.REQUEST_FILE_SEARCH; import static org.kiwix.kiwixmobile.utils.Constants.REQUEST_FILE_SEARCH;
import static org.kiwix.kiwixmobile.utils.Constants.REQUEST_FILE_SELECT; import static org.kiwix.kiwixmobile.utils.Constants.REQUEST_FILE_SELECT;
import static org.kiwix.kiwixmobile.utils.Constants.REQUEST_PREFERENCES; import static org.kiwix.kiwixmobile.utils.Constants.REQUEST_PREFERENCES;
@ -222,8 +212,6 @@ public class KiwixMobileActivity extends BaseActivity implements WebViewCallback
private boolean isFirstRun; private boolean isFirstRun;
private SharedPreferences settings;
private BookmarksDao bookmarksDao; private BookmarksDao bookmarksDao;
@BindView(R.id.toolbar) Toolbar toolbar; @BindView(R.id.toolbar) Toolbar toolbar;
@ -270,6 +258,7 @@ public class KiwixMobileActivity extends BaseActivity implements WebViewCallback
@Inject OkHttpClient okHttpClient; @Inject OkHttpClient okHttpClient;
@Inject SharedPreferenceUtil sharedPreferenceUtil;
@Override @Override
public void onActionModeStarted(ActionMode mode) { public void onActionModeStarted(ActionMode mode) {
@ -362,13 +351,12 @@ public class KiwixMobileActivity extends BaseActivity implements WebViewCallback
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); super.onCreate(savedInstanceState);
wifiOnly = sharedPreferences.getBoolean(PREF_WIFI_ONLY, true); wifiOnly = sharedPreferenceUtil.getPrefWifiOnly();
nightMode = KiwixSettingsActivity.nightMode(sharedPreferences); nightMode = KiwixSettingsActivity.nightMode(sharedPreferenceUtil);
if (nightMode) { if (nightMode) {
setTheme(R.style.AppTheme_Night); setTheme(R.style.AppTheme_Night);
} }
super.onCreate(savedInstanceState);
handleLocaleCheck(); handleLocaleCheck();
setContentView(R.layout.main); setContentView(R.layout.main);
ButterKnife.bind(this); ButterKnife.bind(this);
@ -383,7 +371,7 @@ public class KiwixMobileActivity extends BaseActivity implements WebViewCallback
snackbarLayout.setFitsSystemWindows(true); snackbarLayout.setFitsSystemWindows(true);
} }
isHideToolbar = sharedPreferences.getBoolean(PREF_HIDE_TOOLBAR, true); isHideToolbar = sharedPreferenceUtil.getPrefHideToolbar();
FileReader fileReader = new FileReader(); FileReader fileReader = new FileReader();
documentParserJs = fileReader.readFile("js/documentParser.js", this); documentParserJs = fileReader.readFile("js/documentParser.js", this);
@ -531,8 +519,7 @@ public class KiwixMobileActivity extends BaseActivity implements WebViewCallback
} }
private void checkForRateDialog() { private void checkForRateDialog() {
settings = PreferenceManager.getDefaultSharedPreferences(this); isFirstRun = sharedPreferenceUtil.getPrefIsFirstRun();
isFirstRun = settings.getBoolean("isFirstRun", true);
visitCounterPref = new RateAppCounter(this); visitCounterPref = new RateAppCounter(this);
tempVisitCount = visitCounterPref.getCount(); tempVisitCount = visitCounterPref.getCount();
++tempVisitCount; ++tempVisitCount;
@ -660,8 +647,8 @@ public class KiwixMobileActivity extends BaseActivity implements WebViewCallback
// Reset the Locale and change the font of all TextViews and its subclasses, if necessary // Reset the Locale and change the font of all TextViews and its subclasses, if necessary
private void handleLocaleCheck() { private void handleLocaleCheck() {
LanguageUtils.handleLocaleChange(this); LanguageUtils.handleLocaleChange(this, sharedPreferenceUtil);
new LanguageUtils(this).changeFont(getLayoutInflater()); new LanguageUtils(this).changeFont(getLayoutInflater(), sharedPreferenceUtil);
} }
@Override @Override
@ -904,10 +891,7 @@ public class KiwixMobileActivity extends BaseActivity implements WebViewCallback
int classicScreenFlag = WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN; int classicScreenFlag = WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN;
getWindow().addFlags(fullScreenFlag); getWindow().addFlags(fullScreenFlag);
getWindow().clearFlags(classicScreenFlag); getWindow().clearFlags(classicScreenFlag);
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this); sharedPreferenceUtil.putPrefFullScreen(true);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean(PREF_FULLSCREEN, true);
editor.apply();
expandDrawers(); expandDrawers();
isFullscreenOpened = true; isFullscreenOpened = true;
getCurrentWebView().requestLayout(); getCurrentWebView().requestLayout();
@ -919,7 +903,7 @@ public class KiwixMobileActivity extends BaseActivity implements WebViewCallback
private void closeFullScreen() { private void closeFullScreen() {
toolbarContainer.setVisibility(View.VISIBLE); toolbarContainer.setVisibility(View.VISIBLE);
if (settings.getBoolean(PREF_BOTTOM_TOOLBAR, false)) { if (sharedPreferenceUtil.getPrefBottomToolbar()) {
pageBottomTabLayout.setVisibility(View.VISIBLE); pageBottomTabLayout.setVisibility(View.VISIBLE);
menuBookmarks.setVisible(false); menuBookmarks.setVisible(false);
} }
@ -929,10 +913,7 @@ public class KiwixMobileActivity extends BaseActivity implements WebViewCallback
int classicScreenFlag = WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN; int classicScreenFlag = WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN;
getWindow().clearFlags(fullScreenFlag); getWindow().clearFlags(fullScreenFlag);
getWindow().addFlags(classicScreenFlag); getWindow().addFlags(classicScreenFlag);
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this); sharedPreferenceUtil.putPrefFullScreen(false);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean(PREF_FULLSCREEN, false);
editor.apply();
shrinkDrawers(); shrinkDrawers();
isFullscreenOpened = false; isFullscreenOpened = false;
getCurrentWebView().requestLayout(); getCurrentWebView().requestLayout();
@ -981,11 +962,7 @@ public class KiwixMobileActivity extends BaseActivity implements WebViewCallback
// do nothing // do nothing
}) })
.setNeutralButton(R.string.do_not_ask_anymore, (dialogInterface, i) -> { .setNeutralButton(R.string.do_not_ask_anymore, (dialogInterface, i) -> {
PreferenceManager sharedPreferenceUtil.putPrefExternalLinkPopup(false);
.getDefaultSharedPreferences(KiwixMobileActivity.this)
.edit()
.putBoolean(PREF_EXTERNAL_LINK_POPUP, false)
.apply();
isExternalLinkPopup = false; isExternalLinkPopup = false;
startActivity(intent); startActivity(intent);
@ -1242,7 +1219,7 @@ public class KiwixMobileActivity extends BaseActivity implements WebViewCallback
mWebViews.get(currentWebViewIndex).findViewById(R.id.get_content_card).setEnabled(true); mWebViews.get(currentWebViewIndex).findViewById(R.id.get_content_card).setEnabled(true);
} }
if (settings.getBoolean(PREF_BOTTOM_TOOLBAR, false)) { if (sharedPreferenceUtil.getPrefBottomToolbar()) {
pageBottomTabLayout.setVisibility(View.VISIBLE); pageBottomTabLayout.setVisibility(View.VISIBLE);
if (menuBookmarks != null) { if (menuBookmarks != null) {
menuBookmarks.setVisible(false); menuBookmarks.setVisible(false);
@ -1543,9 +1520,7 @@ public class KiwixMobileActivity extends BaseActivity implements WebViewCallback
openFullScreen(); openFullScreen();
} }
if (PreferenceManager if (sharedPreferenceUtil.getPrefBottomToolbar()) {
.getDefaultSharedPreferences(getApplicationContext())
.getBoolean(PREF_BOTTOM_TOOLBAR, false)) {
menu.findItem(R.id.menu_bookmarks).setVisible(false); menu.findItem(R.id.menu_bookmarks).setVisible(false);
} }
@ -1632,17 +1607,16 @@ public class KiwixMobileActivity extends BaseActivity implements WebViewCallback
public void loadPrefs() { public void loadPrefs() {
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); nightMode = KiwixSettingsActivity.nightMode(sharedPreferenceUtil);
nightMode = KiwixSettingsActivity.nightMode(sharedPreferences); isBackToTopEnabled = sharedPreferenceUtil.getPrefBackToTop();
isBackToTopEnabled = sharedPreferences.getBoolean(PREF_BACK_TO_TOP, false); isHideToolbar = sharedPreferenceUtil.getPrefHideToolbar();
isHideToolbar = sharedPreferences.getBoolean(PREF_HIDE_TOOLBAR, true); isFullscreenOpened = sharedPreferenceUtil.getPrefFullScreen();
isFullscreenOpened = sharedPreferences.getBoolean(PREF_FULLSCREEN, false); boolean isZoomEnabled = sharedPreferenceUtil.getPrefZoomEnabled();
boolean isZoomEnabled = sharedPreferences.getBoolean(PREF_ZOOM_ENABLED, false); isOpenNewTabInBackground = sharedPreferenceUtil.getPrefNewTabBackground();
isOpenNewTabInBackground = sharedPreferences.getBoolean(PREF_NEW_TAB_BACKGROUND, false); isExternalLinkPopup = sharedPreferenceUtil.getPrefExternalLinkPopup();
isExternalLinkPopup = sharedPreferences.getBoolean(PREF_EXTERNAL_LINK_POPUP, true);
if (isZoomEnabled) { if (isZoomEnabled) {
int zoomScale = (int) sharedPreferences.getFloat(PREF_ZOOM, 100.0f); int zoomScale = (int) sharedPreferenceUtil.getPrefZoom();
getCurrentWebView().setInitialScale(zoomScale); getCurrentWebView().setInitialScale(zoomScale);
} else { } else {
getCurrentWebView().setInitialScale(0); getCurrentWebView().setInitialScale(0);
@ -1771,11 +1745,7 @@ public class KiwixMobileActivity extends BaseActivity implements WebViewCallback
LanguageUtils.handleLocaleChange(this, BuildConfig.ENFORCED_LANG); LanguageUtils.handleLocaleChange(this, BuildConfig.ENFORCED_LANG);
// save new locale into preferences for next startup // save new locale into preferences for next startup
SharedPreferences sharedPreferences = sharedPreferenceUtil.putPrefLanguage(BuildConfig.ENFORCED_LANG);
PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(PREF_LANG, BuildConfig.ENFORCED_LANG);
editor.apply();
// restart activity for new locale to take effect // restart activity for new locale to take effect
this.setResult(1236); this.setResult(1236);
@ -1841,10 +1811,8 @@ public class KiwixMobileActivity extends BaseActivity implements WebViewCallback
@Override public void webViewUrlLoading() { @Override public void webViewUrlLoading() {
if (isFirstRun && !BuildConfig.DEBUG) { if (isFirstRun && !BuildConfig.DEBUG) {
contentsDrawerHint(); contentsDrawerHint();
SharedPreferences.Editor editor = settings.edit(); sharedPreferenceUtil.putPrefIsFirstRun(false);// It is no longer the first run
editor.putBoolean("isFirstRun", false); // It is no longer the first run
isFirstRun = false; isFirstRun = false;
editor.apply();
} }
} }

View File

@ -49,6 +49,7 @@ import org.kiwix.kiwixmobile.R;
import org.kiwix.kiwixmobile.base.BaseActivity; import org.kiwix.kiwixmobile.base.BaseActivity;
import org.kiwix.kiwixmobile.di.components.ApplicationComponent; import org.kiwix.kiwixmobile.di.components.ApplicationComponent;
import org.kiwix.kiwixmobile.settings.KiwixSettingsActivity; import org.kiwix.kiwixmobile.settings.KiwixSettingsActivity;
import org.kiwix.kiwixmobile.utils.SharedPreferenceUtil;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -76,15 +77,16 @@ public class BookmarksActivity extends BaseActivity
LinearLayout noBookmarksLayout; LinearLayout noBookmarksLayout;
@Inject @Inject
BookmarksPresenter presenter; BookmarksPresenter presenter;
@Inject
SharedPreferenceUtil sharedPreferenceUtil;
private ActionModeListener actionModeListener; private ActionModeListener actionModeListener;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); super.onCreate(savedInstanceState);
if (KiwixSettingsActivity.nightMode(sharedPreferences)) { if (KiwixSettingsActivity.nightMode(sharedPreferenceUtil)) {
setTheme(R.style.AppTheme_Night); setTheme(R.style.AppTheme_Night);
} }
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_bookmarks); setContentView(R.layout.activity_bookmarks);
ButterKnife.bind(this); ButterKnife.bind(this);

View File

@ -6,9 +6,12 @@ import org.kiwix.kiwixmobile.bookmarks_view.BookmarksActivity;
import org.kiwix.kiwixmobile.di.modules.ApplicationModule; import org.kiwix.kiwixmobile.di.modules.ApplicationModule;
import org.kiwix.kiwixmobile.di.modules.JNIModule; import org.kiwix.kiwixmobile.di.modules.JNIModule;
import org.kiwix.kiwixmobile.di.modules.NetworkModule; import org.kiwix.kiwixmobile.di.modules.NetworkModule;
import org.kiwix.kiwixmobile.downloader.DownloadFragment;
import org.kiwix.kiwixmobile.downloader.DownloadService; import org.kiwix.kiwixmobile.downloader.DownloadService;
import org.kiwix.kiwixmobile.library.LibraryAdapter; import org.kiwix.kiwixmobile.library.LibraryAdapter;
import org.kiwix.kiwixmobile.search.SearchActivity; import org.kiwix.kiwixmobile.search.SearchActivity;
import org.kiwix.kiwixmobile.settings.KiwixSettingsActivity;
import org.kiwix.kiwixmobile.views.web.KiwixWebView;
import org.kiwix.kiwixmobile.zim_manager.ZimManageActivity; import org.kiwix.kiwixmobile.zim_manager.ZimManageActivity;
import org.kiwix.kiwixmobile.zim_manager.fileselect_view.ZimFileSelectFragment; import org.kiwix.kiwixmobile.zim_manager.fileselect_view.ZimFileSelectFragment;
import org.kiwix.kiwixmobile.zim_manager.library_view.LibraryFragment; import org.kiwix.kiwixmobile.zim_manager.library_view.LibraryFragment;
@ -41,4 +44,12 @@ public interface ApplicationComponent {
void inject(SearchActivity searchActivity); void inject(SearchActivity searchActivity);
void inject(ZimManageActivity zimManageActivity); void inject(ZimManageActivity zimManageActivity);
void inject(KiwixWebView kiwixWebView);
void inject(KiwixSettingsActivity kiwixSettingsActivity);
void inject(KiwixSettingsActivity.PrefsFragment prefsFragment);
void inject(DownloadFragment downloadFragment);
} }

View File

@ -32,6 +32,7 @@ import org.kiwix.kiwixmobile.KiwixMobileActivity;
import org.kiwix.kiwixmobile.R; import org.kiwix.kiwixmobile.R;
import org.kiwix.kiwixmobile.library.entity.LibraryNetworkEntity; import org.kiwix.kiwixmobile.library.entity.LibraryNetworkEntity;
import org.kiwix.kiwixmobile.utils.NetworkUtils; import org.kiwix.kiwixmobile.utils.NetworkUtils;
import org.kiwix.kiwixmobile.utils.SharedPreferenceUtil;
import org.kiwix.kiwixmobile.utils.files.FileUtils; import org.kiwix.kiwixmobile.utils.files.FileUtils;
import org.kiwix.kiwixmobile.zim_manager.ZimManageActivity; import org.kiwix.kiwixmobile.zim_manager.ZimManageActivity;
import org.kiwix.kiwixmobile.zim_manager.fileselect_view.ZimFileSelectFragment; import org.kiwix.kiwixmobile.zim_manager.fileselect_view.ZimFileSelectFragment;
@ -40,6 +41,8 @@ import org.kiwix.kiwixmobile.zim_manager.library_view.LibraryFragment;
import java.util.Arrays; import java.util.Arrays;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import javax.inject.Inject;
import static org.kiwix.kiwixmobile.utils.Constants.PREF_WIFI_ONLY; import static org.kiwix.kiwixmobile.utils.Constants.PREF_WIFI_ONLY;
import static org.kiwix.kiwixmobile.utils.StyleUtils.dialogStyle; import static org.kiwix.kiwixmobile.utils.StyleUtils.dialogStyle;
@ -56,8 +59,15 @@ public class DownloadFragment extends Fragment {
private Activity faActivity; private Activity faActivity;
private boolean hasArtificiallyPaused; private boolean hasArtificiallyPaused;
@Inject static SharedPreferenceUtil sharedPreferenceUtil;
private void setupDagger() {
KiwixApplication.getInstance().getApplicationComponent().inject(this);
}
@Override @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
setupDagger();
faActivity = super.getActivity(); faActivity = super.getActivity();
relLayout = (RelativeLayout) inflater.inflate(R.layout.download_management, container, false); relLayout = (RelativeLayout) inflater.inflate(R.layout.download_management, container, false);
@ -100,10 +110,7 @@ public class DownloadFragment extends Fragment {
.setTitle(R.string.wifi_only_title) .setTitle(R.string.wifi_only_title)
.setMessage(R.string.wifi_only_msg) .setMessage(R.string.wifi_only_msg)
.setPositiveButton(R.string.yes, (dialog, i) -> { .setPositiveButton(R.string.yes, (dialog, i) -> {
PreferenceManager.getDefaultSharedPreferences(context) sharedPreferenceUtil.putPrefWifiOnly(false);
.edit()
.putBoolean(PREF_WIFI_ONLY, false)
.apply();
KiwixMobileActivity.wifiOnly = false; KiwixMobileActivity.wifiOnly = false;
yesAction.run(); yesAction.run();
}) })

View File

@ -26,6 +26,7 @@ import org.kiwix.kiwixmobile.database.KiwixDatabase;
import org.kiwix.kiwixmobile.library.entity.LibraryNetworkEntity; import org.kiwix.kiwixmobile.library.entity.LibraryNetworkEntity;
import org.kiwix.kiwixmobile.network.KiwixService; import org.kiwix.kiwixmobile.network.KiwixService;
import org.kiwix.kiwixmobile.utils.NetworkUtils; import org.kiwix.kiwixmobile.utils.NetworkUtils;
import org.kiwix.kiwixmobile.utils.SharedPreferenceUtil;
import org.kiwix.kiwixmobile.utils.StorageUtils; import org.kiwix.kiwixmobile.utils.StorageUtils;
import org.kiwix.kiwixmobile.utils.TestingUtils; import org.kiwix.kiwixmobile.utils.TestingUtils;
import org.kiwix.kiwixmobile.utils.files.FileUtils; import org.kiwix.kiwixmobile.utils.files.FileUtils;
@ -85,6 +86,9 @@ public class DownloadService extends Service {
private static DownloadFragment downloadFragment; private static DownloadFragment downloadFragment;
Handler handler = new Handler(Looper.getMainLooper()); Handler handler = new Handler(Looper.getMainLooper());
@Inject
SharedPreferenceUtil sharedPreferenceUtil;
public static void setDownloadFragment(DownloadFragment dFragment) { public static void setDownloadFragment(DownloadFragment dFragment) {
downloadFragment = dFragment; downloadFragment = dFragment;
} }
@ -98,8 +102,7 @@ public class DownloadService extends Service {
public void onCreate() { public void onCreate() {
setupDagger(); setupDagger();
SD_CARD = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()) SD_CARD = sharedPreferenceUtil.getPrefStorage();
.getString(PREF_STORAGE,Environment.getExternalStorageDirectory().getPath());
KIWIX_ROOT = SD_CARD + "/Kiwix/"; KIWIX_ROOT = SD_CARD + "/Kiwix/";
KIWIX_ROOT = checkWritable(KIWIX_ROOT); KIWIX_ROOT = checkWritable(KIWIX_ROOT);
@ -134,8 +137,7 @@ public class DownloadService extends Service {
} }
SD_CARD = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()) SD_CARD = sharedPreferenceUtil.getPrefStorage();
.getString(PREF_STORAGE,Environment.getExternalStorageDirectory().getPath());
KIWIX_ROOT = SD_CARD + "/Kiwix/"; KIWIX_ROOT = SD_CARD + "/Kiwix/";
KIWIX_ROOT = checkWritable(KIWIX_ROOT); KIWIX_ROOT = checkWritable(KIWIX_ROOT);

View File

@ -2,9 +2,7 @@ package org.kiwix.kiwixmobile.search;
import android.content.ActivityNotFoundException; import android.content.ActivityNotFoundException;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle; import android.os.Bundle;
import android.preference.PreferenceManager;
import android.provider.Settings; import android.provider.Settings;
import android.speech.RecognizerIntent; import android.speech.RecognizerIntent;
import android.support.v4.view.MenuItemCompat; import android.support.v4.view.MenuItemCompat;
@ -25,6 +23,7 @@ import android.widget.Toast;
import org.kiwix.kiwixmobile.KiwixApplication; import org.kiwix.kiwixmobile.KiwixApplication;
import org.kiwix.kiwixmobile.KiwixMobileActivity; import org.kiwix.kiwixmobile.KiwixMobileActivity;
import org.kiwix.kiwixmobile.R; import org.kiwix.kiwixmobile.R;
import org.kiwix.kiwixmobile.utils.SharedPreferenceUtil;
import org.kiwix.kiwixmobile.views.AutoCompleteAdapter; import org.kiwix.kiwixmobile.views.AutoCompleteAdapter;
import java.util.ArrayList; import java.util.ArrayList;
@ -35,7 +34,6 @@ import javax.inject.Inject;
import static org.kiwix.kiwixmobile.utils.Constants.EXTRA_IS_WIDGET_VOICE; import static org.kiwix.kiwixmobile.utils.Constants.EXTRA_IS_WIDGET_VOICE;
import static org.kiwix.kiwixmobile.utils.Constants.EXTRA_SEARCH; import static org.kiwix.kiwixmobile.utils.Constants.EXTRA_SEARCH;
import static org.kiwix.kiwixmobile.utils.Constants.PREF_NIGHTMODE;
import static org.kiwix.kiwixmobile.utils.Constants.TAG_FILE_SEARCHED; import static org.kiwix.kiwixmobile.utils.Constants.TAG_FILE_SEARCHED;
import static org.kiwix.kiwixmobile.utils.StyleUtils.dialogStyle; import static org.kiwix.kiwixmobile.utils.StyleUtils.dialogStyle;
@ -50,6 +48,8 @@ public class SearchActivity extends AppCompatActivity
@Inject @Inject
SearchPresenter searchPresenter; SearchPresenter searchPresenter;
@Inject
SharedPreferenceUtil sharedPreferenceUtil;
private void setupDagger() { private void setupDagger() {
KiwixApplication.getInstance().getApplicationComponent().inject(this); KiwixApplication.getInstance().getApplicationComponent().inject(this);
@ -57,8 +57,7 @@ public class SearchActivity extends AppCompatActivity
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); if (sharedPreferenceUtil.getPrefNightMode()) {
if (sharedPreferences.getBoolean(PREF_NIGHTMODE, false)) {
setTheme(R.style.AppTheme_Night); setTheme(R.style.AppTheme_Night);
} }
setupDagger(); setupDagger();

View File

@ -20,7 +20,6 @@
package org.kiwix.kiwixmobile.settings; package org.kiwix.kiwixmobile.settings;
import android.app.FragmentManager; import android.app.FragmentManager;
import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.os.Bundle; import android.os.Bundle;
@ -30,7 +29,6 @@ import android.preference.ListPreference;
import android.preference.Preference; import android.preference.Preference;
import android.preference.PreferenceCategory; import android.preference.PreferenceCategory;
import android.preference.PreferenceFragment; import android.preference.PreferenceFragment;
import android.preference.PreferenceManager;
import android.preference.PreferenceScreen; import android.preference.PreferenceScreen;
import android.support.v7.app.AlertDialog; import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity; import android.support.v7.app.AppCompatActivity;
@ -41,12 +39,15 @@ import android.widget.BaseAdapter;
import android.widget.Toast; import android.widget.Toast;
import org.kiwix.kiwixmobile.BuildConfig; import org.kiwix.kiwixmobile.BuildConfig;
import org.kiwix.kiwixmobile.KiwixApplication;
import org.kiwix.kiwixmobile.KiwixMobileActivity; import org.kiwix.kiwixmobile.KiwixMobileActivity;
import org.kiwix.kiwixmobile.R; import org.kiwix.kiwixmobile.R;
import org.kiwix.kiwixmobile.database.KiwixDatabase; import org.kiwix.kiwixmobile.database.KiwixDatabase;
import org.kiwix.kiwixmobile.database.RecentSearchDao; import org.kiwix.kiwixmobile.database.RecentSearchDao;
import org.kiwix.kiwixmobile.utils.LanguageUtils; import org.kiwix.kiwixmobile.utils.LanguageUtils;
import org.kiwix.kiwixmobile.utils.SharedPreferenceUtil;
import org.kiwix.kiwixmobile.utils.StyleUtils; import org.kiwix.kiwixmobile.utils.StyleUtils;
import org.kiwix.kiwixmobile.views.LanguageSelectDialog;
import org.kiwix.kiwixmobile.views.SliderPreference; import org.kiwix.kiwixmobile.views.SliderPreference;
import org.kiwix.kiwixmobile.zim_manager.library_view.LibraryUtils; import org.kiwix.kiwixmobile.zim_manager.library_view.LibraryUtils;
@ -55,6 +56,8 @@ import java.util.Calendar;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
import javax.inject.Inject;
import eu.mhutti1.utils.storage.StorageDevice; import eu.mhutti1.utils.storage.StorageDevice;
import eu.mhutti1.utils.storage.StorageSelectDialog; import eu.mhutti1.utils.storage.StorageSelectDialog;
@ -65,7 +68,6 @@ import static org.kiwix.kiwixmobile.utils.Constants.PREF_CREDITS;
import static org.kiwix.kiwixmobile.utils.Constants.PREF_LANG; import static org.kiwix.kiwixmobile.utils.Constants.PREF_LANG;
import static org.kiwix.kiwixmobile.utils.Constants.PREF_NIGHTMODE; import static org.kiwix.kiwixmobile.utils.Constants.PREF_NIGHTMODE;
import static org.kiwix.kiwixmobile.utils.Constants.PREF_STORAGE; import static org.kiwix.kiwixmobile.utils.Constants.PREF_STORAGE;
import static org.kiwix.kiwixmobile.utils.Constants.PREF_STORAGE_TITLE;
import static org.kiwix.kiwixmobile.utils.Constants.PREF_VERSION; import static org.kiwix.kiwixmobile.utils.Constants.PREF_VERSION;
import static org.kiwix.kiwixmobile.utils.Constants.PREF_WIFI_ONLY; import static org.kiwix.kiwixmobile.utils.Constants.PREF_WIFI_ONLY;
import static org.kiwix.kiwixmobile.utils.Constants.PREF_ZOOM; import static org.kiwix.kiwixmobile.utils.Constants.PREF_ZOOM;
@ -81,10 +83,17 @@ public class KiwixSettingsActivity extends AppCompatActivity {
private static final int DAWN_HOUR = 6; private static final int DAWN_HOUR = 6;
private static final int DUSK_HOUR = 18; private static final int DUSK_HOUR = 18;
@Inject
SharedPreferenceUtil sharedPreferenceUtil;
private void setupDagger() {
KiwixApplication.getInstance().getApplicationComponent().inject(this);
}
@Override @Override
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
setupDagger();
if (nightMode(PreferenceManager.getDefaultSharedPreferences(this))) { if(nightMode(sharedPreferenceUtil)){
setTheme(R.style.AppTheme_Night); setTheme(R.style.AppTheme_Night);
} }
getWindow().setWindowAnimations(R.style.WindowAnimationTransition); getWindow().setWindowAnimations(R.style.WindowAnimationTransition);
@ -123,14 +132,14 @@ public class KiwixSettingsActivity extends AppCompatActivity {
toolbar.setNavigationOnClickListener(v -> onBackPressed()); toolbar.setNavigationOnClickListener(v -> onBackPressed());
} }
public static boolean nightMode(SharedPreferences preferences) { public static boolean nightMode(SharedPreferenceUtil sharedPreferenceUtil){
boolean autoNightMode = preferences.getBoolean(PREF_AUTONIGHTMODE, false); boolean autoNightMode = sharedPreferenceUtil.getPrefAutoNightMode();
if (autoNightMode) { if(autoNightMode){
Calendar cal = Calendar.getInstance(); Calendar cal = Calendar.getInstance();
int hour = cal.get(Calendar.HOUR_OF_DAY); int hour = cal.get(Calendar.HOUR_OF_DAY);
return hour < DAWN_HOUR || hour > DUSK_HOUR; return hour < DAWN_HOUR || hour > DUSK_HOUR;
} else { } else{
return preferences.getBoolean(PREF_NIGHTMODE, false); return sharedPreferenceUtil.getPrefNightMode();
} }
} }
@ -140,13 +149,19 @@ public class KiwixSettingsActivity extends AppCompatActivity {
private SliderPreference mSlider; private SliderPreference mSlider;
private RecentSearchDao recentSearchDao; private RecentSearchDao recentSearchDao;
@Inject SharedPreferenceUtil sharedPreferenceUtil;
void setupDagger() {
KiwixApplication.getInstance().getApplicationComponent().inject(this);
}
@Override @Override
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setupDagger();
addPreferencesFromResource(R.xml.preferences); addPreferencesFromResource(R.xml.preferences);
boolean auto_night_mode = PreferenceManager.getDefaultSharedPreferences(getActivity()) boolean auto_night_mode = sharedPreferenceUtil.getPrefAutoNightMode();
.getBoolean(PREF_AUTONIGHTMODE, false);
if (auto_night_mode) { if (auto_night_mode) {
getPreferenceScreen().findPreference(PREF_NIGHTMODE).setEnabled(false); getPreferenceScreen().findPreference(PREF_NIGHTMODE).setEnabled(false);
@ -167,7 +182,7 @@ public class KiwixSettingsActivity extends AppCompatActivity {
setSliderState(); setSliderState();
setStorage(); setStorage();
setUpSettings(); setUpSettings();
new LanguageUtils(getActivity()).changeFont(getActivity().getLayoutInflater()); new LanguageUtils(getActivity()).changeFont(getActivity().getLayoutInflater(), sharedPreferenceUtil);
recentSearchDao = new RecentSearchDao(KiwixDatabase.getInstance(getActivity())); recentSearchDao = new RecentSearchDao(KiwixDatabase.getInstance(getActivity()));
} }
@ -181,14 +196,11 @@ public class KiwixSettingsActivity extends AppCompatActivity {
getPreferenceScreen().removePreference(findPreference("pref_storage")); getPreferenceScreen().removePreference(findPreference("pref_storage"));
} else { } else {
if (Environment.isExternalStorageEmulated()) { if (Environment.isExternalStorageEmulated()) {
findPreference(PREF_STORAGE).setTitle(PreferenceManager.getDefaultSharedPreferences(getActivity()) findPreference(PREF_STORAGE).setTitle(sharedPreferenceUtil.getPrefStorageTitle("Internal"));
.getString(PREF_STORAGE_TITLE, "Internal"));
} else { } else {
findPreference(PREF_STORAGE).setTitle(PreferenceManager.getDefaultSharedPreferences(getActivity()) findPreference(PREF_STORAGE).setTitle(sharedPreferenceUtil.getPrefStorageTitle("External"));
.getString(PREF_STORAGE_TITLE, "External"));
} }
findPreference(PREF_STORAGE).setSummary(LibraryUtils.bytesToHuman(new File(PreferenceManager.getDefaultSharedPreferences(getActivity()) findPreference(PREF_STORAGE).setSummary(LibraryUtils.bytesToHuman( new File(sharedPreferenceUtil.getPrefStorage()).getFreeSpace()));
.getString(PREF_STORAGE, Environment.getExternalStorageDirectory().getPath())).getFreeSpace()));
} }
} }
@ -222,8 +234,7 @@ public class KiwixSettingsActivity extends AppCompatActivity {
private void setUpLanguageChooser(String preferenceId) { private void setUpLanguageChooser(String preferenceId) {
ListPreference languagePref = (ListPreference) findPreference(preferenceId); ListPreference languagePref = (ListPreference) findPreference(preferenceId);
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity()); String selectedLang = sharedPreferenceUtil.getPrefLanguage(Locale.getDefault().toString());
String selectedLang = sharedPreferences.getString(PREF_LANG, Locale.getDefault().getLanguage());
List<String> languageCodeList = new LanguageUtils(getActivity()).getKeys(); List<String> languageCodeList = new LanguageUtils(getActivity()).getKeys();
selectedLang = languageCodeList.contains(selectedLang) ? selectedLang : "en"; selectedLang = languageCodeList.contains(selectedLang) ? selectedLang : "en";
String code[] = languageCodeList.toArray(new String[languageCodeList.size()]); String code[] = languageCodeList.toArray(new String[languageCodeList.size()]);
@ -241,9 +252,7 @@ public class KiwixSettingsActivity extends AppCompatActivity {
String languageCode = (String) newValue; String languageCode = (String) newValue;
LanguageUtils.handleLocaleChange(getActivity(), languageCode); LanguageUtils.handleLocaleChange(getActivity(), languageCode);
preference.setTitle(new Locale(languageCode).getLanguage()); preference.setTitle(new Locale(languageCode).getLanguage());
SharedPreferences.Editor editor = sharedPreferences.edit(); sharedPreferenceUtil.putPrefLanguage(languageCode);
editor.putString(PREF_LANG, languageCode);
editor.apply();
restartActivity(); restartActivity();
return true; return true;
}); });
@ -275,7 +284,7 @@ public class KiwixSettingsActivity extends AppCompatActivity {
} }
if (key.equals(PREF_NIGHTMODE)) { if (key.equals(PREF_NIGHTMODE)) {
KiwixMobileActivity.refresh = true; KiwixMobileActivity.refresh = true;
KiwixMobileActivity.nightMode = nightMode(sharedPreferences); KiwixMobileActivity.nightMode = nightMode(sharedPreferenceUtil);
getActivity().finish(); getActivity().finish();
startActivity(new Intent(getActivity(), KiwixSettingsActivity.class)); startActivity(new Intent(getActivity(), KiwixSettingsActivity.class));
} }
@ -284,7 +293,7 @@ public class KiwixSettingsActivity extends AppCompatActivity {
} }
if (key.equals(PREF_AUTONIGHTMODE)) { if (key.equals(PREF_AUTONIGHTMODE)) {
KiwixMobileActivity.refresh = true; KiwixMobileActivity.refresh = true;
KiwixMobileActivity.nightMode = nightMode(sharedPreferences); KiwixMobileActivity.nightMode = nightMode(sharedPreferenceUtil);
getActivity().finish(); getActivity().finish();
startActivity(new Intent(getActivity(), KiwixSettingsActivity.class)); startActivity(new Intent(getActivity(), KiwixSettingsActivity.class));
} }
@ -294,12 +303,10 @@ public class KiwixSettingsActivity extends AppCompatActivity {
new AlertDialog.Builder(getActivity(), dialogStyle()) new AlertDialog.Builder(getActivity(), dialogStyle())
.setTitle(getResources().getString(R.string.clear_all_history_dialog_title)) .setTitle(getResources().getString(R.string.clear_all_history_dialog_title))
.setMessage(getResources().getString(R.string.clear_recent_and_tabs_history_dialog)) .setMessage(getResources().getString(R.string.clear_recent_and_tabs_history_dialog))
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { .setPositiveButton(android.R.string.yes, (dialog, which) -> {
public void onClick(DialogInterface dialog, int which) {
deleteSearchHistoryFromDb(); deleteSearchHistoryFromDb();
allHistoryCleared = true; allHistoryCleared = true;
Toast.makeText(getActivity(), getResources().getString(R.string.all_history_cleared_toast), Toast.LENGTH_SHORT).show(); Toast.makeText(getActivity(), getResources().getString(R.string.all_history_cleared_toast), Toast.LENGTH_SHORT).show();
}
}) })
.setNegativeButton(android.R.string.no, (dialog, which) -> { .setNegativeButton(android.R.string.no, (dialog, which) -> {
// do nothing // do nothing
@ -332,7 +339,7 @@ public class KiwixSettingsActivity extends AppCompatActivity {
return true; return true;
} }
public void openFolderSelect() { public void openFolderSelect(){
FragmentManager fm = getFragmentManager(); FragmentManager fm = getFragmentManager();
StorageSelectDialog dialogFragment = new StorageSelectDialog(); StorageSelectDialog dialogFragment = new StorageSelectDialog();
Bundle b = new Bundle(); Bundle b = new Bundle();
@ -342,23 +349,19 @@ public class KiwixSettingsActivity extends AppCompatActivity {
dialogFragment.setArguments(b); dialogFragment.setArguments(b);
dialogFragment.setOnSelectListener(this); dialogFragment.setOnSelectListener(this);
dialogFragment.show(fm, getResources().getString(R.string.pref_storage)); dialogFragment.show(fm, getResources().getString(R.string.pref_storage));
} }
@Override @Override
public void selectionCallback(StorageDevice storageDevice) { public void selectionCallback(StorageDevice storageDevice) {
findPreference(PREF_STORAGE).setSummary(storageDevice.getSize()); findPreference(PREF_STORAGE).setSummary(storageDevice.getSize());
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity()); sharedPreferenceUtil.putPrefStorage(storageDevice.getName());
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(PREF_STORAGE, storageDevice.getName());
if (storageDevice.isInternal()) { if (storageDevice.isInternal()) {
findPreference(PREF_STORAGE).setTitle(getResources().getString(R.string.internal_storage)); findPreference(PREF_STORAGE).setTitle(getResources().getString(R.string.internal_storage));
editor.putString(PREF_STORAGE_TITLE, getResources().getString(R.string.internal_storage)); sharedPreferenceUtil.putPrefStorageTitle(getResources().getString(R.string.internal_storage));
} else { } else {
findPreference(PREF_STORAGE).setTitle(getResources().getString(R.string.external_storage)); findPreference(PREF_STORAGE).setTitle(getResources().getString(R.string.external_storage));
editor.putString(PREF_STORAGE_TITLE, getResources().getString(R.string.external_storage)); sharedPreferenceUtil.putPrefStorageTitle(getResources().getString(R.string.external_storage));
} }
editor.apply();
} }
} }
} }

View File

@ -61,6 +61,8 @@ public final class Constants {
public static final String PREF_EXTERNAL_LINK_POPUP = "pref_external_link_popup"; public static final String PREF_EXTERNAL_LINK_POPUP = "pref_external_link_popup";
public static final String PREF_IS_FIRST_RUN = "isFirstRun";
// Tags // Tags
public static final String TAG_FILE_SEARCHED = "searchedarticle"; public static final String TAG_FILE_SEARCHED = "searchedarticle";

View File

@ -21,12 +21,10 @@ package org.kiwix.kiwixmobile.utils;
import android.annotation.TargetApi; import android.annotation.TargetApi;
import android.content.Context; import android.content.Context;
import android.content.SharedPreferences;
import android.content.res.Configuration; import android.content.res.Configuration;
import android.graphics.Typeface; import android.graphics.Typeface;
import android.os.Build; import android.os.Build;
import android.os.Handler; import android.os.Handler;
import android.preference.PreferenceManager;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.util.Log; import android.util.Log;
import android.util.TypedValue; import android.util.TypedValue;
@ -66,10 +64,8 @@ public class LanguageUtils {
sortLanguageList(context.getResources().getConfiguration().locale); sortLanguageList(context.getResources().getConfiguration().locale);
} }
public static void handleLocaleChange(Context context) { public static void handleLocaleChange(Context context, SharedPreferenceUtil sharedPreferenceUtil) {
String language = sharedPreferenceUtil.getPrefLanguage("");
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
String language = prefs.getString(PREF_LANG, "");
if (language.isEmpty()) { if (language.isEmpty()) {
return; return;
@ -189,7 +185,7 @@ public class LanguageUtils {
// Check, if the selected Locale is supported and weather we actually need to change our font. // Check, if the selected Locale is supported and weather we actually need to change our font.
// We do this by checking, if our Locale is available in the List, that Locale.getAvailableLocales() returns. // We do this by checking, if our Locale is available in the List, that Locale.getAvailableLocales() returns.
private boolean haveToChangeFont() { private boolean haveToChangeFont(SharedPreferenceUtil sharedPreferenceUtil) {
for (Locale s : Locale.getAvailableLocales()) { for (Locale s : Locale.getAvailableLocales()) {
if (s.getLanguage().equals(Locale.getDefault().toString())) { if (s.getLanguage().equals(Locale.getDefault().toString())) {
@ -197,8 +193,7 @@ public class LanguageUtils {
} }
// Don't change the language, if the options hasn't been set // Don't change the language, if the options hasn't been set
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(mContext); String language = sharedPreferenceUtil.getPrefLanguage("");
String language = prefs.getString(PREF_LANG, "");
if (language.isEmpty()) { if (language.isEmpty()) {
return false; return false;
@ -215,9 +210,9 @@ public class LanguageUtils {
// which also sets a Factory on the LayoutInflator, we have to access the private field of the // which also sets a Factory on the LayoutInflator, we have to access the private field of the
// LayoutInflater, that handles this restriction via Java's reflection API // LayoutInflater, that handles this restriction via Java's reflection API
// and make it accessible set it to false again. // and make it accessible set it to false again.
public void changeFont(LayoutInflater layoutInflater) { public void changeFont(LayoutInflater layoutInflater, SharedPreferenceUtil sharedPreferenceUtil) {
if (!haveToChangeFont()) { if (!haveToChangeFont(sharedPreferenceUtil)) {
return; return;
} }

View File

@ -0,0 +1,143 @@
package org.kiwix.kiwixmobile.utils;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Environment;
import android.preference.PreferenceManager;
import javax.inject.Inject;
import javax.inject.Singleton;
import static org.kiwix.kiwixmobile.utils.Constants.PREF_AUTONIGHTMODE;
import static org.kiwix.kiwixmobile.utils.Constants.PREF_BACK_TO_TOP;
import static org.kiwix.kiwixmobile.utils.Constants.PREF_BOTTOM_TOOLBAR;
import static org.kiwix.kiwixmobile.utils.Constants.PREF_EXTERNAL_LINK_POPUP;
import static org.kiwix.kiwixmobile.utils.Constants.PREF_FULLSCREEN;
import static org.kiwix.kiwixmobile.utils.Constants.PREF_FULL_TEXT_SEARCH;
import static org.kiwix.kiwixmobile.utils.Constants.PREF_HIDE_TOOLBAR;
import static org.kiwix.kiwixmobile.utils.Constants.PREF_IS_FIRST_RUN;
import static org.kiwix.kiwixmobile.utils.Constants.PREF_LANG;
import static org.kiwix.kiwixmobile.utils.Constants.PREF_NEW_TAB_BACKGROUND;
import static org.kiwix.kiwixmobile.utils.Constants.PREF_NIGHTMODE;
import static org.kiwix.kiwixmobile.utils.Constants.PREF_STORAGE;
import static org.kiwix.kiwixmobile.utils.Constants.PREF_STORAGE_TITLE;
import static org.kiwix.kiwixmobile.utils.Constants.PREF_WIFI_ONLY;
import static org.kiwix.kiwixmobile.utils.Constants.PREF_ZOOM;
import static org.kiwix.kiwixmobile.utils.Constants.PREF_ZOOM_ENABLED;
/**
* Manager for the Default Shared Preferences of the application.
*/
@Singleton
public class SharedPreferenceUtil {
private SharedPreferences sharedPreferences;
private SharedPreferences.Editor editor;
@Inject
public SharedPreferenceUtil(Context context) {
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
editor = sharedPreferences.edit();
}
public void remove(String key) {
editor.remove(key).apply();
}
//Getters
public boolean getPrefWifiOnly() {
return sharedPreferences.getBoolean(PREF_WIFI_ONLY, true);
}
public boolean getPrefHideToolbar() {
return sharedPreferences.getBoolean(PREF_HIDE_TOOLBAR, true);
}
public boolean getPrefIsFirstRun() {
return sharedPreferences.getBoolean(PREF_IS_FIRST_RUN, true);
}
public boolean getPrefFullScreen() {
return sharedPreferences.getBoolean(PREF_FULLSCREEN, false);
}
public boolean getPrefBottomToolbar() {
return sharedPreferences.getBoolean(PREF_BOTTOM_TOOLBAR, false);
}
public boolean getPrefBackToTop() {
return sharedPreferences.getBoolean(PREF_BACK_TO_TOP, false);
}
public boolean getPrefZoomEnabled() {
return sharedPreferences.getBoolean(PREF_ZOOM_ENABLED, false);
}
public boolean getPrefNewTabBackground() {
return sharedPreferences.getBoolean(PREF_NEW_TAB_BACKGROUND, false);
}
public boolean getPrefExternalLinkPopup() {
return sharedPreferences.getBoolean(PREF_EXTERNAL_LINK_POPUP, true);
}
public float getPrefZoom() {
return sharedPreferences.getFloat(PREF_ZOOM, 100.0f);
}
public String getPrefLanguage(String defaultLanguage) {
return sharedPreferences.getString(PREF_LANG, defaultLanguage);
}
public String getPrefStorage() {
return sharedPreferences.getString(PREF_STORAGE, Environment.getExternalStorageDirectory().getPath());
}
public boolean getPrefNightMode() {
return sharedPreferences.getBoolean(PREF_NIGHTMODE, false);
}
public boolean getPrefAutoNightMode() {
return sharedPreferences.getBoolean(PREF_AUTONIGHTMODE, false);
}
public String getPrefStorageTitle(String defaultTitle) {
return sharedPreferences.getString(PREF_STORAGE_TITLE, defaultTitle);
}
public boolean getPrefFullTextSearch() {
return sharedPreferences.getBoolean(PREF_FULL_TEXT_SEARCH, false);
}
// Setters
public void putPrefLanguage(String language) {
editor.putString(PREF_LANG, language).apply();
}
public void putPrefIsFirstRun(boolean isFirstRun) {
editor.putBoolean(PREF_IS_FIRST_RUN, isFirstRun);
}
public void putPrefWifiOnly(boolean wifiOnly) {
editor.putBoolean(PREF_WIFI_ONLY, wifiOnly).apply();
}
public void putPrefStorageTitle(String storageTitle) {
editor.putString(PREF_STORAGE_TITLE, storageTitle).apply();
}
public void putPrefStorage(String storage) {
editor.putString(PREF_STORAGE, storage).apply();
}
public void putPrefFullScreen(boolean fullScreen) {
editor.putBoolean(PREF_FULLSCREEN, fullScreen).apply();
}
public void putPrefExternalLinkPopup(boolean externalLinkPopup) {
editor.putBoolean(PREF_EXTERNAL_LINK_POPUP, externalLinkPopup).apply();
}
}

View File

@ -1,9 +1,6 @@
package org.kiwix.kiwixmobile.views; package org.kiwix.kiwixmobile.views;
import android.content.Context; import android.content.Context;
import android.content.SharedPreferences;
import android.os.ResultReceiver;
import android.preference.PreferenceManager;
import android.text.Html; import android.text.Html;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@ -14,16 +11,14 @@ import android.widget.TextView;
import org.kiwix.kiwixlib.JNIKiwix; import org.kiwix.kiwixlib.JNIKiwix;
import org.kiwix.kiwixlib.JNIKiwixSearcher; import org.kiwix.kiwixlib.JNIKiwixSearcher;
import org.kiwix.kiwixmobile.KiwixMobileActivity;
import org.kiwix.kiwixmobile.ZimContentProvider; import org.kiwix.kiwixmobile.ZimContentProvider;
import org.kiwix.kiwixmobile.utils.SharedPreferenceUtil;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import javax.inject.Inject; import javax.inject.Inject;
import static org.kiwix.kiwixmobile.utils.Constants.PREF_FULL_TEXT_SEARCH;
public class AutoCompleteAdapter extends ArrayAdapter<String> implements Filterable { public class AutoCompleteAdapter extends ArrayAdapter<String> implements Filterable {
private List<String> mData; private List<String> mData;
@ -33,6 +28,8 @@ public class AutoCompleteAdapter extends ArrayAdapter<String> implements Filtera
private Context context; private Context context;
@Inject JNIKiwix currentJNIReader; @Inject JNIKiwix currentJNIReader;
@Inject
SharedPreferenceUtil sharedPreferenceUtil;
public AutoCompleteAdapter(Context context) { public AutoCompleteAdapter(Context context) {
super(context, android.R.layout.simple_list_item_1); super(context, android.R.layout.simple_list_item_1);
@ -85,8 +82,7 @@ public class AutoCompleteAdapter extends ArrayAdapter<String> implements Filtera
final String query = constraint.toString(); final String query = constraint.toString();
/* Fulltext search */ /* Fulltext search */
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context); if (sharedPreferenceUtil.getPrefFullTextSearch()) {
if (sharedPreferences.getBoolean(PREF_FULL_TEXT_SEARCH, false)) {
ZimContentProvider.jniSearcher.search(query, 200); ZimContentProvider.jniSearcher.search(query, 200);
JNIKiwixSearcher.Result result = ZimContentProvider.jniSearcher.getNextResult(); JNIKiwixSearcher.Result result = ZimContentProvider.jniSearcher.getNextResult();
while (result != null) { while (result != null) {

View File

@ -20,14 +20,12 @@
package org.kiwix.kiwixmobile.views.web; package org.kiwix.kiwixmobile.views.web;
import android.content.Context; import android.content.Context;
import android.content.SharedPreferences;
import android.graphics.ColorMatrixColorFilter; import android.graphics.ColorMatrixColorFilter;
import android.graphics.Paint; import android.graphics.Paint;
import android.net.Uri; import android.net.Uri;
import android.os.Environment; import android.os.Environment;
import android.os.Handler; import android.os.Handler;
import android.os.Message; import android.os.Message;
import android.preference.PreferenceManager;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.util.Log; import android.util.Log;
import android.view.ContextMenu; import android.view.ContextMenu;
@ -36,12 +34,14 @@ import android.view.View;
import android.webkit.WebView; import android.webkit.WebView;
import android.widget.Toast; import android.widget.Toast;
import org.kiwix.kiwixmobile.KiwixApplication;
import org.kiwix.kiwixmobile.KiwixMobileActivity; import org.kiwix.kiwixmobile.KiwixMobileActivity;
import org.kiwix.kiwixmobile.KiwixWebChromeClient; import org.kiwix.kiwixmobile.KiwixWebChromeClient;
import org.kiwix.kiwixmobile.KiwixWebViewClient; import org.kiwix.kiwixmobile.KiwixWebViewClient;
import org.kiwix.kiwixmobile.R; import org.kiwix.kiwixmobile.R;
import org.kiwix.kiwixmobile.WebViewCallback; import org.kiwix.kiwixmobile.WebViewCallback;
import org.kiwix.kiwixmobile.utils.LanguageUtils; import org.kiwix.kiwixmobile.utils.LanguageUtils;
import org.kiwix.kiwixmobile.utils.SharedPreferenceUtil;
import java.io.File; import java.io.File;
import java.io.FileOutputStream; import java.io.FileOutputStream;
@ -49,6 +49,8 @@ import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStream; import java.io.OutputStream;
import javax.inject.Inject;
public class KiwixWebView extends WebView { public class KiwixWebView extends WebView {
private static final String PREF_ZOOM = "pref_zoom_slider"; private static final String PREF_ZOOM = "pref_zoom_slider";
@ -62,6 +64,7 @@ public class KiwixWebView extends WebView {
0, 0, 0, 1.0f, 0 // alpha 0, 0, 0, 1.0f, 0 // alpha
}; };
private WebViewCallback callback; private WebViewCallback callback;
@Inject SharedPreferenceUtil sharedPreferenceUtil;
private Handler saveHandler = new Handler() { private Handler saveHandler = new Handler() {
@ -121,6 +124,7 @@ public class KiwixWebView extends WebView {
public KiwixWebView(Context context, WebViewCallback callback, AttributeSet attrs) { public KiwixWebView(Context context, WebViewCallback callback, AttributeSet attrs) {
super(context, attrs); super(context, attrs);
this.callback = callback; this.callback = callback;
setupDagger();
// Set the user agent to the current locale so it can be read with navigator.userAgent // Set the user agent to the current locale so it can be read with navigator.userAgent
getSettings().setUserAgentString(LanguageUtils.getCurrentLocale(context).toString()); getSettings().setUserAgentString(LanguageUtils.getCurrentLocale(context).toString());
setWebViewClient(new KiwixWebViewClient(callback)); setWebViewClient(new KiwixWebViewClient(callback));
@ -128,15 +132,17 @@ public class KiwixWebView extends WebView {
getSettings().setDomStorageEnabled(true); getSettings().setDomStorageEnabled(true);
} }
private void setupDagger() {
KiwixApplication.getInstance().getApplicationComponent().inject(this);
}
public void loadPrefs() { public void loadPrefs() {
disableZoomControls(); disableZoomControls();
SharedPreferences sharedPreferences = boolean zoomEnabled = sharedPreferenceUtil.getPrefZoomEnabled();
PreferenceManager.getDefaultSharedPreferences(getContext());
boolean zoomEnabled = sharedPreferences.getBoolean(PREF_ZOOM_ENABLED, false);
if (zoomEnabled) { if (zoomEnabled) {
int zoomScale = (int) sharedPreferences.getFloat(PREF_ZOOM, 100.0f); int zoomScale = (int) sharedPreferenceUtil.getPrefZoom();
setInitialScale(zoomScale); setInitialScale(zoomScale);
} else { } else {
setInitialScale(0); setInitialScale(0);

View File

@ -1,16 +1,13 @@
package org.kiwix.kiwixmobile.zim_manager; package org.kiwix.kiwixmobile.zim_manager;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle; import android.os.Bundle;
import android.preference.PreferenceManager;
import android.provider.Settings; import android.provider.Settings;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import android.support.design.widget.AppBarLayout; import android.support.design.widget.AppBarLayout;
import android.support.design.widget.CoordinatorLayout; import android.support.design.widget.CoordinatorLayout;
import android.support.design.widget.TabLayout; import android.support.design.widget.TabLayout;
import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.MenuItemCompat;
import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity; import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.SearchView; import android.support.v7.widget.SearchView;
@ -18,13 +15,13 @@ import android.support.v7.widget.Toolbar;
import android.util.Log; import android.util.Log;
import android.view.Menu; import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View;
import android.widget.Toast; import android.widget.Toast;
import org.kiwix.kiwixmobile.KiwixApplication; import org.kiwix.kiwixmobile.KiwixApplication;
import org.kiwix.kiwixmobile.KiwixMobileActivity; import org.kiwix.kiwixmobile.KiwixMobileActivity;
import org.kiwix.kiwixmobile.R; import org.kiwix.kiwixmobile.R;
import org.kiwix.kiwixmobile.settings.KiwixSettingsActivity; import org.kiwix.kiwixmobile.settings.KiwixSettingsActivity;
import org.kiwix.kiwixmobile.utils.SharedPreferenceUtil;
import org.kiwix.kiwixmobile.views.LanguageSelectDialog; import org.kiwix.kiwixmobile.views.LanguageSelectDialog;
import org.kiwix.kiwixmobile.zim_manager.library_view.LibraryFragment; import org.kiwix.kiwixmobile.zim_manager.library_view.LibraryFragment;
@ -64,6 +61,8 @@ public class ZimManageActivity extends AppCompatActivity implements ZimManageVie
@Inject @Inject
ZimManagePresenter zimManagePresenter; ZimManagePresenter zimManagePresenter;
@Inject
SharedPreferenceUtil sharedPreferenceUtil;
private void setupDagger() { private void setupDagger() {
KiwixApplication.getInstance().getApplicationComponent().inject(this); KiwixApplication.getInstance().getApplicationComponent().inject(this);
@ -71,13 +70,12 @@ public class ZimManageActivity extends AppCompatActivity implements ZimManageVie
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); setupDagger();
if (KiwixSettingsActivity.nightMode(sharedPreferences)) { if (KiwixSettingsActivity.nightMode(sharedPreferenceUtil)) {
setTheme(R.style.AppTheme_Night); setTheme(R.style.AppTheme_Night);
} }
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.zim_manager); setContentView(R.layout.zim_manager);
setupDagger();
setUpToolbar(); setUpToolbar();
zimManagePresenter.attachView(this); zimManagePresenter.attachView(this);

View File

@ -27,15 +27,12 @@ import android.content.pm.PackageManager;
import android.net.Uri; import android.net.Uri;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Environment;
import android.preference.PreferenceManager;
import android.support.v4.app.Fragment; import android.support.v4.app.Fragment;
import android.support.v4.content.ContextCompat; import android.support.v4.content.ContextCompat;
import android.support.v4.widget.SwipeRefreshLayout; import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.app.AlertDialog; import android.support.v7.app.AlertDialog;
import android.util.Log; import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.AdapterView; import android.widget.AdapterView;
@ -48,7 +45,6 @@ import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
import org.kiwix.kiwixmobile.KiwixApplication; import org.kiwix.kiwixmobile.KiwixApplication;
import org.kiwix.kiwixmobile.KiwixMobileActivity;
import org.kiwix.kiwixmobile.R; import org.kiwix.kiwixmobile.R;
import org.kiwix.kiwixmobile.ZimContentProvider; import org.kiwix.kiwixmobile.ZimContentProvider;
import org.kiwix.kiwixmobile.database.BookDao; import org.kiwix.kiwixmobile.database.BookDao;
@ -57,6 +53,7 @@ import org.kiwix.kiwixmobile.library.LibraryAdapter;
import org.kiwix.kiwixmobile.library.entity.LibraryNetworkEntity; import org.kiwix.kiwixmobile.library.entity.LibraryNetworkEntity;
import org.kiwix.kiwixmobile.utils.BookUtils; import org.kiwix.kiwixmobile.utils.BookUtils;
import org.kiwix.kiwixmobile.utils.LanguageUtils; import org.kiwix.kiwixmobile.utils.LanguageUtils;
import org.kiwix.kiwixmobile.utils.SharedPreferenceUtil;
import org.kiwix.kiwixmobile.utils.TestingUtils; import org.kiwix.kiwixmobile.utils.TestingUtils;
import org.kiwix.kiwixmobile.utils.files.FileSearch; import org.kiwix.kiwixmobile.utils.files.FileSearch;
import org.kiwix.kiwixmobile.utils.files.FileUtils; import org.kiwix.kiwixmobile.utils.files.FileUtils;
@ -70,7 +67,6 @@ import java.util.List;
import javax.inject.Inject; import javax.inject.Inject;
import static org.kiwix.kiwixmobile.utils.Constants.PREF_STORAGE;
import static org.kiwix.kiwixmobile.utils.Constants.REQUEST_STORAGE_PERMISSION; import static org.kiwix.kiwixmobile.utils.Constants.REQUEST_STORAGE_PERMISSION;
import static org.kiwix.kiwixmobile.utils.Constants.TAG_KIWIX; import static org.kiwix.kiwixmobile.utils.Constants.TAG_KIWIX;
import static org.kiwix.kiwixmobile.utils.NetworkUtils.parseURL; import static org.kiwix.kiwixmobile.utils.NetworkUtils.parseURL;
@ -93,6 +89,7 @@ public class ZimFileSelectFragment extends Fragment
@Inject ZimFileSelectPresenter presenter; @Inject ZimFileSelectPresenter presenter;
@Inject BookUtils bookUtils; @Inject BookUtils bookUtils;
@Inject SharedPreferenceUtil sharedPreferenceUtil;
private void setupDagger() { private void setupDagger() {
KiwixApplication.getInstance().getApplicationComponent().inject(this); KiwixApplication.getInstance().getApplicationComponent().inject(this);
@ -105,7 +102,7 @@ public class ZimFileSelectFragment extends Fragment
presenter.attachView(this); presenter.attachView(this);
// Replace LinearLayout by the type of the root element of the layout you're trying to load // Replace LinearLayout by the type of the root element of the layout you're trying to load
llLayout = (RelativeLayout) inflater.inflate(R.layout.zim_list, container, false); llLayout = (RelativeLayout) inflater.inflate(R.layout.zim_list, container, false);
new LanguageUtils(super.getActivity()).changeFont(super.getActivity().getLayoutInflater()); new LanguageUtils(super.getActivity()).changeFont(super.getActivity().getLayoutInflater(), sharedPreferenceUtil);
mFileMessage = llLayout.findViewById(R.id.file_management_no_files); mFileMessage = llLayout.findViewById(R.id.file_management_no_files);
mZimFileList = llLayout.findViewById(R.id.zimfilelist); mZimFileList = llLayout.findViewById(R.id.zimfilelist);
@ -269,8 +266,7 @@ public class ZimFileSelectFragment extends Fragment
swipeRefreshLayout.setRefreshing(false); swipeRefreshLayout.setRefreshing(false);
}); });
} }
}).scan(PreferenceManager.getDefaultSharedPreferences(context) }).scan(sharedPreferenceUtil.getPrefStorage());
.getString(PREF_STORAGE, Environment.getExternalStorageDirectory().getPath()));
} }
@Override @Override

View File

@ -3,23 +3,18 @@ package org.kiwix.kiwixmobile.zim_manager.library_view;
import android.content.BroadcastReceiver; import android.content.BroadcastReceiver;
import android.content.ComponentName; import android.content.ComponentName;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.content.ServiceConnection; import android.content.ServiceConnection;
import android.content.SharedPreferences;
import android.graphics.Color; import android.graphics.Color;
import android.net.ConnectivityManager; import android.net.ConnectivityManager;
import android.net.NetworkInfo; import android.net.NetworkInfo;
import android.os.Bundle; import android.os.Bundle;
import android.os.Environment;
import android.os.IBinder; import android.os.IBinder;
import android.preference.PreferenceManager;
import android.support.design.widget.Snackbar; import android.support.design.widget.Snackbar;
import android.support.v4.app.Fragment; import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentManager;
import android.support.v4.widget.SwipeRefreshLayout; import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.app.AlertDialog;
import android.util.Log; import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
@ -28,7 +23,6 @@ import android.widget.AdapterView;
import android.widget.Button; import android.widget.Button;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.ListView; import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
@ -41,6 +35,7 @@ import org.kiwix.kiwixmobile.downloader.DownloadService;
import org.kiwix.kiwixmobile.library.LibraryAdapter; import org.kiwix.kiwixmobile.library.LibraryAdapter;
import org.kiwix.kiwixmobile.network.KiwixService; import org.kiwix.kiwixmobile.network.KiwixService;
import org.kiwix.kiwixmobile.utils.NetworkUtils; import org.kiwix.kiwixmobile.utils.NetworkUtils;
import org.kiwix.kiwixmobile.utils.SharedPreferenceUtil;
import org.kiwix.kiwixmobile.utils.StorageUtils; import org.kiwix.kiwixmobile.utils.StorageUtils;
import org.kiwix.kiwixmobile.utils.StyleUtils; import org.kiwix.kiwixmobile.utils.StyleUtils;
import org.kiwix.kiwixmobile.utils.TestingUtils; import org.kiwix.kiwixmobile.utils.TestingUtils;
@ -62,9 +57,6 @@ import static android.view.View.GONE;
import static org.kiwix.kiwixmobile.downloader.DownloadService.KIWIX_ROOT; import static org.kiwix.kiwixmobile.downloader.DownloadService.KIWIX_ROOT;
import static org.kiwix.kiwixmobile.library.entity.LibraryNetworkEntity.Book; import static org.kiwix.kiwixmobile.library.entity.LibraryNetworkEntity.Book;
import static org.kiwix.kiwixmobile.utils.Constants.EXTRA_BOOK; import static org.kiwix.kiwixmobile.utils.Constants.EXTRA_BOOK;
import static org.kiwix.kiwixmobile.utils.Constants.PREF_STORAGE;
import static org.kiwix.kiwixmobile.utils.Constants.PREF_STORAGE_TITLE;
import static org.kiwix.kiwixmobile.utils.StyleUtils.dialogStyle;
public class LibraryFragment extends Fragment public class LibraryFragment extends Fragment
implements AdapterView.OnItemClickListener, StorageSelectDialog.OnSelectListener, LibraryViewCallback { implements AdapterView.OnItemClickListener, StorageSelectDialog.OnSelectListener, LibraryViewCallback {
@ -109,6 +101,9 @@ public class LibraryFragment extends Fragment
@Inject @Inject
LibraryPresenter presenter; LibraryPresenter presenter;
@Inject
SharedPreferenceUtil sharedPreferenceUtil;
private void setupDagger() { private void setupDagger() {
KiwixApplication.getInstance().getApplicationComponent().inject(this); KiwixApplication.getInstance().getApplicationComponent().inject(this);
} }
@ -318,23 +313,17 @@ public class LibraryFragment extends Fragment
} }
public long getSpaceAvailable() { public long getSpaceAvailable() {
return new File(PreferenceManager.getDefaultSharedPreferences(super.getActivity()) return new File(sharedPreferenceUtil.getPrefStorage()).getFreeSpace();
.getString(PREF_STORAGE, Environment.getExternalStorageDirectory()
.getPath())).getFreeSpace();
} }
@Override @Override
public void selectionCallback(StorageDevice storageDevice) { public void selectionCallback(StorageDevice storageDevice) {
SharedPreferences sharedPreferences = sharedPreferenceUtil.putPrefStorage(storageDevice.getName());
PreferenceManager.getDefaultSharedPreferences(getActivity());
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(PREF_STORAGE, storageDevice.getName());
if (storageDevice.isInternal()) { if (storageDevice.isInternal()) {
editor.putString(PREF_STORAGE_TITLE, getResources().getString(R.string.internal_storage)); sharedPreferenceUtil.putPrefStorageTitle(getResources().getString(R.string.internal_storage));
} else { } else {
editor.putString(PREF_STORAGE_TITLE, getResources().getString(R.string.external_storage)); sharedPreferenceUtil.putPrefStorageTitle(getResources().getString(R.string.external_storage));
} }
editor.apply();
} }
public class DownloadServiceConnection { public class DownloadServiceConnection {