summaryrefslogtreecommitdiff
path: root/src/de/danoeh/antennapod/dialog/ConfirmationDialog.java
blob: a6c741f735cbfab3126e9bec997cf9e2cf065c04 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package de.danoeh.antennapod.dialog;

import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.util.Log;
import de.danoeh.antennapod.AppConfig;
import de.danoeh.antennapod.R;

/**
 * Creates an AlertDialog which asks the user to confirm something. Other
 * classes can handle events like confirmation or cancellation.
 */
public abstract class ConfirmationDialog {
	private static final String TAG = "ConfirmationDialog";

	Context context;
	int titleId;
	int messageId;

	public ConfirmationDialog(Context context, int titleId, int messageId) {
		this.context = context;
		this.titleId = titleId;
		this.messageId = messageId;
	}

	public void onCancelButtonPressed(DialogInterface dialog) {
		if (AppConfig.DEBUG)
			Log.d(TAG, "Dialog was cancelled");
		dialog.dismiss();
	}

	public abstract void onConfirmButtonPressed();

	public final AlertDialog createNewDialog() {
		AlertDialog.Builder builder = new AlertDialog.Builder(context);
		builder.setTitle(titleId);
		builder.setMessage(messageId);
		builder.setPositiveButton(R.string.confirm_label,
				new DialogInterface.OnClickListener() {

					@Override
					public void onClick(DialogInterface dialog, int which) {
						onConfirmButtonPressed();
					}
				});
		builder.setNegativeButton(R.string.cancel_label,
				new DialogInterface.OnClickListener() {

					@Override
					public void onClick(DialogInterface dialog, int which) {
						onCancelButtonPressed(dialog);
					}
				});
		builder.setOnCancelListener(new DialogInterface.OnCancelListener() {

			@Override
			public void onCancel(DialogInterface dialog) {
				onCancelButtonPressed(dialog);
			}
		});
		return builder.create();
	}
}