From 824ac17ae3feb676a038af0e3491252cb4e5365a Mon Sep 17 00:00:00 2001 From: Aga Wronska Date: Thu, 17 Mar 2016 13:45:32 -0700 Subject: [PATCH] Generate more descriptive delete confirmation message. Change-Id: I194ef353aec9d2841b5f3fc8dfd76df6286ce969 Fixed: 27489240 --- packages/DocumentsUI/res/values/strings.xml | 24 ++++++++++--- .../documentsui/dirlist/DirectoryFragment.java | 39 +++++++++++++++++++--- 2 files changed, 54 insertions(+), 9 deletions(-) diff --git a/packages/DocumentsUI/res/values/strings.xml b/packages/DocumentsUI/res/values/strings.xml index e7406e68302d..0d098e69b73b 100644 --- a/packages/DocumentsUI/res/values/strings.xml +++ b/packages/DocumentsUI/res/values/strings.xml @@ -211,13 +211,29 @@ Deny - - Delete %1$d file? - Delete %1$d files? - %1$d selected %1$d selected + + + Delete \"%1$s\"? + + Delete folder \"%1$s\" and its contents? + + + Delete %1$d file? + Delete %1$d files? + + + + Delete %1$d folder and its contents? + Delete %1$d folders and their contents? + + + + Delete %1$d item? + Delete %1$d items? + diff --git a/packages/DocumentsUI/src/com/android/documentsui/dirlist/DirectoryFragment.java b/packages/DocumentsUI/src/com/android/documentsui/dirlist/DirectoryFragment.java index 63a834f85274..60e4b9abd4fe 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/dirlist/DirectoryFragment.java +++ b/packages/DocumentsUI/src/com/android/documentsui/dirlist/DirectoryFragment.java @@ -688,6 +688,39 @@ public class DirectoryFragment extends Fragment }.execute(selected); } + private String generateDeleteMessage(final List docs) { + String message; + int dirsCount = 0; + + for (DocumentInfo doc : docs) { + if (doc.isDirectory()) { + ++dirsCount; + } + } + + if (docs.size() == 1) { + // Deleteing 1 file xor 1 folder in cwd + message = dirsCount == 0 + ? getActivity().getString(R.string.delete_filename_confirmation_message, + docs.get(0).displayName) + : getActivity().getString(R.string.delete_foldername_confirmation_message, + docs.get(0).displayName); + } else if (dirsCount == 0) { + // Deleting only files in cwd + message = Shared.getQuantityString(getActivity(), + R.plurals.delete_files_confirmation_message, docs.size()); + } else if (dirsCount == docs.size()) { + // Deleting only folders in cwd + message = Shared.getQuantityString(getActivity(), + R.plurals.delete_folders_confirmation_message, docs.size()); + } else { + // Deleting mixed items (files and folders) in cwd + message = Shared.getQuantityString(getActivity(), + R.plurals.delete_items_confirmation_message, docs.size()); + } + return message; + } + private void deleteDocuments(final Selection selected) { assert(!selected.isEmpty()); @@ -698,11 +731,7 @@ public class DirectoryFragment extends Fragment TextView message = (TextView) mInflater.inflate(R.layout.dialog_delete_confirmation, null); - message.setText( - Shared.getQuantityString( - getActivity(), - R.plurals.delete_confirmation_message, - docs.size())); + message.setText(generateDeleteMessage(docs)); // This "insta-hides" files that are being deleted, because // the delete operation may be not execute immediately (it -- 2.11.0