feat: multi-IP QR code for companion remote

This commit is contained in:
edde746
2026-02-24 02:31:24 +01:00
parent 2276750704
commit 9528b8f61a
5 changed files with 168 additions and 55 deletions
@@ -25,25 +25,28 @@ class RecentRemoteSession {
Map<String, dynamic> toJson() => _$RecentRemoteSessionToJson(this);
/// Create from QR code data (format: "ip|port|sessionId|pin")
/// Create from QR code data (format: "ip1,ip2|port|sessionId|pin" or legacy "ip|port|sessionId|pin")
factory RecentRemoteSession.fromQrData(String qrData) {
final parts = qrData.split('|');
if (parts.length < 4) {
throw FormatException('Invalid QR code format - expected ip|port|sessionId|pin');
}
final ip = parts.first;
final ipsField = parts.first;
final port = parts[1];
final sessionId = parts[2];
final pin = parts[3];
// Use the first IP for storage (comma-separated IPs supported in QR)
final firstIp = ipsField.split(',').first;
return RecentRemoteSession(
sessionId: sessionId,
pin: pin,
deviceName: 'Unknown Device',
platform: 'unknown',
lastConnected: DateTime.now(),
hostAddress: '$ip:$port',
hostAddress: '$firstIp:$port',
);
}