TF-1718 Handle unsubscribe mail by mailto links
Signed-off-by: dab246 <tdvu@linagora.com> (cherry picked from commit f96273c52456ecd758d8bbbafc4d2c7af6ec7921)
This commit is contained in:
@@ -18,6 +18,7 @@ class NavigationRouter with EquatableMixin {
|
||||
final String? routeName;
|
||||
final EmailAddress? emailAddress;
|
||||
final String? subject;
|
||||
final String? body;
|
||||
|
||||
NavigationRouter({
|
||||
this.emailId,
|
||||
@@ -27,6 +28,7 @@ class NavigationRouter with EquatableMixin {
|
||||
this.routeName,
|
||||
this.emailAddress,
|
||||
this.subject,
|
||||
this.body,
|
||||
});
|
||||
|
||||
factory NavigationRouter.initial() => NavigationRouter();
|
||||
@@ -40,5 +42,6 @@ class NavigationRouter with EquatableMixin {
|
||||
routeName,
|
||||
emailAddress,
|
||||
subject,
|
||||
body,
|
||||
];
|
||||
}
|
||||
@@ -23,6 +23,7 @@ abstract class RouteUtils {
|
||||
static const String paramRouteName = 'routeName';
|
||||
static const String paramMailtoAddress = 'mailtoAddress';
|
||||
static const String paramSubject = 'subject';
|
||||
static const String paramBody = 'body';
|
||||
|
||||
static const String mailtoPrefix = 'mailto:';
|
||||
|
||||
@@ -76,6 +77,7 @@ abstract class RouteUtils {
|
||||
final routeName = parameters[paramRouteName];
|
||||
final mailtoAddress = parameters[paramMailtoAddress];
|
||||
final subject = parameters[paramSubject];
|
||||
final body = parameters[paramBody];
|
||||
|
||||
final emailId = idParam != null ? EmailId(Id(idParam)) : null;
|
||||
final mailboxId = contextPram != null ? MailboxId(Id(contextPram)) : null;
|
||||
@@ -95,6 +97,7 @@ abstract class RouteUtils {
|
||||
routeName: routeName,
|
||||
emailAddress: emailAddress,
|
||||
subject: subject,
|
||||
body: body,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -121,6 +124,9 @@ abstract class RouteUtils {
|
||||
if (mapQueryParam.containsKey(paramSubject)) {
|
||||
mapMailto[paramSubject] = mapQueryParam[paramSubject];
|
||||
}
|
||||
if (mapQueryParam.containsKey(paramBody)) {
|
||||
mapMailto[paramBody] = mapQueryParam[paramBody];
|
||||
}
|
||||
} else if (mailtoUri != null) {
|
||||
final mailtoUrlDecoded = Uri.decodeFull(mailtoUri);
|
||||
mapMailto[paramMailtoAddress] = mailtoUrlDecoded;
|
||||
@@ -130,4 +136,11 @@ abstract class RouteUtils {
|
||||
log('RouteUtils::parseMapMailtoFromUri:mapMailto: $mapMailto');
|
||||
return mapMailto;
|
||||
}
|
||||
|
||||
static NavigationRouter generateNavigationRouterFromMailtoLink(String mailtoLink) {
|
||||
final mailtoMap = parseMapMailtoFromUri(mailtoLink);
|
||||
final navigationRouter = parsingRouteParametersToNavigationRouter(mailtoMap);
|
||||
log('RouteUtils::generateNavigationRouterFromMailtoLink:navigationRouter: $navigationRouter');
|
||||
return navigationRouter;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user