From fc5143734e2e90e11a493d64cd0007d8a3c238a0 Mon Sep 17 00:00:00 2001 From: iNPUTmice Date: Tue, 15 Jul 2014 19:41:58 +0200 Subject: added confirm dialog before contact and bookmark removal --- res/values/strings.xml | 3 +- .../services/XmppConnectionService.java | 1 - .../siacs/conversations/ui/StartConversation.java | 58 ++++++++++++++++++---- 3 files changed, 50 insertions(+), 12 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index a41dcd59..23972d3c 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -37,7 +37,8 @@ Participant Visitor Enter a new name: - Do you want to delete %s from your roster? The conversation associated with this account will not be removed. + Would you like to remove %s from your roster? The conversation associated with this contact will not be removed. + Would you like to remove %s as a bookmark? The conversation associated with this bookmark will not be removed. The server %s presented you with an untrusted, possible self signed, certificate. Server Info Register new account on server diff --git a/src/eu/siacs/conversations/services/XmppConnectionService.java b/src/eu/siacs/conversations/services/XmppConnectionService.java index 3b1cec62..770f9c86 100644 --- a/src/eu/siacs/conversations/services/XmppConnectionService.java +++ b/src/eu/siacs/conversations/services/XmppConnectionService.java @@ -953,7 +953,6 @@ public class XmppConnectionService extends Service { mDateFormat.format(date)); } packet.addChild(x); - Log.d(LOGTAG,packet.toString()); sendPresencePacket(account, packet); } diff --git a/src/eu/siacs/conversations/ui/StartConversation.java b/src/eu/siacs/conversations/ui/StartConversation.java index 88714dab..da6c967b 100644 --- a/src/eu/siacs/conversations/ui/StartConversation.java +++ b/src/eu/siacs/conversations/ui/StartConversation.java @@ -12,6 +12,8 @@ import android.app.Fragment; import android.app.FragmentTransaction; import android.app.ListFragment; import android.content.Context; +import android.content.DialogInterface; +import android.content.DialogInterface.OnClickListener; import android.os.Bundle; import android.support.v13.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; @@ -225,7 +227,9 @@ public class StartConversation extends XmppActivity { .findOrCreateConversation(bookmark.getAccount(), bookmark.getJid(), true); conversation.setBookmark(bookmark); - xmppConnectionService.joinMuc(conversation); + if (!conversation.getMucOptions().online()) { + xmppConnectionService.joinMuc(conversation); + } if (!bookmark.autojoin()) { bookmark.setAutojoin(true); xmppConnectionService.pushBookmarks(bookmark.getAccount()); @@ -241,18 +245,47 @@ public class StartConversation extends XmppActivity { protected void deleteContact() { int position = contact_context_id; - Contact contact = (Contact) contacts.get(position); - xmppConnectionService.deleteContactOnServer(contact); - filter(mSearchEditText.getText().toString()); + final Contact contact = (Contact) contacts.get(position); + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setNegativeButton(R.string.cancel, null); + builder.setTitle(R.string.action_delete_contact); + builder.setMessage( + getString(R.string.remove_contact_text, + contact.getJid())); + builder.setPositiveButton(R.string.delete,new OnClickListener() { + + @Override + public void onClick(DialogInterface dialog, int which) { + xmppConnectionService.deleteContactOnServer(contact); + filter(mSearchEditText.getText().toString()); + } + }); + builder.create().show(); + } protected void deleteConference() { int position = conference_context_id; - Bookmark bookmark = (Bookmark) conferences.get(position); - Account account = bookmark.getAccount(); - account.getBookmarks().remove(bookmark); - xmppConnectionService.pushBookmarks(account); - filter(mSearchEditText.getText().toString()); + final Bookmark bookmark = (Bookmark) conferences.get(position); + + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setNegativeButton(R.string.cancel, null); + builder.setTitle(R.string.delete_bookmark); + builder.setMessage( + getString(R.string.remove_bookmark_text, + bookmark.getJid())); + builder.setPositiveButton(R.string.delete,new OnClickListener() { + + @Override + public void onClick(DialogInterface dialog, int which) { + Account account = bookmark.getAccount(); + account.getBookmarks().remove(bookmark); + xmppConnectionService.pushBookmarks(account); + filter(mSearchEditText.getText().toString()); + } + }); + builder.create().show(); + } protected void showCreateContactDialog() { @@ -342,13 +375,18 @@ public class StartConversation extends XmppActivity { .findOrCreateConversation(account, conferenceJid, true); conversation.setBookmark(bookmark); - xmppConnectionService.joinMuc(conversation); + if (!conversation.getMucOptions().online()) { + xmppConnectionService.joinMuc(conversation); + } switchToConversation(conversation); } } else { Conversation conversation = xmppConnectionService .findOrCreateConversation(account, conferenceJid, true); + if (!conversation.getMucOptions().online()) { + xmppConnectionService.joinMuc(conversation); + } switchToConversation(conversation); } } else { -- cgit v1.2.3