Skip to content

Commit

Permalink
Bug fixes & increass peformace in getx
Browse files Browse the repository at this point in the history
  • Loading branch information
LucasLixo committed Sep 21, 2024
1 parent 43d2a2d commit f941759
Show file tree
Hide file tree
Showing 37 changed files with 694 additions and 908 deletions.
5 changes: 0 additions & 5 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,6 @@ version: 2
enable-beta-ecosystems: true

updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"

- package-ecosystem: "pub"
directory: "/"
schedule:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package com.lucasalves.playerhub

import android.app.PendingIntent
import android.appwidget.AppWidgetManager
import android.appwidget.AppWidgetProvider
import android.content.Context
import android.content.Intent
import android.graphics.Bitmap
import android.graphics.BitmapFactory
import android.widget.RemoteViews
Expand Down Expand Up @@ -55,7 +57,20 @@ internal fun updateAppWidget(
val imageBitmap: Bitmap = BitmapFactory.decodeFile(imageFile.absolutePath)
setImageViewBitmap(R.id.headline_image, imageBitmap)
}

// Intent para abrir o aplicativo ao clicar no widget
val intent = Intent(context, MainActivity::class.java) // Substitua com a sua MainActivity
val pendingIntent = PendingIntent.getActivity(
context,
0,
intent,
PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE
)

// Associa o PendingIntent ao widget_container
setOnClickPendingIntent(R.id.widget_container, pendingIntent)
}

// Atualiza o widget
appWidgetManager.updateAppWidget(appWidgetId, views)
}
}
20 changes: 7 additions & 13 deletions lib/app/app_widget.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import 'package:get/instance_manager.dart';
import 'package:playerhub/app/app_bindings.dart';
import 'package:playerhub/app/routes/app_routes.dart';
import 'package:playerhub/app/routes/app_pages.dart';
import 'package:playerhub/app/core/app_translater.dart';
import 'package:playerhub/app/core/app_translations.dart';
import 'package:playerhub/app/core/app_colors.dart';
import 'package:playerhub/app/core/app_shared.dart';

Expand All @@ -17,22 +17,15 @@ class AppWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return GetMaterialApp(
enableLog: true,
title: AppShared.title,
debugShowCheckedModeBanner: false,
themeMode: AppColors.themeData,
theme: ThemeData(
splashColor: Colors.transparent,
highlightColor: Colors.transparent,
hoverColor: Colors.transparent,
),
darkTheme: ThemeData(
splashColor: Colors.transparent,
highlightColor: Colors.transparent,
hoverColor: Colors.transparent,
),
themeMode: AppColors.themeMode,
theme: AppColors.themeData,
darkTheme: AppColors.themeData,
getPages: AppPages.pages,
initialBinding: AppBinding(),
initialRoute: AppRoutes.splash,
initialRoute: AppRoutes.wait,
translations: AppTranslations(),
locale: Get.locale ?? Get.deviceLocale,
localizationsDelegates: const [
Expand All @@ -46,6 +39,7 @@ class AppWidget extends StatelessWidget {
Locale('pt', 'BR'),
Locale('es', 'ES'),
],
transitionDuration: const Duration(milliseconds: 300),
);
}
}
209 changes: 196 additions & 13 deletions lib/app/core/app_colors.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,205 @@ import 'package:flutter/material.dart';
import 'package:get/get_state_manager/src/simple/get_controllers.dart';
import 'package:playerhub/app/core/app_shared.dart';

// App Colors and Theme
mixin AppColors on GetxController {
static ThemeMode get themeData =>
static final ThemeData themeData = ThemeData(
splashColor: Colors.transparent,
highlightColor: Colors.transparent,
hoverColor: Colors.transparent,
textSelectionTheme: TextSelectionThemeData(
cursorColor: primary,
selectionColor: primary,
selectionHandleColor: surface,
),
sliderTheme: _getSliderTheme(),
switchTheme: _getSwitchTheme(),
textTheme: TextTheme(
displayLarge: TextStyle(
color: text,
fontSize: 32,
fontWeight: FontWeight.w600,
fontStyle: FontStyle.normal,
fontFamily: 'OpenSans',
),
displayMedium: TextStyle(
color: text,
fontSize: 32,
fontWeight: FontWeight.normal,
fontStyle: FontStyle.normal,
fontFamily: 'OpenSans',
),
displaySmall: TextStyle(
color: text,
fontSize: 32,
fontWeight: FontWeight.normal,
fontStyle: FontStyle.italic,
fontFamily: 'OpenSans',
),
headlineLarge: TextStyle(
color: text,
fontSize: 20,
fontWeight: FontWeight.w600,
fontStyle: FontStyle.normal,
fontFamily: 'OpenSans',
),
headlineMedium: TextStyle(
color: text,
fontSize: 20,
fontWeight: FontWeight.normal,
fontStyle: FontStyle.normal,
fontFamily: 'OpenSans',
),
headlineSmall: TextStyle(
color: text,
fontSize: 20,
fontWeight: FontWeight.normal,
fontStyle: FontStyle.italic,
fontFamily: 'OpenSans',
),
titleLarge: TextStyle(
color: text,
fontSize: 18,
fontWeight: FontWeight.w600,
fontStyle: FontStyle.normal,
fontFamily: 'OpenSans',
),
titleMedium: TextStyle(
color: text,
fontSize: 18,
fontWeight: FontWeight.normal,
fontStyle: FontStyle.normal,
fontFamily: 'OpenSans',
),
titleSmall: TextStyle(
color: text,
fontSize: 18,
fontWeight: FontWeight.normal,
fontStyle: FontStyle.italic,
fontFamily: 'OpenSans',
),
bodyLarge: TextStyle(
color: text,
fontSize: 16,
fontWeight: FontWeight.w600,
fontStyle: FontStyle.normal,
fontFamily: 'OpenSans',
),
bodyMedium: TextStyle(
color: text,
fontSize: 16,
fontWeight: FontWeight.normal,
fontStyle: FontStyle.normal,
fontFamily: 'OpenSans',
),
bodySmall: TextStyle(
color: text,
fontSize: 16,
fontWeight: FontWeight.normal,
fontStyle: FontStyle.italic,
fontFamily: 'OpenSans',
),
labelLarge: TextStyle(
color: text,
fontSize: 14,
fontWeight: FontWeight.w600,
fontStyle: FontStyle.normal,
fontFamily: 'OpenSans',
),
labelMedium: TextStyle(
color: text,
fontSize: 14,
fontWeight: FontWeight.normal,
fontStyle: FontStyle.normal,
fontFamily: 'OpenSans',
),
labelSmall: TextStyle(
color: text,
fontSize: 14,
fontWeight: FontWeight.normal,
fontStyle: FontStyle.italic,
fontFamily: 'OpenSans',
),
),
);

static ThemeMode get themeMode =>
AppShared.darkModeValue.value ? ThemeMode.dark : ThemeMode.light;

static Brightness get brightnessData =>
AppShared.darkModeValue.value ? Brightness.light : Brightness.dark;

static Color get background =>
AppShared.darkModeValue.value ? const Color(0xFF000000) : const Color(0xFFFFFFFF);
static Color get onBackground =>
AppShared.darkModeValue.value ? const Color(0xFFCCCCCC) : const Color(0xFF333333);
static Color get surface =>
AppShared.darkModeValue.value ? const Color(0xFF1F212C) : const Color(0xFFE0DED3);
static Color get text =>
AppShared.darkModeValue.value ? const Color(0xFFFFFFFF) : const Color(0xFF000000);
static Color get textGray =>
AppShared.darkModeValue.value ? const Color(0xFFDDDDDD) : const Color(0xFF222222);
static Color get primary =>
AppShared.darkModeValue.value ? const Color(0xFF007AFF) : const Color(0xFF3FA7FE);
// Colors based on theme mode
static Color get background => AppShared.darkModeValue.value
? const Color(0xFF000000)
: const Color(0xFFFFFFFF);
static Color get onBackground => AppShared.darkModeValue.value
? const Color(0xFFCCCCCC)
: const Color(0xFF333333);
static Color get surface => AppShared.darkModeValue.value
? const Color(0xFF1F212C)
: const Color(0xFFE0DED3);
static Color get text => AppShared.darkModeValue.value
? const Color(0xFFFFFFFF)
: const Color(0xFF000000);
static Color get textGray => AppShared.darkModeValue.value
? const Color(0xFFDDDDDD)
: const Color(0xFF222222);
static Color get primary => AppShared.darkModeValue.value
? const Color(0xFF007AFF)
: const Color(0xFF3FA7FE);
static Color get error => AppShared.darkModeValue.value
? const Color(0xFFFF003D)
: const Color(0xFFA30027);
}

// Slider theme customization
SliderThemeData _getSliderTheme() {
return SliderThemeData(
trackShape: const _CustomSliderTrackShape(),
trackHeight: 3.0,
inactiveTrackColor: AppColors.onBackground,
inactiveTickMarkColor: AppColors.onBackground,
);
}

// Custom slider track shape
class _CustomSliderTrackShape extends RoundedRectSliderTrackShape {
const _CustomSliderTrackShape();

@override
Rect getPreferredRect({
required RenderBox parentBox,
Offset offset = Offset.zero,
required SliderThemeData sliderTheme,
bool isEnabled = false,
bool isDiscrete = false,
}) {
final trackHeight = sliderTheme.trackHeight;
final trackLeft = offset.dx;
final trackTop = offset.dy + (parentBox.size.height - trackHeight!) / 2;
final trackWidth = parentBox.size.width;
return Rect.fromLTWH(trackLeft, trackTop, trackWidth, trackHeight);
}
}

// Switch theme customization
SwitchThemeData _getSwitchTheme() {
return SwitchThemeData(
trackOutlineColor: WidgetStateProperty.resolveWith<Color>(
(Set<WidgetState> states) => states.contains(WidgetState.selected)
? AppColors.primary
: AppColors.textGray,
),
thumbColor: WidgetStateProperty.resolveWith<Color>(
(Set<WidgetState> states) => states.contains(WidgetState.selected)
? AppColors.text
: AppColors.background,
),
trackColor: WidgetStateProperty.resolveWith<Color>(
(Set<WidgetState> states) => states.contains(WidgetState.selected)
? AppColors.primary
: AppColors.textGray,
),
);
}
File renamed without changes.
Loading

0 comments on commit f941759

Please sign in to comment.