Open file on long press

This commit is contained in:
vishnukvmd 2021-09-16 00:39:55 +05:30
parent 7797c3a199
commit d78480a91f
2 changed files with 13 additions and 3 deletions

View file

@ -5,8 +5,10 @@ import 'package:logging/logging.dart';
import 'package:photos/core/constants.dart';
import 'package:photos/models/duplicate_files.dart';
import 'package:photos/models/file.dart';
import 'package:photos/ui/detail_page.dart';
import 'package:photos/ui/thumbnail_widget.dart';
import 'package:photos/utils/data_util.dart';
import 'package:photos/utils/navigation_util.dart';
class DeduplicatePage extends StatefulWidget {
final List<DuplicateFiles> duplicates;
@ -102,7 +104,7 @@ class _DeduplicatePageState extends State<DeduplicatePage> {
}
return Padding(
padding: const EdgeInsets.only(top: 8, bottom: 8),
child: _getGridView(widget.duplicates[index - 1]),
child: _getGridView(widget.duplicates[index - 1], index - 1),
);
},
itemCount: widget.duplicates.length,
@ -124,7 +126,7 @@ class _DeduplicatePageState extends State<DeduplicatePage> {
);
}
Widget _getGridView(DuplicateFiles duplicates) {
Widget _getGridView(DuplicateFiles duplicates, int itemIndex) {
return Column(
children: [
Padding(
@ -144,7 +146,7 @@ class _DeduplicatePageState extends State<DeduplicatePage> {
physics:
NeverScrollableScrollPhysics(), // to disable GridView's scrolling
itemBuilder: (context, index) {
return _buildFile(context, duplicates.files[index], index);
return _buildFile(context, duplicates.files[index], itemIndex);
},
itemCount: duplicates.files.length,
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
@ -168,6 +170,11 @@ class _DeduplicatePageState extends State<DeduplicatePage> {
},
onLongPress: () {
HapticFeedback.lightImpact();
final files = widget.duplicates[index].files;
routeToPage(
context,
DetailPage(DetailPageConfiguration(
files, null, files.indexOf(file), "deduplicate_")));
},
child: Container(
margin: const EdgeInsets.all(2.0),

View file

@ -200,6 +200,9 @@ class _DetailPageState extends State<DetailPage> {
}
void _preloadEntries() async {
if (widget.config.asyncLoader == null) {
return;
}
if (_selectedIndex == 0 && !_hasLoadedTillStart) {
final result = await widget.config.asyncLoader(
_files[_selectedIndex].creationTime + 1,