riverpod_permissions 0.0.1
riverpod_permissions: ^0.0.1 copied to clipboard
A Flutter package for managing permissions with Riverpod.
riverpod_permissions #
A UI wrapper around permission_handler with Riverpod state management. Handles common patterns like re-checking permissions on app resume and redirecting to Settings when permanently denied.
Getting started #
1. Install #
dependencies:
riverpod_permissions: ^0.0.1
2. Platform setup #
Follow the permission_handler setup guide for each platform you target (iOS Info.plist, Android AndroidManifest.xml, etc.).
3. Initialise #
import 'package:riverpod_permissions/riverpod_permissions.dart';
void main() {
RiverpodPermissions.initialize(
RiverpodPermissionsConfig(
brandingWidget: Image.asset('assets/logo.png'),
),
);
runApp(const ProviderScope(child: MyApp()));
}
Features #
Riverpod provider #
Listen to any permission's state with permissionRepositoryProvider:
final contactsPerm = ref.watch(permissionRepositoryProvider(Permission.contacts));
switch (contactsPerm) {
case AsyncData(:final value):
if (value.isAvailable) {
// Permission granted — show feature
}
case AsyncError(:final error):
// Handle error
case _:
// Loading
}
Permission splash screen #
Use convenience constructors for common permissions:
Navigator.of(context).push(
MaterialPageRoute(
builder: (_) => PermissionSplashScreen.contacts(
onComplete: () => Navigator.of(context).pop(),
),
),
);
Or the general constructor for any permission:
PermissionSplashScreen(
permission: Permission.microphone,
permissionName: 'Microphone',
onComplete: () => Navigator.of(context).pop(),
)
Additional information #
- Issues & contributions: GitHub Issues
- License: Apache 2.0