- 03 Dec, 2020 1 commit
-
-
Commit e1508444 broke the NLST response handling: getting 1xx response is what we actually expect, not a reason to fail. This was reported as Android-specific bug: vlc-android#644 two years ago and is still not fixed. This is invisible if FTP server supports MSLT feature. Signed-off-by:
Thomas Guillem <thomas@gllm.fr>
-
- 02 Dec, 2020 39 commits
-
-
David authored
No need to link InfoPlist.strings files here.
-
David authored
-
David authored
Also, move the template file, InfoPlist.strings, into Base.lproj to simplify the install rules.
-
InfoPlist.strings: 100% translated Signed-off-by:
David Fuhrmann <dfuhrmann@videolan.org>
-
InfoPlist.strings: 100% translated Signed-off-by:
David Fuhrmann <dfuhrmann@videolan.org>
-
InfoPlist.strings: 100% translated Signed-off-by:
David Fuhrmann <dfuhrmann@videolan.org>
-
InfoPlist.strings: 100% translated Signed-off-by:
David Fuhrmann <dfuhrmann@videolan.org>
-
InfoPlist.strings: 100% translated Signed-off-by:
David Fuhrmann <dfuhrmann@videolan.org>
-
InfoPlist.strings: 100% translated Signed-off-by:
David Fuhrmann <dfuhrmann@videolan.org>
-
InfoPlist.strings: 100% translated Signed-off-by:
David Fuhrmann <dfuhrmann@videolan.org>
-
InfoPlist.strings: 100% translated Signed-off-by:
David Fuhrmann <dfuhrmann@videolan.org>
-
InfoPlist.strings: 100% translated Signed-off-by:
David Fuhrmann <dfuhrmann@videolan.org>
-
InfoPlist.strings: 100% translated Signed-off-by:
David Fuhrmann <dfuhrmann@videolan.org>
-
InfoPlist.strings: 100% translated Signed-off-by:
David Fuhrmann <dfuhrmann@videolan.org>
-
InfoPlist.strings: 100% translated Signed-off-by:
David Fuhrmann <dfuhrmann@videolan.org>
-
InfoPlist.strings: 100% translated Signed-off-by:
David Fuhrmann <dfuhrmann@videolan.org>
-
InfoPlist.strings: 100% translated Signed-off-by:
David Fuhrmann <dfuhrmann@videolan.org>
-
InfoPlist.strings: 100% translated Signed-off-by:
David Fuhrmann <dfuhrmann@videolan.org>
-
InfoPlist.strings: 100% translated Signed-off-by:
David Fuhrmann <dfuhrmann@videolan.org>
-
InfoPlist.strings: 100% translated Signed-off-by:
David Fuhrmann <dfuhrmann@videolan.org>
-
InfoPlist.strings: 100% translated Signed-off-by:
David Fuhrmann <dfuhrmann@videolan.org>
-
InfoPlist.strings: 100% translated Signed-off-by:
David Fuhrmann <dfuhrmann@videolan.org>
-
InfoPlist.strings: 100% translated Signed-off-by:
David Fuhrmann <dfuhrmann@videolan.org>
-
InfoPlist.strings: 100% translated Signed-off-by:
David Fuhrmann <dfuhrmann@videolan.org>
-
InfoPlist.strings: 100% translated Signed-off-by:
David Fuhrmann <dfuhrmann@videolan.org>
-
InfoPlist.strings: 100% translated Signed-off-by:
David Fuhrmann <dfuhrmann@videolan.org>
-
InfoPlist.strings: 100% translated Signed-off-by:
David Fuhrmann <dfuhrmann@videolan.org>
-
This avoids small freezes of the UI thread. Signed-off-by:
Pierre Lamot <pierre@videolabs.io>
-
Make the list cache use an async task for executing the count() call. Signed-off-by:
Pierre Lamot <pierre@videolabs.io>
-
Make the list cache use async tasks to load the data asynchronously (and notify data changes once available). Signed-off-by:
Pierre Lamot <pierre@videolabs.io>
-
This helper will help implementing asynchronous database queries initiated on the UI thread by list models. Signed-off-by:
Pierre Lamot <pierre@videolabs.io>
-
The database queries, initiated by list models, must be executed asynchronously (on a thread different from the UI thread). When a list model is destroyed (from the UI thread), some database queries might still be executing. It would be incorrect for the list model to wait for them (it would block the UI thread), so they must be executed on an external thread pool. Since the queries themselves require the medialib to be executed, they must not outlive it (or the asynchronous code might crash). Therefore, the right scope for executing asynchronous queries is the MediaLib instance. Signed-off-by:
Pierre Lamot <pierre@videolabs.io>
-
When the database queries are executed asynchronously, we must still be able to delete a list model from the main thread without blocking. As a consequence, the data loader must be able to outlive the list model instance; this implies that loading data must not involve calling methods on the list model itself (fetch() and countTotalElements()). Nevertheless, the actual data to load depends on the list model (the content is not the same between a list of videos and a list of albums). To be able to detach the lifetime of the data loader from the one of the list model, make the list models provide loader instances on demand, instead of implementing the loading methods directly. Signed-off-by:
Pierre Lamot <pierre@videolabs.io>
-
Currently, the loader is owned by MLModelCache, but in the future it might outlive it: database queries will be executed from a separate thread, and MLModelCache could be deleted while an asynchronous request is running. To prepare for this change, do not require to receive the loader via a std::unique_ptr (let the cache wrap it). Signed-off-by:
Pierre Lamot <pierre@videolabs.io>
-
Use the new list cache. For now, the cache loader just delegates calls to the model. Signed-off-by:
Pierre Lamot <pierre@videolabs.io>
-
Add a separate class to provide local data caching, independant of the MLBaseModel implementation. It will be used in further commits. Signed-off-by:
Pierre Lamot <pierre@videolabs.io>
-
MLSlidingWindowModel declares two pure virtual methods to be implemented by subclasses: - countTotalElements() - fetch() The query parameters to use were implicitly defined by the class fields. Instead, pass them explicitly. This paves the way to implement a separate cache and execute queries from a separate thread. Signed-off-by:
Pierre Lamot <pierre@videolabs.io>
-
The count is initialized by a call to rowCount(), which must be called before calling item(). Signed-off-by:
Pierre Lamot <pierre@videolabs.io>
-
Signed-off-by:
Pierre Lamot <pierre@videolabs.io>
-