Skip to content

Commit

Permalink
Updated logic & Add observer
Browse files Browse the repository at this point in the history
  • Loading branch information
LucasLixo committed Nov 24, 2024
1 parent 558cc88 commit b4dbf45
Show file tree
Hide file tree
Showing 37 changed files with 406 additions and 174 deletions.
Binary file modified assets/images/low_poly_blue.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/images/low_poly_green.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/images/low_poly_red.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added fastlane/Debug/64/low_poly_blue.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added fastlane/Debug/64/low_poly_green.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added fastlane/Debug/64/low_poly_red.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
7 changes: 4 additions & 3 deletions lib/app/app_widget.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@ import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:helper_hub/src/theme_material.dart';
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/services/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/services/app_chrome.dart';
import 'package:player_hub/app/services/app_observer.dart';

class AppWidget extends StatefulWidget {
const AppWidget({super.key});
Expand Down Expand Up @@ -53,13 +53,14 @@ class _AppWidgetState extends State<AppWidget> with WidgetsBindingObserver {
@override
Widget build(BuildContext context) {
return GetMaterialApp(
debugShowCheckedModeBanner: false,
enableLog: true,
title: AppManifest.title,
debugShowCheckedModeBanner: false,
themeMode: AppColors.current().themeMode,
theme: ThemeMaterial.light(),
darkTheme: ThemeMaterial.dark(),
getPages: AppPages.pages,
navigatorObservers: [AppObserver()],
initialBinding: AppBinding(),
initialRoute: AppRoutes.wait,
translations: AppTranslations(),
Expand Down
2 changes: 1 addition & 1 deletion lib/app/core/controllers/player.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ 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:get/get_rx/src/rx_types/rx_types.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/image_quality.dart';
import 'package:player_hub/app/core/enums/query_songs.dart';
import 'package:player_hub/app/core/enums/shared_attibutes.dart';
Expand Down
2 changes: 2 additions & 0 deletions lib/app/core/enums/box_types.dart
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
enum BoxTypes {
// ==================================================
app,
storage,
others;

// ==================================================
@override
String toString() {
switch (this) {
Expand Down
2 changes: 0 additions & 2 deletions lib/app/core/enums/query_songs.dart
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,6 @@ enum QuerySongs {
sortType: SongSortType.DURATION,
uriType: UriType.EXTERNAL,
);
default:
throw ArgumentError('Index must be between QuerySongs');
}
}
}
10 changes: 10 additions & 0 deletions lib/app/core/enums/theme_types.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
enum ThemeTypes {
// ==================================================
defaultDark,
defaultLight,

topOneBottomOne,
topOneBottomTwo,
topTwoBottomOne,
topTwoBottomTwo;
}
61 changes: 28 additions & 33 deletions lib/app/core/static/app_manifest.dart
Original file line number Diff line number Diff line change
Expand Up @@ -49,21 +49,14 @@ abstract class AppManifest {
required int id,
required ImageQuality type,
}) async {
final File fileLow = File(
'${sharedController.documentDir.path}/${id}_${ImageQuality.low.size}.jpg');
final File fileHigh = File(
'${sharedController.documentDir.path}/${id}_${ImageQuality.high.size}.jpg');
final File targetFile =
File('${sharedController.documentDir.path}/${id}_${type.size}.jpg');

if (!await fileLow.exists() || !await fileHigh.exists()) {
if (!await targetFile.exists()) {
await _generateImageFile(id: id);
}

switch (type) {
case ImageQuality.low:
return fileLow.path;
case ImageQuality.high:
return fileHigh.path;
}
return targetFile.path;
}

// ==================================================
Expand All @@ -86,10 +79,10 @@ abstract class AppManifest {
}) async {
final OnAudioQuery audioQuery = OnAudioQuery();

final File fileLow = File(
'${sharedController.documentDir.path}/${id}_${ImageQuality.low.size}.jpg');
final File fileHigh = File(
'${sharedController.documentDir.path}/${id}_${ImageQuality.high.size}.jpg');
final List<String> filePaths = [
'${sharedController.documentDir.path}/${id}_${ImageQuality.low.size}.jpg',
'${sharedController.documentDir.path}/${id}_${ImageQuality.high.size}.jpg',
];

final List<Uint8List?> dataResults = await Future.wait([
audioQuery.queryArtwork(
Expand All @@ -107,32 +100,34 @@ abstract class AppManifest {
quality: 100,
),
]);
final Uint8List? dataLow = dataResults[0];
final Uint8List? dataHigh = dataResults[1];

if (dataLow != null &&
dataLow.isNotEmpty &&
dataHigh != null &&
dataHigh.isNotEmpty) {
await fileLow.writeAsBytes(dataLow);
await fileHigh.writeAsBytes(dataHigh);

if (dataResults[0]?.isNotEmpty == true &&
dataResults[1]?.isNotEmpty == true) {
await Future.wait([
File(filePaths[0]).writeAsBytes(dataResults[0]!),
File(filePaths[1]).writeAsBytes(dataResults[1]!),
]);
} else {
final String randomImageColor =
_imageColors[Random().nextInt(_imageColors.length)];

final ByteData imageDataLow =
await rootBundle.load('assets/images/low_poly_$randomImageColor.jpg');
final Uint8List imageBytesLow = imageDataLow.buffer.asUint8List();

final ByteData imageDataHigh = await rootBundle
.load('assets/images/high_poly_$randomImageColor.jpg');
final Uint8List imageBytesHigh = imageDataHigh.buffer.asUint8List();
final List<Uint8List> defaultImages = await Future.wait([
_loadAssetImage('assets/images/low_poly_$randomImageColor.jpg'),
_loadAssetImage('assets/images/high_poly_$randomImageColor.jpg'),
]);

await fileLow.writeAsBytes(imageBytesLow);
await fileHigh.writeAsBytes(imageBytesHigh);
await Future.wait([
File(filePaths[0]).writeAsBytes(defaultImages[0]),
File(filePaths[1]).writeAsBytes(defaultImages[1]),
]);
}
}

static Future<Uint8List> _loadAssetImage(String assetPath) async {
final ByteData byteData = await rootBundle.load(assetPath);
return byteData.buffer.asUint8List();
}

// ==================================================
static String encodeToBase64(String input) {
List<int> bytes = utf8.encode(input);
Expand Down
16 changes: 9 additions & 7 deletions lib/app/pages/details/details_page.dart
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
import 'dart:ui';

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:get/get_navigation/src/extension_navigation.dart';
import 'package:get/get_utils/src/extensions/internacionalization.dart';
import 'package:get/get_state_manager/src/rx_flutter/rx_obx_widget.dart';
import 'package:get/instance_manager.dart';
import 'package:player_hub/app/core/enums/shared_attibutes.dart';
import 'package:player_hub/app/core/enums/theme_types.dart';
import 'package:player_hub/app/services/app_chrome.dart';
import 'package:player_hub/app/services/app_shared.dart';
import 'package:player_hub/app/core/controllers/player.dart';
Expand Down Expand Up @@ -96,13 +99,12 @@ class _DetailsPageState extends State<DetailsPage>
AppBar(
automaticallyImplyLeading: false,
backgroundColor: Colors.transparent,
systemOverlayStyle: const SystemUiOverlayStyle(
statusBarColor: Colors.transparent,
statusBarIconBrightness: Brightness.light,
systemNavigationBarColor: Colors.black,
systemNavigationBarDividerColor: Colors.transparent,
systemNavigationBarIconBrightness: Brightness.light,
),
systemOverlayStyle: sharedController
.getShared(SharedAttributes.darkMode) as bool
? chromeController
.loadThemeByType(ThemeTypes.defaultDark)
: chromeController
.loadThemeByType(ThemeTypes.defaultLight),
foregroundColor: Colors.transparent,
leading: GestureDetector(
onTap: () {
Expand Down
6 changes: 6 additions & 0 deletions lib/app/pages/edit/edit_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import 'package:file_picker/file_picker.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:on_audio_query/on_audio_query.dart';
import 'package:player_hub/app/core/enums/theme_types.dart';
import 'package:player_hub/app/services/app_chrome.dart';
import 'package:player_hub/app/services/app_shared.dart';
import 'package:player_hub/app/core/static/app_colors.dart';
import 'package:player_hub/app/core/types/app_functions.dart';
Expand All @@ -16,6 +18,7 @@ import 'package:share_plus/share_plus.dart';
class EditPage extends StatelessWidget with AppFunctions {
final PlayerController playerController = Get.find<PlayerController>();
final AppShared sharedController = Get.find<AppShared>();
final AppChrome chromeController = Get.find<AppChrome>();

final SongModel song;

Expand Down Expand Up @@ -96,6 +99,9 @@ class EditPage extends StatelessWidget with AppFunctions {
appBar: AppBar(
automaticallyImplyLeading: false,
backgroundColor: AppColors.current().background,
systemOverlayStyle: chromeController.loadThemeByType(
ThemeTypes.topOneBottomOne,
),
leading: GestureDetector(
onTap: () {
Get.back();
Expand Down
37 changes: 30 additions & 7 deletions lib/app/pages/equalizer/equalize_controller.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
import 'package:equalizer_flutter/equalizer_flutter.dart';
import 'package:get/get.dart';
import 'package:flutter/material.dart';
import 'package:get/instance_manager.dart';
import 'package:get/get_rx/get_rx.dart';
import 'package:get/get_rx/src/rx_types/rx_types.dart';
import 'package:get/get_state_manager/get_state_manager.dart';
import 'package:get/get_utils/src/extensions/internacionalization.dart';
import 'package:player_hub/app/core/controllers/player.dart';
import 'package:player_hub/app/core/enums/shared_attibutes.dart';
import 'package:player_hub/app/services/app_shared.dart';
Expand All @@ -25,6 +30,16 @@ class EqualizerController extends GetxController with AppFunctions {
});
}

// ==================================================
@override
void onReady() {
super.onReady();

WidgetsBinding.instance.addPostFrameCallback((_) async {
await initializeBand();
});
}

// ==================================================
Future<void> _initializeEqualizer(int id) async {
await EqualizerFlutter.init(id);
Expand All @@ -47,12 +62,20 @@ class EqualizerController extends GetxController with AppFunctions {

// ==================================================
Future<void> initializeBand() async {
try {
bandLevelRange.value = await EqualizerFlutter.getBandLevelRange();
bandCenterFrequencies.value = await EqualizerFlutter.getCenterBandFreqs();
} catch (e) {
bandLevelRange.value = null;
bandCenterFrequencies.value = null;
if (bandLevelRange.value == null) {
try {
bandLevelRange.value = await EqualizerFlutter.getBandLevelRange();
} catch (e) {
bandLevelRange.value = null;
}
}
if (bandCenterFrequencies.value == null) {
try {
bandCenterFrequencies.value =
await EqualizerFlutter.getCenterBandFreqs();
} catch (e) {
bandCenterFrequencies.value = null;
}
}
}

Expand Down
7 changes: 0 additions & 7 deletions lib/app/pages/equalizer/equalizer_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,6 @@ class EqualizerPage extends StatelessWidget with AppFunctions {

@override
Widget build(BuildContext context) {
() async {
if (equalizerController.bandLevelRange.value == null ||
equalizerController.bandCenterFrequencies.value == null) {
await equalizerController.initializeBand();
}
};

return Scaffold(
backgroundColor: AppColors.current().background,
appBar: AppBar(
Expand Down
10 changes: 5 additions & 5 deletions lib/app/pages/home/home_page.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:get/get_navigation/src/extension_navigation.dart';
import 'package:get/get_state_manager/get_state_manager.dart';
import 'package:get/instance_manager.dart';
Expand All @@ -8,9 +7,11 @@ import 'package:get/get_utils/src/extensions/internacionalization.dart';
import 'package:player_hub/app/core/enums/selection_types.dart';
import 'package:player_hub/app/core/enums/shared_attibutes.dart';
import 'package:player_hub/app/core/enums/sort_type.dart';
import 'package:player_hub/app/core/enums/theme_types.dart';
import 'package:player_hub/app/core/static/app_manifest.dart';
import 'package:player_hub/app/routes/app_routes.dart';
import 'package:player_hub/app/core/static/app_colors.dart';
import 'package:player_hub/app/services/app_chrome.dart';
import 'package:player_hub/app/shared/class/shortcut.dart';
import 'package:player_hub/app/core/controllers/player.dart';
import 'package:player_hub/app/services/app_shared.dart';
Expand All @@ -28,6 +29,7 @@ class HomePage extends StatelessWidget {
Widget build(BuildContext context) {
final PlayerController playerController = Get.find<PlayerController>();
final AppShared sharedController = Get.find<AppShared>();
final AppChrome chromeController = Get.find<AppChrome>();

return DefaultTabController(
initialIndex: 0,
Expand All @@ -37,10 +39,8 @@ class HomePage extends StatelessWidget {
appBar: AppBar(
automaticallyImplyLeading: false,
backgroundColor: AppColors.current().background,
systemOverlayStyle: SystemUiOverlayStyle(
systemNavigationBarColor: AppColors.current().surface,
systemNavigationBarDividerColor: Colors.transparent,
systemNavigationBarIconBrightness: AppColors.current().brightness,
systemOverlayStyle: chromeController.loadThemeByType(
ThemeTypes.topOneBottomTwo,
),
leading: GestureDetector(
onTap: () async {
Expand Down
10 changes: 5 additions & 5 deletions lib/app/pages/playlist/playlist_page.dart
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:get/get_navigation/src/extension_navigation.dart';
import 'package:get/get_state_manager/src/rx_flutter/rx_obx_widget.dart';
import 'package:get/instance_manager.dart';
import 'package:get/get_utils/src/extensions/internacionalization.dart';
import 'package:on_audio_query/on_audio_query.dart';
import 'package:player_hub/app/core/enums/selection_types.dart';
import 'package:player_hub/app/core/enums/theme_types.dart';
import 'package:player_hub/app/routes/app_routes.dart';
import 'package:player_hub/app/services/app_chrome.dart';
import 'package:player_hub/app/shared/class/shortcut.dart';
import 'package:player_hub/app/core/static/app_colors.dart';
import 'package:player_hub/app/core/controllers/player.dart';
Expand Down Expand Up @@ -34,6 +35,7 @@ class PlaylistPage extends StatefulWidget {

class _PlaylistPageState extends State<PlaylistPage> {
final PlayerController playerController = Get.find<PlayerController>();
final AppChrome chromeController = Get.find<AppChrome>();

@override
void initState() {
Expand All @@ -58,10 +60,8 @@ class _PlaylistPageState extends State<PlaylistPage> {
appBar: AppBar(
automaticallyImplyLeading: false,
backgroundColor: AppColors.current().background,
systemOverlayStyle: SystemUiOverlayStyle(
systemNavigationBarColor: AppColors.current().surface,
systemNavigationBarDividerColor: Colors.transparent,
systemNavigationBarIconBrightness: AppColors.current().brightness,
systemOverlayStyle: chromeController.loadThemeByType(
ThemeTypes.topOneBottomTwo,
),
leading: GestureDetector(
onTap: () {
Expand Down
Loading

0 comments on commit b4dbf45

Please sign in to comment.