mirror of
https://github.com/gabehf/Fladder.git
synced 2026-03-08 23:18:16 -07:00
feature: Video quality options (#234)
Co-authored-by: PartyDonut <PartyDonut@users.noreply.github.com>
This commit is contained in:
parent
957ad6c991
commit
935d6fe176
25 changed files with 644 additions and 232 deletions
39
lib/providers/connectivity_provider.dart
Normal file
39
lib/providers/connectivity_provider.dart
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
import 'package:connectivity_plus/connectivity_plus.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
part 'connectivity_provider.g.dart';
|
||||
|
||||
enum ConnectionState {
|
||||
offline,
|
||||
mobile,
|
||||
wifi,
|
||||
ethernet;
|
||||
|
||||
bool get homeInternet => switch (this) {
|
||||
ConnectionState.offline => false,
|
||||
ConnectionState.mobile => false,
|
||||
ConnectionState.wifi => true,
|
||||
ConnectionState.ethernet => true,
|
||||
};
|
||||
}
|
||||
|
||||
@Riverpod(keepAlive: true)
|
||||
class ConnectivityStatus extends _$ConnectivityStatus {
|
||||
@override
|
||||
ConnectionState build() {
|
||||
Connectivity().onConnectivityChanged.listen(onStateChange);
|
||||
return ConnectionState.offline;
|
||||
}
|
||||
|
||||
void onStateChange(List<ConnectivityResult> connectivityResult) {
|
||||
if (connectivityResult.contains(ConnectivityResult.ethernet)) {
|
||||
state = ConnectionState.ethernet;
|
||||
} else if (connectivityResult.contains(ConnectivityResult.wifi)) {
|
||||
state = ConnectionState.wifi;
|
||||
} else if (connectivityResult.contains(ConnectivityResult.mobile)) {
|
||||
state = ConnectionState.mobile;
|
||||
} else if (connectivityResult.contains(ConnectivityResult.none)) {
|
||||
state = ConnectionState.offline;
|
||||
}
|
||||
}
|
||||
}
|
||||
27
lib/providers/connectivity_provider.g.dart
Normal file
27
lib/providers/connectivity_provider.g.dart
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'connectivity_provider.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
String _$connectivityStatusHash() =>
|
||||
r'2e9b645c78146ed25456e1286df83761588b8e27';
|
||||
|
||||
/// See also [ConnectivityStatus].
|
||||
@ProviderFor(ConnectivityStatus)
|
||||
final connectivityStatusProvider =
|
||||
NotifierProvider<ConnectivityStatus, ConnectionState>.internal(
|
||||
ConnectivityStatus.new,
|
||||
name: r'connectivityStatusProvider',
|
||||
debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$connectivityStatusHash,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
typedef _$ConnectivityStatus = Notifier<ConnectionState>;
|
||||
// ignore_for_file: type=lint
|
||||
// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package
|
||||
|
|
@ -499,34 +499,21 @@ class JellyService {
|
|||
|
||||
Future<Response<PlaybackInfoResponse>> itemsItemIdPlaybackInfoPost({
|
||||
required String? itemId,
|
||||
int? maxStreamingBitrate,
|
||||
int? startTimeTicks,
|
||||
int? audioStreamIndex,
|
||||
int? subtitleStreamIndex,
|
||||
int? maxAudioChannels,
|
||||
String? mediaSourceId,
|
||||
String? liveStreamId,
|
||||
bool? autoOpenLiveStream,
|
||||
bool? enableDirectPlay,
|
||||
bool? enableDirectStream,
|
||||
bool? enableTranscoding,
|
||||
bool? allowVideoStreamCopy,
|
||||
bool? allowAudioStreamCopy,
|
||||
required PlaybackInfoDto? body,
|
||||
}) async =>
|
||||
api.itemsItemIdPlaybackInfoPost(
|
||||
itemId: itemId,
|
||||
userId: account?.id,
|
||||
enableDirectPlay: enableDirectPlay,
|
||||
enableDirectStream: enableDirectStream,
|
||||
enableTranscoding: enableTranscoding,
|
||||
autoOpenLiveStream: autoOpenLiveStream,
|
||||
maxStreamingBitrate: maxStreamingBitrate,
|
||||
liveStreamId: liveStreamId,
|
||||
startTimeTicks: startTimeTicks,
|
||||
mediaSourceId: mediaSourceId,
|
||||
audioStreamIndex: audioStreamIndex,
|
||||
subtitleStreamIndex: subtitleStreamIndex,
|
||||
enableDirectPlay: body?.enableDirectPlay,
|
||||
enableDirectStream: body?.enableDirectStream,
|
||||
enableTranscoding: body?.enableTranscoding,
|
||||
autoOpenLiveStream: body?.autoOpenLiveStream,
|
||||
maxStreamingBitrate: body?.maxStreamingBitrate,
|
||||
liveStreamId: body?.liveStreamId,
|
||||
startTimeTicks: body?.startTimeTicks,
|
||||
mediaSourceId: body?.mediaSourceId,
|
||||
audioStreamIndex: body?.audioStreamIndex,
|
||||
subtitleStreamIndex: body?.subtitleStreamIndex,
|
||||
body: body,
|
||||
);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue