Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -117,9 +117,15 @@ public boolean onActivityResult(int requestCode, int resultCode, Intent data) {
}
} else if (requestCode == PermissionConstants.PERMISSION_CODE_REQUEST_INSTALL_PACKAGES) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
status = activity.getPackageManager().canRequestPackageInstalls()
? PermissionConstants.PERMISSION_STATUS_GRANTED
: PermissionConstants.PERMISSION_STATUS_DENIED;
try {
status = activity.getPackageManager().canRequestPackageInstalls()
? PermissionConstants.PERMISSION_STATUS_GRANTED
: PermissionConstants.PERMISSION_STATUS_DENIED;
} catch (SecurityException e) {
// App has not declared REQUEST_INSTALL_PACKAGES in manifest.
Log.d(PermissionConstants.LOG_TAG, "Cannot call canRequestPackageInstalls: " + e.getMessage());
status = PermissionConstants.PERMISSION_STATUS_DENIED;
}
permission = PermissionConstants.PERMISSION_GROUP_REQUEST_INSTALL_PACKAGES;
} else {
return false;
Expand Down Expand Up @@ -532,10 +538,16 @@ private int determinePermissionStatus(final @PermissionConstants.PermissionGroup
permissionStatuses.add(status);
} else if (permission == PermissionConstants.PERMISSION_GROUP_REQUEST_INSTALL_PACKAGES) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
int status = context.getPackageManager().canRequestPackageInstalls()
? PermissionConstants.PERMISSION_STATUS_GRANTED
: PermissionConstants.PERMISSION_STATUS_DENIED;
permissionStatuses.add(status);
try {
int status = context.getPackageManager().canRequestPackageInstalls()
? PermissionConstants.PERMISSION_STATUS_GRANTED
: PermissionConstants.PERMISSION_STATUS_DENIED;
permissionStatuses.add(status);
} catch (SecurityException e) {
// App has not declared REQUEST_INSTALL_PACKAGES in manifest.
Log.d(PermissionConstants.LOG_TAG, "Cannot call canRequestPackageInstalls: " + e.getMessage());
permissionStatuses.add(PermissionConstants.PERMISSION_STATUS_DENIED);
}
}
} else if (permission == PermissionConstants.PERMISSION_GROUP_ACCESS_NOTIFICATION_POLICY) {
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Application.NOTIFICATION_SERVICE);
Expand Down
81 changes: 38 additions & 43 deletions permission_handler_android/example/lib/main.dart
Original file line number Diff line number Diff line change
@@ -1,37 +1,31 @@
import 'package:baseflow_plugin_template/baseflow_plugin_template.dart';
// ignore_for_file: public_member_api_docs

import 'package:flutter/material.dart';
import 'package:permission_handler_platform_interface/permission_handler_platform_interface.dart';

void main() {
runApp(
BaseflowPluginExample(
pluginName: 'Permission Handler',
githubURL: 'https://github.com/Baseflow/flutter-permission-handler',
pubDevURL: 'https://pub.dev/packages/permission_handler',
pages: [PermissionHandlerWidget.createPage()],
),
);
runApp(const PermissionHandlerExampleApp());
}

///Defines the main theme color
final MaterialColor themeMaterialColor =
BaseflowPluginExample.createMaterialColor(
const Color.fromRGBO(48, 49, 60, 1),
class PermissionHandlerExampleApp extends StatelessWidget {
const PermissionHandlerExampleApp({super.key});

@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Permission Handler Example',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.blue),
useMaterial3: true,
),
home: const PermissionHandlerWidget(),
);
}
}

/// A Flutter application demonstrating the functionality of this plugin
class PermissionHandlerWidget extends StatefulWidget {
/// Creates a [PermissionHandlerWidget].
const PermissionHandlerWidget({super.key});

/// Create a page containing the functionality of this plugin
static ExamplePage createPage() {
return ExamplePage(
Icons.location_on,
(context) => const PermissionHandlerWidget(),
);
}

@override
State<PermissionHandlerWidget> createState() =>
_PermissionHandlerWidgetState();
Expand All @@ -40,31 +34,32 @@ class PermissionHandlerWidget extends StatefulWidget {
class _PermissionHandlerWidgetState extends State<PermissionHandlerWidget> {
@override
Widget build(BuildContext context) {
return Center(
child: ListView(
children:
Permission.values
.where((permission) {
return permission != Permission.unknown &&
permission != Permission.mediaLibrary &&
permission != Permission.photosAddOnly &&
permission != Permission.reminders &&
permission != Permission.bluetooth &&
permission != Permission.appTrackingTransparency &&
permission != Permission.criticalAlerts &&
permission != Permission.assistant &&
permission != Permission.backgroundRefresh;
})
.map((permission) => PermissionWidget(permission))
.toList(),
return Scaffold(
appBar: AppBar(title: const Text('Permission Handler')),
body: Center(
child: ListView(
children:
Permission.values
.where((permission) {
return permission != Permission.unknown &&
permission != Permission.mediaLibrary &&
permission != Permission.photosAddOnly &&
permission != Permission.reminders &&
permission != Permission.bluetooth &&
permission != Permission.appTrackingTransparency &&
permission != Permission.criticalAlerts &&
permission != Permission.assistant &&
permission != Permission.backgroundRefresh;
})
.map((permission) => PermissionWidget(permission))
.toList(),
),
),
);
}
}

/// Permission widget containing information about the passed [Permission]
class PermissionWidget extends StatefulWidget {
/// Constructs a [PermissionWidget] for the supplied [Permission]
const PermissionWidget(this._permission, {super.key});

final Permission _permission;
Expand Down Expand Up @@ -121,7 +116,7 @@ class _PermissionState extends State<PermissionWidget> {
trailing:
(widget._permission is PermissionWithService)
? IconButton(
icon: const Icon(Icons.info, color: Colors.white),
icon: const Icon(Icons.info),
onPressed: () {
checkServiceStatus(
context,
Expand Down
7 changes: 0 additions & 7 deletions permission_handler_android/example/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ environment:
sdk: ^3.7.0

dependencies:
baseflow_plugin_template: ^2.1.2
flutter:
sdk: flutter
permission_handler_platform_interface: ^4.2.0
Expand All @@ -22,11 +21,5 @@ dev_dependencies:
# the parent directory to use the current plugin's version.
path: ../

url_launcher: ^6.0.12

flutter:
uses-material-design: true

assets:
- res/images/baseflow_logo_def_light-02.png
- res/images/poweredByBaseflowLogoLight@3x.png
Loading