You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
2.0 KiB
63 lines
2.0 KiB
//各种封装的小函数
|
|
|
|
import 'dart:async';
|
|
|
|
import 'package:bruno/bruno.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:permission_handler/permission_handler.dart';
|
|
|
|
void toast(String msg, BuildContext context){
|
|
BrnToast.show(msg, context);
|
|
}
|
|
|
|
String formattedTime(int timestamp){
|
|
|
|
|
|
// 使用DateTime.fromMillisecondsSinceEpoch来创建DateTime对象
|
|
DateTime dateTime = DateTime.fromMillisecondsSinceEpoch(timestamp, isUtc: false);
|
|
|
|
// 手动格式化日期和时间
|
|
String formattedDateTime = '${dateTime.year}-${dateTime.month.toString().padLeft(2, '0')}-${dateTime.day.toString().padLeft(2, '0')} ${dateTime.hour.toString().padLeft(2, '0')}:${dateTime.minute.toString().padLeft(2, '0')}:${dateTime.second.toString().padLeft(2, '0')}';
|
|
return formattedDateTime;
|
|
}
|
|
|
|
|
|
|
|
Future<bool> handlePermission(BuildContext context, String content, List<Permission> permissions) async {
|
|
var status = await permissions[0].status;
|
|
final Completer<bool> completer = Completer<bool>();
|
|
if (status.isDenied) {
|
|
// 无权限的话就显示设置页面
|
|
showDialog(
|
|
context: context,
|
|
builder: (BuildContext context) {
|
|
// 返回一个 AlertDialog 组件
|
|
return AlertDialog(
|
|
title: Text("提示"),
|
|
content: Text(content),
|
|
actions: <Widget>[
|
|
// 通常是按钮
|
|
TextButton(
|
|
child: Text("确认"),
|
|
onPressed: () async {
|
|
Map<Permission, PermissionStatus> statuses = await permissions.request();
|
|
Navigator.of(context).pop();
|
|
completer.complete(true);
|
|
},
|
|
),
|
|
// 通常是按钮
|
|
TextButton(
|
|
child: Text("取消"),
|
|
onPressed: () {
|
|
Navigator.of(context).pop();
|
|
completer.complete(false);
|
|
},
|
|
),
|
|
],
|
|
);
|
|
});
|
|
} else {
|
|
completer.complete(true);
|
|
}
|
|
return completer.future;
|
|
}
|