[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:ente_cast/ente_cast.dart";
import "package:flutter/material.dart";
class CastServiceImpl extends CastService {
final String _appId = 'F5BCEC64';
final String _pairRequestNamespace = 'urn:x-cast:pair-request';
final Map<String, CastDevice> sessionIDToDeviceID = {};
@override
Future<void> connectDevice(BuildContext context, Object device) async {
final CastDevice castDevice = device as 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) {
if (state == CastSessionState.connected) {
const snackBar = SnackBar(content: Text('Connected'));
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, {
'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