Commit graph

15243 commits

Author SHA1 Message Date
SpiritCroc
647dd4398e Fix modifying the wrong events in TimelineChunk
I was observing cases where builtEvents[modificationIndex] was not
having the same eventId as the udpatedEntity in.
In particular, I observed both cases that
- there was no item in the list yet with the same eventId as the updated
  one
- there was an item with the same eventId already in the list, but at a
  different position.

Whenever this happened, the timeline would render missing, duplicated,
or swapped messages in the timeline.

Instead of relying on the modificationIndex to be the same for both the
change set and builtEvents, look up the proper index by eventId.

Change-Id: Ic03bdcc8210ec87b786795848f31e9085096b903
2022-03-12 09:32:25 +01:00
SpiritCroc
8d04a48157 Fix ChunkEntity.isMoreRecentThan() if both chunks linked to last forward
Imagine scenario:

[this] -> [chunkToCheck] -> [lastForwardChunk]

Then, both `isLastForward` checks will not return, and also the `chunkToCheck.doesNextChunksVerifyCondition { it == this }` will return false.
Since both chunks are connected to the last forward chunk, `isMoreRecent()` will still return `true`, which is wrong in this case.
So do not only check if chunkToCheck has this as any of the next chunks, but also the other way round.

Change-Id: I98727d85837e9b38a42297568df82f957b3a2dca
2022-03-11 11:29:43 +01:00
SpiritCroc
24133ba7b5 isReadMarkerMoreRecent(): use helper to properly compare chunks
Change-Id: I878b8145d3a9c85ea815f369e5d8f810343c8f62
2022-03-11 11:29:39 +01:00
SpiritCroc
6aabb38c3b [TMP] Update some readmarker debugging
Change-Id: Ia1de156f39622d90cc1433f0b16776bd00e2a462
2022-03-11 10:04:40 +01:00
SpiritCroc
12e4853c59 [TMP] More missing message debugging
Change-Id: Ia6ad08fa6a51365ba6f4e5a880f9ce804f3026c5
2022-03-11 08:50:17 +01:00
SpiritCroc
38cfd2ab2f Restore pre-v1.4.4 toolbar
New one has borked presence indicator, and overall doesn't look as nice
as the old one, including the new typing indicator, imo.

Change-Id: I9e1fa0f6677905d051f0d9557f8a79b3c4c86e2b
2022-03-10 20:06:32 +01:00
Tiago Loureiro
9cb64f0592 Fix huge picture crash on timeline
Change-Id: Ie9e4b68c8525a033b06e7f500e86aab73a718f40
2022-03-10 17:43:13 +01:00
SpiritCroc
5b07dbbeb9 Fix possible class cast exception in url preview
Change-Id: Ibab1f314591abca7669f89df51dade70ddab383f
2022-03-10 17:20:11 +01:00
SpiritCroc
10c77f2b59 Don't reserve space for typing view until somebody is typing
Once we show it, keep it, to not make the timeline jump around too much.

Change-Id: I8f863d8d21f3b06ff86f62615d8e6aefe81bde2e
2022-03-10 13:42:48 +01:00
SpiritCroc
27fd6a2819 Automatic SchildiChat string correction
Change-Id: I728d41658c2b1148b40644e28b67016f5e420c70
2022-03-10 13:26:54 +01:00
SpiritCroc
db3891b4c3 Automatic upstream merge postprocessing
Change-Id: I60e8f659740659d74f1d918525abff353d5f2cfc
2022-03-10 13:26:53 +01:00
SpiritCroc
8f93b55b59 Automatic color correction
Change-Id: I0ac188dce1148b8defeaffd70062691a8ee2e9da
2022-03-10 13:26:52 +01:00
SpiritCroc
f5afdefe2f Merge tag 'v1.4.4' into sc
Change-Id: Ibfb35ec30a51abebb652044719417f62c8a6be50

Conflicts:
	library/ui-styles/src/main/res/values/dimens.xml
	matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/sync/SyncTask.kt
	vector/src/gplay/java/im/vector/app/gplay/push/fcm/VectorFirebaseMessagingService.kt
	vector/src/main/AndroidManifest.xml
	vector/src/main/java/im/vector/app/features/home/HomeDetailFragment.kt
	vector/src/main/java/im/vector/app/features/home/room/detail/RoomDetailViewState.kt
	vector/src/main/java/im/vector/app/features/rageshake/BugReporter.kt
	vector/src/main/res/drawable/bg_unread_notification.xml
	vector/src/main/res/drawable/ic_add_reaction_small.xml
	vector/src/main/res/layout/item_room.xml
	vector/src/main/res/layout/item_timeline_event_text_message_stub.xml
	vector/src/main/res/xml/vector_settings_preferences.xml
2022-03-10 13:26:09 +01:00
SpiritCroc
7437d621b2 [TMP] Automatic upstream merge preparation
Change-Id: I0d2270e32eca2d08e9fb1479cf3081af92d2b796
2022-03-10 13:09:24 +01:00
SpiritCroc
373d88885e Automatic revert to unchanged upstream strings, pt.1
Change-Id: I1c7b6a48f886c7c4664ebf81252f84c1aaa5930b
2022-03-10 13:09:23 +01:00
SpiritCroc
98ec8b4842 FooteredTextView: Fix reserving footer width when forcing footer below
Change-Id: Iea91960f6bcbdc0af4956a65a04d926b98f0d580
2022-03-10 13:08:18 +01:00
SpiritCroc
b3d9ddbeca Do not cut italic text, v2
Different implementaion than the one which got lost during a recent
upstream merge

Change-Id: Ic4b0474bd95a9746cfecc8aff8562c330e296b5a
2022-03-10 12:48:17 +01:00
SpiritCroc
7bfd3c8dca [TMP] Add some debugging to detect timeline inconsistencies
Note: may affect performance a little when loading the timeline, so
better revert when we are confident we have fixed the issue.

Change-Id: Ic4d31e47948984371a02ce51af7a8d56cb120234
2022-03-10 12:36:00 +01:00
SpiritCroc
a132ee22cb Fix gif autoplay after merge
Change-Id: Ia6f1718284903108aed22e246d2f594741e8511f
2022-03-10 08:24:15 +01:00
Adam Brown
9e8067dd19
Merge pull request #5484 from vector-im/feature/aris/fix_realm_crash_1_4_4
Fix realm crash on v1.4.4
2022-03-09 18:55:12 +00:00
ariskotsomitopoulos
92c1bc944d Fix realm crash on v1.4.4 2022-03-09 20:03:42 +02:00
SpiritCroc
2498da3631 Fix updating unread marker if not to latest chunk
SetReadMarkerTask was not updating the read marker when both the old and
the new fully read eventId weren't in the last chunk, even when the new
one was after the first one.

Change-Id: I175b335cf90328f676238ca23e45aa0f91b269c9
2022-03-09 18:07:38 +01:00
Adam Brown
8c36bdb0e9 Merge branch 'release/v1.4.4' 2022-03-09 15:59:56 +00:00
Adam Brown
1bf718f856 appending 1.4.4 changelog 2022-03-09 14:57:13 +00:00
Adam Brown
57ffc56869
Merge pull request #5472 from vector-im/feature/aris/fix_5463_parcelising_reaction_crash
Fix reactions summary crash
2022-03-09 13:35:51 +00:00
SpiritCroc
4f2931feae Fix another case of missing read markers
HasUnread might not be correct on the first try while loading the
timeline.

Change-Id: I6bba6cc58ca21725764d41909deb9a0495d51ea0
2022-03-09 13:56:17 +01:00
SpiritCroc
df0b5ca0a0 Fix a case of missing read markers
Case: bottom-most loaded event has read marker, but there are messages below it
that haven't been loaded yet.

Change-Id: I24336ac20558d637840c38ff00527dc2f2c65f75
2022-03-09 13:56:13 +01:00
ariskotsomitopoulos
84b3f63279 Format code 2022-03-09 12:55:25 +02:00
ariskotsomitopoulos
c24944b1f2 Fix reactions summary crash 2022-03-09 12:52:34 +02:00
SpiritCroc
93ae1e954e Switch to schildi.chat FCM gateway
The matrix.org one seems to be a little slow compared to a private one
recently

Change-Id: Ia9ce4f40c920657abb38aa5ebe31704cf829f4ec
2022-03-09 11:16:22 +01:00
Adam Brown
662e9592a0
fixing overlapping room image and title (#5469)
- the room title was missing constraints for the different types of leading icons
2022-03-09 10:11:53 +00:00
SpiritCroc
9a00cf7a3f Move attachment selector close button to the right
Change-Id: I061f7826f8fb138e0b28e818c8e92108b62aad4f
2022-03-09 10:25:29 +01:00
SpiritCroc
4b12f162a0 View displayIndex in timeline to debug chunks if developer info enabled
Change-Id: Id52e6f69b6fbe18cb78a3bdeca220fa58b4e7a82
2022-03-09 10:22:25 +01:00
SpiritCroc
96d7e4859b Revert "[TMP] Force-disable "open at first unread" setting"
This reverts commit f06ae844dc.

Change-Id: I12111941fc71b9f7e49742e52f9a212382a44b7b
2022-03-08 18:41:16 +01:00
SpiritCroc
430963ae28 Fix missing messages when forward paging with chunks > 50 messages
- offsets() was not limiting in the right direction when loading
  messages forwards
- after fixing offsets(), more recent messages would not be loaded due
  to the isLastForward() check, so better prioritize the SUCCESS
  LoadMoreResult over the REACHED_END here

Change-Id: I48011adc57ff2d48bb7be37cb4dda8bd8f745bf8
2022-03-08 18:29:21 +01:00
Element Translate Bot
2048b859c5
Translations update from Weblate (#5458)
* Translated using Weblate (Czech)

Currently translated at 100.0% (2157 of 2157 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/cs/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (2157 of 2157 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/hu/

* Translated using Weblate (Indonesian)

Currently translated at 100.0% (2157 of 2157 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/id/

* Translated using Weblate (Japanese)

Currently translated at 97.4% (2103 of 2157 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/ja/

* Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (2157 of 2157 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/pt_BR/

* Translated using Weblate (Slovak)

Currently translated at 98.8% (2132 of 2157 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/sk/

* Translated using Weblate (Swedish)

Currently translated at 100.0% (2157 of 2157 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/sv/

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (2157 of 2157 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/uk/

* Translated using Weblate (Swedish)

Currently translated at 100.0% (51 of 51 strings)

Translation: Element Android/Element Android Store
Translate-URL: https://translate.element.io/projects/element-android/element-store/sv/

* Translated using Weblate (Japanese)

Currently translated at 54.9% (28 of 51 strings)

Translation: Element Android/Element Android Store
Translate-URL: https://translate.element.io/projects/element-android/element-store/ja/

* Translated using Weblate (Japanese)

Currently translated at 98.0% (2116 of 2157 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/ja/

* Translated using Weblate (Japanese)

Currently translated at 98.0% (2116 of 2157 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/ja/

* Translated using Weblate (German)

Currently translated at 99.8% (2153 of 2157 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/de/

* Translated using Weblate (Italian)

Currently translated at 100.0% (2157 of 2157 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/it/

* Translated using Weblate (Japanese)

Currently translated at 98.3% (2121 of 2157 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/ja/

* Translated using Weblate (Polish)

Currently translated at 93.8% (2025 of 2157 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/pl/

* Translated using Weblate (Slovak)

Currently translated at 98.9% (2134 of 2157 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/sk/

* Translated using Weblate (Albanian)

Currently translated at 99.4% (2145 of 2157 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/sq/

* Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (2157 of 2157 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/zh_Hant/

* Translated using Weblate (German)

Currently translated at 100.0% (51 of 51 strings)

Translation: Element Android/Element Android Store
Translate-URL: https://translate.element.io/projects/element-android/element-store/de/

* Translated using Weblate (French)

Currently translated at 100.0% (51 of 51 strings)

Translation: Element Android/Element Android Store
Translate-URL: https://translate.element.io/projects/element-android/element-store/fr/

* Translated using Weblate (Hebrew)

Currently translated at 81.2% (1753 of 2157 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/he/

* Translated using Weblate (Hebrew)

Currently translated at 81.2% (1753 of 2157 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/he/

* Translated using Weblate (Albanian)

Currently translated at 100.0% (51 of 51 strings)

Translation: Element Android/Element Android Store
Translate-URL: https://translate.element.io/projects/element-android/element-store/sq/

* Translated using Weblate (Japanese)

Currently translated at 98.3% (2121 of 2157 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/ja/

* Translated using Weblate (Slovak)

Currently translated at 99.2% (2140 of 2157 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/sk/

* Translated using Weblate (Arabic)

Currently translated at 30.5% (659 of 2157 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/ar/

* Translated using Weblate (Estonian)

Currently translated at 99.9% (2155 of 2157 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/et/

* Translated using Weblate (Finnish)

Currently translated at 80.2% (1730 of 2157 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/fi/

* Translated using Weblate (French)

Currently translated at 99.9% (2156 of 2157 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/fr/

* Translated using Weblate (Hungarian)

Currently translated at 99.8% (2154 of 2157 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/hu/

* Translated using Weblate (Japanese)

Currently translated at 98.6% (2128 of 2157 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/ja/

* Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (2157 of 2157 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/pt_BR/

* Translated using Weblate (Slovak)

Currently translated at 99.3% (2143 of 2157 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/sk/

* Translated using Weblate (Slovak)

Currently translated at 99.3% (2143 of 2157 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/sk/

* Translated using Weblate (Hungarian)

Currently translated at 98.0% (50 of 51 strings)

Translation: Element Android/Element Android Store
Translate-URL: https://translate.element.io/projects/element-android/element-store/hu/

* Translated using Weblate (Hebrew)

Currently translated at 85.5% (1846 of 2157 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/he/

* Translated using Weblate (Hebrew)

Currently translated at 85.5% (1846 of 2157 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/he/

* Translated using Weblate (Japanese)

Currently translated at 62.7% (32 of 51 strings)

Translation: Element Android/Element Android Store
Translate-URL: https://translate.element.io/projects/element-android/element-store/ja/

Co-authored-by: waclaw66 <waclaw66@seznam.cz>
Co-authored-by: Szimszon <github@oregpreshaz.eu>
Co-authored-by: Linerly <linerly@protonmail.com>
Co-authored-by: Suguru Hirahara <ovestekona@protonmail.com>
Co-authored-by: lvre <7uu3qrbvm@relay.firefox.com>
Co-authored-by: Jozef Gaal <preklady@mayday.sk>
Co-authored-by: LinAGKar <linus.kardell@gmail.com>
Co-authored-by: Ihor Hordiichuk <igor_ck@outlook.com>
Co-authored-by: oksya8and8 <darknessyasuko@protonmail.com>
Co-authored-by: libexus <libexus@gmail.com>
Co-authored-by: random <dictionary@tutamail.com>
Co-authored-by: Arusekk <arek_koz@o2.pl>
Co-authored-by: Besnik Bleta <besnik@programeshqip.org>
Co-authored-by: Jeff Huang <s8321414@gmail.com>
Co-authored-by: Glandos <bugs-github@antipoul.fr>
Co-authored-by: SPiRiT <such.a.lost.spirit@gmail.com>
Co-authored-by: sagi korin <sagi.korin@hot.net.il>
Co-authored-by: Peter Vágner <pvdeejay@gmail.com>
Co-authored-by: Zet <abidin24@disroot.org>
Co-authored-by: Priit Jõerüüt <riot@joeruut.com>
Co-authored-by: Tuomas Hietala <tuomas.hietala@iki.fi>
Co-authored-by: notramo <notramo@protonmail.com>
Co-authored-by: Nícolas F. R. A. Prado <n@nfraprado.net>
Co-authored-by: Edward Gera <Eduard.Gerasimuk@hot.net.il>
Co-authored-by: Ilan Feler <ilanf@mail.com>
Co-authored-by: Weblate <noreply@weblate.org>
2022-03-08 16:06:01 +00:00
Benoit Marty
f628b241c1
Merge pull request #5456 from vector-im/feature/bma/fix_color
Iterate on badge / unread indicator color (#5332)
2022-03-08 15:25:38 +01:00
Michael Kaye
48cf2adcf5
Merge pull request #5453 from vector-im/michaelk/cleanups_for_tests
Remove deprecated warning in TestMatrix, and reduce severity of identity server error
2022-03-08 14:09:58 +00:00
Benoit Marty
b867e5f072 Iterate on badge / unread indicator color (#5332) 2022-03-08 14:52:10 +01:00
Michael Kaye
9c404b5cab Remove -PallWarningsAsErrors now the build doesn't need the flag to compile. 2022-03-08 13:26:24 +00:00
Michael Kaye
ab3f3fba68 Attempt to prevent the deprecated warning/error about Provider usage. 2022-03-08 10:38:23 +00:00
Michael Kaye
fb05731bb9 If no identity server configured, log at info, not warn. 2022-03-08 10:12:13 +00:00
Michael Kaye
bdc9bc0d4d
Merge pull request #5442 from vector-im/michaelk/fix_develop
Missing import of at-Ignore annotation.
2022-03-07 15:19:26 +00:00
Michael Kaye
1569c2f3c7 Missing import of at-Ignore annotation. 2022-03-07 14:46:01 +00:00
Adam Brown
9a02543afd
FTUE - Choose a display picture (#5323)
* adding tests around the onboarding view model
- cases for the personalisation and display name actions

* adding base choose name fragment with UI

* add click handling for the display name actions

* adding tests around the onboarding view model
- cases for the personalisation and display name actions

* adding barebones profile picture fragment with ability to select a user avatar

* extracting uri filename resolving to a class which can be injected
- includes tests

* updating upstream avatar on profile picture save and continue step
- moves the personalisation state to a dedicated model to allow for back and forth state restoration

* adding test case for skipping profile picture setting

* taking the profile loading into account when rendering the onboarding loading

* extracting method for the handling of the profile picture selection

* adding dedicated camera icon for choosing profile picture

* adding toolbar to back to profile picture page
- this toolbar will fade in with the fragment as it sits at the fragment level, probably worth revisiting once more pages have a toolbar

* changing edit/add picture icon based on if we're already selected an image

* making use of debounced clicks to avoid potential extra clicks

* making the avatar height and camera icon relative percentage based
- also makes the avatar itself clicking, including a foreground ripple

* fixing formatting

* making use of fake session id for user id assertion

* using a real  matrix id syntax for the fake session user id

* removing duplicated dimens

* using self closing imageview tag
2022-03-07 14:07:22 +00:00
Michael Kaye
9af2f1cdc6
Merge pull request #5440 from vector-im/michaelk/threadmessagingtest_ignore
Ignore ThreadMessagingTest as it seems to cause other integration tests to fail
2022-03-07 14:05:22 +00:00
Michael Kaye
b25d11244b
Merge pull request #5413 from vector-im/michaelk/code_cov_alt
Code coverage using jacoco (and xml report)
2022-03-07 13:31:51 +00:00
Michael Kaye
f32da28285 Ignore ThreadMessagingTest as it seems to cause other integration tests to fail. 2022-03-07 13:14:38 +00:00
Michael Kaye
2b7b7521a9 Maybe the file is here? 2022-03-07 10:26:25 +00:00
SpiritCroc
22d034566b Do not offset text with inline code snippets
Change-Id: Id1573c55f4e719e4659aacd76a4416a38db5d9eb
2022-03-06 10:36:31 +01:00