madari-oss/lib/utils/load_language.dart
Madari Developers 16fe4a653f Project import generated by Copybara.
GitOrigin-RevId: 829626e92d5dba6a4586d1e7c4bd1615ec396e88
2025-01-02 18:46:26 +00:00

52 lines
1.4 KiB
Dart

import 'dart:convert';
import 'package:flutter/cupertino.dart';
import '../engine/engine.dart';
Future<Map<String, String>> loadLanguages(BuildContext context) async {
final data = await DefaultAssetBundle.of(context)
.loadString("assets/data/languages.json");
final result = jsonDecode(data);
final Map<String, String> availableLanguages = {};
for (final entry in result.entries) {
availableLanguages[(entry as MapEntry).key as String] =
entry.value as String;
}
return availableLanguages;
}
PlaybackConfig getPlaybackConfig() {
final user = AppEngine.engine.pb.authStore.record;
if (user == null) {
throw Exception('User not authenticated');
}
final config = user.data['config'] as Map<String, dynamic>? ?? {};
final playbackConfig = config['playback'] as Map<String, dynamic>? ?? {};
return PlaybackConfig(
autoPlay: playbackConfig['autoPlay'] ?? true,
playbackSpeed: playbackConfig['playbackSpeed']?.toDouble() ?? 1,
defaultAudioTrack: playbackConfig['defaultAudioTrack'] ?? 'eng',
defaultSubtitleTrack: playbackConfig['defaultSubtitleTrack'] ?? 'eng',
);
}
class PlaybackConfig {
final bool autoPlay;
final double playbackSpeed;
final String defaultAudioTrack;
final String defaultSubtitleTrack;
PlaybackConfig({
required this.autoPlay,
required this.playbackSpeed,
required this.defaultAudioTrack,
required this.defaultSubtitleTrack,
});
}