Zeba Academy Permissions

pub package License: GPL v3 Flutter

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 💙