Commit Graph

3936 Commits

Author SHA1 Message Date
Christophe Beyls a19540f0e4
Simplify and reduce overhead of lazy view binding in Fragments (#4269)
This reduces complexity of view binding inflation in Fragments, and also
reduces overhead (no `KProperty` objects need to be generated by the
compiler) by implementing `Lazy` instead of `ReadOnlyProperty`.

For a full explanation, see this [detailed blog
post](https://medium.com/@bladecoder/viewlifecyclelazy-and-other-ways-to-avoid-view-memory-leaks-in-android-fragments-4aa982e6e579).
2024-02-23 20:10:33 +01:00
Konrad Pozniak 7dca2fed58
fix sending posts on Api 34 (#4274)
```
java.lang.RuntimeException: Unable to start service com.keylesspalace.tusky.service.SendStatusService@1eb9198 with Intent { cmp=com.keylesspalace.tusky.test/com.keylesspalace.tusky.service.SendStatusService (has extras) }: android.app.MissingForegroundServiceTypeException: Starting FGS without a type  callerApp=ProcessRecord{18608f7 22134:com.keylesspalace.tusky.test/u0a193} targetSDK=34
           at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:4839)
           at android.app.ActivityThread.-$$Nest$mhandleServiceArgs(Unknown Source:0)
           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2289)
           at android.os.Handler.dispatchMessage(Handler.java:106)
           at android.os.Looper.loopOnce(Looper.java:205)
           at android.os.Looper.loop(Looper.java:294)
           at android.app.ActivityThread.main(ActivityThread.java:8177)
           at java.lang.reflect.Method.invoke(Native Method)
           at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)
          Caused by: android.app.MissingForegroundServiceTypeException: Starting FGS without a type  callerApp=ProcessRecord{18608f7 22134:com.keylesspalace.tusky.test/u0a193} targetSDK=34
           at android.app.MissingForegroundServiceTypeException$1.createFromParcel(MissingForegroundServiceTypeException.java:53)
           at android.app.MissingForegroundServiceTypeException$1.createFromParcel(MissingForegroundServiceTypeException.java:49)
           at android.os.Parcel.readParcelableInternal(Parcel.java:4870)
           at android.os.Parcel.readParcelable(Parcel.java:4852)
           at android.os.Parcel.createExceptionOrNull(Parcel.java:3052)
           at android.os.Parcel.createException(Parcel.java:3041)
           at android.os.Parcel.readException(Parcel.java:3024)
           at android.os.Parcel.readException(Parcel.java:2966)
           at android.app.IActivityManager$Stub$Proxy.setServiceForeground(IActivityManager.java:6761)
           at android.app.Service.startForeground(Service.java:775)
           at com.keylesspalace.tusky.service.SendStatusService.onStartCommand(SendStatusService.kt:137)
           at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:4821)
           at android.app.ActivityThread.-$$Nest$mhandleServiceArgs(Unknown Source:0) 
           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2289) 
           at android.os.Handler.dispatchMessage(Handler.java:106) 
           at android.os.Looper.loopOnce(Looper.java:205) 
           at android.os.Looper.loop(Looper.java:294) 
           at android.app.ActivityThread.main(ActivityThread.java:8177) 
           at java.lang.reflect.Method.invoke(Native Method) 
           at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552) 
           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971) 
```
2024-02-23 16:50:33 +01:00
Weblate 0dec496ccb Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/
Translation: Tusky/Tusky
2024-02-23 13:22:59 +00:00
Zongle Wang 88c75c8d9b
Room 2.6.1 with Kotlin code generation (#4081)
https://developer.android.com/jetpack/androidx/releases/room#2.6.0
2024-02-23 12:21:31 +01:00
Konrad Pozniak b976fe5296
full sdk 34 support (#4224)
builds upon work from #4082 

Additionally fixes some deprecations and adds support for [predictive
back](https://developer.android.com/guide/navigation/custom-back/predictive-back-gesture).
I also refactored how the activity transitions work because they are
closely related to predictive back. The awkward
`finishWithoutSlideOutAnimation` is gone, activities that have been
started with slide in will now automatically close with slide out.

To test predictive back you need an emulator or device with Sdk 34
(Android 14) and then enable it in the developer settings.

Predictive back requires the back action to be determined before it
actually occurs so the system can play the right predictive animation,
which made a few reorganisations necessary.

closes #4082 
closes #4005 
unlocks a bunch of dependency upgrades that require sdk 34

---------

Co-authored-by: Goooler <wangzongler@gmail.com>
2024-02-23 10:27:19 +01:00
Konrad Pozniak fa8bede7d6
fix compose notification action not recreating MainActivity (#4249)
closes #4247
2024-02-23 10:27:07 +01:00
Konrad Pozniak 7d3aafdd65
fix quick replies from notifications (#4250)
While working on #4249 I noticed that quick replies also don't work as
expected. The notification just stays in the sending state forever.
There are actually 2 problems:
- Notifications are sent in `NotificationFetcher` with the id of the
Mastodon notification as tag and the current account id as id. The wrong
notification id was forwarded to `SendStatusBroadcastReceiver` so it
never had a chance of updating the notification.
- Notifications containing an active remote input can't be cancelled
(they just stop their animation when doing so). So instead I update the
notification with info that the reply is being sent and have it dismiss
automatically.

I also tried replacing the original notification with the "sending"
notification of `SendStatusService`, but that doesn't work because
`Service.startForeground` doesn't have a tag parameter, only an id.

---------

Co-authored-by: Willow <charlag@tuta.io>
2024-02-23 10:26:46 +01:00
Willow 22ec78c75a
Improve detailed status looks (#4260)
#4205 did change how the counters for the detailed posts behave and for
a good reason I believe.

However I find the changed order very confusing and not aesthetically
pleasing.

I have tried a few options, including reserving space for it but it was
confusing (when counters are not displayed there would be a danging
separator or if we show separator together with it it would be confusing
as well).

I propose we simply show the counters independent on the counts. I know
we try to de-emphasize the counters but I believe this is fine to do in
detailed view.

One disadvantage is that we need translators to update the translations.

Additionally I've done two spacing changes: I removed a separator
between the counters and the buttons, removed padding around the
counters and increased the space between the counters and the buttons
instead. I believe it's better to use space than separators. This also
makes the space above/below the media/counters separator balanced.

In the second commit I've also made the metadata/counters separators
thinner, I think it looks better.

here's the combined version:


![proposal_final](https://github.com/tuskyapp/Tusky/assets/3099142/ea9d4c0c-fe6a-4f2e-8427-673b2a833e6b)
2024-02-23 10:25:05 +01:00
Salif Mehmed 4e43feb9dc Translated using Weblate (Bulgarian)
Currently translated at 86.4% (548 of 634 strings)

Co-authored-by: Salif Mehmed <mail@salif.eu>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/bg/
Translation: Tusky/Tusky
2024-02-21 04:45:01 +00:00
Rhoslyn Prys 2c13805d84 Translated using Weblate (Welsh)
Currently translated at 100.0% (634 of 634 strings)

Co-authored-by: Rhoslyn Prys <post@meddal.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/cy/
Translation: Tusky/Tusky
2024-02-21 04:45:01 +00:00
Levi Bard 6994693496
Move the statistics bar in the detailed view below the button bar (#4205)
Rationale: In the current layout, when performing multiple interactions
(e.g. fav+boost, fav+reply) on a post that hasn't been interacted with
before, the statistics bar appears and pushes the buttons down, so the
second tap goes to the statistics bar instead
2024-02-20 10:17:13 +01:00
Konrad Pozniak 7173d5e1e7
make badge for new direct messages blue (#4257)
This makes the dot badge that we show on the direct messages tab when
there are unread messages blue instead of red. I prefer it that way
because its more subtle and doesn't look like there is some kind of
error.

before / after:

<img
src="https://github.com/tuskyapp/Tusky/assets/10157047/f4b241a5-0fa4-4134-9790-18f74caa2dae"
width="240"/> <img
src="https://github.com/tuskyapp/Tusky/assets/10157047/56788d5c-f19c-4fa5-b83e-e824aed995f4"
width="240"/>
2024-02-19 09:22:14 +01:00
Konrad Pozniak 1cd8b497f7
set greenDebug as default flavor (#4251)
I had it happen multiple times recently that I was testing green Tusky
but Android Studio actually put blue Tusky on my device and I wasted a
lot of time until I found out 😣
This change should tell it that greenDebug is the preferred flavor for
developing.
2024-02-17 15:15:19 +01:00
Konrad Pozniak 17e99bbc2e
Revert "Migrate to Hilt KSP compiler (#4136)" (#4246)
This reverts commit 6494247301.

Seems like dagger/ksp is still a bit buggy, I'm getting one of these
errors every other build, so lets revert this for now.

https://github.com/google/dagger/issues/4181
https://github.com/google/ksp/issues/1196
2024-02-10 10:42:31 +01:00
Ihor Hordiichuk e2c2db1d31 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (634 of 634 strings)

Co-authored-by: Ihor Hordiichuk <igor_ck@outlook.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/uk/
Translation: Tusky/Tusky
2024-02-04 04:45:01 +00:00
Hồ Nhất Duy dbe82fe1b0 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (634 of 634 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-02-04 04:45:01 +00:00
Ümit Solmaz b826ca15a9 Translated using Weblate (Turkish)
Currently translated at 100.0% (634 of 634 strings)

Co-authored-by: Ümit Solmaz <usnotv@gmail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/tr/
Translation: Tusky/Tusky
2024-02-04 04:45:01 +00:00
fin-w 61de55efa7 Translated using Weblate (Welsh)
Currently translated at 100.0% (634 of 634 strings)

Co-authored-by: fin-w <puf@users.noreply.weblate.tusky.app>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/cy/
Translation: Tusky/Tusky
2024-02-04 04:45:00 +00:00
XoseM c9d29fa92f Translated using Weblate (Galician)
Currently translated at 100.0% (634 of 634 strings)

Co-authored-by: XoseM <xosem@disroot.org>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/gl/
Translation: Tusky/Tusky
2024-02-04 04:45:00 +00:00
Konrad Pozniak 7fef19efc6
Revert "make timestamp abbreviations plurals (#4202)" (#4230)
This reverts commit 5174c00558.

closes #4145
2024-01-28 19:48:35 +01:00
ButterflyOfFire 5ae6611072 Translated using Weblate (French)
Currently translated at 93.5% (592 of 633 strings)

Translated using Weblate (Arabic)

Currently translated at 91.4% (579 of 633 strings)

Co-authored-by: ButterflyOfFire <butterflyoffire@protonmail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/ar/
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/fr/
Translation: Tusky/Tusky
2024-01-28 17:35:57 +00:00
Konrad Pozniak d66866648e
improve null safety of instance info (#4226)
according to crash logs there are seem to be some instances that don't
always return the expected json, so lets be extra safe here

```
Exception java.lang.NullPointerException:
  at com.keylesspalace.tusky.components.instanceinfo.InstanceInfoRepository$getInstanceInfo$2.invokeSuspend (InstanceInfoRepository.kt:67)
  at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith (ContinuationImpl.kt:33)
  at kotlinx.coroutines.DispatchedTask.run (DispatchedTask.kt:108)
  at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run (LimitedDispatcher.java:115)
  at kotlinx.coroutines.scheduling.TaskImpl.run (Tasks.kt:103)
  at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely (CoroutineScheduler.java:584)
  at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask (CoroutineScheduler.kt:793)
  at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker (CoroutineScheduler.kt:697)
  at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run (CoroutineScheduler.kt:684)
```
2024-01-28 19:08:44 +01:00
Konrad Pozniak 0c2b8b114b
make sure link preview card is not shown when cw is collapsed (#4218)
The sensitive flag indicates sensitive media, but we want to check if
there is a contentwarning on the post. I think statuses that have a
contentwarning but no sensitive flag are rare so we never noticed this
bug.

closes #4201
2024-01-28 19:07:51 +01:00
Konrad Pozniak 0b9f61c100
bring back the notification filter preference (#4225)
It was probably forgotten when we restored the old notifications
behavior.
closes #4222
2024-01-28 19:07:29 +01:00
Konrad Pozniak 750e255029
fix check that ensures only one bookmark tab is added (#4217)
closes #4214
2024-01-28 19:07:17 +01:00
XoseM 88dbc8de12 Translated using Weblate (Galician)
Currently translated at 100.0% (633 of 633 strings)

Co-authored-by: XoseM <xosem@disroot.org>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/gl/
Translation: Tusky/Tusky
2024-01-17 04:45:01 +00:00
Sveinn í Felli 5b04a0e8e1 Translated using Weblate (Icelandic)
Currently translated at 100.0% (633 of 633 strings)

Co-authored-by: Sveinn í Felli <sv1@fellsnet.is>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/is/
Translation: Tusky/Tusky
2024-01-17 04:45:01 +00:00
Hồ Nhất Duy 9005e6525c Translated using Weblate (Vietnamese)
Currently translated at 100.0% (633 of 633 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-01-17 04:45:01 +00:00
Bruno Miguel 6f22072d0e Translated using Weblate (Portuguese (Portugal))
Currently translated at 100.0% (633 of 633 strings)

Co-authored-by: Bruno Miguel <brunoalexandremiguel@gmail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/pt_PT/
Translation: Tusky/Tusky
2024-01-17 04:45:01 +00:00
João Alves 8df7a58679 Translated using Weblate (Portuguese (Portugal))
Currently translated at 100.0% (633 of 633 strings)

Co-authored-by: João Alves <joao.2003.couto+weblate@gmail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/pt_PT/
Translation: Tusky/Tusky
2024-01-17 04:45:01 +00:00
Bruno Miguel a25f9f5823 Translated using Weblate (Portuguese (Portugal))
Currently translated at 100.0% (633 of 633 strings)

Co-authored-by: Bruno Miguel <brunoalexandremiguel@gmail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/pt_PT/
Translation: Tusky/Tusky
2024-01-17 04:45:01 +00:00
Newidyn a489be35b1 Translated using Weblate (Welsh)
Currently translated at 98.7% (625 of 633 strings)

Co-authored-by: Newidyn <grugallt@protonmail.ch>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/cy/
Translation: Tusky/Tusky
2024-01-17 04:45:00 +00:00
fin-w c536b11072 Translated using Weblate (Welsh)
Currently translated at 98.7% (625 of 633 strings)

Co-authored-by: fin-w <puf@users.noreply.weblate.tusky.app>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/cy/
Translation: Tusky/Tusky
2024-01-17 04:45:00 +00:00
Ihor Hordiichuk 111b301246 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (633 of 633 strings)

Co-authored-by: Ihor Hordiichuk <igor_ck@outlook.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/uk/
Translation: Tusky/Tusky
2024-01-17 04:45:00 +00:00
Konrad Pozniak 5174c00558
make timestamp abbreviations plurals (#4202)
some languages require it

closes #4145

Changing all the strings was easy with the Regex replace feature
https://www.jetbrains.com/help/idea/tutorial-finding-and-replacing-text-using-regular-expressions.html
2024-01-09 20:35:40 +01:00
Maximilian Ertl 27a610bd48
feat: explicitly enable the share-button in Chrome Custom Tabs (#4223)
Chrome defaults to showing it anyways, but Firefox doesn't. By enabling
this feature, users across both browsers will now have the same
experience.

closes tuskyapp/Tusky/issues/4137
2024-01-09 20:08:41 +01:00
Zongle Wang c9f8b043c5
Polish Chinese translations (#4221)
- Insert blanks between Chinese chars with Ascii chars.
- Fix the typo of `账户`.
- Add full_description and short_description for Traditional Chinese.
2024-01-09 20:07:49 +01:00
Ümit Solmaz a08ef5d68f Translated using Weblate (Turkish)
Currently translated at 100.0% (633 of 633 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (633 of 633 strings)

Translated using Weblate (German)

Currently translated at 100.0% (633 of 633 strings)

Co-authored-by: Ümit Solmaz <usnotv@gmail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/de/
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/ru/
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/tr/
Translation: Tusky/Tusky
2024-01-09 04:45:01 +00:00
Hồ Nhất Duy 4efc54246f Translated using Weblate (Vietnamese)
Currently translated at 100.0% (633 of 633 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-01-09 04:45:01 +00:00
Konrad Pozniak afbc183c02
add missing room schema file (#4211) 2024-01-07 10:45:30 +01:00
Konrad Pozniak 5192fb08a5
upgrade ktlint plugin to 12.0.3 (#4169)
There are some new rules, I think they mostly make sense, except for the
max line length which I had to disable because we are over it in a lot
of places.

---------

Co-authored-by: Goooler <wangzongler@gmail.com>
2024-01-04 17:00:55 +01:00
Sveinn í Felli 99e78eab78 Translated using Weblate (Icelandic)
Currently translated at 100.0% (634 of 634 strings)

Co-authored-by: Sveinn í Felli <sv1@fellsnet.is>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/is/
Translation: Tusky/Tusky
2024-01-04 07:37:01 +00:00
Rhoslyn Prys 305953358b Translated using Weblate (Welsh)
Currently translated at 100.0% (634 of 634 strings)

Co-authored-by: Rhoslyn Prys <post@meddal.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/cy/
Translation: Tusky/Tusky
2024-01-04 07:37:01 +00:00
Eric 260f18ffce Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (634 of 634 strings)

Co-authored-by: Eric <ekhfcxwuvxqfdb@hldrive.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/zh_Hans/
Translation: Tusky/Tusky
2024-01-04 07:37:01 +00:00
Ricardo 3193453775 Translated using Weblate (Portuguese (Portugal))
Currently translated at 96.3% (611 of 634 strings)

Co-authored-by: Ricardo <ricardojmv0@gmail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/pt_PT/
Translation: Tusky/Tusky
2024-01-04 07:37:01 +00:00
Danial Behzadi d822eb72c4 Translated using Weblate (Persian)
Currently translated at 100.0% (634 of 634 strings)

Co-authored-by: Danial Behzadi <dani.behzi@ubuntu.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/fa/
Translation: Tusky/Tusky
2024-01-04 07:37:01 +00:00
Quentí 6c80db6e03 Translated using Weblate (Occitan)
Currently translated at 98.7% (626 of 634 strings)

Co-authored-by: Quentí <quentinantonin@free.fr>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/oc/
Translation: Tusky/Tusky
2024-01-04 07:37:01 +00:00
fin-w f9817633bd Translated using Weblate (Welsh)
Currently translated at 100.0% (633 of 633 strings)

Translated using Weblate (Welsh)

Currently translated at 100.0% (634 of 634 strings)

Translated using Weblate (Welsh)

Currently translated at 100.0% (634 of 634 strings)

Co-authored-by: fin-w <puf@users.noreply.weblate.tusky.app>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/cy/
Translation: Tusky/Tusky
2024-01-04 07:37:01 +00:00
mcclure 70f8e8ba93
Implement new policy: The database version number is always even (#4128)
Posted this as issue #3999 before. The reasoning is personal experiments
and forks may add database fields and must bump the database number to
do so, but this causes massive merge difficulties when Tusky then
inevitably itself bumps the number. To alleviate this, Tusky official
should use only even database numbers, so odd versions are available for
third party scribbling.

There was little discussion positive or negative in #3999 (one proposal
we switch to a date-based number system, which would work but also could
be unnecessarily complicated). With PR #4115 we now have to make a
decision because that's the first post-proposal PR to bump the database
number odd. So, since I see no outright objections, I'd like to
implement this.

@connyduck suggested the best way to implement the proposal would be to
add a comment to the version number's home in AppDatabase.java.

Co-authored-by: Konrad Pozniak <connyduck@users.noreply.github.com>
2024-01-03 22:21:18 +01:00
Konrad Pozniak 1f698e0732
show post language in metadata (#4127)
closes https://github.com/tuskyapp/Tusky/issues/3096

<img
src="https://github.com/tuskyapp/Tusky/assets/10157047/417c55a9-168b-4ada-9636-de6314698def"
width="320">
2024-01-03 21:17:28 +01:00