Skip to content

Commit

Permalink
Updated Logic
Browse files Browse the repository at this point in the history
  • Loading branch information
LucasLixo committed Nov 22, 2024
1 parent 2867b7d commit 558cc88
Show file tree
Hide file tree
Showing 39 changed files with 843 additions and 606 deletions.
9 changes: 5 additions & 4 deletions lib/app/app_widget.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,13 @@ import 'package:get/get_navigation/get_navigation.dart';
import 'package:get/get_utils/src/extensions/internacionalization.dart';
import 'package:get/state_manager.dart';
import 'package:get/instance_manager.dart';
import 'package:player_hub/app/core/static/app_manifest.dart';
import 'package:player_hub/app/routes/app_bindings.dart';
import 'package:player_hub/app/routes/app_routes.dart';
import 'package:player_hub/app/routes/app_pages.dart';
import 'package:player_hub/app/core/types/app_translations.dart';
import 'package:player_hub/app/core/static/app_colors.dart';
import 'package:player_hub/app/core/static/app_shared.dart';
import 'package:player_hub/app/services/app_chrome.dart';

class AppWidget extends StatefulWidget {
const AppWidget({super.key});
Expand Down Expand Up @@ -43,8 +44,8 @@ class _AppWidgetState extends State<AppWidget> with WidgetsBindingObserver {
}
}

Future<void> _onEnterApp() async {
await AppShared.loadTheme(isRebirth: false);
void _onEnterApp() {
Get.find<AppChrome>().loadTheme(isRebirth: false);
}

void _onExitApp() {}
Expand All @@ -53,7 +54,7 @@ class _AppWidgetState extends State<AppWidget> with WidgetsBindingObserver {
Widget build(BuildContext context) {
return GetMaterialApp(
enableLog: true,
title: AppShared.title,
title: AppManifest.title,
debugShowCheckedModeBanner: false,
themeMode: AppColors.current().themeMode,
theme: ThemeMaterial.light(),
Expand Down
52 changes: 29 additions & 23 deletions lib/app/core/controllers/player.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,25 @@ import 'dart:io';
import 'dart:typed_data';

import 'package:audio_service/audio_service.dart';
import 'package:get/instance_manager.dart';
import 'package:get/get_rx/get_rx.dart';
import 'package:just_audio/just_audio.dart';
import 'package:on_audio_query/on_audio_query.dart';
import 'package:get/get_rx/src/rx_types/rx_types.dart';
import 'package:player_hub/app/core/enums/array_image_types.dart';
import 'package:player_hub/app/core/enums/image_quality.dart';
import 'package:player_hub/app/core/enums/query_songs.dart';
import 'package:player_hub/app/core/enums/shared_attibutes.dart';
import 'package:player_hub/app/core/static/app_shared.dart';
import 'package:player_hub/app/services/app_shared.dart';
import 'package:player_hub/app/core/interfaces/visualizer.dart';
import 'package:player_hub/app/core/static/app_manifest.dart';
import 'package:player_hub/app/core/types/app_functions.dart';
import 'package:get/get_utils/src/extensions/internacionalization.dart';

class PlayerController extends BaseAudioHandler
with QueueHandler, SeekHandler, AppFunctions {
// ==================================================
final AppShared sharedController = Get.find<AppShared>();

// ==================================================
final RxString songLog = ''.obs;
// address of sound in list
Expand Down Expand Up @@ -99,8 +103,8 @@ class PlayerController extends BaseAudioHandler
Future<void> _updateInterfaceVisualizer(SongModel song) async {
final int songId = song.id;

final String songTitle = AppShared.getTitle(songId, song.title);
final String songArtist = AppShared.getArtist(songId, song.artist!);
final String songTitle = sharedController.getTitle(songId, song.title);
final String songArtist = sharedController.getArtist(songId, song.artist!);
final String? image = _imageCache[songId];

InterfaceVisualizer visualizerMusic = InterfaceVisualizer(
Expand Down Expand Up @@ -168,25 +172,26 @@ class PlayerController extends BaseAudioHandler
// update playlist
Future<void> _initPlaylist() async {
playlistList.clear();
playlistList.assignAll(
AppShared.getShared(SharedAttributes.listAllPlaylist) as List<String>);
playlistList.assignAll(sharedController
.getShared(SharedAttributes.listAllPlaylist) as List<String>);

playlistListSongs.clear();
for (int index = 0; index < playlistList.length; index++) {
final String title = playlistList[index];
playlistListSongs[title] = _getSongsFromIds(AppShared.getPlaylist(title));
playlistListSongs[title] =
_getSongsFromIds(sharedController.getPlaylist(title));
}
}

Future<void> _updatePlaylistList() async {
await AppShared.setShared(
await sharedController.setShared(
SharedAttributes.listAllPlaylist,
playlistList.toList(),
);
}

Future<void> _updatePlaylistListSongs(String title) async {
await AppShared.setPlaylist(
await sharedController.setPlaylist(
title, _getIdsFromSongs(playlistListSongs[title] ?? <SongModel>[]));
}

Expand All @@ -210,7 +215,7 @@ class PlayerController extends BaseAudioHandler
late Future<List<SongModel>> songQuery;

// Adiciona a busca de músicas baseado no tipo de ordenação selecionado
switch (AppShared.getShared(SharedAttributes.getSongs) as int) {
switch (sharedController.getShared(SharedAttributes.getSongs) as int) {
// Por data adicionada
case 0:
songQuery = QuerySongs.getQuerySongs(
Expand Down Expand Up @@ -299,10 +304,10 @@ class PlayerController extends BaseAudioHandler
if (!_imageCache.containsKey(song.id)) {
_imageCache[song.id] = await AppManifest.getImageFile(
id: song.id,
type: ArrayImageTypes.high,
type: ImageQuality.high,
);
}
songLog.value = AppShared.getTitle(song.id, song.title);
songLog.value = sharedController.getTitle(song.id, song.title);
}
}),
// Processamento de álbuns
Expand Down Expand Up @@ -340,9 +345,10 @@ class PlayerController extends BaseAudioHandler
songLog.value = '';

// Remove músicas com base em duração e pastas ignoradas
int ignoreTime = AppShared.getShared(SharedAttributes.ignoreTime) as int;
List<String> ignoreFolder =
AppShared.getShared(SharedAttributes.ignoreFolder) as List<String>;
int ignoreTime =
sharedController.getShared(SharedAttributes.ignoreTime) as int;
List<String> ignoreFolder = sharedController
.getShared(SharedAttributes.ignoreFolder) as List<String>;

songList = songList.where((song) {
if (ignoreFolder.contains(song.data.split('/').reversed.skip(1).first) ||
Expand Down Expand Up @@ -378,8 +384,8 @@ class PlayerController extends BaseAudioHandler
Uri.parse(song.uri!),
tag: MediaItem(
id: song.id.toString(),
title: AppShared.getTitle(song.id, song.title),
artist: AppShared.getArtist(song.id, song.artist!),
title: sharedController.getTitle(song.id, song.title),
artist: sharedController.getArtist(song.id, song.artist!),
artUri: imagePath != null ? Uri.file(imagePath) : null,
),
);
Expand All @@ -397,7 +403,7 @@ class PlayerController extends BaseAudioHandler
await handleCurrentIndex(index);

// Modo de playlist (Loop, Shuffle, etc)
switch (AppShared.getShared(SharedAttributes.playlistMode) as int) {
switch (sharedController.getShared(SharedAttributes.playlistMode) as int) {
// Modo loop playlist
case 0:
await modeShufflePlaylist();
Expand Down Expand Up @@ -558,18 +564,18 @@ class PlayerController extends BaseAudioHandler
// ==================================================
// Alterna entre modos da playlist (loop, shuffle)
Future<void> togglePlaylist() async {
switch (AppShared.getShared(SharedAttributes.playlistMode) as int) {
switch (sharedController.getShared(SharedAttributes.playlistMode) as int) {
case 0:
await modeLoopPlaylist();
AppShared.setShared(SharedAttributes.playlistMode, 1);
sharedController.setShared(SharedAttributes.playlistMode, 1);
break;
case 1:
await modeLoopSong();
AppShared.setShared(SharedAttributes.playlistMode, 2);
sharedController.setShared(SharedAttributes.playlistMode, 2);
break;
case 2:
await modeShufflePlaylist();
AppShared.setShared(SharedAttributes.playlistMode, 0);
sharedController.setShared(SharedAttributes.playlistMode, 0);
break;
}
}
Expand Down Expand Up @@ -604,7 +610,7 @@ class PlayerController extends BaseAudioHandler
playlistListSongs[oldTitle] ?? <SongModel>[];
playlistListSongs.remove(oldTitle);

await AppShared.deletePlaylist(oldTitle);
await sharedController.deletePlaylist(oldTitle);
await _updatePlaylistList();
await _updatePlaylistListSongs(newTitle);
}
Expand Down
4 changes: 0 additions & 4 deletions lib/app/core/enums/array_image_types.dart

This file was deleted.

17 changes: 17 additions & 0 deletions lib/app/core/enums/box_types.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
enum BoxTypes {
app,
storage,
others;

@override
String toString() {
switch (this) {
case BoxTypes.app:
return 'BoxApp';
case BoxTypes.storage:
return 'BoxStorage';
case BoxTypes.others:
return 'BoxOther';
}
}
}
17 changes: 17 additions & 0 deletions lib/app/core/enums/image_quality.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
enum ImageQuality {
// ==================================================
low(
size: 32,
),
high(
size: 256,
);

// ==================================================
const ImageQuality({
required this.size,
});

// ==================================================
final int size;
}
Loading

0 comments on commit 558cc88

Please sign in to comment.