Merge branch 'push_null_safety' into migrate_services_2
This commit is contained in:
commit
af9641a06d
|
@ -1,5 +1,3 @@
|
|||
// @dart=2.9
|
||||
|
||||
import 'package:firebase_core/firebase_core.dart';
|
||||
import 'package:firebase_messaging/firebase_messaging.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
|
@ -21,7 +19,7 @@ class PushService {
|
|||
static final PushService instance = PushService._privateConstructor();
|
||||
static final _logger = Logger("PushService");
|
||||
|
||||
SharedPreferences _prefs;
|
||||
late SharedPreferences _prefs;
|
||||
|
||||
PushService._privateConstructor();
|
||||
|
||||
|
@ -46,14 +44,15 @@ class PushService {
|
|||
}
|
||||
|
||||
Future<void> _configurePushToken() async {
|
||||
final fcmToken = await FirebaseMessaging.instance.getToken();
|
||||
final String? fcmToken = await FirebaseMessaging.instance.getToken();
|
||||
final shouldForceRefreshServerToken =
|
||||
DateTime.now().microsecondsSinceEpoch -
|
||||
(_prefs.getInt(kLastFCMTokenUpdationTime) ?? 0) >
|
||||
kFCMTokenUpdationIntervalInMicroSeconds;
|
||||
if (_prefs.getString(kFCMPushToken) != fcmToken ||
|
||||
shouldForceRefreshServerToken) {
|
||||
final apnsToken = await FirebaseMessaging.instance.getAPNSToken();
|
||||
if (fcmToken != null &&
|
||||
(_prefs.getString(kFCMPushToken) != fcmToken ||
|
||||
shouldForceRefreshServerToken)) {
|
||||
final String? apnsToken = await FirebaseMessaging.instance.getAPNSToken();
|
||||
try {
|
||||
_logger.info("Updating token on server");
|
||||
await _setPushTokenOnServer(fcmToken, apnsToken);
|
||||
|
@ -71,7 +70,10 @@ class PushService {
|
|||
}
|
||||
}
|
||||
|
||||
Future<void> _setPushTokenOnServer(String fcmToken, String apnsToken) async {
|
||||
Future<void> _setPushTokenOnServer(
|
||||
String fcmToken,
|
||||
String? apnsToken,
|
||||
) async {
|
||||
await Network.instance.enteDio.post(
|
||||
"/push/token",
|
||||
data: {
|
||||
|
|
|
@ -65,6 +65,7 @@ class _RecoveryKeyPageState extends State<RecoveryKeyPage> {
|
|||
return Scaffold(
|
||||
appBar: widget.showProgressBar
|
||||
? AppBar(
|
||||
automaticallyImplyLeading: false,
|
||||
elevation: 0,
|
||||
title: Hero(
|
||||
tag: "recovery_key",
|
||||
|
@ -97,6 +98,7 @@ class _RecoveryKeyPageState extends State<RecoveryKeyPage> {
|
|||
child: IntrinsicHeight(
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
widget.showAppBar
|
||||
? const SizedBox.shrink()
|
||||
|
|
|
@ -14,37 +14,13 @@ enum ActionSheetType {
|
|||
iconOnly,
|
||||
}
|
||||
|
||||
Future<ButtonAction?> showCommonActionSheet({
|
||||
required BuildContext context,
|
||||
required List<ButtonWidget> buttons,
|
||||
required ActionSheetType actionSheetType,
|
||||
bool isCheckIconGreen = false,
|
||||
String? title,
|
||||
String? body,
|
||||
}) {
|
||||
return showMaterialModalBottomSheet(
|
||||
backgroundColor: Colors.transparent,
|
||||
barrierColor: backdropFaintDark,
|
||||
useRootNavigator: true,
|
||||
context: context,
|
||||
builder: (_) {
|
||||
return ActionSheetWidget(
|
||||
title: title,
|
||||
body: body,
|
||||
actionButtons: buttons,
|
||||
actionSheetType: actionSheetType,
|
||||
isCheckIconGreen: isCheckIconGreen,
|
||||
);
|
||||
},
|
||||
isDismissible: false,
|
||||
enableDrag: false,
|
||||
);
|
||||
}
|
||||
|
||||
///Returns null if dismissed
|
||||
Future<ButtonAction?> showActionSheet({
|
||||
required BuildContext context,
|
||||
required List<ButtonWidget> buttons,
|
||||
required ActionSheetType actionSheetType,
|
||||
bool enableDrag = true,
|
||||
bool isDismissible = true,
|
||||
bool isCheckIconGreen = false,
|
||||
String? title,
|
||||
String? body,
|
||||
|
@ -54,6 +30,8 @@ Future<ButtonAction?> showActionSheet({
|
|||
barrierColor: backdropFaintDark,
|
||||
useRootNavigator: true,
|
||||
context: context,
|
||||
isDismissible: isDismissible,
|
||||
enableDrag: enableDrag,
|
||||
builder: (_) {
|
||||
return ActionSheetWidget(
|
||||
title: title,
|
||||
|
@ -63,8 +41,6 @@ Future<ButtonAction?> showActionSheet({
|
|||
isCheckIconGreen: isCheckIconGreen,
|
||||
);
|
||||
},
|
||||
isDismissible: false,
|
||||
enableDrag: false,
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -9,14 +9,17 @@ import 'package:photos/ui/components/button_widget.dart';
|
|||
import 'package:photos/ui/components/models/button_type.dart';
|
||||
import 'package:photos/utils/separators_util.dart';
|
||||
|
||||
///Will return null if dismissed by tapping outside
|
||||
Future<ButtonAction?> showGenericErrorDialog({
|
||||
required BuildContext context,
|
||||
bool isDismissible = true,
|
||||
}) async {
|
||||
return showDialogWidget(
|
||||
context: context,
|
||||
title: "Error",
|
||||
icon: Icons.error_outline_outlined,
|
||||
body: "It looks like something went wrong. Please try again.",
|
||||
isDismissible: isDismissible,
|
||||
buttons: const [
|
||||
ButtonWidget(
|
||||
buttonType: ButtonType.secondary,
|
||||
|
@ -27,6 +30,7 @@ Future<ButtonAction?> showGenericErrorDialog({
|
|||
);
|
||||
}
|
||||
|
||||
///Will return null if dismissed by tapping outside
|
||||
Future<ButtonAction?> showNewChoiceDialog({
|
||||
required BuildContext context,
|
||||
required String title,
|
||||
|
@ -41,6 +45,7 @@ Future<ButtonAction?> showNewChoiceDialog({
|
|||
FutureVoidCallback? secondButtonOnTap,
|
||||
bool isCritical = false,
|
||||
IconData? icon,
|
||||
bool isDismissible = true,
|
||||
}) async {
|
||||
final buttons = [
|
||||
ButtonWidget(
|
||||
|
@ -64,18 +69,21 @@ Future<ButtonAction?> showNewChoiceDialog({
|
|||
body: body,
|
||||
buttons: buttons,
|
||||
icon: icon,
|
||||
isDismissible: isDismissible,
|
||||
);
|
||||
}
|
||||
|
||||
///Will return null if dismissed by tapping outside
|
||||
Future<ButtonAction?> showDialogWidget({
|
||||
required BuildContext context,
|
||||
required String title,
|
||||
String? body,
|
||||
required List<ButtonWidget> buttons,
|
||||
IconData? icon,
|
||||
bool isDismissible = true,
|
||||
}) {
|
||||
return showDialog(
|
||||
barrierDismissible: false,
|
||||
barrierDismissible: isDismissible,
|
||||
barrierColor: backdropFaintDark,
|
||||
context: context,
|
||||
builder: (context) {
|
||||
|
|
Loading…
Reference in a new issue