A private messenger for Android.
Go to file
ThomasSession f6d50ac858
Feature/strings nice to haves (#1686)
* Initial commit with high level structure for new message deletion logic

* Adding admin logic

* New dialog styles

* Matching existing dialog closer to new designs

* Using the theme attribute danger instead of a hardcoded colour

* Using classes for the dialogs

Also cleaned up older references to align with newer look

* Adding cancel handling

Cleaning unused code

* Handling local deletion with batch message deletion

* Reusing the 'delete locally'

* Delete on device should "marl the message as deleted", not remove it from the db directly

* Displaying "marked as deleted" messages

Split the `BASE_DELETED_TYPE` into two types:
BASE_DELETED_OUTGOING_TYPE and BASE_DELETED_INCOMING_TYPE
so we can differentiate them visually.

* Proper handling of merged code

* Removed temp bg color

* Making sure the deleted message view is visible

* Renaming functions for clarity

* Adding the ability to customise the text for the deleted control messages

* Removing code that was added back from merging dev back in

* Using the updated strings

* Toast confirmation on 'delete locally'

* Recreating xml dialogs in Compose and moved logic in VM

* Removing hardcoded strings

* Updated message deletion logic

Still need to finalise "note to self" and "legacy groups"

* Deletion logic rework

Moving away from promises

* More deletion logic

Hndling unsend request retrieval as per figma docs

* Making sure multi-select works as expectec

* Multi message handling

Sharing admin logic

* Deleting reactions when deleting a message

* Deleting reactions when deleting a message

* Grabbing server hash from notification data

* Fixed unit tests

* Handling deletion od "marked as deleted" messages

* Handling Control Messages longpress and deletion

* Back up handling of no map data for huawei notifications

Also rethemed the send buttona dn home plus button to have better ax contrast by standardising the colour displayed on the accent color to be the same as the one on the sent messages

* Removed test line

* Reworking the deletion dialogs

We removed the 'delete locally' dialog, instead we show the 'delete for everyone' with the second option disabled

* Outgoing messages can all be marked as 'delete for everyone'

Cleaned up invisible copy button on black bgs

* Adding a confirmation dialog when clearing emoji

* Message request text update

* Restyling menu items to not show in uppercase

* Proper hint for seach

* Do not show seconds when they're 0

* Making the change to "hidden recovery" reactive so it can be dynamically updated in the settings page.

This can be simplified once we make SharedPreferences widely accessible as Flows

---------

Co-authored-by: ThomasArtProcessors <71994342+ThomasArtProcessors@users.noreply.github.com>
2024-10-15 10:53:19 +11:00
.github Update issue templates (#1253) 2023-09-19 15:16:38 +10:00
.run SES-1156 - Ban and delete functionality fix (#1428) 2024-04-03 09:30:15 +11:00
app Feature/strings nice to haves (#1686) 2024-10-15 10:53:19 +11:00
buildSrc Paged conversation recycler, update compile sdk version 31 (#1049) 2022-12-19 11:29:05 +11:00
common Strings work 2024-09-06 08:30:03 +10:00
content-descriptions Updating QA tags for dialogs as per the QA Team's instructions 2024-10-04 13:18:45 +10:00
gradle/wrapper SES-2524 - Rewrite media gallery in Compose (#1619) 2024-08-19 13:46:38 +10:00
liblazysodium Update session libsodium (#1326) 2023-10-04 15:17:27 +11:00
libsession Feature/strings nice to haves (#1686) 2024-10-15 10:53:19 +11:00
libsession-util Strings updates 2024-09-06 08:34:32 +10:00
libsignal Feature/standardised message deletion (#1685) 2024-10-14 15:33:11 +11:00
scripts Using appropriate name 2024-10-07 12:14:59 +11:00
.drone.jsonnet Update APT repo before installing jdk 2024-09-20 09:23:33 +10: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 Removing unrequired APi checks (#1620) 2024-08-15 15:32:41 +10: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 Using the latest compose compiler 2024-09-12 09:15:36 +10:00
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 SES-1156 - Ban and delete functionality fix (#1428) 2024-04-03 09:30:15 +11:00
settings.gradle Strings work 2024-09-06 08:30:03 +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