1
0
Fork 0
mirror of https://github.com/vanitasvitae/Smack.git synced 2024-11-10 14:16:00 +01:00
Commit graph

370 commits

Author SHA1 Message Date
Florian Schmaus
d07ed60737 Add support for "Caps Optimizations"
Smack's previous entity caps implementation assumed that an entity lost
its entity caps feature as soon as a presence without caps from that
entity was received. But according to XEP-0115 § 8.4, this is a
perfectly normal optimization technique. We now reset the caps state
after an available presence becomes unavailable.

Also introduce PresenceEventListener, which is required for this
feature.

Also make Roster.preApprove() take a BareJid as argument.

Fixes SMACK-723.
2016-06-30 17:01:46 +02:00
Florian Schmaus
60b07b1d67 Make DiscoverInfoProvider namespace aware
Some servers respond to disco#info requests with

<iq id='npGtO-21' type='result' to='phone@xxx/MAXS' from='xxx'>
<query xmlns='http://jabber.org/protocol/disco#info'>
<identity type='pep' name='Prosody' category='pubsub'/>
<identity type='im' name='Prosody' category='server'/>
<feature var='urn:xmpp:blocking'/>
<feature var='urn:xmpp:carbons:2'/>
<feature var='urn:xmpp:carbons:1'/>
<feature var='vcard-temp'/>
<feature var='http://jabber.org/protocol/commands'/>
<feature var='urn:xmpp:mam:0'/>
<feature var='jabber:iq:private'/>
<feature var='http://jabber.org/protocol/pubsub#publish'/>
<feature var='http://jabber.org/protocol/disco#info'/>
<feature var='http://jabber.org/protocol/disco#items'/>
<feature var='urn:xmpp:ping'/>
<feature var='msgoffline'/>
<feature var='jabber:iq:roster'/>
<feature var='urn:xmpp:archive:auto'/>
<feature var='urn:xmpp:archive:manage'/>
<feature var='urn:xmpp:archive:pref'/>
<feature var='http://jabber.org/protocol/rsm'/>
<feature xmlns='urn:xmpp:archive'><optional><default/></optional></feature>
</query></iq>

Note the

<feature
xmlns='urn:xmpp:archive'><optional><default/></optional></feature>

which will cause the current parser implementation to parse it as
DiscoInfo Feature resulting in an Exception because some attributes are
missing.

This commit prevents this.
2016-06-03 10:59:10 +02:00
Florian Schmaus
3bd35ecb1a Do not fully qualify type in javadoc 2016-06-03 10:59:10 +02:00
UltimateZero
df0f805feb Use empty string nick on empty element tag
It will use an empty string in case of an empty element tag.
2016-05-31 08:10:31 +02:00
Florian Schmaus
86e11e69e8 Add Message.toString() providing a short description 2016-05-25 22:58:34 +02:00
Florian Schmaus
3251fe89e2 Fix ChatStateListener javadoc 2016-04-16 00:25:09 +02:00
Florian Schmaus
9b250475ec Disable AccountManager over insecure connections
SMACK-644
2016-04-14 23:19:55 +02:00
Florian Schmaus
0afbee55e0 Improve the Message Correction
add missing provider registration and improve a few bits here and there.

SMACK-714
2016-04-14 22:47:12 +02:00
ramabit
ca58c65a26 Implement Last Message Correction (XEP-0308)
Fixes SMACK-714
2016-04-14 22:31:56 +02:00
Florian Schmaus
b94b2586e2 Smack 4.1.7
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQF8BAABCgBmBQJXD/2lXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
 ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQxMzU3QjAxODY1QjI1MDNDMTg0NTNEMjA4
 Q0FDMkE5Njc4NTQ4RTM1AAoJEIysKpZ4VI41rggH/0DjBLpCfTSdjjKGFNChc+1V
 dW9PaPGFUiPuTt3T2NEa74jGYe4PsPpy5zDsJ8uYi2aq3LAiCQvfk+F5LXjRJFoa
 eftz0GtPvfP42oFg8wyDAebFtb0OtE7aJueSRkYGhA1+kzHBbJ9s6TxqDWcB0UWC
 puLh/DEWDFGX5njln+l10O7b10G0+bSrvece22eP0sQIv4hvZJoPQ5rOpCR1wibL
 ldp6wXI6C/b/oQS9MjHq9SV10S+5GykBqN/UzcFnwRVHLbasqnXeNFLGOnMtx0g9
 DmOolAYKGBN5m7m0rqEj9R+OyNgtefV8sCHE69iNAlpQhbmTqPd5rIhIXIII4U4=
 =yWKV
 -----END PGP SIGNATURE-----

Merge tag '4.1.7'

Smack 4.1.7
2016-04-14 22:30:34 +02:00
Craig
189982a9ba Fixed documentation in PayloadItem.java and ItemsExtension.java
Made the formatting similar to that in Item.java
2016-04-08 22:54:18 +02:00
Florian Schmaus
bcdfb5398a Fix EntityTimeManager.getTime(): Set recipient JID
Fixes SMACK-716
2016-02-17 09:13:06 +01:00
Florian Schmaus
f571b6ef5b Verify Bytestream constructor arguments 2016-02-10 12:37:45 +01:00
Florian Schmaus
4fb3630896 Socks5Client: Throw SmackException instead of IOExecption
So that we can wrap the original exception within the
SmackException. It's not possible to wrap it into the IOException
because of the used min Android API level.
2016-02-10 12:36:38 +01:00
Florian Schmaus
0761fe0dec Pass down Message stanza in ChatStateListener
Fixes SMACK-704.
2016-01-23 13:55:09 +01:00
Florian Schmaus
85e818cffb Smack 4.1.6
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQF8BAABCgBmBQJWo2DDXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
 ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQxMzU3QjAxODY1QjI1MDNDMTg0NTNEMjA4
 Q0FDMkE5Njc4NTQ4RTM1AAoJEIysKpZ4VI41Q0AH/22s1WOI0mgFjQnuSRoZwtNQ
 WN7eudnKlnknmNrJwPcbW1EYO/kNj1SQnqv7ed2aVpyeFFOf1/CUIgq57K1hBjA0
 gTVtv0vK9pABZOmYY5UYURF6AZqKC2s5grHzOgIQbEhT0IOxc/Kz3/ubRxYwvxQl
 lKenkNw75NMViylC0wFQc673SUuwPKyS3PjFm44ASxhbHNIexqagsxNU3MICmCWr
 vGuyv2pGuVvVbILdqqoRGJhucHUs8HnYjA/H1lAlXH4FE0k3EXnjtztHaiLXQoxC
 I2MbunwlVWcE5099V85wcgBbtMWqgljyz+Yh8MmkPojZTVnWjYPUWybK4G8TREg=
 =1rYD
 -----END PGP SIGNATURE-----

Merge tag '4.1.6'

Smack 4.1.6
2016-01-23 13:27:16 +01:00
Florian Schmaus
89bd13318a Fix typo in CapsExtensionProvider: s/elment/element/ 2016-01-18 22:08:23 +01:00
Florian Schmaus
e6a9027cc6 Improve StringUtils.escapeForXml() 2016-01-18 22:04:20 +01:00
Florian Schmaus
f2a748db9a Format test strings of DataLayoutTest 2016-01-18 22:04:20 +01:00
damencho
46f0110949 Fix sending pubsub events for empty item
XEP-0060 allows no elements on second level of nodes.

Modified-by: Florian Schmaus <flo@geekplace.eu>
2015-12-18 08:19:21 +01:00
Florian Schmaus
72c7137ff1 Don't request receipts for messages without a body
SMACK-709
2015-12-14 11:36:37 +01:00
Florian Schmaus
09364e571c Ensure that delivery receipts/requests have ID set
Fixes SMACK-708.
2015-12-13 22:42:50 +01:00
Florian Schmaus
f34f37a20c Check for 'null' to avoid NPE in Socks5Proxy
Check if serverSocket is null before calling isClosed(), as otherwise
the resulting NPE will cause an endless loop.

Thanks to Michael Grafl for reporting.

Fixes SMACK-707.
2015-12-10 17:10:49 +01:00
Florian Schmaus
45feaecdf7 Make XMPPError imutable and add stanza reference 2015-12-09 10:48:52 +01:00
Florian Schmaus
83eda4c58d Make EventContentFilter's members 'final' 2015-12-06 22:49:48 +01:00
Florian Schmaus
54ba300dc5 Make EventContentFilter use FlexiableStanzaTypeFilter<Message> 2015-12-06 22:48:22 +01:00
damencho
db72917bb4 Uses voice as default number detail, if no type is available. 2015-12-06 17:37:20 +01:00
Florian Schmaus
3c74ef2fd2 Fix PubSub Affiliation getElementName()
must return 'affiliation', not 'subscription'.

Fixes SMACK-705.
2015-12-03 08:17:19 +01:00
Florian Schmaus
fb6aaa073e Extend MucConfigFormManager and add javadoc 2015-11-22 22:47:10 +01:00
Florian Schmaus
b849d4102b Allow for multiple 'null' fields in DataForm 2015-11-20 17:39:02 +01:00
Florian Schmaus
b746e5caee Add support for MUC Item Actor 'nick'
Fixes SMACK-691.
2015-09-29 22:28:26 +02:00
Florian Schmaus
f0f655c779 Javadoc fixes in MultiUserChat 2015-09-28 11:16:02 +02:00
Florian Schmaus
194717d75b Merge branch '4.1' 2015-09-26 12:43:27 +02:00
Florian Schmaus
9c694a0a75 Code cleanup: Fix some warnings 2015-09-24 12:59:17 +02:00
Florian Schmaus
15c1c8ad19 Fix Time class creating invalid XML
Fixes SMACK-698.
2015-09-24 09:38:48 +02:00
Florian Schmaus
a00331dbb4 Fix javadoc of MucEnterConfiguration 2015-09-18 23:47:30 +02:00
Florian Schmaus
04a0004035 Smack 4.1.4
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQF8BAABCgBmBQJV9nAlXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
 ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQxMzU3QjAxODY1QjI1MDNDMTg0NTNEMjA4
 Q0FDMkE5Njc4NTQ4RTM1AAoJEIysKpZ4VI41sFEIAJlfRspk6S5ymNc4w7u/FT1w
 MpHT/cxqIQIBU9J5dYqeW6Y8O6VuUeknCmZBEv7dIVHroTmvfosMauAyRZJXWeeL
 FQQTBqDJszYdM88x/d5X6d25lCEBdQkdDh2a5s9AIy9RH0iXE74AypuikbroK+VC
 zI3wRPUFq7WnARtmiP2NalSgSNv5ToeicBO+JSniQ+O52ZAlP2FSDfi4uzPPigdP
 Ip/V3eF4Bp0YZimcxAnWdnMU+ciVLClRYKgD3+qTEoic7dx3dzeTyrk1NoLRgQl9
 mfcNXBgUScHZAoSIkR0QiUx9ktPCJ950qa+XtW3B8NtDOZkXegUL/a8ukQAuz+k=
 =qMsC
 -----END PGP SIGNATURE-----

Merge tag '4.1.4'

Smack 4.1.4
2015-09-14 09:05:24 +02:00
Florian Schmaus
d728204890 Add errorprone check and fix found errors
Adds gradle-errorprone-plugin 0.0.8, requires Gradle 2.6.
2015-09-13 18:12:33 +02:00
Florian Schmaus
aa832ec1f0 Handle cases where no privacy lists are set.
The is when no default or active list is, then don't perform a privacy
list request where list name is 'null'.

Fixes SMACK-697.
2015-09-04 11:22:52 +02:00
Florian Schmaus
7b1b20a13c Use Localpart in AccountManager 2015-08-20 19:01:33 +02:00
Florian Schmaus
6b7f69b42f Fix MUCs UserStatusListener
use oldPresence instead of packet. This bug was introduced with
e6aa2416e4.

Fixes SMACK-693.
2015-08-17 18:20:35 +02:00
Florian Schmaus
ef8fa1fa46 Fix MUCRole and MUCAffiliation equal checks in MultiUserChat 2015-08-17 12:52:38 +02:00
Florian Schmaus
33e5c37af8 Refactor PEP to use PubSub API.
Fixes SMACK-416.
2015-08-17 12:45:23 +02:00
Florian Schmaus
d711caee38 Use EntityFullJid in MUC's getOccupant(Presence) API
instead of String, which will always return null if used with
ocupantsMap.get(String), because String.equals(Object) is only true if
Object is also instanceof String.

Thanks to Adnan Elezovic for reporting.
2015-08-12 10:22:11 +02:00
Vaibhav
3bbffeae28 Make abstract package protected methods in PEPItem public
Fixes SMACK-372
2015-07-31 13:37:35 +02:00
Florian Schmaus
e0e4fd9b12 Add checkstyle rule for StringBuilder.append(char)
And replace all instances where String.Builder.append() is called with a
String of length one with append(char).

Also adds StringUtils.toStringBuilder(Collection, String).
2015-07-27 19:02:11 +02:00
Florian Schmaus
19ebcb814b Check that service is MUC service in getHostedRooms()
and otherwhise throw a NotAMucServiceException.
2015-07-17 09:08:04 +02:00
Florian Schmaus
2e03f0f3f3 Improve HostedRoom API
return EntityBareJid instead of Jid.
2015-07-17 09:06:40 +02:00
Florian Schmaus
24365f0f1e Fix MultiUserChat javadoc 2015-07-15 22:37:49 +02:00
Florian Schmaus
ea00caca31 Fix MultiUserChat.enter() 'nickname' check
It's no longer necessary to check if 'nickname' is set. The
MucEnterConfiguration API already enforces that.
2015-07-15 22:36:10 +02:00