Add hook to select more photos if the user has granted limited permissions

This commit is contained in:
Vishnu Mohandas 2021-07-01 13:29:46 +05:30
parent 40d5623057
commit 4ff0554936
2 changed files with 29 additions and 12 deletions

View file

@ -170,6 +170,11 @@ class LocalSyncService {
return _prefs.getBool(kHasGrantedPermissionsKey) ?? false;
}
bool hasGrantedLimitedPermissions() {
return _prefs.getString(kPermissionStateKey) ==
PermissionState.limited.toString();
}
Future<void> onPermissionGranted(PermissionState state) async {
await _prefs.setBool(kHasGrantedPermissionsKey, true);
await _prefs.setString(kPermissionStateKey, state.toString());

View file

@ -1,5 +1,8 @@
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:photo_manager/photo_manager.dart';
import 'package:photos/services/local_sync_service.dart';
import 'package:photos/services/sync_service.dart';
import 'package:photos/ui/backup_folder_selection_widget.dart';
class GalleryFooterWidget extends StatelessWidget {
@ -46,22 +49,31 @@ class GalleryFooterWidget extends StatelessWidget {
],
),
onPressed: () async {
showDialog(
context: context,
builder: (context) {
return AlertDialog(
content: const BackupFolderSelectionWidget("preserve"),
backgroundColor: Color.fromRGBO(8, 18, 18, 1),
insetPadding: const EdgeInsets.all(24),
contentPadding: const EdgeInsets.all(24),
);
},
barrierColor: Colors.black.withOpacity(0.85),
);
if (LocalSyncService.instance.hasGrantedLimitedPermissions()) {
await PhotoManager.presentLimited();
SyncService.instance.sync();
} else {
_showBackupFolderSelectionWidget(context);
}
},
),
),
],
);
}
void _showBackupFolderSelectionWidget(BuildContext context) {
showDialog(
context: context,
builder: (context) {
return AlertDialog(
content: const BackupFolderSelectionWidget("preserve"),
backgroundColor: Color.fromRGBO(8, 18, 18, 1),
insetPadding: const EdgeInsets.all(24),
contentPadding: const EdgeInsets.all(24),
);
},
barrierColor: Colors.black.withOpacity(0.85),
);
}
}