A private messenger for Android.
Go to file
ceokot c113a447cf
refactor: Use view binding to replace Kotlin synthetics (#824)
* refactor: Migrate home screen to data binding

* Add view binding

* Migrate ConversationView to view binding

* Migrate ConversationActivityV2 to view binding

* View model refactor

* Move more functionality to the view model

* Add ui state events flow

* Update conversation item bindings

* Update profile picture view bindings

* Replace Kotlin synthetics with view bindings

* Fix qr code fragment binding and optimize imports

* View binding refactors

* Make TextSecurePreferences an interface and add an implementation to improve testability

* Add conversation repository

* Migrate remaining TextSecurePreferences functions into the interface

* Add unit conversation unit tests

* Add unit test coverage for remaining view model functions
2022-01-14 07:56:15 +02:00
.github Update bug_report 2021-06-02 09:19:30 +10:00
app refactor: Use view binding to replace Kotlin synthetics (#824) 2022-01-14 07:56:15 +02:00
buildSrc Speed up Gradle sync 2021-05-18 14:18:16 +10:00
gradle/wrapper refactor: Use view binding to replace Kotlin synthetics (#824) 2022-01-14 07:56:15 +02:00
libsession refactor: Use view binding to replace Kotlin synthetics (#824) 2022-01-14 07:56:15 +02:00
libsignal refactor: performance improvements in batch message processing, synchronized cache access and audible message notifications. 2021-09-29 15:29:24 +10:00
.gitattributes materialize conversation item indicators 2014-11-18 11:27:08 -08:00
.gitignore Old python scripts and config files removed. Transifex config updated with the new directory structure. 2020-11-26 12:27:17 +11:00
BUILDING.md Update BUILDING 2021-05-24 13:22:17 +10:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2021-06-01 17:16:34 +10:00
LICENSE Initial Project Import 2011-12-20 10:20:44 -08:00
README.md Update Oxen mentions, remove FB 2021-08-17 12:01:46 +10:00
build.gradle refactor: Use view binding to replace Kotlin synthetics (#824) 2022-01-14 07:56:15 +02:00
gradle.properties refactor: Use view binding to replace Kotlin synthetics (#824) 2022-01-14 07:56:15 +02: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
settings.gradle Old python scripts and config files removed. Transifex config updated with the new directory structure. 2020-11-26 12:27:17 +11:00

README.md

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