mirror of
https://gitlab.futo.org/videostreaming/grayjay.git
synced 2025-04-20 11:35:46 +00:00
Implemented support for automatically connecting using QR code.
This commit is contained in:
parent
7f1cb22c12
commit
627b8c2b5d
2 changed files with 16 additions and 10 deletions
|
@ -182,14 +182,14 @@ class StateCasting {
|
|||
val networkConfig = Json.decodeFromString<FCastNetworkConfig>(json)
|
||||
val tcpService = networkConfig.services.first { v -> v.type == 0 }
|
||||
|
||||
addRememberedDevice(CastingDeviceInfo(
|
||||
val foundInfo = addRememberedDevice(CastingDeviceInfo(
|
||||
name = networkConfig.name,
|
||||
type = CastProtocolType.FCAST,
|
||||
addresses = networkConfig.addresses.toTypedArray(),
|
||||
port = tcpService.port
|
||||
))
|
||||
|
||||
UIDialogs.toast(context,"FCast device '${networkConfig.name}' added")
|
||||
connectDevice(deviceFromCastingDeviceInfo(foundInfo))
|
||||
}
|
||||
|
||||
fun onStop() {
|
||||
|
@ -335,15 +335,20 @@ class StateCasting {
|
|||
Logger.i(TAG, "Connect to device ${device.name}");
|
||||
}
|
||||
|
||||
fun addRememberedDevice(deviceInfo: CastingDeviceInfo) {
|
||||
fun addRememberedDevice(deviceInfo: CastingDeviceInfo): CastingDeviceInfo {
|
||||
val device = deviceFromCastingDeviceInfo(deviceInfo);
|
||||
addRememberedDevice(device);
|
||||
return addRememberedDevice(device);
|
||||
}
|
||||
|
||||
fun addRememberedDevice(device: CastingDevice) {
|
||||
if (_storage.addDevice(device.getDeviceInfo())) {
|
||||
fun addRememberedDevice(device: CastingDevice): CastingDeviceInfo {
|
||||
val deviceInfo = device.getDeviceInfo()
|
||||
val foundInfo = _storage.addDevice(deviceInfo)
|
||||
if (foundInfo == deviceInfo) {
|
||||
rememberedDevices.add(device);
|
||||
return foundInfo;
|
||||
}
|
||||
|
||||
return foundInfo;
|
||||
}
|
||||
|
||||
fun removeRememberedDevice(device: CastingDevice) {
|
||||
|
|
|
@ -20,10 +20,11 @@ class CastingDeviceInfoStorage : FragmentedStorageFileJson() {
|
|||
}
|
||||
|
||||
@Synchronized
|
||||
fun addDevice(castingDeviceInfo: CastingDeviceInfo): Boolean {
|
||||
if (deviceInfos.any { d -> d.name == castingDeviceInfo.name }) {
|
||||
fun addDevice(castingDeviceInfo: CastingDeviceInfo): CastingDeviceInfo {
|
||||
val foundDeviceInfo = deviceInfos.firstOrNull { d -> d.name == castingDeviceInfo.name }
|
||||
if (foundDeviceInfo != null) {
|
||||
Logger.i("CastingDeviceInfoStorage", "Device '${castingDeviceInfo.name}' already existed in device storage.")
|
||||
return false;
|
||||
return foundDeviceInfo;
|
||||
}
|
||||
|
||||
if (deviceInfos.size >= 5) {
|
||||
|
@ -32,7 +33,7 @@ class CastingDeviceInfoStorage : FragmentedStorageFileJson() {
|
|||
|
||||
deviceInfos.add(castingDeviceInfo);
|
||||
save();
|
||||
return true;
|
||||
return castingDeviceInfo;
|
||||
}
|
||||
|
||||
@Synchronized
|
||||
|
|
Loading…
Add table
Reference in a new issue