package de.theknut.xposedgelsettings.ui;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceChangeListener;
import android.preference.PreferenceFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;
import android.widget.TextView;
import android.widget.Toast;
import com.afollestad.materialdialogs.MaterialDialog;
import com.afollestad.materialdialogs.Theme;
import java.util.Arrays;
import java.util.List;
import de.theknut.xposedgelsettings.R;
import de.theknut.xposedgelsettings.hooks.Common;
@SuppressLint("WorldReadableFiles")
public class FragmentBase extends PreferenceFragment {
public static Context mContext;
public static Activity mActivity;
public static boolean toastShown = false;
public static boolean alertShown = false;
public static boolean alertAnswerKill = false;
public static String TAG = "XGELS";
public static SharedPreferences sharedPrefs;
OnPreferenceChangeListener onChangeListenerLauncherReboot = new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (!toastShown) {
Toast.makeText(mContext, R.string.toast_reboot, Toast.LENGTH_LONG).show();
toastShown = true;
}
return true;
}
};
OnPreferenceChangeListener onChangeListenerFullReboot = new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (!toastShown) {
Toast.makeText(mContext, R.string.toast_full_reboot, Toast.LENGTH_LONG).show();
toastShown = true;
}
CommonUI.needFullReboot = true;
return true;
}
};
OnSharedPreferenceChangeListener onChangeListenerKillLauncher = new OnSharedPreferenceChangeListener() {
List<String> keys = Arrays.asList("1", "2", "PREFS_VERSION_KEY", "dontshowkilldialog", "autokilllauncher", "dontshowgoogleplaydialog", "debug", "premiumlistpref");
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
sharedPreferences.edit().commit();
if (keys.contains(key)) return;
if (!sharedPreferences.getBoolean("dontshowkilldialog", false) && !alertShown) {
LayoutInflater adbInflater = LayoutInflater.from(mContext);
View dontShowAgainLayout = adbInflater.inflate(R.layout.dialog_with_checkbox, null);
((TextView) dontShowAgainLayout.findViewById(R.id.message)).setText(R.string.alert_autokill_summary);
final CheckBox dontShowAgain = (CheckBox) dontShowAgainLayout.findViewById(R.id.skip);
dontShowAgain.setIncludeFontPadding(false);
dontShowAgain.setText(R.string.alert_autokill_checkbox);
new MaterialDialog.Builder(mActivity)
.theme(Theme.DARK)
.customView(dontShowAgainLayout, true)
.cancelable(false)
.title(R.string.alert_autokill_title)
.positiveText(R.string.alert_autokill_ok)
.negativeText(R.string.alert_autokill_cancel)
.callback(new MaterialDialog.ButtonCallback() {
@Override
public void onPositive(MaterialDialog materialDialog) {
if (dontShowAgain.isChecked()) {
SharedPreferences settings = mContext.getSharedPreferences(Common.PREFERENCES_NAME, Context.MODE_WORLD_READABLE);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("dontshowkilldialog", true).commit();
editor.putBoolean("autokilllauncher", true).commit();
}
alertAnswerKill = true;
CommonUI.restartLauncher(false);
}
@Override
public void onNegative(MaterialDialog materialDialog) {
if (dontShowAgain.isChecked()) {
SharedPreferences settings = mContext.getSharedPreferences(Common.PREFERENCES_NAME, Context.MODE_WORLD_READABLE);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("dontshowkilldialog", true).commit();
editor.putBoolean("autokilllauncher", false).commit();
}
materialDialog.dismiss();
}
})
.build()
.show();
alertShown = true;
}
if (sharedPreferences.getBoolean("autokilllauncher", false) || alertAnswerKill) {
CommonUI.restartLauncher(false);
}
}
};
@SuppressWarnings("deprecation")
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
getPreferenceManager().setSharedPreferencesMode(Context.MODE_WORLD_READABLE);
sharedPrefs = getPreferenceManager().getSharedPreferences();
return super.onCreateView(inflater, container, savedInstanceState);
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
mContext = mActivity = activity;
}
@Override
public void onResume() {
super.onResume();
getPreferenceManager().getSharedPreferences().registerOnSharedPreferenceChangeListener(onChangeListenerKillLauncher);
MainActivity.closeDrawer();
}
@Override
public void onPause() {
getPreferenceManager().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(onChangeListenerKillLauncher);
super.onPause();
}
}