1 package com
.owncloud
.android
.ui
.fragment
;
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
;
9 import com
.actionbarsherlock
.app
.SherlockDialogFragment
;
11 public class ConfirmationDialogFragment
extends SherlockDialogFragment
{
13 public final static String ARG_CONF_RESOURCE_ID
= "resource_id";
14 public final static String ARG_CONF_ARGUMENTS
= "string_array";
16 public final static String ARG_POSITIVE_BTN_RES
= "positive_btn_res";
17 public final static String ARG_NEUTRAL_BTN_RES
= "neutral_btn_res";
18 public final static String ARG_NEGATIVE_BTN_RES
= "negative_btn_res";
20 private ConfirmationDialogFragmentListener mListener
;
22 public static ConfirmationDialogFragment
newInstance(int string_id
, String
[] arguments
, int posBtn
, int neuBtn
, int negBtn
) {
23 ConfirmationDialogFragment frag
= new ConfirmationDialogFragment();
24 Bundle args
= new Bundle();
25 args
.putInt(ARG_CONF_RESOURCE_ID
, string_id
);
26 args
.putStringArray(ARG_CONF_ARGUMENTS
, arguments
);
27 args
.putInt(ARG_POSITIVE_BTN_RES
, posBtn
);
28 args
.putInt(ARG_NEUTRAL_BTN_RES
, neuBtn
);
29 args
.putInt(ARG_NEGATIVE_BTN_RES
, negBtn
);
30 frag
.setArguments(args
);
34 public void setOnConfirmationListener(ConfirmationDialogFragmentListener listener
) {
39 public Dialog
onCreateDialog(Bundle savedInstanceState
) {
40 Object
[] confirmationTarget
= getArguments().getStringArray(ARG_CONF_ARGUMENTS
);
41 int resourceId
= getArguments().getInt(ARG_CONF_RESOURCE_ID
, -1);
42 int posBtn
= getArguments().getInt(ARG_POSITIVE_BTN_RES
, -1);
43 int neuBtn
= getArguments().getInt(ARG_NEUTRAL_BTN_RES
, -1);
44 int negBtn
= getArguments().getInt(ARG_NEGATIVE_BTN_RES
, -1);
46 if (confirmationTarget
== null
|| resourceId
== -1) {
47 Log
.wtf(getTag(), "Calling confirmation dialog without resource or arguments");
51 AlertDialog
.Builder builder
= new AlertDialog
.Builder(getActivity())
52 .setIcon(android
.R
.drawable
.ic_dialog_alert
)
53 .setMessage(String
.format(getString(resourceId
), confirmationTarget
))
54 .setTitle(android
.R
.string
.dialog_alert_title
);
55 if (android
.os
.Build
.VERSION
.SDK_INT
>= android
.os
.Build
.VERSION_CODES
.HONEYCOMB
) {
56 builder
.setIconAttribute(android
.R
.attr
.alertDialogIcon
);
60 builder
.setPositiveButton(posBtn
,
61 new DialogInterface
.OnClickListener() {
62 public void onClick(DialogInterface dialog
, int whichButton
) {
63 mListener
.onConfirmation(getTag());
67 builder
.setNeutralButton(neuBtn
,
68 new DialogInterface
.OnClickListener() {
69 public void onClick(DialogInterface dialog
, int whichButton
) {
70 mListener
.onNeutral(getTag());
74 builder
.setNegativeButton(negBtn
,
75 new DialogInterface
.OnClickListener() {
77 public void onClick(DialogInterface dialog
, int which
) {
78 mListener
.onCancel(getTag());
81 return builder
.create();
85 public interface ConfirmationDialogFragmentListener
{
86 public void onConfirmation(String callerTag
);
87 public void onNeutral(String callerTag
);
88 public void onCancel(String callerTag
);