feat: error reporting with logs (#45)

* feat: add ability to get logs file from ui

* test: add unit test for log line parsing in logs_provider

* refactor: update all logs to obfuscate sensitive information

* feat: generate dynamic zip file name for logs export

* feat: enhance logging in audiobook player and provider for better debugging

* refactor: extract user display logic into UserBar widget for offline access of settings and logs

* feat: add About section with app metadata and source code link in YouPage
This commit is contained in:
Dr.Blank 2024-10-03 05:54:29 -04:00 committed by GitHub
parent 7b0c2c4b88
commit 35a2d7cfce
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
44 changed files with 861 additions and 176 deletions

View file

@ -1,21 +1,11 @@
import 'package:logging/logging.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
import 'package:vaani/api/api_provider.dart';
import 'package:vaani/features/player/core/audiobook_player.dart'
as core;
import 'package:vaani/features/player/core/audiobook_player.dart' as core;
part 'audiobook_player.g.dart';
// @Riverpod(keepAlive: true)
// core.AudiobookPlayer audiobookPlayer(
// AudiobookPlayerRef ref,
// ) {
// final api = ref.watch(authenticatedApiProvider);
// final player = core.AudiobookPlayer(api.token!, api.baseUrl);
// ref.onDispose(player.dispose);
// return player;
// }
final _logger = Logger('AudiobookPlayerProvider');
const playerId = 'audiobook_player';
@ -32,6 +22,7 @@ class SimpleAudiobookPlayer extends _$SimpleAudiobookPlayer {
);
ref.onDispose(player.dispose);
_logger.finer('created simple player');
return player;
}
@ -47,18 +38,16 @@ class AudiobookPlayer extends _$AudiobookPlayer {
// bind notify listeners to the player
player.playerStateStream.listen((_) {
notifyListeners();
ref.notifyListeners();
});
_logger.finer('created player');
return player;
}
void notifyListeners() {
ref.notifyListeners();
}
Future<void> setSpeed(double speed) async {
await state.setSpeed(speed);
notifyListeners();
ref.notifyListeners();
}
}