hive切换hive_ce

This commit is contained in:
rang 2025-12-22 15:04:04 +08:00
parent 3362a254ff
commit 6efa41e035
30 changed files with 1403 additions and 2566 deletions

View file

@ -2,7 +2,7 @@ import 'package:flutter/foundation.dart';
import 'package:logging/logging.dart';
import 'package:logging_appenders/logging_appenders.dart';
import 'package:vaani/globals.dart';
import 'package:vaani/shared/extensions/duration_format.dart';
// import 'package:vaani/shared/extensions/duration_format.dart';
Future<String> getLoggingFilePath() async {
// final Directory directory = await getApplicationDocumentsDirectory();
@ -24,11 +24,11 @@ Future<void> initLogging() async {
baseFilePath: await getLoggingFilePath(),
formatter: formatter,
).attachToLogger(Logger.root);
Logger.root.onRecord.listen((record) {
// Print log records to the console
debugPrint(
'${record.loggerName}: ${record.level.name}: ${record.time.time}: ${record.message}',
);
});
// Logger.root.onRecord.listen((record) {
// // Print log records to the console
// debugPrint(
// '${record.loggerName}: ${record.level.name}: ${record.time.time}: ${record.message}',
// );
// });
}
}

View file

@ -0,0 +1,45 @@
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:logging/logging.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
import 'package:shelfsdk/audiobookshelf_api.dart';
import 'package:vaani/api/api_provider.dart';
import 'package:vaani/globals.dart';
import 'package:vaani/shared/extensions/model_conversions.dart';
part 'player_new.g.dart';
final _logger = Logger('player');
@Riverpod(keepAlive: true)
Future<PlaybackSessionExpanded> playback(Ref ref, String id) async {
final api = ref.watch(authenticatedApiProvider);
try {
final session = await api.items.play(
libraryItemId: id,
parameters: PlayItemReqParams(
deviceInfo: DeviceInfoReqParams(
clientVersion: appVersion,
manufacturer: deviceManufacturer,
model: deviceModel,
sdkVersion: deviceSdkVersion,
clientName: appName,
deviceName: deviceName,
),
forceDirectPlay: false,
forceTranscode: false,
supportedMimeTypes: [
"audio/flac",
"audio/mpeg",
"audio/mp4",
"audio/ogg",
"audio/aac",
"audio/webm",
],
),
);
return session!.asExpanded;
} catch (e) {
_logger.severe('Error starting session: $e');
throw StateError('Error starting session');
}
}

View file

@ -0,0 +1,159 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'player_new.dart';
// **************************************************************************
// RiverpodGenerator
// **************************************************************************
String _$playbackHash() => r'd4f270f9c46d6a52b186bc7271d584f28a5547f5';
/// Copied from Dart SDK
class _SystemHash {
_SystemHash._();
static int combine(int hash, int value) {
// ignore: parameter_assignments
hash = 0x1fffffff & (hash + value);
// ignore: parameter_assignments
hash = 0x1fffffff & (hash + ((0x0007ffff & hash) << 10));
return hash ^ (hash >> 6);
}
static int finish(int hash) {
// ignore: parameter_assignments
hash = 0x1fffffff & (hash + ((0x03ffffff & hash) << 3));
// ignore: parameter_assignments
hash = hash ^ (hash >> 11);
return 0x1fffffff & (hash + ((0x00003fff & hash) << 15));
}
}
/// See also [playback].
@ProviderFor(playback)
const playbackProvider = PlaybackFamily();
/// See also [playback].
class PlaybackFamily extends Family<AsyncValue<PlaybackSessionExpanded>> {
/// See also [playback].
const PlaybackFamily();
/// See also [playback].
PlaybackProvider call(
String id,
) {
return PlaybackProvider(
id,
);
}
@override
PlaybackProvider getProviderOverride(
covariant PlaybackProvider provider,
) {
return call(
provider.id,
);
}
static const Iterable<ProviderOrFamily>? _dependencies = null;
@override
Iterable<ProviderOrFamily>? get dependencies => _dependencies;
static const Iterable<ProviderOrFamily>? _allTransitiveDependencies = null;
@override
Iterable<ProviderOrFamily>? get allTransitiveDependencies =>
_allTransitiveDependencies;
@override
String? get name => r'playbackProvider';
}
/// See also [playback].
class PlaybackProvider extends FutureProvider<PlaybackSessionExpanded> {
/// See also [playback].
PlaybackProvider(
String id,
) : this._internal(
(ref) => playback(
ref as PlaybackRef,
id,
),
from: playbackProvider,
name: r'playbackProvider',
debugGetCreateSourceHash:
const bool.fromEnvironment('dart.vm.product')
? null
: _$playbackHash,
dependencies: PlaybackFamily._dependencies,
allTransitiveDependencies: PlaybackFamily._allTransitiveDependencies,
id: id,
);
PlaybackProvider._internal(
super._createNotifier, {
required super.name,
required super.dependencies,
required super.allTransitiveDependencies,
required super.debugGetCreateSourceHash,
required super.from,
required this.id,
}) : super.internal();
final String id;
@override
Override overrideWith(
FutureOr<PlaybackSessionExpanded> Function(PlaybackRef provider) create,
) {
return ProviderOverride(
origin: this,
override: PlaybackProvider._internal(
(ref) => create(ref as PlaybackRef),
from: from,
name: null,
dependencies: null,
allTransitiveDependencies: null,
debugGetCreateSourceHash: null,
id: id,
),
);
}
@override
FutureProviderElement<PlaybackSessionExpanded> createElement() {
return _PlaybackProviderElement(this);
}
@override
bool operator ==(Object other) {
return other is PlaybackProvider && other.id == id;
}
@override
int get hashCode {
var hash = _SystemHash.combine(0, runtimeType.hashCode);
hash = _SystemHash.combine(hash, id.hashCode);
return _SystemHash.finish(hash);
}
}
@Deprecated('Will be removed in 3.0. Use Ref instead')
// ignore: unused_element
mixin PlaybackRef on FutureProviderRef<PlaybackSessionExpanded> {
/// The parameter `id` of this provider.
String get id;
}
class _PlaybackProviderElement
extends FutureProviderElement<PlaybackSessionExpanded> with PlaybackRef {
_PlaybackProviderElement(super.provider);
@override
String get id => (origin as PlaybackProvider).id;
}
// 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

View file

@ -30,12 +30,12 @@ class ApiSettings extends _$ApiSettings {
var foundSettings = _box.getAt(0);
// foundSettings.activeServer ??= foundSettings.activeUser?.server;
// foundSettings =foundSettings.copyWith(activeServer: foundSettings.activeUser?.server);
if (foundSettings.activeServer == null) {
foundSettings = foundSettings.copyWith(
if (foundSettings?.activeServer == null) {
foundSettings = foundSettings!.copyWith(
activeServer: foundSettings.activeUser?.server,
);
}
_logger.fine('found api settings in box: ${foundSettings.obfuscate()}');
_logger.fine('found api settings in box: ${foundSettings!.obfuscate()}');
return foundSettings;
} else {
// create a new settings object

View file

@ -6,7 +6,7 @@ part of 'api_settings_provider.dart';
// RiverpodGenerator
// **************************************************************************
String _$apiSettingsHash() => r'5bc1e16e9d72b77fb10637aabadf08e8947da580';
String _$apiSettingsHash() => r'd7aff154cb65b0396df3ccfe25c59dedb56226fa';
/// See also [ApiSettings].
@ProviderFor(ApiSettings)

View file

@ -34,7 +34,7 @@ class AppSettings extends _$AppSettings {
@override
model.AppSettings build() {
state = loadOrCreateAppSettings();
ref.listenSelf((_, __) {
listenSelf((_, __) {
writeToBox();
});
return state;

View file

@ -6,7 +6,7 @@ part of 'app_settings_provider.dart';
// RiverpodGenerator
// **************************************************************************
String _$appSettingsHash() => r'314d7936f54550f57d308056a99230402342a6d0';
String _$appSettingsHash() => r'744d7e0157eb3b089c4187b35b845fc78547a44e';
/// See also [AppSettings].
@ProviderFor(AppSettings)