Fork of Tusky to match Chinwag design and provide better visual accessibility. https://social.chinwag.org
Find a file
Nik Clayton 196ebdb386
Keep the tabs adapter over the life of the viewpager (#3255)
Make `tabs` `var` instead of `val` in `MainPagerAdapter` so it can be updated
when tabs change.

Then detach the `tabLayoutMediator`, update the tabs, and call
`notifyItemRangeChanged` in `setupTabs()`.

This fixes a bug (not sure if it's this code, or in ViewPager2) where
assigning a new adapter to the view pager seemed to result in a leak of one
or more fragments. This wasn't user-visible, but it's a leak, and it becomes
user-visible when fragments want to display menus.

This also fixes two other bugs:

1. Be on the left-most tab. Scroll down a bit. Then modify the tabs at
   "Account preferences > tabs", but keep the left-most tab as-is.

   Then go back to MainActivity. Your reading position in the left-most
   tab has been jumped to the top.

2. Be on any non-left-most tab. Then modify the tab list by reordering tabs
   (adding/removing tabs is also OK).

   Then go back to MainActivity. Your tab selection has been overridden,
   and the left-most tab has been selected.

Because the fragments are not destroyed unnecessarily your reading position
is retained. And it remembers the tab you had selected, and as long as that
tab is still present you will be returned to it, even if it's changed
position in the list.

Fixes https://github.com/tuskyapp/Tusky/issues/3251
2023-02-15 19:17:59 +01:00
.github Create FUNDING.yml 2019-05-23 19:24:51 +02:00
.idea Modernize a bit (#3171) 2023-02-04 19:58:53 +01:00
app Keep the tabs adapter over the life of the viewpager (#3255) 2023-02-15 19:17:59 +01:00
assets new app icon (#2695) 2022-09-13 19:48:09 +02:00
fastlane/metadata/android Translated using Weblate (Galician) 2023-02-14 20:31:25 +00:00
gradle Upgrade AndroidX dependencies (#3169) 2023-02-04 20:22:29 +01:00
.editorconfig Modernize a bit (#3171) 2023-02-04 19:58:53 +01:00
.gitattributes Modernize a bit (#3171) 2023-02-04 19:58:53 +01:00
.gitignore Modernize a bit (#3171) 2023-02-04 19:58:53 +01:00
build.gradle Modernize a bit (#3171) 2023-02-04 19:58:53 +01:00
CONTRIBUTING.md Update Contributing.md (#3303) 2023-02-14 21:09:06 +01:00
gradle.properties Modernize a bit (#3171) 2023-02-04 19:58:53 +01:00
gradlew Modernize a bit (#3171) 2023-02-04 19:58:53 +01:00
gradlew.bat Modernize a bit (#3171) 2023-02-04 19:58:53 +01:00
ISSUE_TEMPLATE.md Create ISSUE_TEMPLATE.md 2018-03-10 16:43:34 +01:00
LICENSE.txt License change back to GPL 3 2017-04-09 20:12:31 -04:00
README.md Update Readme (#3304) 2023-02-14 21:09:16 +01:00
Release.md Create Release.md (#3200) 2023-01-24 20:23:15 +01:00
settings.gradle Modernize a bit (#3171) 2023-02-04 19:58:53 +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.

Head of development

This app was developed by Vavassor@mastodon.social. The current maintainer is ConnyDuck@chaos.social.

Development chatroom

https://riot.im/app/#/room/#Tusky:matrix.org