TF-359 Open mailto link outside the Tmail app in mobile/tablet
This commit is contained in:
@@ -4,6 +4,7 @@ import 'package:fluttertoast/fluttertoast.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'package:tmail_ui_user/features/email/data/local/html_analyzer.dart';
|
||||
import 'package:tmail_ui_user/main/utils/email_receive_manager.dart';
|
||||
|
||||
class CoreBindings extends Bindings {
|
||||
|
||||
@@ -16,6 +17,7 @@ class CoreBindings extends Bindings {
|
||||
_bindingTransformer();
|
||||
_bindingToast();
|
||||
_bindingDeviceManager();
|
||||
_bindingReceivingSharingStream();
|
||||
}
|
||||
|
||||
void _bindingAppImagePaths() {
|
||||
@@ -47,4 +49,8 @@ class CoreBindings extends Bindings {
|
||||
Get.put(DeviceInfoPlugin());
|
||||
Get.put(DeviceManager(Get.find<DeviceInfoPlugin>()));
|
||||
}
|
||||
|
||||
void _bindingReceivingSharingStream() {
|
||||
Get.put(EmailReceiveManager());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email_address.dart';
|
||||
import 'package:receive_sharing_intent/receive_sharing_intent.dart';
|
||||
import 'package:rxdart/rxdart.dart';
|
||||
|
||||
class EmailReceiveManager {
|
||||
|
||||
BehaviorSubject<EmailAddress?> _pendingEmailAddressInfo = BehaviorSubject.seeded(null);
|
||||
BehaviorSubject<EmailAddress?> get pendingEmailAddressInfo => _pendingEmailAddressInfo;
|
||||
|
||||
Stream<Uri?> get receivingSharingStream {
|
||||
return Rx.merge([
|
||||
Stream.fromFuture(ReceiveSharingIntent.getInitialTextAsUri()),
|
||||
ReceiveSharingIntent.getTextStreamAsUri()
|
||||
]);
|
||||
}
|
||||
Stream<List<SharedMediaFile>> get receivingSharingStream2 {
|
||||
return Rx.merge([
|
||||
Stream.fromFuture(ReceiveSharingIntent.getInitialMedia()),
|
||||
ReceiveSharingIntent.getMediaStream()
|
||||
]);
|
||||
}
|
||||
|
||||
void setPendingEmailAddress(EmailAddress emailAddress) async {
|
||||
clearPendingEmailAddress();
|
||||
_pendingEmailAddressInfo.add(emailAddress);
|
||||
}
|
||||
|
||||
void clearPendingEmailAddress() {
|
||||
if(_pendingEmailAddressInfo.isClosed) {
|
||||
_pendingEmailAddressInfo = BehaviorSubject.seeded(null);
|
||||
} else {
|
||||
_pendingEmailAddressInfo.add(null);
|
||||
}
|
||||
}
|
||||
|
||||
void closeEmailReceiveManagerStream() {
|
||||
_pendingEmailAddressInfo.close();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user