Commit graph

4545 commits

Author SHA1 Message Date
renovate[bot]
b5c9fefda8
Update dependency app.cash.turbine:turbine to v0.13.0 (#3677)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-09 20:20:21 +02:00
renovate[bot]
e4fc80db54
Update coroutines to v1.7.1 (#3627)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-09 19:54:03 +02:00
renovate[bot]
8a8c587979
Update dependency com.google.android.material:material to v1.9.0 (#3624)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-09 17:23:09 +02:00
renovate[bot]
cd2e3038aa
Update dependency org.robolectric:robolectric to v4.10.3 (#3613)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-09 15:47:35 +02:00
renovate[bot]
bf35c0e36f
Update dagger to v2.46.1 (#3592)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-09 15:12:00 +02:00
renovate[bot]
192c6979c6
Update plugin ktlint to v11.4.0 (#3573)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-09 14:21:17 +02:00
renovate[bot]
c78c06c30b
Update dependency org.jetbrains.kotlin:kotlin-gradle-plugin to v1.8.22 (#3569)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-09 14:19:05 +02:00
Nik Clayton
039f18ce25
Prepare 22.0 (versionCode 110) (#3718) 2023-06-08 12:35:09 +02:00
Danial Behzadi
74433e0d39 Translated using Weblate (Persian)
Currently translated at 100.0% (27 of 27 strings)

Translation: Tusky/Tusky description
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky-app/fa/
2023-06-07 11:10:12 +02:00
Nik Clayton
3be1e1150a
Prepare 22.0 beta 7 (versionCode 109) (#3710) 2023-06-05 13:02:32 +02:00
Nik Clayton
01b3cb3a53
Fetch all outstanding Mastodon notifications when creating Android notifications (#3700)
* Fetch all outstanding Mastodon notifications when creating Android notifications

Previous code fetched the oldest page of unfetched Mastodon notifications.

If you had more than a page of Mastodon notifications you'd get Android notifications for that page, then ~ 15 minutes later Android notifications for the next page, and so on.

This code fetches all the outstanding notifications at once.

If this results in more than 40 total notifications the list is still trimmed so that a maximum of 40 Android notifications is displayed.

Fixes https://github.com/tuskyapp/Tusky/issues/3648

* Build the list using buildList
2023-06-01 19:31:30 +02:00
Nik Clayton
346dabffc5
Write notification account information to the correct account (#3697)
Don't use `accountManager.activeAccount` throughout the code.

Instead, get the active account once, and use that over the life of the viewmodel.

As shown in https://github.com/tuskyapp/Tusky/issues/3689#issuecomment-1567219338 the active account can change before the view model is destroyed, and if that happens account information for the account will be written to the wrong account.
2023-06-01 19:19:18 +02:00
Manuel
61374c5180 Translated using Weblate (Italian)
Currently translated at 93.5% (562 of 601 strings)

Co-authored-by: Manuel <mannivuwiki@gmail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/it/
Translation: Tusky/Tusky
2023-05-29 23:35:34 +02:00
Nik Clayton
34de33220c
Don't overwrite the active account when composing from a notification (#3688)
Fix a bug where the active account can be overwritten.

1. Have two accounts logged in to Tusky, A and B
2. Open Tusky as account A
3. Send a DM to account B (doesn't have to be a DM, just anything that creates a notification for account B)
4. Restart Tusky so the Android notification for the DM is displayed immediately. You are still acting as account A.
5. Drag down the Android notification, you should see two options, "Quick reply" and "Compose"
6. Tap "Compose"
7. ComposeActivity will start. You are now acting as account B. Compose and send a reply
8. You'll be returned to the "Home" tab.

The UI will show you are still account A (i.e., it's account A's avatar at the top of the screen, if you have the "Show username in toolbars" option turned on it will be account A's username in the toolbar).

But you are now seeing the home timeline for account B.

Fix this.

ComposeViewModel
- Do not rely on the active account in sendStatus(), receive the account ID as a parameter

ComposeActivity
- Use either the account ID from the intent, or the current active account. **Do not** change the active account
- Pass the account ID to use in the sendStatus() call
2023-05-29 13:32:56 +02:00
Danial Behzadi
4a4dbe9012 Translated using Weblate (Persian)
Currently translated at 100.0% (26 of 26 strings)

Translation: Tusky/Tusky description
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky-app/fa/
2023-05-27 17:44:29 +02:00
Deleted User
1ef31db862 Translated using Weblate (German)
Currently translated at 100.0% (26 of 26 strings)

Translation: Tusky/Tusky description
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky-app/de/
2023-05-27 17:44:29 +02:00
Deleted User
8183ef29e4 Translated using Weblate (German)
Currently translated at 100.0% (601 of 601 strings)

Co-authored-by: Deleted User <noreply+280@weblate.org>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/de/
Translation: Tusky/Tusky
2023-05-27 16:21:10 +02:00
Nik Clayton
d5fdcc9578
Prepare 22.0 beta 6 (versionCode 108) (#3687) 2023-05-24 22:05:25 +02:00
Nik Clayton
57e79b3f00
Save and restore the user's reading position more frequently (#3685)
The previous code gets the user's reading position *once*, when the
viewmodel is created, and uses that whenever it needs to be restored.

This is a problem. Suppose the user is a few days behind on their
notifications, and opens the app.

The reading position is restored, as expected. They scroll up to start
reading newer notifications.

Then they change their notification filters. This causes the
notifications list to change, and when it does their reading position
is set back to what it was when they first switched to the Notifications
tab.

Fix this by:

NotificationsFragment:
- Save the reading position whenever the user stops scrolling.

NotificationsViewModel:
- Use the saved reading position whenever the list of notifications
  can change, not just when the view model is created.
2023-05-23 20:07:39 +02:00
Danial Behzadi
abf15ccfde Translated using Weblate (Persian)
Currently translated at 100.0% (25 of 25 strings)

Translation: Tusky/Tusky description
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky-app/fa/
2023-05-23 20:06:27 +02:00
Deleted User
b7060291b4 Translated using Weblate (German)
Currently translated at 100.0% (24 of 24 strings)

Translation: Tusky/Tusky description
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky-app/de/
2023-05-23 20:06:27 +02:00
Mārtiņš Bruņenieks
16eabc9d3c Translated using Weblate (Latvian)
Currently translated at 92.5% (556 of 601 strings)

Co-authored-by: Mārtiņš Bruņenieks <martinsb@gmail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/lv/
Translation: Tusky/Tusky
2023-05-22 17:22:46 +02:00
Gordot Forrot
01c7e2c860 Translated using Weblate (Spanish)
Currently translated at 100.0% (601 of 601 strings)

Co-authored-by: Gordot Forrot <grdofrro@gmail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/es/
Translation: Tusky/Tusky
2023-05-22 17:22:46 +02:00
Andrés Blasco Arnáiz
cd211fa157 Translated using Weblate (Spanish)
Currently translated at 100.0% (601 of 601 strings)

Co-authored-by: Andrés Blasco Arnáiz <andresbarnaiz@gmail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/es/
Translation: Tusky/Tusky
2023-05-22 17:22:46 +02:00
Nik Clayton
867232ce88
Prepare 22.0 beta 5 (versionCode 107) (#3678) 2023-05-20 15:32:45 +02:00
Deleted User
931a09eab7 Translated using Weblate (German)
Currently translated at 100.0% (601 of 601 strings)

Co-authored-by: Deleted User <noreply+279@weblate.org>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/de/
Translation: Tusky/Tusky
2023-05-20 10:18:17 +02:00
Hồ Nhất Duy
7343d3261c Translated using Weblate (Vietnamese)
Currently translated at 100.0% (601 of 601 strings)

Co-authored-by: Hồ Nhất Duy <mastoduy@gmail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/vi/
Translation: Tusky/Tusky
2023-05-20 10:18:17 +02:00
Nik Clayton
76a3b4062c
Merge pull request #3675 from nailyk-weblate/weblate-tusky-tusky-app
Translations update from Weblate
2023-05-19 14:38:19 +02:00
Konrad Pozniak
7a832836d4
Downgrade apng library to 2.23.0 (#3676)
Fixes https://github.com/tuskyapp/Tusky/issues/3631
2023-05-19 13:30:57 +02:00
Hồ Nhất Duy
d267633689 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (24 of 24 strings)

Translation: Tusky/Tusky description
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky-app/vi/
2023-05-19 11:17:33 +00:00
Ihor Hordiichuk
c4f18dbefa Translated using Weblate (Ukrainian)
Currently translated at 100.0% (24 of 24 strings)

Translation: Tusky/Tusky description
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky-app/uk/
2023-05-19 11:17:33 +00:00
Danial Behzadi
0469bd535e Translated using Weblate (Persian)
Currently translated at 100.0% (24 of 24 strings)

Translation: Tusky/Tusky description
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky-app/fa/
2023-05-19 11:17:33 +00:00
Nik Clayton
d644f6e6f3
Save the a copy of the notification marker ID locally (#3672)
Not all servers support the marker API. If they don't the user will
potentially get duplicate Android notifications.

To resolve this, store a copy of the notification marker ID locally as
well. Defer to the remote marker if it exists (and is newer than the
local marker).

Fixes https://github.com/tuskyapp/Tusky/issues/3671
2023-05-18 23:23:42 +02:00
Nik Clayton
f69c2646ca
Merge pull request #3669 from nailyk-weblate/weblate-tusky-tusky
Translations update from Weblate
2023-05-18 15:07:50 +02:00
Quentí
7e6beb5b1f Translated using Weblate (Occitan)
Currently translated at 100.0% (601 of 601 strings)

Co-authored-by: Quentí <quentinantonin@free.fr>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/oc/
Translation: Tusky/Tusky
2023-05-17 20:35:54 +00:00
Konrad Pozniak
a0286d9e5c
delete "head of development" section from readme (#3636) 2023-05-17 20:35:01 +02:00
Nik Clayton
64878b4bb5
Merge pull request #3665 from nailyk-weblate/weblate-tusky-tusky
Translations update from Weblate
2023-05-17 18:31:10 +02:00
Deleted User
4723321764 Translated using Weblate (German)
Currently translated at 100.0% (601 of 601 strings)

Co-authored-by: Deleted User <noreply+278@weblate.org>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/de/
Translation: Tusky/Tusky
2023-05-16 17:35:54 +00:00
Nik Clayton
252d1054ce
Prepare v22.0 beta 4 release (#3664) 2023-05-16 19:31:12 +02:00
Nik Clayton
158f9b83fb
updateMarkersWithAuth(): Require DOMAIN header (#3660)
Otherwise markers are updated for the wrong account.

Fixes https://github.com/tuskyapp/Tusky/issues/3658
2023-05-16 18:24:38 +02:00
Nik Clayton
92ba53a8c3
Compare notification IDs by length as well as value (#3657) 2023-05-15 23:11:14 +02:00
Nik Clayton
36ebb0e16c
Prepare v22.0 beta 3 release (#3656) 2023-05-15 14:19:54 +02:00
Nik Clayton
44a66cddc7
Merge pull request #3655 from nailyk-weblate/weblate-tusky-tusky
Translations update from Weblate
2023-05-14 18:30:46 +02:00
Nik Clayton
da045ef88e
Merge pull request #3654 from nailyk-weblate/weblate-tusky-tusky-app
Translations update from Weblate
2023-05-14 17:43:08 +02:00
Hồ Nhất Duy
6749016d9c Translated using Weblate (Vietnamese)
Currently translated at 100.0% (601 of 601 strings)

Co-authored-by: Hồ Nhất Duy <mastoduy@gmail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/vi/
Translation: Tusky/Tusky
2023-05-14 15:35:54 +00:00
Hồ Nhất Duy
12512fd70a Translated using Weblate (Vietnamese)
Currently translated at 100.0% (22 of 22 strings)

Translation: Tusky/Tusky description
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky-app/vi/
2023-05-14 13:35:54 +00:00
Nik Clayton
81b15e72f3
Only fetch and display a given notification once (#3626)
When fetching:

- Maintain a marker with the position of the newest fetched notification
- Use the marker to determine which notifications to fetch
- Fetch notifications with min_id to ensure that none are lost
- Update the marker as necessary
- Perform a one-time immediate fetch of notifications on startup

When creating notifications:

- Identify each notification with tag=${MastodonNotificationId}, id=${account.id}
- Remove activeNotifications field, it's no longer necessary
- Use the tag/id tuple to reliably identify existing notifications and avoid creating duplicates
- Cancelling notifications for an account must iterate over all the notifications, and individually remove the notifications that exist for that account.
- Limit notifications to a maximum of 40 (excluding summary notifications)
- Remove notifications (oldest first) to get under this limit
- Rate limit notification creation to 1 per second, so the OS won't drop them

Adjust the summary notification:

- Ensure the summary notification and the child notifications have the same group key
- Dismiss the summary notification if there is only one child notification

NotificationClearBroadcastReceiver is no longer needed, so remove it, and the need for deletePendingIntent.

Fixes #3625, #3539
2023-05-13 16:00:28 +02:00
Konrad Pozniak
74a00c0591
Make links in bios of follow request and follow notifications work (#3646)
* make links in bios of follow request and follow notifications work
* use ClickableSpanTextView to display account notes
2023-05-13 15:32:56 +02:00
Nik Clayton
ad9e57cb10
Merge pull request #3644 from nailyk-weblate/weblate-tusky-tusky-app
Translations update from Weblate
2023-05-13 11:45:10 +02:00
Nik Clayton
7481e1930a
Merge pull request #3645 from nailyk-weblate/weblate-tusky-tusky
Translations update from Weblate
2023-05-13 11:44:41 +02:00