TF-119 Filter messages with unread, attachments, starred
This commit is contained in:
@@ -42,6 +42,8 @@ export 'presentation/views/dialog/downloading_file_dialog_builder.dart';
|
||||
export 'presentation/views/background/background_widget_builder.dart';
|
||||
export 'presentation/views/html_viewer/html_content_viewer_widget.dart';
|
||||
export 'presentation/views/floating_button/scrolling_floating_button_animated.dart';
|
||||
export 'presentation/views/bottom_popup/cupertino_action_sheet_action_builder.dart';
|
||||
export 'presentation/views/bottom_popup/cupertino_action_sheet_builder.dart';
|
||||
|
||||
// Resources
|
||||
export 'presentation/resources/assets_paths.dart';
|
||||
|
||||
@@ -71,6 +71,9 @@ extension AppColor on Color {
|
||||
static const colorDividerMailbox = Color(0xFF99A2AD);
|
||||
static const colorArrowUserMailbox = Color(0xFFB8C1CC);
|
||||
static const colorBgMailbox = Color(0xFFF7F7F7);
|
||||
static const colorFilterMessageDisabled = Color(0xFF99A2AD);
|
||||
static const colorFilterMessageEnabled = Color(0xFF007AFF);
|
||||
static const colorDefaultCupertinoActionSheet = Color(0x66000000);
|
||||
|
||||
static const mapGradientColor = [
|
||||
[Color(0xFF21D4FD), Color(0xFFB721FF)],
|
||||
|
||||
@@ -75,6 +75,9 @@ class ImagePaths {
|
||||
String get icMailboxArchivedV2 => _getImagePath('ic_mailbox_archived_v2.svg');
|
||||
String get icMailboxSpamV2 => _getImagePath('ic_mailbox_spam_v2.svg');
|
||||
String get icMailboxTrashV2 => _getImagePath('ic_mailbox_trash_v2.svg');
|
||||
String get icFilterSelected => _getImagePath('ic_filter_selected.svg');
|
||||
String get icFilterMessageAll => _getImagePath('ic_filter_message_all.svg');
|
||||
String get icFilterMessageAttachments => _getImagePath('ic_filter_message_attachments.svg');
|
||||
|
||||
String _getImagePath(String imageName) {
|
||||
return AssetsPaths.images + imageName;
|
||||
|
||||
@@ -40,7 +40,12 @@ class ResponsiveUtils {
|
||||
double getWidthLoginButton() => _loginButtonWidth;
|
||||
|
||||
EdgeInsets getMarginDestinationPicker(BuildContext context) {
|
||||
if (isTablet(context)) {
|
||||
if (isMobileDevice(context) && isLandscape(context)) {
|
||||
return EdgeInsets.only(
|
||||
left: _tabletHorizontalMargin,
|
||||
right: _tabletHorizontalMargin,
|
||||
top: 50.0);
|
||||
} else if (isTablet(context)) {
|
||||
return getSizeHeightScreen(context) <= _tabletVerticalMargin * 2
|
||||
? EdgeInsets.symmetric(
|
||||
horizontal: _tabletHorizontalMargin,
|
||||
@@ -62,7 +67,9 @@ class ResponsiveUtils {
|
||||
}
|
||||
|
||||
BorderRadius radiusDestinationPicker(BuildContext context, double radius) {
|
||||
if (isTablet(context)) {
|
||||
if (isMobileDevice(context) && isLandscape(context)) {
|
||||
return BorderRadius.only(topLeft: Radius.circular(radius), topRight: Radius.circular(radius));
|
||||
} else if (isTablet(context)) {
|
||||
return getSizeHeightScreen(context) <= _tabletVerticalMargin * 2
|
||||
? BorderRadius.only(topLeft: Radius.circular(radius), topRight: Radius.circular(radius))
|
||||
: BorderRadius.circular(radius);
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
import 'package:core/presentation/extensions/color_extension.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
|
||||
typedef OnCupertinoActionSheetActionClick<T> = void Function(T data);
|
||||
|
||||
abstract class CupertinoActionSheetActionBuilder<T> {
|
||||
@protected final Key key;
|
||||
@protected final SvgPicture actionIcon;
|
||||
@protected final String actionName;
|
||||
@protected OnCupertinoActionSheetActionClick<T>? onCupertinoActionSheetActionClick;
|
||||
|
||||
CupertinoActionSheetActionBuilder(
|
||||
this.key,
|
||||
this.actionIcon,
|
||||
this.actionName
|
||||
);
|
||||
|
||||
void onActionClick(OnCupertinoActionSheetActionClick<T> onCupertinoActionSheetActionClick) {
|
||||
this.onCupertinoActionSheetActionClick = onCupertinoActionSheetActionClick;
|
||||
}
|
||||
|
||||
TextStyle actionTextStyle() {
|
||||
return TextStyle(fontSize: 17, color: AppColor.colorNameEmail);
|
||||
}
|
||||
|
||||
Widget build();
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
|
||||
import 'package:core/core.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
|
||||
class CupertinoActionSheetBuilder {
|
||||
|
||||
final BuildContext _context;
|
||||
final List<Widget> _actionTiles = [];
|
||||
|
||||
Widget? _titleWidget;
|
||||
Widget? _messageWidget;
|
||||
Widget? _cancelWidget;
|
||||
|
||||
CupertinoActionSheetBuilder(this._context);
|
||||
|
||||
void title(Widget? titleWidget) {
|
||||
_titleWidget = titleWidget;
|
||||
}
|
||||
|
||||
void message(Widget? messageWidget) {
|
||||
_messageWidget = messageWidget;
|
||||
}
|
||||
|
||||
void addCancelButton(Widget? cancelWidget) {
|
||||
_cancelWidget = cancelWidget;
|
||||
}
|
||||
|
||||
void addTiles(List<Widget> tiles) {
|
||||
_actionTiles.addAll(tiles);
|
||||
}
|
||||
|
||||
void build() {
|
||||
showCupertinoModalPopup(
|
||||
context: _context,
|
||||
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
|
||||
builder: (context) => CupertinoActionSheet(
|
||||
title: _titleWidget,
|
||||
message: _messageWidget,
|
||||
actions: _actionTiles,
|
||||
cancelButton: _cancelWidget,
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user