Merge pull request #43 from ente-io/hide_incoming_collections_home_page
Hide incoming collections in main gallery
This commit is contained in:
commit
532e743b08
5 changed files with 63 additions and 41 deletions
|
@ -332,14 +332,14 @@ class FilesDB {
|
|||
}
|
||||
|
||||
Future<FileLoadResult> getAllUploadedFiles(int startTime, int endTime,
|
||||
{int limit, bool asc}) async {
|
||||
int ownerID, {int limit, bool asc}) async {
|
||||
final db = await instance.database;
|
||||
final order = (asc ?? false ? 'ASC' : 'DESC');
|
||||
final results = await db.query(
|
||||
table,
|
||||
where:
|
||||
'$columnCreationTime >= ? AND $columnCreationTime <= ? AND ($columnCollectionID IS NOT NULL AND $columnCollectionID IS NOT -1)',
|
||||
whereArgs: [startTime, endTime],
|
||||
'$columnCreationTime >= ? AND $columnCreationTime <= ? AND $columnOwnerID = ? AND ($columnCollectionID IS NOT NULL AND $columnCollectionID IS NOT -1)',
|
||||
whereArgs: [startTime, endTime, ownerID],
|
||||
orderBy:
|
||||
'$columnCreationTime ' + order + ', $columnModificationTime ' + order,
|
||||
limit: limit,
|
||||
|
@ -348,15 +348,15 @@ class FilesDB {
|
|||
return FileLoadResult(files, files.length == limit);
|
||||
}
|
||||
|
||||
Future<FileLoadResult> getAllLocalAndUploadedFiles(int startTime, int endTime,
|
||||
Future<FileLoadResult> getAllLocalAndUploadedFiles(int startTime, int endTime, int ownerID,
|
||||
{int limit, bool asc}) async {
|
||||
final db = await instance.database;
|
||||
final order = (asc ?? false ? 'ASC' : 'DESC');
|
||||
final results = await db.query(
|
||||
table,
|
||||
where:
|
||||
'$columnCreationTime >= ? AND $columnCreationTime <= ? AND ($columnLocalID IS NOT NULL OR ($columnCollectionID IS NOT NULL AND $columnCollectionID IS NOT -1))',
|
||||
whereArgs: [startTime, endTime],
|
||||
'$columnCreationTime >= ? AND $columnCreationTime <= ? AND ($columnOwnerID IS NULL OR $columnOwnerID = ?) AND ($columnLocalID IS NOT NULL OR ($columnCollectionID IS NOT NULL AND $columnCollectionID IS NOT -1))',
|
||||
whereArgs: [startTime, endTime, ownerID],
|
||||
orderBy:
|
||||
'$columnCreationTime ' + order + ', $columnModificationTime ' + order,
|
||||
limit: limit,
|
||||
|
@ -366,7 +366,7 @@ class FilesDB {
|
|||
}
|
||||
|
||||
Future<FileLoadResult> getImportantFiles(
|
||||
int startTime, int endTime, List<String> paths,
|
||||
int startTime, int endTime, int ownerID, List<String> paths,
|
||||
{int limit, bool asc}) async {
|
||||
final db = await instance.database;
|
||||
String inParam = "";
|
||||
|
@ -378,8 +378,8 @@ class FilesDB {
|
|||
final results = await db.query(
|
||||
table,
|
||||
where:
|
||||
'$columnCreationTime >= ? AND $columnCreationTime <= ? AND (($columnLocalID IS NOT NULL AND $columnDeviceFolder IN ($inParam)) OR ($columnCollectionID IS NOT NULL AND $columnCollectionID IS NOT -1))',
|
||||
whereArgs: [startTime, endTime],
|
||||
'$columnCreationTime >= ? AND $columnCreationTime <= ? AND ($columnOwnerID IS NULL OR $columnOwnerID = ?) AND (($columnLocalID IS NOT NULL AND $columnDeviceFolder IN ($inParam)) OR ($columnCollectionID IS NOT NULL AND $columnCollectionID IS NOT -1))',
|
||||
whereArgs: [startTime, endTime, ownerID],
|
||||
orderBy:
|
||||
'$columnCreationTime ' + order + ', $columnModificationTime ' + order,
|
||||
limit: limit,
|
||||
|
|
|
@ -99,6 +99,7 @@ class _DetailPageState extends State<DetailPage> {
|
|||
appBar: FadingAppBar(
|
||||
_files[_selectedIndex],
|
||||
_onFileDeleted,
|
||||
Configuration.instance.getUserID(),
|
||||
100,
|
||||
key: _appBarKey,
|
||||
),
|
||||
|
|
|
@ -24,10 +24,12 @@ class FadingAppBar extends StatefulWidget implements PreferredSizeWidget {
|
|||
final File file;
|
||||
final Function(File) onFileDeleted;
|
||||
final double height;
|
||||
final int userID;
|
||||
|
||||
FadingAppBar(
|
||||
this.file,
|
||||
this.onFileDeleted,
|
||||
this.userID,
|
||||
this.height, {
|
||||
Key key,
|
||||
}) : super(key: key);
|
||||
|
@ -83,7 +85,10 @@ class FadingAppBarState extends State<FadingAppBar> {
|
|||
|
||||
AppBar _buildAppBar() {
|
||||
final List<Widget> actions = [];
|
||||
actions.add(_getFavoriteButton());
|
||||
// only show fav option for files owned by the user
|
||||
if (widget.file.ownerID == null || widget.file.ownerID == widget.userID) {
|
||||
actions.add(_getFavoriteButton());
|
||||
}
|
||||
actions.add(PopupMenuButton(
|
||||
itemBuilder: (context) {
|
||||
final List<PopupMenuItem> items = [];
|
||||
|
@ -105,22 +110,26 @@ class FadingAppBarState extends State<FadingAppBar> {
|
|||
),
|
||||
);
|
||||
}
|
||||
items.add(
|
||||
PopupMenuItem(
|
||||
value: 2,
|
||||
child: Row(
|
||||
children: [
|
||||
Icon(Platform.isAndroid
|
||||
? Icons.delete_outline
|
||||
: CupertinoIcons.delete),
|
||||
Padding(
|
||||
padding: EdgeInsets.all(8),
|
||||
),
|
||||
Text("delete"),
|
||||
],
|
||||
// only show delete option for files owned by the user
|
||||
if (widget.file.ownerID == null ||
|
||||
widget.file.ownerID == widget.userID) {
|
||||
items.add(
|
||||
PopupMenuItem(
|
||||
value: 2,
|
||||
child: Row(
|
||||
children: [
|
||||
Icon(Platform.isAndroid
|
||||
? Icons.delete_outline
|
||||
: CupertinoIcons.delete),
|
||||
Padding(
|
||||
padding: EdgeInsets.all(8),
|
||||
),
|
||||
Text("delete"),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
);
|
||||
}
|
||||
return items;
|
||||
},
|
||||
onSelected: (value) {
|
||||
|
|
|
@ -100,18 +100,29 @@ class _GalleryState extends State<Gallery> {
|
|||
|
||||
Future<FileLoadResult> _loadFiles({int limit}) async {
|
||||
_logger.info("Loading files");
|
||||
final startTime = DateTime.now().microsecondsSinceEpoch;
|
||||
final result = await widget.asyncLoader(
|
||||
kGalleryLoadStartTime, DateTime.now().microsecondsSinceEpoch,
|
||||
limit: limit);
|
||||
final endTime = DateTime.now().microsecondsSinceEpoch;
|
||||
final duration = Duration(microseconds: endTime - startTime);
|
||||
_logger.info("Time taken to load " +
|
||||
result.files.length.toString() +
|
||||
" files :" +
|
||||
duration.inMilliseconds.toString() +
|
||||
"ms");
|
||||
return result;
|
||||
try {
|
||||
final startTime = DateTime
|
||||
.now()
|
||||
.microsecondsSinceEpoch;
|
||||
final result = await widget.asyncLoader(
|
||||
kGalleryLoadStartTime, DateTime
|
||||
.now()
|
||||
.microsecondsSinceEpoch,
|
||||
limit: limit);
|
||||
final endTime = DateTime
|
||||
.now()
|
||||
.microsecondsSinceEpoch;
|
||||
final duration = Duration(microseconds: endTime - startTime);
|
||||
_logger.info("Time taken to load " +
|
||||
result.files.length.toString() +
|
||||
" files :" +
|
||||
duration.inMilliseconds.toString() +
|
||||
"ms");
|
||||
return result;
|
||||
} catch(e, s) {
|
||||
_logger.severe("failed to load files", e, s);
|
||||
rethrow;
|
||||
}
|
||||
}
|
||||
|
||||
// Collates files and returns `true` if it resulted in a gallery reload
|
||||
|
|
|
@ -5,6 +5,7 @@ import 'package:flutter/cupertino.dart';
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:move_to_background/move_to_background.dart';
|
||||
import 'package:photo_manager/photo_manager.dart';
|
||||
|
@ -45,7 +46,6 @@ import 'package:photos/utils/dialog_util.dart';
|
|||
import 'package:photos/utils/navigation_util.dart';
|
||||
import 'package:receive_sharing_intent/receive_sharing_intent.dart';
|
||||
import 'package:uni_links/uni_links.dart';
|
||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||
|
||||
class HomeWidget extends StatefulWidget {
|
||||
const HomeWidget({Key key}) : super(key: key);
|
||||
|
@ -336,18 +336,19 @@ class _HomeWidgetState extends State<HomeWidget> {
|
|||
final gallery = Gallery(
|
||||
asyncLoader: (creationStartTime, creationEndTime, {limit, asc}) {
|
||||
final importantPaths = Configuration.instance.getPathsToBackUp();
|
||||
final ownerID = Configuration.instance.getUserID();
|
||||
if (importantPaths.isNotEmpty) {
|
||||
return FilesDB.instance.getImportantFiles(
|
||||
creationStartTime, creationEndTime, importantPaths.toList(),
|
||||
creationStartTime, creationEndTime, ownerID, importantPaths.toList(),
|
||||
limit: limit, asc: asc);
|
||||
} else {
|
||||
if (LocalSyncService.instance.hasGrantedLimitedPermissions()) {
|
||||
return FilesDB.instance.getAllLocalAndUploadedFiles(
|
||||
creationStartTime, creationEndTime,
|
||||
creationStartTime, creationEndTime, ownerID,
|
||||
limit: limit, asc: asc);
|
||||
} else {
|
||||
return FilesDB.instance.getAllUploadedFiles(
|
||||
creationStartTime, creationEndTime,
|
||||
creationStartTime, creationEndTime, ownerID,
|
||||
limit: limit, asc: asc);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue