hide notification settings if FCM is not supported

This commit is contained in:
Florent Azavant
2025-01-24 13:37:17 +01:00
committed by Dat H. Pham
parent ce8f59dcf3
commit 7a27415295
2 changed files with 29 additions and 14 deletions
@@ -2,6 +2,7 @@
import 'package:back_button_interceptor/back_button_interceptor.dart'; import 'package:back_button_interceptor/back_button_interceptor.dart';
import 'package:core/core.dart'; import 'package:core/core.dart';
import 'package:dartz/dartz.dart'; import 'package:dartz/dartz.dart';
import 'package:fcm/model/firebase_capability.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:forward/forward/capability_forward.dart'; import 'package:forward/forward/capability_forward.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
@@ -229,6 +230,14 @@ class ManageAccountDashBoardController extends ReloadableController with UserSet
} }
} }
bool get isFcmCapabilitySupported {
if (accountId.value != null && sessionCurrent != null) {
return [FirebaseCapability.fcmIdentifier].isSupported(sessionCurrent!, accountId.value!);
} else {
return false;
}
}
bool get isServerSettingsCapabilitySupported { bool get isServerSettingsCapabilitySupported {
if (accountId.value != null && sessionCurrent != null) { if (accountId.value != null && sessionCurrent != null) {
return [capabilityServerSettings].isSupported(sessionCurrent!, accountId.value!); return [capabilityServerSettings].isSupported(sessionCurrent!, accountId.value!);
@@ -141,20 +141,26 @@ class SettingsFirstLevelView extends GetWidget<SettingsController> {
AccountMenuItem.languageAndRegion.getIcon(controller.imagePaths), AccountMenuItem.languageAndRegion.getIcon(controller.imagePaths),
() => controller.selectSettings(AccountMenuItem.languageAndRegion) () => controller.selectSettings(AccountMenuItem.languageAndRegion)
), ),
if (PlatformInfo.isMobile) ...[ Obx(() {
Divider( if (PlatformInfo.isMobile && controller.manageAccountDashboardController.isFcmCapabilitySupported) {
color: AppColor.colorDividerHorizontal, return Column(children: [
height: 1, Divider(
indent: SettingsUtils.getHorizontalPadding(context, controller.responsiveUtils), color: AppColor.colorDividerHorizontal,
endIndent: SettingsUtils.getHorizontalPadding(context, controller.responsiveUtils) height: 1,
), indent: SettingsUtils.getHorizontalPadding(context, controller.responsiveUtils),
SettingFirstLevelTileBuilder( endIndent: SettingsUtils.getHorizontalPadding(context, controller.responsiveUtils)
AppLocalizations.of(context).notification, ),
controller.imagePaths.icNotification, SettingFirstLevelTileBuilder(
() => controller.selectSettings(AccountMenuItem.notification), AppLocalizations.of(context).notification,
subtitle: AppLocalizations.of(context).allowsTwakeMailToNotifyYouWhenANewMessageArrivesOnYourPhone, controller.imagePaths.icNotification,
) () => controller.selectSettings(AccountMenuItem.notification),
], subtitle: AppLocalizations.of(context).allowsTwakeMailToNotifyYouWhenANewMessageArrivesOnYourPhone,
)
]);
} else {
return const SizedBox.shrink();
}
}),
Obx(() { Obx(() {
final accountId = controller final accountId = controller
.manageAccountDashboardController .manageAccountDashboardController