From e9fcfbefd902dde31e8b21edab1ebc01838f81c2 Mon Sep 17 00:00:00 2001 From: otsmr Date: Wed, 14 Jan 2026 23:12:48 +0100 Subject: [PATCH] fixed some small issues --- lib/src/views/components/animate_icon.dart | 390 +++++++++--------- .../subscription/subscription.view.dart | 9 +- 2 files changed, 200 insertions(+), 199 deletions(-) diff --git a/lib/src/views/components/animate_icon.dart b/lib/src/views/components/animate_icon.dart index a56c511..28f6462 100644 --- a/lib/src/views/components/animate_icon.dart +++ b/lib/src/views/components/animate_icon.dart @@ -26,202 +26,202 @@ class EmojiAnimation extends StatelessWidget { final String emoji; final bool repeat; static final Map animatedIcons = { - "โค": "red_heart.json", - "๐Ÿ˜‚": "joy.json", - "๐Ÿ”ฅ": "fire.json", - "๐Ÿ’ช": "muscle.json", - "๐Ÿ˜ญ": "loudly-crying.json", - "๐Ÿคฏ": "mind-blown.json", - "โค๏ธโ€๐Ÿ”ฅ": "red_heart_fire.json", + 'โค': 'red_heart.json', + '๐Ÿ˜‚': 'joy.json', + '๐Ÿ”ฅ': 'fire.json', + '๐Ÿ’ช': 'muscle.json', + '๐Ÿ˜ญ': 'loudly-crying.json', + '๐Ÿคฏ': 'mind-blown.json', + 'โค๏ธโ€๐Ÿ”ฅ': 'red_heart_fire.json', // "๐Ÿ˜": "grinning.json", - "๐Ÿ˜†": "laughing.json", - "๐Ÿ˜…": "grin-sweat.json", - "๐Ÿคฃ": "rofl.json", - "๐Ÿ˜‰": "wink.json", - "๐Ÿ˜™": "kissing-smiling-eyes.json", - "๐Ÿ˜˜": "kissing-heart.json", - "๐Ÿฅฐ": "heart-face.json", - "๐Ÿ˜": "heart-eyes.json", - "๐Ÿคฉ": "star-struck.json", - "๐Ÿฅณ": "partying-face.json", - "๐Ÿ™ƒ": "upside-down-face.json", - "๐Ÿฅฒ": "happy-cry.json", - "๐Ÿ˜Š": "blush.json", - "๐Ÿ˜": "smirk.json", - "๐Ÿคค": "drool.json", - "๐Ÿ˜‹": "yum.json", - "๐Ÿ˜›": "stuck-out-tongue.json", - "๐Ÿคช": "zany-face.json", - "๐Ÿฅด": "woozy.json", - "๐Ÿ˜”": "pensive.json", - "๐Ÿฅบ": "pleading.json", - "๐Ÿ˜ฌ": "grimacing.json", - "๐Ÿ˜‘": "expressionless.json", - "๐Ÿ˜": "neutral-face.json", - "๐Ÿค": "zipper-face.json", - "๐Ÿค”": "thinking-face.json", - "๐Ÿฅฑ": "yawn.json", - "๐Ÿค—": "hug-face.json", - "๐Ÿ˜ฑ": "screaming.json", - "๐Ÿคจ": "raised-eyebrow.json", - "๐Ÿง": "monocle.json", - "๐Ÿ˜’": "unamused.json", - "๐Ÿ™„": "rolling-eyes.json", - "๐Ÿ˜ค": "triumph.json", - "๐Ÿคฌ": "cursing.json", - "๐Ÿ˜ž": "sad.json", - "๐Ÿ˜ข": "cry.json", - "๐Ÿ™": "frown.json", - "๐Ÿ˜จ": "scared.json", - "๐Ÿ˜ณ": "flushed.json", - "๐Ÿ˜–": "scrunched-mouth.json", - "๐Ÿ˜ต": "x-eyes.json", - "๐Ÿฅถ": "cold-face.json", - "๐Ÿฅต": "hot-face.json", - "๐Ÿคฎ": "vomit.json", - "๐Ÿ˜ด": "sleep.json", - "๐Ÿค’": "thermometer-face.json", - "๐Ÿค•": "bandage-face.json", - "๐Ÿคฅ": "liar.json", - "๐Ÿ˜‡": "halo.json", - "๐Ÿค ": "cowboy.json", - "๐Ÿค‘": "money-face.json", - "๐Ÿค“": "nerd-face.json", - "๐Ÿ˜Ž": "sunglasses-face.json", - "๐Ÿฅธ": "disguise.json", - "๐Ÿคก": "clown.json", - "๐Ÿ’ฉ": "poop.json", - "๐Ÿ˜ˆ": "imp-smile.json", - "๐Ÿ‘ป": "ghost.json", - "๐Ÿ’€": "skull.json", - "โ›„": "snowman.json", - "๐ŸŽƒ": "jack-o-lantern.json", - "๐Ÿค–": "robot.json", - "๐Ÿ‘ฝ": "alien.json", - "๐Ÿ˜บ": "smiley-cat.json", - "๐Ÿ˜ธ": "smile-cat.json", - "๐Ÿ˜น": "joy-cat.json", - "๐Ÿ˜ป": "heart-eyes-cat.json", - "๐Ÿ˜ผ": "smirk-cat.json", - "๐Ÿ˜ฝ": "kissing-cat.json", - "๐Ÿ™€": "scream-cat.json", - "๐Ÿ˜ฟ": "crying-cat-face.json", - "๐Ÿ˜พ": "pouting-cat.json", - "๐Ÿ™ˆ": "see-no-evil-monkey.json", - "๐Ÿ™‰": "hear-no-evil-monkey.json", - "๐Ÿ™Š": "speak-no-evil-monkey.json", - "๐ŸŒŸ": "glowing-star.json", - "โœจ": "sparkles.json", - "โšก": "electricity.json", - "๐Ÿ’ฅ": "collision.json", - "๐Ÿ’ฏ": "100.json", - "๐ŸŽ‰": "party-popper.json", - "๐ŸŽŠ": "confetti-ball.json", - "๐Ÿงก": "orange-heart.json", - "๐Ÿ’›": "yellow-heart.json", - "๐Ÿ’š": "green-heart.json", - "๐Ÿ’™": "blue-heart.json", - "๐Ÿ’œ": "purple-heart.json", - "๐Ÿ’˜": "cupid.json", - "๐Ÿ’": "gift-heart.json", - "๐Ÿ’–": "sparkling-heart.json", - "๐Ÿ’—": "heart-grow.json", - "๐Ÿ’“": "beating-heart.json", - "๐Ÿ’ž": "revolving-hearts.json", - "๐Ÿ’•": "two-hearts.json", - "๐Ÿ’”": "broken-heart.json", - "๐Ÿ’‹": "kiss.json", - "๐Ÿ‘€": "eyes.json", - "๐Ÿฆป": "hearing-aid.json", - "๐Ÿฆถ": "foot.json", - "๐Ÿฆต": "leg.json", - "๐Ÿฆฟ": "leg-mechanical.json", - "๐Ÿฆพ": "arm-mechanical.json", - "๐Ÿ‘": "clap.json", - "๐Ÿ‘": "thumbs-up.json", - "๐Ÿ‘Ž": "thumbs-down.json", - "๐Ÿ™Œ": "raising-hands.json", - "๐Ÿคฒ": "palms-up.json", - "โœŠ": "raised-fist.json", - "๐Ÿ‘Š": "fist.json", - "๐Ÿ‘‹": "wave.json", - "๐Ÿค˜": "metal.json", - "๐Ÿคž": "crossed-fingers.json", - "๐Ÿค™": "call-me-hand.json", - "๐Ÿ‘Œ": "ok.json", - "๐Ÿ–•": "middle-finger.json", - "๐Ÿค": "handshake.json", - "๐Ÿ’ƒ": "dancer-woman.json", - "๐ŸŒฑ": "plant.json", - "๐Ÿƒ": "leaves.json", - "๐Ÿ€": "luck.json", - "๐ŸŒ‹": "volcano.json", - "๐ŸŒˆ": "rainbow.json", - "๐ŸŒŠ": "ocean.json", - "๐Ÿ’ง": "droplet.json", - "๐Ÿฆ„": "unicorn.json", - "๐ŸฆŽ": "lizard.json", - "๐Ÿฆ–": "t-rex.json", - "๐Ÿฆ•": "dinosaur.json", - "๐Ÿข": "turtle.json", - "๐ŸŠ": "crocodile.json", - "๐Ÿ": "snake.json", - "๐Ÿฉ": "poodle.json", - "๐Ÿ•": "dog.json", - "๐Ÿฆฎ": "guide-dog.json", - "๐Ÿ–": "pig.json", - "๐Ÿฆ˜": "kangaroo.json", - "๐Ÿ…": "tiger.json", - "๐Ÿ’": "monkey.json", - "๐Ÿฆ": "gorilla.json", - "๐Ÿฆง": "orangutan.json", - "๐Ÿฆฆ": "otter.json", - "๐Ÿ“": "rooster.json", - "๐Ÿฆ…": "eagle.json", - "๐Ÿฆ‰": "owl.json", - "๐Ÿฆš": "peacock.json", - "๐Ÿฆญ": "seal.json", - "๐Ÿฆˆ": "shark.json", - "๐Ÿฌ": "dolphin.json", - "๐Ÿณ": "whale.json", - "๐ŸŸ": "fish.json", - "๐Ÿก": "blowfish.json", - "๐Ÿฆž": "lobster.json", - "๐Ÿฆ€": "crab.json", - "๐Ÿ™": "octopus.json", - "๐Ÿฆ‚": "scorpion.json", - "๐ŸŒ": "snail.json", - "๐Ÿœ": "ant.json", - "๐Ÿชณ": "cockroach.json", - "๐Ÿชฐ": "fly.json", - "๐Ÿ": "bee.json", - "๐Ÿž": "lady-bug.json", - "๐ŸŒฏ": "burrito.json", - "๐Ÿป": "clinking-beer-mugs.json", - "๐Ÿพ": "bottle-with-popping-cork.json", - "๐Ÿšจ": "police-car-light.json", - "๐Ÿš—": "automobile.json", - "๐Ÿš•": "taxi.json", - "๐Ÿ›ธ": "flying-saucer.json", - "๐Ÿš€": "rocket.json", - "๐Ÿ›ซ": "airplane-departure.json", - "๐ŸŽข": "roller-coaster.json", - "๐ŸŽก": "ferris-wheel.json", - "๐ŸŽˆ": "balloon.json", - "๐ŸŽ": "wrapped-gift.json", - "๐ŸŽ†": "fireworks.json", - "๐Ÿ’ธ": "money-with-wings.json", - "๐Ÿ’Ž": "gem-stone.json", - "๐ŸŽ“": "graduation-cap.json", - "โฐ": "alarm-clock.json", - "๐Ÿ””": "bell.json", - "๐Ÿ’ฃ": "bomb.json", - "โ—": "exclamation.json", - "โ“": "question.json", - "โŒ": "cross-mark.json", - "๐Ÿ": "chequered-flag.json", - "๐Ÿšฉ": "triangular-flag.json", - "๐Ÿด": "black-flag.json", + '๐Ÿ˜†': 'laughing.json', + '๐Ÿ˜…': 'grin-sweat.json', + '๐Ÿคฃ': 'rofl.json', + '๐Ÿ˜‰': 'wink.json', + '๐Ÿ˜™': 'kissing-smiling-eyes.json', + '๐Ÿ˜˜': 'kissing-heart.json', + '๐Ÿฅฐ': 'heart-face.json', + '๐Ÿ˜': 'heart-eyes.json', + '๐Ÿคฉ': 'star-struck.json', + '๐Ÿฅณ': 'partying-face.json', + '๐Ÿ™ƒ': 'upside-down-face.json', + '๐Ÿฅฒ': 'happy-cry.json', + '๐Ÿ˜Š': 'blush.json', + '๐Ÿ˜': 'smirk.json', + '๐Ÿคค': 'drool.json', + '๐Ÿ˜‹': 'yum.json', + '๐Ÿ˜›': 'stuck-out-tongue.json', + '๐Ÿคช': 'zany-face.json', + '๐Ÿฅด': 'woozy.json', + '๐Ÿ˜”': 'pensive.json', + '๐Ÿฅบ': 'pleading.json', + '๐Ÿ˜ฌ': 'grimacing.json', + '๐Ÿ˜‘': 'expressionless.json', + '๐Ÿ˜': 'neutral-face.json', + '๐Ÿค': 'zipper-face.json', + '๐Ÿค”': 'thinking-face.json', + '๐Ÿฅฑ': 'yawn.json', + '๐Ÿค—': 'hug-face.json', + '๐Ÿ˜ฑ': 'screaming.json', + '๐Ÿคจ': 'raised-eyebrow.json', + '๐Ÿง': 'monocle.json', + '๐Ÿ˜’': 'unamused.json', + '๐Ÿ™„': 'rolling-eyes.json', + '๐Ÿ˜ค': 'triumph.json', + '๐Ÿคฌ': 'cursing.json', + '๐Ÿ˜ž': 'sad.json', + '๐Ÿ˜ข': 'cry.json', + '๐Ÿ™': 'frown.json', + '๐Ÿ˜จ': 'scared.json', + '๐Ÿ˜ณ': 'flushed.json', + '๐Ÿ˜–': 'scrunched-mouth.json', + '๐Ÿ˜ต': 'x-eyes.json', + '๐Ÿฅถ': 'cold-face.json', + '๐Ÿฅต': 'hot-face.json', + '๐Ÿคฎ': 'vomit.json', + '๐Ÿ˜ด': 'sleep.json', + '๐Ÿค’': 'thermometer-face.json', + '๐Ÿค•': 'bandage-face.json', + '๐Ÿคฅ': 'liar.json', + '๐Ÿ˜‡': 'halo.json', + '๐Ÿค ': 'cowboy.json', + '๐Ÿค‘': 'money-face.json', + '๐Ÿค“': 'nerd-face.json', + '๐Ÿ˜Ž': 'sunglasses-face.json', + '๐Ÿฅธ': 'disguise.json', + '๐Ÿคก': 'clown.json', + '๐Ÿ’ฉ': 'poop.json', + '๐Ÿ˜ˆ': 'imp-smile.json', + '๐Ÿ‘ป': 'ghost.json', + '๐Ÿ’€': 'skull.json', + 'โ›„': 'snowman.json', + '๐ŸŽƒ': 'jack-o-lantern.json', + '๐Ÿค–': 'robot.json', + '๐Ÿ‘ฝ': 'alien.json', + '๐Ÿ˜บ': 'smiley-cat.json', + '๐Ÿ˜ธ': 'smile-cat.json', + '๐Ÿ˜น': 'joy-cat.json', + '๐Ÿ˜ป': 'heart-eyes-cat.json', + '๐Ÿ˜ผ': 'smirk-cat.json', + '๐Ÿ˜ฝ': 'kissing-cat.json', + '๐Ÿ™€': 'scream-cat.json', + '๐Ÿ˜ฟ': 'crying-cat-face.json', + '๐Ÿ˜พ': 'pouting-cat.json', + '๐Ÿ™ˆ': 'see-no-evil-monkey.json', + '๐Ÿ™‰': 'hear-no-evil-monkey.json', + '๐Ÿ™Š': 'speak-no-evil-monkey.json', + '๐ŸŒŸ': 'glowing-star.json', + 'โœจ': 'sparkles.json', + 'โšก': 'electricity.json', + '๐Ÿ’ฅ': 'collision.json', + '๐Ÿ’ฏ': '100.json', + '๐ŸŽ‰': 'party-popper.json', + '๐ŸŽŠ': 'confetti-ball.json', + '๐Ÿงก': 'orange-heart.json', + '๐Ÿ’›': 'yellow-heart.json', + '๐Ÿ’š': 'green-heart.json', + '๐Ÿ’™': 'blue-heart.json', + '๐Ÿ’œ': 'purple-heart.json', + '๐Ÿ’˜': 'cupid.json', + '๐Ÿ’': 'gift-heart.json', + '๐Ÿ’–': 'sparkling-heart.json', + '๐Ÿ’—': 'heart-grow.json', + '๐Ÿ’“': 'beating-heart.json', + '๐Ÿ’ž': 'revolving-hearts.json', + '๐Ÿ’•': 'two-hearts.json', + '๐Ÿ’”': 'broken-heart.json', + '๐Ÿ’‹': 'kiss.json', + '๐Ÿ‘€': 'eyes.json', + '๐Ÿฆป': 'hearing-aid.json', + '๐Ÿฆถ': 'foot.json', + '๐Ÿฆต': 'leg.json', + '๐Ÿฆฟ': 'leg-mechanical.json', + '๐Ÿฆพ': 'arm-mechanical.json', + '๐Ÿ‘': 'clap.json', + '๐Ÿ‘': 'thumbs-up.json', + '๐Ÿ‘Ž': 'thumbs-down.json', + '๐Ÿ™Œ': 'raising-hands.json', + '๐Ÿคฒ': 'palms-up.json', + 'โœŠ': 'raised-fist.json', + '๐Ÿ‘Š': 'fist.json', + '๐Ÿ‘‹': 'wave.json', + '๐Ÿค˜': 'metal.json', + '๐Ÿคž': 'crossed-fingers.json', + '๐Ÿค™': 'call-me-hand.json', + '๐Ÿ‘Œ': 'ok.json', + '๐Ÿ–•': 'middle-finger.json', + '๐Ÿค': 'handshake.json', + '๐Ÿ’ƒ': 'dancer-woman.json', + '๐ŸŒฑ': 'plant.json', + '๐Ÿƒ': 'leaves.json', + '๐Ÿ€': 'luck.json', + '๐ŸŒ‹': 'volcano.json', + '๐ŸŒˆ': 'rainbow.json', + '๐ŸŒŠ': 'ocean.json', + '๐Ÿ’ง': 'droplet.json', + '๐Ÿฆ„': 'unicorn.json', + '๐ŸฆŽ': 'lizard.json', + '๐Ÿฆ–': 't-rex.json', + '๐Ÿฆ•': 'dinosaur.json', + '๐Ÿข': 'turtle.json', + '๐ŸŠ': 'crocodile.json', + '๐Ÿ': 'snake.json', + '๐Ÿฉ': 'poodle.json', + '๐Ÿ•': 'dog.json', + '๐Ÿฆฎ': 'guide-dog.json', + '๐Ÿ–': 'pig.json', + '๐Ÿฆ˜': 'kangaroo.json', + '๐Ÿ…': 'tiger.json', + '๐Ÿ’': 'monkey.json', + '๐Ÿฆ': 'gorilla.json', + '๐Ÿฆง': 'orangutan.json', + '๐Ÿฆฆ': 'otter.json', + '๐Ÿ“': 'rooster.json', + '๐Ÿฆ…': 'eagle.json', + '๐Ÿฆ‰': 'owl.json', + '๐Ÿฆš': 'peacock.json', + '๐Ÿฆญ': 'seal.json', + '๐Ÿฆˆ': 'shark.json', + '๐Ÿฌ': 'dolphin.json', + '๐Ÿณ': 'whale.json', + '๐ŸŸ': 'fish.json', + '๐Ÿก': 'blowfish.json', + '๐Ÿฆž': 'lobster.json', + '๐Ÿฆ€': 'crab.json', + '๐Ÿ™': 'octopus.json', + '๐Ÿฆ‚': 'scorpion.json', + '๐ŸŒ': 'snail.json', + '๐Ÿœ': 'ant.json', + '๐Ÿชณ': 'cockroach.json', + '๐Ÿชฐ': 'fly.json', + '๐Ÿ': 'bee.json', + '๐Ÿž': 'lady-bug.json', + '๐ŸŒฏ': 'burrito.json', + '๐Ÿป': 'clinking-beer-mugs.json', + '๐Ÿพ': 'bottle-with-popping-cork.json', + '๐Ÿšจ': 'police-car-light.json', + '๐Ÿš—': 'automobile.json', + '๐Ÿš•': 'taxi.json', + '๐Ÿ›ธ': 'flying-saucer.json', + '๐Ÿš€': 'rocket.json', + '๐Ÿ›ซ': 'airplane-departure.json', + '๐ŸŽข': 'roller-coaster.json', + '๐ŸŽก': 'ferris-wheel.json', + '๐ŸŽˆ': 'balloon.json', + '๐ŸŽ': 'wrapped-gift.json', + '๐ŸŽ†': 'fireworks.json', + '๐Ÿ’ธ': 'money-with-wings.json', + '๐Ÿ’Ž': 'gem-stone.json', + '๐ŸŽ“': 'graduation-cap.json', + 'โฐ': 'alarm-clock.json', + '๐Ÿ””': 'bell.json', + '๐Ÿ’ฃ': 'bomb.json', + 'โ—': 'exclamation.json', + 'โ“': 'question.json', + 'โŒ': 'cross-mark.json', + '๐Ÿ': 'chequered-flag.json', + '๐Ÿšฉ': 'triangular-flag.json', + '๐Ÿด': 'black-flag.json', }; static bool supported(String emoji) { diff --git a/lib/src/views/settings/subscription/subscription.view.dart b/lib/src/views/settings/subscription/subscription.view.dart index dbaf3bc..de8b192 100644 --- a/lib/src/views/settings/subscription/subscription.view.dart +++ b/lib/src/views/settings/subscription/subscription.view.dart @@ -295,7 +295,9 @@ class _PlanCardState extends State { }, label: const Text('Manage subscription'), ), - if (widget.onPurchase != null && monthlyProduct != null) + if (widget.onPurchase != null && + monthlyProduct != null && + !isPayingUser(currentPlan)) OutlinedButton.icon( onPressed: _isLoading != null ? null @@ -315,8 +317,7 @@ class _PlanCardState extends State { ), ), if (widget.onPurchase != null && - (yearlyProduct != null || - currentPlan == SubscriptionPlan.Free)) + (yearlyProduct != null && !isPayingUser(currentPlan))) FilledButton.icon( onPressed: _isLoading != null ? null @@ -331,7 +332,7 @@ class _PlanCardState extends State { label: Text( context.lang.upgradeToPaidPlanButton( widget.plan.name, - ' (${getFormattedPrice(yearlyProduct!)}/${context.lang.year})', + ' (${getFormattedPrice(yearlyProduct)}/${context.lang.year})', ), ), ),