c5394f8c44a02317cdbdc5ed96e69994e52d2377
[pub/Android/ownCloud.git] / src / eu / alefzero / owncloud / ui / fragment / ConfirmationDialogFragment.java
1 package eu.alefzero.owncloud.ui.fragment;
2
3 import android.app.AlertDialog;
4 import android.app.Dialog;
5 import android.content.DialogInterface;
6 import android.os.Bundle;
7 import android.util.Log;
8
9 import com.actionbarsherlock.app.SherlockDialogFragment;
10
11 import eu.alefzero.owncloud.R;
12
13 public class ConfirmationDialogFragment extends SherlockDialogFragment {
14
15 public final static String ARG_CONF_RESOURCE_ID = "resource_id";
16 public final static String ARG_CONF_ARGUMENTS = "string_array";
17
18 ConfirmationDialogFragmentListener mListener;
19
20 public static ConfirmationDialogFragment newInstance(int string_id, String[] arguments) {
21 ConfirmationDialogFragment frag = new ConfirmationDialogFragment();
22 Bundle args = new Bundle();
23 args.putInt(ARG_CONF_RESOURCE_ID, string_id);
24 args.putStringArray(ARG_CONF_ARGUMENTS, arguments);
25 frag.setArguments(args);
26 return frag;
27 }
28
29 public void setOnConfirmationListener(ConfirmationDialogFragmentListener listener) {
30 mListener = listener;
31 }
32
33 @Override
34 public Dialog onCreateDialog(Bundle savedInstanceState) {
35 Object[] confirmationTarget = getArguments().getStringArray(ARG_CONF_ARGUMENTS);
36 int resourceId = getArguments().getInt(ARG_CONF_RESOURCE_ID, -1);
37 if (confirmationTarget == null || resourceId == -1) {
38 Log.wtf(getTag(), "Calling confirmation dialog without resource or arguments");
39 return null;
40 }
41
42 return new AlertDialog.Builder(getActivity())
43 .setIcon(android.R.drawable.ic_dialog_alert)
44 .setMessage(String.format(getString(resourceId), confirmationTarget))
45 .setPositiveButton(R.string.common_ok,
46 new DialogInterface.OnClickListener() {
47 public void onClick(DialogInterface dialog, int whichButton) {
48 mListener.onConfirmation(true, getTag());
49 }
50 }
51 )
52 .setNegativeButton(R.string.common_cancel,
53 new DialogInterface.OnClickListener() {
54 public void onClick(DialogInterface dialog, int whichButton) {
55 mListener.onConfirmation(false, getTag());
56 }
57 }
58 )
59 .create();
60 }
61
62
63 public interface ConfirmationDialogFragmentListener {
64 public void onConfirmation(boolean confirmation, String callerTag);
65 }
66
67 }
68