Commit graph

3628 commits

Author SHA1 Message Date
Sveinn í Felli
97b44228b7 Translated using Weblate (Icelandic)
Currently translated at 100.0% (601 of 601 strings)

Translated using Weblate (Icelandic)

Currently translated at 99.8% (600 of 601 strings)

Co-authored-by: Sveinn í Felli <sv1@fellsnet.is>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/is/
Translation: Tusky/Tusky
2023-06-11 15:14:11 +02:00
Nik Clayton
8fec41c2ae
Send UI errors to a channel instead of a shared flow (#3652)
In the previous code any errors that occured *before* a subscriber was
listening to `uiError` would be dropped, so the user would be unware
of them.

By implementing as a channel these errors will be shown to the user,
with an opportunity to retry the operation or report the error.
2023-06-11 14:00:05 +02:00
Nik Clayton
5e8a63a046
Throttle UI actions instead of debouncing (#3651)
Introduce Flow<T>.throttleFirst(). In a flow this emits the first value,
and each value afterwards that is > some timeout after the previous
value.

This prevents accidental double-taps on UI elements from generating
multiple-actions.

The previous code used debounce(). That has a similar effect, but with
debounce() the code has to wait until after the timeout period has
elapsed before it can process the action, leading to an unnecessary
UI delay.

With throttleFirst a value is emitted immediately, there's no need
to wait. It's subsequent values that are potentially throttled.
2023-06-11 13:34:22 +02:00
Nik Clayton
4025ab35ff
Move cache pruning to a WorkManager worker (#3649)
- Extend what was `NotificationWorkerFactory` to `WorkerFactory`. This
  can construct arbitrary Workers as long as they provide their own
  Factory for construction.

  The per-Worker factory contains any injected components just for that
  worker type, keeping `WorkerFactory` clean.

- Move `NotificationWorkerFactory` to the new model.

- Implement `PruneCacheWorker`, and remove the code from
 `CachedTimelineViewModel`.

- Create the periodic worker in `TuskyApplication`, ensuring that the
  database is only pruned when the device is idle.
2023-06-11 13:17:30 +02:00
Konrad Pozniak
85b7caa887
Replace deprecated getParcelable* methods with compat versions (#3633) 2023-06-11 12:58:55 +02:00
Konrad Pozniak
f23c0cc634
Refactor "trending hashtags" code (#3595)
- Fix codeformatting
- Add new refreshing state
- Disable LogConditional lint rule
- Update lint-baseline
2023-06-10 19:47:07 +02:00
Nik Clayton
071e00774e
Replace shortNumber() with formatNumber() (#3519)
formatNumber() was existing code to show numbers with suffixes like K, M, etc, so re-use that code and delete shortNumber().

Update the tests to (a) test formatNumber(), and (b) be parameterised.
2023-06-10 16:29:26 +02:00
Nik Clayton
039f18ce25
Prepare 22.0 (versionCode 110) (#3718) 2023-06-08 12:35:09 +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
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
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
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
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
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
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
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
Ihor Hordiichuk
82ff7e0b5c Translated using Weblate (Ukrainian)
Currently translated at 100.0% (601 of 601 strings)

Co-authored-by: Ihor Hordiichuk <igor_ck@outlook.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/uk/
Translation: Tusky/Tusky
2023-05-13 02:35:54 +00:00
puf
7c294268de Translated using Weblate (Welsh)
Currently translated at 100.0% (601 of 601 strings)

Co-authored-by: puf <puffinux@tutanota.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/cy/
Translation: Tusky/Tusky
2023-05-13 02:35:54 +00:00
Deleted User
6df8ccdc60 Translated using Weblate (German)
Currently translated at 100.0% (601 of 601 strings)

Co-authored-by: Deleted User <noreply+277@weblate.org>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/de/
Translation: Tusky/Tusky
2023-05-11 11:20:19 +00:00
Nik Clayton
c4b3b9c53f
Merge pull request #3574 from nailyk-weblate/weblate-tusky-tusky
Translations update from Weblate
2023-05-11 13:33:07 +02:00
Nik Clayton
baac55b6f6
Update app/src/main/res/values-fr/strings.xml 2023-05-11 13:23:08 +02:00
Nik Clayton
69ce3af1b1
Add missing "one" plural string for FR / hint_describe_for_visually_impaired 2023-05-11 13:21:09 +02:00
Nik Clayton
7f8f04460c
Add entry for "or" to locales_config.xml and donottranslate.xml (#3584) 2023-05-11 12:54:51 +02:00
Nik Clayton
b12e772a0b
FilterResult.status_matches is a List<String>? (#3634)
See https://github.com/mastodon/documentation/pull/1214
2023-05-09 17:56:48 +02:00
Deleted User
718a7b125d Translated using Weblate (German)
Currently translated at 100.0% (601 of 601 strings)

Co-authored-by: Deleted User <noreply+276@weblate.org>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/de/
Translation: Tusky/Tusky
2023-05-09 15:44:10 +00:00
Paul Sanz
95fd4918c5 Translated using Weblate (Spanish)
Currently translated at 95.1% (572 of 601 strings)

Co-authored-by: Paul Sanz <registro@polkillas.net>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/es/
Translation: Tusky/Tusky
2023-05-09 15:44:10 +00:00
Hakan
e4f766d447 Translated using Weblate (Turkish)
Currently translated at 100.0% (601 of 601 strings)

Co-authored-by: Hakan <hakanutku@gmail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/tr/
Translation: Tusky/Tusky
2023-05-09 15:44:10 +00:00
GunChleoc
0fe45c5238 Translated using Weblate (Gaelic)
Currently translated at 100.0% (601 of 601 strings)

Co-authored-by: GunChleoc <fios@foramnagaidhlig.net>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/gd/
Translation: Tusky/Tusky
2023-05-09 15:44:10 +00:00
TAKAHASHI Shuuji
d9b1abc90e Translated using Weblate (Japanese)
Currently translated at 92.5% (556 of 601 strings)

Co-authored-by: TAKAHASHI Shuuji <shuuji3@gmail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/ja/
Translation: Tusky/Tusky
2023-05-09 15:44:10 +00:00
xzFantom
18a224c53b Translated using Weblate (Belarusian)
Currently translated at 98.0% (589 of 601 strings)

Translated using Weblate (Belarusian)

Currently translated at 95.0% (571 of 601 strings)

Co-authored-by: xzFantom <xzfantom@gmail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/be/
Translation: Tusky/Tusky
2023-05-09 15:44:10 +00:00
Subham Jena
be8be43bc4 Translated using Weblate (Odia)
Currently translated at 2.3% (14 of 601 strings)

Co-authored-by: Subham Jena <subhamjena8465@gmail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/or/
Translation: Tusky/Tusky
2023-05-09 15:44:10 +00:00
codl
22b1a2c1e0 Translated using Weblate (French)
Currently translated at 100.0% (601 of 601 strings)

Translated using Weblate (French)

Currently translated at 97.8% (588 of 601 strings)

Translated using Weblate (French)

Currently translated at 89.5% (538 of 601 strings)

Translated using Weblate (French)

Currently translated at 79.5% (478 of 601 strings)

Co-authored-by: codl <codl@codl.fr>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/fr/
Translation: Tusky/Tusky
2023-05-09 15:44:10 +00:00
Deleted User
f7aaeedabf Translated using Weblate (German)
Currently translated at 100.0% (601 of 601 strings)

Co-authored-by: Deleted User <noreply+272@weblate.org>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/de/
Translation: Tusky/Tusky
2023-05-09 15:44:10 +00:00
Connyduck
05850ec216 Added translation using Weblate (Odia)
Co-authored-by: Connyduck <weblate@connyduck.at>
2023-05-09 15:44:10 +00:00
Nik Clayton
367240a612
Save the user's reading position in the home timeline (#3614)
- Add a field to AccountEntity to hold the reading position
- Provide a method to save in the viewmodel to save the position
- Save the position when TimelineFragment pauses

Does not restore the position yet.
2023-05-08 13:57:17 +02:00
Konrad Pozniak
d2747811be
Fix crash in ViewThreadFragment.removeItem (#3622) 2023-05-05 12:03:42 +02:00
Nik Clayton
80774f35f8
Prepare v22.0 beta 2 release (#3611)
- Bump versionCode and versionName
- Create new fastlane changelog
- Update CHANGELOG.md
2023-05-04 16:01:00 +02:00
Nik Clayton
7ce5048752
Show the requester's bio in a "wants to follow you" notification (#3284) 2023-05-04 16:00:30 +02:00
UlrichKu
1040358f3c
Ensure text field has focus when reporting statuses 2023-05-04 14:53:27 +02:00
Nik Clayton
c154aaa17d
Ignore LogConditional issues (#3615)
Logs are stripped in release builds, this is an unnecessary lint
2023-05-04 14:50:21 +02:00
Nik Clayton
a7001eecb8
Use the tab's contentDescription as the toolbar title (#3609)
Previous code had an IndexOutOfBoundsException where tab.position could be larger than the tabs array.
2023-05-04 13:19:44 +02:00
Nik Clayton
4da758c1f7
Check for non-empty pages when falling back (#3603)
Requesting a non-existent notification ID will cause the fall-back requests to succeed but return empty lists which stops pagination.

Check for this, and in the worst case, fall back to returning the most recent notifications.
2023-05-04 13:19:28 +02:00
Konrad Pozniak
62b91664e9
Allow multiline polls (this time for real) (#3608) 2023-05-03 09:05:05 +02:00
Konrad Pozniak
5abd3dc9fe
fix reporting (#3607) 2023-05-02 18:20:02 +02:00
UlrichKu
5cac17b7a9
#3430: (fix) do not hide the anchor of the FAB (#3561)
On Account preferences > Filters

With the list hidden on an empty view the FAB is erroneouly placed on the top left of the screen.

(Introduced with #3430)
2023-04-30 21:51:36 +02:00
Nik Clayton
0a39ee7ded
Force a layout pass to ensure spans are measured correctly (#3600)
Fixes https://github.com/tuskyapp/Tusky/issues/3596
2023-04-30 21:50:52 +02:00
Konrad Pozniak
11cf93fa55
Remove unused class PairedList (#3602) 2023-04-30 21:49:05 +02:00
Nik Clayton
ccab33dd0f
Add additional margin after the "X <performed an action>" view (#3597)
Add additional 6dp margin to the top of the username view, to provide more space after the "X <performed an action>" view, consistent with item_follow.xml.
2023-04-30 14:28:01 +02:00
Nik Clayton
03031e5716
Set initialLoadSize = pageSize (#3598)
The pageSize is large enough that there's no need for the default 3 x pageSize initialLoadSize value, and this improves performance.

Fixes https://github.com/tuskyapp/Tusky/issues/3578
2023-04-29 19:34:29 +02:00
Nik Clayton
152318ce85
Show filter title instead of filter keywords (#3589)
Avoid showing the user the things they have filtered on when showing a filter placeholder in a timeline.
2023-04-29 18:56:27 +02:00
Nik Clayton
5c28cba57d
Show 0/1/1+ for replies, even if show stats is off (#3590)
Fixes https://github.com/tuskyapp/Tusky/issues/3588
2023-04-29 16:49:04 +02:00
Konrad Pozniak
a5578cf765
Check view is non-null before scrolling, fix crash in NotificationsFragment (#3594)
The posted message runs at the end of the message queue, by which time the view may no longer exist.
2023-04-29 16:39:49 +02:00
Nik Clayton
2f512705e8
Fix IndexOutOfBoundsException in onPause (#3581)
Use `getOrNull` instead of `get`, which was occasionally throwing IndexOutOfBoundsException.
2023-04-27 12:59:32 +02:00
Nik Clayton
ae1f62d317
Prepare v22.0 beta 1 release (#3567)
- Bump versionCode and versionName
- Create new fastlane changelog
- Add more detailed changelog to CHANGELOG.md
2023-04-25 13:00:08 +02:00
Nik Clayton
23c3c3b492
Fix translation merge conflicts (#3563) 2023-04-24 15:27:54 +02:00
Nik Clayton
4754388f99
Add padding below status content (#3559)
Fixes #3550
2023-04-24 14:58:49 +02:00
Nik Clayton
f1b3faf85f
Show the follower's bio/note in a "followed you" notification (#3281)
This makes the notification view for a follow request contain more info about the new follower, and makes the layout (of their name / username) consistent with other notifications that show names/usernames.
2023-04-24 12:09:34 +02:00
Konrad Pozniak
af2727b633
Remove shrinker rules for okhttp (#3560)
Now included automatically in OkHttp.
2023-04-24 12:08:03 +02:00
UlrichKu
24d7ef7ccb
Always publish image alt text
Previous code would discard the image alt-text if the user finished writing the text before the image had finished uploading.

This code ensures the text is set after the image has completed uploading.
2023-04-24 11:48:40 +02:00
Nik Clayton
168be9223d
Disable lint checks for unused resource IDs (#3557)
* Disable lint checks for unused resource IDs

The check doesn't catch some instances where resources are used through viewbinding, and has too many false positives to be useful.

* Regenerate lint baseline

Delete the existing file, then regenerated with `.\gradlew lintBlueDebug -Dlint.baselines.continue=true`
2023-04-24 09:20:03 +02:00
UlrichKu
8de5613b47
3509: Ensure filter edit dialog is scrollable (#3510) 2023-04-23 22:39:19 +02:00
Nik Clayton
73be497bbe
Merge pull request #3513 from Lakoja/fix-relationship-crash
Do not crash on empty relationship response
2023-04-23 18:36:13 +02:00
Nik Clayton
b57db0589d
Merge pull request #3514 from Lakoja/fix-edgy-crashes
Do not crash on/avoid index out of bounds
2023-04-21 19:52:45 +02:00
UlrichKu
b14549e041
3503: SwipeRefreshLayout must be higher level (#3504)
* 3503: SwipeRefreshLayout must be higher level

* 3503: Fix notifications view a bit

* 3503: Wrap recycler views and message views in the swipe-to-refresh if all are present
2023-04-20 19:36:29 +02:00
UlrichKu
040268e2d3
3492: Correctly shorten name in drawer and notifications (#3495)
* #3492: Correctly shorten name in drawer and notifications

* Trigger linter again

* 3492: Use a flat ContraintLayout for everything
2023-04-08 16:55:32 +02:00
XoseM
3f680872b5 Translated using Weblate (Galician)
Currently translated at 100.0% (603 of 603 strings)

Co-authored-by: XoseM <xosem@disroot.org>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/gl/
Translation: Tusky/Tusky
2023-04-08 09:04:58 +00:00
Hồ Nhất Duy
33144c28fa Translated using Weblate (Vietnamese)
Currently translated at 100.0% (603 of 603 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-04-08 09:04:58 +00:00
Ihor Hordiichuk
3264b9706b Translated using Weblate (Ukrainian)
Currently translated at 100.0% (603 of 603 strings)

Co-authored-by: Ihor Hordiichuk <igor_ck@outlook.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/uk/
Translation: Tusky/Tusky
2023-04-08 09:04:58 +00:00
Eric
d9cb87d522 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (603 of 603 strings)

Co-authored-by: Eric <alchemillatruth@purelymail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/zh_Hans/
Translation: Tusky/Tusky
2023-04-08 09:04:58 +00:00
Danial Behzadi
bddf4481a7 Translated using Weblate (Persian)
Currently translated at 100.0% (603 of 603 strings)

Co-authored-by: Danial Behzadi <dani.behzi@ubuntu.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/fa/
Translation: Tusky/Tusky
2023-04-08 09:04:58 +00:00
Lakoja
bca98d2f48 Do not crash on/avoid index out of bounds 2023-04-05 15:48:40 +02:00
Lakoja
eb52c8ca58 Do not crash on empty relationship response 2023-04-05 10:54:03 +02:00
UlrichKu
cf50d0563f
3416: Call the list activity when list list empty (#3426)
* 3416: Call the list activity when empty; show failure on loading

* 3416: Revert include grouping

* 3416: Remove faulty include after merge

* 3416: Added a list loading progress

* 3416: Add proper padding to progress

* 3416: Show a text if there are no lists, do not change dialog title

* 3416: Center things in layout

* 3416: Appease linter (?)

* 3416: Do not hide manage lists button

* 3416: Use ThemeUtils
2023-03-30 21:23:08 +02:00
UlrichKu
eee1414aff
#2528: Also clear notifications on refresh in notifications timeline (#3498) 2023-03-30 19:38:44 +02:00
UlrichKu
8958c50de7
#3178: Increase contrast for separator lines in dark themes (#3497) 2023-03-30 19:31:23 +02:00
UlrichKu
23381d45d7
3430: Make list refresh/retry consistent (#3474)
* 3430: Make list refresh/retry consistent

* 3430: Add swipe-to-refresh and use states in filter lists
2023-03-30 19:29:42 +02:00
Conny Duck
fcd997f36c Merge remote-tracking branch 'weblate/develop' into develop
# Conflicts:
#	app/src/main/res/values-es/strings.xml
#	app/src/main/res/values-gl/strings.xml
2023-03-30 19:00:34 +02:00
Konrad Pozniak
60af582750
Merge pull request #3490 from nailyk-weblate/weblate-tusky-tusky
Translations update from Weblate
2023-03-30 18:52:39 +02:00
Konrad Pozniak
24dd68c996
distinguish between different error types in ScheduledStatusActivity (#3487) 2023-03-30 18:52:24 +02:00
Ali Rohman
4f34c2effa Translated using Weblate (Indonesian)
Currently translated at 40.3% (242 of 600 strings)

Co-authored-by: Ali Rohman <laymoth@pm.me>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/id/
Translation: Tusky/Tusky
2023-03-30 16:42:49 +00:00
Quentí
8d122989da Translated using Weblate (Occitan)
Currently translated at 98.5% (591 of 600 strings)

Co-authored-by: Quentí <quentinantonin@free.fr>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/oc/
Translation: Tusky/Tusky
2023-03-30 16:42:49 +00:00
Deleted User
6f1e5ba744 Translated using Weblate (German)
Currently translated at 100.0% (600 of 600 strings)

Co-authored-by: Deleted User <noreply+268@weblate.org>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/de/
Translation: Tusky/Tusky
2023-03-30 16:42:49 +00:00
XoseM
8c5f1209ab Translated using Weblate (Galician)
Currently translated at 100.0% (600 of 600 strings)

Translated using Weblate (Galician)

Currently translated at 94.0% (564 of 600 strings)

Co-authored-by: XoseM <xosem@disroot.org>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/gl/
Translation: Tusky/Tusky
2023-03-30 16:42:49 +00:00
Hồ Nhất Duy
33cac594ca Translated using Weblate (Vietnamese)
Currently translated at 100.0% (600 of 600 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-03-30 16:42:49 +00:00
Eric
8b38f5b75b Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (600 of 600 strings)

Co-authored-by: Eric <alchemillatruth@purelymail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/zh_Hans/
Translation: Tusky/Tusky
2023-03-30 16:42:49 +00:00
Danial Behzadi
00d1d4aeb5 Translated using Weblate (Persian)
Currently translated at 100.0% (600 of 600 strings)

Co-authored-by: Danial Behzadi <dani.behzi@ubuntu.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/fa/
Translation: Tusky/Tusky
2023-03-30 16:42:49 +00:00
Paul Sanz
92642f73e8 Translated using Weblate (Spanish)
Currently translated at 95.5% (573 of 600 strings)

Translated using Weblate (Spanish)

Currently translated at 95.1% (571 of 600 strings)

Co-authored-by: Paul Sanz <registro@polkillas.net>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/es/
Translation: Tusky/Tusky
2023-03-30 16:42:49 +00:00
XoseM
f76c354aff Translated using Weblate (Galician)
Currently translated at 94.0% (564 of 600 strings)

Co-authored-by: XoseM <xosem@disroot.org>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/gl/
Translation: Tusky/Tusky
2023-03-28 03:46:14 +00:00
Hồ Nhất Duy
99f5980f8e Translated using Weblate (Vietnamese)
Currently translated at 100.0% (600 of 600 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-03-28 03:46:14 +00:00
Eric
6db5b788b6 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (600 of 600 strings)

Co-authored-by: Eric <alchemillatruth@purelymail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/zh_Hans/
Translation: Tusky/Tusky
2023-03-28 03:46:14 +00:00
Danial Behzadi
ddbd859d45 Translated using Weblate (Persian)
Currently translated at 100.0% (600 of 600 strings)

Co-authored-by: Danial Behzadi <dani.behzi@ubuntu.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/fa/
Translation: Tusky/Tusky
2023-03-28 03:46:14 +00:00
Paul Sanz
bfab84ce89 Translated using Weblate (Spanish)
Currently translated at 95.1% (571 of 600 strings)

Co-authored-by: Paul Sanz <registro@polkillas.net>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/es/
Translation: Tusky/Tusky
2023-03-28 03:46:14 +00:00
UlrichKu
9e66ccf4a6
3434: Make description dialog (text field) more usable (#3458)
* 3434: Make description dialog (text field) more usable

* 3434: Close dialog on back button

* 3434: Use a TextInputLayout

* 3434: Adapt German plurals text

* 3434: Remove unused id

* 3434: Disable counter officially
2023-03-24 18:21:56 +01:00
Eric
8ade624e69 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (598 of 598 strings)

Co-authored-by: Eric <alchemillatruth@purelymail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/zh_Hans/
Translation: Tusky/Tusky
2023-03-24 15:49:05 +00:00
xzFantom
8f67b344c3 Translated using Weblate (Belarusian)
Currently translated at 94.1% (562 of 597 strings)

Co-authored-by: xzFantom <xzfantom@gmail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/be/
Translation: Tusky/Tusky
2023-03-24 15:49:05 +00:00
Ihor Hordiichuk
3d4a6e7898 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (598 of 598 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (598 of 598 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (597 of 597 strings)

Co-authored-by: Ihor Hordiichuk <igor_ck@outlook.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/uk/
Translation: Tusky/Tusky
2023-03-24 15:49:05 +00:00
Gera, Zoltan
11c218012d Translated using Weblate (Hungarian)
Currently translated at 100.0% (597 of 597 strings)

Co-authored-by: Gera, Zoltan <gerazo@manioka.hu>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/hu/
Translation: Tusky/Tusky
2023-03-24 15:49:05 +00:00
Hồ Nhất Duy
a98b450d50 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (598 of 598 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (598 of 598 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (597 of 597 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-03-24 15:49:05 +00:00
Sveinn í Felli
51300bae42 Translated using Weblate (Icelandic)
Currently translated at 100.0% (597 of 597 strings)

Translated using Weblate (Icelandic)

Currently translated at 95.8% (572 of 597 strings)

Co-authored-by: Sveinn í Felli <sv1@fellsnet.is>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/is/
Translation: Tusky/Tusky
2023-03-24 15:49:05 +00:00
Danial Behzadi
e5b5c6e24e Translated using Weblate (Persian)
Currently translated at 100.0% (598 of 598 strings)

Translated using Weblate (Persian)

Currently translated at 100.0% (597 of 597 strings)

Co-authored-by: Danial Behzadi <dani.behzi@ubuntu.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/fa/
Translation: Tusky/Tusky
2023-03-24 15:49:05 +00:00
UlrichKu
aa5703fd5d
3435: Have loading progress visible (shares with recycler view and moved to top) (#3453) 2023-03-24 16:57:21 +01:00
UlrichKu
b70e4be305
3469: Do not jump in the list on the (second) refresh (#3471) 2023-03-24 16:26:50 +01:00
Konrad Pozniak
787f88b801
remove Rx from AccountViewModel and ReportViewModel (#3463) 2023-03-22 22:00:03 +01:00
UlrichKu
8c519af611
3408: Only support iconics (get rid of "discouraged api") (#3476)
* 3408: Only support iconics (get rid of "discouraged api")

* 3408: Remove unused import
2023-03-21 22:19:34 +01:00
UlrichKu
182df2bfae
3408 home help message (#3415)
* 3408: First draft of help message on empty home timeline

* 3408: Move image spanning to utils; tweak gui a bit (looks like status)

* 3408: Use proper R again; appease linter

* 3408: Add doc; remove narrow comment

* 3408: null is default

* 3408: Add German text

* 3408: Stack refresh animation on top of help message (reorder)
2023-03-21 19:44:35 +01:00
UlrichKu
9484a8b2b9
3457: Allow multi-line poll options (#3459) 2023-03-21 19:34:18 +01:00
UlrichKu
0c36b369dd
3159: Correctly refresh timestamps (#3456)
* 3159: Correctly refresh timestamp (of all elements) and refresh all on display options change

* Remove unnecessary import

* 3159: Remove unnecessary semicolon

* 3159: Remove todo question
2023-03-21 19:01:33 +01:00
Konrad Pozniak
3d71b6e69a
add lint to ci checks (#3462)
* add lint to ci checks

* update lint baseline
2023-03-21 18:56:11 +01:00
UlrichKu
d754df8f07
3472: Give polls a default duration (#3473) 2023-03-21 18:52:38 +01:00
Eric
af762db529 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (597 of 597 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (597 of 597 strings)

Co-authored-by: Eric <alchemillatruth@purelymail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/zh_Hans/
Translation: Tusky/Tusky
2023-03-18 09:16:59 +00:00
Danial Behzadi
b9e2695597 Translated using Weblate (Persian)
Currently translated at 100.0% (597 of 597 strings)

Co-authored-by: Danial Behzadi <dani.behzi@ubuntu.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/fa/
Translation: Tusky/Tusky
2023-03-18 09:16:59 +00:00
Hồ Nhất Duy
b12b06a8c2 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (596 of 596 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-03-18 09:16:59 +00:00
Mārtiņš Bruņenieks
2b13b96372 Translated using Weblate (Latvian)
Currently translated at 91.1% (543 of 596 strings)

Translated using Weblate (Latvian)

Currently translated at 90.7% (541 of 596 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-03-18 09:16:59 +00:00
Rhoslyn Prys
5c7bd41109 Translated using Weblate (Welsh)
Currently translated at 100.0% (596 of 596 strings)

Co-authored-by: Rhoslyn Prys <post@meddal.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/cy/
Translation: Tusky/Tusky
2023-03-18 09:16:59 +00:00
Nik Clayton
81f725667e
Show better errors when loading notifications fails (#3448)
* Show better errors with notification loading fails

The errors are returned as a JSON object, parse it, and show the error
message it contains.

Handle the cases where there might be no error message, or the JSON may be
malformed.

Add tests.

Fixes #3445

* Lint
2023-03-18 10:25:41 +01:00
Konrad Pozniak
321d17f5de
Remove Rx from EventHub and TimelineCases (#3446)
* remove Rx from EventHub and TimelineCases

* fix tests

* fix AccountViewModel.unblockDomain

* remove debug logging
2023-03-18 10:11:47 +01:00
Nik Clayton
c36b243745
Show reblog/favourite confirmations as menus not dialogs (#3418)
* Show reblog/favourite confirmations as menus not dialogs

The previous code used dialogs and displayed the text of the status when
reblogging or favouriting.

This didn't work when the post just contained images, and other material
from the status (content warning, polls) was not shown either.

Fix this by displaying a popup menu instead. The status remains visible so
the user can clearly see what they're acting on.

In addition, this lays the groundwork for supporting a long-press menu
in the future to allow the user to reblog/favourite from a different
account.

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

* Revert the change that puts the menu immediately over the icon

Although this behavious is consistent with how the option menu works, I
decided that the risk of someone inadvertently double-tapping in the same
location, and the first tap opens the menu and the second tap confirms the
action was too great.

So now the menu appears either above or below the icon depending on space,
and the user has to tap in two slightly different spaces.

This is also consistent with the previous behaviour, where it's highly
unlikely that the confirm button on the dialog would have been directly
under the user's finger if they double-tapped.
2023-03-18 09:37:55 +01:00
Nik Clayton
61720c3472
Meet accessibility guidelines for clickable spans (#3382)
Clickable spans in textviews do not normally meet the Android accessibility
guidelines of a minimum 48dp square touch target.

This can't be fixed with a `TouchDelegate`, as the span is not a separate
view to which the delegate can be attached.

Add `ClickableSpanTextView`. If used instead of a `TextView`, any spans
from `ClickableSpan` will have their touchable area extended to meet the
48dp minimum.

The touchable area is still bounded by the size of the view.

If two spans are closer together than 48dp then the closest span to the
touch wins.

Co-authored-by: Konrad Pozniak <connyduck@users.noreply.github.com>
2023-03-18 08:57:39 +01:00
Grigorii Ioffe
75e7b9f1a5
Show toot stat inline (#3413)
* Show toot stat inline

* Correct elements position

* Format stats and show it according to setting

* inline toot statistics setting

* Code formatting

* Use kotlin functions

* Change the statistics setting description

* Use capital letters for all variants

* increase the statistics margin

* Merge fixes

* Code review fixes

* move setReblogsCount and setFavouritedCount to StatusViewHolder

* code cleaning

* code cleaning

* import lexicographical order

---------

Co-authored-by: Grigorii Ioffe <zikasaks@gmail.com>
Co-authored-by: grigoriiioffe <zikasaks@icloud.com>
2023-03-18 08:57:26 +01:00
UlrichKu
9087d0ecdd
Fix doubled line from PR 3188 (support mastodon filter api) (#3460) 2023-03-18 08:05:39 +01:00
Konrad Pozniak
3bb92d51bf
remove Rx from TabPreferenceActivity (#3444) 2023-03-13 13:16:58 +01:00
Konrad Pozniak
bab178166d
update AndroidX lifecycle to 2.6.0, fix deprecation (#3443) 2023-03-13 13:16:49 +01:00
Konrad Pozniak
d839f18267
update ktlint plugin to 11.3.1, format code (#3442) 2023-03-13 13:16:39 +01:00
Deleted User
ab986a4ca0 Translated using Weblate (German)
Currently translated at 100.0% (596 of 596 strings)

Co-authored-by: Deleted User <noreply+267@weblate.org>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/de/
Translation: Tusky/Tusky
2023-03-13 09:15:23 +00:00
Deleted User
ae3cd32846 Translated using Weblate (German)
Currently translated at 100.0% (596 of 596 strings)

Co-authored-by: Deleted User <noreply+266@weblate.org>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/de/
Translation: Tusky/Tusky
2023-03-13 09:15:23 +00:00
ButterflyOfFire
d61c630e03 Translated using Weblate (Arabic)
Currently translated at 93.2% (556 of 596 strings)

Co-authored-by: ButterflyOfFire <butterflyoffire@protonmail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/ar/
Translation: Tusky/Tusky
2023-03-13 09:15:23 +00:00
Quentí
cac75be82a Translated using Weblate (Occitan)
Currently translated at 99.1% (591 of 596 strings)

Co-authored-by: Quentí <quentinantonin@free.fr>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/oc/
Translation: Tusky/Tusky
2023-03-13 09:15:23 +00:00
Mārtiņš Bruņenieks
5afdf9bdb6 Translated using Weblate (Latvian)
Currently translated at 93.2% (540 of 579 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-03-13 09:15:23 +00:00
Ihor Hordiichuk
48a9d20c11 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (596 of 596 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (579 of 579 strings)

Co-authored-by: Ihor Hordiichuk <igor_ck@outlook.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/uk/
Translation: Tusky/Tusky
2023-03-13 09:15:23 +00:00
Deleted User
0324bbc0c0 Translated using Weblate (German)
Currently translated at 100.0% (579 of 579 strings)

Co-authored-by: Deleted User <noreply+265@weblate.org>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/de/
Translation: Tusky/Tusky
2023-03-13 09:15:23 +00:00
puf
a1bff13444 Translated using Weblate (Welsh)
Currently translated at 100.0% (567 of 567 strings)

Co-authored-by: puf <puffinux@tutanota.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/cy/
Translation: Tusky/Tusky
2023-03-13 09:15:23 +00:00
Rhoslyn Prys
1c26aa4ea7 Translated using Weblate (Welsh)
Currently translated at 100.0% (567 of 567 strings)

Co-authored-by: Rhoslyn Prys <post@meddal.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/cy/
Translation: Tusky/Tusky
2023-03-13 09:15:23 +00:00
Ricard Torres
ca5e08a6f3 Translated using Weblate (Catalan)
Currently translated at 96.1% (573 of 596 strings)

Translated using Weblate (Catalan)

Currently translated at 100.0% (567 of 567 strings)

Co-authored-by: Ricard Torres <ricard@ricard.dev>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/ca/
Translation: Tusky/Tusky
2023-03-13 09:15:23 +00:00
Manuel
89f827a866 Translated using Weblate (Italian)
Currently translated at 100.0% (567 of 567 strings)

Co-authored-by: Manuel <mannivuwiki@gmail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/it/
Translation: Tusky/Tusky
2023-03-13 09:15:23 +00:00