From ff837e4f6eddad86a42958ed3bd7802647e3cb06 Mon Sep 17 00:00:00 2001 From: komekh Date: Fri, 30 Aug 2024 16:23:43 +0500 Subject: [PATCH] developed --- assets/images/circle.png | Bin 774 -> 0 bytes assets/images/circle2.png | Bin 243 -> 0 bytes .../order_detail_bloc/order_detail_bloc.dart | 14 +-- lib/core/constants/assets.dart | 2 - lib/presentation/widgets/circle_painter.dart | 83 ++++++++++++++++++ 5 files changed, 91 insertions(+), 8 deletions(-) delete mode 100644 assets/images/circle.png delete mode 100644 assets/images/circle2.png diff --git a/assets/images/circle.png b/assets/images/circle.png deleted file mode 100644 index a264d3811cb09298a8650c533a47a2c88185469f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 774 zcmV+h1Nr=kP)F|NQ$1%?^h_(2(<19yN@K}ZEC9q{NeNSFNp znUnZ2cqTi;NO!v1Z@>LT(H6P8>z>$lcCD1I5-EpBJJ{En#!Aspp3nGQT?KzP=};RK zJC#b>mCLSWsa}@pUrJ4ewOTE~_fDtd5Pgy#U&xuN);gAFxDIFq;Nc+>i&axB>>VC* z+xPu3y(68@&s#B~DX(Fp5wte~;GkIJ*)~;!U^DIYAYDi6Y#>Z}jmGyM`97PLe^fc7 zR`V03_=_<2psTr83T_3fRaXA^ z7+nbPNU|t2ltWwqB9lyOmrPWTnR+t@i;Nl6>%p0Ma2{-G(Qe|&{eF>kI(mJz&RAZ~ zMNv#ew>a_$X-5%PwV*U#-`x0Puz+h>sC=DHb>F-ImkH>}t^ha-W#%5Uicz2}!Eld` z)TnqtyR@gs9nV~At^UZvVW6)`%e?`h%v>PYGXVO}A^<9hqUf}^trFT(P#5NUUJo=D z7wP2Xg$pi0AEG@)lBED(S^5-p0tPWN+VN5ZunlzDQE>L)pqSQ^iT2RSd9F-*t9i^# z+FinOqKNfXX+6&jWuRBi<9hvDU-p~Zm@K||``W z$lZxy-8q?;Kn_c~qpu?a!^VE@KZ&eBeut-vV@L&KY42U$W&?rdxr@ExtexB!%r0SF zvPa?L0X50Sz5^V07sxKmIl%PihLD1yp!dY0^xxL(T1(#v9=f8-?e)Ci`KtNpTYQDt z)i3{kxm&VbLN0X2#+erLeLPwBZU6Y+$xUfSz|IDZv^M!quPPU)|F{HYJzf#XvVPc)I$ztaD0e0sx { ), ), iconWidget: isSplashedIcon - ? Image.asset( - AppAssets.circle, - color: iconColor, + ? CircleWithGapWidget( + radius: 7, + fillColor: iconColor, + borderColor: iconColor, + borderWidth: 2, + gap: 3.0, ) : CirclePainterWidget( - radius: 8, + radius: 9, color: iconColor, ), ); diff --git a/lib/core/constants/assets.dart b/lib/core/constants/assets.dart index 61ffc1e..906eaea 100644 --- a/lib/core/constants/assets.dart +++ b/lib/core/constants/assets.dart @@ -10,8 +10,6 @@ sealed class AppAssets { static const String boxesPng = 'assets/images/boxes.png'; static const String trucksPng = 'assets/images/trucks.png'; static const String header = 'assets/images/header.png'; - static const String circle = 'assets/images/circle.png'; - static const String circle2 = 'assets/images/circle2.png'; static const String search = 'assets/images/search.png'; static const String searchGif = 'assets/images/search.gif'; } diff --git a/lib/presentation/widgets/circle_painter.dart b/lib/presentation/widgets/circle_painter.dart index 77d632c..08115a0 100644 --- a/lib/presentation/widgets/circle_painter.dart +++ b/lib/presentation/widgets/circle_painter.dart @@ -42,3 +42,86 @@ class CirclePainterWidget extends StatelessWidget { ); } } + +class CircleWithGapPainter extends CustomPainter { + final double radius; + final Color fillColor; + final Color borderColor; + final double borderWidth; + final double gap; + + CircleWithGapPainter({ + required this.radius, + required this.fillColor, + required this.borderColor, + required this.borderWidth, + required this.gap, + }); + + @override + void paint(Canvas canvas, Size size) { + // Paint for the inner circle + final fillPaint = Paint() + ..color = fillColor + ..style = PaintingStyle.fill; + + // Paint for the border + final borderPaint = Paint() + ..color = borderColor + ..style = PaintingStyle.stroke + ..strokeWidth = borderWidth; + + // Draw the filled inner circle + canvas.drawCircle( + Offset(size.width / 2, size.height / 2), + radius, + fillPaint, + ); + + // Draw the border circle with the gap + canvas.drawCircle( + Offset(size.width / 2, size.height / 2), + radius + gap + borderWidth / 2, + borderPaint, + ); + } + + @override + bool shouldRepaint(covariant CustomPainter oldDelegate) { + return false; + } +} + +class CircleWithGapWidget extends StatelessWidget { + final double radius; + final Color fillColor; + final Color borderColor; + final double borderWidth; + final double gap; + + const CircleWithGapWidget({ + super.key, + required this.radius, + required this.fillColor, + required this.borderColor, + required this.borderWidth, + required this.gap, + }); + + @override + Widget build(BuildContext context) { + // Ensure the widget is large enough to fit the circle with its border and gap + double totalSize = (radius + gap + borderWidth) * 2; + + return CustomPaint( + painter: CircleWithGapPainter( + radius: radius, + fillColor: fillColor, + borderColor: borderColor, + borderWidth: borderWidth, + gap: gap, + ), + size: Size(totalSize, totalSize), + ); + } +}