package com.boardgamegeek.ui.dialog;
import android.app.Dialog;
import android.content.ContentResolver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.database.Cursor;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.DialogFragment;
import android.support.v7.app.AlertDialog.Builder;
import com.boardgamegeek.R;
import com.boardgamegeek.provider.BggContract.CollectionViews;
public class DeleteViewDialogFragment extends DialogFragment {
private Context context;
private OnViewDeletedListener listener;
public static DeleteViewDialogFragment newInstance(Context context) {
DeleteViewDialogFragment dialogFragment = new DeleteViewDialogFragment();
dialogFragment.context = context;
return dialogFragment;
}
public interface OnViewDeletedListener {
void onDeleteRequested(long viewId);
}
public void setOnViewDeletedListener(OnViewDeletedListener listener) {
this.listener = listener;
}
@Override
@NonNull
public Dialog onCreateDialog(Bundle savedInstanceState) {
final ContentResolver resolver = context.getContentResolver();
final Cursor cursor = resolver.query(CollectionViews.CONTENT_URI,
new String[] { CollectionViews._ID, CollectionViews.NAME },
null,
null,
null);
return new Builder(context, R.style.Theme_bgglight_Dialog_Alert)
.setTitle(R.string.title_delete_view)
.setCursor(cursor, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, final int which) {
new Builder(context)
.setTitle(R.string.are_you_sure_title)
.setMessage(R.string.are_you_sure_delete_collection_view)
.setCancelable(true)
.setPositiveButton(R.string.yes, new OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
if (cursor != null) {
cursor.moveToPosition(which);
long viewId = cursor.getLong(0);
int count = resolver.delete(CollectionViews.buildViewUri(viewId), null, null);
if (count == 1 && listener != null) {
listener.onDeleteRequested(viewId);
}
}
}
})
.setNegativeButton(R.string.no, null)
.create()
.show();
}
}, CollectionViews.NAME)
.create();
}
}