package com.ianhanniballake.contractiontimer.ui;
import android.app.Dialog;
import android.content.AsyncQueryHandler;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.DialogFragment;
import android.support.v7.app.AlertDialog;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import com.google.firebase.analytics.FirebaseAnalytics;
import com.ianhanniballake.contractiontimer.BuildConfig;
import com.ianhanniballake.contractiontimer.R;
import com.ianhanniballake.contractiontimer.appwidget.AppWidgetUpdateHandler;
import com.ianhanniballake.contractiontimer.notification.NotificationUpdateService;
import com.ianhanniballake.contractiontimer.provider.ContractionContract;
/**
* Reset Confirmation Dialog box
*/
public class ResetDialogFragment extends DialogFragment {
private final static String TAG = ResetDialogFragment.class.getSimpleName();
@Override
public void onCancel(final DialogInterface dialog) {
if (BuildConfig.DEBUG)
Log.d(TAG, "Received cancelation event");
super.onCancel(dialog);
}
@Override
@NonNull
public Dialog onCreateDialog(final Bundle savedInstanceState) {
final LayoutInflater inflater = getActivity().getLayoutInflater();
final View layout = inflater.inflate(R.layout.dialog_reset, null);
final Context context = getActivity();
final AsyncQueryHandler asyncQueryHandler = new AsyncQueryHandler(context.getContentResolver()) {
@Override
protected void onDeleteComplete(final int token, final Object cookie, final int result) {
AppWidgetUpdateHandler.createInstance().updateAllWidgets(context);
NotificationUpdateService.updateNotification(context);
}
};
return new AlertDialog.Builder(getActivity())
.setIcon(R.drawable.ic_dialog_alert)
.setTitle(R.string.reset_dialog_title)
.setView(layout)
.setInverseBackgroundForced(true)
.setPositiveButton(R.string.reset_dialog_confirm, new OnClickListener() {
@Override
public void onClick(final DialogInterface dialog, final int which) {
if (BuildConfig.DEBUG)
Log.d(TAG, "Received positive event");
FirebaseAnalytics.getInstance(getContext()).logEvent("reset_complete", null);
asyncQueryHandler.startDelete(0, 0, ContractionContract.Contractions.CONTENT_URI, null, null);
}
}).setNegativeButton(R.string.reset_dialog_cancel, new OnClickListener() {
@Override
public void onClick(final DialogInterface dialog, final int which) {
if (BuildConfig.DEBUG)
Log.d(TAG, "Received negative event");
}
}).create();
}
}