Fixes FS#229: prompt for confirmation before deleting a file
This commit is contained in:
parent
ad096f4bfd
commit
14e28d1e9a
4 changed files with 41 additions and 9 deletions
|
@ -68,6 +68,7 @@ import de.thedevstack.conversationsplus.ui.adapter.MessageAdapter;
|
|||
import de.thedevstack.conversationsplus.ui.adapter.MessageAdapter.OnContactPictureClicked;
|
||||
import de.thedevstack.conversationsplus.ui.adapter.MessageAdapter.OnContactPictureLongClicked;
|
||||
import de.thedevstack.conversationsplus.ui.listeners.ConversationSwipeRefreshListener;
|
||||
import de.thedevstack.conversationsplus.ui.listeners.DeleteFileCallback;
|
||||
import de.thedevstack.conversationsplus.ui.listeners.SimpleUserDecisionCallback;
|
||||
import de.thedevstack.conversationsplus.ui.listeners.UserDecisionListener;
|
||||
import de.thedevstack.conversationsplus.utils.GeoHelper;
|
||||
|
@ -588,7 +589,7 @@ public class ConversationFragment extends Fragment implements EditMessage.Keyboa
|
|||
public boolean onContextItemSelected(MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
case R.id.msg_ctx_menu_delete_remote_file:
|
||||
new SimpleConfirmDialog(getActivity(), "Are you sure?", new DeleteRemoteFileService(selectedMessage)).show();
|
||||
new SimpleConfirmDialog(getActivity(), R.string.cplus_are_you_sure, new DeleteRemoteFileService(selectedMessage)).show();
|
||||
return true;
|
||||
case R.id.msg_ctx_mnu_details:
|
||||
new MessageDetailsDialog(getActivity(), selectedMessage).show();
|
||||
|
@ -615,7 +616,7 @@ public class ConversationFragment extends Fragment implements EditMessage.Keyboa
|
|||
retryDecryption(selectedMessage);
|
||||
return true;
|
||||
case R.id.delete_file:
|
||||
deleteFile(selectedMessage);
|
||||
new SimpleConfirmDialog(getActivity(), R.string.cplus_are_you_sure, new DeleteFileCallback(selectedMessage)).show();
|
||||
return true;
|
||||
default:
|
||||
return super.onContextItemSelected(item);
|
||||
|
@ -654,13 +655,6 @@ public class ConversationFragment extends Fragment implements EditMessage.Keyboa
|
|||
}
|
||||
}
|
||||
|
||||
private void deleteFile(Message message) {
|
||||
if (FileBackend.deleteFile(message, activity.xmppConnectionService)) {
|
||||
message.setTransferable(new TransferablePlaceholder(Transferable.STATUS_DELETED));
|
||||
activity.xmppConnectionService.updateConversationUi();
|
||||
}
|
||||
}
|
||||
|
||||
private void resendMessage(Message message) {
|
||||
if (message.getType() == Message.TYPE_FILE || message.getType() == Message.TYPE_IMAGE) {
|
||||
DownloadableFile file = FileBackend.getFile(message);
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
package de.thedevstack.conversationsplus.ui.listeners;
|
||||
|
||||
import de.thedevstack.conversationsplus.entities.Message;
|
||||
import de.thedevstack.conversationsplus.entities.Transferable;
|
||||
import de.thedevstack.conversationsplus.entities.TransferablePlaceholder;
|
||||
import de.thedevstack.conversationsplus.persistance.FileBackend;
|
||||
import de.thedevstack.conversationsplus.utils.UiUpdateHelper;
|
||||
import de.thedevstack.conversationsplus.utils.XmppConnectionServiceAccessor;
|
||||
|
||||
/**
|
||||
* Created by steckbrief on 23.08.2016.
|
||||
*/
|
||||
public class DeleteFileCallback implements SimpleUserDecisionCallback {
|
||||
private final Message message;
|
||||
|
||||
public DeleteFileCallback(Message message) {
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
private void deleteFile() {
|
||||
if (FileBackend.deleteFile(this.message, XmppConnectionServiceAccessor.xmppConnectionService)) {
|
||||
this.message.setTransferable(new TransferablePlaceholder(Transferable.STATUS_DELETED));
|
||||
UiUpdateHelper.updateConversationUi();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onYes() {
|
||||
this.deleteFile();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNo() {
|
||||
// Nothing to do
|
||||
}
|
||||
}
|
|
@ -634,4 +634,5 @@
|
|||
<string name="no_keys_just_confirm">Du vertraust diesem Kontakt bereits. Durch Auswählen von \"Fertig\" bestätigst du, dass %s Teil dieser Konferenz ist.</string>
|
||||
<string name="select_image_and_crop">Bild auswählen und zuschneiden</string>
|
||||
<string name="this_account_is_disabled">Du hast diesen Account deaktiviert</string>
|
||||
<string name="cplus_are_you_sure">Bist du dir sicher?</string>
|
||||
</resources>
|
||||
|
|
|
@ -675,4 +675,5 @@
|
|||
<string name="no_application_to_share_uri">No application found to share URI</string>
|
||||
<string name="share_uri_with">Share URI with…</string>
|
||||
<string name="delete_remote_file_x">Delete remote file</string>
|
||||
<string name="cplus_are_you_sure">Are you sure?</string>
|
||||
</resources>
|
||||
|
|
Loading…
Reference in a new issue