From: Bartek Przybylski Date: Mon, 23 Jul 2012 17:09:44 +0000 (+0200) Subject: make confirmation dialog more universal X-Git-Tag: oc-android-1.4.3~245 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/7f75f13f0c47b5cc4f5fe6a743a6fb8a9281fef7?ds=inline make confirmation dialog more universal --- diff --git a/res/values/strings.xml b/res/values/strings.xml index 9d167e37..77c6a1cf 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -131,7 +131,7 @@ Rename Remove - "Do you really want %1$s ?" + "Do you really want to remove %1$s ?" "Successful removal" "Removal could not be completed" diff --git a/src/eu/alefzero/owncloud/ui/fragment/ConfirmationDialogFragment.java b/src/eu/alefzero/owncloud/ui/fragment/ConfirmationDialogFragment.java index e2769b16..c5394f8c 100644 --- a/src/eu/alefzero/owncloud/ui/fragment/ConfirmationDialogFragment.java +++ b/src/eu/alefzero/owncloud/ui/fragment/ConfirmationDialogFragment.java @@ -4,6 +4,7 @@ import android.app.AlertDialog; import android.app.Dialog; import android.content.DialogInterface; import android.os.Bundle; +import android.util.Log; import com.actionbarsherlock.app.SherlockDialogFragment; @@ -11,14 +12,16 @@ import eu.alefzero.owncloud.R; public class ConfirmationDialogFragment extends SherlockDialogFragment { - public final static String ARG_CONF_TARGET = "target"; + public final static String ARG_CONF_RESOURCE_ID = "resource_id"; + public final static String ARG_CONF_ARGUMENTS = "string_array"; ConfirmationDialogFragmentListener mListener; - public static ConfirmationDialogFragment newInstance(String confirmationTarget) { + public static ConfirmationDialogFragment newInstance(int string_id, String[] arguments) { ConfirmationDialogFragment frag = new ConfirmationDialogFragment(); Bundle args = new Bundle(); - args.putString(ARG_CONF_TARGET, confirmationTarget); + args.putInt(ARG_CONF_RESOURCE_ID, string_id); + args.putStringArray(ARG_CONF_ARGUMENTS, arguments); frag.setArguments(args); return frag; } @@ -29,13 +32,16 @@ public class ConfirmationDialogFragment extends SherlockDialogFragment { @Override public Dialog onCreateDialog(Bundle savedInstanceState) { - String confirmationTarget = getArguments().getString(ARG_CONF_TARGET); - if (confirmationTarget == null) - confirmationTarget = ""; + Object[] confirmationTarget = getArguments().getStringArray(ARG_CONF_ARGUMENTS); + int resourceId = getArguments().getInt(ARG_CONF_RESOURCE_ID, -1); + if (confirmationTarget == null || resourceId == -1) { + Log.wtf(getTag(), "Calling confirmation dialog without resource or arguments"); + return null; + } return new AlertDialog.Builder(getActivity()) .setIcon(android.R.drawable.ic_dialog_alert) - .setMessage(String.format(getString(R.string.confirmation_alert), confirmationTarget)) + .setMessage(String.format(getString(resourceId), confirmationTarget)) .setPositiveButton(R.string.common_ok, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { diff --git a/src/eu/alefzero/owncloud/ui/fragment/FileDetailFragment.java b/src/eu/alefzero/owncloud/ui/fragment/FileDetailFragment.java index 2f694f2a..ed986352 100644 --- a/src/eu/alefzero/owncloud/ui/fragment/FileDetailFragment.java +++ b/src/eu/alefzero/owncloud/ui/fragment/FileDetailFragment.java @@ -241,7 +241,7 @@ public class FileDetailFragment extends SherlockFragment implements break; } case R.id.fdRemoveBtn: { - ConfirmationDialogFragment confDialog = ConfirmationDialogFragment.newInstance("to remove " + mFile.getFileName()); + ConfirmationDialogFragment confDialog = ConfirmationDialogFragment.newInstance(R.string.confirmation_remove_alert, new String[]{mFile.getFileName()}); confDialog.setOnConfirmationListener(this); confDialog.show(getFragmentManager(), FTAG_CONFIRMATION); break;