@@ -38,21 +38,20 @@ class _HomeScreenState extends State<HomeScreen>
3838 AutomaticKeepAliveClientMixin ,
3939 WidgetsBindingObserver {
4040 late final TabController _tabController;
41+ AnimationBadgeProvider animationProvider = AnimationBadgeProvider ();
4142 late SpeedDialProvider speedDialProvider;
42- final AnimationBadgeProvider animationProvider = AnimationBadgeProvider ();
43- final BadgeMessageProvider badgeData = BadgeMessageProvider ();
44- final ImageUtils imageUtils = ImageUtils ();
45- final InlineImageProvider inlineImageProvider =
43+ BadgeMessageProvider badgeData = BadgeMessageProvider ();
44+ ImageUtils imageUtils = ImageUtils ();
45+ InlineImageProvider inlineImageProvider =
4646 GetIt .instance <InlineImageProvider >();
47+ bool isPrefixIconClicked = false ;
48+ int textfieldLength = 0 ;
49+ String previousText = '' ;
4750 final TextEditingController inlineimagecontroller =
4851 GetIt .instance.get <InlineImageProvider >().getController ();
49-
50- bool isPrefixIconClicked = false ;
5152 bool isDialInteracting = false ;
5253 String _cachedText = '' ;
5354 late ScreenSize _selectedSize;
54- String previousText = '' ;
55- String _cachedText = '' ; // <-- NEW: to cache text on pause
5655
5756 @override
5857 void initState () {
@@ -67,8 +66,6 @@ class _HomeScreenState extends State<HomeScreen>
6766 speedDialProvider = SpeedDialProvider (animationProvider);
6867 _tabController = TabController (length: 3 , vsync: this );
6968 _selectedSize = supportedScreenSizes.first;
70- _selectedSize = supportedScreenSizes.first; // default value
71- super .initState ();
7269 }
7370
7471 @override
@@ -98,7 +95,6 @@ class _HomeScreenState extends State<HomeScreen>
9895 InvertLEDEffect (),
9996 ),
10097 _selectedSize,
101- animationProvider.isEffectActive (InvertLEDEffect ()),
10298 );
10399 }
104100 }
@@ -111,8 +107,6 @@ class _HomeScreenState extends State<HomeScreen>
111107 InvertLEDEffect (),
112108 ),
113109 _selectedSize,
114-
115- animationProvider.isEffectActive (InvertLEDEffect ()),
116110 );
117111 }
118112
@@ -122,6 +116,7 @@ class _HomeScreenState extends State<HomeScreen>
122116
123117 if (previousText.length > currentText.length) {
124118 final deletionIndex = selection.baseOffset;
119+
125120 final regex = RegExp (r'<<\d+>>' );
126121 final matches = regex.allMatches (previousText);
127122
@@ -165,15 +160,17 @@ class _HomeScreenState extends State<HomeScreen>
165160 @override
166161 Widget build (BuildContext context) {
167162 super .build (context);
163+ InlineImageProvider inlineImageProvider =
164+ Provider .of <InlineImageProvider >(context);
168165
169166 return MultiProvider (
170167 providers: [
171168 ChangeNotifierProvider <AnimationBadgeProvider >(
172- create: (_ ) => animationProvider,
169+ create: (context ) => animationProvider,
173170 ),
174171 ChangeNotifierProvider <SpeedDialProvider >(
175- create: (_ ) {
176- inlineimagecontroller .addListener (_controllerListner);
172+ create: (context ) {
173+ inlineImageProvider. getController () .addListener (_controllerListner);
177174 return speedDialProvider;
178175 },
179176 ),
@@ -227,7 +224,6 @@ class _HomeScreenState extends State<HomeScreen>
227224 ],
228225 ),
229226 ),
230- AnimationBadge (),
231227 Container (
232228 margin: EdgeInsets .all (15. w),
233229 child: Material (
@@ -347,47 +343,6 @@ class _HomeScreenState extends State<HomeScreen>
347343 child: const Text ('Save' ),
348344 ),
349345 ),
350- ),
351- AnimationTab (),
352- EffectTab (),
353- ],
354- ),
355- ),
356- Row (
357- mainAxisAlignment: MainAxisAlignment .center,
358- children: [
359- Container (
360- padding: EdgeInsets .symmetric (vertical: 20. h),
361- child: GestureDetector (
362- onTap: () {
363- if (inlineimagecontroller.text.trim ().isEmpty) {
364- ToastUtils ()
365- .showErrorToast ("Please enter a message" );
366- return ;
367- }
368- showDialog (
369- context: context,
370- builder: (context) {
371- return SaveBadgeDialog (
372- speed: speedDialProvider,
373- animationProvider: animationProvider,
374- textController: inlineimagecontroller,
375- isInverse: animationProvider
376- .isEffectActive (InvertLEDEffect ()),
377- );
378- },
379- );
380- },
381- child: Container (
382- padding: EdgeInsets .symmetric (
383- horizontal: 33. w, vertical: 8. h),
384- decoration: BoxDecoration (
385- borderRadius: BorderRadius .circular (2. r),
386- color: mdGrey400,
387- ),
388- child: const Text ('Save' ),
389- ),
390- ),
391346 ),
392347 SizedBox (width: 100. w),
393348 Container (
@@ -405,20 +360,13 @@ class _HomeScreenState extends State<HomeScreen>
405360 animationProvider.isEffectActive (
406361 InvertLEDEffect (),
407362 ),
408-
409- animationProvider.isEffectActive (FlashEffect ()),
410- animationProvider.isEffectActive (MarqueeEffect ()),
411- animationProvider
412- .isEffectActive (InvertLEDEffect ()),
413363 speedDialProvider.getOuterValue (),
414364 modeValueMap[
415365 animationProvider.getAnimationIndex ()],
416366 null ,
417367 false ,
418368 _selectedSize.height,
419369 _selectedSize.width,
420- _selectedSize.width, // <-- pass badge height
421-
422370 );
423371 },
424372 child: Container (
0 commit comments