Fix remote session dialog, peer service, and mobile remote screen

This commit is contained in:
Matt Vogel
2026-02-09 14:20:32 -05:00
parent 372767b142
commit 972ded5b0c
3 changed files with 1 additions and 23 deletions
@@ -176,12 +176,9 @@ class _RemoteControlContentState extends State<_RemoteControlContent> {
void _sendCommand(RemoteCommandType type) {
HapticFeedback.lightImpact();
print('🔴 MobileRemoteScreen: Button pressed! Type: $type');
appLogger.d('MobileRemoteScreen: Sending command: $type');
final provider = context.read<CompanionRemoteProvider>();
print('🔴 Provider isConnected: ${provider.isConnected}');
provider.sendCommand(type);
print('🔴 sendCommand called');
}
@override
@@ -247,13 +247,9 @@ class CompanionRemotePeerService {
});
conn.on('data').listen((data) {
print('🟡 PeerService: DATA RECEIVED! data type: ${data.runtimeType}');
try {
print('🟡 Parsing as JSON...');
final json = data as Map<String, dynamic>;
print('🟡 Creating RemoteCommand from JSON...');
final command = RemoteCommand.fromJson(json);
print('🟡 Command received: ${command.type} from $peerId');
appLogger.d('CompanionRemote: Received command: ${command.type} from $peerId');
// Send acknowledgment for non-ping/pong/ack commands
@@ -261,7 +257,6 @@ class CompanionRemotePeerService {
command.type != RemoteCommandType.pong &&
command.type != RemoteCommandType.ack &&
command.type != RemoteCommandType.deviceInfo) {
print('🟡 Sending ACK for ${command.type}...');
final ackCommand = RemoteCommand(
type: RemoteCommandType.ack,
deviceId: _myPeerId ?? 'unknown',
@@ -269,21 +264,16 @@ class CompanionRemotePeerService {
data: {'originalCommand': command.type.toString()},
);
_connection?.send(ackCommand.toJson());
print('🟡 ACK sent!');
}
print('🟡 Adding to _commandReceivedController...');
_commandReceivedController.add(command);
print('🟡 Command added to stream!');
if (command.type == RemoteCommandType.ping) {
print('🟡 Responding to ping with pong...');
_sendPong(deviceName, platform);
} else if (command.type == RemoteCommandType.ack) {
print('✅ RECEIVED ACK from desktop for: ${json['data']?['originalCommand']}');
appLogger.d('CompanionRemote: Received ACK for: ${json['data']?['originalCommand']}');
}
} catch (e) {
print('🔴 PeerService: Failed to parse command: $e');
appLogger.e('CompanionRemote: Failed to parse command', error: e);
}
});
@@ -374,24 +364,16 @@ class CompanionRemotePeerService {
}
void sendCommand(RemoteCommand command) {
print('🔵 PeerService sendCommand called! command.type: ${command.type}');
print('🔵 _connection: $_connection');
if (_connection == null) {
print('🔴 PeerService: No connection!');
appLogger.w('CompanionRemote: No connection to send command');
return;
}
try {
print('🔵 Converting command to JSON...');
final json = command.toJson();
print('🔵 Sending via connection.send...');
_connection!.send(json);
print('🔵 Command sent over wire!');
appLogger.d('CompanionRemote: Sent command: ${command.type}');
} catch (e) {
print('🔴 PeerService send FAILED: $e');
appLogger.e('CompanionRemote: Failed to send command', error: e);
_errorController.add(
RemotePeerError(
@@ -3,7 +3,6 @@ import 'package:flutter/services.dart';
import 'package:provider/provider.dart';
import 'package:qr_flutter/qr_flutter.dart';
import '../../models/companion_remote/remote_session.dart';
import '../../providers/companion_remote_provider.dart';
import '../../utils/app_logger.dart';