戴余标 3 years ago
parent 80b04d6160
commit 2113e45101

@ -1,69 +1,68 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:permission_handler/permission_handler.dart'; import 'package:permission_handler_platform_interface/permission_handler_platform_interface.dart';
import 'package:project_telephony/base/base_style.dart'; import 'package:project_telephony/base/base_style.dart';
// import 'package:project_telephony/main.dart';
import 'package:project_telephony/ui/widget/plone_back_button.dart'; import 'package:project_telephony/ui/widget/plone_back_button.dart';
import 'package:project_telephony/ui/widget/plone_bottom.dart';
import 'package:project_telephony/utils/headers.dart'; import 'package:project_telephony/utils/headers.dart';
// import 'package:telephony/telephony.dart'; import 'package:telephony/telephony.dart';
class PrivacyRightsPage extends StatefulWidget { class PrivacyRightsPage extends StatefulWidget {
final String name; final String name;
const PrivacyRightsPage({Key? key, required this.name}) : super(key: key); const PrivacyRightsPage({Key? key, required this.name}) : super(key: key);
@override @override
_PrivacyRightsPageState createState() => _PrivacyRightsPageState(); _PrivacyRightsPageState createState() => _PrivacyRightsPageState();
} }
// final Telephony telephony = Telephony.instance; final Telephony telephony = Telephony.instance;
// late final bool permissionsGranted; // late final bool permissionsGranted;
// String body = ""; // String body = "";
// @override // @override
// initState() async { // void initState() async {
// initPlatformState();
// // initPlatformState();
// } // }
bool? pd;
class _PrivacyRightsPageState extends State<PrivacyRightsPage> { class _PrivacyRightsPageState extends State<PrivacyRightsPage> {
final Permission _permission = Permission.phone;
final PermissionHandlerPlatform _permissionHandler =
PermissionHandlerPlatform.instance;
PermissionStatus _permissionStatus = PermissionStatus.denied;
Future<void> requestPermission(Permission permission) async {
final status = await _permissionHandler.requestPermissions([permission]);
setState(() {
_permissionStatus = status[permission] ?? PermissionStatus.denied;
});
}
@override @override
void initState() { void initState() {
Future.delayed(const Duration(seconds: 2), () async {
await _refresh();
});
setState(() {});
super.initState(); super.initState();
_listenForPermissionStatus();
} }
_refresh() async { void _listenForPermissionStatus() async {
var status = await Permission.camera.status; final status = await _permissionHandler.checkPermissionStatus(_permission);
pd = status.isDenied; setState(() => _permissionStatus = status);
setState(() {});
} }
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: AppBar( appBar: AppBar(
elevation: 0, elevation: 0,
title: Text( title: Text(
widget.name, widget.name,
style: TextStyle( style: TextStyle(
fontSize: BaseStyle.fontSize34, fontSize: BaseStyle.fontSize34,
color: BaseStyle.color333333, color: BaseStyle.color333333,
fontWeight: FontWeight.bold), fontWeight: FontWeight.bold),
), ),
titleSpacing: 162.w, titleSpacing: 162.w,
leading: const CloudBackButton(isSpecial: true), leading: const CloudBackButton(isSpecial: true),
backgroundColor: kForeGroundColor), backgroundColor: kForeGroundColor),
backgroundColor: Colors.white, backgroundColor: Colors.white,
body: widget.name == "隐私政策" body: widget.name == "隐私政策" ? null : _getRights(true),
? null );
: Column(
children: [
_getRights(pd!),
],
));
} }
// onMessage(SmsMessage message) async { // onMessage(SmsMessage message) async {
@ -89,70 +88,117 @@ class _PrivacyRightsPageState extends State<PrivacyRightsPage> {
// } // }
// if (!mounted) return; // if (!mounted) return;
// } // }
_getRights(bool pd) { _getRights(bool pd) {
return GestureDetector( return ListView(
onTap: () {}, children: Permission.values
child: Container( .where((permission) {
height: 144.w, return permission == Permission.phone ||
width: 750.w, permission == Permission.sms;
padding: EdgeInsets.symmetric(horizontal: 64.w, vertical: 17.w), })
child: Row( .map((permission) => PermissionWidget(permission))
crossAxisAlignment: CrossAxisAlignment.center, .toList());
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'获取设备来电',
style: TextStyle(
fontSize: 32.sp,
color: BaseStyle.color333333,
fontWeight: FontWeight.bold),
),
16.hb,
Text('用于获取设备',
style: TextStyle(
fontSize: 28.sp, color: BaseStyle.color999999)),
],
),
269.wb,
Text(pd ? "未允许" : "已允许",
style: TextStyle(
fontSize: 24.sp,
color: pd
? const Color(0xFFFF4D4D)
: BaseStyle.color999999)),
SizedBox(
width: 48.w,
height: 48.w,
child: const Icon(
Icons.keyboard_arrow_right,
),
),
],
)),
);
} }
}
class PermissionWidget extends StatefulWidget {
const PermissionWidget(this._permission);
final Permission _permission;
@override
_PermissionState createState() => _PermissionState(_permission);
}
class _PermissionState extends State<PermissionWidget> {
_PermissionState(this._permission);
_getA() { final Permission _permission;
return PloneBottom( final PermissionHandlerPlatform _permissionHandler =
onTap: () async { PermissionHandlerPlatform.instance;
var status = await Permission.camera.status; PermissionStatus _permissionStatus = PermissionStatus.denied;
if (status.isDenied) { List<String> title = [
// openAppSettings();// "获取来电权限",
// print(status.isDenied); "获取短信权限",
// print("已允许"); ];
} else { List<String> sub = [
print("未允许"); "用于监听来电状态",
} "用于发送短信",
];
@override
void initState() {
super.initState();
_listenForPermissionStatus();
}
void _listenForPermissionStatus() async {
final status = await _permissionHandler.checkPermissionStatus(_permission);
setState(() => _permissionStatus = status);
}
Color getPermissionColor() {
switch (_permissionStatus) {
case PermissionStatus.denied:
return Colors.red;
case PermissionStatus.granted:
return Colors.green;
case PermissionStatus.limited:
return Colors.orange;
default:
return Colors.grey;
}
}
String getPermissionStu() {
switch (_permissionStatus) {
case PermissionStatus.denied:
return "未允许";
case PermissionStatus.granted:
return "已允许";
default:
return "未允许";
}
}
@override
Widget build(BuildContext context) {
return ListTile(
title: Text(
_permission.value==8?title[0]:title[1],
style: Theme.of(context).textTheme.titleMedium,
),
subtitle: Text(
_permission.value==8?sub[0]:sub[1],
),
trailing: Wrap(
children: [
Text(getPermissionStu(),
style: TextStyle(color: getPermissionColor())),
const Icon(Icons.arrow_forward_ios),
],
),
onTap: () {
requestPermission(_permission);
}, },
); );
// var status = await Permission.camera.status; }
// if (status.isDenied) {
// return Text("已允许"); void checkServiceStatus(
// } else { BuildContext context, PermissionWithService permission) async {
// return Text("未允许"); ScaffoldMessenger.of(context).showSnackBar(SnackBar(
// } content: Text(
(await _permissionHandler.checkServiceStatus(permission)).toString()),
));
}
Future<void> requestPermission(Permission permission) async {
final status = await _permissionHandler.requestPermissions([permission]);
setState(() {
print(status);
_permissionStatus = status[permission] ?? PermissionStatus.denied;
print(_permissionStatus);
});
} }
} }
Loading…
Cancel
Save