Commit graph

4,016 commits

Author SHA1 Message Date
Danial Behzadi
78523369f5 Translated using Weblate (Persian)
Currently translated at 100.0% (677 of 677 strings)

Co-authored-by: Danial Behzadi <dani.behzi@ubuntu.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/fa/
Translation: Tusky/Tusky
2024-12-22 08:58:29 +00:00
fin-w
136c02c9c7 Translated using Weblate (Welsh)
Currently translated at 100.0% (677 of 677 strings)

Co-authored-by: fin-w <fin-w@tutanota.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/cy/
Translation: Tusky/Tusky
2024-12-22 08:50:05 +00:00
fin-w
a9d212e0a1
Standardise strings (#4816)
Now all references to "moderators" uses the plural form, and the app
settings are always referred to as "preferences".
2024-12-22 10:03:35 +01:00
Konrad Pozniak
20cb3848ee
fix "delete all notifications by user" query (#4821)
The brackets were at the wrong position and notification types are
actually serialized differently.

Closes #4817
2024-12-21 20:35:21 +01:00
Konrad Pozniak
dee1767ec1
fix MainActivity behavior (#4818)
This fixes two issues, but I tested them together to make sure this time
everything works as expected.

1) The fix in #4813 went into the right direction, but the condition was
a bit too broad. When sharing something to Tusky so that Tusky switches
accounts, sometimes nothing would happen.

2) fixes #4766. There are two possibilities here (I think it depends
mostly on API level):
2a) Sharing starts a new task. `android:maxRecents="1"` makes sure old
tasks disappear and are not left in the weird in-between state.
3a) Sharing starts a new `MainActivity` in an existing task.
`Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK` makes
sure old `MainActivity` instances are removed. On newer Android versions
this has the sideeffect of changing the switch animation, but whatever.

Basically this gives us the behavior I wanted to achieve with the
`android:launchMode="singleTask"` without the unintended side effects.
2024-12-21 20:34:54 +01:00
Anna (cybertailor) Vyalkova
0bbbaffbe5 Translated using Weblate (Russian)
Currently translated at 100.0% (677 of 677 strings)

Co-authored-by: Anna (cybertailor) Vyalkova <cyber@sysrq.in>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/ru/
Translation: Tusky/Tusky
2024-12-18 08:00:11 +00:00
Konrad Pozniak
3e6bfe8776
make sure MainActivity doesn't hide other activities when launcher icon is clicked again (#4813)
closes #4789 this time for real, hopefully, maybe

also set `alwaysRetainTaskState` for good measure

> `android:alwaysRetainTaskState`
Whether the state of the task that the activity is in is always
maintained by the system. `"true"` if it is, and `"false"` if the system
can reset the task to its initial state in certain situations. The
default value is `"false"`. This attribute is meaningful only for the
root activity of a task. It's ignored for all other activities.

> Normally, the system clears a task, removing all activities from the
stack above the root activity, in certain situations when the user
re-selects that task from the home screen. Typically, this is done if
the user hasn't visited the task for a certain amount of time, such as
30 minutes.

> However, when this attribute is `"true"`, users always return to the
task in its last state, regardless of how they get there. This is useful
in an application like a web browser where there is a lot of state, such
as multiple open tabs, that users don't want to lose.


https://developer.android.com/guide/topics/manifest/activity-element#always
2024-12-18 09:17:46 +01:00
Levi Bard
8937d0abf0
Don't repeat inline tags in the trailing hashtag bar (#4811) 2024-12-15 20:58:19 +01:00
Konrad Pozniak
ec3921d923
show the warning icon again when there is media without description (#4806)
Regression from the Material 3 redesign
2024-12-14 19:33:37 +01:00
Mārtiņš Bruņenieks
3155cdb867 Translated using Weblate (Latvian)
Currently translated at 82.4% (558 of 677 strings)

Co-authored-by: Mārtiņš Bruņenieks <martinsb@gmail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/lv/
Translation: Tusky/Tusky
2024-12-12 14:07:22 +00:00
Levi Bard
c8d8891a07
Preserve the case of hashtags from content when possible (#4802)
https://social.tchncs.de/@KazuShuSora/113621293051641672
2024-12-11 17:53:32 +01:00
Konrad Pozniak
328aca7031
fix caption dialog (#4799)
The Material 3 redesign seems to have broken the dialog when very small
images where used.
Also removes the weird background behind the context menu (seen in the
before screenshot)

Before / after:
<img
src="https://github.com/user-attachments/assets/c418125d-ef80-458f-9d94-fde428a2f59f"
width="280"/> <img
src="https://github.com/user-attachments/assets/b832b16d-0c18-4bf1-a263-de4fe0362854"
width="280"/>
2024-12-10 21:11:55 +01:00
Manuel
6938d03b5c Translated using Weblate (Italian)
Currently translated at 100.0% (677 of 677 strings)

Co-authored-by: Manuel <mannivuwiki@gmail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/it/
Translation: Tusky/Tusky
2024-12-09 19:19:26 +00:00
Danial Behzadi
15149aee24 Translated using Weblate (Persian)
Currently translated at 100.0% (677 of 677 strings)

Translated using Weblate (Persian)

Currently translated at 100.0% (677 of 677 strings)

Co-authored-by: Danial Behzadi <dani.behzi@ubuntu.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/fa/
Translation: Tusky/Tusky
2024-12-09 19:19:26 +00:00
Eric
0e64bde116 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (677 of 677 strings)

Co-authored-by: Eric <alchemillatruth@users.noreply.weblate.tusky.app>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/zh_Hans/
Translation: Tusky/Tusky
2024-12-07 07:24:01 +00:00
Hồ Nhất Duy
9093707f91 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (677 of 677 strings)

Co-authored-by: Hồ Nhất Duy <mastoduy@gmail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/vi/
Translation: Tusky/Tusky
2024-12-07 07:24:01 +00:00
XoseM
db90b54397 Translated using Weblate (Galician)
Currently translated at 100.0% (677 of 677 strings)

Co-authored-by: XoseM <xosem@disroot.org>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/gl/
Translation: Tusky/Tusky
2024-12-07 07:24:01 +00:00
joenepraat
8574e48614 Translated using Weblate (Dutch)
Currently translated at 99.1% (671 of 677 strings)

Translated using Weblate (Dutch)

Currently translated at 99.1% (671 of 677 strings)

Co-authored-by: joenepraat <joenepraat@posteo.org>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/nl/
Translation: Tusky/Tusky
2024-12-07 07:24:01 +00:00
bebatjof
6963584051 Translated using Weblate (Dutch)
Currently translated at 99.1% (671 of 677 strings)

Co-authored-by: bebatjof <elisabeth.deschutter@proton.me>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/nl/
Translation: Tusky/Tusky
2024-12-07 07:24:00 +00:00
Anonymous
51ded26720 Translated using Weblate (Hungarian)
Currently translated at 96.1% (651 of 677 strings)

Co-authored-by: Anonymous <noreply@weblate.org>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/hu/
Translation: Tusky/Tusky
2024-12-07 07:24:00 +00:00
Konrad Pozniak
63153e907e
change text from "Always show sensitive content" to "Always show sensitive media" (#4794)
https://chaos.social/@bess@toot.cat/113602001349352104
2024-12-06 11:18:30 +01:00
Konrad Pozniak
40124a8258
rotate tab indicator when tab bar is at the bottom (#4793)
Looks way better imho

Before

![before](https://github.com/user-attachments/assets/5888e2ee-c342-4b06-a834-50f9d07951b4)


After

![after](https://github.com/user-attachments/assets/024e0c98-1e0a-4a4d-82f7-a7ede657ad25)
2024-12-06 11:18:20 +01:00
Konrad Pozniak
eb83cb7d17
fix background of bottom tab bar (#4791)
`TabLayout` with Material 3 styling has a thin line at the bottom. That
makes sense when it is above the scrollable content, but not when it is
below.

Before:

![before](https://github.com/user-attachments/assets/619f125b-c817-4615-b6b6-29c885c90723)

After:

![after](https://github.com/user-attachments/assets/3b22d183-c844-4859-9bf8-d530f63cf97e)
2024-12-06 11:18:10 +01:00
Konrad Pozniak
dcafc88e3d
fix thread view background on tablets (#4790)
So it matches the rest of the app

Before / after


<img
src="https://github.com/user-attachments/assets/63b8a663-8b03-4e5f-850a-a9d1a4229f99"
width="280"/> <img
src="https://github.com/user-attachments/assets/86d70e1e-7f73-4274-8b09-6b90a9598a7a"
width="280"/>
2024-12-06 11:18:00 +01:00
Deleted User
2adf7f8f16 Translated using Weblate (German)
Currently translated at 100.0% (677 of 677 strings)

Co-authored-by: Deleted User <noreply+331@weblate.org>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/de/
Translation: Tusky/Tusky
2024-12-06 09:26:38 +00:00
bebatjof
f018e2ea3b Translated using Weblate (Dutch)
Currently translated at 98.8% (669 of 677 strings)

Co-authored-by: bebatjof <elisabeth.deschutter@proton.me>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/nl/
Translation: Tusky/Tusky
2024-12-06 09:26:38 +00:00
XoseM
758c28247a Translated using Weblate (Galician)
Currently translated at 100.0% (677 of 677 strings)

Co-authored-by: XoseM <xosem@disroot.org>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/gl/
Translation: Tusky/Tusky
2024-12-06 09:26:38 +00:00
Hồ Nhất Duy
3584fa2970 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (677 of 677 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (677 of 677 strings)

Co-authored-by: Hồ Nhất Duy <mastoduy@gmail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/vi/
Translation: Tusky/Tusky
2024-12-06 09:26:38 +00:00
Eric
14826a2121 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (677 of 677 strings)

Co-authored-by: Eric <alchemillatruth@users.noreply.weblate.tusky.app>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/zh_Hans/
Translation: Tusky/Tusky
2024-12-06 09:26:38 +00:00
Danial Behzadi
2820f6b129 Translated using Weblate (Persian)
Currently translated at 100.0% (677 of 677 strings)

Co-authored-by: Danial Behzadi <dani.behzi@ubuntu.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/fa/
Translation: Tusky/Tusky
2024-12-06 09:26:38 +00:00
fin-w
642208015e Translated using Weblate (Welsh)
Currently translated at 100.0% (677 of 677 strings)

Co-authored-by: fin-w <fin-w@tutanota.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/cy/
Translation: Tusky/Tusky
2024-12-06 09:26:38 +00:00
Levi Bard
af5d10cd09
Simplify hashtag line checker to avoid infinite loop in android matcher (#4779)
https://masto.nyc/@GetMisch/113557332197065306 causes an infinite loop
in the native matcher with the original pattern, trying a different
approach
2024-12-04 17:08:05 +01:00
Konrad Pozniak
cd57352cbd
Notification policy (#4768)
This was so much work wow. I think it works pretty well and is the best
compromise between all the alternative we considered. Yes the
pull-to-refreh on the notifications works slightly different now when
the new bar is visible, but I don't think there is a way around that.

Things I plan to do later, i.e. not as part of this PR or release:
- Cache the notification policy summary for better offline behavior and
less view shifting when it loads
- try to reduce some of the code duplications that are now in there
- if there is user demand, add a "legacy mode" setting where this
feature is disabled even if the server would support it

closes #4331
closes #4550 as won't do
closes #4712 as won't do

<img
src="https://github.com/user-attachments/assets/de322d3c-3775-41e7-be57-28ab7fbaecdf"
width="240"/> <img
src="https://github.com/user-attachments/assets/1ce958a4-4f15-484c-a337-5ad93f36046c"
width="240"/> <img
src="https://github.com/user-attachments/assets/98b0482b-1c05-4c99-a371-f7f4d8a69abd"
width="240"/>
2024-12-03 18:46:50 +01:00
Konrad Pozniak
29914f8fd9
modernize tests (#4777)
- use `runTest` instead of `runBlocking`, where possible
- run all Robolectric tests on Api 34 (where we have most users)
- some new testcase for `TimestampUtilsTest`
- move our only instrumented Android Test, `MigrationsTest`, to unit
test so it runs in CI and expand it to test all migrations
- upgrade Robolectric
- removed truth and espresso as they are no longer needed
2024-12-03 18:46:29 +01:00
Asier Iturralde Sarasola
b6844c9792 Translated using Weblate (Basque)
Currently translated at 76.8% (501 of 652 strings)

Co-authored-by: Asier Iturralde Sarasola <asier@aldatsa.eus>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/eu/
Translation: Tusky/Tusky
2024-11-29 15:53:41 +00:00
Konrad Pozniak
05b2a5d70c
fix crash when post is single line with hashtags (#4778)
```
java.lang.StringIndexOutOfBoundsException
     at android.text.SpannableStringBuilder.<init>(SpannableStringBuilder.java:63)
     at android.text.SpannableStringBuilder.subSequence(SpannableStringBuilder.java:1198)
     at com.keylesspalace.tusky.util.LinkHelper.setClickableText(LinkHelper.kt:99)
     at com.keylesspalace.tusky.adapter.StatusBaseViewHolder.setTextVisible(StatusBaseViewHolder.java:289)
     at com.keylesspalace.tusky.adapter.StatusBaseViewHolder.setSpoilerAndContent(StatusBaseViewHolder.java:244)
     at com.keylesspalace.tusky.adapter.StatusBaseViewHolder.setupWithStatus(StatusBaseViewHolder.java:820)
     at com.keylesspalace.tusky.adapter.StatusViewHolder.setupWithStatus(StatusViewHolder.java:91)
     at com.keylesspalace.tusky.components.timeline.TimelinePagingAdapter.bindViewHolder(TimelinePagingAdapter.kt:100)
     at com.keylesspalace.tusky.components.timeline.TimelinePagingAdapter.onBindViewHolder(TimelinePagingAdapter.kt:82)
     at androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:7847)
     at androidx.recyclerview.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:6646)
     at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6917)
     at androidx.recyclerview.widget.GapWorker.prefetchPositionWithDeadline(GapWorker.java:288)
     at androidx.recyclerview.widget.GapWorker.flushTaskWithDeadline(GapWorker.java:345)
     at androidx.recyclerview.widget.GapWorker.flushTasksWithDeadline(GapWorker.java:361)
     at androidx.recyclerview.widget.GapWorker.prefetch(GapWorker.java:368)
     at androidx.recyclerview.widget.GapWorker.run(GapWorker.java:399)
     at android.os.Handler.handleCallback(Handler.java:959)
     at android.os.Handler.dispatchMessage(Handler.java:100)
     at android.os.Looper.loopOnce(Looper.java:232)
     at android.os.Looper.loop(Looper.java:317)
     at android.app.ActivityThread.main(ActivityThread.java:8705)
     at java.lang.reflect.Method.invoke(Native Method)
     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:886)
```
2024-11-29 17:10:06 +01:00
Konrad Pozniak
fc52074dcd
remove some unused code (#4776) 2024-11-28 19:15:54 +01:00
Konrad Pozniak
bc397e993d
fix deprecated resume call in AlertDialogExtensions (#4775) 2024-11-28 19:15:44 +01:00
Levi Bard
d3feca3a10
mastodon-web-like trailing hashtag bar (#4761)
Rationale: Since the mastodon web UI has started stripping "trailing"
hashtags from post content and shoving it into an ellipsized section at
the bottom of posts, the general hashtag : content ratio is rising.

This is an attempt at adopting a similar functionality for Tusky.

Before:

<img width="420" alt="Screenshot of a hashtag-heavy post on Tusky
nightly"
src="https://github.com/user-attachments/assets/09c286e8-6822-482a-904c-5cb3323ea0e1">


After:
![Screenshot of the same post on this
branch](https://github.com/user-attachments/assets/fa99964d-a057-4727-b9f0-1251a199d5f8)
2024-11-28 19:15:31 +01:00
Konrad Pozniak
9e83c205e8
set the correct height to the main bottom app bar (#4763)
Before there was a weird gap when the bar was set to bottom & and the
title bar was hidden.

![Screenshot_20241115_140918](https://github.com/user-attachments/assets/23a7b71f-dff8-4f40-ad7f-9cce5c23755f)
2024-11-24 19:23:44 +01:00
Konrad Pozniak
a4b2c8682e
improve mute/subscribe buttons in AccountActivity (#4762)
Regression from the Material 3 redesign.

The background behind the buttons was not extending all the way up like
it should. Also make the subscribe button larger and the outline better
to see in the dark theme.

Before / After:

<img
src="https://github.com/user-attachments/assets/aa530d62-182c-48fd-b2d3-f7386ea4d909"
width="300"/> <img
src="https://github.com/user-attachments/assets/534f9a7c-2832-433b-a529-c72ee260b9cf"
width="300"/>
2024-11-24 19:23:31 +01:00
GunChleoc
9b868d2965 Translated using Weblate (Gaelic)
Currently translated at 100.0% (652 of 652 strings)

Co-authored-by: GunChleoc <fios@foramnagaidhlig.net>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/gd/
Translation: Tusky/Tusky
2024-11-24 12:07:12 +00:00
Asier Iturralde Sarasola
5de60cbd26 Translated using Weblate (Basque)
Currently translated at 67.1% (438 of 652 strings)

Co-authored-by: Asier Iturralde Sarasola <asier@aldatsa.eus>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/eu/
Translation: Tusky/Tusky
2024-11-24 12:07:12 +00:00
Robert WDF
e9c514d7bb Translated using Weblate (Norwegian Bokmål)
Currently translated at 90.3% (589 of 652 strings)

Co-authored-by: Robert WDF <robert.wdf@protonmail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/nb_NO/
Translation: Tusky/Tusky
2024-11-24 12:07:12 +00:00
Anna (cybertailor) Vyalkova
2adeb40a77 Translated using Weblate (Russian)
Currently translated at 99.0% (646 of 652 strings)

Co-authored-by: Anna (cybertailor) Vyalkova <cyber@sysrq.in>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/ru/
Translation: Tusky/Tusky
2024-11-24 12:07:12 +00:00
XoseM
f355f52df1 Translated using Weblate (Galician)
Currently translated at 100.0% (652 of 652 strings)

Co-authored-by: XoseM <xosem@disroot.org>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/gl/
Translation: Tusky/Tusky
2024-11-24 12:07:12 +00:00
Hồ Nhất Duy
a2ca02bf7b Translated using Weblate (Vietnamese)
Currently translated at 100.0% (652 of 652 strings)

Co-authored-by: Hồ Nhất Duy <mastoduy@gmail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/vi/
Translation: Tusky/Tusky
2024-11-24 12:07:12 +00:00
Rhoslyn Prys
252ed809be Translated using Weblate (Welsh)
Currently translated at 100.0% (652 of 652 strings)

Translated using Weblate (Welsh)

Currently translated at 100.0% (652 of 652 strings)

Co-authored-by: Rhoslyn Prys <post@meddal.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/cy/
Translation: Tusky/Tusky
2024-11-24 12:07:12 +00:00
Konrad Pozniak
e758321866
fix updating filter expiration to indefinite (#4743)
Before we would not send `expires_in` when "indefinite" was selected.
But that left the expiration at the value it was before. To actually set
it to indefinite we need to send `expires_in`, but leave it empty.
With a value class this was actually really nice to fix, the code now
self-documents what the special values mean.

Also fixes a regression from the Material 3 redesign where the filter
duration drop down would not get populated when creating a filter.

Found while working on https://github.com/tuskyapp/Tusky/pull/4742
2024-11-05 20:44:08 +01:00
Konrad Pozniak
0d34804359
never filter own posts (#4742)
This is to match Mastodon web behavior.

Also, make revealing filtered boosts in non-cached timelines work (can
only happen on user profiles, other timelines don't have boosts).

found thanks to this: https://tech.lgbt/@darkfox/113378644538792719
2024-11-05 20:43:52 +01:00