Merge pull request #668 from alikhabazian/newyear

add image field to ConnectionButton
This commit is contained in:
Hiddify
2024-03-17 09:50:36 +01:00
committed by GitHub
4 changed files with 32 additions and 6 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

View File

@@ -25,6 +25,7 @@ class ConnectionButton extends HookConsumerWidget {
final connectionStatus = ref.watch(connectionNotifierProvider); final connectionStatus = ref.watch(connectionNotifierProvider);
final requiresReconnect = final requiresReconnect =
ref.watch(configOptionNotifierProvider).valueOrNull; ref.watch(configOptionNotifierProvider).valueOrNull;
final today = DateTime.now();
ref.listen( ref.listen(
connectionNotifierProvider, connectionNotifierProvider,
@@ -93,6 +94,18 @@ class ConnectionButton extends HookConsumerWidget {
AsyncData(value: _) => buttonTheme.idleColor!, AsyncData(value: _) => buttonTheme.idleColor!,
_ => Colors.red, _ => Colors.red,
}, },
image:switch (connectionStatus) {
AsyncData(value: Connected()) when requiresReconnect == true =>
Assets.images.disconnectNorouz,
AsyncData(value: Connected()) => Assets.images.connectNorouz,
AsyncData(value: _) => Assets.images.disconnectNorouz,
_ => Assets.images.disconnectNorouz,
AsyncData(value: Disconnected()) || AsyncError() => Assets.images.disconnectNorouz,
AsyncData(value: Connected()) => Assets.images.connectNorouz,
_ =>Assets.images.disconnectNorouz,
},
useImage:today.day>=19 && today.day<=23 && today.month==3 ,
); );
} }
} }
@@ -103,12 +116,16 @@ class _ConnectionButton extends StatelessWidget {
required this.enabled, required this.enabled,
required this.label, required this.label,
required this.buttonColor, required this.buttonColor,
required this.image,
required this.useImage,
}); });
final VoidCallback onTap; final VoidCallback onTap;
final bool enabled; final bool enabled;
final String label; final String label;
final Color buttonColor; final Color buttonColor;
final AssetGenImage image;
final bool useImage;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@@ -144,12 +161,19 @@ class _ConnectionButton extends StatelessWidget {
tween: ColorTween(end: buttonColor), tween: ColorTween(end: buttonColor),
duration: const Duration(milliseconds: 250), duration: const Duration(milliseconds: 250),
builder: (context, value, child) { builder: (context, value, child) {
return Assets.images.logo.svg( if(useImage) {
colorFilter: ColorFilter.mode( return image.image(
value!, filterQuality: FilterQuality.medium
BlendMode.srcIn, );
), }
); else{
return Assets.images.logo.svg(
colorFilter: ColorFilter.mode(
value!,
BlendMode.srcIn,
),
);
}
}, },
), ),
), ),

View File

@@ -113,6 +113,8 @@ flutter:
- assets/images/tray_icon.png - assets/images/tray_icon.png
- assets/images/tray_icon_connected.ico - assets/images/tray_icon_connected.ico
- assets/images/tray_icon_disconnected.ico - assets/images/tray_icon_disconnected.ico
- assets/images/connect_norouz.PNG
- assets/images/disconnect_norouz.PNG
fonts: fonts:
- family: Shabnam - family: Shabnam