Commit Graph

3935 Commits

Author SHA1 Message Date
Nik Clayton f0fc0fd530
refactor: Modularise core activity classes, (#393)
Continue modularisation by moving core activity classes that almost all
activities depende on to a `core.activity` module. This includes
core "helper" classes as well.

Implement core.activity:
- Contains BaseActivity, BottomSheetActivity
- Contains LinkHelper and other utility classes used by activities

Implement core.common.extensions:
- Move ViewBindingExtensions and ViewExtensions here

Implement core.common.util:
- Move BlurHashDecoder and VersionName here

Implement core.designsystem:
- Holds common resources (animations, colours, drawables, etc) used
  through the app
- Import "core.designsystem.R as DR" through the app to distinguish
  from the module's own resources

Implement feature.login:
- Move the LoginActivity and related code/resources to its own module

Implement tools/mvstring
- Moves string resources (and all translations) from one module to
  another
2024-01-30 11:37:00 +01:00
Nik Clayton 741bf56f38
chore: Prepare release 2.2.0 (versionCode 11) (#392) 2024-01-29 10:09:57 +01:00
Nik Clayton b454fdceb9
fix: Allow users to retry errors when fetching server info (#391)
Previous code would show errors when fetching server info but with no
mechanism to retry the operation, so it would "stick" until the user
restarted the app.

Fix this with a retry action.

While I'm here use styles to ensure that all snackbars are 5 lines max
length and remove code that sets the length.
2024-01-28 20:13:39 +01:00
Nik Clayton 355244a8e2
refactor: Destructure maps for more idiomatic code (#388) 2024-01-26 12:32:45 +01:00
Nik Clayton fc81e8bad7
fix: Ensure actions happen against the correct status (#373)
Previously when the user interacted with a status the operation (reblog,
favourite, etc) travels through multiple layers of code, carrying with
it the position of the item in the list that the user operated on.

At some point the status is retrieved from the list using its position
so that the correct status ID can be used in the network operation.

If this happens while the list is also refreshing there's a possible
race condition, and the original status' position may have changed in
the list. Looking up the status by position to determine which status to
perform the action on may cause the action to happen on the wrong
status.

Fix this by passing the status' viewdata to any actions instead of its
position. This includes all the information necessary to make the API
call, so there is no chance of a race.

This is quite an involved change because there are three types of
viewdata:

- `StatusViewData`, used for regular timelines
- `NotificationViewData`, used for notifications, may wrap a status that
can be operated on
- `ConversationViewData`, used for conversations, does wrap a status

The previous code treated them all differently, which is probably why it
operated by position instead of type.

The high level fix is to:

1. Create an interface, `IStatusViewData`, that contains the data
exposed by any viewdata that contains a status.

2. Implement the interface in `StatusViewData`, `NotificationViewData`,
and `ConversationViewData`.

3. Change the code that operates on viewdata (`SFragment`,
`StatusActionListener`, etc) to be generic over anything that implements
`IStatusViewData`.

4. Change the code that handles actions to pass the viewdata instead of
the position.

Fixes #370
2024-01-26 12:15:27 +01:00
Nik Clayton c48b8bf545
fix: Don't leak MainActivity in DrawerImageLoader (#382)
Previous code created the drawer image loader as an anonymous inner
class that kept a reference to `glide`, which had a reference to `this`
and could leak.

Fix that by create a separate class that takes these as constructor
parameters.
2024-01-25 17:45:20 +01:00
bittin1ddc447d824349b2 928955e886 fix(l10n): Update Swedish translations
Currently translated at 100.0% (658 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/sv/
2024-01-25 11:28:08 +01:00
bittin1ddc447d824349b2 8dc56be8b6 fix(l10n): Update Swedish translations
Currently translated at 100.0% (658 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/sv/
2024-01-25 11:28:08 +01:00
Reza Almanda 1fc306d890 fix(l10n): Update Indonesian translations
Currently translated at 44.2% (291 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/id/
2024-01-25 11:28:08 +01:00
Anonymous 092a91312a fix(l10n): Update Chinese (Simplified) (zh_MO) translations
Currently translated at 51.5% (339 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/zh_MO/
2024-01-25 11:28:08 +01:00
Anonymous 1e638af89e fix(l10n): Update Chinese (Simplified) translations
Currently translated at 92.0% (606 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/zh_Hans/
2024-01-25 11:28:08 +01:00
Anonymous 28b34aee64 fix(l10n): Update Vietnamese translations
Currently translated at 92.0% (606 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/vi/
2024-01-25 11:28:08 +01:00
Anonymous ec8666edc5 fix(l10n): Update Ukrainian translations
Currently translated at 91.6% (603 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/uk/
2024-01-25 11:28:08 +01:00
Anonymous 0857f3d61d fix(l10n): Update Turkish translations
Currently translated at 91.7% (604 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/tr/
2024-01-25 11:28:08 +01:00
Anonymous 7fb2cd9af1 fix(l10n): Update Thai translations
Currently translated at 66.4% (437 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/th/
2024-01-25 11:28:08 +01:00
Anonymous 6ef6ac15df fix(l10n): Update Slovenian translations
Currently translated at 58.0% (382 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/sl/
2024-01-25 11:28:08 +01:00
Anonymous 92c94ae2b9 fix(l10n): Update Sinhala translations
Currently translated at 36.4% (240 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/si/
2024-01-25 11:28:08 +01:00
Anonymous 9a17096f8d fix(l10n): Update Sanskrit translations
Currently translated at 78.1% (514 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/sa/
2024-01-25 11:28:08 +01:00
Anonymous 11a8429327 fix(l10n): Update Portuguese (Portugal) translations
Currently translated at 78.5% (517 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/pt_PT/
2024-01-25 11:28:08 +01:00
Anonymous b36eba9092 fix(l10n): Update Occitan translations
Currently translated at 91.1% (600 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/oc/
2024-01-25 11:28:08 +01:00
Anonymous b3427f823e fix(l10n): Update Norwegian Bokmål translations
Currently translated at 90.5% (596 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/nb_NO/
2024-01-25 11:28:08 +01:00
Anonymous 73c80825f1 fix(l10n): Update Latvian translations
Currently translated at 83.2% (548 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/lv/
2024-01-25 11:28:08 +01:00
Anonymous 3829e8bd31 fix(l10n): Update Korean translations
Currently translated at 57.2% (377 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/ko/
2024-01-25 11:28:08 +01:00
Anonymous 9a68df58f6 fix(l10n): Update Kabyle translations
Currently translated at 37.3% (246 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/kab/
2024-01-25 11:28:08 +01:00
Anonymous 978f1fccee fix(l10n): Update Icelandic translations
Currently translated at 90.5% (596 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/is/
2024-01-25 11:28:08 +01:00
Anonymous 612043d3fe fix(l10n): Update Hungarian translations
Currently translated at 90.5% (596 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/hu/
2024-01-25 11:28:08 +01:00
Anonymous 4d8e8fa020 fix(l10n): Update Hindi translations
Currently translated at 55.9% (368 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/hi/
2024-01-25 11:28:08 +01:00
Anonymous 9e1b6f9d02 fix(l10n): Update Galician translations
Currently translated at 91.9% (605 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/gl/
2024-01-25 11:28:08 +01:00
Anonymous c1c99db75b fix(l10n): Update Gaelic translations
Currently translated at 91.6% (603 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/gd/
2024-01-25 11:28:08 +01:00
Anonymous 79648170d1 fix(l10n): Update Irish translations
Currently translated at 64.5% (425 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/ga/
2024-01-25 11:28:08 +01:00
Anonymous 53c1485dbf fix(l10n): Update French translations
Currently translated at 89.3% (588 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/fr/
2024-01-25 11:28:08 +01:00
Anonymous ab7003efc4 fix(l10n): Update Persian translations
Currently translated at 92.0% (606 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/fa/
2024-01-25 11:28:08 +01:00
Anonymous 9ddb965d6b fix(l10n): Update Basque translations
Currently translated at 71.5% (471 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/eu/
2024-01-25 11:28:08 +01:00
Anonymous 4b4a736db0 fix(l10n): Update Esperanto translations
Currently translated at 74.0% (487 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/eo/
2024-01-25 11:28:08 +01:00
Anonymous 181b8198be fix(l10n): Update German translations
Currently translated at 97.7% (643 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/de/
2024-01-25 11:28:08 +01:00
Anonymous 2fd6f96706 fix(l10n): Update Welsh translations
Currently translated at 92.0% (606 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/cy/
2024-01-25 11:28:08 +01:00
Anonymous b36cf1dbc0 fix(l10n): Update Czech translations
Currently translated at 74.9% (493 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/cs/
2024-01-25 11:28:08 +01:00
Anonymous 2979959e87 fix(l10n): Update Kurdish (Central) translations
Currently translated at 63.3% (417 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/ckb/
2024-01-25 11:28:08 +01:00
Anonymous d0e77b4a5c fix(l10n): Update Catalan translations
Currently translated at 84.8% (558 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/ca/
2024-01-25 11:28:08 +01:00
Anonymous cc5a535730 fix(l10n): Update Bengali (India) translations
Currently translated at 62.4% (411 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/bn_IN/
2024-01-25 11:28:08 +01:00
Anonymous 8919650cc7 fix(l10n): Update Bengali (Bangladesh) translations
Currently translated at 66.7% (439 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/bn_BD/
2024-01-25 11:28:08 +01:00
Anonymous 50f4df1693 fix(l10n): Update Belarusian translations
Currently translated at 88.1% (580 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/be/
2024-01-25 11:28:08 +01:00
Reza Almanda d501d7d35d fix(l10n): Update Indonesian translations
Currently translated at 42.6% (277 of 650 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/id/
2024-01-25 11:28:08 +01:00
Reza Almanda 1e13a040b4 fix(l10n): Update Indonesian translations
Currently translated at 40.3% (262 of 650 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/id/
2024-01-25 11:28:08 +01:00
Nik Clayton dcc2954148
fix: Show correct trending tag values at the end of the chart lines (#380)
The previous code incorrectly showed the trending tag usage data twice
next to the end of the trending tag lines, instead of one entry for the
usage data and one entry for the account data.

Fix that.

As part of this fix change how the data is displayed. Instead of using
two distinct `TextView`, fixed to the bottom end of the chart, draw the
text directly on the chart. The text is accurately position so that it
is next to the end of the relevant line. If both lines overlap the label
positions are adjusted appropriately.

The chart now uses Pachli blue and orange for the line colours.

While doing this I discovered that the mechanism used to fall back to
particular chart colours if none were specified was incorrect, so fix
that too.
2024-01-25 00:50:50 +01:00
Nik Clayton bdb3a61523
feat: Disable tag mute feature if server can't filter (#378)
If the server doesn't support filtering then it's impossible to mute a
hashtag (which works by creating a filter). In this case hide the UI.
2024-01-23 23:29:10 +01:00
Nik Clayton 88066302ab
build: Disable lint warnings about old versions of AGP (#379)
They're caught via GH Actions, and block builds unnecessarily.
2024-01-23 23:18:27 +01:00
Nik Clayton 5cfe6d055b
fix: Improve parsing of Friendica (and other server) version formats (#376)
Previous code could return an error on Friendica version strings like
`2024.03-dev-1547`.

Fix this:

- Extend the list of explicitly supported servers to include Fedibird,
Friendica, Glitch, Hometown, Iceshrimp, Pixelfed, and Sharkey.

- Add version parsing routines for these servers.

- Test the version parsing routines fetching every server and version
seen by Fediverse Observer (~ 2,000 servers) and ensuring that the
server and version information can be parsed.

Improve the error message:

- Show the hostname with a `ServerRepository` error

Clean up the code:

- Remove the custom `resultOf` and `mapResult` functions, they have
equivalents in newer versions of the library (like `runSuspendCatching`)

Fixes #372
2024-01-23 20:27:25 +01:00
Nik Clayton 7e3cde4c65
refactor: Remove unused logging tags (#374) 2024-01-23 16:59:56 +01:00
Nik Clayton a588c702fb
fix: Prevent crash by keeping network.model.** classes (#369)
Previous rule didn't consider a deeper package hierarchy, so the new
NodeInfo classes were being removed by ProGuard.
2024-01-19 09:39:44 +01:00