* 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 * PR feedback * Updated huawei file and tested notifications * Fixed SES-2802 Only force the priority to visible when going from not approved to approved * Syncing state diaplays as sent Syncing happens in the bg so the user doesn't need to know of it hence the status can display as "Sent" during the syncing phase. Resyncing, in case it happens, can display the "Syncing" status as it would happen after a syncing error. * Latest strings --------- Co-authored-by: ThomasArtProcessors <71994342+ThomasArtProcessors@users.noreply.github.com>
Session Android
Download on the Google Play Store
Add the F-Droid repo
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