Quellcode durchsuchen

Merge branch 'push_null_safety' into migrate_services_2

Neeraj Gupta vor 2 Jahren
Ursprung
Commit
af9641a06d

+ 10 - 8
lib/services/push_service.dart

@@ -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: {

+ 2 - 0
lib/ui/account/recovery_key_page.dart

@@ -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()

+ 5 - 29
lib/ui/components/action_sheet_widget.dart

@@ -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 - 1
lib/ui/components/dialog_widget.dart

@@ -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) {