Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Xcode6 fixes #3429

Open
wants to merge 41 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
d339dd8
TF-3298 Fix blink when refresh email list (#3299)
dab246 Nov 25, 2024
e50a23d
Update TMail backend docker to memory-1.0.0
tddang-linagora Nov 27, 2024
1a58542
TF-3265 Fix double scrolling composer
tddang-linagora Nov 18, 2024
c475735
TF-3291 Fix [SEARCH] No results if you add > 1 address in the From field
dab246 Nov 22, 2024
2128a6e
TF-3264 Fix composer drag drop all modes (#3279)
tddang-linagora Nov 28, 2024
9c3954a
Delegate cache control from Flutter to browser (#3289)
tddang-linagora Nov 28, 2024
eaee8a0
TF-3292 Fix [SEARCH] If I filter emails by date and then sort them by…
dab246 Nov 23, 2024
e59fc1f
TF-3292 Write integration test for search emails by date and then sor…
dab246 Nov 27, 2024
c5b1e87
TF-3294 Fix BLUE-BAR mail to attendees duplicated recipients
dab246 Nov 22, 2024
6fff59a
TF-3295 Fix BLUE-BAR attendees mail addresses are not clickable
dab246 Nov 22, 2024
3a5f91b
TF-3296 Fix [SEARCH] Can't apply the "Starred" filter in search
dab246 Nov 22, 2024
9202925
fixup! TF-3296 Fix [SEARCH] Can't apply the "Starred" filter in search
dab246 Dec 2, 2024
fe2062d
TF-3315 Fix TMail web could not display embedded table correctly
dab246 Dec 3, 2024
ed0b14c
TF-3189 new option to enable/disable subaddressing for a personal folder
florentos17 Oct 21, 2024
810e304
TF-3189 new option to copy a folder's subaddress
florentos17 Nov 29, 2024
0f61e3d
TF-3189 subaddressing features only shown if supported by the server
florentos17 Nov 29, 2024
d939ffb
TF-3189 new confirmation popup when enabling subaddressing for a folder
florentos17 Nov 29, 2024
20c4720
TF-3189 new `reply to` field in the mail composer
florentos17 Oct 30, 2024
47b842d
TF-3189 composer now correctly encodes subaddresses
florentos17 Nov 15, 2024
de940d6
TF-3275 Fix FCM iOS foreground desync (#3314)
tddang-linagora Dec 6, 2024
5094fd4
Hotfix identity creator view bug
tddang-linagora Dec 4, 2024
aa99995
TF-3219 display limits of email recovery in a yellow banner and filte…
florentos17 Nov 14, 2024
1597693
Fix patrol test on Firebase Test Lab
tddang-linagora Dec 9, 2024
11960d7
TF-3312 Add logout confirmation dialog
dab246 Dec 5, 2024
547cfd8
TF-3312 Hide system's confirm dialog when logging out
dab246 Dec 5, 2024
2774100
TF-3312 Change bundle name of Twake Mail
dab246 Dec 5, 2024
e5405b5
fixup! TF-3312 Change bundle name of Twake Mail
dab246 Dec 6, 2024
f2f551b
TF-3278 Handle open tmail app deep link but it was installed but not …
dab246 Nov 18, 2024
487106c
TF-3278 Handle open tmail app deep link but it was installed but sign…
dab246 Nov 18, 2024
b71e89a
TF-3278 Handle open tmail app deep link but it was installed but sign…
dab246 Dec 10, 2024
a7bea49
TF-3278 Handle open app via deep link at TwakeWelcome screen
dab246 Nov 18, 2024
3ecf9a8
TF-3278 Handle open app via deep link at Login screen
dab246 Nov 19, 2024
b240937
TF-3278 Handle open app via deep link at MailboxDashboard screen
dab246 Nov 22, 2024
cfc0275
TF-3181 Display contact support button on web app
dab246 Dec 5, 2024
01d2a9b
TF-3181 Display contact support button on mobile app
dab246 Dec 5, 2024
7a6a02f
TF-3181 Handle on click contact support
dab246 Dec 5, 2024
ba1e41a
TF-3290 Only show reconnection confirm dialog when composer is opened
dab246 Dec 12, 2024
8892c4b
Update `docker-compose.yaml` reference
emmanuel-ferdman Dec 12, 2024
050a885
Disable language tool check for text field
dab246 Dec 17, 2024
44495c4
Fix firebase issue with new XCode default about non-modular includes
ddlsmurf Jan 13, 2025
859d84e
Fix for "ambiguous use of 'evaluateJavaScript(_:completionHandler:_)'…
ddlsmurf Jan 13, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@ No we do not plan to support such extensions, that are currently not standardize

#### Using the docker-compose file

We also include a [docker-compose.yaml](docker-compose.yaml) file so you can get a testing environment up quickly. This use our [tmail-backend](https://hub.docker.com/r/linagora/tmail-backend) image for the JMAP server.
We also include a [docker-compose.yaml](backend-docker/docker-compose.yaml) file so you can get a testing environment up quickly. This use our [tmail-backend](https://hub.docker.com/r/linagora/tmail-backend) image for the JMAP server.

Here are the steps to setup:

Expand Down
2 changes: 1 addition & 1 deletion android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -100,5 +100,5 @@ dependencies {
implementation 'androidx.work:work-runtime-ktx:2.7.0'
implementation 'com.android.support:multidex:1.0.3'
implementation 'androidx.window:window:1.0.0'
androidTestUtil "androidx.test:orchestrator:1.5.0"
androidTestUtil "androidx.test:orchestrator:1.5.1"
}
11 changes: 11 additions & 0 deletions android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,17 @@
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="*/*" />
</intent-filter>

<intent-filter>
<action android:name="android.intent.action.VIEW" />

<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />

<data
android:scheme="twakemail.mobile"
android:host="openApp" />
</intent-filter>
</activity>

<activity
Expand Down
3 changes: 3 additions & 0 deletions assets/images/ic_copy.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions assets/images/ic_help.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions assets/images/ic_subaddressing_allow.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 8 additions & 0 deletions assets/images/ic_subaddressing_disallow.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion backend-docker/docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ version: "3"

services:
tmail-backend:
image: linagora/tmail-backend:memory-branch-master
image: linagora/tmail-backend:memory-1.0.0
container_name: tmail-backend
volumes:
- ./jwt_publickey:/root/conf/jwt_publickey
Expand Down
17 changes: 0 additions & 17 deletions contact/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -688,15 +688,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "6.6.1"
languagetool_textfield:
dependency: transitive
description:
path: "."
ref: twake-supported
resolved-ref: f47dd9829e145acc795b4e3e62f8bc668135fcd6
url: "https://github.com/dab246/languagetool_textfield.git"
source: git
version: "0.1.0"
leak_tracker:
dependency: transitive
description:
Expand Down Expand Up @@ -1110,14 +1101,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.7.0"
throttling:
dependency: transitive
description:
name: throttling
sha256: e48a4c681b1838b8bf99c1a4f822efe43bb69132f9a56091cd5b7d931c862255
url: "https://pub.dev"
source: hosted
version: "2.0.1"
timing:
dependency: transitive
description:
Expand Down
2 changes: 2 additions & 0 deletions core/lib/core.dart
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ export 'presentation/extensions/string_extension.dart';
export 'presentation/extensions/tap_down_details_extension.dart';
export 'domain/extensions/media_type_extension.dart';
export 'presentation/extensions/map_extensions.dart';
export 'presentation/extensions/either_view_state_extension.dart';

// Exceptions
export 'domain/exceptions/download_file_exception.dart';
Expand Down Expand Up @@ -50,6 +51,7 @@ export 'utils/broadcast_channel/broadcast_channel.dart';
export 'utils/list_utils.dart';
export 'utils/mail/domain.dart';
export 'utils/mail/mail_address.dart';
export 'utils/application_manager.dart';

// Views
export 'presentation/views/text/slogan_builder.dart';
Expand Down
16 changes: 16 additions & 0 deletions core/lib/presentation/extensions/either_view_state_extension.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import 'package:core/presentation/state/failure.dart';
import 'package:core/presentation/state/success.dart';
import 'package:dartz/dartz.dart';

typedef OnFailureCallback = void Function(Failure? failure);
typedef OnSuccessCallback<T> = void Function(T success);

extension EitherViewStateExtension on Either<Failure, Success> {
void foldSuccess<T>({
required OnSuccessCallback<T> onSuccess,
required OnFailureCallback onFailure,
}) {
fold(onFailure,
(success) => success is T ? onSuccess(success as T) : onFailure(null));
}
}
4 changes: 4 additions & 0 deletions core/lib/presentation/resources/image_paths.dart
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,10 @@ class ImagePaths {
String get icBadSignature => _getImagePath('ic_bad_signature.svg');
String get icDeleteSelection => _getImagePath('ic_delete_selection.svg');
String get icLogoTwakeWelcome => _getImagePath('ic_logo_twake_welcome.svg');
String get icCopy => _getImagePath('ic_copy.svg');
String get icSubaddressingAllow => _getImagePath('ic_subaddressing_allow.svg');
String get icSubaddressingDisallow => _getImagePath('ic_subaddressing_disallow.svg');
String get icHelp => _getImagePath('ic_help.svg');

String _getImagePath(String imageName) {
return AssetsPaths.images + imageName;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@ class StandardizeHtmlSanitizingTransformers extends TextTransformer {
'style',
'body',
'section',
'google-sheets-html-origin',
'colgroup',
'col',
];

const StandardizeHtmlSanitizingTransformers();
Expand Down
16 changes: 10 additions & 6 deletions core/lib/presentation/views/button/tmail_button_widget.dart
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ class TMailButtonWidget extends StatelessWidget {
final MainAxisSize mainAxisSize;
final bool isLoading;
final Color? hoverColor;
final TextOverflow? textOverflow;

const TMailButtonWidget({
super.key,
Expand Down Expand Up @@ -74,6 +75,7 @@ class TMailButtonWidget extends StatelessWidget {
this.mainAxisSize = MainAxisSize.max,
this.isLoading = false,
this.hoverColor,
this.textOverflow,
});

factory TMailButtonWidget.fromIcon({
Expand Down Expand Up @@ -149,6 +151,7 @@ class TMailButtonWidget extends StatelessWidget {
BoxBorder? border,
int? maxLines,
Color? hoverColor,
TextOverflow? textOverflow,
}) {
return TMailButtonWidget(
key: key,
Expand All @@ -172,6 +175,7 @@ class TMailButtonWidget extends StatelessWidget {
border: border,
maxLines: maxLines,
hoverColor: hoverColor,
textOverflow: textOverflow,
);
}

Expand Down Expand Up @@ -200,7 +204,7 @@ class TMailButtonWidget extends StatelessWidget {
color: AppColor.colorTextButtonHeaderThread
),
maxLines: maxLines,
overflow: maxLines == 1 ? CommonTextStyle.defaultTextOverFlow : null,
overflow: textOverflow ?? (maxLines == 1 ? CommonTextStyle.defaultTextOverFlow : null),
softWrap: maxLines == 1 ? CommonTextStyle.defaultSoftWrap : null,
),
if (trailingIcon != null)
Expand Down Expand Up @@ -240,7 +244,7 @@ class TMailButtonWidget extends StatelessWidget {
color: AppColor.colorTextButtonHeaderThread
),
maxLines: maxLines,
overflow: maxLines == 1 ? CommonTextStyle.defaultTextOverFlow : null,
overflow: textOverflow ?? (maxLines == 1 ? CommonTextStyle.defaultTextOverFlow : null),
softWrap: maxLines == 1 ? CommonTextStyle.defaultSoftWrap : null,
),
)
Expand All @@ -253,7 +257,7 @@ class TMailButtonWidget extends StatelessWidget {
color: AppColor.colorTextButtonHeaderThread
),
maxLines: maxLines,
overflow: maxLines == 1 ? CommonTextStyle.defaultTextOverFlow : null,
overflow: textOverflow ?? (maxLines == 1 ? CommonTextStyle.defaultTextOverFlow : null),
softWrap: maxLines == 1 ? CommonTextStyle.defaultSoftWrap : null,
),
if (trailingIcon != null)
Expand Down Expand Up @@ -284,7 +288,7 @@ class TMailButtonWidget extends StatelessWidget {
color: AppColor.colorTextButtonHeaderThread
),
maxLines: maxLines,
overflow: maxLines == 1 ? CommonTextStyle.defaultTextOverFlow : null,
overflow: textOverflow ?? (maxLines == 1 ? CommonTextStyle.defaultTextOverFlow : null),
softWrap: maxLines == 1 ? CommonTextStyle.defaultSoftWrap : null,
),
)
Expand All @@ -297,7 +301,7 @@ class TMailButtonWidget extends StatelessWidget {
color: AppColor.colorTextButtonHeaderThread
),
maxLines: maxLines,
overflow: maxLines == 1 ? CommonTextStyle.defaultTextOverFlow : null,
overflow: textOverflow ?? (maxLines == 1 ? CommonTextStyle.defaultTextOverFlow : null),
softWrap: maxLines == 1 ? CommonTextStyle.defaultSoftWrap : null,
),
SizedBox(width: iconSpace),
Expand Down Expand Up @@ -339,7 +343,7 @@ class TMailButtonWidget extends StatelessWidget {
color: AppColor.colorTextButtonHeaderThread
),
maxLines: maxLines,
overflow: maxLines == 1 ? CommonTextStyle.defaultTextOverFlow : null,
overflow: textOverflow ?? (maxLines == 1 ? CommonTextStyle.defaultTextOverFlow : null),
softWrap: maxLines == 1 ? CommonTextStyle.defaultSoftWrap : null,
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,11 @@ class ConfirmDialogBuilder {

Key? _key;
String _title = '';
String _content = '';
String _textContent = '';
String _confirmText = '';
String _cancelText = '';
Widget? _iconWidget;
Widget? _additionalWidgetContent;
Color? _colorCancelButton;
Color? _colorConfirmButton;
TextStyle? _styleTextCancelButton;
Expand Down Expand Up @@ -63,7 +64,11 @@ class ConfirmDialogBuilder {
}

void content(String content) {
_content = content;
_textContent = content;
}

void addWidgetContent(Widget? icon) {
_additionalWidgetContent = icon;
}

void addIcon(Widget? icon) {
Expand Down Expand Up @@ -210,11 +215,11 @@ class ConfirmDialogBuilder {
)
)
),
if (_content.isNotEmpty)
if (_textContent.isNotEmpty)
Padding(
padding: _paddingContent ?? const EdgeInsets.symmetric(horizontal: 16, vertical: 24),
child: Center(
child: Text(_content,
child: Text(_textContent,
textAlign: TextAlign.center,
style: _styleContent ?? const TextStyle(fontSize: 17.0, color: AppColor.colorMessageDialog)
),
Expand All @@ -233,6 +238,11 @@ class ConfirmDialogBuilder {
),
),
),
if (_additionalWidgetContent != null)
Padding(
padding: const EdgeInsets.symmetric(horizontal: 16),
child: _additionalWidgetContent,
),
if (isArrangeActionButtonsVertical)
...[
if (_cancelText.isNotEmpty)
Expand Down
Loading
Loading