package com.github.jthuraisamy.mastertap.fragments; import android.app.AlertDialog; import android.app.Dialog; import android.content.DialogInterface; import android.content.SharedPreferences; import android.os.Bundle; import android.preference.PreferenceManager; import android.support.annotation.NonNull; import android.support.v4.app.DialogFragment; import android.view.LayoutInflater; import android.view.View; import android.widget.CheckBox; import com.github.jthuraisamy.mastertap.MainActivity; import com.github.jthuraisamy.mastertap.R; public class DisclaimerDialog extends DialogFragment { public static final String TAG = DisclaimerDialog.class.getSimpleName(); public DisclaimerDialog() {} public static DisclaimerDialog create() { return new DisclaimerDialog(); } @NonNull public Dialog onCreateDialog(Bundle savedInstanceState) { final MainActivity ctx = (MainActivity) getActivity(); AlertDialog.Builder alertDialog = new AlertDialog.Builder(ctx); // Set title bar. alertDialog.setTitle(R.string.disclaimer_title); // Set view. LayoutInflater inflater = LayoutInflater.from(ctx); final View view = inflater.inflate(R.layout.disclaimer_dialog, null); final CheckBox disclaimerCheckBox = (CheckBox) view.findViewById(R.id.disclaimerCheckBox); alertDialog.setView(view); // Set OnClickListener for negative button. alertDialog.setNegativeButton(R.string.decline, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getActivity()); SharedPreferences.Editor settingsEditor = settings.edit(); settingsEditor.putBoolean("isDisclaimerAccepted", false); settingsEditor.apply(); ctx.finish(); } }); // Set OnClickListener for positive button. alertDialog.setPositiveButton(R.string.accept, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getActivity()); SharedPreferences.Editor settingsEditor = settings.edit(); // Commit settings. settingsEditor.putBoolean("isDisclaimerAccepted", true); if (disclaimerCheckBox.isChecked()) { settingsEditor.putBoolean("showDisclaimer", true); } else { settingsEditor.putBoolean("showDisclaimer", false); } settingsEditor.apply(); // Continue initialization of MainActivity. ctx.initDatabase(); } }); return alertDialog.create(); } @Override public void onResume() { super.onResume(); final AlertDialog alertDialog = (AlertDialog) getDialog(); // Set OnCancelListener. alertDialog.setOnCancelListener(new DialogInterface.OnCancelListener() { @Override public void onCancel(DialogInterface dialogInterface) { final MainActivity ctx = (MainActivity) getActivity(); ctx.finish(); } }); } }