Compare commits

..

4086 Commits

Author SHA1 Message Date
8be0a0322e Kill RiotX (#1727)
- Restore RiotX appId and App name
- Prevent share to RiotX
- Show the warning popup each time the app is launch
- Prevent any new login and propose to uninstall the app
2020-08-06 16:43:52 +02:00
8c98125755 Merge branch 'release/0.22.0' 2020-06-15 23:27:49 +02:00
840648b750 Prepare release 0.22.0 2020-06-15 23:27:10 +02:00
29fd4c4bd2 Fix issue on dark themes, after alert popup dismiss 2020-06-15 23:25:32 +02:00
905fa7dd86 Format 2020-06-15 20:05:50 +02:00
e8af71f641 Merge pull request #1485 from RiotTranslateBot/weblate-riot-android-riotx-application
Update from Weblate
2020-06-15 20:05:02 +02:00
6901d368d2 Translated using Weblate (Russian)
Currently translated at 100.0% (231 of 231 strings)

Translation: Riot Android/RiotX Matrix SDK
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-matrix-sdk/ru/
2020-06-15 15:43:04 +00:00
e89a340fae Format string resources 2020-06-15 16:47:05 +02:00
c3d6135fb3 Fix lint issues 2020-06-15 16:29:10 +02:00
6611defd87 Merge pull request #1484 from RiotTranslateBot/weblate-riot-android-riotx-application
Update from Weblate
2020-06-15 16:10:51 +02:00
5c449a9e30 michaelk merges translation 2020-06-15 13:24:46 +00:00
415ac6a748 Translated using Weblate (Swedish)
Currently translated at 41.5% (712 of 1717 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/sv/
2020-06-15 12:55:46 +00:00
7ddafa098f Translated using Weblate (Basque)
Currently translated at 100.0% (164 of 164 strings)

Translation: Riot Android/RiotX Matrix SDK
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-matrix-sdk/eu/
2020-06-15 12:55:45 +00:00
177f7b9cb3 Translated using Weblate (Basque)
Currently translated at 100.0% (1717 of 1717 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/eu/
2020-06-15 12:55:45 +00:00
fb1704b717 Merge pull request #1465 from vector-im/bmarty-patch-1
Add command line to run Android test
2020-06-15 14:48:01 +02:00
ade1f1b911 Merge pull request #1479 from vector-im/feature/memory_leaks
Feature/memory leaks
2020-06-15 14:47:16 +02:00
344a9836d2 Typo and cleanup 2020-06-15 14:44:44 +02:00
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
e1e505e695 Translated using Weblate (Swedish)
Currently translated at 40.8% (701 of 1717 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/sv/
2020-06-14 05:26:12 +00:00
c5cd68416f Translated using Weblate (Croatian)
Currently translated at 71.6% (1229 of 1717 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/hr/
2020-06-14 05:26:12 +00:00
45f757e157 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (164 of 164 strings)

Translation: Riot Android/RiotX Matrix SDK
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-matrix-sdk/bg/
2020-06-14 05:26:12 +00:00
de77c8a210 Translated using Weblate (Bulgarian)
Currently translated at 82.8% (1421 of 1717 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/bg/
2020-06-14 05:26:11 +00:00
54b3af2c88 Merge pull request #1459 from vector-im/feature/power_level
Feature/power level
2020-06-12 16:12:37 +02:00
171a945de9 Membership: refact a bit and add a left message when kicked or banned 2020-06-12 15:29:07 +02:00
d845d10d73 Translated using Weblate (Swedish)
Currently translated at 40.7% (699 of 1717 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/sv/
2020-06-12 11:26:16 +00:00
98d91a746e Translated using Weblate (Persian)
Currently translated at 100.0% (164 of 164 strings)

Translation: Riot Android/RiotX Matrix SDK
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-matrix-sdk/fa/
2020-06-12 11:26:15 +00:00
1be1b5b263 Translated using Weblate (Persian)
Currently translated at 34.4% (591 of 1717 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/fa/
2020-06-12 11:26:15 +00:00
dafb0c8d5c Translated using Weblate (Croatian)
Currently translated at 71.5% (1227 of 1717 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/hr/
2020-06-12 11:26:09 +00:00
6ca69a9947 Remove unnecessary comment 2020-06-12 10:02:57 +02:00
ff171a39c6 Memory leaks: clean after Benoit's remarks 2020-06-12 09:58:45 +02:00
8acee57118 Implement my suggestions 2020-06-11 22:01:04 +02:00
d03ab989e6 Hide WidgetBanner by default, it can be visible if phone is slow 2020-06-11 21:42:04 +02:00
4f5b1d9646 Close Activity when room is left.
Create a dedicated ViewModel to handle that in Activity rather than multiple times in Fragments
2020-06-11 21:40:22 +02:00
f8dca1237a Fix lint issues 2020-06-11 20:20:06 +02:00
c382f706a6 Leaks: disable leakcanary 2020-06-11 19:40:46 +02:00
530ce0952c Typo and cleanup 2020-06-11 18:00:34 +02:00
262f10af9a Remove ability to kick or ban yourself 2020-06-11 16:59:14 +02:00
3430a8f3ea Fix demote yourself issue 2020-06-11 16:48:32 +02:00
959be3a23d Fix layout issue on read only rooms 2020-06-11 16:39:41 +02:00
15306fc116 Italic text 2020-06-11 16:30:34 +02:00
fb5013db88 Restore previous way to managed power level string, to be able to translate them correctly 2020-06-11 16:27:46 +02:00
ab4780c9b9 Remove translation of deleted strings 2020-06-11 16:27:46 +02:00
e6a71ab7de PowerLevel: fix role order 2020-06-11 13:49:36 +02:00
6aecf68098 Translated using Weblate (Swedish)
Currently translated at 40.6% (697 of 1717 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/sv/
2020-06-11 06:29:33 +00:00
dc54c6139f Translated using Weblate (Norwegian Nynorsk)
Currently translated at 49.4% (848 of 1717 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/nn/
2020-06-11 06:29:33 +00:00
71f158c526 Translated using Weblate (Estonian)
Currently translated at 97.6% (160 of 164 strings)

Translation: Riot Android/RiotX Matrix SDK
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-matrix-sdk/et/
2020-06-11 06:29:32 +00:00
dc7067baff Translated using Weblate (Croatian)
Currently translated at 71.5% (1227 of 1717 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/hr/
2020-06-11 06:29:32 +00:00
ced226777f Translated using Weblate (Albanian)
Currently translated at 99.6% (1710 of 1717 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/sq/
2020-06-11 06:29:27 +00:00
579d4f7a5b Merge branch 'develop' into feature/power_level 2020-06-10 17:21:04 +02:00
60b91d4d50 PowerLevel : clean after Benoit's review 2020-06-10 17:19:33 +02:00
917042c48c Remove memory leak from Autocompleter 2020-06-10 16:14:19 +02:00
ed27c35bb4 Merge pull request #1467 from vector-im/feature/modular_link
Update link to Modular url from "https://modular.im/" to "https://modular.im/services/matrix-hosting-riot" and open it using ChromeCustomTab
2020-06-10 10:12:48 +02:00
c35c94b7b7 Update link to Modular url from "https://modular.im/" to "https://modular.im/services/matrix-hosting-riot" and open it using ChromeCustomTab 2020-06-10 09:13:08 +02:00
d8317f7439 Add capability to add and remove a room from the favorites (#1217) 2020-06-10 00:42:14 +02:00
9a3813f883 Add command line to run Android test 2020-06-09 17:04:50 +02:00
0a7f77ea16 ktlint 2020-06-08 22:08:59 +02:00
d6329a1ab6 Start looking at memory leaks 2020-06-08 19:46:55 +02:00
0ba120356a Merge pull request #1447 from vector-im/feature/fix_version
Feature/fix version
2020-06-08 18:16:51 +02:00
d402b49f07 Merge branch 'develop' into feature/fix_version 2020-06-08 18:16:42 +02:00
d4ba9fa09a Cleanup after Ganfra's review 2020-06-08 18:15:00 +02:00
62f352243d Merge pull request #1448 from vector-im/feature/fix
Feature/fix
2020-06-08 18:10:06 +02:00
1ad19b5e93 Merge branch 'develop' into feature/fix 2020-06-08 18:09:57 +02:00
e7ba0a5c60 Merge pull request #1449 from vector-im/feature/fix_1444
Wrong /query request (#1444)
2020-06-08 18:07:23 +02:00
050407f7c7 Merge branch 'develop' into feature/fix_1444 2020-06-08 18:07:15 +02:00
dffe096c59 Merge pull request #1451 from vector-im/feature/sso_redirect
Correctly handle SSO login redirection
2020-06-08 18:06:00 +02:00
bf5ad2cf18 Power level: warn when demoting yourself 2020-06-08 17:36:30 +02:00
a8ae4ddde8 Power level: use confirmation dialog 2020-06-08 16:33:56 +02:00
2596a9ef7e Translated using Weblate (Swedish)
Currently translated at 40.4% (694 of 1717 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/sv/
2020-06-08 11:29:54 +00:00
f74989ac1d Translated using Weblate (Portuguese (Brazil))
Currently translated at 51.2% (879 of 1717 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/pt_BR/
2020-06-08 11:29:40 +00:00
d3bc4017a5 Translated using Weblate (Polish)
Currently translated at 90.8% (1559 of 1717 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/pl/
2020-06-08 11:29:39 +00:00
ab8480d983 Translated using Weblate (Norwegian Nynorsk)
Currently translated at 78.0% (128 of 164 strings)

Translation: Riot Android/RiotX Matrix SDK
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-matrix-sdk/nn/
2020-06-08 11:29:39 +00:00
50dcc24900 Translated using Weblate (Norwegian Nynorsk)
Currently translated at 49.3% (847 of 1717 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/nn/
2020-06-08 11:29:39 +00:00
a66470f93b Translated using Weblate (Croatian)
Currently translated at 68.9% (1183 of 1717 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/hr/
2020-06-08 11:29:38 +00:00
d2dba1826d Update CHANGES 2020-06-08 10:32:02 +02:00
7f02195377 Clean code 2020-06-08 10:29:09 +02:00
0002cddd67 Merge branch 'develop' into feature/power_level 2020-06-08 10:12:53 +02:00
19e1683106 Move class LoginFlowType to api package 2020-06-08 09:16:31 +02:00
5c538c7865 Clarify type when retrieving supported login flow (be conform to the spec) 2020-06-08 09:11:23 +02:00
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
86dd8f3fd8 Update epoxy to last stable version 2020-06-05 20:14:36 +02:00
f19e2a0995 Room left: fix state not being updated 2020-06-05 20:09:30 +02:00
afd1002fdb Room Permission: default to true for sending event 2020-06-05 20:09:13 +02:00
07c7ed0a4e Powerlevel: use edit text for custom 2020-06-05 20:08:39 +02:00
b48eb6e9cc SSO Update the documentation 2020-06-05 19:14:31 +02:00
e5da5a34cb Power levels: handle some action permissions 2020-06-05 19:12:33 +02:00
f3a2c467ed small typo 2020-06-05 12:21:58 +02:00
a1fd35aa67 Room member: continue to branch admin/moderator actions 2020-06-05 11:13:00 +02:00
ad8ed37ff6 Profile action: fix editable icon 2020-06-05 11:12:33 +02:00
088e8bc9f9 Add some comment 2020-06-05 10:09:49 +02:00
3714323d74 Rename Constants 2020-06-05 01:16:19 +02:00
d70b19fa93 SSO login is now performed in the default browser (#1400) - WIP
Use ChromeCustomTabs to host the SSO web page
2020-06-05 01:14:35 +02:00
08693a6875 Add some admin actions (ban, kick, unban) 2020-06-04 18:36:28 +02:00
73eca2407b Power level: handle timeline rendering 2020-06-04 17:18:39 +02:00
ae7a52cecf Correctly handle SSO login redirection 2020-06-04 16:55:27 +02:00
2e244dd448 Merge pull request #1446 from vector-im/feature/various_fixes
Hide left rooms in breadcrumbs (#766)
2020-06-04 15:07:45 +02:00
1ad77530aa Use RoomSummaryQueryParams as per Ganfra's excellent suggestion 2020-06-04 14:36:51 +02:00
e44963728f Merge pull request #1450 from vector-im/feature/navigation_bar
Fix bad color contrast for navigation and status bar
2020-06-04 14:31:06 +02:00
9075371145 Power level: start to handle updating 2020-06-04 13:09:20 +02:00
3b256a708e Fix status bar icon contrast on API in [21,23[ 2020-06-04 12:55:27 +02:00
aea517515c Fix navigation bar icon contrast on API in [21,27[ (#1342) 2020-06-04 12:50:42 +02:00
f28889284d Wrong /query request (#1444) 2020-06-04 11:59:04 +02:00
240f1f51b9 Merge pull request #1437 from vector-im/feature/fix_1169
Fix / reply ux stays too long
2020-06-04 11:44:53 +02:00
05efd7423e Merge branch 'develop' into feature/fix_1169 2020-06-04 11:44:32 +02:00
fce8a3bc18 changes.md 2020-06-04 11:43:54 +02:00
2adb5af051 update change log 2020-06-04 11:43:47 +02:00
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
c3d8916802 fix param name 2020-06-04 11:40:38 +02:00
532f5e58ea Move class Versions to internal package 2020-06-04 11:30:24 +02:00
57a5714fb5 Add the ability to compare Homeserver version (#1442) 2020-06-04 11:24:31 +02:00
a3fd49499b Hide left rooms in breadcrumbs (#766) 2020-06-04 08:59:01 +02:00
3dc2cd4d7a Disable one code check 2020-06-03 18:54:03 +02:00
0b738e3d9e Merge pull request #1409 from vector-im/feature/markdown_test
Send plain text in the body
2020-06-03 18:45:06 +02:00
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
40f2d19f81 Merge pull request #1415 from vector-im/feature/signup_username_digit
Temporary fix to show error when user is creating an account on matrix.org with userId containing only digits (#1410)
2020-06-03 18:41:55 +02:00
2e997f2c67 Wrong issue number 2020-06-03 18:41:27 +02:00
0fd50892af Temporary fix to show error when user is creating an account on matrix.org with userId containing only digits (#1410) 2020-06-03 18:41:07 +02:00
55bd346cb2 Merge pull request #1425 from vector-im/feature/integration_manager
Feature/integration manager
2020-06-03 18:10:03 +02:00
0724ac133b Widget notice: capitalize first letter 2020-06-03 15:22:20 +02:00
0507fa5b0e Widgets: clean again after Benoit's review 2020-06-03 12:00:52 +02:00
617e945afa Merge pull request #1436 from vector-im/feature/Fix_1430_X_made_no_change
Hide "X made no changes" event by default in timeline (#1430)
2020-06-03 09:47:51 +02:00
870c4bf765 Check that content is not null 2020-06-03 09:32:20 +02:00
9a592e9c7e Create IsUselessResolver object 2020-06-03 01:13:02 +02:00
53592ac404 Fix lint issues 2020-06-02 20:28:18 +02:00
d8848a6062 Merge branch 'develop' into feature/integration_manager 2020-06-02 20:26:03 +02:00
173c1d3a6e Integration: make the default urls modifiable from MatrixConfiguration 2020-06-02 20:05:00 +02:00
c815c4080d Widget: changes naming algorithm (align on web) 2020-06-02 19:51:16 +02:00
c09626182c Fix / reply ux stays too long 2020-06-02 19:31:25 +02:00
65c6ce3033 Merge branch 'feature/integration_manager' of github.com:vector-im/riotX-android into feature/integration_manager 2020-06-02 19:02:31 +02:00
06cc2f527e Clean after Benoit's review 2020-06-02 19:02:21 +02:00
9da5061689 Update CHANGES.md
Co-authored-by: Benoit Marty <benoitm@matrix.org>
2020-06-02 16:37:51 +02:00
82b4415f7d Widget: fix loading widgets without scalar token 2020-06-02 16:02:10 +02:00
3f1e5b9b1e Hide "X made no changes" event by default in timeline (#1430) 2020-06-02 15:54:01 +02:00
1b95d98ccd Merge pull request #1423 from vector-im/feature/invalidate
Yet another cleanup PR
2020-06-02 14:42:51 +02:00
e2e1925796 Restore .observeOn(AndroidSchedulers.mainThread()) 2020-06-02 14:24:29 +02:00
52c8f24df5 Merge pull request #1417 from vector-im/feature/you
Use "you" instead of your display name for notice events you have sent
2020-06-02 14:16:46 +02:00
ca855da8ae Fix issue reported during review by Onuray 2020-06-02 13:15:03 +02:00
a39d35e54c Improve Kotlin code readability: use when instead of if and add a few newlines 2020-06-02 13:15:03 +02:00
3bd2b24b10 Use "you" instead of display name when the current user has sent the event. 2020-06-02 13:15:03 +02:00
12448426d4 Fix typo reported by rageshake 2020-06-01 22:12:11 +02:00
a043d7cac7 Translated using Weblate (Swedish)
Currently translated at 25.4% (436 of 1717 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/sv/
2020-06-01 15:29:17 +00:00
4d88111d48 Translated using Weblate (Russian)
Currently translated at 100.0% (164 of 164 strings)

Translation: Riot Android/RiotX Matrix SDK
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-matrix-sdk/ru/
2020-06-01 15:29:15 +00:00
34d6610bf8 Translated using Weblate (Russian)
Currently translated at 85.0% (1459 of 1717 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/ru/
2020-06-01 15:29:15 +00:00
4bfc52327b Translated using Weblate (Norwegian Nynorsk)
Currently translated at 49.4% (849 of 1717 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/nn/
2020-06-01 15:29:14 +00:00
15d5f7ff55 Translated using Weblate (Korean)
Currently translated at 73.2% (1256 of 1717 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/ko/
2020-06-01 15:29:14 +00:00
91ecd1aeeb Translated using Weblate (Hungarian)
Currently translated at 100.0% (1717 of 1717 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/hu/
2020-06-01 15:29:14 +00:00
342f871916 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (164 of 164 strings)

Translation: Riot Android/RiotX Matrix SDK
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-matrix-sdk/zh_Hans/
2020-06-01 15:29:10 +00:00
18d51de0b9 Translated using Weblate (Russian)
Currently translated at 85.0% (1459 of 1717 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/ru/
2020-06-01 06:08:36 +00:00
4dc6cae854 Translated using Weblate (Russian)
Currently translated at 85.0% (1459 of 1717 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/ru/
2020-06-01 06:08:35 +00:00
5fb160e1ac Translated using Weblate (Russian)
Currently translated at 83.8% (1439 of 1717 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/ru/
2020-05-30 18:28:21 +00:00
f1589314c2 Translated using Weblate (Russian)
Currently translated at 83.8% (1439 of 1717 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/ru/
2020-05-30 18:28:19 +00:00
7fb9a550c8 Translated using Weblate (Swedish)
Currently translated at 23.2% (399 of 1717 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/sv/
2020-05-30 09:29:28 +00:00
46f7f4814c Translated using Weblate (Russian)
Currently translated at 82.6% (1418 of 1717 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/ru/
2020-05-30 09:29:24 +00:00
c002cc104c Translated using Weblate (Portuguese (Brazil))
Currently translated at 51.1% (878 of 1717 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/pt_BR/
2020-05-30 09:29:22 +00:00
492128a621 Translated using Weblate (Italian)
Currently translated at 100.0% (164 of 164 strings)

Translation: Riot Android/RiotX Matrix SDK
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-matrix-sdk/it/
2020-05-30 09:29:22 +00:00
fff0f09684 Translated using Weblate (Italian)
Currently translated at 100.0% (1717 of 1717 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/it/
2020-05-30 09:29:22 +00:00
64054d13a3 Translated using Weblate (Hungarian)
Currently translated at 100.0% (164 of 164 strings)

Translation: Riot Android/RiotX Matrix SDK
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-matrix-sdk/hu/
2020-05-30 09:29:20 +00:00
ae8d7096c3 Translated using Weblate (Hungarian)
Currently translated at 98.5% (1691 of 1717 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/hu/
2020-05-30 09:29:20 +00:00
13e04b6362 Translated using Weblate (French)
Currently translated at 100.0% (164 of 164 strings)

Translation: Riot Android/RiotX Matrix SDK
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-matrix-sdk/fr/
2020-05-30 09:29:19 +00:00
89e557bcef Translated using Weblate (French)
Currently translated at 100.0% (1717 of 1717 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/fr/
2020-05-30 09:29:19 +00:00
fdf4749c1b Translated using Weblate (Finnish)
Currently translated at 99.4% (163 of 164 strings)

Translation: Riot Android/RiotX Matrix SDK
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-matrix-sdk/fi/
2020-05-30 09:29:17 +00:00
a63608bf97 Translated using Weblate (Czech)
Currently translated at 100.0% (1717 of 1717 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/cs/
2020-05-30 09:29:17 +00:00
5c101e9466 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (164 of 164 strings)

Translation: Riot Android/RiotX Matrix SDK
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-matrix-sdk/zh_Hant/
2020-05-30 09:29:12 +00:00
4b25ebc731 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (1717 of 1717 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/zh_Hant/
2020-05-30 09:29:12 +00:00
8e88fcb462 Translated using Weblate (Albanian)
Currently translated at 99.4% (163 of 164 strings)

Translation: Riot Android/RiotX Matrix SDK
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-matrix-sdk/sq/
2020-05-30 09:29:10 +00:00
fd19b345a1 Translated using Weblate (Albanian)
Currently translated at 99.4% (1707 of 1717 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/sq/
2020-05-30 09:29:10 +00:00
4a7bba047b Merge pull request #1420 from vector-im/feature/fix_theme_switch
Fix: Switch theme is not fully taken into account without restarting the app
2020-05-29 19:22:43 +02:00
440c21e9f3 Update CHANGES 2020-05-29 19:06:06 +02:00
959b679086 Clean files 2020-05-29 19:03:54 +02:00
64cfd4d81a Widget: fix nullable widgetId 2020-05-29 18:08:56 +02:00
c742ca3b41 Widget: fix widget title color 2020-05-29 17:09:10 +02:00
2002252f72 Widget: Handle failures on permissions 2020-05-29 16:44:17 +02:00
7df8b3a9bf Widgets: observe wellknown for integ config and open Jitsi in browser 2020-05-29 12:23:36 +02:00
3fea2173f4 Move fun to a dedicated file. 2020-05-29 11:57:20 +02:00
d125cb5c01 Some cleanup:
- use invalidate() from MvRx
- use throttleFirst instead of debounce
- remove useless observe on main thread
- remove useless calls to super.invalidate()
2020-05-29 11:36:27 +02:00
86c9264ed9 Fix: Switch theme is not fully taken into account without restarting the app 2020-05-28 23:03:04 +02:00
00f2d0249f Merge branch 'develop' into feature/integration_manager 2020-05-28 20:33:51 +02:00
4465e6eea3 Widget: format url with roomId if needed 2020-05-28 20:26:34 +02:00
b87fb8c396 Widget: show sticker in room summary format 2020-05-28 20:15:11 +02:00
d4706b38b8 Widgets: display widget events in timeline 2020-05-28 20:04:41 +02:00
31c82b4ba6 Widget: show room widgets in bottom sheet and fix some widget actions 2020-05-28 19:39:07 +02:00
cb80d8d349 Widget: add active widgets 2020-05-28 17:08:57 +02:00
997101a44b Merge branch 'hotfix/crash_locales' 2020-05-28 11:31:38 +02:00
7be3434136 Merge branch 'hotfix/crash_locales' into develop 2020-05-28 11:31:38 +02:00
ec1422b0f0 Fix crash due to bad script. Tha bad value has already been fixed on Weblate. 2020-05-28 11:27:11 +02:00
b0a6eaaa96 Version++ 2020-05-28 10:45:58 +02:00
d1c4d4b099 Merge branch 'release/0.21.0' 2020-05-28 10:43:55 +02:00
d35905787d Merge branch 'release/0.21.0' into develop 2020-05-28 10:43:53 +02:00
9a972b2f73 Prepare release 0.21.0 2020-05-28 10:43:40 +02:00
1fe0c8a3e9 Widgets: handle actions (revoke, delete, edit, open in browser) and permissions bottom sheet 2020-05-28 10:25:04 +02:00
116bab5bc8 Fix call event not rendered in e2e rooms. 2020-05-27 19:02:27 +02:00
c76eb3bc98 Fix lint issue 2020-05-27 18:58:45 +02:00
81c1717384 Format strings 2020-05-27 18:49:34 +02:00
0fd0500d30 Merge pull request #1414 from RiotTranslateBot/weblate-riot-android-riotx-application
Update from Weblate
2020-05-27 17:50:06 +02:00
34d638da4f Merge pull request #1411 from vector-im/feature/attachment_e2e
Feature/attachment e2e
2020-05-27 15:13:17 +02:00
e39b177b5b Merge branch 'origin/develop' into Weblate. 2020-05-27 13:04:35 +00:00
07aa3ee64c Translated using Weblate (Swedish)
Currently translated at 19.9% (335 of 1682 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/sv/
2020-05-27 13:04:29 +00:00
c94856cdf8 Translated using Weblate (Slovak)
Currently translated at 95.7% (156 of 163 strings)

Translation: Riot Android/RiotX Matrix SDK
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-matrix-sdk/sk/
2020-05-27 13:04:26 +00:00
4dd0c04537 Translated using Weblate (Slovak)
Currently translated at 53.9% (906 of 1682 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/sk/
2020-05-27 13:04:26 +00:00
99c409b6d2 Translated using Weblate (Russian)
Currently translated at 82.6% (1390 of 1682 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/ru/
2020-05-27 13:04:26 +00:00
8cb2c2532f Translated using Weblate (Croatian)
Currently translated at 54.2% (912 of 1682 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/hr/
2020-05-27 13:04:24 +00:00
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
cf3dbb378e Get uploaded files for e2e rooms, from local DB 2020-05-26 22:06:51 +02:00
e32716aa48 Widget: add room active widgets to RoomDetailViewState 2020-05-26 19:47:06 +02:00
ba46f10e3f Add integration entry to settings 2020-05-26 19:44:14 +02:00
4b37ede8c2 Widget: handle sticker 2020-05-26 18:16:38 +02:00
dbe4c0c8e4 Remove duplicates from identity feature 2020-05-26 11:38:29 +02:00
4f4afd6840 Widget post api: handle last methods 2020-05-26 11:29:42 +02:00
7409fde650 Merge branch 'develop' into feature/integration_manager 2020-05-26 08:55:01 +02:00
cfa31e6332 Widgets: fix extracting user widgets 2020-05-26 08:31:19 +02:00
df973a6275 Widget: makes the integration manager screen mostly working 2020-05-26 08:07:09 +02:00
0eb36a607b Merge pull request #1402 from vector-im/feature/rageshake_dialogs
Feature/rageshake dialogs
2020-05-26 00:04:33 +02:00
0509e76f18 var -> val 2020-05-25 23:54:53 +02:00
e379ccf086 Extract MatrixConfiguration to its own file, for a better visibility 2020-05-25 23:53:36 +02:00
7ae52d676d Use directly java.net.proxy class 2020-05-25 23:50:10 +02:00
3d33018ffa Merge pull request #1147 from unclejay80/http_proxy_init
added network proxy configuration
2020-05-25 23:43:11 +02:00
860595520b Merge pull request #1401 from vector-im/feature/cleanup
Small PR with code cleanup
2020-05-25 17:30:31 +02:00
ae318a835e Merge pull request #1387 from vector-im/feature/attachments_list
Attachments list
2020-05-25 17:29:54 +02:00
7a3dbecc08 Fixes #860 2020-05-25 17:05:17 +02:00
c52aae7c29 Uploads: Snackbar 2020-05-25 17:05:17 +02:00
f0f3e8ddb9 Uploads: auto-review 2020-05-25 17:05:17 +02:00
a95102a78f Uploads: Use StateView for better Loading/Empty rendering 2020-05-25 17:02:57 +02:00
2adafbeb03 Uploads: use SenderInfo in TimelineEvent 2020-05-25 17:02:57 +02:00
f3a5fb7fe3 Uploads: rework: provide information about the sender 2020-05-25 16:54:08 +02:00
907a786b1a Uploads: load element until loader not displayed anymore 2020-05-25 16:54:08 +02:00
e3ed3e5b05 Uploads: cleanup 2020-05-25 16:54:08 +02:00
a2b366ebfe Uploads: add placeholder for images 2020-05-25 16:54:08 +02:00
f7de2f0f13 Uploads: create extension 2020-05-25 16:54:08 +02:00
919225bdfd Uploads: create extension 2020-05-25 16:54:08 +02:00
88cba74cac Uploads: add screen - WIP 2020-05-25 16:54:08 +02:00
e9ca876444 Uploads: add screen - WIP 2020-05-25 16:54:08 +02:00
0992e76800 Uploads: add screen - WIP 2020-05-25 16:54:08 +02:00
8a9498bae4 Uploads: add the service and the task 2020-05-25 16:54:08 +02:00
d2598480c8 var -> val 2020-05-25 16:54:08 +02:00
6e57b06673 Ensure Filter model match the spec and add Javadoc 2020-05-25 16:54:08 +02:00
a036be6436 Fix missing title in BugReport screen 2020-05-25 15:42:58 +02:00
53c7ea2831 Kotlin: use orEmpty() for Maps 2020-05-25 15:42:30 +02:00
e117fec74f Kotlin: use orEmpty() for Maps 2020-05-25 14:07:25 +02:00
6e01b75b2f Dagger: use generic name for parameters 2020-05-25 14:04:36 +02:00
691e7fe616 Kotlin: use orEmpty() 2020-05-25 14:04:36 +02:00
e793a46576 Merge pull request #1390 from vector-im/feature/icon
Change icon to magnifying-glass to filter room (#1384)
2020-05-25 10:57:30 +02:00
fa48e8cffa Change icon to magnifying-glass to filter room (#1384) 2020-05-25 10:57:14 +02:00
69cf437a39 Merge pull request #1291 from vector-im/feature/complete_security
Add hint to translators
2020-05-25 10:28:20 +02:00
ebbc432570 Merge pull request #1398 from vector-im/feature/date_time
Bugfixes
2020-05-25 10:13:30 +02:00
2532724e92 Translated using Weblate (Swedish)
Currently translated at 18.8% (316 of 1682 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/sv/
2020-05-25 00:29:11 +00:00
e31693b4b7 Translated using Weblate (Lithuanian)
Currently translated at 2.5% (4 of 163 strings)

Translation: Riot Android/RiotX Matrix SDK
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-matrix-sdk/lt/
2020-05-25 00:29:10 +00:00
3ed6452232 Translated using Weblate (Croatian)
Currently translated at 50.9% (856 of 1682 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/hr/
2020-05-25 00:29:10 +00:00
166aaa62f0 Translated using Weblate (Albanian)
Currently translated at 99.5% (1673 of 1682 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/sq/
2020-05-25 00:29:00 +00:00
45e5fff622 Added translation using Weblate (Lithuanian) 2020-05-23 23:44:45 +00:00
8f2dba09ee Added translation using Weblate (Lithuanian) 2020-05-23 23:43:32 +00:00
2ea46c5e54 Translated using Weblate (Swedish)
Currently translated at 18.7% (315 of 1682 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/sv/
2020-05-23 14:29:20 +00:00
fc5f0f7673 Translated using Weblate (German)
Currently translated at 99.5% (1674 of 1682 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-23 14:29:19 +00:00
188f4a2e72 Translated using Weblate (Esperanto)
Currently translated at 27.5% (463 of 1682 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/eo/
2020-05-23 14:29:18 +00:00
cf97fc3b01 Translated using Weblate (Croatian)
Currently translated at 41.2% (693 of 1682 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/hr/
2020-05-23 14:29:15 +00:00
5267ba240a Translated using Weblate (Basque)
Currently translated at 100.0% (163 of 163 strings)

Translation: Riot Android/RiotX Matrix SDK
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-matrix-sdk/eu/
2020-05-23 14:29:00 +00:00
f185dcacd7 Translated using Weblate (Basque)
Currently translated at 100.0% (1682 of 1682 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/eu/
2020-05-23 14:29:00 +00:00
330a33a0e8 Render formatted_body for m.notice and m.emote (Fixes #1196) 2020-05-21 01:47:17 +02:00
b75b299847 Create MessageContentWithFormattedBody interface 2020-05-21 01:05:47 +02:00
7c59bcc928 Only "org.matrix.custom.html" is supported 2020-05-21 00:41:36 +02:00
0e110b0794 Cleanup: use existing TextContent class instead of Pair<> 2020-05-21 00:40:12 +02:00
e156a62e19 Enable markdown (if active) when sending emote (Fixes #734) 2020-05-21 00:27:19 +02:00
628439aa65 Mardown: sending "**text in bold** was sending extra paragraph and extra new line 2020-05-21 00:25:59 +02:00
d49fcb80fc "Seen by" uses 12h time (Fixes #1378)
DateUtils.FORMAT_SHOW_TIME has to be used for i18n to be effective on DateUtils.getRelativeDateTimeString(), do not ask me why.
Also internal switching of language does not have effect on this method, you'll have to restart the application.
2020-05-20 23:52:41 +02:00
00fd067c6b Widget: continue working on interaction with SDK. Not sure yet how to manage properly distinction between room and "admin" widgets. 2020-05-20 20:39:18 +02:00
ca37895619 Merge pull request #1374 from vector-im/feature/sas_v2
support new key agreement method for SAS
2020-05-20 18:32:01 +02:00
43497e0da9 Merge pull request #1315 from vector-im/feature/forward_pagination
Feature/forward pagination
2020-05-20 18:30:09 +02:00
efa510c0a8 Translated using Weblate (Swedish)
Currently translated at 17.1% (287 of 1682 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/sv/
2020-05-20 15:29:38 +00:00
0828159ee4 Translated using Weblate (Slovak)
Currently translated at 53.9% (906 of 1682 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/sk/
2020-05-20 15:29:35 +00:00
90f21198c3 Translated using Weblate (Russian)
Currently translated at 82.1% (1381 of 1682 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/ru/
2020-05-20 15:29:34 +00:00
a0b0778fce Translated using Weblate (Portuguese (Brazil))
Currently translated at 52.2% (878 of 1682 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/pt_BR/
2020-05-20 15:29:33 +00:00
d937fa67ad Translated using Weblate (Italian)
Currently translated at 100.0% (1682 of 1682 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/it/
2020-05-20 15:29:33 +00:00
91d396fbca Translated using Weblate (German)
Currently translated at 100.0% (163 of 163 strings)

Translation: Riot Android/RiotX Matrix SDK
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-matrix-sdk/de/
2020-05-20 15:29:32 +00:00
afba5b2b6c Translated using Weblate (German)
Currently translated at 99.5% (1673 of 1682 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-20 15:29:32 +00:00
b579a1bc83 Translated using Weblate (French)
Currently translated at 100.0% (1682 of 1682 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/fr/
2020-05-20 15:29:31 +00:00
db49673fc7 Translated using Weblate (Estonian)
Currently translated at 14.2% (239 of 1682 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/et/
2020-05-20 15:29:31 +00:00
bb0511e659 Translated using Weblate (Croatian)
Currently translated at 26.2% (441 of 1682 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/hr/
2020-05-20 15:29:22 +00:00
0e0763ec2d Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (1682 of 1682 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/zh_Hant/
2020-05-20 15:28:52 +00:00
3faf42be53 Widget: get user list widgets from user account 2020-05-19 18:40:11 +02:00
dea903bcb5 Merge branch 'develop' into feature/integration_manager 2020-05-19 16:08:46 +02:00
e1c6542e03 Merge branch 'develop' into feature/forward_pagination 2020-05-19 15:25:33 +02:00
01484978bd Fix lint 2020-05-19 15:24:36 +02:00
cad14c93d0 Timeline: fix tests and add message order check 2020-05-19 14:39:42 +02:00
ee52b9185b Translated using Weblate (German)
Currently translated at 99.4% (1672 of 1682 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-19 09:33:16 +00:00
861a7f791f Update change log 2020-05-19 09:57:54 +02:00
f2fa57224b Update matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/crypto/verification/DefaultVerificationService.kt
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
2020-05-19 09:55:45 +02:00
e0977dd97b Add new key agreement protocol 2020-05-19 09:55:45 +02:00
f47bef71a4 Merge pull request #1354 from vector-im/feature/identity
Identity server
2020-05-18 17:28:57 +02:00
92985fc8e7 Split long line 2020-05-18 17:25:15 +02:00
243b0a7d82 ktlint 2020-05-18 17:23:33 +02:00
92c719a803 Set identity server: do not show the error in the EditText when user want to use the default identity server 2020-05-18 17:23:33 +02:00
f4108ae0eb Properly handle Loading state: button were still active... Also finish the work on the controller 2020-05-18 17:23:33 +02:00
ecf3fee709 Integrate Valere's remarks - step 3: use viewModelScope in ViewModels 2020-05-18 17:23:33 +02:00
e67e472025 Integrate Valere's remarks - step 2: Stop using (or at least reduce usage of) GlobalScope 2020-05-18 17:23:33 +02:00
a6541481bf Integrate Valere's remarks - step 1 2020-05-18 17:23:33 +02:00
85a4f83662 Colorize the identity server url 2020-05-18 17:23:33 +02:00
22955e6b34 Use debouncedClicks every where, for faster UI (it uses throttleFirst operator instead of debounce) 2020-05-18 17:23:33 +02:00
9520aff848 Use debouncedClicks every where, for faster UI (it uses throttleFirst operator instead of debounce) 2020-05-18 17:23:33 +02:00
6b09a78ece Identity: Improve identity choice screen after review 2020-05-18 17:23:33 +02:00
789bcc8d77 Identity: Bugfix: do not fail when trying to disconnect the current identity server, if there is no token available 2020-05-18 17:23:33 +02:00
2914117a8e Move some classes 2020-05-18 17:23:33 +02:00
8049962a99 Create a Wellknown module, because both AuthModule and HomeServerCapability module need it 2020-05-18 17:23:33 +02:00
225b1c380e Identity: retrieve the default identity server url 2020-05-18 17:23:33 +02:00
60d80ea0ba Fix compilation issue after rebase 2020-05-18 17:23:33 +02:00
c8211098f3 Identity: The store has to be migrated properly because it contains user's data 2020-05-18 17:23:33 +02:00
e78fde4eca Identity: rename a few class and add a mapper to avoid using Entities in the code 2020-05-18 17:23:33 +02:00
59d60813fb Cleanup 2020-05-18 17:23:33 +02:00
4c31e52892 Add facilities and Javadoc on SessionParams data class 2020-05-18 17:23:33 +02:00
c646fd2b36 ktlint 2020-05-18 17:23:33 +02:00
6432859732 Avoid code duplication 2020-05-18 17:23:33 +02:00
2beef7d816 Identity: fix issue with logout request.
Also disconnect previous set identity server when changing url, when disconnecting, and when deactivating account
2020-05-18 17:23:33 +02:00
623056455b Identity: fix rendering error 2020-05-18 17:23:33 +02:00
7a4d9370e3 Identity: human readable errors 2020-05-18 17:23:33 +02:00
fe3138492e Identity: fix issue in dark theme 2020-05-18 17:23:33 +02:00
05a52164f3 Identity: Changelog and documentation 2020-05-18 17:23:33 +02:00
d14f1dd1ab Capability: do not update data if the corresponding request fails 2020-05-18 17:23:13 +02:00
88e8c11ee5 Identity: protect against outdated homeserver 2020-05-18 17:23:13 +02:00
7afc7bdb31 Identity refresh main setting page. 2020-05-18 17:23:13 +02:00
84a3754c9f Confirm identity server disconnection in all cases, as Riot-Web does 2020-05-18 17:23:13 +02:00
4b2f8e9174 Auto-review 2020-05-18 17:23:13 +02:00
a17932e17e Add missing internal 2020-05-18 17:23:13 +02:00
084c27a2bb Identity: cleanup 2020-05-18 17:23:13 +02:00
ed2f62cbe7 Identity: ping API V2 and cleanup 2020-05-18 17:23:13 +02:00
38fb7185b6 Identity: One class per file 2020-05-18 17:23:13 +02:00
ce42d2fb8a Identity: improve terms not signed case 2020-05-18 17:23:13 +02:00
af3fc22e2d Identity: correctly handle terms update 2020-05-18 17:22:40 +02:00
b659cb60a2 Improve code 2020-05-18 17:22:40 +02:00
34cf9903dc Improve code 2020-05-18 17:22:40 +02:00
062a21e39a Improve code 2020-05-18 17:22:40 +02:00
4510aff00a ktlint 2020-05-18 17:22:40 +02:00
d0953b8406 Identity: Cleanup 2020-05-18 17:22:40 +02:00
7822660ce7 Identity: Extract enum for Epoxy Items 2020-05-18 17:22:40 +02:00
bdfcf5c67c Identity: cleanup Epoxy items 2020-05-18 17:22:40 +02:00
ae0d09a049 Identity: cancel binding WIP 2020-05-18 17:22:40 +02:00
69759b7415 Identity: store sendAttempt in DB 2020-05-18 17:22:40 +02:00
7e8e1ab9b7 Identity: change DB and add sendAttempt 2020-05-18 17:22:40 +02:00
b44f5d3b4a Handle correctly the verification code error case 2020-05-18 17:22:40 +02:00
03f8b66993 Remove undocumented parameter
https://github.com/matrix-org/sydent/issues/195
2020-05-18 17:22:40 +02:00
e411f139c8 Identity: validate code received by SMS 2020-05-18 17:22:40 +02:00
e962d1dadf Small improvement 2020-05-18 17:22:40 +02:00
756b0febe6 Identity: Add some doc 2020-05-18 17:22:40 +02:00
1535f3e2e5 Identity: bind/unbnd: restore the bind in progress State 2020-05-18 17:22:40 +02:00
3e808dec90 Identity: bind/unbnd WIP 2020-05-18 17:22:40 +02:00
637f4a8350 Fix small UI bug 2020-05-18 17:22:40 +02:00
d3bc9f52fd Remove duplicated class 2020-05-18 17:22:40 +02:00
ffd8ac859d Identity: fix sync of indetity server change 2020-05-18 17:22:40 +02:00
6e43e9b51c Identity: refresh pepper, logout feature and other improvements 2020-05-18 17:22:40 +02:00
426171508e Import and adapt Terms Of Service management: SDK and UI (compiling) - still fixing issue 2020-05-18 17:22:40 +02:00
e86460b578 Import and adapt Terms Of Service management: SDK and UI (compiling) 2020-05-18 17:22:40 +02:00
8dd5f88dba Identity: cleanup UI 2020-05-18 17:21:59 +02:00
3aa6de7cf5 Identity: progressing 2020-05-18 17:21:59 +02:00
a75242c79d Retrieve ThreePids from homeserver 2020-05-18 17:21:59 +02:00
784918350b Identity: import UI/UX From Riot and adapt to RiotX architecture 2020-05-18 17:21:59 +02:00
0199cf9a03 Identity - Fix issue with Realm 2020-05-18 17:21:59 +02:00
ab6e7a3b8a Identity - WIP (compilation ok) 2020-05-18 17:21:59 +02:00
f489265ce7 Create AccessTokenProvider 2020-05-18 17:21:59 +02:00
6c9c3e5cb3 To merge with previous previous commit 2020-05-18 17:21:59 +02:00
9b7c2599a7 Add withOlmUtility facility 2020-05-18 17:21:59 +02:00
25bbd7c526 Identity - Create DB 2020-05-18 17:21:59 +02:00
e0c3f3638d Merge pull request #1370 from vector-im/feature/redacted_message
Feature/redacted message
2020-05-18 16:30:40 +02:00
d45653dbb3 Ganfra's review: Improve the filters declaration 2020-05-18 16:26:18 +02:00
f70623beea Ganfra's review: Handle filterRedacted in TimelineHiddenReadReceipts 2020-05-18 16:26:18 +02:00
e542e4ba22 Add a setting to hide redacted events (#951) 2020-05-18 16:26:18 +02:00
05d1e64cb5 New rendering for redacted message 2020-05-18 16:25:54 +02:00
adac80062c Merge pull request #1368 from vector-im/feature/switch_language
Feature/switch language
2020-05-18 16:22:07 +02:00
28f8d9500e Better coroutine management 2020-05-18 16:21:47 +02:00
538bda329e Lazy load available languages 2020-05-18 16:21:47 +02:00
a00ddca188 Create SystemLocaleProvider 2020-05-18 16:21:47 +02:00
8ac2cb0530 Cleanup 2020-05-18 16:21:47 +02:00
19d655ec41 Locales: improve algo 2020-05-18 16:21:47 +02:00
4961bb0e08 FontSize: rework by creating FontScaleValue data class. 2020-05-18 16:21:47 +02:00
f45040c405 Locale: support locale change 2020-05-18 16:21:24 +02:00
9fed62e4a7 Improve template 2020-05-18 16:21:00 +02:00
43b9e2cec9 Merge pull request #1382 from vector-im/feature/aiplane_mode
Better connectivity lost indicator when airplane mode is on
2020-05-18 15:35:14 +02:00
3185b88fe5 Better connectivity lost indicator when airplane mode is on 2020-05-18 15:09:14 +02:00
c2906d9b06 Translated using Weblate (Swedish)
Currently translated at 14.6% (245 of 1682 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/sv/
2020-05-16 18:28:48 +00:00
cfb615f972 Translated using Weblate (Russian)
Currently translated at 82.1% (1381 of 1682 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/ru/
2020-05-16 18:28:48 +00:00
9c22c0952c Translated using Weblate (Estonian)
Currently translated at 5.9% (100 of 1682 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/et/
2020-05-16 18:28:48 +00:00
5a834619c0 Translated using Weblate (Estonian)
Currently translated at 97.5% (159 of 163 strings)

Translation: Riot Android/RiotX Matrix SDK
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-matrix-sdk/et/
2020-05-16 18:28:43 +00:00
3b62f50f7b Translated using Weblate (Swedish)
Currently translated at 14.4% (242 of 1682 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/sv/
2020-05-16 08:03:01 +00:00
18e804d174 Translated using Weblate (Swedish)
Currently translated at 14.3% (241 of 1682 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/sv/
2020-05-16 07:22:14 +00:00
c105d82027 Translated using Weblate (Hungarian)
Currently translated at 100.0% (1682 of 1682 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/hu/
2020-05-16 07:22:11 +00:00
860921217d Translated using Weblate (French)
Currently translated at 100.0% (1682 of 1682 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/fr/
2020-05-16 07:22:06 +00:00
3fe2f2876a Translated using Weblate (Estonian)
Currently translated at 1.6% (27 of 1682 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/et/
2020-05-16 07:22:05 +00:00
e84fd408be Translated using Weblate (Croatian)
Currently translated at 0.5% (8 of 1682 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/hr/
2020-05-16 07:22:05 +00:00
f361fd7355 Added translation using Weblate (Croatian) 2020-05-15 21:33:36 +00:00
458e3ee5e8 Timeline: fetch next token with the help of getContext when required 2020-05-15 20:18:07 +02:00
5fa247a0c5 Remove temporary tool and strings_riotX.xml temporary files 2020-05-15 15:50:15 +02:00
48e58967b2 Version++ 2020-05-15 15:48:15 +02:00
d1d79c0191 Merge branch 'release/0.20.0' 2020-05-15 15:45:26 +02:00
0a41a9f773 Merge branch 'release/0.20.0' into develop 2020-05-15 15:45:26 +02:00
03fa0e6ad6 Prepare release 0.20.0 2020-05-15 15:44:36 +02:00
8eebcef4e9 Fix #1373 2020-05-15 15:36:52 +02:00
ea1c75c16a Fix lint issues in Strings 2020-05-15 12:58:14 +02:00
7a2aefd8fb Format string resources 2020-05-15 12:46:20 +02:00
33ec1bbfb3 Merge pull request #1371 from RiotTranslateBot/weblate-riot-android-riotx-application
Update from Weblate
2020-05-15 12:41:06 +02:00
8883832b86 Merge branch 'origin/develop' into Weblate. 2020-05-15 10:09:23 +00:00
308828ef50 Translated using Weblate (Swedish)
Currently translated at 14.3% (239 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/sv/
2020-05-15 10:04:42 +00:00
885dac4ad1 Translated using Weblate (French)
Currently translated at 100.0% (1672 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/fr/
2020-05-15 10:04:39 +00:00
c03d61e09f Translated using Weblate (Estonian)
Currently translated at 1.5% (25 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/et/
2020-05-15 10:04:38 +00:00
b2bacdfa4e Translated using Weblate (Estonian)
Currently translated at 92.6% (151 of 163 strings)

Translation: Riot Android/RiotX Matrix SDK
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-matrix-sdk/et/
2020-05-15 10:04:36 +00:00
06defaf14e Translated using Weblate (Esperanto)
Currently translated at 24.2% (404 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/eo/
2020-05-15 10:04:33 +00:00
22e3b370e3 IntegrationConfig: make preferred non null as we should at least get the default one 2020-05-14 17:54:27 +02:00
8f5589d3e1 Start creating the widget url builder 2020-05-14 17:05:22 +02:00
03389fc040 Change some naming 2020-05-14 17:05:08 +02:00
4698cf7a9b Merge pull request #1367 from vector-im/feature/fix_crash_1366
Fix crash on restore backup from ky
2020-05-14 16:07:40 +02:00
5004fba986 Added translation using Weblate (Estonian) 2020-05-14 08:16:34 +00:00
8cc82fe5ba Added translation using Weblate (Estonian) 2020-05-14 08:13:31 +00:00
c9fb231714 Translated using Weblate (Swedish)
Currently translated at 12.0% (200 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/sv/
2020-05-13 23:28:56 +00:00
0f22b55786 Translated using Weblate (Russian)
Currently translated at 82.5% (1380 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/ru/
2020-05-13 23:28:55 +00:00
535148e68a Translated using Weblate (German)
Currently translated at 99.9% (1671 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-13 23:28:47 +00:00
878e093b6b Translated using Weblate (German)
Currently translated at 99.9% (1671 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-13 23:28:47 +00:00
0e5f741b6b Translated using Weblate (Esperanto)
Currently translated at 21.2% (355 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/eo/
2020-05-13 23:28:47 +00:00
36b1717fc1 Translated using Weblate (Dutch)
Currently translated at 68.4% (1144 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/nl/
2020-05-13 23:28:38 +00:00
37392b5495 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (163 of 163 strings)

Translation: Riot Android/RiotX Matrix SDK
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-matrix-sdk/zh_Hans/
2020-05-13 23:28:38 +00:00
84f2fc41b3 Translated using Weblate (German)
Currently translated at 99.9% (1671 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-13 20:46:48 +00:00
ebdf75091a Translated using Weblate (German)
Currently translated at 99.9% (1671 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-13 20:46:48 +00:00
ce304ace2b Translated using Weblate (German)
Currently translated at 99.9% (1671 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-13 20:24:08 +00:00
0d2acec73e Translated using Weblate (German)
Currently translated at 99.9% (1671 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-13 20:24:08 +00:00
0144764f69 Translated using Weblate (German)
Currently translated at 99.9% (1671 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-13 19:34:47 +00:00
aad4b3dc39 Translated using Weblate (German)
Currently translated at 99.9% (1671 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-13 19:34:47 +00:00
996aa9ef66 Merge branch 'develop' into feature/integration_manager 2020-05-13 20:21:48 +02:00
9778999a7f Create RoomWidget feature 2020-05-13 20:04:19 +02:00
91301197ea Try to communicate with WidgetPostAPI 2020-05-13 20:04:08 +02:00
040deea655 Fix crash on restore backup from ky 2020-05-13 16:59:55 +02:00
1e2b5dd428 Merge pull request #1365 from vector-im/feature/fix_crash_1364
Fix crash 1364
2020-05-13 16:59:08 +02:00
8d32c27ce0 Fix crash 1364 2020-05-13 16:57:57 +02:00
074a9e9f29 Merge pull request #1338 from vector-im/feature/crash_manual_verify
Crashes when private key missing
2020-05-13 16:35:38 +02:00
650b6bd9ea Merge branch 'develop' into feature/crash_manual_verify 2020-05-13 16:35:28 +02:00
3dd74d6828 Merge pull request #1095 from vector-im/feature/wellknown
Add wellknown support in the login flow
2020-05-13 15:29:02 +02:00
f717a37a4a Split long line 2020-05-13 15:28:05 +02:00
d8b1372a0f Login request does not provide the full Wellknown data. Change the model to reflect that, to avoid misunderstanding. 2020-05-13 14:03:10 +02:00
678cf50dbd Add Javadoc 2020-05-13 13:56:33 +02:00
57fca80cbb Disable possibility to login using matrixId (waiting for design) 2020-05-13 13:33:12 +02:00
cf7de8bb8b Typo 2020-05-13 12:43:54 +02:00
a70fdedce5 Try to use wellKnown request, when user is entering a homeserver URL 2020-05-13 12:43:54 +02:00
c173235ee3 ktlint 2020-05-13 12:43:54 +02:00
f74b1e6c2e Migrate Login Navigation view model to regular ViewEvents 2020-05-13 12:43:54 +02:00
c9bc6f4a9e Support homeserver discovery from MXID - Wellknown (#476) 2020-05-13 12:42:08 +02:00
63c18e82c8 typo... 2020-05-13 00:34:33 +02:00
037b2e1d60 PR merged after a release, move 2 lines 2020-05-13 00:34:03 +02:00
aea9c958bf Merge pull request #1307 from vector-im/feature/invite_members_to_room
Invite members to an existing room
2020-05-13 00:29:55 +02:00
7f185a729e Merge pull request #1345 from emmaguy/direct-shortcuts
Add direct shortcuts
2020-05-13 00:25:58 +02:00
d08b4e1ea0 PR feedback 2020-05-12 19:37:03 +01:00
4eaed945e2 Fix plurals. 2020-05-12 15:31:15 +03:00
14b1b10556 Translated using Weblate (Russian)
Currently translated at 75.2% (1258 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/ru/
2020-05-12 12:28:46 +00:00
df762e40bb Translated using Weblate (Esperanto)
Currently translated at 100.0% (163 of 163 strings)

Translation: Riot Android/RiotX Matrix SDK
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-matrix-sdk/eo/
2020-05-12 12:28:46 +00:00
684972185f Translated using Weblate (Esperanto)
Currently translated at 14.7% (245 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/eo/
2020-05-12 12:28:45 +00:00
04dd13d03b Use plurals in case of 3 or more invited users. 2020-05-12 14:10:23 +03:00
700fd47f22 Toast message formatting of invited users. 2020-05-12 12:10:45 +03:00
b36759deb4 Merge pull request #1226 from ndarilek/develop
Set `tickerText` to improve accessibility of notifications.
2020-05-11 22:28:36 +02:00
25d224be6b Merge branch 'develop' into develop 2020-05-11 22:27:16 +02:00
fe013f803e Add action menu icon to invite users. 2020-05-11 22:43:55 +03:00
01d6b52a60 Widgets: handle scalar token 2020-05-11 20:00:50 +02:00
ce884ac577 Merge branch 'develop' into feature/integration_manager 2020-05-11 15:48:27 +02:00
6abc51d05d Merge pull request #1339 from vector-im/feature/openId
Create a specific module for OpenId
2020-05-11 15:41:41 +02:00
a98916c985 Translated using Weblate (Swedish)
Currently translated at 11.1% (186 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/sv/
2020-05-11 10:28:38 +00:00
9e29533aad Translated using Weblate (Polish)
Currently translated at 93.3% (1560 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/pl/
2020-05-11 10:28:37 +00:00
7119403cde Translated using Weblate (Norwegian Bokmål)
Currently translated at 34.5% (577 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/nb_NO/
2020-05-11 10:28:36 +00:00
7f55e4fb1e Translated using Weblate (German)
Currently translated at 99.9% (1671 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-11 10:28:34 +00:00
82df62a600 Translated using Weblate (German)
Currently translated at 99.9% (1671 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-11 10:28:34 +00:00
d0c722eae1 Translated using Weblate (Chinese (Simplified))
Currently translated at 64.5% (1078 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/zh_Hans/
2020-05-11 10:28:33 +00:00
40649e9c3c Translated using Weblate (German)
Currently translated at 99.9% (1671 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-10 22:23:53 +00:00
431b285806 Translated using Weblate (German)
Currently translated at 99.9% (1671 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-10 22:23:52 +00:00
75f84fe1f4 Translated using Weblate (German)
Currently translated at 99.9% (1671 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-10 22:20:28 +00:00
98bf02efa9 Translated using Weblate (German)
Currently translated at 99.9% (1671 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-10 22:20:28 +00:00
0eb68b531c Translated using Weblate (German)
Currently translated at 99.9% (1671 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-10 21:47:22 +00:00
9124844e3e Translated using Weblate (German)
Currently translated at 99.9% (1671 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-10 21:47:22 +00:00
f568553d21 Add to changes 2020-05-09 21:07:03 +01:00
92c9d4fc22 remove unused import
Signed-off-by: Emma Vanbrabant <emmag87@gmail.com>
2020-05-09 20:58:15 +01:00
957d51cf3f Fix placeholder icons 2020-05-09 20:50:58 +01:00
54ecc25831 Create ShortcutBuilder and use 2020-05-09 20:12:51 +01:00
738a368a6f Translated using Weblate (Polish)
Currently translated at 93.1% (1557 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/pl/
2020-05-09 18:02:25 +00:00
969f070175 Translated using Weblate (Swedish)
Currently translated at 10.6% (178 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/sv/
2020-05-09 16:28:51 +00:00
d8d78b124d Translated using Weblate (German)
Currently translated at 100.0% (1672 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-09 16:28:37 +00:00
9a9f0c200e Translated using Weblate (German)
Currently translated at 100.0% (1672 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-09 16:28:37 +00:00
247ffc1270 Translated using Weblate (Esperanto)
Currently translated at 82.2% (134 of 163 strings)

Translation: Riot Android/RiotX Matrix SDK
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-matrix-sdk/eo/
2020-05-09 16:28:37 +00:00
690d05aeca Translated using Weblate (Danish)
Currently translated at 23.8% (398 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/da/
2020-05-09 16:28:30 +00:00
c33f3b76fa Translated using Weblate (Swedish)
Currently translated at 0.5% (8 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/sv/
2020-05-08 06:28:32 +00:00
8616c454e1 Translated using Weblate (German)
Currently translated at 100.0% (163 of 163 strings)

Translation: Riot Android/RiotX Matrix SDK
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-matrix-sdk/de/
2020-05-08 06:28:31 +00:00
17db994d35 Translated using Weblate (German)
Currently translated at 99.9% (1671 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-08 06:28:30 +00:00
6c1c1ca8b0 Translated using Weblate (Finnish)
Currently translated at 100.0% (163 of 163 strings)

Translation: Riot Android/RiotX Matrix SDK
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-matrix-sdk/fi/
2020-05-08 06:28:30 +00:00
f1613eacbb Translated using Weblate (Finnish)
Currently translated at 94.0% (1572 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/fi/
2020-05-08 06:28:30 +00:00
67d1c2dc80 Translated using Weblate (Albanian)
Currently translated at 98.8% (161 of 163 strings)

Translation: Riot Android/RiotX Matrix SDK
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-matrix-sdk/sq/
2020-05-08 06:28:28 +00:00
c2b2b856a1 Translated using Weblate (Albanian)
Currently translated at 99.6% (1665 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/sq/
2020-05-08 06:28:28 +00:00
44f946513f Added translation using Weblate (Swedish) 2020-05-08 06:15:51 +00:00
1cafca6de6 Merge pull request #1334 from vector-im/feature/fix_1329
Fix #1329
2020-05-07 17:45:09 +02:00
35ee7f0b40 Add changelog entry. 2020-05-07 15:38:28 +00:00
6e8e7164c6 Use last event when generating ticker text. 2020-05-07 15:29:42 +00:00
6bbded1e65 Use string resource for generating ticker text. 2020-05-07 15:14:31 +00:00
0aa90c3eea Translated using Weblate (Finnish)
Currently translated at 100.0% (163 of 163 strings)

Translation: Riot Android/RiotX Matrix SDK
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-matrix-sdk/fi/
2020-05-07 06:15:43 +00:00
b44b0ec998 Translated using Weblate (German)
Currently translated at 99.9% (1671 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 22:10:26 +00:00
07c6259734 Translated using Weblate (German)
Currently translated at 99.9% (1671 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 22:10:25 +00:00
1785d4d0b4 Translated using Weblate (German)
Currently translated at 99.6% (1665 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 22:08:11 +00:00
22d06928c8 Translated using Weblate (German)
Currently translated at 99.6% (1665 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 22:08:11 +00:00
d6fe6e44bd Translated using Weblate (German)
Currently translated at 99.3% (1660 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 22:06:47 +00:00
d51ee19f3f Translated using Weblate (German)
Currently translated at 99.3% (1660 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 22:06:47 +00:00
717e5161a6 Translated using Weblate (German)
Currently translated at 98.9% (1654 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 22:05:07 +00:00
be9fa268b1 Translated using Weblate (German)
Currently translated at 98.9% (1654 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 22:05:07 +00:00
14e8bbcec6 Translated using Weblate (German)
Currently translated at 98.9% (1653 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 22:03:45 +00:00
26105dc25f Translated using Weblate (German)
Currently translated at 98.9% (1653 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 22:03:45 +00:00
53ba1c2068 Translated using Weblate (German)
Currently translated at 98.8% (1652 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 22:03:19 +00:00
fa004c9d93 Translated using Weblate (German)
Currently translated at 98.8% (1652 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 22:03:18 +00:00
be94921918 Translated using Weblate (German)
Currently translated at 98.7% (1650 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 22:00:54 +00:00
2f5fe59aa6 Translated using Weblate (German)
Currently translated at 98.7% (1650 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 22:00:53 +00:00
89fb2cf391 Translated using Weblate (German)
Currently translated at 98.3% (1644 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 21:55:58 +00:00
f1d2abc9b1 Translated using Weblate (German)
Currently translated at 98.3% (1644 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 21:55:58 +00:00
2aa8512f6f Translated using Weblate (German)
Currently translated at 98.1% (1641 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 21:52:02 +00:00
2d31402cf0 Translated using Weblate (German)
Currently translated at 98.1% (1641 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 21:52:02 +00:00
6d61848ed6 Translated using Weblate (German)
Currently translated at 98.1% (1640 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 21:42:56 +00:00
0e0b724535 Translated using Weblate (German)
Currently translated at 98.1% (1640 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 21:42:55 +00:00
e13915b0c7 Translated using Weblate (German)
Currently translated at 98.0% (1639 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 21:40:19 +00:00
361f0415bb Translated using Weblate (German)
Currently translated at 98.0% (1639 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 21:40:18 +00:00
c3b662fa1f Translated using Weblate (German)
Currently translated at 98.0% (1638 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 21:40:01 +00:00
2d3e23ee11 Translated using Weblate (German)
Currently translated at 98.0% (1638 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 21:40:00 +00:00
fc8ab0d462 Translated using Weblate (German)
Currently translated at 97.9% (1637 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 21:36:10 +00:00
89629ffe93 Translated using Weblate (German)
Currently translated at 97.9% (1637 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 21:36:10 +00:00
e97d565809 Translated using Weblate (German)
Currently translated at 97.8% (1636 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 21:35:28 +00:00
7e3413eda7 Translated using Weblate (German)
Currently translated at 97.8% (1636 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 21:35:28 +00:00
7966f6e308 Translated using Weblate (German)
Currently translated at 97.7% (1634 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 21:34:42 +00:00
e1286a0ed4 Translated using Weblate (German)
Currently translated at 97.7% (1634 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 21:34:42 +00:00
1e2d267fec Translated using Weblate (German)
Currently translated at 97.6% (1632 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 21:32:36 +00:00
8b3403c115 Translated using Weblate (German)
Currently translated at 97.6% (1632 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 21:32:35 +00:00
da4b029093 Translated using Weblate (German)
Currently translated at 97.5% (1631 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 21:32:22 +00:00
b48113a353 Translated using Weblate (German)
Currently translated at 97.5% (1631 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 21:32:21 +00:00
e1884e7c73 Translated using Weblate (German)
Currently translated at 97.5% (1630 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 21:32:01 +00:00
daae030134 Translated using Weblate (German)
Currently translated at 97.5% (1630 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 21:32:01 +00:00
19e1da1216 Translated using Weblate (German)
Currently translated at 97.3% (1627 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 21:30:27 +00:00
e9bb95b3b3 Translated using Weblate (German)
Currently translated at 97.3% (1627 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 21:30:26 +00:00
a43ca5925c Translated using Weblate (German)
Currently translated at 97.1% (1624 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 21:28:41 +00:00
dd46798bda Translated using Weblate (German)
Currently translated at 97.1% (1624 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 21:28:41 +00:00
d70a09ded8 Translated using Weblate (German)
Currently translated at 97.1% (1623 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 21:27:28 +00:00
439aa7854c Translated using Weblate (German)
Currently translated at 97.1% (1623 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 21:27:28 +00:00
750550ad3e Create a specific module for OpenId 2020-05-06 22:14:56 +02:00
b6af2269d2 Translated using Weblate (Albanian)
Currently translated at 99.6% (1665 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/sq/
2020-05-06 18:59:23 +00:00
b047f36e86 Creates a Widget Manager to be used internally and state event service 2020-05-06 20:49:07 +02:00
afbda4ac28 Translated using Weblate (Polish)
Currently translated at 93.1% (1556 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/pl/
2020-05-06 17:23:33 +00:00
f5fd0ac323 Translated using Weblate (Hungarian)
Currently translated at 100.0% (1672 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/hu/
2020-05-06 17:23:31 +00:00
18de0ca951 Translated using Weblate (German)
Currently translated at 96.9% (1621 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 17:23:31 +00:00
b53c073b90 Translated using Weblate (German)
Currently translated at 96.9% (1621 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-06 17:23:30 +00:00
13ebef334f Translated using Weblate (French)
Currently translated at 100.0% (1672 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/fr/
2020-05-06 17:23:30 +00:00
b1ba4e393e Translated using Weblate (Finnish)
Currently translated at 93.8% (1568 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/fi/
2020-05-06 17:23:30 +00:00
d898bc71f7 Translated using Weblate (Dutch)
Currently translated at 68.4% (1144 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/nl/
2020-05-06 17:23:20 +00:00
0afa7a706a Update change log 2020-05-06 18:20:43 +02:00
da68212255 Crashes when private key missing 2020-05-06 18:14:44 +02:00
4fdd2f4eed Create WidgetsAPI 2020-05-06 15:53:28 +02:00
583139d51e klint 2020-05-06 15:06:34 +02:00
cee8ae3af4 Fix #1329
+ migration to remove duplicate
2020-05-06 15:04:17 +02:00
182753e4ec Start creating integration manager 2020-05-06 11:53:35 +02:00
c7c6cf70e4 Code review fixes. 2020-05-06 11:20:08 +03:00
1491bddb3b Translated using Weblate (French)
Currently translated at 100.0% (1672 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/fr/
2020-05-06 06:42:49 +00:00
ac5db83880 Translated using Weblate (German)
Currently translated at 96.5% (1614 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-05 13:35:17 +00:00
b2f3ba220e Translated using Weblate (German)
Currently translated at 96.5% (1614 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-05 13:35:17 +00:00
deb783f797 Translated using Weblate (German)
Currently translated at 96.5% (1613 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-05 13:34:25 +00:00
5fcf54cd57 Translated using Weblate (German)
Currently translated at 96.5% (1613 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-05 13:34:25 +00:00
29c9d3070c Start creating bunch of necessary classes 2020-05-05 13:05:45 +02:00
4306cb7812 Upgrade build tools version (SDK 29) 2020-05-05 12:08:19 +02:00
a4b8dc9400 Fix test compilation issue 2020-05-05 11:49:03 +02:00
be9393fabe Merge branch 'hotfix/fix_crash_before_release' 2020-05-05 11:33:40 +02:00
c7a7ad7b57 Merge branch 'hotfix/fix_crash_before_release' into develop 2020-05-05 11:33:40 +02:00
78b7f03138 Fix / Sending events have warning until encrypted 2020-05-05 10:15:42 +02:00
ffeae7ec83 Fix timeline navigation when opening an event in a previous lastForward chunk.
In this case, we do not have a nextToken, but there are more event to load. So we perform a GET /context on the last known event.
Not sure it is correct to do that though...
2020-05-05 02:41:32 +02:00
db77e7b817 Create a fun 2020-05-05 02:41:32 +02:00
fcee85a682 Cleanup and doc 2020-05-05 02:41:32 +02:00
17ddb5ce43 if all events are rendered in the timeline (developer mode), render the room creation event. 2020-05-05 02:41:32 +02:00
53583c691f Add some logs 2020-05-05 02:41:32 +02:00
2b9d3960b3 Improve tests 2020-05-05 02:41:32 +02:00
92befcde5d Add test to cover previous last forward case (passing) 2020-05-05 02:41:32 +02:00
697eaec197 TI: After jump to unread, newer messages are never loaded (#1008) 2020-05-05 02:41:32 +02:00
86fba28313 After jump to unread, newer messages are never loaded (#1008) 2020-05-05 02:41:32 +02:00
f3c3c07d46 Kotlin sugar 2020-05-05 00:14:57 +02:00
8966e24925 Create a debug method to send x times the same event 2020-05-05 00:14:57 +02:00
becc5a7b54 Add assertion in debug 2020-05-05 00:14:57 +02:00
a61434ae08 doc 2020-05-05 00:14:57 +02:00
20b726819f Rename "LastLive" -> "LastForward" 2020-05-05 00:14:57 +02:00
bfd847179f Wait more 2020-05-05 00:14:57 +02:00
7e955ef0e4 Add possibility to create clear room 2020-05-05 00:14:57 +02:00
2697800deb Doc and cleanup 2020-05-05 00:14:57 +02:00
2c47fe9f0d typo 2020-05-05 00:14:57 +02:00
423f21b02e Translated using Weblate (German)
Currently translated at 96.4% (1611 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-04 18:43:34 +00:00
eb6546d81c Translated using Weblate (German)
Currently translated at 96.4% (1611 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-04 18:43:33 +00:00
4e2878300f Translated using Weblate (German)
Currently translated at 96.4% (1611 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-04 18:43:33 +00:00
4578b9df7f Fix / froezn object migration 2020-05-04 18:27:38 +02:00
d679c9d5d8 Cleanup 2020-05-04 17:30:55 +02:00
dc7b3dfc9d Fix crash when entering wrong passphrase 2020-05-04 17:30:13 +02:00
6843ea113b Version++ 2020-05-04 16:06:41 +02:00
0a8c954397 Merge remote-tracking branch 'origin/master' 2020-05-04 16:04:51 +02:00
358e10a093 Merge branch 'release/0.19.0' 2020-05-04 16:03:35 +02:00
c0b7ea6dd1 Merge branch 'release/0.19.0' into develop 2020-05-04 16:03:34 +02:00
0b5e618c1c Update CHANGES.md 2020-05-04 16:03:01 +02:00
1f528ee428 Format strings 2020-05-04 16:00:11 +02:00
bbd8b89589 Merge pull request #1321 from RiotTranslateBot/weblate-riot-android-riotx-application
Update from Weblate
2020-05-04 15:52:06 +02:00
a5d2d65131 Translated using Weblate (Slovak)
Currently translated at 54.5% (912 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/sk/
2020-05-04 11:50:58 +00:00
b45504d97a Translated using Weblate (Hungarian)
Currently translated at 100.0% (163 of 163 strings)

Translation: Riot Android/RiotX Matrix SDK
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-matrix-sdk/hu/
2020-05-04 11:50:57 +00:00
0598ecaca3 Translated using Weblate (Hungarian)
Currently translated at 99.8% (1669 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/hu/
2020-05-04 11:50:57 +00:00
0d9749a515 Translated using Weblate (German)
Currently translated at 95.9% (1604 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-04 11:50:55 +00:00
836766f978 Translated using Weblate (German)
Currently translated at 95.9% (1604 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-04 11:50:55 +00:00
93851d0ab2 Translated using Weblate (German)
Currently translated at 95.9% (1604 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-04 11:50:55 +00:00
5fff637bee Translated using Weblate (Finnish)
Currently translated at 99.4% (162 of 163 strings)

Translation: Riot Android/RiotX Matrix SDK
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-matrix-sdk/fi/
2020-05-04 11:50:55 +00:00
eae015caa1 Translated using Weblate (Finnish)
Currently translated at 86.0% (1438 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/fi/
2020-05-04 11:50:54 +00:00
80a356c7e2 Translated using Weblate (Czech)
Currently translated at 98.4% (1645 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/cs/
2020-05-04 11:50:52 +00:00
3a0eed795a Lint fix. 2020-05-04 12:09:36 +03:00
c1c0c6f2c6 Lint fixes. 2020-05-04 11:22:27 +03:00
f04868ba19 Translated using Weblate (German)
Currently translated at 95.8% (1601 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-03 14:14:24 +00:00
b052884912 Translated using Weblate (German)
Currently translated at 95.8% (1601 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-03 14:14:24 +00:00
7fb7729af6 Translated using Weblate (German)
Currently translated at 95.8% (1601 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-03 14:14:24 +00:00
2f5d824c65 Translated using Weblate (Italian)
Currently translated at 100.0% (163 of 163 strings)

Translation: Riot Android/RiotX Matrix SDK
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-matrix-sdk/it/
2020-05-03 14:14:24 +00:00
fbc46b3c8b Translated using Weblate (Italian)
Currently translated at 100.0% (1672 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/it/
2020-05-03 14:14:24 +00:00
e986c9d343 Translated using Weblate (German)
Currently translated at 95.6% (1599 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/de/
2020-05-03 14:14:24 +00:00
3100473305 Translated using Weblate (French)
Currently translated at 100.0% (163 of 163 strings)

Translation: Riot Android/RiotX Matrix SDK
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-matrix-sdk/fr/
2020-05-03 14:14:24 +00:00
5eb9f32acb Translated using Weblate (French)
Currently translated at 100.0% (1672 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/fr/
2020-05-03 14:14:24 +00:00
0d12a80832 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (163 of 163 strings)

Translation: Riot Android/RiotX Matrix SDK
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-matrix-sdk/zh_Hant/
2020-05-03 14:14:24 +00:00
077c166c09 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (1672 of 1672 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/zh_Hant/
2020-05-03 14:14:24 +00:00
5d26b6a7cb Translated using Weblate (Bengali (India))
Currently translated at 12.3% (20 of 163 strings)

Translation: Riot Android/RiotX Matrix SDK
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-matrix-sdk/bn_IN/
2020-05-03 14:14:24 +00:00
68c1e8fc6d Added translation using Weblate (Bengali (India)) 2020-05-03 14:14:24 +00:00
1ffd7dbb9f Translated using Weblate (Slovak)
Currently translated at 92.6% (151 of 163 strings)

Translation: Riot Android/RiotX Matrix SDK
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-matrix-sdk/sk/
2020-05-03 14:14:24 +00:00
0cc48a190f Translated using Weblate (Slovak)
Currently translated at 54.2% (904 of 1667 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/sk/
2020-05-03 14:14:24 +00:00
8206a78156 Translated using Weblate (Italian)
Currently translated at 98.7% (1645 of 1667 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/it/
2020-05-03 14:14:24 +00:00
6a1e38ca04 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (1667 of 1667 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/zh_Hant/
2020-05-03 14:14:24 +00:00
779f380d2f Translated using Weblate (Bulgarian)
Currently translated at 100.0% (163 of 163 strings)

Translation: Riot Android/RiotX Matrix SDK
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-matrix-sdk/bg/
2020-05-03 14:14:24 +00:00
55f7461747 Translated using Weblate (Russian)
Currently translated at 75.4% (1257 of 1667 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/ru/
2020-05-03 14:14:24 +00:00
7665aba22c Translated using Weblate (French)
Currently translated at 100.0% (1667 of 1667 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/fr/
2020-05-03 14:14:24 +00:00
e96c5f7305 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (1667 of 1667 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/zh_Hant/
2020-05-03 14:14:24 +00:00
c5ba34d619 Translated using Weblate (Slovak)
Currently translated at 54.0% (901 of 1667 strings)

Translation: Riot Android/RiotX application
Translate-URL: https://translate.riot.im/projects/riot-android/riotx-application/sk/
2020-05-03 14:14:24 +00:00
c13439eeb9 Merge pull request #1317 from vector-im/feature/fix_crash_bootstrap
Fix / Crash on bootstrap
2020-05-03 11:59:32 +02:00
d27b73f6be Fix / Crash on bootstrap
Exception: java.lang.IllegalArgumentException: 'value' is not a valid managed object.
2020-05-03 11:36:40 +02:00
bb427700d2 Merge pull request #1310 from vector-im/feature/room_creation
Several fixes on room creation collpasing events (Fixes #1309)
2020-04-30 18:19:49 +02:00
4589aaa11c Merge pull request #1312 from vector-im/feature/post_smoke_test_fix
Feature/post smoke test fix
2020-04-30 17:37:04 +02:00
b3dbcd7936 Show untrusted first 2020-04-30 15:43:19 +02:00
cac246aa15 update copy 2020-04-30 15:43:05 +02:00
d2f0957eba Merge branch 'develop' into feature/invite_members_to_room 2020-04-30 16:11:52 +03:00
db18272ef2 Remove strings from strings_riotX.xml 2020-04-30 15:47:31 +03:00
cf5d89ea9b Documentation added for new parameter excludedUserIds. 2020-04-30 15:40:54 +03:00
0aeb327062 Changelog added. 2020-04-30 15:40:02 +03:00
5dc50195b3 Filter existing room members. 2020-04-30 15:28:20 +03:00
83db9b34d4 Merge pull request #1311 from vector-im/bmarty-patch-1
Add instruction regarding the template
2020-04-30 13:50:44 +02:00
a43df43642 Add instruction regarding the template 2020-04-30 13:10:53 +02:00
57a87ba620 Add InviteUsersToRoomActivity and mvrx classes. 2020-04-30 13:54:09 +03:00
f6cbc15cf7 Several fixes on room creation collpasing events (Fixes #1309)
- do not collapse room member events
- collapse other type of event: topic, alias, canonical alias, powel level
- Use correct user name for collapsed version (should be fixed twice due to the previous change of excluding some room member events)
- align "join" and "left" string with Riot-Web
2020-04-30 12:52:21 +02:00
7322144dc8 Remove duplicated strings 2020-04-30 12:15:26 +02:00
8e357c6b7f Merge pull request #1280 from vector-im/feature/e2e_timeline_decoration
Feature/e2e timeline decoration
2020-04-30 12:01:55 +02:00
7b20db64a5 Merge branch 'develop' into feature/e2e_timeline_decoration 2020-04-30 12:01:44 +02:00
429c634ed9 Merge pull request #1308 from vector-im/feature/fix_dm_shield_logic
Fix / Move DM shield rules to task
2020-04-30 12:00:18 +02:00
05230a6afa Code review 2020-04-30 11:38:32 +02:00
43eb804b23 Merge pull request #1303 from vector-im/feature/xs_old_new_session_detection
Feature/xs old new session detection
2020-04-30 11:23:15 +02:00
5840248ffa Fix / NPE Optional#get instead of getOrNull 2020-04-30 11:11:11 +02:00
6ea38c7eb0 Fix / Move DM shield rules to task 2020-04-30 10:55:25 +02:00
9586fa9f90 Typo in file name 2020-04-30 10:11:32 +02:00
0d0af6906e Code review 2020-04-30 10:10:56 +02:00
93070f3524 Fix / use distinct until change 2020-04-30 09:50:47 +02:00
7cf7b7e10e Fix / avoid showing legacy start toaster under verif bottomsheet 2020-04-30 09:50:38 +02:00
1de4869cde Fix / reuse cell keeps icon 2020-04-30 09:50:11 +02:00
a4eba653a3 Make a generic user directory search & selection views. 2020-04-30 02:50:30 +03:00
21d0db8382 Merge pull request #1304 from vector-im/feature/template
Feature/template
2020-04-29 19:21:01 +02:00
269d6e4d08 Remove AndroidManifest template 2020-04-29 19:19:50 +02:00
3cf341c3bf code quality 2020-04-29 18:48:26 +02:00
f0a9be2ec7 Better session detection 2020-04-29 18:46:36 +02:00
8955e5461c Add retry to sendToDeviceTask 2020-04-29 18:45:51 +02:00
087ff1c041 Fix / race when receive accept in sending start in to device 2020-04-29 18:44:25 +02:00
1a307a0c4d Template: let the ViewModel factory be agnostic of the host 2020-04-29 17:58:54 +02:00
071a43c8d4 Merge pull request #1305 from vector-im/feature/fix_delay_initial_sync
Fix / ensure ux aware of wait
2020-04-29 17:12:58 +02:00
7b46c49ded Fix / missing primary key for migration 2020-04-29 16:35:50 +02:00
da5672d229 Fix / ensure ux aware of wait 2020-04-29 16:18:01 +02:00
dcfd9ee7a7 Fix copy 2020-04-29 15:12:07 +02:00
35a6f90ed6 Create configure script for template 2020-04-29 14:41:45 +02:00
d463e5e500 Create template 2020-04-29 14:38:01 +02:00
0f00597444 Fix / Regression on non e2e device
+ migrate to new rx objects
2020-04-29 12:35:22 +02:00
a806f70b35 New security alert to review old sessions 2020-04-29 12:04:59 +02:00
67f07bd1bb Merge pull request #1297 from vector-im/feature/xsigning_trust_optimization
Feature/xsigning trust optimization
2020-04-29 10:32:29 +02:00
39e18446ae fix typo 2020-04-29 09:34:28 +02:00
4dc0b00569 Import string from Matrix SDK 2020-04-28 23:54:35 +02:00
87979ccadd Merge pull request #1299 from vector-im/feature/emoji_perf
Emoji completion for 🎉
2020-04-28 23:41:02 +02:00
7c2a5af8f2 Merge pull request #1301 from vector-im/feature/strings
Feature/strings
2020-04-28 23:40:39 +02:00
dc6d4c6789 Remove problematic translation 2020-04-28 21:54:14 +02:00
db3d5e2677 Remove not used anymore translations 2020-04-28 21:36:34 +02:00
6dc8bdde04 Import translation from Riot-Android 2020-04-28 21:35:39 +02:00
c02cfb2f4f Merge pull request #1296 from vector-im/feature/untrusted_session_shields
Update manage sessions screen
2020-04-28 19:17:00 +02:00
947c46d7b5 Avoid negative margin 2020-04-28 19:16:29 +02:00
8942ce964a Fix android test not compiling 2020-04-28 19:09:20 +02:00
a05c401892 Code review 2020-04-28 18:47:54 +02:00
f25c981173 Add menu item to invite users to the room. 2020-04-28 17:30:23 +03:00
43055964ba Crypto store : avoid copying before mapping to other data 2020-04-28 16:26:04 +02:00
a4192a0761 Emoji completion 🎉 does not completes to 🎉 like on web (#1285) 2020-04-28 14:29:43 +02:00
9c8ff7de7f Add Android test for EmojiDataSource 2020-04-28 14:15:50 +02:00
b4247c89e4 Make fun internal 2020-04-28 14:15:50 +02:00
cdabca6def Fix copy 2020-04-28 13:20:30 +02:00
2d6f0205a4 Update manage sessions screen 2020-04-28 13:20:30 +02:00
4e8177f738 Fix lint 2020-04-28 13:10:44 +02:00
798e9e4fde Merge pull request #1287 from vector-im/feature/improve_security_toaster
Remember ignored unknown sessions
2020-04-28 12:38:14 +02:00
8871390167 Code review 2020-04-28 12:25:50 +02:00
fc86e7e1f6 ShieldTrust: use only active members 2020-04-28 11:00:41 +02:00
21912c290a XSigning keys: use json instead of object serialization 2020-04-28 10:59:51 +02:00
df335c7aa3 Merge pull request #1290 from vector-im/feature/cleanup_ui_state
Clear preferences when user logs out
2020-04-28 10:54:48 +02:00
8bd4cc8f54 Merge pull request #1277 from vector-im/feature/sso
Use correct sso url
2020-04-27 14:36:37 +02:00
4e3df99e42 Merge pull request #1281 from vector-im/feature/various_issues_verification_ssss_bootstrap
Feature/various issues verification ssss bootstrap
2020-04-27 14:32:18 +02:00
b1e1b4a7dc Remove "Reset keys" developer action 2020-04-27 14:25:45 +02:00
a233e9b0a0 Avoid code duplication, and improve readability 2020-04-27 14:25:45 +02:00
ebecb9bb9a i18n 2020-04-27 14:25:07 +02:00
35962c3cb5 Do not propose bootsrap for SSO accounts
Because we do not support yet confirming account credentials using SSO
2020-04-27 14:25:07 +02:00
0ac6a26b6e Add "continue" button to the bootstrap bottom sheet 2020-04-27 14:25:07 +02:00
0a887c0926 Cleanup 2020-04-27 14:25:07 +02:00
54c0239969 fix layout issue when text is displayed on 2 lines 2020-04-27 14:25:07 +02:00
8559254593 Merge pull request #1289 from vector-im/feature/fix-edited_event_click
Do not handle url if it is not valid.
2020-04-27 14:24:25 +02:00
626eb4d06b Comments added to explain why we should check if the url is valid. 2020-04-27 13:44:16 +03:00
aa16ba88ae Add hint to translators 2020-04-27 12:41:47 +02:00
a633c11c1d Do not clear developer preference when logging out 2020-04-27 12:29:38 +02:00
a4931e21ae Clear sharedPreference when logging out 2020-04-27 12:26:19 +02:00
996fabb327 Merge pull request #1288 from vector-im/feature/fix_update_4s_backup_after_bootstrap
Fix / backup key was not save in 4S after bootstrap
2020-04-27 11:42:09 +02:00
6c4e71d7d4 Do not handle url if it is not valid. 2020-04-27 12:26:35 +03:00
ad0ad502aa Fix / backup key was not save in 4S after bootstrap 2020-04-27 11:14:13 +02:00
42b47c25aa Remember ignored unknown sessions 2020-04-27 10:09:37 +02:00
7ef1970a0b Better layout preview 2020-04-27 01:17:20 +02:00
409d751612 Merge pull request #1278 from vector-im/feature/fix_misleading_url_color
Fix the color of misleading url according to design document.
2020-04-27 00:50:03 +02:00
bdce71abfd Update change log 2020-04-24 16:50:56 +02:00
114bce5f64 Fix / DB crash due to deserializaion 2020-04-24 16:50:56 +02:00
20e5ebc88b Decorate timeline with e2e warning 2020-04-24 16:50:56 +02:00
52aa57ac7c Fix the color of misleading url according to design document. 2020-04-24 17:18:59 +03:00
8daf72a4b0 Use correct URL for SSO connection (#1178) 2020-04-24 15:54:02 +02:00
51eb2cda95 Move some constants to the Matrix SDK 2020-04-24 15:53:30 +02:00
57779c99c2 improve script 2020-04-24 14:39:55 +02:00
02e02ed691 Merge pull request #1275 from vector-im/feature/log_improvement
Log improvement for test
2020-04-24 14:38:28 +02:00
af0b798ef1 Ensure Timber log output when running tests
to squash
2020-04-24 13:38:28 +02:00
51be8d5ed5 Remove previous temporary solution 2020-04-24 13:26:25 +02:00
270bed5013 EventBus logs using Timber 2020-04-24 11:57:49 +02:00
20b3c33fb0 Remove bad comment 2020-04-24 11:57:49 +02:00
b2aaf1cca1 CurlLoggingInterceptor now uses Timber to log 2020-04-24 11:57:49 +02:00
5f6969e2cc Merge pull request #1270 from vector-im/feature/misleading_url_target
Show a warning dialog if the text of the clicked link does not match
2020-04-24 11:53:16 +03:00
f0648ee52a Merge branch 'develop' into feature/misleading_url_target 2020-04-24 11:24:39 +03:00
88c70a2c10 Merge pull request #1266 from vector-im/feature/update_ssss_activity
Feature/update ssss activity
2020-04-23 21:20:43 +02:00
22c3ed6bb9 Code review 2020-04-23 21:20:01 +02:00
b0d25fa84f Update vector/src/main/res/values/strings_riotX.xml
Co-Authored-By: Benoit Marty <benoitm@matrix.org>
2020-04-23 21:16:46 +02:00
57636207d2 Fix copy 2020-04-23 21:16:46 +02:00
eac9133bb1 update change log 2020-04-23 21:16:46 +02:00
f7e7659750 klint 2020-04-23 21:16:28 +02:00
e719541b5e Fix / crash when generating random key 2020-04-23 21:16:28 +02:00
bd7acfbb1a Add option to recover with recovery key 2020-04-23 21:16:28 +02:00
25b42cb4f3 Merge pull request #1272 from vector-im/feature/update_design_complete_secu
Update design wait for self verification
2020-04-23 21:14:02 +02:00
928149fe35 Merge branch 'develop' into feature/update_design_complete_secu 2020-04-23 21:13:53 +02:00
a80181da9e Merge branch 'develop' into feature/misleading_url_target 2020-04-23 20:18:44 +03:00
72de5d6adc Code review fixes. 2020-04-23 20:17:52 +03:00
ed4154d763 Merge pull request #1261 from vector-im/feature/unwedging
Feature/unwedging
2020-04-23 18:20:31 +02:00
4ee13b6fa1 Merge branch 'develop' into feature/unwedging 2020-04-23 18:20:09 +02:00
33fb1dd147 Merge pull request #1262 from vector-im/feature/fix_add_by_user_id
Add user to direct chat by user id.
2020-04-23 18:05:15 +02:00
736905edf8 Merge pull request #1269 from vector-im/feature/complete_security_hide_4s
Hide Use recovery key when 4S is not setup
2020-04-23 18:03:14 +02:00
e8a91eab88 Merge pull request #1265 from vector-im/feature/deactivate
Deactivate account using password
2020-04-23 17:30:08 +02:00
b951af0116 RiotX spelling 2020-04-23 17:00:37 +02:00
c3299845c1 use generic cancel and continue strings. 2020-04-23 17:44:30 +03:00
54644db587 Dialog design fixes. 2020-04-23 17:37:30 +03:00
cb0e93c43e use theme notice color 2020-04-23 16:23:36 +02:00
4c4ec6cfe8 Code review accessibility 2020-04-23 16:13:19 +02:00
449be02f53 update icon tint 2020-04-23 16:05:43 +02:00
25d2c2e2c6 Update design wait for self verification 2020-04-23 15:45:21 +02:00
ec2ba7c0b2 Do not warn if the domain of urls are the same and colorize links. 2020-04-23 16:30:37 +03:00
06a13d5c20 Show a warning dialog if the text of the clicked link does not match the link target
Fixes #922
2020-04-23 15:42:57 +03:00
7e0591ffee Hide Use recovery key when 4S is not setup 2020-04-23 11:14:20 +02:00
1363100f94 Create DM: now any userId can be entered, so deal with the case of the userId does not exists.
Use same string resource value than Riot-Web
2020-04-22 23:03:04 +02:00
06cf59bca7 Even if it's not happening, do not add the search term if already present in the results. 2020-04-22 19:20:13 +02:00
e37dd547b8 code review 2020-04-22 18:50:59 +02:00
671c1259af Merge pull request #1239 from waylon531/develop
Use a bigger thread pool
2020-04-22 18:23:37 +02:00
3d07ccd98e auto-review. Password could be only spaces... 2020-04-22 18:03:47 +02:00
03b9774c56 ktlint 2020-04-22 17:56:13 +02:00
0f1ddee71c Use SwitchCompat 2020-04-22 17:54:25 +02:00
855efa93cc Remove cancel button, useless. 2020-04-22 17:29:34 +02:00
d0f776a9cf Discard session command only encrypted room 2020-04-22 16:41:34 +02:00
da66e38c68 Close drawer when opening settings 2020-04-22 16:02:06 +02:00
a4ba8c152d Add IME action to the password field 2020-04-22 15:51:34 +02:00
9b320ed3c7 Fix unwedging 2020-04-22 15:40:59 +02:00
c854491248 Be more robust 2020-04-22 15:00:04 +02:00
5755d5bfaa Deactivate account: unit test and cleanup 2020-04-22 14:36:01 +02:00
ff320fec55 Move internal class to internal package 2020-04-21 20:47:49 +02:00
8c8a84b039 Account deactivation: the task does the cleanup 2020-04-21 20:41:10 +02:00
045e3d7bae Account deactivation (with password only) (#35) 2020-04-21 20:31:54 +02:00
491f0e6032 Merge pull request #1259 from vector-im/feature/restore_backup_from_ssss
KeyBackup / Use 4S if key in quadS
2020-04-21 14:31:26 +02:00
3163bc8b80 Add user to direct chat by user id.
Fixes #1065
2020-04-21 15:25:48 +03:00
eca3bf0817 typo 2020-04-21 13:49:36 +02:00
63355ca256 code review 2020-04-21 11:06:56 +02:00
c39a0e4fd5 timout -> timeout 2020-04-21 00:29:44 +02:00
59280ed18e Small improvement in documentation 2020-04-21 00:29:02 +02:00
c1acb1af66 Add integration test for change password feature 2020-04-21 00:23:01 +02:00
8a4f0a0c00 KeyBackup / Use 4S if key in quadS 2020-04-20 19:21:44 +02:00
a6368c473e Restart broken Olm sessions ([MSC1719](https://github.com/matrix-org/matrix-doc/pull/1719)) 2020-04-20 18:07:14 +02:00
3615ca6b95 VersionName can be null when running integration test 2020-04-20 18:07:14 +02:00
ddb00ba23a Enable Timber log in integration tests 2020-04-20 18:07:14 +02:00
91cf4b647d var -> val 2020-04-20 18:07:14 +02:00
f989eed8b0 Use @Throws(MXCryptoError::class) 2020-04-20 18:07:14 +02:00
4d296ddc09 Avoid injecting credentials 2020-04-20 18:07:14 +02:00
6186c22e02 improve code 2020-04-20 18:07:14 +02:00
13cd13a42f Create RoomEncryptorsStore 2020-04-20 18:07:14 +02:00
a42eb42178 Avoid injecting Credentials 2020-04-20 18:07:14 +02:00
7924ef207c Add Javadoc 2020-04-20 18:07:14 +02:00
5900245018 Make the test fail before unwedging implementation 2020-04-20 18:07:14 +02:00
00c239bc42 cleanup 2020-04-20 18:07:14 +02:00
0cb43eef51 Add test for Unwedging (before implementing it) 2020-04-20 18:07:14 +02:00
41a8f40241 Improve API 2020-04-20 18:07:14 +02:00
a8641ef879 Split KeysBackup to several files. No other change. 2020-04-20 18:07:14 +02:00
4d207e6acd Merge pull request #1258 from vector-im/feature/strings
Strings
2020-04-20 17:41:50 +02:00
1227de3f9c Merge pull request #1256 from vector-im/feature/increase_default_timeout
Increase default timeout to match old riot
2020-04-20 17:13:59 +02:00
6cad129625 Still waiting for translation update 2020-04-20 16:13:16 +02:00
9ccf51fbc0 Import string from Riot - new strings 2020-04-20 15:20:08 +02:00
990867204e Import string from Riot 2020-04-20 15:17:14 +02:00
5795b7e063 Merge pull request #1242 from vector-im/feature/save_media_to_gallery
Save media files to Gallery
2020-04-20 13:24:33 +03:00
b612a7e63c Merge pull request #1252 from vector-im/feature/fix_device_detection_debounce
Avoid unnecessary /device call
2020-04-20 12:07:17 +02:00
50c73b68aa cleaning 2020-04-20 11:31:42 +02:00
c7ac5e2293 Increase default timeout to match old riot 2020-04-20 11:26:03 +02:00
43cb1fe68b Code review 2020-04-20 11:12:35 +02:00
f807de9a83 Lint fix. 2020-04-20 11:53:33 +03:00
754f220596 Merge branch 'develop' into feature/save_media_to_gallery 2020-04-20 11:21:14 +03:00
3f7ca8669a Remove duplicated save icon. 2020-04-20 00:48:52 +03:00
28c6921a0a Avoid unnecessary /device call 2020-04-17 18:08:29 +02:00
26bb8ce2be Give user a toast after adding media file to the gallery. 2020-04-17 16:53:40 +03:00
8434f9326e Save action added to bottom sheet. 2020-04-17 15:27:42 +03:00
68f93c6c31 Merge branch 'develop' of https://github.com/vector-im/riotX-android into develop
Signed-off-by: Waylon Cude <waylon.cude@finzdani.net>
2020-04-16 12:19:17 -07:00
7961423556 Merge pull request #1244 from vector-im/feature/media_path
Fix download and upload media path
2020-04-16 17:58:08 +02:00
ac07fb47d7 Better Kotlin code 2020-04-16 17:42:55 +02:00
fbcbd6def5 Merge pull request #1243 from vector-im/feature/update_x_signing_copy
Feature/update x signing copy
2020-04-16 17:30:11 +02:00
3fe15f2d45 code review 2020-04-16 17:02:01 +02:00
968377a5be Update vector/src/main/res/values/strings_riotX.xml
Co-Authored-By: Benoit Marty <benoitm@matrix.org>
2020-04-16 16:53:24 +02:00
5652140f5d Improve ContentUrlResolver 2020-04-16 16:41:45 +02:00
e97c95f40a Fix issue with media path (Fixes #1227) 2020-04-16 16:41:45 +02:00
7ac5f58f32 Show CrossSigning info even if not developer mode 2020-04-16 16:30:45 +02:00
ce2f4e163d Update password/recovery copy + update icons 2020-04-16 16:30:45 +02:00
cc94b6cf7d Merge pull request #1116 from vector-im/feature/worker_manager
Add some documentation on Workers
2020-04-16 16:28:20 +02:00
ab3cc90ed5 Share menu item added to video media viewer. 2020-04-16 16:46:00 +03:00
614127e46b Merge pull request #1240 from vector-im/feature/update_security_notice
Feature/update security notice
2020-04-16 15:33:54 +02:00
66fc38ad4b Remove GlobalScope usage 2020-04-16 15:09:16 +02:00
f68e84d9da Update toaster to match web 2020-04-16 15:09:16 +02:00
2b2e6dd6f8 Share menu item added to image media viewer. 2020-04-16 16:04:37 +03:00
621e78a864 Merge pull request #1235 from vector-im/feature/upgrate_cross_signing
Add migration state to bootstrap
2020-04-16 15:04:06 +02:00
828e972c74 Split long lines 2020-04-16 14:35:55 +02:00
15bd7d1c5b Change the regex to detect long lines to allow schema with UTF-8 chars 2020-04-16 14:35:23 +02:00
79e81dbdde ktlint 2020-04-16 14:01:15 +02:00
f93f50b582 Code readability 2020-04-16 14:00:24 +02:00
d934f92ebd Fix bad apostrophe 2020-04-16 13:58:54 +02:00
d20cf484ff Merge branch 'develop' of https://github.com/vector-im/riotX-android into develop
Signed-off-by: Waylon Cude <waylon.cude@finzdani.net>
2020-04-16 03:10:06 -07:00
ec4458e84a Updated CHANGES.md
Signed-off-by: Waylon Cude <waylon.cude@finzdani.net>
2020-04-16 02:50:58 -07:00
6c1719e365 Use a bigger thread pool
This patch makes RiotX use an unbounded thread pool to handle
connections. The default thread pool for the android WorkManager has a
fairly anemic number of threads and I suspect this was causing
performance issues especially because of all the long-running jobs that
happen whenever you sync.

I tested this out on my phone and all of the sluggishness appears to
have gone away. I tested both the debug and release builds to make sure
it wasn't just some release optimization. RiotX is so much snappier now!

This fixes #1221

Signed-off-by: Waylon Cude <waylon.cude@finzdani.net>
2020-04-16 02:44:31 -07:00
467f48f1a6 Merge remote-tracking branch 'origin/develop' into develop 2020-04-16 11:33:22 +02:00
a44cb876c9 move strings to resources 2020-04-16 11:30:10 +02:00
e79c824913 Fix / password visibility initial state bug 2020-04-16 11:30:10 +02:00
b8e9cc70f2 fix / line too long 2020-04-16 11:30:10 +02:00
a2f32307f0 Support back from migrate recovery key 2020-04-16 11:30:10 +02:00
c1d39cefd5 Fix / avoid upgrade secu popup on account creation 2020-04-16 11:30:10 +02:00
0edc562120 Fix / test compilation 2020-04-16 11:30:10 +02:00
8ae2f06044 Add change log 2020-04-16 11:30:10 +02:00
aa496e6efb Add migration state to bootstrap 2020-04-16 11:30:10 +02:00
1372192031 Merge pull request #1091 from vector-im/feature/secure
Add a setting to prevent screenshot of the application, disabled by default (#1027)
2020-04-16 11:27:59 +02:00
ea03f76847 Merge pull request #1129 from vector-im/feature/update_password
Change password function implemented.
2020-04-16 11:26:33 +02:00
d74a5f9979 Typo 2020-04-16 11:23:41 +02:00
febadcc4f6 Merge pull request #1238 from vector-im/feature/thumbnail_info
`mimetype` field is optional
2020-04-16 10:57:29 +02:00
17ece54cb0 mimetype field is optional 2020-04-16 10:28:23 +02:00
da04a74350 Merge pull request #1143 from MatMaul/refresh-summary
Refresh the whole notifs when cleaning one so the summary get updated
2020-04-15 17:29:36 +02:00
634c8947bd Merge branch 'develop' into refresh-summary 2020-04-15 17:29:08 +02:00
f6f6fa99fb Merge pull request #1223 from vector-im/feature/cross_signing_as_task
Make initialize cross signing as a task
2020-04-15 17:21:25 +02:00
dcfbfc4981 Merge pull request #1230 from vector-im/feature/fix_download_file
Catch network errors during file downloading.
2020-04-15 16:54:31 +02:00
6201a9b8ef Merge branch 'develop' into feature/fix_download_file 2020-04-15 16:52:40 +02:00
1981d2e9ac Merge pull request #1233 from vector-im/feature/fix_local_echo_no_update
Fix / sending event not always updating
2020-04-15 16:51:16 +02:00
66f6b1ecac Merge pull request #1224 from vector-im/feature/composer_shield
Add shield in composer
2020-04-15 16:49:50 +02:00
affe2b59da Fix crash 2020-04-15 16:40:01 +02:00
757f8ec96a Change password: prevent cancellation when processing 2020-04-15 16:39:05 +02:00
bf5e2b96df Change password: bigger margins 2020-04-15 16:39:05 +02:00
5666965321 Change password: do not trim passwords 2020-04-15 16:39:05 +02:00
7bf1f916c4 Change password: lambda 2020-04-15 16:39:05 +02:00
d44e43d94b Change password: update wording of button (Nad's request) 2020-04-15 16:39:05 +02:00
9fe32fe915 Change password: hide the preference (as Riot-Web does) if it is not possible to change the password. 2020-04-15 16:39:05 +02:00
e21cb3082b Change password: update preference summary. Some people think we know the password. Using Riot-web wording 2020-04-15 16:39:05 +02:00
c50bc10f92 Code review: improve layout 2020-04-15 16:38:44 +02:00
1b416028b4 Code review: inline the error instead of using toast 2020-04-15 16:38:44 +02:00
85493b7532 Code review: use isInvalidPassword() extension everywhere. Also be robust if the Fragment is destroyed 2020-04-15 16:38:44 +02:00
dbabe0232f Do not override the default timeout. 2020-04-15 16:38:44 +02:00
dfc8e8ec4c AccountService is created. 2020-04-15 16:38:44 +02:00
f00db49bda Change password function implemented.
Fixes #528
2020-04-15 16:38:44 +02:00
b4a3eb2cb3 Fix return the exception instead of empty one. 2020-04-15 16:39:41 +03:00
81012746c4 Code review / added new key for message hint 2020-04-15 15:39:23 +02:00
1deacfbb34 Code review 2020-04-15 15:37:43 +02:00
c35d854776 Add shield in composer 2020-04-15 15:37:43 +02:00
c0fa259b40 Add a setting to prevent screenshot of the application, disabled by default (#1027) 2020-04-15 15:04:19 +02:00
391d3cb6b5 Merge pull request #1186 from duncanturk/improvement-957-catchup-indicator-on-invite
Fix #957 catchup indicator on invite
2020-04-15 15:02:16 +02:00
6d56220d98 Merge branch 'develop' into improvement-957-catchup-indicator-on-invite 2020-04-15 15:00:34 +02:00
2e4d30ef29 Set tickerText to improve accessibility of notifications.
Signed-off-by: Nolan Darilek <nolan@thewordnerd.info>
2020-04-15 07:43:41 -05:00
c57fa3f0d0 Merge pull request #1176 from vector-im/feature/target-sdk-29
Increase targetSdk to 29
2020-04-15 14:32:16 +02:00
f2bca51046 Merge pull request #1232 from vector-im/feature/translations
string sync
2020-04-15 14:24:39 +02:00
6751d88ade Remove .idea exclusion 2020-04-15 13:00:03 +02:00
e26a0bc9ae Add Android SDK version 2020-04-15 12:57:15 +02:00
6dc517584f Fix merge issue 2020-04-15 12:56:33 +02:00
24d0cdef1f Add missing changes of SDK version and build tools 2020-04-15 12:53:28 +02:00
6639f89a68 Simpler code 2020-04-15 12:53:08 +02:00
0c0e9521f5 Fix lint issue 2020-04-15 09:50:25 +02:00
f2b684aa9e Fix / user and self signing failing
bad copy paste
2020-04-14 18:23:20 +02:00
68ca0e9d4b Fix / sending event not always updating 2020-04-14 17:35:11 +02:00
e54077e020 String copied to Riot project 2020-04-14 17:26:23 +02:00
9111800e7a Create specific string for RiotX 2020-04-14 17:23:59 +02:00
ef6847671a Import strings from Riot 2020-04-14 17:13:43 +02:00
b8cb0588fe Add new resources 2020-04-14 17:06:05 +02:00
667b371653 Continue supporting old APIs. 2020-04-14 16:29:11 +03:00
190fbb95ec Merge branch 'develop' into feature/target-sdk-29
# Conflicts:
#	vector/src/main/java/im/vector/riotx/features/crypto/verification/VerificationBottomSheetViewModel.kt
2020-04-14 13:59:54 +03:00
f97e08b4e5 Remove .gitignore which belongs to another PR. 2020-04-14 13:12:17 +03:00
7242cbda40 Catch network errors during file downloading.
Fixes #1229
2020-04-13 17:48:19 +03:00
9e3011d4c8 Make initialize cross signing as a task 2020-04-10 17:04:34 +02:00
eb50256af7 Merge pull request #1222 from vector-im/feature/verification_unified_emoji
Uniform emoji representation for all platform
2020-04-10 16:05:42 +02:00
ccacd20428 Merge branch 'develop' into feature/verification_unified_emoji 2020-04-10 16:05:33 +02:00
ac46fe9e16 Merge pull request #1218 from vector-im/feature/scan_confirm_update
Feature/scan confirm update
2020-04-10 16:05:02 +02:00
9cfb83f0d2 Remove outdated translation 2020-04-10 14:31:03 +02:00
943ba3bebd Fix / string bad argument number - lint 2020-04-10 13:14:12 +02:00
fccfd00949 Fix / design update 2020-04-10 12:12:21 +02:00
68323057aa Update change log 2020-04-10 12:12:21 +02:00
5081361c2d Update Scan confirm flow 2020-04-10 12:12:06 +02:00
3ba619d45c Merge pull request #1215 from vector-im/feature/ssss_and_backup
Fixes #1214
2020-04-10 12:10:42 +02:00
f5dc0b38ff Code review 2020-04-10 11:47:54 +02:00
8357abd455 Added prefix to resources to avoid accidental override 2020-04-10 11:18:41 +02:00
ede899d78e Fix / Bad smiley emojii 2020-04-10 11:09:16 +02:00
a703574004 Uniform emoji representation for all platform 2020-04-10 11:02:33 +02:00
ef2abbfbd4 Merge branch 'develop' into improvement-957-catchup-indicator-on-invite 2020-04-09 11:11:44 +02:00
7c0137e2dc Fix / await callback suspend forever 2020-04-09 10:46:52 +02:00
34dec64d9c Fixes #1214 2020-04-08 17:56:12 +02:00
3968bb3488 Merge pull request #1213 from vector-im/feature/timeline_sum_item
Feature/timeline sum item
2020-04-08 17:08:53 +02:00
6f2d7aebba code review 2020-04-08 16:37:52 +02:00
366a35913b Fix alignement 2020-04-08 16:31:01 +02:00
aec49fe542 Change log 2020-04-08 16:31:01 +02:00
f04d8b0e03 cleaning 2020-04-08 16:31:01 +02:00
08af61b778 rename layout 2020-04-08 16:31:01 +02:00
277f35a352 Merge room creation events in one summary 2020-04-08 16:31:01 +02:00
68512e475f WIP 2020-04-08 16:31:01 +02:00
0eff00ebee Merge pull request #1211 from vector-im/feature/fix_gossiping_to_early
Fix / Send gossip request on other done received
2020-04-08 16:30:17 +02:00
8a4a288074 Merge branch 'develop' into feature/target-sdk-29 2020-04-08 14:15:02 +03:00
5b1f887760 Code review fixes. 2020-04-08 14:10:31 +03:00
dcb6af6c45 .gitignore file added. 2020-04-08 12:40:29 +03:00
3ff5952417 Merge branch 'develop' into improvement-957-catchup-indicator-on-invite 2020-04-07 20:53:31 +02:00
b480eb3688 Update change log 2020-04-07 19:20:49 +02:00
12abca1b80 Fix / Send gossip request on other done received 2020-04-07 19:09:56 +02:00
1d8ed387bc Merge pull request #1206 from vector-im/feature/gossip_keybackup_key
Feature/gossip keybackup key
2020-04-07 18:06:05 +02:00
5521c094f7 fix typing difference 2020-04-07 17:50:01 +02:00
222b72a014 Merge branch 'develop' into improvement-957-catchup-indicator-on-invite 2020-04-07 17:46:23 +02:00
8904ca27f2 clean 2020-04-07 15:30:19 +02:00
6c5da97c16 code review 2020-04-07 15:25:31 +02:00
d4d73db5ae keybackup gossip test 2020-04-07 15:15:45 +02:00
1a436f962f update change log
cleaning
2020-04-07 15:15:45 +02:00
dc61ee61f5 Fix / wrong export format 2020-04-07 15:15:45 +02:00
5b4b5e7a57 Gossip keybackup key after verification! 2020-04-07 15:15:45 +02:00
0164f94047 Merge pull request #1198 from vector-im/feature/crosssigning_bootstrap
Feature/crosssigning bootstrap
2020-04-07 15:14:54 +02:00
153587bd82 Merge branch 'develop' into feature/crosssigning_bootstrap 2020-04-07 15:14:43 +02:00
326f2e99fb klint 2020-04-06 10:00:59 +02:00
1dfd6f232a Code quality / line too long 2020-04-03 18:59:21 +02:00
42d61944b5 Merge pull request #1204 from vector-im/feature/increase_file_log_size
Increase file logger size
2020-04-03 16:40:18 +02:00
50a8ffeca1 Merge pull request #1203 from vector-im/feature/fix_e2e_null_alg
Feature/fix e2e null alg
2020-04-03 15:57:56 +02:00
f605bb8270 Code review 2020-04-03 15:57:05 +02:00
7ffb6113a4 Increase file logger size 2020-04-03 13:53:34 +02:00
156e6114c1 Updade change log 2020-04-03 13:43:40 +02:00
c91bc82cd9 Fix / Ensure encryption set even if faield to fetch members 2020-04-03 13:35:09 +02:00
8b481e2294 Remove dead code 2020-04-03 13:34:38 +02:00
92bf3f1349 Update change log
+ code quality
2020-04-03 11:14:14 +02:00
6474735662 Fix / devtools was not showing all json numbers 2020-04-03 10:31:44 +02:00
45c5626267 Add generate key option 2020-04-02 18:30:43 +02:00
c27264761d Back /Skip navigation 2020-04-02 18:11:52 +02:00
c6abfa14ea Fix / Bind continue button 2020-04-02 16:54:30 +02:00
2f237cf17b klint 2020-04-02 16:51:40 +02:00
bf5ba99653 Full bootstrap flow initial commit 2020-04-02 16:51:03 +02:00
8ecdac7c31 Fixes #1191 2020-03-31 17:08:11 +02:00
a40dd31543 Bootstrap bottomsheet 2020-03-27 17:09:18 +01:00
dff89cb2e1 document changes
Signed-off-by: Christopher Rossbach <31703168+duncanturk@users.noreply.github.com>
2020-03-27 14:41:48 +01:00
cdbb657961 Fix #957 by incrementing the catchup count on home icon.
Signed-off-by: Christopher Rossbach <31703168+duncanturk@users.noreply.github.com>
2020-03-27 14:24:42 +01:00
443d45db6a Merge branch 'develop' into feature/target-sdk-29 2020-03-27 12:21:39 +03:00
a995615f87 Fix / protect against crash during migration 2020-03-26 18:20:12 +01:00
024c62515c Merge pull request #1181 from vector-im/feature/update_shield_logic
Update shield logic for DM
2020-03-26 16:58:10 +01:00
75e66a6550 Merge branch 'develop' into feature/update_shield_logic 2020-03-26 16:58:01 +01:00
e2f7890bb8 Merge branch 'develop' into feature/target-sdk-29 2020-03-26 17:39:22 +03:00
0a77d5014e Fix nullability issues. 2020-03-26 17:19:29 +03:00
91464a071e Merge pull request #1180 from vector-im/feature/complete_security_design_update
Feature/complete security design update
2020-03-26 14:31:09 +01:00
5244612ef6 Update shield logic for DM 2020-03-26 14:26:34 +01:00
e51439ade0 updage change log 2020-03-26 14:10:19 +01:00
acd90657c7 Fix / prevent cancel when in conclusion fragment 2020-03-26 14:09:41 +01:00
e5482d48c0 Remove deprecated & unused ImageTools class. 2020-03-26 16:02:50 +03:00
5816a04a37 Use MediaStore instead of deprecated addCompletedDownload since Android Q. 2020-03-26 15:58:31 +03:00
4b7da9ae6b Replace deprecated getExternalStoragePublicDirectory with getExternalFilesDir. 2020-03-26 15:57:21 +03:00
f7cbc01023 Replace deprecated PreferenceManager with androidx version. 2020-03-26 15:56:33 +03:00
1de57bbf3b Fix / cancel copy when verifying other 2020-03-26 13:49:48 +01:00
42a8c561db Fix / Verification was not cancelled on back in ready state 2020-03-26 13:49:48 +01:00
5bef9aef6a Fix / add specific copy for other verif cancel confirm 2020-03-26 13:49:48 +01:00
f8c1ec985f re-prompt to verify on restart 2020-03-26 13:49:48 +01:00
12429d8091 Merge develop into the branch. 2020-03-26 14:39:50 +03:00
3bb5e127d6 Merge pull request #1155 from vector-im/feature/multipicker
Multiple attachment picker implementation
2020-03-26 14:30:02 +03:00
1d46b523b9 Merge pull request #1172 from vector-im/feature/ensure_olm_account_unicity
Feature/ensure olm account unicity
2020-03-26 12:11:09 +01:00
6721f337bd Merge branch 'develop' into feature/ensure_olm_account_unicity 2020-03-26 12:11:00 +01:00
535cdf0ef5 Merge pull request #1162 from vector-im/feature/xs_detect_new_session
Feature/xs detect new session
2020-03-26 12:06:18 +01:00
19990b27bb Code review 2020-03-26 10:52:02 +01:00
4b3c5d5135 update change log 2020-03-26 10:35:43 +01:00
b6fe80faf4 Fix / device key could be rotated
MXOlmDevice constructor access IMXStore before is open (dagger)
2020-03-26 10:35:43 +01:00
638970fa77 Merge pull request #1175 from vector-im/feature/fix_ssss_symetric_get_secret
Fixes #1174
2020-03-26 10:34:49 +01:00
c63f3edb06 Initial fixes to support targetSdk 29. 2020-03-26 12:06:50 +03:00
9a6fe1af4e Fixes #1174 2020-03-26 09:49:34 +01:00
a01482dca4 Use Timber log instead of printStackTrace. 2020-03-25 18:51:55 +03:00
5db1010e47 Catch exceptions if the file cannot be decoded. 2020-03-25 18:39:35 +03:00
6130a0a654 Remove unused toString(). 2020-03-25 18:34:04 +03:00
3c1e1090e7 Avoid UNCHECKED_CAST. 2020-03-25 18:20:34 +03:00
5cb47dae35 Return a failure message if the file cannot be opened. 2020-03-25 18:03:20 +03:00
f68e98b2c7 Do not resize video thumbnail. 2020-03-25 17:35:18 +03:00
420a55da76 klint 2020-03-25 13:53:06 +01:00
f9aed28732 grantUriPermission to handle incoming sharing. 2020-03-25 15:51:15 +03:00
e30c17eab7 Update Changes log 2020-03-24 18:09:54 +01:00
2c9a8865bf Cancel all on going to settings 2020-03-24 17:48:16 +01:00
bddd70afdb Fix / IllegalState after token invalidation 2020-03-24 17:48:01 +01:00
c4388348f7 Show cancelled screen instead of dismissing 2020-03-24 17:38:46 +01:00
ee7828a445 Code quality 2020-03-24 16:21:22 +01:00
37ac45c90a Fix / handling of back 2020-03-24 15:51:09 +01:00
63d3bf93f2 Fix / for now keep old toaster 2020-03-24 15:50:49 +01:00
2de8865730 Fix / Key Request recipients 2020-03-24 15:49:41 +01:00
fcffe1f3c3 Clear alert when device is verified 2020-03-24 15:21:03 +01:00
cfcec04029 code cleaning 2020-03-24 14:57:51 +01:00
b56a41bec7 Custom alert design 2020-03-24 14:56:57 +01:00
6bf89aeac9 Remove JPEG_ prefix from file name. 2020-03-24 12:37:37 +03:00
e583c03751 Add documentation. 2020-03-24 12:32:37 +03:00
d20b1cb64a Add documentation. 2020-03-24 12:15:14 +03:00
22642e71a3 cleaning 2020-03-24 10:06:36 +01:00
6e85b20b0e Update copy for riotX default device Name 2020-03-24 10:06:30 +01:00
fcd290410e Also cancel pending request on back 2020-03-24 10:06:15 +01:00
727d86236b ImageUtils created with helper functions. 2020-03-24 11:31:27 +03:00
2651f82337 Refactor duplicated code. 2020-03-24 11:03:41 +03:00
3b62402cfe Fix / ensure keys trust is updated before checking devices 2020-03-23 19:15:29 +01:00
6cc8d1b205 Fix / concurrent start broke QR verification 2020-03-23 18:43:52 +01:00
49e5fafb2d New sign in detection flow 2020-03-23 16:27:32 +01:00
e36367c040 Fix / sending secret encryption + refactoring 2020-03-23 16:27:17 +01:00
f7fd23b153 App integration to the new multipicker library. 2020-03-23 16:31:32 +03:00
4f70c40b1a Refactor + share secret window implementation 2020-03-23 11:13:33 +01:00
5b875e0571 CameraPicker & incoming share implementation. 2020-03-22 18:27:59 +03:00
6db0de321c Initial implementation of multipicker. 2020-03-20 12:12:59 +03:00
0c1f30208d Fix / Epoxy divider not showing 2020-03-19 11:23:15 +01:00
08cfe79625 Merge pull request #1153 from vector-im/feature/fix_841
Fixes #841
2020-03-18 14:50:56 +01:00
22a599633d Merge pull request #1152 from vector-im/feature/concurrent_start_verification
Verif / handle concurrent start
2020-03-18 14:50:33 +01:00
14acbb2b4d Update changes 2020-03-18 12:06:37 +01:00
6f5bebedf8 Fixes #841 2020-03-18 11:53:38 +01:00
6fe77eba72 code review 2020-03-18 11:25:49 +01:00
286a5081ff Verif / handle concurrent start
Fixes #794
2020-03-18 10:07:57 +01:00
56c241c9bd Merge pull request #1140 from vector-im/feature/gossiping_work
Feature/gossiping work
2020-03-17 15:48:11 +01:00
68151d838f Update changes 2020-03-17 15:10:27 +01:00
572b174cfe code quality 2020-03-17 14:42:55 +01:00
b71d8185a2 Fix / gossiping sent to soon results in not getting keys
Overall improovment of logs
2020-03-17 14:40:05 +01:00
8051d9e3be cleaning 2020-03-17 14:40:05 +01:00
1bf8fef292 Fix realm migration 2020-03-17 14:40:05 +01:00
b8a9397e73 hide reRequest behind developer mode 2020-03-17 14:40:05 +01:00
009d691d5b post merge fix 2020-03-17 14:40:05 +01:00
6933159245 Remove refresh menu 2020-03-17 14:40:05 +01:00
75549c41e0 View source in audit + clean 2020-03-17 14:40:05 +01:00
5e2f888eaf Request secret from mobile to web 2020-03-17 14:40:05 +01:00
d3d6d44665 Post rebase fix 2020-03-17 14:40:05 +01:00
fc6225a7ac Gossiping refactoring 2020-03-17 14:40:05 +01:00
3639007985 Cancel transaction if failed to decrypt other part events 2020-03-17 14:40:05 +01:00
d5137897c1 Fix / crash No JsonAdapter for GossipingToDeviceObject 2020-03-17 14:40:05 +01:00
b67735c31a Incoming Secret Share request support
crypto DB migration
2020-03-17 14:40:05 +01:00
8ff31ac49d cleaning klint 2020-03-17 14:40:05 +01:00
5e0235e48d Add option to recover from backup + hide if not applicable 2020-03-17 14:40:05 +01:00
9e63a3219c Add Re-Request keys for fail to decrypt 2020-03-17 14:40:05 +01:00
757e90986e Key Req Dev tool initial commit 2020-03-17 14:40:05 +01:00
06fc5c2dd9 Log tunning 2020-03-17 14:40:05 +01:00
20dbe2dd0d version ++ 2020-03-17 14:18:08 +01:00
367f793929 Merge branch 'release/0.18.1' 2020-03-17 11:46:55 +01:00
6f56c74e9d Merge branch 'release/0.18.1' into develop 2020-03-17 11:46:55 +01:00
78d90c8f04 prepare release 0.18.1 2020-03-17 11:46:42 +01:00
75fa2904d3 Merge pull request #1149 from vector-im/feature/quick_fix_backup_update_banner
QuickFix / key banner not clickable
2020-03-17 11:12:43 +01:00
a9ed55e6a2 Fixes #757 2020-03-17 10:50:34 +01:00
b37600f536 QuickFix / key banner not clickable 2020-03-17 10:43:48 +01:00
ef2783e9f4 Merge pull request #1142 from vector-im/feature/fix_upload_error
Fix / correctly update local echo failed state
2020-03-17 09:48:43 +01:00
8827b4b5ef Fix / correctly update local echo failed state
+ endure Workmanager queues are reset after a clear cache
2020-03-17 09:47:27 +01:00
7664b716b3 Merge pull request #1146 from vector-im/feature/workaround_crash_select_gif_keyboard
WorkAround / crash android 10 gif from keyboard
2020-03-17 09:20:49 +01:00
a2367ef14f added network proxy configuration 2020-03-16 21:12:15 +01:00
067a22883c WorkAround / crash android 10 gif from keyboard
fixes #1136
2020-03-16 16:01:55 +01:00
eb74523905 Fix / typo 2020-03-16 15:30:41 +01:00
18d82b1bea Merge pull request #1138 from vector-im/feature/join_command
Implementation of /join command (#12)
2020-03-16 10:15:25 +01:00
687884431e Refresh the whole notifs when cleaning one so the summary get updated
Fix summary notification staying after "mark as read"
2020-03-13 23:42:28 +01:00
3c9c2e61d7 missing change log entry 2020-03-13 17:19:00 +01:00
e3246a1f2c Rename JoinedToAnotherRoom to JoinRoomCommandSucces. 2020-03-13 18:41:04 +03:00
642651a069 Merge pull request #1133 from vector-im/feature/quick_fix_redecrypt_remote_echo
Fix Message transitions in encrypted rooms
2020-03-13 12:18:59 +01:00
85a987ca8d Fix typo. 2020-03-13 14:02:42 +03:00
5cb7e455b1 Implementation of /join command. 2020-03-13 14:00:46 +03:00
7c1428e097 preserver relations as non encrypted 2020-03-12 10:05:55 +01:00
32fd4c1be9 save decryption result at encryption 2020-03-11 19:39:40 +01:00
f53fc205e1 Fix Message transitions in encrypted rooms
Fixes #518
2020-03-11 18:07:18 +01:00
54eca7525e Version ++ 2020-03-11 16:24:49 +01:00
dec591517c Merge branch 'release/0.18.0' 2020-03-11 13:41:49 +01:00
005a11b765 Merge branch 'release/0.18.0' into develop 2020-03-11 13:41:48 +01:00
d5cbcdd4e7 prepare release 0.18.0 2020-03-11 13:41:17 +01:00
fe1af4e34f Merge pull request #1131 from vector-im/feature/fix_qr_self_verification
Fix / Self verification mode 1 was not working
2020-03-11 13:19:16 +01:00
49f2064439 Fix / Self verification mode 1 was not working 2020-03-11 11:43:23 +01:00
ff5b284b2e Try to remove rule that is breaking CI 2020-03-11 11:19:22 +01:00
d9085b1231 Merge pull request #1128 from vector-im/feature/remove_runblocking_crypto
Remove dangerous runBlocking (and un-needed)
2020-03-11 10:42:48 +01:00
a9074cdbbb Remove dangerous runBlocking (and un-nedded) 2020-03-10 17:25:04 +01:00
09946ecf1b Merge pull request #1117 from vector-im/feature/pusher_fix
Pusher fix
2020-03-10 11:34:11 +01:00
d21a536542 Merge pull request #1115 from vector-im/feature/work_manager_script
Add script to dumpsys work manager data
2020-03-06 17:31:19 +01:00
937d497a1f Revert the check box in case of error 2020-03-06 17:24:57 +01:00
4261b0e78a Fix pusher issue. It was set by mistake when the notification for this device was disabled 2020-03-06 17:19:48 +01:00
71446a1a74 Remove useless check 2020-03-06 17:11:23 +01:00
a29ec7b0be Pusher: add a menu to force a refresh of the local data 2020-03-06 16:48:48 +01:00
13036a5933 Pusher: update javadoc 2020-03-06 16:37:13 +01:00
a8e19f3cc9 Understanding things 2020-03-06 15:57:49 +01:00
cb4752812a Hide private key 2020-03-06 15:53:55 +01:00
ccd9d2961d Cleanup 2020-03-06 15:45:39 +01:00
d1db17f244 Add doc on workers 2020-03-06 15:45:26 +01:00
aa4327c4da Add doc and log error from the workers 2020-03-06 15:44:55 +01:00
35179509f2 Merge pull request #1111 from vector-im/feature/verification_code
Feature/verification code
2020-03-06 15:02:57 +01:00
5008524635 Add script to dumpsys work manager data 2020-03-06 14:52:09 +01:00
147766176c Merge pull request #1090 from vector-im/feature/notif
Restore the push rule settings
2020-03-06 14:43:33 +01:00
23862cb3d0 Merge branch 'develop' into feature/notif 2020-03-06 14:43:23 +01:00
2b8e2a312b Avoid use toImmutableList() 2020-03-06 14:39:33 +01:00
62fdb4c27a Use getOrPut() 2020-03-06 14:37:30 +01:00
b929a2f185 Merge pull request #1099 from vector-im/feature/fix_share_image
Share images from clear and encrypted rooms.
2020-03-06 14:27:47 +01:00
fb858bc112 Rename to respect naming convention #3 2020-03-06 14:04:02 +01:00
5d0e917f04 Rename to respect naming convention #2 2020-03-06 13:50:00 +01:00
e420070066 Rename to respect naming convention 2020-03-06 13:40:35 +01:00
4504308f25 Less "!!" 2020-03-06 13:34:12 +01:00
05683967c0 Code review fixes. 2020-03-06 12:07:38 +01:00
23c20acff1 Remove TODO 2020-03-06 10:11:30 +01:00
be5e6eaa93 Rename parameter type for code clarity 2020-03-06 10:10:16 +01:00
555863fecc Merge pull request #1112 from vector-im/feature/navigate_to_profile_from_avatar
Open room member profile from avatar of the room member state event.
2020-03-06 09:42:32 +01:00
b187699a86 Open room member profile from avatar of the room member state event. 2020-03-05 18:44:34 +01:00
d891da39e6 Merge pull request #1104 from vector-im/feature/buildkite
Pipeline file for Buildkite is now hosted on another Github repository
2020-03-05 18:20:17 +01:00
f37cd8cddc Merge pull request #1110 from vector-im/feature/cleanup
Cleanup
2020-03-05 18:18:49 +01:00
2d456d93a7 Common code step 2 2020-03-05 18:16:05 +01:00
de36a28541 Common code step 1 2020-03-05 18:00:35 +01:00
4634b963a2 Code cleanup 2020-03-05 17:55:13 +01:00
b3f887ca28 Code quality 2020-03-05 17:30:34 +01:00
3425dd0a63 Make the tests compile and pass 2020-03-05 17:28:35 +01:00
2a774833ec More optimization 2020-03-05 17:11:52 +01:00
bda4bbb59c More optimization 2020-03-05 16:45:49 +01:00
0828f9270e Create asValidObject method - make it works 2020-03-05 16:23:56 +01:00
e326631752 Create asValidObject method - make it compiles #2 2020-03-05 15:39:01 +01:00
a3f8a53a52 Create asValidObject method - make it compiles. 2020-03-05 15:29:44 +01:00
7b5a50ec6e Create asValidObject method - not compiling 2020-03-05 12:06:19 +01:00
36c52d24a7 Move method to interface step 3 2020-03-05 11:24:35 +01:00
1b29c7bf91 Move method to interface step 2 2020-03-05 11:22:42 +01:00
b6aee04e24 Move method to interface step 1 2020-03-05 11:21:44 +01:00
a264dcf5c4 Lint: fix TextFields 2020-03-05 11:09:58 +01:00
37afc983c3 Fix typos. The typos has been fixed on Weblate by me. 2020-03-05 11:02:14 +01:00
b10e9c54b4 Add BinaryOperationInTimber lint rule and fix existing errors 2020-03-05 10:40:36 +01:00
03d2cd0639 Lint fix. 2020-03-04 17:57:57 +01:00
b7ad50a3ce Make mimeType private to encourage using getSafeMimeType() method. 2020-03-04 16:52:52 +01:00
9cbaadedfb Unused context parameter is removed. 2020-03-04 16:52:08 +01:00
d6cdcc60d1 Remove unused png files 2020-03-04 16:48:13 +01:00
1680cd8d8e Merge branch 'develop' into feature/fix_share_image 2020-03-04 16:27:01 +01:00
d4384328fe Use "image/jpeg" instead of "image/jpg" 2020-03-04 16:26:09 +01:00
5fd8425289 Remove unused files 2020-03-04 16:09:37 +01:00
dcb618c257 Merge pull request #1103 from vector-im/feature/space_in_passwords
Detect spaces in password if user fails to login (#1038)
2020-03-04 14:12:20 +01:00
277ad9e042 Merge branch 'develop' into feature/space_in_passwords 2020-03-04 14:12:12 +01:00
26d387cc12 Support sharing other media types. 2020-03-04 13:47:48 +01:00
4aebe6d303 Disable TravisCI checks, now done by Buildkite 2020-03-04 12:23:25 +01:00
7eccda6e25 Pipeline file for Buildkite is now hosted on another Github repository
https://github.com/matrix-org/pipelines/blob/master/riotx-android/pipeline.yml
2020-03-04 12:20:09 +01:00
78bc2bbaa5 AndroidStudio cleanup 2020-03-04 12:15:33 +01:00
cde068f267 Merge pull request #1079 from vector-im/feature/ftue
FTUE: do not display a different color when encrypting message when not in developer mode.
2020-03-04 12:14:24 +01:00
c8f43e73e2 Merge branch 'develop' into feature/ftue 2020-03-04 12:14:07 +01:00
f106f92d7e Merge pull request #1085 from vector-im/feature/ktlint_upgrade
ktlint 0.36.0, Chromebook support, Camera for QR code scanning
2020-03-04 12:11:19 +01:00
fa0e07e146 Merge branch 'develop' into feature/ktlint_upgrade 2020-03-04 12:10:56 +01:00
d6df0e451c Detect spaces in password if user fail to login (#1038) 2020-03-04 10:39:10 +01:00
0121eee5b8 changelog 2020-03-04 09:37:32 +01:00
30e46445ca Add documentation to install environment and run integration tests (#1098)
Add documentation to install environment and run integration tests
2020-03-04 09:35:09 +01:00
7158554ee2 Add fallback logic only if the mode is thumbnail. 2020-03-03 16:56:22 +01:00
34c5537436 Fix fallback to full image. 2020-03-03 16:42:33 +01:00
d09ac8fbce Try to show full image as the fallback of the thumbnail. 2020-03-03 14:54:05 +01:00
319667096f Return Try.Failure instead of throwing exception. 2020-03-03 13:41:40 +01:00
c4f2eeeab7 Changelog added. 2020-03-03 10:40:58 +01:00
5f14516dec Share images from clear and encrypted rooms. 2020-03-03 10:39:24 +01:00
5ff670b184 Merge pull request #1093 from vector-im/feature/plain_text
Add support for `/plain` command (#12)
2020-03-02 19:37:05 +01:00
b7ff546f66 Add support for /plain command (#12) 2020-03-01 09:59:00 +01:00
c13b636bae Code cleanup 2020-02-29 10:05:48 +01:00
a05caf6f0e Update the 2 notification settings screens by moving some pref to the root notification screen 2020-02-29 09:49:21 +01:00
3462df405c Fix GPlay build issue 2020-02-29 09:42:35 +01:00
6009026e2f Notification settings: create a category for troubleshhot 2020-02-29 09:35:26 +01:00
06e0af9a5b small mistake 2020-02-28 22:12:30 +01:00
3987a68a9a Changelog 2020-02-28 22:10:07 +01:00
1228fcda0d Rename class 2020-02-28 19:25:29 +01:00
c20de4feb0 Cleanup 2020-02-28 19:13:22 +01:00
957b9eee23 Cleanup 2020-02-28 19:06:26 +01:00
e5eb36e917 Cleanup 2020-02-28 19:04:30 +01:00
551604cdcb Add missing push rules 2020-02-28 19:02:13 +01:00
8a2bafec5f Restore push rule settings - fix issues 2020-02-28 18:35:51 +01:00
3013e311a4 Restore push rule settings - WIP 2020-02-28 16:51:11 +01:00
1c35d07acc PushRuleService.getPushRules() now returns a RuleSet. Use getAllRules() on this object to get all the rules. 2020-02-28 16:29:58 +01:00
039924436f Json parsing 2020-02-28 14:51:35 +01:00
41b4f412c4 Merge pull request #1089 from vector-im/feature/crash_in_attachment_preview
Fix crash on attachment preview screen (#1088)
2020-02-28 14:49:36 +01:00
2abe29300b Merge pull request #1087 from vector-im/feature/verification_cleanup
Verification cleanup
2020-02-28 14:48:27 +01:00
779026b0af Fix / mark master key as trusted after self verif 2020-02-28 11:46:32 +01:00
151fec5ce0 Fix crash on attachment preview screen (#1088) 2020-02-28 11:38:30 +01:00
b1b8513da4 Create fromBase64Safe() to parse data received from external source 2020-02-27 19:17:14 +01:00
0a9008a73d Be robust if other client sends padded base64 in the reciprocate 2020-02-27 18:35:05 +01:00
1ead2778c2 ... and rename the method fromBase64NoPadding() to fromBase64() 2020-02-27 18:33:57 +01:00
8299487f6d Avoid using encoder flag to decode Base64 string... 2020-02-27 18:13:42 +01:00
ceab0903cf Improve code - TU passed 2020-02-27 18:09:37 +01:00
77dd911054 Code quality 2020-02-27 17:42:25 +01:00
a914381090 Verification with QrCode: ensure there is a Camera to scan QrCodes. 2020-02-27 17:03:48 +01:00
9f28738fd6 Restore availability to Chromebooks (#932) 2020-02-27 15:41:35 +01:00
36a848471f Enable other lint check (no change necessary in source) 2020-02-27 15:27:46 +01:00
12861aacda lint: check negative margin 2020-02-27 15:11:43 +01:00
d85776297d Lint: fix IconDuplicates by remove unused resources 2020-02-27 14:56:18 +01:00
50031bef50 Lint: fix IconDipSize and IconDuplicatesConfig error (by removing unused resource) 2020-02-27 14:45:26 +01:00
c0d6b9d130 Lint fix IconXmlAndPng error 2020-02-27 14:35:57 +01:00
a1466e299b Fix missing recycle call and ensure this mistake will not happen again 2020-02-27 14:30:49 +01:00
bc9493d5b9 Upgrade ktlint to version 0.36.0 2020-02-27 12:48:17 +01:00
9bb4c7ed25 Version++ 2020-02-27 12:34:33 +01:00
128f3493b7 Merge branch 'release/0.17.0' 2020-02-27 12:32:36 +01:00
65e5a04836 Merge branch 'release/0.17.0' into develop 2020-02-27 12:32:35 +01:00
495e4792b1 Prepare release 0.17.0 2020-02-27 12:32:03 +01:00
f906fc894b Sync Strings with Riot 2020-02-27 11:59:39 +01:00
6e060f63c6 Try to decode QrCode data in the debug Activity 2020-02-27 11:32:59 +01:00
9c7f5251b0 Merge pull request #1084 from vector-im/feature/room_key_share_crash
Fix crash after rework. RoomKeyShare is now an interface
2020-02-26 20:45:50 +01:00
a296234163 Fix crash after rework. RoomKeyShare is now an interface 2020-02-26 20:35:34 +01:00
a4d7b79e3c Merge pull request #1083 from vector-im/feature/last_fixies
Last fixes before release
2020-02-26 18:37:21 +01:00
3ac2296464 Disable freestyle crop, usability was not easy 2020-02-26 17:46:33 +01:00
b5a402c1e1 Fix crash when editing image 2020-02-26 17:45:39 +01:00
b8eeede5fd Safer code 2020-02-26 17:28:27 +01:00
d3e7e7e109 Make the small avatar also clickable and little change in the API to factorize code 2020-02-26 17:17:39 +01:00
a3af0be103 prevent wildcard for import 2020-02-26 17:01:38 +01:00
6349f9828d Optimize import 2020-02-26 16:59:20 +01:00
989d396c78 Rename package "sas" to "verification" 2020-02-26 16:52:16 +01:00
73ac7ab341 Compact code 2020-02-26 16:48:50 +01:00
a3133773a3 generic name for parameter 2020-02-26 16:45:12 +01:00
6e67d4749f Merge pull request #1082 from vector-im/feature/fix_rageshakes
Fix crashes reported by rageshakes
2020-02-26 16:10:47 +01:00
38c1ef3eb6 Fix lint issue 2020-02-26 16:08:34 +01:00
674450ef29 Merge pull request #1076 from vector-im/feature/fullscreen_avatar
Display avatar in fullscreen.
2020-02-26 16:06:13 +01:00
5e775298a7 Merge pull request #1081 from vector-im/feature/fix_redacted_event_format
Fix redacted event format on room overview.
2020-02-26 15:57:10 +01:00
93a687a172 Code review fixes. 2020-02-26 17:55:23 +03:00
4ba8a42977 Fix crash reported from rageshake 2020-02-26 15:32:52 +01:00
054d7668ef Fix crash reported from rageshake 2020-02-26 15:19:47 +01:00
a13fec84b0 Fix crash reported from rageshake 2020-02-26 15:00:25 +01:00
4bb3fb128f Fix crash reported from rageshake 2020-02-26 14:54:36 +01:00
04726a1ace Fix redacted event format on room overview.
Fixes #758
2020-02-26 16:51:01 +03:00
ccf72ffaa7 Fix crash reported from rageshake 2020-02-26 14:50:01 +01:00
d2efe0e10c Merge branch 'develop' into feature/fullscreen_avatar 2020-02-26 16:23:02 +03:00
054b467caf Fix crash reported from rageshake 2020-02-26 14:18:48 +01:00
4280bc0780 Fix crash reported from rageshake 2020-02-26 14:10:51 +01:00
e1ea742023 Fix crash reported from rageshake 2020-02-26 13:59:58 +01:00
b7cf7e06a7 Merge pull request #1015 from vector-im/feature/new_signin_passphrase
Feature/new signin passphrase
2020-02-26 13:56:31 +01:00
536dce7929 Code review fixes. 2020-02-26 15:30:03 +03:00
56fc91a8c3 Code review fixes. 2020-02-26 15:26:53 +03:00
6622e0daca Code quality 2020-02-26 12:43:41 +01:00
f35b0660ca Rename constant for code readability 2020-02-26 12:37:36 +01:00
9d1718cda8 post merge clean 2020-02-26 12:20:03 +01:00
f7c128be3d Fix tests 2020-02-26 12:20:03 +01:00
c80fb52410 dead code 2020-02-26 12:20:03 +01:00
32389e1291 Remove wizard stuff 2020-02-26 12:20:03 +01:00
99f9a9817e Use human readable error (not technical) 2020-02-26 12:20:03 +01:00
b4a783198b code review 2020-02-26 12:20:03 +01:00
0cfc9451ca Cleaning 2020-02-26 12:20:03 +01:00
4b75baf772 Fix / trust was not properly updated after 4S restore 2020-02-26 12:20:03 +01:00
c579de1033 Fix / Test crash when crypto DB closed
Quick Work around
2020-02-26 12:20:03 +01:00
d537abc522 Fix / sign current device after entering xsigning passphrase 2020-02-26 12:20:03 +01:00
030f027516 Fixes #1051
XSigning | Self verification Empty bottomsheet
2020-02-26 12:20:03 +01:00
cbd7c1aa63 Fix / Bad ordering of active sessions 2020-02-26 12:20:03 +01:00
bdb1df75d4 Check trust on crypto thread 2020-02-26 12:20:03 +01:00
817dc19b9a Cleaning 2020-02-26 12:20:03 +01:00
f9be4fa2bd Fixes #1047 2020-02-26 12:20:03 +01:00
412aed6dcb Fix / Update title before return 2020-02-26 12:20:03 +01:00
9fc44c11de Fixes #937
Disabling bounds change animation, as it's messing with fragment change apparition and expanded state of bottomsheet
2020-02-26 12:20:03 +01:00
bf23094158 Fix / Green shield in conclusion title when verified from private keys 2020-02-26 12:20:03 +01:00
94d36e0c85 cleaning jni 2020-02-26 12:20:03 +01:00
0064934db9 Changed Encryption algorithm of 4S 2020-02-26 12:20:03 +01:00
e2e4ddf5ba Post rebase fix 2020-02-26 12:20:03 +01:00
9a08f5ec4e WIP / Verify from passphrase UX 2020-02-26 12:19:31 +01:00
cb669ad881 4S Activity WIP 2020-02-26 12:15:59 +01:00
3dc89c8d87 Update Self Verification BottomSheet for quads 2020-02-26 12:15:59 +01:00
cb73955946 Merge pull request #1050 from vector-im/feature/fix_some_perf
Feature/fix some perf
2020-02-26 12:02:36 +01:00
bfe15555a1 Update changes 2020-02-26 11:51:05 +01:00
bddeb6cb72 Clean files 2020-02-26 11:50:41 +01:00
d57f6838e9 Remove decryption from room summary mapper and make TimelineEventDecryptor scoped to session 2020-02-26 11:50:41 +01:00
cf8ffa3a7a Force trust task on crypto dispatcher to use cached realm from crypto store 2020-02-26 11:49:08 +01:00
a69049645a FTUE: do not display a different color when encrypting message when not in developer mode. 2020-02-26 11:25:37 +01:00
40b4db4a64 Merge pull request #1060 from vector-im/feature/data_class_cleanup
Data class cleanup
2020-02-26 10:57:10 +01:00
246b39786c Merge pull request #1073 from vector-im/feature/improve_api
Improve api of CreateRoomParams
2020-02-26 10:55:48 +01:00
1a273407de Display avatar in fullscreen. 2020-02-26 12:12:49 +03:00
633f9d8522 ktlint 2020-02-26 09:55:57 +01:00
076ac23b38 Modification done by AndroidStudio 3.6 2020-02-26 07:59:54 +01:00
67180fd8db New direct chat: selecting several participants was not adding the room to the direct chats list 2020-02-26 07:38:10 +01:00
fc95bf4926 Improve CreateRoomParams API: update some API for better chaining of builder like methods (#1070) 2020-02-26 07:32:22 +01:00
e73f138151 Improve CreateRoomParams API: update Javadoc and ensure the return values will not be discarded (#1070) 2020-02-26 07:17:25 +01:00
30432cd3f4 Merge pull request #1069 from vector-im/feature/fix_dm
Fix dm chips
2020-02-25 19:28:46 +01:00
1072060cbb New direct chat: selecting a participant sometimes results in two breadcrumbs (#1022) 2020-02-25 19:00:38 +01:00
a55e0f1af4 Fix crash - workaround 2020-02-25 18:17:40 +01:00
b95dfa4473 Create getBestName method for User 2020-02-25 18:14:02 +01:00
ec0cba2b23 Merge pull request #1067 from vector-im/feature/roomId
Display internal id of a room section in room profile
2020-02-25 12:22:14 +01:00
cfe9c4bb41 Display internal id of a room section in room profile, with copy to clipboard action, only in developer mode 2020-02-25 12:21:04 +01:00
68400cce03 Merge pull request #1049 from vector-im/feature/fix_invites
Feature/fix invites
2020-02-25 11:39:35 +01:00
17e028178e Code robustness (avoid using !!) 2020-02-25 11:20:11 +01:00
19b9617a09 Invite: fix inviterId being overrided 2020-02-25 10:53:47 +01:00
08e4b4473c Disable manual rules now checked by ktlint 2020-02-25 09:57:12 +01:00
b9b921a4df Code quality 2020-02-25 09:53:17 +01:00
483256093a Invite: fix room member not saved 2020-02-24 18:27:18 +01:00
d710a59554 Update change log 2020-02-24 17:44:51 +01:00
1023982858 Code readability 2020-02-24 17:40:28 +01:00
9c566b19f7 Ensure all eventId start with $, even ids for local echo 2020-02-24 17:35:43 +01:00
b694721728 Update CHANGES 2020-02-24 17:33:40 +01:00
8b0305c91d Clean code 2020-02-24 17:33:40 +01:00
133d8d7f14 RoomList: fix joining/rejecting state 2020-02-24 17:33:40 +01:00
9cdb1da614 Start fixing notif for invites 2020-02-24 17:33:40 +01:00
981c9ac4ac Invite sync: assign eventId and remove the primaryKey constraint 2020-02-24 17:33:40 +01:00
3e8a0f7252 Merge pull request #1044 from vector-im/feature/fix_big_image_rotation
Use exif info of the image for correct rotation.
2020-02-24 17:30:33 +01:00
281620b88d Merge pull request #1048 from vector-im/feature/profile_share_actions
Share action is added to room profile and room member profile
2020-02-24 17:29:17 +01:00
c6b3b1e648 Fix bug on test 2020-02-24 17:27:04 +01:00
96af1957f9 Fix bug on progress step, found by integration test testBackupWithPassword() 2020-02-24 16:27:58 +01:00
b680e24938 Fix some tests 2020-02-24 16:16:37 +01:00
dec62a893e Code review fixes. 2020-02-24 18:06:59 +03:00
b3d4747d97 Code review fixes. 2020-02-24 17:35:57 +03:00
1124aa25fd Code review fixes. 2020-02-24 17:22:07 +03:00
b3c8b5526d Each session now have it's proper crypto store 2020-02-24 15:03:12 +01:00
1e44e77503 Make code robust to int received instead of boolean
https://github.com/matrix-org/synapse/issues/6977
2020-02-24 14:42:47 +01:00
964b611f4e Merge pull request #1053 from vector-im/feature/fix_712
Fixes #712
2020-02-24 14:07:35 +01:00
3e587af163 klint 2020-02-24 14:07:15 +01:00
b03b6bfc37 Fix crash discovered thanks to integration tests 2020-02-24 12:53:18 +01:00
1a6d4d0b03 Try to fix XSigningTest 2020-02-21 19:20:40 +01:00
c41661ece8 Fixes #712 2020-02-21 19:05:20 +01:00
1b763fb4c8 Cleanup XSigningTest 2020-02-21 18:52:36 +01:00
9ef267cb07 Cleanup after each test 2020-02-21 18:36:13 +01:00
d167ff9496 Make KeysBackup test pass (still work to do) 2020-02-21 17:58:04 +01:00
ccfa59ad31 Cleanup var -> val 2020-02-21 15:05:48 +01:00
f650e29ddd Share action is added to room profile and room member profile
Fixes #858
2020-02-21 15:30:01 +03:00
1eefda18e4 Merge branch 'develop' into feature/fix_big_image_rotation 2020-02-21 13:13:02 +03:00
d6434654e2 Merge pull request #1043 from vector-im/feature/join_federation
Fix join room over federation
2020-02-21 10:08:05 +01:00
b6372df676 Merge pull request #1037 from vector-im/feature/crosssigning_qr
Migrate to binary QR code verification (#994)
2020-02-21 10:01:49 +01:00
d7de072155 typo 2020-02-21 09:58:56 +01:00
a11d70f173 Use exif info of the image for correct rotation. 2020-02-21 00:51:22 +03:00
a9909b37ba Update after Valere's review 2020-02-20 19:54:35 +01:00
3f9a5a4e54 Leaving a room creates a stuck "leaving room" loading screen. (#1041) 2020-02-20 19:31:33 +01:00
198e23c204 Second fix for #808 2020-02-20 19:23:32 +01:00
aefffc0c05 RoomPreviewNoPreviewFragment use room alias if there is no name 2020-02-20 19:19:31 +01:00
fd05fe36f5 Fix joining rooms from directory via federation isn't working. (#808) 2020-02-20 19:01:36 +01:00
b72698d63c Fix another issue when there is no name and no canonical alias on a public room 2020-02-20 18:47:07 +01:00
eec65fb622 Join room by roomId or room alias 2020-02-20 18:17:57 +01:00
87021dd6ec Rename field 2020-02-20 18:16:10 +01:00
b85c76b172 Simplify code 2020-02-20 18:05:53 +01:00
d867b1345f Format 2020-02-20 15:15:38 +01:00
80ef2192b9 Merge pull request #1036 from vector-im/feature/fix_key_restoring
Fix threading issues while restoring keys backup.
2020-02-20 15:13:13 +01:00
7d232527c8 Documentation of the API change is added. 2020-02-20 16:39:48 +03:00
e61d563589 Split long lines 2020-02-20 10:16:09 +01:00
74175ddfa0 Add a test and create extension for Byte to avoid using UByte (still experimental) 2020-02-20 10:12:07 +01:00
382fc6f05c Fix issue with long transactionId 2020-02-19 18:59:39 +01:00
932c478ed5 Change log 2020-02-19 18:11:23 +01:00
e81439d57b Remove v2 suffix 2020-02-19 18:09:33 +01:00
f81eb298cb Cleanup QRCode v1 2020-02-19 18:06:51 +01:00
859b9e4f8e Migrate to QrCode v2 - TODO: cleanup 2020-02-19 17:50:30 +01:00
e00d3ef63d QrCodeV2 WIP (al tests passing) 2020-02-19 17:34:07 +01:00
a97971dd84 Fix threading issues while restoring keys backup. 2020-02-19 18:30:12 +03:00
35b10daef1 Ensure RiotX is able to scan binary QrCodes 2020-02-19 14:26:45 +01:00
66a2958c39 Add unit test to check byte array to string conversion 2020-02-19 14:21:41 +01:00
571db7da55 Merge pull request #1035 from vector-im/feature/share_text
Fix share text to a single room issue
2020-02-19 10:08:29 +01:00
c6b231c0b1 Create toState() fun and use the enum 2020-02-18 14:12:50 +01:00
53410789c0 Cleanup 2020-02-18 14:12:50 +01:00
f8276e48e3 add kluent for test 2020-02-18 14:09:42 +01:00
86c38ebd2d Create Set.toggle() method 2020-02-18 13:33:49 +01:00
d730f96c41 Do not show alert when sharing text to a single room 2020-02-18 12:24:27 +01:00
7b3fcb7798 When sharing to a room save a draft to pre-fill the composer 2020-02-18 12:11:51 +01:00
26e8a60312 Merge pull request #1032 from vector-im/feature/crash
Fix crash in the room directory, when public room has no name (#1023)
2020-02-18 11:48:29 +01:00
7133d513b4 Fix crash in the room directory, when public room has no name (#1023) 2020-02-18 10:45:14 +01:00
8d1b2b35fd Merge pull request #1010 from vector-im/feature/attachment_process
Attachment process
2020-02-18 09:19:17 +01:00
b811bf9e7f Fix issue after merge 2020-02-17 23:21:08 +01:00
ebda12dd76 Merge branch 'develop' into feature/attachment_process 2020-02-17 19:22:50 +01:00
adc545a93d Merge pull request #1026 from vector-im/feature/crypto_service_renaming
Feature/crypto service renaming
2020-02-17 19:21:02 +01:00
fc740ae347 Merge pull request #1016 from vector-im/feature/cleanup_quadS
Cleanup quad s and AccountData service
2020-02-17 18:52:23 +01:00
67ed86fee5 Rename KeysBackup to DefaultKeysBackupService 2020-02-17 18:51:06 +01:00
f716e9d789 Fix compilation issue 2020-02-17 18:49:45 +01:00
141c7d6af0 Update comment 2020-02-17 18:43:04 +01:00
7495533edc Use let 2020-02-17 18:16:37 +01:00
f2f94c4a93 Reduce code duplication 2020-02-17 17:56:11 +01:00
4995c14f69 Add log 2020-02-17 17:46:15 +01:00
002e881704 Fix multiple share intent issue 2020-02-17 17:26:19 +01:00
51bbee297c Remove useless confirmation when shared data are previewables 2020-02-17 17:06:15 +01:00
82bd8a2e2a Ask for write permission before editing media 2020-02-17 16:29:10 +01:00
d67cd2cbef Small iteration on UI 2020-02-17 16:21:10 +01:00
6d2025b61a Update CHANGES 2020-02-17 15:54:17 +01:00
91cbcebf73 Make test compile 2020-02-17 15:50:42 +01:00
fd0dceb597 Clean code 2020-02-17 15:23:24 +01:00
48a033b3bd Fix navigation issue when sharing text to multiple rooms 2020-02-17 14:58:20 +01:00
a3b205b310 No preview for elements sent from the keyboard 2020-02-17 14:48:12 +01:00
ca0cd9e97d Better code 2020-02-17 14:38:56 +01:00
31d5578063 Media preview: do not propose to edit Gif 2020-02-17 14:35:57 +01:00
b6f5e27155 Fix issue after merge of develop 2020-02-17 13:50:36 +01:00
13d3aa9ff1 Merge branch 'develop' into feature/attachment_process 2020-02-17 13:48:21 +01:00
629ecf786a Merge pull request #1024 from vector-im/feature/wording
Account creation: wrongly hints that an email can be used to create an account (#941)
2020-02-17 13:34:04 +01:00
ecf07ff64a Account creation: wrongly hints that an email can be used to create an account (#941) 2020-02-17 10:30:54 +01:00
e349a35419 Crypto: expose cryptoService by a getter, removing the session implementation delegation 2020-02-16 15:40:31 +01:00
a61f508b5d Fix a nice bug 2020-02-14 22:00:36 +01:00
76085a4284 AccountData cleanup and Javadoc 2020-02-14 21:50:37 +01:00
446d826dd3 Create tag interface AccountDataContent 2020-02-14 20:53:45 +01:00
2d6f57e214 More cleanup/code lisibility 2020-02-14 20:50:21 +01:00
a305ce302e Coroutine sequencer: use semaphore 2020-02-14 19:37:51 +01:00
7ddea99fc6 Move and improve withOlmDecryption() and withOlmEncryption() 2020-02-14 18:51:27 +01:00
4c3b754de4 Use const from DefaultSharedSecretStorageService 2020-02-14 18:33:15 +01:00
7878da25b8 Use doSync<>() to reduce boilerplate and add test checks
and more cleanup
2020-02-14 18:18:20 +01:00
01597a89dc Avoid code duplication 2020-02-14 17:53:27 +01:00
b04ee7153a Merge pull request #995 from vector-im/feature/4s_msc1946
Feature/4s msc1946
2020-02-14 17:49:16 +01:00
db19ab0531 Merge branch 'develop' into feature/4s_msc1946 2020-02-14 17:45:44 +01:00
cad818c341 ktlint 2020-02-14 17:05:14 +01:00
1660a0f846 Version++ 2020-02-14 15:16:00 +01:00
56677f0908 Merge branch 'release/0.16.0' 2020-02-14 15:14:55 +01:00
4987a75039 Merge branch 'release/0.16.0' into develop 2020-02-14 15:14:54 +01:00
e20d1724c9 Prepare release 0.16.0 2020-02-14 15:14:48 +01:00
f6f9c349ec Add entry in changelog for the 2 mistakes 2020-02-14 14:52:10 +01:00
88b8ceaeb5 Merge pull request #1005 from vector-im/feature/fix_event_redaction_prompt
Do not ask for a reason if user wants to delete his own message.
2020-02-14 14:36:01 +01:00
e4577d8fef Small cleanup before merge 2020-02-14 14:34:22 +01:00
030d6824e3 Code review fixes. 2020-02-14 15:04:25 +03:00
ab437e249d Update emoji for API change 2020-02-14 12:43:27 +01:00
35835be03e klint 2020-02-14 12:06:07 +01:00
f99eca8014 Code review 2020-02-14 10:48:18 +01:00
e0eede1150 cleaning 2020-02-14 10:48:18 +01:00
64647cb465 Fix / Save account data after update (local echo) 2020-02-14 10:48:18 +01:00
def01cca8f Fix test + changes 2020-02-14 10:48:18 +01:00
61ea4191dc Update json viewer lib 2020-02-14 10:48:18 +01:00
108ebea84e SSSS service + test 2020-02-14 10:48:18 +01:00
bf06b57bad Refactor Account Data
Auto stash before rebase of "develop"
2020-02-14 10:48:18 +01:00
a250a895fe Remove redudant calls to eventBus post 2020-02-14 10:47:34 +01:00
2c2bf61727 Update Changelog 2020-02-14 09:40:07 +01:00
6c0bddc893 Code quality 2020-02-13 23:20:35 +01:00
930d62c87b Restore Breadcrumbs comparator, we can maybe improve this later 2020-02-13 23:00:03 +01:00
b66b96899e Better Kotlin code 2020-02-13 22:56:11 +01:00
e6bd09859f Compress image before sending 2020-02-13 22:50:55 +01:00
385fa317c0 Add a green frame around current small preview 2020-02-13 20:45:03 +01:00
ecd547b86c Auto close the room picker and open the first room when data are shared in case of multi selection 2020-02-13 20:10:59 +01:00
d87b951403 Improve code 2020-02-13 20:10:59 +01:00
06ba478232 Send files to several rooms at a time 2020-02-13 20:10:59 +01:00
81de914360 Propose to edit media before sending, when coming form another application 2020-02-13 20:10:59 +01:00
b7ec495d6b Add comment 2020-02-13 19:52:11 +01:00
a8953568f3 Set custom colors 2020-02-13 19:52:11 +01:00
41b20863fb Mention uCrop library copyright 2020-02-13 19:52:11 +01:00
94340a49d7 Ask for permission 2020-02-13 19:52:11 +01:00
c67fd508e7 Cleanup 2020-02-13 19:52:11 +01:00
eccc52fe13 Sharing: start extracting from RoomList as it's getting messy 2020-02-13 19:52:11 +01:00
b7a7aa2f15 Attachment: continue working on preview screen 2020-02-13 19:52:11 +01:00
6471787232 Share: start managing multi selection and warning 2020-02-13 19:52:11 +01:00
41f1ec5d88 Attachments: preview with pager mode 2020-02-13 19:51:20 +01:00
a26e959430 Attachements: introduce structure for preview, cropping and compressing 2020-02-13 19:51:20 +01:00
5808c1de22 TextView displaying emoji should have text color set to black 2020-02-13 19:50:31 +01:00
d21604b791 Merge pull request #989 from vector-im/feature/qr_code_mistake
Fix issue with verification when other client declares it can only show QR code (#988)
2020-02-13 19:41:10 +01:00
fd135e1eeb Compute message body for encrypted messages too. 2020-02-13 18:09:26 +03:00
f28e4cf991 Fix comparison of user ids. 2020-02-13 17:57:38 +03:00
1941862499 Fix / Remove debug code line 2020-02-13 15:50:08 +01:00
983593d647 getRedactionReason function is refactored. 2020-02-13 17:28:14 +03:00
1b413934b5 Set redaction reason as message body. 2020-02-13 16:42:13 +03:00
8a3e93ae96 Do not ask for a reason if user wants to delete his own message.
Fixes (#1003)
2020-02-13 14:59:41 +03:00
5191cbaf93 Merge pull request #1001 from vector-im/feature/pusher_service
Cleanup pusher service and improve API
2020-02-13 08:02:33 +01:00
f2e6900cfb Move throw line 2020-02-13 07:44:54 +01:00
0b7e757f3c Code lisibility: use generic name for parameters in Dagger modules 2020-02-13 07:12:11 +01:00
5b2c947af1 Rename internal class 2020-02-13 07:05:46 +01:00
6a69c6356d PushersService.pushers() has been renamed to PushersService.getPushers() 2020-02-13 07:04:54 +01:00
e492e4318b Do some parameter checks 2020-02-13 06:48:52 +01:00
93d38843c3 Add Javadoc 2020-02-13 06:36:21 +01:00
7d94519064 Merge pull request #998 from vector-im/feature/msc_2192_update_event_prefix
Use vendor prefix for non merged MSC
2020-02-12 22:41:12 +01:00
21bac0f867 Fix / typo in poll 2020-02-12 22:31:13 +01:00
32c4ad9ecb Use vendor prefix for non merged MSC 2020-02-12 19:09:23 +01:00
e1342d096b Merge pull request #810 from vector-im/feature/msc_2192
Feature/msc 2192
2020-02-12 17:41:50 +01:00
e91c6c216d code quality 2020-02-12 17:03:21 +01:00
6013e1653b Open room member profile from reactions and read receipts. (#990)
Open room member profile from reactions and read receipts. Fixes #875
2020-02-12 15:57:49 +01:00
47f47e40c4 code review and cleanup 2020-02-12 15:09:38 +01:00
9016688aec Fix compilation issue after rebase 2020-02-12 13:48:08 +01:00
d5f8a0c0fc code quality 2020-02-12 13:40:54 +01:00
33c657bff8 Update change log 2020-02-12 13:40:54 +01:00
9a7bd35ddc Add m.buttons support (a.k.a bot buttons) 2020-02-12 13:40:54 +01:00
3ac54c51f6 cleaning 2020-02-12 13:39:30 +01:00
c4ea2507f8 Add command to send poll 2020-02-12 13:39:30 +01:00
6001ac60ab klint cleaning 2020-02-12 13:37:16 +01:00
0cea26ec77 ux tweak on poll result 2020-02-12 13:37:16 +01:00
3dae220501 Fix / filter edits and poll response form lastPreviewableMessage 2020-02-12 13:37:16 +01:00
577c5a16b3 Support incremental poll response aggregation + display 2020-02-12 12:47:28 +01:00
a0aebed3f7 Message Poll UX, and model 2020-02-12 12:42:17 +01:00
3a044bd655 Add Javadoc 2020-02-12 11:39:36 +01:00
6acfab3242 Rename VerificationListener to Listener 2020-02-12 11:39:36 +01:00
bf02746d87 Clenaup VerificationService.VerificationListener 2020-02-12 11:39:36 +01:00
377d944228 Cleanup API 2020-02-12 11:39:36 +01:00
6ff974b3ea Fix issue with verification when other client declares it can only show QR code (#988) 2020-02-12 11:39:36 +01:00
7c5bb4ff5b Merge pull request #986 from vector-im/feature/fix_clear_cache_notification_click
Fix crash by removing all notifications after clearing cache.
2020-02-11 18:06:16 +03:00
3573aea600 Fix crash by removing all notifications after clearing cache.
Fixes #878
2020-02-11 16:48:28 +03:00
251de0b89c Merge pull request #982 from vector-im/feature/remove_message_step2
Redact message step2
2020-02-11 11:35:16 +01:00
6fce2a3066 Change wording adding "..." because there is now confirmation dialog
And make the item red because it is destructive. Also use "redact" terminology
2020-02-11 11:04:21 +01:00
b40da4ef0f Disable TextInputLayout instead of TextInputEditText 2020-02-11 11:00:33 +01:00
96341df5e7 Format layout 2020-02-11 11:00:01 +01:00
7ccc1c559c Merge pull request #977 from vector-im/feature/event_deletion_dialog
Show confirmation dialog before deleting a message
2020-02-11 10:45:17 +01:00
35ed22ab2b improve script 2020-02-11 10:38:13 +01:00
afbd9cff70 Merge branch 'develop' into feature/event_deletion_dialog
# Conflicts:
#	CHANGES.md
#	vector/src/main/java/im/vector/riotx/features/home/room/detail/RoomDetailFragment.kt
2020-02-11 12:11:36 +03:00
ce028f8bd2 Gathering reason input is refactored. 2020-02-11 00:10:24 +03:00
a7274b9df0 Version++ 2020-02-10 21:41:59 +01:00
c498416075 Merge branch 'release/0.15.0' 2020-02-10 21:40:36 +01:00
a9d6cb7be3 Merge branch 'release/0.15.0' into develop 2020-02-10 21:40:35 +01:00
d71797319c Prepare release 0.15.0 2020-02-10 21:40:27 +01:00
ba0133a047 Reason input for redacting event is added. 2020-02-10 23:03:37 +03:00
01a7ea0bd7 Merge branch 'feature/fix_notif' into develop 2020-02-10 19:16:20 +01:00
2e7fa23ce7 Fix #980 2020-02-10 19:13:35 +01:00
6750237764 Merge pull request #976 from vector-im/feature/viewEvents
Use View events
2020-02-10 16:46:21 +01:00
588a644e02 Merge pull request #975 from vector-im/feature/cleanup
Cleanup push rule code
2020-02-10 16:32:24 +01:00
1bc1c8ec4a Reorder improvements. 2020-02-10 18:17:22 +03:00
7e362be568 Convert to ViewEvents -> Cleanup after review 2020-02-10 16:10:57 +01:00
83d83e0812 Show confirmation dialog before deleting a message
Fixes #967
2020-02-10 17:58:48 +03:00
c97d298166 Merge pull request #948 from vector-im/feature/artifacts_downloading
Feature/artifacts downloading
2020-02-10 14:52:25 +01:00
81413e49bc Remove '(yet)' 2020-02-10 14:51:35 +01:00
b24f133105 Import strings from Riot 2020-02-10 14:50:21 +01:00
5b13be6332 Rename 2020-02-07 19:58:14 +01:00
abeb741cad Convert to ViewEvents -> RoomDetailViewModel part 5 2020-02-07 19:50:15 +01:00
84e1169525 Convert to ViewEvents -> RoomDetailViewModel part 4 2020-02-07 19:45:54 +01:00
27e217fce5 Convert to ViewEvents -> RoomDetailViewModel part 3 2020-02-07 19:41:23 +01:00
bdb1f850b2 Convert to ViewEvents -> RoomDetailViewModel part 2 2020-02-07 19:37:30 +01:00
0338535efa Convert to ViewEvents -> RoomDetailViewModel part 1 2020-02-07 19:27:18 +01:00
0dd3894a49 Use handle() pattern 2020-02-07 19:20:02 +01:00
c8ff8d3c9e Convert to ViewEvents -> DeviceListBottomSheetViewModel 2020-02-07 18:59:31 +01:00
70973c3302 Convert to ViewEvents -> CrossSigningSettingsViewModel 2020-02-07 18:47:54 +01:00
a930313bf3 Convert to ViewEvents -> VerificationBottomSheetViewModel 2020-02-07 18:27:13 +01:00
35054dc5e8 Convert to ViewEvents -> CreateDirectRoomViewModel 2020-02-07 18:11:53 +01:00
33b123f719 Convert to ViewEvents -> GroupListViewModel 2020-02-07 18:02:42 +01:00
24667f38b8 Convert to ViewEvents -> RoomMemberProfileViewModel 2020-02-07 17:47:37 +01:00
256a6e4322 Convert to ViewEvents -> RoomDetailViewModel 2020-02-07 17:34:26 +01:00
7f5cc77ee0 Convert to ViewEvents -> DevicesViewModel 2020-02-07 17:14:03 +01:00
c34307ecf7 Convert to ViewEvents -> RoomDirectoryViewModel 2020-02-07 16:32:01 +01:00
dd13b6bd99 Add test for DisplayName condition (passing) 2020-02-07 15:44:46 +01:00
9df699db59 Reorder tests 2020-02-07 15:35:09 +01:00
8bdb2b88fd make the test compile 2020-02-07 15:32:36 +01:00
2a534b5874 Handle SenderNotificationPermissionCondition 2020-02-07 15:32:20 +01:00
f719da96ed Rename Condition.Kind enum values and add some documentation 2020-02-07 15:02:39 +01:00
31e5c0eb1a Improve algorithm 2020-02-07 14:48:08 +01:00
34c5f37bbc findAll() does not return null value 2020-02-07 14:30:44 +01:00
9aadbbc3c7 Rework DefaultConditionResolver, and create RoomGetter 2020-02-07 14:27:24 +01:00
57758af2d7 Merge pull request #974 from vector-im/feature/crosssigning_cleanup
Improve prompt password dialog
2020-02-07 14:02:15 +01:00
0a2474ef12 ktlint 2020-02-07 14:01:18 +01:00
67bc100782 Merge pull request #959 from vector-im/feature/roomshields_perf
Refactor Room Shield / Profile shield
2020-02-06 16:54:17 +01:00
5fedfd9286 Cleanup 2020-02-06 16:00:05 +01:00
1917fbcc93 eventBus private 2020-02-06 13:56:57 +01:00
a48bf61ad7 quick dispatch to correct thread (will need more work) 2020-02-06 13:56:57 +01:00
5c1fcc47a1 Catch all decryption fails in mapping 2020-02-06 13:56:57 +01:00
d80c15f52f Dispatch init on crypto thread to avoid blocking cold start 2020-02-06 13:56:57 +01:00
3e2219cbb5 Ignore interrupted exception in setupRx 2020-02-06 13:56:57 +01:00
bf2e01b8c3 More Rx startWithcallable 2020-02-06 13:56:57 +01:00
75131fdf44 Post merge fix 2020-02-06 13:56:57 +01:00
911ff8cf16 cleaning (klint) 2020-02-06 13:56:57 +01:00
4506b7d6e6 Fix / annoying loading to get active sessions
Start with what's known locally
2020-02-06 13:56:57 +01:00
320dc4accd Refactor Room Shield / Profile shield 2020-02-06 13:56:57 +01:00
ffc9a595dd Merge pull request #964 from vector-im/feature/firefox_account_sso
Support SSO login with Firefox account (#606)
2020-02-06 11:28:16 +01:00
1602c6544f We have too many strings... 2020-02-05 18:06:39 +01:00
79242c8c16 Merge pull request #892 from vector-im/feature/indonesian_check
Import Indonesian resource check from TravisCI to Weblate pipeline
2020-02-05 18:02:00 +01:00
7d00aabc85 Share the same Copyright header. Disabled for XML files 2020-02-05 17:48:59 +01:00
ef72f2246a Import Indonesian resource check from TravisCI to Weblate pipeline 2020-02-05 17:47:11 +01:00
51c2b9e1e9 Import strings from Riot 2020-02-05 17:35:23 +01:00
2a4c8b3199 Support SSO login with Firefox account (#606) 2020-02-05 15:21:54 +01:00
3189c114dc Merge pull request #945 from vector-im/feature/stabilization_2
Feature/stabilization 2
2020-02-05 15:19:16 +01:00
50814dafe9 Update wording 2020-02-05 14:19:04 +01:00
dcd7d17ffd Fix compilation issue after merge and update CHANGES.md 2020-02-05 14:13:43 +01:00
d9c007d017 Merge branch 'develop' into feature/stabilization_2 2020-02-05 12:57:42 +01:00
05dd587fa8 Move FORMAT_MATRIX_HTML to a proper object and so fix a wrong usage issue 2020-02-05 12:44:31 +01:00
3384d91adb Rename MessageContent.type to MessageContent.msgType for code clarity and update a few the Javadoc 2020-02-05 12:39:26 +01:00
f72e5c1d94 Explain why and when to use EllipsizingTextView 2020-02-05 12:16:43 +01:00
a3ec0e03a0 Use NoOpMatrixCallback when it's possible 2020-02-05 12:05:12 +01:00
47ee2a24a7 Move NoOpMatrixCallback to MatrixCallback.kt file 2020-02-05 11:58:08 +01:00
b8096f21ea Restore Copyright and cleanup 2020-02-05 11:56:07 +01:00
a17ec14dd7 Cleanup and little change on Throwable logging 2020-02-05 11:39:23 +01:00
062c4559a2 Merge pull request #955 from vector-im/feature/room_history_in_e2e
Feature/room history in e2e
2020-02-04 21:18:26 +01:00
f7d511df38 Ganfra's review 2020-02-04 17:48:17 +01:00
6bff951c72 Keep MXCryptoConfig, but do a correct usage of it 2020-02-04 15:37:46 +01:00
bd033866a8 Encrypt for invited users by default, if the room state allows it (#803) 2020-02-04 14:41:32 +01:00
3e9b2e4a06 Use the correct enableEncryption() method 2020-02-04 14:04:48 +01:00
ed9c3379bf Rename file 2020-02-04 13:50:10 +01:00
1728d31401 Fix some issues and make test passes 2020-02-04 13:19:02 +01:00
225a6e00e6 Add doc and reorder 2020-02-04 12:10:51 +01:00
96a729ab2b Move file 2020-02-04 11:53:09 +01:00
badb4042ce Add sign_apk_unsafe.sh to the repo 2020-02-04 11:53:09 +01:00
c3bb421c1e ignore .idea/inspectionProfiles 2020-02-04 11:53:09 +01:00
09212a05d0 Add a script to download artifacts from buildkite 2020-02-04 11:53:09 +01:00
e02430bcd0 Ask for permission before opening the camera (#934) 2020-02-03 20:06:37 +01:00
4335fa4f72 ktlint 2020-02-03 16:26:18 +01:00
6df5edbad1 Version++ 2020-02-03 16:20:55 +01:00
007fbf8ed3 Merge branch 'release/0.14.3' 2020-02-03 16:17:55 +01:00
362799ac08 Merge branch 'release/0.14.3' into develop 2020-02-03 16:15:52 +01:00
0049af7980 Prepare version 0.14.3 2020-02-03 16:15:38 +01:00
f454078c6b Clean code 2020-02-03 16:14:36 +01:00
783a514496 Improve prompt password dialog
Reveal password, inline error when empty
2020-02-03 15:53:44 +01:00
88755a79b4 In memory sending: fix broken filtering 2020-02-03 15:18:19 +01:00
e6cd8a3a86 Merge develop into feature/stabilization_2 2020-02-03 13:59:20 +01:00
ce13e824b6 Merge remote-tracking branch 'origin/develop' into develop 2020-02-02 15:28:05 +01:00
b182a63ea1 fix concurrent co mofification 2020-02-02 15:28:00 +01:00
9ced2048d2 Version++ 2020-02-02 14:26:09 +01:00
cfee2f93f2 Prepare v0.14.2 2020-02-02 14:06:21 +01:00
97aca28c0d Merge branch 'release/0.14.2' 2020-02-02 14:05:50 +01:00
b158729b53 Prepare v0.14.2 2020-02-02 14:05:12 +01:00
367057cc29 Fix / cold start 2020-02-02 14:01:45 +01:00
5fb4f274f9 Version ++ 2020-02-02 08:00:57 +01:00
a35302eae0 Merge branch 'release/0.14.1' 2020-02-02 07:56:00 +01:00
6f60f1c6b4 Merge branch 'release/0.14.1' into develop 2020-02-02 07:56:00 +01:00
435d8cbc55 Prepare v0.14.1 2020-02-02 07:55:46 +01:00
bb0fafcb2f Merge pull request #929 from vector-im/feature/xsigning_fix_4
Feature/xsigning fix 4
2020-02-02 03:13:54 +01:00
1d2928b3fb ktlint 2020-02-02 03:13:15 +01:00
40b0f60964 Fix issue in dark theme. Also do not limit subtitles to 2 lines 2020-02-02 03:11:27 +01:00
96a556f449 Fix / Race causing key requests to be sent to early in xsigning 2020-02-02 01:21:08 +01:00
d436d3b8d4 Move rx logs to verbose 2020-02-02 00:41:36 +01:00
845f3f5ad1 FIx / use password textedit 2020-02-02 00:04:15 +01:00
fb838e5407 Fixes #813 2020-02-01 23:24:05 +01:00
40c70f64a8 Merge branch 'feature/to_device_done' into develop 2020-02-01 18:48:34 +01:00
245b3717b9 Send done in toDevice 2020-02-01 18:25:31 +01:00
9e15891053 Version++ 2020-02-01 17:21:41 +01:00
637eba277f Merge branch 'release/0.14.0' 2020-02-01 17:20:05 +01:00
649ebf4a34 Merge branch 'release/0.14.0' into develop 2020-02-01 17:20:04 +01:00
e9f220cca2 Prepare release 0.14.0 2020-02-01 17:19:53 +01:00
8a9bd97a88 Merge pull request #924 from vector-im/feature/crossing_fix_2
Feature/crossing fix 2
2020-02-01 17:17:30 +01:00
26400e6372 Prompt before resetting keys 2020-02-01 15:20:04 +01:00
282be29247 temp shield for read only 2020-02-01 15:20:04 +01:00
6ee7ee1460 Fix blink effect 2020-02-01 15:04:22 +01:00
2e0a84ccc9 display profile faster from known info 2020-02-01 15:03:00 +01:00
9d6e7d7bd0 Learn more shows my devices when keys not trusted 2020-02-01 14:36:17 +01:00
8f7b18239d Warn on verify when private keys not known 2020-02-01 14:36:17 +01:00
10094a212c ktlint 2020-02-01 14:02:51 +01:00
53e36dca9c ZXing 3.3.3 because of https://github.com/zxing/zxing/issues/1170 2020-02-01 13:52:33 +01:00
6ec2dd8c00 Add startWith and logs 2020-02-01 12:12:40 +01:00
f098d6cf5b Add startWith 2020-02-01 11:45:45 +01:00
cd606ba8a1 RoomMember decoration 2020-02-01 11:37:16 +01:00
59abee10f8 Convert to ConstraintLayout 2020-02-01 11:37:16 +01:00
64df9e23c2 Room Profile / Just show e2e status remove learn more 2020-02-01 11:03:00 +01:00
fc4f5faffd Update Room decoration algo 2020-02-01 10:21:29 +01:00
256f8b77aa Add Timber to rx module 2020-02-01 10:09:22 +01:00
f2f775cb99 Add TODOs 2020-02-01 01:17:18 +01:00
2616a889ef Merge pull request #923 from vector-im/feature/xcrossing_fix
Decoration in room profile and improve Rx flow
2020-01-31 20:48:20 +01:00
ccd4c1ed86 ktlint 2020-01-31 20:46:33 +01:00
bb92882958 (partially) Fix glitch 2020-01-31 20:28:57 +01:00
46dd17644f Room decoration - in room profile UI 2020-01-31 20:12:02 +01:00
7e34b2a672 Room decoration - convert to ConstraintLayout 2020-01-31 20:02:01 +01:00
c3c88c387b Improve Rx chain and cleanup 2020-01-31 19:55:22 +01:00
51e0f945a7 Quick Room Decoration 2020-01-31 18:52:33 +01:00
37230b0614 Fix issues with read marker and jumpToBottom 2020-01-31 18:09:34 +01:00
fd3619b100 Merge pull request #770 from vector-im/cross_signing
Cross signing
2020-01-31 17:05:18 +01:00
e18b9d5155 Room decoration - UI in room list 2020-01-31 16:10:52 +01:00
ec6d78bf96 Merge branch 'develop' into feature/stabilization_2 2020-01-31 15:47:33 +01:00
759b680e63 Timeline/Sync: Fix some issues 2020-01-31 15:28:35 +01:00
f5ecf4bd90 Room decoration - UI 2020-01-31 15:02:54 +01:00
27c74c9118 live device in settings 2020-01-31 14:42:00 +01:00
4d91bc934b Fix ktlint 2020-01-31 14:12:03 +01:00
5c547794f2 Merge branch 'develop' into cross_signing 2020-01-31 14:09:40 +01:00
43358cd86c Make self verification work! 2020-01-31 12:18:27 +01:00
87b76d10dd Format 2020-01-31 11:11:27 +01:00
80f4f95f81 QRCode: requestId is not supposed to be an eventId 2020-01-31 11:11:27 +01:00
8e5c7239cf Settings Sessions / Now live + support devices with no keys 2020-01-31 10:33:53 +01:00
7b385c3b36 Quick copy change device -> session 2020-01-31 10:00:44 +01:00
4fb59aadb1 Fix / ensure RoomKeyRequest are made after device is verified 2020-01-31 09:39:31 +01:00
850c830e1f Fix / auto ready request when waiting bottomsheet on screen 2020-01-31 09:16:03 +01:00
9dde43f65b PR Review: var -> val, internal and other cleanup 2020-01-30 23:40:25 +01:00
9d566e9352 Merge pull request #918 from vector-im/feature/sort_room_members
Sort room members by display names
2020-01-30 21:06:40 +01:00
eb46a4949f Merge pull request #920 from duncanturk/patch-1
Add "get it on F-Droid"
2020-01-30 21:05:53 +01:00
506c2dd262 Merge pull request #921 from vector-im/decorations
Add field in QR code and make some optional
2020-01-30 18:48:30 +01:00
ccd857016c ktlint 2020-01-30 18:46:08 +01:00
225e4e0433 To Device Verification Request 2020-01-30 18:43:50 +01:00
5e1b59f9d3 Timeline: handle an in memory local echo to make the UI snappier 2020-01-30 17:13:44 +01:00
069bd3c258 use isMe 2020-01-30 16:59:22 +01:00
fb98d6ef42 QRCode: add other_device_key field and make it optional, along with other_user_key 2020-01-30 16:46:12 +01:00
6282f81bc4 Remove typo 2020-01-30 16:46:12 +01:00
a5ca2b1d34 Fix / incoming start verif popup should not show when bottomsheet there 2020-01-30 16:36:13 +01:00
50d5ad3625 Self verification + toDevice Request 2020-01-30 16:35:42 +01:00
03c5e61b2e Fix / post merge 2020-01-30 16:35:06 +01:00
4ddd831d7f Prepare support for toDevice .request 2020-01-30 16:11:34 +01:00
ff95392e10 Fix / Refresh trust state on own keys/device trust change 2020-01-30 16:10:59 +01:00
e2c2c2418c Merge pull request #919 from vector-im/qr_step_validate
Qr step validate
2020-01-30 14:14:16 +01:00
e44dc347c6 Add "get it on F-Droid"
RiotX is on F-Droid now
2020-01-30 12:07:33 +01:00
fbd0bbc575 Improve clarity of the algorithm to enable encryption for DMs 2020-01-30 11:24:05 +01:00
b848d0530f Update realm to 6.1.0: should fix some of the native crashes 2020-01-30 11:04:37 +01:00
2bccd19f84 QRcode: Url encode the keys 2020-01-30 10:17:04 +01:00
2111daea52 Add a step to confirm that other user has scanned the SR code 2020-01-30 10:09:59 +01:00
9fc3fa7f19 Update some libs and remove incremental from dagger 2020-01-29 21:14:38 +01:00
57a13fa30d Sort room members by display names 2020-01-29 18:07:57 +01:00
c4649a5824 Merge pull request #916 from vector-im/debug_qr
Negotiate E2E by default for DMs (#907)
2020-01-29 18:02:43 +01:00
71a02a58af Sync/Timeline: handle displayName isUnique 2020-01-29 17:30:31 +01:00
6f6c3184dd Avoid test if previous result is null 2020-01-29 17:13:41 +01:00
d7feb6dd5c Merge pull request #913 from vector-im/feature/rainbow
Rainbow
2020-01-29 16:35:34 +01:00
e6c3f7c77b Nicer API 2020-01-29 16:26:19 +01:00
8b6ffc2fb1 ktlint 2020-01-29 16:18:33 +01:00
ae36846aaf Negotiate E2E by default for DMs (#907) 2020-01-29 16:11:23 +01:00
237da5bb16 No need to have mutable list in param 2020-01-29 16:03:28 +01:00
7f72af426b Timeline: fix getContext 2020-01-29 16:02:53 +01:00
a4abe5f552 Set timeout to 60s when creating a room 2020-01-29 16:00:07 +01:00
e1ddde5501 Make CreateRoomParams a regular data class 2020-01-29 14:23:32 +01:00
754ca3c582 Fix / fail to update usk when dl own keys 2020-01-29 14:00:02 +01:00
70b04dbaea Disable not passing test, to avoid waiting too long when running the test suite 2020-01-29 12:36:38 +01:00
b44b6726ed Also update the tests 2020-01-29 12:29:19 +01:00
80ec199135 Convert VerificationTxState to a sealed class 2020-01-29 12:00:49 +01:00
305dfd4c7a Merge pull request #911 from vector-im/feature/encryption_notice
Modify encryption notice
2020-01-29 10:32:23 +01:00
73bb4bb785 Merge pull request #912 from vector-im/feature/e2e_opt_out
e2e opt in when creating room (not DM)
2020-01-29 10:29:33 +01:00
1d84ccd64a Merge pull request #881 from vector-im/xsigning_sdk
Xsigning sdk
2020-01-29 10:26:46 +01:00
63e36b0403 Remove unused test 2020-01-29 10:16:57 +01:00
2c568b4de9 clean klint 2020-01-29 09:59:09 +01:00
27fe4e3680 Fix build and add tests 2020-01-29 09:44:53 +01:00
007b0cabf2 Add a few TUs 2020-01-28 22:43:10 +01:00
b2338dfcd3 Make the TU passes 2020-01-28 22:35:40 +01:00
6d7d4993a6 Add TUs for RainbowGenerator (not all passing) 2020-01-28 21:56:02 +01:00
da9b9f4864 Make the whole cell clickable 2020-01-28 21:31:02 +01:00
ef0b438a89 Give the possibility to enable encryption when creating room (#837) 2020-01-28 21:31:02 +01:00
a8f783bbfa Add state events to chunks 2020-01-28 18:59:21 +01:00
9a79297e14 Merge pull request #910 from vector-im/qr_code_step_2
Qr code step 2
2020-01-28 18:11:09 +01:00
a57393cafa More log + quick fix in settings 2020-01-28 18:09:17 +01:00
e12de3fba0 Merge pull request #891 from vector-im/feature/event-unknown
Feature/event unknown
2020-01-28 17:30:02 +01:00
2eeeea3377 Encryption is enabled only for MEGOLM. 2020-01-28 17:19:22 +01:00
976a8fc568 Hide the algorithm when turning on e2e (#897) 2020-01-28 16:36:28 +01:00
b7ecfd997d Fix compilation issue after rebase 2020-01-28 16:02:20 +01:00
e0b3ea7e48 QrCode: WIP 2020-01-28 15:55:44 +01:00
9c829e62e6 QrCode: WIP 2020-01-28 15:55:44 +01:00
20c7e4c3ad QrCode: improve UI 2020-01-28 15:55:44 +01:00
69ab5e43d5 QrCode: WIP 2020-01-28 15:55:02 +01:00
f46023e84c QrCode: WIP 2020-01-28 15:55:02 +01:00
d8d465f70b QrCode: WIP 2020-01-28 15:53:57 +01:00
8659216955 QrCode: WIP 2020-01-28 15:53:57 +01:00
39e746413a QrCode: WIP 2020-01-28 15:53:57 +01:00
0aaba26f17 Rename classes 2020-01-28 15:53:57 +01:00
fc04833157 Rename parameter 2020-01-28 15:53:57 +01:00
f80861bed8 Add TODO 2020-01-28 15:53:57 +01:00
9e796067cc Do not support SHOW or SCAN if cross-signing is not enabled 2020-01-28 15:53:57 +01:00
fb5148fd43 Avoid to inject credential (again) 2020-01-28 15:52:17 +01:00
be77017209 Avoid injecting credentials. Inject userId and deviceId instead
And cleanup API
2020-01-28 15:48:09 +01:00
962b85b041 Add TODO 2020-01-28 15:48:09 +01:00
adc2d570eb QR code: handle the case where other user can scan QR codes 2020-01-28 15:48:09 +01:00
df49ab8362 QR code: update code which build URL 2020-01-28 15:48:09 +01:00
efc8cfb9a1 QR code: modify APIs 2020-01-28 15:48:09 +01:00
345824daa2 Keep on renaming 2020-01-28 15:48:09 +01:00
050eb0af9d Create dedicated View and Epoxy item for QrCode 2020-01-28 15:48:09 +01:00
ca4ed6e1bd Fix / Error management and clear keys 2020-01-28 15:35:11 +01:00
bf7c53ecab Sync/pagination: get a working version 2020-01-28 14:46:26 +01:00
f021f8110d post merge 2020-01-28 12:04:19 +01:00
109ff4f908 Merge branch 'cross_signing' into xsigning_sdk 2020-01-28 11:33:54 +01:00
c9f0209ebf post merge fix 2020-01-28 11:23:37 +01:00
7daa088618 Merge branch 'develop' into cross_signing 2020-01-28 11:13:31 +01:00
83e44ac96e Fix / cross signing info live data not always updated 2020-01-28 11:02:12 +01:00
15b0bea870 Use clone for retrofit request to be able to retry 2020-01-28 10:13:36 +01:00
e5e62dc4a7 Fix SyncService and Alarm 2020-01-28 10:13:19 +01:00
f3e88c75cf Fix typo 2020-01-28 09:42:56 +01:00
ea6e8a6789 Basic debug screen to setup keys 2020-01-27 23:51:08 +01:00
6cece03998 Profile detailed device info + verify manually 2020-01-27 17:55:00 +01:00
f3db43f317 Ellipsize: introduce EllipsizingTextView 2020-01-27 12:41:43 +01:00
08ae0b485a Profile Screen / Add show device list trust screen 2020-01-27 09:25:58 +01:00
665c577747 SDK / update trust on key change + live method in Service 2020-01-27 09:25:16 +01:00
3a89a30056 Continue reworking sync/timeline events handling 2020-01-25 18:59:45 +01:00
d60351bcb7 Verify from RoomMember Profile 2020-01-24 19:15:23 +01:00
1d8b81bb04 Try reworking events/timeline process [WIP] 2020-01-24 18:43:35 +01:00
a758efc018 Renamed room transport classes 2020-01-24 11:32:24 +01:00
d0addc4c4f Refactored Verification Classes 2020-01-24 11:29:26 +01:00
bb5179140c Update profile screen for xSigning 2020-01-24 09:14:32 +01:00
e9ea69f055 Add support for /rainbow and /rainbowme command (#879) 2020-01-23 23:34:21 +01:00
7bcae75314 Remove some code from main thread 2020-01-23 20:31:18 +01:00
4331d2ef47 Network: reword the strategy for handling NetworkConnectivity (remove Merlin) 2020-01-23 19:08:55 +01:00
e47791f290 Merge pull request #888 from vector-im/qr_code
Qr code
2020-01-23 16:41:23 +01:00
91ae96a153 QuickFix / Do not verify yourself in dm 2020-01-23 16:16:57 +01:00
0148949a4f Fix / prevent verification toaster to show when in good room 2020-01-23 16:13:46 +01:00
65cb812fc6 Fix / Unknown transaction when started by other after request 2020-01-23 16:04:29 +01:00
e8a4f1fb90 Fix: .cancel won't appear in debug show all 2020-01-23 16:04:03 +01:00
632832a651 Nearly same code for DefaultItem and NoticeItem 2020-01-23 15:44:41 +01:00
d530c64a84 Render defaultItem as other item: display user avatar
Also ensure bottom sheet always has a header, for user avatar and date
2020-01-23 15:35:46 +01:00
426e291ce9 i18n for RiotX limitation messages 2020-01-23 14:46:36 +01:00
1276d1f39d Update My device list + action to verify 2020-01-23 13:57:17 +01:00
4a1012cf81 Add TODOs 2020-01-23 11:48:08 +01:00
5819790c1b Distinguish Show SR code and Scan QR code capability 2020-01-23 11:25:44 +01:00
b3089343ad Support SCAN method (WIP) 2020-01-23 10:47:29 +01:00
c65f25d7ae Rx: fix startWith on mainThread 2020-01-23 10:18:22 +01:00
37b950897f Base64 no wrap and extension for the reverse operation 2020-01-23 10:17:07 +01:00
fee2ec6b66 Scroll when event build come from sync/send + remove use of monarchy writeAsync 2020-01-22 20:33:52 +01:00
d2fab91e9d Improve code 2020-01-22 19:08:21 +01:00
c323b61575 Ignore typo 2020-01-22 18:27:59 +01:00
0e55f81879 Ensure all is escaped properly 2020-01-22 18:26:34 +01:00
cbf418c401 Update after MSC change 2020-01-22 18:22:01 +01:00
41c691f26c Create QrCodeData class and method to convert to URL and vice versa, with TUs 2020-01-22 17:58:25 +01:00
81337d1624 Also keep the same parameter order: (userId, deviceId) to avoid silly errors 2020-01-22 17:00:16 +01:00
79df6b8402 Start plugin QR code to the code 2020-01-22 15:56:43 +01:00
537b1be0c5 Update wording 2020-01-22 15:26:26 +01:00
c1259161e5 QRCode: generate and scan QRCodes 2020-01-22 15:03:56 +01:00
76065ac4fc Read: allow setting read marker and read receipt to latest known event independently 2020-01-22 14:43:39 +01:00
d93050240a Start reworking networkConnectivityCheck (WIP) 2020-01-22 14:41:42 +01:00
75e39535bc Merge pull request #883 from vector-im/feature/share
Improve the room list when sharing to RiotX
2020-01-22 11:49:50 +01:00
c971f18fc0 Add section header when displaying room list to share (#771) 2020-01-22 11:49:30 +01:00
3c2fa40b58 Sharing things to RiotX: sort list by recent room first (#771) 2020-01-22 11:49:04 +01:00
0b74863c6d Merge pull request #877 from vector-im/feature/version_name
F-Droid: fix the "-dev" issue in version name (#815)
2020-01-22 11:45:36 +01:00
dca950140d Merge branch 'develop' into feature/version_name 2020-01-22 11:45:27 +01:00
a13a78ccc0 Merge pull request #874 from vector-im/feature/authors
Builds repoductibility and Authors file
2020-01-22 11:43:51 +01:00
7327dc97b4 Merge pull request #876 from vector-im/feature/room_settings
Room settings, and enable encryption in unencrypted rooms (#212)
2020-01-22 11:40:26 +01:00
2bddf61afe Update realm to 6.1.0: should fix some of the native crashes 2020-01-21 15:15:29 +01:00
da3e547d82 Create facility extension to observe ViewEvents 2020-01-21 15:08:49 +01:00
a0aa1f34d3 Quick Fix todevice verif broken
Added dbg screen for cross signing
2020-01-21 14:58:06 +01:00
d1b8d81fb1 Fix double read receipts 2020-01-21 14:17:04 +01:00
e81c804ed6 Ensure when will be exhaustive 2020-01-21 12:51:28 +01:00
be371f9279 Introduce ViewEvents in ViewModel and code harmonization 2020-01-21 12:51:28 +01:00
a6364f0be5 remove dead code 2020-01-21 10:25:57 +01:00
390879e3fd Added check self keys + force DL after initialize Xsigning 2020-01-21 10:25:57 +01:00
6ab540045b Refactoring / deprecation of MXDeviceInfo
introduced TrustLevels
2020-01-21 10:25:57 +01:00
98ba2d39a8 SAS verif, support signing and verification of Cross Signing 2020-01-21 10:25:57 +01:00
859c75df98 Initial commit 2020-01-21 10:25:57 +01:00
ea9166e0c6 Merge pull request #811 from vector-im/verification_toasters
[Cross Signing DM Verif]  Basic Incoming request toast + cleaning
2020-01-21 10:21:24 +01:00
d672313649 Room settings: use boolean instead of Async 2020-01-20 17:41:29 +01:00
f5e6b4b857 F-Droid: fix the "-dev" issue in version name (#815) 2020-01-20 16:08:57 +01:00
28db05e509 Cleanup and copy wording from Riot-Web 2020-01-20 15:39:14 +01:00
56b140fcb4 Room settings: rename stuff for genericity 2020-01-20 15:23:40 +01:00
eee6969b02 Room settings, and enable encryption in unencrypted rooms (#212) 2020-01-20 15:11:21 +01:00
825427b7b0 Add a first content into the AUTHORS file 2020-01-17 16:50:18 +01:00
8c32796d5c Ensure builds are reproducible (#842) 2020-01-17 16:06:58 +01:00
e45c1e6c2a Fix / post merge issues 2020-01-17 15:17:16 +01:00
188cd6beff Verification: improve blinking effect (not perfect yet) 2020-01-17 15:05:06 +01:00
aaeb54db7c Verification: Introduce VerificationMethod enum 2020-01-17 15:05:06 +01:00
92f26bc20a Verification: migrate to Epoxy - Cleanup 2020-01-17 15:05:06 +01:00
fc22b7988f Verification: migrate to Epoxy - Add missing icons 2020-01-17 15:05:06 +01:00
878bae1c45 Verification: migrate to Epoxy - Choose Fragment 2020-01-17 15:05:06 +01:00
a8e81d95cf Verification: migrate to Epoxy - Disable item animation 2020-01-17 15:05:06 +01:00
cd1665a8e8 Verification: migrate to Epoxy - Conclusion 2020-01-17 15:05:06 +01:00
7170471686 Verification: migrate to Epoxy - create sub packages 2020-01-17 15:05:06 +01:00
98020404ff Verification: migrate to Epoxy - rename package 2020-01-17 15:05:06 +01:00
b2348427bd Verification: migrate to Epoxy - Emoji Fragment 2020-01-17 15:05:06 +01:00
832df59b58 Verification: migrate to Epoxy - Request Fragment 2020-01-17 15:05:06 +01:00
32689facc5 Verification: migrate to Epoxy - Request Fragment 2020-01-17 15:05:06 +01:00
d3071e5816 Rename layout for consistency 2020-01-17 15:04:36 +01:00
83a6f564c3 Ensure BottomSheets call ButterKnife unbinder 2020-01-17 15:04:36 +01:00
3b420dbb50 typo 2020-01-17 15:04:36 +01:00
9fe155bafd postWork now returns the Cancellable 2020-01-17 15:04:36 +01:00
3c982866d8 Restore lost Fragment binding... 2020-01-17 15:04:36 +01:00
494ad83704 Inject WorkManagerProvider, to avoid injecting the Android context
Also ensure WorkManager uses a distinct tags for each session (for future multi-sessions support)
2020-01-17 15:04:36 +01:00
4543658ae0 Extends SessionWorkerParams 2020-01-17 15:04:36 +01:00
689fd1ea90 Fix issue with SessionId for the worker
Also rename some variables
2020-01-17 15:04:36 +01:00
a95410c118 fix rebase 2020-01-17 15:04:36 +01:00
8749e49e80 Basic Incoming request toast + cleaning 2020-01-17 15:04:36 +01:00
8400ab6efe Merge branch 'develop' into cross_signing 2020-01-17 14:57:08 +01:00
d1699279fe Version++ 2020-01-17 14:25:25 +01:00
f471d9cff8 Merge branch 'release/0.13.0' 2020-01-17 14:24:11 +01:00
115058124c Merge branch 'release/0.13.0' into develop 2020-01-17 14:24:10 +01:00
7604748d3f Prepare release 0.13.0 2020-01-17 14:23:58 +01:00
d46a3ab87f Update CHANGES.md 2020-01-17 14:10:47 +01:00
b375463aec Merge pull request #854 from vector-im/feature/profiles_improvements
Feature/profiles improvements
2020-01-17 12:22:16 +01:00
cfb752c220 Merge pull request #851 from vector-im/feature/code_style
Share the same code formatting rules
2020-01-17 12:21:34 +01:00
c59712732a Introduce listener type for Epoxy items 2020-01-17 12:14:24 +01:00
626ebd9c63 Merge pull request #850 from vector-im/feature/e2e_attachments_cleanup
Feature/e2e attachments cleanup
2020-01-17 12:12:48 +01:00
5148d7ab46 Room profile: open it also when clicking on the room avatar 2020-01-17 10:15:04 +01:00
8c2a55a5a2 Settings: restore "Show read receipts" setting and create categories of per Riot-Web 2020-01-17 10:10:46 +01:00
34b6dd4270 Room profile: open room member profile from Event bottom sheet 2020-01-16 21:48:10 +01:00
79a68a36bd Room profile: ensure RoomMemberSummaries order is guaranteed 2020-01-16 21:29:05 +01:00
78408fa0ec Room profile: create extension join for Collections 2020-01-16 21:18:14 +01:00
b56ee9a377 Room profile: fix issue with divider color 2020-01-16 20:53:38 +01:00
9eff459ed6 Room profile: remove an extra divider 2020-01-16 16:43:37 +01:00
cd44b60bd5 Room profile: make link in room topic clickable 2020-01-16 16:36:56 +01:00
17ed8da57a Room profile: fix issue with icon 2020-01-16 16:27:21 +01:00
8ae51a95c5 Add formatting policy in the Contributing guide 2020-01-16 16:02:41 +01:00
f80f22fed2 XML formatting rule 2020-01-16 15:58:52 +01:00
fa57d0f6d5 160 char max per line 2020-01-16 15:27:00 +01:00
1104b5d483 DO_NOT_WRAP_AFTER_SINGLE_ANNOTATION 2020-01-16 14:26:52 +01:00
464462022c Kotlin code convention 2020-01-16 14:17:29 +01:00
1c63d3f8f0 Add rule 2020-01-16 14:15:50 +01:00
a916bd4ba8 Share the same code formatting rules 2020-01-16 14:05:14 +01:00
15e2c9f3a3 Fix formatting 2020-01-16 12:55:55 +01:00
f1a2fb51f5 Properly configure Snackbar styles 2020-01-16 12:51:33 +01:00
b0aa9fbd8f Inform user when the download of a file starts 2020-01-16 12:20:39 +01:00
d72f1ac576 Avoid exposing internal classes 2020-01-16 11:36:53 +01:00
ca157c7567 Better logs 2020-01-16 10:57:08 +01:00
ae26bf3369 Signout also clear cache 2020-01-16 10:57:08 +01:00
159c96681f Improve attachment encryption and decryption code 2020-01-16 10:57:08 +01:00
96d6b75037 Fix broken link 2020-01-16 10:57:08 +01:00
72e6181f00 Merge pull request #839 from vector-im/feature/developer
Show all hidden event in the timeline when the developer settings is ON
2020-01-16 10:56:27 +01:00
4ae09b8716 Merge pull request #831 from david1hyman/file-decryption-fix
File decryption path was writing incorrect stream to file
2020-01-16 10:50:15 +01:00
f128ed437f Merge pull request #843 from vector-im/feature/room_profile
Feature/room profile
2020-01-15 19:17:50 +01:00
11c8c8c2bd Fix fdroid background sync 2020-01-15 19:16:50 +01:00
2c331671ee Fix string 2020-01-15 17:44:38 +01:00
b44ddcfd61 Clean code after Benoit's review #2 2020-01-15 14:57:21 +01:00
7c0f2d6e32 Test: fix import 2020-01-15 11:48:02 +01:00
52de14b1b5 Clean code after Benoit's review 2020-01-15 11:46:33 +01:00
d6e6092eea Profile: add PowerLevelContent for building future actions + fix divider 2020-01-14 19:14:15 +01:00
9671a77e5d Clean code and update CHANGES 2020-01-14 18:48:13 +01:00
d3415d345f Merge branch 'develop' into feature/room_profile 2020-01-14 18:35:01 +01:00
df4df81ef3 Profile: handle ignore/unignore action + adjust UI 2020-01-14 17:08:21 +01:00
a7c948815c Merge branch 'develop' into cross_signing 2020-01-14 12:31:29 +01:00
9d5197b1c8 Show all hidden event in the timeline when the developer settings is ON 2020-01-13 22:47:41 +01:00
162f0949fa Profile: Start fetching profile info from a user 2020-01-13 18:44:01 +01:00
ae1a24e948 Room member profile: branch the UI and fix some UI issues 2020-01-13 16:49:14 +01:00
b5fead18fe Merge pull request #833 from vector-im/feature/typing
Send and render typing events (#564)
2020-01-13 15:17:43 +01:00
3c682430d9 Merge pull request #829 from vector-im/feature/stab
Feature/stab
2020-01-13 15:13:07 +01:00
717965bc37 Update comment 2020-01-13 15:12:39 +01:00
ecc463e920 Cleanup and fix a bug 2020-01-13 10:13:12 +01:00
f3e52b96c0 Cleanup 2020-01-11 22:12:56 +01:00
dd81fce8d8 Send and render typing events (#564) 2020-01-11 20:50:09 +01:00
7354eab061 Post merge fixes 2020-01-11 10:16:09 +01:00
1ae58aa6ad DefaultFileService - code was passing the inputStream to the decryption method
but not storing the output of the method anywhere
then it was writing inputStream to file and returning that file handle
changed inputStream to var and used it to store output of decryption method
2020-01-10 14:53:40 -05:00
fb9abefe59 Merge branch 'develop' into cross_signing 2020-01-10 18:38:54 +01:00
095216349e Exception -> Throwable 2020-01-10 18:35:29 +01:00
550908fa70 Render events m.room.encryption and m.room.guest_access in the timeline 2020-01-10 18:30:10 +01:00
0dbca829ea Fix crash with RoomCreationParams 2020-01-10 18:07:14 +01:00
03b5b098c7 Change the way versionCode is computed (#827) 2020-01-10 17:29:34 +01:00
171ec4fbdc Room member list: group by power level 2020-01-10 17:03:11 +01:00
32d2daee3c Exclude current user from autocompletion with room members 2020-01-10 16:28:14 +01:00
de84bb7535 Use more developerMode() 2020-01-10 11:03:42 +01:00
81712ae736 RoomProfile: fix some rendering + change anim 2020-01-09 19:47:54 +01:00
289951ea4a RoomMemberList : start showing items 2020-01-09 15:54:36 +01:00
8c9c65837d Version++ 2020-01-09 15:32:37 +01:00
24a7ce7d98 Merge branch 'release/0.12.0' 2020-01-09 15:31:30 +01:00
d486e613d8 Merge branch 'release/0.12.0' into develop 2020-01-09 15:31:29 +01:00
598d67234c Prepare release 0.12.0 2020-01-09 15:31:13 +01:00
fea4f2e129 Merge pull request #816 from vector-im/feature/integration_tests
Start porting of integration tests - Fix issue with multiple sessions
2020-01-09 15:28:29 +01:00
687ea1b5b3 ktlint 2020-01-09 15:28:16 +01:00
47e3b8ec46 Ensure foreground notification is always displayed 2020-01-09 15:09:37 +01:00
dd8c908dc7 Code cleanup 2020-01-09 15:02:39 +01:00
9775e8c32b Fix crash in syncService 2020-01-09 15:01:16 +01:00
e3205fb493 Fix compilation issue after rebase 2020-01-09 14:26:36 +01:00
35f011ba37 Fix ktlint issues 2020-01-09 14:20:17 +01:00
ed773dbb96 TI: Introduce doSync method 2020-01-09 14:20:17 +01:00
fa821826d2 TI: Import ExportEncryption test (passing) 2020-01-09 14:20:17 +01:00
293e3e3ce6 TI: Import AttachmentEncryption test (passing) 2020-01-09 14:20:17 +01:00
4244c0e48d TI: Import SAS Test - WIP 2020-01-09 14:20:17 +01:00
76e45431da TI: Import keys backup tests 2020-01-09 14:20:17 +01:00
f3fb07079e Cleanup tests 2020-01-09 14:20:17 +01:00
3ceac70536 Enable encryption on a room, SDK part (#212) 2020-01-09 14:20:17 +01:00
0f7209df1f TI: finish the work to identify a session with a sessionId 2020-01-09 14:20:17 +01:00
e177251ec0 TI: inject EventBus to allow multiple sessions - WIP 2020-01-09 14:20:17 +01:00
6746f68411 TI: create account 2020-01-09 14:20:17 +01:00
fc6d845c0d Import tests from legacy SDK 2020-01-09 14:20:17 +01:00
93cdce6c3e Cleanup tests 2020-01-09 14:20:17 +01:00
ae3381227c Add Unit tests from legacy SDK 2020-01-09 14:20:17 +01:00
b6a1ff1ca4 Import string from Riot legacy 2020-01-09 14:17:17 +01:00
7ec0227528 Merge pull request #824 from vector-im/feature/wording
Email domain can be limited on some homeserver, i18n of the displayed error (#754)
2020-01-09 12:26:28 +01:00
15639b45cf Introduce RoomMemberProfile files 2020-01-09 12:10:49 +01:00
f18ec8d021 Merge branch 'develop' into feature/room_profile 2020-01-09 11:56:09 +01:00
898bf234da Merge pull request #792 from vector-im/feature/stabilization
Feature/stabilization
2020-01-09 11:43:52 +01:00
3d0d95c371 Email domain can be limited on some homeserver, i18n of the displayed error (#754) 2020-01-09 11:34:57 +01:00
bd4a595f96 ChunkEntityTest: make it compile again 2020-01-09 11:19:08 +01:00
0f7d59a8c7 Cleanup during PR review 2020-01-09 09:42:34 +01:00
e14b9b3b20 Fix test compilation issue 2020-01-09 08:03:14 +01:00
43c4e20819 Merge pull request #820 from vector-im/feature/developer_mode_crash
Developer mode: Fail-fast (#745)
2020-01-09 07:56:06 +01:00
5312b44359 Merge pull request #821 from vector-im/feature/query_latch
Remove CountDownLatch (inspired from #419)
2020-01-09 07:55:38 +01:00
8c4d8763a2 Merge branch 'develop' into feature/stabilization 2020-01-08 22:28:08 +01:00
383605274c Introduce a very simple query langage and refact autocomplete 2020-01-08 22:17:32 +01:00
8032490606 Remove CountDownLatch (inspired from #419) 2020-01-08 18:58:51 +01:00
a458997ce0 Merge pull request #818 from vector-im/feature/oss
Exclude play-services-oss-licenses library from F-Droid build (#814)
2020-01-08 18:28:31 +01:00
29f152f349 Fix CI 2020-01-08 18:21:01 +01:00
6ca3ba6c9b Merge pull request #806 from Bubu/fix_697
call /join/{roomIdOrAlias} instead of /rooms/{roomId}/join
2020-01-08 18:17:34 +01:00
f4492e570d Merge branch 'develop' into fix_697 2020-01-08 18:17:23 +01:00
587fefedb5 Merge pull request #809 from Bubu/fix_807
set homeserver field when populating room directory list
2020-01-08 18:12:42 +01:00
943be39e1a Merge branch 'develop' into fix_807 2020-01-08 18:12:22 +01:00
616f3d3345 Merge pull request #817 from vector-im/feature/fab_scroll
Show skip to bottom FAB while scrolling down (#752)
2020-01-08 18:07:10 +01:00
2b8ecae8e3 Fix CI 2020-01-08 18:05:26 +01:00
17c4013383 Developer mode: Fail-fast (#745) 2020-01-08 17:58:26 +01:00
d662b4a9b4 Exclude play-services-oss-licenses library from F-Droid build (#814) 2020-01-08 15:57:35 +01:00
501ac36040 Reduce size of RoomDetailFragment 2020-01-08 15:05:20 +01:00
7575cb286e Show skip to bottom FAB while scrolling down (#752) 2020-01-08 15:05:20 +01:00
c60b4ddb5a Timeline: don't wait for realm notification to come back, use it right away to init 2020-01-08 13:59:43 +01:00
9970d7ffa0 SDK: get some better queries 2020-01-08 11:55:22 +01:00
2dd2a8db6c Emoji data source as singleton 2020-01-08 11:54:42 +01:00
8ef5c60e2e RageShake is enabled by default 2020-01-08 11:43:21 +01:00
03c3c9ae57 Timeline: clear unlinked should use new parameters 2020-01-07 18:15:48 +01:00
38c198fe02 Rx: fetch first before returning live data results 2020-01-07 18:15:07 +01:00
42c7421b05 Merge branch 'develop' into feature/stabilization 2020-01-07 14:42:38 +01:00
19fb3ce032 Merge branch 'develop' into feature/stabilization 2020-01-07 14:28:23 +01:00
5a7f4bed43 ktlint 2020-01-07 14:24:26 +01:00
03734a7ad5 Merge pull request #802 from vector-im/feature/sessionId
Identify a session with the userId and the deviceId
2020-01-07 14:23:09 +01:00
d710106bbb Clean code 2020-01-07 14:09:04 +01:00
f09bf61750 Room detail: try to get some better perfs with fetching data. LiveData is slow as we only use one HandlerThread at the time. Might want Realm 7.0 and frozen objects to rework that 2020-01-07 13:31:34 +01:00
f9487f8995 Work on timeline 2020-01-06 18:44:04 +01:00
99c523b710 Update libs 2020-01-06 18:43:34 +01:00
3cc15387ae Realm: compatch on launch 2020-01-06 18:41:09 +01:00
6245763577 Merge pull request #789 from vector-im/feature/christmas_fix
Auto completion for emojis
2020-01-06 14:20:44 +01:00
448552d287 Move list of Quick Emoji to Emoji Data Source 2020-01-06 13:48:34 +01:00
9ecceafb96 Move comment 2020-01-06 13:47:06 +01:00
92d7ebe94f Update changes 2020-01-06 13:47:06 +01:00
0e5fcd071c Completion on emoji: display the first 50 results 2020-01-06 13:46:37 +01:00
c8e67f8ab4 Completion on emoji WIP 2020-01-06 13:46:10 +01:00
5fa2acf60b Completion on emoji 2020-01-06 13:46:10 +01:00
9e73e95f55 Ensure there is never twice the same emoji 2020-01-06 13:46:10 +01:00
8b4c51139d Completion on emoji WIP 2020-01-06 13:46:10 +01:00
8597c2b9a2 Improve API 2020-01-06 13:46:10 +01:00
d88e5d8af8 DRY 2020-01-06 13:46:10 +01:00
c4fe0bdb7f Split into small methods 2020-01-06 13:46:10 +01:00
d73a1135ae Extract AutoComplete feature from RoomDetailFragment 2020-01-06 13:46:10 +01:00
ed097bcf37 Merge pull request #798 from vector-im/feature/settings_cleanup
Feature/settings cleanup
2020-01-06 13:41:50 +01:00
01db856a5d Improve (a bit) the devices list UX/UI 2020-01-06 10:51:30 +01:00
a00f51a264 Settings: rename "developer mode" to "advanced settings" 2020-01-06 10:32:36 +01:00
06b41af467 Merge pull request #793 from vector-im/outgoing_dm_verif
BottomSheet UX for verification
2020-01-06 10:22:27 +01:00
9e8217082c set homeserver field when populating room directory list
fixes #807

Signed-off-by: Marcus Hoffmann <bubu@bubu1.eu>
2020-01-06 03:48:53 +01:00
ce73007157 call /join/{roomIdOrAlias} instead of /rooms/{roomId}/join
The former endpoint doesn't work for joining over federation, the
server_name parameter is ignored.

Fixes #697

Signed-off-by: Marcus Hoffmann <bubu@bubu1.eu>
2020-01-06 01:01:59 +01:00
c2cd149299 Fix / accept button was not starting the verify sheet
Was launching start sheet, because request was not known by VerificationService. Due to message observer blocked trying to download keys..
2020-01-03 19:06:23 +01:00
08ed8d4fa7 Code review 2020-01-03 17:38:33 +01:00
f432d15757 Ensure key aliases are always computed the same way 2020-01-03 16:20:43 +01:00
215abea10a Introduce @SessionId 2020-01-03 16:20:43 +01:00
160927e7b5 Split code into several methods 2020-01-03 16:20:43 +01:00
c2e7e33050 Update SessionParamsEntity primaryKey to include deviceId 2020-01-03 16:20:43 +01:00
455448806d Merge pull request #799 from vector-im/feature/fix_crash
Fix crash when opening room creation screen from the room filtering screen
2020-01-02 18:57:17 +01:00
a969443517 Fix crash when opening room creation screen from the room filtering screen 2020-01-02 18:53:35 +01:00
1bd85082c3 Auto-review 2020-01-02 18:45:44 +01:00
de1d79b637 Remove Preference divider and cleanup prefs 2020-01-02 18:27:46 +01:00
8e478e78e1 Disable pref unused 2020-01-02 18:17:54 +01:00
96c9293edc Rageshake: vibrate 2020-01-02 18:15:23 +01:00
5c26f66523 Rageshake: settings for sensitivity 2020-01-02 17:42:44 +01:00
d1233e8470 Fix / tap on accept shows request button instead of start 2020-01-02 17:04:41 +01:00
5a24f78c05 Hide non working settings (#751) 2020-01-02 16:24:31 +01:00
bf28f14b8b Fix / Decline request was not implemented 2020-01-02 16:13:13 +01:00
703a1a034d Developer mode: hide show (decrypted) source actions 2020-01-02 16:11:44 +01:00
7d744f7d7f Developer mode: UI
And some cleanup
2020-01-02 16:01:47 +01:00
8dff196716 Device list: remove the detail dialog: handle the actions directly in the list 2020-01-02 15:44:47 +01:00
52c25b803f cleaning 2020-01-02 15:16:45 +01:00
6b2703f6ce Device list is now on a dedicated Fragment
New request to get info on the current device for VectorSettingsSecurityPrivacyFragment. The whole device list is only retrieved in the new Fragment
2020-01-02 15:05:17 +01:00
b26318f15c Fix / Cancel messages was not sent 2020-01-02 12:51:12 +01:00
f541661059 Use workers to send verification messages 2020-01-02 11:52:27 +01:00
e32d242e38 Timeline: remove use of isUnlinked method as it slows down the insertion a lot 2019-12-31 12:58:43 +01:00
5b210df7c5 Manage done states + cleaning 2019-12-31 10:36:10 +01:00
787908287c Member events: cache all over the session 2019-12-31 08:07:32 +01:00
935b3d7f3f cleaning 2019-12-30 20:18:08 +01:00
8156b754c1 RecyclerView: introduce view pool 2019-12-30 19:54:39 +01:00
03fd474aa8 Member events: try to cache (WIP) 2019-12-30 19:53:36 +01:00
3c4506cb58 merge madness ?? 2019-12-30 19:52:48 +01:00
3eed9b5083 cleaning 2019-12-30 18:42:32 +01:00
6bf3a703df BottomSheet UX 2019-12-30 18:01:06 +01:00
2152af8851 klint 2019-12-30 17:54:44 +01:00
5b33a42f8a FIx / missing strings after merge 2019-12-30 17:36:33 +01:00
a73cd61b96 WIP 2019-12-30 15:16:11 +01:00
4edd5e3530 Added SAS do not match api 2019-12-30 14:32:58 +01:00
4c0cbca4cb Support .verification.ready event 2019-12-30 14:32:58 +01:00
308b15b908 Fix / m.key.verification.key was not sent in toDevice mode 2019-12-30 14:32:04 +01:00
38906084d1 WIP 2019-12-30 14:32:04 +01:00
0997d9abf4 Merge branch 'develop' into cross_signing 2019-12-30 14:27:47 +01:00
6ad914154a Update some libs 2019-12-30 10:46:25 +01:00
cba7e460eb Action bottom sheet: fix deprecated constraints 2019-12-27 18:54:28 +01:00
6794173321 Room detail: fix crash with banner 2019-12-27 18:54:07 +01:00
92f4288d3e Realm: update realm lib version 2019-12-27 17:16:44 +01:00
8109262cbb Home: fix double tab selection 2019-12-27 17:16:30 +01:00
037bf45884 Sync: use foreground service on every android version 2019-12-27 17:09:57 +01:00
833a5a37a2 Pill: fix blink and clean files 2019-12-27 10:24:58 +01:00
00f316ba5d Room members: introduce RoomMemberEntity to be able to query. Still work to do. 2019-12-26 19:51:03 +01:00
dfd8181754 Room profile: start creating some classes and use shared action. 2019-12-20 20:28:27 +01:00
90f2199eb7 Merge pull request #785 from vector-im/feature/initial_sync
Feature/initial sync
2019-12-20 18:18:32 +01:00
63828bc159 Merge branch 'develop' into feature/initial_sync 2019-12-20 17:55:04 +01:00
35b4d90e0d ktlint 2019-12-20 17:54:35 +01:00
4fe9c52737 Move permission to the main AndroidManifest 2019-12-20 17:54:02 +01:00
c54358831f Group throwable extension together 2019-12-20 17:45:32 +01:00
a9d016ae79 Merge branch 'develop' into feature/room_profile 2019-12-20 16:43:16 +01:00
fcdaf14b01 Merge pull request #786 from vector-im/feature/room_alias_rendering
Autocompletion and pills for rooms and groups
2019-12-20 14:58:38 +01:00
83126d5f55 Fix android tests not working 2019-12-20 11:54:59 +01:00
e13281dc97 Update CHANGES and clean code 2019-12-20 11:27:26 +01:00
3cc65b1e71 ktlint 2019-12-20 11:05:54 +01:00
0ccb975d43 Disable MatrixLinkify 2019-12-20 11:04:06 +01:00
54f2ac0d8c Better comment 2019-12-20 10:59:41 +01:00
3ee5a7f54d Better code 2019-12-20 10:55:08 +01:00
3b0624ea40 Fix issue with "in reply to" link 2019-12-20 10:54:48 +01:00
c992d32afd Improve algo 2019-12-20 10:23:45 +01:00
c5739abe32 Update changes.md 2019-12-20 10:16:17 +01:00
3ac473d945 Remove extra blank line 2019-12-20 10:15:53 +01:00
c79b35b089 Autocomplete item layout 2019-12-20 10:15:11 +01:00
8dce98c538 Autocompletion: group (including pills for groups) 2019-12-20 02:54:48 +01:00
543c07fd69 Render pills for room links 2019-12-20 01:23:45 +01:00
05a788453f More generic name 2019-12-20 00:47:47 +01:00
c31b64771b Autocompletion: disable animation on the recycler view items 2019-12-20 00:42:19 +01:00
92f43a591a Autocompletion for room canonical alias 2019-12-20 00:38:42 +01:00
3a829bdfe8 Fix command truncation 2019-12-20 00:05:04 +01:00
237b22df59 Fix lots of trouble with the completion popup (resize, change mode, etc.) - next step 2019-12-19 20:31:36 +01:00
c18be94986 Fix lots of trouble with the completion popup (resize, change mode, etc.) 2019-12-19 20:03:10 +01:00
d342356f29 Add missing state events to the list (not sure about the side effects) 2019-12-19 19:48:30 +01:00
07817b69c2 Rename some event type 2019-12-19 19:46:09 +01:00
e73970d61b Render aliases and canonical alias change in the timeline 2019-12-19 19:39:35 +01:00
0eb0870d6c AvatarRenderer: allow to pass GlideRequests too (fix home group avatar) 2019-12-19 18:29:46 +01:00
55748a4af4 Merge branch 'develop' into feature/initial_sync 2019-12-19 17:49:45 +01:00
51d6b8828d Version++ 2019-12-19 16:46:01 +01:00
358fcb6b34 Merge branch 'release/0.11.0' 2019-12-19 16:44:27 +01:00
9a7cd3f270 Merge branch 'release/0.11.0' into develop 2019-12-19 16:44:27 +01:00
92315a4189 Prepare release 0.11.0 2019-12-19 16:44:14 +01:00
a6afd2e904 Timeline: handle failure when navigating to an unknown event (+ clean some files) 2019-12-19 16:10:59 +01:00
156cc1aa4a Import Strings from Riot 2019-12-19 15:50:18 +01:00
0d36e9d8a6 Merge pull request #779 from vector-im/feature/fix_some_crashes
Fix some crashes and issues
2019-12-19 14:02:19 +01:00
13439769a1 Update wording 2019-12-19 14:01:58 +01:00
7bb8cb0682 Permalink: fix nav to same room 2019-12-19 13:42:15 +01:00
a4ea9a09ad Room factory: add scope to avoid recreate all the dependencies 2019-12-19 13:41:57 +01:00
bf69810f8f Bottom sheet event preview for Sticker 2019-12-19 12:05:47 +01:00
bb9510e59b Create Size data class 2019-12-19 12:05:30 +01:00
4b0dfa49f4 Limit sticker size in the timeline 2019-12-19 11:44:07 +01:00
6652965e48 Ignore lint issue 2019-12-19 10:46:11 +01:00
94125a0215 Merge branch 'develop' into cross_signing 2019-12-19 10:15:47 +01:00
d97402f757 Merge pull request #767 from vector-im/dm_verif_incoming_timeline
Dm verif incoming timeline
2019-12-19 10:12:55 +01:00
5bde7b9f17 Read marker: fix banner visibility when following permalink 2019-12-19 09:58:05 +01:00
c8f0c83cd3 Timeline: don't retry automatically to avoid totally blocking pagination 2019-12-19 09:57:49 +01:00
b0ff2cb4bb cleanup 2019-12-18 19:31:10 +01:00
648691656a Disable click on Stickers (#703) 2019-12-18 19:20:44 +01:00
7eae85a394 Add a ZeroItem to avoid automatic scroll when the breadcrumbs are updated from another client 2019-12-18 18:41:46 +01:00
123ffe9f9c Cleanup 2019-12-18 17:00:18 +01:00
7697278bb2 LiveObservers: launch directly coroutines 2019-12-18 16:59:45 +01:00
c48a439eea Add @JvmStatic for performance reasons.
See https://github.com/airbnb/MvRx/wiki/Advanced-Concepts#mvrxviewmodel
2019-12-18 16:03:10 +01:00
9d26ba3186 Fix rendering issue with HTML formatted body 2019-12-18 12:33:51 +01:00
08970ad8c1 Fix a crash on public room list
It's maybe a workaround, as it should not happen, but at least it will not crash anymore
2019-12-18 09:56:58 +01:00
4c88c12cfe Initial sync, start the sync thread or the sync service 2019-12-17 18:46:19 +01:00
79f11ad686 Prevent crash when mimetype is null 2019-12-17 17:49:28 +01:00
7fa76b9d35 Prevent crash when opening unknown room, which should not happen... 2019-12-17 16:35:04 +01:00
65faedb06b BugReport screen: improve UX when description is too short (reported by Matthew) 2019-12-17 14:26:49 +01:00
1ceddd9607 Rageshake: log resumed screens and add the log verbosity ON/OFF to the rageshakes data 2019-12-17 14:05:58 +01:00
42cdb1db11 Fix crash reported by rageshake: writeToFile may throw exceptions 2019-12-17 12:26:45 +01:00
1c727c1ee4 Fix crash reported by rageshake 2019-12-17 10:42:58 +01:00
2316c98a65 Merge branch 'develop' into feature/initial_sync 2019-12-16 19:11:04 +01:00
a4aa38ee43 Fix new issue on permalink click 2019-12-16 17:14:26 +01:00
4a11d028c0 Merge pull request #706 from vector-im/feature/handle_matrix_to
Feature/handle matrix to
2019-12-16 15:50:21 +01:00
08d005a611 fix merge 2019-12-16 15:44:32 +01:00
c286f2a744 ktlint 2019-12-16 15:43:58 +01:00
89b414e8fe Merge branch 'develop' into dm_verif_incoming_timeline 2019-12-16 15:30:39 +01:00
e2b4899b36 Internal review 2019-12-16 15:21:24 +01:00
aa82cd2064 Update CHANGES 2019-12-16 15:16:46 +01:00
bc568343a2 Open matrix.to with a loader 2019-12-16 15:16:46 +01:00
abf0796794 Room alias and matrix.to link: we can now open a room though roomAlias as long as it's a joined one 2019-12-16 15:16:46 +01:00
02febfb01b Start handling room alias 2019-12-16 15:09:41 +01:00
91c98d4bfb Permalink: start handling permalink from outside the app 2019-12-16 15:05:55 +01:00
cfee6a43fd Merge pull request #760 from vector-im/feature/diff_match_patch_submodule
Use diff_match_patch sources as dependency
2019-12-16 15:02:29 +01:00
f14f1db0e0 Merge pull request #774 from vector-im/feature/breadcrumbs_fixes
Fix various UI issues
2019-12-16 15:00:21 +01:00
3feb2d8980 Merge pull request #768 from vector-im/feature/soft_logout
Handle invalid tokens gracefully
2019-12-16 14:57:11 +01:00
9fc3093c2c Fix issues... 2019-12-16 12:39:51 +01:00
7d910f2566 Auto review 2019-12-16 11:30:53 +01:00
0a0eda3e34 Display first letter of id if display name is empty 2019-12-16 11:08:48 +01:00
cecef5b8da Use id to get first letter, if display name is empty 2019-12-16 10:56:25 +01:00
c9ed95ed21 MatrixItem: create extension and check ids 2019-12-16 10:50:48 +01:00
3dfd6f5a69 Breadcrumbs: increase font size 2019-12-16 10:20:38 +01:00
8fc1400bab Improve user color computation and add unit tests 2019-12-14 10:38:50 +01:00
3e4b07cec3 Do not display " (IRC)") in display names 2019-12-14 10:19:11 +01:00
fbb1846694 Render default room name when it starts with an emoji (#477) 2019-12-13 21:23:18 +01:00
b435212c87 Use same default room colors than Riot-Web
And create MatrixItem
2019-12-13 20:50:32 +01:00
5dd46e82d7 Sync: make only one big transaction to avoid having bad states 2019-12-13 18:21:44 +01:00
3727affc15 cleaning 2019-12-13 18:00:04 +01:00
ff5305ee66 Fix / Verification Msg show fallback text in room summary 2019-12-13 17:56:06 +01:00
3953022258 Merge branch 'cross_signing' into dm_verif_incoming_timeline 2019-12-13 16:51:53 +01:00
1108ad5705 Scroll breadcrumbs to top when opened 2019-12-13 16:50:32 +01:00
b473aeb475 Merge pull request #765 from vector-im/sdk_reference_aggregation
Aggregate Event References for DM verifications
2019-12-13 16:45:27 +01:00
289c03e724 Code review 2019-12-13 16:41:55 +01:00
fe2be90002 Sync: use the CoroutineSequencer but need more tests 2019-12-13 15:37:38 +01:00
f073342954 Cleanup 2019-12-13 15:32:57 +01:00
38b40efac3 Using default values 2019-12-13 15:24:44 +01:00
e60bda7806 Better archi, better code, less bug... 2019-12-13 15:16:26 +01:00
92e60c939d ErrorFormatter: create interface 2019-12-13 14:09:27 +01:00
6e4830e325 ErrorFormatter: move it's declaration to VectorBaseFragment
and avoid duplicated code to manage default onError() in Login fragment
2019-12-13 13:58:49 +01:00
c6b98f3654 Soft Logout - display hard logout screen 2019-12-13 12:40:15 +01:00
12d54140e5 SoftLogout: also handle Unsupported mode 2019-12-13 12:08:37 +01:00
1de85daad9 SoftLogout: handle the case where user sign in with SSO on another account 2019-12-13 11:58:02 +01:00
210dcca0ee Fix / Handling multi open sessions 2019-12-13 11:22:39 +01:00
872baacfe4 Fix / verification conclusion not showing in non hidden mode 2019-12-13 11:20:19 +01:00
050519e998 Soft Logout - add a TODO, waiting for Synapse bugfix 2019-12-13 09:22:24 +01:00
1af44ce5f7 cleanip 2019-12-13 01:37:29 +01:00
8d1a36425d Cleanup 2019-12-13 01:29:49 +01:00
4e74b545ad SoftLogout: recovery with SSO 2019-12-13 01:25:58 +01:00
183d6b53bd SoftLogout: start handling SSO 2019-12-13 00:20:54 +01:00
14562f7285 SoftLogout: Inherit from Login stuff to get free forgot password functionality 2019-12-13 00:08:21 +01:00
17bcd680b0 organise packages 2019-12-12 23:28:54 +01:00
954019547d Soft Logout - update comment 2019-12-12 23:25:14 +01:00
782635ec8e Keep loading after success 2019-12-12 23:20:11 +01:00
e609f4a57e SoftLogout: epoxy: missing elements 2019-12-12 23:17:03 +01:00
907fa35547 Cleanup listener 2019-12-12 22:58:27 +01:00
00d0c34363 SoftLogout: use Epoxy 2019-12-12 22:58:15 +01:00
6811d31a6d Soft Logout - request homeserver login flow 2019-12-12 20:24:46 +01:00
a464c910f8 Fix crash with Realm 2019-12-12 19:43:16 +01:00
975de1dbed Cleaning / klint 2019-12-12 18:48:57 +01:00
d69881f321 cleanup 2019-12-12 17:41:16 +01:00
efc1f38f8c SoftLogout: adapt wording depending if all keys are backed up or not 2019-12-12 17:39:21 +01:00
dedc622140 Merge branch 'sdk_reference_aggregation' into dm_verif_incoming_timeline 2019-12-12 15:55:01 +01:00
b9e8da1fbb SoftLogout: clear notifications 2019-12-12 15:50:05 +01:00
d2fea275d8 SoftLogout: Loading UI 2019-12-12 15:33:22 +01:00
a5af949c15 SoftLogout: Store the info that the token is not valid anymore for a faster startup 2019-12-12 15:32:52 +01:00
9842cac504 More explicit val naming 2019-12-12 15:29:56 +01:00
35404b9a7f Fix merge 2019-12-12 15:05:13 +01:00
0afcb60e7d fix rebase 2019-12-12 14:31:01 +01:00
eab94b4f03 Sequencer: handle cancellation 2019-12-12 14:30:40 +01:00
cb595177a9 Fix test compilation 2019-12-12 13:37:17 +01:00
cb4d52c9fb Aggregate Event References for DM verifications 2019-12-12 13:37:17 +01:00
d0a3b4663e FIx / room transport was not updating state 2019-12-12 13:37:17 +01:00
f53b99a423 rebase 2019-12-12 13:37:17 +01:00
6da0693488 Convert KeyVerificationStart to data class 2019-12-12 13:37:17 +01:00
ea817ff1c5 fix rebase 2019-12-12 12:04:38 +01:00
62f0c6edc0 Fix / Use transport to start verification 2019-12-12 12:04:38 +01:00
e71ad0e515 Simple strategy to Ignore old verification messages 2019-12-12 12:03:59 +01:00
553604423e Support verification using room transport 2019-12-12 12:03:42 +01:00
be723256d3 FIx / room transport was not updating state 2019-12-12 10:49:42 +01:00
819d7182bb rebase 2019-12-12 10:49:42 +01:00
0a2ffdbdf1 Convert KeyVerificationStart to data class 2019-12-12 10:49:42 +01:00
4ac7331f3d fix rebase 2019-12-12 10:49:42 +01:00
7fc57bdf9b Fix / Use transport to start verification 2019-12-12 10:49:42 +01:00
d370f6d7c8 Simple strategy to Ignore old verification messages 2019-12-12 10:49:42 +01:00
46ef442139 cleaning 2019-12-12 10:49:42 +01:00
5f3dc73440 Code review 2019-12-12 10:49:42 +01:00
6137a88a6f Support verification using room transport 2019-12-12 10:49:42 +01:00
82af848c33 Fix / Verification Request Local Echo 2019-12-12 10:27:58 +01:00
6b61c95843 Coroutines: introduce a sequencer 2019-12-11 20:39:07 +01:00
261b4be287 Follow naming convention 2019-12-11 18:51:46 +01:00
205fc0d9d6 Soft Logout - issue with device display name 2019-12-11 18:49:44 +01:00
7699560458 Soft Logout - WIP 2019-12-11 18:35:30 +01:00
a193b2659d Create Uri extension and cleanup login code 2019-12-11 18:34:21 +01:00
bb85d41f05 Password could contain only spaces 2019-12-11 18:34:21 +01:00
9bfe904745 InvalidToken: Regular Signed out screen - move class 2019-12-11 18:34:21 +01:00
284dc8602f InvalidToken: Regular Signed out screen 2019-12-11 18:34:21 +01:00
29087d4a87 InvalidToken: Rework MainActivity args 2019-12-11 18:34:21 +01:00
18649ebddb InvalidToken: notify the app - WIP 2019-12-11 18:34:21 +01:00
d5935a13ac MatrixError: add some MatrixError from the spec and copy paste documentation 2019-12-11 18:34:21 +01:00
670d4dc34e MatrixError: rename the constants to follow the spec 2019-12-11 18:34:21 +01:00
5435a1739e SoftLogout: parse the parameter from server response 2019-12-11 18:34:21 +01:00
853518fbb2 Version++ 2019-12-11 18:34:06 +01:00
a673bf092d Show untrusted conclusions 2019-12-11 18:19:32 +01:00
0776a301ea Incoming DM verification handling in timeline 2019-12-11 16:49:34 +01:00
3a269be2ef Sync: fix crash on gplay flavor and reschedule when no network instead of showing a potential notification all the time 2019-12-11 16:24:30 +01:00
02f03e6b23 Fix test compilation 2019-12-11 16:00:53 +01:00
8305ce67dd Aggregate Event References for DM verifications 2019-12-11 14:44:31 +01:00
95deeb1be7 Merge pull request #730 from vector-im/feature/sdk_dm_verification
[SDK] MSC2241 / verification in DMs
2019-12-11 11:10:46 +01:00
0b93f34fa0 Use diff_match_patch sources as dependency 2019-12-11 10:51:09 +01:00
5338f93852 Sync: use a foreground service for initialSync. 2019-12-10 19:52:12 +01:00
73f0132d5d FIx / room transport was not updating state 2019-12-10 16:37:54 +01:00
902a9aa243 Merge branch 'release/0.10.0' 2019-12-10 15:47:36 +01:00
5915cebd6d Merge branch 'release/0.10.0' into develop 2019-12-10 15:47:35 +01:00
d91ff87fb9 Prepare release 0.10.0 2019-12-10 15:47:26 +01:00
c462d15bcf rebase 2019-12-10 14:23:56 +01:00
3cdd373368 Convert KeyVerificationStart to data class 2019-12-10 11:14:52 +01:00
e14602d1dc fix rebase 2019-12-10 11:14:52 +01:00
2aa9c3ea22 Fix / Use transport to start verification 2019-12-10 11:14:52 +01:00
bbd9738452 Simple strategy to Ignore old verification messages 2019-12-10 11:14:52 +01:00
36c5566b07 cleaning 2019-12-10 11:14:52 +01:00
ce63332a2f Code review 2019-12-10 11:14:52 +01:00
26b4b6e194 Support verification using room transport 2019-12-10 11:14:20 +01:00
79ef055bfb Merge pull request #746 from vector-im/feature/fix_various_issues
Fix 2 crashes reported by the PlayStore
2019-12-10 02:14:23 +01:00
3a761be6b4 Last cleanup 2019-12-10 01:28:07 +01:00
a9e2c31c32 Remove log for privacy 2019-12-10 01:08:05 +01:00
3ac53d20e9 Bugfix: react several times with the same reaction was possible (was a TODO). 2019-12-10 01:05:20 +01:00
3c18fd5335 Improve EmojiChooserFragment: improve filtering result: sort 2019-12-10 00:42:24 +01:00
f00f34b244 Improve EmojiChooserFragment: DI 2019-12-09 23:56:53 +01:00
63e0b15f3d Split EmojiDataSource - cleanup 2019-12-09 23:08:50 +01:00
80306f20df Split EmojiDataSource - avoid !! 2019-12-09 22:57:23 +01:00
2972177541 Split EmojiDataSource - cleanup 2019-12-09 22:46:39 +01:00
1ad8f47dc1 Split EmojiDataSource 2019-12-09 22:36:38 +01:00
8527d3f162 Improve emoji picker search result 2019-12-09 22:30:29 +01:00
99423bacb2 Cleanup 2019-12-09 22:09:17 +01:00
edc6c3dd4f Cleanup 2019-12-09 22:00:41 +01:00
a761a0dbd2 Cleanup 2019-12-09 21:56:03 +01:00
d431ab23c8 Cleanup 2019-12-09 21:33:10 +01:00
f0aa34774e Create RecyclerView extensions and cleanup all the recycler views 2019-12-09 21:31:56 +01:00
742136abe8 Create RecyclerView extensions and cleanup all the recycler views 2019-12-09 18:01:58 +01:00
36aba8554d Update CHANGES.md 2019-12-09 17:43:14 +01:00
da14ae432a Ensure we will not use EpoxyRecyclerView as a View anymore 2019-12-09 17:41:29 +01:00
9a01b4ace9 Make it through bunch of classes removing potential leaks 2019-12-09 17:41:29 +01:00
109c1fe482 Cleanup 2019-12-09 17:41:29 +01:00
dbd4525404 Make sure unhandled Rx error does not crash the app in production 2019-12-09 17:41:29 +01:00
c714266a81 Fix crash reported by the PlayStore.
NullPointerException: at im.vector.riotx.features.home.room.detail.RoomDetailFragment.updateJumpToReadMarkerViewVisibility (RoomDetailFragment.kt:524)
Also properly cleanup model build listener
2019-12-09 17:41:29 +01:00
8b1701e537 Merge pull request #738 from vector-im/feature/ban_reason
Displaay ban and other membership events reason
2019-12-09 14:53:06 +01:00
41d1b77370 Merge pull request #749 from vector-im/feature/hs_discovery
Support entering a RiotWeb client URL instead of the homeserver URL
2019-12-09 14:10:55 +01:00
ac75fe12bf Will be merged for next release 2019-12-09 14:09:03 +01:00
2f26f4b8bb Add default value (fix test compilation issue) 2019-12-09 14:09:03 +01:00
6d82ac7c59 Add default param values 2019-12-09 14:09:03 +01:00
411afb0bf3 Add shortcut for command length 2019-12-09 14:09:03 +01:00
57354cbd69 Add reason to slash commands 2019-12-09 14:09:03 +01:00
03d51281a2 Mistake 2019-12-09 14:08:06 +01:00
415511f3e0 Shortened lines 2019-12-09 14:08:06 +01:00
e0e778909d Better formatting 2019-12-09 14:08:06 +01:00
b9efc9f4bd Ensure user will never see 'null' in a String 2019-12-09 14:08:06 +01:00
872b14373b Better code 2019-12-09 14:08:06 +01:00
d28700e2bf Add reason for all membership events (https://github.com/matrix-org/matrix-doc/pull/2367) 2019-12-09 14:08:06 +01:00
18beef14cf "ban" event are not rendered correctly (#716) 2019-12-09 14:08:06 +01:00
e73923dca3 Merge pull request #741 from vector-im/feature/breadcrumbs
Breadcrumbs
2019-12-09 14:06:27 +01:00
94afd3e66d Add example of config without default homeserver url 2019-12-07 11:05:18 +01:00
5f540a5b45 Support entering a RiotWeb client URL instead of the homeserver URL during connection (#744) 2019-12-06 23:46:40 +01:00
a41617e8aa Fix lint false positive issue 2019-12-06 22:00:49 +01:00
ff1745b5dc Merge pull request #742 from vector-im/feature/fix_739
Fixes #739
2019-12-06 17:10:54 +01:00
8e3e9876b8 Fixes #739 2019-12-06 10:31:40 +01:00
9a4d8f87f6 Breadcrumbs: auto-review 2019-12-05 22:38:49 +01:00
aef76241a3 Breadcrumbs: changes 2019-12-05 22:09:55 +01:00
0768bd5c88 Breadcrumbs: nicer algorithm 2019-12-05 22:05:37 +01:00
65333e6031 Cleanup some Realm queries 2019-12-05 21:49:01 +01:00
849e7c613c Breadcrumbs: live update in correct order 2019-12-05 21:27:56 +01:00
60169d53d7 Breadcrumbs: add some visual attributes 2019-12-05 20:28:07 +01:00
4234c27af9 Version++ 2019-12-05 18:19:20 +01:00
f9c0256afd Merge branch 'release/0.9.1' 2019-12-05 18:17:55 +01:00
b9eb85e0a6 Merge branch 'release/0.9.1' into develop 2019-12-05 18:17:54 +01:00
6d8850b3d6 Prepare version 0.9.1 2019-12-05 18:17:36 +01:00
d88edd578f Merge pull request #740 from vector-im/feature/hot_fix_filter
Feature/hot fix filter
2019-12-05 18:14:46 +01:00
5373d9aa21 Breadcrumbs: fix layout issue 2019-12-05 17:49:45 +01:00
ad4d5e5c02 Breadcrumbs: limit number to 20 2019-12-05 17:43:23 +01:00
eb9775e307 Fix some crypto realm issues 2019-12-05 17:14:56 +01:00
aa9d66b991 Allow returning a value from an async transaction 2019-12-05 17:14:38 +01:00
4ff12605e9 Breadcrumbs: notify viewed rooms 2019-12-05 16:06:47 +01:00
7c561ae622 Breadcrumbs simple UI 2019-12-05 14:51:12 +01:00
cec08a20e5 Handle breadcrumbs from account data 2019-12-05 12:13:45 +01:00
fb8ba32fb4 Version++ 2019-12-05 09:46:36 +01:00
8e9ac8198d Merge branch 'release/0.9.0' 2019-12-05 09:44:06 +01:00
7a05207ae4 Merge branch 'release/0.9.0' into develop 2019-12-05 09:44:06 +01:00
6b39cf3b70 Prepare release 0.9.0 2019-12-05 09:43:58 +01:00
994759e11a Merge pull request #737 from vector-im/feature/otk_upload
Improve and cleanup OneTimeKey uploader
2019-12-05 09:38:05 +01:00
f31c1b69cb Remove delay when waiting for first sync to finish and add number of sent keys in the log 2019-12-04 16:52:55 +01:00
bdb9d2fbb8 Improve and cleanup OneTimeKey uploader
Fix boolean reset if request fails
Implement https://github.com/matrix-org/matrix-js-sdk/pull/493
2019-12-04 16:34:25 +01:00
9fb50dde32 Merge pull request #726 from vector-im/feature/sign_x_stabilization
Registration stabilization
2019-12-04 16:26:48 +01:00
a145aae0aa Avoid using !! 2019-12-04 15:38:16 +01:00
3623072f08 Attempt to properly cancel the crypto module when user signs out (#724)
Attempt to properly cancel the crypto module when user signs out (#724)
2019-12-04 15:38:16 +01:00
2717ad475a Merge pull request #699 from vector-im/feature/read_marker_rework
Feature/read marker rework
2019-12-04 14:12:41 +01:00
a6f8fe9317 Fix lint issue 2019-12-04 12:08:18 +01:00
f9eb80b4ec Simplify layout 2019-12-04 11:42:18 +01:00
9510d71cd3 Proposal for simple layout 2019-12-04 11:42:18 +01:00
e7a47ae32a Some cleanup 2019-12-04 11:42:18 +01:00
7890b929a7 Update CHANGES 2019-12-04 11:42:18 +01:00
0376de08f4 Clean files 2019-12-04 11:41:54 +01:00
90c472fef9 Read marker: fix mark all as read 2019-12-04 11:41:54 +01:00
8e873672a9 Read marker: change design 2019-12-04 11:41:54 +01:00
bba52e77d1 Read marker: fix merged items 2019-12-04 11:41:54 +01:00
64d73ae8e6 Read marker: handle the jump to read marker 2019-12-04 11:41:54 +01:00
d9982076f9 Read marker: continue rework [WIP] 2019-12-04 11:39:51 +01:00
ab489df83d Read marker: don't show unread on events we own 2019-12-04 11:33:06 +01:00
5e07e96bdb Read marker: start reworking how we manage it [WIP] 2019-12-04 11:33:06 +01:00
c495aa4914 Merge pull request #731 from vector-im/feature/fix_pills
Fix issue with pill: also send the text after the last pills
2019-12-03 18:19:36 +01:00
ff267ba9bc Update changelog 2019-12-03 16:36:44 +01:00
69f923383c Rename some classes with "Item" suffix, as a convention (ooi) 2019-12-03 16:32:25 +01:00
c69852c849 Make url clickable on the preview of event in the bottom sheet - avoid instantiating objects in the bind() method 2019-12-03 16:17:49 +01:00
6d7f2670df Make url clickable on the preview of event in the bottom sheet 2019-12-03 16:02:07 +01:00
71de8fdad3 Display pills Avatar in the message preview 2019-12-03 15:08:44 +01:00
998d9f2c59 Bugfix: Text after the last pill was not send 2019-12-03 14:48:41 +01:00
4f3da353e4 Add ellipsis char for action with another step 2019-12-03 13:23:44 +01:00
4154cb2b85 Improve wording of the title of read receipt list 2019-12-03 13:21:42 +01:00
3c6eb4bccf Rework FilterEntityQueries to fix issue of ghost Realm reference 2019-12-03 11:10:43 +01:00
7b4398404b Update wording for modular screens 2019-12-03 11:10:43 +01:00
9b882978ed Update modular link 2019-12-03 11:10:43 +01:00
49178dc633 Reduce some log level 2019-12-03 11:10:43 +01:00
490ce4b51d Fix issue of closing Realm in another thread (#725) 2019-12-03 10:05:10 +01:00
5b63856d96 Add log to detect if a realm instance is not properly closed 2019-12-02 18:33:31 +01:00
538c4d1a64 typo 2019-12-02 18:15:21 +01:00
1cadbb8eed Ensure credentials can be stored, even if they already exist 2019-12-02 13:48:20 +01:00
3f4f7457c7 Merge pull request #689 from vector-im/feature/signin_signup
Login and Registration
2019-12-02 13:47:28 +01:00
ebf21fe9d8 Merge pull request #687 from vector-im/feature/dat_pill
Send mention pills from composer
2019-11-29 16:28:34 +01:00
a343da594f Import Strings from Riot 2019-11-29 16:22:04 +01:00
938289e8eb ktlint 2019-11-29 15:44:08 +01:00
e23763e6db Update password from email twice 2019-11-29 15:43:39 +01:00
c06b8486ea Update wording 2019-11-29 15:36:54 +01:00
67fe776d91 Update Changes 2019-11-29 13:27:50 +01:00
10cc270273 ktlint 2019-11-29 13:27:26 +01:00
46d96429e0 Create ooi extension 2019-11-29 13:27:26 +01:00
9f9c418085 Pills: cleanup and robustness 2019-11-29 13:27:26 +01:00
c412006f0e Pills: render the avatar 2019-11-29 13:27:26 +01:00
5d3c376267 Pills: remove pills when a char is deleted 2019-11-29 13:27:26 +01:00
a3f8f138a6 Create showKeyBoard() extension 2019-11-29 13:27:26 +01:00
4b273e8746 Pills: simplify and improve the algorithm 2019-11-29 13:27:26 +01:00
f11cd47df3 Pills: cleanup 2019-11-29 13:27:26 +01:00
f984758d37 Pills: Daggerization 2019-11-29 13:27:26 +01:00
97766404d6 klint 2019-11-29 13:27:26 +01:00
38b93c527b Ensure received pills spans do not overlap 2019-11-29 13:27:26 +01:00
62bae67080 Code review 2019-11-29 13:27:26 +01:00
2a4cdec020 klint cleaning 2019-11-29 13:27:26 +01:00
6bd7257cf2 Send mention pills from composer 2019-11-29 13:27:26 +01:00
500eb113b6 Login screens: add some animation for Fragment transition (WIP) 2019-11-28 20:36:29 +01:00
1bec8c29b8 Add missing items for Status theme 2019-11-28 15:52:32 +01:00
0ecb23199c Login screens: add background color 2019-11-28 13:25:56 +01:00
33925fcf57 Login screens: fix crash on back navigation 2019-11-28 12:09:28 +01:00
bf9ce4f690 Merge pull request #714 from vector-im/feature/upgrade_gif_drawable
Force android-gif-drawable version
2019-11-28 10:24:40 +01:00
d2a4163dff Merge pull request #691 from vector-im/anoa/typo
Small typo fix
2019-11-28 09:55:16 +01:00
a0d7aef92e Force android-gif-drawable version
BigImageViewer update (updated the android-gif-drawable dep)
2019-11-28 09:39:04 +01:00
29f32cf8eb Login screens: fix regression on Back press 2019-11-27 16:48:28 +01:00
bb1c988a49 Login screens: Update the local pendingSessionData synchronously, store asynchronously 2019-11-27 16:36:35 +01:00
f063abe068 Login screens: keep PendingSessionData member up to date 2019-11-27 16:15:51 +01:00
db87d8f644 Login screens: Realm migration for Auth DB 2019-11-27 15:52:02 +01:00
efa858a337 Login screens: reorder reset action for clarity 2019-11-27 15:11:02 +01:00
fd90f3b9fc Login screens: reset SDK when home server url is deleted 2019-11-27 15:08:36 +01:00
aa51764068 Login screens: save isRegistrationStarted in DB 2019-11-27 15:04:00 +01:00
0a19ded167 Login screens: extract some classes 2019-11-27 14:34:07 +01:00
2e3763e8b4 Login screens: persist all data during login or registration 2019-11-27 14:26:06 +01:00
0c4e0890b1 Use Realm.use { } 2019-11-27 10:49:33 +01:00
e532d97ec1 Login screens: persist login mode 2019-11-27 10:04:41 +01:00
fbde8d7d18 ktlint 2019-11-26 18:04:42 +01:00
f96bea742e Login screens: split long lines 2019-11-26 18:04:00 +01:00
86bfdd011e Login screens: cleanup and ignore lint issue 2019-11-26 18:03:09 +01:00
d5c2c1938c Login screens: move user choices to the ViewState 2019-11-26 17:59:01 +01:00
fd18bcb97f Room profile: branch leave and notifications actions 2019-11-26 17:25:26 +01:00
ab4cab05cf Room profile: continue working on UI 2019-11-26 13:22:07 +01:00
7ce8a13ddf Login screens: prepare for saving user state 2019-11-26 13:11:31 +01:00
9bd4dbb65f Login screens: trim homeserver url 2019-11-26 12:40:17 +01:00
ee875b359b Login screens: update wording 2019-11-26 12:25:37 +01:00
3eb2e1655f Login screens: ensure homeserver version is supported - fix bug for SSO 2019-11-26 12:16:39 +01:00
9b207dd5dc Login screens: ensure homeserver version is supported 2019-11-26 11:39:33 +01:00
3f1540b54e Update wording 2019-11-26 09:51:35 +01:00
2b30925163 Login screens: doc for sign in 2019-11-26 09:49:53 +01:00
4690754f5f Merge pull request #702 from vector-im/feature/quick_fix
2 quick fixes
2019-11-25 18:48:43 +01:00
a9526cdd92 Login screens: use homeserver and identity server Uri provided along with the credential is any 2019-11-25 18:32:24 +01:00
ab4d42fb20 Login screens: mutualize the code which create session from the credentials 2019-11-25 18:16:57 +01:00
0014e8ef06 Login screens: rename variables 2019-11-25 17:32:27 +01:00
311d8ddf7b Login screens: fix layout issue 2019-11-25 17:24:31 +01:00
6cb3c222a9 Login screens: handle mandatory dummy stage automatically 2019-11-25 16:47:17 +01:00
f84ec08847 Code cleanup, restore comment, and fix regression on delay 2019-11-25 14:11:38 +01:00
9d0188cbf1 Create user from userId during initialSync 2019-11-22 20:28:52 +01:00
73462a3045 Clean some coroutine code 2019-11-22 20:04:11 +01:00
3eebf965e5 Fix emoji filtering not working 2019-11-22 15:19:09 +01:00
bba58d25e1 Do not show long click help if only invitation are displayed 2019-11-22 14:54:22 +01:00
fedb45b019 Login screens: add doc on signin 2019-11-22 14:35:39 +01:00
9b83f08654 Login screens: fix compilation issue (lint) 2019-11-22 14:24:22 +01:00
91fcf428dd Login screens: login with unknown email 2019-11-22 14:21:14 +01:00
7e1a279fd9 Update changelog (Fixes #34, Fixes #613) 2019-11-22 12:19:15 +01:00
8de1fa835b Improve M_LIMIT_EXCEEDED error rendering 2019-11-22 12:15:19 +01:00
af45c554fd Login screens: fix scroll issue 2019-11-22 12:15:19 +01:00
11bc7051fd Login screens: splash scrollable 2019-11-22 12:15:19 +01:00
489a594027 Login screens: ensure forms are scrollable on small screens 2019-11-22 12:15:19 +01:00
3f83c161e4 Login screens: fix code quality issues 2019-11-22 12:15:19 +01:00
e0a36b794f Login screens: fix lint issues 2019-11-22 12:15:19 +01:00
d2b516bdc2 Login screens: fix issue with reset password fragment navigation 2019-11-22 12:15:19 +01:00
37166caea2 Login screens: create sub method 2019-11-22 12:15:19 +01:00
9fa131c297 Login screens: reset password: display a better popup when link is not clicked yet 2019-11-22 12:15:19 +01:00
71ae3c4a8c Login screens: reset password: display a warning when the process is not finished 2019-11-22 12:15:19 +01:00
f87526e615 Login screens: reset password: add documentation 2019-11-22 12:15:19 +01:00
51f53e2ae9 Login screens: reset password: fix a few errors 2019-11-22 12:15:19 +01:00
ef35f0a044 Login screens: disable submit button when input is empty 2019-11-22 12:15:19 +01:00
5db3f51ddb Login screens: fix bad view binding 2019-11-22 12:15:19 +01:00
49f7ce3554 Login screens: better API 2019-11-22 12:15:19 +01:00
a3111dc2d8 Login screens: rename a few classes and packages 2019-11-22 12:15:19 +01:00
be95542110 Login screens: dummy stage shoud not be mandatory 2019-11-22 12:15:19 +01:00
6723a566c2 Login screens: refacto: create an AuthenticationWizard 2019-11-22 12:15:19 +01:00
90027cc4d5 Login screens: reset password WIP 2019-11-22 12:15:19 +01:00
810b226f21 Do not trim login nor password 2019-11-22 12:15:19 +01:00
42c5adf08d ktlint 2019-11-22 12:15:19 +01:00
5edfb78721 Cleanup errors and close keyboard at each login step 2019-11-22 12:15:19 +01:00
491a38a79f Login screens: send again 3pid 2019-11-22 12:15:19 +01:00
051f77087e Email format validation 2019-11-22 12:15:19 +01:00
1a603742d0 Cleanup 2019-11-22 12:15:19 +01:00
edb65f1787 Fix some errors 2019-11-22 12:15:19 +01:00
9af8355c07 Fix wording 2019-11-22 12:15:19 +01:00
dd44078297 Login screens: fix several issue with check email screen 2019-11-22 12:15:19 +01:00
a1f96a5b5a Login screens: typo 2019-11-22 12:15:19 +01:00
5770023593 Login screens: code cleanup 2019-11-22 12:15:19 +01:00
2789268c23 Login screens: MSISDN: check format and compute country code 2019-11-22 12:15:19 +01:00
eb4355890e Login screens: setup autofill 2019-11-22 12:15:19 +01:00
4e41156db3 Login screens: doc: registration forbidden 2019-11-22 12:15:19 +01:00
1a0b8b35f8 Login screens: Doc: adapt log to correct logs and fix typo 2019-11-22 12:15:19 +01:00
5f9cdcb4b4 Login screens: Doc: add msisdn stage 2019-11-22 12:15:19 +01:00
2e4c3f850a Cleanup 2019-11-22 12:15:19 +01:00
127916a8d9 Login screens: add MSISDN 2019-11-22 12:15:19 +01:00
248a584e1a Login screens: Add Msisdn - WIP 2019-11-22 12:15:19 +01:00
b8a3ad0c43 Login screens: Wait for email validation screen 2019-11-22 12:15:19 +01:00
1f161b7e23 Login screens: Add 3Pid step 1 2019-11-22 12:15:19 +01:00
23315ede92 Login screens: update wording 2019-11-22 12:15:19 +01:00
20ad3abb60 Login screens: set initial device name 2019-11-22 12:15:19 +01:00
ac377fceba Login screens: mutualize registration callback 2019-11-22 12:15:19 +01:00
abbe56acfa Login screens: UI: display errors properly 2019-11-22 12:15:19 +01:00
f74cabd145 Login screens: UI: style to prepare for landscape 2019-11-22 12:15:19 +01:00
0e2237226f Login screens: back button management for registration 2019-11-22 12:15:19 +01:00
62d5aba796 Login screens: back button management for SSO 2019-11-22 12:15:19 +01:00
f12e6c941d Login screens: sigin button for SSO 2019-11-22 12:15:19 +01:00
7caa8ce3bc Login screens: disabled registration 2019-11-22 12:15:19 +01:00
20f969d563 Login screens: fix issue on terms 2019-11-22 12:15:19 +01:00
a8f24e5c39 Login screens: a11y 2019-11-22 12:15:19 +01:00
8ae9544b48 Login screens: Loading on Captcha step 2019-11-22 12:15:19 +01:00
3758334824 Login screens: cleanup the Fragment stack after completing stage 2019-11-22 12:15:19 +01:00
6d8e5b892e Login screens: Show disclaimer dialog only in HomeActivity, now that RiotX supports registration 2019-11-22 12:15:19 +01:00
c18c140ec9 Login screens: Animate the logo in screen transition 2019-11-22 12:15:19 +01:00
1dc7dfc896 Login screens: registration fallback 2019-11-22 12:15:19 +01:00
1c03163a33 Login screens: prepare email and msisdn 2019-11-22 12:15:19 +01:00
9aa270c7ad Login screens: Perform dummy action when user does not want to enter an email -> account created! 2019-11-22 12:15:19 +01:00
3f80076fb1 Login screens: Terms step for registration 2019-11-22 12:15:19 +01:00
dfbf448bb7 Login screens: Captcha step for registration 2019-11-22 12:15:19 +01:00
95fc20dca0 Login screens: Registration: login/password step 2019-11-22 12:15:19 +01:00
381084b2ab Login screens: USER_IN_USE error 2019-11-22 12:15:19 +01:00
41ac2c6d70 Login screens: Registration WIP 2019-11-22 12:15:19 +01:00
08ea3d049e Login screens: Simple Input form (UI) 2019-11-22 12:15:19 +01:00
f24889230c Login screens: Captch screen (UI) 2019-11-22 12:15:19 +01:00
b5f9549a8b Login screens: Fix issues on button style 2019-11-22 12:15:19 +01:00
e3e38d4c8a Login screens: Fix issues on modular tile 2019-11-22 12:15:19 +01:00
416bef7903 Login screens: button theme 2019-11-22 12:15:19 +01:00
823acebf78 Login screens: harmonize styles for containers 2019-11-22 12:15:19 +01:00
3e91125872 Fix issues 2019-11-22 12:15:19 +01:00
9a628c7b5d ktlint 2019-11-22 12:15:19 +01:00
fb46a14172 Fix compilation issue after rebase 2019-11-22 12:15:19 +01:00
ca4e75a1a0 Login screens: Fix a few bugs 2019-11-22 12:15:19 +01:00
2871e4f5b1 Login screens: forget password screens 2019-11-22 12:15:19 +01:00
b7bfb20a2e Login screens: login and registration fallback 2019-11-22 12:15:19 +01:00
a1aa16715d Login screens: move elements from ViewState to ViewModel 2019-11-22 12:15:19 +01:00
55add4734d Login screens: Fix Other rendering issue 2019-11-22 12:15:19 +01:00
2849e1f846 Login screens: Splash: update icons 2019-11-22 12:15:19 +01:00
5b9876a20c Login screens: Fix navigation issue 2019-11-22 12:15:19 +01:00
adf299081d Login screens: re-click on an item submit it 2019-11-22 12:15:19 +01:00
d50b690523 Login screens: improve LoginFragment 2019-11-22 12:15:19 +01:00
c6b0ae63ea Login screens: handle loading Views and global navigation - WIP 2019-11-22 12:15:19 +01:00
3c93807fe6 Login screens: add some doc 2019-11-22 12:15:19 +01:00
7f1f98c2e5 Login screens: reset state when navigating back 2019-11-22 12:15:19 +01:00
6525314af8 Login screens: server ur form 2019-11-22 12:15:19 +01:00
da8d6fb4f4 Login screens: signup signin selection 2019-11-22 12:15:19 +01:00
fa6a9cab7e Login screens: server selection 2019-11-22 12:15:19 +01:00
bdfc4ad8a7 Login screens: splash screen 2019-11-22 12:15:19 +01:00
6ab7209e4d Handle navigation with VectorSharedAction 2019-11-22 12:14:48 +01:00
4485d1c685 Registration flow: SDK side 2019-11-22 12:14:48 +01:00
8b63f78d76 Add documentation on the sign up flow 2019-11-22 12:14:48 +01:00
2e87e0b4c1 fix typo 2019-11-21 01:41:59 +00:00
507134407b Update CHANGES.md 2019-11-19 15:10:41 +00:00
7663cd4e23 Merge branch 'develop' of github.com:vector-im/riotx-android into anoa/typo 2019-11-19 15:10:24 +00:00
ec2954200e Version++ 2019-11-19 09:58:48 +01:00
eb32c5455f Merge branch 'release/0.8.0' 2019-11-19 09:47:57 +01:00
fc367b3c3e Merge branch 'release/0.8.0' into develop 2019-11-19 09:47:56 +01:00
57dcd569f3 Prepare release 0.8.0 2019-11-19 09:47:12 +01:00
3673520ef6 Small typo fix 2019-11-18 13:30:03 +00:00
8aab46804b Profile room: continue working on it (try to get a nice animation) [WIP] 2019-11-15 20:37:36 +01:00
fe17050580 Merge pull request #685 from vector-im/feature/timeline_items
Feature/timeline items
2019-11-15 16:11:37 +01:00
0edc953a23 Room profile: start creating epoxy items and implementing UI 2019-11-14 20:13:59 +01:00
fa67509ac2 Room profile: start initializing all the classes + move some packages 2019-11-14 15:34:50 +01:00
ec40a8c969 Update CHANGES 2019-11-14 13:26:25 +01:00
6b1b3bec85 Clean code for klint 2019-11-14 13:25:04 +01:00
6bd6ececb7 Timeline: handle sticker events 2019-11-14 13:23:12 +01:00
c7db695e67 Timeline: handle join rules event 2019-11-14 12:21:55 +01:00
4cefdfedce Home: use detach/attach instead of hide/show 2019-11-14 11:18:45 +01:00
6ce241163e Merge pull request #679 from vector-im/feature/perf_again
Feature/perf again
2019-11-13 19:43:07 +01:00
79350899c5 Read receipts: use primary key to query 2019-11-13 19:21:14 +01:00
f265724a3c Login sso: handle failure 2019-11-13 19:20:03 +01:00
2e50d2a36e Clean code for klint 2019-11-13 11:38:30 +01:00
643c062858 Merge branch 'develop' into feature/perf_again 2019-11-13 10:44:59 +01:00
0e0db67aef Timeline: clear some resources when unbind 2019-11-12 20:34:19 +01:00
6dc5b126d6 Optimize room list processing 2019-11-12 19:53:07 +01:00
d2acabddd9 RoomDetail: fix enter/exit mode again after merge 2019-11-12 19:25:57 +01:00
ec71b53c1e RoomSummary: don't map read receipts 2019-11-12 19:25:21 +01:00
fc3d4187d1 Merge pull request #676 from vector-im/feature/long_click_room
Add help to reveal the long click on a room
2019-11-12 18:29:42 +01:00
a25f309990 Merge pull request #678 from vector-im/feature/block_user_menu
Add action to block user in the message action bottom sheet
2019-11-12 18:17:18 +01:00
5449592422 Add action to block user in the message action bottom sheet (following Nad's design) 2019-11-12 17:52:03 +01:00
19b415871d Extract displaymode, clear adapter on roomList/timeline and use commitNow when possible 2019-11-12 15:13:20 +01:00
6463f3439f Update Mvrx to 1.3 2019-11-12 15:11:52 +01:00
f2320f9571 Merge pull request #665 from vector-im/feature/color_theme
Ensure color is retrieved from current theme, even when theme change
2019-11-12 12:29:27 +01:00
fc91694bdd Merge pull request #673 from vector-im/feature/us
Update strings
2019-11-12 12:08:55 +01:00
dbb41108ef Improve layout 2019-11-12 11:50:16 +01:00
08c864bad7 Add help to reveal the long click on a room 2019-11-12 11:39:47 +01:00
9c5c65a243 Cleanup 2019-11-12 10:36:53 +01:00
b6199b1f27 Fix some issues with fragments managers (Home fragments) and lifecycle 2019-11-08 19:49:08 +01:00
38da54119a Merge branch 'develop' into feature/perf_again 2019-11-08 18:39:06 +01:00
65b09ad4f0 Merge pull request #675 from vector-im/feature/cleanup
Cleanup ViewModel for code clarity
2019-11-08 18:19:22 +01:00
603b8fae45 Add missing binding 2019-11-08 17:30:04 +01:00
50e2e6a823 Cleanup 2019-11-08 17:23:21 +01:00
bb237e3bbb Fix ViewModel for Signout 2019-11-08 17:21:46 +01:00
1bd2c0d220 Merge branch 'develop' into feature/perf_again 2019-11-08 17:09:22 +01:00
bcb811a7e8 Realm perf: use Dispatchers.Default for write, as we don't want to create so many threads (and we can only have one write transaction at a time) 2019-11-08 17:08:44 +01:00
ec4d7e29ec Ensure we use the correct viewModelProvider 2019-11-08 17:08:29 +01:00
a6df63f6d9 Fix crash 2019-11-08 16:56:45 +01:00
ea7213a5ae Split long lines 2019-11-08 16:16:42 +01:00
590a13334d ktlint 2019-11-08 16:04:41 +01:00
631448335d Rename stuff for code coherence 2019-11-08 15:36:12 +01:00
12376368c7 Rename class 2019-11-08 15:20:55 +01:00
f17564d743 Simple code 2019-11-08 15:08:50 +01:00
a6fcc7dca6 Move class to dedicated file 2019-11-08 15:07:01 +01:00
70bce9e7dd Ensure ViewModel follow the same pattern to handle actions 2019-11-08 15:05:11 +01:00
17f3614288 Perf: try to optimize room summary updates 2019-11-08 13:48:35 +01:00
238d1d87c6 Rename class 2019-11-08 13:31:39 +01:00
82f639b91f Rename to Shared 2019-11-08 12:09:08 +01:00
c8bc553caa Move class to dedicated file 2019-11-08 12:01:36 +01:00
fa5d44af65 Create common parent for Action view model, to handle navigation, action, or other type of event 2019-11-08 11:54:17 +01:00
cbdbe5033f Merge pull request #664 from vector-im/feature/room_list_actions
Feature/room list actions
2019-11-07 15:45:45 +01:00
61ac250e2b Merge branch 'develop' into feature/room_list_actions 2019-11-07 15:43:21 +01:00
04f72dfcb8 Clean code after Benoit's review 2019-11-07 15:19:12 +01:00
10ca5d94ea Fix issue after rebase 2019-11-07 14:29:08 +01:00
c5b8c69ae5 Merge pull request #668 from vector-im/feature/block_user
Block user and display ignored users list
2019-11-07 14:28:23 +01:00
d3d7f7cc61 Split long lines 2019-11-07 14:18:57 +01:00
b6bb714264 Display name and avatar of the user 2019-11-07 14:18:57 +01:00
a87310ac15 update comment 2019-11-07 14:18:57 +01:00
032e1b3d19 ktlint 2019-11-07 14:18:57 +01:00
d9f15c1d21 Block user possibility after reporting event content 2019-11-07 14:18:57 +01:00
99d09f71ad Changelog 2019-11-07 14:18:57 +01:00
9c952b6bc8 Display ignored users list 2019-11-07 14:18:57 +01:00
fbae3d27c2 Ignore/Unignore userIds 2019-11-07 14:13:29 +01:00
2f7d1f9f01 Ignored Users account data 2019-11-07 14:13:29 +01:00
114101699d Fix potential ignoring of account data (return@foreach) 2019-11-07 14:13:29 +01:00
f5c0dcb5ea Merge pull request #670 from vector-im/feature/fragment_factory
Feature/fragment factory
2019-11-07 13:59:46 +01:00
241220ce1f remove unused import 2019-11-07 13:59:21 +01:00
98d97e574c Fix regression when filtering emojis 2019-11-07 12:23:21 +01:00
96e610970a Finish the work 2019-11-07 12:08:17 +01:00
2027802f82 Add debug screen for all SAS emoji 2019-11-07 10:37:49 +01:00
54f93db632 RoomDetail : enter/exit special mode without waiting for draft to update 2019-11-06 20:08:19 +01:00
3af7ca9ab0 Retrofit: lazy init okhttp 2019-11-06 20:07:28 +01:00
93ef3edab3 Remove some use of sync write in realm 2019-11-06 18:47:11 +01:00
c85852262e Remove bad value 2019-11-06 18:28:16 +01:00
d0c3271628 Import string from Riot-Android and fix #671 2019-11-06 18:19:37 +01:00
ad9a48d5fa Clean code 2019-11-05 18:36:30 +01:00
219d1383e5 Fragments: use FragmentContainerView 2019-11-05 18:13:55 +01:00
8871280fab Fragments: use constructor injections in most of the Fragments 2019-11-05 18:12:04 +01:00
fb3e953e28 Merge pull request #667 from vector-im/feature/realm_cleanup
Import change form https://github.com/matrix-org/matrix-android-sdk/pull/505
2019-11-05 12:13:25 +01:00
10712fd6ab ktlint 2019-11-05 12:13:06 +01:00
9d478dbfe2 Import change form https://github.com/matrix-org/matrix-android-sdk/pull/505 2019-11-05 11:18:22 +01:00
3013d67c16 Fragment factory: start including the new version with FragmentFactory [WIP] 2019-11-04 19:33:56 +01:00
bee8c2d159 Ensure color is retrieved from current theme, even when theme change 2019-11-04 18:12:24 +01:00
945e5d5a74 Merge branch 'develop' into feature/room_list_actions 2019-11-04 17:17:43 +01:00
93df8c56a8 Fix compilation error and use mockk instead of manual mocking (prone to error) 2019-11-04 17:09:03 +01:00
cd1a964067 Merge pull request #649 from vector-im/feature/spoiler_support
Support spoilers in messages
2019-11-04 16:54:43 +01:00
e4b829f0cf Lift of 'return' 2019-11-04 16:53:51 +01:00
7206d84a6b Add FIXME 2019-11-04 16:51:45 +01:00
b3233d3eb7 Change spoiler bg colors 2019-11-04 16:50:32 +01:00
3c4c0ed46a Add /spoiler command 2019-11-04 16:50:32 +01:00
24f1262005 Merge refactoring 2019-11-04 16:49:53 +01:00
86667a6d8a Passes text color instead of context 2019-11-04 16:49:53 +01:00
42e0d0f769 Improve code to check url validity 2019-11-04 16:49:53 +01:00
e976055253 Support spoilers in messages 2019-11-04 16:49:53 +01:00
84d6c8ec16 Merge pull request #646 from vector-im/feature/search_reaction
Search reaction by name/keywords
2019-11-04 15:51:24 +01:00
9fdfd091ac Merge branch 'develop' into feature/search_reaction 2019-11-04 15:51:16 +01:00
e66766f41c Update CHANGES 2019-11-04 15:12:30 +01:00
6177e69855 Merge branch 'develop' into feature/room_list_actions 2019-11-04 15:11:20 +01:00
5c71cabb5f Clean code 2019-11-04 15:08:08 +01:00
6ebe5532c5 Room list actions: use new strings 2019-11-04 14:59:12 +01:00
8030c44f44 Room list actions: fix some UI issues and render selected notification state 2019-11-04 14:31:03 +01:00
a85b5af761 Merge pull request #641 from vector-im/feature/fix_crash
Fix crash
2019-11-04 14:28:31 +01:00
d780c74abf Merge pull request #657 from vector-im/feature/locales
Support Cyrillic script
2019-11-04 14:27:24 +01:00
5d7efa7f8f Merge pull request #660 from vector-im/feature/permission
Ask for permission to write external storage when uri comes from the keyboard (#658)
2019-11-04 14:26:12 +01:00
7e467443ed Merge pull request #651 from vector-im/feature/markdown_off
Markdown off
2019-11-04 10:23:21 +01:00
8439c337f7 Merge branch 'develop' into feature/markdown_off 2019-11-04 10:22:20 +01:00
151ad01038 Use RxBinding on searchView 2019-11-01 11:57:15 +01:00
73267442bb Fix / remove listener 2019-11-01 11:30:13 +01:00
43fd794c96 Ask for permission to write external storage when uri comes from the keyboard (#658) 2019-10-31 15:48:07 +01:00
36060fe332 Merge pull request #654 from vector-im/feature/timeline_message_code
Feature/timeline message code
2019-10-31 15:08:13 +01:00
3483debcc1 Little cleanup 2019-10-31 12:08:55 +01:00
4324f6abbd Add paragraph about a11y 2019-10-31 11:11:03 +01:00
43f8d8d8aa Merge pull request #656 from pvagner/a11y_file_type_selector
a11y: file type selector
2019-10-31 10:52:28 +01:00
fb1ff77ec4 Add string from Riot-Android 2019-10-31 10:09:27 +01:00
e355a7f6dd Changelog entry 2019-10-31 07:58:08 +01:00
33e35368fc a11y: better presentation for file type selector buttons to screen reader users
Signed-off-by: Peter Vágner <pvdeejay@gmail.com>
2019-10-31 06:36:28 +01:00
0e49a11e5e Merge pull request #648 from vector-im/feature/fix_#498
Feature/fix #498
2019-10-30 19:28:35 +01:00
d47cf7e932 Merge branch 'develop' into feature/fix_#498 2019-10-30 19:26:11 +01:00
101057520b Fix disambiguated with empty senderName 2019-10-30 19:25:24 +01:00
30b2e53002 Update CHANGES 2019-10-30 19:02:44 +01:00
5ab31a0ef5 Fix klint 2019-10-30 19:00:56 +01:00
b4ae331086 Timeline: render inline and block code 2019-10-30 19:00:00 +01:00
3f447df13c Support local script (imported from https://github.com/vector-im/riot-android/pull/3364) 2019-10-30 16:59:31 +01:00
3517873156 Timeline: Start handling code blocks. [WIP] 2019-10-29 19:08:48 +01:00
118870bc41 ktlint cleanup 2019-10-29 17:02:55 +01:00
d001ab5bef Merge pull request #640 from Dominaezzz/kotlinify
The last of the clean up.
2019-10-29 17:01:38 +01:00
7496a88dcd Markdown set to off by default (Fixes #412) 2019-10-29 16:22:12 +01:00
6567c5e6c7 Small kotlin improvement 2019-10-29 16:20:22 +01:00
361427488f Passphrase does not match (Export room keys) (Fixes #644) 2019-10-29 14:38:04 +01:00
7272343e6d Update comment 2019-10-29 14:32:05 +01:00
f0b3151d71 Merge pull request #639 from vector-im/feature/compile_tests
Build and run test on CI
2019-10-29 14:27:47 +01:00
035359cb35 Update CHANGES and clean code 2019-10-28 17:01:41 +01:00
57b640622b Sender Name: we should use disambiguated display name over senderName. PrevContent fallback is now handled in SDK 2019-10-28 16:48:55 +01:00
de4c389c76 klint cleaning 2019-10-28 15:12:49 +01:00
199456487c Search reaction by name/keywords 2019-10-28 14:36:15 +01:00
00ca5dc70a RoomListActions: handle room notification state. Still need to branch UI 2019-10-25 18:23:47 +02:00
a04802b238 CI / upgrade queue to xlarge 2019-10-25 11:14:17 +02:00
cb275aee37 Room list actions: start showing items and refact a bit RxStore 2019-10-24 19:11:49 +02:00
fbf73c7c8e shorter code 2019-10-24 18:52:34 +02:00
0040f8e924 Fix crash reported by Rageshake, stateKey can be null 2019-10-24 18:51:47 +02:00
6cca242f77 Fix Android test compilation issue 2019-10-24 17:49:34 +02:00
2929b8f617 Ensure Android tests compile and fix warnings 2019-10-24 17:24:42 +02:00
8422c6de17 Remove test sample 2019-10-24 17:21:19 +02:00
7c567b04bb Make test compile and pass 2019-10-24 16:36:12 +02:00
1ac99e92a6 Light refactoring.
Signed-off-by: Dominic Fischer <dominicfischer7@gmail.com>
2019-10-24 14:58:11 +01:00
5ab975cc5c General kotlinification.
Signed-off-by: Dominic Fischer <dominicfischer7@gmail.com>
2019-10-24 14:53:44 +01:00
2cf63ea92a Remove import java.util.* from kotlin files.
Signed-off-by: Dominic Fischer <dominicfischer7@gmail.com>
2019-10-24 14:53:10 +01:00
9e8d8ce878 Build and run test on CI 2019-10-24 15:52:40 +02:00
b766bce07d Version++ 2019-10-24 14:40:31 +02:00
01452efd8d Merge branch 'release/0.7.0' 2019-10-24 14:37:52 +02:00
0a0af221f0 Merge branch 'release/0.7.0' into develop 2019-10-24 14:37:51 +02:00
af08759af6 Prepare release 0.7.0 2019-10-24 14:37:28 +02:00
e52f0faaa7 Merge pull request #638 from vector-im/feature/filter
Fix 2 issues with share Activity: filter and room lists
2019-10-24 14:03:08 +02:00
8fa676d034 Share Activity: display rooms of all communities 2019-10-24 12:19:25 +02:00
b6594599c4 Rename member 2019-10-24 10:53:19 +02:00
8be8cc9ef7 Filter rooms when sharing element 2019-10-24 10:45:53 +02:00
9762d5be40 Room list actions: start creating all the components 2019-10-23 19:05:59 +02:00
b17b54d218 Merge pull request #637 from vector-im/feature/fix_room_summary
Feature/fix some room related stuff
2019-10-23 17:29:14 +02:00
187e2a26db Clean after Benoit's review 2019-10-23 17:26:56 +02:00
2f5fdbb7e2 Clean and fix lint 2019-10-23 16:20:38 +02:00
8b1411f533 Read marker: test if local echo before hitting the SDK to change read marker id + reduce a bit delay 2019-10-23 16:13:35 +02:00
bdee5e0687 Fix warning on Strings 2019-10-23 15:17:21 +02:00
ce4e244a3b Merge pull request #635 from vector-im/feature/strings
Import Strings from Riot
2019-10-23 15:09:58 +02:00
ff81715783 Import Strings from Riot 2019-10-23 14:18:40 +02:00
3196dcb57e MessageActions: disable if not synced atm 2019-10-23 12:20:03 +02:00
50bf6df7fe Room summary: fix some issues with local echo and sending event 2019-10-23 11:55:19 +02:00
02914495ce Merge pull request #632 from vector-im/feature/cleanuo
More cleanup
2019-10-23 10:26:54 +02:00
70a14f6350 Merge pull request #619 from vector-im/feature/attachments
Feature/attachments
2019-10-23 10:09:57 +02:00
cac5fb725a Code cleanup 2019-10-22 18:35:05 +02:00
dbc17ae515 Use AppCompatEditText instead of EditText 2019-10-22 18:23:53 +02:00
1de02c2fbb Ensure android.text.TextUtils will never be used again 2019-10-22 17:41:59 +02:00
6d55c15761 Fix lint issue 2019-10-22 17:41:21 +02:00
377a228f88 Improve code 2019-10-22 17:31:07 +02:00
2974f8b200 Merge branch 'develop' into feature/attachments 2019-10-22 17:27:15 +02:00
7388a408b8 Permissions: allow to provide the rationale message as it requires "context" and cannot be generic 2019-10-22 17:13:38 +02:00
f43dcb1183 Update room summary when saving local echo from DefaultRelationService 2019-10-22 16:54:48 +02:00
492ed3954a code cleanup 2019-10-22 16:54:48 +02:00
7890e83204 Merge pull request #630 from vector-im/feature/crypto_lock
Fix dead lock on crypto
2019-10-22 16:53:33 +02:00
00d1a2c380 Merge pull request #629 from vector-im/feature/fix_malformed_event_bug
Fix / event mapper persist the clear type in type
2019-10-22 14:47:08 +02:00
78dfd6b3e6 Fix potential lock due to nested synchronized(unknownSessionsFailure) 2019-10-22 14:20:43 +02:00
3abce34484 Add in existingRequest only if not filtered 2019-10-22 12:45:36 +02:00
4204ab262c Fix compilation issue 2019-10-22 12:42:01 +02:00
c7a4d34192 Attachments: handle rich content from keyboard 2019-10-22 12:37:59 +02:00
7416fec93e Do not decrypt event if session is unknown 2019-10-22 12:37:17 +02:00
3c40f64fb7 Add a few comments 2019-10-22 12:33:25 +02:00
b57c71b1c9 Remove unused import 2019-10-22 12:27:55 +02:00
fea54952d3 Code quality 2019-10-22 12:26:56 +02:00
3dc5ef54ab Fix compilation warnings 2019-10-22 12:21:50 +02:00
9092b97fb8 Merge pull request #622 from Dominaezzz/kotlinify
Some more clean up
2019-10-22 12:17:25 +02:00
cebd8136da Merge branch 'develop' into kotlinify 2019-10-22 12:16:20 +02:00
64b3568d51 Fix / event mapper persist the clear type in type 2019-10-22 11:57:11 +02:00
5e4e54153c Fix build error.
Signed-off-by: Dominic Fischer <dominicfischer7@gmail.com>
2019-10-21 22:52:58 +01:00
d071324694 Address review comments.
Signed-off-by: Dominic Fischer <dominicfischer7@gmail.com>
2019-10-21 22:29:36 +01:00
2c8cd89533 Handle rich content from app (WIP not compiling) 2019-10-21 19:02:28 +02:00
11b5c2c3ba Restore previous log level 2019-10-21 18:17:03 +02:00
9d7c4abb97 Merge pull request #615 from vector-im/feature/report_content
Add ability to report content
2019-10-21 18:13:44 +02:00
8e3234d188 Clean some code 2019-10-21 18:08:42 +02:00
b253722b98 Disable animation 2019-10-21 17:22:28 +02:00
fce576e3a4 Message action bottom sheet expanded 2019-10-21 17:22:28 +02:00
7ed7b18ccd Remove unused import 2019-10-21 17:22:28 +02:00
053bf7aeac Improve layout preview a bit 2019-10-21 17:22:28 +02:00
6ccd083451 Bottom sheet: fix RecyclerView usage 2019-10-21 17:22:28 +02:00
e39c4a7925 fix ktlint issue 2019-10-21 17:22:28 +02:00
abdb83b9fd Report content: change log 2019-10-21 17:22:28 +02:00
0bcc84cbd6 Try to fix the bottom sheet showing expanded by default #2
Seems ok now
2019-10-21 17:22:00 +02:00
b2f6fb8c91 Try to fix the bottom sheet showing expanded by default.
The second time it's open, it's not expanded... With this fix, the bug appear only at the third time...
2019-10-21 17:22:00 +02:00
36042ed145 Report content: red color for "block user" button 2019-10-21 17:22:00 +02:00
6ad1932fe5 Report content: custom reason 2019-10-21 17:22:00 +02:00
4a6237b50e Report content: confirmation dialogs 2019-10-21 17:22:00 +02:00
a7a19dab11 Report content: Service and REST request 2019-10-21 17:22:00 +02:00
8d0aa0437c Report content: UI menu 2019-10-21 17:21:26 +02:00
0a79b8b315 Cleanup 2019-10-21 17:21:26 +02:00
1dacfa6744 Rework message menu bottom sheet: remove sub Fragment and use Epoxy
- Also move some class to some dedicated package
2019-10-21 17:21:26 +02:00
723a007c39 Merge pull request #626 from vector-im/feature/myUserIdInject
Inject userId where possible
2019-10-21 16:01:48 +02:00
eaa1b04a4a Merge pull request #616 from vector-im/feature/big_font_regression
Fix regression after merge conflict: big font for messages with only big emoji
2019-10-18 15:03:43 +02:00
b1710fde60 Merge pull request #618 from vector-im/feature/mark_all_read
Mark all as read
2019-10-18 15:02:16 +02:00
cd0a40c18d Fix compil test issue 2019-10-18 14:34:44 +02:00
17636019e0 Change order of parameters 2019-10-18 14:32:34 +02:00
8078c39d6e Rename parameter 2019-10-18 14:29:32 +02:00
be94b2f90a Change order of parameters (no effect) 2019-10-18 14:28:12 +02:00
eff04be247 Change order of class (no effect) 2019-10-18 14:26:24 +02:00
3986839801 Inject userId 2019-10-18 14:25:19 +02:00
9e436483de Use klint 2019-10-16 10:39:42 +02:00
05a069be04 Attachments: fix themes for selection view 2019-10-16 10:04:33 +02:00
a1a71e2f1d App state: fix session 2019-10-16 10:04:11 +02:00
203da0f37e Mark all as read: not for all Room list and look if there is unread rooms 2019-10-16 10:03:30 +02:00
6cd04525aa Clean after Benoit's review 2019-10-15 11:37:22 +02:00
3c3c6aeac6 Removes the RoomList handling from a viewmodel as it doesn't have a ViewState and should be provided globally (IE, from application state) 2019-10-15 11:24:20 +02:00
e71311f576 Merge pull request #612 from vector-im/feature/browser_tab
Opening links from RiotX reuses browser tab (#599)
2019-10-15 11:05:06 +02:00
e4d0e0b0bf Update after Ganfra's review 2019-10-15 11:03:30 +02:00
28e5e42ab1 Merge pull request #614 from vector-im/feature/recycler_view_upgrade
Upgrade RecyclerView version to fix issues with a11y.
2019-10-15 10:47:59 +02:00
b860c3b0e3 Merge pull request #623 from Dominaezzz/typos
Fix some typos/errors in documentation.
2019-10-12 21:06:09 +02:00
f7f97e2098 Typos
Signed-off-by: Dominic Fischer <dominicfischer7@gmail.com>
2019-10-12 16:04:47 +01:00
e28e2dadb9 Some more clean up
Signed-off-by: Dominic Fischer <dominicfischer7@gmail.com>
2019-10-12 15:37:20 +01:00
c28be6adb0 Fix code quality check 2019-10-11 17:23:25 +02:00
c57af9cf3e Better formatting 2019-10-11 17:18:54 +02:00
679b0fff98 Use klint and update CHANGES 2019-10-11 17:12:53 +02:00
946fc36a26 Update contributing doc 2019-10-11 17:12:51 +02:00
13a5f784dc Merge branch 'develop' into feature/attachments 2019-10-11 17:05:03 +02:00
0ca8696e88 Attachments/Share: cleaning code and add contact picking 2019-10-11 16:41:04 +02:00
3622c0ecb4 Mark all as read 2019-10-11 16:22:32 +02:00
116d569fa8 Fix regression after merge conflict: big font for messages with only big emoji 2019-10-11 14:35:37 +02:00
ee5ebb4b83 Attachments: get better layout 2019-10-11 12:20:39 +02:00
0a0c344bfb Upgrade RecyclerView version to fix issues with a11y.
Also minor upgrade of some other libs
2019-10-11 10:10:16 +02:00
82fc97f619 Add dictionary specific to the project to VCS 2019-10-11 09:32:43 +02:00
20696353b8 Attachments: try to improve a bit the UI and adding options [WIP] 2019-10-10 19:12:16 +02:00
ae5b6bd2b9 Attachments/Sharing: refact a bit and handle more data. 2019-10-10 16:55:50 +02:00
1e11d4492b Merge pull request #610 from vector-im/feature/warnings
Fix all warnings and ensure they will not come back
2019-10-10 10:37:49 +02:00
6e39164b20 Sharing: start handling incoming share [WIP] 2019-10-09 20:05:37 +02:00
0a9ebb6bf6 Attachments: use a lib which handles for us all the intent stuff. 2019-10-09 19:51:00 +02:00
db009ce683 Fix warning on release build 2019-10-09 16:47:27 +02:00
55c80d3743 ktlint: ignore (experimental:annotation) rule 2019-10-09 16:44:45 +02:00
fbb23dfb66 ktlint: fix (no-empty-first-line-in-method-block) issues 2019-10-09 16:43:12 +02:00
e5779d425a ktlint: fix (experimental:multiline-if-else) issues 2019-10-09 16:40:44 +02:00
99d9704a50 ktlint: enable experimental features 2019-10-09 16:38:23 +02:00
3f8ddbe880 Opening links from RiotX reuses browser tab (#599) 2019-10-09 16:23:35 +02:00
30e43e47cd Fix filename ktlint issues 2019-10-09 15:44:01 +02:00
15dc4d6369 Fix ktlint issue automatically by running ./ktlint --android -v -F 2019-10-09 15:24:05 +02:00
dceb5ffd8d ktlint needs java 2019-10-09 15:19:07 +02:00
eec470f2ce Fix code quality issues 2019-10-09 15:15:15 +02:00
68db9c1cc0 Create a specific step for ktlint 2019-10-09 15:11:21 +02:00
cdfc402599 Fix Timber error in formatting 2019-10-09 15:06:38 +02:00
72d3f1e909 Configure ktlint 2019-10-09 15:06:38 +02:00
255fa11e89 Remove extra spaces 2019-10-09 12:49:00 +02:00
119e4c0d32 Fix warnings in the App 2019-10-09 12:49:00 +02:00
a9c474105a Fix warnings in the SDK 2019-10-09 12:49:00 +02:00
6de64cbedd Treat warnings from the kotlin compiler as errors 2019-10-09 12:49:00 +02:00
546c537e3b Upgrade build tools version from 3.5.0 to 3.5.1 2019-10-09 12:49:00 +02:00
36c5f9af13 Merge pull request #583 from vector-im/feature/invot_notification
Invitation notifications are not dismissed automatically if room is joined from another client (#347)
2019-10-09 12:48:07 +02:00
c2682c7f4b Merge pull request #609 from vector-im/feature/remove_event_bus
Stop sending bus event from SDK to App.
2019-10-09 12:47:06 +02:00
3073470c38 Attachments: start working on new UI (using system file picker) [WIP] 2019-10-08 19:59:09 +02:00
549f749682 Nest the try catch blocks 2019-10-08 14:00:11 +02:00
d4dfb76e80 Change constant value (for application upgrade reason) 2019-10-08 13:57:32 +02:00
e80191b2e0 Use mutableSet 2019-10-08 13:52:26 +02:00
c62c77f14c Stop sending bus event from SDK to App. 2019-10-08 12:00:40 +02:00
d6e5c5a857 Merge pull request #608 from vector-im/feature/a11y_review
Feature/a11y review
2019-10-08 11:16:08 +02:00
50a0660ab6 Invitation notifications are not dismissed automatically if room is joined from another client (#347) 2019-10-08 10:56:47 +02:00
ecdb3c3326 Merge pull request #591 from vector-im/feature/image_orientation
Fix issue with image orientation
2019-10-08 10:53:46 +02:00
2cd1d697fe Cleanup after Gafnra's review 2019-10-08 10:53:21 +02:00
3f9b7813bc Remove undocumented attribute and fix issue with image size when it contains exif rotation 2019-10-08 10:53:21 +02:00
f34f28b668 Add Exif orientation info to ContentAttachmentData 2019-10-08 10:52:54 +02:00
53572a3be6 Fix crash observed on the PlayStore 2019-10-08 10:52:54 +02:00
90b6199e10 Fix compilation issue 2019-10-08 10:45:45 +02:00
0aa299aa37 Private 2019-10-07 19:11:53 +02:00
d387c310c8 Cleanup code after a11y PR (#596) and fix some merging issues 2019-10-07 18:41:44 +02:00
8bd1fb08f7 Update template 2019-10-07 17:18:07 +02:00
ac6aff9175 Merge pull request #596 from pvagner/a11y
more a11y tweaks
2019-10-07 17:15:29 +02:00
adf0382d28 Merge pull request #603 from vector-im/feature/clear_corrupted_realm
Feature/clear corrupted realm
2019-10-07 16:35:23 +02:00
51554f7be0 Merge pull request #595 from vector-im/feature/lib_upgrade
Upgrade some dependencies
2019-10-07 16:22:30 +02:00
c1c1c3f999 Use latest coroutine lib: v1.3.2 2019-10-07 16:22:09 +02:00
8b04fdab77 Upgrade other libraries 2019-10-07 16:22:09 +02:00
f8b665a245 Fix warning 2019-10-07 16:21:18 +02:00
d68a9a5342 Split long line 2019-10-07 16:21:18 +02:00
5d2ff589f8 Upgrade gradle plugins 2019-10-07 16:21:18 +02:00
e85a0783fc Upgrade kotlin version 2019-10-07 16:21:18 +02:00
d6c278288d upgrade google play services plugin 2019-10-07 16:21:18 +02:00
4ad86a13a0 Upgrade the dependencies to the latest version 2019-10-07 16:21:18 +02:00
4f7ec91255 Merge pull request #604 from vector-im/feature/performance
Feature/performance
2019-10-07 16:08:39 +02:00
979b42aa30 Do not delete the crypto DB when deleting the session DB 2019-10-07 16:07:57 +02:00
fc49de080c Clean after benoit's review 2019-10-07 16:00:11 +02:00
d2b9668d4e Inject element where they are used 2019-10-07 15:25:54 +02:00
0632870be1 Merge pull request #605 from vector-im/feature/fixing_crashes
Feature/fixing crashes
2019-10-07 14:51:50 +02:00
8e39fd2a70 Clean after benoit's review 2019-10-07 14:45:58 +02:00
abbc62dd35 Clear corrupted db: add some logs 2019-10-04 19:42:27 +02:00
77de059dc9 Timeline: fix potential issues when starting/disposing the timeline 2019-10-04 19:37:44 +02:00
1931a1a4a4 Sync: use some suspending function where it makes sense 2019-10-04 19:37:23 +02:00
9c5987b682 SAS: fix potential crash 2019-10-04 19:36:22 +02:00
4e4fb4c565 Crypto store: fix potential issue with realm open/close process 2019-10-04 19:36:10 +02:00
0582d0f641 Timeline: fix some crashes 2019-10-04 12:12:39 +02:00
ef2af14529 Realm: remove RealmLiveData and use Optional for LiveData with potential null value 2019-10-03 19:19:53 +02:00
525da17678 Optimization: try to get a more performant reactions display management 2019-10-03 19:15:11 +02:00
aab41d7358 Code quality
Signed-off-by: Peter Vágner <pvdeejay@gmail.com>
2019-10-03 16:34:31 +02:00
5db3c81aa9 Add contentDescription to the jump to botton view
Signed-off-by: Peter Vágner <pvdeejay@gmail.com>
2019-10-02 20:51:57 +02:00
c763635845 Optimize: try to optimize a text message items 2019-10-02 20:36:52 +02:00
11d72b81f6 Add CHANGES.md entry 2019-10-02 20:04:33 +02:00
53543453b3 Login: add contentDescription to password reveal
Signed-off-by: Peter Vágner <pvdeejay@gmail.com>
2019-10-02 20:04:33 +02:00
d4be68191c Fix conflicts after rebase
Signed-off-by: Peter Vágner <pvdeejay@gmail.com>
2019-10-02 20:04:33 +02:00
7ef471ad0d Add contentDescription for the read receipts
Signed-off-by: Peter Vágner <pvdeejay@gmail.com>
2019-10-02 20:04:33 +02:00
73dd735ba6 Reactions: Add content descriptions to emoji chooser category tabs and individual emojis
Signed-off-by: Peter Vágner <pvdeejay@gmail.com>
2019-10-02 20:04:33 +02:00
2f6d3adb17 Message composer: describe the image button for dismissing as cancel rather than close
Signed-off-by: Peter Vágner <pvdeejay@gmail.com>
2019-10-02 20:04:33 +02:00
2edfd4e830 Message composer: add content descriptions to image buttons
Signed-off-by: Peter Vágner <pvdeejay@gmail.com>
2019-10-02 20:04:33 +02:00
ff7856c535 Optimize: start removing some constraint layout from timeline 2019-10-02 19:30:01 +02:00
650a151b18 Optimize: remove some epoxy building from main thread 2019-10-01 20:12:15 +02:00
275dd20412 Optimize: don't build OkHttp in Application OnCreate if we don't need it 2019-10-01 20:12:01 +02:00
44f6391cb4 Optimize: use LazyThreeTen 2019-10-01 20:11:15 +02:00
588e5d6e63 Hot fix: fix home navigation issue 2019-10-01 17:39:20 +02:00
716999eec6 Merge pull request #592 from vector-im/feature/read_marker
Feature/read marker
2019-10-01 13:55:09 +02:00
42e0a45f3f Merge branch 'develop' into feature/read_marker 2019-10-01 13:37:21 +02:00
31397869b2 Read marker: refine JumpToReafMarkerView 2019-10-01 12:33:38 +02:00
e842bf13b2 Timeline: fix back pagination state 2019-10-01 12:32:48 +02:00
aea34da81e Merge pull request #593 from vector-im/feature/group_avatar
Group avatar live
2019-10-01 11:45:43 +02:00
0814f53fed Group avatar: clean and optimize a bit. 2019-10-01 11:25:41 +02:00
b5c6c1af0d Realm: allow to clear corrupted session db 2019-09-30 19:09:10 +02:00
de30e7c1c6 Code cleanup 2019-09-26 19:00:38 +02:00
2d95fe921d after login, the icon in the top left is a green 'A' for (all communities) rather than my avatar (#267) - part2 (Toolbar) 2019-09-26 18:42:27 +02:00
84542326f4 HomeDetailFragment observe the selectedGroupStore instead of passing argument 2019-09-26 18:06:24 +02:00
53b1b89c47 after login, the icon in the top left is a green 'A' for (all communities) rather than my avatar (#267) 2019-09-26 17:30:30 +02:00
28315be7b9 Update CHANGES 2019-09-26 17:05:18 +02:00
8605095668 Fix quality code issues 2019-09-26 16:49:41 +02:00
737959f616 Merge branch 'develop' into feature/read_marker 2019-09-26 15:15:34 +02:00
7817f49072 Merge pull request #590 from vector-im/feature/quickfix
Fix my dirty code
2019-09-26 14:50:38 +02:00
a060431aaf Fix my dirty code 2019-09-26 13:51:44 +02:00
a3f561d788 Merge branch 'develop' into feature/read_marker 2019-09-26 12:19:40 +02:00
0ea878af8a Timeline: fix some more issues 2019-09-26 11:55:16 +02:00
99de40c980 Merge pull request #589 from vector-im/feature/media_upload_failure
Fix media upload failure
2019-09-26 11:30:54 +02:00
810a97c639 Import string from Android-SDK (#355) 2019-09-26 11:14:13 +02:00
f02f16d9c5 Use IEC units instead of SI units for file sizes 2019-09-26 10:41:52 +02:00
62b7a83a31 Update after Dominaezzz's review 2019-09-26 10:08:44 +02:00
4a80df082c Timeline: refact [WIP] 2019-09-25 19:14:12 +02:00
60f6b3ef02 Auto review 2019-09-25 17:08:58 +02:00
a0b1ef3216 Do not upload file to big for the homeserver (#587)
Also create a HomeServerCapabilitiesService which provide configuration of the homeserver.
Data are retrieved every 8 hours (as RiotWeb?)
2019-09-25 16:59:50 +02:00
1b66d1f746 Fix bad rendering of file item if the filename is long 2019-09-25 15:25:26 +02:00
643a2baabf Set click and long click listener even if information data are not displayed 2019-09-25 15:03:16 +02:00
cd62e87266 Human readable error 2019-09-25 14:44:34 +02:00
17cba1a432 Display progress in the timeline when uploading file 2019-09-25 14:39:33 +02:00
f077cc8467 Stop sending media in an infinite loop in case of error (part of #587)
Not sure how this commit fix it, but the issue is not observed anymore with it
2019-09-25 14:09:26 +02:00
f3039601bf throw Failure instead of meaning less IOException 2019-09-25 11:27:23 +02:00
4c04014e4d Do not log big data request (ex: file upload) 2019-09-25 11:26:49 +02:00
ae8bceacba Create Extension to convert a Response to a Failure -> expose to other object 2019-09-25 11:26:13 +02:00
9b91b6ea87 Create Extension to convert a Response to a Failure 2019-09-25 10:56:18 +02:00
b24a372262 Show "Clear message queue" option (in debug mode) 2019-09-25 10:50:13 +02:00
63b43de4b8 Read marker: final refact [WIP] 2019-09-24 22:52:43 +02:00
d1a61f29e4 Merge pull request #586 from vector-im/feature/persist_tab
Persist opened tab between session (i.e. after application restart)
2019-09-24 16:12:28 +02:00
f6373221de Dagger cleanup 2019-09-24 16:05:08 +02:00
ec0974f72c Merge branch 'hotfix/dimensionConverter' 2019-09-24 14:28:51 +02:00
b5f2f01c8d Merge branch 'hotfix/dimensionConverter' into develop 2019-09-24 14:28:51 +02:00
21d808c1ce Fix crash: MergedHeaderItem was missing dimensionConverter 2019-09-24 14:28:34 +02:00
1e963bc0dc Fix crash: MergedHeaderItem was missing dimensionConverter 2019-09-24 14:23:13 +02:00
0d80750507 Create interface for UiStateRepository and an implementation with SharedPrefs 2019-09-24 13:43:50 +02:00
1c9cf7a810 Dagger code cleanup 2019-09-24 13:40:03 +02:00
c6d01fbcf4 ReadMarker: extract from ViewModel the jump to read marker visibility logic as it's easier to deal with. 2019-09-24 12:57:32 +02:00
9e1ded941f Persist active tab between sessions (#503) 2019-09-24 12:29:37 +02:00
af433266c8 Move currentDisplayMode to the ViewState 2019-09-24 11:32:55 +02:00
05d09bf950 Merge branch 'develop' into feature/read_marker 2019-09-24 11:10:59 +02:00
6890f83810 Cleanup dead code 2019-09-24 10:47:29 +02:00
51568c30a6 Version++ 2019-09-24 10:23:51 +02:00
cc832633a5 Merge branch 'release/0.6.0' 2019-09-24 10:22:42 +02:00
e019ec6596 Merge branch 'release/0.6.0' into develop 2019-09-24 10:22:42 +02:00
eadea9016b Prepare release 0.6.0 2019-09-24 10:22:36 +02:00
6422d946c9 Merge pull request #584 from vector-im/feature/hasUnread
isEventRead() returns true if the event has been sent by the user
2019-09-24 10:17:52 +02:00
5cc3dc00e3 Merge pull request #581 from vector-im/feature/talk_back
Fix a few accessibility issues
2019-09-24 10:06:28 +02:00
5a2a9f908a isEventRead() returns true if the event has been sent by the user 2019-09-24 10:04:57 +02:00
c1f2e9f171 Fix a few accessibility issues - home menu (best compromise) 2019-09-23 17:48:13 +02:00
f6d34ec7fd Timeline: update state management 2019-09-23 17:43:37 +02:00
620ba279d8 Fix a few accessibility issues 2019-09-23 16:32:54 +02:00
3fcfa33364 Merge pull request #573 from vector-im/feature/notif_invit
Clean up push rules management and fixes several issues
2019-09-23 16:23:35 +02:00
546da0f173 Merge branch 'develop' into feature/notif_invit 2019-09-23 16:23:22 +02:00
001711d5a3 Merge pull request #574 from vector-im/feature/big_emoji
Embiggen messages with multiple emojis also for edited messages
2019-09-23 16:22:53 +02:00
8e1a964679 After Ganfra's review 2019-09-23 15:08:18 +02:00
b25a130db1 Rename DimensionUtils to DimensionConverter, and inject resources instead of context. 2019-09-23 14:39:52 +02:00
8a9e6497e8 Merge pull request #578 from vector-im/feature/fix_focus_login
Fix infinite focus on HS field
2019-09-23 10:05:43 +02:00
47e3797b7e Fix infinite focus on HS field 2019-09-23 09:44:32 +02:00
5cbc90e06a Embiggen messages with multiple emojis also for edited messages (#458)
And daggerize DimensionUtils
2019-09-20 19:22:42 +02:00
b6e18e4a8f Timeline: add badge also when unread without notif 2019-09-20 18:34:58 +02:00
7e29665fd0 Timeline: add some comments and checks 2019-09-20 18:34:31 +02:00
e04bf31faa Fix wrong "no network" banner 2019-09-20 18:18:55 +02:00
d25cf79b07 Cleanup 2019-09-20 17:50:57 +02:00
faa8e6bbb2 m.notice messages trigger push notifications (#238) 2019-09-20 17:50:57 +02:00
d3d4deb884 Rework Action (better kotlin code) 2019-09-20 17:50:57 +02:00
f6b8e0c479 Fix issue: push rules was not retrieved after a clear cache.
We now store push rules from the sync response
2019-09-20 17:50:57 +02:00
2a726f54a2 Remove userId from PushRulesEntity and PusherEntity objects 2019-09-20 17:50:15 +02:00
1197d4021d Fix regression on PushRulesApi 2019-09-20 17:50:15 +02:00
03f8120b7d Create enum for Push rules. Also add some TODOs 2019-09-20 17:50:15 +02:00
acd7a709de Dagger: create @UserId to inject userId 2019-09-20 17:50:15 +02:00
5651ea515b Merge pull request #570 from vector-im/feature/left_group
Handle left group from sync
2019-09-20 17:44:13 +02:00
9794b3a49d Fix compilation issue of F-Droid build 2019-09-20 17:35:10 +02:00
b3e1c3969d Little changes after review 2019-09-20 17:34:50 +02:00
90eeb68d36 Timeline: fix permalink towards an hidden event 2019-09-20 17:22:04 +02:00
d1ff3314a7 Timeline : add badge on jump to bottom view 2019-09-19 19:12:45 +02:00
f24bed17a2 Add missing issue number 2019-09-19 17:56:34 +02:00
a993a30203 Handle left group from sync 2019-09-19 17:08:22 +02:00
ea0809ff87 Merge branch 'develop' into feature/read_marker 2019-09-19 16:57:00 +02:00
9668487b6b Timeline/Read: update read receipt locally to 2019-09-19 16:17:58 +02:00
91cc78d2ad Merge pull request #552 from vector-im/feature/draft
Save draft of a message when exiting a room with non empty composer (#329)
2019-09-19 13:11:35 +02:00
562acc9702 Save Draft only when app goes to background. 2019-09-19 13:09:08 +02:00
dfab88ed95 Display room with draft in the Catchup screen 2019-09-19 13:09:08 +02:00
36866dd24e Save draft of a message when exiting a room with non empty composer (#329) 2019-09-19 13:09:08 +02:00
c728834273 Merge pull request #566 from vector-im/feature/redact_notification
Redact notification
2019-09-19 13:02:17 +02:00
f5020d0f63 Daggerization and cleanup of NotificationUtils 2019-09-19 13:01:00 +02:00
7da9cafcc2 Remove any notification of a redacted event (#563)
Also do some cleanup and kotlinification on the code
2019-09-19 13:01:00 +02:00
6f09eea248 Merge pull request #562 from vector-im/feature/notification_edited
Message Editing: Update notifications (#128)
2019-09-19 12:59:10 +02:00
468bd5bcc9 Message Editing: Update notifications (#128) 2019-09-19 12:57:58 +02:00
3169093c50 Quick fix on the no connection banner displayed when internet is available 2019-09-19 12:55:39 +02:00
d60d766354 Merge pull request #524 from vector-im/feature/indicate_unread_rooms
Add unread indent on room list
2019-09-19 12:50:55 +02:00
0ffb5e627e Cleanup injected constructors 2019-09-19 12:43:39 +02:00
b4a13f9504 Add unread indent on room list 2019-09-19 12:43:39 +02:00
88fb9667a3 Timeline: continue fixing issues + read marker 2019-09-18 20:21:42 +02:00
ffa8b7e73a Better fix 2019-09-18 11:24:29 +02:00
528958b3de Avoid export on env variable 2019-09-18 10:58:03 +02:00
3ffe2f7d40 Fix (again) issue with bad versionCode generated by Buildkite (#553) 2019-09-18 10:29:29 +02:00
3066d5f303 Timeline\ReadMarker: continue fixing issues 2019-09-17 19:38:05 +02:00
bf42b73713 Merge pull request #555 from vector-im/feature/room_search
Cleanup on the room search screen
2019-09-17 15:28:54 +02:00
ed93f4a6c1 Cancel any request properly 2019-09-17 14:55:57 +02:00
b3d649a4d9 Fix characters erased from the Search field when the result are coming (#545) 2019-09-17 14:55:57 +02:00
3739e50d46 Better error message for timeout 2019-09-17 14:55:48 +02:00
9bf484cf1e Create a Failure to handle cancellation, and use it to ignore cancellation on room search 2019-09-17 14:55:48 +02:00
6c2faff1f0 Version++ (0.6.0) 2019-09-17 14:53:50 +02:00
07fca0922b Merge branch 'release/0.5.0' 2019-09-17 14:50:55 +02:00
282de21708 Merge branch 'release/0.5.0' into develop 2019-09-17 14:50:55 +02:00
ba9d119892 Prepare release 0.5.0 2019-09-17 14:50:43 +02:00
4453f0ced9 Merge pull request #560 from vector-im/feature/no_network
Display a "No network" banner when the device has no network
2019-09-17 14:40:42 +02:00
77168bfd6a Merge pull request #558 from vector-im/feature/login_sso
Quick implementation of SSO login - Also handling of magic link
2019-09-17 14:28:04 +02:00
25e9a179d2 SyncThread: Fix issue when network is back and the app was in background: do not restart the thread 2019-09-17 14:26:30 +02:00
73ec0f5a83 NetworkConnectivityChecker: filter onConnected callbacks (several callback if Wifi and LTE is connected)
Also do not use merlinsBeard.isConnected, which return trus even if there is no internet access (ex: with Wifi hotspot)
2019-09-17 14:22:08 +02:00
993fa74252 Cleanup after BillCarsonFr's review 2019-09-17 11:24:37 +02:00
38fc4984fe Display a no network indicator when there is no network: Create a dedicated View 2019-09-17 11:13:00 +02:00
695d8cce00 Display a no network indicator when there is no network (#559) 2019-09-17 10:59:58 +02:00
07e99901e1 SecretStoringUtils -> move to internal package 2019-09-17 10:38:37 +02:00
20f53e9a58 Signout: propose the user to retry in case of error 2019-09-17 10:33:27 +02:00
ced72aff4f Revert change done to save alias for the client 2019-09-17 10:32:09 +02:00
fdaaca49c2 Code quality (bad import) 2019-09-16 19:27:13 +02:00
3485f023b0 All current notifications were dismissed by mistake when the app is launched from the launcher 2019-09-16 19:24:52 +02:00
384dd100e9 Daggerization and Kotlinification of SecretStoringUtils 2019-09-16 19:19:14 +02:00
1ba8a58219 Cleanup SecretStoringUtils, and delete keys when user signs out 2019-09-16 18:29:06 +02:00
69fb7bdf95 Timeline\Read marker: continue fixing potential issues 2019-09-16 18:14:41 +02:00
c8010561fc Rework on sign out task 2019-09-16 17:45:26 +02:00
1f127335bc Daggerization of RealmKeysUtils 2019-09-16 15:50:56 +02:00
138a210a73 Dagger: Screen component now exposes ActiveSessionHolder instead of Session 2019-09-16 14:43:39 +02:00
ca6bcde82d Re add the remove CurlLoggingInterceptor 2019-09-16 14:43:08 +02:00
6bda437f5d Auto configure homeserver and identity server URLs of LoginActivity with a magic link 2019-09-16 10:58:51 +02:00
5d6d0202a9 Timeline: try to fix some issues with permalink [WIP] 2019-09-14 14:11:41 +02:00
3e6b65e174 Handle M_CONSENT_NOT_GIVEN error (#64) 2019-09-13 18:21:56 +02:00
137dcab734 Curl login interceptor now log the AT (on debug mode) 2019-09-13 16:20:19 +02:00
b22b8fba02 Fix the mess up with OnBackPress support on Fragment 2019-09-13 15:55:33 +02:00
3ccdf4a244 Login: some cleanup 2019-09-13 15:35:44 +02:00
5fbd271b1c Login: add SSO support 2019-09-13 15:19:45 +02:00
db8ea0f5e8 Login: check login flow - step 1 2019-09-13 11:08:54 +02:00
a47a3ead1f Login: move login code to the ViewModel 2019-09-13 10:39:22 +02:00
05b2092ffc Login: move existing code to a Fragment, MvRx style 2019-09-13 10:07:55 +02:00
f4ab770be9 Merge branch 'develop' into feature/read_marker 2019-09-12 17:24:50 +02:00
6249a59203 Merge pull request #554 from vector-im/feature/build_number
Fix issue with bad versionCode generated by Buildkite (#553)
2019-09-12 17:24:46 +02:00
d4111d053d Read marker: only show banner until scrolled to read marker 2019-09-12 16:35:45 +02:00
618e9a4f52 Fix issue with bad versionCode generated by Buildkite (#553) 2019-09-12 16:17:44 +02:00
b8ebe3570b Timeline: refact epoxy attributes 2019-09-11 18:04:17 +02:00
f2c8d4ad02 Merge pull request #549 from vector-im/feature/third_party_invite
Fix rendering issue of accepted third party invitation event
2019-09-06 16:36:30 +02:00
be524472ec Merge pull request #546 from vector-im/feature/cleanup
Cleanup
2019-09-06 16:25:08 +02:00
1b82a1a24d Cleanup 2019-09-06 15:52:29 +02:00
cf0b331c3b Handle invite to the current user rendering 2019-09-06 15:48:42 +02:00
2a92a3dc80 Fix rendering issue of accepted third party invitation event 2019-09-06 14:34:52 +02:00
012840abba Progress in initial sync dialog is decreasing for a step and should not (#532) 2019-09-05 18:14:05 +02:00
a5975a099e Cleanup and document DefaultInitialSyncProgressService 2019-09-05 17:23:09 +02:00
38da4b9ee5 Cleanup and document DefaultInitialSyncProgressService 2019-09-05 17:02:03 +02:00
242e60fcaa Rename CryptoManager to DefaultCryptoService 2019-09-05 16:14:34 +02:00
a23be05cbf Better type 2019-09-05 16:04:41 +02:00
ed39b02924 Avoid using keyword for variable names 2019-09-05 16:04:41 +02:00
fe931b5361 Merge pull request #418 from Dominaezzz/kotlinify-1
Some more kotlinification
2019-09-05 16:02:30 +02:00
90d9cd0587 Merge pull request #416 from Dominaezzz/kt-remove_java_util
Remove most usages of the java.util package
2019-09-05 15:33:03 +02:00
9cedb18921 Merge pull request #538 from vector-im/feature/log_mgmt
Reduce release build log level
2019-09-05 15:24:04 +02:00
e89ba7b87b Update wording 2019-09-05 15:23:38 +02:00
902657c22a Merge pull request #537 from vector-im/feature/fix_crash
Fix crash due to missing informationData (#535)
2019-09-02 15:31:28 +02:00
eec2abf164 Reduce release build log level 2019-09-02 14:33:53 +02:00
6879cc8ca8 Fix crash due to missing informationData (#535) 2019-09-02 14:24:36 +02:00
fd6bbbd3b5 Fix issue with version name (Fixes #533) 2019-08-30 15:57:39 +02:00
0ff0b014a9 Version++ (0.5.0) 2019-08-30 15:07:04 +02:00
a89f0ddd1d Merge branch 'release/0.4.0' 2019-08-30 15:04:43 +02:00
fdc9e84dd5 Merge branch 'release/0.4.0' into develop 2019-08-30 15:04:43 +02:00
58f878fca9 Prepare version 0.4.0 2019-08-30 15:04:28 +02:00
88095e4bd9 Add entry in change file 2019-08-30 14:54:15 +02:00
47d22a3d5e Import translation from Riot and MatrixSDK 2019-08-30 11:21:43 +02:00
28e82cb8ea Merge pull request #531 from vector-im/feature/fix_crash_530
Fix / EmojiCompat not initialized
2019-08-29 17:46:51 +02:00
35817245cb refactoring, code review 2019-08-29 17:27:49 +02:00
75266f42bb Fix / EmojiCompat not initialized 2019-08-29 16:49:22 +02:00
95c4c9ce56 Merge pull request #527 from vector-im/feature/privacy
Privacy: remove log of notifiable event (#519)
2019-08-29 12:16:34 +02:00
ce5570105d Privacy: remove log of notifiable event (#519) 2019-08-29 10:36:45 +02:00
188a9aebfa Merge pull request #525 from vector-im/feature/read_receipt_cleanup
Feature/read receipt cleanup
2019-08-29 10:19:06 +02:00
c95223f5d2 Add long click support on unsupported event 2019-08-28 18:17:37 +02:00
ef0362ba9c Display Read Receipt on unsupported events 2019-08-28 17:31:31 +02:00
ea242f6737 Hide ReadReceipt View when it is not relevant 2019-08-28 17:17:37 +02:00
cbc08d834b Merge pull request #522 from vector-im/feature/fix_e2e_reply
Fix / regression on e2e reply and edit of reply
2019-08-28 10:38:22 +02:00
0ab6b33fb6 Merge branch 'develop' into feature/fix_e2e_reply 2019-08-28 10:38:12 +02:00
1b394527b6 cleaning + code review 2019-08-28 10:22:51 +02:00
a8f1388721 Merge pull request #520 from vector-im/feature/read_receipts_511
Improve read receipt design
2019-08-28 10:17:56 +02:00
166be4e289 Improve read receipt design 2019-08-28 09:56:10 +02:00
b49ccefe63 Merge pull request #521 from vector-im/feature/fix_dome_video_wont_play
Some video won't play
2019-08-28 03:43:35 -04:00
825760d17e Fix / regression on e2e reply and edit of reply 2019-08-27 17:05:04 +02:00
b5af62c3ea Some video won't play
VideoView fails to play some remote uri video on some device. For now video is downloaded locally in internal cache then played. This offers basic support before full media preview implementation
2019-08-27 16:50:02 +02:00
a51d96bf00 Merge pull request #325 from vector-im/feature/non_unicode_reaction
Accept non unicode reactions
2019-08-27 08:10:51 -04:00
7e142d201d Use EmojiCompat to build EmojiSpans from text 2019-08-27 11:06:52 +02:00
2be6058971 accept non unicode reactions 2019-08-27 10:58:21 +02:00
49d73f360e Merge pull request #494 from vector-im/feature/fix_441
Fix text diff removed linebreak
2019-08-27 04:36:03 -04:00
bd88d85a21 Merge branch 'develop' into feature/fix_441 2019-08-27 04:35:17 -04:00
be4fc5cce6 Merge pull request #493 from vector-im/feature/fix_358
Date change message repeats for each redaction until a normal message
2019-08-27 04:34:35 -04:00
704da1be55 Merge branch 'develop' into feature/fix_358 2019-08-27 04:34:24 -04:00
5d002532d3 Merge pull request #495 from vector-im/feature/fix_423
Slide-in reply icon is distorted
2019-08-27 04:22:02 -04:00
d4161e9a1a Fix text diff removed linebreak 2019-08-27 10:17:42 +02:00
7966ebef03 Date change message repeats for each redaction until a normal message 2019-08-27 10:16:11 +02:00
ed5faca5d2 Slide-in reply icon is distorted 2019-08-27 10:06:20 +02:00
51a4c93676 Read markers: continue working on ui 2019-08-23 16:54:32 +02:00
d8f449388c Read marker: start working on it (no UI) 2019-08-20 18:30:24 +02:00
8ca829d538 An error was displayed by mistake 2019-08-19 17:22:04 +02:00
e7819ce678 Merge pull request #496 from vector-im/feature/di_clean
Dagger clean
2019-08-19 16:41:50 +02:00
5402902bc2 Merge branch 'develop' into feature/di_clean 2019-08-19 15:04:26 +02:00
bc1350aaf5 Merge pull request #484 from vector-im/feature/timeline_read_receipts
Feature/timeline read receipts
2019-08-19 14:29:59 +02:00
fd74e3dfb1 Read receipts: clean code after review 2019-08-19 14:08:15 +02:00
e0628da1cb Dagger: use AssistedInjectModule for viewModel + use AssistedFactory for room dependencies 2019-08-14 19:09:56 +02:00
aa4e74e986 Merge pull request #487 from vector-im/feature/fix_ui_issues
Feature/fix ui issues
2019-08-14 18:20:08 +02:00
6cc0c0672e Merge pull request #474 from vector-im/feature/dev_suffix
Automatic "-dev" version suffix on non master branch
2019-08-14 18:15:44 +02:00
501474b720 Fix code quality issues 2019-08-14 14:53:40 +02:00
e11c66035c Theme: the action menu text items should use colorAccent 2019-08-14 14:19:21 +02:00
3d2d219d79 Room list: let the fab animation be quicker 2019-08-14 14:18:56 +02:00
63af03bedd List: add overScroll 2019-08-14 14:18:42 +02:00
d3827b8673 Read receipts: branch settings to show/hide them 2019-08-14 10:51:09 +02:00
4ca2531e47 develop branch will have version code from timestamp, to ensure each build from CI has a incremented versionCode
Other branches (master, features, etc.) will have version code based on application version.
2019-08-14 10:45:17 +02:00
4e8dc72439 Update CHANGES 2019-08-13 15:17:04 +02:00
25a4240a5a Merge branch 'develop' into feature/timeline_read_receipts 2019-08-13 15:16:10 +02:00
b9cfda23b6 Read receipts: just juste invisible on hidden avatars, to have a bigger touch zone 2019-08-13 15:06:00 +02:00
06dcf75a32 Read receipts: fix not appearing RR 2019-08-13 12:06:49 +02:00
21deb2551d Read receipts: handle read receipts set on filtered events + let BottomSheet takes a snapshot instead of being live. 2019-08-12 17:59:07 +02:00
70639f180c Read receipts: add read receipts bottom sheet 2019-08-08 19:59:20 +02:00
1dbb02a80d Read receipts: create custom view to use it wherever we want easily 2019-08-08 17:51:06 +02:00
825463d9cd Change package for NotificationAreaView 2019-08-08 17:50:33 +02:00
c313ce78cb Read receipts: sort descending by timestamp 2019-08-08 17:49:50 +02:00
39f58d048b Read receipts: fix dummy being overrided 2019-08-08 17:49:31 +02:00
3f792c7a84 Automatic "-dev" version suffix on non master branch 2019-08-08 16:57:03 +02:00
347dcb469a Version++ 2019-08-08 16:47:13 +02:00
9cd69d1e33 Merge branch 'release/0.3.0' 2019-08-08 16:45:03 +02:00
79fb1985aa Merge branch 'release/0.3.0' into develop 2019-08-08 16:45:02 +02:00
e216cd15a8 Prepare release 0.3.0 2019-08-08 16:44:53 +02:00
37fde374b3 Merge pull request #469 from vector-im/feature/versionCode_auto
Ensure versionCode is the wanted one for GPlay and F-Droid build
2019-08-08 16:32:10 +02:00
f7b471f141 Stop using BuildConfig.VERSION_CODE, it is not the correct value 2019-08-08 16:31:45 +02:00
93fd56a7ca Ensure versionCode is the wanted one for GPlay and F-Droid build 2019-08-08 16:30:44 +02:00
5a9d88e791 Merge pull request #473 from vector-im/feature/sync_room
Feature/sync room
2019-08-08 16:15:26 +02:00
eaf6a9923a Cancel sync request on pause and timeout to 0 after pause (#404) 2019-08-08 16:04:53 +02:00
d98567045c Read receipts: use a simpler strategy when it's initialSync 2019-08-08 15:03:36 +02:00
b4ce8748cb First step in handling read receipts 2019-08-08 14:32:11 +02:00
9d5433a857 Show sync progress also in room detail screen (#403) 2019-08-08 14:14:10 +02:00
6d4ee83e65 Merge pull request #472 from vector-im/feature/vectorPref
Dagger for VectorPreferences and /markdown command as a bonus
2019-08-08 12:43:22 +02:00
6e44cca17d Handle /markdown command 2019-08-08 12:09:05 +02:00
0a73887c70 Daggerization of VectorPreferences 2019-08-08 11:52:50 +02:00
7fef063e15 Merge pull request #468 from vector-im/feature/fix_realm_issues
Feature/fix realm issues
2019-08-07 18:05:06 +02:00
24f391dac0 Merge pull request #467 from vector-im/feature/playstore_crash
Feature/playstore crash
2019-08-07 17:10:49 +02:00
81c7f694d6 Import Strings form Riot 2019-08-07 16:10:50 +02:00
80e2fc0ca3 Merge pull request #466 from vector-im/feature/edit_history_item
Add "View Edit History" item in the message bottom sheet (#401)
2019-08-07 15:08:26 +02:00
9f53406e99 Fix crash (KotlinNullPointerException) observed on PlayStore 2019-08-07 13:35:44 +02:00
3584658c36 Fix crash (IllegalStateException) observed on PlayStore 2019-08-07 13:24:43 +02:00
12a0cbb400 Fix crash observed on PlayStore 2019-08-07 13:16:04 +02:00
20437446b4 Add "View Edit History" item in the message bottom sheet (#401) 2019-08-07 13:05:22 +02:00
35229882e3 Fix (edited) link can be copied to clipboard (#402) 2019-08-07 12:28:21 +02:00
a04f4421f6 Merge pull request #464 from vector-im/feature/splitApk
Split apk
2019-08-07 12:11:13 +02:00
af1e81f65e Remove unused react native lib, and ensure dependencies lib are explicitly declared 2019-08-07 11:53:59 +02:00
63f6081fa5 Split APK: generate one APK per arch, to reduce APK size of about 30% 2019-08-07 11:46:38 +02:00
ee2e575211 Display VersionCode of the app in the settings, because Android system does not display it anymore 2019-08-07 11:44:51 +02:00
0949d29f9c Let TimelineEvent be queried by SendState 2019-08-07 10:54:54 +02:00
23466fb5a4 Merge pull request #463 from vector-im/feature/fix_theme
Fix theme not well defined at runtime after configurationChange
2019-08-07 10:40:33 +02:00
7f09e64d63 Fix timeline forward loader showing when sending events 2019-08-07 09:59:37 +02:00
585f0ba4b7 Add an identifier method on ChunkEntity 2019-08-06 21:32:45 +02:00
245fbe86d9 Get enum safe with realm entities 2019-08-06 21:32:40 +02:00
456908c851 Merge branch 'develop' into kt-remove_java_util 2019-08-06 18:27:39 +01:00
b79fdf6a85 Fix theme not well defined at runtime after configurationChange 2019-08-06 18:55:38 +02:00
d9f448c9aa Merge pull request #459 from vector-im/feature/clenup_after_hol
Review of merged PRs
2019-08-06 18:39:37 +02:00
7a6fc4936b Start chain: create extension 2019-08-06 18:15:15 +02:00
d82fd10f3b Start chain: add missing cases 2019-08-06 18:15:15 +02:00
4009f2c176 Add comment to explain why we use a AlwaysSuccessfulWorker 2019-08-06 18:15:15 +02:00
15c4b03340 Event: do not display sendState in View Source and cleanup the class 2019-08-06 18:14:24 +02:00
7b5dff3dcf Mutualize :? part 2019-08-06 18:14:24 +02:00
357123743f Search firstIndexOf, because server url can contains port (This is what JS does, but Riot Android is also bugged) 2019-08-06 18:14:24 +02:00
bb04af1e2c Remove useless code 2019-08-06 18:14:24 +02:00
2f94fbd7eb Use existing method 2019-08-06 18:14:24 +02:00
f2a3bdb68e Kotlin style 2019-08-06 18:14:24 +02:00
097e9714ff Cleaner code 2019-08-06 18:14:24 +02:00
acae0fad3e Better private method name 2019-08-06 18:14:24 +02:00
4deb7eb865 Javadoc for NoMerger 2019-08-06 18:14:24 +02:00
f910cd6f97 More robust SDK: retry only when on failure 2019-08-06 18:14:24 +02:00
652ac81fa1 simple code 2019-08-06 18:14:24 +02:00
99f4196388 More code cleanup/review 2019-08-06 18:14:24 +02:00
c0b94f4111 Typo 2019-08-06 18:14:24 +02:00
1462fa0484 Simple code 2019-08-06 18:14:24 +02:00
dafdc1d3ad Cleaner API 2019-08-06 18:07:35 +02:00
394b89e76b Avoid duplicated code 2019-08-06 18:07:35 +02:00
0db8e7da43 Format 2019-08-06 18:07:35 +02:00
dae8b5c196 Merge pull request #460 from vector-im/feature/fix_cancellations
Feature/fix cancellations
2019-08-06 18:06:05 +02:00
215324a03e Some kotlinification
Signed-off-by: Dominic Fischer <dominicfischer7@gmail.com>
2019-08-06 11:36:39 +01:00
d3ce4c491c Clean code after review 2019-08-06 11:45:06 +02:00
ed6d28bd3b Merge pull request #417 from Dominaezzz/kt-opt
Some optimisations
2019-08-06 11:42:07 +02:00
c2e053b62b Merge pull request #414 from Dominaezzz/kt-leak
Fix potential resource leak
2019-08-06 11:39:51 +02:00
c450849cc3 Merge pull request #425 from Cadair/patch-1
Fix reply fallback prefix
2019-08-06 11:23:37 +02:00
fe884dba2d Update CHANGES.md and fix code quality 2019-08-05 20:28:50 +02:00
3fa4dbaa25 Make async transaction working with suspend method 2019-08-05 20:17:59 +02:00
4a74f58516 Task: use a builder with DSL and introduce Constraints (only boolean connectedToNetwork at the moment) 2019-08-05 20:17:36 +02:00
c413321a22 Remove unnecessary code and fix signout 2019-08-02 13:15:56 +02:00
d696bd2830 Send worker: let LIMIT_EXCEEDED error to be retry 2019-08-02 11:36:32 +02:00
a2b6bd0f62 Fix network reconnection with sync 2019-08-02 11:35:58 +02:00
9cc922a8a2 Optimize imports 2019-08-02 11:35:27 +02:00
c36d1bcd06 Merge pull request #456 from vector-im/feature/fix_image_transition_overlap
Fix / Shared element transition overlap
2019-08-02 10:18:14 +02:00
85499c6b33 fix for background overlaps 2019-08-02 10:00:33 +02:00
8076eab4b5 Fix / Shared element transition overlap
Shared element was overlapping top system bars
2019-08-02 10:00:33 +02:00
d47c0f5ebc Fix / layout res in debug instead of main 2019-08-02 09:59:59 +02:00
fd09a1224e Remove Try from suspending functions 2019-08-01 17:15:17 +02:00
c300c50093 Merge pull request #449 from vector-im/feature/room_update
Feature/room upgrade
2019-07-31 15:34:38 +02:00
77c4355aed Merge branch 'develop' into feature/room_update 2019-07-31 14:27:12 +02:00
1a92562182 Clean code after review 2019-07-31 14:06:10 +02:00
9c390dcc0c Merge pull request #453 from vector-im/feature/fix_code_quality
Fix code quality issues
2019-07-30 21:54:38 +02:00
95089b91b8 UserAccountData: optimize helper and clean code. 2019-07-30 21:41:29 +02:00
eb446d7b49 Fix code quality issues 2019-07-30 21:20:30 +02:00
dc4786ecf0 Room upgrade: add rx flux and handle failures more precisely 2019-07-30 19:13:09 +02:00
e245023add Merge pull request #444 from vector-im/feature/fail_to_send_msg
Basic Message Failure support + Resend (text only)
2019-07-30 18:31:53 +02:00
90fad23493 Fix reply fallback prefix
Plain text reply fallback should be prefixed with "> " not ">" (as per spec).

Signed-off-by: Stuart Mumford <stuart@cadair.com>
2019-07-30 12:09:29 -04:00
000db4b192 Basic Message Failure support + Resend (text only)
+ clean worker inputs when starting new independent task in unique queue
2019-07-30 17:53:43 +02:00
2a16c36a59 Merge pull request #451 from vector-im/feature/fix_user_account_data_direct
User Account Data: fix sync issues with direct invites
2019-07-30 17:39:12 +02:00
ef6c1cfc63 RoomSummaryUpdater: remove unused params 2019-07-30 17:37:16 +02:00
4b4156996d User Account Data: fix sync issues with direct invites 2019-07-30 17:32:31 +02:00
087cc0e6e3 Merge pull request #448 from danteissaias/develop
Fix #447
2019-07-30 17:07:22 +02:00
f4df27c2dc Merge branch 'develop' into feature/room_update 2019-07-30 15:51:56 +02:00
ab25980c4e Merge pull request #437 from vector-im/feature/create_direct_room
Feature/create direct room
2019-07-30 15:13:30 +02:00
77b402ce70 updates CHANGES.md
Signed-off-by: Dante Issaias <dante.issaias@gmail.com>
2019-07-30 14:01:41 +01:00
2763fbb496 fix #447
Signed-off-by: Dante Issaias <dante.issaias@gmail.com>
2019-07-30 13:57:04 +01:00
6deba31111 Direct room: finally use PagedList as we can get a lot of users in DB. 2019-07-30 14:51:14 +02:00
ff6ce8a4b7 Create direct : remove letter headers when filtering 2019-07-29 19:13:06 +02:00
d0cff219aa Merge pull request #446 from vector-im/feature/remove_identity_default
Remove default identity server as we don't use it.
2019-07-29 18:32:07 +02:00
65f0af918f Remove default identity server as we don't use it. 2019-07-29 18:26:26 +02:00
ac38a6461c Tombstone : handle joining viaserver params 2019-07-26 19:17:12 +02:00
9a1e16a170 Tombstone : add notification area and handle links 2019-07-26 14:51:14 +02:00
9e5c70dda3 Room update: start handling tombstone and room create events [WIP] 2019-07-25 19:34:39 +02:00
0255696c88 Update CHANGES 2019-07-25 16:49:15 +02:00
76a9625f25 Direct chat : finalize flow 2019-07-25 16:34:27 +02:00
5af6bf3762 Direct room: finally handle selection with chips (not as Nad design) 2019-07-25 16:34:27 +02:00
507bc2f622 UserEntity: fix not inserted at all 2019-07-23 21:31:58 +02:00
125eacb20b Direct messages: try to handle selecting/deselecting users (WIP) 2019-07-23 19:53:47 +02:00
6176520805 Merge pull request #407 from vector-im/feature/pending_edits_ux
Feature/pending edits ux
2019-07-22 23:53:26 +02:00
3aea0a50ca Merge branch 'develop' into feature/pending_edits_ux 2019-07-22 23:53:16 +02:00
ab87a3caea Merge pull request #397 from vector-im/feature/animation_image_preview
Better image fullscreen preview animation
2019-07-22 23:37:15 +02:00
c58328f94e cleaning / review 2019-07-22 23:36:19 +02:00
03974c8bdf Create Direct Room : fix loading/error state (WIP) 2019-07-22 19:01:17 +02:00
151ae7f4dd Direct chat: handle user account data 2019-07-22 18:58:55 +02:00
a34b053efe Some optimisations
Signed-off-by: Dominic Fischer <dominicfischer7@gmail.com>
2019-07-21 23:35:38 +01:00
02e342849f Remove most usages of the java.util package
Signed-off-by: Dominic Fischer <dominicfischer7@gmail.com>
2019-07-21 23:23:56 +01:00
b59017938b Fix potential leak
Signed-off-by: Dominic Fischer <dominicfischer7@gmail.com>
2019-07-21 19:11:53 +01:00
2c81e41288 Merge branch 'develop' into feature/create_direct_room 2019-07-19 18:18:22 +02:00
cb44ab547c Create direct room: almost finished, still need to handle showing selected users in search field 2019-07-19 18:12:42 +02:00
6d01a570fd Clear notification for a room left on another client 2019-07-19 16:44:30 +02:00
4a2bf0d6c6 Cleaning Lint 2019-07-19 16:18:47 +02:00
36af8a6a9f Lab / show replace in timeline when show hidden event selected 2019-07-19 16:13:55 +02:00
40a68c3e9f Show pending edits by fading the event body #193
+ Fix issues with edits local echo management in aggregation
2019-07-19 16:13:35 +02:00
1a4ec34bb2 Code cleanup 2019-07-19 16:03:37 +02:00
10490e3aa6 Close detail room screen when the room is left with another client (#256) 2019-07-19 16:00:06 +02:00
cd6624a8a6 Fix issue on setting screen: bad alignment of title 2019-07-19 15:15:29 +02:00
3965218bf9 Cleaning / Review 2019-07-19 12:12:17 +02:00
d78ff7ab08 Fix / can't zoom after rotation 2019-07-19 11:58:24 +02:00
cb274d6a33 Add some cancelable on service methods and start branching Rx 2019-07-19 11:21:16 +02:00
c00dbce536 Fix #390
(edited) string in edited message body
2019-07-19 09:58:53 +02:00
db88caf7fa Better image fullscreen preview animation 2019-07-18 18:53:46 +02:00
c3d945d6bb Version++ 2019-07-18 17:48:56 +02:00
df6080b1da Merge branch 'release/0.2.0' 2019-07-18 17:47:39 +02:00
4c128602b2 Merge branch 'release/0.2.0' into develop 2019-07-18 17:47:39 +02:00
d609c49b31 Prepare release 0.2.0 2019-07-18 17:47:24 +02:00
001603cf9a Create direct room: add filtering and enhance design a bit 2019-07-18 17:42:22 +02:00
d87ee32422 Merge pull request #384 from vector-im/feature/edit_e2e
Feature/edit e2e
2019-07-18 16:44:44 +02:00
f0671b9e73 "Riot X" -> "RiotX" 2019-07-18 14:28:46 +02:00
e218691bf2 Import strings and translation from Riot 2019-07-18 14:25:34 +02:00
9c67036c08 Fix / keyboard won't show when using reply from long tap menu 2019-07-18 12:13:17 +02:00
62657538af Merge pull request #389 from vector-im/feature/cleanup
Do not show invitation in the filtered room list
2019-07-18 12:10:47 +02:00
5438207fba faster animation for quick reply 2019-07-18 12:01:23 +02:00
fe88aaffbd Inject RoomListNameFilter 2019-07-18 11:39:13 +02:00
21ba72e5e7 Do not show invitation in the filtered room list 2019-07-18 11:34:49 +02:00
d48ae967bd Remove dead code 2019-07-18 11:11:42 +02:00
0afde3b021 Rename class member for code clarity 2019-07-18 11:07:09 +02:00
49ae954183 Merge remote-tracking branch 'origin/develop' into develop 2019-07-18 10:58:40 +02:00
64bee91f7a Merge pull request #387 from vector-im/feature/fix_sync_state
Fix sync state progress bar
2019-07-18 10:57:46 +02:00
4341b0d0f5 Merge branch 'develop' into feature/create_direct_room 2019-07-18 09:47:25 +02:00
51fdccb393 cleaning 2019-07-18 09:29:27 +02:00
7e3b300130 Fix sync state progress bar 2019-07-17 19:45:35 +02:00
a98b324c89 Merge pull request #385 from vector-im/feature/invit_notif
Cancel invitation notification when handling the invitation in the application
2019-07-17 18:39:40 +02:00
977721881f Cancel invitation notification when handling the invitation in the application 2019-07-17 18:35:41 +02:00
838003b68a Create direct room: start creating all the required stuff 2019-07-17 18:30:14 +02:00
7d41352918 Fix / edit reply was quoting wrong text
+ e2e reply of edit
2019-07-17 16:46:56 +02:00
077396a832 E2E replies
+ Edit History / support e2e and use original event
2019-07-17 16:20:12 +02:00
32b79bd50e Remove extra space around userId 2019-07-17 15:13:12 +02:00
844f6d16a4 Code quality 2019-07-17 15:05:29 +02:00
fc9ef579ca Merge pull request #381 from vector-im/feature/room_members_perf
Feature/room members perf
2019-07-17 15:01:06 +02:00
77fa5af1b8 Fix compilation issue after merge 2019-07-17 14:58:23 +02:00
2948018453 Clean code after review 2019-07-17 14:56:00 +02:00
90d25ff45e Code cleanup 2019-07-17 14:41:01 +02:00
173452d38c Merge pull request #367 from Dominaezzz/kotlinify-3
Some more kotlinification.
2019-07-17 14:38:16 +02:00
a9f9083745 Merge pull request #374 from vector-im/feature/quick_fix_long_click_link
WIP /  Fix Copying link from a message shouldn't open context menu
2019-07-17 14:37:11 +02:00
22dc2a6790 Fix Copying link from a message shouldn't open context menu 2019-07-17 14:36:47 +02:00
927cd7285d Merge pull request #378 from vector-im/feature/fix_sync_thread_wrong_autostart
Fix / SyncThread was started in background
2019-07-17 14:32:19 +02:00
4d5bdecec6 Merge pull request #382 from vector-im/feature/better_long_tap_menu
Feature/better long tap menu
2019-07-17 14:28:51 +02:00
0be987ac0d Merge branch 'develop' into feature/better_long_tap_menu 2019-07-17 14:28:36 +02:00
4bfaa00be4 Fix / clean bad method name 2019-07-17 14:27:02 +02:00
8e78d8a58d Merge pull request #380 from vector-im/feature/rs_crash_steve
Fix a crash in notificationwhen display name is empty
2019-07-17 14:22:45 +02:00
e3e86c0a41 Merge pull request #383 from vector-im/feature/filter_params
Pass filter to room directory screen or create room screen
2019-07-17 14:20:29 +02:00
8a5fddd952 Merge pull request #379 from vector-im/feature/small_fixes
Fix bad View used for searching in room directory.
2019-07-17 14:19:37 +02:00
208460850e Dagger: activate incremental build 2019-07-17 14:16:20 +02:00
0ddef67cc9 Migrate to rxbinding 3 and fix bad layout for room directory filter (Fixes #349) 2019-07-17 14:16:20 +02:00
896e582a9c Create style VectorSearchView 2019-07-17 14:16:20 +02:00
477920f411 Add some comment 2019-07-17 14:14:02 +02:00
c647648e79 Merge pull request #371 from vector-im/feature/composer_fix_edit_reply
Feature/composer fix edit reply
2019-07-17 14:03:10 +02:00
b654025a3b Fix alignment issue in toolbars 2019-07-17 12:38:35 +02:00
786a7d7560 Rename id 2019-07-17 12:20:11 +02:00
b935b9311e Scroll the list to top after each new filter 2019-07-17 12:18:45 +02:00
8e12f71535 Add top left back button 2019-07-17 12:16:10 +02:00
7eea2ccfb4 Fix infinite opening of room once the room is created 2019-07-17 12:09:09 +02:00
c32ef02a12 Pre fill the room directory filter and and the room name with the already entered string from the user 2019-07-17 12:04:19 +02:00
3651ec4870 Add some doc 2019-07-17 11:58:18 +02:00
87de7bd3e6 fix lint code quality 2019-07-17 11:41:14 +02:00
9494174c33 Swipe to reply in timeline (lab) 2019-07-17 10:54:15 +02:00
b7e0b400fb Timeline : set bigger initial load size 2019-07-16 17:48:32 +02:00
a8f06f609b Use latest retrofit version to properly cancel requests
Fix cancelation requests
2019-07-16 17:46:52 +02:00
d469299f42 RoomMembers: should fix state events issues 2019-07-16 17:46:52 +02:00
9bdea5b325 Change order of actions (and reply on top) 2019-07-16 16:35:57 +02:00
2f01ad99b3 Compact long tap menu 2019-07-16 16:35:36 +02:00
bb3b5788ba Update hint from design 2019-07-16 16:35:10 +02:00
45f7d3e9c4 Kotlin style 2019-07-16 15:59:08 +02:00
0f7a56d005 Use Session.myUserId whereas it's possible 2019-07-16 15:54:00 +02:00
63d2861bc8 Fix / SyncThread was started in background
Upon reception of a push, is the session is instantiated the sync thread was starting to loop
2019-07-16 15:44:08 +02:00
6bbc784c29 Fix crash (from Steve's rageshake) 2019-07-16 15:42:02 +02:00
c6fd625761 code review 2019-07-16 14:56:16 +02:00
d8092abc4e fix / strip reply prefix on history 2019-07-16 14:39:46 +02:00
6effb90361 Fix / edit of reply and edit of edit of reply 2019-07-16 14:39:05 +02:00
42584fc55a Merge pull request #372 from vector-im/feature/room_filtering
Room filtering
2019-07-16 11:41:08 +02:00
30d9ddb3e8 Merge pull request #373 from vector-im/feature/fix_composer_separator_dark
Fix / composer separator color was using a clear theme color
2019-07-15 18:16:06 +02:00
020c32bb1a Fix / composer separator color was using a clear theme color 2019-07-15 17:46:24 +02:00
efd973208f Green close icon 2019-07-15 17:35:51 +02:00
30a6c98c08 Room name in bold 2019-07-15 17:29:37 +02:00
1440080d04 Changes 2019-07-15 17:27:49 +02:00
61bb4c0427 Introduce CreateRoomActivity, a simple container for [CreateRoomFragment] 2019-07-15 17:26:48 +02:00
3c25088243 Filter rooms 2019-07-15 17:26:48 +02:00
fc1c0caea3 Avoid displaying two loaders if there is no elements between them 2019-07-15 17:25:59 +02:00
8901a5e09a Merge pull request #342 from vector-im/feature/edit_history
Feature/edit history
2019-07-15 15:15:45 +02:00
25f1d21bc7 Edit history
Get history from API


cleaning


Updated change log


Missing copyrights


Code review


cleaning
2019-07-15 14:57:12 +02:00
4d2ab9fa31 Merge pull request #344 from vector-im/feature/play_store_crash
Feature/play store crash
2019-07-15 10:49:20 +02:00
0289d2ee87 Simpler code 2019-07-15 10:48:44 +02:00
222201cc64 Fix crash observe on the PlayStore (#341) 2019-07-15 10:48:44 +02:00
b15dea6de3 Merge pull request #338 from vector-im/feature/green_encrypt
Text in green when encrypting
2019-07-15 10:46:44 +02:00
2ba83e456d Merge pull request #343 from vector-im/feature/click_on_redacted_event
Handle click on redacted event
2019-07-15 10:46:06 +02:00
1822fc4fbb Some more kotlinification
Signed-off-by: Dominic Fischer <dominicfischer7@gmail.com>
2019-07-13 15:35:10 +01:00
e6dd1fbfec Use GlobalScope instead of temp scope
Signed-off-by: Dominic Fischer <dominicfischer7@gmail.com>
2019-07-13 15:18:16 +01:00
e2ea76f871 Fix crash reported by PlayStore 2019-07-12 16:48:35 +02:00
9182f2ce4e RoomMembers/User : get a better and faster handling (still need to fix one small issue) 2019-07-12 13:59:37 +02:00
34d14eb304 Fix regression on permalink click 2019-07-12 13:51:37 +02:00
3625c462f0 Click on redacted event 2019-07-12 13:51:37 +02:00
fe69206340 Prepare next release 2019-07-12 11:39:26 +02:00
f9885fd04c Update CHANGES.md 2019-07-12 11:38:55 +02:00
316c8ec27e Merge pull request #265 from vector-im/readme_update_for_beta
README: Update it for the beta launch
2019-07-12 11:36:49 +02:00
41465450d8 Code cleanup 2019-07-12 10:45:08 +02:00
bd009caaf1 Code cleanup 2019-07-12 10:22:58 +02:00
33252c3b65 Green text color during encrypting 2019-07-12 10:16:43 +02:00
10e4d0190f Try to insert users directly to see if perfs are better [WIP] 2019-07-11 18:55:13 +02:00
b77310fe92 Merge pull request #337 from vector-im/feature/debug_suffix
Add ".debug" to the applicationId to be able to install the app along with the prod version
2019-07-11 18:33:43 +02:00
919dec4a56 Add ".debug" to the applicationId to be able to install the app along with the prod version 2019-07-11 17:59:07 +02:00
43b3680774 Prepare next release 2019-07-11 17:44:58 +02:00
bfb5fce809 Update CHANGES.md 2019-07-11 17:43:56 +02:00
1f3731aae7 Merge branch 'master' into develop 2019-07-11 17:42:11 +02:00
52dced43ff Fix version code issue 2019-07-11 16:49:06 +02:00
ff80c3c8d5 Add script to sign the APK. 2019-07-11 16:41:45 +02:00
34e4d27573 Add missing space in pipeline 2019-07-11 16:00:45 +02:00
6522148e63 Merge branch 'release/0.1.0' 2019-07-11 15:54:48 +02:00
252b2ea30a Merge pull request #334 from vector-im/feature/general_perf
Feature/general perf
2019-07-11 15:52:00 +02:00
f493ce44f2 RealmLiveEntity: passes the results and changeSet instead of filtering as it's more efficient 2019-07-11 15:30:01 +02:00
c4c5069ee5 Merge pull request #332 from vector-im/feature/login_warning
Improve login screen
2019-07-11 15:25:11 +02:00
423125b5d9 Merge pull request #333 from vector-im/feature/timeout
Create a TimeOutInterceptor to set specific timeout on some request
2019-07-11 15:24:54 +02:00
9e3d29b7d7 Create a TimeOutInterceptor to set specific timeout on some request: login and sync (Fixes #170) 2019-07-11 15:16:25 +02:00
f65becf7c0 Rework login screen before release 2019-07-11 14:38:30 +02:00
80a61cf6b5 Improve dependency download safe path 2019-07-11 14:03:20 +02:00
77056aff94 Merge pull request #330 from vector-im/feature/edit_emote
Edit emote
2019-07-11 13:34:46 +02:00
65e123d87f Split long lines 2019-07-11 13:32:28 +02:00
d0b145d031 Edit emote 2019-07-11 12:29:02 +02:00
98306e223b Merge pull request #322 from vector-im/feature/clean
Improve reply feature
2019-07-11 11:46:00 +02:00
c9fe1adb77 Add a debug button to test crash of the app 2019-07-11 10:36:59 +02:00
1b95336ad3 EventEntity|TimelineEventEntity : remove UUID as primary key and use auto-incremented Long 2019-07-11 10:25:30 +02:00
f007fb04b8 Timeline: clean listeners 2019-07-11 10:25:30 +02:00
141434e8f8 Try getting things off the main thread 2019-07-11 10:25:30 +02:00
b8669d5ed2 Sync: use a single threaded executor to ensure we have only one sync at a time 2019-07-11 10:23:24 +02:00
7a08a11b19 Fix compilation of test 2019-07-10 18:17:03 +02:00
54b1d18812 Merge remote-tracking branch 'origin/feature/clean' into feature/clean 2019-07-10 18:07:03 +02:00
3aa30e5f15 Fix reply of reply 2019-07-10 18:06:44 +02:00
ddf4a81905 Do not display the banner when keys backup is sending keys 2019-07-10 18:04:27 +02:00
794fd650a4 Mutualize code, and also, when replying to an edited event, use the last text in the reply prefix content 2019-07-10 17:37:22 +02:00
9a57a02996 Cleaner code: add TimelineEvent to special modes 2019-07-10 17:05:32 +02:00
7e8cd07e1e Do not send edition if text is identical 2019-07-10 16:32:44 +02:00
d613abf4b4 i18n edited_suffix 2019-07-10 15:29:52 +02:00
06699eaefc Cleaner code 2019-07-10 14:40:08 +02:00
e5082f662c Fix actually done TODO 2019-07-10 14:19:59 +02:00
c8ab53e39c Video visibility fix 2019-07-10 14:11:49 +02:00
d424a135a9 Merge pull request #324 from vector-im/feature/quick_react_e2e
Quick react on e2e was not displayed
2019-07-10 14:08:46 +02:00
e6409d4c60 Create a common canReact() method 2019-07-10 12:10:55 +02:00
19c7de687e We can react on e2e room text event 2019-07-10 11:51:09 +02:00
1918302297 Reply with formatted content 2019-07-10 11:29:47 +02:00
92e3a02389 Create data class instead of Pair 2019-07-10 10:34:32 +02:00
0a54801fcc Code clarity 2019-07-10 10:16:21 +02:00
228ee52563 Remove extra space in <mx-reply> 2019-07-10 10:07:45 +02:00
e6c74dc1fe Convert a Task to a ConfigurableTask without parameter 2019-07-09 18:41:08 +02:00
fe82ad2002 Format 2019-07-09 18:31:04 +02:00
f66739491a Merge pull request #321 from vector-im/feature/workManager_clean
Fix bug on WorkManager: clean by tag
2019-07-09 18:30:07 +02:00
c5dc9d4a9a Fix test 2019-07-09 18:29:32 +02:00
8f858f8119 Fix / line too long 2019-07-09 18:20:00 +02:00
6e036c24b8 Make the test be runnable 2019-07-09 18:14:58 +02:00
5e832e07cd Code cleanup 2019-07-09 18:04:19 +02:00
e9700e04d8 Move method to JsonCanonicalizer and fix test compilation 2019-07-09 18:04:19 +02:00
c19b1f917f Javadoc 2019-07-09 18:04:19 +02:00
4281b5967a Create object for work constraint 2019-07-09 18:04:19 +02:00
aa743d8469 Ensure we do not cancel Work from other lib or SDK client 2019-07-09 18:04:19 +02:00
a09850b16c Merge pull request #316 from vector-im/feature/initial_sync_progress
Feature/initial sync progress
2019-07-09 17:58:24 +02:00
6cb94dd4d6 Fine tune task weights + more measure 2019-07-09 17:42:53 +02:00
c9931e3ba3 Block interaction on initial sync 2019-07-09 17:36:08 +02:00
fc302c1b5a FIx / crash notification drawer empty nam 2019-07-09 17:35:50 +02:00
34ac987494 Cleanup 2019-07-09 16:36:46 +02:00
24b2387703 Merge pull request #319 from vector-im/feature/code_quality
Feature/code quality
2019-07-09 16:29:44 +02:00
8a0c9ae9b0 Rename PreferencesManager to VectorPreferences for code clarity 2019-07-09 16:29:24 +02:00
a79227424f Convert PreferencesManager file to Kotlin 2019-07-09 16:07:16 +02:00
ffe0b9712c Convert file to Kotlin 2019-07-09 15:50:15 +02:00
d92c090c30 Code quality: HashMap / HashSet 2019-07-09 15:40:49 +02:00
1a4157a663 review 2019-07-09 15:38:44 +02:00
fa81d1a9c7 Fix / revert bad refactor rename 2019-07-09 15:38:44 +02:00
dba4df6836 clean 2019-07-09 15:38:44 +02:00
4aae1f78d8 moved new strings + @StringRes annotation 2019-07-09 15:38:44 +02:00
8159a52bd7 cleaning 2019-07-09 15:38:44 +02:00
95d83db90c WIP 2019-07-09 15:38:44 +02:00
ac5b0af63e Code quality: remove rule for map() 2019-07-09 15:37:20 +02:00
e80473903e Code quality: import static 2019-07-09 15:35:27 +02:00
d08778c674 Code quality: equalTo 2019-07-09 15:33:31 +02:00
0919b9460d Code quality: split long lines 2019-07-09 15:26:32 +02:00
66a018c79e Code quality: trim() 2019-07-09 15:11:20 +02:00
dcd64de4b8 Check sdk modules 2019-07-09 15:07:11 +02:00
a0bd206308 Merge pull request #318 from vector-im/feature/send_state
Fix some bugs on e2e rooms
2019-07-09 15:03:39 +02:00
ba589e7961 Add missing permission request 2019-07-09 15:03:21 +02:00
5dc83d64c1 Fix compilation issue 2019-07-09 15:03:21 +02:00
9a4eb8e9a4 add getFileUrl extension 2019-07-09 15:03:21 +02:00
058e7153a1 Fix bug 2019-07-09 15:03:21 +02:00
d7b2371854 Add long click listener to file items 2019-07-09 15:03:21 +02:00
b0c939866f Download file - typo 2019-07-09 15:03:21 +02:00
a07f8b615e Download file - WIP 2019-07-09 15:03:21 +02:00
12bd85e0a9 Decrypt video file 2019-07-09 15:02:31 +02:00
1b82ed5abb Fix regression 2019-07-09 15:02:31 +02:00
c13ab62187 Fix issue when sending video in encrypted room 2019-07-09 15:02:31 +02:00
ea77686746 Send file: cleanup 2019-07-09 15:02:31 +02:00
8a5612be3d Send file: improve UI feedback 2019-07-09 15:02:31 +02:00
d24ce27903 Add missing call to contentUploadStateTracker.setFailure 2019-07-09 15:02:31 +02:00
2099965508 Avoid returning Result.failure() from appendable worker. 2019-07-09 15:02:31 +02:00
829e8da8dc lastFailureMessage is val, not var 2019-07-09 15:02:31 +02:00
e149ee53de Fix bad mime type for encrypted thumbnail 2019-07-09 15:02:31 +02:00
b73d3b15f8 Merge pull request #317 from vector-im/feature/realm_entity_rework
Feature/realm entity rework
2019-07-09 15:01:05 +02:00
61d7f23870 remove dead code 2019-07-09 15:00:37 +02:00
b5650b2b8f Pagination : avoid breaking timeline when paginating twice from same token (race condition) 2019-07-09 14:44:59 +02:00
8777d13d8b Fix / view source, decrypted source was not correct 2019-07-09 14:22:40 +02:00
d52613d723 Trick / Remove home progress blank paddings 2019-07-09 11:17:36 +02:00
7ce476f858 Merge pull request #313 from vector-im/feature/notif_optim
Improve notification drawer manager: Dagger, throttle, and icon for API 9
2019-07-08 17:44:10 +02:00
dd07f5c2a6 TimelineEvent : update sender data when loading room members and prune event (+ remove RoomSummaryMapper param) 2019-07-08 15:32:24 +02:00
7e6e09bc19 fix / compilation 2019-07-08 15:30:11 +02:00
1d11a163af Notification resolver try to decrypt 2019-07-08 15:08:49 +02:00
57bd103de8 Fix / decrypt room summary latest event 2019-07-08 14:58:49 +02:00
25bc5001f9 RoomSummary / Use encrypted message screen 2019-07-08 14:57:37 +02:00
e4c52484b1 Fix / ensure equals check for encryption result 2019-07-08 14:57:02 +02:00
a30da07fd1 Fix / timeline auto refresh on new session 2019-07-08 14:12:46 +02:00
ee27d3e047 Fix / clear unknown session map before re-request decrypt 2019-07-08 12:49:22 +02:00
7096094224 wip crypto 2019-07-08 12:05:41 +02:00
443fb41d18 Cleanup 2019-07-08 11:21:26 +02:00
94b4351e19 wip async crypto + persist 2019-07-08 11:18:27 +02:00
e90aeff417 ThrottleLast the notification drawer manager 2019-07-08 11:08:23 +02:00
e50dd265d4 merge develop 2019-07-08 10:58:41 +02:00
4521ea14ee Merge branch 'develop' into feature/realm_entity_rework 2019-07-08 10:55:20 +02:00
535b41d818 Rename Debouncer to FirstThrottler 2019-07-08 10:49:32 +02:00
21357a1ec7 private fun 2019-07-08 10:32:38 +02:00
8c872caf78 Inject IconLoader and BitmapLoader 2019-07-08 10:30:45 +02:00
62a81a556e Refresh notification drawer in a background thread. It also fixes the person and room avatar display 2019-07-08 10:26:22 +02:00
568e8c8bc0 Do not load user icon before Android Pie 2019-07-08 10:10:39 +02:00
98a7652403 Put back local echo 2019-07-05 19:13:34 +02:00
78951b9155 Timeline event: handle displayName/avatar [WIP] 2019-07-05 19:07:33 +02:00
8c86a653b2 Merge pull request #309 from vector-im/feature/crypto_cleanup
Rework Crypto using Try
2019-07-05 19:03:59 +02:00
ea0526821e Top left Back does not go to previous Activity anymore (Fixes #275) 2019-07-05 18:44:09 +02:00
c503445092 Branch back relation summaries 2019-07-05 18:38:20 +02:00
205af8b122 Merge pull request #280 from Dominaezzz/kotlinify-1
Enhance CancelableBag
2019-07-05 18:34:28 +02:00
3abb7c8de6 Merge pull request #308 from Dominaezzz/kotlinify-2
Some "Kotlinification"
2019-07-05 18:11:18 +02:00
a40510da3b Merge pull request #310 from vector-im/feature/buildkite_pr
Build every branch which is not master, to be able to build PR from external repository
2019-07-05 18:06:14 +02:00
a6ab4a349d Build every branch which is not master, to be able to build PR from external repository 2019-07-05 18:02:13 +02:00
79a704d240 Timeline : Uncomment liveChunk to make pagination working 2019-07-05 17:27:24 +02:00
e5adf174a8 Fix crash when invalid urls for image 2019-07-05 17:00:57 +02:00
f01e796271 Timeline is back 2019-07-05 17:00:13 +02:00
302d23ba96 Create a realm locker to fast up next Realm.getInstance calls 2019-07-05 16:28:15 +02:00
03050c3f25 Cleanup 2019-07-05 16:11:54 +02:00
cbfd2af74b Start branching TimelineEventEntity 2019-07-05 16:07:12 +02:00
f3fab0dc08 Rename ErrorTypes 2019-07-05 15:52:37 +02:00
4a512d2425 Create enum for errorType and fix a few issues 2019-07-05 15:43:28 +02:00
07f80f43bd Display clear type 2019-07-05 15:15:55 +02:00
87dec337d8 Rework Crypto using Try 2019-07-05 14:41:32 +02:00
b37877746a Introduce TimelineEventEntity to begin with the rework 2019-07-05 14:39:15 +02:00
b0e5612bdc Convert java-esque code to Kotlin
Signed-off-by: Dominic Fischer <dominicfischer7@gmail.com>
2019-07-05 12:32:21 +01:00
25b0cd0e4b Remove some work from UI thread 2019-07-04 19:02:37 +02:00
2800d86a57 Merge pull request #302 from vector-im/feature/invitation
Quick action in invitation and composer input type
2019-07-04 18:47:44 +02:00
01bc0de2c2 Set again input type for composer, lost after merge 2019-07-04 18:43:36 +02:00
857a4c5a26 Quick implementation of accept/reject invitation from notification 2019-07-04 18:14:39 +02:00
063c35380a Fix regression on invitation full screen display 2019-07-04 16:44:37 +02:00
5322251bc0 Fix wording for direct message tab 2019-07-04 15:37:19 +02:00
c21b9df9a5 Fix issue with notification from previous account displayed after logout 2019-07-04 15:23:59 +02:00
f2a52f0253 Merge pull request #297 from vector-im/feature/crypto_stabilization
Safely remove all usage of `!![`
2019-07-04 15:17:26 +02:00
baaf493cb4 Merge pull request #299 from vector-im/feature/dix_concurrent_sync
Fix / Push worker could launch concurrent syncs
2019-07-04 15:10:18 +02:00
6cbd6d3a33 Valere's review 2019-07-04 14:59:29 +02:00
72e5aa981a Merge pull request #298 from vector-im/feature/quote
Fix issue when quoting event in e2e rooms (Fixes #295)
2019-07-04 14:49:53 +02:00
c0f085cdf8 SyncTask now handles by itself the sync token 2019-07-04 14:46:59 +02:00
10bc2297d4 Fix / Push worker could launch concurrent syncs 2019-07-04 14:04:36 +02:00
8fa5e63b07 Fix issue: reply to e2e event does not contain the base message 2019-07-04 12:52:43 +02:00
9d0c50907c Fix issue when quoting event in e2e rooms (Fixes #295) 2019-07-04 12:39:59 +02:00
e5958983d8 Safely remove all usage of !![ 2019-07-04 11:44:09 +02:00
ab23ec3f35 Fix https://github.com/matrix-org/riot-android-rageshakes/issues/5851 (DI) 2019-07-04 10:20:50 +02:00
a79a6443e7 Realm: update realm dependencie 2019-07-03 20:08:27 +02:00
9ff24cbf2a Merge branch 'feature/fix_issues' into develop 2019-07-03 19:46:34 +02:00
2eee25bbc1 Fix / crash not called on UI Thread 2019-07-03 19:36:25 +02:00
2a2431e490 Merge pull request #290 from vector-im/feature/fix_crash_npe_cryptomanager
Fix / Rageshake crashes + cleaning
2019-07-03 18:47:45 +02:00
4041e2e8ca code review 2019-07-03 18:40:42 +02:00
031c4e5746 Crash on loggout
https://github.com/matrix-org/riot-android-rageshakes/issues/5881
2019-07-03 18:40:04 +02:00
b4ea85fc76 Fix / Rageshake crashes + cleaning !!
https://github.com/matrix-org/riot-android-rageshakes/issues/5880
https://github.com/matrix-org/riot-android-rageshakes/issues/5877
https://github.com/matrix-org/riot-android-rageshakes/issues/5873
https://github.com/matrix-org/riot-android-rageshakes/issues/5871
2019-07-03 18:40:04 +02:00
480f14902d Rx: observe on computation by default 2019-07-03 18:28:56 +02:00
20c8e8d922 Change the test to apply Google Service plugin to be able to run sonar 2019-07-03 18:18:07 +02:00
9cdecced57 Merge pull request #291 from vector-im/feature/start_crypto_earlier
Start crypto manager before handling first sync events
2019-07-03 18:05:44 +02:00
60d46538de Merge pull request #292 from vector-im/feature/sonar_fix
Feature sonar fix and convert remaining Java files to Kotlin
2019-07-03 18:03:23 +02:00
223295c2f1 Convert MXUsersDevicesMap to kotlin - Fix issue 2019-07-03 18:01:28 +02:00
f789fb275d Convert MXUsersDevicesMap to kotlin 2019-07-03 17:34:22 +02:00
a7c12aeb93 Start crypto manager before handling first sync events 2019-07-03 17:17:58 +02:00
0ca9a5f68b Convert MXKey to kotlin 2019-07-03 16:45:08 +02:00
842345df9b Merge pull request #284 from vector-im/feature/better_incoming_key_verif_mgmt
Moved incoming key/verif to active session holder
2019-07-03 15:54:15 +02:00
7d5c31c510 Fix Javadoc issues 2019-07-03 15:52:53 +02:00
1ee1c31b9c Fix bugs detected by Sonar 2019-07-03 15:42:35 +02:00
e9eada77f9 Add comment to run sonar analysis and fix compilation issue 2019-07-03 15:42:35 +02:00
93ce0cc5e9 Realm: avoid using monarchy thread for custom work 2019-07-03 14:48:45 +02:00
eefd09d022 Dagger: don't create MatrixCoroutineDispatchers multiple time!! 2019-07-03 14:48:03 +02:00
ef597cc67a RoomSummary: set unreadNotification to 0 by default 2019-07-03 14:47:33 +02:00
5d171e0240 Moved incoming key/verif to active session holder 2019-07-03 12:56:08 +02:00
39070820be Merge pull request #283 from vector-im/feature/check_pushrule_on_sync_only
Check Push rule on sync only + fix bad room name in notif
2019-07-03 12:37:49 +02:00
1fdad38b9d Check Push rule on sync only + fix bad room name in notif 2019-07-03 11:59:45 +02:00
f41c0311fa Fix done TODO 2019-07-03 11:58:50 +02:00
a476ac71da Import translations from Riot 2019-07-03 10:20:07 +02:00
4b971a9e67 README: Fix develop build links 2019-07-03 10:04:35 +02:00
bc2d321a84 Merge branch 'feature/Perf' into develop 2019-07-02 23:07:16 +02:00
9adeab6bae Perf: revert constraintLayout version as it breaks at the moment 2019-07-02 23:06:40 +02:00
0f3a63e366 Enhance CancelableBag
Signed-off-by: Dominic Fischer <dominicfischer7@gmail.com>
2019-07-02 21:46:44 +01:00
d90698fe92 Merge pull request #279 from vector-im/feature/clear_glide_cache
Clear media cache from the settings and clear cache when signing out
2019-07-02 21:56:31 +02:00
af0af6e260 Fix bad background color in dark theme 2019-07-02 21:49:52 +02:00
6e71fb565a Fix bad layout for button when keyboard is opened (Fixes #268) 2019-07-02 21:23:57 +02:00
6c66ab1568 Fix code quality 2019-07-02 21:17:41 +02:00
77fd7cd33c Update wording 2019-07-02 20:48:20 +02:00
0d329f0338 Clear media cache from the settings and clear cache when signing out 2019-07-02 20:21:40 +02:00
2f66321c2a RoomSummary: don't fetch last event by default as it takes some time 2019-07-02 19:59:01 +02:00
5b102485bc Perf: timeline should reuse one background looper thread 2019-07-02 19:12:20 +02:00
313055b96d Fix bad alignment of button 2019-07-02 18:54:06 +02:00
cbe8236036 Merge pull request #264 from vector-im/feature/fix_double_reaction
Fix / sometime sent reaction is count twice
2019-07-02 18:52:42 +02:00
698fc35704 README: Put back link to #riotx:matrix.org 2019-07-02 18:41:28 +02:00
37199da52f Merge branch 'develop' into feature/Perf 2019-07-02 18:29:59 +02:00
1c69d8e425 README: Update it for the beta launch 2019-07-02 18:06:43 +02:00
ec5ec3375a Fix / sometime sent reaction is count twice
Now use eventId format to check if local echo instead of state
2019-07-02 18:05:14 +02:00
156d88e7e2 Merge pull request #263 from vector-im/feature/appId
Rename im.vector.riotredesign to im.vector.riotx
2019-07-02 17:54:22 +02:00
504009499f Rename im.vector.riotredesign to im.vector.riotx 2019-07-02 17:27:08 +02:00
11bf00030d Merge branch 'develop' into feature/Perf 2019-07-02 17:00:09 +02:00
73277c5b08 Merge pull request #259 from vector-im/feature/fix_read_receipts_not_updated
Fix / send read marker for collapsed items
2019-07-02 16:51:53 +02:00
f21f4dbe91 Merge pull request #262 from vector-im/feature/update_timeline_when_new_key
Update timeline on new session
2019-07-02 16:51:07 +02:00
504d7e95fd Merge pull request #227 from vector-im/feature/encrypt_local_data
Encrypt Realm databases
2019-07-02 16:49:36 +02:00
62d2443b85 Remove duplicated method 2019-07-02 16:48:58 +02:00
bc1edcf33d Code review 2019-07-02 16:48:58 +02:00
363f52b10c Encrypt Realm databases 2019-07-02 16:48:58 +02:00
498b1f2b06 Merge pull request #261 from vector-im/feature/e2e_file
Encrypt attachment in e2e rooms
2019-07-02 16:44:17 +02:00
92222c269e Update timeline on new session 2019-07-02 16:18:16 +02:00
ee9440c1cb Fix / crash signout bottom sheet 2019-07-02 16:05:01 +02:00
fe81145680 Merge pull request #260 from vector-im/feature/misc_quick_fixes
Feature/misc quick fixes
2019-07-02 15:56:17 +02:00
0980a41752 use file name with extension 2019-07-02 14:59:44 +02:00
18a821f3f6 add message 2019-07-02 14:43:07 +02:00
14a2570ea4 Preview of encrypted images (first and fast implementation) 2019-07-02 14:35:22 +02:00
994ee1d23f Encrypt file + propagate error between chained workers 2019-07-02 14:07:48 +02:00
f0e43d31f5 Encrypt file WIP 2019-07-02 12:34:56 +02:00
85e850bcde Fix / unwanted auto-mardown when trailing space 2019-07-02 12:29:36 +02:00
6cf24cc43b Fix / some state events are missing context action (view source) 2019-07-02 12:21:27 +02:00
c7df433a44 Fix / send read marker for collapsed items
Also remove unnecessary check on matrix id format
2019-07-02 12:08:44 +02:00
9378d30601 Merge branch 'develop' into feature/Perf 2019-07-02 11:25:39 +02:00
58a80ec543 Fix / crash user autocomplete after invite command 2019-07-02 10:43:55 +02:00
95ea6db946 Change name from "Riot X" to "RiotX" 2019-07-02 10:42:45 +02:00
a47af4d915 Split buildkite build into two build to reduce build time and resource consumption. 2019-07-02 10:41:18 +02:00
0c2d3f36c3 Encrypt file WIP 2019-07-02 09:56:20 +02:00
014d03893a Fix issue after rebase and use classic request for clear image 2019-07-02 09:56:20 +02:00
164c8dab09 Glide: try to handle encrypted image. [WIP] 2019-07-02 09:56:20 +02:00
b54ca5a8a0 Decrypt Attachment - WIP 2019-07-02 09:56:20 +02:00
707a4712fc Add some javadoc from Matrix spec and add EncryptedFileInfo where necessary 2019-07-02 09:56:20 +02:00
8e76700c8d Handle redacted e2e event 2019-07-02 09:56:20 +02:00
3f74c4e933 Report change from https://github.com/matrix-org/matrix-android-sdk/pull/471 2019-07-02 09:56:20 +02:00
41ed4b23d8 Update dependencies (tested ok) 2019-07-02 09:39:45 +02:00
ce9fa15bcb Missing ? 2019-07-01 20:54:42 +02:00
f9880283e9 Fix / crash when reporting bug with no active session 2019-07-01 20:47:21 +02:00
f4b124d29f Merge pull request #257 from vector-im/feature/room_list_improvements
Room list: last event preview - invitations list
2019-07-01 20:38:32 +02:00
fb1f107911 Merge pull request #254 from vector-im/feature/enhance_notif_pre_n
Better summary for pre N devices
2019-07-01 20:38:02 +02:00
8e653979fd Merge pull request #258 from vector-im/feature/fix_signout
Fix / signout sign-in not working
2019-07-01 20:37:32 +02:00
a5584d27af QuickFIx / regression cannot decrypt message (no sender_key) 2019-07-01 20:34:42 +02:00
de9a5a3d12 Perf: eventHtmlRenderer is slow to build, get only one instance 2019-07-01 20:19:50 +02:00
95d64008aa Move to sdk 2019-07-01 20:12:05 +02:00
19202cfca6 Perf: try to get better 2019-07-01 20:05:48 +02:00
ca2223f201 Force passing realm to TimelineEvent factory 2019-07-01 19:46:18 +02:00
a1ddd73d7d Fix / signout sign-in not working 2019-07-01 18:55:40 +02:00
01e3e71f98 Handle room invitation actions 2019-07-01 18:50:33 +02:00
8fefdc1019 Fix crash on logout 2019-07-01 16:56:24 +02:00
07309c90e1 Room list: rework invitations 2019-07-01 16:29:04 +02:00
0bdde4d994 Better summary for pre N devices 2019-07-01 16:19:46 +02:00
b25098c52d Fix issue on invitation: restore background and composer could be opened 2019-07-01 15:24:28 +02:00
5e9ecfbcc0 Room summary; handle encrypted events 2019-07-01 15:12:35 +02:00
e1b6f4bd74 Fix issue after rebase 2019-07-01 15:12:35 +02:00
4d79485fee Last event on room list 2019-07-01 15:12:35 +02:00
9224fcabfa Fix #253 / Image with no mimetype in info 2019-07-01 15:10:12 +02:00
0d433b2620 fix / missing reaction event in filter 2019-07-01 13:53:10 +02:00
6a829caf0f Perf / filter events for aggregation updater 2019-07-01 13:33:43 +02:00
d643abbb22 Sender name: fix for not synced events. 2019-07-01 13:20:03 +02:00
e838794587 Do not check push rule on initial sync 2019-07-01 13:08:16 +02:00
b0ad568df0 Fix / fdroid notif was broken due to merge 2019-07-01 13:07:52 +02:00
4739aea793 Dagger: inject dependencies earlier into activity/fragment 2019-07-01 11:41:27 +02:00
3960742f38 Merge pull request #250 from vector-im/feature/fix_impure_reducers
Fix impure reducer and use live event
2019-07-01 11:33:34 +02:00
2eef0a6162 Fix ban and kick bad message error (Fixes #184 Fixes #248) 2019-07-01 11:27:57 +02:00
466a39d239 Robustness 2019-07-01 11:08:05 +02:00
e78b703387 Fix / show source was showing content 2019-07-01 10:47:10 +02:00
9df928e709 Fix bad background color in dark themes 2019-07-01 10:04:02 +02:00
a734c699ad Fix impure reducer and use live event 2019-07-01 09:56:00 +02:00
b402bf829b Fix copy and inconsistency
thx kr0mbel
2019-06-28 18:45:49 +02:00
4d7f1b4fee Report Bug by default 2019-06-28 16:57:01 +02:00
38ceb6f52a Fix bad FCM token stored 2019-06-28 16:54:53 +02:00
419ef7b46f Merge pull request #243 from vector-im/feature/reply_e2e
Reply in e2e room
2019-06-28 16:07:08 +02:00
4ad23f0f37 Fix bad copyright block 2019-06-28 16:05:36 +02:00
0f039fce32 Add 30 missing copyright block 2019-06-28 15:59:20 +02:00
fef1c7cc45 Set default theme in pref screen 2019-06-28 15:36:57 +02:00
7ff2477a4f Merge pull request #241 from vector-im/feature/api16
min API 19 - tested
2019-06-28 15:06:40 +02:00
7af55a48f6 Fix lint warning 2019-06-28 15:05:57 +02:00
ee402fd328 Now with min API set to 19, we do not need Left and Right attribute, Start and End is enougth. For the moment, just reduce the severity 2019-06-28 14:57:41 +02:00
75c1718252 code review 2019-06-28 14:57:22 +02:00
f83491fdfc Fix / impure reducer in action view model 2019-06-28 14:57:22 +02:00
a9dd06562a Reply in e2e room
+ Add reply option in e2e room
+ Fix bug 242
+ Show preview of messages in menu and in text composer preview
2019-06-28 14:57:22 +02:00
cea8abb9b1 Fix issue in test and add a test for Json canonicalization (will pass when reply_e2e branch will be merged) 2019-06-28 14:27:08 +02:00
13a0b809e1 Fix compilation issue in release 2019-06-28 14:08:38 +02:00
d28e9862a2 Merge pull request #236 from vector-im/feature/lab_show_hidden_events
Feature/lab show hidden events
2019-06-28 12:51:31 +02:00
bf68a6bafc Comment used labs settings 2019-06-28 12:50:56 +02:00
b14a6224ba Add lab option to show hidden events in timeline
+ cleaning labs settings
2019-06-28 12:45:08 +02:00
b92cc524b6 Fix / Day separator flickering in timeline
Sending events were not filtered, so sending events like reactions would make the day separator appear
2019-06-28 11:33:33 +02:00
17a4a86ad1 Merge pull request #220 from vector-im/feature/restrict_reaction_emoji
Only show reactions with an emoji key
2019-06-28 11:29:32 +02:00
0a908136b6 Only show reactions with an emoji key 2019-06-28 11:28:51 +02:00
83ceb36a12 Merge pull request #233 from vector-im/feature/suggestion
Feature suggestion
2019-06-28 10:47:14 +02:00
2ef53e2066 Fix compilation issue after rebase 2019-06-28 10:44:02 +02:00
519f49b50d Add report bug in the menu 2019-06-28 10:40:00 +02:00
a550743f2f Report suggestion feature 2019-06-28 10:40:00 +02:00
40bf3a15cd Move signout action to the settings General 2019-06-28 10:37:25 +02:00
4422ebb77b Remove old menu 2019-06-28 10:28:41 +02:00
99271ce5d6 Merge pull request #234 from vector-im/feature/alpha_disclaimer
Show disclaimer at first launch (Fixes #215)
2019-06-28 10:25:55 +02:00
2c9280dca6 Merge pull request #235 from vector-im/feature/debounce
Debounce click on room
2019-06-28 10:24:45 +02:00
7187cc23a1 code quality 2019-06-28 10:23:27 +02:00
10353c9871 add dagger2 licence 2019-06-28 10:12:04 +02:00
f410538e2f minSdkVersion 19 (mainly for security reason and also because of MotionLayout only supported on API 18) 2019-06-28 10:06:36 +02:00
76fc455d93 Stop using textColorTertiary (fix crash on API 19) 2019-06-28 10:04:43 +02:00
22c005d05a Merge pull request #239 from vector-im/feature/dagger
Feature/dagger
2019-06-28 10:02:20 +02:00
604de7eebc Dagger: fix some merging issues 2019-06-28 09:35:34 +02:00
f18bc9bd00 Dagger: fix no session 2019-06-27 19:12:46 +02:00
f91959ea96 Merge branch 'develop' into feature/dagger 2019-06-27 18:57:49 +02:00
2063a3e535 Merge branch 'develop' into feature/dagger 2019-06-27 18:56:23 +02:00
a1c22c9aa6 Remove useless property for a SDK 2019-06-27 18:25:50 +02:00
d5625b95fe Fix / use senderId when display name cannot be resolved 2019-06-27 17:58:11 +02:00
d205f63928 Debounce click on room 2019-06-27 17:32:49 +02:00
bd8d6f92da Update wording 2019-06-27 16:04:02 +02:00
f9c8e4f85a Show disclaimer at first launch (Fixes #215) 2019-06-27 16:01:11 +02:00
1fa7b7367a Dagger: merge develop compiling now. 2019-06-27 15:25:01 +02:00
0765d6d1da Fix / Action bottom sheet show preview for encrypted messages 2019-06-27 15:21:10 +02:00
f98f0e1a87 Merge pull request #232 from vector-im/feature/settings_v2_clean_notif
Cleans notification pref screen
2019-06-27 14:12:12 +02:00
fb7ada72dd Fix / register/unregister pusher 2019-06-27 14:08:54 +02:00
338de3ebf5 Cleans notification pref screen
+ fix troubleshoots
2019-06-27 12:21:38 +02:00
fb43c87107 Merge pull request #231 from vector-im/feature/fcm_privacy
Upgrade firebase messaging version and disable Firebase Analytics
2019-06-27 11:55:19 +02:00
f092c40999 Merge pull request #228 from vector-im/feature/settings_v2
Split settings into sub sections
2019-06-27 11:54:03 +02:00
f414f46cba General setting: avatar and display name 2019-06-27 11:53:28 +02:00
9ec364b60e Merge pull request #226 from vector-im/feature/notification_beta
Notification beta
2019-06-27 10:46:27 +02:00
ae7e617fdd Rename and format and remove duplicate EventType.REDACTION 2019-06-27 10:46:04 +02:00
d1642c928a Move specific classes for FDroid into FDroid variant source code 2019-06-27 10:46:04 +02:00
5e619f2593 Upgrade firebase messaging version and disable Firebase Analytics 2019-06-27 10:42:36 +02:00
679a4c7f31 Add ignored users icon in the root settings 2019-06-27 10:17:57 +02:00
76b890fe06 Merge pull request #230 from vector-im/feature/e2e_hint
Change hint for encrypted room (fix #210)
2019-06-26 21:05:19 +02:00
b2d2582e0f Merge branch 'develop' into feature/dagger [WIP] 2019-06-26 20:58:46 +02:00
715b44ec79 Merge pull request #229 from vector-im/feature/update_icons
Feature/update icons
2019-06-26 19:30:55 +02:00
25b7bf76bf Change hint for encrypted room (fix #210) 2019-06-26 18:49:55 +02:00
b69940a5da Hide some settings for notifications 2019-06-26 18:28:45 +02:00
28f2bb3ebd Use im.vector.riotredesign.core.preference.VectorPreferenceCategory 2019-06-26 18:15:50 +02:00
6bf940bedf Updated login logo 2019-06-26 18:09:42 +02:00
56fc223930 Add missing point in the interrogation point 2019-06-26 18:00:51 +02:00
3e00576230 New status bar notification icons 2019-06-26 17:55:07 +02:00
6e7adaec59 Dagger: prepare for multi session [WIP] 2019-06-26 17:51:24 +02:00
9fd9124643 Disable some unimplemented pref 2019-06-26 17:43:36 +02:00
ad3d303405 Fix issue in notification preference 2019-06-26 17:37:03 +02:00
7c47c6a033 split preference (Kotlin) 2019-06-26 17:20:26 +02:00
33f17e4c5c Quick Fix / DI crash when not logged in 2019-06-26 17:15:10 +02:00
289b2a4eb1 Launch icons update 2019-06-26 17:14:28 +02:00
e63f51821f split preference (XML) 2019-06-26 15:26:08 +02:00
8370f4fc76 rename file 2019-06-26 15:05:07 +02:00
5feebeba01 Integrate new icons for preference root screen 2019-06-26 15:01:46 +02:00
0c0ef38b4f Fix notification on FDroid 2019-06-26 13:32:55 +02:00
bec5ca1420 Merge pull request #213 from vector-im/feature/notification_alpha
Riot X alpha - Notification phase 1
2019-06-26 13:30:22 +02:00
895f0f0079 Fix compilation issue on FDroid 2019-06-26 12:21:30 +02:00
134c2fcd42 Notification: Fix TestAccountSettings test 2019-06-26 12:19:54 +02:00
2625e11508 rename method 2019-06-26 12:19:54 +02:00
9fa3a75fb6 Notification: display room avatar 2019-06-26 12:19:54 +02:00
b388be93c8 Notification: better code 2019-06-26 12:19:54 +02:00
5a1242109d Notification: display rooms and users' avatars 2019-06-26 12:19:54 +02:00
4f0ed402bf Notification: cleanup 2019-06-26 12:19:54 +02:00
f6c500d120 Notification: dismiss all on sign out 2019-06-26 12:19:54 +02:00
785f33177d Notification: open room and clear drawer - Smart reply - Mark as read - dismiss all 2019-06-26 12:19:54 +02:00
328f090723 Code quality: i18n 2019-06-26 12:19:54 +02:00
ce3242c748 Code quality: preference 2019-06-26 12:19:54 +02:00
71ae99012b Code review and cleanup 2019-06-26 12:19:54 +02:00
ab0141a5c6 Fix issue after rebase 2019-06-26 12:19:54 +02:00
abb1c3f3c4 Fix / try to get edited message content first 2019-06-26 12:19:54 +02:00
1feb1f9c3f Fix test 2019-06-26 12:19:54 +02:00
090ee1d4e9 Fix / ignore message sent by me in push rules 2019-06-26 12:19:54 +02:00
7821ca12fd Fix / fetch from realm without copy (proxy error) 2019-06-26 12:19:54 +02:00
c01af6ac78 Stop notification using preference when disabled 2019-06-26 12:19:54 +02:00
74099be316 Remove / Add pusher from enable notif preference
+Added Retrofit/Moshi null serializer for pusher kind
2019-06-26 12:19:54 +02:00
4e6b34b9d1 Fix issues on Notification Event resolver 2019-06-26 12:19:54 +02:00
6743dc6273 Set sync timeout to 30s when in foreground 2019-06-26 12:19:54 +02:00
288ebe48fd Doc / quick fixes 2019-06-26 12:19:54 +02:00
9ae9830de4 Fix / compilation in gplay flavor 2019-06-26 12:19:54 +02:00
0584fc3666 Get real push rules from server and evaluate them 2019-06-26 12:19:54 +02:00
2e417a9143 Basic FCM vs fdroid mode 2019-06-26 12:19:54 +02:00
0e46fc4c0a WIP 2019-06-26 12:19:54 +02:00
79735c6338 Introduce activity-alias for Launcher Activity 2019-06-26 12:16:05 +02:00
4505d13385 Fix / SAS verification infinite waiting on last step
Missing state update to verified after mac verification
2019-06-26 10:46:58 +02:00
8fe0bd5abe Merge pull request #214 from vector-im/feature/update_quick_reactions
Feature/ Update quick reactions
2019-06-25 15:47:17 +02:00
98176b9760 Cleaning (code review) 2019-06-25 15:45:44 +02:00
104ffc930d Merge pull request #200 from vector-im/feature/permalinks
Handle permalink with the new navigation UX - WIP
2019-06-25 09:34:58 +02:00
2741780553 Change scope of PermalinkHandler 2019-06-25 09:34:12 +02:00
625242a3d9 handle all themes 2019-06-25 09:34:12 +02:00
401f878a9c Fix ConcurrentModificationException 2019-06-25 09:34:12 +02:00
3e97503220 Avoid erasing all cache 2019-06-25 09:34:12 +02:00
76ade2957e Handle permalink click 2019-06-25 09:34:12 +02:00
b1e009f8b4 Handle eventId v4 (https://matrix.org/docs/spec/rooms/v4#event-ids) 2019-06-25 09:33:52 +02:00
90f420b287 Cleanup PermalinkHandler and Navigation 2019-06-25 09:33:52 +02:00
73b55fd975 Group navigation cleanup 2019-06-25 09:33:52 +02:00
ad601c7d5a Merge pull request #189 from vector-im/feature/third_party_notice
Feature/third party notice
2019-06-25 09:32:08 +02:00
046aac74c2 Add link for reference 2019-06-25 09:31:45 +02:00
0998ffb5f2 Update open source license file 2019-06-25 09:31:45 +02:00
8ff6fbb153 Handle redirection 2019-06-25 09:31:45 +02:00
9d3a8e7c40 Add usage of com.google.android.gms:oss-licenses-plugin to list open source licenses 2019-06-25 09:31:45 +02:00
56aaa9dce3 Fix / updated unicode for smiling 2019-06-24 16:15:26 +02:00
43ead66991 Update quick reactions to new design 2019-06-24 16:13:58 +02:00
92eb7d55dc Merge pull request #207 from vector-im/feature/version
Display some version of Riot and SDK (Fix #185)
2019-06-21 17:07:55 +02:00
1cfc85a772 Display some version of Riot and SDK (Fix #185) 2019-06-21 11:13:16 +02:00
47968c9447 Dagger: everything should be injected ok now 2019-06-21 10:36:02 +02:00
07fee8ed3d Dagger: continue reworking on app and sdk [WIP] 2019-06-20 19:26:59 +02:00
1eb374fa49 Merge pull request #188 from vector-im/feature/disambiguation
Disambiguation of display names
2019-06-20 17:29:01 +02:00
285da114e7 better code (ganfra's review) 2019-06-20 17:27:15 +02:00
34870591b4 Update wording 2019-06-20 17:22:38 +02:00
ee87c253fe Dagger: continue working on app side. Now compile but some DI are not branched yet. 2019-06-19 19:40:59 +02:00
9c1f870694 Dagger: start handling app dependencies [WIP] 2019-06-18 20:00:20 +02:00
56e0680398 Remove unused class 2019-06-18 16:11:24 +02:00
8c0a1ed37d Rename "sender" to "senderId" for code clarity 2019-06-18 16:11:24 +02:00
625500212d Manage display name disambiguation (Fixes #172) 2019-06-18 16:09:48 +02:00
b1f5b3ad96 Merge pull request #187 from vector-im/feature/issues_fix
Add a few feature
2019-06-18 16:03:36 +02:00
02f84a3b53 View source of encrypted event 2019-06-18 13:14:39 +02:00
7fe662598b Handle click on encryption message 2019-06-18 12:56:08 +02:00
5bfa67b442 Handle click on encrypted message 2019-06-18 12:45:24 +02:00
a53e40e1ee Create MessageInformationDataFactory for reusability 2019-06-18 12:33:07 +02:00
273c8a19b8 Fix UI issue notification troubleshot screen 2019-06-18 10:30:56 +02:00
53bdd58c1b Fix UI issue on BugReportActivity (send button not visible) 2019-06-18 10:25:13 +02:00
51879845f2 Merge pull request #186 from vector-im/feature/crypto_up
Crypto work
2019-06-17 19:07:24 +02:00
f2372841f6 KeysBackup: import change from https://github.com/vector-im/riot-android/pull/3127 2019-06-17 19:07:04 +02:00
0497d14a08 SAS: import change from https://github.com/matrix-org/matrix-android-sdk/pull/467 2019-06-17 19:06:32 +02:00
0b6b95110f Merge pull request #182 from vector-im/feature/cryptoKeys
Crypto: Import/export room keys (the old way)
2019-06-17 19:05:43 +02:00
191d80e5f5 Fix issue with key importation 2019-06-17 19:05:26 +02:00
659ba34fb3 Remove CryptoAsyncHelper and use only coroutine 2019-06-17 19:05:26 +02:00
907a1d1a4b Import keys: WIP 2019-06-17 19:05:26 +02:00
99d2e8388a Fix crash 2019-06-17 19:04:48 +02:00
38b1d24953 Use foldToCallback() whenever it's possible 2019-06-17 19:04:48 +02:00
b682f3e982 Cleaner code 2019-06-17 19:04:48 +02:00
5f0d1d9536 Crypto: export room keys 2019-06-17 19:04:48 +02:00
c2c2d0b21e Dagger: make SDK DI working 2019-06-17 18:17:37 +02:00
8c8a4dcbd1 Fix margin issue when second text is not displayed 2019-06-17 18:13:34 +02:00
7e9275831b Merge pull request #180 from vector-im/feature/fix_timeline
Request can now be canceled properly
2019-06-17 18:01:46 +02:00
6266f9e6a1 Handle device deletion the proper way 2019-06-17 17:32:35 +02:00
9649e190ef Fix compilation issue after rebase 2019-06-17 16:28:27 +02:00
1547045165 Request can now be canceled properly: it should fix the issue with live chunk being deleted. 2019-06-17 15:08:16 +02:00
5b0cab3e8a Merge branch 'feature/i18n_sync' into develop 2019-06-17 14:55:54 +02:00
97b066b8fa Import strings from Riot 2019-06-17 14:55:17 +02:00
4be0ab87fc Dagger: continue adding it to SDK [WIP] 2019-06-16 17:00:47 +02:00
3d465f6fdf Start to introduce Dagger into SDK [WIP] 2019-06-14 16:32:23 +02:00
e3bc88e36c Merge pull request #183 from vector-im/feature/motionLayout
Better anim of ome button
2019-06-14 16:17:27 +02:00
eaf1e080ba format file 2019-06-14 16:14:39 +02:00
02ef1172ce Merge pull request #179 from vector-im/feature/cryptoFinalization
Crypto: Delete device
2019-06-14 16:06:23 +02:00
8f6f72ca48 Review: Added optional to stage and renamed to "InteractiveAuthenticationFlow" 2019-06-14 16:06:07 +02:00
df4f0eac20 Merge branch 'feature/sync_ui' into develop 2019-06-13 18:16:45 +02:00
d353e9314b Crypto: Delete device 2019-06-13 16:48:42 +02:00
567c1fd7a5 Merge pull request #175 from vector-im/feature/crypto
Feature/crypto
2019-06-13 15:28:09 +02:00
ab95cbee92 Improve keys backup banner rendering 2019-06-13 14:20:43 +02:00
9dc1684179 Crypto: check for encryption state event to know if room isEncrypted 2019-06-13 11:49:11 +02:00
c20b256b24 Move KeysBackupStateListener to a dedicated file 2019-06-13 11:13:05 +02:00
02d3fea4a9 Move javadoc to interface 2019-06-13 11:10:26 +02:00
ca98ff5864 Clear crypto database when signing out 2019-06-13 10:58:45 +02:00
6cd3b4dd95 Import https://github.com/vector-im/riot-android/pull/3111/files in RiotX 2019-06-13 10:33:04 +02:00
480d197ffa Keys share request handling 2019-06-12 18:32:24 +02:00
a7c0e87f40 Alerter: upgrade lib and change status icon color when alert is displayed 2019-06-12 16:30:30 +02:00
af1a48d918 SAS: fix issue on emoji rendering 2019-06-12 15:44:25 +02:00
e17ffc85e7 KeysBackup: save recovery key to file 2019-06-12 14:59:54 +02:00
9c654ba72c Use observeEvent when appropriate 2019-06-12 13:19:52 +02:00
b47ef9220e Keys backup: migrate settings to Epoxy and MvRx 2019-06-12 13:09:43 +02:00
0204bade8b Content: hide some internal methods 2019-06-12 10:54:26 +02:00
481a25d4df Settings: add some webview content 2019-06-12 10:53:48 +02:00
3dd161d65a Sync: add progress indicator for sync, need UI inputs. 2019-06-11 16:54:44 +02:00
53dd9c3427 Keys backup fix some issue on layout 2019-06-11 16:48:48 +02:00
4827b76b80 Integrate keysbackup banner 2019-06-11 15:45:40 +02:00
1206107a73 Fix / visibility bug after scroll
+ refine animation
2019-06-11 15:43:40 +02:00
5621f0661e Merge branch 'develop' into feature/crypto 2019-06-11 14:56:27 +02:00
875947dd61 Give the opportunity to override log configuration in local gradle properties file 2019-06-11 14:52:39 +02:00
61b1d83bbd Clean 2019-06-11 14:37:02 +02:00
64e5fed7ac Fix issue: lastSeenTs can be null 2019-06-11 13:57:35 +02:00
f6c36670c3 Rename class members and class name for code clarity 2019-06-11 13:32:09 +02:00
2e39a678db Code quality 2019-06-11 10:15:50 +02:00
6dacb9894e Merge branch 'develop' into feature/crypto 2019-06-11 10:11:53 +02:00
612b13808f Crypto: clean some code + add failure send state (but not handled yet). 2019-06-10 19:22:48 +02:00
90a011c4e4 Fix issue on animation 2019-06-10 18:16:06 +02:00
56f1c726b2 FAB Motion WIP
FAB Motion WIP

FAB Motion WIP

FAB Motion WIP
2019-06-10 17:22:00 +02:00
6323183119 Ganfra's review: use sumBy() instead of reduce() 2019-06-10 17:06:58 +02:00
3439a9ca27 Merge pull request #173 from vector-im/feature/create_room
Create Room screen
2019-06-10 17:01:44 +02:00
9772bbe157 Ganfra's review: revert change 2019-06-10 16:58:48 +02:00
fa297a7b6a Ganfra's review: use NavigationViewModel to open the drawer 2019-06-10 16:53:21 +02:00
b48c920292 Ganfra's review: use simple ViewModel 2019-06-10 16:45:42 +02:00
c0be04f46c Ganfra's review: use observeEvent 2019-06-10 16:39:46 +02:00
b437837809 Ganfra's review: use RealmQueryLatch 2019-06-10 16:35:51 +02:00
33f8059846 Increase connect timeout from 30 seconds to 1 minute, for slow Homeserver (should fix #170) 2019-06-10 15:57:42 +02:00
4eab0a3704 Add foreground attribute 2019-06-10 15:35:05 +02:00
933e06a7ef Auto collapse toolbar 2019-06-10 15:24:25 +02:00
ad8baf8091 Fix screen rotation issue 2019-06-10 14:13:14 +02:00
598245531a Fix compilation issue after rebase 2019-06-10 13:45:34 +02:00
4f044c0cd6 Create room screen - Navigate to change protocol 2019-06-10 13:39:51 +02:00
77fc793e89 Create room screen - Navigate to freshly created room 2019-06-10 13:39:51 +02:00
aa95ce3d02 Create room screen - Better navigation pattern 2019-06-10 13:39:51 +02:00
4c5bffe0f5 Create room screen - WIP TODO: screen rotation - navigate to created room 2019-06-10 13:39:51 +02:00
ed18a504e4 Open drawer when clicking on group avatar 2019-06-10 13:39:11 +02:00
aec7e72dcf Add missing files for Status theme 2019-06-10 13:39:11 +02:00
f2722f4766 Crypto: fix a small issue 2019-06-07 20:38:39 +02:00
07c516ccdd Merge branch 'develop' into feature/crypto 2019-06-07 19:25:55 +02:00
81330d30cf Merge branch 'develop' into feature/crypto 2019-06-07 18:53:24 +02:00
8f2c005d82 Merge pull request #168 from vector-im/feature/aggregation_p1_wrapup
Feature/aggregation p1 wrapup
2019-06-07 16:40:22 +02:00
a4a813708c Fix / send state always returning Unknown 2019-06-07 16:39:45 +02:00
664e5354d3 Crypto: continue cleaning + fix some issues. 2019-06-07 16:01:24 +02:00
10251b906a clean / format 2019-06-07 15:57:55 +02:00
c9240c2dce Fix / disable context menu on not sent messages 2019-06-07 15:49:41 +02:00
220e6224e7 Merge develop 2019-06-07 15:42:04 +02:00
d3518c4944 Merge pull request #161 from vector-im/feature/fix_timeline_clicks
Fix / click|longclick link interference
2019-06-07 14:43:04 +02:00
5f34e58bd3 Fix / style on emoji picker appbar layout 2019-06-07 14:29:42 +02:00
438404b5ba code review cleaning 2019-06-07 14:14:51 +02:00
651d0472cd Show preview for notice events in context menu + fix merge issues 2019-06-07 14:14:51 +02:00
5cf9deb329 Menu action for non room messages 2019-06-07 14:14:51 +02:00
7409003949 Fix / Bug aggregation on initial sync
fix / All messages were not processed due to a test exiting the for loop
+ started adding context menu for non room messages
2019-06-07 14:14:51 +02:00
3f1bf00fdd Fix / use emoji Compat font for view reaction screen 2019-06-07 14:14:51 +02:00
04576ba7fd Permalink message action + Fix crash on injection of navigator 2019-06-07 14:14:51 +02:00
053dc1d8dd Show 'view reaction' option in context menu 2019-06-07 14:14:51 +02:00
834a865dfa Show text with only few emojis in bigger 2019-06-07 14:14:51 +02:00
e22b555b58 Refactoring (duplication in Message Item Factory) + cleaning 2019-06-07 14:14:51 +02:00
297f202005 Fix / Local echo taking too much time 2019-06-07 14:14:51 +02:00
440442bb99 New View Reactions bottom sheet
+ visible on reaction long click
+ Reaction pills size adapt to count, and number format
2019-06-07 14:14:51 +02:00
d2f648edec Use Font emoji compat for quickReactions and pills 2019-06-07 14:14:51 +02:00
53c91dc0c2 Ignore server aggregation until API ready 2019-06-07 14:14:51 +02:00
adbfde94d6 Fix / move read receipt on m.replace events 2019-06-07 14:14:51 +02:00
1b3ec2d0fb fix / review 2019-06-07 13:38:58 +02:00
ecccb80e04 Fix / No elevation on toolbars
In order to work se need to set a background on toolbar
2019-06-07 13:26:03 +02:00
11914ca188 Merge pull request #166 from vector-im/feature/debug_signature
Share the debug signature to all machines which build the debug APK
2019-06-07 10:38:40 +02:00
fb9627b7c4 Share the debug signature to all machines which build the debug APK 2019-06-07 10:17:14 +02:00
b782e5e8af Merge pull request #164 from vector-im/feature/cleanup
Theme integration
2019-06-06 19:27:39 +02:00
b67c686d67 Fix lint warning 2019-06-06 19:23:14 +02:00
c4d7711d2f Crypto: finally get a working encrypt/decrypt + SAS 2019-06-06 19:10:04 +02:00
f2da46b5f9 Dark dialog 2019-06-06 19:09:59 +02:00
a0b2d4c8f2 L'oeil à l'interieur 2019-06-06 18:56:54 +02:00
1f85f4a007 Remove unused themes 2019-06-06 18:47:27 +02:00
2c2f517e52 Hot change of theme - WIP 2019-06-06 18:34:14 +02:00
bfbb29b2cf Theme FAB menu 2019-06-06 16:45:45 +02:00
dd563ec9ae Fix issue in theme 2019-06-06 15:56:05 +02:00
e2d36aa213 Fix issue in theme 2019-06-06 15:24:04 +02:00
2cc2844abf Fix issue in theme 2019-06-06 15:16:56 +02:00
75b8932395 Fix issue in theme 2019-06-06 14:37:30 +02:00
311d8484a2 Add test Theme Activity 2019-06-06 13:39:08 +02:00
917282303d Import test Activities from Riot 2019-06-06 10:28:11 +02:00
8afe31192b Fix issue in themes 2019-06-06 09:50:26 +02:00
bbbf64f543 Fix issue in themes 2019-06-06 09:39:08 +02:00
6b0ab10231 Crypto: continue threading rework. WIP to shash 2019-06-05 22:18:16 +02:00
acedff4e89 FAB Menu
FAB Menu WIP

FAB Menu WIP

FAB Menu WIP
2019-06-05 18:59:50 +02:00
f9bfda059f Theme rework WIP 2019-06-05 16:16:37 +02:00
94c91e0dae Theme rework WIP 2019-06-05 15:58:00 +02:00
48fadd1a11 Theme rework WIP 2019-06-05 15:27:35 +02:00
51f5594ea0 Theme rework WIP 2019-06-05 14:57:30 +02:00
91114e2afe Quick and dirty implementation of password reveal on HomeScreen 2019-06-05 10:17:59 +02:00
e058fa9069 Add elevation on Toolbar 2019-06-04 18:10:38 +02:00
2ba7ec48f6 Code cleanup, remove duplicate code, and add some comments 2019-06-04 17:36:49 +02:00
e125862794 Crypto: start reworking threading - WIP (to squash) 2019-06-04 16:26:37 +02:00
ab6220a4cb Fix crash when reducing empty collection 2019-06-04 15:12:09 +02:00
647a066c90 Merge pull request #159 from vector-im/feature/home_rework
Feature/home rework
2019-06-04 12:54:38 +02:00
2b6eee4237 Merge branch 'develop' into feature/home_rework 2019-06-04 12:54:16 +02:00
7eb1be4633 Valere's review 2019-06-04 12:35:50 +02:00
0ecc53f59c Added simple (limited) message preview 2019-06-04 12:02:34 +02:00
e3983deacc dispose uiDisposable in onDestroy() 2019-06-04 11:02:40 +02:00
9357059cbc Merge pull request #155 from vector-im/feature/aggregation_local_echo
Local echo for reactions/edits/redacts
2019-06-04 10:43:22 +02:00
9061d5c972 better code 2019-06-04 10:37:49 +02:00
471170a3e0 Fix / click|longclick link interference
+ some missing long click (image content wrapper)
+ update markwon version
2019-06-04 10:29:56 +02:00
43521c6e09 Cleanup 2019-06-04 10:25:29 +02:00
fc5edcdf0f Expanding Fab menu 2019-06-04 10:14:48 +02:00
3d50393b33 Crypto: continue cleaning. Need threading refactoring 2019-06-03 18:39:37 +02:00
424fd1347d Code review 2019-06-03 18:23:40 +02:00
3475b169ea icon change 2019-06-03 16:46:27 +02:00
c1fa728c24 Public rooms little rework 2019-06-03 16:44:31 +02:00
3b12f5eec7 Room preview toolbar + link on topic 2019-06-03 14:37:22 +02:00
12b03a844d Room preview world readable room 2019-06-03 14:29:29 +02:00
4716ceb950 Correct initial state 2019-06-03 14:13:56 +02:00
c91a409258 Do not use execute{ } 2019-06-03 14:06:01 +02:00
784d55c16c Crypto: WIP cleaning 2019-06-02 20:34:19 +02:00
99925d7cf9 Local echo for reactions/edits/redacts 2019-05-29 18:43:33 +02:00
ae38917a33 Home badge 2019-05-29 18:04:41 +02:00
9da727b623 All caught up screen 2019-05-29 16:20:25 +02:00
241ee1cb9d Fix issue with Avatar renderer in invitation screen 2019-05-29 15:07:08 +02:00
e959fe2e9d Hide FAB when list is scrolling 2019-05-29 14:52:08 +02:00
6978ec4246 cleanup 2019-05-29 14:19:40 +02:00
2b8bbc550c Room list 2019-05-29 13:36:24 +02:00
25f6528049 Drawer layout 2019-05-29 10:52:26 +02:00
3289cbd6e7 Cleanup 2019-05-29 09:58:29 +02:00
b91e7e9fb8 Cleanup 2019-05-29 09:39:55 +02:00
e70a483d6b Introduce Navigator 2019-05-28 21:24:29 +02:00
6244913ab9 Join room from room preview 2019-05-28 17:21:54 +02:00
33fbcc8ba3 RoomPreview when the room is not world readable 2019-05-28 15:58:30 +02:00
3f7d20ec5b Crypto: make encryption working. 2019-05-28 15:54:16 +02:00
466be1dca5 Fix / issue with avatar url 2019-05-28 15:17:06 +02:00
bdbd521257 Merge pull request #148 from vector-im/feature/edit_message
Edit message in timeline (+ quote / reply)
2019-05-28 14:57:00 +02:00
deba756598 Added doc 2019-05-28 10:51:02 +02:00
3cb99ff64f Renamed package .internal.session.room.annotation to xx.relation 2019-05-28 10:45:58 +02:00
20e903914c Cleaning / code review 2019-05-28 10:43:36 +02:00
71ea1c5f9b Fix / avoid newlines and ws in reply event representations 2019-05-27 18:21:59 +02:00
4a4c0a3da1 Added auto markdown (as per preference)
Fix / show formatted message preview upon composer in edit/quote/reply
Fix / use aggregated content to decide for actions on long click
2019-05-27 18:08:29 +02:00
8f2754493c Fix issue with Avatar URL 2019-05-27 17:42:29 +02:00
dde94c0d0f Plug screens together 2019-05-27 17:28:18 +02:00
00d66ffd48 Merge branch 'develop' into feature/edit_message 2019-05-27 17:08:39 +02:00
c7c7211978 Fix layout preview 2019-05-27 17:02:12 +02:00
02a81dd9e1 Fix issue 2019-05-27 16:07:26 +02:00
02555fcbac Fix compilation issues after rebase 2019-05-27 15:43:26 +02:00
b9d76f5047 Room list & event : decouple notice events formatting to be used within room controller 2019-05-27 15:37:18 +02:00
9f9f4c0755 Home: change some UI in room list 2019-05-27 15:34:11 +02:00
1691537a1e Room list : add chronological and alphabetical comparators 2019-05-27 15:32:20 +02:00
eb2344a43f Home: continue room list rework. 2019-05-27 15:32:20 +02:00
c0fd06fd2d Home: start reworking room list. 2019-05-27 15:31:26 +02:00
275521db70 Home: continue architecture rework. WIP 2019-05-27 15:30:47 +02:00
268730e71b Home: start reworking UX [WIP] 2019-05-27 15:28:27 +02:00
0feb10315b Merge pull request #150 from vector-im/feature/rooms_directory
Feature/rooms directory
2019-05-27 14:28:21 +02:00
39f69a6c3b Code quality 2019-05-27 14:00:13 +02:00
d9fecabc1f Fix / Edits could break cells merging
Edits are not displayable
2019-05-27 12:30:05 +02:00
14611d1f7b Disable log 2019-05-27 12:28:06 +02:00
fe6e27fd6a Create ButtonStateView with some custom attributes 2019-05-27 12:08:18 +02:00
0e06908a48 Design update
+ Reply 
+ Better preview in action menu
2019-05-27 11:55:52 +02:00
390c6a1977 layout 2019-05-27 10:04:54 +02:00
af338b0607 Crypto: decryption is working (but still a lot to do) 2019-05-26 19:21:45 +02:00
b45cc0e63f Refactoring/ create custom view for composerLayout in timeline
+ simplify quote/edit composer preview animation
2019-05-25 14:49:35 +02:00
128dea2677 Scope and error manager 2019-05-24 22:27:26 +02:00
cd5e808bb6 Retry join room 2019-05-24 17:38:46 +02:00
bbf2f96288 Add marging around item 2019-05-24 15:57:28 +02:00
2404eeadf0 RoomDirectoryPicker WIP 2019-05-24 15:43:12 +02:00
877de1f597 Get Public rooms and join public room 2019-05-24 11:36:04 +02:00
3519ad7c8d Crypto : WIP 2019-05-23 19:12:06 +02:00
3c16701766 Fix / line too long 2019-05-23 17:56:05 +02:00
1da0b5be76 Fix / Block command completion in Quote and Edit mode 2019-05-23 17:53:11 +02:00
c6e428c047 Fix / remove DebugActivity + clean 2019-05-23 17:27:32 +02:00
45ea5c356e WIP / edit message 2019-05-23 16:44:51 +02:00
5da29e8063 Update MxRx library from 0.7.0 to 1.0.1 2019-05-22 16:36:31 +02:00
99087019d2 Input type on message text field (Fixes #129) 2019-05-22 15:33:22 +02:00
71f8ce001d Fix Crash when connecting to a homeserver URL with a subpath (Fixes #133) 2019-05-22 15:23:36 +02:00
bb39db3f42 WIP 2019-05-21 16:33:43 +02:00
b0e80e49b3 QuickFix / Allow to scroll under login button 2019-05-21 16:28:47 +02:00
ec53ce9d00 Merge pull request #141 from vector-im/feature/edit_aggregation
Support incoming message edition
2019-05-21 16:21:46 +02:00
52d9adad70 WIP 2019-05-21 15:42:09 +02:00
118a4392a2 Fix / Support redaction of a m.replace event
+ refactoring
2019-05-21 15:33:16 +02:00
b8c3bdbbf6 Cleaning 2019-05-21 14:27:57 +02:00
d49007538b Fix / Annotate emote also 2019-05-21 14:26:46 +02:00
6f103101b6 Show edited annotation in timeline + simple edit history 2019-05-21 14:12:18 +02:00
a5a9fa3750 Color provider need to be aware of theme 2019-05-21 14:10:19 +02:00
efcac6b3e4 Fix / Missing schema for realm 2019-05-21 09:50:10 +02:00
8cb884f10e Support message edition 2019-05-20 18:52:48 +02:00
6d8000b957 Log 2019-05-20 17:13:08 +02:00
f5bd215f36 rework 2019-05-20 16:55:45 +02:00
532a028e41 Split again 2019-05-20 16:13:50 +02:00
2581bf69e0 Merge pull request #139 from vector-im/feature/undo_reaction
Undo Reaction
2019-05-20 14:28:36 +02:00
2da4823e33 Fix / crash on logout
cannot access deleted object from delete
2019-05-20 13:58:45 +02:00
70c4b7528d Fix doc 2019-05-20 12:49:35 +02:00
5dfc0b3c0e Toggle Quick React (agree/disagree like/dislike) 2019-05-20 12:43:02 +02:00
44d1d063e9 Fix / theme update after rebase was displaying emojis grayed out 2019-05-20 10:16:00 +02:00
71e50b1bb9 Fix / Missing inject after rebase 2019-05-20 10:16:00 +02:00
64c307077f Refactoring / PruneWorker should be a task not a worker 2019-05-20 10:16:00 +02:00
71e364b42f Fix / Hide reactions on redacted message 2019-05-20 10:16:00 +02:00
054d339b48 Fix / Reaction stays highlighted when undone
When undoing my reaction, the reactji stays selected as if i have done the reaction
2019-05-20 10:16:00 +02:00
e3b9031e71 Fix / day separator flicker when adding reaction
When adding a reaction, the tmp local echo force the display of a new 'day separator' at the bottom if there was no new message for this day yet (then disappears just after -flicker-)
2019-05-20 10:16:00 +02:00
3fa9d7a1d4 Fix formatting 2019-05-20 10:16:00 +02:00
6eafa3c43d Undo Reaction 2019-05-20 10:16:00 +02:00
207579c59f Fix / margin end-right missing for compatibility 2019-05-20 10:14:40 +02:00
2780ca30a8 Merge branch 'feature/invites' into develop 2019-05-17 17:38:09 +02:00
e0e41d9e5c Create common action 2019-05-17 15:33:38 +02:00
340830d45f Test passed 2019-05-17 15:21:44 +02:00
de4662b9d5 Remove all async thread 2019-05-17 15:05:07 +02:00
c66e82c4ae Create OneTimeKeysManager 2019-05-17 12:39:18 +02:00
a2210a6b0d WIP 2019-05-17 11:20:22 +02:00
41c54029b5 Merge pull request #138 from vector-im/feature/send_reaction-phase1
Send reaction view quick react and picker
2019-05-17 09:05:58 +02:00
f9142fedfd Increment reaction when reaction pill clicked in timeline 2019-05-16 18:33:32 +02:00
102bc9c01b SAS Tested 2019-05-16 17:28:51 +02:00
ef26519993 Send reaction view quick react and picker
+ fix / Error when to many reactions in cells (more than placeholders -8-)
+ fix / DefaultTimeline quick map access was not shifted when items inserted at given index
2019-05-16 16:35:54 +02:00
e27367e3f2 Merge pull request #137 from vector-im/feature/aggregations_relations
Feature/aggregations relations
2019-05-16 16:22:47 +02:00
e70fd8e351 canonicalize 2019-05-16 15:36:51 +02:00
dc9db9a438 Fix / was using wrong emoji for agree 2019-05-16 10:56:37 +02:00
6fe455dac0 Support AddedByMe in reaction + context menu reflect agree/like state 2019-05-16 10:49:52 +02:00
1436667e7d Crypto 2019-05-16 10:34:17 +02:00
a9a1fe2aa0 Fix / hide keyboard when showing context action sheet
+ fix reaction colors
2019-05-16 09:33:49 +02:00
d68b447874 Relations Model + Aggregation + Reactions Summary 2019-05-16 09:21:10 +02:00
11e3a5def8 Moved reactions view to a stub 2019-05-16 09:20:24 +02:00
6aae943e77 Merge pull request #135 from vector-im/feature/reaction_timeline_ux
Reactions: Display existing reactions below the message
2019-05-15 11:24:00 +02:00
8d0322c0c3 Hot fix LL not working 2019-05-15 11:11:38 +02:00
f60a5f568f Invitation : start polishing but theme has to be rework. Waiting for Nad inputs. 2019-05-14 11:55:48 +02:00
00fd866cc8 Reactions: Display existing reactions below the message
- Reaction Button Bellow the message
- Upgrade to constraint layout 2.0.0 beta (for Constraint Helpers / Flow)
- Added tap on member name action
- Cleaning
2019-05-14 11:07:53 +02:00
8929898397 Merge pull request #134 from vector-im/feature/refactor_timeline_layouts
Refactoring / Use view ViewStub to avoid layout xml duplication
2019-05-13 16:59:13 +02:00
73d5110d67 Code review / Renamed base item class name 2019-05-13 16:29:33 +02:00
0c559976d6 Default avatar style so small 2019-05-13 09:38:52 +02:00
540989f38a Fix / ripple effect broken after merge 2019-05-10 18:43:06 +02:00
608bbdd4ee Refactoring / Use view ViewStub to avoid layout xml duplication 2019-05-10 18:31:56 +02:00
9a5f96f80b Merge pull request #132 from vector-im/feature/reactions_chooser
Feature/reactions chooser
2019-05-10 16:59:14 +02:00
6bf1deb99b Code Review 2019-05-10 12:14:40 +02:00
cfca4927e2 Cleaning 2019-05-10 09:28:52 +02:00
93cb7b8ce6 Cleaning 2019-05-09 18:43:10 +02:00
dcc430f91b Refactoring / revert reaction module to package in main module 2019-05-09 18:26:32 +02:00
64216f74ae fix / code quality 2019-05-09 09:15:30 +02:00
8fd15f4082 Debounce click + avatar click 2019-05-08 15:49:32 +02:00
38abf31889 Fix / ripple effect after merging 2019-05-08 10:33:14 +02:00
c39cfbe2ae Invites : allow to accept or reject the invite + clean some code. Require UI polishing. 2019-05-07 19:33:58 +02:00
b00bff0af5 Icon Update / Added timestamp on context menu
+ played with avatar sizes
2019-05-07 18:03:56 +02:00
56a2a3a065 [WIP] Emoji Reactions 2019-05-07 18:01:51 +02:00
a64f509872 WIP / emoji picker 2019-05-07 17:20:48 +02:00
359cc67fab fix indent? 2019-05-07 14:13:50 +02:00
72cd409735 Invites : start handling invite/left sync 2019-05-06 19:17:30 +02:00
ceac06caf6 Merge pull request #109 from vector-im/feature/timeline_formatting 2019-05-06 15:01:08 +02:00
694df9d845 Timeline : fix some timeline rendering issues (senderName, merge item, left event). Still need to work on it. 2019-05-06 14:26:41 +02:00
360d2a3c2e Fix Buildkite file format 2019-05-06 10:18:32 +02:00
9cfc67329a Fix Buildkite file format
Fix Buildkite file format
2019-05-06 10:13:29 +02:00
75c74c25e1 Merge pull request #119 from vector-im/feature/buildkite
Buildkite - WIP
2019-05-06 10:07:57 +02:00
7dce8c29bc Buildkite generate release APK (unsigned) 2019-05-06 10:07:16 +02:00
41337d0ca4 Configure pipeline for buildkite 2019-04-30 13:58:13 +02:00
287feace12 Timeline : merged events are now handled directly within the recyclerview and do not need a LinearLayout. 2019-04-20 10:42:37 +02:00
b3e2eca43d Timeline : start to handle merging room member events. Need to get better perf. 2019-04-18 16:50:02 +02:00
0818c55b6d Merge pull request #107 from vector-im/feature/cache
Clear cache and rework Signout
2019-04-17 16:26:48 +02:00
b1b526a516 Clear cache and rework Signout 2019-04-17 15:55:38 +02:00
b6cbed1c90 Fix build after merge 2019-04-17 12:50:43 +02:00
65e2abf402 Merge pull request #106 from vector-im/feature/apis
Handle filter for sync
2019-04-17 12:35:31 +02:00
bee5da8f64 Format and avoid long lines 2019-04-17 12:35:18 +02:00
ab7b807740 Rename APIs 2019-04-17 12:06:15 +02:00
4c02721ada Create realm module to avoid losing credentials when Realm model change. 2019-04-17 12:06:15 +02:00
5dca31e6f9 Do not loop sync in case of JsonEncodingException (if HS is down) 2019-04-17 12:05:39 +02:00
d2e1aff453 Convert JsonFilter to FilterId 2019-04-17 12:05:39 +02:00
dab80466c5 Timeline : extract video thumbnail and upload it 2019-04-16 17:24:28 +02:00
2c83ba0824 Timeline : start to handle video media. Probably to amend 2019-04-12 13:46:59 +02:00
657f4d3e9c Timeline : handle file/audio message 2019-04-12 12:38:02 +02:00
9c9c09db2b Adjust colors for avatar and display names + start handling video in timeline 2019-04-11 19:19:52 +02:00
c38a601bcc Timeline : apply color for sender 2019-04-11 15:40:07 +02:00
dcac9aed55 Merge branch 'feature/media_attachment' into develop 2019-04-11 13:21:51 +02:00
0225fc7120 Media upload: handle local echo by pinning at the bottom... will probably be changed 2019-04-11 12:48:35 +02:00
2a2b4e7bd9 Merge pull request #104 from vector-im/feature/emote
Send emote and update room topic
2019-04-10 09:40:32 +02:00
7d872420f0 Merge pull request #103 from vector-im/feature/linkify
Linkification: import workaround done on Riot
2019-04-09 18:37:48 +02:00
0055514f90 Update room topic 2019-04-09 18:33:28 +02:00
6248cc5552 Send emote 2019-04-09 17:53:23 +02:00
347967700b Linkification: import workaround done on Riot 2019-04-09 17:33:47 +02:00
eaff5ac9f0 Merge pull request #102 from vector-im/feature/completion
Add Slash command parser and handle room member invitation
2019-04-09 16:33:20 +02:00
63964ac101 SlashCommand: add TODO 2019-04-09 15:21:17 +02:00
3b52fa4be8 Command parser: check userId format 2019-04-09 14:52:31 +02:00
81ddb8c5fb SlashCommand: handle user invitation 2019-04-09 14:44:48 +02:00
eae8f993e6 SlashCommand: implement parser 2019-04-09 14:00:30 +02:00
fab1d249f4 Autocomplete : better code 2019-04-09 10:03:06 +02:00
3f1cc466ed Autocomplete : handle click 2019-04-09 09:58:07 +02:00
c64d6b6b28 Autocomplete : handle click and better detection for / commands 2019-04-08 18:31:24 +02:00
c9658918ed Media upload : start handling progress. 2019-04-08 16:39:08 +02:00
6d3028c2d7 Autocomplete : start fetching users. Still need to adjust UI and manage selection. 2019-04-08 16:18:36 +02:00
aec7b73345 Introduce room member service 2019-04-08 15:53:02 +02:00
56563412aa Autocomplete : start integrating commands. Still need to work on it 2019-04-08 15:51:35 +02:00
a9b8c57464 Allow cleartext communication on 127.0.0.1 (Fixes #98) 2019-04-08 15:21:12 +02:00
314771cce2 Allow cleartext communication on localhost (Fixes #98) 2019-04-08 15:15:11 +02:00
bb65dc5247 Merge pull request #99 from vector-im/feature/create_room
Create Room
2019-04-08 14:16:47 +02:00
460a72e6b5 Create Room 2019-04-08 13:49:28 +02:00
748090d0f9 Avoid critical log for timeout on event thread 2019-04-05 11:07:45 +02:00
968258852f Add a log 2019-04-05 11:01:43 +02:00
260cc0dd5f Rename class from Riot* to Vector* 2019-04-05 10:40:59 +02:00
57cea677e4 Import resource from Riot 2019-04-05 10:14:45 +02:00
c47eeb9cec Send media: first working implementation. Then, need to fix local echo and handle other types than image. 2019-04-04 19:55:58 +02:00
e929019247 Merge pull request #97 from vector-im/feature/settings
Feature/settings
2019-04-04 11:39:56 +02:00
43659dffd3 Improve signout task 2019-04-04 11:10:45 +02:00
82d89825d3 Differentiate icon from Riot one 2019-04-04 11:10:31 +02:00
772670252a Make build FDroid pass 2019-04-04 11:10:12 +02:00
18591d0287 Media: start to play with uploading media 2019-04-03 23:06:17 +02:00
08dacacdda SignOut 2019-04-03 18:25:39 +02:00
3091a337c9 Launcher + Animated logo 2019-04-03 14:46:15 +02:00
73580493ea Import resource from riot 2019-04-03 14:34:52 +02:00
c188bb290f Not implemented toast or Snackbar 2019-04-03 14:08:25 +02:00
d9c8867c0b Introduce common parent for PreferenceFragment 2019-04-03 12:10:02 +02:00
87c9f6b2a0 Improve lint configuration 2019-04-03 12:04:24 +02:00
6830957d31 Import settings from Riot - not all fonctional of course 2019-04-02 18:08:43 +02:00
96a67a44ac Media: grab some code from Riot legacy 2019-04-02 15:59:36 +02:00
b9b8527b38 Improve RiotFragment 2019-04-02 12:14:16 +02:00
10520fb1bd Upgrade string from Riot 2019-04-02 11:57:12 +02:00
494d893aa3 Merge pull request #96 from vector-im/feature/vector
Rename `app` to `vector`
2019-04-02 11:46:43 +02:00
9048a1dbbe Rename app to vector 2019-04-02 11:24:54 +02:00
04b4f32e16 Sync : add log and continue when read_receipts fail 2019-04-01 17:39:27 +02:00
d110dac0a6 Merge feature/replace_paged_list into develop 2019-04-01 17:33:53 +02:00
be6a4efacb Timeline : make tests compile and pass 2019-04-01 15:18:52 +02:00
f75fe1201d Merge pull request #95 from vector-im/feature/fix_state
RageShake
2019-03-29 21:13:14 +01:00
547272b17b Please TravisCI build 2019-03-29 18:25:44 +01:00
94db36d6c4 Fix room summary not being updated when room members are loaded 2019-03-29 11:15:27 +01:00
3efcbaaea9 cleanup 2019-03-29 09:49:07 +01:00
fde09b4a94 Forbid backup 2019-03-28 17:55:38 +01:00
317503aa2b userAgent, userId and deviceId in rageshake 2019-03-28 17:49:13 +01:00
be2dad9b17 ExceptionHandler + Log in files for RageShake 2019-03-28 17:28:20 +01:00
2e2d5b9f86 Timeline : add non empty content to displayable conditions => should probably be removed later if we want to handle this case with special epoxy item. 2019-03-28 16:24:40 +01:00
a7b81a4671 Timeline : remove item animation for now. 2019-03-28 16:07:05 +01:00
86a60f7ebd Timeline : fix avatar issues / remove glide logs 2019-03-28 16:06:43 +01:00
a6366e47fe Timeline : change some database details to make it faster 2019-03-28 12:00:45 +01:00
bc467340c9 RageShake impleme + Import stuff from Riot 2019-03-28 11:53:28 +01:00
4154df7c21 Timeline : stabilize the pagedList replacement. Seems ok for phase0 2019-03-27 19:57:36 +01:00
79e273b1ca Add Doc 2019-03-27 18:03:36 +01:00
4ab3c39415 Merge pull request #18 from z3ntu/develop_api19
Hacks to get it running on API 19
2019-03-21 15:58:37 +01:00
ad243ae41f Clean code and update dependencies 2019-03-20 18:24:17 +01:00
2898eae566 Timeline : reactivate loaders and get off the main thread 2019-03-20 16:24:50 +01:00
cbd62b9e93 Rename Realm DB file 2019-03-20 14:36:47 +01:00
27374aea3f Add DebugReceiver 2019-03-20 14:12:10 +01:00
a4ef259bd2 Add FIXME 2019-03-19 18:17:40 +01:00
3f10829dcd Use correct wording for room list 2019-03-19 18:11:02 +01:00
289c820b48 Merge pull request #92 from vector-im/feature/user-agent
User agent and log of request in debug mode
2019-03-19 15:26:11 +01:00
40d4e3fe83 Log http requests, for easy debugging 2019-03-19 12:55:14 +01:00
f4170f55b7 Configure user agent 2019-03-19 12:29:45 +01:00
d8bff8201f Use gradle all distribution 2019-03-19 10:17:33 +01:00
dffcc3f405 Fix gradle issue 2019-03-18 18:53:14 +01:00
7030258de5 Add logo to badges 2019-03-18 18:49:05 +01:00
89a2aad561 Add logo to badges 2019-03-18 18:48:28 +01:00
6406c4021a Merge pull request #89 from vector-im/feature/gradle5.2.1
Upgrade gradle wrapper to 5.2.1, and pass first sonar analysis
2019-03-18 18:42:30 +01:00
ddc5a0d30b Add some badges FTW, and link to contributing.md 2019-03-18 18:42:04 +01:00
d4b1f074e3 Merge pull request #87 from Bubu/reproducible_versioncode
get timestamp for versioncode from last git commmit
2019-03-18 18:21:56 +01:00
3b68b304f5 Merge branch 'develop' into reproducible_versioncode 2019-03-18 18:21:22 +01:00
b8cceaa17a Upgrade gradle wrapper to 5.2.1, and pass first sonar analysis 2019-03-18 18:16:59 +01:00
8a7675d2e4 Merge pull request #88 from vector-im/feature/build_process
Configure CI
2019-03-18 17:26:32 +01:00
6cf91e5eca Configure sonar 2019-03-18 16:53:52 +01:00
e938866081 Fix issue in Strings 2019-03-18 16:42:19 +01:00
20108c2603 Add bug_report_url config 2019-03-18 16:32:35 +01:00
02c7deb783 Import strings from Riot and create a script to do so 2019-03-18 16:06:06 +01:00
368cf4b3f0 Create new file for RiotX string 2019-03-18 15:17:17 +01:00
c093e07c24 Deactivate test compilation by Travis for now. 2019-03-18 15:15:40 +01:00
a97142272c Fix lint issue 2019-03-18 15:08:57 +01:00
97fa94592e get timestamp for versioncode from last git commmit
This makes the versioncode for an apk reproducible. Building the same
commit/code will produce an apk with the same VC.

Signed-off-by: Marcus Hoffmann <bubu@bubu1.eu>
2019-03-16 13:56:25 +01:00
0c76178bee Markwon : update method name 2019-03-15 19:28:13 +01:00
c12bc5e02d Timeline rework : first version working for backward navigation (need more testing) 2019-03-15 19:27:56 +01:00
0db1d98f41 Fix compilation issue 2019-03-15 19:18:43 +01:00
008f6e2bdd Android version for TravisCI 2019-03-15 18:48:53 +01:00
820709d433 Timeline rework : initial commit - to amend. 2019-03-13 22:30:05 +01:00
d5838262ea Fix i18n issue 2019-03-13 18:36:57 +01:00
617f71fd51 Remove .idea files 2019-03-13 18:04:57 +01:00
1ac143a065 Travis 2019-03-13 18:02:12 +01:00
eca59114dd Setup various tools 2019-03-13 17:50:03 +01:00
a199eaa171 Setup various tools 2019-03-13 17:00:30 +01:00
26ae034ba9 Add debug_mode resValue 2019-03-13 15:11:02 +01:00
99b1c0bed4 Merge pull request #73 from tulir/patch-1
Fix room link in readme
2019-03-13 11:56:58 +01:00
388eae6a1c Merge branch 'feature/image_viewer' into develop 2019-03-12 17:26:41 +01:00
ff6d1f611a Media : exposes the view to allow animation. 2019-03-12 16:54:33 +01:00
157068634a MediaViewer : start adding simple way of seing image in full size. Will probably change in the future. 2019-03-12 08:29:49 +01:00
1d4882e596 Timeline : fix small issue, reduce animation time and reorganize a bit some files. 2019-03-05 18:31:03 +01:00
415d9e702b Fix room link 2019-03-05 13:40:05 +02:00
4c3f7171e7 Update README.md & Create LICENSE 2019-03-04 19:18:15 +01:00
a146fc43e4 Merge branch 'feature/home_state_issues' into develop 2019-03-04 17:00:50 +01:00
ef3fb561e9 Pills : finalize avatar retrieval 2019-03-04 16:52:44 +01:00
fffdf4b8c1 Pills : try to optimize memory and get better perf. Still need to rework a bit. 2019-03-01 21:44:26 +01:00
3d7562ea8e UI : fix notice avatar position 2019-02-28 18:50:46 +01:00
fd3fce6deb State issues : restore recyclerview state + fix DI issues 2019-02-28 18:50:30 +01:00
753e70775a Merge branch 'feature/html_rendering' into develop 2019-02-27 17:51:06 +01:00
2c0bc93f5a Home: getting Room interface slow (blocking Main Thread). Maybe we should get this async. 2019-02-27 17:41:06 +01:00
adc51529f2 Pills : handle avatar 2019-02-27 17:17:47 +01:00
63bf4355b9 Html : continue work on Pills. Still need to find how to handle avatar drawable. 2019-02-26 19:35:47 +01:00
41b06bca60 User : rework UserEntityUpdater (and make others RealmLiveEntityObserver process on MonarchyThread instead of Main) 2019-02-26 19:32:01 +01:00
d6f6764b0c Timeline : avoid epoxy to build on main thread first 2019-02-26 19:28:39 +01:00
46226c4efc Avatar : skip '@' when name is userId 2019-02-26 15:04:43 +01:00
f59977f884 Room state: fix sync state events duplicates with timeline 2019-02-26 14:50:53 +01:00
40f1fcab18 User : start handling users. Need to fine a good strategy to process room member events. 2019-02-25 21:55:33 +01:00
85b119bdcb Home : hide keyboard when drawer state change 2019-02-25 18:13:53 +01:00
6c7bc2b40c Timeline: get better perf 2019-02-25 18:10:37 +01:00
f06211ce4f Start playing with ChipDrawable to show Pills 2019-02-25 15:18:36 +01:00
d2db5e32fc Html : start handling reply 2019-02-22 15:43:48 +01:00
4458e28ce2 Html : introduce markown lib to handle html rendering. 2019-02-21 19:21:08 +01:00
14ac3a8ae6 Merge branch 'feature/timeline_new_events' into develop 2019-02-20 18:09:37 +01:00
ca890e1ef4 Room tag: let the tag order be anything to avoid breaking at the moment. 2019-02-20 18:09:07 +01:00
9cc2cf8360 Timeline: set empty item as fallback item 2019-02-20 16:14:12 +01:00
28c837a47f Timeline: handle call events 2019-02-20 15:47:20 +01:00
42cf45c8f3 Timeline: handle room history visibility 2019-02-20 12:06:33 +01:00
8fdce937bd Timeline: handle notice events and hide some not displayable events. 2019-02-20 11:39:25 +01:00
f36bec7176 Merge branch 'feature/emote' into develop 2019-02-19 19:37:31 +01:00
9477316b61 Sync : add timber log on sync failure 2019-02-19 19:37:16 +01:00
36d1d52880 Timeline : handle emote content 2019-02-19 19:12:58 +01:00
abb44839af Merge branch 'feature/epoxy' into develop 2019-02-19 17:49:36 +01:00
e91276bb76 Epoxy : make sures RiotEpoxyModel is used everywhere. 2019-02-19 17:48:30 +01:00
b5f40f9732 Add stetho in debug to allow some inspection 2019-02-19 17:40:38 +01:00
24ffd96b6e Epoxy : finalize replacing KotlinModels 2019-02-19 15:47:50 +01:00
c977c651a2 Epoxy : timeline messages to holder WIP 2019-02-19 11:57:17 +01:00
5c78991ae1 Rx : hides subject inside a class 2019-02-19 11:16:31 +01:00
c467f179e1 Epoxy : start using viewholder instead of kotlin model as it's more efficient 2019-02-19 10:31:05 +01:00
264265a1f7 Merge branch 'feature/quick_fixes' into develop 2019-02-18 18:14:26 +01:00
a12a9da627 Update Realm 2019-02-18 17:42:03 +01:00
c42294a21e Handle room v3 event id format 2019-02-18 17:41:35 +01:00
03437885ef Read receipts : fix issues with receipts not being sent 2019-02-18 17:41:21 +01:00
5e81fc8dc2 Temporary workarounds to avoid some crashes. 2019-02-11 13:47:47 +01:00
7a5ff282b6 Fix room list display on my account
following Ganfra's advices
2019-02-01 18:57:19 +01:00
e4069ab51b Hacks to get it running on API 19 2019-01-30 17:52:44 +01:00
3060 changed files with 257594 additions and 10370 deletions

33
.editorconfig Normal file
View File

@ -0,0 +1,33 @@
# For ktlint configuration. Ref: https://ktlint.github.io/
[*.{kt,kts}]
# possible values: number (e.g. 2), "unset" (makes ktlint ignore indentation completely)
indent_size=unset
# true (recommended) / false
insert_final_newline=true
# possible values: number (e.g. 120) (package name, imports & comments are ignored), "off"
# it's automatically set to 100 on `ktlint --android ...` (per Android Kotlin Style Guide)
max_line_length=off
# Comma-separated list of rules to disable (Since 0.34.0)
# Note that rules in any ruleset other than the standard ruleset will need to be prefixed
# by the ruleset identifier.
disabled_rules=no-multi-spaces,colon-spacing,chain-wrapping,import-ordering,experimental:annotation
# The following (so far identified) rules are kept:
# no-blank-line-before-rbrace
# final-newline
# no-consecutive-blank-lines
# comment-spacing
# filename
# comma-spacing
# paren-spacing
# op-spacing
# string-template
# no-unused-imports
# curly-spacing
# no-semi
# no-empty-class-body
# experimental:multiline-if-else
# experimental:no-empty-first-line-in-method-block
# no-wildcard-imports

10
.github/PULL_REQUEST_TEMPLATE.md vendored Normal file
View File

@ -0,0 +1,10 @@
### Pull Request Checklist
<!-- Please read [CONTRIBUTING.md](https://github.com/vector-im/riotX-android/blob/develop/CONTRIBUTING.md) before submitting your pull request -->
- [ ] Changes has been tested on an Android device or Android emulator with API 16
- [ ] UI change has been tested on both light and dark themes
- [ ] Pull request is based on the develop branch
- [ ] Pull request updates [CHANGES.md](https://github.com/vector-im/riotX-android/blob/develop/CHANGES.md)
- [ ] Pull request includes screenshots or videos if containing UI changes
- [ ] Pull request includes a [sign off](https://github.com/matrix-org/synapse/blob/master/CONTRIBUTING.md#sign-off)

14
.gitignore vendored
View File

@ -1,12 +1,16 @@
*.iml
.gradle
/local.properties
.idea/*
/.idea/*
/.idea/libraries
/.idea/modules.xml
/.idea/workspace.xml
# idea files: exclude everything except dictionnaries
.idea/caches
.idea/libraries
.idea/inspectionProfiles
.idea/*.xml
.DS_Store
/build
/captures
.externalNativeBuild
/tmp
ktlint

View File

@ -1,29 +1,156 @@
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<Objective-C-extensions>
<file>
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Import" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Macro" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Typedef" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Enum" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Constant" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Global" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Struct" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="FunctionPredecl" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Function" />
</file>
<class>
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Property" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Synthesize" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InitMethod" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="StaticMethod" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InstanceMethod" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="DeallocMethod" />
</class>
<extensions>
<pair source="cpp" header="h" fileNamingConvention="NONE" />
<pair source="c" header="h" fileNamingConvention="NONE" />
</extensions>
</Objective-C-extensions>
<option name="RIGHT_MARGIN" value="160" />
<JetCodeStyleSettings>
<option name="PACKAGES_TO_USE_STAR_IMPORTS">
<value>
<package name="kotlinx.android.synthetic" withSubpackages="true" static="false" />
</value>
</option>
<option name="ALIGN_IN_COLUMNS_CASE_BRANCH" value="true" />
<option name="NAME_COUNT_TO_USE_STAR_IMPORT" value="2147483647" />
<option name="NAME_COUNT_TO_USE_STAR_IMPORT_FOR_MEMBERS" value="2147483647" />
<option name="CONTINUATION_INDENT_IN_PARAMETER_LISTS" value="true" />
<option name="CONTINUATION_INDENT_IN_ARGUMENT_LISTS" value="true" />
<option name="CONTINUATION_INDENT_FOR_EXPRESSION_BODIES" value="true" />
<option name="CONTINUATION_INDENT_FOR_CHAINED_CALLS" value="true" />
<option name="CONTINUATION_INDENT_IN_SUPERTYPE_LISTS" value="true" />
<option name="CONTINUATION_INDENT_IN_IF_CONDITIONS" value="true" />
<option name="CONTINUATION_INDENT_IN_ELVIS" value="true" />
<option name="WRAP_EXPRESSION_BODY_FUNCTIONS" value="0" />
<option name="IF_RPAREN_ON_NEW_LINE" value="false" />
<option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
</JetCodeStyleSettings>
<codeStyleSettings language="XML">
<option name="RIGHT_MARGIN" value="160" />
<indentOptions>
<option name="CONTINUATION_INDENT_SIZE" value="4" />
</indentOptions>
<arrangement>
<rules>
<section>
<rule>
<match>
<AND>
<NAME>xmlns:android</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>xmlns:.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:id</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:name</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>name</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>style</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
<order>ANDROID_ATTRIBUTE_ORDER</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>.*</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
</rules>
</arrangement>
</codeStyleSettings>
<codeStyleSettings language="kotlin">
<option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
<option name="RIGHT_MARGIN" value="160" />
<option name="KEEP_BLANK_LINES_IN_DECLARATIONS" value="1" />
<option name="KEEP_BLANK_LINES_IN_CODE" value="1" />
<option name="KEEP_BLANK_LINES_BEFORE_RBRACE" value="0" />
<option name="CALL_PARAMETERS_WRAP" value="0" />
<option name="CALL_PARAMETERS_LPAREN_ON_NEXT_LINE" value="false" />
<option name="CALL_PARAMETERS_RPAREN_ON_NEXT_LINE" value="false" />
<option name="METHOD_PARAMETERS_WRAP" value="0" />
<option name="METHOD_PARAMETERS_LPAREN_ON_NEXT_LINE" value="false" />
<option name="METHOD_PARAMETERS_RPAREN_ON_NEXT_LINE" value="false" />
<option name="EXTENDS_LIST_WRAP" value="0" />
<option name="METHOD_CALL_CHAIN_WRAP" value="0" />
<option name="ASSIGNMENT_WRAP" value="0" />
<option name="CLASS_ANNOTATION_WRAP" value="0" />
<option name="FIELD_ANNOTATION_WRAP" value="1" />
</codeStyleSettings>
</code_scheme>
</component>

View File

@ -1,5 +1,6 @@
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
</state>
</component>

6
.idea/copyright/NewVector.xml generated Normal file
View File

@ -0,0 +1,6 @@
<component name="CopyrightManager">
<copyright>
<option name="notice" value="Copyright (c) &amp;#36;today.year New Vector Ltd&#10;&#10;Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);&#10;you may not use this file except in compliance with the License.&#10;You may obtain a copy of the License at&#10;&#10; http://www.apache.org/licenses/LICENSE-2.0&#10;&#10;Unless required by applicable law or agreed to in writing, software&#10;distributed under the License is distributed on an &quot;AS IS&quot; BASIS,&#10;WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.&#10;See the License for the specific language governing permissions and&#10;limitations under the License." />
<option name="myName" value="NewVector" />
</copyright>
</component>

8
.idea/copyright/profiles_settings.xml generated Normal file
View File

@ -0,0 +1,8 @@
<component name="CopyrightManager">
<settings default="NewVector">
<LanguageOptions name="XML">
<option name="fileTypeOverride" value="1" />
<option name="prefixLines" value="false" />
</LanguageOptions>
</settings>
</component>

34
.idea/dictionaries/bmarty.xml generated Normal file
View File

@ -0,0 +1,34 @@
<component name="ProjectDictionaryState">
<dictionary name="bmarty">
<words>
<w>backstack</w>
<w>bytearray</w>
<w>checkables</w>
<w>ciphertext</w>
<w>coroutine</w>
<w>decryptor</w>
<w>emoji</w>
<w>emojis</w>
<w>fdroid</w>
<w>gplay</w>
<w>hmac</w>
<w>homeserver</w>
<w>ktlint</w>
<w>linkified</w>
<w>linkify</w>
<w>megolm</w>
<w>msisdn</w>
<w>msisdns</w>
<w>pbkdf</w>
<w>pids</w>
<w>pkcs</w>
<w>riotx</w>
<w>signin</w>
<w>signout</w>
<w>signup</w>
<w>ssss</w>
<w>threepid</w>
<w>unwedging</w>
</words>
</dictionary>
</component>

View File

@ -1,13 +0,0 @@
<component name="ProjectDictionaryState">
<dictionary name="ganfra">
<words>
<w>connectable</w>
<w>coroutine</w>
<w>merlins</w>
<w>moshi</w>
<w>persistor</w>
<w>synchronizer</w>
<w>untimelined</w>
</words>
</dictionary>
</component>

20
.idea/gradle.xml generated
View File

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/app" />
<option value="$PROJECT_DIR$/matrix-sdk-android" />
<option value="$PROJECT_DIR$/matrix-sdk-android-rx" />
</set>
</option>
<option name="resolveModulePerSourceSet" value="false" />
</GradleProjectSettings>
</option>
</component>
</project>

View File

@ -1,6 +0,0 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="DifferentStdlibGradleVersion" enabled="false" level="WARNING" enabled_by_default="false" />
</profile>
</component>

34
.idea/misc.xml generated
View File

@ -1,34 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="NullableNotNullManager">
<option name="myDefaultNullable" value="android.support.annotation.Nullable" />
<option name="myDefaultNotNull" value="android.support.annotation.NonNull" />
<option name="myNullables">
<value>
<list size="5">
<item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" />
<item index="1" class="java.lang.String" itemvalue="javax.annotation.Nullable" />
<item index="2" class="java.lang.String" itemvalue="javax.annotation.CheckForNull" />
<item index="3" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.Nullable" />
<item index="4" class="java.lang.String" itemvalue="android.support.annotation.Nullable" />
</list>
</value>
</option>
<option name="myNotNulls">
<value>
<list size="4">
<item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" />
<item index="1" class="java.lang.String" itemvalue="javax.annotation.Nonnull" />
<item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" />
<item index="3" class="java.lang.String" itemvalue="android.support.annotation.NonNull" />
</list>
</value>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">
<option name="id" value="Android" />
</component>
</project>

View File

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RunConfigurationProducerService">
<option name="ignoredProducers">
<set>
<option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" />
<option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" />
<option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" />
</set>
</option>
</component>
</project>

60
.travis.yml Normal file
View File

@ -0,0 +1,60 @@
# FTR: Configuration on https://travis-ci.org/vector-im/riotX-android/settings
#
# - Build only if .travis.yml is present -> On
# - Limit concurrent jobs -> Off
# - Build pushed branches -> On (build the branch)
# - Build pushed pull request -> On (build the PR after auto-merge)
#
# - Auto cancel branch builds -> On
# - Auto cancel pull request builds -> On
language: android
jdk: oraclejdk8
sudo: false
notifications:
email: false
android:
components:
# Uncomment the lines below if you want to
# use the latest revision of Android SDK Tools
- tools
- platform-tools
# The BuildTools version used by your project
- build-tools-29.0.3
# The SDK version used to compile your project
- android-29
before_cache:
- rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
- rm -fr $HOME/.gradle/caches/*/plugin-resolution/
cache:
directories:
- $HOME/.gradle/caches/
- $HOME/.gradle/wrapper/
- $HOME/.android/build-cache
# Build with the development SDK
before_script:
# Not necessary for the moment
# - /bin/sh ./set_debug_env.sh
# Just build the project for now
script:
# Build app (assembleGplayRelease assembleFdroidRelease)
# Build Android test (assembleAndroidTest) (disabled for now)
# Code quality (lintGplayRelease lintFdroidRelease)
# Split into two steps because if a task contain Fdroid, PlayService will be disabled
# Done by Buildkite now: - ./gradlew clean assembleGplayRelease lintGplayRelease --stacktrace
# Done by Buildkite now: - ./gradlew clean assembleFdroidRelease lintFdroidRelease --stacktrace
# Run unitary test (Disable for now, see https://travis-ci.org/vector-im/riot-android/builds/502504370)
# - ./gradlew testGplayReleaseUnitTest --stacktrace
# Other code quality check
# Done by Buildkite now: - ./tools/check/check_code_quality.sh
- ./tools/travis/check_pr.sh
# Check that indonesians file are identical. Due to Android issue, the resource folder must be value-in/, and Weblate export data into value-id/.
# Done by Buildkite now: - diff ./vector/src/main/res/values-id/strings.xml ./vector/src/main/res/values-in/strings.xml

35
AUTHORS.md Normal file
View File

@ -0,0 +1,35 @@
A full developer contributors list can be found [here](https://github.com/vector-im/riotX-android/graphs/contributors).
# Core team:
Even if we try to be able to work on all the functionalities, we have more knowledge about what we have developed ourselves.
## Benoit: Android team leader
[@benoit.marty:matrix.org](https://matrix.to/#/@benoit.marty:matrix.org)
- Android team leader and project leader, Android developer, GitHub community manager.
- Specialist of the account creation, and many other fun features.
- Reviewing and polishing developed features, code quality manager, PRs reviewer, GitHub community manager.
- Release manager on the Play Store
## François: Software architect
[@ganfra:matrix.org](https://matrix.to/#/@ganfra:matrix.org)
- Software architect, Android developer
- First developer on the project.
- Work mainly on the global architecture of the project.
- Specialist of the timeline, and lots of other features.
## Valere: Product manager, Android developer
[@valere35:matrix.org](https://matrix.to/#/@valere35:matrix.org)
- Product manager, Android developer
- Specialist on the crypto implementation.
# Other contributors
First of all, we thank all contributors who use RiotX and report problems on this GitHub project or via the integrated rageshake function.
We do not forget all translators, for their work of translating RiotX into many languages. They are also the authors of RiotX.
Feel free to add your name below, when you contribute to the project!

630
CHANGES.md Normal file
View File

@ -0,0 +1,630 @@
Changes in RiotX 0.24.0 (2020-08-05)
===================================================
This is the very last version of RiotX, published on the PlayStore.
This branch will never be merged on develop.
Features ✨:
- Inform user that the app will not be updated anymore (#1727)
Bugfix 🐛:
- Video calls are shown as a voice ones in the timeline (#1676)
- Fix regression: not able to create a room without IS configured (#1679)
Changes in RiotX 0.22.0 (2020-06-15)
===================================================
Features ✨:
- Integration Manager and Widget support (#48)
- Send stickers (#51)
Improvements 🙌:
- New wording for notice when current user is the sender
- Hide "X made no changes" event by default in timeline (#1430)
- Hide left rooms in breadcrumbs (#766)
- Handle PowerLevel properly (#627)
- Correctly handle SSO login redirection
- SSO login is now performed in the default browser, or in Chrome Custom tab if available (#1400)
- Improve checking of homeserver version support (#1442)
- Add capability to add and remove a room from the favorites (#1217)
Bugfix 🐛:
- Switch theme is not fully taken into account without restarting the app
- Temporary fix to show error when user is creating an account on matrix.org with userId containing only digits (#1410)
- Reply composer overlay stays on screen too long after send (#1169)
- Fix navigation bar icon contrast on API in [21,27[ (#1342)
- Fix status bar icon contrast on API in [21,23[
- Wrong /query request (#1444)
- Make Credentials.homeServer optional because it is deprecated (#1443)
- Fix issue on dark themes, after alert popup dismiss
Other changes:
- Send plain text in the body of events containing formatted body, as per https://matrix.org/docs/spec/client_server/latest#m-room-message-msgtypes
- Update link to Modular url from "https://modular.im/" to "https://modular.im/services/matrix-hosting-riot" and open it using ChromeCustomTab
Changes in RiotX 0.21.0 (2020-05-28)
===================================================
Features ✨:
- Identity server support (#607)
- Switch language support (#41)
- Display list of attachments of a room (#860)
Improvements 🙌:
- Better connectivity lost indicator when airplane mode is on
- Add a setting to hide redacted events (#951)
- Render formatted_body for m.notice and m.emote (#1196)
- Change icon to magnifying-glass to filter room (#1384)
Bugfix 🐛:
- After jump to unread, newer messages are never loaded (#1008)
- Fix issues with FontScale switch (#69, #645)
- "Seen by" uses 12h time (#1378)
- Enable markdown (if active) when sending emote (#734)
- Screenshots for Rageshake now includes Dialogs such as BottomSheet (#1349)
SDK API changes ⚠️:
- initialize with proxy configuration
Other changes:
- support new key agreement method for SAS (#1374)
Changes in RiotX 0.20.0 (2020-05-15)
===================================================
Features ✨:
- Add Direct Shortcuts (#652)
Improvements 🙌:
- Invite member(s) to an existing room (#1276)
- Improve notification accessibility with ticker text (#1226)
- Support homeserver discovery from MXID (DISABLED: waiting for design) (#476)
Bugfix 🐛:
- Fix | Verify Manually by Text crashes if private SSK not known (#1337)
- Sometimes the same device appears twice in the list of devices of a user (#1329)
- Random Crashes while doing sth with cross signing keys (#1364)
- Crash | crash while restoring key backup (#1366)
SDK API changes ⚠️:
- excludedUserIds parameter added to the UserService.getPagedUsersLive() function
Changes in RiotX 0.19.0 (2020-05-04)
===================================================
Features ✨:
- Change password (#528)
- Cross-Signing | Support SSSS secret sharing (#944)
- Cross-Signing | Verify new session from existing session (#1134)
- Cross-Signing | Bootstraping cross signing with 4S from mobile (#985)
- Save media files to Gallery (#973)
- Account deactivation (with password only) (#35)
Improvements 🙌:
- Verification DM / Handle concurrent .start after .ready (#794)
- Reimplementation of multiple attachment picker
- Cross-Signing | Update Shield Logic for DM (#963)
- Cross-Signing | Complete security new session design update (#1135)
- Cross-Signing | Setup key backup as part of SSSS bootstrapping (#1201)
- Cross-Signing | Gossip key backup recovery key (#1200)
- Show room encryption status as a bubble tile (#1078)
- UX/UI | Add indicator to home tab on invite (#957)
- Cross-Signing | Restore history after recover from passphrase (#1214)
- Cross-Sign | QR code scan confirmation screens design update (#1187)
- Emoji Verification | It's not the same butterfly! (#1220)
- Cross-Signing | Composer decoration: shields (#1077)
- Cross-Signing | Migrate existing keybackup to cross signing with 4S from mobile (#1197)
- Show a warning dialog if the text of the clicked link does not match the link target (#922)
- Cross-Signing | Consider not using a spinner on the 'complete security' prompt (#1271)
- Restart broken Olm sessions ([MSC1719](https://github.com/matrix-org/matrix-doc/pull/1719))
- Cross-Signing | Hide Use recovery key when 4S is not setup (#1007)
- Cross-Signing | Trust account xSigning keys by entering Recovery Key (select file or copy) #1199
- E2E timeline decoration (#1279)
- Manage Session Settings / Cross Signing update (#1295)
- Cross-Signing | Review sessions toast update old vs new (#1293, #1306)
Bugfix 🐛:
- Fix summary notification staying after "mark as read"
- Missing avatar/displayname after verification request message (#841)
- Crypto | RiotX sometimes rotate the current device keys (#1170)
- RiotX can't restore cross signing keys saved by web in SSSS (#1174)
- Cross- Signing | After signin in new session, verification paper trail in DM is off (#1191)
- Failed to encrypt message in room (message stays in red), [thanks to pwr22] (#925)
- Cross-Signing | web <-> riotX After QR code scan, gossiping fails (#1210)
- Fix crash when trying to download file without internet connection (#1229)
- Local echo are not updated in timeline (for failed & encrypted states)
- Render image event even if thumbnail_info does not have mimetype defined (#1209)
- RiotX now uses as many threads as it needs to do work and send messages (#1221)
- Fix issue with media path (#1227)
- Add user to direct chat by user id (#1065)
- Use correct URL for SSO connection (#1178)
- Emoji completion :tada: does not completes to 🎉 like on web (#1285)
- Fix bad Shield Logic for DM (#963)
Translations 🗣:
- Weblate now create PR directly to RiotX GitHub project
SDK API changes ⚠️:
- Increase targetSdkVersion to 29
Build 🧱:
- Compile with Android SDK 29 (Android Q)
Other changes:
- Add a setting to prevent screenshots of the application, disabled by default (#1027)
- Increase File Logger capacities ( + use dev log preferences)
Changes in RiotX 0.18.1 (2020-03-17)
===================================================
Improvements 🙌:
- Implementation of /join command
Bugfix 🐛:
- Message transitions in encrypted rooms are jarring #518
- Images that failed to send are waiting to be sent forever #1145
- Fix / Crashed when trying to send a gif from the Gboard #1136
- Fix / Cannot click on key backup banner when new keys are available
Changes in RiotX 0.18.0 (2020-03-11)
===================================================
Improvements 🙌:
- Share image and other media from e2e rooms (#677)
- Add support for `/plain` command (#12)
- Detect spaces in password if user fail to login (#1038)
- FTUE: do not display a different color when encrypting message when not in developer mode.
- Open room member profile from avatar of the room member state event (#935)
- Restore the push rules configuration in the settings
Bugfix 🐛:
- Fix crash on attachment preview screen (#1088)
- "Share" option is not appearing in encrypted rooms for images (#1031)
- Set "image/jpeg" as MIME type of images instead of "image/jpg" (#1075)
- Self verification via QR code is failing (#1130)
SDK API changes ⚠️:
- PushRuleService.getPushRules() now returns a RuleSet. Use getAllRules() on this object to get all the rules.
Build 🧱:
- Upgrade ktlint to version 0.36.0
- Pipeline file for Buildkite is now hosted on another Github repository: https://github.com/matrix-org/pipelines/blob/master/riotx-android/pipeline.yml
Other changes:
- Restore availability to Chromebooks (#932)
- Add a [documentation](./docs/integration_tests.md) to run integration tests
Changes in RiotX 0.17.0 (2020-02-27)
===================================================
Features ✨:
- Secured Shared Storage Support (#984, #936)
- It's now possible to select several rooms (with a possible mix of clear/encrypted rooms) when sharing elements to RiotX (#1010)
- Media preview: media are previewed before being sent to a room (#1010)
- Image edition: it's now possible to edit image before sending: crop, rotate, and delete actions are supported (#1010)
- Sending image: image are sent to rooms with a reduced size. It's still possible to send original image file (#1010)
Improvements 🙌:
- Migrate to binary QR code verification (#994)
- Share action is added to room profile and room member profile (#858)
- Display avatar in fullscreen (#861)
- Fix some performance issues with crypto
Bugfix 🐛:
- Account creation: wrongly hints that an email can be used to create an account (#941)
- Fix crash in the room directory, when public room has no name (#1023)
- Fix restoring keys backup with passphrase (#526)
- Fix rotation of full-size image (#647)
- Fix joining rooms from directory via federation isn't working. (#808)
- Leaving a room creates a stuck "leaving room" loading screen. (#1041)
- Fix some invitation handling issues (#1013)
- New direct chat: selecting a participant sometimes results in two breadcrumbs (#1022)
- New direct chat: selecting several participants was not adding the room to the direct chats list
- Room overview shows deleted messages as “Encrypted message” (#758)
SDK API changes ⚠️:
- Get crypto methods through Session.cryptoService()
- ProgressListener.onProgress() function will be invoked on the background thread instead of UI thread
- Improve CreateRoomParams API (#1070)
Changes in RiotX 0.16.0 (2020-02-14)
===================================================
Features ✨:
- Polls and Bot Buttons (MSC 2192 matrix-org/matrix-doc#2192)
Improvements 🙌:
- Show confirmation dialog before deleting a message (#967, #1003)
- Open room member profile from reactions list and read receipts list (#875)
Bugfix 🐛:
- Fix crash by removing all notifications after clearing cache (#878)
- Fix issue with verification when other client declares it can only show QR code (#988)
- Fix too errors in the code (1941862499c9ec5268cc80882512ced379cafcfd, a250a895fe0a4acf08c671e03434edcd29ccd84f)
SDK API changes ⚠️:
- Javadoc improved for PushersService
- PushersService.pushers() has been renamed to PushersService.getPushers()
Changes in RiotX 0.15.0 (2020-02-10)
===================================================
Improvements 🙌:
- Improve navigation to the timeline (#789, #862)
- Improve network detection. It is now based on the sync request status (#873, #882)
Other changes:
- Support SSO login with Firefox account (#606)
Bugfix 🐛:
- Ask for permission before opening the camera (#934)
- Encrypt for invited users by default, if the room state allows it (#803)
Changes in RiotX 0.14.3 (2020-02-03)
===================================================
Bugfix 🐛:
- Fix Exception in DeviceListManager
Changes in RiotX 0.14.2 (2020-02-02)
===================================================
Bugfix 🐛:
- Fix RiotX not starting issue
Changes in RiotX 0.14.1 (2020-02-02)
===================================================
Bugfix 🐛:
- Cross-signing: fix UX issue when closing the bottom sheet verification (#813)
- Room and room member profile: fix issues on dark and black themes
Changes in RiotX 0.14.0 (2020-02-01)
===================================================
Features ✨:
- First implementation of Cross-signing
- Enable encryption in unencrypted rooms, from the room settings (#212)
- Negotiate E2E by default for DMs (#907)
Improvements 🙌:
- Sharing things to RiotX: sort list by recent room first (#771)
- Hide the algorithm when turning on e2e (#897)
- Sort room members by display names
Other changes:
- Add support for /rainbow and /rainbowme commands (#879)
Build 🧱:
- Ensure builds are reproducible (#842)
- F-Droid: fix the "-dev" issue in version name (#815)
Changes in RiotX 0.13.0 (2020-01-17)
===================================================
Features ✨:
- Send and render typing events (#564)
- Create Room Profile screen (#54)
- Create Room Member Profile screen (#59)
Improvements 🙌:
- Render events m.room.encryption and m.room.guest_access in the timeline
Bugfix 🐛:
- Fix broken background sync in F-Droid version
- Fix issue with downloaded file on encrypted rooms. The file was not properly decrypted
Build 🧱:
- Change the way versionCode is computed (#827)
Changes in RiotX 0.12.0 (2020-01-09)
===================================================
Improvements 🙌:
- The initial sync is now handled by a foreground service
- Render aliases and canonical alias change in the timeline
- Introduce developer mode in the settings (#745, #796)
- Improve devices list screen
- Add settings for rageshake sensibility
- Fix autocompletion issues and add support for rooms, groups, and emoji (#780)
- Show skip to bottom FAB while scrolling down (#752)
- Enable encryption on a room, SDK part (#212)
Other changes:
- Change the way RiotX identifies a session to allow the SDK to support several sessions with the same user (#800)
- Exclude play-services-oss-licenses library from F-Droid build (#814)
- Email domain can be limited on some homeservers, i18n of the displayed error (#754)
Bugfix 🐛:
- Fix crash when opening room creation screen from the room filtering screen
- Fix avatar image disappearing (#777)
- Fix read marker banner when permalink
- Fix joining upgraded rooms (#697)
- Fix matrix.org room directory not being browsable (#807)
- Hide non working settings (#751)
Changes in RiotX 0.11.0 (2019-12-19)
===================================================
Features ✨:
- Implement soft logout (#281)
Improvements 🙌:
- Handle navigation to room via room alias (#201)
- Open matrix.to link in RiotX (#57)
- Limit sticker size in the timeline
Other changes:
- Use same default room colors than Riot-Web
Bugfix 🐛:
- Scroll breadcrumbs to top when opened
- Render default room name when it starts with an emoji (#477)
- Do not display " (IRC)" in display names https://github.com/vector-im/riot-android/issues/444
- Fix rendering issue with HTML formatted body
- Disable click on Stickers (#703)
Build 🧱:
- Include diff-match-patch sources as dependency
Changes in RiotX 0.10.0 (2019-12-10)
===================================================
Features ✨:
- Breadcrumbs: switch from one room to another quickly (#571)
Improvements 🙌:
- Support entering a RiotWeb client URL instead of the homeserver URL during connection (#744)
Other changes:
- Add reason for all membership events (https://github.com/matrix-org/matrix-doc/pull/2367)
Bugfix 🐛:
- When automardown is ON, pills are sent as MD in body (#739)
- "ban" event are not rendered correctly (#716)
- Fix crash when rotating screen in Room timeline
Changes in RiotX 0.9.1 (2019-12-05)
===================================================
Bugfix 🐛:
- Fix an issue with DB transaction (#740)
Changes in RiotX 0.9.0 (2019-12-05)
===================================================
Features ✨:
- Account creation. It's now possible to create account on any homeserver with RiotX (#34)
- Iteration of the login flow (#613)
- [SDK] MSC2241 / verification in DMs (#707)
Improvements 🙌:
- Send mention Pills from composer
- Links in message preview in the bottom sheet are now active.
- Rework the read marker to make it more usable
Other changes:
- Fix a small grammatical error when an empty room list is shown.
Bugfix 🐛:
- Do not show long click help if only invitation are displayed
- Fix emoji filtering not working
- Fix issue of closing Realm in another thread (#725)
- Attempt to properly cancel the crypto module when user signs out (#724)
Changes in RiotX 0.8.0 (2019-11-19)
===================================================
Features ✨:
- Handle long click on room in the room list (#395)
- Ignore/UnIgnore users, and display list of ignored users (#542, #617)
Improvements 🙌:
- Search reaction by name or keyword in emoji picker
- Handle code tags (#567)
- Support spoiler messages
- Support m.sticker and m.room.join_rules events in timeline
Other changes:
- Markdown set to off by default (#412)
- Accessibility improvements to the attachment file type chooser
Bugfix 🐛:
- Fix issues with some member events rendering (#498)
- Passphrase does not match (Export room keys) (#644)
- Ask for permission to write external storage when uri comes from the keyboard (#658)
- Fix issue with english US/GB translation (#671)
Changes in RiotX 0.7.0 (2019-10-24)
===================================================
Features:
- Share elements from other app to RiotX (#58)
- Read marker (#84)
- Add ability to report content (#515)
Improvements:
- Persist active tab between sessions (#503)
- Do not upload file too big for the homeserver (#587)
- Attachments: start using system pickers (#52)
- Mark all messages as read (#396)
Other changes:
- Accessibility improvements to read receipts in the room timeline and reactions emoji chooser
Bugfix:
- Fix issue on upload error in loop (#587)
- Fix opening a permalink: the targeted event is displayed twice (#556)
- Fix opening a permalink paginates all the history up to the last event (#282)
- after login, the icon in the top left is a green 'A' for (all communities) rather than my avatar (#267)
- Picture uploads are unreliable, pictures are shown in wrong aspect ratio on desktop client (#517)
- Invitation notifications are not dismissed automatically if room is joined from another client (#347)
- Opening links from RiotX reuses browser tab (#599)
Changes in RiotX 0.6.1 (2019-09-24)
===================================================
Bugfix:
- Fix crash: MergedHeaderItem was missing dimensionConverter
Changes in RiotX 0.6.0 (2019-09-24)
===================================================
Features:
- Save draft of a message when exiting a room with non empty composer (#329)
Improvements:
- Add unread indent on room list (#485)
- Message Editing: Update notifications (#128)
- Remove any notification of a redacted event (#563)
Other changes:
- Fix a few accessibility issues
Bugfix:
- Fix characters erased from the Search field when the result are coming (#545)
- "No connection" banner was displayed by mistake
- Leaving community (from another client) has no effect on RiotX (#497)
- Push rules was not retrieved after a clear cache
- m.notice messages trigger push notifications (#238)
- Embiggen messages with multiple emojis also for edited messages (#458)
Build:
- Fix (again) issue with bad versionCode generated by Buildkite (#553)
Changes in RiotX 0.5.0 (2019-09-17)
===================================================
Features:
- Implementation of login to homeserver with SSO (#557)
- Handle M_CONSENT_NOT_GIVEN error (#64)
- Auto configure homeserver and identity server URLs of LoginActivity with a magic link
Improvements:
- Reduce default release build log level, and lab option to enable more logs.
- Display a no network indicator when there is no network (#559)
Bugfix:
- Fix crash due to missing informationData (#535)
- Progress in initial sync dialog is decreasing for a step and should not (#532)
- Fix rendering issue of accepted third party invitation event
- All current notifications were dismissed by mistake when the app is launched from the launcher
Build:
- Fix issue with version name (#533)
- Fix issue with bad versionCode generated by Buildkite (#553)
Changes in RiotX 0.4.0 (2019-08-30)
===================================================
Features:
- Display read receipts in timeline (#81)
Improvements:
- Reactions: Reinstate the ability to react with non-unicode keys (#307)
Bugfix:
- Fix text diff linebreak display (#441)
- Date change message repeats for each redaction until a normal message (#358)
- Slide-in reply icon is distorted (#423)
- Regression / e2e replies not encrypted
- Some video won't play
- Privacy: remove log of notifiable event (#519)
- Fix crash with EmojiCompat (#530)
Changes in RiotX 0.3.0 (2019-08-08)
===================================================
Features:
- Create Direct Room flow
- Handle `/markdown` command
Improvements:
- UI for pending edits (#193)
- UX image preview screen transition (#393)
- Basic support for resending failed messages (retry/remove)
- Enable proper cancellation of suspending functions (including db transaction)
- Enhances network connectivity checks in SDK
- Add "View Edit History" item in the message bottom sheet (#401)
- Cancel sync request on pause and timeout to 0 after pause (#404)
Other changes:
- Show sync progress also in room detail screen (#403)
Bugfix:
- Edited message: link confusion when (edited) appears in body (#398)
- Close detail room screen when the room is left with another client (#256)
- Clear notification for a room left on another client
- Fix messages with empty `in_reply_to` not rendering (#447)
- Fix clear cache (#408) and Logout (#205)
- Fix `(edited)` link can be copied to clipboard (#402)
- KeyBackup / SSSS | Should get the key from SSSS instead of asking recovery Key (#1163)
Build:
- Split APK: generate one APK per arch, to reduce APK size of about 30%
Changes in RiotX 0.2.0 (2019-07-18)
===================================================
Features:
- Message Editing: View edit history (#121)
- Rooms filtering (#304)
- Edit in encrypted room
Improvements:
- Handle click on redacted events: view source and create permalink
- Improve long tap menu: reply on top, more compact (#368)
- Quick reply in timeline with swipe gesture (#167)
- Improve edit of replies
- Improve performance on Room Members and Users management (#381)
Other changes:
- migrate from rxbinding 2 to rxbinding 3
Bugfix:
- Fix regression on permalink click
- Fix crash reported by the PlayStore (#341)
- Fix Chat composer separator color in dark/black theme
- Fix bad layout for room directory filter (#349)
- Fix Copying link from a message shouldn't open context menu (#364)
Changes in RiotX 0.1.0 (2019-07-11)
===================================================
First release!
Mode details here: https://medium.com/@RiotChat/introducing-the-riotx-beta-for-android-b17952e8f771
=======================================================
+ TEMPLATE WHEN PREPARING A NEW RELEASE +
=======================================================
Changes in RiotX 0.X.0 (2020-XX-XX)
===================================================
Features ✨:
-
Improvements 🙌:
-
Bugfix 🐛:
-
Translations 🗣:
-
SDK API changes ⚠️:
-
Build 🧱:
-
Other changes:
-

127
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,127 @@
# Contributing code to Matrix
Please read https://github.com/matrix-org/synapse/blob/master/CONTRIBUTING.md
Android support can be found in this [![Riot Android Matrix room #riot-android:matrix.org](https://img.shields.io/matrix/riot-android:matrix.org.svg?label=%23riot-android:matrix.org&logo=matrix&server_fqdn=matrix.org)](https://matrix.to/#/#riot-android:matrix.org) room.
Dedicated room for RiotX: [![RiotX Android Matrix room #riot-android:matrix.org](https://img.shields.io/matrix/riotx:matrix.org.svg?label=%23RiotX:matrix.org&logo=matrix&server_fqdn=matrix.org)](https://matrix.to/#/#riotx:matrix.org)
# Specific rules for Matrix Android projects
## Android Studio settings
Please set the "hard wrap" setting of Android Studio to 160 chars, this is the setting we use internally to format the source code (Menu `Settings/Editor/Code Style` then `Hard wrap at`).
Please ensure that your using the project formatting rules (which are in the project at .idea/codeStyles/), and format the file before committing them.
### Template
An Android Studio template has been added to the project to help creating all files needed when adding a new screen to the application. Fragment, ViewModel, Activity, etc.
To install the template (to be done only once):
- Go to folder `./tools/template`.
- Run the script `./configure.sh`.
- Restart Android Studio.
To create a new screen:
- First create a new package in your code.
- Then right click on the package, and select `New/New Vector/RiotX Feature`.
- Follow the Wizard, especially replace `Main` by something more relevant to your feature.
- Click on `Finish`.
- Remainning steps are described as TODO in the generated files, or will be pointed out by the compilator, or at runtime :)
Note that if the templates are modified, the only things to do is to restart Android Studio for the change to take effect.
## Compilation
For now, the Matrix SDK and the RiotX application are in the same project. So there is no specific thing to do, this project should compile without any special action.
## I want to help translating RiotX
If you want to fix an issue with an English string, please submit a PR.
If you want to fix an issue in other languages, or add a missing translation, or even add a new language, please use [Weblate](https://translate.riot.im/projects/riot-android/).
For the moment, Strings from Riot will be used, there is no dedicated project in Weblate for RiotX.
## I want to submit a PR to fix an issue
Please check if a corresponding issue exists. If yes, please let us know in a comment that you're working on it.
If an issue does not exist yet, it may be relevant to open a new issue and let us know that you're implementing it.
### Kotlin
This project is full Kotlin. Please do not write Java classes.
### CHANGES.md
Please add a line to the top of the file `CHANGES.md` describing your change.
### Code quality
Make sure the following commands execute without any error:
#### Internal tool
<pre>
./tools/check/check_code_quality.sh
</pre>
#### ktlint
<pre>
curl -sSLO https://github.com/pinterest/ktlint/releases/download/0.34.2/ktlint && chmod a+x ktlint
./ktlint --android --experimental -v
</pre>
Note that you can run
<pre>
./ktlint --android --experimental -v -F
</pre>
For ktlint to fix some detected errors for you (you still have to check and commit the fix of course)
#### lint
<pre>
./gradlew lintGplayRelease
./gradlew lintFdroidRelease
</pre>
### Unit tests
Make sure the following commands execute without any error:
<pre>
./gradlew testGplayReleaseUnitTest
</pre>
### Tests
RiotX is currently supported on Android KitKat (API 19+): please test your change on an Android device (or Android emulator) running with API 19. Many issues can happen (including crashes) on older devices.
Also, if possible, please test your change on a real device. Testing on Android emulator may not be sufficient.
You should consider adding Unit tests with your PR, and also integration tests (AndroidTest). Please refer to [this document](./docs/integration_tests.md) to install and run the integration test environment.
### Internationalisation
When adding new string resources, please only add new entries in file `value/strings.xml`. Translations will be added later by the community of translators with a specific tool named [Weblate](https://translate.riot.im/projects/riot-android/).
Do not hesitate to use plurals when appropriate.
### Accessibility
Please consider accessibility as an important point. As a minimum requirement, in layout XML files please use attributes such as `android:contentDescription` and `android:importantForAccessibility`, and test with a screen reader if it's working well. You can add new string resources, dedicated to accessibility, in this case, please prefix theirs id with `a11y_`.
### Layout
When adding or editing layouts, make sure the layout will render correctly if device uses a RTL (Right To Left) language.
You can check this in the layout editor preview by selecting any RTL language (ex: Arabic).
Also please check that the colors are ok for all the current themes of RiotX. Please use `?attr` instead of `@color` to reference colors in the layout. You can check this in the layout editor preview by selecting all the main themes (`AppTheme.Status`, `AppTheme.Dark`, etc.).
### Authors
Feel free to add an entry in file AUTHORS.md
## Thanks
Thanks for contributing to Matrix projects!

176
LICENSE Normal file
View File

@ -0,0 +1,176 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS

View File

@ -1 +1,38 @@
# riot-android-redesign-PoC
[![Buildkite](https://badge.buildkite.com/657d3db27364448d69d54f66c690f7788bc6aa80a7628e37f3.svg?branch=develop)](https://buildkite.com/matrix-dot-org/riotx-android/builds?branch=develop)
[![Weblate](https://translate.riot.im/widgets/riot-android/-/svg-badge.svg)](https://translate.riot.im/engage/riot-android/?utm_source=widget)
[![RiotX Android Matrix room #riot-android:matrix.org](https://img.shields.io/matrix/riotx:matrix.org.svg?label=%23RiotX:matrix.org&logo=matrix&server_fqdn=matrix.org)](https://matrix.to/#/#riotx:matrix.org)
[![Quality Gate](https://sonarcloud.io/api/project_badges/measure?project=vector.android.riotx&metric=alert_status)](https://sonarcloud.io/dashboard?id=vector.android.riotx)
[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=vector.android.riotx&metric=vulnerabilities)](https://sonarcloud.io/dashboard?id=vector.android.riotx)
[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=vector.android.riotx&metric=bugs)](https://sonarcloud.io/dashboard?id=vector.android.riotx)
# RiotX Android
RiotX is an Android Matrix Client currently in beta but in active development.
It is a total rewrite of [Riot-Android](https://github.com/vector-im/riot-android) with a new user experience. RiotX will become the official replacement as soon as all features are implemented.
[<img src="https://play.google.com/intl/en_us/badges/images/generic/en_badge_web_generic.png" alt="Get it on Google Play" height="60">](https://play.google.com/store/apps/details?id=im.vector.riotx)
[<img src="https://f-droid.org/badge/get-it-on.png" alt="Get it on F-Droid" height="60">](https://f-droid.org/app/im.vector.riotx)
Nightly build: [![Buildkite](https://badge.buildkite.com/657d3db27364448d69d54f66c690f7788bc6aa80a7628e37f3.svg?branch=develop)](https://buildkite.com/matrix-dot-org/riotx-android/builds?branch=develop)
# New Android SDK
RiotX is based on a new Android SDK fully written in Kotlin (like RiotX). In order to make the early development as fast as possible, RiotX and the new SDK currently share the same git repository. We will make separate repos once the SDK is stable enough.
# Roadmap
The current target is to release an application out of beta with the same level of features (and even more) as Riot.
The roadmap has 3 phases:
- [phase 0](https://github.com/vector-im/riotX-android/labels/phase0): Prototyping / Project setup
- [phase 1](https://github.com/vector-im/riotX-android/labels/phase1): Beta release to the Play Store
- [phase 2](https://github.com/vector-im/riotX-android/labels/phase2): Out of beta
## Contributing
Please refer to [CONTRIBUTING.md](https://github.com/vector-im/riotX-android/blob/develop/CONTRIBUTING.md) if you want to contribute on Matrix Android projects!
Come chat with the community in the dedicated Matrix [room](https://matrix.to/#/#riotx:matrix.org).

View File

@ -1,105 +0,0 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
kapt {
correctErrorTypes = true
}
androidExtensions {
experimental = true
}
def versionMajor = 0
def versionMinor = 1
def versionPatch = 0
def generateVersionCodeFromTimestamp() {
// It's unix timestamp divided by 10: It's incremented by one every 10 seconds.
return (System.currentTimeMillis() / 1_000 / 10).toInteger()
}
def generateVersionCodeFromVersionName() {
return versionMajor * 10000 + versionMinor * 100 + versionPatch
}
android {
compileSdkVersion 28
defaultConfig {
applicationId "im.vector.riotredesign"
minSdkVersion 16
targetSdkVersion 28
multiDexEnabled true
versionCode generateVersionCodeFromTimestamp()
versionName "${versionMajor}.${versionMinor}.${versionPatch}"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
def epoxy_version = "3.0.0"
def arrow_version = "0.8.2"
def glide_version = "4.8.0"
implementation project(":matrix-sdk-android")
implementation project(":matrix-sdk-android-rx")
implementation 'com.android.support:multidex:1.0.3'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'androidx.appcompat:appcompat:1.1.0-alpha01'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.core:core-ktx:1.0.1'
// Paging
implementation 'androidx.paging:paging-runtime:2.0.0'
implementation 'com.jakewharton.threetenabp:threetenabp:1.1.1'
implementation 'com.jakewharton.timber:timber:4.7.1'
// rx
implementation 'io.reactivex.rxjava2:rxkotlin:2.3.0'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.0'
implementation 'com.jakewharton.rxrelay2:rxrelay:2.1.0'
implementation 'com.jakewharton.rxbinding2:rxbinding:2.2.0'
implementation("com.airbnb.android:epoxy:$epoxy_version")
kapt "com.airbnb.android:epoxy-processor:$epoxy_version"
implementation 'com.airbnb.android:mvrx:0.7.0'
// FP
implementation "io.arrow-kt:arrow-core:$arrow_version"
// UI
implementation "com.github.bumptech.glide:glide:$glide_version"
implementation "com.github.bumptech.glide:okhttp3-integration:$glide_version"
kapt "com.github.bumptech.glide:compiler:$glide_version"
implementation 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1'
implementation 'com.google.android.material:material:1.1.0-alpha02'
// DI
implementation "org.koin:koin-android:$koin_version"
implementation "org.koin:koin-android-scope:$koin_version"
// TESTS
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
}

View File

@ -1,40 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign
import androidx.test.InstrumentationRegistry
import androidx.test.runner.AndroidJUnit4
import org.junit.Test
import org.junit.runner.RunWith
import org.junit.Assert.*
/**
* Instrumented test, which will execute on an Android device.
*
* See [testing documentation](http://d.android.com/tools/testing).
*/
@RunWith(AndroidJUnit4::class)
class ExampleInstrumentedTest {
@Test
fun useAppContext() {
// Context of the app under test.
val appContext = InstrumentationRegistry.getTargetContext()
assertEquals("im.vector.riotredesign", appContext.packageName)
}
}

View File

@ -1,31 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="im.vector.riotredesign">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:name=".Riot"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Riot">
<activity
android:name=".features.MainActivity"
android:theme="@style/Theme.Riot.Splash">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".features.home.HomeActivity" />
<activity android:name=".features.login.LoginActivity" />
</application>
</manifest>

View File

@ -1,46 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign
import android.app.Application
import android.content.Context
import androidx.multidex.MultiDex
import com.jakewharton.threetenabp.AndroidThreeTen
import im.vector.matrix.android.BuildConfig
import im.vector.riotredesign.core.di.AppModule
import org.koin.log.EmptyLogger
import org.koin.standalone.StandAloneContext.startKoin
import timber.log.Timber
class Riot : Application() {
override fun onCreate() {
super.onCreate()
if (BuildConfig.DEBUG) {
Timber.plant(Timber.DebugTree())
}
AndroidThreeTen.init(this)
startKoin(listOf(AppModule(this).definition), logger = EmptyLogger())
}
override fun attachBaseContext(base: Context) {
super.attachBaseContext(base)
MultiDex.install(this)
}
}

View File

@ -1,47 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.core.di
import android.content.Context
import android.content.Context.MODE_PRIVATE
import im.vector.riotredesign.core.resources.LocaleProvider
import im.vector.riotredesign.core.resources.StringProvider
import im.vector.riotredesign.features.home.room.list.RoomSelectionRepository
import org.koin.dsl.module.module
class AppModule(private val context: Context) {
val definition = module {
single {
LocaleProvider(context.resources)
}
single {
StringProvider(context.resources)
}
single {
context.getSharedPreferences("im.vector.riot", MODE_PRIVATE)
}
single {
RoomSelectionRepository(get())
}
}
}

View File

@ -1,74 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.core.epoxy
import android.view.View
import androidx.annotation.IdRes
import androidx.annotation.LayoutRes
import com.airbnb.epoxy.EpoxyModel
import com.airbnb.epoxy.OnModelVisibilityStateChangedListener
import kotlin.properties.ReadOnlyProperty
import kotlin.reflect.KProperty
abstract class KotlinModel(
@LayoutRes private val layoutRes: Int
) : EpoxyModel<View>() {
private var view: View? = null
private var onBindCallback: (() -> Unit)? = null
private var onModelVisibilityStateChangedListener: OnModelVisibilityStateChangedListener<KotlinModel, View>? = null
abstract fun bind()
override fun bind(view: View) {
this.view = view
onBindCallback?.invoke()
bind()
}
override fun unbind(view: View) {
this.view = null
}
fun onBind(lambda: (() -> Unit)?): KotlinModel {
onBindCallback = lambda
return this
}
override fun onVisibilityStateChanged(visibilityState: Int, view: View) {
onModelVisibilityStateChangedListener?.onVisibilityStateChanged(this, view, visibilityState)
super.onVisibilityStateChanged(visibilityState, view)
}
fun setOnVisibilityStateChanged(listener: OnModelVisibilityStateChangedListener<KotlinModel, View>): KotlinModel {
this.onModelVisibilityStateChangedListener = listener
return this
}
override fun getDefaultLayout() = layoutRes
protected fun <V : View> bind(@IdRes id: Int) = object : ReadOnlyProperty<KotlinModel, V> {
override fun getValue(thisRef: KotlinModel, property: KProperty<*>): V {
// This is not efficient because it looks up the view by id every time (it loses
// the pattern of a "holder" to cache that look up). But it is simple to use and could
// be optimized with a map
@Suppress("UNCHECKED_CAST")
return view?.findViewById(id) as V?
?: throw IllegalStateException("View ID $id for '${property.name}' not found.")
}
}
}

View File

@ -1,32 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.core.extensions
import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.Fragment
fun AppCompatActivity.addFragment(fragment: Fragment, frameId: Int) {
supportFragmentManager.inTransaction { add(frameId, fragment) }
}
fun AppCompatActivity.replaceFragment(fragment: Fragment, frameId: Int) {
supportFragmentManager.inTransaction { replace(frameId, fragment) }
}
fun AppCompatActivity.addFragmentToBackstack(fragment: Fragment, frameId: Int, tag: String? = null) {
supportFragmentManager.inTransaction { replace(frameId, fragment).addToBackStack(tag) }
}

View File

@ -1,43 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.core.extensions
import androidx.fragment.app.Fragment
fun androidx.fragment.app.Fragment.addFragment(fragment: Fragment, frameId: Int) {
fragmentManager?.inTransaction { add(frameId, fragment) }
}
fun androidx.fragment.app.Fragment.replaceFragment(fragment: Fragment, frameId: Int) {
fragmentManager?.inTransaction { replace(frameId, fragment) }
}
fun androidx.fragment.app.Fragment.addFragmentToBackstack(fragment: Fragment, frameId: Int, tag: String? = null) {
fragmentManager?.inTransaction { replace(frameId, fragment).addToBackStack(tag) }
}
fun androidx.fragment.app.Fragment.addChildFragment(fragment: Fragment, frameId: Int) {
childFragmentManager.inTransaction { add(frameId, fragment) }
}
fun androidx.fragment.app.Fragment.replaceChildFragment(fragment: Fragment, frameId: Int) {
childFragmentManager.inTransaction { replace(frameId, fragment) }
}
fun androidx.fragment.app.Fragment.addChildFragmentToBackstack(fragment: Fragment, frameId: Int, tag: String? = null) {
childFragmentManager.inTransaction { replace(frameId, fragment).addToBackStack(tag) }
}

View File

@ -1,38 +0,0 @@
/*
*
* * Copyright 2019 New Vector Ltd
* *
* * Licensed under the Apache License, Version 2.0 (the "License");
* * you may not use this file except in compliance with the License.
* * You may obtain a copy of the License at
* *
* * http://www.apache.org/licenses/LICENSE-2.0
* *
* * Unless required by applicable law or agreed to in writing, software
* * distributed under the License is distributed on an "AS IS" BASIS,
* * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* * See the License for the specific language governing permissions and
* * limitations under the License.
*
*/
package im.vector.riotredesign.core.extensions
/**
* Returns the last element yielding the smallest value of the given function or `null` if there are no elements.
*/
public inline fun <T, R : Comparable<R>> Iterable<T>.lastMinBy(selector: (T) -> R): T? {
val iterator = iterator()
if (!iterator.hasNext()) return null
var minElem = iterator.next()
var minValue = selector(minElem)
while (iterator.hasNext()) {
val e = iterator.next()
val v = selector(e)
if (minValue >= v) {
minElem = e
minValue = v
}
}
return minElem
}

View File

@ -1,42 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.core.platform
import android.os.Bundle
import android.os.Parcelable
import com.airbnb.mvrx.BaseMvRxFragment
import com.airbnb.mvrx.MvRx
abstract class RiotFragment : BaseMvRxFragment(), OnBackPressed {
val riotActivity: RiotActivity by lazy {
activity as RiotActivity
}
override fun onBackPressed(): Boolean {
return false
}
override fun invalidate() {
//no-ops by default
}
protected fun setArguments(args: Parcelable? = null) {
arguments = args?.let { Bundle().apply { putParcelable(MvRx.KEY_ARG, it) } }
}
}

View File

@ -1,41 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.features
import android.os.Bundle
import im.vector.matrix.android.api.Matrix
import im.vector.riotredesign.core.platform.RiotActivity
import im.vector.riotredesign.features.home.HomeActivity
import im.vector.riotredesign.features.login.LoginActivity
class MainActivity : RiotActivity() {
private val authenticator = Matrix.getInstance().authenticator()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val intent = if (authenticator.hasActiveSessions()) {
HomeActivity.newIntent(this)
} else {
LoginActivity.newIntent(this)
}
startActivity(intent)
finish()
}
}

View File

@ -1,57 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.features.home
import android.widget.ImageView
import androidx.core.content.ContextCompat
import com.amulyakhare.textdrawable.TextDrawable
import com.bumptech.glide.request.RequestOptions
import im.vector.matrix.android.api.Matrix
import im.vector.matrix.android.api.session.room.model.RoomMember
import im.vector.matrix.android.api.session.room.model.RoomSummary
import im.vector.riotredesign.R
import im.vector.riotredesign.core.extensions.firstCharAsString
import im.vector.riotredesign.core.glide.GlideApp
object AvatarRenderer {
fun render(roomMember: RoomMember, imageView: ImageView) {
render(roomMember.avatarUrl, roomMember.displayName, imageView)
}
fun render(roomSummary: RoomSummary, imageView: ImageView) {
render(roomSummary.avatarUrl, roomSummary.displayName, imageView)
}
fun render(avatarUrl: String?, name: String?, imageView: ImageView) {
if (name.isNullOrEmpty()) {
return
}
val resolvedUrl = Matrix.getInstance().currentSession.contentUrlResolver().resolveFullSize(avatarUrl)
val avatarColor = ContextCompat.getColor(imageView.context, R.color.pale_teal)
val fallbackDrawable = TextDrawable.builder().buildRound(name.firstCharAsString().toUpperCase(), avatarColor)
GlideApp
.with(imageView)
.load(resolvedUrl)
.placeholder(fallbackDrawable)
.apply(RequestOptions.circleCropTransform())
.into(imageView)
}
}

View File

@ -1,124 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.features.home
import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.view.Gravity
import android.view.MenuItem
import androidx.appcompat.app.ActionBarDrawerToggle
import androidx.appcompat.widget.Toolbar
import androidx.core.view.GravityCompat
import androidx.fragment.app.FragmentManager
import com.airbnb.mvrx.viewModel
import im.vector.riotredesign.R
import im.vector.riotredesign.core.extensions.observeEvent
import im.vector.riotredesign.core.extensions.replaceFragment
import im.vector.riotredesign.core.platform.OnBackPressed
import im.vector.riotredesign.core.platform.RiotActivity
import im.vector.riotredesign.core.platform.ToolbarConfigurable
import im.vector.riotredesign.features.home.room.detail.LoadingRoomDetailFragment
import kotlinx.android.synthetic.main.activity_home.*
import org.koin.android.ext.android.inject
import org.koin.standalone.StandAloneContext.loadKoinModules
class HomeActivity : RiotActivity(), ToolbarConfigurable {
private val homeActivityViewModel: HomeActivityViewModel by viewModel()
private val homeNavigator by inject<HomeNavigator>()
override fun onCreate(savedInstanceState: Bundle?) {
loadKoinModules(listOf(HomeModule().definition))
homeNavigator.activity = this
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_home)
if (savedInstanceState == null) {
val homeDrawerFragment = HomeDrawerFragment.newInstance()
val loadingDetail = LoadingRoomDetailFragment.newInstance()
replaceFragment(loadingDetail, R.id.homeDetailFragmentContainer)
replaceFragment(homeDrawerFragment, R.id.homeDrawerFragmentContainer)
}
homeActivityViewModel.openRoomLiveData.observeEvent(this) {
homeNavigator.openRoomDetail(it, null)
}
}
override fun onDestroy() {
homeNavigator.activity = null
super.onDestroy()
}
override fun configure(toolbar: Toolbar) {
setSupportActionBar(toolbar)
supportActionBar?.setHomeButtonEnabled(true)
supportActionBar?.setDisplayHomeAsUpEnabled(true)
val drawerToggle = ActionBarDrawerToggle(this, drawerLayout, toolbar, 0, 0)
drawerLayout.addDrawerListener(drawerToggle)
drawerToggle.syncState()
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
android.R.id.home -> {
drawerLayout.openDrawer(GravityCompat.START)
return true
}
}
return true
}
override fun onBackPressed() {
if (drawerLayout.isDrawerOpen(Gravity.LEFT)) {
drawerLayout.closeDrawer(Gravity.LEFT)
} else {
val handled = recursivelyDispatchOnBackPressed(supportFragmentManager)
if (!handled) {
super.onBackPressed()
}
}
}
private fun recursivelyDispatchOnBackPressed(fm: FragmentManager): Boolean {
if (fm.backStackEntryCount == 0)
return false
val reverseOrder = fm.fragments.filter { it is OnBackPressed }.reversed()
for (f in reverseOrder) {
val handledByChildFragments = recursivelyDispatchOnBackPressed(f.childFragmentManager)
if (handledByChildFragments) {
return true
}
val backPressable = f as OnBackPressed
if (backPressable.onBackPressed()) {
return true
}
}
return false
}
companion object {
fun newIntent(context: Context): Intent {
return Intent(context, HomeActivity::class.java)
}
}
}

View File

@ -1,77 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.features.home
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import com.airbnb.mvrx.MvRxState
import com.airbnb.mvrx.MvRxViewModelFactory
import com.airbnb.mvrx.ViewModelContext
import im.vector.matrix.android.api.Matrix
import im.vector.matrix.android.api.session.Session
import im.vector.matrix.rx.rx
import im.vector.riotredesign.core.platform.RiotViewModel
import im.vector.riotredesign.core.utils.LiveEvent
import im.vector.riotredesign.features.home.room.list.RoomSelectionRepository
import io.reactivex.rxkotlin.subscribeBy
import org.koin.android.ext.android.get
class EmptyState : MvRxState
class HomeActivityViewModel(state: EmptyState,
private val session: Session,
roomSelectionRepository: RoomSelectionRepository
) : RiotViewModel<EmptyState>(state) {
companion object : MvRxViewModelFactory<HomeActivityViewModel, EmptyState> {
@JvmStatic
override fun create(viewModelContext: ViewModelContext, state: EmptyState): HomeActivityViewModel? {
val session = Matrix.getInstance().currentSession
val roomSelectionRepository = viewModelContext.activity.get<RoomSelectionRepository>()
return HomeActivityViewModel(state, session, roomSelectionRepository)
}
}
private val _openRoomLiveData = MutableLiveData<LiveEvent<String>>()
val openRoomLiveData: LiveData<LiveEvent<String>>
get() = _openRoomLiveData
init {
val lastSelectedRoomId = roomSelectionRepository.lastSelectedRoom()
if (lastSelectedRoomId == null || session.getRoom(lastSelectedRoomId) == null) {
getTheFirstRoomWhenAvailable()
} else {
_openRoomLiveData.postValue(LiveEvent(lastSelectedRoomId))
}
}
private fun getTheFirstRoomWhenAvailable() {
session.rx().liveRoomSummaries()
.filter { it.isNotEmpty() }
.first(emptyList())
.subscribeBy {
val firstRoom = it.firstOrNull()
if (firstRoom != null) {
_openRoomLiveData.postValue(LiveEvent(firstRoom.roomId))
}
}
.disposeOnClear()
}
}

View File

@ -1,52 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.features.home
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import im.vector.riotredesign.R
import im.vector.riotredesign.core.extensions.replaceChildFragment
import im.vector.riotredesign.core.platform.RiotFragment
import im.vector.riotredesign.features.home.group.GroupListFragment
import im.vector.riotredesign.features.home.room.list.RoomListFragment
class HomeDrawerFragment : RiotFragment() {
companion object {
fun newInstance(): HomeDrawerFragment {
return HomeDrawerFragment()
}
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment_home_drawer, container, false)
}
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
if (savedInstanceState == null) {
val groupListFragment = GroupListFragment.newInstance()
replaceChildFragment(groupListFragment, R.id.groupListFragmentContainer)
val roomListFragment = RoomListFragment.newInstance()
replaceChildFragment(roomListFragment, R.id.roomListFragmentContainer)
}
}
}

View File

@ -1,100 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.features.home
import im.vector.riotredesign.features.home.group.SelectedGroupHolder
import im.vector.riotredesign.features.home.room.VisibleRoomHolder
import im.vector.riotredesign.features.home.room.detail.timeline.DefaultItemFactory
import im.vector.riotredesign.features.home.room.detail.timeline.MessageItemFactory
import im.vector.riotredesign.features.home.room.detail.timeline.RoomMemberItemFactory
import im.vector.riotredesign.features.home.room.detail.timeline.RoomNameItemFactory
import im.vector.riotredesign.features.home.room.detail.timeline.RoomTopicItemFactory
import im.vector.riotredesign.features.home.room.detail.timeline.TimelineDateFormatter
import im.vector.riotredesign.features.home.room.detail.timeline.TimelineEventController
import im.vector.riotredesign.features.home.room.detail.timeline.TimelineItemFactory
import im.vector.riotredesign.features.home.room.detail.timeline.helper.TimelineMediaSizeProvider
import im.vector.riotredesign.features.home.room.list.RoomSummaryComparator
import im.vector.riotredesign.features.home.room.list.RoomSummaryController
import org.koin.dsl.module.module
class HomeModule {
val definition = module(override = true) {
single {
TimelineDateFormatter(get())
}
single {
MessageItemFactory(get(), get())
}
single {
RoomNameItemFactory(get())
}
single {
RoomTopicItemFactory(get())
}
single {
RoomMemberItemFactory(get())
}
single {
DefaultItemFactory()
}
single {
TimelineItemFactory(get(), get(), get(), get(), get())
}
single {
HomeNavigator()
}
factory {
RoomSummaryController(get())
}
factory { (roomId: String) ->
TimelineEventController(roomId, get(), get(), get())
}
single {
TimelineMediaSizeProvider()
}
single {
SelectedGroupHolder()
}
single {
VisibleRoomHolder()
}
single {
HomePermalinkHandler(get())
}
single {
RoomSummaryComparator()
}
}
}

View File

@ -1,75 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.features.home
import android.view.Gravity
import androidx.fragment.app.FragmentManager
import im.vector.riotredesign.R
import im.vector.riotredesign.core.extensions.addFragmentToBackstack
import im.vector.riotredesign.core.extensions.replaceFragment
import im.vector.riotredesign.features.home.room.detail.RoomDetailArgs
import im.vector.riotredesign.features.home.room.detail.RoomDetailFragment
import kotlinx.android.synthetic.main.activity_home.*
import timber.log.Timber
class HomeNavigator {
var activity: HomeActivity? = null
private var currentRoomId: String? = null
fun openRoomDetail(roomId: String,
eventId: String?,
addToBackstack: Boolean = false) {
Timber.v("Open room detail $roomId - $eventId - $addToBackstack")
if (!addToBackstack && isRoomOpened(roomId)) {
return
}
activity?.let {
val args = RoomDetailArgs(roomId, eventId)
val roomDetailFragment = RoomDetailFragment.newInstance(args)
it.drawerLayout?.closeDrawer(Gravity.LEFT)
if (addToBackstack) {
it.addFragmentToBackstack(roomDetailFragment, R.id.homeDetailFragmentContainer, roomId)
} else {
currentRoomId = roomId
clearBackStack(it.supportFragmentManager)
it.replaceFragment(roomDetailFragment, R.id.homeDetailFragmentContainer)
}
}
}
fun openGroupDetail(groupId: String) {
Timber.v("Open group detail $groupId")
}
fun openUserDetail(userId: String) {
Timber.v("Open user detail $userId")
}
fun isRoomOpened(roomId: String): Boolean {
return currentRoomId == roomId
}
private fun clearBackStack(fragmentManager: FragmentManager) {
if (fragmentManager.backStackEntryCount > 0) {
val first = fragmentManager.getBackStackEntryAt(0)
fragmentManager.popBackStack(first.id, FragmentManager.POP_BACK_STACK_INCLUSIVE)
}
}
}

View File

@ -1,54 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.features.home
import android.net.Uri
import im.vector.matrix.android.api.permalinks.PermalinkData
import im.vector.matrix.android.api.permalinks.PermalinkParser
class HomePermalinkHandler(private val navigator: HomeNavigator) {
fun launch(deepLink: String?) {
val uri = deepLink?.let { Uri.parse(it) }
launch(uri)
}
fun launch(deepLink: Uri?) {
if (deepLink == null) {
return
}
val permalinkData = PermalinkParser.parse(deepLink)
when (permalinkData) {
is PermalinkData.EventLink -> {
navigator.openRoomDetail(permalinkData.roomIdOrAlias, permalinkData.eventId, true)
}
is PermalinkData.RoomLink -> {
navigator.openRoomDetail(permalinkData.roomIdOrAlias, null, true)
}
is PermalinkData.GroupLink -> {
navigator.openGroupDetail(permalinkData.groupId)
}
is PermalinkData.UserLink -> {
navigator.openUserDetail(permalinkData.userId)
}
is PermalinkData.FallbackLink -> {
}
}
}
}

View File

@ -1,76 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.features.home.group
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.airbnb.mvrx.Incomplete
import com.airbnb.mvrx.Success
import com.airbnb.mvrx.fragmentViewModel
import im.vector.matrix.android.api.session.group.model.GroupSummary
import im.vector.riotredesign.R
import im.vector.riotredesign.core.platform.RiotFragment
import im.vector.riotredesign.core.platform.StateView
import kotlinx.android.synthetic.main.fragment_group_list.*
class GroupListFragment : RiotFragment(), GroupSummaryController.Callback {
companion object {
fun newInstance(): GroupListFragment {
return GroupListFragment()
}
}
private val viewModel: GroupListViewModel by fragmentViewModel()
private lateinit var groupController: GroupSummaryController
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment_group_list, container, false)
}
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
groupController = GroupSummaryController(this)
stateView.contentView = epoxyRecyclerView
epoxyRecyclerView.setController(groupController)
viewModel.subscribe { renderState(it) }
}
private fun renderState(state: GroupListViewState) {
when (state.asyncGroups) {
is Incomplete -> renderLoading()
is Success -> renderSuccess(state)
}
}
private fun renderSuccess(state: GroupListViewState) {
stateView.state = StateView.State.Content
groupController.setData(state)
}
private fun renderLoading() {
stateView.state = StateView.State.Loading
}
override fun onGroupSelected(groupSummary: GroupSummary) {
viewModel.accept(GroupListActions.SelectGroup(groupSummary))
}
}

View File

@ -1,79 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.features.home.group
import com.airbnb.mvrx.MvRxViewModelFactory
import com.airbnb.mvrx.ViewModelContext
import im.vector.matrix.android.api.Matrix
import im.vector.matrix.android.api.session.Session
import im.vector.matrix.rx.rx
import im.vector.riotredesign.core.platform.RiotViewModel
import org.koin.android.ext.android.get
class GroupListViewModel(initialState: GroupListViewState,
private val selectedGroupHolder: SelectedGroupHolder,
private val session: Session
) : RiotViewModel<GroupListViewState>(initialState) {
companion object : MvRxViewModelFactory<GroupListViewModel, GroupListViewState> {
@JvmStatic
override fun create(viewModelContext: ViewModelContext, state: GroupListViewState): GroupListViewModel? {
val currentSession = Matrix.getInstance().currentSession
val selectedGroupHolder = viewModelContext.activity.get<SelectedGroupHolder>()
return GroupListViewModel(state, selectedGroupHolder, currentSession)
}
}
init {
observeGroupSummaries()
observeState()
}
private fun observeState() {
subscribe {
selectedGroupHolder.setSelectedGroup(it.selectedGroup)
}
}
fun accept(action: GroupListActions) {
when (action) {
is GroupListActions.SelectGroup -> handleSelectGroup(action)
}
}
// PRIVATE METHODS *****************************************************************************
private fun handleSelectGroup(action: GroupListActions.SelectGroup) = withState { state ->
if (state.selectedGroup?.groupId != action.groupSummary.groupId) {
setState { copy(selectedGroup = action.groupSummary) }
} else {
setState { copy(selectedGroup = null) }
}
}
private fun observeGroupSummaries() {
session
.rx().liveGroupSummaries()
.execute { async ->
copy(asyncGroups = async)
}
}
}

View File

@ -1,41 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.features.home.group
import android.widget.ImageView
import im.vector.riotredesign.R
import im.vector.riotredesign.core.epoxy.KotlinModel
import im.vector.riotredesign.core.platform.CheckableFrameLayout
import im.vector.riotredesign.features.home.AvatarRenderer
data class GroupSummaryItem(
val groupName: CharSequence,
val avatarUrl: String?,
val isSelected: Boolean,
val listener: (() -> Unit)? = null
) : KotlinModel(R.layout.item_group) {
private val avatarImageView by bind<ImageView>(R.id.groupAvatarImageView)
private val rootView by bind<CheckableFrameLayout>(R.id.itemGroupLayout)
override fun bind() {
rootView.isSelected = isSelected
rootView.setOnClickListener { listener?.invoke() }
AvatarRenderer.render(avatarUrl, groupName.toString(), avatarImageView)
}
}

View File

@ -1,38 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.features.home.group
import arrow.core.Option
import com.jakewharton.rxrelay2.BehaviorRelay
import im.vector.matrix.android.api.session.group.model.GroupSummary
import io.reactivex.Observable
class SelectedGroupHolder {
private val selectedGroupStream = BehaviorRelay.createDefault<Option<GroupSummary>>(Option.empty())
fun setSelectedGroup(group: GroupSummary?) {
val optionValue = Option.fromNullable(group)
selectedGroupStream.accept(optionValue)
}
fun selectedGroup(): Observable<Option<GroupSummary>> {
return selectedGroupStream.hide()
}
}

View File

@ -1,49 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.features.home.room.detail
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.bumptech.glide.Glide
import im.vector.riotredesign.R
import im.vector.riotredesign.core.platform.RiotFragment
import kotlinx.android.synthetic.main.fragment_loading_room_detail.*
class LoadingRoomDetailFragment : RiotFragment() {
companion object {
fun newInstance(): LoadingRoomDetailFragment {
return LoadingRoomDetailFragment()
}
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment_loading_room_detail, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
Glide.with(this)
.load(R.drawable.riot_splash)
.into(animatedLogoImageView)
}
}

View File

@ -1,154 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.features.home.room.detail
import android.os.Bundle
import android.os.Parcelable
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.airbnb.epoxy.EpoxyVisibilityTracker
import com.airbnb.mvrx.Success
import com.airbnb.mvrx.args
import com.airbnb.mvrx.fragmentViewModel
import im.vector.matrix.android.api.session.room.timeline.TimelineEvent
import im.vector.riotredesign.R
import im.vector.riotredesign.core.platform.RiotFragment
import im.vector.riotredesign.core.platform.ToolbarConfigurable
import im.vector.riotredesign.features.home.AvatarRenderer
import im.vector.riotredesign.features.home.HomePermalinkHandler
import im.vector.riotredesign.features.home.room.detail.timeline.TimelineEventController
import kotlinx.android.parcel.Parcelize
import kotlinx.android.synthetic.main.fragment_room_detail.*
import org.koin.android.ext.android.inject
import org.koin.core.parameter.parametersOf
@Parcelize
data class RoomDetailArgs(
val roomId: String,
val eventId: String? = null
) : Parcelable
class RoomDetailFragment : RiotFragment(), TimelineEventController.Callback {
companion object {
fun newInstance(args: RoomDetailArgs): RoomDetailFragment {
return RoomDetailFragment().apply {
setArguments(args)
}
}
}
private val roomDetailViewModel: RoomDetailViewModel by fragmentViewModel()
private val roomDetailArgs: RoomDetailArgs by args()
private val timelineEventController by inject<TimelineEventController> { parametersOf(roomDetailArgs.roomId) }
private val homePermalinkHandler by inject<HomePermalinkHandler>()
private lateinit var scrollOnNewMessageCallback: ScrollOnNewMessageCallback
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment_room_detail, container, false)
}
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
setupRecyclerView()
setupToolbar()
setupSendButton()
roomDetailViewModel.subscribe { renderState(it) }
}
override fun onResume() {
super.onResume()
roomDetailViewModel.process(RoomDetailActions.IsDisplayed)
}
private fun setupToolbar() {
val parentActivity = riotActivity
if (parentActivity is ToolbarConfigurable) {
parentActivity.configure(toolbar)
}
}
private fun setupRecyclerView() {
val epoxyVisibilityTracker = EpoxyVisibilityTracker()
epoxyVisibilityTracker.attach(recyclerView)
val layoutManager = LinearLayoutManager(context, RecyclerView.VERTICAL, true)
scrollOnNewMessageCallback = ScrollOnNewMessageCallback(layoutManager)
recyclerView.layoutManager = layoutManager
recyclerView.setHasFixedSize(true)
timelineEventController.addModelBuildListener { it.dispatchTo(scrollOnNewMessageCallback) }
recyclerView.setController(timelineEventController)
timelineEventController.callback = this
}
private fun setupSendButton() {
sendButton.setOnClickListener {
val textMessage = composerEditText.text.toString()
if (textMessage.isNotBlank()) {
composerEditText.text = null
roomDetailViewModel.process(RoomDetailActions.SendMessage(textMessage))
}
}
}
private fun renderState(state: RoomDetailViewState) {
renderRoomSummary(state)
renderTimeline(state)
}
private fun renderTimeline(state: RoomDetailViewState) {
when (state.asyncTimelineData) {
is Success -> {
val timelineData = state.asyncTimelineData()
val lockAutoScroll = timelineData?.let {
it.events == timelineEventController.currentList && it.isLoadingForward
} ?: true
scrollOnNewMessageCallback.isLocked.set(lockAutoScroll)
timelineEventController.update(timelineData)
}
}
}
private fun renderRoomSummary(state: RoomDetailViewState) {
state.asyncRoomSummary()?.let {
toolbarTitleView.text = it.displayName
AvatarRenderer.render(it, toolbarAvatarImageView)
if (it.topic.isNotEmpty()) {
toolbarSubtitleView.visibility = View.VISIBLE
toolbarSubtitleView.text = it.topic
} else {
toolbarSubtitleView.visibility = View.GONE
}
}
}
// TimelineEventController.Callback ************************************************************
override fun onUrlClicked(url: String) {
homePermalinkHandler.launch(url)
}
override fun onEventVisible(event: TimelineEvent, index: Int) {
roomDetailViewModel.process(RoomDetailActions.EventDisplayed(event, index))
}
}

View File

@ -1,141 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.features.home.room.detail
import com.airbnb.mvrx.MvRxViewModelFactory
import com.airbnb.mvrx.ViewModelContext
import com.jakewharton.rxrelay2.BehaviorRelay
import im.vector.matrix.android.api.Matrix
import im.vector.matrix.android.api.MatrixCallback
import im.vector.matrix.android.api.session.Session
import im.vector.matrix.android.api.session.events.model.Event
import im.vector.matrix.android.api.session.room.Room
import im.vector.matrix.rx.rx
import im.vector.riotredesign.core.extensions.lastMinBy
import im.vector.riotredesign.core.platform.RiotViewModel
import im.vector.riotredesign.features.home.room.VisibleRoomHolder
import io.reactivex.rxkotlin.subscribeBy
import org.koin.android.ext.android.get
import timber.log.Timber
import java.util.concurrent.TimeUnit
class RoomDetailViewModel(initialState: RoomDetailViewState,
private val session: Session,
private val visibleRoomHolder: VisibleRoomHolder
) : RiotViewModel<RoomDetailViewState>(initialState), Room.Listener {
private val room = session.getRoom(initialState.roomId)!!
private val roomId = initialState.roomId
private val eventId = initialState.eventId
private val displayedEventsObservable = BehaviorRelay.create<RoomDetailActions.EventDisplayed>()
companion object : MvRxViewModelFactory<RoomDetailViewModel, RoomDetailViewState> {
@JvmStatic
override fun create(viewModelContext: ViewModelContext, state: RoomDetailViewState): RoomDetailViewModel? {
val currentSession = Matrix.getInstance().currentSession
val visibleRoomHolder = viewModelContext.activity.get<VisibleRoomHolder>()
return RoomDetailViewModel(state, currentSession, visibleRoomHolder)
}
}
init {
observeRoomSummary()
observeTimeline()
observeDisplayedEvents()
room.loadRoomMembersIfNeeded()
room.addListener(this)
}
fun process(action: RoomDetailActions) {
when (action) {
is RoomDetailActions.SendMessage -> handleSendMessage(action)
is RoomDetailActions.IsDisplayed -> handleIsDisplayed()
is RoomDetailActions.EventDisplayed -> handleEventDisplayed(action)
}
}
override fun onCleared() {
room.removeListener(this)
super.onCleared()
}
// Room.Listener *******************************************************************************
override fun onReadReceiptsUpdated() {
Timber.v("On read receipts updated")
}
// PRIVATE METHODS *****************************************************************************
private fun handleSendMessage(action: RoomDetailActions.SendMessage) {
room.sendTextMessage(action.text, callback = object : MatrixCallback<Event> {})
}
private fun handleEventDisplayed(action: RoomDetailActions.EventDisplayed) {
displayedEventsObservable.accept(action)
}
private fun handleIsDisplayed() {
visibleRoomHolder.setVisibleRoom(roomId)
}
private fun observeDisplayedEvents() {
// We are buffering scroll events for one second
// and keep the most recent one to set the read receipt on.
displayedEventsObservable.hide()
.buffer(1, TimeUnit.SECONDS)
.filter { it.isNotEmpty() }
.subscribeBy(onNext = { actions ->
val eventIds = actions.mapNotNull { it.event.root.eventId }
withState { state ->
val newMapOfReadReceipts = HashMap(state.readReceiptsForEventId)
eventIds.forEach {
if (newMapOfReadReceipts.containsKey(it).not()) {
val readReceipts = room.readReceipts(it)
newMapOfReadReceipts[it] = readReceipts
}
}
setState { copy(readReceiptsForEventId = newMapOfReadReceipts) }
}
val mostRecentEvent = actions.lastMinBy { it.index }
mostRecentEvent?.event?.root?.eventId?.let { eventId ->
room.setReadReceipt(eventId, callback = object : MatrixCallback<Void> {})
}
})
.disposeOnClear()
}
private fun observeRoomSummary() {
room.rx().liveRoomSummary()
.execute { async ->
copy(asyncRoomSummary = async)
}
}
private fun observeTimeline() {
room.rx().timeline(eventId)
.execute { timelineData ->
copy(asyncTimelineData = timelineData)
}
}
}

View File

@ -1,33 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.features.home.room.detail
import androidx.recyclerview.widget.LinearLayoutManager
import im.vector.riotredesign.core.platform.DefaultListUpdateCallback
import java.util.concurrent.atomic.AtomicBoolean
class ScrollOnNewMessageCallback(private val layoutManager: LinearLayoutManager) : DefaultListUpdateCallback {
var isLocked = AtomicBoolean(true)
override fun onInserted(position: Int, count: Int) {
if (isLocked.compareAndSet(false, true) && position == 0 && layoutManager.findFirstVisibleItemPosition() == 0) {
layoutManager.scrollToPosition(0)
}
}
}

View File

@ -1,49 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.features.home.room.detail.timeline
import android.view.View
import android.widget.ImageView
import android.widget.TextView
import androidx.annotation.LayoutRes
import im.vector.riotredesign.core.epoxy.KotlinModel
import im.vector.riotredesign.features.home.AvatarRenderer
abstract class AbsMessageItem(private val informationData: MessageInformationData,
@LayoutRes layoutRes: Int
) : KotlinModel(layoutRes) {
protected abstract val avatarImageView: ImageView
protected abstract val memberNameView: TextView
protected abstract val timeView: TextView
override fun bind() {
if (informationData.showInformation) {
avatarImageView.visibility = View.VISIBLE
memberNameView.visibility = View.VISIBLE
timeView.visibility = View.VISIBLE
timeView.text = informationData.time
memberNameView.text = informationData.memberName
AvatarRenderer.render(informationData.avatarUrl, informationData.memberName?.toString(), avatarImageView)
} else {
avatarImageView.visibility = View.GONE
memberNameView.visibility = View.GONE
timeView.visibility = View.GONE
}
}
}

View File

@ -1,40 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.features.home.room.detail.timeline
import android.widget.ImageView
import android.widget.TextView
import im.vector.riotredesign.R
import im.vector.riotredesign.features.media.MediaContentRenderer
class MessageImageItem(
private val mediaData: MediaContentRenderer.Data,
informationData: MessageInformationData
) : AbsMessageItem(informationData, R.layout.item_timeline_event_image_message) {
override val avatarImageView by bind<ImageView>(R.id.messageAvatarImageView)
override val memberNameView by bind<TextView>(R.id.messageMemberNameView)
override val timeView by bind<TextView>(R.id.messageTimeView)
private val imageView by bind<ImageView>(R.id.messageImageView)
override fun bind() {
super.bind()
MediaContentRenderer.render(mediaData, MediaContentRenderer.Mode.THUMBNAIL, imageView)
}
}

View File

@ -1,24 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.features.home.room.detail.timeline
data class MessageInformationData(
val time: CharSequence? = null,
val avatarUrl: String?,
val memberName: CharSequence? = null,
val showInformation: Boolean = true
)

View File

@ -1,110 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.features.home.room.detail.timeline
import android.text.SpannableStringBuilder
import android.text.util.Linkify
import im.vector.matrix.android.api.permalinks.MatrixLinkify
import im.vector.matrix.android.api.permalinks.MatrixPermalinkSpan
import im.vector.matrix.android.api.session.events.model.EventType
import im.vector.matrix.android.api.session.events.model.toModel
import im.vector.matrix.android.api.session.room.model.message.MessageContent
import im.vector.matrix.android.api.session.room.model.message.MessageImageContent
import im.vector.matrix.android.api.session.room.model.message.MessageTextContent
import im.vector.matrix.android.api.session.room.timeline.TimelineEvent
import im.vector.riotredesign.core.extensions.localDateTime
import im.vector.riotredesign.features.home.room.detail.timeline.helper.TimelineMediaSizeProvider
import im.vector.riotredesign.features.media.MediaContentRenderer
class MessageItemFactory(private val timelineMediaSizeProvider: TimelineMediaSizeProvider,
private val timelineDateFormatter: TimelineDateFormatter) {
private val messagesDisplayedWithInformation = HashSet<String?>()
fun create(event: TimelineEvent,
nextEvent: TimelineEvent?,
callback: TimelineEventController.Callback?
): AbsMessageItem? {
val roomMember = event.roomMember
val nextRoomMember = nextEvent?.roomMember
val date = event.root.localDateTime()
val nextDate = nextEvent?.root?.localDateTime()
val addDaySeparator = date.toLocalDate() != nextDate?.toLocalDate()
val isNextMessageReceivedMoreThanOneHourAgo = nextDate?.isBefore(date.minusMinutes(60))
?: false
if (addDaySeparator
|| nextRoomMember != roomMember
|| nextEvent?.root?.type != EventType.MESSAGE
|| isNextMessageReceivedMoreThanOneHourAgo) {
messagesDisplayedWithInformation.add(event.root.eventId)
}
val messageContent: MessageContent = event.root.content.toModel() ?: return null
val showInformation = messagesDisplayedWithInformation.contains(event.root.eventId)
val time = timelineDateFormatter.formatMessageHour(date)
val avatarUrl = roomMember?.avatarUrl
val memberName = roomMember?.displayName ?: event.root.sender
val informationData = MessageInformationData(time, avatarUrl, memberName, showInformation)
return when (messageContent) {
is MessageTextContent -> buildTextMessageItem(messageContent, informationData, callback)
is MessageImageContent -> buildImageMessageItem(messageContent, informationData)
else -> null
}
}
private fun buildImageMessageItem(messageContent: MessageImageContent,
informationData: MessageInformationData): MessageImageItem? {
val (maxWidth, maxHeight) = timelineMediaSizeProvider.getMaxSize()
val data = MediaContentRenderer.Data(
url = messageContent.url,
height = messageContent.info?.height,
maxHeight = maxHeight,
width = messageContent.info?.width,
maxWidth = maxWidth,
rotation = messageContent.info?.rotation,
orientation = messageContent.info?.orientation
)
return MessageImageItem(data, informationData)
}
private fun buildTextMessageItem(messageContent: MessageTextContent,
informationData: MessageInformationData,
callback: TimelineEventController.Callback?): MessageTextItem? {
val message = messageContent.body.let {
val spannable = SpannableStringBuilder(it)
MatrixLinkify.addLinks(spannable, object : MatrixPermalinkSpan.Callback {
override fun onUrlClicked(url: String) {
callback?.onUrlClicked(url)
}
})
Linkify.addLinks(spannable, Linkify.ALL)
spannable
}
return MessageTextItem(
message = message,
informationData = informationData
)
}
}

View File

@ -1,39 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.features.home.room.detail.timeline
import android.widget.ImageView
import android.widget.TextView
import im.vector.matrix.android.api.permalinks.MatrixLinkify
import im.vector.riotredesign.R
class MessageTextItem(
val message: CharSequence? = null,
informationData: MessageInformationData
) : AbsMessageItem(informationData, R.layout.item_timeline_event_text_message) {
override val avatarImageView by bind<ImageView>(R.id.messageAvatarImageView)
override val memberNameView by bind<TextView>(R.id.messageMemberNameView)
override val timeView by bind<TextView>(R.id.messageTimeView)
private val messageView by bind<TextView>(R.id.messageTextView)
override fun bind() {
super.bind()
messageView.text = message
MatrixLinkify.addLinkMovementMethod(messageView)
}
}

View File

@ -1,37 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.features.home.room.detail.timeline
import android.widget.ImageView
import android.widget.TextView
import im.vector.riotredesign.R
import im.vector.riotredesign.core.epoxy.KotlinModel
import im.vector.riotredesign.features.home.AvatarRenderer
class NoticeItem(private val noticeText: CharSequence? = null,
private val avatarUrl: String?,
private val memberName: CharSequence? = null)
: KotlinModel(R.layout.item_timeline_event_notice) {
private val avatarImageView by bind<ImageView>(R.id.itemNoticeAvatarView)
private val noticeTextView by bind<TextView>(R.id.itemNoticeTextView)
override fun bind() {
noticeTextView.text = noticeText
AvatarRenderer.render(avatarUrl, memberName?.toString(), avatarImageView)
}
}

View File

@ -1,39 +0,0 @@
/*
*
* * Copyright 2019 New Vector Ltd
* *
* * Licensed under the Apache License, Version 2.0 (the "License");
* * you may not use this file except in compliance with the License.
* * You may obtain a copy of the License at
* *
* * http://www.apache.org/licenses/LICENSE-2.0
* *
* * Unless required by applicable law or agreed to in writing, software
* * distributed under the License is distributed on an "AS IS" BASIS,
* * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* * See the License for the specific language governing permissions and
* * limitations under the License.
*
*/
package im.vector.riotredesign.features.home.room.detail.timeline
import android.widget.ImageView
import android.widget.TextView
import im.vector.riotredesign.R
import im.vector.riotredesign.core.epoxy.KotlinModel
class ReadReceiptsItem() : KotlinModel(R.layout.item_timeline_read_receipts) {
private val moreText by bind<TextView>(R.id.message_more_than_expected)
private val avatarReceipt1 by bind<ImageView>(R.id.message_avatar_receipt_1)
private val avatarReceipt2 by bind<ImageView>(R.id.message_avatar_receipt_1)
private val avatarReceipt3 by bind<ImageView>(R.id.message_avatar_receipt_1)
private val avatarReceipt4 by bind<ImageView>(R.id.message_avatar_receipt_1)
private val avatarReceipt5 by bind<ImageView>(R.id.message_avatar_receipt_1)
private val avatarReceipts = listOf(avatarReceipt1, avatarReceipt2, avatarReceipt3, avatarReceipt4, avatarReceipt5)
override fun bind() {
}
}

View File

@ -1,113 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.features.home.room.detail.timeline
import android.text.TextUtils
import im.vector.matrix.android.api.session.room.timeline.TimelineEvent
import im.vector.matrix.android.api.session.events.model.toModel
import im.vector.matrix.android.api.session.room.model.Membership
import im.vector.matrix.android.api.session.room.model.RoomMember
import im.vector.riotredesign.R
import im.vector.riotredesign.core.resources.StringProvider
//TODO : complete with call membership events
class RoomMemberItemFactory(private val stringProvider: StringProvider) {
fun create(event: TimelineEvent): NoticeItem? {
val roomMember = event.roomMember ?: return null
val noticeText = buildRoomMemberNotice(event) ?: return null
return NoticeItem(noticeText, roomMember.avatarUrl, roomMember.displayName)
}
private fun buildRoomMemberNotice(event: TimelineEvent): String? {
val eventContent: RoomMember? = event.root.content.toModel()
val prevEventContent: RoomMember? = event.root.prevContent.toModel()
val isMembershipEvent = prevEventContent?.membership != eventContent?.membership
return if (isMembershipEvent) {
buildMembershipNotice(event, eventContent, prevEventContent)
} else {
buildProfileNotice(event, eventContent, prevEventContent)
}
}
private fun buildProfileNotice(event: TimelineEvent, eventContent: RoomMember?, prevEventContent: RoomMember?): String? {
val displayText = StringBuilder()
// Check display name has been changed
if (!TextUtils.equals(eventContent?.displayName, prevEventContent?.displayName)) {
val displayNameText = when {
prevEventContent?.displayName.isNullOrEmpty() -> stringProvider.getString(R.string.notice_display_name_set, event.root.sender, eventContent?.displayName)
eventContent?.displayName.isNullOrEmpty() -> stringProvider.getString(R.string.notice_display_name_removed, event.root.sender, prevEventContent?.displayName)
else -> stringProvider.getString(R.string.notice_display_name_changed_from, event.root.sender, prevEventContent?.displayName, eventContent?.displayName)
}
displayText.append(displayNameText)
}
// Check whether the avatar has been changed
if (!TextUtils.equals(eventContent?.avatarUrl, prevEventContent?.avatarUrl)) {
val displayAvatarText = if (displayText.isNotEmpty()) {
displayText.append(" ")
stringProvider.getString(R.string.notice_avatar_changed_too)
} else {
stringProvider.getString(R.string.notice_avatar_url_changed, event.roomMember?.displayName)
}
displayText.append(displayAvatarText)
}
return displayText.toString()
}
private fun buildMembershipNotice(event: TimelineEvent, eventContent: RoomMember?, prevEventContent: RoomMember?): String? {
val senderDisplayName = event.roomMember?.displayName ?: return null
val targetDisplayName = eventContent?.displayName ?: event.root.sender
return when {
Membership.INVITE == eventContent?.membership -> {
// TODO get userId
val selfUserId: String = ""
when {
eventContent.thirdPartyInvite != null -> stringProvider.getString(R.string.notice_room_third_party_registered_invite, targetDisplayName, eventContent.thirdPartyInvite?.displayName)
TextUtils.equals(event.root.stateKey, selfUserId)
-> stringProvider.getString(R.string.notice_room_invite_you, senderDisplayName)
event.root.stateKey.isNullOrEmpty() -> stringProvider.getString(R.string.notice_room_invite_no_invitee, senderDisplayName)
else -> stringProvider.getString(R.string.notice_room_invite, senderDisplayName, targetDisplayName)
}
}
Membership.JOIN == eventContent?.membership -> stringProvider.getString(R.string.notice_room_join, senderDisplayName)
Membership.LEAVE == eventContent?.membership -> // 2 cases here: this member may have left voluntarily or they may have been "left" by someone else ie. kicked
return if (TextUtils.equals(event.root.sender, event.root.stateKey)) {
if (prevEventContent?.membership == Membership.INVITE) {
stringProvider.getString(R.string.notice_room_reject, senderDisplayName)
} else {
stringProvider.getString(R.string.notice_room_leave, senderDisplayName)
}
} else if (prevEventContent?.membership == Membership.INVITE) {
stringProvider.getString(R.string.notice_room_withdraw, senderDisplayName, targetDisplayName)
} else if (prevEventContent?.membership == Membership.JOIN) {
stringProvider.getString(R.string.notice_room_kick, senderDisplayName, targetDisplayName)
} else if (prevEventContent?.membership == Membership.BAN) {
stringProvider.getString(R.string.notice_room_unban, senderDisplayName, targetDisplayName)
} else {
null
}
Membership.BAN == eventContent?.membership -> stringProvider.getString(R.string.notice_room_ban, senderDisplayName, targetDisplayName)
Membership.KNOCK == eventContent?.membership -> stringProvider.getString(R.string.notice_room_kick, senderDisplayName, targetDisplayName)
else -> null
}
}
}

View File

@ -1,44 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.features.home.room.detail.timeline
import android.text.TextUtils
import im.vector.matrix.android.api.session.room.timeline.TimelineEvent
import im.vector.matrix.android.api.session.events.model.toModel
import im.vector.matrix.android.api.session.room.model.RoomNameContent
import im.vector.riotredesign.R
import im.vector.riotredesign.core.resources.StringProvider
class RoomNameItemFactory(private val stringProvider: StringProvider) {
fun create(event: TimelineEvent): NoticeItem? {
val content: RoomNameContent? = event.root.content.toModel()
val roomMember = event.roomMember
if (content == null || roomMember == null) {
return null
}
val text = if (!TextUtils.isEmpty(content.name)) {
stringProvider.getString(R.string.notice_room_name_changed, roomMember.displayName, content.name)
} else {
stringProvider.getString(R.string.notice_room_name_removed, roomMember.displayName)
}
return NoticeItem(text, roomMember.avatarUrl, roomMember.displayName)
}
}

View File

@ -1,43 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.features.home.room.detail.timeline
import im.vector.matrix.android.api.session.events.model.toModel
import im.vector.matrix.android.api.session.room.model.RoomTopicContent
import im.vector.matrix.android.api.session.room.timeline.TimelineEvent
import im.vector.riotredesign.R
import im.vector.riotredesign.core.resources.StringProvider
class RoomTopicItemFactory(private val stringProvider: StringProvider) {
fun create(event: TimelineEvent): NoticeItem? {
val content: RoomTopicContent? = event.root.content.toModel()
val roomMember = event.roomMember
if (content == null || roomMember == null) {
return null
}
val text = if (content.topic.isNullOrEmpty()) {
stringProvider.getString(R.string.notice_room_topic_removed, roomMember.displayName)
} else {
stringProvider.getString(R.string.notice_room_topic_changed, roomMember.displayName, content.topic)
}
return NoticeItem(text, roomMember.avatarUrl, roomMember.displayName)
}
}

View File

@ -1,33 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.features.home.room.detail.timeline
import im.vector.riotredesign.core.resources.LocaleProvider
import org.threeten.bp.LocalDateTime
import org.threeten.bp.format.DateTimeFormatter
class TimelineDateFormatter(private val localeProvider: LocaleProvider) {
fun formatMessageHour(localDateTime: LocalDateTime): String {
return DateTimeFormatter.ofPattern("H:mm", localeProvider.current()).format(localDateTime)
}
fun formatMessageDay(localDateTime: LocalDateTime): String {
return DateTimeFormatter.ofPattern("EEE d MMM", localeProvider.current()).format(localDateTime)
}
}

View File

@ -1,114 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.features.home.room.detail.timeline
import android.view.View
import androidx.recyclerview.widget.RecyclerView
import com.airbnb.epoxy.EpoxyAsyncUtil
import com.airbnb.epoxy.EpoxyModel
import com.airbnb.epoxy.OnModelVisibilityStateChangedListener
import com.airbnb.epoxy.VisibilityState
import im.vector.matrix.android.api.session.events.model.EventType
import im.vector.matrix.android.api.session.room.timeline.TimelineData
import im.vector.matrix.android.api.session.room.timeline.TimelineEvent
import im.vector.riotredesign.core.epoxy.KotlinModel
import im.vector.riotredesign.core.extensions.localDateTime
import im.vector.riotredesign.features.home.LoadingItemModel_
import im.vector.riotredesign.features.home.room.detail.timeline.helper.TimelineMediaSizeProvider
import im.vector.riotredesign.features.home.room.detail.timeline.paging.PagedListEpoxyController
class TimelineEventController(private val roomId: String,
private val dateFormatter: TimelineDateFormatter,
private val timelineItemFactory: TimelineItemFactory,
private val timelineMediaSizeProvider: TimelineMediaSizeProvider
) : PagedListEpoxyController<TimelineEvent>(
EpoxyAsyncUtil.getAsyncBackgroundHandler(),
EpoxyAsyncUtil.getAsyncBackgroundHandler()
) {
init {
setFilterDuplicates(true)
}
private var isLoadingForward: Boolean = false
private var isLoadingBackward: Boolean = false
private var hasReachedEnd: Boolean = false
var callback: Callback? = null
fun update(timelineData: TimelineData?) {
timelineData?.let {
isLoadingForward = it.isLoadingForward
isLoadingBackward = it.isLoadingBackward
hasReachedEnd = it.events.lastOrNull()?.root?.type == EventType.STATE_ROOM_CREATE
submitList(it.events)
requestModelBuild()
}
}
override fun onAttachedToRecyclerView(recyclerView: RecyclerView) {
super.onAttachedToRecyclerView(recyclerView)
timelineMediaSizeProvider.recyclerView = recyclerView
}
override fun buildItemModels(currentPosition: Int, items: List<TimelineEvent?>): List<EpoxyModel<*>> {
if (items.isNullOrEmpty()) {
return emptyList()
}
val epoxyModels = ArrayList<EpoxyModel<*>>()
val event = items[currentPosition] ?: return emptyList()
val nextEvent = if (currentPosition + 1 < items.size) items[currentPosition + 1] else null
val date = event.root.localDateTime()
val nextDate = nextEvent?.root?.localDateTime()
val addDaySeparator = date.toLocalDate() != nextDate?.toLocalDate()
timelineItemFactory.create(event, nextEvent, callback)?.also {
it.id(event.localId)
it.setOnVisibilityStateChanged(OnModelVisibilityStateChangedListener<KotlinModel, View> { model, view, visibilityState ->
if (visibilityState == VisibilityState.VISIBLE) {
callback?.onEventVisible(event, currentPosition)
}
})
epoxyModels.add(it)
}
if (addDaySeparator) {
val formattedDay = dateFormatter.formatMessageDay(date)
val daySeparatorItem = DaySeparatorItem(formattedDay).id(roomId + formattedDay)
epoxyModels.add(daySeparatorItem)
}
return epoxyModels
}
override fun addModels(models: List<EpoxyModel<*>>) {
LoadingItemModel_()
.id(roomId + "forward_loading_item")
.addIf(isLoadingForward, this)
super.add(models)
LoadingItemModel_()
.id(roomId + "backward_loading_item")
.addIf(!hasReachedEnd, this)
}
interface Callback {
fun onEventVisible(event: TimelineEvent, index: Int)
fun onUrlClicked(url: String)
}
}

View File

@ -1,42 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.features.home.room.detail.timeline
import im.vector.matrix.android.api.session.events.model.EventType
import im.vector.matrix.android.api.session.room.timeline.TimelineEvent
import im.vector.riotredesign.core.epoxy.KotlinModel
class TimelineItemFactory(private val messageItemFactory: MessageItemFactory,
private val roomNameItemFactory: RoomNameItemFactory,
private val roomTopicItemFactory: RoomTopicItemFactory,
private val roomMemberItemFactory: RoomMemberItemFactory,
private val defaultItemFactory: DefaultItemFactory) {
fun create(event: TimelineEvent,
nextEvent: TimelineEvent?,
callback: TimelineEventController.Callback?): KotlinModel? {
return when (event.root.type) {
EventType.MESSAGE -> messageItemFactory.create(event, nextEvent, callback)
EventType.STATE_ROOM_NAME -> roomNameItemFactory.create(event)
EventType.STATE_ROOM_TOPIC -> roomTopicItemFactory.create(event)
EventType.STATE_ROOM_MEMBER -> roomMemberItemFactory.create(event)
else -> defaultItemFactory.create(event)
}
}
}

View File

@ -1,129 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.features.home.room.detail.timeline.paging
import androidx.paging.PagedList
import android.os.Handler
import androidx.recyclerview.widget.DiffUtil
import com.airbnb.epoxy.EpoxyController
import com.airbnb.epoxy.EpoxyModel
import com.airbnb.epoxy.EpoxyViewHolder
/**
* An [EpoxyController] that can work with a [PagedList].
*
* Internally, it caches the model for each item in the [PagedList]. You should override
* [buildItemModel] method to build the model for the given item. Since [PagedList] might include
* `null` items if placeholders are enabled, this method needs to handle `null` values in the list.
*
* By default, the model for each item is added to the model list. To change this behavior (to
* filter items or inject extra items), you can override [addModels] function and manually add built
* models.
*
* @param T The type of the items in the [PagedList].
*/
abstract class PagedListEpoxyController<T>(
/**
* The handler to use for building models. By default this uses the main thread, but you can use
* [EpoxyAsyncUtil.getAsyncBackgroundHandler] to do model building in the background.
*
* The notify thread of your PagedList (from setNotifyExecutor in the PagedList Builder) must be
* the same as this thread. Otherwise Epoxy will crash.
*/
modelBuildingHandler: Handler = EpoxyController.defaultModelBuildingHandler,
/**
* The handler to use when calculating the diff between built model lists.
* By default this uses the main thread, but you can use
* [EpoxyAsyncUtil.getAsyncBackgroundHandler] to do diffing in the background.
*/
diffingHandler: Handler = EpoxyController.defaultDiffingHandler,
/**
* [PagedListEpoxyController] uses an [DiffUtil.ItemCallback] to detect changes between
* [PagedList]s. By default, it relies on simple object equality but you can provide a custom
* one if you don't use all fields in the object in your models.
*/
itemDiffCallback: DiffUtil.ItemCallback<T> = DEFAULT_ITEM_DIFF_CALLBACK as DiffUtil.ItemCallback<T>
) : EpoxyController(modelBuildingHandler, diffingHandler) {
// this is where we keep the already built models
protected val modelCache = PagedListModelCache(
modelBuilder = { pos, item ->
buildItemModels(pos, item)
},
rebuildCallback = {
requestModelBuild()
},
itemDiffCallback = itemDiffCallback,
modelBuildingHandler = modelBuildingHandler
)
var currentList: PagedList<T>? = null
private set
final override fun buildModels() {
addModels(modelCache.getModels())
}
override fun onModelBound(
holder: EpoxyViewHolder,
boundModel: EpoxyModel<*>,
position: Int,
previouslyBoundModel: EpoxyModel<*>?
) {
modelCache.loadAround(boundModel)
}
/**
* This function adds all built models to the adapter. You can override this method to add extra
* items into the model list or remove some.
*/
open fun addModels(models: List<EpoxyModel<*>>) {
super.add(models)
}
/**
* Builds the model for a given item. This must return a single model for each item. If you want
* to inject headers etc, you can override [addModels] function.
*
* If the `item` is `null`, you should provide the placeholder. If your [PagedList] is configured
* without placeholders, you don't need to handle the `null` case.
*/
abstract fun buildItemModels(currentPosition: Int, items: List<T?>): List<EpoxyModel<*>>
/**
* Submit a new paged list.
*
* A diff will be calculated between this list and the previous list so you may still get calls
* to [buildItemModel] with items from the previous list.
*/
fun submitList(newList: PagedList<T>?) {
currentList = newList
modelCache.submitList(newList)
}
companion object {
/**
* [PagedListEpoxyController] calculates a diff on top of the PagedList to check which
* models are invalidated.
* This is the default [DiffUtil.ItemCallback] which uses object equality.
*/
val DEFAULT_ITEM_DIFF_CALLBACK = object : DiffUtil.ItemCallback<Any>() {
override fun areItemsTheSame(oldItem: Any, newItem: Any) = oldItem == newItem
override fun areContentsTheSame(oldItem: Any, newItem: Any) = oldItem == newItem
}
}
}

View File

@ -1,149 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.features.home.room.detail.timeline.paging
import android.annotation.SuppressLint
import android.os.Handler
import androidx.paging.AsyncPagedListDiffer
import androidx.paging.PagedList
import androidx.recyclerview.widget.AsyncDifferConfig
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.ListUpdateCallback
import com.airbnb.epoxy.EpoxyModel
import java.util.concurrent.Executor
import java.util.concurrent.atomic.AtomicBoolean
/**
* A PagedList stream wrapper that caches models built for each item. It tracks changes in paged lists and caches
* models for each item when they are invalidated to avoid rebuilding models for the whole list when PagedList is
* updated.
*/
class PagedListModelCache<T>(
private val modelBuilder: (itemIndex: Int, items: List<T>) -> List<EpoxyModel<*>>,
private val rebuildCallback: () -> Unit,
private val itemDiffCallback: DiffUtil.ItemCallback<T>,
private val diffExecutor: Executor? = null,
private val modelBuildingHandler: Handler
) {
// Int is the index of the pagedList item
// We have to be able to find the pagedlist position coming from an epoxy model to trigger
// LoadAround with accuracy
private val modelCache = linkedMapOf<EpoxyModel<*>, Int>()
private var isCacheStale = AtomicBoolean(true)
/**
* Tracks the last accessed position so that we can report it back to the paged list when models are built.
*/
private var lastPosition: Int? = null
/**
* Observer for the PagedList changes that invalidates the model cache when data is updated.
*/
private val updateCallback = object : ListUpdateCallback {
override fun onChanged(position: Int, count: Int, payload: Any?) {
invalidate()
rebuildCallback()
}
override fun onMoved(fromPosition: Int, toPosition: Int) {
invalidate()
rebuildCallback()
}
override fun onInserted(position: Int, count: Int) {
invalidate()
rebuildCallback()
}
override fun onRemoved(position: Int, count: Int) {
invalidate()
rebuildCallback()
}
}
@SuppressLint("RestrictedApi")
private val asyncDiffer = AsyncPagedListDiffer<T>(
updateCallback,
AsyncDifferConfig.Builder<T>(
itemDiffCallback
).also { builder ->
if (diffExecutor != null) {
builder.setBackgroundThreadExecutor(diffExecutor)
}
// we have to reply on this private API, otherwise, paged list might be changed when models are being built,
// potentially creating concurrent modification problems.
builder.setMainThreadExecutor { runnable: Runnable ->
modelBuildingHandler.post(runnable)
}
}.build()
)
fun submitList(pagedList: PagedList<T>?) {
asyncDiffer.submitList(pagedList)
}
fun getModels(): List<EpoxyModel<*>> {
if (isCacheStale.compareAndSet(true, false)) {
asyncDiffer.currentList?.forEachIndexed { position, _ ->
buildModel(position)
}
}
lastPosition?.let {
triggerLoadAround(it)
}
return modelCache.keys.toList()
}
fun loadAround(model: EpoxyModel<*>) {
modelCache[model]?.let { itemPosition ->
triggerLoadAround(itemPosition)
lastPosition = itemPosition
}
}
// PRIVATE METHODS *****************************************************************************
private fun invalidate() {
modelCache.clear()
isCacheStale.set(true)
}
private fun cacheModelsAtPosition(itemPosition: Int, epoxyModels: Set<EpoxyModel<*>>) {
epoxyModels.forEach {
modelCache[it] = itemPosition
}
}
private fun buildModel(pos: Int) {
if (pos >= asyncDiffer.currentList?.size ?: 0) {
return
}
modelBuilder(pos, asyncDiffer.currentList as List<T>).also {
cacheModelsAtPosition(pos, it.toSet())
}
}
private fun triggerLoadAround(position: Int) {
asyncDiffer.currentList?.let {
if (it.size > 0) {
it.loadAround(Math.min(position, it.size - 1))
}
}
}
}

View File

@ -1,52 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.features.home.room.list
import android.view.ViewGroup
import android.widget.TextView
import androidx.core.content.ContextCompat
import androidx.core.graphics.drawable.DrawableCompat
import im.vector.riotredesign.R
import im.vector.riotredesign.core.epoxy.KotlinModel
data class RoomCategoryItem(
val title: CharSequence,
val isExpanded: Boolean,
val unreadCount: Int,
val showHighlighted: Boolean,
val listener: (() -> Unit)? = null
) : KotlinModel(R.layout.item_room_category) {
private val unreadCounterBadgeView by bind<UnreadCounterBadgeView>(R.id.roomCategoryUnreadCounterBadgeView)
private val titleView by bind<TextView>(R.id.roomCategoryTitleView)
private val rootView by bind<ViewGroup>(R.id.roomCategoryRootView)
private val tintColor by lazy {
ContextCompat.getColor(rootView.context, R.color.bluey_grey_two)
}
override fun bind() {
val expandedArrowDrawableRes = if (isExpanded) R.drawable.ic_expand_more_white else R.drawable.ic_expand_less_white
val expandedArrowDrawable = ContextCompat.getDrawable(rootView.context, expandedArrowDrawableRes)?.also {
DrawableCompat.setTint(it, tintColor)
}
unreadCounterBadgeView.render(unreadCount, showHighlighted)
titleView.setCompoundDrawablesWithIntrinsicBounds(expandedArrowDrawable, null, null, null)
titleView.text = title
rootView.setOnClickListener { listener?.invoke() }
}
}

View File

@ -1,113 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.features.home.room.list
import android.os.Bundle
import android.text.Editable
import android.text.TextWatcher
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.airbnb.mvrx.Fail
import com.airbnb.mvrx.Incomplete
import com.airbnb.mvrx.Success
import com.airbnb.mvrx.activityViewModel
import im.vector.matrix.android.api.failure.Failure
import im.vector.matrix.android.api.session.room.model.RoomSummary
import im.vector.riotredesign.R
import im.vector.riotredesign.core.extensions.setupAsSearch
import im.vector.riotredesign.core.platform.RiotFragment
import im.vector.riotredesign.core.platform.StateView
import im.vector.riotredesign.features.home.HomeNavigator
import kotlinx.android.synthetic.main.fragment_room_list.*
import org.koin.android.ext.android.inject
class RoomListFragment : RiotFragment(), RoomSummaryController.Callback {
companion object {
fun newInstance(): RoomListFragment {
return RoomListFragment()
}
}
private val homeNavigator by inject<HomeNavigator>()
private val roomController by inject<RoomSummaryController>()
private val homeViewModel: RoomListViewModel by activityViewModel()
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment_room_list, container, false)
}
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
roomController.callback = this
stateView.contentView = epoxyRecyclerView
epoxyRecyclerView.setController(roomController)
setupFilterView()
homeViewModel.subscribe { renderState(it) }
}
private fun renderState(state: RoomListViewState) {
when (state.asyncRooms) {
is Incomplete -> renderLoading()
is Success -> renderSuccess(state)
is Fail -> renderFailure(state.asyncRooms.error)
}
}
private fun renderSuccess(state: RoomListViewState) {
if (state.asyncRooms().isNullOrEmpty()) {
stateView.state = StateView.State.Empty(getString(R.string.room_list_empty))
} else {
stateView.state = StateView.State.Content
}
roomController.setData(state)
}
private fun renderLoading() {
stateView.state = StateView.State.Loading
}
private fun renderFailure(error: Throwable) {
val message = when (error) {
is Failure.NetworkConnection -> getString(R.string.error_no_network)
else -> getString(R.string.error_common)
}
stateView.state = StateView.State.Error(message)
}
private fun setupFilterView() {
filterRoomView.setupAsSearch()
filterRoomView.addTextChangedListener(object : TextWatcher {
override fun afterTextChanged(s: Editable?) = Unit
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) = Unit
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
homeViewModel.accept(RoomListActions.FilterRooms(s))
}
})
}
// RoomSummaryController.Callback **************************************************************
override fun onRoomSelected(room: RoomSummary) {
homeViewModel.accept(RoomListActions.SelectRoom(room))
homeNavigator.openRoomDetail(room.roomId, null)
}
}

View File

@ -1,171 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.features.home.room.list
import arrow.core.Option
import com.airbnb.mvrx.MvRxViewModelFactory
import com.airbnb.mvrx.ViewModelContext
import com.jakewharton.rxrelay2.BehaviorRelay
import im.vector.matrix.android.api.Matrix
import im.vector.matrix.android.api.session.Session
import im.vector.matrix.android.api.session.group.model.GroupSummary
import im.vector.matrix.android.api.session.room.model.RoomSummary
import im.vector.matrix.android.api.session.room.model.tag.RoomTag
import im.vector.matrix.rx.rx
import im.vector.riotredesign.core.platform.RiotViewModel
import im.vector.riotredesign.features.home.group.SelectedGroupHolder
import im.vector.riotredesign.features.home.room.VisibleRoomHolder
import io.reactivex.Observable
import io.reactivex.functions.Function3
import io.reactivex.rxkotlin.subscribeBy
import org.koin.android.ext.android.get
import java.util.concurrent.TimeUnit
typealias RoomListFilterName = CharSequence
class RoomListViewModel(initialState: RoomListViewState,
private val session: Session,
private val selectedGroupHolder: SelectedGroupHolder,
private val visibleRoomHolder: VisibleRoomHolder,
private val roomSelectionRepository: RoomSelectionRepository,
private val roomSummaryComparator: RoomSummaryComparator)
: RiotViewModel<RoomListViewState>(initialState) {
companion object : MvRxViewModelFactory<RoomListViewModel, RoomListViewState> {
@JvmStatic
override fun create(viewModelContext: ViewModelContext, state: RoomListViewState): RoomListViewModel? {
val currentSession = Matrix.getInstance().currentSession
val roomSelectionRepository = viewModelContext.activity.get<RoomSelectionRepository>()
val selectedGroupHolder = viewModelContext.activity.get<SelectedGroupHolder>()
val visibleRoomHolder = viewModelContext.activity.get<VisibleRoomHolder>()
val roomSummaryComparator = viewModelContext.activity.get<RoomSummaryComparator>()
return RoomListViewModel(state, currentSession, selectedGroupHolder, visibleRoomHolder, roomSelectionRepository, roomSummaryComparator)
}
}
private val roomListFilter = BehaviorRelay.createDefault<Option<RoomListFilterName>>(Option.empty())
init {
observeRoomSummaries()
observeVisibleRoom()
}
fun accept(action: RoomListActions) {
when (action) {
is RoomListActions.SelectRoom -> handleSelectRoom(action)
is RoomListActions.FilterRooms -> handleFilterRooms(action)
}
}
// PRIVATE METHODS *****************************************************************************
private fun handleSelectRoom(action: RoomListActions.SelectRoom) = withState { state ->
if (state.selectedRoomId != action.roomSummary.roomId) {
roomSelectionRepository.saveLastSelectedRoom(action.roomSummary.roomId)
}
}
private fun handleFilterRooms(action: RoomListActions.FilterRooms) {
val optionalFilter = Option.fromNullable(action.roomName)
roomListFilter.accept(optionalFilter)
}
private fun observeVisibleRoom() {
visibleRoomHolder.visibleRoom()
.subscribeBy {
setState { copy(selectedRoomId = it) }
}
.disposeOnClear()
}
private fun observeRoomSummaries() {
Observable.combineLatest<List<RoomSummary>, Option<GroupSummary>, Option<RoomListFilterName>, RoomSummaries>(
session.rx().liveRoomSummaries().throttleLast(300, TimeUnit.MILLISECONDS),
selectedGroupHolder.selectedGroup(),
roomListFilter.throttleLast(300, TimeUnit.MILLISECONDS),
Function3 { rooms, selectedGroupOption, filterRoomOption ->
val filteredRooms = filterRooms(rooms, filterRoomOption)
val selectedGroup = selectedGroupOption.orNull()
val filteredDirectRooms = filteredRooms
.filter { it.isDirect }
.filter {
if (selectedGroup == null) {
true
} else {
it.otherMemberIds
.intersect(selectedGroup.userIds)
.isNotEmpty()
}
}
val filteredGroupRooms = filteredRooms
.filter { !it.isDirect }
.filter {
selectedGroup?.roomIds?.contains(it.roomId) ?: true
}
buildRoomSummaries(filteredDirectRooms + filteredGroupRooms)
}
)
.execute { async ->
copy(
asyncRooms = async
)
}
}
private fun filterRooms(rooms: List<RoomSummary>, filterRoomOption: Option<RoomListFilterName>): List<RoomSummary> {
val filterRoom = filterRoomOption.orNull()
return rooms.filter {
if (filterRoom.isNullOrBlank()) {
true
} else {
it.displayName.contains(other = filterRoom, ignoreCase = true)
}
}
}
private fun buildRoomSummaries(rooms: List<RoomSummary>): RoomSummaries {
val favourites = ArrayList<RoomSummary>()
val directChats = ArrayList<RoomSummary>()
val groupRooms = ArrayList<RoomSummary>()
val lowPriorities = ArrayList<RoomSummary>()
val serverNotices = ArrayList<RoomSummary>()
for (room in rooms) {
val tags = room.tags.map { it.name }
when {
tags.contains(RoomTag.ROOM_TAG_SERVER_NOTICE) -> serverNotices.add(room)
tags.contains(RoomTag.ROOM_TAG_FAVOURITE) -> favourites.add(room)
tags.contains(RoomTag.ROOM_TAG_LOW_PRIORITY) -> lowPriorities.add(room)
room.isDirect -> directChats.add(room)
else -> groupRooms.add(room)
}
}
return RoomSummaries(
favourites = favourites.sortedWith(roomSummaryComparator),
directRooms = directChats.sortedWith(roomSummaryComparator),
groupRooms = groupRooms.sortedWith(roomSummaryComparator),
lowPriorities = lowPriorities.sortedWith(roomSummaryComparator),
serverNotices = serverNotices.sortedWith(roomSummaryComparator)
)
}
}

View File

@ -1,70 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.features.home.room.list
import im.vector.matrix.android.api.session.room.model.RoomSummary
class RoomSummaryComparator
: Comparator<RoomSummary> {
override fun compare(leftRoomSummary: RoomSummary?, rightRoomSummary: RoomSummary?): Int {
val retValue: Int
var leftHighlightCount = 0
var rightHighlightCount = 0
var leftNotificationCount = 0
var rightNotificationCount = 0
var rightTimestamp = 0L
var leftTimestamp = 0L
if (null != leftRoomSummary) {
leftHighlightCount = leftRoomSummary.highlightCount
leftNotificationCount = leftRoomSummary.notificationCount
leftTimestamp = leftRoomSummary.lastMessage?.originServerTs ?: 0
}
if (null != rightRoomSummary) {
rightHighlightCount = rightRoomSummary.highlightCount
rightNotificationCount = rightRoomSummary.notificationCount
rightTimestamp = rightRoomSummary.lastMessage?.originServerTs ?: 0
}
if (leftRoomSummary?.lastMessage == null) {
retValue = 1
} else if (rightRoomSummary?.lastMessage == null) {
retValue = -1
} else if (rightHighlightCount > 0 && leftHighlightCount == 0) {
retValue = 1
} else if (rightHighlightCount == 0 && leftHighlightCount > 0) {
retValue = -1
} else if (rightNotificationCount > 0 && leftNotificationCount == 0) {
retValue = 1
} else if (rightNotificationCount == 0 && leftNotificationCount > 0) {
retValue = -1
} else {
val deltaTimestamp = rightTimestamp - leftTimestamp
if (deltaTimestamp > 0) {
retValue = 1
} else if (deltaTimestamp < 0) {
retValue = -1
} else {
retValue = 0
}
}
return retValue
}
}

View File

@ -1,124 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.features.home.room.list
import androidx.annotation.StringRes
import com.airbnb.epoxy.TypedEpoxyController
import im.vector.matrix.android.api.session.room.model.RoomSummary
import im.vector.riotredesign.R
import im.vector.riotredesign.core.resources.StringProvider
class RoomSummaryController(private val stringProvider: StringProvider
) : TypedEpoxyController<RoomListViewState>() {
private var isFavoriteRoomsExpanded = true
private var isDirectRoomsExpanded = false
private var isGroupRoomsExpanded = false
private var isLowPriorityRoomsExpanded = false
private var isServerNoticeRoomsExpanded = false
var callback: Callback? = null
override fun buildModels(viewState: RoomListViewState) {
val roomSummaries = viewState.asyncRooms()
val favourites = roomSummaries?.favourites ?: emptyList()
buildRoomCategory(viewState, favourites, R.string.room_list_favourites, isFavoriteRoomsExpanded) {
isFavoriteRoomsExpanded = !isFavoriteRoomsExpanded
}
if (isFavoriteRoomsExpanded) {
buildRoomModels(favourites, viewState.selectedRoomId)
}
val directRooms = roomSummaries?.directRooms ?: emptyList()
buildRoomCategory(viewState, directRooms, R.string.room_list_direct, isDirectRoomsExpanded) {
isDirectRoomsExpanded = !isDirectRoomsExpanded
}
if (isDirectRoomsExpanded) {
buildRoomModels(directRooms, viewState.selectedRoomId)
}
val groupRooms = roomSummaries?.groupRooms ?: emptyList()
buildRoomCategory(viewState, groupRooms, R.string.room_list_group, isGroupRoomsExpanded) {
isGroupRoomsExpanded = !isGroupRoomsExpanded
}
if (isGroupRoomsExpanded) {
buildRoomModels(groupRooms, viewState.selectedRoomId)
}
val lowPriorities = roomSummaries?.lowPriorities ?: emptyList()
buildRoomCategory(viewState, lowPriorities, R.string.room_list_low_priority, isLowPriorityRoomsExpanded) {
isLowPriorityRoomsExpanded = !isLowPriorityRoomsExpanded
}
if (isLowPriorityRoomsExpanded) {
buildRoomModels(lowPriorities, viewState.selectedRoomId)
}
val serverNotices = roomSummaries?.serverNotices ?: emptyList()
buildRoomCategory(viewState, serverNotices, R.string.room_list_system_alert, isServerNoticeRoomsExpanded) {
isServerNoticeRoomsExpanded = !isServerNoticeRoomsExpanded
}
if (isServerNoticeRoomsExpanded) {
buildRoomModels(serverNotices, viewState.selectedRoomId)
}
}
private fun buildRoomCategory(viewState: RoomListViewState, summaries: List<RoomSummary>, @StringRes titleRes: Int, isExpanded: Boolean, mutateExpandedState: () -> Unit) {
//TODO should add some business logic later
val unreadCount = if (summaries.isEmpty()) {
0
} else {
summaries.map { it.notificationCount }.reduce { acc, i -> acc + i }
}
val showHighlighted = summaries.any { it.highlightCount > 0 }
RoomCategoryItem(
title = stringProvider.getString(titleRes).toUpperCase(),
isExpanded = isExpanded,
unreadCount = unreadCount,
showHighlighted = showHighlighted,
listener = {
mutateExpandedState()
setData(viewState)
}
)
.id(titleRes)
.addTo(this)
}
private fun buildRoomModels(summaries: List<RoomSummary>, selectedRoomId: String?) {
summaries.forEach { roomSummary ->
val unreadCount = roomSummary.notificationCount
val showHighlighted = roomSummary.highlightCount > 0
val isSelected = roomSummary.roomId == selectedRoomId
RoomSummaryItem(
roomName = roomSummary.displayName,
avatarUrl = roomSummary.avatarUrl,
isSelected = isSelected,
showHighlighted = showHighlighted,
unreadCount = unreadCount,
listener = { callback?.onRoomSelected(roomSummary) }
)
.id(roomSummary.roomId)
.addTo(this)
}
}
interface Callback {
fun onRoomSelected(room: RoomSummary)
}
}

View File

@ -1,48 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.features.home.room.list
import android.widget.ImageView
import android.widget.TextView
import im.vector.riotredesign.R
import im.vector.riotredesign.core.epoxy.KotlinModel
import im.vector.riotredesign.core.platform.CheckableFrameLayout
import im.vector.riotredesign.features.home.AvatarRenderer
data class RoomSummaryItem(
val roomName: CharSequence,
val avatarUrl: String?,
val isSelected: Boolean,
val unreadCount: Int,
val showHighlighted: Boolean,
val listener: (() -> Unit)? = null
) : KotlinModel(R.layout.item_room) {
private val unreadCounterBadgeView by bind<UnreadCounterBadgeView>(R.id.roomUnreadCounterBadgeView)
private val titleView by bind<TextView>(R.id.roomNameView)
private val avatarImageView by bind<ImageView>(R.id.roomAvatarImageView)
private val rootView by bind<CheckableFrameLayout>(R.id.itemRoomLayout)
override fun bind() {
unreadCounterBadgeView.render(unreadCount, showHighlighted)
rootView.isChecked = isSelected
rootView.setOnClickListener { listener?.invoke() }
titleView.text = roomName
AvatarRenderer.render(avatarUrl, roomName.toString(), avatarImageView)
}
}

View File

@ -1,117 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.features.login
import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.view.View
import android.widget.Toast
import arrow.core.Try
import com.jakewharton.rxbinding2.widget.RxTextView
import im.vector.matrix.android.api.Matrix
import im.vector.matrix.android.api.MatrixCallback
import im.vector.matrix.android.api.auth.data.HomeServerConnectionConfig
import im.vector.matrix.android.api.session.Session
import im.vector.riotredesign.R
import im.vector.riotredesign.core.platform.RiotActivity
import im.vector.riotredesign.features.home.HomeActivity
import io.reactivex.Observable
import io.reactivex.functions.Function3
import io.reactivex.rxkotlin.subscribeBy
import kotlinx.android.synthetic.main.activity_login.*
private const val DEFAULT_HOME_SERVER_URI = "https://matrix.org"
private const val DEFAULT_IDENTITY_SERVER_URI = "https://vector.im"
private const val DEFAULT_ANTIVIRUS_SERVER_URI = "https://matrix.org"
class LoginActivity : RiotActivity() {
private val authenticator = Matrix.getInstance().authenticator()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_login)
setupAuthButton()
homeServerField.setText(DEFAULT_HOME_SERVER_URI)
}
private fun authenticate() {
val login = loginField.text?.trim().toString()
val password = passwordField.text?.trim().toString()
buildHomeServerConnectionConfig().fold(
{ Toast.makeText(this@LoginActivity, "Authenticate failure: $it", Toast.LENGTH_LONG).show() },
{ authenticateWith(it, login, password) }
)
}
private fun authenticateWith(homeServerConnectionConfig: HomeServerConnectionConfig, login: String, password: String) {
progressBar.visibility = View.VISIBLE
authenticator.authenticate(homeServerConnectionConfig, login, password, object : MatrixCallback<Session> {
override fun onSuccess(data: Session) {
Matrix.getInstance().currentSession = data
Matrix.getInstance().currentSession.open()
goToHome()
}
override fun onFailure(failure: Throwable) {
progressBar.visibility = View.GONE
Toast.makeText(this@LoginActivity, "Authenticate failure: $failure", Toast.LENGTH_LONG).show()
}
})
}
private fun buildHomeServerConnectionConfig(): Try<HomeServerConnectionConfig> {
return Try {
val homeServerUri = homeServerField.text?.trim().toString()
HomeServerConnectionConfig.Builder()
.withHomeServerUri(homeServerUri)
.withIdentityServerUri(DEFAULT_IDENTITY_SERVER_URI)
.withAntiVirusServerUri(DEFAULT_ANTIVIRUS_SERVER_URI)
.build()
}
}
private fun setupAuthButton() {
Observable
.combineLatest(
RxTextView.textChanges(loginField).map { it.trim().isNotEmpty() },
RxTextView.textChanges(passwordField).map { it.trim().isNotEmpty() },
RxTextView.textChanges(homeServerField).map { it.trim().isNotEmpty() },
Function3<Boolean, Boolean, Boolean, Boolean> { isLoginNotEmpty, isPasswordNotEmpty, isHomeServerNotEmpty ->
isLoginNotEmpty && isPasswordNotEmpty && isHomeServerNotEmpty
}
)
.subscribeBy { authenticateButton.isEnabled = it }
.disposeOnDestroy()
authenticateButton.setOnClickListener { authenticate() }
}
private fun goToHome() {
val intent = HomeActivity.newIntent(this)
startActivity(intent)
finish()
}
companion object {
fun newIntent(context: Context): Intent {
return Intent(context, LoginActivity::class.java)
}
}
}

View File

@ -1,101 +0,0 @@
/*
* Copyright 2019 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.riotredesign.features.media
import android.media.ExifInterface
import android.widget.ImageView
import im.vector.matrix.android.api.Matrix
import im.vector.matrix.android.api.session.content.ContentUrlResolver
import im.vector.riotredesign.core.glide.GlideApp
object MediaContentRenderer {
data class Data(
val url: String?,
val height: Int?,
val maxHeight: Int,
val width: Int?,
val maxWidth: Int,
val orientation: Int?,
val rotation: Int?
)
enum class Mode {
FULL_SIZE,
THUMBNAIL
}
fun render(data: Data, mode: Mode, imageView: ImageView) {
val (width, height) = processSize(data, mode)
imageView.layoutParams.height = height
imageView.layoutParams.width = width
val contentUrlResolver = Matrix.getInstance().currentSession.contentUrlResolver()
val resolvedUrl = when (mode) {
Mode.FULL_SIZE -> contentUrlResolver.resolveFullSize(data.url)
Mode.THUMBNAIL -> contentUrlResolver.resolveThumbnail(data.url, width, height, ContentUrlResolver.ThumbnailMethod.SCALE)
}
?: return
GlideApp
.with(imageView)
.load(resolvedUrl)
.thumbnail(0.3f)
.into(imageView)
}
private fun processSize(data: Data, mode: Mode): Pair<Int, Int> {
val maxImageWidth = data.maxWidth
val maxImageHeight = data.maxHeight
val rotationAngle = data.rotation ?: 0
val orientation = data.orientation ?: ExifInterface.ORIENTATION_NORMAL
var width = data.width ?: maxImageWidth
var height = data.height ?: maxImageHeight
var finalHeight = -1
var finalWidth = -1
// if the image size is known
// compute the expected height
if (width > 0 && height > 0) {
// swap width and height if the image is side oriented
if (rotationAngle == 90 || rotationAngle == 270) {
val tmp = width
width = height
height = tmp
} else if (orientation == ExifInterface.ORIENTATION_ROTATE_90 || orientation == ExifInterface.ORIENTATION_ROTATE_270) {
val tmp = width
width = height
height = tmp
}
if (mode == Mode.FULL_SIZE) {
finalHeight = height
finalWidth = width
} else {
finalHeight = Math.min(maxImageWidth * height / width, maxImageHeight)
finalWidth = finalHeight * width / height
}
}
// ensure that some values are properly initialized
if (finalHeight < 0) {
finalHeight = maxImageHeight
}
if (finalWidth < 0) {
finalWidth = maxImageWidth
}
return Pair(finalWidth, finalHeight)
}
}

View File

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/black" android:state_checked="true" />
<item android:color="@color/bluey_grey_two" />
</selector>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 404 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 335 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 266 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 257 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

View File

@ -1,34 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="108dp"
android:height="108dp"
android:viewportHeight="108"
android:viewportWidth="108">
<path
android:fillType="evenOdd"
android:pathData="M32,64C32,64 38.39,52.99 44.13,50.95C51.37,48.37 70.14,49.57 70.14,49.57L108.26,87.69L108,109.01L75.97,107.97L32,64Z"
android:strokeColor="#00000000"
android:strokeWidth="1">
<aapt:attr name="android:fillColor">
<gradient
android:endX="78.5885"
android:endY="90.9159"
android:startX="48.7653"
android:startY="61.0927"
android:type="linear">
<item
android:color="#44000000"
android:offset="0.0" />
<item
android:color="#00000000"
android:offset="1.0" />
</gradient>
</aapt:attr>
</path>
<path
android:fillColor="#FFFFFF"
android:fillType="nonZero"
android:pathData="M66.94,46.02L66.94,46.02C72.44,50.07 76,56.61 76,64L32,64C32,56.61 35.56,50.11 40.98,46.06L36.18,41.19C35.45,40.45 35.45,39.3 36.18,38.56C36.91,37.81 38.05,37.81 38.78,38.56L44.25,44.05C47.18,42.57 50.48,41.71 54,41.71C57.48,41.71 60.78,42.57 63.68,44.05L69.11,38.56C69.84,37.81 70.98,37.81 71.71,38.56C72.44,39.3 72.44,40.45 71.71,41.19L66.94,46.02ZM62.94,56.92C64.08,56.92 65,56.01 65,54.88C65,53.76 64.08,52.85 62.94,52.85C61.8,52.85 60.88,53.76 60.88,54.88C60.88,56.01 61.8,56.92 62.94,56.92ZM45.06,56.92C46.2,56.92 47.13,56.01 47.13,54.88C47.13,53.76 46.2,52.85 45.06,52.85C43.92,52.85 43,53.76 43,54.88C43,56.01 43.92,56.92 45.06,56.92Z"
android:strokeColor="#00000000"
android:strokeWidth="1" />
</vector>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 509 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 423 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 770 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 550 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 728 B

View File

@ -1,16 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
android:opacity="opaque">
<item>
<shape>
<solid android:color="@android:color/white" />
</shape>
</item>
<item android:gravity="top">
<shape android:shape="rectangle">
<size android:height="80dp" />
<solid android:color="?colorPrimary" />
</shape>
</item>
</layer-list>

View File

@ -1,13 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true">
<shape android:shape="oval">
<solid android:color="@android:color/transparent" />
<stroke android:width="3dp" android:color="@color/pale_teal" />
</shape>
</item>
<item android:drawable="@android:color/transparent" />
</selector>

View File

@ -1,170 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportHeight="108"
android:viewportWidth="108">
<path
android:fillColor="#26A69A"
android:pathData="M0,0h108v108h-108z" />
<path
android:fillColor="#00000000"
android:pathData="M9,0L9,108"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M19,0L19,108"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M29,0L29,108"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M39,0L39,108"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M49,0L49,108"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M59,0L59,108"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M69,0L69,108"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M79,0L79,108"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M89,0L89,108"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M99,0L99,108"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M0,9L108,9"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M0,19L108,19"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M0,29L108,29"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M0,39L108,39"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M0,49L108,49"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M0,59L108,59"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M0,69L108,69"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M0,79L108,79"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M0,89L108,89"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M0,99L108,99"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M19,29L89,29"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M19,39L89,39"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M19,49L89,49"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M19,59L89,59"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M19,69L89,69"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M19,79L89,79"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M29,19L29,89"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M39,19L39,89"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M49,19L49,89"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M59,19L59,89"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M69,19L69,89"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M79,19L79,89"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
</vector>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

View File

@ -1,96 +0,0 @@
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="24dp">
<ImageView
android:id="@+id/logoImageView"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:src="@drawable/logo_login" />
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:hint="Username">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/loginField"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textEmailAddress"
android:maxLines="1" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:hint="Password">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/passwordField"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPassword"
android:maxLines="1" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:hint="Homeserver url">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/homeServerField"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textUri"
android:maxLines="1" />
</com.google.android.material.textfield.TextInputLayout>
</LinearLayout>
</ScrollView>
<ProgressBar
android:id="@+id/progressBar"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_centerInParent="true"
android:layout_margin="8dp"
android:visibility="gone"
app:layout_constraintBottom_toTopOf="@+id/authenticateButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/authenticateButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:text="Authenticate"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -1,15 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<im.vector.riotredesign.core.platform.StateView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/stateView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/dark">
<com.airbnb.epoxy.EpoxyRecyclerView
android:id="@+id/epoxyRecyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</im.vector.riotredesign.core.platform.StateView>

View File

@ -1,125 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="0dp"
android:layout_height="?actionBarSize"
android:background="?attr/colorPrimary"
app:contentInsetStartWithNavigation="0dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/toolbarAvatarImageView"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginBottom="8dp"
android:layout_marginTop="8dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:src="@tools:sample/avatars" />
<TextView
android:id="@+id/toolbarTitleView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:ellipsize="end"
android:maxLines="1"
android:textSize="18sp"
app:layout_constraintBottom_toTopOf="@+id/toolbarSubtitleView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toEndOf="@+id/toolbarAvatarImageView"
app:layout_constraintTop_toTopOf="parent"
tools:text="@tools:sample/full_names" />
<TextView
android:id="@+id/toolbarSubtitleView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:ellipsize="end"
android:maxLines="1"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toEndOf="@+id/toolbarAvatarImageView"
app:layout_constraintTop_toBottomOf="@+id/toolbarTitleView"
tools:text="@tools:sample/date/day_of_week" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.appcompat.widget.Toolbar>
<com.airbnb.epoxy.EpoxyRecyclerView
android:id="@+id/recyclerView"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@+id/composerDivider"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/toolbar" />
<View
android:id="@+id/composerDivider"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/pale_grey"
app:layout_constraintBottom_toTopOf="@+id/composerLayout" />
<RelativeLayout
android:id="@+id/composerLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent">
<ImageButton
android:id="@+id/sendButton"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_alignParentEnd="true"
android:background="?android:attr/selectableItemBackground"
android:src="@drawable/ic_send_white"
android:tint="?attr/colorAccent"
android:layout_alignParentRight="true"
android:layout_centerVertical="true" />
<EditText
android:id="@+id/composerEditText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_toLeftOf="@id/sendButton"
android:background="@android:color/transparent"
android:gravity="center_vertical"
android:hint="Send a message"
android:minHeight="48dp"
android:nextFocusLeft="@id/composerEditText"
android:nextFocusUp="@id/composerEditText"
android:padding="16dp"
android:textSize="14sp" />
</RelativeLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -1,48 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/pale_grey">
<EditText
android:id="@+id/filterRoomView"
android:layout_width="0dp"
android:layout_height="32dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="16dp"
android:layout_marginBottom="8dp"
android:background="@drawable/bg_search_edit_text"
android:drawableLeft="@drawable/ic_search_white"
android:drawablePadding="8dp"
android:drawableTint="#9fa9ba"
android:hint="Filter by name..."
android:lines="1"
android:paddingLeft="8dp"
app:layout_constraintBottom_toTopOf="@+id/stateView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<im.vector.riotredesign.core.platform.StateView
android:id="@+id/stateView"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginEnd="0dp"
android:layout_marginBottom="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/filterRoomView">
<com.airbnb.epoxy.EpoxyRecyclerView
android:id="@+id/epoxyRecyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</im.vector.riotredesign.core.platform.StateView>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -1,22 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<im.vector.riotredesign.core.platform.CheckableFrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/itemGroupLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:clickable="true"
android:focusable="true"
android:padding="8dp">
<ImageView
android:id="@+id/groupAvatarImageView"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_gravity="center"
android:duplicateParentState="true"
android:foreground="@drawable/fg_group_item"
tools:src="@tools:sample/avatars" />
</im.vector.riotredesign.core.platform.CheckableFrameLayout>

View File

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<ProgressBar xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/progressBar"
android:layout_width="match_parent"
android:layout_height="80dp"
android:padding="16dp" />

View File

@ -1,67 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<im.vector.riotredesign.core.platform.CheckableFrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/itemRoomLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_room_item"
android:clickable="true"
android:focusable="true"
android:foreground="?attr/selectableItemBackground"
android:paddingLeft="8dp"
android:paddingRight="16dp">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:duplicateParentState="true"
android:minHeight="48dp">
<ImageView
android:id="@+id/roomAvatarImageView"
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_marginStart="16dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:src="@tools:sample/avatars" />
<TextView
android:id="@+id/roomNameView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:duplicateParentState="true"
android:textColor="@color/color_room_title"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/roomUnreadCounterBadgeView"
app:layout_constraintStart_toEndOf="@id/roomAvatarImageView"
app:layout_constraintTop_toTopOf="parent"
tools:text="@tools:sample/full_names" />
<im.vector.riotredesign.features.home.room.list.UnreadCounterBadgeView
android:id="@+id/roomUnreadCounterBadgeView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:minWidth="24dp"
android:minHeight="24dp"
android:paddingLeft="4dp"
android:paddingRight="4dp"
android:textColor="@android:color/white"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:background="@drawable/bg_unread_highlight"
tools:text="115" />
</androidx.constraintlayout.widget.ConstraintLayout>
</im.vector.riotredesign.core.platform.CheckableFrameLayout>

View File

@ -1,63 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/roomCategoryRootView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackground"
android:clickable="true"
android:focusable="true"
android:gravity="center_vertical"
android:paddingLeft="16dp"
android:paddingTop="8dp"
android:paddingRight="8dp"
android:paddingBottom="8dp"
tools:background="@color/pale_grey">
<TextView
android:id="@+id/roomCategoryTitleView"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginEnd="8dp"
android:drawableLeft="@drawable/ic_expand_more_white"
android:drawableTint="@color/bluey_grey_two"
android:gravity="center_vertical"
android:text="DIRECT MESSAGES"
android:textColor="@color/bluey_grey_two"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/roomCategoryUnreadCounterBadgeView"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<im.vector.riotredesign.features.home.room.list.UnreadCounterBadgeView
android:id="@+id/roomCategoryUnreadCounterBadgeView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:minWidth="24dp"
android:minHeight="24dp"
android:paddingLeft="4dp"
android:paddingRight="4dp"
android:textColor="@android:color/white"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/roomCategoryAddButton"
app:layout_constraintTop_toTopOf="parent"
tools:background="@drawable/bg_unread_highlight"
tools:text="4" />
<ImageView
android:id="@+id/roomCategoryAddButton"
android:layout_width="40dp"
android:layout_height="40dp"
android:scaleType="centerInside"
android:src="@drawable/ic_add_circle_white"
android:tint="@color/bluey_grey_two"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -1,52 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="8dp">
<View
android:id="@+id/itemDayLineViewLeft"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_marginBottom="8dp"
android:layout_marginEnd="32dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:background="@color/pale_grey_two"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/itemDayTextView"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/itemDayTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:textColor="@color/light_grey_blue"
android:textSize="15sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="@tools:sample/date/day_of_week" />
<View
android:id="@+id/itemDayLineViewRight"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="32dp"
android:layout_marginTop="8dp"
android:background="@color/pale_grey_two"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/itemDayTextView"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -1,64 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="16dp"
android:paddingRight="16dp">
<ImageView
android:id="@+id/messageAvatarImageView"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:src="@tools:sample/avatars" />
<TextView
android:id="@+id/messageMemberNameView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="64dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:ellipsize="end"
android:maxLines="1"
android:textSize="15sp"
app:layout_constraintBottom_toTopOf="@+id/toolbarSubtitleView"
app:layout_constraintEnd_toStartOf="@+id/messageTimeView"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="@tools:sample/full_names" />
<TextView
android:id="@+id/messageTimeView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:textColor="@color/brown_grey"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintTop_toTopOf="@id/messageMemberNameView"
tools:text="@tools:sample/date/hhmm" />
<ImageView
android:id="@+id/messageImageView"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="64dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="32dp"
android:layout_marginBottom="8dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/messageMemberNameView" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -1,63 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="16dp"
android:paddingRight="16dp">
<ImageView
android:id="@+id/messageAvatarImageView"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:src="@tools:sample/avatars" />
<TextView
android:id="@+id/messageMemberNameView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="64dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:ellipsize="end"
android:maxLines="1"
android:textSize="15sp"
app:layout_constraintBottom_toTopOf="@+id/toolbarSubtitleView"
app:layout_constraintEnd_toStartOf="@+id/messageTimeView"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="@tools:sample/full_names" />
<TextView
android:id="@+id/messageTimeView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:textColor="@color/brown_grey"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintTop_toTopOf="@id/messageMemberNameView"
tools:text="@tools:sample/date/hhmm" />
<TextView
android:id="@+id/messageTextView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="64dp"
android:layout_marginBottom="8dp"
android:textColor="@color/dark_grey"
android:textSize="14sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/messageMemberNameView"
tools:text="Alright finished work, heading there in about 20 mins…Ping me when youre outside" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -1,74 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/read_receipt_avatars_list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_marginEnd="12dp"
android:layout_marginRight="12dp"
android:orientation="horizontal">
<TextView
android:id="@+id/message_more_than_expected"
android:layout_width="20dp"
android:layout_height="match_parent"
android:gravity="center"
android:textSize="9sp"
tools:text="999+" />
<ImageView
android:id="@+id/message_avatar_receipt_5"
android:layout_width="12dp"
android:layout_height="12dp"
android:layout_marginEnd="6dp"
android:layout_marginRight="6dp"
android:adjustViewBounds="true"
android:scaleType="centerCrop" />
<ImageView
android:id="@+id/message_avatar_receipt_4"
android:layout_width="12dp"
android:layout_height="12dp"
android:layout_marginEnd="6dp"
android:layout_marginRight="6dp"
android:adjustViewBounds="true"
android:scaleType="centerCrop" />
<ImageView
android:id="@+id/message_avatar_receipt_3"
android:layout_width="12dp"
android:layout_height="12dp"
android:layout_marginEnd="6dp"
android:layout_marginRight="6dp"
android:adjustViewBounds="true"
android:scaleType="centerCrop" />
<ImageView
android:id="@+id/message_avatar_receipt_2"
android:layout_width="12dp"
android:layout_height="12dp"
android:layout_marginEnd="6dp"
android:layout_marginRight="6dp"
android:adjustViewBounds="true"
android:scaleType="centerCrop" />
<ImageView
android:id="@+id/message_avatar_receipt_1"
android:layout_width="19dp"
android:layout_height="12dp"
android:layout_marginEnd="6dp"
android:layout_marginRight="6dp"
android:adjustViewBounds="true"
android:scaleType="centerCrop" />
</LinearLayout>
</RelativeLayout>

View File

@ -1,73 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="40dp"
android:padding="8dp"
tools:parentTag="android.widget.FrameLayout">
<ProgressBar
android:id="@+id/progressBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" />
<LinearLayout
android:id="@+id/errorView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="8dp">
<TextView
android:id="@+id/errorMessageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:textColor="@android:color/black"
android:textSize="16sp"
tools:text="Une erreur est survenue" />
<Button
android:id="@+id/errorRetryView"
android:layout_width="190dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="8dp"
android:text="@string/global_retry"
android:textColor="@android:color/white" />
</LinearLayout>
<LinearLayout
android:id="@+id/emptyView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="8dp">
<TextView
android:id="@+id/emptyMessageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:textColor="@android:color/black"
android:textSize="16sp" />
<ImageView
android:id="@+id/emptyImageView"
android:layout_width="190dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="8dp" />
</LinearLayout>
</merge>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

Some files were not shown because too many files have changed in this diff Show More