Commit Graph

368 Commits

Author SHA1 Message Date
Jannis Mattheis
547d9fd943 chore: version 2.9.0 2025-09-29 19:55:40 +02:00
Robert Meijers
1e4dab162c try reconnecting after link properties changed
In some circumstances (like the server only being reachable over IPv6)
reconnecting when the network becomes available doesn't work. This due
to the network only being "partially" available (in the example: IPv4
working, but IPv6 not yet). By also listening for changes of the link
properties a new connection attempt is made when for example the IP
addresses of the link, or the networking routes change. Meaning that the
example issue is fixed, as a new attempt is made after the IPv6 address
is set on the link / the routes for IPv6 networking are available.
2025-08-03 13:58:04 +02:00
Xyndra
cd7ac5595b feat: add automatic intent URL display option (#416)
Co-authored-by: Jannis Mattheis <contact@jmattheis.de>
2025-07-19 16:46:20 +00:00
Niko Diamadis
5397c5dc54 chore: bump quick permissions 2025-06-30 19:34:00 +02:00
Niko Diamadis
5ade485da8 chore: update SDK to 36 (A16) 2025-06-30 17:44:41 +02:00
Niko Diamadis
489ac9ecc1 chore: apply IDE hints and KTX functions 2025-06-30 17:33:19 +02:00
Niko Diamadis
cd391cceab build: update dependencies and Kotlin 2025-06-30 17:27:19 +02:00
Jannis Mattheis
20305cb601 chore: version 2.8.2 2025-02-15 12:34:17 +01:00
Jannis Mattheis
6968a65992 fix: use drawer layout in push
This fixes https://github.com/gotify/android/pull/387#discussion_r1864875878
2025-02-15 12:11:07 +01:00
Jannis Mattheis
07b1da9de1 fix: don't reconnect when command was superseded
We only want to do the reconnect if the previous command was the
schedule reconnect, if the websocket connection got started another way
or was closed, we don't want to do the reconnect.
2025-02-15 11:45:12 +01:00
Niko Diamadis
0c89d24af7 Merge branch 'master' into android-15-updates 2024-12-01 09:34:42 -05:00
Niko Diamadis
00c3729458 build: rewrite build.gradle files to Kotlin DSL 2024-11-24 21:02:38 -05:00
Niko Diamadis
a877964da3 style: apply updated ktlint 2024-10-27 13:10:49 -04:00
Niko Diamadis
df84f413b1 chore: update dependencies and gradle 2024-10-27 13:10:49 -04:00
Niko Diamadis
4cd2ddf17d chore: remove redundant activity labels 2024-10-27 13:10:48 -04:00
Niko Diamadis
8f601db30f chore: suppress permission warning 2024-10-27 13:10:48 -04:00
Niko Diamadis
8aa46c8127 fix: adapt UI to Android 15 changes 2024-10-27 13:10:48 -04:00
Niko Diamadis
1c90866e70 feat: set target Android 15 2024-10-27 13:10:48 -04:00
Niko Diamadis
2050a75928 Adapt app to new client version 2024-10-17 23:47:05 -04:00
Jannis Mattheis
a50e63aafa chore: version 2.8.1 2024-08-02 13:04:09 +02:00
Jannis Mattheis
27835c8c7f fix: always reconnect 2024-08-02 12:44:02 +02:00
Jannis Mattheis
c92ee2e969 fix: add data: image loader 2024-08-02 11:36:19 +02:00
Jannis Mattheis
83e2eaabf4 fix: update date-times on app resume 2024-08-01 21:39:31 +02:00
Jannis Mattheis
d1e1703d83 chore: version 2.8.0 2024-07-07 09:18:19 +02:00
Jannis Mattheis
e8b88ab409 Merge pull request #356 from cyb3rko/images-basic-auth
Basic auth support for images
2024-07-07 09:12:54 +02:00
Jannis Mattheis
d741e678a8 refactor: remove user/pass replacement 2024-07-07 09:05:58 +02:00
Jannis Mattheis
337af76b58 fix: log image load errors and show placeholder on error 2024-06-22 13:21:09 +02:00
Niko Diamadis
7d6399b087 Replace image basic auth authenticator with interceptor 2024-06-20 10:08:36 +02:00
Niko Diamadis
0cd644ed0d Update library dependencies 2024-06-19 14:36:22 +02:00
Niko Diamadis
c6dfeda162 Add basic auth support for images via URL 2024-06-18 21:23:48 +02:00
Jannis Mattheis
ac27d9ec6d fix: image loading when using markdown img and bigImageUrl
When receiving a message with the same image in the markdown body and in
the extras client::notification.bigImageUrl, then there is a clash on
the file system.

One request succeeds and the other fails with the following error. This
commit ensures that there is only one coil image loader instance, so
that there shouldn't be file system race conditions.

    WebSocket(1): received message {"id":845,"appid":21,...}
    Failed - http://192.168.178.2:8000/1.jpg?v=1718369188 - java.lang.IllegalStateException: closed
    java.lang.IllegalStateException: closed
        at okio.RealBufferedSource.rangeEquals(RealBufferedSource.kt:466)
        at okio.RealBufferedSource.rangeEquals(RealBufferedSource.kt:130)
        at coil.decode.SvgDecodeUtils.isSvg(DecodeUtils.kt:19)
        at coil.decode.SvgDecoder$Factory.isApplicable(SvgDecoder.kt:104)
        at coil.decode.SvgDecoder$Factory.create(SvgDecoder.kt:99)
        at coil.ComponentRegistry.newDecoder(ComponentRegistry.kt:100)
        at coil.intercept.EngineInterceptor.decode(EngineInterceptor.kt:197)
        at coil.intercept.EngineInterceptor.access$decode(EngineInterceptor.kt:42)
        at coil.intercept.EngineInterceptor$execute$executeResult$1.invokeSuspend(EngineInterceptor.kt:131)
        at coil.intercept.EngineInterceptor$execute$executeResult$1.invoke(EngineInterceptor.kt)
        at coil.intercept.EngineInterceptor$execute$executeResult$1.invoke(EngineInterceptor.kt)
        at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:78)
        at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:167)
        at kotlinx.coroutines.BuildersKt.withContext(Unknown Source)
        at coil.intercept.EngineInterceptor.execute(EngineInterceptor.kt:130)
        at coil.intercept.EngineInterceptor.access$execute(EngineInterceptor.kt:42)
        at coil.intercept.EngineInterceptor$execute$1.invokeSuspend(EngineInterceptor.kt)
        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.kt:115)
        at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:103)
        at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt: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)
    Successful (NETWORK) - http://192.168.178.2:8000/1.jpg?v=1718369188
2024-06-14 15:18:55 +02:00
Jannis Mattheis
b9b767f5d7 Merge pull request #344 from cyb3rko/client-certificate-auth
Client certificate authentication (mTLS)
2024-06-13 21:43:18 +02:00
Jannis Mattheis
2dddbe4d8b Remove unused caCertCN setting 2024-06-13 21:32:29 +02:00
Niko Diamadis
cdb807c806 Close certificate InputStream after use 2024-06-11 21:13:04 +02:00
Niko Diamadis
9d2d49794b Keep AdvancedDialog button always enabled 2024-06-11 21:12:06 +02:00
Niko Diamadis
3ddba7aa52 Move AdvancedDialog initialization 2024-06-06 10:08:21 +02:00
Niko Diamadis
090edb75fc Improve client cert password handling 2024-06-06 00:42:36 +02:00
Niko Diamadis
4fac47f3b1 Simplify ssl settings initialization 2024-06-06 00:24:27 +02:00
Niko Diamadis
5b7aff0c23 Apply some smaller changes 2024-06-02 22:16:33 +02:00
Niko Diamadis
d74bca714c Move cert migration to GotifyApplication and synchronize calls 2024-06-02 22:05:12 +02:00
Jannis Mattheis
7b8e0ba1b3 Merge pull request #346 from cyb3rko/link-colours-fix
Adopt hyperlink color for non-markdown messages
2024-04-26 14:21:52 +02:00
Niko Diamadis
11448f7d2c Add reminder for mandatory client cert password 2024-04-24 00:21:31 +02:00
Niko Diamadis
2d70b94eb7 Merge branch 'master' into client-certificate-auth 2024-04-23 23:19:04 +02:00
Niko Diamadis
a3dd80cd20 Migrate legacy ca cert in newer version 2024-04-23 20:12:51 +02:00
Niko Diamadis
d3525ea614 Adopt hyperlink color for non-markdown messages 2024-04-22 20:57:06 +02:00
Niko Diamadis
4cc82267f8 Add SVG support 2024-04-22 20:33:04 +02:00
Niko Diamadis
60946e4e1e Fix client certificate-only usage 2024-04-22 00:59:19 +02:00
Niko Diamadis
79584c85c1 Replace denigrated call to certificate name 2024-04-19 02:15:33 +02:00
Niko Diamadis
380e209326 Remove unused utils methods 2024-04-19 02:15:33 +02:00
Niko Diamadis
23ef899564 Implement optional mTLS via client certificate option 2024-04-19 02:15:33 +02:00