ae80f9044488bf87bb26072f304c172808c43f85
[pub/Android/ownCloud.git] / src / com / owncloud / android / ui / dialog / ConflictsResolveDialog.java
1 package com.owncloud.android.ui.dialog;
2
3 import android.app.AlertDialog;
4 import android.app.Dialog;
5 import android.content.DialogInterface;
6 import android.os.Bundle;
7 import android.support.v4.app.Fragment;
8 import android.support.v4.app.FragmentTransaction;
9
10 import com.actionbarsherlock.app.SherlockDialogFragment;
11 import com.actionbarsherlock.app.SherlockFragmentActivity;
12 import com.owncloud.android.R;
13
14 public class ConflictsResolveDialog extends SherlockDialogFragment {
15
16 public static enum Decision {
17 CANCEL,
18 KEEP_BOTH,
19 OVERWRITE
20 }
21
22 OnConflictDecisionMadeListener mListener;
23
24 public static ConflictsResolveDialog newInstance(String path, OnConflictDecisionMadeListener listener) {
25 ConflictsResolveDialog f = new ConflictsResolveDialog();
26 Bundle args = new Bundle();
27 args.putString("remotepath", path);
28 f.setArguments(args);
29 f.mListener = listener;
30 return f;
31 }
32
33 @Override
34 public Dialog onCreateDialog(Bundle savedInstanceState) {
35 String remotepath = getArguments().getString("remotepath");
36 return new AlertDialog.Builder(getSherlockActivity())
37 .setIcon(R.drawable.icon)
38 .setTitle(R.string.conflict_title)
39 .setMessage(String.format(getString(R.string.conflict_message), remotepath))
40 .setPositiveButton(R.string.conflict_overwrite,
41 new DialogInterface.OnClickListener() {
42
43 @Override
44 public void onClick(DialogInterface dialog, int which) {
45 if (mListener != null)
46 mListener.ConflictDecisionMade(Decision.OVERWRITE);
47 }
48 })
49 .setNeutralButton(R.string.conflict_keep_both,
50 new DialogInterface.OnClickListener() {
51 @Override
52 public void onClick(DialogInterface dialog, int which) {
53 if (mListener != null)
54 mListener.ConflictDecisionMade(Decision.KEEP_BOTH);
55 }
56 })
57 .setNegativeButton(R.string.conflict_dont_upload,
58 new DialogInterface.OnClickListener() {
59 @Override
60 public void onClick(DialogInterface dialog, int which) {
61 if (mListener != null)
62 mListener.ConflictDecisionMade(Decision.CANCEL);
63 }
64 })
65 .create();
66 }
67
68 public void showDialog(SherlockFragmentActivity activity) {
69 Fragment prev = activity.getSupportFragmentManager().findFragmentByTag("dialog");
70 FragmentTransaction ft = activity.getSupportFragmentManager().beginTransaction();
71 if (prev != null) {
72 ft.remove(prev);
73 }
74 ft.addToBackStack(null);
75
76 this.show(ft, "dialog");
77 }
78
79 public static void dismissDialog(SherlockFragmentActivity activity, String tag) {
80 Fragment prev = activity.getSupportFragmentManager().findFragmentByTag(tag);
81 if (prev != null) {
82 FragmentTransaction ft = activity.getSupportFragmentManager().beginTransaction();
83 ft.remove(prev);
84 ft.commit();
85 }
86 }
87
88 public interface OnConflictDecisionMadeListener {
89 public void ConflictDecisionMade(Decision decision);
90 }
91 }