Fork of Tusky to match Chinwag design and provide better visual accessibility. https://social.chinwag.org
Find a file
Konrad Pozniak 78152f0449
Full support for Android 15, edge-to-edge mode on Android 15 (#4897)
- Update to Api 35
- Update all dependencies that were blocked because they require Api 35
- fix some deprecation warnings
- implement the now required edge-to-edge mode

Edge-to-edge mode means that we now draw under the status bar and the
navigation bar and need to make sure we don't overlap with them.
Previously the system would do that for us, and we would only provide
the color we want the bars in.

For the edge-to-edge mode there are two Apis that are important:
- `fitsSystemWindows` - some Widgets, mostly from the Material library,
automatically handle system insets if you set this attribute on them to
true
- `ViewCompat.setOnApplyWindowInsetsListener` - this allows you to
manually handle the various insets. By returning new insets from the
callback it is possible to tell the system which ones are handled and
which ones should be taken care of by another view.

In most places edge-to-edge was straightforward to implement, except in
`ComposeActivity`, `AccountActivity` and `MainActivity` which required a
more custom approach, and a hacky solution to make landscape mode work
in `BaseActivity`.

There is also the `ViewCompat.setWindowInsetsAnimationCallback` Api
which allows animating with moving insets. I used that in
`LoginActivity` and `ComposeActivity` to animate the Views together with
the keyboard.

On Android Versions below 15 (Api <= 34) Tusky will look almost the same
as before. I think the only exception is the main bottom bar, which is
now slighty larger. We customized it to be smaller than the default, but
in edge-to-edge mode the height needs to be `wrap_content` or it won't
handle insets correctly.

Screenshots: 

<img
src="https://github.com/user-attachments/assets/2a1bf5d9-79fb-48eb-affc-1cbb1164d5f0"
width="280"/>
<img
src="https://github.com/user-attachments/assets/9edccdf2-c0e9-4881-a6df-bd0872934f28"
width="280"/>
<img
src="https://github.com/user-attachments/assets/2916a271-f53e-4d38-a83a-69083eb3053f"
width="280"/>
2025-02-06 11:37:54 +01:00
.github move renovate.json into .github (#4881) 2025-01-17 12:36:17 +01:00
.idea Modernize a bit (#3171) 2023-02-04 19:58:53 +01:00
app Full support for Android 15, edge-to-edge mode on Android 15 (#4897) 2025-02-06 11:37:54 +01:00
assets update tusky_banner.xcf 2023-02-15 20:05:45 +01:00
doc Prepare Release 127 (#4819) 2024-12-22 10:26:24 +01:00
fastlane/metadata/android Translated using Weblate (Ukrainian) 2025-01-29 18:43:32 +00:00
gradle Full support for Android 15, edge-to-edge mode on Android 15 (#4897) 2025-02-06 11:37:54 +01:00
.editorconfig upgrade ktlint plugin to 12.0.3 (#4169) 2024-01-04 17:00:55 +01:00
.gitattributes Modernize a bit (#3171) 2023-02-04 19:58:53 +01:00
.gitignore Upgrade kotlin to v2 (#4461) 2024-05-23 21:51:25 +02:00
build.gradle Replace Dagger-Android with Hilt and remove Kapt (#4423) 2024-05-10 15:55:07 +02:00
CHANGELOG.md prepare release 129 2025-01-16 17:25:08 +01:00
CONTRIBUTING.md Update contributing.md with payment policy link (#4037) 2023-09-26 20:17:18 +02:00
gradle.properties Remove lint version overriding 2023-08-25 10:27:14 +08:00
gradlew Update dependency gradle to v8.12 (#4825) 2024-12-22 10:50:35 +01:00
gradlew.bat Update dependency gradle to v8.9 (#4559) 2024-07-12 11:05:48 +02:00
LICENSE.txt License change back to GPL 3 2017-04-09 20:12:31 -04:00
README.md upload to Google Play with GitHub Actions, remove Bitrise (#4682) 2024-10-09 16:20:12 +02:00
settings.gradle Update plugin com.gradle.develocity to v3.19.1 (#4891) 2025-01-24 10:01:24 +01:00

Translate - with Weblate OpenCollective Build Status

Tusky

Tusky is a beautiful Android client for Mastodon. Mastodon is an ActivityPub federated social network. That means no single entity controls the whole network, rather, like e-mail, volunteers and organisations operate their own independent servers, users from which can all interact with each other seamlessly.

Get it on F-Droid Get it on Google Play

Features

  • Material Design
  • Most Mastodon APIs implemented
  • Multi-Account support
  • Dark, light and black themes with the possibility to auto-switch based on the time of day
  • Drafts - compose posts and save them for later
  • Choose between different emoji styles
  • Optimized for all screen sizes
  • Completely open-source - no non-free dependencies like Google services

Testing

The nightly build containing the newest development code is available on Google Play.

Support

Check out our FAQs, your question may already be answered. If you have any bug reports, feature requests or questions please open an issue or send us a message at Tusky@mastodon.social!

Contributing

We always welcome new contributors! Please read our contribution guide to get started.

Development chatroom

https://matrix.to/#/#Tusky:matrix.org