mirror of
https://gitlab.futo.org/videostreaming/grayjay.git
synced 2025-09-11 20:16:08 +00:00
casting: undo formatting
This commit is contained in:
parent
42d886ba44
commit
b1c079aaee
6 changed files with 272 additions and 722 deletions
|
@ -117,6 +117,7 @@ import java.util.LinkedList
|
|||
import java.util.UUID
|
||||
import java.util.concurrent.ConcurrentLinkedQueue
|
||||
|
||||
|
||||
class MainActivity : AppCompatActivity, IWithResultLauncher {
|
||||
|
||||
//TODO: Move to dimensions
|
||||
|
@ -506,7 +507,7 @@ class MainActivity : AppCompatActivity, IWithResultLauncher {
|
|||
handleIntent(intent);
|
||||
|
||||
if (Settings.instance.casting.enabled) {
|
||||
StateCasting.instance.start(this)
|
||||
StateCasting.instance.start(this);
|
||||
}
|
||||
|
||||
StatePlatform.instance.onDevSourceChanged.subscribe {
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -121,17 +121,13 @@ class ConnectCastingDialog(context: Context?) : AlertDialog(context) {
|
|||
StateCasting.instance.onDeviceChanged.subscribe(this) { d ->
|
||||
val index = _unifiedDevices.indexOfFirst { it.castingDevice.name == d.name }
|
||||
if (index != -1) {
|
||||
_unifiedDevices[index] = DeviceAdapterEntry(
|
||||
d,
|
||||
_unifiedDevices[index].isPinnedDevice,
|
||||
_unifiedDevices[index].isOnlineDevice
|
||||
)
|
||||
_unifiedDevices[index] = DeviceAdapterEntry(d, _unifiedDevices[index].isPinnedDevice, _unifiedDevices[index].isOnlineDevice)
|
||||
_adapter.notifyItemChanged(index)
|
||||
}
|
||||
}
|
||||
|
||||
StateCasting.instance.onDeviceRemoved.subscribe(this) { deviceName ->
|
||||
_devices.remove(deviceName.name)
|
||||
StateCasting.instance.onDeviceRemoved.subscribe(this) { d ->
|
||||
_devices.remove(d.name)
|
||||
updateUnifiedList()
|
||||
}
|
||||
|
||||
|
@ -168,7 +164,6 @@ class ConnectCastingDialog(context: Context?) : AlertDialog(context) {
|
|||
&& oldItem.isOnlineDevice == newItem.isOnlineDevice
|
||||
&& oldItem.isPinnedDevice == newItem.isPinnedDevice
|
||||
}
|
||||
|
||||
override fun areContentsTheSame(oldItemPosition: Int, newItemPosition: Int): Boolean {
|
||||
val oldItem = oldList[oldItemPosition]
|
||||
val newItem = newList[newItemPosition]
|
||||
|
@ -191,40 +186,23 @@ class ConnectCastingDialog(context: Context?) : AlertDialog(context) {
|
|||
val unifiedList = mutableListOf<DeviceAdapterEntry>()
|
||||
|
||||
val onlineDevices = StateCasting.instance.devices.values.associateBy { it.name }
|
||||
val rememberedDevices =
|
||||
StateCasting.instance.getRememberedCastingDevices().associateBy { it.name }
|
||||
val rememberedDevices = StateCasting.instance.getRememberedCastingDevices().associateBy { it.name }
|
||||
|
||||
val intersectionNames = _devices.intersect(_rememberedDevices)
|
||||
for (name in intersectionNames) {
|
||||
onlineDevices[name]?.let {
|
||||
unifiedList.add(
|
||||
DeviceAdapterEntry(
|
||||
it, true, true
|
||||
)
|
||||
onlineDevices[name]?.let { unifiedList.add(DeviceAdapterEntry(it, true, true)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
val onlineOnlyNames = _devices - _rememberedDevices
|
||||
for (name in onlineOnlyNames) {
|
||||
onlineDevices[name]?.let {
|
||||
unifiedList.add(
|
||||
DeviceAdapterEntry(
|
||||
it, false, true
|
||||
)
|
||||
)
|
||||
}
|
||||
onlineDevices[name]?.let { unifiedList.add(DeviceAdapterEntry(it, false, true )) }
|
||||
}
|
||||
|
||||
val rememberedOnlyNames = _rememberedDevices - _devices
|
||||
for (name in rememberedOnlyNames) {
|
||||
rememberedDevices[name]?.let {
|
||||
unifiedList.add(
|
||||
DeviceAdapterEntry(
|
||||
it, true, false
|
||||
)
|
||||
)
|
||||
}
|
||||
rememberedDevices[name]?.let { unifiedList.add(DeviceAdapterEntry(it, true, false)) }
|
||||
}
|
||||
|
||||
return unifiedList
|
||||
|
|
|
@ -138,20 +138,20 @@ class ConnectedCastingDialog(context: Context?) : AlertDialog(context) {
|
|||
|
||||
StateCasting.instance.onActiveDeviceVolumeChanged.remove(this)
|
||||
StateCasting.instance.onActiveDeviceVolumeChanged.subscribe {
|
||||
_sliderVolume.value = it.toFloat().coerceAtLeast(0.0f).coerceAtMost(_sliderVolume.valueTo)
|
||||
}
|
||||
_sliderVolume.value = it.toFloat().coerceAtLeast(0.0f).coerceAtMost(_sliderVolume.valueTo);
|
||||
};
|
||||
|
||||
StateCasting.instance.onActiveDeviceTimeChanged.remove(this)
|
||||
StateCasting.instance.onActiveDeviceTimeChanged.remove(this);
|
||||
StateCasting.instance.onActiveDeviceTimeChanged.subscribe {
|
||||
_sliderPosition.value = it.toFloat().coerceAtLeast(0.0f).coerceAtMost(_sliderPosition.valueTo)
|
||||
}
|
||||
_sliderPosition.value = it.toFloat().coerceAtLeast(0.0f).coerceAtMost(_sliderPosition.valueTo);
|
||||
};
|
||||
|
||||
StateCasting.instance.onActiveDeviceDurationChanged.remove(this)
|
||||
StateCasting.instance.onActiveDeviceDurationChanged.remove(this);
|
||||
StateCasting.instance.onActiveDeviceDurationChanged.subscribe {
|
||||
val dur = it.toFloat().coerceAtLeast(1.0f)
|
||||
_sliderPosition.value = _sliderPosition.value.coerceAtLeast(0.0f).coerceAtMost(dur)
|
||||
_sliderPosition.value = _sliderPosition.value.coerceAtLeast(0.0f).coerceAtMost(dur);
|
||||
_sliderPosition.valueTo = dur
|
||||
}
|
||||
};
|
||||
|
||||
val ad = StateCasting.instance.activeDevice
|
||||
if (ad != null) {
|
||||
|
@ -160,23 +160,20 @@ class ConnectedCastingDialog(context: Context?) : AlertDialog(context) {
|
|||
val isConnected = ad != null && ad.connectionState == CastConnectionState.CONNECTED
|
||||
setLoading(!isConnected)
|
||||
StateCasting.instance.onActiveDeviceConnectionStateChanged.subscribe(this) { _, connectionState ->
|
||||
StateApp.instance.scopeOrNull?.launch(Dispatchers.Main) {
|
||||
setLoading(connectionState != CastConnectionState.CONNECTED)
|
||||
}
|
||||
updateDevice()
|
||||
}
|
||||
StateApp.instance.scopeOrNull?.launch(Dispatchers.Main) { setLoading(connectionState != CastConnectionState.CONNECTED); };
|
||||
updateDevice();
|
||||
};
|
||||
|
||||
updateDevice();
|
||||
}
|
||||
|
||||
override fun dismiss() {
|
||||
super.dismiss();
|
||||
|
||||
StateCasting.instance.onActiveDeviceVolumeChanged.remove(this);
|
||||
StateCasting.instance.onActiveDeviceDurationChanged.remove(this);
|
||||
StateCasting.instance.onActiveDeviceTimeChanged.remove(this);
|
||||
StateCasting.instance.onActiveDeviceConnectionStateChanged.remove(this);
|
||||
_device = null;
|
||||
StateCasting.instance.onActiveDeviceConnectionStateChanged.remove(this);
|
||||
}
|
||||
|
||||
private fun updateDevice() {
|
||||
|
|
|
@ -1171,9 +1171,8 @@ class VideoDetailView : ConstraintLayout {
|
|||
_onPauseCalled = true;
|
||||
_taskLoadVideo.cancel();
|
||||
|
||||
if (StateCasting.instance.isCasting) {
|
||||
return
|
||||
}
|
||||
if (StateCasting.instance.isCasting)
|
||||
return;
|
||||
|
||||
if(allowBackground)
|
||||
StatePlayer.instance.startOrUpdateMediaSession(context, video);
|
||||
|
|
|
@ -760,7 +760,7 @@ class StateApp {
|
|||
_connectivityManager?.unregisterNetworkCallback(_connectivityEvents);
|
||||
|
||||
StatePlayer.instance.closeMediaSession();
|
||||
StateCasting.instance.stop()
|
||||
StateCasting.instance.stop();
|
||||
StateSync.instance.stop();
|
||||
StatePlayer.dispose();
|
||||
Companion.dispose();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue