aTalk
org.atalk.android
Zapstore _@zapstore.dev Republished from GitHub / F-Droid by the Zapstore main account.
Sats Received
Underlying data available via MCP: app_zaps, app_releases.
Zap Count
Underlying data available via MCP: app_zaps, app_releases.
Releases
- Sep 21, 2026 6.5.1- WebViewFragment will process user backKey to go back to previous webpage if allowed. - Ensure the webView reloads the user newly defined Web Access Page on return from Settings. - Execute encryption of omemo message in chatRoom in background to avoid ANR. - Make media call from recent conversion or call history call via JingleMessage protocol if supported. - Upgrade smack to v4.5.0 release. - - Upgrade jni libraries: * libvpx 1.17.0 <= 1.16.0 * openssl 3.6.4 <= 3.5.2; and update all Hmac.c deprecated function calls. - Upgrade android gradle build-tools to 9.3.2; change all case R.id.xxx to if-else to resolve "Constant expression required" error.
More…
*** Observation *** - openssl-4.0.2 has problem. Resolved in 4.1.0-alpha1 and fPIC is not the cause. ld.lld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol 'poly1305_blocks_sve2'; recompile with -fPIC see solution: https://github.com/openssl/openssl/commit/f869ff08b20d5a824e3535fbd1a7df3561e67536 - Aug 19, 2026 6.5.0- Add per-app language preferences support for android >= API-33 (TIRAMISU). - Android API-37 broadcast ACTION_BOOT_COMPLETED on aTalk start-up, leading to aTalk SystemEventReceiver() to exit app, and restart. This causes aTalk hangs in endless loop. - Update libretranslate-java to work with LibreTranslate v1.9.6. Home server installed with LibreTranslate for verfication. - aTalk default 'https://translate.fedilab.app/translate' has been denied access. User can purchase an API-Key from 'https://libretranslate.com/translate' OR Install and run the software yourself for free on your own local machine or private server: see https://docs.libretranslate.com/guides/installation/ - When adding a new contact, pre-approve subscription for it.
More…
See https://github.com/cmeng-git/atalk-android/pull/257. - Incorrect QNAME specified for FallbackIndicationElement.class. - Fix RetractedElement toXML() do not close the element properly. - Replace OmemoManager #contactSupportsOmemo() with #getDevicesOf() in local DB; Proceed to #requestDeviceListUpdateFor() if contact identity is not found. This avoids online check, and fetch missing omemoDevice if not found in identities table. Found ejabberd 26.04 server does not send pubsub#event notifications for all the sr_user omemo devices. - Execute all omemo message encryption in background task to avoid ANR. - Android device with API-29 is not compatible with aTalk. InetAddress.getByName(hostname) returns null i.e. DNS not supported. - Remove XMPP-Bosh patch for reconnection failure on network changed - implemented in smack 4.5.0-rc1. - Included 'XMPP Messaging Server Setup' document in the aTalk repository/resources for home server setup reference. *** Observation *** - aTalk cannot run on android AVD API-29 due to null returns; DNS not working? * InetAddress addr = InetAddress.getByName(hostname); - Jul 6, 2026 6.4.0- Must start up contact chat session on incoming chat message received; this is to update or cache the message, and to translate if enabled. - When joining a chatRoom, includes element <history maxchars='0'/> in sent stanza to stop server from sending history messages; chatRoom history messages are retrieved via mam query instead. - Implement background runnable thread to handle history messages translation; eliminate ~1s/message delay in translation and hang chat session UI. - aTalk default Translator server has rate limiting. Too many history messages translation will give raise to error code 429. If required, user may use 'Translate message receive' option, to translate messages that have failed. - Support Translator API key entry for user if available. - Add 'before' option for the latest mam messages; fix incorrect setting in field 'with' of mamQuery stanza sent to chatRoom history retrieval. - Need to take care for retract and correction messages handling if remote messages have been deleted, and when history logging is disabled. - Perform stricter checks on mam retrieved forwarded message for retract and correction message.
More…
Skip if the affected message previously has been deleted; use the correct timestamp when caching/saving the message. - Upgrade libvpx to 1.16.0. libvpx v1.16.0 removed support for 32-bit targets (armv7, armv7s, and i386). - aTalk jni library will support only arm64-v8a and x86_64 ABIS; drops armeabi-v7a and x86 ABI ABIS. - Upgrade aTalk to support Android-17.0 CinnamonBun (API-37). *** Observation *** - All offline messages sent to contact are streamed upon user registered with the server. Hance not all messages are translated due to Translator server overloaded. Normally this will not happen, as aTalk should be active and registered with the server to receive incoming messages with translation. - All chatRoom history messages are streamed immediatly upon user joining the chatRoom, if history option is not disabled. - Update build environment to Android Studio Quail 1 | 2026.1.1 Patch 2. Must keep 'com.android.tools.build:gradle:8.11.2' and not to use AGP 9.x.x. Otherwise, this causes "constant expression required" errors for the generated R.id.xxx; and gradle.properties#android.nonFinalResIds=false is ignored in AGP 9.x.x; - Jun 4, 2026 6.1.0- Make call transfer via JingleMessage if the intended transferred callee supports it. - Add 'Retract Message' option in chat session. Recipient must be online for 'Retract message' to take effect. Feature similar to Whatsapp 'Delete for All' option. - XEP-0424: Message Retraction document does not provide any form of positive feedback from Recipient; aTalk uses XEP-0184: Message Delivery Receipts for acknowledgement. - Remove support merging of multiple messages in chat window. It limits user usage in, and complicates messages handling for retract, delete, correction and delivery receipt etc. - When update the content of the modified (retracted & corrected) chat message in ChatFragment: * Must update the viewHolder Text when chat is in view/focus for immediate view change. * ChatPanel#msgCache if not already done in ChatPanel, msgCache info is retrieved in loadHistory when chat onResume.
More…
This happen when user closes/reopens the chat window, and close active chat and reopen. * MessageDisplay#ChatMessage bodyText. BaseAdapter retrieves this info when user scroll the chat window. - ChatSessionListener in ChatFragment must remain active and registered with ChatPanel, at all times even when chat fragment window is closed/detached. Otherwise incoming Retract and Correction messages may not be updated properly. It is not always guaranteed that android will call ChatFragment#onCreateView when chat is opened. - Extend Last Message Correction support to all other outgoing messages, and not just the last sent message. - Keep the original created message time stamp for Message Correction, so sent/received messages chronological are maintained. - Retain the messageUuid of the edited message when doing Last Message Correction; else 'Retract Message' of the edited message will fail. - Android does not refresh the local displayed view content changed during message retract/correction; fixed by 1000ms delay the mode.finish() and setText after edited text is sent. - Revert message sending to use 'CTRL-ENTER' from physical keyboard; leave 'ENTER' to append newline in chat text entry. - Define actionModeStyle and actionModeCloseDrawable in Theme, required on some android devices to ensure ActionMode style is set properly. - ChatRoom message sent wrongly converted to message received, if user re-login from terminated app; user resource changes under this case. - Ensure auto generated resource name remains unchanged even when aTalk re-login after app is terminated. - Fix incorrect cast of Expert Settings to PreferenceCategory class and crashes aTalk. - FileTransferConversation getContext() returns null when page sliding chat Windows. Override getContent() in aTalk BaseFragment to fix. - Must OperationSetBasicTelephonyJabberImpl#addAsyncStanzaListener(this, RESPONDER_ERROR_FILTER) @ RegistrationState.REGISTERED state, else mConnector.getUser == null. *** Observation *** - android weired behavior on TextView update (Delay the mode.finish() 1000ms after the edited text sent): a. The display content on sender does not get change; even with .requestFocus(); .invalidate(); .requestLayout(); b. This view will change when user long clicks on the view to select, or scroll out of view. - May 4, 2026 5.5.0- JingleMessage must send JM 'reject' to own user, so server will relay to all its resources for action. - Improve the handling process of JingleMessage and UI during tie-break conditions under multiple resources. - Fix ServiceDiscoveryHelper#discoverInfoNonBlocking end in endless loop if nodeVerHash is null. - Remove redundant isFeatureSupported() function, use isFeatureListSupported() instead. - Cleanup and simplify MetaContactImpl#isFeatureSupported() implementation. - Remove permission.READ_PHONE_STATE, and all PhoneNumberI18nService related sources; not required in aTalk but conflict with android phone security check.
- May 2, 2026 5.4.0Fix starting a video call always end in an audio call being setup. Fix backToCall/chat function not working due to last update Do not setState to CallPeerState.FAILED before calling hangup(); else it will be ignored at sender device to hangup call. When checking or before update, show all the new changes info when there is a new version found - debug version only.
- Apr 2, 2026 5.2.2- Fix OmemoVOmemoProvider#parse() incorrect parsing of jid attribute in OmemoKeysElement_VOmemo. - Change bundles and devices nodes publish with item id='current' as recommended for Singleton Nodes. see 12.21 Singleton Nodes#https://xmpp.org/extensions/xep-0060.html#impl-singleton - If onPepEvent received omemo#devices itemId != 'current', it must be purged from the server. Otherwise this will leads to endless loop in receiving the pepEvent for this item (as it not being updated). - Must perform active subscription to node 'urn:xmpp:omemo:2:devices' and 'urn:xmpp:omemo:2:bundles', inorder to send publish-options successfully. - Add both omemo PEP_NODE_DEVICES_x namespaces to PepEventListener, so pubsub#events from either PEP_NODE_DEVICES_x are handled properly. * Must have separate PepEventListener for each omemo namespace. * Encrypted messages sent does not contain the intended recipient contact deviceId: a. the deviceId identity is inactive in table (AVD-swan / Note10-swordfish); fixed by set it to active.
More…
b. not sent by server for contact omemoDevice?: <event xmlns='http://jabber.org/protocol/pubsub#event'> - Fix app crashes on HttpFileDownload message received in chatRoom when insertRecordToDB as Contact is null. * No need to perform insertRecordToDB() as the HttpFileDownload message is already in the database. - Fix unhandled BackKey problems with preference sub-menu for Connection, ICE, and Telephony VoIP-PBX settings. - Clean up Thumbnail.java file for fully XEP-0264: Jingle Content Thumbnails 0.4.2 (2024-07-24) compliant. - Revert AccountInfoPresenceActivity#loadDetails() to use ExecutorService, but without using 'try'-with-resources as this causes ANR. - Mar 13, 2026 5.2.1- Fix incorrect fetching of bundle from server in OmemoService#fetchBundle
- Jan 5, 2026 5.1.0- Implement shutdown for all Executor.Service after the assigned task is completed.