From 567af9b7d62a81ae4e77f284b99bc18ae0ff68c8 Mon Sep 17 00:00:00 2001 From: Vishveshwara Uthayakumaran Date: Tue, 18 Mar 2025 13:05:12 +0530 Subject: [PATCH 1/3] feat: Added Linear Scroll and Bidirectional Scroll animations, and added new Animation Tab - Added Linear Scroll animation (left-to-right and right-to-left without flipping) - Added Bidirectional Scroll animation (left-to-right and right-to-left with flipping) - Created Animation Tab UI to support new animations --- .../ic_anim_bidirectional_scroll.gif | Bin 0 -> 69476 bytes assets/animations/ic_anim_linear_scroll.gif | Bin 0 -> 66119 bytes .../ani_bidirectional_scroll.dart | 38 +++++++++++++++ lib/badge_animation/ani_linear_scroll.dart | 40 +++++++++++++++ lib/constants.dart | 3 ++ lib/providers/animation_badge_provider.dart | 4 ++ lib/view/homescreen.dart | 10 +++- lib/view/widgets/homescreentabs.dart | 46 ++++++++++++++++++ 8 files changed, 139 insertions(+), 2 deletions(-) create mode 100644 assets/animations/ic_anim_bidirectional_scroll.gif create mode 100644 assets/animations/ic_anim_linear_scroll.gif create mode 100644 lib/badge_animation/ani_bidirectional_scroll.dart create mode 100644 lib/badge_animation/ani_linear_scroll.dart diff --git a/assets/animations/ic_anim_bidirectional_scroll.gif b/assets/animations/ic_anim_bidirectional_scroll.gif new file mode 100644 index 0000000000000000000000000000000000000000..7a6ca582e539295c1f38628a20d83411e88f9c65 GIT binary patch literal 69476 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 literal 0 HcmV?d00001 diff --git a/assets/animations/ic_anim_linear_scroll.gif b/assets/animations/ic_anim_linear_scroll.gif new file mode 100644 index 0000000000000000000000000000000000000000..fe9da6bee8720d1a3d20153a352673bffe2a5333 GIT binary patch literal 66119 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

{-(C4~M~$e14iA^SMg7 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 processGrid, List> canvas) { + final newWidth = processGrid[0].length; + final newHeight = processGrid.length; + + final totalPhaseDuration = newWidth + badgeWidth; + final currentPhase = (animationIndex ~/ totalPhaseDuration) % 2; + final phaseOffset = animationIndex % totalPhaseDuration; + + for (int i = 0; i < badgeHeight; i++) { + for (int j = 0; j < badgeWidth; j++) { + int sourceCol; + bool flip = false; + + if (currentPhase == 0) { + // Left-to-right animation (original orientation) + sourceCol = newWidth - phaseOffset + j; + } else { + // Right-to-left animation (flipped orientation) + sourceCol = j + phaseOffset - badgeWidth; + flip = true; + } + + if (sourceCol >= 0 && sourceCol < newWidth) { + // Flip the column index if in return phase + final actualCol = flip ? newWidth - 1 - sourceCol : sourceCol; + canvas[i][j] = processGrid[i % newHeight][actualCol]; + } else { + canvas[i][j] = false; + } + } + } + } +} diff --git a/lib/badge_animation/ani_linear_scroll.dart b/lib/badge_animation/ani_linear_scroll.dart new file mode 100644 index 000000000..53de5121a --- /dev/null +++ b/lib/badge_animation/ani_linear_scroll.dart @@ -0,0 +1,40 @@ +import 'package:badgemagic/badge_animation/animation_abstract.dart'; + +class LinearScrollAnimation extends BadgeAnimation { + @override + void processAnimation(int badgeHeight, int badgeWidth, int animationIndex, + List> processGrid, List> canvas) { + final newWidth = processGrid[0].length; + final newHeight = processGrid.length; + + // Calculate the full animation cycle duration + final totalPhaseDuration = newWidth + badgeWidth; + + // Determine current phase (0 = left-to-right, 1 = right-to-left) + final currentPhase = (animationIndex ~/ totalPhaseDuration) % 2; + + // Calculate offset within current phase + final phaseOffset = animationIndex % totalPhaseDuration; + + for (int i = 0; i < badgeHeight; i++) { + for (int j = 0; j < badgeWidth; j++) { + int sourceCol; + + if (currentPhase == 0) { + // Left-to-right animation + sourceCol = newWidth - phaseOffset + j; + } else { + // Right-to-left animation + sourceCol = j + phaseOffset - badgeWidth; + } + + // Handle bounds checking + if (sourceCol >= 0 && sourceCol < newWidth) { + canvas[i][j] = processGrid[i % newHeight][sourceCol]; + } else { + canvas[i][j] = false; + } + } + } + } +} diff --git a/lib/constants.dart b/lib/constants.dart index fd9ed0d8d..50b234e75 100644 --- a/lib/constants.dart +++ b/lib/constants.dart @@ -33,6 +33,9 @@ const String aniLaser = 'assets/animations/ic_anim_laser.gif'; const String aniPicture = 'assets/animations/ic_anim_picture.gif'; const String aniUp = 'assets/animations/ic_anim_up.gif'; const String aniRight = 'assets/animations/ic_anim_right.gif'; +const String aniBidirectionalScroll = + 'assets/animations/ic_anim_bidirectional_scroll.gif'; +const String aniLinearScroll = 'assets/animations/ic_anim_linear_scroll.gif'; //path to all the effects assets used const String effFlash = 'assets/effects/ic_effect_flash.gif'; diff --git a/lib/providers/animation_badge_provider.dart b/lib/providers/animation_badge_provider.dart index 887f6a80c..49a685746 100644 --- a/lib/providers/animation_badge_provider.dart +++ b/lib/providers/animation_badge_provider.dart @@ -6,8 +6,10 @@ import 'package:badgemagic/badge_animation/ani_down.dart'; import 'package:badgemagic/badge_animation/ani_fixed.dart'; import 'package:badgemagic/badge_animation/ani_laser.dart'; import 'package:badgemagic/badge_animation/ani_left.dart'; +import 'package:badgemagic/badge_animation/ani_bidirectional_scroll.dart'; import 'package:badgemagic/badge_animation/ani_picture.dart'; import 'package:badgemagic/badge_animation/ani_right.dart'; +import 'package:badgemagic/badge_animation/ani_linear_scroll.dart'; import 'package:badgemagic/badge_animation/ani_snowflake.dart'; import 'package:badgemagic/badge_animation/ani_up.dart'; import 'package:badgemagic/badge_animation/animation_abstract.dart'; @@ -28,6 +30,8 @@ Map animationMap = { 6: PictureAnimation(), 7: AniAnimation(), 8: LaserAnimation(), + 9: LinearScrollAnimation(), + 10: BidirectionalScrollAnimation(), }; Map effectMap = { diff --git a/lib/view/homescreen.dart b/lib/view/homescreen.dart index 0fdfe43d6..91a22c67f 100644 --- a/lib/view/homescreen.dart +++ b/lib/view/homescreen.dart @@ -60,7 +60,7 @@ class _HomeScreenState extends State speedDialProvider = SpeedDialProvider(animationProvider); super.initState(); - _tabController = TabController(length: 3, vsync: this); + _tabController = TabController(length: 4, vsync: this); } void handleTextChange() { @@ -143,7 +143,7 @@ class _HomeScreenState extends State ), ], child: DefaultTabController( - length: 3, + length: 4, child: CommonScaffold( index: 0, title: 'Badge Magic', @@ -203,6 +203,10 @@ class _HomeScreenState extends State unselectedLabelColor: mdGrey400, indicatorColor: colorPrimary, controller: _tabController, + labelStyle: TextStyle( + fontSize: 12.sp, // Adjust font size for better fit + fontWeight: FontWeight.w500, + ), splashFactory: InkRipple.splashFactory, overlayColor: WidgetStateProperty.resolveWith( (Set states) { @@ -214,6 +218,7 @@ class _HomeScreenState extends State ), tabs: const [ Tab(text: 'Speed'), + Tab(text: 'Modes'), Tab(text: 'Animation'), Tab(text: 'Effects'), ], @@ -239,6 +244,7 @@ class _HomeScreenState extends State }, child: RadialDial()), AnimationTab(), + CustomAnimationTab(), EffectTab(), ], ), diff --git a/lib/view/widgets/homescreentabs.dart b/lib/view/widgets/homescreentabs.dart index 16269f21c..0758135fd 100644 --- a/lib/view/widgets/homescreentabs.dart +++ b/lib/view/widgets/homescreentabs.dart @@ -2,6 +2,7 @@ import 'package:badgemagic/constants.dart'; import 'package:badgemagic/view/widgets/animation_container.dart'; import 'package:badgemagic/view/widgets/effects_container.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; //effects tab to show effects that the user can select class EffectTab extends StatefulWidget { @@ -120,3 +121,48 @@ class _AnimationTabState extends State { ); } } + +class CustomAnimationTab extends StatefulWidget { + const CustomAnimationTab({ + super.key, + }); + + @override + State createState() => _CustomAnimationTabState(); +} + +class _CustomAnimationTabState extends State { + @override + Widget build(BuildContext context) { + return SingleChildScrollView( + child: GridView.builder( + shrinkWrap: true, + physics: const NeverScrollableScrollPhysics(), + gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: 3, // 3 columns + childAspectRatio: 110.w / 65.h, // width to height ratio + ), + itemCount: 2, // Total items (3 rows × 3 columns) + itemBuilder: (context, index) { + // Map indexes to corresponding animations + switch (index) { + case 0: + return AniContainer( + animation: aniLinearScroll, + animationName: 'Linear Scroll', + index: index + 9, + ); + case 1: + return AniContainer( + animation: aniBidirectionalScroll, + animationName: 'Bidirectional Scroll', + index: index + 9, + ); + default: + return const SizedBox.shrink(); + } + }, + ), + ); + } +} From 499461050472b78e03eefd3159892b98f743d9c5 Mon Sep 17 00:00:00 2001 From: Vishveshwara Uthayakumaran Date: Thu, 27 Mar 2025 11:10:04 +0530 Subject: [PATCH 2/3] added Transfer support for animations --- lib/bademagic_module/models/mode.dart | 4 +++- lib/providers/badge_message_provider.dart | 4 +++- lib/view/widgets/homescreentabs.dart | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/bademagic_module/models/mode.dart b/lib/bademagic_module/models/mode.dart index 61113d4ad..cad6f075b 100644 --- a/lib/bademagic_module/models/mode.dart +++ b/lib/bademagic_module/models/mode.dart @@ -7,7 +7,9 @@ enum Mode { snowflake('0x05'), picture('0x06'), animation('0x07'), - laser('0x08'); + laser('0x08'), + linearScroll('0x09'), + bidirectionalScroll('0x0A'); final String hexValue; const Mode(this.hexValue); diff --git a/lib/providers/badge_message_provider.dart b/lib/providers/badge_message_provider.dart index f93cbc70e..eb80d3a50 100644 --- a/lib/providers/badge_message_provider.dart +++ b/lib/providers/badge_message_provider.dart @@ -23,7 +23,9 @@ Map modeValueMap = { 5: Mode.snowflake, 6: Mode.picture, 7: Mode.animation, - 8: Mode.laser + 8: Mode.laser, + 9: Mode.linearScroll, + 10: Mode.bidirectionalScroll, }; Map speedMap = { diff --git a/lib/view/widgets/homescreentabs.dart b/lib/view/widgets/homescreentabs.dart index 0758135fd..cdb2b46c2 100644 --- a/lib/view/widgets/homescreentabs.dart +++ b/lib/view/widgets/homescreentabs.dart @@ -142,7 +142,7 @@ class _CustomAnimationTabState extends State { crossAxisCount: 3, // 3 columns childAspectRatio: 110.w / 65.h, // width to height ratio ), - itemCount: 2, // Total items (3 rows × 3 columns) + itemCount: 2, itemBuilder: (context, index) { // Map indexes to corresponding animations switch (index) { From a8d50a02056856c3bf91e02b797418e4b0539370 Mon Sep 17 00:00:00 2001 From: Vishveshwara Uthayakumaran Date: Thu, 27 Mar 2025 13:09:27 +0530 Subject: [PATCH 3/3] Added Save badge feature for the fonts --- lib/bademagic_module/models/mode.dart | 2 +- lib/providers/saved_badge_provider.dart | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/bademagic_module/models/mode.dart b/lib/bademagic_module/models/mode.dart index cad6f075b..2342869b1 100644 --- a/lib/bademagic_module/models/mode.dart +++ b/lib/bademagic_module/models/mode.dart @@ -17,7 +17,7 @@ enum Mode { //method to get the integer value of the mode static int getIntValue(Mode mode) { String hexValue = mode.hexValue.substring(3, 4); - int intValue = int.parse(hexValue, radix: 10); + int intValue = int.parse(hexValue, radix: 16); return intValue; } diff --git a/lib/providers/saved_badge_provider.dart b/lib/providers/saved_badge_provider.dart index 0051f86f8..90b450cea 100644 --- a/lib/providers/saved_badge_provider.dart +++ b/lib/providers/saved_badge_provider.dart @@ -30,7 +30,9 @@ Map modeValueMap = { 5: Mode.snowflake, 6: Mode.picture, 7: Mode.animation, - 8: Mode.laser + 8: Mode.laser, + 9: Mode.linearScroll, + 10: Mode.bidirectionalScroll, }; class SavedBadgeProvider extends ChangeNotifier {