package net.reichholf.dreamdroid.fragment;
import android.content.SharedPreferences;
import android.content.pm.ApplicationInfo;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceFragmentCompat;
import android.support.v7.preference.PreferenceManager;
import android.util.Log;
import android.util.TypedValue;
import android.view.KeyEvent;
import android.view.View;
import net.reichholf.dreamdroid.DreamDroid;
import net.reichholf.dreamdroid.R;
import net.reichholf.dreamdroid.activities.abs.BaseActivity;
import net.reichholf.dreamdroid.fragment.dialogs.ActionDialog;
import net.reichholf.dreamdroid.video.VLCPlayer;
/**
* Created by Stephan on 08.04.2015.
*/
public class MyPreferenceFragment extends PreferenceFragmentCompat implements
SharedPreferences.OnSharedPreferenceChangeListener, ActivityCallbackHandler, ActionDialog.DialogActionListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public void onCreatePreferences(Bundle bundle, String s) {
addPreferencesFromResource(R.xml.preferences);
getActivity().setTitle(R.string.settings);
PreferenceManager.setDefaultValues(getActivity(), R.xml.preferences, false);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
Preference syncPref = findPreference("sync_picons");
syncPref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
startPiconSync();
return true;
}
});
updateThemeSummary();
updateHwAccelSummary(prefs);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
TypedValue typedValue = new TypedValue();
getActivity().getTheme().resolveAttribute(android.R.attr.listSelector, typedValue, true);
boolean isDebuggable = (0 != (getActivity().getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE));
if (!isDebuggable) {
Preference dev = findPreference("developer");
if (dev != null) //Already removed?
getPreferenceScreen().removePreference(dev);
}
View header = getActivity().findViewById(R.id.content_header);
if (header != null)
header.setVisibility(View.GONE);
}
@Override
public void onResume() {
super.onResume();
PreferenceManager.getDefaultSharedPreferences(getActivity()).registerOnSharedPreferenceChangeListener(this);
}
@Override
public void onPause() {
PreferenceManager.getDefaultSharedPreferences(getActivity()).unregisterOnSharedPreferenceChangeListener(this);
super.onPause();
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
setFabEnabled(R.id.fab_reload, false);
setFabEnabled(R.id.fab_main, false);
}
protected void setFabEnabled(int id, boolean enabled) {
FloatingActionButton fab = (FloatingActionButton) getActivity().findViewById(id);
if (fab == null)
return;
fab.setTag(R.id.fab_scrolling_view_behavior_enabled, enabled);
if (enabled)
fab.show();
else
fab.hide();
}
@Override
public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
Log.w(DreamDroid.LOG_TAG, key);
if (DreamDroid.PREFS_KEY_THEME_TYPE.equals(key)) {
updateThemeSummary();
DreamDroid.setTheme((AppCompatActivity) getActivity());
} else if (DreamDroid.PREFS_KEY_HWACCEL.equals(key))
updateHwAccelSummary(prefs);
}
protected void updateThemeSummary() {
if (getActivity() == null)
return;
int idx = DreamDroid.getThemeType(getActivity());
Preference themePref = findPreference(DreamDroid.PREFS_KEY_THEME_TYPE);
themePref.setSummary(getResources().getStringArray(R.array.theme_option_entries)[idx]);
}
protected void updateHwAccelSummary(SharedPreferences prefs) {
if (getActivity() == null)
return;
int idx = Integer.parseInt(prefs.getString(DreamDroid.PREFS_KEY_HWACCEL, Integer.toString(VLCPlayer.MEDIA_HWACCEL_ENABLED)));
Preference themePref = findPreference(DreamDroid.PREFS_KEY_HWACCEL);
themePref.setSummary(getString(R.string.use_hw_accel_long, getResources().getStringArray(R.array.hw_accel_entries)[idx]));
}
public void startPiconSync() {
((BaseActivity) getActivity()).startPiconSync();
}
@Override
public void onDrawerOpened() {
}
@Override
public void onDrawerClosed() {
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
return false;
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
return false;
}
@Override
public void onDialogAction(int action, Object details, String dialogTag) {
}
}