first commit
Build / Build for Android (push) Has been cancelled
Build / Build for iOS (push) Has been cancelled

This commit is contained in:
Zakaria
2026-05-18 14:15:38 -04:00
commit 1563409cb1
382 changed files with 45347 additions and 0 deletions
@@ -0,0 +1,51 @@
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:hive/hive.dart';
import '../../services/finamp_settings_helper.dart';
import '../../models/finamp_models.dart';
class BitrateSelector extends StatelessWidget {
const BitrateSelector({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Column(
children: [
ListTile(
title: Text(AppLocalizations.of(context)!.bitrate),
subtitle: Text(AppLocalizations.of(context)!.bitrateSubtitle),
),
ValueListenableBuilder<Box<FinampSettings>>(
valueListenable: FinampSettingsHelper.finampSettingsListener,
builder: (context, box, child) {
final finampSettings = box.get("FinampSettings")!;
// We do all of this division/multiplication because Jellyfin wants us to specify bitrates in bits, not kilobits.
return Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Slider(
min: 64,
max: 320,
value: finampSettings.transcodeBitrate / 1000,
divisions: 8,
label: "${finampSettings.transcodeBitrate ~/ 1000}kbps",
onChanged: (value) {
FinampSettingsHelper.setTranscodeBitrate(
(value * 1000).toInt());
},
),
Text(
"${finampSettings.transcodeBitrate ~/ 1000}kbps",
style: Theme.of(context).textTheme.titleLarge,
)
],
);
},
),
],
);
}
}
@@ -0,0 +1,35 @@
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:hive/hive.dart';
import '../../services/finamp_settings_helper.dart';
import '../../models/finamp_models.dart';
class TranscodeSwitch extends StatelessWidget {
const TranscodeSwitch({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return ValueListenableBuilder<Box<FinampSettings>>(
valueListenable: FinampSettingsHelper.finampSettingsListener,
builder: (context, box, child) {
bool? shouldTranscode = box.get("FinampSettings")?.shouldTranscode;
return SwitchListTile.adaptive(
title: Text(AppLocalizations.of(context)!.enableTranscoding),
subtitle:
Text(AppLocalizations.of(context)!.enableTranscodingSubtitle),
value: shouldTranscode ?? false,
onChanged: shouldTranscode == null
? null
: (value) {
FinampSettings finampSettingsTemp =
box.get("FinampSettings")!;
finampSettingsTemp.shouldTranscode = value;
box.put("FinampSettings", finampSettingsTemp);
},
);
},
);
}
}