Compare commits

..

4 Commits

Author SHA1 Message Date
Guanciottaman
b2ee5b2ec2
Merge ff252d6b14 into bbe3394e9e 2025-03-12 15:16:33 +06:00
Kingkor Roy Tirtho
bbe3394e9e fix: lastfm form broken in other locales #2447 2025-03-12 15:05:32 +06:00
Kingkor Roy Tirtho
7cde803bee feat(local_library): add support for x-flac, opus and x-wav 2025-03-12 14:20:19 +06:00
Kingkor Roy Tirtho
cd475e93d0 chore: upgrade action flutter to 3.29.1 2025-03-12 13:48:07 +06:00
6 changed files with 24 additions and 14 deletions

View File

@ -4,7 +4,7 @@ on:
pull_request: pull_request:
env: env:
FLUTTER_VERSION: 3.29.0 FLUTTER_VERSION: 3.29.1
jobs: jobs:
lint: lint:

View File

@ -20,7 +20,7 @@ on:
description: Dry run without uploading to release description: Dry run without uploading to release
env: env:
FLUTTER_VERSION: 3.29.0 FLUTTER_VERSION: 3.29.1
FLUTTER_CHANNEL: master FLUTTER_CHANNEL: master
permissions: permissions:

View File

@ -96,7 +96,9 @@ class LastFMLoginPage extends HookConsumerWidget {
FormField( FormField(
label: Text(context.l10n.username), label: Text(context.l10n.username),
key: usernameKey, key: usernameKey,
validator: const NotEmptyValidator(), validator: const NotEmptyValidator(
message: "Username is required",
),
child: TextField( child: TextField(
autofillHints: const [ autofillHints: const [
AutofillHints.username, AutofillHints.username,
@ -107,7 +109,9 @@ class LastFMLoginPage extends HookConsumerWidget {
), ),
FormField( FormField(
key: passwordKey, key: passwordKey,
validator: const NotEmptyValidator(), validator: const NotEmptyValidator(
message: "Password is required",
),
label: Text(context.l10n.password), label: Text(context.l10n.password),
child: TextField( child: TextField(
autofillHints: const [ autofillHints: const [

View File

@ -24,6 +24,9 @@ const supportedAudioTypes = [
"audio/opus", "audio/opus",
"audio/wav", "audio/wav",
"audio/aac", "audio/aac",
"audio/flac",
"audio/x-flac",
"audio/x-wav",
]; ];
const imgMimeToExt = { const imgMimeToExt = {
@ -68,13 +71,16 @@ final localTracksProvider =
await Directory(location).list(recursive: true).toList(); await Directory(location).list(recursive: true).toList();
entities.addAll( entities.addAll(
dirEntities dirEntities.where(
.where( (e) {
(e) => final mime = lookupMimeType(e.path) ??
e is File && (extension(e.path) == ".opus" ? "audio/opus" : null);
supportedAudioTypes.contains(lookupMimeType(e.path)),
) print("${basename(e.path)}: $mime");
.cast<File>(),
return e is File && supportedAudioTypes.contains(mime);
},
).cast<File>(),
); );
} catch (e, stack) { } catch (e, stack) {
AppLogger.reportError(e, stack); AppLogger.reportError(e, stack);

View File

@ -1539,10 +1539,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: mime name: mime
sha256: "801fd0b26f14a4a58ccb09d5892c3fbdeff209594300a542492cf13fba9d247a" sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.6" version: "2.0.0"
nm: nm:
dependency: transitive dependency: transitive
description: description:

View File

@ -88,7 +88,7 @@ dependencies:
media_kit: ^1.1.10+1 media_kit: ^1.1.10+1
media_kit_libs_audio: ^1.0.4 media_kit_libs_audio: ^1.0.4
metadata_god: ^1.0.0 metadata_god: ^1.0.0
mime: ^1.0.2 mime: ^2.0.0
open_file: ^3.5.10 open_file: ^3.5.10
package_info_plus: ^6.0.0 package_info_plus: ^6.0.0
palette_generator: ^0.3.3 palette_generator: ^0.3.3