diff --git a/gen/de/gultsch/chat/R.java b/gen/de/gultsch/chat/R.java index 982b1e2ed..112e0de06 100644 --- a/gen/de/gultsch/chat/R.java +++ b/gen/de/gultsch/chat/R.java @@ -41,8 +41,9 @@ public final class R { } public static final class id { public static final int account_confirm_password_desc=0x7f0a0011; - public static final int account_disable=0x7f0a002c; - public static final int account_enable=0x7f0a002d; + public static final int account_delete=0x7f0a002c; + public static final int account_disable=0x7f0a002d; + public static final int account_enable=0x7f0a002e; public static final int account_jid=0x7f0a0000; public static final int account_list=0x7f0a0021; public static final int account_password=0x7f0a000f; diff --git a/res/menu/manageaccounts_context.xml b/res/menu/manageaccounts_context.xml index 30ba747d0..2adc45df2 100644 --- a/res/menu/manageaccounts_context.xml +++ b/res/menu/manageaccounts_context.xml @@ -1,6 +1,8 @@ - diff --git a/src/de/gultsch/chat/entities/Account.java b/src/de/gultsch/chat/entities/Account.java index 6f8daf8d0..f94f7b486 100644 --- a/src/de/gultsch/chat/entities/Account.java +++ b/src/de/gultsch/chat/entities/Account.java @@ -59,15 +59,9 @@ public class Account extends AbstractEntity{ public void setOption(int option, boolean value) { if (value) { - Log.d("xmppService","options: "+options); this.options = (this.options | 1 << option); - Log.d("xmppService","setting option "+option+" to 1"); - Log.d("xmppService","options: "+options); } else { - Log.d("xmppService","options: "+options); - Log.d("xmppService","setting option "+option+" to 0"); this.options = (this.options ^ 1 << option); - Log.d("xmppService","options: "+options); } } diff --git a/src/de/gultsch/chat/ui/ConversationActivity.java b/src/de/gultsch/chat/ui/ConversationActivity.java index 29d4d65c5..ca9bedf72 100644 --- a/src/de/gultsch/chat/ui/ConversationActivity.java +++ b/src/de/gultsch/chat/ui/ConversationActivity.java @@ -12,6 +12,7 @@ import de.gultsch.chat.utils.UIHelper; import android.net.Uri; import android.os.Bundle; import android.app.FragmentTransaction; +import android.app.NotificationManager; import android.content.Context; import android.content.Intent; import android.support.v4.widget.SlidingPaneLayout; @@ -278,6 +279,12 @@ public class ConversationActivity extends XmppActivity { return super.onKeyDown(keyCode, event); } + public void onStart() { + super.onStart(); + NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); + nm.cancelAll(); + } + @Override protected void onPause() { super.onPause(); diff --git a/src/de/gultsch/chat/ui/EditAccount.java b/src/de/gultsch/chat/ui/EditAccount.java index f8d709814..4da89b7f8 100644 --- a/src/de/gultsch/chat/ui/EditAccount.java +++ b/src/de/gultsch/chat/ui/EditAccount.java @@ -29,8 +29,6 @@ public class EditAccount extends DialogFragment { public interface EditAccountListener { public void onAccountEdited(Account account); - - public void onAccountDelete(Account account); } protected EditAccountListener listener = null; @@ -92,27 +90,6 @@ public class EditAccount extends DialogFragment { usernameText.setText(account.getUsername()); serverText.setText(account.getServer()); okButtonDesc = "Edit"; - /*builder.setNegativeButton("Delete Account", new OnClickListener() { - - @Override - public void onClick(DialogInterface dialog, int which) { - AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); - builder.setTitle("Are you sure?"); - builder.setIconAttribute(android.R.attr.alertDialogIcon); - builder.setMessage("If you delete your account your entire conversation history will be lost"); - builder.setPositiveButton("Delete", new OnClickListener() { - - @Override - public void onClick(DialogInterface dialog, int which) { - if (listener!=null) { - listener.onAccountDelete(account); - } - } - }); - builder.setNegativeButton("Cancel",null); - builder.create().show(); - } - });*/ } else { builder.setTitle("Add account"); okButtonDesc = "Add"; diff --git a/src/de/gultsch/chat/ui/ManageAccountActivity.java b/src/de/gultsch/chat/ui/ManageAccountActivity.java index 33469acd5..2f0bb1a01 100644 --- a/src/de/gultsch/chat/ui/ManageAccountActivity.java +++ b/src/de/gultsch/chat/ui/ManageAccountActivity.java @@ -9,6 +9,8 @@ import de.gultsch.chat.ui.EditAccount.EditAccountListener; import android.app.Activity; import android.app.AlertDialog; import android.content.Context; +import android.content.DialogInterface; +import android.content.DialogInterface.OnClickListener; import android.content.Intent; import android.os.Bundle; import android.util.Log; @@ -122,11 +124,6 @@ public class ManageAccountActivity extends XmppActivity implements ActionMode.Ca public void onAccountEdited(Account account) { xmppConnectionService.updateAccount(account); } - - @Override - public void onAccountDelete(Account account) { - xmppConnectionService.deleteAccount(account); - } }); dialog.show(getFragmentManager(), "edit_account"); } else { @@ -177,7 +174,6 @@ public class ManageAccountActivity extends XmppActivity implements ActionMode.Ca @Override public boolean onCreateOptionsMenu(Menu menu) { - // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.manageaccounts, menu); return true; } @@ -207,17 +203,12 @@ public class ManageAccountActivity extends XmppActivity implements ActionMode.Ca xmppConnectionService.createAccount(account); activity.getActionBar().setDisplayHomeAsUpEnabled(true); } - - @Override - public void onAccountDelete(Account account) { - // this will never be called - } }); dialog.show(getFragmentManager(), "add_account"); } @Override - public boolean onActionItemClicked(ActionMode mode, MenuItem item) { + public boolean onActionItemClicked(final ActionMode mode, MenuItem item) { if (item.getItemId()==R.id.account_disable) { selectedAccountForActionMode.setOption(Account.OPTION_DISABLED, true); xmppConnectionService.updateAccount(selectedAccountForActionMode); @@ -226,6 +217,22 @@ public class ManageAccountActivity extends XmppActivity implements ActionMode.Ca selectedAccountForActionMode.setOption(Account.OPTION_DISABLED, false); xmppConnectionService.updateAccount(selectedAccountForActionMode); mode.finish(); + } else if (item.getItemId()==R.id.account_delete) { + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setTitle("Are you sure?"); + builder.setIconAttribute(android.R.attr.alertDialogIcon); + builder.setMessage("If you delete your account your entire conversation history will be lost"); + builder.setPositiveButton("Delete", new OnClickListener() { + + @Override + public void onClick(DialogInterface dialog, int which) { + xmppConnectionService.deleteAccount(selectedAccountForActionMode); + selectedAccountForActionMode = null; + mode.finish(); + } + }); + builder.setNegativeButton("Cancel",null); + builder.create().show(); } return true; } diff --git a/src/de/gultsch/chat/utils/UIHelper.java b/src/de/gultsch/chat/utils/UIHelper.java index c1bc74703..1c7a568ea 100644 --- a/src/de/gultsch/chat/utils/UIHelper.java +++ b/src/de/gultsch/chat/utils/UIHelper.java @@ -84,6 +84,7 @@ public class UIHelper { mBuilder.setContentTitle(conversation.getName()); mBuilder.setContentText(conversation.getLatestMessage()); mBuilder.setSmallIcon(R.drawable.notification); + mBuilder.setLights(0xffffffff, 2000, 4000); if (ringtone!=null) { mBuilder.setSound(Uri.parse(ringtone)); } diff --git a/src/de/gultsch/chat/xmpp/XmppConnection.java b/src/de/gultsch/chat/xmpp/XmppConnection.java index e86bb66c9..a72546246 100644 --- a/src/de/gultsch/chat/xmpp/XmppConnection.java +++ b/src/de/gultsch/chat/xmpp/XmppConnection.java @@ -141,6 +141,9 @@ public class XmppConnection implements Runnable { Element failure = tagReader.readElement(nextTag); Log.d(LOGTAG,"read failure element"+failure.toString()); account.setStatus(Account.STATUS_UNAUTHORIZED); + if (statusListener!=null) { + statusListener.onStatusChanged(account); + } tagWriter.writeTag(Tag.end("stream")); } else if (nextTag.isStart("iq")) { processIq(nextTag);