TF-3278 Handle open tmail app deep link but it was installed but signed in with the other account
This commit is contained in:
@@ -2,7 +2,7 @@ import 'package:equatable/equatable.dart';
|
||||
import 'package:model/model.dart';
|
||||
|
||||
class DeepLinkData with EquatableMixin {
|
||||
final String path;
|
||||
final String action;
|
||||
final String? accessToken;
|
||||
final String? refreshToken;
|
||||
final String? idToken;
|
||||
@@ -10,7 +10,7 @@ class DeepLinkData with EquatableMixin {
|
||||
final String? username;
|
||||
|
||||
DeepLinkData({
|
||||
required this.path,
|
||||
required this.action,
|
||||
this.accessToken,
|
||||
this.refreshToken,
|
||||
this.idToken,
|
||||
@@ -35,7 +35,7 @@ class DeepLinkData with EquatableMixin {
|
||||
|
||||
@override
|
||||
List<Object?> get props => [
|
||||
path,
|
||||
action,
|
||||
accessToken,
|
||||
refreshToken,
|
||||
idToken,
|
||||
|
||||
@@ -8,6 +8,7 @@ import 'package:tmail_ui_user/main/deep_links/deep_link_data.dart';
|
||||
class DeepLinksManager {
|
||||
Future<DeepLinkData?> getDeepLinkData() async {
|
||||
final uriLink = await AppLinks().getInitialLink();
|
||||
log('DeepLinksManager::getDeepLinkData:uriLink = $uriLink');
|
||||
if (uriLink == null) return null;
|
||||
|
||||
final deepLinkData = parseDeepLink(uriLink.toString());
|
||||
@@ -16,18 +17,24 @@ class DeepLinksManager {
|
||||
|
||||
DeepLinkData? parseDeepLink(String url) {
|
||||
try {
|
||||
final uri = Uri.parse(url.replaceFirst(OIDCConstant.twakeWorkplaceUrlScheme, 'https'));
|
||||
final updatedUrl = url.replaceFirst(
|
||||
OIDCConstant.twakeWorkplaceUrlScheme,
|
||||
'https',
|
||||
);
|
||||
final uri = Uri.parse(updatedUrl);
|
||||
final action = uri.host;
|
||||
final accessToken = uri.queryParameters['access_token'];
|
||||
final refreshToken = uri.queryParameters['refresh_token'];
|
||||
final idToken = uri.queryParameters['id_token'];
|
||||
final expiresInStr = uri.queryParameters['expires_in'];
|
||||
final username = uri.queryParameters['username'];
|
||||
|
||||
final accessToken = uri.queryParameters['access_token'] ?? '';
|
||||
final refreshToken = uri.queryParameters['refresh_token'] ?? '';
|
||||
final idToken = uri.queryParameters['id_token'] ?? '';
|
||||
final expiresInStr = uri.queryParameters['expires_in'] ?? '';
|
||||
final username = uri.queryParameters['username'] ?? '';
|
||||
|
||||
final expiresIn = int.tryParse(expiresInStr);
|
||||
final expiresIn = expiresInStr != null
|
||||
? int.tryParse(expiresInStr)
|
||||
: null;
|
||||
|
||||
return DeepLinkData(
|
||||
path: uri.path,
|
||||
action: action,
|
||||
accessToken: accessToken,
|
||||
refreshToken: refreshToken,
|
||||
idToken: idToken,
|
||||
|
||||
@@ -4315,6 +4315,13 @@ class AppLocalizations {
|
||||
);
|
||||
}
|
||||
|
||||
String get tokenInvalid {
|
||||
return Intl.message(
|
||||
'Token invalid',
|
||||
name: 'tokenInvalid',
|
||||
);
|
||||
}
|
||||
|
||||
String get getHelpOrReportABug {
|
||||
return Intl.message(
|
||||
'Get help or report a bug',
|
||||
|
||||
Reference in New Issue
Block a user