Commit Graph

231 Commits

Author SHA1 Message Date
ganfra
946ae32cd8 Let the app be compatible with android 16 2019-01-24 16:30:05 +01:00
ganfra
7c4ac7b53a Media : start to refact renderer to be more generic 2019-01-23 20:29:47 +01:00
ganfra
f9ca8f35bc Fix MessageFileContent crash (no filename) 2019-01-23 16:25:51 +01:00
ganfra
cc4c1cf308 Content : make content url resolution aware of homeserver url 2019-01-23 16:25:24 +01:00
ganfra
1d400180bc Timeline : start to handle media images/gif. Still a lot to do, but it's a first step. 2019-01-22 18:43:15 +01:00
ganfra
32b29c47e7 Hot fix : makes room topic optional as it may be null. 2019-01-21 18:31:19 +01:00
ganfra
dbb812ad84 Message type : add data classes for all the types 2019-01-21 18:16:15 +01:00
ganfra
57db4086cb Start adding javadoc on public api of the SDK and move some files. 2019-01-18 16:26:17 +01:00
ganfra
9914939045 Add copyright to source code 2019-01-18 11:12:08 +01:00
ganfra
4a6b28aca1 Merge branch 'feature/timeline_events' into develop 2019-01-17 15:33:13 +01:00
ganfra
c20cbf7110 Androidx : set paging to 2.0.0 as it seems better at the moment 2019-01-17 15:04:57 +01:00
ganfra
ac2d20ad3f Migration androidx : first commit where it compiles. Updates some libs and android studio version in the same time. 2019-01-16 19:25:43 +01:00
ganfra
06dd3760c5 Timeline : start handling some state events display 2019-01-15 15:47:03 +01:00
ganfra
b2cdeb87f4 Fix some timeline issues and rename EnrichedEvent to TimelineEvent as it's only used in this context. 2019-01-14 16:46:54 +01:00
ganfra
34e08705dd Timeline : still trying to adjust PagedList options 2019-01-14 16:46:54 +01:00
ganfra
d7de986365 Timeline : try using initialLoadKey to open PagedList around an event. Still need to scroll to the item. 2019-01-14 16:46:54 +01:00
ganfra
922609cb57 Timeline : try to get a better PagedList/Epoxy integration. Still need to be refined. 2019-01-14 16:46:54 +01:00
ganfra
de90cbe73e Timeline : fix merging issues 2019-01-14 16:46:54 +01:00
ganfra
1269715b5c Timeline : introduce timeline data class to allow listening for isLoadingForward and isLoadingBackward 2019-01-14 16:46:54 +01:00
ganfra
f5d64a5707 RoomSummary : clean some old code 2019-01-14 16:46:54 +01:00
ganfra
7669a94a64 Introduce retry on task executor and use it for pagination 2019-01-14 16:46:54 +01:00
ganfra
d288fb7c9c Timeline : improve scrolling performances 2019-01-14 16:46:54 +01:00
ganfra
84645c17c8 Makes tests compile 2019-01-14 16:46:54 +01:00
ganfra
e9737dff75 Add roomId to EventEntity as it makes queries a lot faster and fixes performance issues. 2019-01-14 16:46:54 +01:00
ganfra
fd06606c45 Room : load room members is totally off the main thread now 2019-01-14 16:46:54 +01:00
ganfra
5a75e3db81 Clean some of the session code API 2019-01-14 16:46:54 +01:00
ganfra
aec620fb50 Move some files 2018-12-20 16:27:59 +01:00
ganfra
3713e71c8e Refactor Matrix instance creation (using ContentProvider) + isolate Koin in matrix 2018-12-20 15:44:01 +01:00
ganfra
43dee60b92 Permalink parser should only look for fragment part 2018-12-20 14:13:23 +01:00
ganfra
9b8800ec55 Permalinks : add a parser to get data from permalink (userId, eventId...) 2018-12-19 19:08:30 +01:00
ganfra
fdd4642cbb Use addLinks method on message. Next step is to proceed the url to navigate. 2018-12-19 11:50:44 +01:00
ganfra
58f60eaab4 Start importing permalink classes from old SDK/Riot 2018-12-18 18:43:37 +01:00
ganfra
39ad44e9aa Refactor a bit EnrichedEvent and Content. Metadata will only be used for unexpected data. 2018-12-18 14:46:20 +01:00
ganfra
de4281c954 Clean some dependencies 2018-12-17 23:03:09 +01:00
ganfra
4656429d83 Introduce a localId for event, to avoid blink effect when sending 2018-12-17 18:25:02 +01:00
ganfra
0f667fe6e8 Introduce ContentMapper, allowing to map a content directly without going through an event entity. 2018-12-17 18:24:01 +01:00
ganfra
d9e24558ec Makes task configurable to allow choosing threads 2018-12-17 16:42:22 +01:00
ganfra
faa68f4d52 Start testing timeline. Not working at the moment, have to figure it out. 2018-12-14 19:23:49 +01:00
ganfra
5cc128cbf3 Introduce Task interface and TaskExecutor to centralize task processing and easier testing (replace Request naming) 2018-12-14 19:22:39 +01:00
ganfra
168814149b Update some dependencies 2018-12-13 11:00:50 +01:00
ganfra
14d807232f Finally remove legacy package and clean some files. 2018-12-12 21:54:14 +01:00
ganfra
c8c31172b3 Try to configure okreplay for testing network + start to rework koin modules 2018-12-12 21:15:01 +01:00
ganfra
1d5587c5ba Clean forgotten code 2018-12-12 11:51:29 +01:00
ganfra
17dcbc1cd6 Remove RequestExecutor as name is confusing at the moment. 2018-12-11 18:13:22 +01:00
ganfra
6ee272c376 Chunk : add some tests on merge 2018-12-11 16:39:44 +01:00
ganfra
0266380485 Start introducing tests 2018-12-11 15:36:09 +01:00
ganfra
683305030a Timeline : check isUnlinked before and after merge 2018-12-11 15:35:46 +01:00
ganfra
0611661c46 WIP: Start to make permalink works 2018-11-29 18:35:24 +01:00
ganfra
9f79a5132d Pagination/Permalink : extract persistence logic in a dedicated class 2018-11-29 12:20:09 +01:00
ganfra
c396c2bec7 WIP on chunk merging : required to merge chunks wherever they are (permalink) 2018-11-28 18:28:35 +01:00
ganfra
b3ba542e09 Start to add a flag (isUnlinked) to work with permalink. Still in progress (break state index at the moment) 2018-11-27 22:42:46 +01:00
ganfra
b6728ce9be Clean some DI code 2018-11-27 12:23:15 +01:00
ganfra
580c898447 Revert "Rework injection of monarchy instances (introduce disk and memory)"
This reverts commit af79e1d0b5.
2018-11-27 12:06:40 +01:00
ganfra
af79e1d0b5 Rework injection of monarchy instances (introduce disk and memory) 2018-11-26 17:09:49 +01:00
ganfra
660ba5436b Send messages : add local echo. Maybe add directly to the pagedlist if possible 2018-11-25 16:17:47 +01:00
ganfra
e4c23b757e Timeline : try to fix scroll issues... 2018-11-25 16:17:13 +01:00
ganfra
6fc0d884b2 Timeline UI : try to fix scrolling issues (not perfect but better) 2018-11-22 11:57:39 +01:00
ganfra
bc1462486d State index : rework the algorithm to manage limited chunks and avoid using wrong state events (Int.Min overriding) 2018-11-22 11:20:50 +01:00
ganfra
d250d2bd27 Start introducing a way to open timeline around an event 2018-11-19 15:47:54 +01:00
ganfra
40fa326771 Introduce a displayIndex to keep insertion order when querying... 2018-11-15 19:00:15 +01:00
ganfra
bb0a70f3c0 Clean some code about chunk and fix merging chunk 2018-11-15 18:32:39 +01:00
ganfra
40f981e454 State index management should be ok now 2018-11-15 12:37:59 +01:00
ganfra
18af7c83f3 Introduce state index trying to replicate RoomState logic. WIP #2 2018-11-14 19:32:42 +01:00
ganfra
6115b05d97 Introduce state index trying to replicate RoomState logic. WIP 2018-11-13 19:17:59 +01:00
ganfra
d46ce8245d Add a param "isLast" in chunk as we want live results in timeline... not sure it's the right way to do it. 2018-11-13 10:50:53 +01:00
ganfra
2c6b155794 Revert "Sending : add a basic local echo (still need to define sending states)"
This reverts commit a4abd20e73.
2018-11-13 10:48:05 +01:00
ganfra
a4abd20e73 Sending : add a basic local echo (still need to define sending states) 2018-11-09 18:32:35 +01:00
ganfra
c8a987f932 Clean a bit Worker implementations 2018-11-09 14:06:23 +01:00
ganfra
05e9577b7f Update moshi lib 2018-11-09 09:51:43 +01:00
ganfra
0f34daf3b3 Use WorkManager for process we don't want to loose 2018-11-09 09:43:12 +01:00
ganfra
f050574728 Start sending message : introduce WorkManager. WIP - have to clean 2018-11-08 19:08:14 +01:00
ganfra
b2bb89ac94 Request : add some way to retry + introduce RequestExecutor 2018-11-08 13:56:07 +01:00
ganfra
240b4715fc Add internal keyword where it makes sense 2018-11-08 11:04:40 +01:00
ganfra
7b6092cee1 Fix prevContent for room.member events 2018-11-07 23:11:24 +01:00
ganfra
be8b1287c7 Start handling prune events. WIP 2018-11-07 20:48:44 +01:00
ganfra
cd25232572 Group/Room list : show filtered room when a group is selected 2018-11-07 12:17:10 +01:00
ganfra
3028710122 Add group users API 2018-11-07 10:39:10 +01:00
ganfra
9cc3dc51cc Use Try instead of Either as it makes more sens + add GroupRooms API 2018-11-06 16:39:29 +01:00
ganfra
56bbcf209f Add forgotten annotation for json 2018-11-05 22:11:30 +01:00
ganfra
a3539153ef Quick sync group management (WIP) 2018-11-05 18:33:17 +01:00
ganfra
3199f5dcd6 Sync : handle as a single write transaction 2018-11-05 14:31:45 +01:00
ganfra
b3fe742ec4 Allows authentication by email 2018-11-03 11:49:18 +01:00
ganfra
2885b510ab Clean a bit code of timeline + show not handled events message 2018-11-02 17:37:37 +01:00
ganfra
9c48eba26c Better date management 2018-11-02 11:53:31 +01:00
ganfra
455b860f06 Clean files and check if session is open 2018-11-02 10:30:50 +01:00
ganfra
18c6472f32 Fix some stupid issues 2018-11-01 10:09:27 +01:00
ganfra
536d7c33fe Timeline : change page size 2018-10-31 16:23:02 +01:00
ganfra
6f2beef726 Makes the timeline a little more polished 2018-10-31 13:03:36 +01:00
ganfra
ecf728aef8 Handle epoxy timeline manually : get off the cache at the moment, will need to be improved 2018-10-31 11:22:42 +01:00
ganfra
bc8055c3cd Room list : handle direct rooms 2018-10-30 18:22:29 +01:00
ganfra
cc29a387c7 Start introducing theme on app + branch toolbar to drawer, still requires refinements 2018-10-29 14:57:36 +01:00
ganfra
e5fc1e3412 Introduce MvRx in the application + start managing UI 2018-10-28 19:18:14 +01:00
ganfra
d0a241bd2d Clean a bit code and reorganize files 2018-10-26 15:12:38 +02:00
ganfra
e942b54b56 Adding events to chunk is now faster by using query to check contains and no primary key 2018-10-26 12:48:56 +02:00
ganfra
7ba67d6c2b Deport timeline in his own class 2018-10-25 18:15:22 +02:00
ganfra
2faba01662 Room : load all room members on first room opening 2018-10-25 16:56:32 +02:00
ganfra
7ecbe09661 Handle read receipt saving (still need to find a way to improve insertion ) 2018-10-24 18:11:01 +02:00
ganfra
efceda1def Remove data handler instance 2018-10-23 18:49:00 +02:00
ganfra
88362edece Fix case where heroes is empty (fallback to display name of loaded members) 2018-10-23 18:31:33 +02:00
ganfra
f747d268c9 First attempt to handle room name + make app listen to room summaries instead of rooms 2018-10-23 18:25:28 +02:00
ganfra
279241974a Add a way to enrich event with useful data to be displayed. 2018-10-22 19:36:29 +02:00
ganfra
0f4d15e488 Makes back pagination work. Still need to refine but ok for proto. 2018-10-22 15:24:27 +02:00
ganfra
d71ae02162 Still WIP for Paging integration 2018-10-21 20:27:50 +02:00
ganfra
702abccb38 Continue to work on timeline/pagination. WIP 2018-10-19 20:34:54 +02:00
ganfra
6e3992e70e Fix some issues with sync (bad thread, bad use of last() ) 2018-10-19 17:18:24 +02:00
ganfra
ecbc64082f Use epoxy to render pagedList : WIP 2018-10-19 15:30:40 +02:00
ganfra
e323c858ab Fix compilation issue and rename method 2018-10-19 14:26:13 +02:00
ganfra
0041b6273e Start introducing PagedList management for timeline 2018-10-18 18:38:11 +02:00
ganfra
3f07ed9806 Trying monarchy to manage realm 2018-10-18 11:16:02 +02:00
ganfra
1646687e6d Clean some files 2018-10-17 19:12:39 +02:00
ganfra
00188fde29 Try to have some cleaner hierarchy 2018-10-17 18:21:09 +02:00
ganfra
0f4a62b7bf Remove persistence package for the moment 2018-10-17 15:35:26 +02:00
ganfra
e7f9bf86c6 Pause/Resume sync thread when app goes background/foreground 2018-10-17 15:20:26 +02:00
ganfra
d9f1d3fc85 Sync : save token 2018-10-17 14:46:36 +02:00
ganfra
44eb838610 Manage sync in an infinite thread 2018-10-17 13:59:21 +02:00
ganfra
4904ac894e Start to insert room summaries and listen for changes 2018-10-16 15:52:30 +02:00
ganfra
b79d23ad24 Migrate to realm + better insertion 2018-10-15 19:42:13 +02:00
ganfra
95fd7190e4 Better coroutines management 2018-10-13 11:18:49 +02:00
ganfra
1a967b6326 Sync : start insertion in DB 2018-10-12 19:26:22 +02:00
ganfra
9bef41a13b Start creating database model 2018-10-12 16:50:54 +02:00
ganfra
06456ae3e9 Translate some legacy SDK classes to kotlin 2018-10-11 21:32:23 +02:00
ganfra
11f860533c Start working with RoomState (trying approaches for content parsing) 2018-10-11 20:01:08 +02:00
ganfra
c7ce5c61b1 Clean some files 2018-10-11 17:35:15 +02:00
ganfra
5baaecaea4 Add basic session management to avoid login each time 2018-10-11 09:58:28 +02:00
ganfra
f9e6f4b533 Integration with old SDK - make it works 2018-10-11 09:05:32 +02:00
ganfra
108fae2f28 WIP integration with old SDK (not working) 2018-10-10 19:46:43 +02:00
ganfra
3215fa47d5 Import old SDK as legacy code to replace smoothly 2018-10-09 12:30:01 +02:00
ganfra
058f1704fa Make sync request works as initial sync 2018-10-08 17:52:45 +02:00
ganfra
a7eecdffae Start importing some classes from the developed SDK... + rename packages 2018-10-05 18:14:32 +02:00
ganfra
c4316d5055 Make the sdk targeting android to win time 2018-10-04 15:19:03 +02:00
ganfra
b406e8301a first commit 2018-10-03 17:58:12 +02:00