Sync all use PlatformInfo to check platform while runtime

(cherry picked from commit 514fec1f2f4f1ff8a584bf8db7bf3a5537a3e9f8)
This commit is contained in:
dab246
2023-06-15 14:26:04 +07:00
committed by Dat H. Pham
parent 3d019d644a
commit 96145aae7a
88 changed files with 298 additions and 309 deletions
@@ -6,7 +6,7 @@ import 'package:core/data/network/dio_client.dart';
import 'package:core/data/utils/compress_file_utils.dart';
import 'package:core/presentation/extensions/html_extension.dart';
import 'package:core/utils/app_logger.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:dio/dio.dart';
import 'package:flutter/foundation.dart';
@@ -55,7 +55,7 @@ class DownloadClient {
return null;
}
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
final base64Uri = encodeToBase64Uri({
'bytesData': bytesData,
'mimeType': 'image/$fileExtension',
@@ -1,8 +1,12 @@
import 'dart:convert';
import 'package:core/core.dart';
import 'package:core/data/network/dio_client.dart';
import 'package:core/data/utils/compress_file_utils.dart';
import 'package:core/presentation/extensions/html_extension.dart';
import 'package:core/presentation/utils/html_transformer/base/dom_transformer.dart';
import 'package:core/utils/app_logger.dart';
import 'package:core/utils/platform_info.dart';
import 'package:dio/dio.dart';
import 'package:flutter/foundation.dart';
import 'package:html/dom.dart';
@@ -59,7 +63,7 @@ class ImageTransformer extends DomTransformer {
options: Options(responseType: ResponseType.bytes));
if (responseData != null) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
return encodeToBase64Uri(responseData);
} else {
final bytesCompressed = await compressFileUtils.compressBytesDataImage(responseData);
+2 -2
View File
@@ -1,6 +1,6 @@
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
class IconUtils {
static const double defaultIconSize = BuildUtils.isWeb ? 20.0 : 24.0;
static const double defaultIconSize = PlatformInfo.isWeb ? 20.0 : 24.0;
}
@@ -1,4 +1,4 @@
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/widgets.dart';
import 'package:get/get.dart';
@@ -82,7 +82,7 @@ class ResponsiveUtils {
}
bool hasLeftMenuDrawerActive(BuildContext context) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
return isMobile(context) ||
isTablet(context) ||
isTabletLarge(context);
@@ -92,13 +92,13 @@ class ResponsiveUtils {
}
bool isWebDesktop(BuildContext context) =>
BuildUtils.isWeb && isDesktop(context);
PlatformInfo.isWeb && isDesktop(context);
bool isWebNotDesktop(BuildContext context) =>
BuildUtils.isWeb && !isDesktop(context);
PlatformInfo.isWeb && !isDesktop(context);
bool mailboxDashboardOnlyHasEmailView(BuildContext context) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
return isMobile(context) || isTablet(context);
} else {
return isPortraitMobile(context) ||
@@ -108,7 +108,7 @@ class ResponsiveUtils {
}
bool landscapeTabletSupported(BuildContext context) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
return isTabletLarge(context);
} else {
return !isLandscapeMobile(context) && (isLandscapeTablet(context) ||
+4 -3
View File
@@ -1,4 +1,5 @@
import 'package:core/core.dart';
import 'package:core/presentation/extensions/color_extension.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/material.dart';
class CommonTextStyle {
@@ -9,9 +10,9 @@ class CommonTextStyle {
fontWeight: FontWeight.normal,
);
static const defaultTextOverFlow = BuildUtils.isWeb
static const defaultTextOverFlow = PlatformInfo.isWeb
? TextOverflow.fade
: TextOverflow.ellipsis;
static const defaultSoftWrap = BuildUtils.isWeb ? false : true;
static const defaultSoftWrap = PlatformInfo.isWeb ? false : true;
}
@@ -1,5 +1,6 @@
import 'package:core/core.dart';
import 'package:core/presentation/extensions/color_extension.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:pointer_interceptor/pointer_interceptor.dart';
@@ -60,7 +61,7 @@ class ConfirmationDialogActionSheetBuilder {
padding: const EdgeInsets.symmetric(vertical: 8, horizontal: 10),
color: Colors.white,
child: MouseRegion(
cursor: BuildUtils.isWeb ? MaterialStateMouseCursor.clickable : MouseCursor.defer,
cursor: PlatformInfo.isWeb ? MaterialStateMouseCursor.clickable : MouseCursor.defer,
child: CupertinoActionSheetAction(
child: Text(
_messageText ?? '',
@@ -75,7 +76,7 @@ class ConfirmationDialogActionSheetBuilder {
padding: const EdgeInsets.symmetric(vertical: 8, horizontal: 10),
color: Colors.white,
child: MouseRegion(
cursor: BuildUtils.isWeb ? MaterialStateMouseCursor.clickable : MouseCursor.defer,
cursor: PlatformInfo.isWeb ? MaterialStateMouseCursor.clickable : MouseCursor.defer,
child: CupertinoActionSheetAction(
child: RichText(text: TextSpan(
style: _styleMessage ?? const TextStyle(fontSize: 14, color: AppColor.colorMessageConfirmDialog),
@@ -88,7 +89,7 @@ class ConfirmationDialogActionSheetBuilder {
Container(
color: Colors.white,
child: MouseRegion(
cursor: BuildUtils.isWeb ? MaterialStateMouseCursor.clickable : MouseCursor.defer,
cursor: PlatformInfo.isWeb ? MaterialStateMouseCursor.clickable : MouseCursor.defer,
child: CupertinoActionSheetAction(
child: Text(
_confirmText ?? '',
@@ -99,7 +100,7 @@ class ConfirmationDialogActionSheetBuilder {
),
],
cancelButton: MouseRegion(
cursor: BuildUtils.isWeb ? MaterialStateMouseCursor.clickable : MouseCursor.defer,
cursor: PlatformInfo.isWeb ? MaterialStateMouseCursor.clickable : MouseCursor.defer,
child: CupertinoActionSheetAction(
child: Text(
_cancelText ?? '',
@@ -57,8 +57,7 @@ class TreeViewChild {
final Widget parent;
final List<Widget> children;
final VoidCallback? onTap;
final EdgeInsets? paddingChild;
final bool isDirectionRTL;
final EdgeInsetsGeometry? paddingChild;
TreeViewChild(
this.context,
@@ -68,7 +67,6 @@ class TreeViewChild {
this.isExpanded,
this.onTap,
this.paddingChild,
this.isDirectionRTL = false,
Key? key,
}
);
@@ -92,10 +90,7 @@ class TreeViewChild {
mainAxisSize: MainAxisSize.min,
children: children
.map((child) => Padding(
padding: paddingChild ?? EdgeInsets.only(
left: isDirectionRTL ? 0 : 20,
right: isDirectionRTL ? 20 : 0,
),
padding: paddingChild ?? const EdgeInsetsDirectional.only(start: 20),
child: child
))
.toList()
@@ -1,4 +1,5 @@
import 'package:core/core.dart';
import 'package:core/presentation/utils/responsive_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/material.dart';
class ResponsiveWidget extends StatelessWidget {
@@ -24,7 +25,7 @@ class ResponsiveWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
if (responsiveUtils.isMobile(context)) {
return mobile;
}
-2
View File
@@ -6,7 +6,5 @@ abstract class BuildUtils {
static const bool isReleaseMode = kReleaseMode;
static const bool isWeb = kIsWeb;
static const bool isProfileMode = kProfileMode;
}
+2 -2
View File
@@ -1,7 +1,7 @@
import 'dart:io';
import 'package:core/domain/exceptions/download_file_exception.dart';
import 'package:core/utils/app_logger.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:path_provider/path_provider.dart';
class FileUtils {
@@ -11,7 +11,7 @@ class FileUtils {
String? folderPath,
String? extensionFile
}) async {
if (!BuildUtils.isWeb) {
if (PlatformInfo.isMobile) {
String fileDirectory = (await getApplicationDocumentsDirectory()).absolute.path;
@@ -5,7 +5,7 @@ import 'package:core/presentation/views/bottom_popup/confirmation_dialog_action_
import 'package:core/presentation/views/dialog/confirmation_dialog_builder.dart';
import 'package:core/presentation/views/dialog/edit_text_dialog_builder.dart';
import 'package:core/presentation/views/modal_sheets/edit_text_modal_sheet_builder.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart';
@@ -378,7 +378,7 @@ abstract class BaseMailboxController extends BaseController {
mailboxIdSelected: mailboxSelected.id
);
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
showDialogDestinationPicker(
context: context,
arguments: arguments,
@@ -1,5 +1,7 @@
import 'package:core/core.dart';
import 'package:core/presentation/extensions/color_extension.dart';
import 'package:core/presentation/views/bottom_popup/cupertino_action_sheet_builder.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
@@ -26,7 +28,7 @@ mixin PopupContextMenuActionMixin {
Widget buildCancelButton(BuildContext context) {
return MouseRegion(
cursor: BuildUtils.isWeb ? MaterialStateMouseCursor.clickable : MouseCursor.defer,
cursor: PlatformInfo.isWeb ? MaterialStateMouseCursor.clickable : MouseCursor.defer,
child: CupertinoActionSheetAction(
child: Text(
AppLocalizations.of(context).cancel,
@@ -7,13 +7,13 @@ typedef OnTapMaterialTextButton = Function();
class MaterialTextButton extends StatelessWidget {
final String label;
final OnTapMaterialTextButton onTap;
final OnTapMaterialTextButton? onTap;
final double borderRadius;
final Color? labelColor;
final double labelSize;
final FontWeight? labelWeight;
final TextStyle? customStyle;
final EdgeInsets? padding;
final EdgeInsetsGeometry? padding;
final TextOverflow? overflow;
final bool? softWrap;
@@ -3,6 +3,7 @@ import 'dart:io';
import 'dart:typed_data';
import 'package:core/utils/app_logger.dart';
import 'package:core/utils/platform_info.dart';
import 'package:get/get.dart';
import 'package:hive/hive.dart';
import 'package:path_provider/path_provider.dart' as path_provider;
@@ -41,7 +42,7 @@ class HiveCacheConfig {
if (databasePath != null) {
Hive.init(databasePath);
} else {
if (!GetPlatform.isWeb) {
if (PlatformInfo.isMobile) {
Directory directory = await path_provider.getApplicationDocumentsDirectory();
Hive.init(directory.path);
}
@@ -170,7 +170,7 @@ class ComposerController extends BaseController {
Future<String> _getEmailBodyText(BuildContext context, {
bool changedEmail = false
}) async {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
var contentHtml = '';
if (_responsiveUtils.isWebDesktop(context) &&
screenDisplayMode.value == ScreenDisplayMode.minimize) {
@@ -223,7 +223,7 @@ class ComposerController extends BaseController {
createFocusNodeInput();
scrollControllerEmailAddress.addListener(_scrollControllerEmailAddressListener);
_listenWorker();
if (!BuildUtils.isWeb) {
if (PlatformInfo.isMobile) {
WidgetsBinding.instance.addPostFrameCallback((timeStamp) async {
await FkUserAgent.init();
});
@@ -237,7 +237,7 @@ class ComposerController extends BaseController {
@override
void onReady() {
_initEmail();
if (!BuildUtils.isWeb) {
if (PlatformInfo.isMobile) {
Future.delayed(const Duration(milliseconds: 500), _checkContactPermission);
}
super.onReady();
@@ -246,7 +246,7 @@ class ComposerController extends BaseController {
@override
void onClose() {
_initTextEditor = null;
if (!BuildUtils.isWeb) {
if (PlatformInfo.isMobile) {
FkUserAgent.release();
}
super.onClose();
@@ -289,7 +289,7 @@ class ComposerController extends BaseController {
} else if (success is GetAllIdentitiesSuccess) {
_handleGetAllIdentitiesSuccess(success);
} else if (success is DownloadImageAsBase64Success) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
richTextWebController.insertImage(
InlineImage(
ImageSource.local,
@@ -369,7 +369,7 @@ class ComposerController extends BaseController {
subjectEmailInputFocusNode?.addListener(() {
log('ComposerController::createFocusNodeInput():subjectEmailInputFocusNode: ${subjectEmailInputFocusNode?.hasFocus}');
if (subjectEmailInputFocusNode?.hasFocus == true) {
if (!BuildUtils.isWeb) {
if (PlatformInfo.isMobile) {
htmlEditorApi?.unfocus();
}
_collapseAllRecipient();
@@ -430,7 +430,7 @@ class ComposerController extends BaseController {
uploadController.initializeUploadAttachments(
arguments.attachments!.listAttachmentsDisplayedOutSide);
}
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
expandModeAttachments.value = ExpandMode.EXPAND;
}
}
@@ -1043,7 +1043,7 @@ class ComposerController extends BaseController {
}
}
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
mailboxDashBoardController.closeComposerOverlay();
} else {
if (canPop) popBack();
@@ -1379,11 +1379,11 @@ class ComposerController extends BaseController {
break;
}
_closeSuggestionBox();
if (!BuildUtils.isWeb) {
if (PlatformInfo.isMobile) {
htmlEditorApi?.unfocus();
}
} else {
if (!BuildUtils.isWeb) {
if (PlatformInfo.isMobile) {
_collapseAllRecipient();
_autoCreateEmailTag();
}
@@ -1399,7 +1399,7 @@ class ComposerController extends BaseController {
}
bool get _isMobileApp {
return !BuildUtils.isWeb
return PlatformInfo.isMobile
&& currentContext != null
&& (_responsiveUtils.isLandscapeMobile(currentContext!) || _responsiveUtils.isPortraitMobile(currentContext!));
}
@@ -1455,7 +1455,7 @@ class ComposerController extends BaseController {
}
Future<void> _applySignature(String signature) async {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
richTextWebController.editorController.insertSignature(signature);
} else {
await htmlEditorApi?.insertSignature(signature);
@@ -1464,7 +1464,7 @@ class ComposerController extends BaseController {
Future<void> _removeSignature() async {
log('ComposerController::_removeSignature():');
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
richTextWebController.editorController.removeSignature();
} else {
await htmlEditorApi?.removeSignature();
@@ -1482,7 +1482,7 @@ class ComposerController extends BaseController {
final inlineImage = await _selectFromFile();
log('ComposerController::insertImage(): $inlineImage');
if (inlineImage != null) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
_insertImageOnWeb(inlineImage);
} else {
_insertImageOnMobileAndTablet(inlineImage);
@@ -1497,13 +1497,13 @@ class ComposerController extends BaseController {
Future<InlineImage?> _selectFromFile() async {
final filePickerResult = await FilePicker.platform.pickFiles(
type: FileType.image,
withData: !BuildUtils.isWeb,
withReadStream: BuildUtils.isWeb);
withData: PlatformInfo.isMobile,
withReadStream: PlatformInfo.isWeb);
final platformFile = filePickerResult?.files.single;
if (platformFile != null) {
final fileSelected = FileInfo(
platformFile.name,
BuildUtils.isWeb ? '' : platformFile.path ?? '',
PlatformInfo.isWeb ? '' : platformFile.path ?? '',
platformFile.size,
bytes: platformFile.bytes,
readStream: platformFile.readStream);
@@ -1649,7 +1649,7 @@ class ComposerController extends BaseController {
toAddressFocusNode?.requestFocus();
} else if (subjectEmailInputController.text.isEmpty) {
subjectEmailInputFocusNode?.requestFocus();
} else if (BuildUtils.isWeb) {
} else if (PlatformInfo.isWeb) {
Future.delayed(
const Duration(milliseconds: 500),
richTextWebController.editorController.setFocus
@@ -127,7 +127,9 @@ class ComposerView extends BaseComposerView {
buildDivider(),
Expanded(child: _buildBodyTablet(context)),
buildDivider(),
buildBottomBar(context),
Padding(
padding: const EdgeInsetsDirectional.symmetric(vertical: 16),
child: buildBottomBar(context)),
])
)
)
@@ -1,7 +1,7 @@
import 'package:core/presentation/utils/keyboard_utils.dart';
import 'package:core/utils/app_logger.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:jmap_dart_client/jmap/account_id.dart';
@@ -63,7 +63,7 @@ class ContactController extends BaseController {
}
injectAutoCompleteBindings(_session, _accountId);
}
if (!BuildUtils.isWeb) {
if (PlatformInfo.isMobile) {
Future.delayed(
const Duration(milliseconds: 500),
() => _checkContactPermission());
@@ -178,7 +178,7 @@ class ContactController extends BaseController {
void selectContact(BuildContext context, EmailAddress emailAddress) {
KeyboardUtils.hideKeyboard(context);
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
onSelectedContactCallback?.call(emailAddress);
} else {
popBack(result: emailAddress);
@@ -189,7 +189,7 @@ class ContactController extends BaseController {
clearAllTextInputSearchForm();
KeyboardUtils.hideKeyboard(context);
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
onDismissContactView?.call();
} else {
popBack();
@@ -1,11 +1,11 @@
import 'package:core/presentation/utils/responsive_utils.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/material.dart';
class ContactUtils {
static EdgeInsets getPaddingAppBar(BuildContext context, ResponsiveUtils responsiveUtils) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
return const EdgeInsets.symmetric(horizontal: 16);
} else {
if (responsiveUtils.isScreenWithShortestSide(context)) {
@@ -17,7 +17,7 @@ class ContactUtils {
}
static EdgeInsets getPaddingSearchInputForm(BuildContext context, ResponsiveUtils responsiveUtils) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
return const EdgeInsets.symmetric(horizontal: 16, vertical: 10);
} else {
if (responsiveUtils.isScreenWithShortestSide(context)) {
@@ -29,7 +29,7 @@ class ContactUtils {
}
static EdgeInsets getPaddingSearchResultList(BuildContext context, ResponsiveUtils responsiveUtils) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
return const EdgeInsets.symmetric(horizontal: 16, vertical: 10);
} else {
if (responsiveUtils.isScreenWithShortestSide(context)) {
@@ -41,7 +41,7 @@ class ContactUtils {
}
static EdgeInsets getPaddingDividerSearchResultList(BuildContext context, ResponsiveUtils responsiveUtils) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
return const EdgeInsets.symmetric(horizontal: 16);
} else {
if (responsiveUtils.isScreenWithShortestSide(context)) {
@@ -53,7 +53,7 @@ class ContactUtils {
}
static bool supportAppBarTopBorder(BuildContext context, ResponsiveUtils responsiveUtils) {
if (BuildUtils.isWeb || responsiveUtils.isLandscapeMobile(context)) {
if (PlatformInfo.isWeb || responsiveUtils.isLandscapeMobile(context)) {
return false;
}
return true;
@@ -6,7 +6,6 @@ import 'package:core/presentation/extensions/color_extension.dart';
import 'package:core/presentation/resources/image_paths.dart';
import 'package:core/presentation/utils/responsive_utils.dart';
import 'package:core/utils/app_logger.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
@@ -87,7 +86,7 @@ class _AutocompleteContactTextFieldWithTagsState extends State<AutocompleteConta
keyboardType: TextInputType.emailAddress,
textInputAction: TextInputAction.done,
hasAddButton: false,
tagSpacing: BuildUtils.isWeb ? 12 : 8,
tagSpacing: PlatformInfo.isWeb ? 12 : 8,
autofocus: false,
minTextFieldWidth: 20,
debounceDuration: const Duration(milliseconds: 150),
@@ -1,7 +1,7 @@
import 'package:core/presentation/extensions/color_extension.dart';
import 'package:core/presentation/views/text/input_decoration_builder.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/material.dart';
class ContactInputDecorationBuilder extends InputDecorationBuilder {
@@ -43,7 +43,7 @@ class ContactInputDecorationBuilder extends InputDecorationBuilder {
fontWeight: FontWeight.w500,
fontSize: 16),
contentPadding: const EdgeInsets.symmetric(
vertical: BuildUtils.isWeb ? 16 : 12,
vertical: PlatformInfo.isWeb ? 16 : 12,
horizontal: 12),
errorText: errorText,
errorStyle: errorTextStyle ?? const TextStyle(
@@ -2,7 +2,7 @@
import 'package:core/presentation/extensions/color_extension.dart';
import 'package:core/presentation/resources/image_paths.dart';
import 'package:core/presentation/utils/style_utils.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart';
@@ -72,7 +72,7 @@ class ContactInputTagItem extends StatelessWidget {
onDeleted: () => deleteContactCallbackAction?.call(contact),
);
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
return Padding(
padding: const EdgeInsets.only(top: 10),
child: itemChild
@@ -3,7 +3,7 @@ import 'package:core/presentation/state/failure.dart';
import 'package:core/presentation/state/success.dart';
import 'package:core/presentation/utils/app_toast.dart';
import 'package:core/presentation/utils/keyboard_utils.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:jmap_dart_client/jmap/account_id.dart';
@@ -378,7 +378,7 @@ class DestinationPickerController extends BaseMailboxController {
return;
}
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
onSelectedMailboxCallback?.call(mailboxDestination.value);
} else {
popBack(result: mailboxDestination.value);
@@ -427,7 +427,7 @@ class DestinationPickerController extends BaseMailboxController {
void closeDestinationPicker(BuildContext context) {
KeyboardUtils.hideKeyboard(context);
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
onDismissDestinationPicker?.call();
} else {
popBack();
@@ -7,7 +7,7 @@ import 'package:core/presentation/views/button/icon_button_web.dart';
import 'package:core/presentation/views/list/tree_view.dart';
import 'package:core/presentation/views/search/search_bar_view.dart';
import 'package:core/presentation/views/text/text_field_builder.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:core/utils/direction_utils.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
@@ -73,7 +73,7 @@ class DestinationPickerView extends GetWidget<DestinationPickerController>
borderOnForeground: false,
color: Colors.transparent,
child: SafeArea(
top: !BuildUtils.isWeb && _responsiveUtils.isPortraitMobile(context),
top: PlatformInfo.isMobile && _responsiveUtils.isPortraitMobile(context),
bottom: false,
left: false,
right: false,
@@ -104,8 +104,8 @@ class DestinationPickerView extends GetWidget<DestinationPickerController>
child: SafeArea(
top: false,
bottom: false,
left: !BuildUtils.isWeb && _responsiveUtils.isLandscapeMobile(context),
right: !BuildUtils.isWeb && _responsiveUtils.isLandscapeMobile(context),
left: PlatformInfo.isMobile && _responsiveUtils.isLandscapeMobile(context),
right: PlatformInfo.isMobile && _responsiveUtils.isLandscapeMobile(context),
child: Column(children: [
Obx(() => TopBarDestinationPickerBuilder(
controller.mailboxAction.value,
@@ -371,12 +371,8 @@ class DestinationPickerView extends GetWidget<DestinationPickerController>
return TreeViewChild(
context,
key: const Key('children_tree_mailbox_child'),
isDirectionRTL: AppUtils.isDirectionRTL(context),
isExpanded: mailboxNode.expandMode == ExpandMode.EXPAND,
paddingChild: EdgeInsets.only(
left: AppUtils.isDirectionRTL(context) ? 0 : 14,
right: AppUtils.isDirectionRTL(context) ? 14 : 0,
),
paddingChild: const EdgeInsetsDirectional.only(start: 14),
parent: (MailBoxFolderTileBuilder(
context,
_imagePaths,
@@ -468,8 +464,8 @@ class DestinationPickerView extends GetWidget<DestinationPickerController>
child: Row(children: [
SvgPicture.asset(
_imagePaths.icFolderMailbox,
width: BuildUtils.isWeb ? 20 : 24,
height: BuildUtils.isWeb ? 20 : 24,
width: PlatformInfo.isWeb ? 20 : 24,
height: PlatformInfo.isWeb ? 20 : 24,
fit: BoxFit.fill
),
const SizedBox(width: 8),
@@ -586,7 +582,7 @@ class DestinationPickerView extends GetWidget<DestinationPickerController>
}
BorderRadius _getRadiusDestinationPicker(BuildContext context) {
if (!BuildUtils.isWeb && _responsiveUtils.isLandscapeMobile(context)) {
if (PlatformInfo.isMobile && _responsiveUtils.isLandscapeMobile(context)) {
return BorderRadius.zero;
} else if (_responsiveUtils.isMobile(context)) {
return const BorderRadius.only(
@@ -598,7 +594,7 @@ class DestinationPickerView extends GetWidget<DestinationPickerController>
}
double _getWidthDestinationPicker(BuildContext context) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
if (_responsiveUtils.isMobile(context)) {
return double.infinity;
} else {
@@ -615,7 +611,7 @@ class DestinationPickerView extends GetWidget<DestinationPickerController>
}
double _getHeightDestinationPicker(BuildContext context) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
if (_responsiveUtils.isMobile(context)) {
return double.infinity;
} else {
@@ -641,7 +637,7 @@ class DestinationPickerView extends GetWidget<DestinationPickerController>
}
EdgeInsets _getMarginDestinationPicker(BuildContext context) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
if (_responsiveUtils.isMobile(context)) {
return EdgeInsets.zero;
} else {
@@ -2,7 +2,7 @@ import 'package:core/presentation/extensions/color_extension.dart';
import 'package:core/presentation/resources/image_paths.dart';
import 'package:core/presentation/utils/responsive_utils.dart';
import 'package:core/presentation/utils/style_utils.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
@@ -84,8 +84,8 @@ class DestinationPickerSearchMailboxItemBuilder extends StatelessWidget {
Widget _buildMailboxIcon() {
return SvgPicture.asset(
_presentationMailbox.getMailboxIcon(_imagePaths),
width: BuildUtils.isWeb ? 20 : 24,
height: BuildUtils.isWeb ? 20 : 24,
width: PlatformInfo.isWeb ? 20 : 24,
height: PlatformInfo.isWeb ? 20 : 24,
fit: BoxFit.fill
);
}
@@ -3,7 +3,7 @@ import 'dart:io';
import 'package:core/presentation/state/failure.dart';
import 'package:core/presentation/state/success.dart';
import 'package:core/utils/app_logger.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:dartz/dartz.dart';
import 'package:jmap_dart_client/jmap/account_id.dart';
import 'package:jmap_dart_client/jmap/core/session/session.dart';
@@ -30,7 +30,7 @@ class GetEmailContentInteractor {
try {
yield Right<Failure, Success>(GetEmailContentLoading());
if (!BuildUtils.isWeb) {
if (PlatformInfo.isMobile) {
yield* _tryToGetOpenedEmailCache(session, accountId, emailId, baseDownloadUrl, composeEmail: composeEmail, draftsEmail: draftsEmail);
} else {
yield* _getContentEmailFromServer(session, accountId, emailId, baseDownloadUrl, composeEmail: composeEmail, draftsEmail: draftsEmail);
@@ -62,7 +62,7 @@ class GetEmailContentInteractor {
draftsEmail: draftsEmail
);
final newEmailContentsDisplayed = BuildUtils.isWeb && !composeEmail
final newEmailContentsDisplayed = PlatformInfo.isWeb && !composeEmail
? await emailRepository.addTooltipWhenHoverOnLink(newEmailContents)
: newEmailContents;
@@ -1,6 +1,6 @@
import 'dart:collection';
import 'package:collection/collection.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
@@ -55,7 +55,7 @@ class EmailSupervisorController extends GetxController {
bool get isSearchActivatedOnMobile {
return mailboxDashBoardController.searchController.isSearchEmailRunning
&& !BuildUtils.isWeb;
&& PlatformInfo.isMobile;
}
void createPageControllerAndJumpToEmailById(EmailId currentEmailId) {
@@ -112,7 +112,7 @@ class EmailSupervisorController extends GetxController {
}
void _jumpToPage(int page) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
pageController?.jumpToPage(page);
} else {
pageController?.animateToPage(
@@ -123,7 +123,7 @@ class EmailSupervisorController extends GetxController {
}
void updateScrollPhysicPageView({bool isScrollPageViewActivated = false}) {
if (BuildUtils.isWeb || !isScrollPageViewActivated) {
if (PlatformInfo.isWeb || !isScrollPageViewActivated) {
scrollPhysicsPageView.value = const NeverScrollableScrollPhysics();
} else {
scrollPhysicsPageView.value = null;
@@ -382,7 +382,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
initialEmailContents = success.emailContents;
attachments.value = success.attachments;
if (!BuildUtils.isWeb) {
if (PlatformInfo.isMobile) {
final detailedEmail = DetailedEmail(
emailId: currentEmail!.id!,
attachments: attachments,
@@ -655,7 +655,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
session,
mailboxIdSelected: currentMailbox.mailboxId
);
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
showDialogDestinationPicker(
context: context,
arguments: arguments,
@@ -1117,7 +1117,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
void _updateRouteOnBrowser() {
log('SingleEmailController::_updateRouteOnBrowser(): isSearchEmailRunning: ${mailboxDashBoardController.searchController.isSearchEmailRunning}');
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
final selectedMailboxId = mailboxDashBoardController.selectedMailbox.value?.id;
final route = RouteUtils.generateRouteBrowser(
AppRoutes.dashboard,
@@ -1159,7 +1159,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
session,
emailAddress: emailAddress);
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
showDialogRuleFilterCreator(
context: context,
arguments: arguments,
@@ -1216,7 +1216,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
}
Future<bool> backButtonPressedCallbackAction(BuildContext context) async {
if (!BuildUtils.isWeb) {
if (PlatformInfo.isMobile) {
closeEmailView(context);
}
return false;
+11 -11
View File
@@ -8,7 +8,7 @@ import 'package:core/presentation/views/html_viewer/html_content_viewer_on_web_w
import 'package:core/presentation/views/html_viewer/html_content_viewer_widget.dart';
import 'package:core/presentation/views/html_viewer/html_viewer_controller_for_web.dart';
import 'package:core/utils/app_logger.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:filesize/filesize.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
@@ -80,7 +80,7 @@ class EmailView extends GetWidget<SingleEmailController> {
}
EdgeInsets _getMarginEmailView(BuildContext context) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
if (responsiveUtils.isDesktop(context)) {
return EdgeInsets.only(
left: AppUtils.isDirectionRTL(context) ? 16 : 0,
@@ -134,7 +134,7 @@ class EmailView extends GetWidget<SingleEmailController> {
}
bool _supportVerticalDivider(BuildContext context) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
return responsiveUtils.isTabletLarge(context);
} else {
return responsiveUtils.isLandscapeTablet(context) ||
@@ -181,7 +181,7 @@ class EmailView extends GetWidget<SingleEmailController> {
_popupMenuEmailActionTile(context, email));
}
},
optionsWidget: BuildUtils.isWeb && controller.emailSupervisorController.supportedPageView.isTrue
optionsWidget: PlatformInfo.isWeb && controller.emailSupervisorController.supportedPageView.isTrue
? _buildNavigatorPageViewWidgets(context)
: null,
));
@@ -225,7 +225,7 @@ class EmailView extends GetWidget<SingleEmailController> {
}
Widget _buildEmailBody(BuildContext context, PresentationEmail email) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
return _buildEmailMessage(context, email);
} else {
return SingleChildScrollView(
@@ -256,8 +256,8 @@ class EmailView extends GetWidget<SingleEmailController> {
padding: const EdgeInsets.symmetric(vertical: 12, horizontal: 16),
child: SelectableText(
email.getEmailTitle(),
maxLines: BuildUtils.isWeb ? 2 : null,
minLines: BuildUtils.isWeb ? 1 : null,
maxLines: PlatformInfo.isWeb ? 2 : null,
minLines: PlatformInfo.isWeb ? 1 : null,
cursorColor: AppColor.colorTextButton,
style: const TextStyle(
fontSize: 20,
@@ -280,7 +280,7 @@ class EmailView extends GetWidget<SingleEmailController> {
),
_buildLoadingView(),
_buildAttachments(context),
if (BuildUtils.isWeb)
if (PlatformInfo.isWeb)
Expanded(child: Padding(
padding: EdgeInsets.only(
left: AppUtils.isDirectionRTL(context) ? 0 : 16,
@@ -400,7 +400,7 @@ class EmailView extends GetWidget<SingleEmailController> {
.map((attachment) => AttachmentFileTileBuilder(
attachment,
onDownloadAttachmentFileActionClick: (attachment) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
controller.downloadAttachmentForWeb(context, attachment);
} else {
controller.exportAttachment(context, attachment);
@@ -423,7 +423,7 @@ class EmailView extends GetWidget<SingleEmailController> {
AttachmentFileTileBuilder(
attachments[index],
onDownloadAttachmentFileActionClick: (attachment) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
controller.downloadAttachmentForWeb(context, attachment);
} else {
controller.exportAttachment(context, attachment);
@@ -445,7 +445,7 @@ class EmailView extends GetWidget<SingleEmailController> {
if (controller.emailContents.value != null) {
final allEmailContents = controller.emailContents.value;
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
return HtmlContentViewerOnWeb(
widthContent: constraints.maxWidth,
heightContent: responsiveUtils.getSizeScreenHeight(context),
@@ -92,7 +92,7 @@ class AppBarMailWidgetBuilder extends StatelessWidget {
}
bool _supportDisplayMailboxNameTitle(BuildContext context) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
return _responsiveUtils.isDesktop(context) ||
_responsiveUtils.isMobile(context) ||
_responsiveUtils.isTablet(context) ||
@@ -141,8 +141,8 @@ class AppBarMailWidgetBuilder extends StatelessWidget {
colorFilter: mailboxContain?.isTrash == false
? AppColor.colorTextButton.asFilter()
: AppColor.colorDeletePermanentlyButton.asFilter(),
width: BuildUtils.isWeb ? 18 : 20,
height: BuildUtils.isWeb ? 18 : 20,
width: PlatformInfo.isWeb ? 18 : 20,
height: PlatformInfo.isWeb ? 18 : 20,
fit: BoxFit.fill),
tooltip: mailboxContain?.isTrash == false
? AppLocalizations.of(context).move_to_trash
@@ -31,7 +31,7 @@ class EmailActionCupertinoActionSheetActionBuilder extends CupertinoActionSheetA
return Container(
color: bgColor ?? Colors.white,
child: MouseRegion(
cursor: BuildUtils.isWeb ? MaterialStateMouseCursor.clickable : MouseCursor.defer,
cursor: PlatformInfo.isWeb ? MaterialStateMouseCursor.clickable : MouseCursor.defer,
child: CupertinoActionSheetAction(
key: key,
child: Row(mainAxisAlignment: MainAxisAlignment.center, children: [
@@ -3,7 +3,7 @@ import 'package:core/presentation/utils/keyboard_utils.dart';
import 'package:core/presentation/state/failure.dart';
import 'package:core/presentation/state/success.dart';
import 'package:core/utils/app_logger.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/cupertino.dart';
import 'package:get/get_core/get_core.dart';
import 'package:get/get_instance/get_instance.dart';
@@ -168,7 +168,7 @@ class IdentityCreatorController extends BaseController {
if (identity?.signatureAsString.isNotEmpty == true) {
updateContentHtmlEditor(arguments?.identity?.signatureAsString ?? '');
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
signatureHtmlEditorController.setText(arguments?.identity?.signatureAsString ?? '');
}
}
@@ -296,7 +296,7 @@ class IdentityCreatorController extends BaseController {
}
Future<String?> _getSignatureHtmlText() async {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
return signatureHtmlEditorController.getText();
} else {
return keyboardRichTextController.htmlEditorApi?.getText();
@@ -318,7 +318,7 @@ class IdentityCreatorController extends BaseController {
return;
}
final signatureHtmlText = BuildUtils.isWeb
final signatureHtmlText = PlatformInfo.isWeb
? contentHtmlEditor
: await _getSignatureHtmlText();
final bccAddress = bccOfIdentity.value != null && bccOfIdentity.value != noneEmailAddress
@@ -349,7 +349,7 @@ class IdentityCreatorController extends BaseController {
isDefaultIdentity: isDefaultIdentity.value
);
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
onCreatedIdentityCallback?.call(identityRequest);
} else {
popBack(result: identityRequest);
@@ -360,7 +360,7 @@ class IdentityCreatorController extends BaseController {
identityRequest: newIdentity.toIdentityRequest(),
isDefaultIdentity: isDefaultIdentity.value);
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
onCreatedIdentityCallback?.call(identityRequest);
} else {
popBack(result: identityRequest);
@@ -426,7 +426,7 @@ class IdentityCreatorController extends BaseController {
}
void clearFocusEditor(BuildContext context) {
if (!BuildUtils.isWeb) {
if (PlatformInfo.isMobile) {
keyboardRichTextController.htmlEditorApi?.unfocus();
KeyboardUtils.hideSystemKeyboardMobile();
}
@@ -434,7 +434,7 @@ class IdentityCreatorController extends BaseController {
}
void closeView(BuildContext context) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
onDismissIdentityCreator?.call();
} else {
popBack();
@@ -9,7 +9,7 @@ import 'package:core/presentation/utils/style_utils.dart';
import 'package:core/presentation/views/button/icon_button_web.dart';
import 'package:core/presentation/views/responsive/responsive_widget.dart';
import 'package:core/utils/app_logger.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart';
@@ -63,7 +63,7 @@ class IdentityCreatorView extends GetWidget<IdentityCreatorController> {
borderOnForeground: false,
color: Colors.transparent,
child: SafeArea(
top: !BuildUtils.isWeb,
top: PlatformInfo.isMobile,
bottom: false,
left: false,
right: false,
@@ -211,7 +211,7 @@ class IdentityCreatorView extends GetWidget<IdentityCreatorController> {
controller.errorNameIdentity.value,
AppLocalizations.of(context).required,
editingController: controller.inputNameIdentityController,
focusNode: BuildUtils.isWeb ? null : controller.inputNameIdentityFocusNode,
focusNode: PlatformInfo.isWeb ? null : controller.inputNameIdentityFocusNode,
isMandatory: true,
onChangeInputNameAction: (value) => controller.updateNameIdentity(context, value)
)),
@@ -243,7 +243,7 @@ class IdentityCreatorView extends GetWidget<IdentityCreatorController> {
AppLocalizations.of(context).bcc_to,
controller.errorBccIdentity.value,
controller.inputBccIdentityController,
focusNode: BuildUtils.isWeb ? null : controller.inputBccIdentityFocusNode,
focusNode: PlatformInfo.isWeb ? null : controller.inputBccIdentityFocusNode,
onSelectedSuggestionAction: (newEmailAddress) {
controller.inputBccIdentityController?.text = newEmailAddress?.email ?? '';
controller.updateBccOfIdentity(newEmailAddress);
@@ -287,7 +287,7 @@ class IdentityCreatorView extends GetWidget<IdentityCreatorController> {
child: Column(children: [
_buildHeaderView(context),
Expanded(
child: BuildUtils.isWeb
child: PlatformInfo.isWeb
? PointerInterceptor(child: bodyCreatorView)
: KeyboardRichText(
keyBroadToolbar: RichTextKeyboardToolBar(
@@ -343,13 +343,13 @@ class IdentityCreatorView extends GetWidget<IdentityCreatorController> {
}
Widget _buildSignatureHtmlTemplate(BuildContext context) {
final htmlEditor = BuildUtils.isWeb
final htmlEditor = PlatformInfo.isWeb
? _buildHtmlEditorWeb(context, controller.contentHtmlEditor ?? '')
: _buildHtmlEditor(context, initialContent: controller.contentHtmlEditor ?? '');
return Column(
children: [
if(BuildUtils.isWeb)
if(PlatformInfo.isWeb)
ToolbarRichTextWebBuilder(
richTextWebController: controller.richTextWebController,
padding: const EdgeInsets.only(top: 22, bottom: 8.0, left: 24, right: 12)),
@@ -7,5 +7,5 @@ class OIDCConstant {
static const keyAuthorityOidc = 'KEY_AUTHORITY_OIDC';
static const authResponseKey = "auth_info";
static String get clientId => BuildUtils.isWeb ? AppConfig.webOidcClientId : mobileOidcClientId;
static String get clientId => PlatformInfo.isWeb ? AppConfig.webOidcClientId : mobileOidcClientId;
}
@@ -1,12 +1,12 @@
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:model/oidc/oidc_configuration.dart';
import 'package:tmail_ui_user/main/utils/app_config.dart';
extension OidcConfigurationExtensions on OIDCConfiguration {
String get redirectUrl {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
if (AppConfig.domainRedirectUrl.endsWith('/')) {
return AppConfig.domainRedirectUrl + loginRedirectOidcWeb;
} else {
@@ -18,7 +18,7 @@ extension OidcConfigurationExtensions on OIDCConfiguration {
}
String get logoutRedirectUrl {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
if (AppConfig.domainRedirectUrl.endsWith('/')) {
return AppConfig.domainRedirectUrl + logoutRedirectOidcWeb;
} else {
@@ -3,7 +3,7 @@ import 'package:core/presentation/extensions/url_extension.dart';
import 'package:core/presentation/state/failure.dart';
import 'package:core/presentation/state/success.dart';
import 'package:core/utils/app_logger.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:dartz/dartz.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/foundation.dart';
@@ -127,7 +127,7 @@ class LoginController extends ReloadableController {
@override
void onReady() {
super.onReady();
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
final arguments = Get.arguments;
if (arguments is LoginArguments) {
loginFormType.value = arguments.loginFormType;
@@ -215,7 +215,7 @@ class LoginController extends ReloadableController {
}
void _checkOIDCIsAvailable() {
final baseUri = BuildUtils.isWeb ? _parseUri(AppConfig.baseUrl) : _parseUri(_urlText);
final baseUri = PlatformInfo.isWeb ? _parseUri(AppConfig.baseUrl) : _parseUri(_urlText);
if (baseUri == null) {
loginState.value = LoginState(Left(LoginMissUrlAction()));
} else {
@@ -286,7 +286,7 @@ class LoginController extends ReloadableController {
void _getOIDCConfigurationSuccess(GetOIDCConfigurationSuccess success) {
log('LoginController::_getOIDCConfigurationSuccess():success: $success');
loginState.value = LoginState(Right(success));
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
_authenticateOidcOnBrowserAction(success.oidcConfiguration);
} else {
_getTokenOIDCAction(success.oidcConfiguration);
@@ -323,8 +323,8 @@ class LoginController extends ReloadableController {
void _getTokenOIDCSuccess(GetTokenOIDCSuccess success) {
log('LoginController::_getTokenOIDCSuccess(): ${success.tokenOIDC.toString()}');
loginState.value = LoginState(Right(success));
_dynamicUrlInterceptors.setJmapUrl(BuildUtils.isWeb ? AppConfig.baseUrl : _urlText);
_dynamicUrlInterceptors.changeBaseUrl(BuildUtils.isWeb ? AppConfig.baseUrl : _urlText);
_dynamicUrlInterceptors.setJmapUrl(PlatformInfo.isWeb ? AppConfig.baseUrl : _urlText);
_dynamicUrlInterceptors.changeBaseUrl(PlatformInfo.isWeb ? AppConfig.baseUrl : _urlText);
authorizationInterceptors.setTokenAndAuthorityOidc(
newToken: success.tokenOIDC.toToken(),
newConfig: success.configuration);
@@ -340,8 +340,8 @@ class LoginController extends ReloadableController {
void _loginSuccessAction(AuthenticationUserSuccess success) {
loginState.value = LoginState(Right(success));
_dynamicUrlInterceptors.setJmapUrl(BuildUtils.isWeb ? AppConfig.baseUrl : _urlText);
_dynamicUrlInterceptors.changeBaseUrl(BuildUtils.isWeb ? AppConfig.baseUrl : _urlText);
_dynamicUrlInterceptors.setJmapUrl(PlatformInfo.isWeb ? AppConfig.baseUrl : _urlText);
_dynamicUrlInterceptors.changeBaseUrl(PlatformInfo.isWeb ? AppConfig.baseUrl : _urlText);
authorizationInterceptors.setBasicAuthorization(_userNameText, _passwordText);
authorizationIsolateInterceptors.setBasicAuthorization(_userNameText, _passwordText);
pushAndPop(AppRoutes.session, arguments: _dynamicUrlInterceptors.baseUrl);
@@ -361,7 +361,7 @@ class LoginController extends ReloadableController {
}
void _saveRecentLoginUrl() {
if (_urlText?.isNotEmpty == true && !BuildUtils.isWeb) {
if (_urlText?.isNotEmpty == true && PlatformInfo.isMobile) {
final recentLoginUrl = RecentLoginUrl.now(_urlText!);
log('LoginController::_saveRecentLoginUrl(): $recentLoginUrl');
consumeState(_saveLoginUrlOnMobileInteractor.execute(recentLoginUrl));
@@ -386,7 +386,7 @@ class LoginController extends ReloadableController {
}
void _saveRecentLoginUsername() {
if(BuildUtils.isWeb || _userNameText == null || _userNameText!.isEmpty || !_userNameText!.isEmail) {
if(PlatformInfo.isWeb || _userNameText == null || _userNameText!.isEmpty || !_userNameText!.isEmail) {
return ;
}
final recentLoginUsername = RecentLoginUsername.now(_userNameText!);
@@ -3,7 +3,7 @@ import 'dart:async';
import 'package:core/presentation/state/failure.dart';
import 'package:core/presentation/state/success.dart';
import 'package:core/utils/app_logger.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:dartz/dartz.dart';
import 'package:jmap_dart_client/jmap/account_id.dart';
import 'package:jmap_dart_client/jmap/core/properties/properties.dart';
@@ -41,7 +41,7 @@ class MailboxIsolateWorker {
int totalEmailUnread,
StreamController<Either<Failure, Success>> onProgressController
) async {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
return _handleMarkAsMailboxReadActionOnWeb(
session,
accountId,
@@ -409,7 +409,7 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
NavigationRouter? get navigationRouter => mailboxDashBoardController.navigationRouter;
bool get isHasDataFromRoute => BuildUtils.isWeb && navigationRouter != null;
bool get isHasDataFromRoute => PlatformInfo.isWeb && navigationRouter != null;
MailboxId? get mailboxIdFromNavigationRouter => navigationRouter?.mailboxId;
@@ -477,7 +477,7 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
teamMailboxesTree.value,
mailboxDashBoardController.sessionCurrent!);
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
showDialogMailboxCreator(
context: context,
arguments: arguments,
@@ -532,7 +532,7 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
}
void openSearchViewAction(BuildContext context) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
SearchMailboxBindings().dependencies();
mailboxDashBoardController.searchMailboxActivated.value = true;
} else {
@@ -962,7 +962,7 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
}
void _updateSelectedMailboxRouteOnBrowser() {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
final selectedMailboxId = selectedMailbox?.id;
final route = RouteUtils.generateRouteBrowser(
AppRoutes.dashboard,
@@ -4,7 +4,7 @@ import 'package:core/presentation/resources/image_paths.dart';
import 'package:core/presentation/utils/responsive_utils.dart';
import 'package:core/presentation/utils/style_utils.dart';
import 'package:core/presentation/views/button/icon_button_web.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart';
@@ -34,7 +34,7 @@ mixin MailboxWidgetMixin {
) {
return [
if (BuildUtils.isWeb)
if (PlatformInfo.isWeb)
MailboxActions.openInNewTab,
if (mailbox.isSpam)
_mailboxActionForSpam(spamReportEnabled),
@@ -47,7 +47,7 @@ mixin MailboxWidgetMixin {
List<MailboxActions> _listActionForPersonalMailbox(PresentationMailbox mailbox) {
return [
if (BuildUtils.isWeb && mailbox.isSubscribedMailbox)
if (PlatformInfo.isWeb && mailbox.isSubscribedMailbox)
MailboxActions.openInNewTab,
if (mailbox.getCountUnReadEmails().isNotEmpty)
MailboxActions.markAsRead,
@@ -63,7 +63,7 @@ mixin MailboxWidgetMixin {
List<MailboxActions> _listActionForTeamMailbox(PresentationMailbox mailbox) {
return [
if (BuildUtils.isWeb && mailbox.isSubscribedMailbox)
if (PlatformInfo.isWeb && mailbox.isSubscribedMailbox)
MailboxActions.openInNewTab,
if (mailbox.getCountUnReadEmails().isNotEmpty)
MailboxActions.markAsRead,
@@ -41,7 +41,7 @@ class MailboxBottomSheetActionTileBuilder extends CupertinoActionSheetActionBuil
child: Container(
color: bgColor ?? Colors.white,
child: MouseRegion(
cursor: BuildUtils.isWeb ? MaterialStateMouseCursor.clickable : MouseCursor.defer,
cursor: PlatformInfo.isWeb ? MaterialStateMouseCursor.clickable : MouseCursor.defer,
child: CupertinoActionSheetAction(
key: key,
child: Row(mainAxisAlignment: MainAxisAlignment.center, children: [
@@ -143,7 +143,7 @@ class MailboxCreatorController extends BaseController {
_session,
mailboxIdSelected: selectedMailbox.value?.id);
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
showDialogDestinationPicker(
context: context,
arguments: arguments,
@@ -194,7 +194,7 @@ class MailboxCreatorController extends BaseController {
MailboxName(nameMailbox),
mailboxLocation: selectedMailbox.value);
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
onCreatedMailboxCallback?.call(newMailboxArguments);
} else {
popBack(result: newMailboxArguments);
@@ -205,7 +205,7 @@ class MailboxCreatorController extends BaseController {
void closeMailboxCreator(BuildContext context) {
KeyboardUtils.hideKeyboard(context);
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
onDismissMailboxCreator?.call();
} else {
popBack();
@@ -3,7 +3,7 @@ import 'package:core/presentation/resources/image_paths.dart';
import 'package:core/presentation/utils/responsive_utils.dart';
import 'package:core/presentation/utils/style_utils.dart';
import 'package:core/presentation/views/text/text_field_builder.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:core/utils/direction_utils.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
@@ -50,7 +50,7 @@ class MailboxCreatorView extends GetWidget<MailboxCreatorController> {
borderOnForeground: false,
color: Colors.transparent,
child: SafeArea(
top: !BuildUtils.isWeb && _responsiveUtils.isPortraitMobile(context),
top: PlatformInfo.isMobile && _responsiveUtils.isPortraitMobile(context),
bottom: false,
left: false,
right: false,
@@ -81,8 +81,8 @@ class MailboxCreatorView extends GetWidget<MailboxCreatorController> {
child: SafeArea(
top: false,
bottom: false,
left: !BuildUtils.isWeb && _responsiveUtils.isLandscapeMobile(context),
right: !BuildUtils.isWeb && _responsiveUtils.isLandscapeMobile(context),
left: PlatformInfo.isMobile && _responsiveUtils.isLandscapeMobile(context),
right: PlatformInfo.isMobile && _responsiveUtils.isLandscapeMobile(context),
child: Column(children: [
_buildAppBar(context),
const Divider(color: AppColor.colorDividerDestinationPicker, height: 1),
@@ -162,8 +162,8 @@ class MailboxCreatorView extends GetWidget<MailboxCreatorController> {
const SizedBox(width: 12),
Obx(() => SvgPicture.asset(
controller.selectedMailbox.value?.getMailboxIcon(_imagePaths) ?? _imagePaths.icFolderMailbox,
width: BuildUtils.isWeb ? 20 : 24,
height: BuildUtils.isWeb ? 20 : 24,
width: PlatformInfo.isWeb ? 20 : 24,
height: PlatformInfo.isWeb ? 20 : 24,
fit: BoxFit.fill)),
const SizedBox(width: 12),
Expanded(child: Obx(() => Text(
@@ -192,7 +192,7 @@ class MailboxCreatorView extends GetWidget<MailboxCreatorController> {
}
double _getWidthView(BuildContext context) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
if (_responsiveUtils.isMobile(context)) {
return double.infinity;
} else {
@@ -209,7 +209,7 @@ class MailboxCreatorView extends GetWidget<MailboxCreatorController> {
}
double _getHeightView(BuildContext context) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
if (_responsiveUtils.isMobile(context)) {
return double.infinity;
} else {
@@ -235,7 +235,7 @@ class MailboxCreatorView extends GetWidget<MailboxCreatorController> {
}
EdgeInsets _getMarginView(BuildContext context) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
if (_responsiveUtils.isMobile(context)) {
return EdgeInsets.zero;
} else {
@@ -260,7 +260,7 @@ class MailboxCreatorView extends GetWidget<MailboxCreatorController> {
}
BorderRadius _getRadiusView(BuildContext context) {
if (!BuildUtils.isWeb && _responsiveUtils.isLandscapeMobile(context)) {
if (PlatformInfo.isMobile && _responsiveUtils.isLandscapeMobile(context)) {
return BorderRadius.zero;
} else if (_responsiveUtils.isMobile(context)) {
return const BorderRadius.only(
@@ -64,7 +64,7 @@ class AdvancedFilterController extends BaseController {
@override
void onReady() {
if (!BuildUtils.isWeb) {
if (PlatformInfo.isMobile) {
Future.delayed(
const Duration(milliseconds: 500),
() => _checkContactPermission());
@@ -136,7 +136,7 @@ class AdvancedFilterController extends BaseController {
session,
mailboxIdSelected: searchController.searchEmailFilter.value.mailbox?.id);
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
showDialogDestinationPicker(
context: context,
arguments: arguments,
@@ -455,7 +455,7 @@ class MailboxDashBoardController extends ReloadableController {
getAllSendingEmails();
_storeSessionAction(sessionCurrent!);
}
if (!BuildUtils.isWeb && !_notificationManager.isNotificationClickedOnTerminate) {
if (PlatformInfo.isMobile && !_notificationManager.isNotificationClickedOnTerminate) {
_handleClickLocalNotificationOnTerminated();
} else {
dispatchRoute(DashboardRoutes.thread);
@@ -539,7 +539,7 @@ class MailboxDashBoardController extends ReloadableController {
void openEmailDetailedView(PresentationEmail presentationEmail) {
setSelectedEmail(presentationEmail);
dispatchRoute(DashboardRoutes.emailDetailed);
if (BuildUtils.isWeb && presentationEmail.routeWeb != null) {
if (PlatformInfo.isWeb && presentationEmail.routeWeb != null) {
RouteUtils.updateRouteOnBrowser(
'Email-${presentationEmail.id?.id.value ?? ''}',
presentationEmail.routeWeb!
@@ -585,7 +585,7 @@ class MailboxDashBoardController extends ReloadableController {
}
bool _searchInsideEmailDetailedViewIsActive(BuildContext context) {
return BuildUtils.isWeb
return PlatformInfo.isWeb
&& _responsiveUtils.isDesktop(context)
&& dashboardRoute.value == DashboardRoutes.emailDetailed;
}
@@ -792,7 +792,7 @@ class MailboxDashBoardController extends ReloadableController {
sessionCurrent,
mailboxIdSelected: currentMailbox.mailboxId);
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
showDialogDestinationPicker(
context: context,
arguments: arguments,
@@ -1625,7 +1625,7 @@ class MailboxDashBoardController extends ReloadableController {
void handleOnForegroundGained() {
log('MailboxDashBoardController::handleOnForegroundGained():');
if (!BuildUtils.isWeb) {
if (PlatformInfo.isMobile) {
_updateTheme();
}
refreshActionWhenBackToApp();
@@ -3,7 +3,7 @@ import 'dart:io';
import 'package:core/presentation/extensions/color_extension.dart';
import 'package:core/presentation/resources/image_paths.dart';
import 'package:core/presentation/views/text/slogan_builder.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:external_app_launcher/external_app_launcher.dart';
import 'package:flutter/material.dart';
import 'package:get/get_core/get_core.dart';
@@ -35,7 +35,7 @@ class AppListDashboardItem extends StatelessWidget {
}
void _openApp(BuildContext context, LinagoraApp app) async {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
if (await launcher.canLaunchUrl(app.appUri)) {
await launcher.launchUrl(app.appUri);
}
@@ -6,7 +6,7 @@ import 'package:core/presentation/utils/html_transformer/dom/image_transformers.
import 'package:core/presentation/utils/html_transformer/dom/script_transformers.dart';
import 'package:core/presentation/utils/html_transformer/html_transform.dart';
import 'package:core/presentation/utils/html_transformer/transform_configuration.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:jmap_dart_client/jmap/account_id.dart';
import 'package:jmap_dart_client/jmap/core/properties/properties.dart';
import 'package:jmap_dart_client/jmap/core/session/session.dart';
@@ -63,7 +63,7 @@ class IdentityDataSourceImpl extends IdentityDataSource {
const BlockCodeTransformer(),
const AddTargetBlankInTagATransformer(),
const ImageTransformer(),
if (BuildUtils.isWeb) const AddTooltipLinkTransformer()
if (PlatformInfo.isWeb) const AddTooltipLinkTransformer()
]));
return signatureUnescape;
}).catchError(_exceptionThrower.throwException);
@@ -6,7 +6,7 @@ import 'package:core/presentation/utils/responsive_utils.dart';
import 'package:core/presentation/views/bottom_popup/confirmation_dialog_action_sheet_builder.dart';
import 'package:core/presentation/views/dialog/confirmation_dialog_builder.dart';
import 'package:core/utils/app_logger.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart';
@@ -88,7 +88,7 @@ class EmailRulesController extends BaseController {
if (accountId != null && session != null) {
final arguments = RulesFilterCreatorArguments(accountId, session);
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
showDialogRuleFilterCreator(
context: context,
arguments: arguments,
@@ -140,7 +140,7 @@ class EmailRulesController extends BaseController {
actionType: CreatorActionType.edit,
tMailRule: rule);
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
showDialogRuleFilterCreator(
context: context,
arguments: arguments,
@@ -30,7 +30,7 @@ class EmailRuleBottomSheetActionTileBuilder
return Container(
color: bgColor ?? Colors.white,
child: MouseRegion(
cursor: BuildUtils.isWeb
cursor: PlatformInfo.isWeb
? MaterialStateMouseCursor.clickable
: MouseCursor.defer,
child: CupertinoActionSheetAction(
@@ -4,7 +4,7 @@ import 'package:core/presentation/resources/image_paths.dart';
import 'package:core/presentation/utils/style_utils.dart';
import 'package:core/presentation/views/button/icon_button_web.dart';
import 'package:core/presentation/views/image/avatar_builder.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart';
@@ -39,7 +39,7 @@ class EmailForwardItemWidget extends StatelessWidget {
color: Colors.transparent,
child: InkWell(
onLongPress: () {
if (!BuildUtils.isWeb) {
if (PlatformInfo.isMobile) {
onSelectRecipientCallback?.call(recipientForward);
}
},
@@ -16,7 +16,6 @@ import 'package:tmail_ui_user/features/manage_account/presentation/mailbox_visib
import 'package:tmail_ui_user/features/manage_account/presentation/mailbox_visibility/utils/mailbox_visibility_utils.dart';
import 'package:tmail_ui_user/features/manage_account/presentation/mailbox_visibility/widgets/mailbox_visibility_folder_tile_builder.dart';
import 'package:tmail_ui_user/features/manage_account/presentation/mailbox_visibility/widgets/mailbox_visibility_header_widget.dart';
import 'package:tmail_ui_user/main/utils/app_utils.dart';
class MailboxVisibilityView extends GetWidget<MailboxVisibilityController>
with AppLoaderMixin,
@@ -138,11 +137,7 @@ class MailboxVisibilityView extends GetWidget<MailboxVisibilityController>
context,
key: const Key('children_tree_mailbox_child'),
isExpanded: mailboxNode.expandMode == ExpandMode.EXPAND,
isDirectionRTL: AppUtils.isDirectionRTL(context),
paddingChild: EdgeInsets.only(
left: AppUtils.isDirectionRTL(context) ? 0 : 10,
right: AppUtils.isDirectionRTL(context) ? 10 : 0,
),
paddingChild: const EdgeInsetsDirectional.only(start: 10),
parent: MailBoxVisibilityFolderTileBuilder(
_imagePaths,
mailboxNode,
@@ -290,7 +290,7 @@ class ManageAccountDashBoardController extends ReloadableController {
}
Future<bool> backButtonPressedCallbackAction(BuildContext context) async {
if (!BuildUtils.isWeb) {
if (PlatformInfo.isMobile) {
backToMailboxDashBoard(context);
}
return false;
@@ -5,7 +5,7 @@ import 'package:core/presentation/utils/responsive_utils.dart';
import 'package:core/presentation/views/image/avatar_builder.dart';
import 'package:core/presentation/views/responsive/responsive_widget.dart';
import 'package:core/presentation/views/text/slogan_builder.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/mixin/user_setting_popup_menu_mixin.dart';
@@ -87,8 +87,8 @@ class ManageAccountDashBoardView extends GetWidget<ManageAccountDashBoardControl
return VacationNotificationMessageWidget(
margin: const EdgeInsets.only(
top: 16,
left: BuildUtils.isWeb ? 24 : 16,
right: BuildUtils.isWeb ? 24 : 16),
left: PlatformInfo.isWeb ? 24 : 16,
right: PlatformInfo.isWeb ? 24 : 16),
fromAccountDashBoard: true,
vacationResponse: controller.vacationResponse.value!,
actionGotoVacationSetting: !controller.inVacationSettings()
@@ -101,8 +101,8 @@ class ManageAccountDashBoardView extends GetWidget<ManageAccountDashBoardControl
return VacationNotificationMessageWidget(
margin: const EdgeInsets.only(
top: 16,
left: BuildUtils.isWeb ? 24 : 16,
right: BuildUtils.isWeb ? 24 : 16),
left: PlatformInfo.isWeb ? 24 : 16,
right: PlatformInfo.isWeb ? 24 : 16),
fromAccountDashBoard: true,
vacationResponse: controller.vacationResponse.value!,
padding: const EdgeInsets.symmetric(vertical: 10, horizontal: 16),
@@ -9,7 +9,6 @@ import 'package:tmail_ui_user/features/manage_account/presentation/menu/settings
import 'package:tmail_ui_user/features/manage_account/presentation/menu/widgets/setting_first_level_tile_builder.dart';
import 'package:tmail_ui_user/features/manage_account/presentation/model/account_menu_item.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
import 'package:tmail_ui_user/main/utils/app_utils.dart';
class SettingsFirstLevelView extends GetWidget<SettingsController> {
SettingsFirstLevelView({Key? key}) : super(key: key);
@@ -21,16 +20,11 @@ class SettingsFirstLevelView extends GetWidget<SettingsController> {
Widget build(BuildContext context) {
return SingleChildScrollView(
child: Column(children: [
Obx(() => Padding(
Obx(() => UserInformationWidgetBuilder(
_imagePaths,
controller.manageAccountDashboardController.userProfile.value,
padding: SettingsUtils.getPaddingInFirstLevel(context, _responsiveUtils),
child: UserInformationWidgetBuilder(
_imagePaths,
controller.manageAccountDashboardController.userProfile.value,
titlePadding: EdgeInsets.only(
left: AppUtils.isDirectionRTL(context) ? 0 : 16,
right: AppUtils.isDirectionRTL(context) ? 16 : 0
))
)),
titlePadding: const EdgeInsetsDirectional.only(start: 16))),
Divider(
color: AppColor.colorDividerComposer,
height: 1,
@@ -3,7 +3,7 @@ import 'package:core/presentation/resources/image_paths.dart';
import 'package:core/presentation/utils/responsive_utils.dart';
import 'package:core/presentation/utils/style_utils.dart';
import 'package:core/presentation/views/button/icon_button_web.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart';
@@ -50,8 +50,8 @@ class SettingsView extends GetWidget<SettingsController> {
if (controller.manageAccountDashboardController.vacationResponse.value?.vacationResponderIsValid == true) {
return VacationNotificationMessageWidget(
margin: const EdgeInsets.only(
left: BuildUtils.isWeb ? 24 : 16,
right: BuildUtils.isWeb ? 24 : 16,
left: PlatformInfo.isWeb ? 24 : 16,
right: PlatformInfo.isWeb ? 24 : 16,
top: 16),
fromAccountDashBoard: true,
vacationResponse: controller.manageAccountDashboardController.vacationResponse.value!,
@@ -64,8 +64,8 @@ class SettingsView extends GetWidget<SettingsController> {
&& controller.manageAccountDashboardController.inVacationSettings()) {
return VacationNotificationMessageWidget(
margin: const EdgeInsets.only(
left: BuildUtils.isWeb ? 24 : 16,
right: BuildUtils.isWeb ? 24 : 16,
left: PlatformInfo.isWeb ? 24 : 16,
right: PlatformInfo.isWeb ? 24 : 16,
top: 16),
fromAccountDashBoard: true,
vacationResponse: controller.manageAccountDashboardController.vacationResponse.value!,
@@ -1,6 +1,6 @@
import 'package:core/presentation/extensions/color_extension.dart';
import 'package:core/presentation/utils/responsive_utils.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/material.dart';
import 'package:tmail_ui_user/main/utils/app_utils.dart';
@@ -32,7 +32,7 @@ class SettingsUtils {
}
static EdgeInsets getMarginViewForSettingDetails(BuildContext context, ResponsiveUtils responsiveUtils) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
if (responsiveUtils.isDesktop(context)) {
return const EdgeInsets.all(16);
} else if (responsiveUtils.isTabletLarge(context) ||
@@ -6,7 +6,7 @@ import 'package:core/presentation/state/success.dart';
import 'package:core/presentation/utils/app_toast.dart';
import 'package:core/presentation/utils/responsive_utils.dart';
import 'package:core/presentation/views/dialog/confirmation_dialog_builder.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart';
@@ -152,7 +152,7 @@ class IdentitiesController extends BaseController {
if (accountId != null && session != null && userProfile != null) {
final arguments = IdentityCreatorArguments(accountId, session, userProfile);
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
showDialogIdentityCreator(
context: context,
arguments: arguments,
@@ -277,7 +277,7 @@ class IdentitiesController extends BaseController {
identity: identity,
actionType: IdentityActionType.edit);
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
showDialogIdentityCreator(
context: context,
arguments: arguments,
@@ -26,7 +26,7 @@ class DeleteIdentityDialogBuilder extends StatelessWidget {
responsiveUtils: responsiveUtils,
mobile: (_buildDeleteDialog(context)
..alignment(Alignment.bottomCenter)
..outsideDialogPadding(const EdgeInsets.only(left: 0, right: 0, bottom: BuildUtils.isWeb ? 42 : 16))
..outsideDialogPadding(const EdgeInsets.only(left: 0, right: 0, bottom: PlatformInfo.isWeb ? 42 : 16))
..widthDialog(MediaQuery.of(context).size.width - 16)
..heightDialog(280))
.build(),
@@ -36,7 +36,7 @@ class DeleteIdentityDialogBuilder extends StatelessWidget {
landscapeTablet: _buildDeleteDialog(context).build(),
desktop: _buildDeleteDialog(context).build());
return BuildUtils.isWeb
return PlatformInfo.isWeb
? PointerInterceptor(child: deleteDialogBuilder)
: deleteDialogBuilder;
}
@@ -1,7 +1,7 @@
import 'package:core/presentation/views/html_viewer/html_content_viewer_on_web_widget.dart';
import 'package:core/presentation/views/html_viewer/html_content_viewer_widget.dart';
import 'package:core/presentation/views/html_viewer/html_viewer_controller_for_web.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/material.dart';
import 'package:tmail_ui_user/main/utils/app_utils.dart';
@@ -36,7 +36,7 @@ class SignatureBuilder extends StatelessWidget {
Widget _buildSignature(BuildContext context, double width, double height) {
if (signatureSelected.isNotEmpty) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
return HtmlContentViewerOnWeb(
contentHtml: signatureSelected,
widthContent: width,
@@ -118,7 +118,7 @@ class VacationController extends BaseController {
messageTextController.text = newVacation.messagePlainText ?? '';
subjectTextController.text = newVacation.subject ?? '';
updateMessageHtmlText(newVacation.messageHtmlText ?? '');
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
_richTextControllerForWeb.editorController.setText(newVacation.messageHtmlText ?? '');
} else {
richTextControllerForMobile.htmlEditorApi?.setText(newVacation.messageHtmlText ?? '');
@@ -264,7 +264,7 @@ class VacationController extends BaseController {
}
final messagePlainText = messageTextController.text;
final messageHtmlText = (BuildUtils.isWeb ? _vacationMessageHtmlText : await _getMessageHtmlText()) ?? '';
final messageHtmlText = (PlatformInfo.isWeb ? _vacationMessageHtmlText : await _getMessageHtmlText()) ?? '';
if (messagePlainText.isEmpty && messageHtmlText.isEmpty && context.mounted) {
if (currentOverlayContext != null && currentContext != null) {
_appToast.showToastErrorMessage(
@@ -322,7 +322,7 @@ class VacationController extends BaseController {
void updateMessageHtmlText(String? text) => _vacationMessageHtmlText = text;
Future<String>? _getMessageHtmlText() {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
return _richTextControllerForWeb.editorController.getText();
} else {
return richTextControllerForMobile.htmlEditorApi?.getText();
@@ -330,7 +330,7 @@ class VacationController extends BaseController {
}
void selectVacationMessageType(BuildContext context, VacationMessageType newMessageType) {
if (newMessageType == VacationMessageType.plainText && !BuildUtils.isWeb) {
if (newMessageType == VacationMessageType.plainText && PlatformInfo.isMobile) {
_storeMessageHtmlTextOnMobile();
}
clearFocusEditor(context);
@@ -343,7 +343,7 @@ class VacationController extends BaseController {
}
void clearFocusEditor(BuildContext context) {
if (!BuildUtils.isWeb) {
if (PlatformInfo.isMobile) {
richTextControllerForMobile.htmlEditorApi?.unfocus();
}
KeyboardUtils.hideKeyboard(context);
@@ -32,7 +32,7 @@ class VacationView extends GetWidget<VacationController> with RichTextButtonMixi
@override
Widget build(BuildContext context) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
return _buildVacationFormView(context);
} else {
return KeyboardRichText(
@@ -394,7 +394,7 @@ class VacationView extends GetWidget<VacationController> with RichTextButtonMixi
padding: const EdgeInsets.only(left: 12, right: 12, top: 12),
child: Column(children: [
_buildMessageHtmlTextEditor(context),
if (BuildUtils.isWeb)
if (PlatformInfo.isWeb)
Center(child: Obx(() {
return PointerInterceptor(
child: buildToolbarRichTextForWeb(
@@ -428,7 +428,7 @@ class VacationView extends GetWidget<VacationController> with RichTextButtonMixi
}
Widget _buildMessageHtmlTextEditor(BuildContext context) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
return html_editor_browser.HtmlEditor(
key: const Key('vacation_message_html_text_editor_web'),
controller: controller.richTextControllerForWeb.editorController,
@@ -5,7 +5,7 @@ import 'package:core/data/network/config/dynamic_url_interceptors.dart';
import 'package:core/presentation/state/failure.dart';
import 'package:core/presentation/state/success.dart';
import 'package:core/utils/app_logger.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:jmap_dart_client/jmap/account_id.dart';
import 'package:jmap_dart_client/jmap/core/properties/properties.dart';
import 'package:jmap_dart_client/jmap/core/session/session.dart';
@@ -102,7 +102,7 @@ class EmailChangeListener extends ChangeListener {
_handleRemoveNotificationWhenEmailMarkAsRead(action.newState, action.accountId, action.session);
}
_synchronizeEmailOnForegroundAction(action.newState);
if (!BuildUtils.isWeb) {
if (PlatformInfo.isMobile) {
_getNewReceiveEmailFromNotificationAction(action.session, action.accountId, action.newState);
}
} else if (action is PushNotificationAction) {
@@ -134,7 +134,7 @@ class EmailChangeListener extends ChangeListener {
_userName = userName;
log('EmailChangeListener::_pushNotificationAction():newState: $newState');
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
_storeEmailDeliveryStateAction(accountId, userName, _newStateEmailDelivery!);
} else {
if (Platform.isAndroid) {
@@ -2,7 +2,7 @@
import 'dart:io';
import 'package:core/utils/app_logger.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:dartz/dartz.dart';
import 'package:fcm/model/type_name.dart';
import 'package:jmap_dart_client/jmap/account_id.dart';
@@ -81,7 +81,7 @@ class FcmUtils {
String get platformOS {
var platformName = '';
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
platformName = 'Web';
} else {
if (Platform.isAndroid) {
@@ -109,5 +109,5 @@ class FcmUtils {
return deviceId;
}
bool get isMobileAndroid => !BuildUtils.isWeb && Platform.isAndroid;
bool get isMobileAndroid => PlatformInfo.isMobile && Platform.isAndroid;
}
@@ -3,7 +3,7 @@ import 'package:core/presentation/state/success.dart';
import 'package:core/presentation/utils/app_toast.dart';
import 'package:core/presentation/utils/keyboard_utils.dart';
import 'package:core/utils/app_logger.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/cupertino.dart';
import 'package:get/get.dart';
import 'package:jmap_dart_client/jmap/account_id.dart';
@@ -223,7 +223,7 @@ class RulesFilterCreatorController extends BaseMailboxController {
MailboxActions.selectForRuleAction,
_session);
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
showDialogDestinationPicker(
context: context,
arguments: arguments,
@@ -306,7 +306,7 @@ class RulesFilterCreatorController extends BaseMailboxController {
_listEmailRule ?? [],
newTMailRule);
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
onCreatedRuleFilterCallback?.call(ruleFilterRequest);
} else {
popBack(result: ruleFilterRequest);
@@ -316,7 +316,7 @@ class RulesFilterCreatorController extends BaseMailboxController {
_listEmailRule?.withIds ?? [],
newTMailRule);
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
onCreatedRuleFilterCallback?.call(ruleFilterRequest);
} else {
popBack(result: ruleFilterRequest);
@@ -344,7 +344,7 @@ class RulesFilterCreatorController extends BaseMailboxController {
_clearAll();
KeyboardUtils.hideKeyboard(context);
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
onDismissRuleFilterCreator?.call();
} else {
popBack();
@@ -47,7 +47,7 @@ class RuleFilterCreatorView extends GetWidget<RulesFilterCreatorController> {
child: ResponsiveWidget(
responsiveUtils: _responsiveUtils,
mobile: Scaffold(
backgroundColor: BuildUtils.isWeb
backgroundColor: PlatformInfo.isWeb
? Colors.black.withAlpha(24)
: Colors.black38,
body: GestureDetector(
@@ -62,7 +62,7 @@ class RuleFilterCreatorView extends GetWidget<RulesFilterCreatorController> {
topLeft: Radius.circular(16),
topRight: Radius.circular(16)),
color: Colors.white),
margin: const EdgeInsets.only(top: BuildUtils.isWeb ? 70 : 0),
margin: const EdgeInsets.only(top: PlatformInfo.isWeb ? 70 : 0),
child: ClipRRect(
borderRadius: const BorderRadius.only(
topLeft: Radius.circular(16),
@@ -33,7 +33,7 @@ class RuleActionSheetActionTileBuilder
return Container(
color: bgColor ?? Colors.white,
child: MouseRegion(
cursor: BuildUtils.isWeb
cursor: PlatformInfo.isWeb
? MaterialStateMouseCursor.clickable
: MouseCursor.defer,
child: CupertinoActionSheetAction(
@@ -33,7 +33,7 @@ class RuleConditionComparatorSheetActionTileBuilder
return Container(
color: bgColor ?? Colors.white,
child: MouseRegion(
cursor: BuildUtils.isWeb
cursor: PlatformInfo.isWeb
? MaterialStateMouseCursor.clickable
: MouseCursor.defer,
child: CupertinoActionSheetAction(
@@ -33,7 +33,7 @@ class RuleConditionFieldSheetActionTileBuilder
return Container(
color: bgColor ?? Colors.white,
child: MouseRegion(
cursor: BuildUtils.isWeb
cursor: PlatformInfo.isWeb
? MaterialStateMouseCursor.clickable
: MouseCursor.defer,
child: CupertinoActionSheetAction(
@@ -3,7 +3,7 @@ import 'package:core/presentation/state/failure.dart';
import 'package:core/presentation/state/success.dart';
import 'package:core/presentation/utils/keyboard_utils.dart';
import 'package:core/utils/app_logger.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:dartz/dartz.dart';
import 'package:debounce_throttle/debounce_throttle.dart';
import 'package:flutter/material.dart';
@@ -483,7 +483,7 @@ class SearchEmailController extends BaseController
mailboxDashBoardController.sessionCurrent,
mailboxIdSelected: mailbox?.id);
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
showDialogDestinationPicker(
context: context,
arguments: arguments,
@@ -526,7 +526,7 @@ class SearchEmailController extends BaseController
final listContactSelected = simpleSearchFilter.value.getContactApplied(prefixEmailAddress);
final arguments = ContactArguments(accountId!, session!, listContactSelected);
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
showDialogContactView(
context: context,
arguments: arguments,
@@ -6,7 +6,7 @@ import 'package:core/presentation/utils/style_utils.dart';
import 'package:core/presentation/views/background/background_widget_builder.dart';
import 'package:core/presentation/views/button/icon_button_web.dart';
import 'package:core/presentation/views/text/text_field_builder.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:core/utils/direction_utils.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
@@ -440,7 +440,7 @@ class SearchEmailView extends GetWidget<SearchEmailController>
}
double? _getItemExtent(BuildContext context) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
return _responsiveUtils.isDesktop(context) ? 52 : 95;
} else {
return null;
@@ -1,11 +1,11 @@
import 'package:core/presentation/utils/responsive_utils.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/material.dart';
class SearchEmailUtils {
static EdgeInsets getPaddingAppBar(BuildContext context, ResponsiveUtils responsiveUtils) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
return const EdgeInsets.symmetric(horizontal: 16);
} else {
if (responsiveUtils.isScreenWithShortestSide(context)) {
@@ -17,7 +17,7 @@ class SearchEmailUtils {
}
static EdgeInsets getPaddingSearchSuggestionList(BuildContext context, ResponsiveUtils responsiveUtils) {
if (BuildUtils.isWeb || !responsiveUtils.isScreenWithShortestSide(context)) {
if (PlatformInfo.isWeb || !responsiveUtils.isScreenWithShortestSide(context)) {
return const EdgeInsets.symmetric(horizontal: 32, vertical: 12);
} else {
return const EdgeInsets.symmetric(horizontal: 16, vertical: 12);
@@ -25,7 +25,7 @@ class SearchEmailUtils {
}
static EdgeInsets getPaddingShowAllResultButton(BuildContext context, ResponsiveUtils responsiveUtils) {
if (BuildUtils.isWeb || !responsiveUtils.isScreenWithShortestSide(context)) {
if (PlatformInfo.isWeb || !responsiveUtils.isScreenWithShortestSide(context)) {
return const EdgeInsets.symmetric(horizontal: 32, vertical: 12);
} else {
return const EdgeInsets.symmetric(horizontal: 16, vertical: 12);
@@ -33,7 +33,7 @@ class SearchEmailUtils {
}
static EdgeInsets getPaddingSearchRecentTitle(BuildContext context, ResponsiveUtils responsiveUtils) {
if (BuildUtils.isWeb || !responsiveUtils.isScreenWithShortestSide(context)) {
if (PlatformInfo.isWeb || !responsiveUtils.isScreenWithShortestSide(context)) {
return const EdgeInsets.symmetric(horizontal: 32, vertical: 8);
} else {
return const EdgeInsets.symmetric(horizontal: 16, vertical: 8);
@@ -41,7 +41,7 @@ class SearchEmailUtils {
}
static EdgeInsets getPaddingListRecentSearch(BuildContext context, ResponsiveUtils responsiveUtils) {
if (BuildUtils.isWeb || !responsiveUtils.isScreenWithShortestSide(context)) {
if (PlatformInfo.isWeb || !responsiveUtils.isScreenWithShortestSide(context)) {
return const EdgeInsets.symmetric(horizontal: 32, vertical: 12);
} else {
return const EdgeInsets.symmetric(horizontal: 16, vertical: 12);
@@ -49,7 +49,7 @@ class SearchEmailUtils {
}
static EdgeInsets getPaddingSearchFilterButton(BuildContext context, ResponsiveUtils responsiveUtils) {
if (BuildUtils.isWeb || !responsiveUtils.isScreenWithShortestSide(context)) {
if (PlatformInfo.isWeb || !responsiveUtils.isScreenWithShortestSide(context)) {
return const EdgeInsets.all(12);
} else {
return const EdgeInsets.symmetric(vertical: 12, horizontal: 16);
@@ -57,7 +57,7 @@ class SearchEmailUtils {
}
static EdgeInsets getMarginSearchFilterButton(BuildContext context, ResponsiveUtils responsiveUtils) {
if (BuildUtils.isWeb || !responsiveUtils.isScreenWithShortestSide(context)) {
if (PlatformInfo.isWeb || !responsiveUtils.isScreenWithShortestSide(context)) {
return const EdgeInsets.symmetric(horizontal: 20);
} else {
return EdgeInsets.zero;
@@ -65,7 +65,7 @@ class SearchEmailUtils {
}
static EdgeInsets getPaddingSearchResultList(BuildContext context, ResponsiveUtils responsiveUtils) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
return const EdgeInsets.only(left: 10);
} else {
if (responsiveUtils.isScreenWithShortestSide(context)) {
@@ -77,7 +77,7 @@ class SearchEmailUtils {
}
static EdgeInsets getPaddingDividerSearchResultList(BuildContext context, ResponsiveUtils responsiveUtils) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
return const EdgeInsets.symmetric(horizontal: 16);
} else {
if (responsiveUtils.isScreenWithShortestSide(context)) {
@@ -1,6 +1,6 @@
import 'package:core/presentation/views/bottom_popup/cupertino_action_sheet_no_icon_builder.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
@@ -32,7 +32,7 @@ class EmailReceiveTimeCupertinoActionSheetActionBuilder
return Container(
color: bgColor ?? Colors.white,
child: MouseRegion(
cursor: BuildUtils.isWeb ? MaterialStateMouseCursor.clickable : MouseCursor.defer,
cursor: PlatformInfo.isWeb ? MaterialStateMouseCursor.clickable : MouseCursor.defer,
child: CupertinoActionSheetAction(
key: key,
child: Row(mainAxisAlignment: MainAxisAlignment.center, children: [
@@ -7,7 +7,7 @@ import 'package:core/presentation/utils/app_toast.dart';
import 'package:core/presentation/utils/keyboard_utils.dart';
import 'package:core/presentation/utils/responsive_utils.dart';
import 'package:core/utils/app_logger.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart';
@@ -614,7 +614,7 @@ class SearchMailboxController extends BaseMailboxController with MailboxActionHa
void closeSearchView(BuildContext context) {
KeyboardUtils.hideKeyboard(context);
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
dashboardController.searchMailboxActivated.value = false;
clearAllTextInputSearchForm();
SearchMailboxBindings().disposeBindings();
@@ -2,7 +2,7 @@
import 'package:core/presentation/extensions/color_extension.dart';
import 'package:core/presentation/views/button/icon_button_web.dart';
import 'package:core/presentation/views/text/text_field_builder.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:core/utils/direction_utils.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
@@ -36,7 +36,7 @@ class SearchMailboxView extends GetWidget<SearchMailboxController>
return Scaffold(
body: GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
child: BuildUtils.isWeb
child: PlatformInfo.isWeb
? PointerInterceptor(child: _buildSearchBody(context))
: SafeArea(child: _buildSearchBody(context)),
),
@@ -4,7 +4,7 @@ import 'package:core/presentation/resources/image_paths.dart';
import 'package:core/presentation/utils/responsive_utils.dart';
import 'package:core/presentation/utils/style_utils.dart';
import 'package:core/presentation/views/responsive/responsive_widget.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:focused_menu_custom/focused_menu.dart';
@@ -51,7 +51,7 @@ class _MailboxSearchedItemBuilderState extends State<MailboxSearchedItemBuilder>
@override
Widget build(BuildContext context) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
return DragTarget<List<PresentationEmail>>(
builder: (_, __, ___) => _buildMailboxItem(context),
onAccept: (emails) {
@@ -64,7 +64,7 @@ class _MailboxSearchedItemBuilderState extends State<MailboxSearchedItemBuilder>
}
Widget _buildMailboxItem(BuildContext context) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
return InkWell(
onTap: _onTapMailboxAction,
onHover: (value) => setState(() => isHoverItem = value),
@@ -1,7 +1,7 @@
import 'dart:async';
import 'package:core/utils/app_logger.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:jmap_dart_client/jmap/account_id.dart';
import 'package:jmap_dart_client/jmap/core/properties/properties.dart';
import 'package:jmap_dart_client/jmap/core/session/session.dart';
@@ -31,7 +31,7 @@ class ThreadIsolateWorker {
MailboxId mailboxId,
Future<void> Function(List<EmailId>? newDestroyed) updateDestroyedEmailCache,
) async {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
return _emptyTrashFolderOnWeb(session, accountId, mailboxId, updateDestroyedEmailCache);
} else {
final result = await _isolateExecutor.execute(
@@ -2,7 +2,7 @@ import 'dart:io';
import 'package:core/presentation/state/failure.dart';
import 'package:core/presentation/state/success.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:dartz/dartz.dart';
import 'package:jmap_dart_client/jmap/account_id.dart';
import 'package:jmap_dart_client/jmap/core/properties/properties.dart';
@@ -29,7 +29,7 @@ class GetEmailByIdInteractor {
) async* {
try {
yield Right<Failure, Success>(GetEmailByIdLoading());
if (!BuildUtils.isWeb) {
if (PlatformInfo.isMobile) {
yield* _tryToGetEmailFromCache(session, accountId, emailId, properties: properties);
} else {
yield* _getEmailByIdFromServer(session, accountId, emailId, properties: properties);
@@ -1,5 +1,5 @@
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
import 'package:model/email/presentation_email.dart';
import 'package:model/extensions/presentation_email_extension.dart';
@@ -41,7 +41,7 @@ extension ListPresentationEmailExtensions on List<PresentationEmail> {
bool isSearchEmailRunning = false,
SearchQuery? searchQuery,
}) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
final route = RouteUtils.generateRouteBrowser(
AppRoutes.dashboard,
NavigationRouter(
@@ -5,7 +5,7 @@ import 'package:core/presentation/resources/image_paths.dart';
import 'package:core/presentation/utils/responsive_utils.dart';
import 'package:core/presentation/utils/style_utils.dart';
import 'package:core/presentation/views/text/rich_text_builder.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart';
@@ -250,7 +250,7 @@ mixin BaseEmailItemTile {
TextStyle? textStyle
}
) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
return Container(
color: Colors.transparent,
width: iconSize ?? 48,
@@ -5,7 +5,7 @@ import 'package:core/presentation/utils/responsive_utils.dart';
import 'package:core/presentation/views/bottom_popup/confirmation_dialog_action_sheet_builder.dart';
import 'package:core/presentation/views/dialog/confirmation_dialog_builder.dart';
import 'package:core/utils/app_logger.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart';
@@ -131,7 +131,7 @@ mixin EmailActionController on ViewAsDialogActionMixin {
session,
mailboxIdSelected: mailboxContain.mailboxId);
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
showDialogDestinationPicker(
context: context,
arguments: arguments,
@@ -3,7 +3,7 @@ import 'package:core/presentation/state/failure.dart';
import 'package:core/presentation/state/success.dart';
import 'package:core/presentation/utils/app_toast.dart';
import 'package:core/utils/app_logger.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:dartz/dartz.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
@@ -694,7 +694,7 @@ class ThreadController extends BaseController with EmailActionController {
}
void _updateSearchRouteOnBrowser() {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
final route = RouteUtils.generateRouteBrowser(
AppRoutes.dashboard,
NavigationRouter(
@@ -922,7 +922,7 @@ class ThreadController extends BaseController with EmailActionController {
}
PresentationEmail generateEmailByPlatform(PresentationEmail currentEmail) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
final route = RouteUtils.generateRouteBrowser(
AppRoutes.dashboard,
NavigationRouter(
@@ -86,7 +86,7 @@ class ThreadView extends GetWidget<ThreadController>
}
bool supportVerticalDivider(BuildContext context) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
return _responsiveUtils.isTabletLarge(context);
} else {
return _responsiveUtils.isDesktop(context) ||
@@ -101,7 +101,7 @@ class ThreadView extends GetWidget<ThreadController>
padding: EdgeInsets.symmetric(
horizontal: 16,
vertical: _responsiveUtils.isWebNotDesktop(context) ? 8 : 0),
margin: const EdgeInsets.only(bottom: !BuildUtils.isWeb ? 16 : 0),
margin: EdgeInsets.only(bottom: PlatformInfo.isMobile ? 16 : 0),
child: SearchBarView(_imagePaths,
hintTextSearch: AppLocalizations.of(context).search_emails,
onOpenSearchViewAction: controller.goToSearchView));
@@ -124,7 +124,7 @@ class ThreadView extends GetWidget<ThreadController>
Widget _buildListButtonSelectionForMobile(BuildContext context) {
return Obx(() {
if ((!BuildUtils.isWeb || (BuildUtils.isWeb && controller.isSelectionEnabled()
if ((PlatformInfo.isMobile || (PlatformInfo.isWeb && controller.isSelectionEnabled()
&& controller.isSearchActive() && !_responsiveUtils.isDesktop(context)))
&& controller.mailboxDashBoardController.emailsInCurrentMailbox.listEmailSelected.isNotEmpty) {
return BottomBarThreadSelectionWidget(
@@ -183,7 +183,7 @@ class ThreadView extends GetWidget<ThreadController>
return Obx(() {
if (controller.isAllSearchInActive) {
return Container(
padding: BuildUtils.isWeb
padding: PlatformInfo.isWeb
? EdgeInsets.zero
: controller.listEmailSelected.isNotEmpty ? const EdgeInsets.only(bottom: 70) : EdgeInsets.zero,
child: ComposeFloatingButton(
@@ -266,7 +266,7 @@ class ThreadView extends GetWidget<ThreadController>
Widget _buildListEmail(BuildContext context) {
return Container(
margin: BuildUtils.isWeb && _responsiveUtils.isDesktop(context)
margin: PlatformInfo.isWeb && _responsiveUtils.isDesktop(context)
? const EdgeInsets.symmetric(horizontal: 4)
: EdgeInsets.zero,
alignment: Alignment.center,
@@ -463,7 +463,7 @@ class ThreadView extends GetWidget<ThreadController>
}
double? _getItemExtent(BuildContext context) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
return _responsiveUtils.isDesktop(context) ? 52 : 95;
} else {
return null;
@@ -24,7 +24,7 @@ class AppActionSheetActionBuilder extends CupertinoActionSheetActionBuilder {
return Container(
color: bgColor ?? Colors.white,
child: MouseRegion(
cursor: BuildUtils.isWeb ? MaterialStateMouseCursor.clickable : MouseCursor.defer,
cursor: PlatformInfo.isWeb ? MaterialStateMouseCursor.clickable : MouseCursor.defer,
child: CupertinoActionSheetAction(
key: key,
child: Row(mainAxisAlignment: MainAxisAlignment.center, children: [
@@ -56,7 +56,7 @@ class AppBarThreadWidgetBuilder extends StatelessWidget {
}
Widget _buildAppBar(BuildContext context, BoxConstraints constraints) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
return _selectMode == SelectMode.INACTIVE
? _buildBodyAppBarForWeb(context)
: _buildBodyAppBarForWebSelection(context);
@@ -400,7 +400,7 @@ class AppBarThreadWidgetBuilder extends StatelessWidget {
}
double _getXTranslationValues(BuildContext context) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
return _responsiveUtils.isWebDesktop(context) ? -2.0 : -16.0;
} else {
return _responsiveUtils.isTabletLarge(context) ? 0.0 : -16.0;
@@ -2,7 +2,7 @@ import 'package:core/presentation/extensions/color_extension.dart';
import 'package:core/presentation/resources/image_paths.dart';
import 'package:core/presentation/utils/responsive_utils.dart';
import 'package:core/presentation/views/button/button_builder.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/material.dart';
import 'package:model/email/email_action_type.dart';
import 'package:model/email/presentation_email.dart';
@@ -164,7 +164,7 @@ class BottomBarThreadSelectionWidget extends StatelessWidget{
}
bool _isMailboxDashboardSplitView(BuildContext context) {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
return _responsiveUtils.isTabletLarge(context);
} else {
return _responsiveUtils.isLandscapeTablet(context) ||
@@ -34,7 +34,7 @@ class FilterMessageCupertinoActionSheetActionBuilder
return Container(
color: bgColor ?? Colors.white,
child: MouseRegion(
cursor: BuildUtils.isWeb ? MaterialStateMouseCursor.clickable : MouseCursor.defer,
cursor: PlatformInfo.isWeb ? MaterialStateMouseCursor.clickable : MouseCursor.defer,
child: CupertinoActionSheetAction(
key: key,
child: Row(mainAxisAlignment: MainAxisAlignment.center, children: [
@@ -7,7 +7,7 @@ import 'package:core/data/network/dio_client.dart';
import 'package:core/presentation/state/failure.dart';
import 'package:core/presentation/state/success.dart';
import 'package:core/utils/app_logger.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:dartz/dartz.dart';
import 'package:dio/dio.dart';
import 'package:model/email/attachment.dart';
@@ -33,7 +33,7 @@ class FileUploader {
Uri uploadUri,
{CancelToken? cancelToken}
) async {
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
return _handleUploadAttachmentActionOnWeb(
uploadId,
onSendController,
+1 -1
View File
@@ -66,7 +66,7 @@ class AppPages {
() => manage_account_dashboard.ManageAccountDashBoardView()),
binding: ManageAccountDashBoardBindings()),
unknownRoutePage,
if (!BuildUtils.isWeb)
if (PlatformInfo.isMobile)
...[
GetPage(
name: AppRoutes.composer,
+2 -2
View File
@@ -2,7 +2,7 @@
import 'package:core/data/model/query/query_parameter.dart';
import 'package:core/data/network/config/service_path.dart';
import 'package:core/utils/app_logger.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:jmap_dart_client/jmap/core/id.dart';
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
@@ -19,7 +19,7 @@ abstract class RouteUtils {
static String generateNavigationRoute(String route, NavigationRouter router) {
ServicePath servicePath = ServicePath(route);
if (BuildUtils.isWeb) {
if (PlatformInfo.isWeb) {
if (router.emailId != null) {
servicePath = servicePath.withPathParameter(router.emailId!.id.value);
}
+2 -2
View File
@@ -1,4 +1,4 @@
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/material.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';
import 'package:tmail_ui_user/main/utils/app_config.dart';
@@ -27,7 +27,7 @@ class AppUtils {
);
}
static String? get fcmVapidPublicKey => BuildUtils.isWeb ? AppConfig.fcmVapidPublicKeyWeb : null;
static String? get fcmVapidPublicKey => PlatformInfo.isWeb ? AppConfig.fcmVapidPublicKeyWeb : null;
static bool isDirectionRTL(BuildContext context) {
return intl.Bidi.isRtlLanguage(Localizations.localeOf(context).languageCode);