added confirm dialog before contact and bookmark removal

This commit is contained in:
iNPUTmice 2014-07-15 19:41:58 +02:00
parent ed4d0d38e3
commit fc5143734e
3 changed files with 50 additions and 12 deletions

View File

@ -37,7 +37,8 @@
<string name="participant">Participant</string> <string name="participant">Participant</string>
<string name="visitor">Visitor</string> <string name="visitor">Visitor</string>
<string name="enter_new_name">Enter a new name:</string> <string name="enter_new_name">Enter a new name:</string>
<string name="remove_contact_text">Do you want to delete %s from your roster? The conversation associated with this account will not be removed.</string> <string name="remove_contact_text">Would you like to remove %s from your roster? The conversation associated with this contact will not be removed.</string>
<string name="remove_bookmark_text">Would you like to remove %s as a bookmark? The conversation associated with this bookmark will not be removed.</string>
<string name="untrusted_cert_hint">The server %s presented you with an untrusted, possible self signed, certificate.</string> <string name="untrusted_cert_hint">The server %s presented you with an untrusted, possible self signed, certificate.</string>
<string name="account_info">Server Info</string> <string name="account_info">Server Info</string>
<string name="register_account">Register new account on server</string> <string name="register_account">Register new account on server</string>

View File

@ -953,7 +953,6 @@ public class XmppConnectionService extends Service {
mDateFormat.format(date)); mDateFormat.format(date));
} }
packet.addChild(x); packet.addChild(x);
Log.d(LOGTAG,packet.toString());
sendPresencePacket(account, packet); sendPresencePacket(account, packet);
} }

View File

@ -12,6 +12,8 @@ import android.app.Fragment;
import android.app.FragmentTransaction; import android.app.FragmentTransaction;
import android.app.ListFragment; import android.app.ListFragment;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle; import android.os.Bundle;
import android.support.v13.app.FragmentPagerAdapter; import android.support.v13.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager;
@ -225,7 +227,9 @@ public class StartConversation extends XmppActivity {
.findOrCreateConversation(bookmark.getAccount(), .findOrCreateConversation(bookmark.getAccount(),
bookmark.getJid(), true); bookmark.getJid(), true);
conversation.setBookmark(bookmark); conversation.setBookmark(bookmark);
xmppConnectionService.joinMuc(conversation); if (!conversation.getMucOptions().online()) {
xmppConnectionService.joinMuc(conversation);
}
if (!bookmark.autojoin()) { if (!bookmark.autojoin()) {
bookmark.setAutojoin(true); bookmark.setAutojoin(true);
xmppConnectionService.pushBookmarks(bookmark.getAccount()); xmppConnectionService.pushBookmarks(bookmark.getAccount());
@ -241,18 +245,47 @@ public class StartConversation extends XmppActivity {
protected void deleteContact() { protected void deleteContact() {
int position = contact_context_id; int position = contact_context_id;
Contact contact = (Contact) contacts.get(position); final Contact contact = (Contact) contacts.get(position);
xmppConnectionService.deleteContactOnServer(contact); AlertDialog.Builder builder = new AlertDialog.Builder(this);
filter(mSearchEditText.getText().toString()); 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() { protected void deleteConference() {
int position = conference_context_id; int position = conference_context_id;
Bookmark bookmark = (Bookmark) conferences.get(position); final Bookmark bookmark = (Bookmark) conferences.get(position);
Account account = bookmark.getAccount();
account.getBookmarks().remove(bookmark); AlertDialog.Builder builder = new AlertDialog.Builder(this);
xmppConnectionService.pushBookmarks(account); builder.setNegativeButton(R.string.cancel, null);
filter(mSearchEditText.getText().toString()); 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() { protected void showCreateContactDialog() {
@ -342,13 +375,18 @@ public class StartConversation extends XmppActivity {
.findOrCreateConversation(account, .findOrCreateConversation(account,
conferenceJid, true); conferenceJid, true);
conversation.setBookmark(bookmark); conversation.setBookmark(bookmark);
xmppConnectionService.joinMuc(conversation); if (!conversation.getMucOptions().online()) {
xmppConnectionService.joinMuc(conversation);
}
switchToConversation(conversation); switchToConversation(conversation);
} }
} else { } else {
Conversation conversation = xmppConnectionService Conversation conversation = xmppConnectionService
.findOrCreateConversation(account, .findOrCreateConversation(account,
conferenceJid, true); conferenceJid, true);
if (!conversation.getMucOptions().online()) {
xmppConnectionService.joinMuc(conversation);
}
switchToConversation(conversation); switchToConversation(conversation);
} }
} else { } else {