Commit Graph

5767 Commits

Author SHA1 Message Date
Marcel Hibbe
56f29d3d9f
avoid ArrayIndexOutOfBoundsException when swiping to reply.
This does not fix the root cause. So probably position should not be -1 here.
However if it is -1, this commit avoids the following exception and swiping to reply simply won't work.

Exception java.lang.ArrayIndexOutOfBoundsException: length=163; index=-1
  at java.util.ArrayList.get (ArrayList.java:439)
  at com.nextcloud.talk.chat.ChatActivity$setupSwipeToReply$messageSwipeController$1.showReplyUI (ChatActivity.kt:1144)
  at com.nextcloud.talk.ui.recyclerview.MessageSwipeCallback.setTouchListener$lambda$0 (MessageSwipeCallback.kt:137)
  at com.nextcloud.talk.ui.recyclerview.MessageSwipeCallback.$r8$lambda$hYMm2zsKL8yVqo4e364Wb8cWEW8
  at com.nextcloud.talk.ui.recyclerview.MessageSwipeCallback$$ExternalSyntheticLambda0.onTouch
  at android.view.View.dispatchTouchEvent (View.java:15046)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3115)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2788)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3121)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2802)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3121)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2802)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3121)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2802)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3121)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2802)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3121)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2802)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3121)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2802)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3121)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2802)
  at com.android.internal.policy.DecorView.superDispatchTouchEvent (DecorView.java:500)
  at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent (PhoneWindow.java:1912)
  at android.app.Activity.dispatchTouchEvent (Activity.java:4299)
  at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent (WindowCallbackWrapper.java:70)
  at com.android.internal.policy.DecorView.dispatchTouchEvent (DecorView.java:458)
  at android.view.View.dispatchPointerEvent (View.java:15309)
  at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent (ViewRootImpl.java:6778)
  at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess (ViewRootImpl.java:6578)
  at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:6034)
  at android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:6091)
  at android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:6057)
  at android.view.ViewRootImpl$AsyncInputStage.forward (ViewRootImpl.java:6222)
  at android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:6065)
  at android.view.ViewRootImpl$AsyncInputStage.apply (ViewRootImpl.java:6279)
  at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:6038)
  at android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:6091)
  at android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:6057)
  at android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:6065)
  at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:6038)
  at android.view.ViewRootImpl.deliverInputEvent (ViewRootImpl.java:9206)
  at android.view.ViewRootImpl.doProcessInputEvents (ViewRootImpl.java:9157)
  at android.view.ViewRootImpl.enqueueInputEvent (ViewRootImpl.java:9126)
  at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent (ViewRootImpl.java:9329)
  at android.view.InputEventReceiver.dispatchInputEvent (InputEventReceiver.java:267)
  at android.os.MessageQueue.nativePollOnce
  at android.os.MessageQueue.next (MessageQueue.java:335)
  at android.os.Looper.loopOnce (Looper.java:161)
  at android.os.Looper.loop (Looper.java:288)
  at android.app.ActivityThread.main (ActivityThread.java:7918)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:548)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:936)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-07-07 13:54:41 +02:00
Marcel Hibbe
5bfafa6609 allow screenOrientation for ChatActivity
this was temporarily disabled as a workaround because of https://github.com/nextcloud/talk-android/issues/3146
So after screen rotation it could happen that chat was not updated.

Now that the issue is solved, portrait mode will be allowed again

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-07-07 10:11:17 +02:00
Marcel Hibbe
4c9913a760 fix to handleActionFromContact
handleActionFromContact was not executed in onCreate of the MainActivity which is now fixed by this commit.

+ refactoring some intent handling

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-07-07 10:05:34 +02:00
Marcel Hibbe
007c4a97dc fix to allow empty map for phone-number users
com.nextcloud.talk2  E  Failed to searchContactsByPhoneNumber
    java.lang.NullPointerException: Parameter specified as non-null is null: method com.nextcloud.talk.models.json.search.ContactsByNumberOCS.setMap, parameter <set-?>
    	at com.nextcloud.talk.models.json.search.ContactsByNumberOCS.setMap(Unknown Source:2)
    	at com.nextcloud.talk.models.json.search.ContactsByNumberOCS$$JsonObjectMapper.parseField(ContactsByNumberOCS$$JsonObjectMapper.java:56)
    	at com.nextcloud.talk.models.json.search.ContactsByNumberOCS$$JsonObjectMapper.parse(ContactsByNumberOCS$$JsonObjectMapper.java:33)
    	at com.nextcloud.talk.models.json.search.ContactsByNumberOCS$$JsonObjectMapper.parse(ContactsByNumberOCS$$JsonObjectMapper.java:16)
    	at com.nextcloud.talk.models.json.search.ContactsByNumberOverall$$JsonObjectMapper.parseField(ContactsByNumberOverall$$JsonObjectMapper.java:40)
    	at com.nextcloud.talk.models.json.search.ContactsByNumberOverall$$JsonObjectMapper.parse(ContactsByNumberOverall$$JsonObjectMapper.java:30)
    	at com.nextcloud.talk.models.json.search.ContactsByNumberOverall$$JsonObjectMapper.parse(ContactsByNumberOverall$$JsonObjectMapper.java:13)
    	at com.bluelinelabs.logansquare.JsonMapper.parse(JsonMapper.java:52)
    	at com.bluelinelabs.logansquare.LoganSquare.parse(LoganSquare.java:69)
    	at com.github.aurae.retrofit2.LoganSquareResponseBodyConverter.convert(LoganSquareResponseBodyConverter.java:30)
    	at com.github.aurae.retrofit2.LoganSquareResponseBodyConverter.convert(LoganSquareResponseBodyConverter.java:16)
    	at retrofit2.OkHttpCall.parseResponse(OkHttpCall.java:243)
    	at retrofit2.OkHttpCall.execute(OkHttpCall.java:204)
    	at retrofit2.adapter.rxjava2.CallExecuteObservable.subscribeActual(CallExecuteObservable.java:46)
    	at io.reactivex.Observable.subscribe(Observable.java:12284)
    	at retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(BodyObservable.java:35)
    	at io.reactivex.Observable.subscribe(Observable.java:12284)
    	at io.reactivex.internal.operators.observable.ObservableSubscribeOn$SubscribeTask.run(ObservableSubscribeOn.java:96)
    	at io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:608)
    	at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)
    	at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)
    	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
    	at java.lang.Thread.run(Thread.java:919)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-07-07 10:05:34 +02:00
Marcel Hibbe
79508e8ca0 fix IllegalArgumentException caused by missing theming
Exception java.lang.IllegalArgumentException: The style on this component requires your app theme to be Theme.AppCompat (or a descendant).
  at com.google.android.material.internal.ThemeEnforcement.checkTheme (ThemeEnforcement.java:247)
  at com.google.android.material.internal.ThemeEnforcement.checkAppCompatTheme (ThemeEnforcement.java:212)
  at com.google.android.material.internal.ThemeEnforcement.checkCompatibleTheme (ThemeEnforcement.java:147)
  at com.google.android.material.internal.ThemeEnforcement.obtainTintedStyledAttributes (ThemeEnforcement.java:114)
  at com.google.android.material.textfield.TextInputLayout.<init> (TextInputLayout.java:472)
  at com.google.android.material.textfield.TextInputLayout.<init> (TextInputLayout.java:451)
  at com.google.android.material.textfield.TextInputLayout.<init> (TextInputLayout.java:447)
  at com.nextcloud.talk.settings.SettingsActivity.askForPhoneNumber (SettingsActivity.kt:935)
  at com.nextcloud.talk.settings.SettingsActivity.access$askForPhoneNumber (SettingsActivity.kt:105)
  at com.nextcloud.talk.settings.SettingsActivity$checkForPhoneNumber$1.onNext (SettingsActivity.kt:915)
  at com.nextcloud.talk.settings.SettingsActivity$checkForPhoneNumber$1.onNext (SettingsActivity.kt:908)
  at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainNormal (ObservableObserveOn.java:201)
  at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run (ObservableObserveOn.java:255)
  at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run (HandlerScheduler.java:124)
  at android.os.Handler.handleCallback (Handler.java:942)
  at android.os.Handler.dispatchMessage (Handler.java:99)
  at android.os.Looper.loopOnce (Looper.java:211)
  at android.os.Looper.loop (Looper.java:300)
  at android.app.ActivityThread.main (ActivityThread.java:8294)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:580)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1028)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-07-07 10:05:34 +02:00
Marcel Hibbe
62394de1ac solve detekt warnings
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-07-07 09:58:40 +02:00
Marcel Hibbe
46386d503d solve lint warnings
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-07-07 09:58:40 +02:00
Marcel Hibbe
e1d4374ca5 fix to refresh chat after conversation screen was in background.
without this fix, it could happen that pullChatMessagesPending remains true after the conversation screen was in background. As a result the check

if (pullChatMessagesPending) {
     Log.d(TAG, "pullChatMessages - pullChatMessagesPending is true, exiting")
     return
}

in pullChatMessages() always returns without to pull chat messages (so there was even no long-polling anymore).

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-07-07 09:58:40 +02:00
Nextcloud bot
bdfc80a7e7
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-07 02:39:02 +00:00
Nextcloud bot
fec47889d0
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-06 02:44:07 +00:00
Marcel Hibbe
2950da04ac
adjust features
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-07-05 11:51:07 +02:00
Marcel Hibbe
b5568a27c3
bump version to 17.0.1 RC1
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-07-05 11:49:56 +02:00
Nextcloud bot
d085c42b5f
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-05 08:54:44 +00:00
Nextcloud bot
72cb58371c
Fix(l10n): Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-05 08:54:18 +00:00
Marcel Hibbe
ac5061d8a4 fix to load conversationlist only once after login
without this fix:
after login the conversation list opened multiple times for the same user when other users already exist

reason:
proceedWithLogin() in AccountVerificationController is called multiple times because for ALL accounts (for (User user : userEntityObjectList)) the workers send their results via eventBus to

AccountVerificationController#onMessageEvent(eventStatus: EventStatus)

So depending on how many accounts exist, the ConversationList was loaded x times.

solution:
if internalAccountId is already the active one, no need to load the conversationList another time.

when there is only one account -> currentUser id and internalAccountId are the same so it would not enter the condition. Thus also allowing it when only one user exists.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-07-05 10:26:02 +02:00
Marcel Hibbe
e69a03a7ce fix long click in ChooseAccountDialogFragment
otherwise the list in the ConversationListActivity would handle it which results in unexpected user actions dialog popup

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-07-05 10:08:33 +02:00
Nextcloud bot
ca9520a8c7
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-05 02:38:05 +00:00
Nextcloud bot
348090d56b
Fix(l10n): Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-05 02:37:47 +00:00
dependabot[bot]
ca8578632e
Build(deps): Bump pl.droidsonroids.gif:android-gif-drawable
Bumps [pl.droidsonroids.gif:android-gif-drawable](https://github.com/koral--/android-gif-drawable) from 1.2.26 to 1.2.27.
- [Release notes](https://github.com/koral--/android-gif-drawable/releases)
- [Changelog](https://github.com/koral--/android-gif-drawable/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/koral--/android-gif-drawable/compare/v1.2.26...v1.2.27)

---
updated-dependencies:
- dependency-name: pl.droidsonroids.gif:android-gif-drawable
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-04 08:37:50 +00:00
Nextcloud bot
2572d5ad46
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-04 02:41:15 +00:00
Nextcloud bot
1bfe7d6aae
Fix(l10n): Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-04 02:40:57 +00:00
Andy Scherzinger
7255e1b585
Merge pull request #3137 from nextcloud/dependabot/gradle/pl.droidsonroids.gif-android-gif-drawable-1.2.26
Build(deps): Bump pl.droidsonroids.gif:android-gif-drawable from 1.2.25 to 1.2.26
2023-07-03 10:18:58 +02:00
Nextcloud Android Bot
4b02c37355 Weekly 17.10.0 Alpha 10 2023-07-03 03:11:52 +00:00
Nextcloud bot
249eee3ba6
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-03 02:46:42 +00:00
Nextcloud bot
14a9e50b76
Fix(l10n): Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-03 02:46:24 +00:00
dependabot[bot]
5ed561325f
Build(deps): Bump pl.droidsonroids.gif:android-gif-drawable
Bumps [pl.droidsonroids.gif:android-gif-drawable](https://github.com/koral--/android-gif-drawable) from 1.2.25 to 1.2.26.
- [Release notes](https://github.com/koral--/android-gif-drawable/releases)
- [Changelog](https://github.com/koral--/android-gif-drawable/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/koral--/android-gif-drawable/compare/v1.2.25...v1.2.26)

---
updated-dependencies:
- dependency-name: pl.droidsonroids.gif:android-gif-drawable
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-03 01:08:24 +00:00
Nextcloud bot
a78c92ff42
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-02 02:43:17 +00:00
Nextcloud bot
76f351372b
Fix(l10n): Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-02 02:42:58 +00:00
Nextcloud bot
a3887055f3
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-01 02:39:44 +00:00
Nextcloud bot
4fd9534aac
Fix(l10n): Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-01 02:39:26 +00:00
Marcel Hibbe
64d0f0e2cd Fix to parse OpenAI translations.
The parsed result was without quotes which resulted in error:

Unterminated object at character 21 of [{fromLabel=English (US),

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-06-30 07:30:18 +02:00
Marcel Hibbe
817ea1ab64 Avoid to send conversation and user via intent
sending too much data via intent always is a bad pattern which can lead to TransactionTooLargeException.

When OpenAI translation is enabled, the capabilities contain a ton of translation combinations. These capabilities are contained in 'currentUser' as well in 'selectedConversation'. So, TransactionTooLargeException was thrown.

this PR:
- avoids passing too much data as parcelables in intents (esp. conversation and user)
- introduces MVVM patterns to load required data (esp conversation) from backend (for now via requests, in the future from database first)
- introduces ConversationModel which is created out of the Conversation json model
- loads user data via injection when possible
- creates some quickfixes in ConversationBottomDialog, EntryMenuController and OperationsMenuController.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-06-30 07:30:18 +02:00
Nextcloud bot
e4c06d8ee8
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-30 02:46:46 +00:00
Nextcloud bot
707d3dcf45
Fix(l10n): Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-30 02:46:26 +00:00
Julius Linus
bfbf46df77 quick conversation info bug fix
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2023-06-29 20:59:47 +02:00
Julius Linus
fa5e0fb01d Can now open preview messages in the files app in message actions
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2023-06-29 09:54:02 +02:00
Nextcloud bot
fd67eaedf3
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-29 02:55:38 +00:00
Nextcloud bot
0bdb3cb92b
Fix(l10n): Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-29 02:55:18 +00:00
dependabot[bot]
1ae828dfd2
Build(deps): Bump com.vanniktech:emoji-google from 0.16.0 to 0.17.0
Bumps [com.vanniktech:emoji-google](https://github.com/vanniktech/Emoji) from 0.16.0 to 0.17.0.
- [Release notes](https://github.com/vanniktech/Emoji/releases)
- [Changelog](https://github.com/vanniktech/Emoji/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vanniktech/Emoji/compare/0.16.0...0.17.0)

---
updated-dependencies:
- dependency-name: com.vanniktech:emoji-google
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-28 08:39:08 +00:00
Nextcloud bot
e04068d2e9
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-28 02:48:33 +00:00
Nextcloud bot
cedc85d49b
Fix(l10n): Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-28 02:47:46 +00:00
rapterjet2004
42c55cd5ac trivial formatting change to test checks
Signed-off-by: Julius Linus julius.linus@nextcloud.com
2023-06-27 15:01:59 +02:00
rapterjet2004
63b9e41a16 or former one to one
Signed-off-by: Julius Linus julius.linus@nextcloud.com
2023-06-27 15:01:59 +02:00
rapterjet2004
d24bd9d6a2 WIP one-to-one behaves like mentioned
Signed-off-by: Julius Linus julius.linus@nextcloud.com
2023-06-27 15:01:59 +02:00
rapterjet2004
943286ddd6 migrating from material preferences to native, squashed commit
Signed-off-by: Julius Linus julius.linus@nextcloud.com
2023-06-27 14:53:18 +02:00
Andy Scherzinger
1b43d18566 finetune preferences for M3 - DRAFT
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-06-27 14:53:18 +02:00
rapterjet2004
76f5fe91f6 migrating from material preferences to native, squashed commit
Signed-off-by: Julius Linus julius.linus@nextcloud.com
2023-06-27 14:53:18 +02:00
Nextcloud bot
34e79d563c
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-27 02:53:00 +00:00
Nextcloud bot
c952d78ed0
Fix(l10n): Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-27 02:52:39 +00:00
Andy Scherzinger
ef2931e1ee
Merge pull request #3113 from nextcloud/dependabot/gradle/roomVersion-2.5.2
Build(deps): Bump roomVersion from 2.5.1 to 2.5.2
2023-06-26 15:58:23 +02:00