From a83c944528135c1e7fda3956023a4f38ac3fa00a Mon Sep 17 00:00:00 2001 From: Kashaf Batool Date: Fri, 9 Jan 2026 13:10:39 -0500 Subject: [PATCH 1/3] saving --- .fvmrc | 2 +- .vscode/settings.json | 2 +- .../lib/l10n/app_localizations.dart | 622 +++++++++++++----- 3 files changed, 463 insertions(+), 163 deletions(-) diff --git a/.fvmrc b/.fvmrc index d70a803f6e1b..45c21240a1e2 100644 --- a/.fvmrc +++ b/.fvmrc @@ -1,3 +1,3 @@ { - "flutter": "3.35.6" + "flutter": "3.38.6" } \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index 8ace00894d67..23426c29fb9a 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -33,5 +33,5 @@ "unfocus", "webview" ], - "dart.flutterSdkPath": ".fvm/versions/3.27.4" + "dart.flutterSdkPath": ".fvm/versions/3.38.6" } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_localizations.dart b/packages/smooth_app/lib/l10n/app_localizations.dart index 423034d42929..f652a8d88491 100644 --- a/packages/smooth_app/lib/l10n/app_localizations.dart +++ b/packages/smooth_app/lib/l10n/app_localizations.dart @@ -186,7 +186,8 @@ import 'app_localizations_zu.dart'; /// be consistent with the languages listed in the AppLocalizations.supportedLocales /// property. abstract class AppLocalizations { - AppLocalizations(String locale) : localeName = intl.Intl.canonicalizedLocale(locale.toString()); + AppLocalizations(String locale) + : localeName = intl.Intl.canonicalizedLocale(locale.toString()); final String localeName; @@ -194,7 +195,8 @@ abstract class AppLocalizations { return Localizations.of(context, AppLocalizations)!; } - static const LocalizationsDelegate delegate = _AppLocalizationsDelegate(); + static const LocalizationsDelegate delegate = + _AppLocalizationsDelegate(); /// A list of this localizations delegate along with the default localizations /// delegates. @@ -206,12 +208,13 @@ abstract class AppLocalizations { /// Additional delegates can be added by appending to this list in /// MaterialApp. This list does not have to be used at all if a custom list /// of delegates is preferred or required. - static const List> localizationsDelegates = >[ - delegate, - GlobalMaterialLocalizations.delegate, - GlobalCupertinoLocalizations.delegate, - GlobalWidgetsLocalizations.delegate, - ]; + static const List> localizationsDelegates = + >[ + delegate, + GlobalMaterialLocalizations.delegate, + GlobalCupertinoLocalizations.delegate, + GlobalWidgetsLocalizations.delegate, + ]; /// A list of this localizations delegate's supported locales. static const List supportedLocales = [ @@ -342,7 +345,7 @@ abstract class AppLocalizations { Locale('yo'), Locale('zh'), Locale('zh', 'CN'), - Locale('zu') + Locale('zu'), ]; /// No description provided for @app_name. @@ -1813,7 +1816,12 @@ abstract class AppLocalizations { /// /// In en, this message translates to: /// **'The minimum size in pixels for picture upload is {expectedMinWidth}x{expectedMinHeight}. The current picture is {actualWidth}x{actualHeight}.'** - String crop_page_too_small_image_message(int expectedMinWidth, int expectedMinHeight, int actualWidth, int actualHeight); + String crop_page_too_small_image_message( + int expectedMinWidth, + int expectedMinHeight, + int actualWidth, + int actualHeight, + ); /// Action being performed on the crop page /// @@ -2815,7 +2823,10 @@ abstract class AppLocalizations { /// /// In en, this message translates to: /// **'Do you want to change the currency from {previousCurrency} to {possibleCurrency}?'** - String currency_auto_change_message(String previousCurrency, String possibleCurrency); + String currency_auto_change_message( + String previousCurrency, + String possibleCurrency, + ); /// The label shown above a selector where the user can select their country (in the onboarding) /// @@ -3115,19 +3126,35 @@ abstract class AppLocalizations { /// /// In en, this message translates to: /// **'OS: Android (SDK Int: {sdkInt} / Release: {release})\nModel: {model}\nProduct: {product}\nDevice: {device}\nBrand:{brand}'** - String contact_form_body_android(int? sdkInt, String? release, String? model, String? product, String? device, String? brand); + String contact_form_body_android( + int? sdkInt, + String? release, + String? model, + String? product, + String? device, + String? brand, + ); /// Contact form content for iOS devices /// /// In en, this message translates to: /// **'OS: iOS ({version})\nModel: {model}\nLocalized model: {localizedModel}'** - String contact_form_body_ios(String? version, String? model, String? localizedModel); + String contact_form_body_ios( + String? version, + String? model, + String? localizedModel, + ); /// Contact form content /// /// In en, this message translates to: /// **'{osContent}\nApp version:{appVersion}\nApp build number:{appBuildNumber}\nApp package name:{appPackageName}'** - String contact_form_body(String osContent, String appVersion, String appBuildNumber, String appPackageName); + String contact_form_body( + String osContent, + String appVersion, + String appBuildNumber, + String appPackageName, + ); /// No description provided for @authorize_button_label. /// @@ -4951,7 +4978,12 @@ abstract class AppLocalizations { /// /// In en, this message translates to: /// **'Price: {price} / Store: \"{location}\" / Published on {date} by \"{user}\"'** - String prices_entry_accessibility_label(String price, String location, String date, String user); + String prices_entry_accessibility_label( + String price, + String location, + String date, + String user, + ); /// Button to open the proofs of a user /// @@ -5239,7 +5271,10 @@ abstract class AppLocalizations { /// /// In en, this message translates to: /// **'Your current currency is **{currency}**. Would you like to change it to **{newCurrency}**?'** - String prices_currency_change_proposal_message(String currency, String newCurrency); + String prices_currency_change_proposal_message( + String currency, + String newCurrency, + ); /// Button to approve the currency change /// @@ -5353,7 +5388,11 @@ abstract class AppLocalizations { /// /// In en, this message translates to: /// **'Download {count} more products\nAlready downloaded {downloaded} out of {totalSize}.'** - String product_search_button_download_more(int count, int downloaded, int totalSize); + String product_search_button_download_more( + int count, + int downloaded, + int totalSize, + ); /// This message will be displayed when a search is in progress. /// @@ -5653,7 +5692,9 @@ abstract class AppLocalizations { /// /// In en, this message translates to: /// **'Do you want the product\'s default language to be set to ‘{language}’?'** - String add_basic_details_product_name_change_main_language_text(String language); + String add_basic_details_product_name_change_main_language_text( + String language, + ); /// Title for the section with good examples /// @@ -9121,7 +9162,9 @@ abstract class AppLocalizations { /// /// In en, this message translates to: /// **'A score can\'t be computed for a product of type \"{productType}\".'** - String product_page_for_me_compatibility_score_unsupported(String productType); + String product_page_for_me_compatibility_score_unsupported( + String productType, + ); /// Button to order the attributes by importance in the For me tab on the product page /// @@ -10720,7 +10763,8 @@ abstract class AppLocalizations { String get homepage_list_last_scanned_title; } -class _AppLocalizationsDelegate extends LocalizationsDelegate { +class _AppLocalizationsDelegate + extends LocalizationsDelegate { const _AppLocalizationsDelegate(); @override @@ -10729,164 +10773,420 @@ class _AppLocalizationsDelegate extends LocalizationsDelegate } @override - bool isSupported(Locale locale) => ['aa', 'af', 'ak', 'am', 'ar', 'as', 'az', 'be', 'bg', 'bm', 'bn', 'bo', 'br', 'bs', 'ca', 'ce', 'co', 'cs', 'cv', 'cy', 'da', 'de', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fa', 'fi', 'fo', 'fr', 'ga', 'gd', 'gl', 'gu', 'ha', 'he', 'hi', 'hr', 'ht', 'hu', 'hy', 'id', 'ii', 'is', 'it', 'iu', 'ja', 'jv', 'ka', 'kk', 'km', 'kn', 'ko', 'ku', 'kw', 'ky', 'la', 'lb', 'lo', 'lt', 'lv', 'mg', 'mi', 'ml', 'mn', 'mr', 'ms', 'mt', 'my', 'nb', 'ne', 'nl', 'nn', 'no', 'nr', 'oc', 'or', 'pa', 'pl', 'pt', 'qu', 'rm', 'ro', 'ru', 'sa', 'sc', 'sd', 'sg', 'si', 'sk', 'sl', 'sn', 'so', 'sq', 'sr', 'ss', 'st', 'sv', 'sw', 'ta', 'te', 'tg', 'th', 'ti', 'tl', 'tn', 'tr', 'ts', 'tt', 'tw', 'ty', 'ug', 'uk', 'ur', 'uz', 've', 'vi', 'wa', 'wo', 'xh', 'yi', 'yo', 'zh', 'zu'].contains(locale.languageCode); + bool isSupported(Locale locale) => [ + 'aa', + 'af', + 'ak', + 'am', + 'ar', + 'as', + 'az', + 'be', + 'bg', + 'bm', + 'bn', + 'bo', + 'br', + 'bs', + 'ca', + 'ce', + 'co', + 'cs', + 'cv', + 'cy', + 'da', + 'de', + 'el', + 'en', + 'eo', + 'es', + 'et', + 'eu', + 'fa', + 'fi', + 'fo', + 'fr', + 'ga', + 'gd', + 'gl', + 'gu', + 'ha', + 'he', + 'hi', + 'hr', + 'ht', + 'hu', + 'hy', + 'id', + 'ii', + 'is', + 'it', + 'iu', + 'ja', + 'jv', + 'ka', + 'kk', + 'km', + 'kn', + 'ko', + 'ku', + 'kw', + 'ky', + 'la', + 'lb', + 'lo', + 'lt', + 'lv', + 'mg', + 'mi', + 'ml', + 'mn', + 'mr', + 'ms', + 'mt', + 'my', + 'nb', + 'ne', + 'nl', + 'nn', + 'no', + 'nr', + 'oc', + 'or', + 'pa', + 'pl', + 'pt', + 'qu', + 'rm', + 'ro', + 'ru', + 'sa', + 'sc', + 'sd', + 'sg', + 'si', + 'sk', + 'sl', + 'sn', + 'so', + 'sq', + 'sr', + 'ss', + 'st', + 'sv', + 'sw', + 'ta', + 'te', + 'tg', + 'th', + 'ti', + 'tl', + 'tn', + 'tr', + 'ts', + 'tt', + 'tw', + 'ty', + 'ug', + 'uk', + 'ur', + 'uz', + 've', + 'vi', + 'wa', + 'wo', + 'xh', + 'yi', + 'yo', + 'zh', + 'zu', + ].contains(locale.languageCode); @override bool shouldReload(_AppLocalizationsDelegate old) => false; } AppLocalizations lookupAppLocalizations(Locale locale) { - // Lookup logic when language+country codes are specified. switch (locale.languageCode) { - case 'pt': { - switch (locale.countryCode) { - case 'BR': return AppLocalizationsPtBr(); - } - break; - } - case 'zh': { - switch (locale.countryCode) { - case 'CN': return AppLocalizationsZhCn(); - } - break; - } + case 'pt': + { + switch (locale.countryCode) { + case 'BR': + return AppLocalizationsPtBr(); + } + break; + } + case 'zh': + { + switch (locale.countryCode) { + case 'CN': + return AppLocalizationsZhCn(); + } + break; + } } // Lookup logic when only language code is specified. switch (locale.languageCode) { - case 'aa': return AppLocalizationsAa(); - case 'af': return AppLocalizationsAf(); - case 'ak': return AppLocalizationsAk(); - case 'am': return AppLocalizationsAm(); - case 'ar': return AppLocalizationsAr(); - case 'as': return AppLocalizationsAs(); - case 'az': return AppLocalizationsAz(); - case 'be': return AppLocalizationsBe(); - case 'bg': return AppLocalizationsBg(); - case 'bm': return AppLocalizationsBm(); - case 'bn': return AppLocalizationsBn(); - case 'bo': return AppLocalizationsBo(); - case 'br': return AppLocalizationsBr(); - case 'bs': return AppLocalizationsBs(); - case 'ca': return AppLocalizationsCa(); - case 'ce': return AppLocalizationsCe(); - case 'co': return AppLocalizationsCo(); - case 'cs': return AppLocalizationsCs(); - case 'cv': return AppLocalizationsCv(); - case 'cy': return AppLocalizationsCy(); - case 'da': return AppLocalizationsDa(); - case 'de': return AppLocalizationsDe(); - case 'el': return AppLocalizationsEl(); - case 'en': return AppLocalizationsEn(); - case 'eo': return AppLocalizationsEo(); - case 'es': return AppLocalizationsEs(); - case 'et': return AppLocalizationsEt(); - case 'eu': return AppLocalizationsEu(); - case 'fa': return AppLocalizationsFa(); - case 'fi': return AppLocalizationsFi(); - case 'fo': return AppLocalizationsFo(); - case 'fr': return AppLocalizationsFr(); - case 'ga': return AppLocalizationsGa(); - case 'gd': return AppLocalizationsGd(); - case 'gl': return AppLocalizationsGl(); - case 'gu': return AppLocalizationsGu(); - case 'ha': return AppLocalizationsHa(); - case 'he': return AppLocalizationsHe(); - case 'hi': return AppLocalizationsHi(); - case 'hr': return AppLocalizationsHr(); - case 'ht': return AppLocalizationsHt(); - case 'hu': return AppLocalizationsHu(); - case 'hy': return AppLocalizationsHy(); - case 'id': return AppLocalizationsId(); - case 'ii': return AppLocalizationsIi(); - case 'is': return AppLocalizationsIs(); - case 'it': return AppLocalizationsIt(); - case 'iu': return AppLocalizationsIu(); - case 'ja': return AppLocalizationsJa(); - case 'jv': return AppLocalizationsJv(); - case 'ka': return AppLocalizationsKa(); - case 'kk': return AppLocalizationsKk(); - case 'km': return AppLocalizationsKm(); - case 'kn': return AppLocalizationsKn(); - case 'ko': return AppLocalizationsKo(); - case 'ku': return AppLocalizationsKu(); - case 'kw': return AppLocalizationsKw(); - case 'ky': return AppLocalizationsKy(); - case 'la': return AppLocalizationsLa(); - case 'lb': return AppLocalizationsLb(); - case 'lo': return AppLocalizationsLo(); - case 'lt': return AppLocalizationsLt(); - case 'lv': return AppLocalizationsLv(); - case 'mg': return AppLocalizationsMg(); - case 'mi': return AppLocalizationsMi(); - case 'ml': return AppLocalizationsMl(); - case 'mn': return AppLocalizationsMn(); - case 'mr': return AppLocalizationsMr(); - case 'ms': return AppLocalizationsMs(); - case 'mt': return AppLocalizationsMt(); - case 'my': return AppLocalizationsMy(); - case 'nb': return AppLocalizationsNb(); - case 'ne': return AppLocalizationsNe(); - case 'nl': return AppLocalizationsNl(); - case 'nn': return AppLocalizationsNn(); - case 'no': return AppLocalizationsNo(); - case 'nr': return AppLocalizationsNr(); - case 'oc': return AppLocalizationsOc(); - case 'or': return AppLocalizationsOr(); - case 'pa': return AppLocalizationsPa(); - case 'pl': return AppLocalizationsPl(); - case 'pt': return AppLocalizationsPt(); - case 'qu': return AppLocalizationsQu(); - case 'rm': return AppLocalizationsRm(); - case 'ro': return AppLocalizationsRo(); - case 'ru': return AppLocalizationsRu(); - case 'sa': return AppLocalizationsSa(); - case 'sc': return AppLocalizationsSc(); - case 'sd': return AppLocalizationsSd(); - case 'sg': return AppLocalizationsSg(); - case 'si': return AppLocalizationsSi(); - case 'sk': return AppLocalizationsSk(); - case 'sl': return AppLocalizationsSl(); - case 'sn': return AppLocalizationsSn(); - case 'so': return AppLocalizationsSo(); - case 'sq': return AppLocalizationsSq(); - case 'sr': return AppLocalizationsSr(); - case 'ss': return AppLocalizationsSs(); - case 'st': return AppLocalizationsSt(); - case 'sv': return AppLocalizationsSv(); - case 'sw': return AppLocalizationsSw(); - case 'ta': return AppLocalizationsTa(); - case 'te': return AppLocalizationsTe(); - case 'tg': return AppLocalizationsTg(); - case 'th': return AppLocalizationsTh(); - case 'ti': return AppLocalizationsTi(); - case 'tl': return AppLocalizationsTl(); - case 'tn': return AppLocalizationsTn(); - case 'tr': return AppLocalizationsTr(); - case 'ts': return AppLocalizationsTs(); - case 'tt': return AppLocalizationsTt(); - case 'tw': return AppLocalizationsTw(); - case 'ty': return AppLocalizationsTy(); - case 'ug': return AppLocalizationsUg(); - case 'uk': return AppLocalizationsUk(); - case 'ur': return AppLocalizationsUr(); - case 'uz': return AppLocalizationsUz(); - case 've': return AppLocalizationsVe(); - case 'vi': return AppLocalizationsVi(); - case 'wa': return AppLocalizationsWa(); - case 'wo': return AppLocalizationsWo(); - case 'xh': return AppLocalizationsXh(); - case 'yi': return AppLocalizationsYi(); - case 'yo': return AppLocalizationsYo(); - case 'zh': return AppLocalizationsZh(); - case 'zu': return AppLocalizationsZu(); + case 'aa': + return AppLocalizationsAa(); + case 'af': + return AppLocalizationsAf(); + case 'ak': + return AppLocalizationsAk(); + case 'am': + return AppLocalizationsAm(); + case 'ar': + return AppLocalizationsAr(); + case 'as': + return AppLocalizationsAs(); + case 'az': + return AppLocalizationsAz(); + case 'be': + return AppLocalizationsBe(); + case 'bg': + return AppLocalizationsBg(); + case 'bm': + return AppLocalizationsBm(); + case 'bn': + return AppLocalizationsBn(); + case 'bo': + return AppLocalizationsBo(); + case 'br': + return AppLocalizationsBr(); + case 'bs': + return AppLocalizationsBs(); + case 'ca': + return AppLocalizationsCa(); + case 'ce': + return AppLocalizationsCe(); + case 'co': + return AppLocalizationsCo(); + case 'cs': + return AppLocalizationsCs(); + case 'cv': + return AppLocalizationsCv(); + case 'cy': + return AppLocalizationsCy(); + case 'da': + return AppLocalizationsDa(); + case 'de': + return AppLocalizationsDe(); + case 'el': + return AppLocalizationsEl(); + case 'en': + return AppLocalizationsEn(); + case 'eo': + return AppLocalizationsEo(); + case 'es': + return AppLocalizationsEs(); + case 'et': + return AppLocalizationsEt(); + case 'eu': + return AppLocalizationsEu(); + case 'fa': + return AppLocalizationsFa(); + case 'fi': + return AppLocalizationsFi(); + case 'fo': + return AppLocalizationsFo(); + case 'fr': + return AppLocalizationsFr(); + case 'ga': + return AppLocalizationsGa(); + case 'gd': + return AppLocalizationsGd(); + case 'gl': + return AppLocalizationsGl(); + case 'gu': + return AppLocalizationsGu(); + case 'ha': + return AppLocalizationsHa(); + case 'he': + return AppLocalizationsHe(); + case 'hi': + return AppLocalizationsHi(); + case 'hr': + return AppLocalizationsHr(); + case 'ht': + return AppLocalizationsHt(); + case 'hu': + return AppLocalizationsHu(); + case 'hy': + return AppLocalizationsHy(); + case 'id': + return AppLocalizationsId(); + case 'ii': + return AppLocalizationsIi(); + case 'is': + return AppLocalizationsIs(); + case 'it': + return AppLocalizationsIt(); + case 'iu': + return AppLocalizationsIu(); + case 'ja': + return AppLocalizationsJa(); + case 'jv': + return AppLocalizationsJv(); + case 'ka': + return AppLocalizationsKa(); + case 'kk': + return AppLocalizationsKk(); + case 'km': + return AppLocalizationsKm(); + case 'kn': + return AppLocalizationsKn(); + case 'ko': + return AppLocalizationsKo(); + case 'ku': + return AppLocalizationsKu(); + case 'kw': + return AppLocalizationsKw(); + case 'ky': + return AppLocalizationsKy(); + case 'la': + return AppLocalizationsLa(); + case 'lb': + return AppLocalizationsLb(); + case 'lo': + return AppLocalizationsLo(); + case 'lt': + return AppLocalizationsLt(); + case 'lv': + return AppLocalizationsLv(); + case 'mg': + return AppLocalizationsMg(); + case 'mi': + return AppLocalizationsMi(); + case 'ml': + return AppLocalizationsMl(); + case 'mn': + return AppLocalizationsMn(); + case 'mr': + return AppLocalizationsMr(); + case 'ms': + return AppLocalizationsMs(); + case 'mt': + return AppLocalizationsMt(); + case 'my': + return AppLocalizationsMy(); + case 'nb': + return AppLocalizationsNb(); + case 'ne': + return AppLocalizationsNe(); + case 'nl': + return AppLocalizationsNl(); + case 'nn': + return AppLocalizationsNn(); + case 'no': + return AppLocalizationsNo(); + case 'nr': + return AppLocalizationsNr(); + case 'oc': + return AppLocalizationsOc(); + case 'or': + return AppLocalizationsOr(); + case 'pa': + return AppLocalizationsPa(); + case 'pl': + return AppLocalizationsPl(); + case 'pt': + return AppLocalizationsPt(); + case 'qu': + return AppLocalizationsQu(); + case 'rm': + return AppLocalizationsRm(); + case 'ro': + return AppLocalizationsRo(); + case 'ru': + return AppLocalizationsRu(); + case 'sa': + return AppLocalizationsSa(); + case 'sc': + return AppLocalizationsSc(); + case 'sd': + return AppLocalizationsSd(); + case 'sg': + return AppLocalizationsSg(); + case 'si': + return AppLocalizationsSi(); + case 'sk': + return AppLocalizationsSk(); + case 'sl': + return AppLocalizationsSl(); + case 'sn': + return AppLocalizationsSn(); + case 'so': + return AppLocalizationsSo(); + case 'sq': + return AppLocalizationsSq(); + case 'sr': + return AppLocalizationsSr(); + case 'ss': + return AppLocalizationsSs(); + case 'st': + return AppLocalizationsSt(); + case 'sv': + return AppLocalizationsSv(); + case 'sw': + return AppLocalizationsSw(); + case 'ta': + return AppLocalizationsTa(); + case 'te': + return AppLocalizationsTe(); + case 'tg': + return AppLocalizationsTg(); + case 'th': + return AppLocalizationsTh(); + case 'ti': + return AppLocalizationsTi(); + case 'tl': + return AppLocalizationsTl(); + case 'tn': + return AppLocalizationsTn(); + case 'tr': + return AppLocalizationsTr(); + case 'ts': + return AppLocalizationsTs(); + case 'tt': + return AppLocalizationsTt(); + case 'tw': + return AppLocalizationsTw(); + case 'ty': + return AppLocalizationsTy(); + case 'ug': + return AppLocalizationsUg(); + case 'uk': + return AppLocalizationsUk(); + case 'ur': + return AppLocalizationsUr(); + case 'uz': + return AppLocalizationsUz(); + case 've': + return AppLocalizationsVe(); + case 'vi': + return AppLocalizationsVi(); + case 'wa': + return AppLocalizationsWa(); + case 'wo': + return AppLocalizationsWo(); + case 'xh': + return AppLocalizationsXh(); + case 'yi': + return AppLocalizationsYi(); + case 'yo': + return AppLocalizationsYo(); + case 'zh': + return AppLocalizationsZh(); + case 'zu': + return AppLocalizationsZu(); } throw FlutterError( 'AppLocalizations.delegate failed to load unsupported locale "$locale". This is likely ' 'an issue with the localizations generation tool. Please file an issue ' 'on GitHub with a reproducible sample app and the gen-l10n configuration ' - 'that was used.' + 'that was used.', ); } From 0f9343b71f00e222fdf14e3897579a6901a3f9c0 Mon Sep 17 00:00:00 2001 From: Kashaf Batool Date: Sat, 10 Jan 2026 01:04:44 -0500 Subject: [PATCH 2/3] feat: add Common Name field to basic details page --- packages/smooth_app/ios/Podfile.lock | 8 +++--- .../AppIcon.appiconset/Contents.json | 7 +++++ .../add_basic_details_page.dart | 26 ++++++++++++++++--- 3 files changed, 34 insertions(+), 7 deletions(-) create mode 100644 packages/smooth_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/packages/smooth_app/ios/Podfile.lock b/packages/smooth_app/ios/Podfile.lock index c4c39008bebd..25d40900b71f 100644 --- a/packages/smooth_app/ios/Podfile.lock +++ b/packages/smooth_app/ios/Podfile.lock @@ -143,9 +143,9 @@ PODS: - MTBBarcodeScanner - rive_native (0.0.1): - Flutter - - SDWebImage (5.21.4): - - SDWebImage/Core (= 5.21.4) - - SDWebImage/Core (5.21.4) + - SDWebImage (5.21.5): + - SDWebImage/Core (= 5.21.5) + - SDWebImage/Core (5.21.5) - SDWebImageWebPCoder (0.15.0): - libwebp (~> 1.0) - SDWebImage/Core (~> 5.17) @@ -324,7 +324,7 @@ SPEC CHECKSUMS: PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 qr_code_scanner: d77f94ecc9abf96d9b9b8fc04ef13f611e5a147a rive_native: fcea2a63d25e1a6417716ac1380e9667cf52ad74 - SDWebImage: d0184764be51240d49c761c37f53dd017e1ccaaf + SDWebImage: e9c98383c7572d713c1a0d7dd2783b10599b9838 SDWebImageWebPCoder: 0e06e365080397465cc73a7a9b472d8a3bd0f377 Sentry: b53951377b78e21a734f5dc8318e333dbfc682d7 sentry_flutter: 580133c878f86698e23bb5dd7217a3387c4b79b5 diff --git a/packages/smooth_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/packages/smooth_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 000000000000..94bc3d9f6332 --- /dev/null +++ b/packages/smooth_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,7 @@ +{ + "images" : [], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/packages/smooth_app/lib/pages/product/add_basic_details/add_basic_details_page.dart b/packages/smooth_app/lib/pages/product/add_basic_details/add_basic_details_page.dart index 0d0dc0fcbf77..f64ef13926d1 100644 --- a/packages/smooth_app/lib/pages/product/add_basic_details/add_basic_details_page.dart +++ b/packages/smooth_app/lib/pages/product/add_basic_details/add_basic_details_page.dart @@ -21,6 +21,7 @@ import 'package:smooth_app/pages/product/simple_input/simple_input_widget.dart'; import 'package:smooth_app/pages/text_field_helper.dart'; import 'package:smooth_app/query/product_query.dart'; import 'package:smooth_app/themes/smooth_theme_colors.dart'; +import 'package:smooth_app/generic_lib/widgets/smooth_text_form_field.dart'; import 'package:smooth_app/themes/theme_provider.dart'; import 'package:smooth_app/widgets/smooth_scaffold.dart'; import 'package:smooth_app/widgets/will_pop_scope.dart'; @@ -41,6 +42,7 @@ class AddBasicDetailsPage extends StatefulWidget { class _AddBasicDetailsPageState extends State { late final TextEditingController _brandsController; + late final TextEditingController _genericNameController; late final TextEditingControllerWithHistory _weightController; late final WillPopScope2Controller _willPopScope2Controller; @@ -62,6 +64,11 @@ class _AddBasicDetailsPageState extends State { _brandsHelper = SimpleInputPageBrandsHelper()..addListener(_onValueChanged); _brandsController = TextEditingController()..addListener(_onValueChanged); + + _genericNameController = TextEditingController( + text: _product.genericName ?? '', + )..addListener(_onValueChanged); + _productNameEditorProvider.addListener(_onValueChanged); _weightController = TextEditingControllerWithHistory( text: MultilingualHelper.getCleanText(_product.quantity ?? ''), @@ -117,6 +124,7 @@ class _AddBasicDetailsPageState extends State { void dispose() { _brandsController.dispose(); _weightController.dispose(); + _genericNameController.dispose(); _willPopScope2Controller.dispose(); super.dispose(); } @@ -151,6 +159,17 @@ class _AddBasicDetailsPageState extends State { _imageLanguagePreview = language; }), ), + + Padding( + padding: EdgeInsets.symmetric(vertical: _heightSpace), + child: SmoothTextFormField( + controller: _genericNameController, + type: TextFieldTypes.PLAIN_TEXT, + hintText: 'Common Name', + prefixIcon: const Icon(Icons.info_outline), + ), + ), + SizedBox(height: _heightSpace), _ProductBrandsInputWidget( textController: _brandsController, @@ -241,15 +260,16 @@ class _AddBasicDetailsPageState extends State { _weightController.isDifferentFromInitialValue || _brandsController.text.isNotEmpty || _brandsHelper.hasChanged() || - _productNameEditorProvider.hasChanged(); + _productNameEditorProvider.hasChanged() || + _genericNameController.text != (_product.genericName ?? ''); /// Returns a [Product] with the values from the text fields. Product? _getMinimalistProduct() { final Product result = Product(barcode: _product.barcode); bool hasChanged = false; - if (_weightController.isDifferentFromInitialValue) { - result.quantity = _weightController.text; + if (_genericNameController.text != (_product.genericName ?? '')) { + result.genericName = _genericNameController.text; hasChanged = true; } From 374ab1c09c806e88aa4af4cb18d7b14d372c6ed3 Mon Sep 17 00:00:00 2001 From: Kashaf Batool Date: Sat, 17 Jan 2026 22:52:36 -0500 Subject: [PATCH 3/3] setting up --- .../lib/pages/product/add_basic_details/project/Local-Link | 1 + 1 file changed, 1 insertion(+) create mode 160000 packages/smooth_app/lib/pages/product/add_basic_details/project/Local-Link diff --git a/packages/smooth_app/lib/pages/product/add_basic_details/project/Local-Link b/packages/smooth_app/lib/pages/product/add_basic_details/project/Local-Link new file mode 160000 index 000000000000..01281d2fa884 --- /dev/null +++ b/packages/smooth_app/lib/pages/product/add_basic_details/project/Local-Link @@ -0,0 +1 @@ +Subproject commit 01281d2fa884e82476b634616001f6b56018c4d4