Tusky è un client Android per Mastodon. Mastodon è un social network federato ActivityPub. Ciò significa che nessuna singola entità controlla l'intera rete, piuttosto, come la posta elettronica, i volontari e le organizzazioni gestiscono i propri server. https://mastodon.it/it/app-mastodon-per-android
Go to file
Konrad Pozniak b895ce936e
improve MediaPreviewAdapter / fix IndexOutOfBoundsException (#4514)
Found this crash in the Google Play reports:

```
Exception java.lang.IndexOutOfBoundsException: Index -1 out of bounds for length 0
  at jdk.internal.util.Preconditions.outOfBounds (Preconditions.java:64)
  at jdk.internal.util.Preconditions.outOfBoundsCheckIndex (Preconditions.java:70)
  at jdk.internal.util.Preconditions.checkIndex (Preconditions.java:266)
  at java.util.Objects.checkIndex (Objects.java:359)
  at java.util.ArrayList.get (ArrayList.java:434)
  at java.util.Collections$UnmodifiableList.get (Collections.java:1394)
  at com.keylesspalace.tusky.components.compose.MediaPreviewAdapter.onMediaClick (MediaPreviewAdapter.java:45)
  at com.keylesspalace.tusky.components.compose.MediaPreviewAdapter.access$onMediaClick (MediaPreviewAdapter.java:32)
  at com.keylesspalace.tusky.components.compose.MediaPreviewAdapter$PreviewViewHolder._init_$lambda$0 (MediaPreviewAdapter.java:144)
  at android.view.View.performClick (View.java:7535)
  at android.view.View.performClickInternal (View.java:7512)
  at android.view.View.-$$Nest$mperformClickInternal
  at android.view.View$PerformClick.run (View.java:29488)
  at android.os.Handler.handleCallback (Handler.java:984)
  at android.os.Handler.dispatchMessage (Handler.java:104)
  at android.os.Looper.loopOnce (Looper.java:238)
  at android.os.Looper.loop (Looper.java:357)
  at android.app.ActivityThread.main (ActivityThread.java:8118)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:548)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:957)
```

Can't reproduce, but seems to be some kind of race condition where the
view is clicked at the same time as it is being removed from the
`RecyclerView`. Not using the index in the click listener should resolve
the problem. Also refactored to `ListAdapter` to not deal with the
`AsyncListDiffer` manually.
2024-06-19 16:51:12 +02:00
.github upgrade to gradle/actions/wrapper-validation@v3 in the other workflow as well 🙄 (#4378) 2024-04-21 09:35:59 +02:00
.idea Modernize a bit (#3171) 2023-02-04 19:58:53 +01:00
app improve MediaPreviewAdapter / fix IndexOutOfBoundsException (#4514) 2024-06-19 16:51:12 +02:00
assets update tusky_banner.xcf 2023-02-15 20:05:45 +01:00
doc clarify updating the download link in Release.md (#4197) 2023-12-28 13:28:18 +01:00
fastlane/metadata/android Translated using Weblate (German) 2024-06-10 19:38:15 +00:00
gradle Update dependency com.android.application to v8.4.2 (#4503) 2024-06-13 20:02:15 +02: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
CHANGELOG.md Release 121 2024-05-10 13:31:40 +02:00
CONTRIBUTING.md Update contributing.md with payment policy link (#4037) 2023-09-26 20:17:18 +02:00
LICENSE.txt License change back to GPL 3 2017-04-09 20:12:31 -04:00
README.md Fix link to Matrix in README (#3995) 2023-09-03 16:02:08 +01:00
bitrise.yml fix building nightly on bitrise 2024-02-23 14:57:19 +01:00
build.gradle Replace Dagger-Android with Hilt and remove Kapt (#4423) 2024-05-10 15:55:07 +02:00
gradle.properties Remove lint version overriding 2023-08-25 10:27:14 +08:00
gradlew Update dependency gradle to v8.8 (#4483) 2024-06-01 13:53:28 +02:00
gradlew.bat Update dependency gradle to v8.6 (#4271) 2024-02-23 14:41:10 +01:00
renovate.json Use Renovate recommended baseline (#3977) 2023-11-01 11:39:20 +01:00
settings.gradle Update plugin com.gradle.develocity to v3.17.5 (#4508) 2024-06-13 18:42:34 +02:00

README.md

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