You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Go to file
AL-Session 5cd8e349ec
Fix/attachment filename finetuning (#886)
* Initial commit

* Initial attempt at modernising PhassphrasePromptActivity and BiometricSecretProvider

* Commit before refactoring to cache shared content Uri

* External sharing with fingerprint-locked device now working

* Adjust PassphrasePromptActivity to not allow multiple instances if you have one then external share via session

* Cleanup and documentation

* End of day push

* Yeah, now external sharing ONLY works on a Pixel 7a and not most other things - will need to rework this in 2025 =/

* Added forced READ_URI permission to intent - works for external share of links now, but not images at present

* WIP

* Working, now to clean up

* Broke then fixed

* End of day push

* Now working on Pixel 7a also

* Commit before refactor

* Refactor WIP

* Refactored PassphraseRequiredActionBarActivity to ScreenLockActionBarActivity, amongst other things

* Cleanup

* Tiny fix

* Further cleanup

* WIP filename fix

* Fixed GIF saving amongst other things

* Cleanup for PR

* Fixed overlooked drawable ID change

* Cleanup

* PR feedback

* PR feedback

* PR feedback

* PR feedback

* PR feedback

* Fix startup crash & successful unlock drawable

* Adjusted fileprovider back to previous name to keep inline with avatar and share logs file providers

* Cleaned up ShareActivity null-checks via lateinits

* Fixed up ScreenLockActivity so we don't get stuck & inform user of system-level biometric lockouts

* Fixed ShareActivity.onCreate to match OG behaviour

* Added filename handling for video files

* All working - commit before cleanup

* Cleaned up

* Addressed PR feedback regarding biometric unlock

* Re-fixed external share filenames following Media class adjustment today

* Cleanup

* Fixed Giphy GIF filenames

* PR cleanup

* PR feedback

* Added comment

* Reverted onBackPressedDispatcher change

* Added voice message filename generation method to FilenameUtils

* Push before refactor

* WIP

* Streamline filename creation

* Cleanup

* Enforce non-null status on extracted filename

* Adjusted Attachments to force filenames & removed reliance on Uri filename extraction

* End of day push

* Added synthesized filename creation for pre-existing voice messages that lack a filename

* Cleanup and refactor mechanism for legacy voice message filename synthesis

* Remove unnecessary call to getFilenameFromUri if we can extract the filename from the attachment

* Added filename synthesis on input from legacy Session Android clients that provide null filenames

* Added some additional mime-types to our incoming 'fromProto' filename generation - should be very comprehensive now

* Leaving logic on the app side

Removed logic from libsession
Sanitising file names before saving them to storage
Made sure we don't displa a date when getting filename from Slide otherwise it'll keep changing

* Cleaned up

* Using the URI's timestamp when possible

* WIP

* Working - commiting before cleanup

* Cleaned up for PR

---------

Co-authored-by: alansley <aclansley@gmail.com>
Co-authored-by: ThomasSession <thomas.r@getsession.org>
3 months ago
.github Updating references to oxen-io 6 months ago
.run SES-1156 - Ban and delete functionality fix (#1428) 1 year ago
app Fix/attachment filename finetuning (#886) 3 months ago
buildSrc Paged conversation recycler, update compile sdk version 31 (#1049) 2 years ago
common Strings work 7 months ago
content-descriptions SES-3001 - Note to self vs 1on1 delete (#823) 4 months ago
gradle/wrapper New group implementation (#4) 5 months ago
liblazysodium Update session libsodium (#1326) 2 years ago
libsession Fix/share external with fingerprint lock (#867) 3 months ago
libsession-util Integrate the group member status change (#874) 3 months ago
libsignal Fix/share external with fingerprint lock (#867) 3 months ago
scripts Fixed compilation issues 4 months ago
third_party_licenses Add lucide license (#833) 4 months ago
.drone.jsonnet Temporary measure for CI (#853) 4 months ago
.drone.yml New group implementation (#4) 5 months ago
.gitattributes materialize conversation item indicators 11 years ago
.gitignore New group implementation (#4) 5 months ago
.gitmodules Updating references to oxen-io 6 months ago
BUILDING.md Updating references to oxen-io 6 months ago
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 4 years ago
LICENSE Initial Project Import 14 years ago
README.md Add lucide license (#833) 4 months ago
build.gradle New group implementation (#4) 5 months ago
gradle.properties New group implementation (#4) 5 months ago
gradlew Gradle/Gradlew/AndroidGradlePlugin update. 6 years ago
gradlew.bat Gradle/Gradlew/AndroidGradlePlugin update. 6 years ago
settings.gradle New group implementation (#4) 5 months ago

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 here!

Verifying signatures

Step 1:

wget https://github.com/jagerman.gpg
gpg --import jagerman.gpg

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/session-foundation/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

Attributions

This project uses Lucide Icon Font, which is licensed under the ISC License.

Socials