kasy-cli 1.12.1 → 1.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/kasy.js +143 -7
- package/lib/commands/add.js +2 -2
- package/lib/commands/codemagic.js +11 -4
- package/lib/commands/deploy.js +3 -3
- package/lib/commands/favicon.js +115 -0
- package/lib/commands/icon.js +143 -0
- package/lib/commands/ios.js +20 -5
- package/lib/commands/new.js +8 -20
- package/lib/commands/remove.js +1 -1
- package/lib/commands/reset.js +287 -0
- package/lib/commands/run.js +24 -17
- package/lib/commands/splash.js +219 -0
- package/lib/commands/update.js +1 -1
- package/lib/scaffold/CHANGELOG.json +9 -0
- package/lib/scaffold/backends/api/patch/README.md +1 -1
- package/lib/scaffold/backends/api/patch/android/app/src/main/AndroidManifest.xml +1 -1
- package/lib/scaffold/backends/api/patch/lib/features/notifications/api/device_api.dart +53 -0
- package/lib/scaffold/backends/api/patch/lib/main.dart +29 -10
- package/lib/scaffold/backends/api/pubspec.yaml.tpl +11 -1
- package/lib/scaffold/backends/firebase/tokens.js +2 -2
- package/lib/scaffold/backends/supabase/edge-functions/send-push-notification/index.ts +8 -2
- package/lib/scaffold/backends/supabase/migrations/20240101000011_dedupe_device_tokens.sql +34 -0
- package/lib/scaffold/backends/supabase/patch/README.md +1 -1
- package/lib/scaffold/backends/supabase/patch/android/app/src/main/AndroidManifest.xml +1 -1
- package/lib/scaffold/backends/supabase/patch/lib/features/notifications/api/device_api.dart +43 -0
- package/lib/scaffold/backends/supabase/patch/lib/main.dart +29 -10
- package/lib/scaffold/backends/supabase/pubspec.yaml.tpl +11 -1
- package/lib/scaffold/features/README.md +15 -139
- package/lib/scaffold/shared/generator-utils.js +16 -15
- package/lib/utils/apple-release.js +85 -16
- package/lib/utils/checks.js +4 -105
- package/lib/utils/flutter-run.js +173 -0
- package/lib/utils/i18n.js +413 -0
- package/lib/utils/mobile-identity.js +35 -0
- package/lib/utils/ui.js +114 -0
- package/package.json +2 -3
- package/templates/firebase/README.en.md +1 -1
- package/templates/firebase/README.es.md +1 -1
- package/templates/firebase/README.md +1 -1
- package/templates/firebase/android/app/build.gradle.kts +10 -1
- package/templates/firebase/android/app/src/main/AndroidManifest.xml +1 -1
- package/templates/firebase/android/app/src/main/kotlin/com/aicrus/firebase/kit/MainActivity.kt +25 -1
- package/templates/firebase/android/app/src/main/kotlin/com/aicrus/firebase/kit/MyWidget.kt +160 -11
- package/templates/firebase/android/app/src/main/res/drawable/widget_add_button.xml +15 -0
- package/templates/firebase/android/app/src/main/res/drawable/widget_gradient_bg.xml +9 -0
- package/templates/firebase/android/app/src/main/res/drawable/widget_gradient_inner.xml +12 -0
- package/templates/firebase/android/app/src/main/res/drawable/widget_plan_pill_bg.xml +5 -0
- package/templates/firebase/android/app/src/main/res/drawable/widget_preview_image.xml +17 -0
- package/templates/firebase/android/app/src/main/res/drawable/widget_pro_pill_bg.xml +5 -0
- package/templates/firebase/android/app/src/main/res/drawable-hdpi/android12splash.png +0 -0
- package/templates/firebase/android/app/src/main/res/drawable-hdpi/splash.png +0 -0
- package/templates/firebase/android/app/src/main/res/drawable-mdpi/android12splash.png +0 -0
- package/templates/firebase/android/app/src/main/res/drawable-mdpi/splash.png +0 -0
- package/templates/firebase/android/app/src/main/res/drawable-night/background.png +0 -0
- package/templates/firebase/android/app/src/main/res/drawable-night/launch_background.xml +9 -0
- package/templates/firebase/android/app/src/main/res/drawable-night-hdpi/android12splash.png +0 -0
- package/templates/firebase/android/app/src/main/res/drawable-night-hdpi/splash.png +0 -0
- package/templates/firebase/android/app/src/main/res/drawable-night-mdpi/android12splash.png +0 -0
- package/templates/firebase/android/app/src/main/res/drawable-night-mdpi/splash.png +0 -0
- package/templates/firebase/android/app/src/main/res/drawable-night-v21/background.png +0 -0
- package/templates/firebase/android/app/src/main/res/drawable-night-v21/launch_background.xml +9 -0
- package/templates/firebase/android/app/src/main/res/drawable-night-xhdpi/android12splash.png +0 -0
- package/templates/firebase/android/app/src/main/res/drawable-night-xhdpi/splash.png +0 -0
- package/templates/firebase/android/app/src/main/res/drawable-night-xxhdpi/android12splash.png +0 -0
- package/templates/firebase/android/app/src/main/res/drawable-night-xxhdpi/splash.png +0 -0
- package/templates/firebase/android/app/src/main/res/drawable-night-xxxhdpi/android12splash.png +0 -0
- package/templates/firebase/android/app/src/main/res/drawable-night-xxxhdpi/splash.png +0 -0
- package/templates/firebase/android/app/src/main/res/drawable-xhdpi/android12splash.png +0 -0
- package/templates/firebase/android/app/src/main/res/drawable-xhdpi/splash.png +0 -0
- package/templates/firebase/android/app/src/main/res/drawable-xxhdpi/android12splash.png +0 -0
- package/templates/firebase/android/app/src/main/res/drawable-xxhdpi/splash.png +0 -0
- package/templates/firebase/android/app/src/main/res/drawable-xxxhdpi/android12splash.png +0 -0
- package/templates/firebase/android/app/src/main/res/drawable-xxxhdpi/splash.png +0 -0
- package/templates/firebase/android/app/src/main/res/layout/widget_loading.xml +8 -0
- package/templates/firebase/android/app/src/main/res/layout/widget_preview.xml +46 -0
- package/templates/firebase/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/templates/firebase/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/templates/firebase/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/templates/firebase/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/templates/firebase/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/templates/firebase/android/app/src/main/res/values-night-v31/styles.xml +2 -1
- package/templates/firebase/android/app/src/main/res/values-v31/styles.xml +1 -0
- package/templates/firebase/android/app/src/main/res/xml/mywidget_info.xml +9 -3
- package/templates/firebase/assets/images/favicon.png +0 -0
- package/templates/firebase/assets/images/icon.png +0 -0
- package/templates/firebase/assets/images/splash_logo_dark.png +0 -0
- package/templates/firebase/assets/images/splash_logo_light.png +0 -0
- package/templates/firebase/firestore.indexes.json +10 -0
- package/templates/firebase/functions/src/core/data/entities/user_device_entity.ts +3 -0
- package/templates/firebase/functions/src/core/data/repositories/user_device_repository.ts +17 -1
- package/templates/firebase/functions/src/index.ts +1 -0
- package/templates/firebase/functions/src/notifications/device_triggers.ts +58 -0
- package/templates/firebase/ios/HomeWidgetExtension/MyWidget.swift +116 -33
- package/templates/firebase/ios/Runner/AppDelegate.swift +17 -1
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/LaunchBackground.imageset/Contents.json +9 -8
- package/templates/firebase/ios/Runner/Assets.xcassets/LaunchBackground.imageset/darkbackground.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json +33 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImageDark.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImageDark@2x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImageDark@3x.png +0 -0
- package/templates/firebase/ios/Runner/Base.lproj/LaunchScreen.storyboard +1 -1
- package/templates/firebase/ios/Runner/Info.plist +2 -2
- package/templates/firebase/ios/Runner/es.lproj/InfoPlist.strings +1 -1
- package/templates/firebase/ios/Runner/pt-BR.lproj/InfoPlist.strings +1 -1
- package/templates/firebase/ios/Runner/pt.lproj/InfoPlist.strings +1 -1
- package/templates/firebase/lib/components/kasy_button.dart +8 -0
- package/templates/firebase/lib/core/bottom_menu/kasy_bottom_bar_factory.dart +18 -0
- package/templates/firebase/lib/core/home_widgets/home_widget_mywidget_service.dart +67 -19
- package/templates/firebase/lib/core/home_widgets/home_widget_service.dart +22 -8
- package/templates/firebase/lib/core/shared_preferences/shared_preferences.dart +16 -4
- package/templates/firebase/lib/core/states/components/maybeshow_component.dart +4 -8
- package/templates/firebase/lib/core/states/user_state_notifier.dart +13 -1
- package/templates/firebase/lib/core/theme/providers/theme_provider.dart +48 -24
- package/templates/firebase/lib/features/home/home_page.dart +0 -6
- package/templates/firebase/lib/features/notifications/api/device_api.dart +57 -0
- package/templates/firebase/lib/features/notifications/providers/models/notification.dart +11 -1
- package/templates/firebase/lib/features/notifications/repositories/device_repository.dart +9 -0
- package/templates/firebase/lib/features/notifications/repositories/notifications_repository.dart +1 -4
- package/templates/firebase/lib/features/notifications/shared/att_permission.dart +28 -8
- package/templates/firebase/lib/features/notifications/ui/notifications_page.dart +16 -1
- package/templates/firebase/lib/features/notifications/ui/widgets/empty_notifications.dart +44 -11
- package/templates/firebase/lib/features/onboarding/ui/components/onboarding_features.dart +4 -0
- package/templates/firebase/lib/features/onboarding/ui/onboarding_page.dart +1 -0
- package/templates/firebase/lib/features/onboarding/ui/widgets/onboarding_feature.dart +13 -0
- package/templates/firebase/lib/features/settings/settings_page.dart +158 -18
- package/templates/firebase/lib/features/settings/ui/components/admin/admin_bottom_sheet.dart +31 -29
- package/templates/firebase/lib/features/settings/ui/components/language_switcher.dart +21 -5
- package/templates/firebase/lib/i18n/en.i18n.json +10 -3
- package/templates/firebase/lib/i18n/es.i18n.json +10 -3
- package/templates/firebase/lib/i18n/pt.i18n.json +10 -3
- package/templates/firebase/lib/main.dart +29 -10
- package/templates/firebase/pubspec.yaml +10 -6
- package/templates/firebase/test/core/data/repositories/user_repository_test.dart +1 -1
- package/templates/firebase/test/features/notifications/data/device_api_fake.dart +9 -0
- package/templates/firebase/web/favicon.png +0 -0
- package/templates/firebase/web/icons/Icon-192.png +0 -0
- package/templates/firebase/web/icons/Icon-512.png +0 -0
- package/templates/firebase/web/icons/Icon-maskable-192.png +0 -0
- package/templates/firebase/web/icons/Icon-maskable-512.png +0 -0
- package/templates/firebase/web/index.html +50 -39
- package/templates/firebase/web/manifest.json +3 -3
- package/templates/firebase/web/splash/img/dark-1x.png +0 -0
- package/templates/firebase/web/splash/img/dark-2x.png +0 -0
- package/templates/firebase/web/splash/img/dark-3x.png +0 -0
- package/templates/firebase/web/splash/img/dark-4x.png +0 -0
- package/templates/firebase/web/splash/img/light-1x.png +0 -0
- package/templates/firebase/web/splash/img/light-2x.png +0 -0
- package/templates/firebase/web/splash/img/light-3x.png +0 -0
- package/templates/firebase/web/splash/img/light-4x.png +0 -0
- package/lib/scaffold/features/analytics/lib/core/data/api/analytics_api.dart +0 -124
- package/lib/scaffold/features/ci/.github/ISSUE_TEMPLATE/BUG.es.md +0 -35
- package/lib/scaffold/features/ci/.github/ISSUE_TEMPLATE/BUG.md +0 -35
- package/lib/scaffold/features/ci/.github/ISSUE_TEMPLATE/BUG.pt.md +0 -35
- package/lib/scaffold/features/ci/.github/ISSUE_TEMPLATE/feature_request.es.md +0 -12
- package/lib/scaffold/features/ci/.github/ISSUE_TEMPLATE/feature_request.md +0 -12
- package/lib/scaffold/features/ci/.github/ISSUE_TEMPLATE/feature_request.pt.md +0 -12
- package/lib/scaffold/features/ci/.github/PULL_REQUEST_TEMPLATE.es.md +0 -17
- package/lib/scaffold/features/ci/.github/PULL_REQUEST_TEMPLATE.md +0 -17
- package/lib/scaffold/features/ci/.github/PULL_REQUEST_TEMPLATE.pt.md +0 -17
- package/lib/scaffold/features/ci/.github/dependabot.yml +0 -16
- package/lib/scaffold/features/ci/.github/workflows/app.yml +0 -20
- package/lib/scaffold/features/ci/.gitlab/templates/deploy.yaml +0 -14
- package/lib/scaffold/features/ci/.gitlab/templates/dropbox.yaml +0 -19
- package/lib/scaffold/features/ci/.gitlab/templates/flutter.yaml +0 -163
- package/lib/scaffold/features/ci/.gitlab/templates/mailgun.yaml +0 -28
- package/lib/scaffold/features/ci/.gitlab-ci.yml +0 -37
- package/lib/scaffold/features/ci/codemagic.yaml +0 -157
- package/lib/scaffold/features/facebook/lib/core/data/api/tracking_api.dart +0 -111
- package/lib/scaffold/features/feedback/lib/features/feedbacks/api/entities/feature_request_entity.dart +0 -27
- package/lib/scaffold/features/feedback/lib/features/feedbacks/api/entities/feature_vote_entity.dart +0 -27
- package/lib/scaffold/features/feedback/lib/features/feedbacks/api/feature_request_api.dart +0 -50
- package/lib/scaffold/features/feedback/lib/features/feedbacks/api/feature_vote_api.dart +0 -79
- package/lib/scaffold/features/feedback/lib/features/feedbacks/models/feature_requests.dart +0 -48
- package/lib/scaffold/features/feedback/lib/features/feedbacks/models/feedback_state.dart +0 -42
- package/lib/scaffold/features/feedback/lib/features/feedbacks/providers/feedback_page_notifier.dart +0 -147
- package/lib/scaffold/features/feedback/lib/features/feedbacks/repositories/feature_request_repository.dart +0 -95
- package/lib/scaffold/features/feedback/lib/features/feedbacks/ui/component/add_feature_form.dart +0 -199
- package/lib/scaffold/features/feedback/lib/features/feedbacks/ui/feedback_page.dart +0 -175
- package/lib/scaffold/features/feedback/lib/features/feedbacks/ui/widgets/add_feature_button.dart +0 -76
- package/lib/scaffold/features/feedback/lib/features/feedbacks/ui/widgets/feature_card.dart +0 -279
- package/lib/scaffold/features/ios-release/.kasy/apple.env.example +0 -8
- package/lib/scaffold/features/ios-release/.kasy/codemagic.env.example +0 -7
- package/lib/scaffold/features/ios-release/docs/codemagic-release.en.md +0 -50
- package/lib/scaffold/features/ios-release/docs/codemagic-release.es.md +0 -50
- package/lib/scaffold/features/ios-release/docs/codemagic-release.pt.md +0 -50
- package/lib/scaffold/features/ios-release/docs/ios-release.en.md +0 -41
- package/lib/scaffold/features/ios-release/docs/ios-release.es.md +0 -41
- package/lib/scaffold/features/ios-release/docs/ios-release.pt.md +0 -41
- package/lib/scaffold/features/ios-release/scripts/bump-ios-version.js +0 -38
- package/lib/scaffold/features/ios-release/scripts/release-ios.sh +0 -137
- package/lib/scaffold/features/llm_chat/lib/features/llm_chat/llm_chat_page.dart +0 -301
- package/lib/scaffold/features/local_notifications/lib/features/local_reminder/providers/reminder_notifier.dart +0 -81
- package/lib/scaffold/features/local_notifications/lib/features/local_reminder/repositories/reminder_preferences.dart +0 -76
- package/lib/scaffold/features/local_notifications/lib/features/local_reminder/ui/reminder_page.dart +0 -282
- package/lib/scaffold/features/onboarding/lib/features/onboarding/api/entities/user_info_entity.dart +0 -24
- package/lib/scaffold/features/onboarding/lib/features/onboarding/api/user_infos_api.dart +0 -71
- package/lib/scaffold/features/onboarding/lib/features/onboarding/models/user_info.dart +0 -92
- package/lib/scaffold/features/onboarding/lib/features/onboarding/providers/onboarding_model.dart +0 -15
- package/lib/scaffold/features/onboarding/lib/features/onboarding/providers/onboarding_provider.dart +0 -78
- package/lib/scaffold/features/onboarding/lib/features/onboarding/repositories/user_infos_repository.dart +0 -29
- package/lib/scaffold/features/onboarding/lib/features/onboarding/ui/animations/page_transitions.dart +0 -30
- package/lib/scaffold/features/onboarding/lib/features/onboarding/ui/components/onboarding_att_setup.dart +0 -66
- package/lib/scaffold/features/onboarding/lib/features/onboarding/ui/components/onboarding_features.dart +0 -72
- package/lib/scaffold/features/onboarding/lib/features/onboarding/ui/components/onboarding_loader.dart +0 -92
- package/lib/scaffold/features/onboarding/lib/features/onboarding/ui/components/onboarding_notifications_setup.dart +0 -73
- package/lib/scaffold/features/onboarding/lib/features/onboarding/ui/components/onboarding_questions.dart +0 -89
- package/lib/scaffold/features/onboarding/lib/features/onboarding/ui/onboarding_page.dart +0 -94
- package/lib/scaffold/features/onboarding/lib/features/onboarding/ui/widgets/onboarding_background.dart +0 -80
- package/lib/scaffold/features/onboarding/lib/features/onboarding/ui/widgets/onboarding_feature.dart +0 -139
- package/lib/scaffold/features/onboarding/lib/features/onboarding/ui/widgets/onboarding_illustration_scaffold.dart +0 -110
- package/lib/scaffold/features/onboarding/lib/features/onboarding/ui/widgets/onboarding_progress.dart +0 -84
- package/lib/scaffold/features/onboarding/lib/features/onboarding/ui/widgets/onboarding_radio_question.dart +0 -173
- package/lib/scaffold/features/onboarding/lib/features/onboarding/ui/widgets/onboarding_reassurance.dart +0 -45
- package/lib/scaffold/features/onboarding/lib/features/onboarding/ui/widgets/onboarding_sticky_footer.dart +0 -77
- package/lib/scaffold/features/onboarding/lib/features/onboarding/ui/widgets/selectable_row_tile.dart +0 -392
- package/lib/scaffold/features/revenuecat/lib/core/data/api/tracking_api.dart +0 -116
- package/lib/scaffold/features/revenuecat/lib/core/data/models/subscription.dart +0 -322
- package/lib/scaffold/features/revenuecat/lib/core/home_widgets/home_widget_background_task.dart +0 -41
- package/lib/scaffold/features/revenuecat/lib/core/states/user_state_notifier.dart +0 -305
- package/templates/firebase/assets/images/app_icon.png +0 -0
- package/templates/firebase/assets/images/onboarding/img1.jpg +0 -0
- package/templates/firebase/assets/images/onboarding/onboarding.png +0 -0
- package/templates/firebase/assets/images/splashscreen.png +0 -0
- package/templates/firebase/lib/core/states/components/maybe_ask_biometric_setup.dart +0 -88
- package/templates/firebase/lib/features/notifications/shared/notification_permission_bottom_sheet.dart +0 -144
|
@@ -175,7 +175,8 @@
|
|
|
175
175
|
"title": "Módulo de suscripciones",
|
|
176
176
|
"description": "Gestiona suscripciones con paywalls listos para usar",
|
|
177
177
|
"action": "Continuar",
|
|
178
|
-
"skip": "Omitir"
|
|
178
|
+
"skip": "Omitir",
|
|
179
|
+
"login": "¿Ya tienes cuenta? Iniciar sesión"
|
|
179
180
|
},
|
|
180
181
|
"feature_2": {
|
|
181
182
|
"title": "Módulo de autenticación",
|
|
@@ -321,7 +322,10 @@
|
|
|
321
322
|
"cancel": "Cancelar"
|
|
322
323
|
},
|
|
323
324
|
"language_title": "Idiomas",
|
|
324
|
-
"theme_title": "
|
|
325
|
+
"theme_title": "Tema",
|
|
326
|
+
"theme_option_system": "Sistema",
|
|
327
|
+
"theme_option_light": "Claro",
|
|
328
|
+
"theme_option_dark": "Oscuro",
|
|
325
329
|
"haptic_feedback_title": "Feedback háptico",
|
|
326
330
|
"section_preferences_label": "PREFERENCIAS",
|
|
327
331
|
"section_security_label": "SEGURIDAD",
|
|
@@ -439,6 +443,7 @@
|
|
|
439
443
|
"group_yesterday": "Ayer",
|
|
440
444
|
"group_older": "Más antiguas",
|
|
441
445
|
"empty_cta": "Activar notificaciones",
|
|
446
|
+
"empty_cta_open_settings": "Abrir ajustes",
|
|
442
447
|
"delete_all": "Eliminar todo",
|
|
443
448
|
"delete_all_confirm_title": "¿Eliminar todas las notificaciones?",
|
|
444
449
|
"delete_all_confirm_message": "Esto eliminará todas las notificaciones de tu cuenta. Esta acción no se puede deshacer.",
|
|
@@ -523,8 +528,10 @@
|
|
|
523
528
|
"greeting_evening": "Buenas noches",
|
|
524
529
|
"title_with_name": "¡Hola, $name!",
|
|
525
530
|
"title_default": "¡Hola!",
|
|
531
|
+
"title_logged_out": "Te esperamos de vuelta",
|
|
526
532
|
"plan_free": "Plan gratuito",
|
|
527
|
-
"plan_pro": "PRO"
|
|
533
|
+
"plan_pro": "PRO",
|
|
534
|
+
"quote": "Siempre parece imposible hasta que se hace."
|
|
528
535
|
}
|
|
529
536
|
}
|
|
530
537
|
|
|
@@ -175,7 +175,8 @@
|
|
|
175
175
|
"title": "Módulo de assinaturas",
|
|
176
176
|
"description": "Gerencie assinaturas com paywalls prontos para usar",
|
|
177
177
|
"action": "Continuar",
|
|
178
|
-
"skip": "Pular"
|
|
178
|
+
"skip": "Pular",
|
|
179
|
+
"login": "Já tem conta? Entrar"
|
|
179
180
|
},
|
|
180
181
|
"feature_2": {
|
|
181
182
|
"title": "Módulo de autenticação",
|
|
@@ -321,7 +322,10 @@
|
|
|
321
322
|
"cancel": "Cancelar"
|
|
322
323
|
},
|
|
323
324
|
"language_title": "Idiomas",
|
|
324
|
-
"theme_title": "
|
|
325
|
+
"theme_title": "Tema",
|
|
326
|
+
"theme_option_system": "Sistema",
|
|
327
|
+
"theme_option_light": "Claro",
|
|
328
|
+
"theme_option_dark": "Escuro",
|
|
325
329
|
"haptic_feedback_title": "Feedback háptico",
|
|
326
330
|
"section_preferences_label": "PREFERÊNCIAS",
|
|
327
331
|
"section_security_label": "SEGURANÇA",
|
|
@@ -439,6 +443,7 @@
|
|
|
439
443
|
"group_yesterday": "Ontem",
|
|
440
444
|
"group_older": "Mais antigas",
|
|
441
445
|
"empty_cta": "Ativar notificações",
|
|
446
|
+
"empty_cta_open_settings": "Abrir configurações",
|
|
442
447
|
"delete_all": "Excluir tudo",
|
|
443
448
|
"delete_all_confirm_title": "Excluir todas as notificações?",
|
|
444
449
|
"delete_all_confirm_message": "Isso vai remover todas as notificações da sua conta. Essa ação não pode ser desfeita.",
|
|
@@ -523,8 +528,10 @@
|
|
|
523
528
|
"greeting_evening": "Boa noite",
|
|
524
529
|
"title_with_name": "Olá, $name!",
|
|
525
530
|
"title_default": "Olá!",
|
|
531
|
+
"title_logged_out": "Aguardamos seu retorno",
|
|
526
532
|
"plan_free": "Plano grátis",
|
|
527
|
-
"plan_pro": "PRO"
|
|
533
|
+
"plan_pro": "PRO",
|
|
534
|
+
"quote": "Sempre parece impossível, até que seja feito."
|
|
528
535
|
}
|
|
529
536
|
}
|
|
530
537
|
|
|
@@ -115,28 +115,47 @@ void run(SharedPreferences prefs) => runApp(
|
|
|
115
115
|
// mode: ThemeMode.dark,
|
|
116
116
|
// ),
|
|
117
117
|
// See ./docs/theme.md for more details
|
|
118
|
-
class MyApp extends
|
|
118
|
+
class MyApp extends ConsumerStatefulWidget {
|
|
119
119
|
final SharedPreferences sharedPreferences;
|
|
120
120
|
|
|
121
121
|
const MyApp({super.key, required this.sharedPreferences});
|
|
122
122
|
|
|
123
|
+
@override
|
|
124
|
+
ConsumerState<MyApp> createState() => _MyAppState();
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
class _MyAppState extends ConsumerState<MyApp> {
|
|
128
|
+
late final AppTheme _appTheme;
|
|
129
|
+
|
|
130
|
+
@override
|
|
131
|
+
void initState() {
|
|
132
|
+
super.initState();
|
|
133
|
+
_appTheme = AppTheme.uniform(
|
|
134
|
+
sharedPreferences: widget.sharedPreferences,
|
|
135
|
+
themeFactory: const UniversalThemeFactory(),
|
|
136
|
+
lightColors: KasyColors.light(),
|
|
137
|
+
darkColors: KasyColors.dark(),
|
|
138
|
+
textTheme: KasyTextTheme.build(),
|
|
139
|
+
defaultMode: ThemeMode.system,
|
|
140
|
+
);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
@override
|
|
144
|
+
void dispose() {
|
|
145
|
+
_appTheme.dispose();
|
|
146
|
+
super.dispose();
|
|
147
|
+
}
|
|
148
|
+
|
|
123
149
|
// This widget is the root of your application.
|
|
124
150
|
@override
|
|
125
|
-
Widget build(BuildContext context
|
|
151
|
+
Widget build(BuildContext context) {
|
|
126
152
|
ErrorWidget.builder = (FlutterErrorDetails details) {
|
|
127
153
|
return AppErrorWidget(error: details);
|
|
128
154
|
};
|
|
129
155
|
final goRouter = ref.watch(goRouterProvider);
|
|
130
156
|
|
|
131
157
|
return ThemeProvider(
|
|
132
|
-
notifier:
|
|
133
|
-
sharedPreferences: sharedPreferences,
|
|
134
|
-
themeFactory: const UniversalThemeFactory(),
|
|
135
|
-
lightColors: KasyColors.light(),
|
|
136
|
-
darkColors: KasyColors.dark(),
|
|
137
|
-
textTheme: KasyTextTheme.build(),
|
|
138
|
-
defaultMode: ThemeMode.light,
|
|
139
|
-
),
|
|
158
|
+
notifier: _appTheme,
|
|
140
159
|
child: Builder(
|
|
141
160
|
builder: (context) {
|
|
142
161
|
return WebDevicePreview.wrap(
|
|
@@ -16,7 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
|
|
16
16
|
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
|
17
17
|
# In Windows, build-name is used as the major, minor, and patch parts
|
|
18
18
|
# of the product and file versions while build-number is used as the build suffix.
|
|
19
|
-
version: 1.0.0+
|
|
19
|
+
version: 1.0.0+31
|
|
20
20
|
|
|
21
21
|
environment:
|
|
22
22
|
sdk: ^3.11.0
|
|
@@ -130,20 +130,24 @@ flutter_launcher_icons:
|
|
|
130
130
|
android: ic_launcher
|
|
131
131
|
ios: true
|
|
132
132
|
remove_alpha_ios: true
|
|
133
|
+
web:
|
|
134
|
+
generate: true
|
|
135
|
+
image_path: assets/images/favicon.png
|
|
136
|
+
background_color: "#01171f"
|
|
137
|
+
theme_color: "#01171f"
|
|
133
138
|
flutter_native_splash:
|
|
134
139
|
color: "#FFFFFF"
|
|
135
140
|
color_dark: "#000000"
|
|
136
141
|
fullscreen: true
|
|
137
|
-
preserve: true
|
|
138
142
|
ios: true
|
|
139
143
|
android: true
|
|
140
|
-
image: assets/images/
|
|
141
|
-
image_dark: assets/images/
|
|
144
|
+
image: assets/images/splash_logo_light.png
|
|
145
|
+
image_dark: assets/images/splash_logo_dark.png
|
|
142
146
|
android_12:
|
|
143
147
|
color: "#FFFFFF"
|
|
144
148
|
color_dark: "#000000"
|
|
145
|
-
image: assets/images/
|
|
146
|
-
image_dark: assets/images/
|
|
149
|
+
image: assets/images/splash_logo_light.png
|
|
150
|
+
image_dark: assets/images/splash_logo_dark.png
|
|
147
151
|
|
|
148
152
|
# To add assets to your application, add an assets section, like this:
|
|
149
153
|
# assets:
|
|
@@ -30,7 +30,7 @@ void main() {
|
|
|
30
30
|
await tester.runAsync(() async {
|
|
31
31
|
final userRepository = await init();
|
|
32
32
|
|
|
33
|
-
final file = await rootBundle.load('assets/images/
|
|
33
|
+
final file = await rootBundle.load('assets/images/splash_logo_light.png');
|
|
34
34
|
final bytes = file.buffer.asUint8List();
|
|
35
35
|
// if you want to create an XFile from bytes
|
|
36
36
|
// final xfile = XFile.fromData(bytes);
|
|
@@ -15,6 +15,15 @@ class FakeDeviceApi implements DeviceApi {
|
|
|
15
15
|
await Future.delayed(const Duration(milliseconds: 100));
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
+
@override
|
|
19
|
+
Future<void> touch(String userId, String installationId) async {}
|
|
20
|
+
|
|
21
|
+
@override
|
|
22
|
+
Future<void> cleanupStaleDevices(
|
|
23
|
+
String userId,
|
|
24
|
+
String currentInstallationId,
|
|
25
|
+
) async {}
|
|
26
|
+
|
|
18
27
|
@override
|
|
19
28
|
Future<DeviceEntity> get() {
|
|
20
29
|
return Future.value(
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -29,73 +29,82 @@
|
|
|
29
29
|
|
|
30
30
|
<title>kasy</title>
|
|
31
31
|
<link rel="manifest" href="manifest.json">
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport">
|
|
35
|
+
|
|
36
|
+
|
|
32
37
|
<style id="splash-screen-style">
|
|
33
38
|
html {
|
|
34
|
-
height: 100
|
|
39
|
+
height: 100%
|
|
35
40
|
}
|
|
36
41
|
|
|
37
42
|
body {
|
|
38
43
|
margin: 0;
|
|
39
44
|
min-height: 100%;
|
|
40
45
|
background-color: #FFFFFF;
|
|
46
|
+
background-size: 100% 100%;
|
|
41
47
|
}
|
|
42
48
|
|
|
43
|
-
|
|
44
|
-
|
|
49
|
+
.center {
|
|
50
|
+
margin: 0;
|
|
51
|
+
position: absolute;
|
|
52
|
+
top: 50%;
|
|
53
|
+
left: 50%;
|
|
54
|
+
-ms-transform: translate(-50%, -50%);
|
|
55
|
+
transform: translate(-50%, -50%);
|
|
45
56
|
}
|
|
46
57
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
align-items: center;
|
|
52
|
-
justify-content: center;
|
|
53
|
-
background-color: #FFFFFF;
|
|
54
|
-
transition: opacity 0.35s ease;
|
|
55
|
-
z-index: 9999;
|
|
58
|
+
.contain {
|
|
59
|
+
display:block;
|
|
60
|
+
width:100%; height:100%;
|
|
61
|
+
object-fit: contain;
|
|
56
62
|
}
|
|
57
63
|
|
|
58
|
-
|
|
59
|
-
|
|
64
|
+
.stretch {
|
|
65
|
+
display:block;
|
|
66
|
+
width:100%; height:100%;
|
|
60
67
|
}
|
|
61
68
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
height:
|
|
65
|
-
object-fit:
|
|
69
|
+
.cover {
|
|
70
|
+
display:block;
|
|
71
|
+
width:100%; height:100%;
|
|
72
|
+
object-fit: cover;
|
|
66
73
|
}
|
|
67
74
|
|
|
68
|
-
.
|
|
69
|
-
margin: 0;
|
|
75
|
+
.bottom {
|
|
70
76
|
position: absolute;
|
|
71
|
-
|
|
77
|
+
bottom: 0;
|
|
72
78
|
left: 50%;
|
|
73
|
-
-ms-transform: translate(-50%,
|
|
74
|
-
transform: translate(-50%,
|
|
79
|
+
-ms-transform: translate(-50%, 0);
|
|
80
|
+
transform: translate(-50%, 0);
|
|
75
81
|
}
|
|
76
82
|
|
|
77
|
-
.
|
|
78
|
-
|
|
79
|
-
|
|
83
|
+
.bottomLeft {
|
|
84
|
+
position: absolute;
|
|
85
|
+
bottom: 0;
|
|
86
|
+
left: 0;
|
|
87
|
+
}
|
|
80
88
|
|
|
81
|
-
.
|
|
82
|
-
|
|
83
|
-
|
|
89
|
+
.bottomRight {
|
|
90
|
+
position: absolute;
|
|
91
|
+
bottom: 0;
|
|
92
|
+
right: 0;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
@media (prefers-color-scheme: dark) {
|
|
96
|
+
body {
|
|
97
|
+
background-color: #000000;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
84
100
|
</style>
|
|
85
101
|
<script id="splash-screen-script">
|
|
86
102
|
function removeSplashFromWeb() {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
setTimeout(function() {
|
|
91
|
-
splash.remove();
|
|
92
|
-
document.getElementById("splash-branding")?.remove();
|
|
93
|
-
document.body.style.background = "transparent";
|
|
94
|
-
}, 380);
|
|
95
|
-
}
|
|
103
|
+
document.getElementById("splash")?.remove();
|
|
104
|
+
document.getElementById("splash-branding")?.remove();
|
|
105
|
+
document.body.style.background = "transparent";
|
|
96
106
|
}
|
|
97
107
|
</script>
|
|
98
|
-
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport">
|
|
99
108
|
</head>
|
|
100
109
|
<body>
|
|
101
110
|
<picture id="splash">
|
|
@@ -103,6 +112,8 @@
|
|
|
103
112
|
<source srcset="splash/img/dark-1x.png 1x, splash/img/dark-2x.png 2x, splash/img/dark-3x.png 3x, splash/img/dark-4x.png 4x" media="(prefers-color-scheme: dark)">
|
|
104
113
|
<img class="center" aria-hidden="true" src="splash/img/light-1x.png" alt="">
|
|
105
114
|
</picture>
|
|
115
|
+
|
|
116
|
+
|
|
106
117
|
<script src="flutter_bootstrap.js" async=""></script>
|
|
107
118
|
<script src="./local_notifications.js"></script>
|
|
108
119
|
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
"short_name": "kasy",
|
|
4
4
|
"start_url": ".",
|
|
5
5
|
"display": "standalone",
|
|
6
|
-
"background_color": "#
|
|
7
|
-
"theme_color": "#
|
|
6
|
+
"background_color": "#01171f",
|
|
7
|
+
"theme_color": "#01171f",
|
|
8
8
|
"description": "A new Flutter project.",
|
|
9
9
|
"orientation": "portrait-primary",
|
|
10
10
|
"prefer_related_applications": false,
|
|
@@ -32,4 +32,4 @@
|
|
|
32
32
|
"purpose": "maskable"
|
|
33
33
|
}
|
|
34
34
|
]
|
|
35
|
-
}
|
|
35
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
import 'package:flutter/material.dart';
|
|
2
|
-
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
|
3
|
-
import 'package:mixpanel_flutter/mixpanel_flutter.dart';
|
|
4
|
-
import 'package:kasy_kit/core/data/models/user.dart';
|
|
5
|
-
import 'package:kasy_kit/core/initializer/onstart_service.dart';
|
|
6
|
-
import 'package:kasy_kit/environnements.dart';
|
|
7
|
-
|
|
8
|
-
final analyticsApiProvider = Provider<AnalyticsApi>(
|
|
9
|
-
(ref) => MixpanelAnalyticsApi.instance(),
|
|
10
|
-
|
|
11
|
-
);
|
|
12
|
-
|
|
13
|
-
abstract class AnalyticsApi implements OnStartService {
|
|
14
|
-
/// Log an event to your analytics platform
|
|
15
|
-
Future<void> logEvent(String name, Map<String, dynamic> params);
|
|
16
|
-
|
|
17
|
-
/// Log a signout event to your analytics platform
|
|
18
|
-
Future<void> logSignout();
|
|
19
|
-
|
|
20
|
-
/// Identify a user to your analytics platform
|
|
21
|
-
Future<void> identify(User user);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
class MixpanelAnalyticsApi implements AnalyticsApi {
|
|
26
|
-
final Environment environment;
|
|
27
|
-
Mixpanel? mixpanel;
|
|
28
|
-
MixpanelAnalyticsApi._({
|
|
29
|
-
required this.environment,
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
static MixpanelAnalyticsApi? _instance;
|
|
33
|
-
|
|
34
|
-
factory MixpanelAnalyticsApi.instance() {
|
|
35
|
-
return _instance ??= MixpanelAnalyticsApi._(
|
|
36
|
-
environment: Environment.fromEnv(),
|
|
37
|
-
);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
@override
|
|
41
|
-
Future<void> init() async {
|
|
42
|
-
if (environment.mixpanelToken == null ||
|
|
43
|
-
environment.mixpanelToken!.isEmpty) {
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
try {
|
|
47
|
-
mixpanel = await Mixpanel.init(
|
|
48
|
-
environment.mixpanelToken!,
|
|
49
|
-
trackAutomaticEvents: true,
|
|
50
|
-
);
|
|
51
|
-
} catch (e, s) {
|
|
52
|
-
debugPrint('Error initializing Mixpanel: $e\n$s');
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
@override
|
|
57
|
-
Future<void> logEvent(String name, Map<String, dynamic> params) async {
|
|
58
|
-
mixpanel?.track(name, properties: params);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
@override
|
|
62
|
-
Future<void> logSignout() async {
|
|
63
|
-
mixpanel?.reset();
|
|
64
|
-
mixpanel?.track('logout');
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
@override
|
|
68
|
-
Future<void> identify(User user) async {
|
|
69
|
-
mixpanel?.track('login');
|
|
70
|
-
final userId = user.idOrNull;
|
|
71
|
-
if (userId != null) {
|
|
72
|
-
mixpanel?.identify(userId);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
class AnalyticsObserver extends RouteObserver<ModalRoute<dynamic>> {
|
|
81
|
-
final AnalyticsApi analyticsApi;
|
|
82
|
-
final String? prefix;
|
|
83
|
-
|
|
84
|
-
AnalyticsObserver({
|
|
85
|
-
required this.analyticsApi,
|
|
86
|
-
this.prefix,
|
|
87
|
-
});
|
|
88
|
-
|
|
89
|
-
@override
|
|
90
|
-
void didPush(Route<dynamic> route, Route<dynamic>? previousRoute) {
|
|
91
|
-
// debugPrint('didPush $prefix${route.settings.name} ');
|
|
92
|
-
if (route.settings.name != null && prefix != null) {
|
|
93
|
-
analyticsApi.logEvent('$prefix${route.settings.name}', {});
|
|
94
|
-
} else if (route.settings.name != null && prefix == null) {
|
|
95
|
-
analyticsApi.logEvent('${route.settings.name}', {});
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
@override
|
|
100
|
-
void didReplace({Route<dynamic>? newRoute, Route<dynamic>? oldRoute}) {
|
|
101
|
-
// debugPrint('didReplace ${newRoute?.settings.name}');
|
|
102
|
-
if (newRoute?.settings.name != null && prefix != null) {
|
|
103
|
-
analyticsApi.logEvent('$prefix${newRoute!.settings.name!}', {});
|
|
104
|
-
} else if (newRoute?.settings.name != null && prefix == null) {
|
|
105
|
-
analyticsApi.logEvent(newRoute!.settings.name!, {});
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
@override
|
|
110
|
-
void didPop(Route<dynamic> route, Route<dynamic>? previousRoute) {}
|
|
111
|
-
|
|
112
|
-
@override
|
|
113
|
-
void didRemove(Route<dynamic> route, Route<dynamic>? previousRoute) {}
|
|
114
|
-
|
|
115
|
-
@override
|
|
116
|
-
void didStartUserGesture(
|
|
117
|
-
Route<dynamic> route,
|
|
118
|
-
Route<dynamic>? previousRoute,
|
|
119
|
-
) {}
|
|
120
|
-
|
|
121
|
-
@override
|
|
122
|
-
void didStopUserGesture() {}
|
|
123
|
-
}
|
|
124
|
-
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Encontré un problema.
|
|
3
|
-
about: El proyecto no compila o hace crash...
|
|
4
|
-
title: ''
|
|
5
|
-
labels: ''
|
|
6
|
-
assignees: ''
|
|
7
|
-
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
## Pasos para reproducir
|
|
11
|
-
|
|
12
|
-
*Describe cómo reproducir el error, proporciona un dartpad o código simple para reproducir*
|
|
13
|
-
|
|
14
|
-
## Resultados esperados
|
|
15
|
-
|
|
16
|
-
*Qué debería pasar*
|
|
17
|
-
|
|
18
|
-
## Resultados reales
|
|
19
|
-
|
|
20
|
-
*Qué ves*
|
|
21
|
-
|
|
22
|
-
## Sobre tu dispositivo
|
|
23
|
-
|
|
24
|
-
| Marca | Modelo | SO |
|
|
25
|
-
| ------- | ----------- | --------- |
|
|
26
|
-
| *Apple* | *iPhone X* | *13.6.1* |
|
|
27
|
-
|
|
28
|
-
## Tu versión de Flutter
|
|
29
|
-
|
|
30
|
-
Ejecuta en la terminal:
|
|
31
|
-
```flutter --version```
|
|
32
|
-
|
|
33
|
-
*Pega el resultado aquí*
|
|
34
|
-
|
|
35
|
-
</details>
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: I found a problem.
|
|
3
|
-
about: The project doesn't build or crash...
|
|
4
|
-
title: ''
|
|
5
|
-
labels: ''
|
|
6
|
-
assignees: ''
|
|
7
|
-
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
## Steps to Reproduce
|
|
11
|
-
|
|
12
|
-
*Describe how to reproduce the error, provide a dartpad or simple code to reproduce*
|
|
13
|
-
|
|
14
|
-
## Expected results
|
|
15
|
-
|
|
16
|
-
*What it should be*
|
|
17
|
-
|
|
18
|
-
## Actual results
|
|
19
|
-
|
|
20
|
-
*What you see*
|
|
21
|
-
|
|
22
|
-
## About your device
|
|
23
|
-
|
|
24
|
-
| Brand | Model | OS |
|
|
25
|
-
| ------- | ----------- | --------- |
|
|
26
|
-
| *Apple* | *iPhone X* | *13.6.1* |
|
|
27
|
-
|
|
28
|
-
## Your flutter version
|
|
29
|
-
|
|
30
|
-
Run this in your command line
|
|
31
|
-
```flutter --version```
|
|
32
|
-
|
|
33
|
-
*Paste the result here*
|
|
34
|
-
|
|
35
|
-
</details>
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Encontrei um problema.
|
|
3
|
-
about: O projeto não compila ou dá crash...
|
|
4
|
-
title: ''
|
|
5
|
-
labels: ''
|
|
6
|
-
assignees: ''
|
|
7
|
-
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
## Passos para reproduzir
|
|
11
|
-
|
|
12
|
-
*Descreva como reproduzir o erro, forneça um dartpad ou código simples para reproduzir*
|
|
13
|
-
|
|
14
|
-
## Resultados esperados
|
|
15
|
-
|
|
16
|
-
*O que deveria acontecer*
|
|
17
|
-
|
|
18
|
-
## Resultados reais
|
|
19
|
-
|
|
20
|
-
*O que você vê*
|
|
21
|
-
|
|
22
|
-
## Sobre seu dispositivo
|
|
23
|
-
|
|
24
|
-
| Marca | Modelo | SO |
|
|
25
|
-
| ------- | ----------- | --------- |
|
|
26
|
-
| *Apple* | *iPhone X* | *13.6.1* |
|
|
27
|
-
|
|
28
|
-
## Sua versão do Flutter
|
|
29
|
-
|
|
30
|
-
Execute no terminal:
|
|
31
|
-
```flutter --version```
|
|
32
|
-
|
|
33
|
-
*Cole o resultado aqui*
|
|
34
|
-
|
|
35
|
-
</details>
|