package com.amaze.filemanager.fragments.preference_fragments;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.PreferenceFragment;
import android.preference.PreferenceManager;
import android.preference.SwitchPreference;
import com.amaze.filemanager.R;
import com.amaze.filemanager.activities.PreferencesActivity;
import com.amaze.filemanager.utils.TinyDB;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import static java.lang.Boolean.TRUE;
/**
* @author Emmanuel
* on 17/4/2017, at 23:17.
*/
public class QuickAccessPref extends PreferenceFragment implements Preference.OnPreferenceClickListener {
public static final String KEY = "quick access array";
public static final String[] KEYS = {"fastaccess", "recent", "image", "video", "audio",
"documents", "apks"};
public static final Boolean[] DEFAULT = {TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE};
private static Map<String, Integer> prefPos = new HashMap<>();
static {
Map<String, Integer> mem = new HashMap<>();
for(int i = 0; i < KEYS.length; i++)
mem.put(KEYS[i], i);
prefPos = Collections.unmodifiableMap(mem);
}
private SharedPreferences preferences;
private Boolean[] currentValue;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.fastaccess_prefs);
preferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
currentValue = TinyDB.getBooleanArray(preferences, KEY, DEFAULT);
for (int i = 0; i < getPreferenceScreen().getPreferenceCount(); i++) {
getPreferenceScreen().getPreference(i).setOnPreferenceClickListener(this);
}
}
@Override
public boolean onPreferenceClick(Preference preference) {
if (preferences != null) ((PreferencesActivity) getActivity()).setChanged();
currentValue[prefPos.get(preference.getKey())] = ((SwitchPreference) preference).isChecked();
TinyDB.putBooleanArray(preferences, KEY, currentValue);
return true;
}
}