From aae766cdba893e75b7722c8f0cfb22d6a659c61d Mon Sep 17 00:00:00 2001 From: julian <julian@cypherstack.com> Date: Tue, 9 May 2023 10:59:55 -0600 Subject: [PATCH] update a few more assets and added missing background asset to theme class --- lib/models/isar/stack_theme.dart | 5 +++ lib/widgets/background.dart | 28 +++++++++++------ lib/widgets/loading_indicator.dart | 31 ++++++++++--------- .../components/icons/buy_nav_icon.dart | 23 +++++++++----- .../components/icons/exchange_nav_icon.dart | 23 +++++++++----- 5 files changed, 71 insertions(+), 39 deletions(-) diff --git a/lib/models/isar/stack_theme.dart b/lib/models/isar/stack_theme.dart index 8f111bc61..f056471a6 100644 --- a/lib/models/isar/stack_theme.dart +++ b/lib/models/isar/stack_theme.dart @@ -2033,6 +2033,7 @@ class ThemeAssets { final String namecoinImageSecondary; final String particlImageSecondary; final String? loadingGif; + final String? background; // todo: add all assets expected in json @@ -2088,6 +2089,7 @@ class ThemeAssets { required this.namecoinImageSecondary, required this.particlImageSecondary, required this.loadingGif, + required this.background, }); factory ThemeAssets.fromJson({ @@ -2199,6 +2201,9 @@ class ThemeAssets { loadingGif: json["assets"]["loadingGif"] is String ? "$applicationThemesDirectoryPath/$internalThemeUuid/${json["assets"]["loadingGif"] as String}" : null, + background: json["assets"]["background"] is String + ? "$applicationThemesDirectoryPath/$internalThemeUuid/${json["assets"]["background"] as String}" + : null, ); } } diff --git a/lib/widgets/background.dart b/lib/widgets/background.dart index ed74e36ff..a2e06ecff 100644 --- a/lib/widgets/background.dart +++ b/lib/widgets/background.dart @@ -1,11 +1,13 @@ +import 'dart:io'; + import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/theme/color_theme.dart'; +import 'package:stackwallet/themes/theme_providers.dart'; import 'package:stackwallet/utilities/theme/stack_colors.dart'; import 'package:stackwallet/widgets/conditional_parent.dart'; -class Background extends StatelessWidget { +class Background extends ConsumerWidget { const Background({ Key? key, required this.child, @@ -14,17 +16,17 @@ class Background extends StatelessWidget { final Widget child; @override - Widget build(BuildContext context) { + Widget build(BuildContext context, WidgetRef ref) { Color? color; bool shouldPad = false; - switch (Theme.of(context).extension<StackColors>()!.themeType) { - case ThemeType.oceanBreeze: + switch (Theme.of(context).extension<StackColors>()!.themeId) { + case "ocean_breeze": shouldPad = true; color = null; break; - case ThemeType.fruitSorbet: + case "fruit_sorbet": color = null; break; default: @@ -32,7 +34,11 @@ class Background extends StatelessWidget { break; } - final bgAsset = Assets.svg.background(context); + final bgAsset = ref.watch( + themeProvider.select( + (value) => value.assets.background, + ), + ); return Container( decoration: BoxDecoration( @@ -52,8 +58,10 @@ class Background extends StatelessWidget { bottom: MediaQuery.of(context).size.height * (1 / 12), ) : const EdgeInsets.all(0), - child: SvgPicture.asset( - bgAsset!, + child: SvgPicture.file( + File( + bgAsset!, + ), fit: BoxFit.fill, ), ), diff --git a/lib/widgets/loading_indicator.dart b/lib/widgets/loading_indicator.dart index 150397669..1d95ca616 100644 --- a/lib/widgets/loading_indicator.dart +++ b/lib/widgets/loading_indicator.dart @@ -1,10 +1,12 @@ -import 'package:flutter/material.dart'; -import 'package:lottie/lottie.dart'; -import 'package:stackwallet/utilities/assets.dart'; -import 'package:stackwallet/utilities/theme/color_theme.dart'; -import 'package:stackwallet/utilities/theme/stack_colors.dart'; +import 'dart:io'; -class LoadingIndicator extends StatelessWidget { +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:lottie/lottie.dart'; +import 'package:stackwallet/themes/theme_providers.dart'; +import 'package:stackwallet/utilities/assets.dart'; + +class LoadingIndicator extends ConsumerWidget { const LoadingIndicator({ Key? key, this.width, @@ -15,11 +17,10 @@ class LoadingIndicator extends StatelessWidget { final double? height; @override - Widget build(BuildContext context) { - final isChan = Theme.of(context).extension<StackColors>()!.themeType == - ThemeType.chan || - Theme.of(context).extension<StackColors>()!.themeType == - ThemeType.darkChans; + Widget build(BuildContext context, WidgetRef ref) { + final assetPath = ref.watch( + themeProvider.select((value) => value.assets.loadingGif), + ); return Container( color: Colors.transparent, @@ -27,10 +28,10 @@ class LoadingIndicator extends StatelessWidget { child: SizedBox( width: width, height: height, - child: isChan - ? Image( - image: AssetImage( - Assets.gif.stacyPlain, + child: assetPath != null + ? Image.file( + File( + assetPath, ), ) : Lottie.asset( diff --git a/lib/widgets/wallet_navigation_bar/components/icons/buy_nav_icon.dart b/lib/widgets/wallet_navigation_bar/components/icons/buy_nav_icon.dart index fa2975f1a..5f0e30df8 100644 --- a/lib/widgets/wallet_navigation_bar/components/icons/buy_nav_icon.dart +++ b/lib/widgets/wallet_navigation_bar/components/icons/buy_nav_icon.dart @@ -1,14 +1,23 @@ -import 'package:flutter/material.dart'; -import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/utilities/assets.dart'; +import 'dart:io'; -class BuyNavIcon extends StatelessWidget { +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:stackwallet/themes/theme_providers.dart'; + +class BuyNavIcon extends ConsumerWidget { const BuyNavIcon({Key? key}) : super(key: key); @override - Widget build(BuildContext context) { - return SvgPicture.asset( - Assets.svg.buy(context), + Widget build(BuildContext context, WidgetRef ref) { + return SvgPicture.file( + File( + ref.watch( + themeProvider.select( + (value) => value.assets.buy, + ), + ), + ), width: 24, height: 24, ); diff --git a/lib/widgets/wallet_navigation_bar/components/icons/exchange_nav_icon.dart b/lib/widgets/wallet_navigation_bar/components/icons/exchange_nav_icon.dart index 9735fa989..bf635fc90 100644 --- a/lib/widgets/wallet_navigation_bar/components/icons/exchange_nav_icon.dart +++ b/lib/widgets/wallet_navigation_bar/components/icons/exchange_nav_icon.dart @@ -1,14 +1,23 @@ -import 'package:flutter/material.dart'; -import 'package:flutter_svg/flutter_svg.dart'; -import 'package:stackwallet/utilities/assets.dart'; +import 'dart:io'; -class ExchangeNavIcon extends StatelessWidget { +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:stackwallet/themes/theme_providers.dart'; + +class ExchangeNavIcon extends ConsumerWidget { const ExchangeNavIcon({Key? key}) : super(key: key); @override - Widget build(BuildContext context) { - return SvgPicture.asset( - Assets.svg.exchange(context), + Widget build(BuildContext context, WidgetRef ref) { + return SvgPicture.file( + File( + ref.watch( + themeProvider.select( + (value) => value.assets.buy, + ), + ), + ), width: 24, height: 24, );