Update to new face search API
This commit is contained in:
parent
d232780fc2
commit
7c75093b15
5 changed files with 19 additions and 14 deletions
|
@ -114,13 +114,14 @@ class FileDB {
|
|||
return _convertToFiles(results);
|
||||
}
|
||||
|
||||
Future<List<File>> getAllInFolder(int folderId, int offset, int limit) async {
|
||||
Future<List<File>> getAllInFolder(
|
||||
int folderId, int sinceUpdationTime, int limit) async {
|
||||
final db = await instance.database;
|
||||
final results = await db.query(
|
||||
table,
|
||||
where:
|
||||
'$columnRemoteFolderId = ? AND $columnIsDeleted = 0 OFFSET ? LIMIT ?',
|
||||
whereArgs: [folderId, offset, limit],
|
||||
'$columnRemoteFolderId = ? AND $columnIsDeleted = 0 AND $columnUpdationTime > ? LIMIT ?',
|
||||
whereArgs: [folderId, sinceUpdationTime, limit],
|
||||
orderBy: '$columnCreationTime DESC',
|
||||
);
|
||||
return _convertToFiles(results);
|
||||
|
|
|
@ -29,7 +29,7 @@ class FaceSearchManager {
|
|||
}
|
||||
|
||||
Future<List<File>> getFaceSearchResults(
|
||||
Face face, int offset, int limit) async {
|
||||
Face face, int sinceTime, int limit) async {
|
||||
final result = await _dio
|
||||
.get(
|
||||
Configuration.instance.getHttpEndpoint() +
|
||||
|
@ -37,7 +37,7 @@ class FaceSearchManager {
|
|||
face.faceID.toString(),
|
||||
queryParameters: {
|
||||
"limit": limit,
|
||||
"offset": offset,
|
||||
"sinceTime": sinceTime,
|
||||
},
|
||||
options:
|
||||
Options(headers: {"X-Auth-Token": Configuration.instance.getToken()}),
|
||||
|
|
|
@ -15,8 +15,9 @@ class FaceSearchResultsPage extends StatelessWidget {
|
|||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var gallery = Gallery(
|
||||
asyncLoader: (offset, limit) =>
|
||||
_faceSearchManager.getFaceSearchResults(face, offset, limit),
|
||||
asyncLoader: (sinceFile, limit) =>
|
||||
_faceSearchManager.getFaceSearchResults(
|
||||
face, sinceFile == null ? 0 : sinceFile.updationTime, limit),
|
||||
tagPrefix: "face_search_results",
|
||||
selectedFiles: selectedFiles,
|
||||
);
|
||||
|
|
|
@ -16,7 +16,7 @@ import 'package:pull_to_refresh/pull_to_refresh.dart';
|
|||
|
||||
class Gallery extends StatefulWidget {
|
||||
final List<File> Function() syncLoader;
|
||||
final Future<List<File>> Function(int offset, int limit) asyncLoader;
|
||||
final Future<List<File>> Function(File file, int limit) asyncLoader;
|
||||
// TODO: Verify why the event is necessary when calling loader post onRefresh
|
||||
// should have done the job.
|
||||
final Stream<Event> reloadEvent;
|
||||
|
@ -82,7 +82,7 @@ class _GalleryState extends State<Gallery> {
|
|||
return _onDataLoaded();
|
||||
}
|
||||
return FutureBuilder<List<File>>(
|
||||
future: widget.asyncLoader(0, kLoadLimit),
|
||||
future: widget.asyncLoader(null, kLoadLimit),
|
||||
builder: (context, snapshot) {
|
||||
if (snapshot.hasData) {
|
||||
_requiresLoad = false;
|
||||
|
@ -160,14 +160,15 @@ class _GalleryState extends State<Gallery> {
|
|||
|
||||
void _loadNextItems() {
|
||||
_isLoadingNext = true;
|
||||
widget.asyncLoader(_files.length, 100).then((files) {
|
||||
widget.asyncLoader(_files[_files.length - 1], kLoadLimit).then((files) {
|
||||
setState(() {
|
||||
_isLoadingNext = false;
|
||||
_saveScrollPosition();
|
||||
if (files.length == 0) {
|
||||
if (files.length < kLoadLimit) {
|
||||
_hasLoadedAll = true;
|
||||
} else {
|
||||
_files.addAll(files);
|
||||
}
|
||||
_files.addAll(files);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
|
|
@ -21,8 +21,10 @@ class _RemoteFolderPageState extends State<RemoteFolderPage> {
|
|||
@override
|
||||
Widget build(Object context) {
|
||||
var gallery = Gallery(
|
||||
asyncLoader: (offset, limit) =>
|
||||
FileDB.instance.getAllInFolder(widget.folder.id, offset, limit),
|
||||
asyncLoader: (sinceFile, limit) => FileDB.instance.getAllInFolder(
|
||||
widget.folder.id,
|
||||
sinceFile == null ? 0 : sinceFile.updationTime,
|
||||
limit),
|
||||
onRefresh: () => FolderSharingService.instance.syncDiff(widget.folder),
|
||||
tagPrefix: "remote_folder",
|
||||
selectedFiles: _selectedFiles,
|
||||
|
|
Loading…
Add table
Reference in a new issue