package org.ebookdroid.ui.settings;
import org.ebookdroid.EBookDroidApp;
import org.sufficientlysecure.viewer.R;
import org.ebookdroid.common.settings.AppSettings;
import org.ebookdroid.common.settings.SettingsManager;
import org.ebookdroid.common.settings.books.BookSettings;
import android.content.SharedPreferences;
import android.net.Uri;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.preference.PreferenceScreen;
import org.emdev.common.filesystem.PathFromUri;
public class SettingsActivity extends BaseSettingsActivity {
@Override
protected final void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EBookDroidApp.initFonts();
final Uri uri = getIntent().getData();
if (uri != null) {
final String fileName = PathFromUri.retrieve(getContentResolver(), uri);
BookSettings current = SettingsManager.getBookSettings(fileName);
if (current != null) {
setRequestedOrientation(current.getOrientation(AppSettings.current()));
}
}
onCreate();
}
@Override
protected void onPause() {
SettingsManager.onSettingsChanged();
super.onPause();
}
@SuppressWarnings("deprecation")
protected void onCreate() {
try {
setPreferenceScreen(createPreferences());
} catch (final ClassCastException e) {
LCTX.e("Shared preferences are corrupt! Resetting to default values.");
final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
final SharedPreferences.Editor editor = preferences.edit();
editor.clear();
editor.commit();
setPreferenceScreen(createPreferences());
}
decorator.decorateSettings();
}
@SuppressWarnings("deprecation")
PreferenceScreen createPreferences() {
final PreferenceScreen root = getPreferenceManager().createPreferenceScreen(this);
root.setTitle(R.string.menu_settings);
loadPreferences(root, R.xml.fragment_ui);
loadPreferences(root, R.xml.fragment_scroll);
loadPreferences(root, R.xml.fragment_navigation);
loadPreferences(root, R.xml.fragment_performance);
loadPreferences(root, R.xml.fragment_render);
loadPreferences(root, R.xml.fragment_typespec);
loadPreferences(root, R.xml.fragment_browser);
loadPreferences(root, R.xml.fragment_opds);
loadPreferences(root, R.xml.fragment_backup);
return root;
}
@SuppressWarnings("deprecation")
void loadPreferences(final PreferenceScreen root, final int... resourceIds) {
for (final int id : resourceIds) {
setPreferenceScreen(null);
addPreferencesFromResource(id);
root.addPreference(getPreferenceScreen());
setPreferenceScreen(null);
}
}
}