mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-13 01:17:21 -04:00
Refactor: Unify SharedPreferences using SharedPreferences Manager
This commit is contained in:
parent
f4243a58f7
commit
6646b319c9
@ -36,7 +36,6 @@ import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.design.widget.CoordinatorLayout;
|
||||
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.NetworkUtils;
|
||||
import org.kiwix.kiwixmobile.utils.RateAppCounter;
|
||||
import org.kiwix.kiwixmobile.utils.SharedPreferenceUtil;
|
||||
import org.kiwix.kiwixmobile.utils.StyleUtils;
|
||||
import org.kiwix.kiwixmobile.utils.files.FileReader;
|
||||
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_ZIM_FILE;
|
||||
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_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_SELECT;
|
||||
import static org.kiwix.kiwixmobile.utils.Constants.REQUEST_PREFERENCES;
|
||||
@ -222,8 +212,6 @@ public class KiwixMobileActivity extends BaseActivity implements WebViewCallback
|
||||
|
||||
private boolean isFirstRun;
|
||||
|
||||
private SharedPreferences settings;
|
||||
|
||||
private BookmarksDao bookmarksDao;
|
||||
|
||||
@BindView(R.id.toolbar) Toolbar toolbar;
|
||||
@ -270,6 +258,7 @@ public class KiwixMobileActivity extends BaseActivity implements WebViewCallback
|
||||
|
||||
@Inject OkHttpClient okHttpClient;
|
||||
|
||||
@Inject SharedPreferenceUtil sharedPreferenceUtil;
|
||||
|
||||
@Override
|
||||
public void onActionModeStarted(ActionMode mode) {
|
||||
@ -362,13 +351,12 @@ public class KiwixMobileActivity extends BaseActivity implements WebViewCallback
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
|
||||
|
||||
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
|
||||
wifiOnly = sharedPreferences.getBoolean(PREF_WIFI_ONLY, true);
|
||||
nightMode = KiwixSettingsActivity.nightMode(sharedPreferences);
|
||||
super.onCreate(savedInstanceState);
|
||||
wifiOnly = sharedPreferenceUtil.getPrefWifiOnly();
|
||||
nightMode = KiwixSettingsActivity.nightMode(sharedPreferenceUtil);
|
||||
if (nightMode) {
|
||||
setTheme(R.style.AppTheme_Night);
|
||||
}
|
||||
super.onCreate(savedInstanceState);
|
||||
handleLocaleCheck();
|
||||
setContentView(R.layout.main);
|
||||
ButterKnife.bind(this);
|
||||
@ -383,7 +371,7 @@ public class KiwixMobileActivity extends BaseActivity implements WebViewCallback
|
||||
snackbarLayout.setFitsSystemWindows(true);
|
||||
}
|
||||
|
||||
isHideToolbar = sharedPreferences.getBoolean(PREF_HIDE_TOOLBAR, true);
|
||||
isHideToolbar = sharedPreferenceUtil.getPrefHideToolbar();
|
||||
|
||||
FileReader fileReader = new FileReader();
|
||||
documentParserJs = fileReader.readFile("js/documentParser.js", this);
|
||||
@ -531,8 +519,7 @@ public class KiwixMobileActivity extends BaseActivity implements WebViewCallback
|
||||
}
|
||||
|
||||
private void checkForRateDialog() {
|
||||
settings = PreferenceManager.getDefaultSharedPreferences(this);
|
||||
isFirstRun = settings.getBoolean("isFirstRun", true);
|
||||
isFirstRun = sharedPreferenceUtil.getPrefIsFirstRun();
|
||||
visitCounterPref = new RateAppCounter(this);
|
||||
tempVisitCount = visitCounterPref.getCount();
|
||||
++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
|
||||
private void handleLocaleCheck() {
|
||||
LanguageUtils.handleLocaleChange(this);
|
||||
new LanguageUtils(this).changeFont(getLayoutInflater());
|
||||
LanguageUtils.handleLocaleChange(this, sharedPreferenceUtil);
|
||||
new LanguageUtils(this).changeFont(getLayoutInflater(), sharedPreferenceUtil);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -904,10 +891,7 @@ public class KiwixMobileActivity extends BaseActivity implements WebViewCallback
|
||||
int classicScreenFlag = WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN;
|
||||
getWindow().addFlags(fullScreenFlag);
|
||||
getWindow().clearFlags(classicScreenFlag);
|
||||
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
|
||||
SharedPreferences.Editor editor = settings.edit();
|
||||
editor.putBoolean(PREF_FULLSCREEN, true);
|
||||
editor.apply();
|
||||
sharedPreferenceUtil.putPrefFullScreen(true);
|
||||
expandDrawers();
|
||||
isFullscreenOpened = true;
|
||||
getCurrentWebView().requestLayout();
|
||||
@ -919,7 +903,7 @@ public class KiwixMobileActivity extends BaseActivity implements WebViewCallback
|
||||
|
||||
private void closeFullScreen() {
|
||||
toolbarContainer.setVisibility(View.VISIBLE);
|
||||
if (settings.getBoolean(PREF_BOTTOM_TOOLBAR, false)) {
|
||||
if (sharedPreferenceUtil.getPrefBottomToolbar()) {
|
||||
pageBottomTabLayout.setVisibility(View.VISIBLE);
|
||||
menuBookmarks.setVisible(false);
|
||||
}
|
||||
@ -929,10 +913,7 @@ public class KiwixMobileActivity extends BaseActivity implements WebViewCallback
|
||||
int classicScreenFlag = WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN;
|
||||
getWindow().clearFlags(fullScreenFlag);
|
||||
getWindow().addFlags(classicScreenFlag);
|
||||
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
|
||||
SharedPreferences.Editor editor = settings.edit();
|
||||
editor.putBoolean(PREF_FULLSCREEN, false);
|
||||
editor.apply();
|
||||
sharedPreferenceUtil.putPrefFullScreen(false);
|
||||
shrinkDrawers();
|
||||
isFullscreenOpened = false;
|
||||
getCurrentWebView().requestLayout();
|
||||
@ -981,11 +962,7 @@ public class KiwixMobileActivity extends BaseActivity implements WebViewCallback
|
||||
// do nothing
|
||||
})
|
||||
.setNeutralButton(R.string.do_not_ask_anymore, (dialogInterface, i) -> {
|
||||
PreferenceManager
|
||||
.getDefaultSharedPreferences(KiwixMobileActivity.this)
|
||||
.edit()
|
||||
.putBoolean(PREF_EXTERNAL_LINK_POPUP, false)
|
||||
.apply();
|
||||
sharedPreferenceUtil.putPrefExternalLinkPopup(false);
|
||||
isExternalLinkPopup = false;
|
||||
|
||||
startActivity(intent);
|
||||
@ -1242,7 +1219,7 @@ public class KiwixMobileActivity extends BaseActivity implements WebViewCallback
|
||||
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);
|
||||
if (menuBookmarks != null) {
|
||||
menuBookmarks.setVisible(false);
|
||||
@ -1543,9 +1520,7 @@ public class KiwixMobileActivity extends BaseActivity implements WebViewCallback
|
||||
openFullScreen();
|
||||
}
|
||||
|
||||
if (PreferenceManager
|
||||
.getDefaultSharedPreferences(getApplicationContext())
|
||||
.getBoolean(PREF_BOTTOM_TOOLBAR, false)) {
|
||||
if (sharedPreferenceUtil.getPrefBottomToolbar()) {
|
||||
menu.findItem(R.id.menu_bookmarks).setVisible(false);
|
||||
}
|
||||
|
||||
@ -1632,17 +1607,16 @@ public class KiwixMobileActivity extends BaseActivity implements WebViewCallback
|
||||
|
||||
public void loadPrefs() {
|
||||
|
||||
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
|
||||
nightMode = KiwixSettingsActivity.nightMode(sharedPreferences);
|
||||
isBackToTopEnabled = sharedPreferences.getBoolean(PREF_BACK_TO_TOP, false);
|
||||
isHideToolbar = sharedPreferences.getBoolean(PREF_HIDE_TOOLBAR, true);
|
||||
isFullscreenOpened = sharedPreferences.getBoolean(PREF_FULLSCREEN, false);
|
||||
boolean isZoomEnabled = sharedPreferences.getBoolean(PREF_ZOOM_ENABLED, false);
|
||||
isOpenNewTabInBackground = sharedPreferences.getBoolean(PREF_NEW_TAB_BACKGROUND, false);
|
||||
isExternalLinkPopup = sharedPreferences.getBoolean(PREF_EXTERNAL_LINK_POPUP, true);
|
||||
nightMode = KiwixSettingsActivity.nightMode(sharedPreferenceUtil);
|
||||
isBackToTopEnabled = sharedPreferenceUtil.getPrefBackToTop();
|
||||
isHideToolbar = sharedPreferenceUtil.getPrefHideToolbar();
|
||||
isFullscreenOpened = sharedPreferenceUtil.getPrefFullScreen();
|
||||
boolean isZoomEnabled = sharedPreferenceUtil.getPrefZoomEnabled();
|
||||
isOpenNewTabInBackground = sharedPreferenceUtil.getPrefNewTabBackground();
|
||||
isExternalLinkPopup = sharedPreferenceUtil.getPrefExternalLinkPopup();
|
||||
|
||||
if (isZoomEnabled) {
|
||||
int zoomScale = (int) sharedPreferences.getFloat(PREF_ZOOM, 100.0f);
|
||||
int zoomScale = (int) sharedPreferenceUtil.getPrefZoom();
|
||||
getCurrentWebView().setInitialScale(zoomScale);
|
||||
} else {
|
||||
getCurrentWebView().setInitialScale(0);
|
||||
@ -1771,11 +1745,7 @@ public class KiwixMobileActivity extends BaseActivity implements WebViewCallback
|
||||
LanguageUtils.handleLocaleChange(this, BuildConfig.ENFORCED_LANG);
|
||||
|
||||
// save new locale into preferences for next startup
|
||||
SharedPreferences sharedPreferences =
|
||||
PreferenceManager.getDefaultSharedPreferences(this);
|
||||
SharedPreferences.Editor editor = sharedPreferences.edit();
|
||||
editor.putString(PREF_LANG, BuildConfig.ENFORCED_LANG);
|
||||
editor.apply();
|
||||
sharedPreferenceUtil.putPrefLanguage(BuildConfig.ENFORCED_LANG);
|
||||
|
||||
// restart activity for new locale to take effect
|
||||
this.setResult(1236);
|
||||
@ -1841,10 +1811,8 @@ public class KiwixMobileActivity extends BaseActivity implements WebViewCallback
|
||||
@Override public void webViewUrlLoading() {
|
||||
if (isFirstRun && !BuildConfig.DEBUG) {
|
||||
contentsDrawerHint();
|
||||
SharedPreferences.Editor editor = settings.edit();
|
||||
editor.putBoolean("isFirstRun", false); // It is no longer the first run
|
||||
sharedPreferenceUtil.putPrefIsFirstRun(false);// It is no longer the first run
|
||||
isFirstRun = false;
|
||||
editor.apply();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -49,6 +49,7 @@ import org.kiwix.kiwixmobile.R;
|
||||
import org.kiwix.kiwixmobile.base.BaseActivity;
|
||||
import org.kiwix.kiwixmobile.di.components.ApplicationComponent;
|
||||
import org.kiwix.kiwixmobile.settings.KiwixSettingsActivity;
|
||||
import org.kiwix.kiwixmobile.utils.SharedPreferenceUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@ -76,15 +77,16 @@ public class BookmarksActivity extends BaseActivity
|
||||
LinearLayout noBookmarksLayout;
|
||||
@Inject
|
||||
BookmarksPresenter presenter;
|
||||
@Inject
|
||||
SharedPreferenceUtil sharedPreferenceUtil;
|
||||
private ActionModeListener actionModeListener;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
|
||||
if (KiwixSettingsActivity.nightMode(sharedPreferences)) {
|
||||
super.onCreate(savedInstanceState);
|
||||
if (KiwixSettingsActivity.nightMode(sharedPreferenceUtil)) {
|
||||
setTheme(R.style.AppTheme_Night);
|
||||
}
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_bookmarks);
|
||||
ButterKnife.bind(this);
|
||||
|
||||
|
@ -6,9 +6,12 @@ import org.kiwix.kiwixmobile.bookmarks_view.BookmarksActivity;
|
||||
import org.kiwix.kiwixmobile.di.modules.ApplicationModule;
|
||||
import org.kiwix.kiwixmobile.di.modules.JNIModule;
|
||||
import org.kiwix.kiwixmobile.di.modules.NetworkModule;
|
||||
import org.kiwix.kiwixmobile.downloader.DownloadFragment;
|
||||
import org.kiwix.kiwixmobile.downloader.DownloadService;
|
||||
import org.kiwix.kiwixmobile.library.LibraryAdapter;
|
||||
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.fileselect_view.ZimFileSelectFragment;
|
||||
import org.kiwix.kiwixmobile.zim_manager.library_view.LibraryFragment;
|
||||
@ -41,4 +44,12 @@ public interface ApplicationComponent {
|
||||
void inject(SearchActivity searchActivity);
|
||||
|
||||
void inject(ZimManageActivity zimManageActivity);
|
||||
|
||||
void inject(KiwixWebView kiwixWebView);
|
||||
|
||||
void inject(KiwixSettingsActivity kiwixSettingsActivity);
|
||||
|
||||
void inject(KiwixSettingsActivity.PrefsFragment prefsFragment);
|
||||
|
||||
void inject(DownloadFragment downloadFragment);
|
||||
}
|
||||
|
@ -32,6 +32,7 @@ import org.kiwix.kiwixmobile.KiwixMobileActivity;
|
||||
import org.kiwix.kiwixmobile.R;
|
||||
import org.kiwix.kiwixmobile.library.entity.LibraryNetworkEntity;
|
||||
import org.kiwix.kiwixmobile.utils.NetworkUtils;
|
||||
import org.kiwix.kiwixmobile.utils.SharedPreferenceUtil;
|
||||
import org.kiwix.kiwixmobile.utils.files.FileUtils;
|
||||
import org.kiwix.kiwixmobile.zim_manager.ZimManageActivity;
|
||||
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.LinkedHashMap;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import static org.kiwix.kiwixmobile.utils.Constants.PREF_WIFI_ONLY;
|
||||
import static org.kiwix.kiwixmobile.utils.StyleUtils.dialogStyle;
|
||||
|
||||
@ -56,8 +59,15 @@ public class DownloadFragment extends Fragment {
|
||||
private Activity faActivity;
|
||||
private boolean hasArtificiallyPaused;
|
||||
|
||||
@Inject static SharedPreferenceUtil sharedPreferenceUtil;
|
||||
|
||||
private void setupDagger() {
|
||||
KiwixApplication.getInstance().getApplicationComponent().inject(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
setupDagger();
|
||||
faActivity = super.getActivity();
|
||||
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)
|
||||
.setMessage(R.string.wifi_only_msg)
|
||||
.setPositiveButton(R.string.yes, (dialog, i) -> {
|
||||
PreferenceManager.getDefaultSharedPreferences(context)
|
||||
.edit()
|
||||
.putBoolean(PREF_WIFI_ONLY, false)
|
||||
.apply();
|
||||
sharedPreferenceUtil.putPrefWifiOnly(false);
|
||||
KiwixMobileActivity.wifiOnly = false;
|
||||
yesAction.run();
|
||||
})
|
||||
|
@ -26,6 +26,7 @@ import org.kiwix.kiwixmobile.database.KiwixDatabase;
|
||||
import org.kiwix.kiwixmobile.library.entity.LibraryNetworkEntity;
|
||||
import org.kiwix.kiwixmobile.network.KiwixService;
|
||||
import org.kiwix.kiwixmobile.utils.NetworkUtils;
|
||||
import org.kiwix.kiwixmobile.utils.SharedPreferenceUtil;
|
||||
import org.kiwix.kiwixmobile.utils.StorageUtils;
|
||||
import org.kiwix.kiwixmobile.utils.TestingUtils;
|
||||
import org.kiwix.kiwixmobile.utils.files.FileUtils;
|
||||
@ -85,6 +86,9 @@ public class DownloadService extends Service {
|
||||
private static DownloadFragment downloadFragment;
|
||||
Handler handler = new Handler(Looper.getMainLooper());
|
||||
|
||||
@Inject
|
||||
SharedPreferenceUtil sharedPreferenceUtil;
|
||||
|
||||
public static void setDownloadFragment(DownloadFragment dFragment) {
|
||||
downloadFragment = dFragment;
|
||||
}
|
||||
@ -98,8 +102,7 @@ public class DownloadService extends Service {
|
||||
public void onCreate() {
|
||||
setupDagger();
|
||||
|
||||
SD_CARD = PreferenceManager.getDefaultSharedPreferences(getApplicationContext())
|
||||
.getString(PREF_STORAGE,Environment.getExternalStorageDirectory().getPath());
|
||||
SD_CARD = sharedPreferenceUtil.getPrefStorage();
|
||||
KIWIX_ROOT = SD_CARD + "/Kiwix/";
|
||||
|
||||
KIWIX_ROOT = checkWritable(KIWIX_ROOT);
|
||||
@ -134,8 +137,7 @@ public class DownloadService extends Service {
|
||||
}
|
||||
|
||||
|
||||
SD_CARD = PreferenceManager.getDefaultSharedPreferences(getApplicationContext())
|
||||
.getString(PREF_STORAGE,Environment.getExternalStorageDirectory().getPath());
|
||||
SD_CARD = sharedPreferenceUtil.getPrefStorage();
|
||||
KIWIX_ROOT = SD_CARD + "/Kiwix/";
|
||||
|
||||
KIWIX_ROOT = checkWritable(KIWIX_ROOT);
|
||||
|
@ -2,9 +2,7 @@ package org.kiwix.kiwixmobile.search;
|
||||
|
||||
import android.content.ActivityNotFoundException;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Bundle;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.provider.Settings;
|
||||
import android.speech.RecognizerIntent;
|
||||
import android.support.v4.view.MenuItemCompat;
|
||||
@ -25,6 +23,7 @@ import android.widget.Toast;
|
||||
import org.kiwix.kiwixmobile.KiwixApplication;
|
||||
import org.kiwix.kiwixmobile.KiwixMobileActivity;
|
||||
import org.kiwix.kiwixmobile.R;
|
||||
import org.kiwix.kiwixmobile.utils.SharedPreferenceUtil;
|
||||
import org.kiwix.kiwixmobile.views.AutoCompleteAdapter;
|
||||
|
||||
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_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.StyleUtils.dialogStyle;
|
||||
|
||||
@ -50,6 +48,8 @@ public class SearchActivity extends AppCompatActivity
|
||||
|
||||
@Inject
|
||||
SearchPresenter searchPresenter;
|
||||
@Inject
|
||||
SharedPreferenceUtil sharedPreferenceUtil;
|
||||
|
||||
private void setupDagger() {
|
||||
KiwixApplication.getInstance().getApplicationComponent().inject(this);
|
||||
@ -57,8 +57,7 @@ public class SearchActivity extends AppCompatActivity
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
|
||||
if (sharedPreferences.getBoolean(PREF_NIGHTMODE, false)) {
|
||||
if (sharedPreferenceUtil.getPrefNightMode()) {
|
||||
setTheme(R.style.AppTheme_Night);
|
||||
}
|
||||
setupDagger();
|
||||
|
@ -20,7 +20,6 @@
|
||||
package org.kiwix.kiwixmobile.settings;
|
||||
|
||||
import android.app.FragmentManager;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Bundle;
|
||||
@ -30,7 +29,6 @@ import android.preference.ListPreference;
|
||||
import android.preference.Preference;
|
||||
import android.preference.PreferenceCategory;
|
||||
import android.preference.PreferenceFragment;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.preference.PreferenceScreen;
|
||||
import android.support.v7.app.AlertDialog;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
@ -41,12 +39,15 @@ import android.widget.BaseAdapter;
|
||||
import android.widget.Toast;
|
||||
|
||||
import org.kiwix.kiwixmobile.BuildConfig;
|
||||
import org.kiwix.kiwixmobile.KiwixApplication;
|
||||
import org.kiwix.kiwixmobile.KiwixMobileActivity;
|
||||
import org.kiwix.kiwixmobile.R;
|
||||
import org.kiwix.kiwixmobile.database.KiwixDatabase;
|
||||
import org.kiwix.kiwixmobile.database.RecentSearchDao;
|
||||
import org.kiwix.kiwixmobile.utils.LanguageUtils;
|
||||
import org.kiwix.kiwixmobile.utils.SharedPreferenceUtil;
|
||||
import org.kiwix.kiwixmobile.utils.StyleUtils;
|
||||
import org.kiwix.kiwixmobile.views.LanguageSelectDialog;
|
||||
import org.kiwix.kiwixmobile.views.SliderPreference;
|
||||
import org.kiwix.kiwixmobile.zim_manager.library_view.LibraryUtils;
|
||||
|
||||
@ -55,6 +56,8 @@ import java.util.Calendar;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import eu.mhutti1.utils.storage.StorageDevice;
|
||||
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_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_VERSION;
|
||||
import static org.kiwix.kiwixmobile.utils.Constants.PREF_WIFI_ONLY;
|
||||
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 DUSK_HOUR = 18;
|
||||
|
||||
@Inject
|
||||
SharedPreferenceUtil sharedPreferenceUtil;
|
||||
|
||||
private void setupDagger() {
|
||||
KiwixApplication.getInstance().getApplicationComponent().inject(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
|
||||
if (nightMode(PreferenceManager.getDefaultSharedPreferences(this))) {
|
||||
setupDagger();
|
||||
if(nightMode(sharedPreferenceUtil)){
|
||||
setTheme(R.style.AppTheme_Night);
|
||||
}
|
||||
getWindow().setWindowAnimations(R.style.WindowAnimationTransition);
|
||||
@ -123,14 +132,14 @@ public class KiwixSettingsActivity extends AppCompatActivity {
|
||||
toolbar.setNavigationOnClickListener(v -> onBackPressed());
|
||||
}
|
||||
|
||||
public static boolean nightMode(SharedPreferences preferences) {
|
||||
boolean autoNightMode = preferences.getBoolean(PREF_AUTONIGHTMODE, false);
|
||||
if (autoNightMode) {
|
||||
public static boolean nightMode(SharedPreferenceUtil sharedPreferenceUtil){
|
||||
boolean autoNightMode = sharedPreferenceUtil.getPrefAutoNightMode();
|
||||
if(autoNightMode){
|
||||
Calendar cal = Calendar.getInstance();
|
||||
int hour = cal.get(Calendar.HOUR_OF_DAY);
|
||||
return hour < DAWN_HOUR || hour > DUSK_HOUR;
|
||||
} else {
|
||||
return preferences.getBoolean(PREF_NIGHTMODE, false);
|
||||
} else{
|
||||
return sharedPreferenceUtil.getPrefNightMode();
|
||||
}
|
||||
}
|
||||
|
||||
@ -140,13 +149,19 @@ public class KiwixSettingsActivity extends AppCompatActivity {
|
||||
private SliderPreference mSlider;
|
||||
private RecentSearchDao recentSearchDao;
|
||||
|
||||
@Inject SharedPreferenceUtil sharedPreferenceUtil;
|
||||
|
||||
void setupDagger() {
|
||||
KiwixApplication.getInstance().getApplicationComponent().inject(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setupDagger();
|
||||
addPreferencesFromResource(R.xml.preferences);
|
||||
|
||||
boolean auto_night_mode = PreferenceManager.getDefaultSharedPreferences(getActivity())
|
||||
.getBoolean(PREF_AUTONIGHTMODE, false);
|
||||
boolean auto_night_mode = sharedPreferenceUtil.getPrefAutoNightMode();
|
||||
|
||||
if (auto_night_mode) {
|
||||
getPreferenceScreen().findPreference(PREF_NIGHTMODE).setEnabled(false);
|
||||
@ -167,7 +182,7 @@ public class KiwixSettingsActivity extends AppCompatActivity {
|
||||
setSliderState();
|
||||
setStorage();
|
||||
setUpSettings();
|
||||
new LanguageUtils(getActivity()).changeFont(getActivity().getLayoutInflater());
|
||||
new LanguageUtils(getActivity()).changeFont(getActivity().getLayoutInflater(), sharedPreferenceUtil);
|
||||
recentSearchDao = new RecentSearchDao(KiwixDatabase.getInstance(getActivity()));
|
||||
|
||||
}
|
||||
@ -181,14 +196,11 @@ public class KiwixSettingsActivity extends AppCompatActivity {
|
||||
getPreferenceScreen().removePreference(findPreference("pref_storage"));
|
||||
} else {
|
||||
if (Environment.isExternalStorageEmulated()) {
|
||||
findPreference(PREF_STORAGE).setTitle(PreferenceManager.getDefaultSharedPreferences(getActivity())
|
||||
.getString(PREF_STORAGE_TITLE, "Internal"));
|
||||
findPreference(PREF_STORAGE).setTitle(sharedPreferenceUtil.getPrefStorageTitle("Internal"));
|
||||
} else {
|
||||
findPreference(PREF_STORAGE).setTitle(PreferenceManager.getDefaultSharedPreferences(getActivity())
|
||||
.getString(PREF_STORAGE_TITLE, "External"));
|
||||
findPreference(PREF_STORAGE).setTitle(sharedPreferenceUtil.getPrefStorageTitle("External"));
|
||||
}
|
||||
findPreference(PREF_STORAGE).setSummary(LibraryUtils.bytesToHuman(new File(PreferenceManager.getDefaultSharedPreferences(getActivity())
|
||||
.getString(PREF_STORAGE, Environment.getExternalStorageDirectory().getPath())).getFreeSpace()));
|
||||
findPreference(PREF_STORAGE).setSummary(LibraryUtils.bytesToHuman( new File(sharedPreferenceUtil.getPrefStorage()).getFreeSpace()));
|
||||
}
|
||||
}
|
||||
|
||||
@ -222,8 +234,7 @@ public class KiwixSettingsActivity extends AppCompatActivity {
|
||||
|
||||
private void setUpLanguageChooser(String preferenceId) {
|
||||
ListPreference languagePref = (ListPreference) findPreference(preferenceId);
|
||||
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
|
||||
String selectedLang = sharedPreferences.getString(PREF_LANG, Locale.getDefault().getLanguage());
|
||||
String selectedLang = sharedPreferenceUtil.getPrefLanguage(Locale.getDefault().toString());
|
||||
List<String> languageCodeList = new LanguageUtils(getActivity()).getKeys();
|
||||
selectedLang = languageCodeList.contains(selectedLang) ? selectedLang : "en";
|
||||
String code[] = languageCodeList.toArray(new String[languageCodeList.size()]);
|
||||
@ -241,9 +252,7 @@ public class KiwixSettingsActivity extends AppCompatActivity {
|
||||
String languageCode = (String) newValue;
|
||||
LanguageUtils.handleLocaleChange(getActivity(), languageCode);
|
||||
preference.setTitle(new Locale(languageCode).getLanguage());
|
||||
SharedPreferences.Editor editor = sharedPreferences.edit();
|
||||
editor.putString(PREF_LANG, languageCode);
|
||||
editor.apply();
|
||||
sharedPreferenceUtil.putPrefLanguage(languageCode);
|
||||
restartActivity();
|
||||
return true;
|
||||
});
|
||||
@ -275,7 +284,7 @@ public class KiwixSettingsActivity extends AppCompatActivity {
|
||||
}
|
||||
if (key.equals(PREF_NIGHTMODE)) {
|
||||
KiwixMobileActivity.refresh = true;
|
||||
KiwixMobileActivity.nightMode = nightMode(sharedPreferences);
|
||||
KiwixMobileActivity.nightMode = nightMode(sharedPreferenceUtil);
|
||||
getActivity().finish();
|
||||
startActivity(new Intent(getActivity(), KiwixSettingsActivity.class));
|
||||
}
|
||||
@ -284,7 +293,7 @@ public class KiwixSettingsActivity extends AppCompatActivity {
|
||||
}
|
||||
if (key.equals(PREF_AUTONIGHTMODE)) {
|
||||
KiwixMobileActivity.refresh = true;
|
||||
KiwixMobileActivity.nightMode = nightMode(sharedPreferences);
|
||||
KiwixMobileActivity.nightMode = nightMode(sharedPreferenceUtil);
|
||||
getActivity().finish();
|
||||
startActivity(new Intent(getActivity(), KiwixSettingsActivity.class));
|
||||
}
|
||||
@ -294,12 +303,10 @@ public class KiwixSettingsActivity extends AppCompatActivity {
|
||||
new AlertDialog.Builder(getActivity(), dialogStyle())
|
||||
.setTitle(getResources().getString(R.string.clear_all_history_dialog_title))
|
||||
.setMessage(getResources().getString(R.string.clear_recent_and_tabs_history_dialog))
|
||||
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
deleteSearchHistoryFromDb();
|
||||
allHistoryCleared = true;
|
||||
Toast.makeText(getActivity(), getResources().getString(R.string.all_history_cleared_toast), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
.setPositiveButton(android.R.string.yes, (dialog, which) -> {
|
||||
deleteSearchHistoryFromDb();
|
||||
allHistoryCleared = true;
|
||||
Toast.makeText(getActivity(), getResources().getString(R.string.all_history_cleared_toast), Toast.LENGTH_SHORT).show();
|
||||
})
|
||||
.setNegativeButton(android.R.string.no, (dialog, which) -> {
|
||||
// do nothing
|
||||
@ -332,7 +339,7 @@ public class KiwixSettingsActivity extends AppCompatActivity {
|
||||
return true;
|
||||
}
|
||||
|
||||
public void openFolderSelect() {
|
||||
public void openFolderSelect(){
|
||||
FragmentManager fm = getFragmentManager();
|
||||
StorageSelectDialog dialogFragment = new StorageSelectDialog();
|
||||
Bundle b = new Bundle();
|
||||
@ -342,23 +349,19 @@ public class KiwixSettingsActivity extends AppCompatActivity {
|
||||
dialogFragment.setArguments(b);
|
||||
dialogFragment.setOnSelectListener(this);
|
||||
dialogFragment.show(fm, getResources().getString(R.string.pref_storage));
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void selectionCallback(StorageDevice storageDevice) {
|
||||
findPreference(PREF_STORAGE).setSummary(storageDevice.getSize());
|
||||
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
|
||||
SharedPreferences.Editor editor = sharedPreferences.edit();
|
||||
editor.putString(PREF_STORAGE, storageDevice.getName());
|
||||
sharedPreferenceUtil.putPrefStorage(storageDevice.getName());
|
||||
if (storageDevice.isInternal()) {
|
||||
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 {
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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_IS_FIRST_RUN = "isFirstRun";
|
||||
|
||||
// Tags
|
||||
public static final String TAG_FILE_SEARCHED = "searchedarticle";
|
||||
|
||||
|
@ -21,12 +21,10 @@ package org.kiwix.kiwixmobile.utils;
|
||||
|
||||
import android.annotation.TargetApi;
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.res.Configuration;
|
||||
import android.graphics.Typeface;
|
||||
import android.os.Build;
|
||||
import android.os.Handler;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.Log;
|
||||
import android.util.TypedValue;
|
||||
@ -66,10 +64,8 @@ public class LanguageUtils {
|
||||
sortLanguageList(context.getResources().getConfiguration().locale);
|
||||
}
|
||||
|
||||
public static void handleLocaleChange(Context context) {
|
||||
|
||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
|
||||
String language = prefs.getString(PREF_LANG, "");
|
||||
public static void handleLocaleChange(Context context, SharedPreferenceUtil sharedPreferenceUtil) {
|
||||
String language = sharedPreferenceUtil.getPrefLanguage("");
|
||||
|
||||
if (language.isEmpty()) {
|
||||
return;
|
||||
@ -189,7 +185,7 @@ public class LanguageUtils {
|
||||
|
||||
// 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.
|
||||
private boolean haveToChangeFont() {
|
||||
private boolean haveToChangeFont(SharedPreferenceUtil sharedPreferenceUtil) {
|
||||
|
||||
for (Locale s : Locale.getAvailableLocales()) {
|
||||
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
|
||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(mContext);
|
||||
String language = prefs.getString(PREF_LANG, "");
|
||||
String language = sharedPreferenceUtil.getPrefLanguage("");
|
||||
|
||||
if (language.isEmpty()) {
|
||||
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
|
||||
// LayoutInflater, that handles this restriction via Java's reflection API
|
||||
// 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;
|
||||
}
|
||||
|
||||
|
@ -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();
|
||||
}
|
||||
|
||||
}
|
@ -1,9 +1,6 @@
|
||||
package org.kiwix.kiwixmobile.views;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.ResultReceiver;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.text.Html;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
@ -14,16 +11,14 @@ import android.widget.TextView;
|
||||
|
||||
import org.kiwix.kiwixlib.JNIKiwix;
|
||||
import org.kiwix.kiwixlib.JNIKiwixSearcher;
|
||||
import org.kiwix.kiwixmobile.KiwixMobileActivity;
|
||||
import org.kiwix.kiwixmobile.ZimContentProvider;
|
||||
import org.kiwix.kiwixmobile.utils.SharedPreferenceUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import static org.kiwix.kiwixmobile.utils.Constants.PREF_FULL_TEXT_SEARCH;
|
||||
|
||||
public class AutoCompleteAdapter extends ArrayAdapter<String> implements Filterable {
|
||||
|
||||
private List<String> mData;
|
||||
@ -33,6 +28,8 @@ public class AutoCompleteAdapter extends ArrayAdapter<String> implements Filtera
|
||||
private Context context;
|
||||
|
||||
@Inject JNIKiwix currentJNIReader;
|
||||
@Inject
|
||||
SharedPreferenceUtil sharedPreferenceUtil;
|
||||
|
||||
public AutoCompleteAdapter(Context context) {
|
||||
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();
|
||||
|
||||
/* Fulltext search */
|
||||
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
|
||||
if (sharedPreferences.getBoolean(PREF_FULL_TEXT_SEARCH, false)) {
|
||||
if (sharedPreferenceUtil.getPrefFullTextSearch()) {
|
||||
ZimContentProvider.jniSearcher.search(query, 200);
|
||||
JNIKiwixSearcher.Result result = ZimContentProvider.jniSearcher.getNextResult();
|
||||
while (result != null) {
|
||||
|
@ -20,14 +20,12 @@
|
||||
package org.kiwix.kiwixmobile.views.web;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.graphics.ColorMatrixColorFilter;
|
||||
import android.graphics.Paint;
|
||||
import android.net.Uri;
|
||||
import android.os.Environment;
|
||||
import android.os.Handler;
|
||||
import android.os.Message;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.Log;
|
||||
import android.view.ContextMenu;
|
||||
@ -36,12 +34,14 @@ import android.view.View;
|
||||
import android.webkit.WebView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import org.kiwix.kiwixmobile.KiwixApplication;
|
||||
import org.kiwix.kiwixmobile.KiwixMobileActivity;
|
||||
import org.kiwix.kiwixmobile.KiwixWebChromeClient;
|
||||
import org.kiwix.kiwixmobile.KiwixWebViewClient;
|
||||
import org.kiwix.kiwixmobile.R;
|
||||
import org.kiwix.kiwixmobile.WebViewCallback;
|
||||
import org.kiwix.kiwixmobile.utils.LanguageUtils;
|
||||
import org.kiwix.kiwixmobile.utils.SharedPreferenceUtil;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
@ -49,6 +49,8 @@ import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
public class KiwixWebView extends WebView {
|
||||
|
||||
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
|
||||
};
|
||||
private WebViewCallback callback;
|
||||
@Inject SharedPreferenceUtil sharedPreferenceUtil;
|
||||
|
||||
private Handler saveHandler = new Handler() {
|
||||
|
||||
@ -121,6 +124,7 @@ public class KiwixWebView extends WebView {
|
||||
public KiwixWebView(Context context, WebViewCallback callback, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
this.callback = callback;
|
||||
setupDagger();
|
||||
// Set the user agent to the current locale so it can be read with navigator.userAgent
|
||||
getSettings().setUserAgentString(LanguageUtils.getCurrentLocale(context).toString());
|
||||
setWebViewClient(new KiwixWebViewClient(callback));
|
||||
@ -128,15 +132,17 @@ public class KiwixWebView extends WebView {
|
||||
getSettings().setDomStorageEnabled(true);
|
||||
}
|
||||
|
||||
private void setupDagger() {
|
||||
KiwixApplication.getInstance().getApplicationComponent().inject(this);
|
||||
}
|
||||
|
||||
public void loadPrefs() {
|
||||
disableZoomControls();
|
||||
|
||||
SharedPreferences sharedPreferences =
|
||||
PreferenceManager.getDefaultSharedPreferences(getContext());
|
||||
boolean zoomEnabled = sharedPreferences.getBoolean(PREF_ZOOM_ENABLED, false);
|
||||
boolean zoomEnabled = sharedPreferenceUtil.getPrefZoomEnabled();
|
||||
|
||||
if (zoomEnabled) {
|
||||
int zoomScale = (int) sharedPreferences.getFloat(PREF_ZOOM, 100.0f);
|
||||
int zoomScale = (int) sharedPreferenceUtil.getPrefZoom();
|
||||
setInitialScale(zoomScale);
|
||||
} else {
|
||||
setInitialScale(0);
|
||||
|
@ -1,16 +1,13 @@
|
||||
package org.kiwix.kiwixmobile.zim_manager;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Bundle;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.provider.Settings;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.design.widget.AppBarLayout;
|
||||
import android.support.design.widget.CoordinatorLayout;
|
||||
import android.support.design.widget.TabLayout;
|
||||
import android.support.v4.app.FragmentPagerAdapter;
|
||||
import android.support.v4.view.MenuItemCompat;
|
||||
import android.support.v4.view.ViewPager;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.support.v7.widget.SearchView;
|
||||
@ -18,13 +15,13 @@ import android.support.v7.widget.Toolbar;
|
||||
import android.util.Log;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.widget.Toast;
|
||||
|
||||
import org.kiwix.kiwixmobile.KiwixApplication;
|
||||
import org.kiwix.kiwixmobile.KiwixMobileActivity;
|
||||
import org.kiwix.kiwixmobile.R;
|
||||
import org.kiwix.kiwixmobile.settings.KiwixSettingsActivity;
|
||||
import org.kiwix.kiwixmobile.utils.SharedPreferenceUtil;
|
||||
import org.kiwix.kiwixmobile.views.LanguageSelectDialog;
|
||||
import org.kiwix.kiwixmobile.zim_manager.library_view.LibraryFragment;
|
||||
|
||||
@ -64,6 +61,8 @@ public class ZimManageActivity extends AppCompatActivity implements ZimManageVie
|
||||
|
||||
@Inject
|
||||
ZimManagePresenter zimManagePresenter;
|
||||
@Inject
|
||||
SharedPreferenceUtil sharedPreferenceUtil;
|
||||
|
||||
private void setupDagger() {
|
||||
KiwixApplication.getInstance().getApplicationComponent().inject(this);
|
||||
@ -71,13 +70,12 @@ public class ZimManageActivity extends AppCompatActivity implements ZimManageVie
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
|
||||
if (KiwixSettingsActivity.nightMode(sharedPreferences)) {
|
||||
setupDagger();
|
||||
if (KiwixSettingsActivity.nightMode(sharedPreferenceUtil)) {
|
||||
setTheme(R.style.AppTheme_Night);
|
||||
}
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.zim_manager);
|
||||
setupDagger();
|
||||
|
||||
setUpToolbar();
|
||||
zimManagePresenter.attachView(this);
|
||||
|
@ -27,15 +27,12 @@ import android.content.pm.PackageManager;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.Environment;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.content.ContextCompat;
|
||||
import android.support.v4.widget.SwipeRefreshLayout;
|
||||
import android.support.v7.app.AlertDialog;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.AdapterView;
|
||||
@ -48,7 +45,6 @@ import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import org.kiwix.kiwixmobile.KiwixApplication;
|
||||
import org.kiwix.kiwixmobile.KiwixMobileActivity;
|
||||
import org.kiwix.kiwixmobile.R;
|
||||
import org.kiwix.kiwixmobile.ZimContentProvider;
|
||||
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.utils.BookUtils;
|
||||
import org.kiwix.kiwixmobile.utils.LanguageUtils;
|
||||
import org.kiwix.kiwixmobile.utils.SharedPreferenceUtil;
|
||||
import org.kiwix.kiwixmobile.utils.TestingUtils;
|
||||
import org.kiwix.kiwixmobile.utils.files.FileSearch;
|
||||
import org.kiwix.kiwixmobile.utils.files.FileUtils;
|
||||
@ -70,7 +67,6 @@ import java.util.List;
|
||||
|
||||
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.TAG_KIWIX;
|
||||
import static org.kiwix.kiwixmobile.utils.NetworkUtils.parseURL;
|
||||
@ -93,6 +89,7 @@ public class ZimFileSelectFragment extends Fragment
|
||||
|
||||
@Inject ZimFileSelectPresenter presenter;
|
||||
@Inject BookUtils bookUtils;
|
||||
@Inject SharedPreferenceUtil sharedPreferenceUtil;
|
||||
|
||||
private void setupDagger() {
|
||||
KiwixApplication.getInstance().getApplicationComponent().inject(this);
|
||||
@ -105,7 +102,7 @@ public class ZimFileSelectFragment extends Fragment
|
||||
presenter.attachView(this);
|
||||
// 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);
|
||||
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);
|
||||
mZimFileList = llLayout.findViewById(R.id.zimfilelist);
|
||||
@ -269,8 +266,7 @@ public class ZimFileSelectFragment extends Fragment
|
||||
swipeRefreshLayout.setRefreshing(false);
|
||||
});
|
||||
}
|
||||
}).scan(PreferenceManager.getDefaultSharedPreferences(context)
|
||||
.getString(PREF_STORAGE, Environment.getExternalStorageDirectory().getPath()));
|
||||
}).scan(sharedPreferenceUtil.getPrefStorage());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -3,23 +3,18 @@ package org.kiwix.kiwixmobile.zim_manager.library_view;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.content.ServiceConnection;
|
||||
import android.content.SharedPreferences;
|
||||
import android.graphics.Color;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.NetworkInfo;
|
||||
import android.os.Bundle;
|
||||
import android.os.Environment;
|
||||
import android.os.IBinder;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.support.design.widget.Snackbar;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.app.FragmentManager;
|
||||
import android.support.v4.widget.SwipeRefreshLayout;
|
||||
import android.support.v7.app.AlertDialog;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
@ -28,7 +23,6 @@ import android.widget.AdapterView;
|
||||
import android.widget.Button;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.ListView;
|
||||
import android.widget.RelativeLayout;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
@ -41,6 +35,7 @@ import org.kiwix.kiwixmobile.downloader.DownloadService;
|
||||
import org.kiwix.kiwixmobile.library.LibraryAdapter;
|
||||
import org.kiwix.kiwixmobile.network.KiwixService;
|
||||
import org.kiwix.kiwixmobile.utils.NetworkUtils;
|
||||
import org.kiwix.kiwixmobile.utils.SharedPreferenceUtil;
|
||||
import org.kiwix.kiwixmobile.utils.StorageUtils;
|
||||
import org.kiwix.kiwixmobile.utils.StyleUtils;
|
||||
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.library.entity.LibraryNetworkEntity.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
|
||||
implements AdapterView.OnItemClickListener, StorageSelectDialog.OnSelectListener, LibraryViewCallback {
|
||||
@ -109,6 +101,9 @@ public class LibraryFragment extends Fragment
|
||||
@Inject
|
||||
LibraryPresenter presenter;
|
||||
|
||||
@Inject
|
||||
SharedPreferenceUtil sharedPreferenceUtil;
|
||||
|
||||
private void setupDagger() {
|
||||
KiwixApplication.getInstance().getApplicationComponent().inject(this);
|
||||
}
|
||||
@ -318,23 +313,17 @@ public class LibraryFragment extends Fragment
|
||||
}
|
||||
|
||||
public long getSpaceAvailable() {
|
||||
return new File(PreferenceManager.getDefaultSharedPreferences(super.getActivity())
|
||||
.getString(PREF_STORAGE, Environment.getExternalStorageDirectory()
|
||||
.getPath())).getFreeSpace();
|
||||
return new File(sharedPreferenceUtil.getPrefStorage()).getFreeSpace();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void selectionCallback(StorageDevice storageDevice) {
|
||||
SharedPreferences sharedPreferences =
|
||||
PreferenceManager.getDefaultSharedPreferences(getActivity());
|
||||
SharedPreferences.Editor editor = sharedPreferences.edit();
|
||||
editor.putString(PREF_STORAGE, storageDevice.getName());
|
||||
sharedPreferenceUtil.putPrefStorage(storageDevice.getName());
|
||||
if (storageDevice.isInternal()) {
|
||||
editor.putString(PREF_STORAGE_TITLE, getResources().getString(R.string.internal_storage));
|
||||
sharedPreferenceUtil.putPrefStorageTitle(getResources().getString(R.string.internal_storage));
|
||||
} 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 {
|
||||
|
Loading…
x
Reference in New Issue
Block a user