Zeba Academy Permissions
A powerful and simple Flutter permission management package.
Zeba Academy Permissions provides a clean API for handling application permissions with status tracking, permission request flows, multiple permission handling, and customizable permission dialogs.
✨ Features
✅ Permission status tracking
✅ Request single permission
✅ Request multiple permissions
✅ Permission result model
✅ Granted / denied / permanently denied detection
✅ Custom permission dialogs
✅ Open app settings support
✅ Easy integration
✅ Developer-friendly API
📦 Installation
Add this to your pubspec.yaml:
dependencies:
zeba_academy_permissions: latest
Then run:
flutter pub get
🚀 Usage
Import the package:
import 'package:zeba_academy_permissions/zeba_academy_permissions.dart';
import 'package:permission_handler/permission_handler.dart';
Request Permission
Example: Camera permission
final result =
await ZebaPermissionManager.request(
Permission.camera,
);
if (result.isGranted) {
print("Camera permission granted");
} else {
print("Permission denied");
}
Check Permission Status
final result =
await ZebaPermissionManager.check(
Permission.location,
);
if(result.isGranted){
print("Location enabled");
}
Request Multiple Permissions
final results =
await ZebaPermissionManager.requestMultiple(
[
Permission.camera,
Permission.microphone,
Permission.location,
],
);
results.forEach((permission, status){
print(
"$permission : $status"
);
});
🎨 Permission Dialogs
Set your app context:
ZebaPermissionDialog.setContext(context);
The package can show:
Permission request dialog
Permanently denied dialog
Open settings action
🔎 Permission Result
Every permission request returns:
ZebaPermissionResult
Available checks:
result.isGranted
result.isDenied
result.isPermanentlyDenied
result.isRestricted
🛠 Supported Permissions
Works with:
Camera
Location
Microphone
Storage
Notifications
Contacts
Bluetooth
Photos
Sensors
Calendar
And all permissions supported by permission_handler
📱 Platform Setup
Android
Update:
android/app/src/main/AndroidManifest.xml
Example:
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
iOS
Update:
ios/Runner/Info.plist
Example:
<key>NSCameraUsageDescription</key>
<string>This app requires camera access</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>This app requires location access</string>
<key>NSMicrophoneUsageDescription</key>
<string>This app requires microphone access</string>
📁 Package Structure
lib/
│
├── zeba_academy_permissions.dart
│
└── src/
├── zeba_permission_manager.dart
├── zeba_permission_result.dart
├── zeba_permission_dialog.dart
└── zeba_permission_utils.dart
🤝 Contributing
Contributions are welcome!
Steps:
Fork the repository
Create your feature branch
git checkout -b feature/new-feature
Commit changes
git commit -m "Add new feature"
Push
git push origin feature/new-feature
Create Pull Request
📄 License
This project is licensed under the GNU General Public License v3.0.
You are free to:
Use
Modify
Distribute
Share
Under the conditions of the GPL v3 license.
See the full license:
LICENSE
👨💻 About Me
✨ I’m Sufyan bin Uzayr, an open-source developer passionate about building and sharing meaningful projects.
Learn more about my work:
https://sufyanism.com/
Connect on LinkedIn:
https://www.linkedin.com/in/sufyanism
🎓 Zeba Academy
Your all-in-one learning hub!
🚀 Explore courses and resources in coding, technology, and development.
Zeba Academy helps developers improve their skills through practical tutorials, real-world projects, and hands-on learning.
Main website:
https://zeba.academy
Coding resources:
https://code.zeba.academy
YouTube:
https://www.youtube.com/@zeba.academy
Instagram:
https://www.instagram.com/zeba.academy/
⭐ Support
If you like this package, consider giving it a ⭐ on GitHub and sharing it with other Flutter developers.
Thank you for using Zeba Academy Permissions 💙