package com.nilhcem.bblfr.ui.splashscreen; import android.app.Dialog; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import android.support.v4.app.DialogFragment; import android.support.v4.app.FragmentActivity; import android.support.v7.app.AlertDialog; import com.nilhcem.bblfr.R; public class ErrorDialogFragment extends DialogFragment { public static final String TAG = ErrorDialogFragment.class.getSimpleName(); private static final String ARG_NETWORK_ISSUE = "networkIssue"; private boolean mNetworkIssue; public static ErrorDialogFragment create(boolean networkIssue) { ErrorDialogFragment fragment = new ErrorDialogFragment(); Bundle bundle = new Bundle(); bundle.putBoolean(ARG_NETWORK_ISSUE, networkIssue); fragment.setArguments(bundle); fragment.setCancelable(false); return fragment; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mNetworkIssue = getArguments().getBoolean(ARG_NETWORK_ISSUE); } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { return new AlertDialog.Builder(getActivity()) .setTitle(mNetworkIssue ? R.string.splash_error_network_title : R.string.splash_error_unknown_title) .setMessage(mNetworkIssue ? R.string.splash_error_network_content : R.string.splash_error_unknown_content) .setPositiveButton(R.string.splash_error_button_exit, (dialog, which) -> exit(getActivity(), dialog)) .setNegativeButton(R.string.splash_error_button_prefs, (dialog, which) -> { startActivity(new Intent(android.provider.Settings.ACTION_SETTINGS)); exit(getActivity(), dialog); }) .create(); } private void exit(FragmentActivity activity, DialogInterface dialog) { if (dialog != null) { dialog.dismiss(); } if (activity != null) { activity.finish(); } } }