From a582d44dbac87e546254de9daa6810663ca7f10a Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Tue, 20 May 2014 10:15:47 +0200 Subject: added search icon --- res/drawable-hdpi/ic_action_search.png | Bin 0 -> 702 bytes res/drawable-mdpi/ic_action_search.png | Bin 0 -> 479 bytes res/drawable-xhdpi/ic_action_search.png | Bin 0 -> 900 bytes res/drawable-xxhdpi/ic_action_search.png | Bin 0 -> 1153 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 res/drawable-hdpi/ic_action_search.png create mode 100644 res/drawable-mdpi/ic_action_search.png create mode 100644 res/drawable-xhdpi/ic_action_search.png create mode 100644 res/drawable-xxhdpi/ic_action_search.png diff --git a/res/drawable-hdpi/ic_action_search.png b/res/drawable-hdpi/ic_action_search.png new file mode 100644 index 000000000..f594b4e48 Binary files /dev/null and b/res/drawable-hdpi/ic_action_search.png differ diff --git a/res/drawable-mdpi/ic_action_search.png b/res/drawable-mdpi/ic_action_search.png new file mode 100644 index 000000000..2e446ec03 Binary files /dev/null and b/res/drawable-mdpi/ic_action_search.png differ diff --git a/res/drawable-xhdpi/ic_action_search.png b/res/drawable-xhdpi/ic_action_search.png new file mode 100644 index 000000000..aad535e97 Binary files /dev/null and b/res/drawable-xhdpi/ic_action_search.png differ diff --git a/res/drawable-xxhdpi/ic_action_search.png b/res/drawable-xxhdpi/ic_action_search.png new file mode 100644 index 000000000..9c0ea3ca0 Binary files /dev/null and b/res/drawable-xxhdpi/ic_action_search.png differ -- cgit v1.2.3 From 8f92d8d109e2d62816c5d3fe1b9d21ab4802ccc8 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Tue, 20 May 2014 10:48:07 +0200 Subject: ported pending subscription support to new roster mgmt --- src/eu/siacs/conversations/entities/Contact.java | 1 + .../conversations/services/XmppConnectionService.java | 19 +++---------------- src/eu/siacs/conversations/xmpp/XmppConnection.java | 13 +------------ 3 files changed, 5 insertions(+), 28 deletions(-) diff --git a/src/eu/siacs/conversations/entities/Contact.java b/src/eu/siacs/conversations/entities/Contact.java index ff1459a50..22e2661bf 100644 --- a/src/eu/siacs/conversations/entities/Contact.java +++ b/src/eu/siacs/conversations/entities/Contact.java @@ -286,5 +286,6 @@ public class Contact { public static final int ASKING = 2; public static final int PREEMPTIVE_GRANT = 4; public static final int IN_ROSTER = 8; + public static final int PENDING_SUBSCRIPTION_REQUEST = 16; } } diff --git a/src/eu/siacs/conversations/services/XmppConnectionService.java b/src/eu/siacs/conversations/services/XmppConnectionService.java index 35e5fb514..9ea7f2b1f 100644 --- a/src/eu/siacs/conversations/services/XmppConnectionService.java +++ b/src/eu/siacs/conversations/services/XmppConnectionService.java @@ -303,12 +303,6 @@ public class XmppConnectionService extends Service { } else { Contact contact = account.getRoster().getContact( packet.getFrom()); - /* - * if (contact == null) { if ("subscribe".equals(type)) { - * account.getXmppConnection().addPendingSubscription( - * fromParts[0]); } else { // Log.d(LOGTAG,packet.getFrom()+ - * // " could not be found"); } return; } - */ if (type == null) { if (fromParts.length == 2) { contact.updatePresence(fromParts[1], Presences @@ -327,12 +321,6 @@ public class XmppConnectionService extends Service { } contact.setPgpKeyId(pgp.fetchKeyId(account, msg, x.getContent())); - Log.d("xmppService", - account.getJid() - + ": fetched key id for " - + contact.getJid() - + " was:" - + contact.getPgpKeyId()); } } } else { @@ -357,8 +345,7 @@ public class XmppConnectionService extends Service { requestPresenceUpdatesFrom(contact); } } else { - account.getXmppConnection().addPendingSubscription( - fromParts[0]); + contact.setOption(Contact.Options.PENDING_SUBSCRIPTION_REQUEST); } } else { // Log.d(LOGTAG, packet.toString()); @@ -1198,8 +1185,7 @@ public class XmppConnectionService extends Service { pushContactToServer(contact); if (autoGrant) { requestPresenceUpdatesFrom(contact); - if (contact.getAccount().getXmppConnection().hasPendingSubscription( - contact.getJid())) { + if (contact.getOption(Contact.Options.PENDING_SUBSCRIPTION_REQUEST)) { Log.d("xmppService", "contact had pending subscription"); sendPresenceUpdatesTo(contact); } @@ -1260,6 +1246,7 @@ public class XmppConnectionService extends Service { packet.setAttribute("from", contact.getAccount().getJid()); Log.d(LOGTAG, packet.toString()); contact.getAccount().getXmppConnection().sendPresencePacket(packet); + contact.resetOption(Contact.Options.PENDING_SUBSCRIPTION_REQUEST); } public void sendPresence(Account account) { diff --git a/src/eu/siacs/conversations/xmpp/XmppConnection.java b/src/eu/siacs/conversations/xmpp/XmppConnection.java index 58e110d6d..23613cd5b 100644 --- a/src/eu/siacs/conversations/xmpp/XmppConnection.java +++ b/src/eu/siacs/conversations/xmpp/XmppConnection.java @@ -74,9 +74,7 @@ public class XmppConnection implements Runnable { private boolean shouldAuthenticate = true; private Element streamFeatures; private HashMap> disco = new HashMap>(); - - private HashSet pendingSubscriptions = new HashSet(); - + private String streamId = null; private int smVersion = 3; @@ -904,15 +902,6 @@ public class XmppConnection implements Runnable { return findDiscoItemByFeature("http://jabber.org/protocol/muc"); } - public boolean hasPendingSubscription(String jid) { - return this.pendingSubscriptions.contains(jid); - } - - public void addPendingSubscription(String jid) { - Log.d(LOGTAG,"adding "+jid+" to pending subscriptions"); - this.pendingSubscriptions.add(jid); - } - public int getTimeToNextAttempt() { int interval = (int) (25 * Math.pow(1.5,attempt)); int secondsSinceLast = (int) ((SystemClock.elapsedRealtime() - this.lastConnect) / 1000); -- cgit v1.2.3 From 13f9f23946a1e8260b92c6006d0f7981fff8d35c Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Tue, 20 May 2014 11:05:03 +0200 Subject: fixed ping time out after session resume --- src/eu/siacs/conversations/xmpp/XmppConnection.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/eu/siacs/conversations/xmpp/XmppConnection.java b/src/eu/siacs/conversations/xmpp/XmppConnection.java index 23613cd5b..0ba9677ac 100644 --- a/src/eu/siacs/conversations/xmpp/XmppConnection.java +++ b/src/eu/siacs/conversations/xmpp/XmppConnection.java @@ -259,6 +259,7 @@ public class XmppConnection implements Runnable { RequestPacket r = new RequestPacket(smVersion); tagWriter.writeStanzaAsync(r); } else if (nextTag.isStart("resumed")) { + lastPaketReceived = SystemClock.elapsedRealtime(); Log.d(LOGTAG,account.getJid()+": session resumed"); tagReader.readElement(nextTag); sendPing(); -- cgit v1.2.3 From f79d92ab67206254df1c0c348898d60c3a741e0e Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Tue, 20 May 2014 11:44:43 +0200 Subject: highlight people in conferences by clicken on their picture --- .../conversations/ui/ConversationFragment.java | 41 ++++++++++++++-------- 1 file changed, 27 insertions(+), 14 deletions(-) diff --git a/src/eu/siacs/conversations/ui/ConversationFragment.java b/src/eu/siacs/conversations/ui/ConversationFragment.java index b551e6adc..7ab019361 100644 --- a/src/eu/siacs/conversations/ui/ConversationFragment.java +++ b/src/eu/siacs/conversations/ui/ConversationFragment.java @@ -392,20 +392,17 @@ public class ConversationFragment extends Fragment { if (type == RECIEVED) { if (item.getConversation().getMode() == Conversation.MODE_MULTI) { - if (item.getCounterpart() != null) { - viewHolder.contact_picture - .setImageBitmap(mBitmapCache.get(item - .getCounterpart(), null, - getActivity() - .getApplicationContext())); - } else { - viewHolder.contact_picture - .setImageBitmap(mBitmapCache.get( - item.getConversation().getName( - useSubject), null, - getActivity() - .getApplicationContext())); - } + viewHolder.contact_picture.setImageBitmap(mBitmapCache + .get(item.getCounterpart(), null, getActivity() + .getApplicationContext())); + viewHolder.contact_picture + .setOnClickListener(new OnClickListener() { + + @Override + public void onClick(View v) { + highlightInConference(item.getCounterpart()); + } + }); } } @@ -461,6 +458,22 @@ public class ConversationFragment extends Fragment { return view; } + protected void highlightInConference(String nick) { + if (chatMsg.getText().toString().isEmpty()) { + chatMsg.setText(nick+": "); + } else { + String oldString = chatMsg.getText().toString(); + if (oldString.endsWith(" ")) { + chatMsg.setText(oldString+nick+" "); + } else { + chatMsg.setText(oldString+" "+nick+" "); + } + } + int position = chatMsg.length(); + Editable etext = chatMsg.getText(); + Selection.setSelection(etext, position); + } + protected Bitmap findSelfPicture() { SharedPreferences sharedPref = PreferenceManager .getDefaultSharedPreferences(getActivity() -- cgit v1.2.3