TF-105 Make buttons in EmailView easier to press
This commit is contained in:
@@ -6,11 +6,9 @@ import 'package:flutter/widgets.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
|
||||
typedef OnPressActionClick = void Function();
|
||||
typedef OnTapDownActionClick = void Function(TapDownDetails details);
|
||||
|
||||
class ButtonBuilder {
|
||||
OnPressActionClick? _onPressActionClick;
|
||||
OnTapDownActionClick? _onTapActionClick;
|
||||
|
||||
String? _icon;
|
||||
String? _text;
|
||||
@@ -20,63 +18,47 @@ class ButtonBuilder {
|
||||
Key? _key;
|
||||
Color? _color;
|
||||
|
||||
ButtonBuilder key(Key key) {
|
||||
void key(Key key) {
|
||||
_key = key;
|
||||
return this;
|
||||
}
|
||||
|
||||
ButtonBuilder size(double size) {
|
||||
void size(double size) {
|
||||
_size = size;
|
||||
return this;
|
||||
}
|
||||
|
||||
ButtonBuilder color(Color color) {
|
||||
void color(Color color) {
|
||||
_color = color;
|
||||
return this;
|
||||
}
|
||||
|
||||
ButtonBuilder padding(double padding) {
|
||||
void padding(double padding) {
|
||||
_padding = padding;
|
||||
return this;
|
||||
}
|
||||
|
||||
ButtonBuilder text(String text, {required bool isVertical}) {
|
||||
void text(String text, {required bool isVertical}) {
|
||||
_text = text;
|
||||
_isVertical = isVertical;
|
||||
return this;
|
||||
}
|
||||
|
||||
ButtonBuilder(this._icon);
|
||||
|
||||
ButtonBuilder onPressActionClick(OnPressActionClick onPressActionClick) {
|
||||
void onPressActionClick(OnPressActionClick onPressActionClick) {
|
||||
_onPressActionClick = onPressActionClick;
|
||||
return this;
|
||||
}
|
||||
|
||||
ButtonBuilder onTapActionClick(OnTapDownActionClick onTapActionClick) {
|
||||
_onTapActionClick = onTapActionClick;
|
||||
return this;
|
||||
}
|
||||
|
||||
Widget build() {
|
||||
return Container(
|
||||
key: _key,
|
||||
alignment: Alignment.center,
|
||||
color: Colors.transparent,
|
||||
child: MediaQuery(
|
||||
data: MediaQueryData(padding: EdgeInsets.zero),
|
||||
child: GestureDetector(
|
||||
child: _buildBody(),
|
||||
onTap: () {
|
||||
if (_onPressActionClick != null) {
|
||||
_onPressActionClick!();
|
||||
}
|
||||
},
|
||||
onTapDown: (detail) {
|
||||
if (_onTapActionClick != null) {
|
||||
_onTapActionClick!(detail);
|
||||
}
|
||||
},
|
||||
return GestureDetector(
|
||||
onTap: () {
|
||||
if (_onPressActionClick != null) {
|
||||
_onPressActionClick!();
|
||||
}
|
||||
},
|
||||
child: Container(
|
||||
key: _key,
|
||||
alignment: Alignment.center,
|
||||
color: Colors.transparent,
|
||||
child: MediaQuery(
|
||||
data: MediaQueryData(padding: EdgeInsets.zero),
|
||||
child: _buildBody()
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
+7
-7
@@ -40,13 +40,13 @@ class AppBarDestinationPickerBuilder {
|
||||
}
|
||||
|
||||
Widget _buildBackButton() {
|
||||
return ButtonBuilder(_imagePaths.icComposerClose)
|
||||
.padding(5)
|
||||
.size(30)
|
||||
.onPressActionClick(() {
|
||||
if (_onCloseActionClick != null) {
|
||||
_onCloseActionClick!();
|
||||
}})
|
||||
return (ButtonBuilder(_imagePaths.icComposerClose)
|
||||
..padding(5)
|
||||
..size(30)
|
||||
..onPressActionClick(() {
|
||||
if (_onCloseActionClick != null) {
|
||||
_onCloseActionClick!();
|
||||
}}))
|
||||
.build();
|
||||
}
|
||||
|
||||
|
||||
@@ -41,29 +41,29 @@ class BottomBarMailWidgetBuilder {
|
||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
ButtonBuilder(_imagePaths.icReplyAll)
|
||||
.key(Key('button_reply_all_message'))
|
||||
.onPressActionClick(() {
|
||||
if (_onPressEmailActionClick != null) {
|
||||
_onPressEmailActionClick!(EmailActionType.replyAll);
|
||||
}})
|
||||
.text(AppLocalizations.of(_context).reply_all, isVertical: _responsiveUtils.isMobile(_context))
|
||||
(ButtonBuilder(_imagePaths.icReplyAll)
|
||||
..key(Key('button_reply_all_message'))
|
||||
..onPressActionClick(() {
|
||||
if (_onPressEmailActionClick != null) {
|
||||
_onPressEmailActionClick!(EmailActionType.replyAll);
|
||||
}})
|
||||
..text(AppLocalizations.of(_context).reply_all, isVertical: _responsiveUtils.isMobile(_context)))
|
||||
.build(),
|
||||
ButtonBuilder(_imagePaths.icReply)
|
||||
.key(Key('button_reply_message'))
|
||||
.onPressActionClick(() {
|
||||
if (_onPressEmailActionClick != null) {
|
||||
_onPressEmailActionClick!(EmailActionType.reply);
|
||||
}})
|
||||
.text(AppLocalizations.of(_context).reply, isVertical: _responsiveUtils.isMobile(_context))
|
||||
(ButtonBuilder(_imagePaths.icReply)
|
||||
..key(Key('button_reply_message'))
|
||||
..onPressActionClick(() {
|
||||
if (_onPressEmailActionClick != null) {
|
||||
_onPressEmailActionClick!(EmailActionType.reply);
|
||||
}})
|
||||
..text(AppLocalizations.of(_context).reply, isVertical: _responsiveUtils.isMobile(_context)))
|
||||
.build(),
|
||||
ButtonBuilder(_imagePaths.icForward)
|
||||
.key(Key('button_forward_message'))
|
||||
.onPressActionClick(() {
|
||||
if (_onPressEmailActionClick != null) {
|
||||
_onPressEmailActionClick!(EmailActionType.forward);
|
||||
}})
|
||||
.text(AppLocalizations.of(_context).forward, isVertical: _responsiveUtils.isMobile(_context))
|
||||
(ButtonBuilder(_imagePaths.icForward)
|
||||
..key(Key('button_forward_message'))
|
||||
..onPressActionClick(() {
|
||||
if (_onPressEmailActionClick != null) {
|
||||
_onPressEmailActionClick!(EmailActionType.forward);
|
||||
}})
|
||||
..text(AppLocalizations.of(_context).forward, isVertical: _responsiveUtils.isMobile(_context)))
|
||||
.build()
|
||||
]
|
||||
);
|
||||
|
||||
@@ -133,19 +133,19 @@ class EmailTileBuilder {
|
||||
overflow:TextOverflow.ellipsis,
|
||||
style: TextStyle(fontSize: 12, color: AppColor.baseTextColor))),
|
||||
if (_presentationEmail.hasAttachment == true)
|
||||
ButtonBuilder(_imagePaths.icShare)
|
||||
.padding(5)
|
||||
.size(20)
|
||||
(ButtonBuilder(_imagePaths.icShare)
|
||||
..padding(5)
|
||||
..size(20))
|
||||
.build(),
|
||||
ButtonBuilder(_presentationEmail.isFlaggedEmail() ? _imagePaths.icFlagged : _imagePaths.icFlag)
|
||||
.padding(5)
|
||||
.size(20)
|
||||
.onPressActionClick(() {
|
||||
(ButtonBuilder(_presentationEmail.isFlaggedEmail() ? _imagePaths.icFlagged : _imagePaths.icFlag)
|
||||
..padding(5)
|
||||
..size(20)
|
||||
..onPressActionClick(() {
|
||||
if (_onMarkAsStarEmailActionClick != null) {
|
||||
_onMarkAsStarEmailActionClick!(_presentationEmail);
|
||||
}
|
||||
})
|
||||
.build(),
|
||||
}))
|
||||
.build(),
|
||||
],
|
||||
)
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user