Commit graph

7243 commits

Author SHA1 Message Date
Marcel Hibbe
fee6630b9c 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 12:58:09 +02:00
Marcel Hibbe
f324594b03 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 09:15:20 +02:00
Nextcloud bot
adf59e9c95
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-07 02:38:48 +00:00
Nextcloud bot
0793b8bbf7
Fix(l10n): Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-07 02:38:29 +00:00
Marcel Hibbe
b39daf4565 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-06 21:39:28 +02:00
Marcel Hibbe
2a6e10faa0 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-06 21:39:28 +02:00
Marcel Hibbe
5974278e84 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-06 21:39:28 +02:00
Andy Scherzinger
09b6e4098f
Merge pull request #3148 from nextcloud/dependabot/gradle/com.google.android.exoplayer-exoplayer-2.19.0
Build(deps): Bump com.google.android.exoplayer:exoplayer from 2.18.7 to 2.19.0
2023-07-06 15:38:58 +02:00
Andy Scherzinger
f3452127d3 improve detekt score
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-07-06 15:31:34 +02:00
dependabot[bot]
dbd34ad207 Build(deps): Bump com.google.android.exoplayer:exoplayer
Bumps [com.google.android.exoplayer:exoplayer](https://github.com/google/ExoPlayer) from 2.18.7 to 2.19.0.
- [Release notes](https://github.com/google/ExoPlayer/releases)
- [Changelog](https://github.com/google/ExoPlayer/blob/release-v2/RELEASENOTES.md)
- [Commits](https://github.com/google/ExoPlayer/compare/r2.18.7...r2.19.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-06 15:31:34 +02:00
github-actions
4644e888d2 Analysis: update lint results to reflect reduced error/warning count
Signed-off-by: github-actions <github-actions@github.com>
2023-07-06 10:29:55 +02:00
Marcel Hibbe
c4fbc0ab05 solve detekt warnings
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-07-06 10:29:55 +02:00
Marcel Hibbe
c55539c50e solve lint warnings
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-07-06 10:29:55 +02:00
Marcel Hibbe
18d4d42e8f 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-06 10:29:55 +02:00
Joas Schilling
359d9fd592
Merge pull request #3149 from nextcloud/nickvergessen-patch-1
Create pr-feedback.yml
2023-07-06 08:39:58 +02:00
Joas Schilling
eee7e36e31
Create pr-feedback.yml
Signed-off-by: Joas Schilling <213943+nickvergessen@users.noreply.github.com>
2023-07-06 08:03:03 +02:00
Nextcloud bot
83c06d0bb4
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-06 02:43:53 +00:00
Nextcloud bot
11274172ae
Fix(l10n): Update Transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-06 02:43:35 +00: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
Andy Scherzinger
b2bf635ea0
Merge pull request #3139 from nextcloud/dependabot/gradle/pl.droidsonroids.gif-android-gif-drawable-1.2.27
Build(deps): Bump pl.droidsonroids.gif:android-gif-drawable from 1.2.26 to 1.2.27
2023-07-04 10:38:45 +02: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
Andy Scherzinger
ab47bdb93e
Merge pull request #3140 from nextcloud/dependabot/gradle/org.jlleitschuh.gradle-ktlint-gradle-11.5.0
Build(deps): Bump org.jlleitschuh.gradle:ktlint-gradle from 11.4.2 to 11.5.0
2023-07-04 10:36:44 +02:00
Andy Scherzinger
8f9b2ac589
Merge pull request #3141 from nextcloud/repo-sync/android-config/master
🔄 synced file(s) with nextcloud/android-config
2023-07-04 09:57:37 +02:00
nextcloud-android-bot
dad47fd37e 🔄 synced local '.github/workflows/' with remote 'config/workflows/'
Signed-off-by: nextcloud-android-bot <android@nextcloud.com>
2023-07-04 07:56:21 +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
dependabot[bot]
0cad59b50f
Build(deps): Bump org.jlleitschuh.gradle:ktlint-gradle
Bumps org.jlleitschuh.gradle:ktlint-gradle from 11.4.2 to 11.5.0.

---
updated-dependencies:
- dependency-name: org.jlleitschuh.gradle:ktlint-gradle
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-04 01:07:16 +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
Andy Scherzinger
a9153fa0a8
Merge pull request #3126 from nextcloud/dependabot/gradle/com.vanniktech-emoji-google-0.17.0
Build(deps): Bump com.vanniktech:emoji-google from 0.16.0 to 0.17.0
2023-06-28 15:08:14 +02:00