mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-09 07:16:04 -04:00
Fixed prefrenced + finishing activity after returning from the settings activity
This commit is contained in:
parent
413e4c2ee1
commit
2ca47f228a
@ -21,10 +21,10 @@
|
|||||||
android:defaultValue="false"
|
android:defaultValue="false"
|
||||||
android:summary="@string/pref_nightmode_summary"/>
|
android:summary="@string/pref_nightmode_summary"/>
|
||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
android:key="pref_backtotop"
|
android:key="pref_back_to_top"
|
||||||
android:title="@string/pref_backtotop"
|
android:title="@string/pref_backtotop"
|
||||||
android:summary="@string/pref_backtotop_summary"
|
android:summary="@string/pref_backtotop_summary"
|
||||||
android:defaultValue="false"/>
|
android:defaultValue="true"/>
|
||||||
|
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
|
|
||||||
|
@ -30,9 +30,13 @@ import android.widget.HorizontalScrollView;
|
|||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
import android.widget.Spinner;
|
import android.widget.Spinner;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
public class KiwixMobileActivity extends FragmentActivity implements ActionBar.TabListener,
|
public class KiwixMobileActivity extends FragmentActivity implements ActionBar.TabListener,
|
||||||
View.OnLongClickListener, View.OnDragListener, KiwixMobileFragment.FragmentCommunicator {
|
View.OnLongClickListener, View.OnDragListener, KiwixMobileFragment.FragmentCommunicator {
|
||||||
|
|
||||||
|
public static ArrayList<State> mPrefState;
|
||||||
|
|
||||||
private int NUM_ITEMS = 0;
|
private int NUM_ITEMS = 0;
|
||||||
|
|
||||||
private ViewPagerAdapter mViewPagerAdapter;
|
private ViewPagerAdapter mViewPagerAdapter;
|
||||||
@ -64,6 +68,8 @@ public class KiwixMobileActivity extends FragmentActivity implements ActionBar.T
|
|||||||
|
|
||||||
mViewPagerAdapter = new ViewPagerAdapter(getSupportFragmentManager());
|
mViewPagerAdapter = new ViewPagerAdapter(getSupportFragmentManager());
|
||||||
|
|
||||||
|
mPrefState = new ArrayList<State>();
|
||||||
|
|
||||||
mActionBar = getActionBar();
|
mActionBar = getActionBar();
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
|
||||||
@ -262,8 +268,9 @@ public class KiwixMobileActivity extends FragmentActivity implements ActionBar.T
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
|
public void onTabSelected(final ActionBar.Tab tab, FragmentTransaction ft) {
|
||||||
mViewPager.setCurrentItem(tab.getPosition(), true);
|
final int position = tab.getPosition();
|
||||||
|
mViewPager.setCurrentItem(position, true);
|
||||||
|
|
||||||
mCurrentFragment = getCurrentVisibleFragment();
|
mCurrentFragment = getCurrentVisibleFragment();
|
||||||
|
|
||||||
@ -286,6 +293,11 @@ public class KiwixMobileActivity extends FragmentActivity implements ActionBar.T
|
|||||||
if (mActionBar.getNavigationMode() == ActionBar.NAVIGATION_MODE_TABS) {
|
if (mActionBar.getNavigationMode() == ActionBar.NAVIGATION_MODE_TABS) {
|
||||||
getActionBar().getSelectedTab().setText(title);
|
getActionBar().getSelectedTab().setText(title);
|
||||||
}
|
}
|
||||||
|
if (mPrefState.size() != 0) {
|
||||||
|
if (mPrefState.get(position).hasToBeRefreshed()) {
|
||||||
|
mCurrentFragment.loadPrefs();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -445,6 +457,8 @@ public class KiwixMobileActivity extends FragmentActivity implements ActionBar.T
|
|||||||
NUM_ITEMS = NUM_ITEMS + 1;
|
NUM_ITEMS = NUM_ITEMS + 1;
|
||||||
mViewPagerAdapter.notifyDataSetChanged();
|
mViewPagerAdapter.notifyDataSetChanged();
|
||||||
|
|
||||||
|
mPrefState.add(NUM_ITEMS - 1, new State(false));
|
||||||
|
|
||||||
if (mActionBar.getTabCount() > 1) {
|
if (mActionBar.getTabCount() > 1) {
|
||||||
mActionBar.setTitle(ZimContentProvider.getZimFileTitle());
|
mActionBar.setTitle(ZimContentProvider.getZimFileTitle());
|
||||||
mActionBar.setSubtitle(null);
|
mActionBar.setSubtitle(null);
|
||||||
@ -545,6 +559,23 @@ public class KiwixMobileActivity extends FragmentActivity implements ActionBar.T
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class State {
|
||||||
|
|
||||||
|
private boolean hasToBeRefreshed;
|
||||||
|
|
||||||
|
private State(boolean hasToBeRefreshed) {
|
||||||
|
this.hasToBeRefreshed = hasToBeRefreshed;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean hasToBeRefreshed() {
|
||||||
|
return hasToBeRefreshed;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHasToBeRefreshed(boolean hasToBeRefreshed) {
|
||||||
|
this.hasToBeRefreshed = hasToBeRefreshed;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class ViewPagerAdapter extends FragmentStatePagerAdapter {
|
public class ViewPagerAdapter extends FragmentStatePagerAdapter {
|
||||||
|
|
||||||
// Keep track of the active Fragments
|
// Keep track of the active Fragments
|
||||||
|
@ -80,7 +80,9 @@ public class KiwixMobileFragment extends Fragment {
|
|||||||
|
|
||||||
private static final String PREF_ZOOM_ENABLED = "pref_zoom_enabled";
|
private static final String PREF_ZOOM_ENABLED = "pref_zoom_enabled";
|
||||||
|
|
||||||
private static final String PREFS_KIWIX_MOBILE = "kiwix-mobile";
|
private static final String PREF_KIWIX_MOBILE = "kiwix-mobile";
|
||||||
|
|
||||||
|
private static final String PREF_BACK_TO_TOP = "pref_back_to_top";
|
||||||
|
|
||||||
private static final String AUTOMATIC = "automatic";
|
private static final String AUTOMATIC = "automatic";
|
||||||
|
|
||||||
@ -114,9 +116,9 @@ public class KiwixMobileFragment extends Fragment {
|
|||||||
|
|
||||||
protected int requestWebReloadOnFinished;
|
protected int requestWebReloadOnFinished;
|
||||||
|
|
||||||
private SharedPreferences mySharedPreferences;
|
private boolean isButtonEnabled;
|
||||||
|
|
||||||
private boolean isButtonEnabled = true;
|
private SharedPreferences mySharedPreferences;
|
||||||
|
|
||||||
private ArrayAdapter<String> adapter;
|
private ArrayAdapter<String> adapter;
|
||||||
|
|
||||||
@ -137,6 +139,7 @@ public class KiwixMobileFragment extends Fragment {
|
|||||||
requestWebReloadOnFinished = 0;
|
requestWebReloadOnFinished = 0;
|
||||||
requestInitAllMenuItems = false;
|
requestInitAllMenuItems = false;
|
||||||
nightMode = false;
|
nightMode = false;
|
||||||
|
isButtonEnabled = true;
|
||||||
isFullscreenOpened = false;
|
isFullscreenOpened = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -175,7 +178,7 @@ public class KiwixMobileFragment extends Fragment {
|
|||||||
@Override
|
@Override
|
||||||
public void onPause() {
|
public void onPause() {
|
||||||
super.onPause();
|
super.onPause();
|
||||||
SharedPreferences settings = getActivity().getSharedPreferences(PREFS_KIWIX_MOBILE, 0);
|
SharedPreferences settings = getActivity().getSharedPreferences(PREF_KIWIX_MOBILE, 0);
|
||||||
SharedPreferences.Editor editor = settings.edit();
|
SharedPreferences.Editor editor = settings.edit();
|
||||||
editor.putString(TAG_CURRENTZIMFILE, ZimContentProvider.getZimFile());
|
editor.putString(TAG_CURRENTZIMFILE, ZimContentProvider.getZimFile());
|
||||||
|
|
||||||
@ -222,7 +225,7 @@ public class KiwixMobileFragment extends Fragment {
|
|||||||
+ " times after restoring state");
|
+ " times after restoring state");
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
SharedPreferences settings = getActivity().getSharedPreferences(PREFS_KIWIX_MOBILE, 0);
|
SharedPreferences settings = getActivity().getSharedPreferences(PREF_KIWIX_MOBILE, 0);
|
||||||
String zimFile = settings.getString(TAG_CURRENTZIMFILE, null);
|
String zimFile = settings.getString(TAG_CURRENTZIMFILE, null);
|
||||||
if (zimFile != null) {
|
if (zimFile != null) {
|
||||||
Log.d(TAG_KIWIX, " Kiwix normal start, zimFile loaded last time -> Open last used zimFile "
|
Log.d(TAG_KIWIX, " Kiwix normal start, zimFile loaded last time -> Open last used zimFile "
|
||||||
@ -598,8 +601,10 @@ public class KiwixMobileFragment extends Fragment {
|
|||||||
break;
|
break;
|
||||||
case PREFERENCES_REQUEST_CODE:
|
case PREFERENCES_REQUEST_CODE:
|
||||||
loadPrefs();
|
loadPrefs();
|
||||||
getActivity().finish();
|
for (KiwixMobileActivity.State state : KiwixMobileActivity.mPrefState) {
|
||||||
startActivity(new Intent(getActivity(), KiwixMobileActivity.class));
|
state.setHasToBeRefreshed(true);
|
||||||
|
}
|
||||||
|
Log.e("kiwix", KiwixMobileActivity.mPrefState.get(0).hasToBeRefreshed() + "");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -617,11 +622,13 @@ public class KiwixMobileFragment extends Fragment {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void loadPrefs() {
|
public void loadPrefs() {
|
||||||
|
|
||||||
mySharedPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
|
mySharedPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
|
||||||
|
|
||||||
String pref_zoom = mySharedPreferences.getString(PREF_ZOOM, AUTOMATIC);
|
String pref_zoom = mySharedPreferences.getString(PREF_ZOOM, AUTOMATIC);
|
||||||
Boolean pref_zoom_enabled = mySharedPreferences.getBoolean(PREF_ZOOM_ENABLED, false);
|
Boolean pref_zoom_enabled = mySharedPreferences.getBoolean(PREF_ZOOM_ENABLED, false);
|
||||||
Boolean pref_nightmode = mySharedPreferences.getBoolean(PREF_NIGHTMODE, false);
|
Boolean pref_nightmode = mySharedPreferences.getBoolean(PREF_NIGHTMODE, false);
|
||||||
isButtonEnabled = mySharedPreferences.getBoolean("pref_backtotop", isButtonEnabled);
|
Boolean pref_buttonEnabled = mySharedPreferences.getBoolean(PREF_BACK_TO_TOP, false);
|
||||||
|
|
||||||
if (pref_zoom.equals(AUTOMATIC)) {
|
if (pref_zoom.equals(AUTOMATIC)) {
|
||||||
setDefaultZoom();
|
setDefaultZoom();
|
||||||
@ -639,11 +646,13 @@ public class KiwixMobileFragment extends Fragment {
|
|||||||
// Pinch to zoom
|
// Pinch to zoom
|
||||||
// This seems to suffer from a bug in Android. If you set to "false" this only apply after a restart of the app.
|
// This seems to suffer from a bug in Android. If you set to "false" this only apply after a restart of the app.
|
||||||
Log.d(TAG_KIWIX, "pref_zoom_enabled value (" + pref_zoom_enabled + ")");
|
Log.d(TAG_KIWIX, "pref_zoom_enabled value (" + pref_zoom_enabled + ")");
|
||||||
webView.getSettings().setBuiltInZoomControls(true);
|
webView.getSettings().setBuiltInZoomControls(pref_zoom_enabled);
|
||||||
webView.getSettings().setDisplayZoomControls(pref_zoom_enabled);
|
webView.getSettings().setDisplayZoomControls(pref_zoom_enabled);
|
||||||
|
|
||||||
if (!isButtonEnabled) {
|
if (pref_buttonEnabled) {
|
||||||
mBackToTopButton.setVisibility(View.INVISIBLE);
|
mBackToTopButton.setVisibility(View.VISIBLE);
|
||||||
|
} else {
|
||||||
|
mBackToTopButton.setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Night mode status
|
// Night mode status
|
||||||
|
@ -1,14 +1,11 @@
|
|||||||
package org.kiwix.kiwixmobile;
|
package org.kiwix.kiwixmobile;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.os.Bundle;
|
|
||||||
import android.preference.ListPreference;
|
|
||||||
import android.preference.EditTextPreference;
|
|
||||||
import android.preference.Preference;
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.pm.PackageManager;
|
|
||||||
import android.content.pm.PackageInfo;
|
|
||||||
import android.content.pm.PackageManager.NameNotFoundException;
|
import android.content.pm.PackageManager.NameNotFoundException;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.preference.EditTextPreference;
|
||||||
|
import android.preference.ListPreference;
|
||||||
|
import android.preference.Preference;
|
||||||
import android.preference.Preference.OnPreferenceChangeListener;
|
import android.preference.Preference.OnPreferenceChangeListener;
|
||||||
import android.preference.PreferenceFragment;
|
import android.preference.PreferenceFragment;
|
||||||
|
|
||||||
@ -17,8 +14,7 @@ public class KiwixSettings extends Activity {
|
|||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
getFragmentManager().beginTransaction()
|
getFragmentManager().beginTransaction().replace(android.R.id.content, new PrefsFragment()).commit();
|
||||||
.replace(android.R.id.content, new PrefsFragment()).commit();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public class PrefsFragment extends PreferenceFragment {
|
public class PrefsFragment extends PreferenceFragment {
|
||||||
@ -39,7 +35,7 @@ public class KiwixSettings extends Activity {
|
|||||||
} catch (NameNotFoundException e) {
|
} catch (NameNotFoundException e) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
EditTextPreference versionPref = (EditTextPreference)findPreference("pref_version");
|
EditTextPreference versionPref = (EditTextPreference) findPreference("pref_version");
|
||||||
versionPref.setSummary(version);
|
versionPref.setSummary(version);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -51,16 +47,16 @@ public class KiwixSettings extends Activity {
|
|||||||
prefList.setValue((String) prefList.getEntryValues()[0]);
|
prefList.setValue((String) prefList.getEntryValues()[0]);
|
||||||
ss = prefList.getValue();
|
ss = prefList.getValue();
|
||||||
}
|
}
|
||||||
prefList.setSummary(prefList.getEntries()[prefList
|
prefList.setSummary(prefList.getEntries()[prefList.findIndexOfValue(ss)]);
|
||||||
.findIndexOfValue(ss)]);
|
|
||||||
prefList.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
prefList.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceChange(Preference preference,
|
public boolean onPreferenceChange(Preference preference,
|
||||||
Object newValue) {
|
Object newValue) {
|
||||||
if (preference instanceof ListPreference)
|
if (preference instanceof ListPreference) {
|
||||||
preference.setSummary(((ListPreference) preference)
|
preference.setSummary(((ListPreference) preference)
|
||||||
.getEntries()[((ListPreference) preference)
|
.getEntries()[((ListPreference) preference)
|
||||||
.findIndexOfValue(newValue.toString())]);
|
.findIndexOfValue(newValue.toString())]);
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -296,7 +296,6 @@ public class ZimFileSelectActivity extends FragmentActivity
|
|||||||
private class ViewHolder {
|
private class ViewHolder {
|
||||||
|
|
||||||
TextView title;
|
TextView title;
|
||||||
|
|
||||||
TextView path;
|
TextView path;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user