relatica/lib/globals.dart

96 wiersze
2.5 KiB
Dart
Czysty Zwykły widok Historia

import 'dart:io';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:get_it/get_it.dart';
import 'package:uuid/uuid.dart';
2023-02-27 20:39:02 +00:00
import 'data/interfaces/connections_repo_intf.dart';
import 'services/notifications_manager.dart';
import 'services/timeline_manager.dart';
final getIt = GetIt.instance;
String randomId() => const Uuid().v4().toString();
final platformHasCamera = Platform.isIOS || Platform.isAndroid;
final useImagePicker = kIsWeb || Platform.isAndroid || Platform.isIOS;
final useVideoPlayer = kIsWeb || Platform.isAndroid || Platform.isIOS;
Future<bool?> showConfirmDialog(BuildContext context, String caption) {
return showDialog<bool>(
context: context,
barrierDismissible: false,
builder: (BuildContext context) {
return AlertDialog(
title: Text(caption),
actions: <Widget>[
ElevatedButton(
child: const Text('OK'),
onPressed: () {
Navigator.pop(context, true); // showDialog() returns true
},
),
],
);
},
);
}
Future<bool?> showYesNoDialog(BuildContext context, String caption) {
return showDialog<bool>(
context: context,
barrierDismissible: false,
builder: (BuildContext context) {
return AlertDialog(
title: Text(caption),
actions: <Widget>[
ElevatedButton(
child: const Text('Yes'),
onPressed: () {
Navigator.pop(context, true); // showDialog() returns true
},
),
ElevatedButton(
child: const Text('No'),
onPressed: () {
Navigator.pop(context, false); // showDialog() returns false
},
),
],
);
},
);
}
Future<String?> showChooseOptions(
BuildContext context,
String caption,
List<String> options,
) {
return showDialog<String?>(
context: context,
barrierDismissible: false,
builder: (BuildContext context) {
return AlertDialog(
title: Text(caption),
actions: options
.map((o) => ElevatedButton(
child: Text(o),
onPressed: () {
Navigator.pop(context, o); // showDialog() returns true
},
))
.toList());
},
);
}
2023-02-27 20:39:02 +00:00
void clearCaches() {
getIt<TimelineManager>().clear();
getIt<IConnectionsRepo>().clear();
getIt<NotificationsManager>().clear();
}