ganfra
faeeec0e37
Sync: fix liveState not initialized and add method to get current state without livedata
2020-07-01 12:10:12 +02:00
ganfra
3db26bcae1
Merge develop into db_clean_up
2020-07-01 09:32:25 +02:00
ganfra
f0dbb92d76
Attempt to clean db [WIP]
2020-06-30 19:45:17 +02:00
Benoit Marty
73ce38c6a9
Merge pull request #1583 from vector-im/feature/fix_search_case
...
Fixes #1468 user search case
2020-06-30 19:16:48 +02:00
Benoit Marty
1ed8ff8711
Do some cleanup
2020-06-30 19:06:48 +02:00
Valere
7ed9f535e6
Fix / clear on detached
2020-06-30 18:48:51 +02:00
Valere
f5c1ad8f2a
Fix / remember state and resend on rebind
2020-06-30 18:48:51 +02:00
Valere
1e718bb44f
javadoc
2020-06-30 18:48:51 +02:00
Valere
f0fe10a11d
klint
2020-06-30 18:48:51 +02:00
Valere
ae1da6b9f5
Namespacing of file service
2020-06-30 18:48:51 +02:00
Valere
04b6b3674d
Also Clear download cache when clearing media
2020-06-30 18:48:51 +02:00
Valere
397d4f0be5
Fix upload + cleaning
2020-06-30 18:48:51 +02:00
Valere
01fdc6d1bb
Avoid downloading same file several times
2020-06-30 18:48:51 +02:00
Valere
33698abfb2
Download and Open file securily
2020-06-30 18:48:51 +02:00
Valere
80e8cd4191
Downloaded (large?) files are truncated
2020-06-30 18:39:13 +02:00
Valere
2932e05851
Fixes #1468 user search case
2020-06-30 18:38:46 +02:00
Benoit Marty
cec5cd864c
Remove legacy class, we do not need them for the migration
...
Migration tested again and OK
2020-06-30 18:27:39 +02:00
Benoit Marty
ba26aee54c
Use OkHttpClient with certificate to download files, and to perform wellknown request, and to get terms
2020-06-30 18:27:39 +02:00
Benoit Marty
6721e33c7e
cleanup
2020-06-30 18:25:36 +02:00
Benoit Marty
4bb804fbf7
Allow self-signed certificate ( #1564 )
...
Accepted fingerprint before the migration to RiotX should still work after the migration.
The dialog to trust the certificate is displayed during the login flow.
For the moment, it is not displayed if the certificate change on the server once the user is logged in. This use case will be handled later.
2020-06-30 18:25:36 +02:00
Valere
fe235e0791
ktlint
2020-06-30 17:36:24 +02:00
Valere
a9191b8fad
klint
2020-06-30 17:36:24 +02:00
Valere
3fa2647e92
Send with held code on key requests
2020-06-30 17:36:24 +02:00
Valere
cdb1b8d8f8
post merge fix
2020-06-30 17:36:24 +02:00
Valere
c7c35399e5
post rebase
2020-06-30 17:36:24 +02:00
Valere
102b8f88d0
Persist shared session info (enhance key reshare)
2020-06-30 17:36:24 +02:00
Valere
4ca0c23e2a
Mock Http requests for test
2020-06-30 17:36:24 +02:00
Valere
f9d931960b
rename param
2020-06-30 17:35:24 +02:00
Valere
dbe78f160b
WithHeld key support initial commit
2020-06-30 17:35:24 +02:00
Benoit Marty
a6f4cd74d5
Merge pull request #1569 from vector-im/feature/fix_improve_epoxy
...
Feature/fix improve epoxy
2020-06-30 17:28:34 +02:00
Benoit Marty
da472ea858
Use name instead of computed displayName
2020-06-30 16:10:27 +02:00
Benoit Marty
cca6d0e967
Cleanup
2020-06-30 15:52:40 +02:00
onurays
2650453d4b
Add room alias first before setting the canonical alias.
2020-06-30 14:23:57 +02:00
onurays
56f8e52352
Simplify uploading room and user avatar.
2020-06-30 14:23:57 +02:00
onurays
e0e4cf3df1
Code review fixes.
2020-06-30 14:23:57 +02:00
onurays
16bd642ae8
Implementation of updating user avatar.
...
Fixes #1054
2020-06-30 14:23:57 +02:00
onurays
1f30cf468a
Check if user have enough power level to change settings.
2020-06-30 14:22:24 +02:00
onurays
762dd1d0a5
Implementation of canonical alias.
2020-06-30 14:22:24 +02:00
onurays
f5790e5dc2
Implementation of room history readability.
2020-06-30 14:22:24 +02:00
onurays
52eec06110
Updating room avatar is implemented.
2020-06-30 14:22:24 +02:00
onurays
a6e4a328b3
Chain all operations to save settings.
2020-06-30 14:17:19 +02:00
Valere
51b7a0aeae
Fix / device change detection broken
2020-06-29 16:37:22 +02:00
Valere
4ce2478e44
Fix 404 when uploading xsigning keys
...
Own device keys was not yet uploaded, now it's done on session open . + added some cleaning of legacy things
2020-06-29 16:37:22 +02:00
Benoit Marty
a66010a1d8
Create isCrossSigningInitialized(). Do not display the conclusion Fragment anymore
2020-06-29 16:36:32 +02:00
Benoit Marty
12a4f6f05b
Create isRecoverySetup()
2020-06-29 16:36:32 +02:00
Benoit Marty
bcd78a96bf
Add FIXME
2020-06-29 16:36:32 +02:00
Benoit Marty
bddd7f4005
Use defined model (tested ok)
2020-06-29 16:36:32 +02:00
Benoit Marty
e4ac28877c
Ask user password to initialize CrossSigning
...
And migrate some logic to the ViewModel
2020-06-29 16:36:19 +02:00
Benoit Marty
aa2b62976e
Fix bad comment
2020-06-29 16:36:19 +02:00
Benoit Marty
e3dc6e307f
Gossip MSK
2020-06-29 16:36:19 +02:00
Benoit Marty
48a30a7b82
Create a ViewState for HomeActivity
...
And disable the popup - WIP
2020-06-29 16:36:19 +02:00
Benoit Marty
1cd27d7f67
First commit to cleanup ReAuthHelper and it's usage
...
Also add some comment and do some other cleanup
2020-06-29 16:36:19 +02:00
ganfra
84c8f9d351
Clean code
2020-06-29 16:08:45 +02:00
Benoit Marty
e599abc6ba
Merge pull request #1554 from vector-im/feature/op
...
Feature/op
2020-06-29 14:10:01 +02:00
Benoit Marty
cec79fed44
Mutualize code
2020-06-29 11:00:40 +02:00
ganfra
8972319a85
Handle typing through RoomSummaryMapper + fix room summary binding called too many times
2020-06-27 18:26:14 +02:00
Benoit Marty
85f713c8c7
Add missing @JsonClass(generateAdapter = false)
for Proguard
2020-06-27 11:52:47 +02:00
Benoit Marty
050530a991
ktlint
2020-06-26 16:19:05 +02:00
Benoit Marty
f984cff5b4
Auto review
2020-06-26 16:19:05 +02:00
Benoit Marty
ad7297c7e3
CryptoStore migration: step5: convert serialized classes to other classes
...
legacy MXDeviceInfo and MXOlmInboundGroupSession2
2020-06-26 16:19:05 +02:00
Benoit Marty
17d90a32e1
CryptoStore migration: step4: clear files and prefs
2020-06-26 16:19:05 +02:00
Benoit Marty
89a20eafd8
CryptoStore migration: step3: copy DB and encrypt DB
2020-06-26 16:19:05 +02:00
Benoit Marty
a2be821d2f
CryptoStore migration: step2: handle migration to RiotX (not tested)
2020-06-26 16:19:05 +02:00
Benoit Marty
39022b3b66
CryptoStore migration: step1: import migration from Riot-Android (not tested)
2020-06-26 16:19:05 +02:00
Benoit Marty
fe8f79698c
Improve code
2020-06-26 16:19:05 +02:00
Benoit Marty
a0a8f95d37
Create LegacySessionImporter class and import credentials - tested OK
2020-06-26 16:19:05 +02:00
Benoit Marty
28df09a8d4
ktlint
2020-06-26 15:54:50 +02:00
Benoit Marty
2e93b7c4c9
Auto-review
2020-06-26 15:54:50 +02:00
Benoit Marty
4125baf066
Some more cleanup on the model used to download and to upload keys
2020-06-26 15:54:50 +02:00
Benoit Marty
1fb2569a39
Remove deviceId from /keys/upload/{deviceId} as not spec-compliant ( #1502 )
...
FTR: 1b6a74fd93
2020-06-26 15:54:50 +02:00
Benoit Marty
19ed5a2d3d
Keys Backup API now use the unstable prefix ( #1503 )
2020-06-26 15:54:50 +02:00
Valere
84272f5b5d
Merge pull request #1534 from vector-im/feature/fix_agelocalts_paginate
...
Pagination do not set ageLocalTs
2020-06-26 14:40:09 +02:00
Onuray Sahin
90804f7625
Merge pull request #1547 from vector-im/feature/fix_compress_images
...
Compress images before sending
2020-06-26 15:12:27 +03:00
onurays
824dafb525
ktlint fix.
2020-06-26 14:48:10 +03:00
onurays
3fcf77e214
Lint fix.
2020-06-26 14:10:49 +03:00
onurays
c5d2a34ebd
Documentation added to explain creating a cache file.
2020-06-26 12:58:41 +03:00
Valere
a04a0e7175
Code review
2020-06-26 09:20:03 +02:00
Valere
9aa0d38116
Pagination do not set ageLocalTs
2020-06-26 09:19:55 +02:00
onurays
4349331ee7
Support compressing images on Android 10 and above.
2020-06-25 16:14:54 +03:00
ganfra
60c873aa66
Clean code
2020-06-25 12:12:50 +02:00
ganfra
f28e3ca504
Merge branch 'develop' into feature/improve_perf
2020-06-25 10:57:46 +02:00
onurays
96d6a72b97
Compress images before sending (for devices below Android 10).
...
Fixes #1333
2020-06-25 10:09:08 +03:00
Benoit Marty
7b3fa501c6
Merge pull request #1545 from johnjohndoe/sharedpreferences
...
Use SharedPreferences#edit extension function consistently.
2020-06-24 21:47:07 +02:00
ganfra
95c05f6107
Refact some more code
2020-06-24 17:05:00 +02:00
Tobias Preuss
e24785015d
Use SharedPreferences#edit extension function consistently.
...
+ Add "androidx.core:core-ktx:1.1.0" to "matrix-sdk-android" module which
was already used in "vector" module.
+ Sources: https://android.googlesource.com/platform/frameworks/support/+/refs/heads/androidx-preference-release/core/core-ktx/src/main/java/androidx/core/content/SharedPreferences.kt .
2020-06-24 15:40:00 +02:00
ganfra
554c37febe
Merge branch 'develop' into feature/fix_widget
2020-06-24 15:14:26 +02:00
Benoit Marty
dbb9dc4458
Merge pull request #1541 from johnjohndoe/random-housekeeping
...
Random housekeeping indicated by Lint
2020-06-24 14:56:23 +02:00
Benoit Marty
0d891b1c93
Use vendor prefix for non merged MSC ( #1537 )
2020-06-24 14:10:24 +02:00
Tobias Preuss
25f45da195
Use indexing operator.
2020-06-23 18:25:37 +02:00
Tobias Preuss
f609cc7042
Simplify loop and when statement.
2020-06-23 18:19:58 +02:00
ganfra
360666a758
Creates SessionLifecycleObserver
2020-06-23 15:12:25 +02:00
Benoit Marty
3f44056243
Merge pull request #1526 from johnjohndoe/retrofit2-call-awaitresponse
...
Use retrofit2.Call.awaitResponse extension provided by Retrofit 2.
2020-06-23 13:53:27 +02:00
ganfra
6b13c00d56
Database: add @SessionDatabase on monarchy instances
2020-06-23 13:18:07 +02:00
ganfra
6e95c6c200
Fix in memory local echo filtering
2020-06-23 12:23:23 +02:00
Benoit Marty
9754e26e5f
Add capability to change the display name ( #1529 )
2020-06-22 20:50:31 +02:00
Valere
55993aff04
Merge pull request #1416 from vector-im/feature/voip
...
Call support with WebRTC
2020-06-22 17:23:22 +02:00
Tobias Preuss
66c5a35f36
Use retrofit2.Call.awaitResponse extension provided by Retrofit 2.
...
+ This extension is identical to the one used in this project and is
available since Retrofit 2.6.0.
See b761518aa1
.
2020-06-22 17:04:37 +02:00
Benoit Marty
16f32da647
Cleanup during review.
2020-06-22 16:15:15 +02:00
Tobias Preuss
e7143b53d5
Fix self-assignment of callback.
2020-06-22 12:08:49 +02:00
Tobias Preuss
b728e10616
Removed unneeded conversion.
2020-06-22 12:08:49 +02:00
Tobias Preuss
8ffa0061e9
Remove unneeded qualifier for constant.
2020-06-22 12:08:49 +02:00
Tobias Preuss
b767c2fa54
Let variable be "val" if possible.
2020-06-22 12:08:49 +02:00
Tobias Preuss
aeb41bc516
Remove redundant "public" qualifier.
2020-06-22 12:08:49 +02:00
Tobias Preuss
178bdff62a
Use string template syntax.
2020-06-22 12:08:49 +02:00
ganfra
8de0bdca93
Merge branch 'develop' into feature/fix_widget
2020-06-22 10:21:39 +02:00
Benoit Marty
057c21f7d0
Incomplete predicate in RealmCryptoStore#getOutgoingRoomKeyRequest ( #1519 )
2020-06-22 09:17:37 +02:00
Benoit Marty
af8ab57e60
Rename methods and variables for code clarity
2020-06-22 09:14:59 +02:00
ganfra
234dfa18d3
Widgets: fix some issues with navigation
2020-06-19 20:38:30 +02:00
ganfra
ba0823f4d0
Widget: fix terms not presented
2020-06-19 20:35:29 +02:00
Valere
30d47b4fa6
Clear incoming calls managed by other session
2020-06-19 13:36:42 +02:00
Valere
fd3f591541
Show error on connecting timeout + refactoring
2020-06-19 13:36:42 +02:00
Valere
c85ba51274
Basic discard of old call events
2020-06-19 13:36:42 +02:00
Valere
843da1d48d
Incoming notification + ringing
2020-06-19 13:36:42 +02:00
Valere
d8cf44fdc9
Simple cache of turn server response
...
in memory cache in service + show active call banner only if connected
2020-06-19 13:36:42 +02:00
Valere
84b474d070
klint
2020-06-19 13:36:42 +02:00
Valere
a1907aaddb
Cleaning call states
2020-06-19 13:36:16 +02:00
Valere
46d7db8214
klint
2020-06-19 13:36:16 +02:00
Valere
b5cdb44642
Fix rebase
2020-06-19 13:36:16 +02:00
Valere
9006acb66a
WIP | Avoid re-negociation pre-agree-upon signaling/negotiation.
2020-06-19 13:36:16 +02:00
onurays
4b85e39e3e
Implementation of turn server api.
2020-06-19 13:36:16 +02:00
Benoit Marty
ae762aa928
Cleanup
2020-06-19 13:36:16 +02:00
Benoit Marty
928da82dde
Make menu item live
2020-06-19 13:36:16 +02:00
Benoit Marty
df4aab1d73
Use EventType.isCallEvent()
2020-06-19 13:36:03 +02:00
onurays
c0988ba6d9
Merge conflicts and implement answer function.
2020-06-19 13:36:03 +02:00
Benoit Marty
03b9904b07
Create a MxCall interface to better handle call
2020-06-19 13:36:03 +02:00
Benoit Marty
24a9931abd
Rename some API
2020-06-19 13:36:03 +02:00
Benoit Marty
2581a3433e
Create RoomCallService
2020-06-19 13:36:03 +02:00
Benoit Marty
8c9ca1e0f2
Cleanup listener
2020-06-19 13:35:38 +02:00
Benoit Marty
dcae051e85
Create enum as per the spec and use default values when applicable
2020-06-19 13:35:38 +02:00
Benoit Marty
3d03bf6f91
Add Javadoc to the model
2020-06-19 13:35:38 +02:00
onurays
743ace7e60
Move voip responsibilities from views to WebRtcPeerConnectionManager.
2020-06-19 13:35:38 +02:00
onurays
5d476e7259
Show the foreground service for incoming and outgoing calls.
2020-06-19 13:35:38 +02:00
onurays
4a4edcf82a
Experimental implementation of Telecom API.
2020-06-19 13:35:38 +02:00
onurays
a1fc0db8a2
Finish CallActivity when m.call.hangup received.
2020-06-19 13:35:38 +02:00
Valere
dc19652c2b
WIP
...
refact WIP
TMP
WIP
2020-06-19 13:35:38 +02:00
Benoit Marty
fa204eca3b
Add link to Widget doc
2020-06-17 15:37:35 +02:00
ganfra
46378845e9
Typings: extract from room summary and use an in memory tracker
2020-06-16 17:50:08 +02:00
Benoit Marty
601e11980f
Merge pull request #1478 from vector-im/feature/proguard
...
Feature/proguard
2020-06-16 11:15:21 +02:00
Benoit Marty
344a9836d2
Typo and cleanup
2020-06-15 14:44:44 +02:00
Benoit Marty
2c1487d303
Merge pull request #1466 from vector-im/feature/toggle_favorite
...
Add capability to add and remove a room from the favorites (#1217 )
2020-06-15 14:29:48 +02:00
ganfra
171a945de9
Membership: refact a bit and add a left message when kicked or banned
2020-06-12 15:29:07 +02:00
ganfra
1786ba30f7
Proguard: handle matrix sdk
2020-06-11 19:36:15 +02:00
ganfra
e6a71ab7de
PowerLevel: fix role order
2020-06-11 13:49:36 +02:00
ganfra
579d4f7a5b
Merge branch 'develop' into feature/power_level
2020-06-10 17:21:04 +02:00
ganfra
60b91d4d50
PowerLevel : clean after Benoit's review
2020-06-10 17:19:33 +02:00
Benoit Marty
d8317f7439
Add capability to add and remove a room from the favorites ( #1217 )
2020-06-10 00:42:14 +02:00
Benoit Marty
0a7f77ea16
ktlint
2020-06-08 22:08:59 +02:00
Benoit Marty
d402b49f07
Merge branch 'develop' into feature/fix_version
2020-06-08 18:16:42 +02:00
Benoit Marty
d4ba9fa09a
Cleanup after Ganfra's review
2020-06-08 18:15:00 +02:00
Benoit Marty
1ad19b5e93
Merge branch 'develop' into feature/fix
2020-06-08 18:09:57 +02:00
Benoit Marty
050407f7c7
Merge branch 'develop' into feature/fix_1444
2020-06-08 18:07:15 +02:00
ganfra
7f02195377
Clean code
2020-06-08 10:29:09 +02:00
ganfra
0002cddd67
Merge branch 'develop' into feature/power_level
2020-06-08 10:12:53 +02:00
Benoit Marty
19e1683106
Move class LoginFlowType to api
package
2020-06-08 09:16:31 +02:00
Benoit Marty
5c538c7865
Clarify type when retrieving supported login flow (be conform to the spec)
2020-06-08 09:11:23 +02:00
Benoit Marty
ee23967afe
I made a mistake: registration step m.login.token type is not the same that login request.
2020-06-08 08:53:06 +02:00
ganfra
f19e2a0995
Room left: fix state not being updated
2020-06-05 20:09:30 +02:00
ganfra
e5da5a34cb
Power levels: handle some action permissions
2020-06-05 19:12:33 +02:00
Benoit Marty
3714323d74
Rename Constants
2020-06-05 01:16:19 +02:00
ganfra
08693a6875
Add some admin actions (ban, kick, unban)
2020-06-04 18:36:28 +02:00
ganfra
73eca2407b
Power level: handle timeline rendering
2020-06-04 17:18:39 +02:00
Benoit Marty
ae7a52cecf
Correctly handle SSO login redirection
2020-06-04 16:55:27 +02:00
Benoit Marty
1ad77530aa
Use RoomSummaryQueryParams as per Ganfra's excellent suggestion
2020-06-04 14:36:51 +02:00
ganfra
9075371145
Power level: start to handle updating
2020-06-04 13:09:20 +02:00
Benoit Marty
f28889284d
Wrong /query request ( #1444 )
2020-06-04 11:59:04 +02:00
Benoit Marty
8b7e5e527a
Make Credentials.homeServer optional because it is deprecated ( #1443 )
...
It is never used currently in RiotX, but if homeserver does not sent it, it would crash.
2020-06-04 11:41:32 +02:00
Benoit Marty
c3d8916802
fix param name
2020-06-04 11:40:38 +02:00
Benoit Marty
532f5e58ea
Move class Versions to internal package
2020-06-04 11:30:24 +02:00
Benoit Marty
57a5714fb5
Add the ability to compare Homeserver version ( #1442 )
2020-06-04 11:24:31 +02:00
Benoit Marty
a3fd49499b
Hide left rooms in breadcrumbs ( #766 )
2020-06-04 08:59:01 +02:00
Benoit Marty
b29c2b2de4
Send plain text in the body
...
According to https://matrix.org/docs/spec/client_server/latest#m-room-message-msgtypes , the plain text version of the HTML should be provided in the body.
Also create MarkdownParser class to be able to unit test it.
2020-06-03 18:44:35 +02:00
Benoit Marty
2e997f2c67
Wrong issue number
2020-06-03 18:41:27 +02:00
Benoit Marty
55bd346cb2
Merge pull request #1425 from vector-im/feature/integration_manager
...
Feature/integration manager
2020-06-03 18:10:03 +02:00
ganfra
0507fa5b0e
Widgets: clean again after Benoit's review
2020-06-03 12:00:52 +02:00
Benoit Marty
870c4bf765
Check that content is not null
2020-06-03 09:32:20 +02:00
Benoit Marty
9a592e9c7e
Create IsUselessResolver object
2020-06-03 01:13:02 +02:00
ganfra
53592ac404
Fix lint issues
2020-06-02 20:28:18 +02:00
ganfra
173c1d3a6e
Integration: make the default urls modifiable from MatrixConfiguration
2020-06-02 20:05:00 +02:00
ganfra
c815c4080d
Widget: changes naming algorithm (align on web)
2020-06-02 19:51:16 +02:00
ganfra
06cc2f527e
Clean after Benoit's review
2020-06-02 19:02:21 +02:00
Benoit Marty
3f1e5b9b1e
Hide "X made no changes" event by default in timeline ( #1430 )
2020-06-02 15:54:01 +02:00
ganfra
959b679086
Clean files
2020-05-29 19:03:54 +02:00
ganfra
7df8b3a9bf
Widgets: observe wellknown for integ config and open Jitsi in browser
2020-05-29 12:23:36 +02:00
ganfra
00f2d0249f
Merge branch 'develop' into feature/integration_manager
2020-05-28 20:33:51 +02:00
ganfra
4465e6eea3
Widget: format url with roomId if needed
2020-05-28 20:26:34 +02:00
ganfra
d4706b38b8
Widgets: display widget events in timeline
2020-05-28 20:04:41 +02:00
ganfra
31c82b4ba6
Widget: show room widgets in bottom sheet and fix some widget actions
2020-05-28 19:39:07 +02:00
ganfra
cb80d8d349
Widget: add active widgets
2020-05-28 17:08:57 +02:00
ganfra
1fe0c8a3e9
Widgets: handle actions (revoke, delete, edit, open in browser) and permissions bottom sheet
2020-05-28 10:25:04 +02:00
Benoit Marty
6f804cab4d
Avoid duplicated events in DB (one with localId and one with eventId from homeserver, once synced)
2020-05-27 11:27:54 +02:00
Benoit Marty
cf3dbb378e
Get uploaded files for e2e rooms, from local DB
2020-05-26 22:06:51 +02:00
ganfra
e32716aa48
Widget: add room active widgets to RoomDetailViewState
2020-05-26 19:47:06 +02:00
ganfra
4b37ede8c2
Widget: handle sticker
2020-05-26 18:16:38 +02:00
ganfra
dbe4c0c8e4
Remove duplicates from identity feature
2020-05-26 11:38:29 +02:00
ganfra
4f4afd6840
Widget post api: handle last methods
2020-05-26 11:29:42 +02:00
ganfra
7409fde650
Merge branch 'develop' into feature/integration_manager
2020-05-26 08:55:01 +02:00
ganfra
cfa31e6332
Widgets: fix extracting user widgets
2020-05-26 08:31:19 +02:00
ganfra
df973a6275
Widget: makes the integration manager screen mostly working
2020-05-26 08:07:09 +02:00
Benoit Marty
0509e76f18
var -> val
2020-05-25 23:54:53 +02:00
Benoit Marty
e379ccf086
Extract MatrixConfiguration to its own file, for a better visibility
2020-05-25 23:53:36 +02:00