Add hook to select more photos if the user has granted limited permissions
This commit is contained in:
parent
40d5623057
commit
4ff0554936
|
@ -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());
|
||||
|
|
|
@ -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),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue