5 Commits
Author SHA1 Message Date
l-jonas 6d9009daff Refactor index handler (#104)
* Add base for new database API

* Implement new database API for the android db implementation

* Implement new API for the default database implementation

* Fix compilation errors

* Move IndexHandler to own package

* Move some code out of the IndexHandler

* Fix compilation errors

* Make IndexInfo a data class

* Make FolderStats a data class

* Make FolderInfo a data class

* Move code out of IndexHandler

* Use one transaction per index message

* Start replacing callbacks by BroadcastChannels

* Fix compilation errors

* Replace callbacks by BroadcastChannels

* Remove IndexHandler.folderInfoByFolder

* Move code out of IndexHandler

* Use index update events to notify IndexBrowsers

* Remove preloading from the IndexBrowser

* Use channels to handle index update messages

* Remove the old ExecutorUtils

* Remove functions from the IndexHandler

* Refactor FolderBrowser

* Remove writeAccessLock

* Remove the indexWaitLock

* Send index change events after the transaction

* Remove markActive from the IndexHandler

* Refactor the IndexBrowser

* Fix showing folder content

* Fix document provider integration

* Fix index sequence handling

* Use a LinearLayout as base for folder entries

* Add theoretically showing of the missing index updates

* Move folder stats update events out of the database

* Send index update events when receiving a cluster config

* Fix counting missing index updates

* Send events after the db transaction at handle cluster config

* Handle index updates in batches

* Add logging of time for index processing

* Deduplicate index updates

* Read old records in bulk

* Update folder stats in bulk

* Fix typo

* Modularize IndexElementProcessor

* Prepare bulk FileInfo updates

* Update FileInfo in bulk

* Make logger private

* Use IO dispatcher

* Reconnect better

* Fix detecting new folders

* Dispatch crashes from background threads to the main thread

* Fix random crash on library shutdown

* Add option for more detailed crash reports

* Fix transaction running check and remove old code at DB abstraction

* Sort directory listings
2018-12-02 10:47:09 +01:00
l-jonas 76ddbdd3b4 New connection handling (#71) 2018-11-25 19:10:05 +01:00
l-jonas 5680c6c554 Use stable coroutines (#72)
* Move google to the top of allrepositories.google

This should fix build issues according to https://gitlab.com/fdroid/fdroiddata/issues/1423

* Update Kotlin and use stable coroutines

* Optimize imports

* Optimize imports again

* Remove some imports manually
2018-11-08 16:27:27 +01:00
l-jonas eaf948d3cd Refactor file downloading (#57)
* Make response handling more modular

* Remove shared state of the BlockPuller tasks

* Implement dispatching errors at the file downloading

* Remove unneeded locking

* Count sums as long

* Fix error caused by using notify without syncrhonized

* Add TODOs

* BlockPuller: Add timeout and concurrency limit

* Cache file blocks on disk during downloading

* Read downloaded files block by block

* Add function to delete temp data in bulk

* Implement deleting temp data at download failure

* Fix error in progress reporting

* Fix canceling

* Fix handling timeouts at block requests

* Run auto reformat

* Use status object for the block puller download progress

* Improve file downloading by the SyncthingProvider

* Fix NullPointerException when getting totalFileSize
2018-10-16 14:16:55 -05:00
l-jonas c257a730b0 Include syncthing java (#54)
* Import syncthing-java/master using the import gradle project wizard

* Update buildscripts for the current gradle version

* Add kotlin plugin to the library modules

* Use locale module instead of maven local

* Add Kotlin runtime library to all projects

* Add compiling protocol buffers

* Update module names

* Remove building the old syncthing-java in the CI

* Remove installing the protocol buffer compiler

* Fix building the default repository implementation
2018-10-04 13:25:41 -05:00