A private messenger for Android.
Go to file
Andrew d16faf94c9
Merge dev (#1468)
* Remove unused sizeResId

* Fix caching

* Prefix message with name in HomeActivity

* Hide sender prefix for note to self

* Hide sender prefix for control messages

* Remove problematic getLastMessage()

* Refactor snippet formatting

* Remove unused RecoveryPhraseRestoreActivity

* Fix unresolved theme attributes exception

* Fix dialog button style

* Investigation in progress

* Working fix push before cleanup

* Fixes #1346

* Removed unused logging imports

* Put back some whitespace

* Minor cleanup

* Fix NPE on null display name

* fix: disappearing viewmodel tests (#1432)

* SES-1354 - Video call self viewer not mirrored (#1397)

* Fixes #874

* Removed accidentally left in line

* Fixed issue - push before cleanup

* Cleaned up

* Removed cruft

---------

Co-authored-by: = <=>
Co-authored-by: AL-Session <160798022+AL-Session@users.noreply.github.com>

* SES-1145 - New messages are hidden under keyboard - MK3 (#1415)

* WIP

* Working - push before cleanup

* Fixes #1316

* Cleanup

* PR review adjustments

* Fixed scrolling when receiving an image based message while keyboard is up

* Prevent auto-scroll to last seen item pos in conversation view if <= 3

* Put back <=3 check to scroll

---------

Co-authored-by: = <=>
Co-authored-by: AL-Session <160798022+AL-Session@users.noreply.github.com>

* Fix missing parenthesis

* SES-789 - Scroll to bottom of long new message(s) (#1426)

* WIP

* Working - push before cleanup

* Fixes #1316

* Cleanup

* PR review adjustments

* Fixed scrolling when receiving an image based message while keyboard is up

* Prevent auto-scroll to last seen item pos in conversation view if <= 3

* Put back <=3 check to scroll

* Forced scrolling to bottom of long messages (both sent and received) when already at the bottom of the RecyclerView

* Fixes #1364

---------

Co-authored-by: = <=>
Co-authored-by: AL-Session <160798022+AL-Session@users.noreply.github.com>

* SES-1352 - User and group names allowing multi-line strings (#1395)

* Fix WIP

* Resolved issue - pushing before cleanup & PR tomorrow morning

* Enforced single line for new closed group names

* Fixes #1394

* Final cleanup prior to PR

* Added code to restore a previous contact nickname if an empty one is given

* Added initial limits to nicknames and group names, both creation and display

* Minor adjustments

* Adjusted max nickname and group name to 35 chars as per Kee's instructions

* Fixed closed group edit text able to get too wide and cut off buttons

---------

Co-authored-by: = <=>
Co-authored-by: AL-Session <160798022+AL-Session@users.noreply.github.com>
Co-authored-by: Al Lansley <al@oxen.io>

* SES-212 - Always show delivery status of last sent message - FINAL! (#1418)

* Fixes #1408

* Addressed PR feedback

* Cleanup

* PR adjustments

* Further PR adjustments

* Updated libsession-util

* Added fix for crash when no messages

* Ignoring dirty submodules so they don't show up in git

* Re-fixed display of delivery status on last sent message (got broken by disappearing messages)

* Removed ignore dirty modules line in .gitmodules as it all seems to be playing nice now

---------

Co-authored-by: AL-Session <160798022+AL-Session@users.noreply.github.com>
Co-authored-by: Al Lansley <al@oxen.io>

* fix: use a set for the from/to serialized lists (#1370)

* Fixes #1347 (#1396)

Co-authored-by: AL-Session <160798022+AL-Session@users.noreply.github.com>
Co-authored-by: Al Lansley <al@oxen.io>

* SES-1156 - Ban and delete functionality fix (#1428)

* WIP

* Investigation in progress

* End of day push

* WIP

* Fixes #1416

* Cleanup

* Added code to remove zombie messages caught in limbo during a ban & delete - still chock full o' debug while finding root cause

* Root cause debug WIP

* Push prior to cleanup

* Cleaned up for PR

* fix: mms delete, remove unnecessary values from sms

* Addressed PR feedback

* fix: fix unit tests

* Added '.run' folder with test setup

* Update README.md

Test commit for CI

* Re-added accidentally removed closing brace

---------

Co-authored-by: alansley <aclansley@gmail.com>
Co-authored-by: Al Lansley <alansley@users.noreply.github.com>
Co-authored-by: 0x330a <92654767+0x330a@users.noreply.github.com>

* SES-1356 - List of recently used reaction emojis is not accurate (#1400)

* WIP

* Further WIP

* Push prior to cleanup

* Fixes #1015

* Added limiting to the count of recently used emoji that we store

* Put back adjusted reaction pill layout to standard

* Adjusted recently used reaction emojis already in list to go to start of list

---------

Co-authored-by: = <=>

* SES-697 - Add loading state when exporting logs (#1402)

* WIP

* Fixes #1401

* Cleanup from PR view

* Final cleanup

* Removed commented line of code & re-ordered comment

* Addressed PR feedback

* Re-allowed loading of avatars to throw exceptions rather than return null on failure

---------

Co-authored-by: = <=>

* SES-1251 - App crash on non alphanumeric first char search (#1393)

* Investigation in progress

* Working fix push before cleanup

* Fixes #1346

* Removed unused logging imports

* Put back some whitespace

* Minor cleanup

* Push before cleanup

* Fixes #1346 - properly this time!

* SES1567 - Community message delivery status fix (#1442)

* Initial investigation

* WIP

* Continued work to track down cause of delivery status issue

* Fixes #1438

* Cleanup for PR

* Further cleanup

* Fixed merge conflict

* Addressed PR feedback

---------

Co-authored-by: alansley <aclansley@gmail.com>

* Tiny adjustment to center user name in Settings activity (#1446)

* Addressed PR feedback

* Cleanup

* Initial fix implemented

* Fixes #1448

* Addressed PR feedback

* SES1688 - Deleting last message in conversation, group, or community leaves the RecyclerView in a broken state (#1449)

* Initial fix implemented

* Fixes #1448

* Addressed PR feedback

* Handle case where there are no messages

* build: update build number

* Fix spacing when title is absent

* Hide reply button in MessageDetails for group invitations

* Remove reply from context menu for open group invitations

* Ignore swipe reply to open group invitation

* Fix multiple quote previews

* Fix message menu icons not visible in light theme

* Hide reply app bar menu item for open group invite

* SES-1727 Mentions text is the wrong colour (#1454)

* Fixes #1453

* Cleanup

* Code review adjustments

* Adjusted mentions to use the accent colour as their background colour when using light themes

---------

Co-authored-by: alansley <aclansley@gmail.com>

* Disable swipe to reply on open group invites

* Fix multiple link previews

* SES1718 - Message Sending Status (#1462)

* Investigation in progress

* Initial push for PR

* Fixes #1461

* Removed leftover debug comments

* Added minor optimisation to showMessageStatus method (bail early if the message isn't one we care about displaying details of to the user)

* Minor cleanup

* Tiny cleanup

* Addressed PR feedback

* Removed forgotten debug log line & forced delivery status elements to be removed on non-visible messages just in case

* Minor refactor to simplify 'VisibleMessageView.showStatusMessage'

---------

Co-authored-by: alansley <aclansley@gmail.com>

* Fix margins

* WIP

* Commit before converting SmsDatabase from Java to Kotlin

* Remove old expiration config strings from UpdateMessageBuilder

* Fix group expiration update config messages

* Fixed conversation view closing + hopefully wrong status text displayed + deletion of contact on removal of last message in 1-on-1 convo

* Cleanup for PR review

* Implemented PR feedback

* Don't start expiration for group expiration update messages

* Fix expiry update message for groups

* Correctly don't start disappear timer on group timer updates

* SES1813 - Fix regression test failures (#1473)

* Initial fix for regression test failure 1.1

* Added permissions fix for sharing documents which should allow for thumbnail generation

* Minor touch-up prior to merge into dev

* Fixes #1813

* Fixes #1472 - please ignore previous fixes 1813 statement, I'd used the Jira ticket number rather than creating a GitHub issue and using that

---------

Co-authored-by: alansley <aclansley@gmail.com>

---------

Co-authored-by: alansley <aclansley@gmail.com>
Co-authored-by: 0x330a <92654767+0x330a@users.noreply.github.com>
Co-authored-by: Al Lansley <alansley@users.noreply.github.com>
Co-authored-by: AL-Session <160798022+AL-Session@users.noreply.github.com>
Co-authored-by: Al Lansley <al@oxen.io>
2024-05-01 12:59:33 +10:00
.github Update issue templates (#1253) 2023-09-19 15:16:38 +10:00
.run Merge dev (#1468) 2024-05-01 12:59:33 +10:00
app Merge dev (#1468) 2024-05-01 12:59:33 +10:00
buildSrc Paged conversation recycler, update compile sdk version 31 (#1049) 2022-12-19 11:29:05 +11:00
gradle/wrapper Paged conversation recycler, update compile sdk version 31 (#1049) 2022-12-19 11:29:05 +11:00
liblazysodium Update session libsodium (#1326) 2023-10-04 15:17:27 +11:00
libsession Merge dev (#1468) 2024-05-01 12:59:33 +10:00
libsession-util Cleanup 2024-02-19 01:23:06 +10:30
libsignal feat: add basic last sent legacy message DB migration and creation for banner 2023-11-13 08:38:33 +11:00
scripts Updated the 'upload exists' script with the latest fixes 2024-02-07 17:14:06 +11:00
.drone.jsonnet Further tweaks 2024-02-07 16:53:40 +11:00
.gitattributes materialize conversation item indicators 2014-11-18 11:27:08 -08:00
.gitignore Initial CI setup test 2024-02-07 13:19:57 +11:00
.gitmodules Integrate shared libsession-util library (#1096) 2023-07-14 18:27:13 +10:00
build.gradle Update session libsodium (#1326) 2023-10-04 15:17:27 +11:00
BUILDING.md Add huawei info to BUILDING.md 2023-08-15 14:52:40 +09:30
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2021-06-01 17:16:34 +10:00
gradle.properties Merge branch 'dev' into comp 2023-07-18 12:04:56 +09:30
gradlew Gradle/Gradlew/AndroidGradlePlugin update. 2019-03-18 15:09:56 -07:00
gradlew.bat Gradle/Gradlew/AndroidGradlePlugin update. 2019-03-18 15:09:56 -07:00
LICENSE Initial Project Import 2011-12-20 10:20:44 -08:00
README.md Merge dev (#1468) 2024-05-01 12:59:33 +10:00
settings.gradle Integrate shared libsession-util library (#1096) 2023-07-14 18:27:13 +10:00

Session Android

Download on the Google Play Store

Add the F-Droid repo

Download the APK from here

Summary

Session integrates directly with Oxen Service Nodes, which are a set of distributed, decentralized and Sybil resistant nodes. Service Nodes act as servers which store messages offline, and a set of nodes which allow for onion routing functionality obfuscating users' IP addresses. For a full understanding of how Session works, read the Session Whitepaper.

Want to contribute? Found a bug or have a feature request?

Please search for any existing issues that describe your bugs in order to avoid duplicate submissions. Submissions can be made by making a pull request to our dev branch. If you don't know where to start contributing, try reading the Github issues page for ideas.

Build instructions

Build instructions can be found in BUILDING.md.

Translations

Want to help us translate Session into your language? You can do so at https://crowdin.com/project/session-android!

Verifying signatures

Step 1:

wget https://raw.githubusercontent.com/oxen-io/oxen-core/master/utils/gpg_keys/KeeJef.asc
gpg --import KeeJef.asc

Step 2:

Get the signed hash for this release. SESSION_VERSION needs to be updated for the release you want to verify.

export SESSION_VERSION=1.10.4
wget https://github.com/oxen-io/session-android/releases/download/$SESSION_VERSION/signatures.asc

Step 3:

Verify the signature of the hashes of the files.

gpg --verify signatures.asc 2>&1 |grep "Good signature from"

The command above should print "Good signature from "Kee Jefferys...". If it does, the hashes are valid but we still have to make the sure the signed hashes matches the downloaded files.

Step 4:

Make sure the two commands below returns the same hash. If they do, files are valid.

sha256sum session-$SESSION_VERSION-universal.apk
grep universal.apk signatures.asc

License

Copyright 2011 Whisper Systems

Copyright 2013-2017 Open Whisper Systems

Copyright 2019-2021 The Oxen Project

Licensed under the GPLv3: http://www.gnu.org/licenses/gpl-3.0.html

Socials