[mob][photos] Send pair req after getting receiver status

This commit is contained in:
Neeraj Gupta
2024-04-25 11:50:49 +05:30
parent e903fbf9bc
commit 36dbda895c

View File

@@ -1,29 +1,49 @@
import "dart:developer" as dev;
import "package:cast/cast.dart"; import "package:cast/cast.dart";
import "package:ente_cast/ente_cast.dart"; import "package:ente_cast/ente_cast.dart";
import "package:flutter/material.dart"; import "package:flutter/material.dart";
class CastServiceImpl extends CastService { class CastServiceImpl extends CastService {
final String _appId = 'F5BCEC64';
final String _pairRequestNamespace = 'urn:x-cast:pair-request';
final Map<String, CastDevice> sessionIDToDeviceID = {};
@override @override
Future<void> connectDevice(BuildContext context, Object device) async { Future<void> connectDevice(BuildContext context, Object device) async {
final CastDevice castDevice = device as CastDevice; final CastDevice castDevice = device as CastDevice;
final session = await CastSessionManager().startSession(castDevice); final session = await CastSessionManager().startSession(castDevice);
session.messageStream.listen((message) {
if (message['type'] == "RECEIVER_STATUS") {
dev.log(
"got RECEIVER_STATUS, Send request to pair",
name: "CastServiceImpl",
);
session.sendMessage(_pairRequestNamespace, {});
} else {
print('receive message: $message');
}
});
session.stateStream.listen((state) { session.stateStream.listen((state) {
if (state == CastSessionState.connected) { if (state == CastSessionState.connected) {
const snackBar = SnackBar(content: Text('Connected')); const snackBar = SnackBar(content: Text('Connected'));
ScaffoldMessenger.of(context).showSnackBar(snackBar); ScaffoldMessenger.of(context).showSnackBar(snackBar);
session.sendMessage('urn:x-cast:pair-request', {}); sessionIDToDeviceID[session.sessionId] = castDevice;
debugPrint("Send request to pair");
session.sendMessage(_pairRequestNamespace, {});
} else if (state == CastSessionState.closed) {
dev.log('Session closed', name: 'CastServiceImpl');
sessionIDToDeviceID.remove(session.sessionId);
} }
}); });
session.messageStream.listen((message) {
print('receive message: $message');
});
debugPrint("Send request to launch");
session.sendMessage(CastSession.kNamespaceReceiver, { session.sendMessage(CastSession.kNamespaceReceiver, {
'type': 'LAUNCH', 'type': 'LAUNCH',
'appId': 'F5BCEC64', // set the appId of your app here 'appId': _appId, // set the appId of your app here
}); });
session.sendMessage('urn:x-cast:pair-request', {}); // session.sendMessage('urn:x-cast:pair-request', {});
} }
@override @override