Merge branch 'db_and_services' into mirage_logging_null_safety

This commit is contained in:
Neeraj Gupta 2022-12-30 15:43:47 +05:30
commit aa80a6cc4d
No known key found for this signature in database
GPG key ID: 3C5A1684DC1729E1
4 changed files with 26 additions and 38 deletions

View file

@ -1,5 +1,3 @@
// @dart=2.9
import 'package:firebase_core/firebase_core.dart'; import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:logging/logging.dart'; import 'package:logging/logging.dart';
@ -21,7 +19,7 @@ class PushService {
static final PushService instance = PushService._privateConstructor(); static final PushService instance = PushService._privateConstructor();
static final _logger = Logger("PushService"); static final _logger = Logger("PushService");
SharedPreferences _prefs; late SharedPreferences _prefs;
PushService._privateConstructor(); PushService._privateConstructor();
@ -46,14 +44,15 @@ class PushService {
} }
Future<void> _configurePushToken() async { Future<void> _configurePushToken() async {
final fcmToken = await FirebaseMessaging.instance.getToken(); final String? fcmToken = await FirebaseMessaging.instance.getToken();
final shouldForceRefreshServerToken = final shouldForceRefreshServerToken =
DateTime.now().microsecondsSinceEpoch - DateTime.now().microsecondsSinceEpoch -
(_prefs.getInt(kLastFCMTokenUpdationTime) ?? 0) > (_prefs.getInt(kLastFCMTokenUpdationTime) ?? 0) >
kFCMTokenUpdationIntervalInMicroSeconds; kFCMTokenUpdationIntervalInMicroSeconds;
if (_prefs.getString(kFCMPushToken) != fcmToken || if (fcmToken != null &&
shouldForceRefreshServerToken) { (_prefs.getString(kFCMPushToken) != fcmToken ||
final apnsToken = await FirebaseMessaging.instance.getAPNSToken(); shouldForceRefreshServerToken)) {
final String? apnsToken = await FirebaseMessaging.instance.getAPNSToken();
try { try {
_logger.info("Updating token on server"); _logger.info("Updating token on server");
await _setPushTokenOnServer(fcmToken, apnsToken); 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( await Network.instance.enteDio.post(
"/push/token", "/push/token",
data: { data: {

View file

@ -65,6 +65,7 @@ class _RecoveryKeyPageState extends State<RecoveryKeyPage> {
return Scaffold( return Scaffold(
appBar: widget.showProgressBar appBar: widget.showProgressBar
? AppBar( ? AppBar(
automaticallyImplyLeading: false,
elevation: 0, elevation: 0,
title: Hero( title: Hero(
tag: "recovery_key", tag: "recovery_key",
@ -97,6 +98,7 @@ class _RecoveryKeyPageState extends State<RecoveryKeyPage> {
child: IntrinsicHeight( child: IntrinsicHeight(
child: Column( child: Column(
mainAxisSize: MainAxisSize.max, mainAxisSize: MainAxisSize.max,
crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
widget.showAppBar widget.showAppBar
? const SizedBox.shrink() ? const SizedBox.shrink()

View file

@ -14,37 +14,13 @@ enum ActionSheetType {
iconOnly, iconOnly,
} }
Future<ButtonAction?> showCommonActionSheet({ ///Returns null if dismissed
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,
);
}
Future<ButtonAction?> showActionSheet({ Future<ButtonAction?> showActionSheet({
required BuildContext context, required BuildContext context,
required List<ButtonWidget> buttons, required List<ButtonWidget> buttons,
required ActionSheetType actionSheetType, required ActionSheetType actionSheetType,
bool enableDrag = true,
bool isDismissible = true,
bool isCheckIconGreen = false, bool isCheckIconGreen = false,
String? title, String? title,
String? body, String? body,
@ -54,6 +30,8 @@ Future<ButtonAction?> showActionSheet({
barrierColor: backdropFaintDark, barrierColor: backdropFaintDark,
useRootNavigator: true, useRootNavigator: true,
context: context, context: context,
isDismissible: isDismissible,
enableDrag: enableDrag,
builder: (_) { builder: (_) {
return ActionSheetWidget( return ActionSheetWidget(
title: title, title: title,
@ -63,8 +41,6 @@ Future<ButtonAction?> showActionSheet({
isCheckIconGreen: isCheckIconGreen, isCheckIconGreen: isCheckIconGreen,
); );
}, },
isDismissible: false,
enableDrag: false,
); );
} }

View file

@ -9,14 +9,17 @@ import 'package:photos/ui/components/button_widget.dart';
import 'package:photos/ui/components/models/button_type.dart'; import 'package:photos/ui/components/models/button_type.dart';
import 'package:photos/utils/separators_util.dart'; import 'package:photos/utils/separators_util.dart';
///Will return null if dismissed by tapping outside
Future<ButtonAction?> showGenericErrorDialog({ Future<ButtonAction?> showGenericErrorDialog({
required BuildContext context, required BuildContext context,
bool isDismissible = true,
}) async { }) async {
return showDialogWidget( return showDialogWidget(
context: context, context: context,
title: "Error", title: "Error",
icon: Icons.error_outline_outlined, icon: Icons.error_outline_outlined,
body: "It looks like something went wrong. Please try again.", body: "It looks like something went wrong. Please try again.",
isDismissible: isDismissible,
buttons: const [ buttons: const [
ButtonWidget( ButtonWidget(
buttonType: ButtonType.secondary, buttonType: ButtonType.secondary,
@ -27,6 +30,7 @@ Future<ButtonAction?> showGenericErrorDialog({
); );
} }
///Will return null if dismissed by tapping outside
Future<ButtonAction?> showNewChoiceDialog({ Future<ButtonAction?> showNewChoiceDialog({
required BuildContext context, required BuildContext context,
required String title, required String title,
@ -41,6 +45,7 @@ Future<ButtonAction?> showNewChoiceDialog({
FutureVoidCallback? secondButtonOnTap, FutureVoidCallback? secondButtonOnTap,
bool isCritical = false, bool isCritical = false,
IconData? icon, IconData? icon,
bool isDismissible = true,
}) async { }) async {
final buttons = [ final buttons = [
ButtonWidget( ButtonWidget(
@ -64,18 +69,21 @@ Future<ButtonAction?> showNewChoiceDialog({
body: body, body: body,
buttons: buttons, buttons: buttons,
icon: icon, icon: icon,
isDismissible: isDismissible,
); );
} }
///Will return null if dismissed by tapping outside
Future<ButtonAction?> showDialogWidget({ Future<ButtonAction?> showDialogWidget({
required BuildContext context, required BuildContext context,
required String title, required String title,
String? body, String? body,
required List<ButtonWidget> buttons, required List<ButtonWidget> buttons,
IconData? icon, IconData? icon,
bool isDismissible = true,
}) { }) {
return showDialog( return showDialog(
barrierDismissible: false, barrierDismissible: isDismissible,
barrierColor: backdropFaintDark, barrierColor: backdropFaintDark,
context: context, context: context,
builder: (context) { builder: (context) {