6177214e-ce7c-49e3-99de-ff9721b26f63 — Commit ace3d34f

AuthorMikkel Thygesen<mikkelet@gmail.com>
Date2026-02-19 09:44:42 +0100
3672: permissions overview

Changed files

comwell_key_app/analysis_options.yaml              |  10 +-
 comwell_key_app/assets/translations/intl_da.arb    |  53 +--
 comwell_key_app/assets/translations/intl_en.arb    | 411 ++++++++++----------
 .../lib/.generated/assets/assets.gen.dart          |   5 +-
 .../connection_state_cubit.freezed.dart            |  42 +-
 .../lib/.generated/l10n/app_localizations.dart     | 424 ++++++++++----------
 .../lib/.generated/l10n/app_localizations_da.dart  |  59 +--
 .../lib/.generated/l10n/app_localizations_en.dart  | 428 +++++++++++----------
 .../bluetooth_permission_cubit.freezed.dart        |  55 ++-
 .../notification_permission_cubit.freezed.dart     |  20 +-
 .../screens/onboarding/onboarding_routes.g.dart    | 118 ++++++
 .../usage_tracking_permission_cubit.freezed.dart   |  46 +--
 .../bloc/permission_overview_state.freezed.dart    | 274 +++++++++++++
 .../permission_overview_route.g.dart               |  35 ++
 .../lib/check_in/bloc/check_in_state.dart          |   2 +-
 .../connection_state/connection_state_cubit.dart   |  28 +-
 .../connection_state_listener.dart                 |  28 +-
 .../domain/repositories/bluetooth_repository.dart  |  12 +-
 comwell_key_app/lib/overview/overview_route.dart   |   2 +-
 .../bluetooth/bluetooth_permission_cubit.dart      |  50 +--
 .../bluetooth/bluetooth_permission_screen.dart     |  41 +-
 .../internet/internet_disabled_screen.dart         |  39 ++
 .../internet/internet_permission_screen.dart       |  39 --
 .../notification_permission_cubit.dart             |   4 +-
 .../notification_permission_screen.dart            |   1 -
 .../screens/onboarding/onboarding_routes.dart      |  76 ++--
 .../usage_tracking_permission_cubit.dart           |   9 +-
 .../usage_tracking_permission_screen.dart          |   6 +-
 .../bloc/permission_overview_cubit.dart            |  21 +
 .../bloc/permission_overview_state.dart            |  14 +
 .../permission_overview_route.dart                 |  25 ++
 .../permission_overview_screen.dart                |  38 ++
 comwell_key_app/lib/routing/app_router.dart        |   7 +-
 comwell_key_app/lib/routing/app_routes.dart        |   1 +
 34 files changed, 1522 insertions(+), 901 deletions(-)

Diff

diff --git a/comwell_key_app/analysis_options.yaml b/comwell_key_app/analysis_options.yaml
index be67e61f..2872cfcd 100644
--- a/comwell_key_app/analysis_options.yaml
+++ b/comwell_key_app/analysis_options.yaml
@@ -22,14 +22,8 @@ linter:
# `// ignore_for_file: name_of_lint` syntax on the line or in the file
# producing the lint.
rules:
- # avoid_print: false # Uncomment to disable the `avoid_print` rule
- # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule
-
-analyzer:
- language:
- strict-casts: true
- strict-raw-types: true
- strict-inference: true
+ # avoid_print: false # Uncomment to disable the `avoid_print` rule
+ # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule
formatter:
trailing_commas: preserve
page_width: 100
diff --git a/comwell_key_app/assets/translations/intl_da.arb b/comwell_key_app/assets/translations/intl_da.arb
index bfd6a42f..e24ae20a 100644
--- a/comwell_key_app/assets/translations/intl_da.arb
+++ b/comwell_key_app/assets/translations/intl_da.arb
@@ -33,7 +33,7 @@
"overview_tabbar_past": "Tidligere",
"overview_tabbar_cancelled": "Annulleret",
"no_past_bookings_title": "Ingen tidligere ophold",
- "no_past_bookings_subtitle": "Du har ingen tidligere overnatninger på Comwell Hotels.",
+ "no_past_bookings_subtitle": "Der er ingen tidligere ophold på denne profil",
"no_cancelled_booking_title": "Ingen annullerede ophold",
"no_cancelled_booking_subtitle": "Du har ingen annullerede overnatninger hos os.",
"booking_annulled": "Annulleret",
@@ -44,9 +44,9 @@
"adult": "voksen",
"child": "barn",
"rooms": "Værelser",
- "prepare_room": "Klargør dit værelse",
- "jump_line_text": "Spring køen over med digital check-in",
- "overview_add_booking": "Find booking",
+ "prepare_room": "Spar tid ved check ind",
+ "jump_line_text": "Udfyld dine informationer",
+ "overview_add_booking": "Tilføj booking",
"open_room": "Åben værelse",
"hold_phone_to_door": "Hold tæt på læser",
"open_room_success": "Succes",
@@ -62,27 +62,27 @@
"profile_settings_error": "Der skete en fejl. Prøv igen.",
"delete_profile": "Slet profil",
"my_booking": "Min booking",
- "booking_reference": "Bookingreference",
- "check_in": "Check-in",
- "check_out": "Check-out",
+ "booking_reference": "Reservationsnummer",
+ "check_in": "Check ind",
+ "check_out": "Check ud",
"overview_page_check_in_physical_card_subtitle": "Gå i lobbyen og få udleveret din nøgle",
- "booking_details": "Booking",
+ "booking_details": "Min booking",
"number_of_guests": "Personer",
"booker": "Booker",
- "booking_date": "Booking dato",
+ "booking_date": "Dato",
"payment": "Betaling",
"payment_method": "Betalingsmetode",
"bill": "Kvittering",
"get_bill": "Hent kvittering",
- "your_last_name": "Dit efternavn",
- "find_booking": "Find booking",
+ "your_last_name": "Efternavn",
+ "find_booking": "Tilføj booking",
"choose_hotel": "Vælg hotel",
"hotels": "Hoteller",
"all": "Alle",
"zealand": "Sjælland",
"funen": "Fyn",
"jutland": "Jylland",
- "booking_not_found": "Booking blev ikke fundet",
+ "booking_not_found": "Bookingen blev ikke fundet",
"booking_not_found_subtitle": "Den booking du leder efter, kunne ikke findes. \nHar du skrevet oplysningerne korrekt?",
"booking_not_found_button": "Prøv igen",
"booking_not_found_cancel": "Annuller",
@@ -96,7 +96,7 @@
"delete_profile_cancel": "Annuller",
"check_in_loading_title": "Finder dit værelse...",
"check_in_room_found_title": "Værelse fundet...",
- "check_in_your_digital_card_title": "Dit Digitale Nøglekort",
+ "check_in_your_digital_card_title": "Dit Nøglekort",
"check_in_your_digital_card_subtitle": "Brug din mobiltelefon til at åbne værelset op. Du skal ikke længere checke ind i receptionen.",
"check_in_your_digital_card_nb": "NB: Ønsker du et fysisk nøglekort, kan du altid gå i receptionen og få det udleveret.",
"check_in_error_title": "Værelse ikke fundet...",
@@ -254,7 +254,7 @@
"not_shared": "Ikke delt",
"share_booking": "Del ophold",
"total_charge": "I alt til betaling",
- "early_checkin": "Tidlig check-in",
+ "early_checkin": "Tidlig check ind",
"paid": "BETALT",
"restaurant": "Restaurant",
"spa": "Spa",
@@ -275,8 +275,8 @@
"check_in_button_timer_seconds": "Om {s} sekunder",
"approve_conditions_title": "Jeg accepter ",
"approve_conditions_subtitle": "betingelserne",
- "up_sales_title": "Tidlig check-in",
- "up_sales_subtitle": "Med tidlig check-in kan du checke ind kl. 13.00 i stedet for kl. 15.00.",
+ "up_sales_title": "Tidlig check ind",
+ "up_sales_subtitle": "Med tidlig check ind kan du checke ind kl. 13.00 i stedet for kl. 15.00.",
"up_sales_popular": "POPULÆR",
"services": "Tjenester",
"up_sales_see_all": "Se alle",
@@ -307,15 +307,15 @@
"error_opening_website": "Kunne ikke åbne hjemmesiden. Prøv igen senere.",
"error_opening_website_title": "Fejl",
"room_selection": "Vælg værelse",
- "room_selection_subtitle": "Vælg et værelse til dit ophold",
- "choose_room": "Vælg dit værelse",
- "choose_room_subtitle": "Du skal vælge dét værelse du gerne vil sove på. Når du har valgt, kan du tildele de andre værelser til andre.",
+ "room_selection_subtitle": "Fordel gæsterne på de værelser, du har booket",
+ "choose_room": "Uddel værelser",
+ "choose_room_subtitle": "Du skal først vælge dit eget værelse. Derefter kan du uddele de andre værelser.",
"check_in_date": "Check-in dato",
"check_out_date": "Check-out dato",
"confirmation_number": "Bekræftelsesnummer",
"close": "Luk",
- "choose_room_confirmation_title": "Er du sikker på du vil vælge dette værelse?",
- "choose_room_confirmation_subtitle": "Du kan ikke fortryde dit valg. Resterende værelser skal fordeles.",
+ "choose_room_confirmation_title": "Er du sikker på, du vil vælge dette værelse?",
+ "choose_room_confirmation_subtitle": "Du kan ikke fortryde dit valg.",
"choose_room_confirmation_confirm": "Ja, vælg værelse",
"choose_room_confirmation_cancel": "Nej",
"my_room": "Mit værelse",
@@ -323,7 +323,7 @@
"share_room_page_title": "Del værelse",
"share_room_page_subtitle": "Her kan du dele dit værelse med en anden gæst og give dem adgang til bookinginformation, nøglekort og Concierge",
"share_room_page_button": "Del dit værelse",
- "addon": "Tilkøbt",
+ "addon": "Tilkøb",
"added_to_room": "Tilkøbt på værelse",
"force_update_title": "Opdater for at bruge appen",
"force_update_description": "Der er en nødvendig opdatering til appen, der gør at du skal opdatere for at kunne fortsætte.",
@@ -383,7 +383,7 @@
"payment_overview_send_comment_title": "Kommentar",
"payment_overview_send_receipt_hint": "Indsæt kommentar",
"key_page_room_prefix": "Værelse {roomNumber}",
- "please_accept_terms": "Accepter venligst vilkårene",
+ "please_accept_terms": "Accepterer vilkårene",
"received_shared_room_page_subtitle": "text {name}",
"received_shared_room_page_title": "",
"received_shared_booking_page_title": "",
@@ -395,10 +395,13 @@
"internet_disabled": "Internettet er afbrudt",
"please_enable_internet": "Tjek venligst din internetforbindelse",
"bluetooth_disabled": "Bluetooth er deaktiveret",
- "please_enable_bluetooth": "Aktivér venligst Bluetooth",
+ "please_enable_bluetooth": "Aktivér bluetooth",
"allow_usage_tracking": "Tillad brugssporing",
"usage_tracking_rationale": "Tillad venligst sporing af, hvordan du bruger appen",
"share_room_subtitle_mvp": "Vi arbejder i øjeblikket på at gøre det muligt at uddelegere værelser her i appen.",
"subtitle_mvp": "For nu kan vi desværre kun hjælpe dig via vores kundeservice. Ring os op, så finder vi en løsning. ",
- "find_booking_subtitle_mvp": "Vi arbejder i øjeblikket på at gøre det muligt at finde din booking digitalt her i appen."
+ "find_booking_subtitle_mvp": "Vi arbejder i øjeblikket på at gøre det muligt at finde din booking digitalt her i appen.",
+ "bluetooth_permission_title": "Tillad Bluetooth til for at låse dit værelse op",
+ "bluetooth_permission_description": "For at kunne åbne døren til dit hotelværelse skal du give tilladelse til at vi må bruge bluetooth på din telefon.",
+ "allow_bluetooth": "Tillad bluetooth"
}
\ No newline at end of file
diff --git a/comwell_key_app/assets/translations/intl_en.arb b/comwell_key_app/assets/translations/intl_en.arb
index b32c76f6..d9ab29a2 100644
--- a/comwell_key_app/assets/translations/intl_en.arb
+++ b/comwell_key_app/assets/translations/intl_en.arb
@@ -1,41 +1,41 @@
{
"@@locale": "en",
"generic_continue": "Continue",
- "generic_information_required": "This information is required",
+ "generic_information_required": "This field is required.",
"generic_confirm": "Confirm",
"generic_done": "Done",
"generic_ok": "OK",
- "generic_credit_card": "Credit Card",
+ "generic_credit_card": "Credit card",
"generic_apple_pay": "Apple Pay",
"generic_google_pay": "Google Pay",
- "generic_error": "An error occurred. Please try again later.",
- "welcome_headline": "Welcome at Comwell Hotels",
+ "generic_error": "An error occurred. Please try again.",
+ "welcome_headline": "Welcome to Comwell Hotels",
"welcome_button": "Continue",
- "welcome_error": "An error occurred. Please try again later.",
- "room_key": "Room key",
- "room_keys": "Room keys",
+ "welcome_error": "An error has occurred. Restart the app.",
+ "room_key": "Key",
+ "room_keys": "Keys",
"redeem_code": "Redeem code",
- "error_opening_door": "An error occurred",
+ "error_opening_door": "An error occurred.",
"try_again": "Try again",
- "room_key_description": "This is your room key",
+ "room_key_description": "This is your room key.",
"login_button": "Login",
"create_user_button": "Create new user",
"profile_settings_profile_menu": "Profile settings",
"payment_card_profile_menu": "Payment card",
"notifications_profile_menu": "Notifications",
- "logout_profile_menu": "Logout",
- "logout_dialog_title": "Do you want to log out of your profile",
+ "logout_profile_menu": "Log out",
+ "logout_dialog_title": "Do you want to log out of your profile?",
"cancel": "Cancel",
"name_cc_sign": "Name",
- "become_cc_member_title": "Join comwell club",
- "become_cc_member_subtitle": "Join and earn points every time you stay at a Comwell Hotel.",
+ "become_cc_member_title": "Become a member of comwell club",
+ "become_cc_member_subtitle": "Become a member and earn points every time you stay at a Comwell Hotel.",
"overview_tabbar_active": "Current",
- "overview_tabbar_past": "Past",
+ "overview_tabbar_past": "Previous",
"overview_tabbar_cancelled": "Cancelled",
- "no_past_bookings_title": "No past stays",
- "no_past_bookings_subtitle": "You have no past stays at Comwell Hotels.",
+ "no_past_bookings_title": "No previous stays",
+ "no_past_bookings_subtitle": "There are no previous stays on this profile.",
"no_cancelled_booking_title": "No cancelled stays",
- "no_cancelled_booking_subtitle": "You have no cancelled stays with us.",
+ "no_cancelled_booking_subtitle": "You have no canceled nights with us.",
"booking_annulled": "Cancelled",
"no_current_bookings": "No current bookings",
"no_current_bookings_subtitle": "You have no current bookings. Plan your next stay at Comwell.",
@@ -44,111 +44,111 @@
"adult": "adult",
"child": "child",
"rooms": "Rooms",
- "prepare_room": "Prepare your room",
- "jump_line_text": "Skip the line with digital check-in",
- "overview_add_booking": "Find booking",
+ "prepare_room": "Save time at check-in",
+ "jump_line_text": "Fill in your information",
+ "overview_add_booking": "Add booking",
"open_room": "Open room",
- "hold_phone_to_door": "Hold phone to door",
+ "hold_phone_to_door": "Keep close to the reader",
"open_room_success": "Success",
"open_room_error": "Try again!",
"profile_settings": "Profile settings",
"profile_settings_firstname": "First name",
- "profile_settings_lastname": "Last name",
+ "profile_settings_lastname": "Surname",
"profile_settings_email": "Email",
- "profile_settings_phone": "Phone",
+ "profile_settings_phone": "Telephone",
"profile_settings_address": "Address",
"profile_settings_birthday": "Birthday",
- "profile_settings_edit_password": "Edit password",
- "profile_settings_error": "An error occurred. Please try again later.",
+ "profile_settings_edit_password": "Change password",
+ "profile_settings_error": "An error occurred. Please try again.",
"delete_profile": "Delete profile",
"my_booking": "My booking",
- "booking_reference": "Bookingreference",
- "check_in": "Check-in",
- "check_out": "Check-out",
- "overview_page_check_in_physical_card_subtitle": "Go to the lobby to get your key",
- "booking_details": "Booking",
- "number_of_guests": "Number of guests",
- "booker": "Booker",
- "booking_date": "Booking date",
+ "booking_reference": "Reservation number",
+ "check_in": "Check in",
+ "check_out": "Check out",
+ "overview_page_check_in_physical_card_subtitle": "Go to the lobby and get your key.",
+ "booking_details": "My booking",
+ "number_of_guests": "People",
+ "booker": "Book",
+ "booking_date": "Date",
"payment": "Payment",
"payment_method": "Payment method",
- "bill": "Bill",
- "get_bill": "Get bill",
- "your_last_name": "Your last name",
- "find_booking": "Find booking",
+ "bill": "Receipt",
+ "get_bill": "Get receipt",
+ "your_last_name": "Surname",
+ "find_booking": "Add booking",
"choose_hotel": "Choose hotel",
"hotels": "Hotels",
"all": "All",
"zealand": "Zealand",
"funen": "Funen",
"jutland": "Jutland",
- "booking_not_found": "Booking not found",
- "booking_not_found_subtitle": "We could not find a booking with the information you provided.",
+ "booking_not_found": "The booking was not found.",
+ "booking_not_found_subtitle": "The booking you are looking for could not be found. \nDid you enter the information correctly?",
"booking_not_found_button": "Try again",
"booking_not_found_cancel": "Cancel",
"save": "Save",
- "zipCode": "Zip code",
- "city": "City",
+ "zipCode": "Postal code",
+ "city": "Town",
"country": "Country",
- "delete_profile_title": "You are about to delete your profile",
- "delete_profile_description": "Are you sure you want to delete your profile? This action cannot be undone.",
+ "delete_profile_title": "You are about to delete your profile.",
+ "delete_profile_description": "When you delete your profile, you will lose track of previous stays and your Comwell Club points.",
"delete_profile_button": "Delete profile",
"delete_profile_cancel": "Cancel",
"check_in_loading_title": "Finding your room...",
"check_in_room_found_title": "Room found...",
- "check_in_your_digital_card_title": "Your Digital KeyCard",
- "check_in_your_digital_card_subtitle": "Use your phone to open your room. You do not have to check in at the reception",
- "check_in_your_digital_card_nb": "NB: If you require a physical keycard, you can always get one from the reception",
+ "check_in_your_digital_card_title": "Your Key Card",
+ "check_in_your_digital_card_subtitle": "Use your mobile phone to open your room. You no longer need to check in at the reception.",
+ "check_in_your_digital_card_nb": "NB: If you want a physical key card, you can always go to reception and get one.",
"check_in_error_title": "Room not found...",
- "check_in_error_subtitle": "We could not find the room. Please check in at the reception.",
+ "check_in_error_subtitle": "We could not find your room. Please contact the reception.",
"preregistration_address_title": "Address",
"check_in_your_digital_card_room_prefix": "Room",
- "preregistration_address_subtitle": "It is required by law to know your address",
+ "preregistration_address_subtitle": "It is a legal requirement that we know the address of the primary occupant of the room. This is for fire safety reasons.",
"preregistration_address_label_address": "Address",
"preregistration_address_label_postal_code": "Postal code",
- "preregistration_address_label_city": "City",
+ "preregistration_address_label_city": "Town",
"preregistration_address_label_country": "Country",
- "preregistration_payment_title": "Payment methods",
- "preregistration_payment_subtitle": "To stay at Comwell, you need to add a payment method",
- "preregistration_payment_add_card": "Add card",
+ "preregistration_payment_title": "Payment card",
+ "preregistration_payment_subtitle": "To stay overnight at Comwell, we need a payment card.",
+ "preregistration_payment_add_card": "Add map",
"preregistration_confirmation_title": "Registration information",
"preregistration_confirmation_profile_card_title": "Profile information",
"preregistration_confirmation_address_card_title": "Address",
- "preregistration_confirmation_payment_card_title": "Payment method",
- "preregistration_confirmation_extras_card_title_singular": "1 extra purchase",
- "preregistration_confirmation_extras_card_title_plural": "{amount} extra purchases",
- "preregistration_confirmation_extras_card_subtitle": "Will be added to your bill",
- "need_help": "Need help?",
+ "preregistration_confirmation_payment_card_title": "Payment card",
+ "preregistration_confirmation_extras_card_title_singular": "1 selected Purchase",
+ "preregistration_confirmation_extras_card_title_plural": "{amount} selected add-ons",
+ "preregistration_confirmation_extras_card_subtitle": "Written on your room bill",
+ "need_help": "Do you need help?",
"call_us": "Call us",
- "call_us_description": "Enter your phone number below and we will call you.",
+ "call_us_description": "Do you need to get in touch with one of our hotels? Use the button below to call.",
"get_a_call": "Get a call",
- "get_a_call_description": "Enter your phone number below and we will call you.",
+ "get_a_call_description": "Enter your phone number below and we will call you back.",
"call_received_title": "Received",
- "call_received_description": "We have received your contact request. Our team will get back to you soon.",
+ "call_received_description": "We have received your contact request. Our team will contact you soon.",
"telephone_number": "Telephone number",
"comwell_telephone_number": "+4570274274",
"booking_details_page_hotel_information_button_title": "Hotel information",
"booking_details_page_hotel_information_button_subtitle": "Find relevant information about the hotel",
"booking_details_page_contact_button_title": "Contact",
- "booking_details_page_contact_button_subtitle": "Contact the reception ",
+ "booking_details_page_contact_button_subtitle": "Get in touch with the reception.",
"housekeeping_page_title": "Housekeeping",
- "housekeeping_page_subtitle": "If you wish for housekeeping, you can order it here",
- "housekeeping_page_button": "Order housekeeping",
- "housekeeping_page_service_title_cleaning": "Cleaning of the room",
- "housekeeping_page_service_title_towels": "Soap and shampoo",
- "housekeeping_page_service_title_refill": "Refill coffee and tea",
- "housekeeping_page_service_title_trash": "Fresh towels",
- "housekeeping_page_service_title_soap": "Trash removal",
- "housekeeping_page_service_cleaning_subtitle": "Cleaning is between 11 and 14",
+ "housekeeping_page_subtitle": "If you want extra cleaning or replenishment in the room, you can always order it here - at no cost.",
+ "housekeeping_page_button": "Book housekeeping",
+ "housekeeping_page_service_title_cleaning": "Room cleaning",
+ "housekeeping_page_service_title_towels": "Fresh towels",
+ "housekeeping_page_service_title_refill": "Coffee and tea refills",
+ "housekeeping_page_service_title_trash": "Garbage collection",
+ "housekeeping_page_service_title_soap": "Soap/shampoo",
+ "housekeeping_page_service_cleaning_subtitle": "Cleaning will be done between 11am and 2pm.",
"housekeeping_page_supplies": "Supplies",
"housekeeping_page_cleaning": "Cleaning",
- "booking_details_page_housekeeping_button_title_ordered": "Cleaning is ordered",
- "booking_details_page_housekeeping_button_subtitle_ordered": "Cleaning is between 11 and 14",
+ "booking_details_page_housekeeping_button_title_ordered": "Housekeeping ordered",
+ "booking_details_page_housekeeping_button_subtitle_ordered": "Cleaning comes between 11 am and 2 pm",
"housekeeping_page_supplies_subtitle_towels": "Soap and shampoo",
"housekeeping_page_supplies_subtitle_refill": "Refill coffee and tea",
"housekeeping_page_supplies_subtitle_trash": "Fresh towels",
"housekeeping_page_supplies_subtitle_soap": "Trash removal",
- "booking_details_page_housekeeping_button_title": "Order housekeeping",
+ "booking_details_page_housekeeping_button_title": "Book housekeeping",
"booking_details_page_housekeeping_button_subtitle": "The day before housekeeping is requested.",
"booking_details_page_practical_information": "Practical information",
"booking_details_page_checkout_title": "Check-out",
@@ -159,101 +159,101 @@
"hotel_information_page_menu_spa_title": "Spa",
"hotel_information_page_menu_spa_subtitle": "Baths, saunas, brechelbath, etc.",
"hotel_information_page_menu_parking_title": "Parking",
- "hotel_information_page_menu_other_info_title": "More information",
- "hotel_information_page_menu_other_info_subtitle": "Find more information",
- "hotel_information_page_spa_button": "Book spa",
+ "hotel_information_page_menu_other_info_title": "Other information",
+ "hotel_information_page_menu_other_info_subtitle": "Find more information about the hotel",
+ "hotel_information_page_spa_button": "Book a spa",
"restaurant_page_practical_information": "Practical information",
- "restaurant_page_address": "Addrese",
+ "restaurant_page_address": "Address",
"restaurant_page_opening_hours": "Opening hours",
- "restaurant_page_book_table": "Book table",
+ "restaurant_page_book_table": "Book a table",
"restaurant_page_send_email": "Write an email",
- "overview_page_check_in_button_subtitle": "Get your digital key card",
+ "overview_page_check_in_button_subtitle": "Get your digital key card immediately",
"checkout_page_confirmation_title": "Check-out",
- "checkout_page_confirmation_subtitle": "When you check out, you have 30 minutes to leave your room",
- "checkout_page_confirmation_deadline": "Check out latest at 10 AM",
- "checkout_page_confirmation_price_title": "To be paid",
+ "checkout_page_confirmation_subtitle": "When you confirm your check-out, you have 30 minutes to leave the room before your key card will stop working.",
+ "checkout_page_confirmation_deadline": "Your check-out must be no later than 10:00 AM.",
+ "checkout_page_confirmation_price_title": "For payment",
"checkout_page_confirmation_continue": "Go to payment",
- "checkout_page_payment_title": "Payment overview",
+ "checkout_page_payment_title": "Payment summary",
"checkout_page_payment_total": "Total",
"checkout_page_payment_price": "{amount} kr.",
"checkout_page_payment_club_points_title": "Use Comwell Club Points",
"checkout_page_payment_club_points_subtitle": "You have {points} points, use them and save {amount}kr.",
- "checkout_page_payment_club_points_subtitle_zero": "You have no points to use",
+ "checkout_page_payment_club_points_subtitle_zero": "You have no points to use.",
"checkout_page_payment_payment_title": "Pay and check out",
- "checkout_page_confirmation": "Go to checkout",
- "accept_terms": "Accept terms and conditions",
- "checkout_page_payment_dialog_title": "Are you sure you want to check out?",
- "checkout_page_payment_dialog_subtitle": "When you check out, you have 30 minutes to leave your room",
+ "checkout_page_confirmation": "Go to check out",
+ "accept_terms": "Accept the terms and conditions",
+ "checkout_page_payment_dialog_title": "Are you sure you want to check out of the hotel?",
+ "checkout_page_payment_dialog_subtitle": "Once you confirm, you have 30 minutes to vacate your room.",
"checkout_page_payment_dialog_confirm": "Yes, check out now",
"checkout_page_payment_dialog_cancel": "No",
"checkout_page_processing_success_title": "Check-out confirmed",
- "checkout_page_processing_success_subtitle": "You have 30 minutes to leave your room, after which you will no longer be able to use your keycard.",
- "checkout_page_processing_success_subtitle_no_digital_card": "You are now checked out. Please return your key to the reception",
+ "checkout_page_processing_success_subtitle": "Your check-out is now confirmed and you now have 30 minutes to leave your room. After that, you will no longer be able to use your key card.",
+ "checkout_page_processing_success_subtitle_no_digital_card": "You are now checked out. Remember to return your key to the lobby.",
"checkout_page_processing_error_title": "Check-out failed",
- "checkout_page_processing_error_subtitle": "An error occurred while checking out. Please go to the reception.",
- "payment_cards_title": "Payment cards",
- "payment_cards_subtitle": "To stay at Comwell, we need a payment card.",
+ "checkout_page_processing_error_subtitle": "There was an error during check-out. Please contact the reception.",
+ "payment_cards_title": "Payment card",
+ "payment_cards_subtitle": "To stay overnight at Comwell, we need a payment card.",
"payment_cards_my_cards": "My cards",
- "payment_cards_confirm_remove_title": "You are removing the card",
- "payment_cards_confirm_remove_subtitle": "This payment card will no longer be usable",
+ "payment_cards_confirm_remove_title": "You are about to remove a payment card.",
+ "payment_cards_confirm_remove_subtitle": "This payment card will no longer be available if you delete it.",
"payment_cards_remove_card_button": "Remove card",
- "payment_cards_edit_card_title": "Edit card",
- "payment_cards_save_card_button": "Save card",
- "share_booking_page_title": "Share booking",
- "share_booking_page_subtitle": "Here you can share your booking with another guest and give them access to booking information, keycard and Concierge",
- "share_booking_page_share_button": "Share your booking",
- "handle_guests_title": "Handle guests",
- "cancel_sharing": "Cancel sharing",
- "check_out_my_booking": "Check out my booking",
+ "payment_cards_edit_card_title": "Edit map",
+ "payment_cards_save_card_button": "Save map",
+ "share_booking_page_title": "Share stay",
+ "share_booking_page_subtitle": "Here you can share your stay with another guest and give them access to booking information, key cards and Concierge",
+ "share_booking_page_share_button": "Share your stay",
+ "handle_guests_title": "Manage guests",
+ "cancel_sharing": "Undo sharing",
+ "check_out_my_booking": "Check out of my stay",
"dates": "Dates",
"guest": "Guest",
"guests": "Guests",
- "view_booking": "View booking",
- "comwell_booking": "Comwell Booking",
+ "view_booking": "See booking",
+ "comwell_booking": "Comwell Stay",
"name_on_card_hint": "Name on card",
- "card_number_hint": "Card number",
- "expiry_date_hint": "Expiry date",
+ "card_number_hint": "Shortcode",
+ "expiry_date_hint": "Expiration date",
"cvc_hint": "CVC",
"remove_guest": "Remove guest",
"remove_guests": "Remove guests",
"are_you_sure": "Are you sure?",
- "guest_removal_responsibility": "You will be responsible for all things purchased on the room at checkout ",
+ "guest_removal_responsibility": "You will be responsible for all in-room purchases upon check-out (316 DKK)",
"notifications_page_title": "Notifications",
"subscribe_all": "Subscribe to all notifications",
- "company_deal": "Company deal",
- "company_deal_subtitle": "Yes, I would like to receive relevant information related to the company agreement from Comwell A/S via email and SMS. You can unsubscribe at any time by clicking the unsubscribe link at the bottom of the email.",
- "club_newsletter": "Club newsletter",
- "club_newsletter_subtitle": "Yes, I would like to recieve e-mails with exiciting offers regarding hotel stays and events at Comwell. I can at any time, unsubscribe.",
+ "company_deal": "Company agreement",
+ "company_deal_subtitle": "Yes, I would like to receive relevant information related to the company agreement from Comwell A/S via email and SMS. You can terminate your registration at any time by clicking the exit link at the bottom of the email.",
+ "club_newsletter": "Comwell Club newsletter",
+ "club_newsletter_subtitle": "Yes, I would like to receive emails with exciting offers on hotel stays and events at Comwell Hotels. I can unsubscribe at any time.",
"digital_media": "Digital media",
- "digital_media_subtitle": "Yes, I would like see personalized digital media advertising with news, inspiration and invitations to events. I can at any time, unsubscribe.",
+ "digital_media_subtitle": "Yes, I would like to see personalized digital advertisements with news, inspiration and invitations to events. I can unsubscribe at any time.",
"sms": "SMS",
- "sms_subtitle": "Yes, I would like to recieve SMS with news, inspiration and invitations to events. I can at any time, unsubscribe.",
- "email_subtitle": "Yes, I would like to receive emails with news, inspiration and invitations to events. I can at any time, unsubscribe.",
- "push_subtitle": "Yes, I would like to receive push notifications with news, inspiration and invitations to events. I can at any time, unsubscribe.",
+ "sms_subtitle": "Yes, I would like to receive SMS with news, inspiration and invitations to events. I can unsubscribe at any time.",
+ "email_subtitle": "Yes, I would like to receive emails with news, inspiration and invitations to events. I can unsubscribe at any time.",
+ "push_subtitle": "Yes, I would like to receive push notifications with news, inspiration and invitations to events. I can unsubscribe at any time.",
"update_profile": "Update profile",
"profile_settings_invalid_date": "Invalid date",
- "gender": "Gender",
+ "gender": "Sex",
"comwell_club_dialog_title": "Become a member",
- "comwell_club_dialog_description": "Please fill in the following information to join Comwell Club",
+ "comwell_club_dialog_description": "Enter the following information to become a member of Comwell Club",
"postal_code": "Postal code",
- "male": "Male",
- "female": "Female",
- "not_specified": "Not Specified",
- "tos_accept": "Accept ",
- "tos_accept_link": "terms and conditions for Comwell Club",
- "newsletter_accept": "Yes, I would like to receive updates on current member offers, Comwell Club surprises and other recommendations tailored to me. I can unsubscribe at any time.",
+ "male": "Man",
+ "female": "Woman",
+ "not_specified": "Not specified",
+ "tos_accept": "Accept",
+ "tos_accept_link": "Comwell Club rules and conditions",
+ "newsletter_accept": "Yes, I would like to be updated on current member offers, Comwell Club surprises and other recommendations tailored to me. I can unsubscribe at any time.",
"read_more": "Read more",
"read_less": "Read less",
"comwell_club_inactive": "Inactive",
- "points": "Points",
+ "points": "Point",
"my_balance": "My balance",
- "cancel_booking": "Cancel booking",
- "cancellation_policy": "Cancellation policy",
- "cancellation_policy_description": "This booking can be cancelled free of charge until the day of arrival. If cancelled later than 14.01, the first night will be charged.",
+ "cancel_booking": "Cancel stay",
+ "cancellation_policy": "Cancellation conditions",
+ "cancellation_policy_description": "This stay can be cancelled free of charge until 12.11.2024 at 15:00 on the day of arrival. If cancelled later than 14.01, the first night will be invoiced.",
"payment_date": "Payment date",
"not_shared": "Not shared",
- "share_booking": "Share booking",
- "total_charge": "Total charge",
+ "share_booking": "Share stay",
+ "total_charge": "Total for payment",
"early_checkin": "Early check-in",
"paid": "PAID",
"restaurant": "Restaurant",
@@ -262,143 +262,146 @@
"go_to_payment": "Go to payment",
"room_prefix": "Room {roomNumber}",
"total_charge_value": "{amount} kr.",
- "generic_error_profile_page": "An error occurred. Please try again later. Or logout and try again.",
- "profile_error_name": "Failed to load profile information",
+ "generic_error_profile_page": "An error occurred. Please try again later. Or log out and try again.",
+ "profile_error_name": "Error loading profile information",
"error": "Error",
- "error_logout": "There has been an error",
- "error_logout_subtitle": "Please log in again",
+ "error_logout": "An error occurred.",
+ "error_logout_subtitle": "You have been logged out. Please log in again.",
"edit": "Edit",
- "error_cards": "Failed to load cards, try again later",
+ "error_cards": "Error loading map, please try again later.",
"check_in_button_timer_days_hours_minutes": "In {d} days, {h} hours and {m} minutes",
"check_in_button_timer_hours_minutes": "In {h} hours and {m} minutes",
"check_in_button_timer_minutes": "In {m} minutes",
"check_in_button_timer_seconds": "In {s} seconds",
- "approve_conditions_title": "I accept ",
- "approve_conditions_subtitle": "terms and conditions",
+ "approve_conditions_title": "I accept",
+ "approve_conditions_subtitle": "the conditions",
"up_sales_title": "Early check-in",
- "up_sales_subtitle": "With early check-in you can check in at 13.00 instead of 15.00.",
+ "up_sales_subtitle": "With early check-in, you can check in at 1:00 PM instead of 3:00 PM.",
"up_sales_popular": "POPULAR",
"services": "Services",
"up_sales_see_all": "See all",
"up_sales_catalog_button_title": "See product catalog",
- "up_sales_catalog_button_subtitle": "Here you can see and order products and write them automatically on your room bill.",
- "up_sales_catalog_title": "Upgrades & Services",
+ "up_sales_catalog_button_subtitle": "Here you can view and order products and have them automatically added to your room bill.",
+ "up_sales_catalog_title": "Purchase options",
"room_upgrades": "Room upgrades",
- "other_up_sales": "Other upgrades",
+ "other_up_sales": "Other purchases",
"read_more_up_sales": "Read more",
- "continue_without_up_sales": "Continue without upgrades",
- "open_maps_error_title": "Cannot open maps",
- "open_maps_error_subtitle": "No maps application is available.",
- "apple_maps": "Apple Maps",
+ "continue_without_up_sales": "Continue without purchase",
+ "open_maps_error_title": "Can't open map",
+ "open_maps_error_subtitle": "No map program is available.",
+ "apple_maps": "Apple Card",
"google_maps": "Google Maps",
"add_to_booking": "Add to booking",
"see_all_facilities": "See all facilities",
"remove_from_booking": "Remove from booking",
"no_services_available": "No services available",
"no_room_upgrades_available": "No room upgrades available",
- "confirm_up_sales_dialog_title": "Confirm upgrades",
- "confirm_up_sales_dialog_subtitle": "Are you sure you want to add these upgrades for {amount} kr to your booking?",
- "confirm_up_sales_dialog_confirm": "Yes, add upgrades",
+ "confirm_up_sales_dialog_title": "Confirm purchase",
+ "confirm_up_sales_dialog_subtitle": "Are you sure you want to add these {amount} DKK extras to your booking?",
+ "confirm_up_sales_dialog_confirm": "Yes, add additional purchases",
"confirm_up_sales_dialog_cancel": "No",
- "email_launch_error": "Could not launch email client",
- "phone_launch_error": "Could not launch phone call",
+ "email_launch_error": "Could not open email client",
+ "phone_launch_error": "Could not open phone",
"balance": "BALANCE",
- "new_booking": "Make a new booking",
- "error_opening_website": "Failed to open the website. Please try again later.",
+ "new_booking": "Book a new stay",
+ "error_opening_website": "Could not open the website. Please try again later.",
"error_opening_website_title": "Error",
- "room_selection": "Room selection",
- "room_selection_subtitle": "Select a room for your stay",
- "choose_room": "Choose room",
- "choose_room_subtitle": "You need to choose the room you want to sleep in. When you have chosen, you can assign the other rooms to others.",
+ "room_selection": "Select room",
+ "room_selection_subtitle": "Allocate guests to the rooms you have booked",
+ "choose_room": "Allocate rooms",
+ "choose_room_subtitle": "You must first choose your own room. Then you can assign the other rooms.",
"check_in_date": "Check-in date",
"check_out_date": "Check-out date",
"confirmation_number": "Confirmation number",
"close": "Close",
"choose_room_confirmation_title": "Are you sure you want to choose this room?",
- "choose_room_confirmation_subtitle": "You cannot undo your choice. Remaining rooms must be assigned.",
- "choose_room_confirmation_confirm": "Yes, choose room",
+ "choose_room_confirmation_subtitle": "You cannot undo your choice.",
+ "choose_room_confirmation_confirm": "Yes, select room",
"choose_room_confirmation_cancel": "No",
"my_room": "My room",
"share_room": "Share room",
"share_room_page_title": "Share room",
- "share_room_page_subtitle": "Here you can share your room with another guest and give them access to booking information, keycard and Concierge",
+ "share_room_page_subtitle": "Here you can share your room with another guest and give them access to booking information, key cards and Concierge",
"share_room_page_button": "Share your room",
- "addon": "Added purchase",
- "added_to_room": "Added to room",
- "force_update_title": "Update required",
- "force_update_description": "To continue using the app, please update to the latest version.",
- "force_update_button": "Go to App Store",
+ "addon": "Additional purchases",
+ "added_to_room": "Purchased in room",
+ "force_update_title": "Update to use the app",
+ "force_update_description": "There is a required update to the app that requires you to update in order to continue.",
+ "force_update_button": "Go to the App Store",
"invalid_birthday": "Invalid birthday",
- "invalid_birthday_description": "Your saved birthday is not allowed. Please pick a new date.",
- "up_sales_confirmation_title": "Payment overview",
- "up_sales_confirmation_no_up_sales": "No upgrades selected.",
+ "invalid_birthday_description": "Your saved birthday is not allowed. Please choose a new date.",
+ "up_sales_confirmation_title": "Payment summary",
+ "up_sales_confirmation_no_up_sales": "No options selected.",
"facilities": "Facilities",
- "remove": "Remove",
- "up_sales_processing_error_title": "Failed to add addons",
- "up_sales_processing_error_subtitle": "Addons are not available at the moment. Please try again later.",
+ "remove": "Remote",
+ "up_sales_processing_error_title": "Could not add add-ons",
+ "up_sales_processing_error_subtitle": "Upgrades are not working at the moment. Please try again later.",
"pay_bill": "Pay bill",
- "discount": "Comwell Club Points Discount",
- "error_preregistration": "Failed to preregister, go to reception",
+ "discount": "Comwell Club Point Discount",
+ "error_preregistration": "Could not preregister, go to reception",
"get_keys": "Get digital key",
- "get_keys_subtitle": "Get your digital key card",
- "add_card": "Add card",
+ "get_keys_subtitle": "Get your digital key card immediately",
+ "add_card": "Add map",
"total": "Total",
- "profile_error_title": "Could not load your profile",
- "profile_error_subtitle": "An error occurred. Please try again later.",
- "generic_error_title": "There was an error",
- "notifications_error_subtitle": "Notifications could not be loaded. Please try again later.",
- "payment_cards_error_subtitle": "Payment cards could not be loaded. Please try again later.",
- "hotel_information_error_subtitle": "Hotel information could not be loaded. Please try again later.",
- "overview_error_title": "Could not load your bookings",
- "overview_error_subtitle": "An error occurred. We could not load your bookings. Please try again later.",
- "up_sales_error_title": "Could not load up sales",
- "up_sales_error_subtitle": "An error occurred. We could not load up sales. Please try again later.",
+ "profile_error_title": "Could not load your profile.",
+ "profile_error_subtitle": "An error has occurred. Please try again later.",
+ "generic_error_title": "An error has occurred.",
+ "notifications_error_subtitle": "Notifications cannot be retrieved at this time. Please try again later.",
+ "payment_cards_error_subtitle": "Your payment cards cannot be retrieved at this time. Please try again later.",
+ "hotel_information_error_subtitle": "The hotel information cannot be retrieved at this time. Please try again later.",
+ "overview_error_title": "Could not load your bookings.",
+ "overview_error_subtitle": "An error occurred. We were unable to load your bookings. Please try again later.",
+ "up_sales_error_title": "Add-on purchases are currently unavailable.",
+ "up_sales_error_subtitle": "An error has occurred. Please try again later.",
"choose_room_error_title": "Could not choose room",
- "choose_room_error_subtitle": "An error occurred. Please try again later or go to the reception.",
- "share_booking_error_title": "Could not find guests on the room",
- "share_booking_error_subtitle": "An error occurred. Please try again later.",
- "refresh_bookings": "Refresh bookings",
+ "choose_room_error_subtitle": "An error has occurred. Please try again later or go to the front desk.",
+ "share_booking_error_title": "Could not find the guests in the room",
+ "share_booking_error_subtitle": "An error has occurred. Please try again later.",
+ "refresh_bookings": "Update bookings",
"document_type": "Document type",
"document_type_passport": "Passport",
"document_type_id_card": "ID card",
- "document_type_driver_license": "Driver license",
+ "document_type_driver_license": "Driving license",
"document_type_other": "Other",
"document_number": "Document number",
- "up_sales_catalog_no_up_sales_title": "No upgrades available",
- "up_sales_catalog_no_up_sales_subtitle": "No upgrades are available at the moment. Please try again later.",
+ "up_sales_catalog_no_up_sales_title": "No options available",
+ "up_sales_catalog_no_up_sales_subtitle": "There are no options available at this time. Please try again later.",
"payment_cards_missing_payment_method_title": "Missing payment method",
"payment_cards_missing_payment_method_subtitle": "Please select a payment method to continue.",
"share_booking_page_error_title": "Error",
"share_booking_page_error_subtitle": "This booking has already been shared.",
- "share_booking_message": "{name} would like to share a booking with you at Comwell {hotel}. Access via the link: {url}",
+ "share_booking_message": "{name} would like to share a stay with you at Comwell {hotel}. Access via the link: {url}",
"check_in_page_error_title": "Room not found",
- "check_in_page_error_subtitle": "We could not find the room. Please check in at the reception.",
- "remove_guest_overview": "Remove",
+ "check_in_page_error_subtitle": "We could not find your room. Please contact the reception.",
+ "remove_guest_overview": "Remote",
"home_page": "Home",
"send_to_email": "Send to email",
- "download_bill": "Get receipt",
- "bill_email_placeholder": "E-mail",
+ "download_bill": "Get a receipt sent to you",
+ "bill_email_placeholder": "Email",
"payment_overview_send_receipt_title": "Receipt via email",
"payment_overview_send_receipt_subtitle": "Sent to {name}",
"payment_overview_send_comment_title": "Comment",
- "payment_overview_send_receipt_hint": "Enter comment",
+ "payment_overview_send_receipt_hint": "Insert comment",
"key_page_room_prefix": "Room {roomNumber}",
- "please_accept_terms": "Please accept terms",
+ "please_accept_terms": "Accept the terms",
"received_shared_room_page_subtitle": "text {name}",
"received_shared_room_page_title": "",
"received_shared_booking_page_title": "",
"received_shared_booking_page_subtitle": "text {name}",
"accept_notifications": "Allow notifications",
- "accept_notifications_rationale": "To get the latest updates on your booking, please allow notifications",
+ "accept_notifications_rationale": "To get the latest updates about your booking, please allow notifications",
"allow": "Allow",
"skip": "Skip",
- "internet_disabled": "Internet disconnected",
- "please_enable_internet": "Please check your internet connected",
- "bluetooth_disabled": "Bluetooth is disabled",
- "please_enable_bluetooth": "Please enable bluetooth",
+ "internet_disabled": "The Internet is down.",
+ "please_enable_internet": "Please check your internet connection.",
+ "bluetooth_disabled": "Bluetooth is disabled.",
+ "please_enable_bluetooth": "Activate Bluetooth",
"allow_usage_tracking": "Allow usage tracking",
- "usage_tracking_rationale": "Please allow tracking how you use the app",
+ "usage_tracking_rationale": "Please allow tracking of how you use the app",
"share_room_subtitle_mvp": "We are currently working on making it possible to delegate rooms here in the app.",
"subtitle_mvp": "Unfortunately, for now we can only help you through our customer service. Please call us and we will find a solution.",
- "find_booking_subtitle_mvp": "We are currently working on making it possible to find your booking digitally here in the app."
+ "find_booking_subtitle_mvp": "We are currently working on making it possible to find your booking digitally here in the app.",
+ "bluetooth_permission_title": "Allow Bluetooth to unlock your room",
+ "bluetooth_permission_description": "In order to open the door to your hotel room, you must give us permission to use Bluetooth on your phone.",
+ "allow_bluetooth": "Allow Bluetooth"
}
\ No newline at end of file
diff --git a/comwell_key_app/lib/.generated/assets/assets.gen.dart b/comwell_key_app/lib/.generated/assets/assets.gen.dart
index 3d9bc7bb..5436c09a 100644
--- a/comwell_key_app/lib/.generated/assets/assets.gen.dart
+++ b/comwell_key_app/lib/.generated/assets/assets.gen.dart
@@ -23,8 +23,11 @@ class $EnvGen {
/// File path: env/.stage.env
String get aStage => 'env/.stage.env';
+ /// File path: env/Archive.zip
+ String get archive => 'env/Archive.zip';
+
/// List of all assets
- List<String> get values => [aProd, aStage];
+ List<String> get values => [aProd, aStage, archive];
}
class $AssetsAnimationsGen {
diff --git a/comwell_key_app/lib/.generated/connection_state/connection_state_cubit.freezed.dart b/comwell_key_app/lib/.generated/connection_state/connection_state_cubit.freezed.dart
index 17c32fa2..145b3a5f 100644
--- a/comwell_key_app/lib/.generated/connection_state/connection_state_cubit.freezed.dart
+++ b/comwell_key_app/lib/.generated/connection_state/connection_state_cubit.freezed.dart
@@ -14,7 +14,7 @@ T _$identity<T>(T value) => value;
/// @nodoc
mixin _$AppConnectionState {
- bool get isLoading; bool get isBluetoothEnabled; bool get isInternetConnected;
+ bool get isLoading; bool get isBluetoothEnabled; bool get isInternetConnected; bool get isBluetoothSupported; bool get isBluetoothPermissionGranted;
/// Create a copy of AppConnectionState
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@@ -25,16 +25,16 @@ $AppConnectionStateCopyWith<AppConnectionState> get copyWith => _$AppConnectionS
@override
bool operator ==(Object other) {
- return identical(this, other) || (other.runtimeType == runtimeType&&other is AppConnectionState&&(identical(other.isLoading, isLoading) || other.isLoading == isLoading)&&(identical(other.isBluetoothEnabled, isBluetoothEnabled) || other.isBluetoothEnabled == isBluetoothEnabled)&&(identical(other.isInternetConnected, isInternetConnected) || other.isInternetConnected == isInternetConnected));
+ return identical(this, other) || (other.runtimeType == runtimeType&&other is AppConnectionState&&(identical(other.isLoading, isLoading) || other.isLoading == isLoading)&&(identical(other.isBluetoothEnabled, isBluetoothEnabled) || other.isBluetoothEnabled == isBluetoothEnabled)&&(identical(other.isInternetConnected, isInternetConnected) || other.isInternetConnected == isInternetConnected)&&(identical(other.isBluetoothSupported, isBluetoothSupported) || other.isBluetoothSupported == isBluetoothSupported)&&(identical(other.isBluetoothPermissionGranted, isBluetoothPermissionGranted) || other.isBluetoothPermissionGranted == isBluetoothPermissionGranted));
}
@override
-int get hashCode => Object.hash(runtimeType,isLoading,isBluetoothEnabled,isInternetConnected);
+int get hashCode => Object.hash(runtimeType,isLoading,isBluetoothEnabled,isInternetConnected,isBluetoothSupported,isBluetoothPermissionGranted);
@override
String toString() {
- return 'AppConnectionState(isLoading: $isLoading, isBluetoothEnabled: $isBluetoothEnabled, isInternetConnected: $isInternetConnected)';
+ return 'AppConnectionState(isLoading: $isLoading, isBluetoothEnabled: $isBluetoothEnabled, isInternetConnected: $isInternetConnected, isBluetoothSupported: $isBluetoothSupported, isBluetoothPermissionGranted: $isBluetoothPermissionGranted)';
}
@@ -45,7 +45,7 @@ abstract mixin class $AppConnectionStateCopyWith<$Res> {
factory $AppConnectionStateCopyWith(AppConnectionState value, $Res Function(AppConnectionState) _then) = _$AppConnectionStateCopyWithImpl;
@useResult
$Res call({
- bool isLoading, bool isBluetoothEnabled, bool isInternetConnected
+ bool isLoading, bool isBluetoothEnabled, bool isInternetConnected, bool isBluetoothSupported, bool isBluetoothPermissionGranted
});
@@ -62,11 +62,13 @@ class _$AppConnectionStateCopyWithImpl<$Res>
/// Create a copy of AppConnectionState
/// with the given fields replaced by the non-null parameter values.
-@pragma('vm:prefer-inline') @override $Res call({Object? isLoading = null,Object? isBluetoothEnabled = null,Object? isInternetConnected = null,}) {
+@pragma('vm:prefer-inline') @override $Res call({Object? isLoading = null,Object? isBluetoothEnabled = null,Object? isInternetConnected = null,Object? isBluetoothSupported = null,Object? isBluetoothPermissionGranted = null,}) {
return _then(_self.copyWith(
isLoading: null == isLoading ? _self.isLoading : isLoading // ignore: cast_nullable_to_non_nullable
as bool,isBluetoothEnabled: null == isBluetoothEnabled ? _self.isBluetoothEnabled : isBluetoothEnabled // ignore: cast_nullable_to_non_nullable
as bool,isInternetConnected: null == isInternetConnected ? _self.isInternetConnected : isInternetConnected // ignore: cast_nullable_to_non_nullable
+as bool,isBluetoothSupported: null == isBluetoothSupported ? _self.isBluetoothSupported : isBluetoothSupported // ignore: cast_nullable_to_non_nullable
+as bool,isBluetoothPermissionGranted: null == isBluetoothPermissionGranted ? _self.isBluetoothPermissionGranted : isBluetoothPermissionGranted // ignore: cast_nullable_to_non_nullable
as bool,
));
}
@@ -152,10 +154,10 @@ return $default(_that);case _:
/// }
/// ```
-@optionalTypeArgs TResult maybeWhen<TResult extends Object?>(TResult Function( bool isLoading, bool isBluetoothEnabled, bool isInternetConnected)? $default,{required TResult orElse(),}) {final _that = this;
+@optionalTypeArgs TResult maybeWhen<TResult extends Object?>(TResult Function( bool isLoading, bool isBluetoothEnabled, bool isInternetConnected, bool isBluetoothSupported, bool isBluetoothPermissionGranted)? $default,{required TResult orElse(),}) {final _that = this;
switch (_that) {
case _AppConnectionState() when $default != null:
-return $default(_that.isLoading,_that.isBluetoothEnabled,_that.isInternetConnected);case _:
+return $default(_that.isLoading,_that.isBluetoothEnabled,_that.isInternetConnected,_that.isBluetoothSupported,_that.isBluetoothPermissionGranted);case _:
return orElse();
}
@@ -173,10 +175,10 @@ return $default(_that.isLoading,_that.isBluetoothEnabled,_that.isInternetConnect
/// }
/// ```
-@optionalTypeArgs TResult when<TResult extends Object?>(TResult Function( bool isLoading, bool isBluetoothEnabled, bool isInternetConnected) $default,) {final _that = this;
+@optionalTypeArgs TResult when<TResult extends Object?>(TResult Function( bool isLoading, bool isBluetoothEnabled, bool isInternetConnected, bool isBluetoothSupported, bool isBluetoothPermissionGranted) $default,) {final _that = this;
switch (_that) {
case _AppConnectionState():
-return $default(_that.isLoading,_that.isBluetoothEnabled,_that.isInternetConnected);case _:
+return $default(_that.isLoading,_that.isBluetoothEnabled,_that.isInternetConnected,_that.isBluetoothSupported,_that.isBluetoothPermissionGranted);case _:
throw StateError('Unexpected subclass');
}
@@ -193,10 +195,10 @@ return $default(_that.isLoading,_that.isBluetoothEnabled,_that.isInternetConnect
/// }
/// ```
-@optionalTypeArgs TResult? whenOrNull<TResult extends Object?>(TResult? Function( bool isLoading, bool isBluetoothEnabled, bool isInternetConnected)? $default,) {final _that = this;
+@optionalTypeArgs TResult? whenOrNull<TResult extends Object?>(TResult? Function( bool isLoading, bool isBluetoothEnabled, bool isInternetConnected, bool isBluetoothSupported, bool isBluetoothPermissionGranted)? $default,) {final _that = this;
switch (_that) {
case _AppConnectionState() when $default != null:
-return $default(_that.isLoading,_that.isBluetoothEnabled,_that.isInternetConnected);case _:
+return $default(_that.isLoading,_that.isBluetoothEnabled,_that.isInternetConnected,_that.isBluetoothSupported,_that.isBluetoothPermissionGranted);case _:
return null;
}
@@ -208,12 +210,14 @@ return $default(_that.isLoading,_that.isBluetoothEnabled,_that.isInternetConnect
class _AppConnectionState implements AppConnectionState {
- const _AppConnectionState({this.isLoading = false, this.isBluetoothEnabled = true, this.isInternetConnected = true});
+ const _AppConnectionState({this.isLoading = false, this.isBluetoothEnabled = true, this.isInternetConnected = true, this.isBluetoothSupported = true, this.isBluetoothPermissionGranted = true});
@override@JsonKey() final bool isLoading;
@override@JsonKey() final bool isBluetoothEnabled;
@override@JsonKey() final bool isInternetConnected;
+@override@JsonKey() final bool isBluetoothSupported;
+@override@JsonKey() final bool isBluetoothPermissionGranted;
/// Create a copy of AppConnectionState
/// with the given fields replaced by the non-null parameter values.
@@ -225,16 +229,16 @@ _$AppConnectionStateCopyWith<_AppConnectionState> get copyWith => __$AppConnecti
@override
bool operator ==(Object other) {
- return identical(this, other) || (other.runtimeType == runtimeType&&other is _AppConnectionState&&(identical(other.isLoading, isLoading) || other.isLoading == isLoading)&&(identical(other.isBluetoothEnabled, isBluetoothEnabled) || other.isBluetoothEnabled == isBluetoothEnabled)&&(identical(other.isInternetConnected, isInternetConnected) || other.isInternetConnected == isInternetConnected));
+ return identical(this, other) || (other.runtimeType == runtimeType&&other is _AppConnectionState&&(identical(other.isLoading, isLoading) || other.isLoading == isLoading)&&(identical(other.isBluetoothEnabled, isBluetoothEnabled) || other.isBluetoothEnabled == isBluetoothEnabled)&&(identical(other.isInternetConnected, isInternetConnected) || other.isInternetConnected == isInternetConnected)&&(identical(other.isBluetoothSupported, isBluetoothSupported) || other.isBluetoothSupported == isBluetoothSupported)&&(identical(other.isBluetoothPermissionGranted, isBluetoothPermissionGranted) || other.isBluetoothPermissionGranted == isBluetoothPermissionGranted));
}
@override
-int get hashCode => Object.hash(runtimeType,isLoading,isBluetoothEnabled,isInternetConnected);
+int get hashCode => Object.hash(runtimeType,isLoading,isBluetoothEnabled,isInternetConnected,isBluetoothSupported,isBluetoothPermissionGranted);
@override
String toString() {
- return 'AppConnectionState(isLoading: $isLoading, isBluetoothEnabled: $isBluetoothEnabled, isInternetConnected: $isInternetConnected)';
+ return 'AppConnectionState(isLoading: $isLoading, isBluetoothEnabled: $isBluetoothEnabled, isInternetConnected: $isInternetConnected, isBluetoothSupported: $isBluetoothSupported, isBluetoothPermissionGranted: $isBluetoothPermissionGranted)';
}
@@ -245,7 +249,7 @@ abstract mixin class _$AppConnectionStateCopyWith<$Res> implements $AppConnectio
factory _$AppConnectionStateCopyWith(_AppConnectionState value, $Res Function(_AppConnectionState) _then) = __$AppConnectionStateCopyWithImpl;
@override @useResult
$Res call({
- bool isLoading, bool isBluetoothEnabled, bool isInternetConnected
+ bool isLoading, bool isBluetoothEnabled, bool isInternetConnected, bool isBluetoothSupported, bool isBluetoothPermissionGranted
});
@@ -262,11 +266,13 @@ class __$AppConnectionStateCopyWithImpl<$Res>
/// Create a copy of AppConnectionState
/// with the given fields replaced by the non-null parameter values.
-@override @pragma('vm:prefer-inline') $Res call({Object? isLoading = null,Object? isBluetoothEnabled = null,Object? isInternetConnected = null,}) {
+@override @pragma('vm:prefer-inline') $Res call({Object? isLoading = null,Object? isBluetoothEnabled = null,Object? isInternetConnected = null,Object? isBluetoothSupported = null,Object? isBluetoothPermissionGranted = null,}) {
return _then(_AppConnectionState(
isLoading: null == isLoading ? _self.isLoading : isLoading // ignore: cast_nullable_to_non_nullable
as bool,isBluetoothEnabled: null == isBluetoothEnabled ? _self.isBluetoothEnabled : isBluetoothEnabled // ignore: cast_nullable_to_non_nullable
as bool,isInternetConnected: null == isInternetConnected ? _self.isInternetConnected : isInternetConnected // ignore: cast_nullable_to_non_nullable
+as bool,isBluetoothSupported: null == isBluetoothSupported ? _self.isBluetoothSupported : isBluetoothSupported // ignore: cast_nullable_to_non_nullable
+as bool,isBluetoothPermissionGranted: null == isBluetoothPermissionGranted ? _self.isBluetoothPermissionGranted : isBluetoothPermissionGranted // ignore: cast_nullable_to_non_nullable
as bool,
));
}
diff --git a/comwell_key_app/lib/.generated/l10n/app_localizations.dart b/comwell_key_app/lib/.generated/l10n/app_localizations.dart
index b5fc8c5e..d78e9925 100644
--- a/comwell_key_app/lib/.generated/l10n/app_localizations.dart
+++ b/comwell_key_app/lib/.generated/l10n/app_localizations.dart
@@ -102,7 +102,7 @@ abstract class AppLocalizations {
/// No description provided for @generic_information_required.
///
/// In en, this message translates to:
- /// **'This information is required'**
+ /// **'This field is required.'**
String get generic_information_required;
/// No description provided for @generic_confirm.
@@ -126,7 +126,7 @@ abstract class AppLocalizations {
/// No description provided for @generic_credit_card.
///
/// In en, this message translates to:
- /// **'Credit Card'**
+ /// **'Credit card'**
String get generic_credit_card;
/// No description provided for @generic_apple_pay.
@@ -144,13 +144,13 @@ abstract class AppLocalizations {
/// No description provided for @generic_error.
///
/// In en, this message translates to:
- /// **'An error occurred. Please try again later.'**
+ /// **'An error occurred. Please try again.'**
String get generic_error;
/// No description provided for @welcome_headline.
///
/// In en, this message translates to:
- /// **'Welcome at Comwell Hotels'**
+ /// **'Welcome to Comwell Hotels'**
String get welcome_headline;
/// No description provided for @welcome_button.
@@ -162,19 +162,19 @@ abstract class AppLocalizations {
/// No description provided for @welcome_error.
///
/// In en, this message translates to:
- /// **'An error occurred. Please try again later.'**
+ /// **'An error has occurred. Restart the app.'**
String get welcome_error;
/// No description provided for @room_key.
///
/// In en, this message translates to:
- /// **'Room key'**
+ /// **'Key'**
String get room_key;
/// No description provided for @room_keys.
///
/// In en, this message translates to:
- /// **'Room keys'**
+ /// **'Keys'**
String get room_keys;
/// No description provided for @redeem_code.
@@ -186,7 +186,7 @@ abstract class AppLocalizations {
/// No description provided for @error_opening_door.
///
/// In en, this message translates to:
- /// **'An error occurred'**
+ /// **'An error occurred.'**
String get error_opening_door;
/// No description provided for @try_again.
@@ -198,7 +198,7 @@ abstract class AppLocalizations {
/// No description provided for @room_key_description.
///
/// In en, this message translates to:
- /// **'This is your room key'**
+ /// **'This is your room key.'**
String get room_key_description;
/// No description provided for @login_button.
@@ -234,13 +234,13 @@ abstract class AppLocalizations {
/// No description provided for @logout_profile_menu.
///
/// In en, this message translates to:
- /// **'Logout'**
+ /// **'Log out'**
String get logout_profile_menu;
/// No description provided for @logout_dialog_title.
///
/// In en, this message translates to:
- /// **'Do you want to log out of your profile'**
+ /// **'Do you want to log out of your profile?'**
String get logout_dialog_title;
/// No description provided for @cancel.
@@ -258,13 +258,13 @@ abstract class AppLocalizations {
/// No description provided for @become_cc_member_title.
///
/// In en, this message translates to:
- /// **'Join comwell club'**
+ /// **'Become a member of comwell club'**
String get become_cc_member_title;
/// No description provided for @become_cc_member_subtitle.
///
/// In en, this message translates to:
- /// **'Join and earn points every time you stay at a Comwell Hotel.'**
+ /// **'Become a member and earn points every time you stay at a Comwell Hotel.'**
String get become_cc_member_subtitle;
/// No description provided for @overview_tabbar_active.
@@ -276,7 +276,7 @@ abstract class AppLocalizations {
/// No description provided for @overview_tabbar_past.
///
/// In en, this message translates to:
- /// **'Past'**
+ /// **'Previous'**
String get overview_tabbar_past;
/// No description provided for @overview_tabbar_cancelled.
@@ -288,13 +288,13 @@ abstract class AppLocalizations {
/// No description provided for @no_past_bookings_title.
///
/// In en, this message translates to:
- /// **'No past stays'**
+ /// **'No previous stays'**
String get no_past_bookings_title;
/// No description provided for @no_past_bookings_subtitle.
///
/// In en, this message translates to:
- /// **'You have no past stays at Comwell Hotels.'**
+ /// **'There are no previous stays on this profile.'**
String get no_past_bookings_subtitle;
/// No description provided for @no_cancelled_booking_title.
@@ -306,7 +306,7 @@ abstract class AppLocalizations {
/// No description provided for @no_cancelled_booking_subtitle.
///
/// In en, this message translates to:
- /// **'You have no cancelled stays with us.'**
+ /// **'You have no canceled nights with us.'**
String get no_cancelled_booking_subtitle;
/// No description provided for @booking_annulled.
@@ -360,19 +360,19 @@ abstract class AppLocalizations {
/// No description provided for @prepare_room.
///
/// In en, this message translates to:
- /// **'Prepare your room'**
+ /// **'Save time at check-in'**
String get prepare_room;
/// No description provided for @jump_line_text.
///
/// In en, this message translates to:
- /// **'Skip the line with digital check-in'**
+ /// **'Fill in your information'**
String get jump_line_text;
/// No description provided for @overview_add_booking.
///
/// In en, this message translates to:
- /// **'Find booking'**
+ /// **'Add booking'**
String get overview_add_booking;
/// No description provided for @open_room.
@@ -384,7 +384,7 @@ abstract class AppLocalizations {
/// No description provided for @hold_phone_to_door.
///
/// In en, this message translates to:
- /// **'Hold phone to door'**
+ /// **'Keep close to the reader'**
String get hold_phone_to_door;
/// No description provided for @open_room_success.
@@ -414,7 +414,7 @@ abstract class AppLocalizations {
/// No description provided for @profile_settings_lastname.
///
/// In en, this message translates to:
- /// **'Last name'**
+ /// **'Surname'**
String get profile_settings_lastname;
/// No description provided for @profile_settings_email.
@@ -426,7 +426,7 @@ abstract class AppLocalizations {
/// No description provided for @profile_settings_phone.
///
/// In en, this message translates to:
- /// **'Phone'**
+ /// **'Telephone'**
String get profile_settings_phone;
/// No description provided for @profile_settings_address.
@@ -444,13 +444,13 @@ abstract class AppLocalizations {
/// No description provided for @profile_settings_edit_password.
///
/// In en, this message translates to:
- /// **'Edit password'**
+ /// **'Change password'**
String get profile_settings_edit_password;
/// No description provided for @profile_settings_error.
///
/// In en, this message translates to:
- /// **'An error occurred. Please try again later.'**
+ /// **'An error occurred. Please try again.'**
String get profile_settings_error;
/// No description provided for @delete_profile.
@@ -468,49 +468,49 @@ abstract class AppLocalizations {
/// No description provided for @booking_reference.
///
/// In en, this message translates to:
- /// **'Bookingreference'**
+ /// **'Reservation number'**
String get booking_reference;
/// No description provided for @check_in.
///
/// In en, this message translates to:
- /// **'Check-in'**
+ /// **'Check in'**
String get check_in;
/// No description provided for @check_out.
///
/// In en, this message translates to:
- /// **'Check-out'**
+ /// **'Check out'**
String get check_out;
/// No description provided for @overview_page_check_in_physical_card_subtitle.
///
/// In en, this message translates to:
- /// **'Go to the lobby to get your key'**
+ /// **'Go to the lobby and get your key.'**
String get overview_page_check_in_physical_card_subtitle;
/// No description provided for @booking_details.
///
/// In en, this message translates to:
- /// **'Booking'**
+ /// **'My booking'**
String get booking_details;
/// No description provided for @number_of_guests.
///
/// In en, this message translates to:
- /// **'Number of guests'**
+ /// **'People'**
String get number_of_guests;
/// No description provided for @booker.
///
/// In en, this message translates to:
- /// **'Booker'**
+ /// **'Book'**
String get booker;
/// No description provided for @booking_date.
///
/// In en, this message translates to:
- /// **'Booking date'**
+ /// **'Date'**
String get booking_date;
/// No description provided for @payment.
@@ -528,25 +528,25 @@ abstract class AppLocalizations {
/// No description provided for @bill.
///
/// In en, this message translates to:
- /// **'Bill'**
+ /// **'Receipt'**
String get bill;
/// No description provided for @get_bill.
///
/// In en, this message translates to:
- /// **'Get bill'**
+ /// **'Get receipt'**
String get get_bill;
/// No description provided for @your_last_name.
///
/// In en, this message translates to:
- /// **'Your last name'**
+ /// **'Surname'**
String get your_last_name;
/// No description provided for @find_booking.
///
/// In en, this message translates to:
- /// **'Find booking'**
+ /// **'Add booking'**
String get find_booking;
/// No description provided for @choose_hotel.
@@ -588,13 +588,13 @@ abstract class AppLocalizations {
/// No description provided for @booking_not_found.
///
/// In en, this message translates to:
- /// **'Booking not found'**
+ /// **'The booking was not found.'**
String get booking_not_found;
/// No description provided for @booking_not_found_subtitle.
///
/// In en, this message translates to:
- /// **'We could not find a booking with the information you provided.'**
+ /// **'The booking you are looking for could not be found. \nDid you enter the information correctly?'**
String get booking_not_found_subtitle;
/// No description provided for @booking_not_found_button.
@@ -618,13 +618,13 @@ abstract class AppLocalizations {
/// No description provided for @zipCode.
///
/// In en, this message translates to:
- /// **'Zip code'**
+ /// **'Postal code'**
String get zipCode;
/// No description provided for @city.
///
/// In en, this message translates to:
- /// **'City'**
+ /// **'Town'**
String get city;
/// No description provided for @country.
@@ -636,13 +636,13 @@ abstract class AppLocalizations {
/// No description provided for @delete_profile_title.
///
/// In en, this message translates to:
- /// **'You are about to delete your profile'**
+ /// **'You are about to delete your profile.'**
String get delete_profile_title;
/// No description provided for @delete_profile_description.
///
/// In en, this message translates to:
- /// **'Are you sure you want to delete your profile? This action cannot be undone.'**
+ /// **'When you delete your profile, you will lose track of previous stays and your Comwell Club points.'**
String get delete_profile_description;
/// No description provided for @delete_profile_button.
@@ -672,19 +672,19 @@ abstract class AppLocalizations {
/// No description provided for @check_in_your_digital_card_title.
///
/// In en, this message translates to:
- /// **'Your Digital KeyCard'**
+ /// **'Your Key Card'**
String get check_in_your_digital_card_title;
/// No description provided for @check_in_your_digital_card_subtitle.
///
/// In en, this message translates to:
- /// **'Use your phone to open your room. You do not have to check in at the reception'**
+ /// **'Use your mobile phone to open your room. You no longer need to check in at the reception.'**
String get check_in_your_digital_card_subtitle;
/// No description provided for @check_in_your_digital_card_nb.
///
/// In en, this message translates to:
- /// **'NB: If you require a physical keycard, you can always get one from the reception'**
+ /// **'NB: If you want a physical key card, you can always go to reception and get one.'**
String get check_in_your_digital_card_nb;
/// No description provided for @check_in_error_title.
@@ -696,7 +696,7 @@ abstract class AppLocalizations {
/// No description provided for @check_in_error_subtitle.
///
/// In en, this message translates to:
- /// **'We could not find the room. Please check in at the reception.'**
+ /// **'We could not find your room. Please contact the reception.'**
String get check_in_error_subtitle;
/// No description provided for @preregistration_address_title.
@@ -714,7 +714,7 @@ abstract class AppLocalizations {
/// No description provided for @preregistration_address_subtitle.
///
/// In en, this message translates to:
- /// **'It is required by law to know your address'**
+ /// **'It is a legal requirement that we know the address of the primary occupant of the room. This is for fire safety reasons.'**
String get preregistration_address_subtitle;
/// No description provided for @preregistration_address_label_address.
@@ -732,7 +732,7 @@ abstract class AppLocalizations {
/// No description provided for @preregistration_address_label_city.
///
/// In en, this message translates to:
- /// **'City'**
+ /// **'Town'**
String get preregistration_address_label_city;
/// No description provided for @preregistration_address_label_country.
@@ -744,19 +744,19 @@ abstract class AppLocalizations {
/// No description provided for @preregistration_payment_title.
///
/// In en, this message translates to:
- /// **'Payment methods'**
+ /// **'Payment card'**
String get preregistration_payment_title;
/// No description provided for @preregistration_payment_subtitle.
///
/// In en, this message translates to:
- /// **'To stay at Comwell, you need to add a payment method'**
+ /// **'To stay overnight at Comwell, we need a payment card.'**
String get preregistration_payment_subtitle;
/// No description provided for @preregistration_payment_add_card.
///
/// In en, this message translates to:
- /// **'Add card'**
+ /// **'Add map'**
String get preregistration_payment_add_card;
/// No description provided for @preregistration_confirmation_title.
@@ -780,31 +780,31 @@ abstract class AppLocalizations {
/// No description provided for @preregistration_confirmation_payment_card_title.
///
/// In en, this message translates to:
- /// **'Payment method'**
+ /// **'Payment card'**
String get preregistration_confirmation_payment_card_title;
/// No description provided for @preregistration_confirmation_extras_card_title_singular.
///
/// In en, this message translates to:
- /// **'1 extra purchase'**
+ /// **'1 selected Purchase'**
String get preregistration_confirmation_extras_card_title_singular;
/// No description provided for @preregistration_confirmation_extras_card_title_plural.
///
/// In en, this message translates to:
- /// **'{amount} extra purchases'**
+ /// **'{amount} selected add-ons'**
String preregistration_confirmation_extras_card_title_plural(Object amount);
/// No description provided for @preregistration_confirmation_extras_card_subtitle.
///
/// In en, this message translates to:
- /// **'Will be added to your bill'**
+ /// **'Written on your room bill'**
String get preregistration_confirmation_extras_card_subtitle;
/// No description provided for @need_help.
///
/// In en, this message translates to:
- /// **'Need help?'**
+ /// **'Do you need help?'**
String get need_help;
/// No description provided for @call_us.
@@ -816,7 +816,7 @@ abstract class AppLocalizations {
/// No description provided for @call_us_description.
///
/// In en, this message translates to:
- /// **'Enter your phone number below and we will call you.'**
+ /// **'Do you need to get in touch with one of our hotels? Use the button below to call.'**
String get call_us_description;
/// No description provided for @get_a_call.
@@ -828,7 +828,7 @@ abstract class AppLocalizations {
/// No description provided for @get_a_call_description.
///
/// In en, this message translates to:
- /// **'Enter your phone number below and we will call you.'**
+ /// **'Enter your phone number below and we will call you back.'**
String get get_a_call_description;
/// No description provided for @call_received_title.
@@ -840,7 +840,7 @@ abstract class AppLocalizations {
/// No description provided for @call_received_description.
///
/// In en, this message translates to:
- /// **'We have received your contact request. Our team will get back to you soon.'**
+ /// **'We have received your contact request. Our team will contact you soon.'**
String get call_received_description;
/// No description provided for @telephone_number.
@@ -876,7 +876,7 @@ abstract class AppLocalizations {
/// No description provided for @booking_details_page_contact_button_subtitle.
///
/// In en, this message translates to:
- /// **'Contact the reception '**
+ /// **'Get in touch with the reception.'**
String get booking_details_page_contact_button_subtitle;
/// No description provided for @housekeeping_page_title.
@@ -888,49 +888,49 @@ abstract class AppLocalizations {
/// No description provided for @housekeeping_page_subtitle.
///
/// In en, this message translates to:
- /// **'If you wish for housekeeping, you can order it here'**
+ /// **'If you want extra cleaning or replenishment in the room, you can always order it here - at no cost.'**
String get housekeeping_page_subtitle;
/// No description provided for @housekeeping_page_button.
///
/// In en, this message translates to:
- /// **'Order housekeeping'**
+ /// **'Book housekeeping'**
String get housekeeping_page_button;
/// No description provided for @housekeeping_page_service_title_cleaning.
///
/// In en, this message translates to:
- /// **'Cleaning of the room'**
+ /// **'Room cleaning'**
String get housekeeping_page_service_title_cleaning;
/// No description provided for @housekeeping_page_service_title_towels.
///
/// In en, this message translates to:
- /// **'Soap and shampoo'**
+ /// **'Fresh towels'**
String get housekeeping_page_service_title_towels;
/// No description provided for @housekeeping_page_service_title_refill.
///
/// In en, this message translates to:
- /// **'Refill coffee and tea'**
+ /// **'Coffee and tea refills'**
String get housekeeping_page_service_title_refill;
/// No description provided for @housekeeping_page_service_title_trash.
///
/// In en, this message translates to:
- /// **'Fresh towels'**
+ /// **'Garbage collection'**
String get housekeeping_page_service_title_trash;
/// No description provided for @housekeeping_page_service_title_soap.
///
/// In en, this message translates to:
- /// **'Trash removal'**
+ /// **'Soap/shampoo'**
String get housekeeping_page_service_title_soap;
/// No description provided for @housekeeping_page_service_cleaning_subtitle.
///
/// In en, this message translates to:
- /// **'Cleaning is between 11 and 14'**
+ /// **'Cleaning will be done between 11am and 2pm.'**
String get housekeeping_page_service_cleaning_subtitle;
/// No description provided for @housekeeping_page_supplies.
@@ -948,13 +948,13 @@ abstract class AppLocalizations {
/// No description provided for @booking_details_page_housekeeping_button_title_ordered.
///
/// In en, this message translates to:
- /// **'Cleaning is ordered'**
+ /// **'Housekeeping ordered'**
String get booking_details_page_housekeeping_button_title_ordered;
/// No description provided for @booking_details_page_housekeeping_button_subtitle_ordered.
///
/// In en, this message translates to:
- /// **'Cleaning is between 11 and 14'**
+ /// **'Cleaning comes between 11 am and 2 pm'**
String get booking_details_page_housekeeping_button_subtitle_ordered;
/// No description provided for @housekeeping_page_supplies_subtitle_towels.
@@ -984,7 +984,7 @@ abstract class AppLocalizations {
/// No description provided for @booking_details_page_housekeeping_button_title.
///
/// In en, this message translates to:
- /// **'Order housekeeping'**
+ /// **'Book housekeeping'**
String get booking_details_page_housekeeping_button_title;
/// No description provided for @booking_details_page_housekeeping_button_subtitle.
@@ -1050,19 +1050,19 @@ abstract class AppLocalizations {
/// No description provided for @hotel_information_page_menu_other_info_title.
///
/// In en, this message translates to:
- /// **'More information'**
+ /// **'Other information'**
String get hotel_information_page_menu_other_info_title;
/// No description provided for @hotel_information_page_menu_other_info_subtitle.
///
/// In en, this message translates to:
- /// **'Find more information'**
+ /// **'Find more information about the hotel'**
String get hotel_information_page_menu_other_info_subtitle;
/// No description provided for @hotel_information_page_spa_button.
///
/// In en, this message translates to:
- /// **'Book spa'**
+ /// **'Book a spa'**
String get hotel_information_page_spa_button;
/// No description provided for @restaurant_page_practical_information.
@@ -1074,7 +1074,7 @@ abstract class AppLocalizations {
/// No description provided for @restaurant_page_address.
///
/// In en, this message translates to:
- /// **'Addrese'**
+ /// **'Address'**
String get restaurant_page_address;
/// No description provided for @restaurant_page_opening_hours.
@@ -1086,7 +1086,7 @@ abstract class AppLocalizations {
/// No description provided for @restaurant_page_book_table.
///
/// In en, this message translates to:
- /// **'Book table'**
+ /// **'Book a table'**
String get restaurant_page_book_table;
/// No description provided for @restaurant_page_send_email.
@@ -1098,7 +1098,7 @@ abstract class AppLocalizations {
/// No description provided for @overview_page_check_in_button_subtitle.
///
/// In en, this message translates to:
- /// **'Get your digital key card'**
+ /// **'Get your digital key card immediately'**
String get overview_page_check_in_button_subtitle;
/// No description provided for @checkout_page_confirmation_title.
@@ -1110,19 +1110,19 @@ abstract class AppLocalizations {
/// No description provided for @checkout_page_confirmation_subtitle.
///
/// In en, this message translates to:
- /// **'When you check out, you have 30 minutes to leave your room'**
+ /// **'When you confirm your check-out, you have 30 minutes to leave the room before your key card will stop working.'**
String get checkout_page_confirmation_subtitle;
/// No description provided for @checkout_page_confirmation_deadline.
///
/// In en, this message translates to:
- /// **'Check out latest at 10 AM'**
+ /// **'Your check-out must be no later than 10:00 AM.'**
String get checkout_page_confirmation_deadline;
/// No description provided for @checkout_page_confirmation_price_title.
///
/// In en, this message translates to:
- /// **'To be paid'**
+ /// **'For payment'**
String get checkout_page_confirmation_price_title;
/// No description provided for @checkout_page_confirmation_continue.
@@ -1134,7 +1134,7 @@ abstract class AppLocalizations {
/// No description provided for @checkout_page_payment_title.
///
/// In en, this message translates to:
- /// **'Payment overview'**
+ /// **'Payment summary'**
String get checkout_page_payment_title;
/// No description provided for @checkout_page_payment_total.
@@ -1164,7 +1164,7 @@ abstract class AppLocalizations {
/// No description provided for @checkout_page_payment_club_points_subtitle_zero.
///
/// In en, this message translates to:
- /// **'You have no points to use'**
+ /// **'You have no points to use.'**
String get checkout_page_payment_club_points_subtitle_zero;
/// No description provided for @checkout_page_payment_payment_title.
@@ -1176,25 +1176,25 @@ abstract class AppLocalizations {
/// No description provided for @checkout_page_confirmation.
///
/// In en, this message translates to:
- /// **'Go to checkout'**
+ /// **'Go to check out'**
String get checkout_page_confirmation;
/// No description provided for @accept_terms.
///
/// In en, this message translates to:
- /// **'Accept terms and conditions'**
+ /// **'Accept the terms and conditions'**
String get accept_terms;
/// No description provided for @checkout_page_payment_dialog_title.
///
/// In en, this message translates to:
- /// **'Are you sure you want to check out?'**
+ /// **'Are you sure you want to check out of the hotel?'**
String get checkout_page_payment_dialog_title;
/// No description provided for @checkout_page_payment_dialog_subtitle.
///
/// In en, this message translates to:
- /// **'When you check out, you have 30 minutes to leave your room'**
+ /// **'Once you confirm, you have 30 minutes to vacate your room.'**
String get checkout_page_payment_dialog_subtitle;
/// No description provided for @checkout_page_payment_dialog_confirm.
@@ -1218,13 +1218,13 @@ abstract class AppLocalizations {
/// No description provided for @checkout_page_processing_success_subtitle.
///
/// In en, this message translates to:
- /// **'You have 30 minutes to leave your room, after which you will no longer be able to use your keycard.'**
+ /// **'Your check-out is now confirmed and you now have 30 minutes to leave your room. After that, you will no longer be able to use your key card.'**
String get checkout_page_processing_success_subtitle;
/// No description provided for @checkout_page_processing_success_subtitle_no_digital_card.
///
/// In en, this message translates to:
- /// **'You are now checked out. Please return your key to the reception'**
+ /// **'You are now checked out. Remember to return your key to the lobby.'**
String get checkout_page_processing_success_subtitle_no_digital_card;
/// No description provided for @checkout_page_processing_error_title.
@@ -1236,19 +1236,19 @@ abstract class AppLocalizations {
/// No description provided for @checkout_page_processing_error_subtitle.
///
/// In en, this message translates to:
- /// **'An error occurred while checking out. Please go to the reception.'**
+ /// **'There was an error during check-out. Please contact the reception.'**
String get checkout_page_processing_error_subtitle;
/// No description provided for @payment_cards_title.
///
/// In en, this message translates to:
- /// **'Payment cards'**
+ /// **'Payment card'**
String get payment_cards_title;
/// No description provided for @payment_cards_subtitle.
///
/// In en, this message translates to:
- /// **'To stay at Comwell, we need a payment card.'**
+ /// **'To stay overnight at Comwell, we need a payment card.'**
String get payment_cards_subtitle;
/// No description provided for @payment_cards_my_cards.
@@ -1260,13 +1260,13 @@ abstract class AppLocalizations {
/// No description provided for @payment_cards_confirm_remove_title.
///
/// In en, this message translates to:
- /// **'You are removing the card'**
+ /// **'You are about to remove a payment card.'**
String get payment_cards_confirm_remove_title;
/// No description provided for @payment_cards_confirm_remove_subtitle.
///
/// In en, this message translates to:
- /// **'This payment card will no longer be usable'**
+ /// **'This payment card will no longer be available if you delete it.'**
String get payment_cards_confirm_remove_subtitle;
/// No description provided for @payment_cards_remove_card_button.
@@ -1278,49 +1278,49 @@ abstract class AppLocalizations {
/// No description provided for @payment_cards_edit_card_title.
///
/// In en, this message translates to:
- /// **'Edit card'**
+ /// **'Edit map'**
String get payment_cards_edit_card_title;
/// No description provided for @payment_cards_save_card_button.
///
/// In en, this message translates to:
- /// **'Save card'**
+ /// **'Save map'**
String get payment_cards_save_card_button;
/// No description provided for @share_booking_page_title.
///
/// In en, this message translates to:
- /// **'Share booking'**
+ /// **'Share stay'**
String get share_booking_page_title;
/// No description provided for @share_booking_page_subtitle.
///
/// In en, this message translates to:
- /// **'Here you can share your booking with another guest and give them access to booking information, keycard and Concierge'**
+ /// **'Here you can share your stay with another guest and give them access to booking information, key cards and Concierge'**
String get share_booking_page_subtitle;
/// No description provided for @share_booking_page_share_button.
///
/// In en, this message translates to:
- /// **'Share your booking'**
+ /// **'Share your stay'**
String get share_booking_page_share_button;
/// No description provided for @handle_guests_title.
///
/// In en, this message translates to:
- /// **'Handle guests'**
+ /// **'Manage guests'**
String get handle_guests_title;
/// No description provided for @cancel_sharing.
///
/// In en, this message translates to:
- /// **'Cancel sharing'**
+ /// **'Undo sharing'**
String get cancel_sharing;
/// No description provided for @check_out_my_booking.
///
/// In en, this message translates to:
- /// **'Check out my booking'**
+ /// **'Check out of my stay'**
String get check_out_my_booking;
/// No description provided for @dates.
@@ -1344,13 +1344,13 @@ abstract class AppLocalizations {
/// No description provided for @view_booking.
///
/// In en, this message translates to:
- /// **'View booking'**
+ /// **'See booking'**
String get view_booking;
/// No description provided for @comwell_booking.
///
/// In en, this message translates to:
- /// **'Comwell Booking'**
+ /// **'Comwell Stay'**
String get comwell_booking;
/// No description provided for @name_on_card_hint.
@@ -1362,13 +1362,13 @@ abstract class AppLocalizations {
/// No description provided for @card_number_hint.
///
/// In en, this message translates to:
- /// **'Card number'**
+ /// **'Shortcode'**
String get card_number_hint;
/// No description provided for @expiry_date_hint.
///
/// In en, this message translates to:
- /// **'Expiry date'**
+ /// **'Expiration date'**
String get expiry_date_hint;
/// No description provided for @cvc_hint.
@@ -1398,7 +1398,7 @@ abstract class AppLocalizations {
/// No description provided for @guest_removal_responsibility.
///
/// In en, this message translates to:
- /// **'You will be responsible for all things purchased on the room at checkout '**
+ /// **'You will be responsible for all in-room purchases upon check-out (316 DKK)'**
String get guest_removal_responsibility;
/// No description provided for @notifications_page_title.
@@ -1416,25 +1416,25 @@ abstract class AppLocalizations {
/// No description provided for @company_deal.
///
/// In en, this message translates to:
- /// **'Company deal'**
+ /// **'Company agreement'**
String get company_deal;
/// No description provided for @company_deal_subtitle.
///
/// In en, this message translates to:
- /// **'Yes, I would like to receive relevant information related to the company agreement from Comwell A/S via email and SMS. You can unsubscribe at any time by clicking the unsubscribe link at the bottom of the email.'**
+ /// **'Yes, I would like to receive relevant information related to the company agreement from Comwell A/S via email and SMS. You can terminate your registration at any time by clicking the exit link at the bottom of the email.'**
String get company_deal_subtitle;
/// No description provided for @club_newsletter.
///
/// In en, this message translates to:
- /// **'Club newsletter'**
+ /// **'Comwell Club newsletter'**
String get club_newsletter;
/// No description provided for @club_newsletter_subtitle.
///
/// In en, this message translates to:
- /// **'Yes, I would like to recieve e-mails with exiciting offers regarding hotel stays and events at Comwell. I can at any time, unsubscribe.'**
+ /// **'Yes, I would like to receive emails with exciting offers on hotel stays and events at Comwell Hotels. I can unsubscribe at any time.'**
String get club_newsletter_subtitle;
/// No description provided for @digital_media.
@@ -1446,7 +1446,7 @@ abstract class AppLocalizations {
/// No description provided for @digital_media_subtitle.
///
/// In en, this message translates to:
- /// **'Yes, I would like see personalized digital media advertising with news, inspiration and invitations to events. I can at any time, unsubscribe.'**
+ /// **'Yes, I would like to see personalized digital advertisements with news, inspiration and invitations to events. I can unsubscribe at any time.'**
String get digital_media_subtitle;
/// No description provided for @sms.
@@ -1458,19 +1458,19 @@ abstract class AppLocalizations {
/// No description provided for @sms_subtitle.
///
/// In en, this message translates to:
- /// **'Yes, I would like to recieve SMS with news, inspiration and invitations to events. I can at any time, unsubscribe.'**
+ /// **'Yes, I would like to receive SMS with news, inspiration and invitations to events. I can unsubscribe at any time.'**
String get sms_subtitle;
/// No description provided for @email_subtitle.
///
/// In en, this message translates to:
- /// **'Yes, I would like to receive emails with news, inspiration and invitations to events. I can at any time, unsubscribe.'**
+ /// **'Yes, I would like to receive emails with news, inspiration and invitations to events. I can unsubscribe at any time.'**
String get email_subtitle;
/// No description provided for @push_subtitle.
///
/// In en, this message translates to:
- /// **'Yes, I would like to receive push notifications with news, inspiration and invitations to events. I can at any time, unsubscribe.'**
+ /// **'Yes, I would like to receive push notifications with news, inspiration and invitations to events. I can unsubscribe at any time.'**
String get push_subtitle;
/// No description provided for @update_profile.
@@ -1488,7 +1488,7 @@ abstract class AppLocalizations {
/// No description provided for @gender.
///
/// In en, this message translates to:
- /// **'Gender'**
+ /// **'Sex'**
String get gender;
/// No description provided for @comwell_club_dialog_title.
@@ -1500,7 +1500,7 @@ abstract class AppLocalizations {
/// No description provided for @comwell_club_dialog_description.
///
/// In en, this message translates to:
- /// **'Please fill in the following information to join Comwell Club'**
+ /// **'Enter the following information to become a member of Comwell Club'**
String get comwell_club_dialog_description;
/// No description provided for @postal_code.
@@ -1512,37 +1512,37 @@ abstract class AppLocalizations {
/// No description provided for @male.
///
/// In en, this message translates to:
- /// **'Male'**
+ /// **'Man'**
String get male;
/// No description provided for @female.
///
/// In en, this message translates to:
- /// **'Female'**
+ /// **'Woman'**
String get female;
/// No description provided for @not_specified.
///
/// In en, this message translates to:
- /// **'Not Specified'**
+ /// **'Not specified'**
String get not_specified;
/// No description provided for @tos_accept.
///
/// In en, this message translates to:
- /// **'Accept '**
+ /// **'Accept'**
String get tos_accept;
/// No description provided for @tos_accept_link.
///
/// In en, this message translates to:
- /// **'terms and conditions for Comwell Club'**
+ /// **'Comwell Club rules and conditions'**
String get tos_accept_link;
/// No description provided for @newsletter_accept.
///
/// In en, this message translates to:
- /// **'Yes, I would like to receive updates on current member offers, Comwell Club surprises and other recommendations tailored to me. I can unsubscribe at any time.'**
+ /// **'Yes, I would like to be updated on current member offers, Comwell Club surprises and other recommendations tailored to me. I can unsubscribe at any time.'**
String get newsletter_accept;
/// No description provided for @read_more.
@@ -1566,7 +1566,7 @@ abstract class AppLocalizations {
/// No description provided for @points.
///
/// In en, this message translates to:
- /// **'Points'**
+ /// **'Point'**
String get points;
/// No description provided for @my_balance.
@@ -1578,19 +1578,19 @@ abstract class AppLocalizations {
/// No description provided for @cancel_booking.
///
/// In en, this message translates to:
- /// **'Cancel booking'**
+ /// **'Cancel stay'**
String get cancel_booking;
/// No description provided for @cancellation_policy.
///
/// In en, this message translates to:
- /// **'Cancellation policy'**
+ /// **'Cancellation conditions'**
String get cancellation_policy;
/// No description provided for @cancellation_policy_description.
///
/// In en, this message translates to:
- /// **'This booking can be cancelled free of charge until the day of arrival. If cancelled later than 14.01, the first night will be charged.'**
+ /// **'This stay can be cancelled free of charge until 12.11.2024 at 15:00 on the day of arrival. If cancelled later than 14.01, the first night will be invoiced.'**
String get cancellation_policy_description;
/// No description provided for @payment_date.
@@ -1608,13 +1608,13 @@ abstract class AppLocalizations {
/// No description provided for @share_booking.
///
/// In en, this message translates to:
- /// **'Share booking'**
+ /// **'Share stay'**
String get share_booking;
/// No description provided for @total_charge.
///
/// In en, this message translates to:
- /// **'Total charge'**
+ /// **'Total for payment'**
String get total_charge;
/// No description provided for @early_checkin.
@@ -1668,13 +1668,13 @@ abstract class AppLocalizations {
/// No description provided for @generic_error_profile_page.
///
/// In en, this message translates to:
- /// **'An error occurred. Please try again later. Or logout and try again.'**
+ /// **'An error occurred. Please try again later. Or log out and try again.'**
String get generic_error_profile_page;
/// No description provided for @profile_error_name.
///
/// In en, this message translates to:
- /// **'Failed to load profile information'**
+ /// **'Error loading profile information'**
String get profile_error_name;
/// No description provided for @error.
@@ -1686,13 +1686,13 @@ abstract class AppLocalizations {
/// No description provided for @error_logout.
///
/// In en, this message translates to:
- /// **'There has been an error'**
+ /// **'An error occurred.'**
String get error_logout;
/// No description provided for @error_logout_subtitle.
///
/// In en, this message translates to:
- /// **'Please log in again'**
+ /// **'You have been logged out. Please log in again.'**
String get error_logout_subtitle;
/// No description provided for @edit.
@@ -1704,7 +1704,7 @@ abstract class AppLocalizations {
/// No description provided for @error_cards.
///
/// In en, this message translates to:
- /// **'Failed to load cards, try again later'**
+ /// **'Error loading map, please try again later.'**
String get error_cards;
/// No description provided for @check_in_button_timer_days_hours_minutes.
@@ -1734,13 +1734,13 @@ abstract class AppLocalizations {
/// No description provided for @approve_conditions_title.
///
/// In en, this message translates to:
- /// **'I accept '**
+ /// **'I accept'**
String get approve_conditions_title;
/// No description provided for @approve_conditions_subtitle.
///
/// In en, this message translates to:
- /// **'terms and conditions'**
+ /// **'the conditions'**
String get approve_conditions_subtitle;
/// No description provided for @up_sales_title.
@@ -1752,7 +1752,7 @@ abstract class AppLocalizations {
/// No description provided for @up_sales_subtitle.
///
/// In en, this message translates to:
- /// **'With early check-in you can check in at 13.00 instead of 15.00.'**
+ /// **'With early check-in, you can check in at 1:00 PM instead of 3:00 PM.'**
String get up_sales_subtitle;
/// No description provided for @up_sales_popular.
@@ -1782,13 +1782,13 @@ abstract class AppLocalizations {
/// No description provided for @up_sales_catalog_button_subtitle.
///
/// In en, this message translates to:
- /// **'Here you can see and order products and write them automatically on your room bill.'**
+ /// **'Here you can view and order products and have them automatically added to your room bill.'**
String get up_sales_catalog_button_subtitle;
/// No description provided for @up_sales_catalog_title.
///
/// In en, this message translates to:
- /// **'Upgrades & Services'**
+ /// **'Purchase options'**
String get up_sales_catalog_title;
/// No description provided for @room_upgrades.
@@ -1800,7 +1800,7 @@ abstract class AppLocalizations {
/// No description provided for @other_up_sales.
///
/// In en, this message translates to:
- /// **'Other upgrades'**
+ /// **'Other purchases'**
String get other_up_sales;
/// No description provided for @read_more_up_sales.
@@ -1812,25 +1812,25 @@ abstract class AppLocalizations {
/// No description provided for @continue_without_up_sales.
///
/// In en, this message translates to:
- /// **'Continue without upgrades'**
+ /// **'Continue without purchase'**
String get continue_without_up_sales;
/// No description provided for @open_maps_error_title.
///
/// In en, this message translates to:
- /// **'Cannot open maps'**
+ /// **'Can\'t open map'**
String get open_maps_error_title;
/// No description provided for @open_maps_error_subtitle.
///
/// In en, this message translates to:
- /// **'No maps application is available.'**
+ /// **'No map program is available.'**
String get open_maps_error_subtitle;
/// No description provided for @apple_maps.
///
/// In en, this message translates to:
- /// **'Apple Maps'**
+ /// **'Apple Card'**
String get apple_maps;
/// No description provided for @google_maps.
@@ -1872,19 +1872,19 @@ abstract class AppLocalizations {
/// No description provided for @confirm_up_sales_dialog_title.
///
/// In en, this message translates to:
- /// **'Confirm upgrades'**
+ /// **'Confirm purchase'**
String get confirm_up_sales_dialog_title;
/// No description provided for @confirm_up_sales_dialog_subtitle.
///
/// In en, this message translates to:
- /// **'Are you sure you want to add these upgrades for {amount} kr to your booking?'**
+ /// **'Are you sure you want to add these {amount} DKK extras to your booking?'**
String confirm_up_sales_dialog_subtitle(Object amount);
/// No description provided for @confirm_up_sales_dialog_confirm.
///
/// In en, this message translates to:
- /// **'Yes, add upgrades'**
+ /// **'Yes, add additional purchases'**
String get confirm_up_sales_dialog_confirm;
/// No description provided for @confirm_up_sales_dialog_cancel.
@@ -1896,13 +1896,13 @@ abstract class AppLocalizations {
/// No description provided for @email_launch_error.
///
/// In en, this message translates to:
- /// **'Could not launch email client'**
+ /// **'Could not open email client'**
String get email_launch_error;
/// No description provided for @phone_launch_error.
///
/// In en, this message translates to:
- /// **'Could not launch phone call'**
+ /// **'Could not open phone'**
String get phone_launch_error;
/// No description provided for @balance.
@@ -1914,13 +1914,13 @@ abstract class AppLocalizations {
/// No description provided for @new_booking.
///
/// In en, this message translates to:
- /// **'Make a new booking'**
+ /// **'Book a new stay'**
String get new_booking;
/// No description provided for @error_opening_website.
///
/// In en, this message translates to:
- /// **'Failed to open the website. Please try again later.'**
+ /// **'Could not open the website. Please try again later.'**
String get error_opening_website;
/// No description provided for @error_opening_website_title.
@@ -1932,25 +1932,25 @@ abstract class AppLocalizations {
/// No description provided for @room_selection.
///
/// In en, this message translates to:
- /// **'Room selection'**
+ /// **'Select room'**
String get room_selection;
/// No description provided for @room_selection_subtitle.
///
/// In en, this message translates to:
- /// **'Select a room for your stay'**
+ /// **'Allocate guests to the rooms you have booked'**
String get room_selection_subtitle;
/// No description provided for @choose_room.
///
/// In en, this message translates to:
- /// **'Choose room'**
+ /// **'Allocate rooms'**
String get choose_room;
/// No description provided for @choose_room_subtitle.
///
/// In en, this message translates to:
- /// **'You need to choose the room you want to sleep in. When you have chosen, you can assign the other rooms to others.'**
+ /// **'You must first choose your own room. Then you can assign the other rooms.'**
String get choose_room_subtitle;
/// No description provided for @check_in_date.
@@ -1986,13 +1986,13 @@ abstract class AppLocalizations {
/// No description provided for @choose_room_confirmation_subtitle.
///
/// In en, this message translates to:
- /// **'You cannot undo your choice. Remaining rooms must be assigned.'**
+ /// **'You cannot undo your choice.'**
String get choose_room_confirmation_subtitle;
/// No description provided for @choose_room_confirmation_confirm.
///
/// In en, this message translates to:
- /// **'Yes, choose room'**
+ /// **'Yes, select room'**
String get choose_room_confirmation_confirm;
/// No description provided for @choose_room_confirmation_cancel.
@@ -2022,7 +2022,7 @@ abstract class AppLocalizations {
/// No description provided for @share_room_page_subtitle.
///
/// In en, this message translates to:
- /// **'Here you can share your room with another guest and give them access to booking information, keycard and Concierge'**
+ /// **'Here you can share your room with another guest and give them access to booking information, key cards and Concierge'**
String get share_room_page_subtitle;
/// No description provided for @share_room_page_button.
@@ -2034,31 +2034,31 @@ abstract class AppLocalizations {
/// No description provided for @addon.
///
/// In en, this message translates to:
- /// **'Added purchase'**
+ /// **'Additional purchases'**
String get addon;
/// No description provided for @added_to_room.
///
/// In en, this message translates to:
- /// **'Added to room'**
+ /// **'Purchased in room'**
String get added_to_room;
/// No description provided for @force_update_title.
///
/// In en, this message translates to:
- /// **'Update required'**
+ /// **'Update to use the app'**
String get force_update_title;
/// No description provided for @force_update_description.
///
/// In en, this message translates to:
- /// **'To continue using the app, please update to the latest version.'**
+ /// **'There is a required update to the app that requires you to update in order to continue.'**
String get force_update_description;
/// No description provided for @force_update_button.
///
/// In en, this message translates to:
- /// **'Go to App Store'**
+ /// **'Go to the App Store'**
String get force_update_button;
/// No description provided for @invalid_birthday.
@@ -2070,19 +2070,19 @@ abstract class AppLocalizations {
/// No description provided for @invalid_birthday_description.
///
/// In en, this message translates to:
- /// **'Your saved birthday is not allowed. Please pick a new date.'**
+ /// **'Your saved birthday is not allowed. Please choose a new date.'**
String get invalid_birthday_description;
/// No description provided for @up_sales_confirmation_title.
///
/// In en, this message translates to:
- /// **'Payment overview'**
+ /// **'Payment summary'**
String get up_sales_confirmation_title;
/// No description provided for @up_sales_confirmation_no_up_sales.
///
/// In en, this message translates to:
- /// **'No upgrades selected.'**
+ /// **'No options selected.'**
String get up_sales_confirmation_no_up_sales;
/// No description provided for @facilities.
@@ -2094,19 +2094,19 @@ abstract class AppLocalizations {
/// No description provided for @remove.
///
/// In en, this message translates to:
- /// **'Remove'**
+ /// **'Remote'**
String get remove;
/// No description provided for @up_sales_processing_error_title.
///
/// In en, this message translates to:
- /// **'Failed to add addons'**
+ /// **'Could not add add-ons'**
String get up_sales_processing_error_title;
/// No description provided for @up_sales_processing_error_subtitle.
///
/// In en, this message translates to:
- /// **'Addons are not available at the moment. Please try again later.'**
+ /// **'Upgrades are not working at the moment. Please try again later.'**
String get up_sales_processing_error_subtitle;
/// No description provided for @pay_bill.
@@ -2118,13 +2118,13 @@ abstract class AppLocalizations {
/// No description provided for @discount.
///
/// In en, this message translates to:
- /// **'Comwell Club Points Discount'**
+ /// **'Comwell Club Point Discount'**
String get discount;
/// No description provided for @error_preregistration.
///
/// In en, this message translates to:
- /// **'Failed to preregister, go to reception'**
+ /// **'Could not preregister, go to reception'**
String get error_preregistration;
/// No description provided for @get_keys.
@@ -2136,13 +2136,13 @@ abstract class AppLocalizations {
/// No description provided for @get_keys_subtitle.
///
/// In en, this message translates to:
- /// **'Get your digital key card'**
+ /// **'Get your digital key card immediately'**
String get get_keys_subtitle;
/// No description provided for @add_card.
///
/// In en, this message translates to:
- /// **'Add card'**
+ /// **'Add map'**
String get add_card;
/// No description provided for @total.
@@ -2154,61 +2154,61 @@ abstract class AppLocalizations {
/// No description provided for @profile_error_title.
///
/// In en, this message translates to:
- /// **'Could not load your profile'**
+ /// **'Could not load your profile.'**
String get profile_error_title;
/// No description provided for @profile_error_subtitle.
///
/// In en, this message translates to:
- /// **'An error occurred. Please try again later.'**
+ /// **'An error has occurred. Please try again later.'**
String get profile_error_subtitle;
/// No description provided for @generic_error_title.
///
/// In en, this message translates to:
- /// **'There was an error'**
+ /// **'An error has occurred.'**
String get generic_error_title;
/// No description provided for @notifications_error_subtitle.
///
/// In en, this message translates to:
- /// **'Notifications could not be loaded. Please try again later.'**
+ /// **'Notifications cannot be retrieved at this time. Please try again later.'**
String get notifications_error_subtitle;
/// No description provided for @payment_cards_error_subtitle.
///
/// In en, this message translates to:
- /// **'Payment cards could not be loaded. Please try again later.'**
+ /// **'Your payment cards cannot be retrieved at this time. Please try again later.'**
String get payment_cards_error_subtitle;
/// No description provided for @hotel_information_error_subtitle.
///
/// In en, this message translates to:
- /// **'Hotel information could not be loaded. Please try again later.'**
+ /// **'The hotel information cannot be retrieved at this time. Please try again later.'**
String get hotel_information_error_subtitle;
/// No description provided for @overview_error_title.
///
/// In en, this message translates to:
- /// **'Could not load your bookings'**
+ /// **'Could not load your bookings.'**
String get overview_error_title;
/// No description provided for @overview_error_subtitle.
///
/// In en, this message translates to:
- /// **'An error occurred. We could not load your bookings. Please try again later.'**
+ /// **'An error occurred. We were unable to load your bookings. Please try again later.'**
String get overview_error_subtitle;
/// No description provided for @up_sales_error_title.
///
/// In en, this message translates to:
- /// **'Could not load up sales'**
+ /// **'Add-on purchases are currently unavailable.'**
String get up_sales_error_title;
/// No description provided for @up_sales_error_subtitle.
///
/// In en, this message translates to:
- /// **'An error occurred. We could not load up sales. Please try again later.'**
+ /// **'An error has occurred. Please try again later.'**
String get up_sales_error_subtitle;
/// No description provided for @choose_room_error_title.
@@ -2220,25 +2220,25 @@ abstract class AppLocalizations {
/// No description provided for @choose_room_error_subtitle.
///
/// In en, this message translates to:
- /// **'An error occurred. Please try again later or go to the reception.'**
+ /// **'An error has occurred. Please try again later or go to the front desk.'**
String get choose_room_error_subtitle;
/// No description provided for @share_booking_error_title.
///
/// In en, this message translates to:
- /// **'Could not find guests on the room'**
+ /// **'Could not find the guests in the room'**
String get share_booking_error_title;
/// No description provided for @share_booking_error_subtitle.
///
/// In en, this message translates to:
- /// **'An error occurred. Please try again later.'**
+ /// **'An error has occurred. Please try again later.'**
String get share_booking_error_subtitle;
/// No description provided for @refresh_bookings.
///
/// In en, this message translates to:
- /// **'Refresh bookings'**
+ /// **'Update bookings'**
String get refresh_bookings;
/// No description provided for @document_type.
@@ -2262,7 +2262,7 @@ abstract class AppLocalizations {
/// No description provided for @document_type_driver_license.
///
/// In en, this message translates to:
- /// **'Driver license'**
+ /// **'Driving license'**
String get document_type_driver_license;
/// No description provided for @document_type_other.
@@ -2280,13 +2280,13 @@ abstract class AppLocalizations {
/// No description provided for @up_sales_catalog_no_up_sales_title.
///
/// In en, this message translates to:
- /// **'No upgrades available'**
+ /// **'No options available'**
String get up_sales_catalog_no_up_sales_title;
/// No description provided for @up_sales_catalog_no_up_sales_subtitle.
///
/// In en, this message translates to:
- /// **'No upgrades are available at the moment. Please try again later.'**
+ /// **'There are no options available at this time. Please try again later.'**
String get up_sales_catalog_no_up_sales_subtitle;
/// No description provided for @payment_cards_missing_payment_method_title.
@@ -2316,7 +2316,7 @@ abstract class AppLocalizations {
/// No description provided for @share_booking_message.
///
/// In en, this message translates to:
- /// **'{name} would like to share a booking with you at Comwell {hotel}. Access via the link: {url}'**
+ /// **'{name} would like to share a stay with you at Comwell {hotel}. Access via the link: {url}'**
String share_booking_message(Object hotel, Object name, Object url);
/// No description provided for @check_in_page_error_title.
@@ -2328,13 +2328,13 @@ abstract class AppLocalizations {
/// No description provided for @check_in_page_error_subtitle.
///
/// In en, this message translates to:
- /// **'We could not find the room. Please check in at the reception.'**
+ /// **'We could not find your room. Please contact the reception.'**
String get check_in_page_error_subtitle;
/// No description provided for @remove_guest_overview.
///
/// In en, this message translates to:
- /// **'Remove'**
+ /// **'Remote'**
String get remove_guest_overview;
/// No description provided for @home_page.
@@ -2352,13 +2352,13 @@ abstract class AppLocalizations {
/// No description provided for @download_bill.
///
/// In en, this message translates to:
- /// **'Get receipt'**
+ /// **'Get a receipt sent to you'**
String get download_bill;
/// No description provided for @bill_email_placeholder.
///
/// In en, this message translates to:
- /// **'E-mail'**
+ /// **'Email'**
String get bill_email_placeholder;
/// No description provided for @payment_overview_send_receipt_title.
@@ -2382,7 +2382,7 @@ abstract class AppLocalizations {
/// No description provided for @payment_overview_send_receipt_hint.
///
/// In en, this message translates to:
- /// **'Enter comment'**
+ /// **'Insert comment'**
String get payment_overview_send_receipt_hint;
/// No description provided for @key_page_room_prefix.
@@ -2394,7 +2394,7 @@ abstract class AppLocalizations {
/// No description provided for @please_accept_terms.
///
/// In en, this message translates to:
- /// **'Please accept terms'**
+ /// **'Accept the terms'**
String get please_accept_terms;
/// No description provided for @received_shared_room_page_subtitle.
@@ -2430,7 +2430,7 @@ abstract class AppLocalizations {
/// No description provided for @accept_notifications_rationale.
///
/// In en, this message translates to:
- /// **'To get the latest updates on your booking, please allow notifications'**
+ /// **'To get the latest updates about your booking, please allow notifications'**
String get accept_notifications_rationale;
/// No description provided for @allow.
@@ -2448,25 +2448,25 @@ abstract class AppLocalizations {
/// No description provided for @internet_disabled.
///
/// In en, this message translates to:
- /// **'Internet disconnected'**
+ /// **'The Internet is down.'**
String get internet_disabled;
/// No description provided for @please_enable_internet.
///
/// In en, this message translates to:
- /// **'Please check your internet connected'**
+ /// **'Please check your internet connection.'**
String get please_enable_internet;
/// No description provided for @bluetooth_disabled.
///
/// In en, this message translates to:
- /// **'Bluetooth is disabled'**
+ /// **'Bluetooth is disabled.'**
String get bluetooth_disabled;
/// No description provided for @please_enable_bluetooth.
///
/// In en, this message translates to:
- /// **'Please enable bluetooth'**
+ /// **'Activate Bluetooth'**
String get please_enable_bluetooth;
/// No description provided for @allow_usage_tracking.
@@ -2478,7 +2478,7 @@ abstract class AppLocalizations {
/// No description provided for @usage_tracking_rationale.
///
/// In en, this message translates to:
- /// **'Please allow tracking how you use the app'**
+ /// **'Please allow tracking of how you use the app'**
String get usage_tracking_rationale;
/// No description provided for @share_room_subtitle_mvp.
@@ -2498,6 +2498,24 @@ abstract class AppLocalizations {
/// In en, this message translates to:
/// **'We are currently working on making it possible to find your booking digitally here in the app.'**
String get find_booking_subtitle_mvp;
+
+ /// No description provided for @bluetooth_permission_title.
+ ///
+ /// In en, this message translates to:
+ /// **'Allow Bluetooth to unlock your room'**
+ String get bluetooth_permission_title;
+
+ /// No description provided for @bluetooth_permission_description.
+ ///
+ /// In en, this message translates to:
+ /// **'In order to open the door to your hotel room, you must give us permission to use Bluetooth on your phone.'**
+ String get bluetooth_permission_description;
+
+ /// No description provided for @allow_bluetooth.
+ ///
+ /// In en, this message translates to:
+ /// **'Allow Bluetooth'**
+ String get allow_bluetooth;
}
class _AppLocalizationsDelegate extends LocalizationsDelegate<AppLocalizations> {
diff --git a/comwell_key_app/lib/.generated/l10n/app_localizations_da.dart b/comwell_key_app/lib/.generated/l10n/app_localizations_da.dart
index 566e6932..250bd811 100644
--- a/comwell_key_app/lib/.generated/l10n/app_localizations_da.dart
+++ b/comwell_key_app/lib/.generated/l10n/app_localizations_da.dart
@@ -109,7 +109,7 @@ class AppLocalizationsDa extends AppLocalizations {
String get no_past_bookings_title => 'Ingen tidligere ophold';
@override
- String get no_past_bookings_subtitle => 'Du har ingen tidligere overnatninger på Comwell Hotels.';
+ String get no_past_bookings_subtitle => 'Der er ingen tidligere ophold på denne profil';
@override
String get no_cancelled_booking_title => 'Ingen annullerede ophold';
@@ -143,13 +143,13 @@ class AppLocalizationsDa extends AppLocalizations {
String get rooms => 'Værelser';
@override
- String get prepare_room => 'Klargør dit værelse';
+ String get prepare_room => 'Spar tid ved check ind';
@override
- String get jump_line_text => 'Spring køen over med digital check-in';
+ String get jump_line_text => 'Udfyld dine informationer';
@override
- String get overview_add_booking => 'Find booking';
+ String get overview_add_booking => 'Tilføj booking';
@override
String get open_room => 'Åben værelse';
@@ -197,20 +197,20 @@ class AppLocalizationsDa extends AppLocalizations {
String get my_booking => 'Min booking';
@override
- String get booking_reference => 'Bookingreference';
+ String get booking_reference => 'Reservationsnummer';
@override
- String get check_in => 'Check-in';
+ String get check_in => 'Check ind';
@override
- String get check_out => 'Check-out';
+ String get check_out => 'Check ud';
@override
String get overview_page_check_in_physical_card_subtitle =>
'Gå i lobbyen og få udleveret din nøgle';
@override
- String get booking_details => 'Booking';
+ String get booking_details => 'Min booking';
@override
String get number_of_guests => 'Personer';
@@ -219,7 +219,7 @@ class AppLocalizationsDa extends AppLocalizations {
String get booker => 'Booker';
@override
- String get booking_date => 'Booking dato';
+ String get booking_date => 'Dato';
@override
String get payment => 'Betaling';
@@ -234,10 +234,10 @@ class AppLocalizationsDa extends AppLocalizations {
String get get_bill => 'Hent kvittering';
@override
- String get your_last_name => 'Dit efternavn';
+ String get your_last_name => 'Efternavn';
@override
- String get find_booking => 'Find booking';
+ String get find_booking => 'Tilføj booking';
@override
String get choose_hotel => 'Vælg hotel';
@@ -258,7 +258,7 @@ class AppLocalizationsDa extends AppLocalizations {
String get jutland => 'Jylland';
@override
- String get booking_not_found => 'Booking blev ikke fundet';
+ String get booking_not_found => 'Bookingen blev ikke fundet';
@override
String get booking_not_found_subtitle =>
@@ -302,7 +302,7 @@ class AppLocalizationsDa extends AppLocalizations {
String get check_in_room_found_title => 'Værelse fundet...';
@override
- String get check_in_your_digital_card_title => 'Dit Digitale Nøglekort';
+ String get check_in_your_digital_card_title => 'Dit Nøglekort';
@override
String get check_in_your_digital_card_subtitle =>
@@ -810,7 +810,7 @@ class AppLocalizationsDa extends AppLocalizations {
String get total_charge => 'I alt til betaling';
@override
- String get early_checkin => 'Tidlig check-in';
+ String get early_checkin => 'Tidlig check ind';
@override
String get paid => 'BETALT';
@@ -886,11 +886,11 @@ class AppLocalizationsDa extends AppLocalizations {
String get approve_conditions_subtitle => 'betingelserne';
@override
- String get up_sales_title => 'Tidlig check-in';
+ String get up_sales_title => 'Tidlig check ind';
@override
String get up_sales_subtitle =>
- 'Med tidlig check-in kan du checke ind kl. 13.00 i stedet for kl. 15.00.';
+ 'Med tidlig check ind kan du checke ind kl. 13.00 i stedet for kl. 15.00.';
@override
String get up_sales_popular => 'POPULÆR';
@@ -986,14 +986,14 @@ class AppLocalizationsDa extends AppLocalizations {
String get room_selection => 'Vælg værelse';
@override
- String get room_selection_subtitle => 'Vælg et værelse til dit ophold';
+ String get room_selection_subtitle => 'Fordel gæsterne på de værelser, du har booket';
@override
- String get choose_room => 'Vælg dit værelse';
+ String get choose_room => 'Uddel værelser';
@override
String get choose_room_subtitle =>
- 'Du skal vælge dét værelse du gerne vil sove på. Når du har valgt, kan du tildele de andre værelser til andre.';
+ 'Du skal først vælge dit eget værelse. Derefter kan du uddele de andre værelser.';
@override
String get check_in_date => 'Check-in dato';
@@ -1008,11 +1008,10 @@ class AppLocalizationsDa extends AppLocalizations {
String get close => 'Luk';
@override
- String get choose_room_confirmation_title => 'Er du sikker på du vil vælge dette værelse?';
+ String get choose_room_confirmation_title => 'Er du sikker på, du vil vælge dette værelse?';
@override
- String get choose_room_confirmation_subtitle =>
- 'Du kan ikke fortryde dit valg. Resterende værelser skal fordeles.';
+ String get choose_room_confirmation_subtitle => 'Du kan ikke fortryde dit valg.';
@override
String get choose_room_confirmation_confirm => 'Ja, vælg værelse';
@@ -1037,7 +1036,7 @@ class AppLocalizationsDa extends AppLocalizations {
String get share_room_page_button => 'Del dit værelse';
@override
- String get addon => 'Tilkøbt';
+ String get addon => 'Tilkøb';
@override
String get added_to_room => 'Tilkøbt på værelse';
@@ -1234,7 +1233,7 @@ class AppLocalizationsDa extends AppLocalizations {
}
@override
- String get please_accept_terms => 'Accepter venligst vilkårene';
+ String get please_accept_terms => 'Accepterer vilkårene';
@override
String received_shared_room_page_subtitle(Object name) {
@@ -1275,7 +1274,7 @@ class AppLocalizationsDa extends AppLocalizations {
String get bluetooth_disabled => 'Bluetooth er deaktiveret';
@override
- String get please_enable_bluetooth => 'Aktivér venligst Bluetooth';
+ String get please_enable_bluetooth => 'Aktivér bluetooth';
@override
String get allow_usage_tracking => 'Tillad brugssporing';
@@ -1294,4 +1293,14 @@ class AppLocalizationsDa extends AppLocalizations {
@override
String get find_booking_subtitle_mvp =>
'Vi arbejder i øjeblikket på at gøre det muligt at finde din booking digitalt her i appen.';
+
+ @override
+ String get bluetooth_permission_title => 'Tillad Bluetooth til for at låse dit værelse op';
+
+ @override
+ String get bluetooth_permission_description =>
+ 'For at kunne åbne døren til dit hotelværelse skal du give tilladelse til at vi må bruge bluetooth på din telefon.';
+
+ @override
+ String get allow_bluetooth => 'Tillad bluetooth';
}
diff --git a/comwell_key_app/lib/.generated/l10n/app_localizations_en.dart b/comwell_key_app/lib/.generated/l10n/app_localizations_en.dart
index 5bb79a8f..cae52235 100644
--- a/comwell_key_app/lib/.generated/l10n/app_localizations_en.dart
+++ b/comwell_key_app/lib/.generated/l10n/app_localizations_en.dart
@@ -12,7 +12,7 @@ class AppLocalizationsEn extends AppLocalizations {
String get generic_continue => 'Continue';
@override
- String get generic_information_required => 'This information is required';
+ String get generic_information_required => 'This field is required.';
@override
String get generic_confirm => 'Confirm';
@@ -24,7 +24,7 @@ class AppLocalizationsEn extends AppLocalizations {
String get generic_ok => 'OK';
@override
- String get generic_credit_card => 'Credit Card';
+ String get generic_credit_card => 'Credit card';
@override
String get generic_apple_pay => 'Apple Pay';
@@ -33,34 +33,34 @@ class AppLocalizationsEn extends AppLocalizations {
String get generic_google_pay => 'Google Pay';
@override
- String get generic_error => 'An error occurred. Please try again later.';
+ String get generic_error => 'An error occurred. Please try again.';
@override
- String get welcome_headline => 'Welcome at Comwell Hotels';
+ String get welcome_headline => 'Welcome to Comwell Hotels';
@override
String get welcome_button => 'Continue';
@override
- String get welcome_error => 'An error occurred. Please try again later.';
+ String get welcome_error => 'An error has occurred. Restart the app.';
@override
- String get room_key => 'Room key';
+ String get room_key => 'Key';
@override
- String get room_keys => 'Room keys';
+ String get room_keys => 'Keys';
@override
String get redeem_code => 'Redeem code';
@override
- String get error_opening_door => 'An error occurred';
+ String get error_opening_door => 'An error occurred.';
@override
String get try_again => 'Try again';
@override
- String get room_key_description => 'This is your room key';
+ String get room_key_description => 'This is your room key.';
@override
String get login_button => 'Login';
@@ -78,10 +78,10 @@ class AppLocalizationsEn extends AppLocalizations {
String get notifications_profile_menu => 'Notifications';
@override
- String get logout_profile_menu => 'Logout';
+ String get logout_profile_menu => 'Log out';
@override
- String get logout_dialog_title => 'Do you want to log out of your profile';
+ String get logout_dialog_title => 'Do you want to log out of your profile?';
@override
String get cancel => 'Cancel';
@@ -90,32 +90,32 @@ class AppLocalizationsEn extends AppLocalizations {
String get name_cc_sign => 'Name';
@override
- String get become_cc_member_title => 'Join comwell club';
+ String get become_cc_member_title => 'Become a member of comwell club';
@override
String get become_cc_member_subtitle =>
- 'Join and earn points every time you stay at a Comwell Hotel.';
+ 'Become a member and earn points every time you stay at a Comwell Hotel.';
@override
String get overview_tabbar_active => 'Current';
@override
- String get overview_tabbar_past => 'Past';
+ String get overview_tabbar_past => 'Previous';
@override
String get overview_tabbar_cancelled => 'Cancelled';
@override
- String get no_past_bookings_title => 'No past stays';
+ String get no_past_bookings_title => 'No previous stays';
@override
- String get no_past_bookings_subtitle => 'You have no past stays at Comwell Hotels.';
+ String get no_past_bookings_subtitle => 'There are no previous stays on this profile.';
@override
String get no_cancelled_booking_title => 'No cancelled stays';
@override
- String get no_cancelled_booking_subtitle => 'You have no cancelled stays with us.';
+ String get no_cancelled_booking_subtitle => 'You have no canceled nights with us.';
@override
String get booking_annulled => 'Cancelled';
@@ -143,19 +143,19 @@ class AppLocalizationsEn extends AppLocalizations {
String get rooms => 'Rooms';
@override
- String get prepare_room => 'Prepare your room';
+ String get prepare_room => 'Save time at check-in';
@override
- String get jump_line_text => 'Skip the line with digital check-in';
+ String get jump_line_text => 'Fill in your information';
@override
- String get overview_add_booking => 'Find booking';
+ String get overview_add_booking => 'Add booking';
@override
String get open_room => 'Open room';
@override
- String get hold_phone_to_door => 'Hold phone to door';
+ String get hold_phone_to_door => 'Keep close to the reader';
@override
String get open_room_success => 'Success';
@@ -170,13 +170,13 @@ class AppLocalizationsEn extends AppLocalizations {
String get profile_settings_firstname => 'First name';
@override
- String get profile_settings_lastname => 'Last name';
+ String get profile_settings_lastname => 'Surname';
@override
String get profile_settings_email => 'Email';
@override
- String get profile_settings_phone => 'Phone';
+ String get profile_settings_phone => 'Telephone';
@override
String get profile_settings_address => 'Address';
@@ -185,10 +185,10 @@ class AppLocalizationsEn extends AppLocalizations {
String get profile_settings_birthday => 'Birthday';
@override
- String get profile_settings_edit_password => 'Edit password';
+ String get profile_settings_edit_password => 'Change password';
@override
- String get profile_settings_error => 'An error occurred. Please try again later.';
+ String get profile_settings_error => 'An error occurred. Please try again.';
@override
String get delete_profile => 'Delete profile';
@@ -197,28 +197,28 @@ class AppLocalizationsEn extends AppLocalizations {
String get my_booking => 'My booking';
@override
- String get booking_reference => 'Bookingreference';
+ String get booking_reference => 'Reservation number';
@override
- String get check_in => 'Check-in';
+ String get check_in => 'Check in';
@override
- String get check_out => 'Check-out';
+ String get check_out => 'Check out';
@override
- String get overview_page_check_in_physical_card_subtitle => 'Go to the lobby to get your key';
+ String get overview_page_check_in_physical_card_subtitle => 'Go to the lobby and get your key.';
@override
- String get booking_details => 'Booking';
+ String get booking_details => 'My booking';
@override
- String get number_of_guests => 'Number of guests';
+ String get number_of_guests => 'People';
@override
- String get booker => 'Booker';
+ String get booker => 'Book';
@override
- String get booking_date => 'Booking date';
+ String get booking_date => 'Date';
@override
String get payment => 'Payment';
@@ -227,16 +227,16 @@ class AppLocalizationsEn extends AppLocalizations {
String get payment_method => 'Payment method';
@override
- String get bill => 'Bill';
+ String get bill => 'Receipt';
@override
- String get get_bill => 'Get bill';
+ String get get_bill => 'Get receipt';
@override
- String get your_last_name => 'Your last name';
+ String get your_last_name => 'Surname';
@override
- String get find_booking => 'Find booking';
+ String get find_booking => 'Add booking';
@override
String get choose_hotel => 'Choose hotel';
@@ -257,11 +257,11 @@ class AppLocalizationsEn extends AppLocalizations {
String get jutland => 'Jutland';
@override
- String get booking_not_found => 'Booking not found';
+ String get booking_not_found => 'The booking was not found.';
@override
String get booking_not_found_subtitle =>
- 'We could not find a booking with the information you provided.';
+ 'The booking you are looking for could not be found. \nDid you enter the information correctly?';
@override
String get booking_not_found_button => 'Try again';
@@ -273,20 +273,20 @@ class AppLocalizationsEn extends AppLocalizations {
String get save => 'Save';
@override
- String get zipCode => 'Zip code';
+ String get zipCode => 'Postal code';
@override
- String get city => 'City';
+ String get city => 'Town';
@override
String get country => 'Country';
@override
- String get delete_profile_title => 'You are about to delete your profile';
+ String get delete_profile_title => 'You are about to delete your profile.';
@override
String get delete_profile_description =>
- 'Are you sure you want to delete your profile? This action cannot be undone.';
+ 'When you delete your profile, you will lose track of previous stays and your Comwell Club points.';
@override
String get delete_profile_button => 'Delete profile';
@@ -301,22 +301,22 @@ class AppLocalizationsEn extends AppLocalizations {
String get check_in_room_found_title => 'Room found...';
@override
- String get check_in_your_digital_card_title => 'Your Digital KeyCard';
+ String get check_in_your_digital_card_title => 'Your Key Card';
@override
String get check_in_your_digital_card_subtitle =>
- 'Use your phone to open your room. You do not have to check in at the reception';
+ 'Use your mobile phone to open your room. You no longer need to check in at the reception.';
@override
String get check_in_your_digital_card_nb =>
- 'NB: If you require a physical keycard, you can always get one from the reception';
+ 'NB: If you want a physical key card, you can always go to reception and get one.';
@override
String get check_in_error_title => 'Room not found...';
@override
String get check_in_error_subtitle =>
- 'We could not find the room. Please check in at the reception.';
+ 'We could not find your room. Please contact the reception.';
@override
String get preregistration_address_title => 'Address';
@@ -325,7 +325,8 @@ class AppLocalizationsEn extends AppLocalizations {
String get check_in_your_digital_card_room_prefix => 'Room';
@override
- String get preregistration_address_subtitle => 'It is required by law to know your address';
+ String get preregistration_address_subtitle =>
+ 'It is a legal requirement that we know the address of the primary occupant of the room. This is for fire safety reasons.';
@override
String get preregistration_address_label_address => 'Address';
@@ -334,20 +335,20 @@ class AppLocalizationsEn extends AppLocalizations {
String get preregistration_address_label_postal_code => 'Postal code';
@override
- String get preregistration_address_label_city => 'City';
+ String get preregistration_address_label_city => 'Town';
@override
String get preregistration_address_label_country => 'Country';
@override
- String get preregistration_payment_title => 'Payment methods';
+ String get preregistration_payment_title => 'Payment card';
@override
String get preregistration_payment_subtitle =>
- 'To stay at Comwell, you need to add a payment method';
+ 'To stay overnight at Comwell, we need a payment card.';
@override
- String get preregistration_payment_add_card => 'Add card';
+ String get preregistration_payment_add_card => 'Add map';
@override
String get preregistration_confirmation_title => 'Registration information';
@@ -359,40 +360,41 @@ class AppLocalizationsEn extends AppLocalizations {
String get preregistration_confirmation_address_card_title => 'Address';
@override
- String get preregistration_confirmation_payment_card_title => 'Payment method';
+ String get preregistration_confirmation_payment_card_title => 'Payment card';
@override
- String get preregistration_confirmation_extras_card_title_singular => '1 extra purchase';
+ String get preregistration_confirmation_extras_card_title_singular => '1 selected Purchase';
@override
String preregistration_confirmation_extras_card_title_plural(Object amount) {
- return '$amount extra purchases';
+ return '$amount selected add-ons';
}
@override
- String get preregistration_confirmation_extras_card_subtitle => 'Will be added to your bill';
+ String get preregistration_confirmation_extras_card_subtitle => 'Written on your room bill';
@override
- String get need_help => 'Need help?';
+ String get need_help => 'Do you need help?';
@override
String get call_us => 'Call us';
@override
- String get call_us_description => 'Enter your phone number below and we will call you.';
+ String get call_us_description =>
+ 'Do you need to get in touch with one of our hotels? Use the button below to call.';
@override
String get get_a_call => 'Get a call';
@override
- String get get_a_call_description => 'Enter your phone number below and we will call you.';
+ String get get_a_call_description => 'Enter your phone number below and we will call you back.';
@override
String get call_received_title => 'Received';
@override
String get call_received_description =>
- 'We have received your contact request. Our team will get back to you soon.';
+ 'We have received your contact request. Our team will contact you soon.';
@override
String get telephone_number => 'Telephone number';
@@ -411,35 +413,36 @@ class AppLocalizationsEn extends AppLocalizations {
String get booking_details_page_contact_button_title => 'Contact';
@override
- String get booking_details_page_contact_button_subtitle =>
- 'Contact the reception ';
+ String get booking_details_page_contact_button_subtitle => 'Get in touch with the reception.';
@override
String get housekeeping_page_title => 'Housekeeping';
@override
- String get housekeeping_page_subtitle => 'If you wish for housekeeping, you can order it here';
+ String get housekeeping_page_subtitle =>
+ 'If you want extra cleaning or replenishment in the room, you can always order it here - at no cost.';
@override
- String get housekeeping_page_button => 'Order housekeeping';
+ String get housekeeping_page_button => 'Book housekeeping';
@override
- String get housekeeping_page_service_title_cleaning => 'Cleaning of the room';
+ String get housekeeping_page_service_title_cleaning => 'Room cleaning';
@override
- String get housekeeping_page_service_title_towels => 'Soap and shampoo';
+ String get housekeeping_page_service_title_towels => 'Fresh towels';
@override
- String get housekeeping_page_service_title_refill => 'Refill coffee and tea';
+ String get housekeeping_page_service_title_refill => 'Coffee and tea refills';
@override
- String get housekeeping_page_service_title_trash => 'Fresh towels';
+ String get housekeeping_page_service_title_trash => 'Garbage collection';
@override
- String get housekeeping_page_service_title_soap => 'Trash removal';
+ String get housekeeping_page_service_title_soap => 'Soap/shampoo';
@override
- String get housekeeping_page_service_cleaning_subtitle => 'Cleaning is between 11 and 14';
+ String get housekeeping_page_service_cleaning_subtitle =>
+ 'Cleaning will be done between 11am and 2pm.';
@override
String get housekeeping_page_supplies => 'Supplies';
@@ -448,11 +451,11 @@ class AppLocalizationsEn extends AppLocalizations {
String get housekeeping_page_cleaning => 'Cleaning';
@override
- String get booking_details_page_housekeeping_button_title_ordered => 'Cleaning is ordered';
+ String get booking_details_page_housekeeping_button_title_ordered => 'Housekeeping ordered';
@override
String get booking_details_page_housekeeping_button_subtitle_ordered =>
- 'Cleaning is between 11 and 14';
+ 'Cleaning comes between 11 am and 2 pm';
@override
String get housekeeping_page_supplies_subtitle_towels => 'Soap and shampoo';
@@ -467,7 +470,7 @@ class AppLocalizationsEn extends AppLocalizations {
String get housekeeping_page_supplies_subtitle_soap => 'Trash removal';
@override
- String get booking_details_page_housekeeping_button_title => 'Order housekeeping';
+ String get booking_details_page_housekeeping_button_title => 'Book housekeeping';
@override
String get booking_details_page_housekeeping_button_subtitle =>
@@ -501,50 +504,52 @@ class AppLocalizationsEn extends AppLocalizations {
String get hotel_information_page_menu_parking_title => 'Parking';
@override
- String get hotel_information_page_menu_other_info_title => 'More information';
+ String get hotel_information_page_menu_other_info_title => 'Other information';
@override
- String get hotel_information_page_menu_other_info_subtitle => 'Find more information';
+ String get hotel_information_page_menu_other_info_subtitle =>
+ 'Find more information about the hotel';
@override
- String get hotel_information_page_spa_button => 'Book spa';
+ String get hotel_information_page_spa_button => 'Book a spa';
@override
String get restaurant_page_practical_information => 'Practical information';
@override
- String get restaurant_page_address => 'Addrese';
+ String get restaurant_page_address => 'Address';
@override
String get restaurant_page_opening_hours => 'Opening hours';
@override
- String get restaurant_page_book_table => 'Book table';
+ String get restaurant_page_book_table => 'Book a table';
@override
String get restaurant_page_send_email => 'Write an email';
@override
- String get overview_page_check_in_button_subtitle => 'Get your digital key card';
+ String get overview_page_check_in_button_subtitle => 'Get your digital key card immediately';
@override
String get checkout_page_confirmation_title => 'Check-out';
@override
String get checkout_page_confirmation_subtitle =>
- 'When you check out, you have 30 minutes to leave your room';
+ 'When you confirm your check-out, you have 30 minutes to leave the room before your key card will stop working.';
@override
- String get checkout_page_confirmation_deadline => 'Check out latest at 10 AM';
+ String get checkout_page_confirmation_deadline =>
+ 'Your check-out must be no later than 10:00 AM.';
@override
- String get checkout_page_confirmation_price_title => 'To be paid';
+ String get checkout_page_confirmation_price_title => 'For payment';
@override
String get checkout_page_confirmation_continue => 'Go to payment';
@override
- String get checkout_page_payment_title => 'Payment overview';
+ String get checkout_page_payment_title => 'Payment summary';
@override
String get checkout_page_payment_total => 'Total';
@@ -563,23 +568,24 @@ class AppLocalizationsEn extends AppLocalizations {
}
@override
- String get checkout_page_payment_club_points_subtitle_zero => 'You have no points to use';
+ String get checkout_page_payment_club_points_subtitle_zero => 'You have no points to use.';
@override
String get checkout_page_payment_payment_title => 'Pay and check out';
@override
- String get checkout_page_confirmation => 'Go to checkout';
+ String get checkout_page_confirmation => 'Go to check out';
@override
- String get accept_terms => 'Accept terms and conditions';
+ String get accept_terms => 'Accept the terms and conditions';
@override
- String get checkout_page_payment_dialog_title => 'Are you sure you want to check out?';
+ String get checkout_page_payment_dialog_title =>
+ 'Are you sure you want to check out of the hotel?';
@override
String get checkout_page_payment_dialog_subtitle =>
- 'When you check out, you have 30 minutes to leave your room';
+ 'Once you confirm, you have 30 minutes to vacate your room.';
@override
String get checkout_page_payment_dialog_confirm => 'Yes, check out now';
@@ -592,61 +598,62 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get checkout_page_processing_success_subtitle =>
- 'You have 30 minutes to leave your room, after which you will no longer be able to use your keycard.';
+ 'Your check-out is now confirmed and you now have 30 minutes to leave your room. After that, you will no longer be able to use your key card.';
@override
String get checkout_page_processing_success_subtitle_no_digital_card =>
- 'You are now checked out. Please return your key to the reception';
+ 'You are now checked out. Remember to return your key to the lobby.';
@override
String get checkout_page_processing_error_title => 'Check-out failed';
@override
String get checkout_page_processing_error_subtitle =>
- 'An error occurred while checking out. Please go to the reception.';
+ 'There was an error during check-out. Please contact the reception.';
@override
- String get payment_cards_title => 'Payment cards';
+ String get payment_cards_title => 'Payment card';
@override
- String get payment_cards_subtitle => 'To stay at Comwell, we need a payment card.';
+ String get payment_cards_subtitle => 'To stay overnight at Comwell, we need a payment card.';
@override
String get payment_cards_my_cards => 'My cards';
@override
- String get payment_cards_confirm_remove_title => 'You are removing the card';
+ String get payment_cards_confirm_remove_title => 'You are about to remove a payment card.';
@override
- String get payment_cards_confirm_remove_subtitle => 'This payment card will no longer be usable';
+ String get payment_cards_confirm_remove_subtitle =>
+ 'This payment card will no longer be available if you delete it.';
@override
String get payment_cards_remove_card_button => 'Remove card';
@override
- String get payment_cards_edit_card_title => 'Edit card';
+ String get payment_cards_edit_card_title => 'Edit map';
@override
- String get payment_cards_save_card_button => 'Save card';
+ String get payment_cards_save_card_button => 'Save map';
@override
- String get share_booking_page_title => 'Share booking';
+ String get share_booking_page_title => 'Share stay';
@override
String get share_booking_page_subtitle =>
- 'Here you can share your booking with another guest and give them access to booking information, keycard and Concierge';
+ 'Here you can share your stay with another guest and give them access to booking information, key cards and Concierge';
@override
- String get share_booking_page_share_button => 'Share your booking';
+ String get share_booking_page_share_button => 'Share your stay';
@override
- String get handle_guests_title => 'Handle guests';
+ String get handle_guests_title => 'Manage guests';
@override
- String get cancel_sharing => 'Cancel sharing';
+ String get cancel_sharing => 'Undo sharing';
@override
- String get check_out_my_booking => 'Check out my booking';
+ String get check_out_my_booking => 'Check out of my stay';
@override
String get dates => 'Dates';
@@ -658,19 +665,19 @@ class AppLocalizationsEn extends AppLocalizations {
String get guests => 'Guests';
@override
- String get view_booking => 'View booking';
+ String get view_booking => 'See booking';
@override
- String get comwell_booking => 'Comwell Booking';
+ String get comwell_booking => 'Comwell Stay';
@override
String get name_on_card_hint => 'Name on card';
@override
- String get card_number_hint => 'Card number';
+ String get card_number_hint => 'Shortcode';
@override
- String get expiry_date_hint => 'Expiry date';
+ String get expiry_date_hint => 'Expiration date';
@override
String get cvc_hint => 'CVC';
@@ -686,7 +693,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get guest_removal_responsibility =>
- 'You will be responsible for all things purchased on the room at checkout ';
+ 'You will be responsible for all in-room purchases upon check-out (316 DKK)';
@override
String get notifications_page_title => 'Notifications';
@@ -695,40 +702,40 @@ class AppLocalizationsEn extends AppLocalizations {
String get subscribe_all => 'Subscribe to all notifications';
@override
- String get company_deal => 'Company deal';
+ String get company_deal => 'Company agreement';
@override
String get company_deal_subtitle =>
- 'Yes, I would like to receive relevant information related to the company agreement from Comwell A/S via email and SMS. You can unsubscribe at any time by clicking the unsubscribe link at the bottom of the email.';
+ 'Yes, I would like to receive relevant information related to the company agreement from Comwell A/S via email and SMS. You can terminate your registration at any time by clicking the exit link at the bottom of the email.';
@override
- String get club_newsletter => 'Club newsletter';
+ String get club_newsletter => 'Comwell Club newsletter';
@override
String get club_newsletter_subtitle =>
- 'Yes, I would like to recieve e-mails with exiciting offers regarding hotel stays and events at Comwell. I can at any time, unsubscribe.';
+ 'Yes, I would like to receive emails with exciting offers on hotel stays and events at Comwell Hotels. I can unsubscribe at any time.';
@override
String get digital_media => 'Digital media';
@override
String get digital_media_subtitle =>
- 'Yes, I would like see personalized digital media advertising with news, inspiration and invitations to events. I can at any time, unsubscribe.';
+ 'Yes, I would like to see personalized digital advertisements with news, inspiration and invitations to events. I can unsubscribe at any time.';
@override
String get sms => 'SMS';
@override
String get sms_subtitle =>
- 'Yes, I would like to recieve SMS with news, inspiration and invitations to events. I can at any time, unsubscribe.';
+ 'Yes, I would like to receive SMS with news, inspiration and invitations to events. I can unsubscribe at any time.';
@override
String get email_subtitle =>
- 'Yes, I would like to receive emails with news, inspiration and invitations to events. I can at any time, unsubscribe.';
+ 'Yes, I would like to receive emails with news, inspiration and invitations to events. I can unsubscribe at any time.';
@override
String get push_subtitle =>
- 'Yes, I would like to receive push notifications with news, inspiration and invitations to events. I can at any time, unsubscribe.';
+ 'Yes, I would like to receive push notifications with news, inspiration and invitations to events. I can unsubscribe at any time.';
@override
String get update_profile => 'Update profile';
@@ -737,36 +744,36 @@ class AppLocalizationsEn extends AppLocalizations {
String get profile_settings_invalid_date => 'Invalid date';
@override
- String get gender => 'Gender';
+ String get gender => 'Sex';
@override
String get comwell_club_dialog_title => 'Become a member';
@override
String get comwell_club_dialog_description =>
- 'Please fill in the following information to join Comwell Club';
+ 'Enter the following information to become a member of Comwell Club';
@override
String get postal_code => 'Postal code';
@override
- String get male => 'Male';
+ String get male => 'Man';
@override
- String get female => 'Female';
+ String get female => 'Woman';
@override
- String get not_specified => 'Not Specified';
+ String get not_specified => 'Not specified';
@override
- String get tos_accept => 'Accept ';
+ String get tos_accept => 'Accept';
@override
- String get tos_accept_link => 'terms and conditions for Comwell Club';
+ String get tos_accept_link => 'Comwell Club rules and conditions';
@override
String get newsletter_accept =>
- 'Yes, I would like to receive updates on current member offers, Comwell Club surprises and other recommendations tailored to me. I can unsubscribe at any time.';
+ 'Yes, I would like to be updated on current member offers, Comwell Club surprises and other recommendations tailored to me. I can unsubscribe at any time.';
@override
String get read_more => 'Read more';
@@ -778,20 +785,20 @@ class AppLocalizationsEn extends AppLocalizations {
String get comwell_club_inactive => 'Inactive';
@override
- String get points => 'Points';
+ String get points => 'Point';
@override
String get my_balance => 'My balance';
@override
- String get cancel_booking => 'Cancel booking';
+ String get cancel_booking => 'Cancel stay';
@override
- String get cancellation_policy => 'Cancellation policy';
+ String get cancellation_policy => 'Cancellation conditions';
@override
String get cancellation_policy_description =>
- 'This booking can be cancelled free of charge until the day of arrival. If cancelled later than 14.01, the first night will be charged.';
+ 'This stay can be cancelled free of charge until 12.11.2024 at 15:00 on the day of arrival. If cancelled later than 14.01, the first night will be invoiced.';
@override
String get payment_date => 'Payment date';
@@ -800,10 +807,10 @@ class AppLocalizationsEn extends AppLocalizations {
String get not_shared => 'Not shared';
@override
- String get share_booking => 'Share booking';
+ String get share_booking => 'Share stay';
@override
- String get total_charge => 'Total charge';
+ String get total_charge => 'Total for payment';
@override
String get early_checkin => 'Early check-in';
@@ -835,25 +842,25 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get generic_error_profile_page =>
- 'An error occurred. Please try again later. Or logout and try again.';
+ 'An error occurred. Please try again later. Or log out and try again.';
@override
- String get profile_error_name => 'Failed to load profile information';
+ String get profile_error_name => 'Error loading profile information';
@override
String get error => 'Error';
@override
- String get error_logout => 'There has been an error';
+ String get error_logout => 'An error occurred.';
@override
- String get error_logout_subtitle => 'Please log in again';
+ String get error_logout_subtitle => 'You have been logged out. Please log in again.';
@override
String get edit => 'Edit';
@override
- String get error_cards => 'Failed to load cards, try again later';
+ String get error_cards => 'Error loading map, please try again later.';
@override
String check_in_button_timer_days_hours_minutes(Object d, Object h, Object m) {
@@ -876,16 +883,17 @@ class AppLocalizationsEn extends AppLocalizations {
}
@override
- String get approve_conditions_title => 'I accept ';
+ String get approve_conditions_title => 'I accept';
@override
- String get approve_conditions_subtitle => 'terms and conditions';
+ String get approve_conditions_subtitle => 'the conditions';
@override
String get up_sales_title => 'Early check-in';
@override
- String get up_sales_subtitle => 'With early check-in you can check in at 13.00 instead of 15.00.';
+ String get up_sales_subtitle =>
+ 'With early check-in, you can check in at 1:00 PM instead of 3:00 PM.';
@override
String get up_sales_popular => 'POPULAR';
@@ -901,31 +909,31 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get up_sales_catalog_button_subtitle =>
- 'Here you can see and order products and write them automatically on your room bill.';
+ 'Here you can view and order products and have them automatically added to your room bill.';
@override
- String get up_sales_catalog_title => 'Upgrades & Services';
+ String get up_sales_catalog_title => 'Purchase options';
@override
String get room_upgrades => 'Room upgrades';
@override
- String get other_up_sales => 'Other upgrades';
+ String get other_up_sales => 'Other purchases';
@override
String get read_more_up_sales => 'Read more';
@override
- String get continue_without_up_sales => 'Continue without upgrades';
+ String get continue_without_up_sales => 'Continue without purchase';
@override
- String get open_maps_error_title => 'Cannot open maps';
+ String get open_maps_error_title => 'Can\'t open map';
@override
- String get open_maps_error_subtitle => 'No maps application is available.';
+ String get open_maps_error_subtitle => 'No map program is available.';
@override
- String get apple_maps => 'Apple Maps';
+ String get apple_maps => 'Apple Card';
@override
String get google_maps => 'Google Maps';
@@ -946,49 +954,49 @@ class AppLocalizationsEn extends AppLocalizations {
String get no_room_upgrades_available => 'No room upgrades available';
@override
- String get confirm_up_sales_dialog_title => 'Confirm upgrades';
+ String get confirm_up_sales_dialog_title => 'Confirm purchase';
@override
String confirm_up_sales_dialog_subtitle(Object amount) {
- return 'Are you sure you want to add these upgrades for $amount kr to your booking?';
+ return 'Are you sure you want to add these $amount DKK extras to your booking?';
}
@override
- String get confirm_up_sales_dialog_confirm => 'Yes, add upgrades';
+ String get confirm_up_sales_dialog_confirm => 'Yes, add additional purchases';
@override
String get confirm_up_sales_dialog_cancel => 'No';
@override
- String get email_launch_error => 'Could not launch email client';
+ String get email_launch_error => 'Could not open email client';
@override
- String get phone_launch_error => 'Could not launch phone call';
+ String get phone_launch_error => 'Could not open phone';
@override
String get balance => 'BALANCE';
@override
- String get new_booking => 'Make a new booking';
+ String get new_booking => 'Book a new stay';
@override
- String get error_opening_website => 'Failed to open the website. Please try again later.';
+ String get error_opening_website => 'Could not open the website. Please try again later.';
@override
String get error_opening_website_title => 'Error';
@override
- String get room_selection => 'Room selection';
+ String get room_selection => 'Select room';
@override
- String get room_selection_subtitle => 'Select a room for your stay';
+ String get room_selection_subtitle => 'Allocate guests to the rooms you have booked';
@override
- String get choose_room => 'Choose room';
+ String get choose_room => 'Allocate rooms';
@override
String get choose_room_subtitle =>
- 'You need to choose the room you want to sleep in. When you have chosen, you can assign the other rooms to others.';
+ 'You must first choose your own room. Then you can assign the other rooms.';
@override
String get check_in_date => 'Check-in date';
@@ -1006,11 +1014,10 @@ class AppLocalizationsEn extends AppLocalizations {
String get choose_room_confirmation_title => 'Are you sure you want to choose this room?';
@override
- String get choose_room_confirmation_subtitle =>
- 'You cannot undo your choice. Remaining rooms must be assigned.';
+ String get choose_room_confirmation_subtitle => 'You cannot undo your choice.';
@override
- String get choose_room_confirmation_confirm => 'Yes, choose room';
+ String get choose_room_confirmation_confirm => 'Yes, select room';
@override
String get choose_room_confirmation_cancel => 'No';
@@ -1026,124 +1033,123 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get share_room_page_subtitle =>
- 'Here you can share your room with another guest and give them access to booking information, keycard and Concierge';
+ 'Here you can share your room with another guest and give them access to booking information, key cards and Concierge';
@override
String get share_room_page_button => 'Share your room';
@override
- String get addon => 'Added purchase';
+ String get addon => 'Additional purchases';
@override
- String get added_to_room => 'Added to room';
+ String get added_to_room => 'Purchased in room';
@override
- String get force_update_title => 'Update required';
+ String get force_update_title => 'Update to use the app';
@override
String get force_update_description =>
- 'To continue using the app, please update to the latest version.';
+ 'There is a required update to the app that requires you to update in order to continue.';
@override
- String get force_update_button => 'Go to App Store';
+ String get force_update_button => 'Go to the App Store';
@override
String get invalid_birthday => 'Invalid birthday';
@override
String get invalid_birthday_description =>
- 'Your saved birthday is not allowed. Please pick a new date.';
+ 'Your saved birthday is not allowed. Please choose a new date.';
@override
- String get up_sales_confirmation_title => 'Payment overview';
+ String get up_sales_confirmation_title => 'Payment summary';
@override
- String get up_sales_confirmation_no_up_sales => 'No upgrades selected.';
+ String get up_sales_confirmation_no_up_sales => 'No options selected.';
@override
String get facilities => 'Facilities';
@override
- String get remove => 'Remove';
+ String get remove => 'Remote';
@override
- String get up_sales_processing_error_title => 'Failed to add addons';
+ String get up_sales_processing_error_title => 'Could not add add-ons';
@override
String get up_sales_processing_error_subtitle =>
- 'Addons are not available at the moment. Please try again later.';
+ 'Upgrades are not working at the moment. Please try again later.';
@override
String get pay_bill => 'Pay bill';
@override
- String get discount => 'Comwell Club Points Discount';
+ String get discount => 'Comwell Club Point Discount';
@override
- String get error_preregistration => 'Failed to preregister, go to reception';
+ String get error_preregistration => 'Could not preregister, go to reception';
@override
String get get_keys => 'Get digital key';
@override
- String get get_keys_subtitle => 'Get your digital key card';
+ String get get_keys_subtitle => 'Get your digital key card immediately';
@override
- String get add_card => 'Add card';
+ String get add_card => 'Add map';
@override
String get total => 'Total';
@override
- String get profile_error_title => 'Could not load your profile';
+ String get profile_error_title => 'Could not load your profile.';
@override
- String get profile_error_subtitle => 'An error occurred. Please try again later.';
+ String get profile_error_subtitle => 'An error has occurred. Please try again later.';
@override
- String get generic_error_title => 'There was an error';
+ String get generic_error_title => 'An error has occurred.';
@override
String get notifications_error_subtitle =>
- 'Notifications could not be loaded. Please try again later.';
+ 'Notifications cannot be retrieved at this time. Please try again later.';
@override
String get payment_cards_error_subtitle =>
- 'Payment cards could not be loaded. Please try again later.';
+ 'Your payment cards cannot be retrieved at this time. Please try again later.';
@override
String get hotel_information_error_subtitle =>
- 'Hotel information could not be loaded. Please try again later.';
+ 'The hotel information cannot be retrieved at this time. Please try again later.';
@override
- String get overview_error_title => 'Could not load your bookings';
+ String get overview_error_title => 'Could not load your bookings.';
@override
String get overview_error_subtitle =>
- 'An error occurred. We could not load your bookings. Please try again later.';
+ 'An error occurred. We were unable to load your bookings. Please try again later.';
@override
- String get up_sales_error_title => 'Could not load up sales';
+ String get up_sales_error_title => 'Add-on purchases are currently unavailable.';
@override
- String get up_sales_error_subtitle =>
- 'An error occurred. We could not load up sales. Please try again later.';
+ String get up_sales_error_subtitle => 'An error has occurred. Please try again later.';
@override
String get choose_room_error_title => 'Could not choose room';
@override
String get choose_room_error_subtitle =>
- 'An error occurred. Please try again later or go to the reception.';
+ 'An error has occurred. Please try again later or go to the front desk.';
@override
- String get share_booking_error_title => 'Could not find guests on the room';
+ String get share_booking_error_title => 'Could not find the guests in the room';
@override
- String get share_booking_error_subtitle => 'An error occurred. Please try again later.';
+ String get share_booking_error_subtitle => 'An error has occurred. Please try again later.';
@override
- String get refresh_bookings => 'Refresh bookings';
+ String get refresh_bookings => 'Update bookings';
@override
String get document_type => 'Document type';
@@ -1155,7 +1161,7 @@ class AppLocalizationsEn extends AppLocalizations {
String get document_type_id_card => 'ID card';
@override
- String get document_type_driver_license => 'Driver license';
+ String get document_type_driver_license => 'Driving license';
@override
String get document_type_other => 'Other';
@@ -1164,11 +1170,11 @@ class AppLocalizationsEn extends AppLocalizations {
String get document_number => 'Document number';
@override
- String get up_sales_catalog_no_up_sales_title => 'No upgrades available';
+ String get up_sales_catalog_no_up_sales_title => 'No options available';
@override
String get up_sales_catalog_no_up_sales_subtitle =>
- 'No upgrades are available at the moment. Please try again later.';
+ 'There are no options available at this time. Please try again later.';
@override
String get payment_cards_missing_payment_method_title => 'Missing payment method';
@@ -1185,7 +1191,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String share_booking_message(Object hotel, Object name, Object url) {
- return '$name would like to share a booking with you at Comwell $hotel. Access via the link: $url';
+ return '$name would like to share a stay with you at Comwell $hotel. Access via the link: $url';
}
@override
@@ -1193,10 +1199,10 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get check_in_page_error_subtitle =>
- 'We could not find the room. Please check in at the reception.';
+ 'We could not find your room. Please contact the reception.';
@override
- String get remove_guest_overview => 'Remove';
+ String get remove_guest_overview => 'Remote';
@override
String get home_page => 'Home';
@@ -1205,10 +1211,10 @@ class AppLocalizationsEn extends AppLocalizations {
String get send_to_email => 'Send to email';
@override
- String get download_bill => 'Get receipt';
+ String get download_bill => 'Get a receipt sent to you';
@override
- String get bill_email_placeholder => 'E-mail';
+ String get bill_email_placeholder => 'Email';
@override
String get payment_overview_send_receipt_title => 'Receipt via email';
@@ -1222,7 +1228,7 @@ class AppLocalizationsEn extends AppLocalizations {
String get payment_overview_send_comment_title => 'Comment';
@override
- String get payment_overview_send_receipt_hint => 'Enter comment';
+ String get payment_overview_send_receipt_hint => 'Insert comment';
@override
String key_page_room_prefix(Object roomNumber) {
@@ -1230,7 +1236,7 @@ class AppLocalizationsEn extends AppLocalizations {
}
@override
- String get please_accept_terms => 'Please accept terms';
+ String get please_accept_terms => 'Accept the terms';
@override
String received_shared_room_page_subtitle(Object name) {
@@ -1253,7 +1259,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get accept_notifications_rationale =>
- 'To get the latest updates on your booking, please allow notifications';
+ 'To get the latest updates about your booking, please allow notifications';
@override
String get allow => 'Allow';
@@ -1262,22 +1268,22 @@ class AppLocalizationsEn extends AppLocalizations {
String get skip => 'Skip';
@override
- String get internet_disabled => 'Internet disconnected';
+ String get internet_disabled => 'The Internet is down.';
@override
- String get please_enable_internet => 'Please check your internet connected';
+ String get please_enable_internet => 'Please check your internet connection.';
@override
- String get bluetooth_disabled => 'Bluetooth is disabled';
+ String get bluetooth_disabled => 'Bluetooth is disabled.';
@override
- String get please_enable_bluetooth => 'Please enable bluetooth';
+ String get please_enable_bluetooth => 'Activate Bluetooth';
@override
String get allow_usage_tracking => 'Allow usage tracking';
@override
- String get usage_tracking_rationale => 'Please allow tracking how you use the app';
+ String get usage_tracking_rationale => 'Please allow tracking of how you use the app';
@override
String get share_room_subtitle_mvp =>
@@ -1290,4 +1296,14 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get find_booking_subtitle_mvp =>
'We are currently working on making it possible to find your booking digitally here in the app.';
+
+ @override
+ String get bluetooth_permission_title => 'Allow Bluetooth to unlock your room';
+
+ @override
+ String get bluetooth_permission_description =>
+ 'In order to open the door to your hotel room, you must give us permission to use Bluetooth on your phone.';
+
+ @override
+ String get allow_bluetooth => 'Allow Bluetooth';
}
diff --git a/comwell_key_app/lib/.generated/presentation/screens/onboarding/bluetooth/bluetooth_permission_cubit.freezed.dart b/comwell_key_app/lib/.generated/presentation/screens/onboarding/bluetooth/bluetooth_permission_cubit.freezed.dart
index 92867976..c97b5c9c 100644
--- a/comwell_key_app/lib/.generated/presentation/screens/onboarding/bluetooth/bluetooth_permission_cubit.freezed.dart
+++ b/comwell_key_app/lib/.generated/presentation/screens/onboarding/bluetooth/bluetooth_permission_cubit.freezed.dart
@@ -14,7 +14,7 @@ T _$identity<T>(T value) => value;
/// @nodoc
mixin _$BluetoothPermissionState {
- bool get isLoading; bool get isEnabled; bool get isSupported; bool get isPermissionGranted; ErrorType get errorType;
+ bool get isLoading; AppError get error;
/// Create a copy of BluetoothPermissionState
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@@ -25,16 +25,16 @@ $BluetoothPermissionStateCopyWith<BluetoothPermissionState> get copyWith => _$Bl
@override
bool operator ==(Object other) {
- return identical(this, other) || (other.runtimeType == runtimeType&&other is BluetoothPermissionState&&(identical(other.isLoading, isLoading) || other.isLoading == isLoading)&&(identical(other.isEnabled, isEnabled) || other.isEnabled == isEnabled)&&(identical(other.isSupported, isSupported) || other.isSupported == isSupported)&&(identical(other.isPermissionGranted, isPermissionGranted) || other.isPermissionGranted == isPermissionGranted)&&(identical(other.errorType, errorType) || other.errorType == errorType));
+ return identical(this, other) || (other.runtimeType == runtimeType&&other is BluetoothPermissionState&&(identical(other.isLoading, isLoading) || other.isLoading == isLoading)&&(identical(other.error, error) || other.error == error));
}
@override
-int get hashCode => Object.hash(runtimeType,isLoading,isEnabled,isSupported,isPermissionGranted,errorType);
+int get hashCode => Object.hash(runtimeType,isLoading,error);
@override
String toString() {
- return 'BluetoothPermissionState(isLoading: $isLoading, isEnabled: $isEnabled, isSupported: $isSupported, isPermissionGranted: $isPermissionGranted, errorType: $errorType)';
+ return 'BluetoothPermissionState(isLoading: $isLoading, error: $error)';
}
@@ -45,7 +45,7 @@ abstract mixin class $BluetoothPermissionStateCopyWith<$Res> {
factory $BluetoothPermissionStateCopyWith(BluetoothPermissionState value, $Res Function(BluetoothPermissionState) _then) = _$BluetoothPermissionStateCopyWithImpl;
@useResult
$Res call({
- bool isLoading, bool isEnabled, bool isSupported, bool isPermissionGranted, ErrorType errorType
+ bool isLoading, AppError error
});
@@ -62,14 +62,11 @@ class _$BluetoothPermissionStateCopyWithImpl<$Res>
/// Create a copy of BluetoothPermissionState
/// with the given fields replaced by the non-null parameter values.
-@pragma('vm:prefer-inline') @override $Res call({Object? isLoading = null,Object? isEnabled = null,Object? isSupported = null,Object? isPermissionGranted = null,Object? errorType = null,}) {
+@pragma('vm:prefer-inline') @override $Res call({Object? isLoading = null,Object? error = null,}) {
return _then(_self.copyWith(
isLoading: null == isLoading ? _self.isLoading : isLoading // ignore: cast_nullable_to_non_nullable
-as bool,isEnabled: null == isEnabled ? _self.isEnabled : isEnabled // ignore: cast_nullable_to_non_nullable
-as bool,isSupported: null == isSupported ? _self.isSupported : isSupported // ignore: cast_nullable_to_non_nullable
-as bool,isPermissionGranted: null == isPermissionGranted ? _self.isPermissionGranted : isPermissionGranted // ignore: cast_nullable_to_non_nullable
-as bool,errorType: null == errorType ? _self.errorType : errorType // ignore: cast_nullable_to_non_nullable
-as ErrorType,
+as bool,error: null == error ? _self.error : error // ignore: cast_nullable_to_non_nullable
+as AppError,
));
}
@@ -154,10 +151,10 @@ return $default(_that);case _:
/// }
/// ```
-@optionalTypeArgs TResult maybeWhen<TResult extends Object?>(TResult Function( bool isLoading, bool isEnabled, bool isSupported, bool isPermissionGranted, ErrorType errorType)? $default,{required TResult orElse(),}) {final _that = this;
+@optionalTypeArgs TResult maybeWhen<TResult extends Object?>(TResult Function( bool isLoading, AppError error)? $default,{required TResult orElse(),}) {final _that = this;
switch (_that) {
case _BluetoothPermissionState() when $default != null:
-return $default(_that.isLoading,_that.isEnabled,_that.isSupported,_that.isPermissionGranted,_that.errorType);case _:
+return $default(_that.isLoading,_that.error);case _:
return orElse();
}
@@ -175,10 +172,10 @@ return $default(_that.isLoading,_that.isEnabled,_that.isSupported,_that.isPermis
/// }
/// ```
-@optionalTypeArgs TResult when<TResult extends Object?>(TResult Function( bool isLoading, bool isEnabled, bool isSupported, bool isPermissionGranted, ErrorType errorType) $default,) {final _that = this;
+@optionalTypeArgs TResult when<TResult extends Object?>(TResult Function( bool isLoading, AppError error) $default,) {final _that = this;
switch (_that) {
case _BluetoothPermissionState():
-return $default(_that.isLoading,_that.isEnabled,_that.isSupported,_that.isPermissionGranted,_that.errorType);case _:
+return $default(_that.isLoading,_that.error);case _:
throw StateError('Unexpected subclass');
}
@@ -195,10 +192,10 @@ return $default(_that.isLoading,_that.isEnabled,_that.isSupported,_that.isPermis
/// }
/// ```
-@optionalTypeArgs TResult? whenOrNull<TResult extends Object?>(TResult? Function( bool isLoading, bool isEnabled, bool isSupported, bool isPermissionGranted, ErrorType errorType)? $default,) {final _that = this;
+@optionalTypeArgs TResult? whenOrNull<TResult extends Object?>(TResult? Function( bool isLoading, AppError error)? $default,) {final _that = this;
switch (_that) {
case _BluetoothPermissionState() when $default != null:
-return $default(_that.isLoading,_that.isEnabled,_that.isSupported,_that.isPermissionGranted,_that.errorType);case _:
+return $default(_that.isLoading,_that.error);case _:
return null;
}
@@ -210,14 +207,11 @@ return $default(_that.isLoading,_that.isEnabled,_that.isSupported,_that.isPermis
class _BluetoothPermissionState implements BluetoothPermissionState {
- const _BluetoothPermissionState({this.isLoading = false, this.isEnabled = false, this.isSupported = false, this.isPermissionGranted = false, this.errorType = ErrorType.none});
+ const _BluetoothPermissionState({this.isLoading = false, this.error = AppError.none});
@override@JsonKey() final bool isLoading;
-@override@JsonKey() final bool isEnabled;
-@override@JsonKey() final bool isSupported;
-@override@JsonKey() final bool isPermissionGranted;
-@override@JsonKey() final ErrorType errorType;
+@override@JsonKey() final AppError error;
/// Create a copy of BluetoothPermissionState
/// with the given fields replaced by the non-null parameter values.
@@ -229,16 +223,16 @@ _$BluetoothPermissionStateCopyWith<_BluetoothPermissionState> get copyWith => __
@override
bool operator ==(Object other) {
- return identical(this, other) || (other.runtimeType == runtimeType&&other is _BluetoothPermissionState&&(identical(other.isLoading, isLoading) || other.isLoading == isLoading)&&(identical(other.isEnabled, isEnabled) || other.isEnabled == isEnabled)&&(identical(other.isSupported, isSupported) || other.isSupported == isSupported)&&(identical(other.isPermissionGranted, isPermissionGranted) || other.isPermissionGranted == isPermissionGranted)&&(identical(other.errorType, errorType) || other.errorType == errorType));
+ return identical(this, other) || (other.runtimeType == runtimeType&&other is _BluetoothPermissionState&&(identical(other.isLoading, isLoading) || other.isLoading == isLoading)&&(identical(other.error, error) || other.error == error));
}
@override
-int get hashCode => Object.hash(runtimeType,isLoading,isEnabled,isSupported,isPermissionGranted,errorType);
+int get hashCode => Object.hash(runtimeType,isLoading,error);
@override
String toString() {
- return 'BluetoothPermissionState(isLoading: $isLoading, isEnabled: $isEnabled, isSupported: $isSupported, isPermissionGranted: $isPermissionGranted, errorType: $errorType)';
+ return 'BluetoothPermissionState(isLoading: $isLoading, error: $error)';
}
@@ -249,7 +243,7 @@ abstract mixin class _$BluetoothPermissionStateCopyWith<$Res> implements $Blueto
factory _$BluetoothPermissionStateCopyWith(_BluetoothPermissionState value, $Res Function(_BluetoothPermissionState) _then) = __$BluetoothPermissionStateCopyWithImpl;
@override @useResult
$Res call({
- bool isLoading, bool isEnabled, bool isSupported, bool isPermissionGranted, ErrorType errorType
+ bool isLoading, AppError error
});
@@ -266,14 +260,11 @@ class __$BluetoothPermissionStateCopyWithImpl<$Res>
/// Create a copy of BluetoothPermissionState
/// with the given fields replaced by the non-null parameter values.
-@override @pragma('vm:prefer-inline') $Res call({Object? isLoading = null,Object? isEnabled = null,Object? isSupported = null,Object? isPermissionGranted = null,Object? errorType = null,}) {
+@override @pragma('vm:prefer-inline') $Res call({Object? isLoading = null,Object? error = null,}) {
return _then(_BluetoothPermissionState(
isLoading: null == isLoading ? _self.isLoading : isLoading // ignore: cast_nullable_to_non_nullable
-as bool,isEnabled: null == isEnabled ? _self.isEnabled : isEnabled // ignore: cast_nullable_to_non_nullable
-as bool,isSupported: null == isSupported ? _self.isSupported : isSupported // ignore: cast_nullable_to_non_nullable
-as bool,isPermissionGranted: null == isPermissionGranted ? _self.isPermissionGranted : isPermissionGranted // ignore: cast_nullable_to_non_nullable
-as bool,errorType: null == errorType ? _self.errorType : errorType // ignore: cast_nullable_to_non_nullable
-as ErrorType,
+as bool,error: null == error ? _self.error : error // ignore: cast_nullable_to_non_nullable
+as AppError,
));
}
diff --git a/comwell_key_app/lib/.generated/presentation/screens/onboarding/notifications/notification_permission_cubit.freezed.dart b/comwell_key_app/lib/.generated/presentation/screens/onboarding/notifications/notification_permission_cubit.freezed.dart
index 093bbc3f..8083026e 100644
--- a/comwell_key_app/lib/.generated/presentation/screens/onboarding/notifications/notification_permission_cubit.freezed.dart
+++ b/comwell_key_app/lib/.generated/presentation/screens/onboarding/notifications/notification_permission_cubit.freezed.dart
@@ -14,7 +14,7 @@ T _$identity<T>(T value) => value;
/// @nodoc
mixin _$NotificationPermissionState {
- bool get isLoading; ErrorType get errorType;
+ bool get isLoading; AppError get errorType;
/// Create a copy of NotificationPermissionState
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@@ -45,7 +45,7 @@ abstract mixin class $NotificationPermissionStateCopyWith<$Res> {
factory $NotificationPermissionStateCopyWith(NotificationPermissionState value, $Res Function(NotificationPermissionState) _then) = _$NotificationPermissionStateCopyWithImpl;
@useResult
$Res call({
- bool isLoading, ErrorType errorType
+ bool isLoading, AppError errorType
});
@@ -66,7 +66,7 @@ class _$NotificationPermissionStateCopyWithImpl<$Res>
return _then(_self.copyWith(
isLoading: null == isLoading ? _self.isLoading : isLoading // ignore: cast_nullable_to_non_nullable
as bool,errorType: null == errorType ? _self.errorType : errorType // ignore: cast_nullable_to_non_nullable
-as ErrorType,
+as AppError,
));
}
@@ -151,7 +151,7 @@ return $default(_that);case _:
/// }
/// ```
-@optionalTypeArgs TResult maybeWhen<TResult extends Object?>(TResult Function( bool isLoading, ErrorType errorType)? $default,{required TResult orElse(),}) {final _that = this;
+@optionalTypeArgs TResult maybeWhen<TResult extends Object?>(TResult Function( bool isLoading, AppError errorType)? $default,{required TResult orElse(),}) {final _that = this;
switch (_that) {
case _NotificationPermissionState() when $default != null:
return $default(_that.isLoading,_that.errorType);case _:
@@ -172,7 +172,7 @@ return $default(_that.isLoading,_that.errorType);case _:
/// }
/// ```
-@optionalTypeArgs TResult when<TResult extends Object?>(TResult Function( bool isLoading, ErrorType errorType) $default,) {final _that = this;
+@optionalTypeArgs TResult when<TResult extends Object?>(TResult Function( bool isLoading, AppError errorType) $default,) {final _that = this;
switch (_that) {
case _NotificationPermissionState():
return $default(_that.isLoading,_that.errorType);case _:
@@ -192,7 +192,7 @@ return $default(_that.isLoading,_that.errorType);case _:
/// }
/// ```
-@optionalTypeArgs TResult? whenOrNull<TResult extends Object?>(TResult? Function( bool isLoading, ErrorType errorType)? $default,) {final _that = this;
+@optionalTypeArgs TResult? whenOrNull<TResult extends Object?>(TResult? Function( bool isLoading, AppError errorType)? $default,) {final _that = this;
switch (_that) {
case _NotificationPermissionState() when $default != null:
return $default(_that.isLoading,_that.errorType);case _:
@@ -207,11 +207,11 @@ return $default(_that.isLoading,_that.errorType);case _:
class _NotificationPermissionState implements NotificationPermissionState {
- const _NotificationPermissionState({this.isLoading = false, this.errorType = ErrorType.none});
+ const _NotificationPermissionState({this.isLoading = false, this.errorType = AppError.none});
@override@JsonKey() final bool isLoading;
-@override@JsonKey() final ErrorType errorType;
+@override@JsonKey() final AppError errorType;
/// Create a copy of NotificationPermissionState
/// with the given fields replaced by the non-null parameter values.
@@ -243,7 +243,7 @@ abstract mixin class _$NotificationPermissionStateCopyWith<$Res> implements $Not
factory _$NotificationPermissionStateCopyWith(_NotificationPermissionState value, $Res Function(_NotificationPermissionState) _then) = __$NotificationPermissionStateCopyWithImpl;
@override @useResult
$Res call({
- bool isLoading, ErrorType errorType
+ bool isLoading, AppError errorType
});
@@ -264,7 +264,7 @@ class __$NotificationPermissionStateCopyWithImpl<$Res>
return _then(_NotificationPermissionState(
isLoading: null == isLoading ? _self.isLoading : isLoading // ignore: cast_nullable_to_non_nullable
as bool,errorType: null == errorType ? _self.errorType : errorType // ignore: cast_nullable_to_non_nullable
-as ErrorType,
+as AppError,
));
}
diff --git a/comwell_key_app/lib/.generated/presentation/screens/onboarding/onboarding_routes.g.dart b/comwell_key_app/lib/.generated/presentation/screens/onboarding/onboarding_routes.g.dart
new file mode 100644
index 00000000..c5df15a7
--- /dev/null
+++ b/comwell_key_app/lib/.generated/presentation/screens/onboarding/onboarding_routes.g.dart
@@ -0,0 +1,118 @@
+// GENERATED CODE - DO NOT MODIFY BY HAND
+
+part of '../../../../presentation/screens/onboarding/onboarding_routes.dart';
+
+// **************************************************************************
+// GoRouterGenerator
+// **************************************************************************
+
+List<RouteBase> get $appRoutes => [
+ $bluetoothPermissionRoute,
+ $notificationPermissionRoute,
+ $usageTrackingPermissionRoute,
+ $internetDisabledRoute,
+];
+
+RouteBase get $bluetoothPermissionRoute => GoRouteData.$route(
+ path: '/onboarding/bluetooth',
+ factory: $BluetoothPermissionRoute._fromState,
+);
+
+mixin $BluetoothPermissionRoute on GoRouteData {
+ static BluetoothPermissionRoute _fromState(GoRouterState state) =>
+ BluetoothPermissionRoute();
+
+ @override
+ String get location => GoRouteData.$location('/onboarding/bluetooth');
+
+ @override
+ void go(BuildContext context) => context.go(location);
+
+ @override
+ Future<T?> push<T>(BuildContext context) => context.push<T>(location);
+
+ @override
+ void pushReplacement(BuildContext context) =>
+ context.pushReplacement(location);
+
+ @override
+ void replace(BuildContext context) => context.replace(location);
+}
+
+RouteBase get $notificationPermissionRoute => GoRouteData.$route(
+ path: '/onboarding/notification',
+ factory: $NotificationPermissionRoute._fromState,
+);
+
+mixin $NotificationPermissionRoute on GoRouteData {
+ static NotificationPermissionRoute _fromState(GoRouterState state) =>
+ NotificationPermissionRoute();
+
+ @override
+ String get location => GoRouteData.$location('/onboarding/notification');
+
+ @override
+ void go(BuildContext context) => context.go(location);
+
+ @override
+ Future<T?> push<T>(BuildContext context) => context.push<T>(location);
+
+ @override
+ void pushReplacement(BuildContext context) =>
+ context.pushReplacement(location);
+
+ @override
+ void replace(BuildContext context) => context.replace(location);
+}
+
+RouteBase get $usageTrackingPermissionRoute => GoRouteData.$route(
+ path: '/onboarding/usage-tracking',
+ factory: $UsageTrackingPermissionRoute._fromState,
+);
+
+mixin $UsageTrackingPermissionRoute on GoRouteData {
+ static UsageTrackingPermissionRoute _fromState(GoRouterState state) =>
+ UsageTrackingPermissionRoute();
+
+ @override
+ String get location => GoRouteData.$location('/onboarding/usage-tracking');
+
+ @override
+ void go(BuildContext context) => context.go(location);
+
+ @override
+ Future<T?> push<T>(BuildContext context) => context.push<T>(location);
+
+ @override
+ void pushReplacement(BuildContext context) =>
+ context.pushReplacement(location);
+
+ @override
+ void replace(BuildContext context) => context.replace(location);
+}
+
+RouteBase get $internetDisabledRoute => GoRouteData.$route(
+ path: '/internet-disabled',
+ factory: $InternetDisabledRoute._fromState,
+);
+
+mixin $InternetDisabledRoute on GoRouteData {
+ static InternetDisabledRoute _fromState(GoRouterState state) =>
+ InternetDisabledRoute();
+
+ @override
+ String get location => GoRouteData.$location('/internet-disabled');
+
+ @override
+ void go(BuildContext context) => context.go(location);
+
+ @override
+ Future<T?> push<T>(BuildContext context) => context.push<T>(location);
+
+ @override
+ void pushReplacement(BuildContext context) =>
+ context.pushReplacement(location);
+
+ @override
+ void replace(BuildContext context) => context.replace(location);
+}
diff --git a/comwell_key_app/lib/.generated/presentation/screens/onboarding/usage_tracking/usage_tracking_permission_cubit.freezed.dart b/comwell_key_app/lib/.generated/presentation/screens/onboarding/usage_tracking/usage_tracking_permission_cubit.freezed.dart
index 75486383..0d44f202 100644
--- a/comwell_key_app/lib/.generated/presentation/screens/onboarding/usage_tracking/usage_tracking_permission_cubit.freezed.dart
+++ b/comwell_key_app/lib/.generated/presentation/screens/onboarding/usage_tracking/usage_tracking_permission_cubit.freezed.dart
@@ -14,7 +14,7 @@ T _$identity<T>(T value) => value;
/// @nodoc
mixin _$UsageTrackingPermissionState {
- bool get isLoading; UsageTrackingError get errorType;
+ bool get isLoading; AppError get error;
/// Create a copy of UsageTrackingPermissionState
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@@ -25,16 +25,16 @@ $UsageTrackingPermissionStateCopyWith<UsageTrackingPermissionState> get copyWith
@override
bool operator ==(Object other) {
- return identical(this, other) || (other.runtimeType == runtimeType&&other is UsageTrackingPermissionState&&(identical(other.isLoading, isLoading) || other.isLoading == isLoading)&&(identical(other.errorType, errorType) || other.errorType == errorType));
+ return identical(this, other) || (other.runtimeType == runtimeType&&other is UsageTrackingPermissionState&&(identical(other.isLoading, isLoading) || other.isLoading == isLoading)&&(identical(other.error, error) || other.error == error));
}
@override
-int get hashCode => Object.hash(runtimeType,isLoading,errorType);
+int get hashCode => Object.hash(runtimeType,isLoading,error);
@override
String toString() {
- return 'UsageTrackingPermissionState(isLoading: $isLoading, errorType: $errorType)';
+ return 'UsageTrackingPermissionState(isLoading: $isLoading, error: $error)';
}
@@ -45,7 +45,7 @@ abstract mixin class $UsageTrackingPermissionStateCopyWith<$Res> {
factory $UsageTrackingPermissionStateCopyWith(UsageTrackingPermissionState value, $Res Function(UsageTrackingPermissionState) _then) = _$UsageTrackingPermissionStateCopyWithImpl;
@useResult
$Res call({
- bool isLoading, UsageTrackingError errorType
+ bool isLoading, AppError error
});
@@ -62,11 +62,11 @@ class _$UsageTrackingPermissionStateCopyWithImpl<$Res>
/// Create a copy of UsageTrackingPermissionState
/// with the given fields replaced by the non-null parameter values.
-@pragma('vm:prefer-inline') @override $Res call({Object? isLoading = null,Object? errorType = null,}) {
+@pragma('vm:prefer-inline') @override $Res call({Object? isLoading = null,Object? error = null,}) {
return _then(_self.copyWith(
isLoading: null == isLoading ? _self.isLoading : isLoading // ignore: cast_nullable_to_non_nullable
-as bool,errorType: null == errorType ? _self.errorType : errorType // ignore: cast_nullable_to_non_nullable
-as UsageTrackingError,
+as bool,error: null == error ? _self.error : error // ignore: cast_nullable_to_non_nullable
+as AppError,
));
}
@@ -151,10 +151,10 @@ return $default(_that);case _:
/// }
/// ```
-@optionalTypeArgs TResult maybeWhen<TResult extends Object?>(TResult Function( bool isLoading, UsageTrackingError errorType)? $default,{required TResult orElse(),}) {final _that = this;
+@optionalTypeArgs TResult maybeWhen<TResult extends Object?>(TResult Function( bool isLoading, AppError error)? $default,{required TResult orElse(),}) {final _that = this;
switch (_that) {
case _UsageTrackingPermissionState() when $default != null:
-return $default(_that.isLoading,_that.errorType);case _:
+return $default(_that.isLoading,_that.error);case _:
return orElse();
}
@@ -172,10 +172,10 @@ return $default(_that.isLoading,_that.errorType);case _:
/// }
/// ```
-@optionalTypeArgs TResult when<TResult extends Object?>(TResult Function( bool isLoading, UsageTrackingError errorType) $default,) {final _that = this;
+@optionalTypeArgs TResult when<TResult extends Object?>(TResult Function( bool isLoading, AppError error) $default,) {final _that = this;
switch (_that) {
case _UsageTrackingPermissionState():
-return $default(_that.isLoading,_that.errorType);case _:
+return $default(_that.isLoading,_that.error);case _:
throw StateError('Unexpected subclass');
}
@@ -192,10 +192,10 @@ return $default(_that.isLoading,_that.errorType);case _:
/// }
/// ```
-@optionalTypeArgs TResult? whenOrNull<TResult extends Object?>(TResult? Function( bool isLoading, UsageTrackingError errorType)? $default,) {final _that = this;
+@optionalTypeArgs TResult? whenOrNull<TResult extends Object?>(TResult? Function( bool isLoading, AppError error)? $default,) {final _that = this;
switch (_that) {
case _UsageTrackingPermissionState() when $default != null:
-return $default(_that.isLoading,_that.errorType);case _:
+return $default(_that.isLoading,_that.error);case _:
return null;
}
@@ -207,11 +207,11 @@ return $default(_that.isLoading,_that.errorType);case _:
class _UsageTrackingPermissionState implements UsageTrackingPermissionState {
- const _UsageTrackingPermissionState({this.isLoading = false, this.errorType = UsageTrackingError.none});
+ const _UsageTrackingPermissionState({this.isLoading = false, this.error = AppError.none});
@override@JsonKey() final bool isLoading;
-@override@JsonKey() final UsageTrackingError errorType;
+@override@JsonKey() final AppError error;
/// Create a copy of UsageTrackingPermissionState
/// with the given fields replaced by the non-null parameter values.
@@ -223,16 +223,16 @@ _$UsageTrackingPermissionStateCopyWith<_UsageTrackingPermissionState> get copyWi
@override
bool operator ==(Object other) {
- return identical(this, other) || (other.runtimeType == runtimeType&&other is _UsageTrackingPermissionState&&(identical(other.isLoading, isLoading) || other.isLoading == isLoading)&&(identical(other.errorType, errorType) || other.errorType == errorType));
+ return identical(this, other) || (other.runtimeType == runtimeType&&other is _UsageTrackingPermissionState&&(identical(other.isLoading, isLoading) || other.isLoading == isLoading)&&(identical(other.error, error) || other.error == error));
}
@override
-int get hashCode => Object.hash(runtimeType,isLoading,errorType);
+int get hashCode => Object.hash(runtimeType,isLoading,error);
@override
String toString() {
- return 'UsageTrackingPermissionState(isLoading: $isLoading, errorType: $errorType)';
+ return 'UsageTrackingPermissionState(isLoading: $isLoading, error: $error)';
}
@@ -243,7 +243,7 @@ abstract mixin class _$UsageTrackingPermissionStateCopyWith<$Res> implements $Us
factory _$UsageTrackingPermissionStateCopyWith(_UsageTrackingPermissionState value, $Res Function(_UsageTrackingPermissionState) _then) = __$UsageTrackingPermissionStateCopyWithImpl;
@override @useResult
$Res call({
- bool isLoading, UsageTrackingError errorType
+ bool isLoading, AppError error
});
@@ -260,11 +260,11 @@ class __$UsageTrackingPermissionStateCopyWithImpl<$Res>
/// Create a copy of UsageTrackingPermissionState
/// with the given fields replaced by the non-null parameter values.
-@override @pragma('vm:prefer-inline') $Res call({Object? isLoading = null,Object? errorType = null,}) {
+@override @pragma('vm:prefer-inline') $Res call({Object? isLoading = null,Object? error = null,}) {
return _then(_UsageTrackingPermissionState(
isLoading: null == isLoading ? _self.isLoading : isLoading // ignore: cast_nullable_to_non_nullable
-as bool,errorType: null == errorType ? _self.errorType : errorType // ignore: cast_nullable_to_non_nullable
-as UsageTrackingError,
+as bool,error: null == error ? _self.error : error // ignore: cast_nullable_to_non_nullable
+as AppError,
));
}
diff --git a/comwell_key_app/lib/.generated/presentation/screens/permission_overview/bloc/permission_overview_state.freezed.dart b/comwell_key_app/lib/.generated/presentation/screens/permission_overview/bloc/permission_overview_state.freezed.dart
new file mode 100644
index 00000000..da85962a
--- /dev/null
+++ b/comwell_key_app/lib/.generated/presentation/screens/permission_overview/bloc/permission_overview_state.freezed.dart
@@ -0,0 +1,274 @@
+// GENERATED CODE - DO NOT MODIFY BY HAND
+// coverage:ignore-file
+// ignore_for_file: type=lint
+// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark
+
+part of '../../../../../presentation/screens/permission_overview/bloc/permission_overview_state.dart';
+
+// **************************************************************************
+// FreezedGenerator
+// **************************************************************************
+
+// dart format off
+T _$identity<T>(T value) => value;
+/// @nodoc
+mixin _$PermissionOverviewState {
+
+ bool get isLoading; AppError get error;
+/// Create a copy of PermissionOverviewState
+/// with the given fields replaced by the non-null parameter values.
+@JsonKey(includeFromJson: false, includeToJson: false)
+@pragma('vm:prefer-inline')
+$PermissionOverviewStateCopyWith<PermissionOverviewState> get copyWith => _$PermissionOverviewStateCopyWithImpl<PermissionOverviewState>(this as PermissionOverviewState, _$identity);
+
+
+
+@override
+bool operator ==(Object other) {
+ return identical(this, other) || (other.runtimeType == runtimeType&&other is PermissionOverviewState&&(identical(other.isLoading, isLoading) || other.isLoading == isLoading)&&(identical(other.error, error) || other.error == error));
+}
+
+
+@override
+int get hashCode => Object.hash(runtimeType,isLoading,error);
+
+@override
+String toString() {
+ return 'PermissionOverviewState(isLoading: $isLoading, error: $error)';
+}
+
+
+}
+
+/// @nodoc
+abstract mixin class $PermissionOverviewStateCopyWith<$Res> {
+ factory $PermissionOverviewStateCopyWith(PermissionOverviewState value, $Res Function(PermissionOverviewState) _then) = _$PermissionOverviewStateCopyWithImpl;
+@useResult
+$Res call({
+ bool isLoading, AppError error
+});
+
+
+
+
+}
+/// @nodoc
+class _$PermissionOverviewStateCopyWithImpl<$Res>
+ implements $PermissionOverviewStateCopyWith<$Res> {
+ _$PermissionOverviewStateCopyWithImpl(this._self, this._then);
+
+ final PermissionOverviewState _self;
+ final $Res Function(PermissionOverviewState) _then;
+
+/// Create a copy of PermissionOverviewState
+/// with the given fields replaced by the non-null parameter values.
+@pragma('vm:prefer-inline') @override $Res call({Object? isLoading = null,Object? error = null,}) {
+ return _then(_self.copyWith(
+isLoading: null == isLoading ? _self.isLoading : isLoading // ignore: cast_nullable_to_non_nullable
+as bool,error: null == error ? _self.error : error // ignore: cast_nullable_to_non_nullable
+as AppError,
+ ));
+}
+
+}
+
+
+/// Adds pattern-matching-related methods to [PermissionOverviewState].
+extension PermissionOverviewStatePatterns on PermissionOverviewState {
+/// A variant of `map` that fallback to returning `orElse`.
+///
+/// It is equivalent to doing:
+/// ```dart
+/// switch (sealedClass) {
+/// case final Subclass value:
+/// return ...;
+/// case _:
+/// return orElse();
+/// }
+/// ```
+
+@optionalTypeArgs TResult maybeMap<TResult extends Object?>(TResult Function( _PermissionOverviewState value)? $default,{required TResult orElse(),}){
+final _that = this;
+switch (_that) {
+case _PermissionOverviewState() when $default != null:
+return $default(_that);case _:
+ return orElse();
+
+}
+}
+/// A `switch`-like method, using callbacks.
+///
+/// Callbacks receives the raw object, upcasted.
+/// It is equivalent to doing:
+/// ```dart
+/// switch (sealedClass) {
+/// case final Subclass value:
+/// return ...;
+/// case final Subclass2 value:
+/// return ...;
+/// }
+/// ```
+
+@optionalTypeArgs TResult map<TResult extends Object?>(TResult Function( _PermissionOverviewState value) $default,){
+final _that = this;
+switch (_that) {
+case _PermissionOverviewState():
+return $default(_that);case _:
+ throw StateError('Unexpected subclass');
+
+}
+}
+/// A variant of `map` that fallback to returning `null`.
+///
+/// It is equivalent to doing:
+/// ```dart
+/// switch (sealedClass) {
+/// case final Subclass value:
+/// return ...;
+/// case _:
+/// return null;
+/// }
+/// ```
+
+@optionalTypeArgs TResult? mapOrNull<TResult extends Object?>(TResult? Function( _PermissionOverviewState value)? $default,){
+final _that = this;
+switch (_that) {
+case _PermissionOverviewState() when $default != null:
+return $default(_that);case _:
+ return null;
+
+}
+}
+/// A variant of `when` that fallback to an `orElse` callback.
+///
+/// It is equivalent to doing:
+/// ```dart
+/// switch (sealedClass) {
+/// case Subclass(:final field):
+/// return ...;
+/// case _:
+/// return orElse();
+/// }
+/// ```
+
+@optionalTypeArgs TResult maybeWhen<TResult extends Object?>(TResult Function( bool isLoading, AppError error)? $default,{required TResult orElse(),}) {final _that = this;
+switch (_that) {
+case _PermissionOverviewState() when $default != null:
+return $default(_that.isLoading,_that.error);case _:
+ return orElse();
+
+}
+}
+/// A `switch`-like method, using callbacks.
+///
+/// As opposed to `map`, this offers destructuring.
+/// It is equivalent to doing:
+/// ```dart
+/// switch (sealedClass) {
+/// case Subclass(:final field):
+/// return ...;
+/// case Subclass2(:final field2):
+/// return ...;
+/// }
+/// ```
+
+@optionalTypeArgs TResult when<TResult extends Object?>(TResult Function( bool isLoading, AppError error) $default,) {final _that = this;
+switch (_that) {
+case _PermissionOverviewState():
+return $default(_that.isLoading,_that.error);case _:
+ throw StateError('Unexpected subclass');
+
+}
+}
+/// A variant of `when` that fallback to returning `null`
+///
+/// It is equivalent to doing:
+/// ```dart
+/// switch (sealedClass) {
+/// case Subclass(:final field):
+/// return ...;
+/// case _:
+/// return null;
+/// }
+/// ```
+
+@optionalTypeArgs TResult? whenOrNull<TResult extends Object?>(TResult? Function( bool isLoading, AppError error)? $default,) {final _that = this;
+switch (_that) {
+case _PermissionOverviewState() when $default != null:
+return $default(_that.isLoading,_that.error);case _:
+ return null;
+
+}
+}
+
+}
+
+/// @nodoc
+
+
+class _PermissionOverviewState implements PermissionOverviewState {
+ const _PermissionOverviewState({this.isLoading = false, this.error = AppError.none});
+
+
+@override@JsonKey() final bool isLoading;
+@override@JsonKey() final AppError error;
+
+/// Create a copy of PermissionOverviewState
+/// with the given fields replaced by the non-null parameter values.
+@override @JsonKey(includeFromJson: false, includeToJson: false)
+@pragma('vm:prefer-inline')
+_$PermissionOverviewStateCopyWith<_PermissionOverviewState> get copyWith => __$PermissionOverviewStateCopyWithImpl<_PermissionOverviewState>(this, _$identity);
+
+
+
+@override
+bool operator ==(Object other) {
+ return identical(this, other) || (other.runtimeType == runtimeType&&other is _PermissionOverviewState&&(identical(other.isLoading, isLoading) || other.isLoading == isLoading)&&(identical(other.error, error) || other.error == error));
+}
+
+
+@override
+int get hashCode => Object.hash(runtimeType,isLoading,error);
+
+@override
+String toString() {
+ return 'PermissionOverviewState(isLoading: $isLoading, error: $error)';
+}
+
+
+}
+
+/// @nodoc
+abstract mixin class _$PermissionOverviewStateCopyWith<$Res> implements $PermissionOverviewStateCopyWith<$Res> {
+ factory _$PermissionOverviewStateCopyWith(_PermissionOverviewState value, $Res Function(_PermissionOverviewState) _then) = __$PermissionOverviewStateCopyWithImpl;
+@override @useResult
+$Res call({
+ bool isLoading, AppError error
+});
+
+
+
+
+}
+/// @nodoc
+class __$PermissionOverviewStateCopyWithImpl<$Res>
+ implements _$PermissionOverviewStateCopyWith<$Res> {
+ __$PermissionOverviewStateCopyWithImpl(this._self, this._then);
+
+ final _PermissionOverviewState _self;
+ final $Res Function(_PermissionOverviewState) _then;
+
+/// Create a copy of PermissionOverviewState
+/// with the given fields replaced by the non-null parameter values.
+@override @pragma('vm:prefer-inline') $Res call({Object? isLoading = null,Object? error = null,}) {
+ return _then(_PermissionOverviewState(
+isLoading: null == isLoading ? _self.isLoading : isLoading // ignore: cast_nullable_to_non_nullable
+as bool,error: null == error ? _self.error : error // ignore: cast_nullable_to_non_nullable
+as AppError,
+ ));
+}
+
+
+}
+
+// dart format on
diff --git a/comwell_key_app/lib/.generated/presentation/screens/permission_overview/permission_overview_route.g.dart b/comwell_key_app/lib/.generated/presentation/screens/permission_overview/permission_overview_route.g.dart
new file mode 100644
index 00000000..bebc19ca
--- /dev/null
+++ b/comwell_key_app/lib/.generated/presentation/screens/permission_overview/permission_overview_route.g.dart
@@ -0,0 +1,35 @@
+// GENERATED CODE - DO NOT MODIFY BY HAND
+
+part of '../../../../presentation/screens/permission_overview/permission_overview_route.dart';
+
+// **************************************************************************
+// GoRouterGenerator
+// **************************************************************************
+
+List<RouteBase> get $appRoutes => [$permissionOverviewRoute];
+
+RouteBase get $permissionOverviewRoute => GoRouteData.$route(
+ path: '/permission-overview',
+ factory: $PermissionOverviewRoute._fromState,
+);
+
+mixin $PermissionOverviewRoute on GoRouteData {
+ static PermissionOverviewRoute _fromState(GoRouterState state) =>
+ PermissionOverviewRoute();
+
+ @override
+ String get location => GoRouteData.$location('/permission-overview');
+
+ @override
+ void go(BuildContext context) => context.go(location);
+
+ @override
+ Future<T?> push<T>(BuildContext context) => context.push<T>(location);
+
+ @override
+ void pushReplacement(BuildContext context) =>
+ context.pushReplacement(location);
+
+ @override
+ void replace(BuildContext context) => context.replace(location);
+}
diff --git a/comwell_key_app/lib/check_in/bloc/check_in_state.dart b/comwell_key_app/lib/check_in/bloc/check_in_state.dart
index c8d892b4..7eb27561 100644
--- a/comwell_key_app/lib/check_in/bloc/check_in_state.dart
+++ b/comwell_key_app/lib/check_in/bloc/check_in_state.dart
@@ -19,7 +19,7 @@ abstract class CheckInState with _$CheckInState {
@Default("") String roomNumber,
}) = _CheckInState;
- CheckInState._();
+ const CheckInState._();
String titleStringId(BuildContext context) {
switch (cardState) {
diff --git a/comwell_key_app/lib/connection_state/connection_state_cubit.dart b/comwell_key_app/lib/connection_state/connection_state_cubit.dart
index 4cfe717c..51fb5ea4 100644
--- a/comwell_key_app/lib/connection_state/connection_state_cubit.dart
+++ b/comwell_key_app/lib/connection_state/connection_state_cubit.dart
@@ -10,7 +10,7 @@ part '../.generated/connection_state/connection_state_cubit.freezed.dart';
class ConnectionStateCubit extends BaseCubit<AppConnectionState> {
ConnectionStateCubit(this._bluetoothRepository, this._internetStatusRepository)
: super(const AppConnectionState()) {
- init();
+ _init();
}
final BluetoothRepository _bluetoothRepository;
@@ -18,14 +18,14 @@ class ConnectionStateCubit extends BaseCubit<AppConnectionState> {
late final StreamSubscription<bool> _internetStatusSubscription;
late final StreamSubscription<bool> _bluetoothStatusSubscription;
- Future<void> init() async {
- _bluetoothStatusSubscription = _bluetoothRepository.isEnabledStream().listen((value) {
- safeEmit(state.copyWith(isBluetoothEnabled: value));
- });
- _internetStatusSubscription = _internetStatusRepository.isConnectedStream().listen((value) {
- safeEmit(state.copyWith(isInternetConnected: value));
- });
+ Future<void> _init() async {
try {
+ _internetStatusSubscription = _internetStatusRepository.isConnectedStream().listen((value) {
+ safeEmit(state.copyWith(isInternetConnected: value));
+ });
+ _bluetoothStatusSubscription = _bluetoothRepository.isEnabledStream().listen((value) {
+ safeEmit(state.copyWith(isBluetoothEnabled: value));
+ });
safeEmit(state.copyWith(isLoading: true));
await Future.wait([_checkBluetooth(), _checkInternet()]);
} catch (e, st) {
@@ -36,8 +36,16 @@ class ConnectionStateCubit extends BaseCubit<AppConnectionState> {
}
Future<void> _checkBluetooth() async {
+ final isSupported = await _bluetoothRepository.isSupported();
final isEnabled = await _bluetoothRepository.isEnabled();
- safeEmit(state.copyWith(isBluetoothEnabled: isEnabled));
+ final isPermissionGranted = await _bluetoothRepository.isPermissionGranted();
+ safeEmit(
+ state.copyWith(
+ isBluetoothSupported: isSupported,
+ isBluetoothEnabled: isEnabled,
+ isBluetoothPermissionGranted: isPermissionGranted,
+ ),
+ );
}
Future<void> _checkInternet() async {
@@ -59,5 +67,7 @@ abstract class AppConnectionState with _$AppConnectionState {
@Default(false) bool isLoading,
@Default(true) bool isBluetoothEnabled,
@Default(true) bool isInternetConnected,
+ @Default(true) bool isBluetoothSupported,
+ @Default(true) bool isBluetoothPermissionGranted,
}) = _AppConnectionState;
}
diff --git a/comwell_key_app/lib/connection_state/connection_state_listener.dart b/comwell_key_app/lib/connection_state/connection_state_listener.dart
index 000761c5..a5af2c54 100644
--- a/comwell_key_app/lib/connection_state/connection_state_listener.dart
+++ b/comwell_key_app/lib/connection_state/connection_state_listener.dart
@@ -1,8 +1,7 @@
import 'package:comwell_key_app/connection_state/connection_state_cubit.dart';
-import 'package:comwell_key_app/routing/app_routes.dart';
+import 'package:comwell_key_app/presentation/screens/onboarding/onboarding_routes.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
-import 'package:go_router/go_router.dart';
class ConnectionStateListener extends StatefulWidget {
const ConnectionStateListener({super.key, required this.child});
@@ -22,7 +21,7 @@ class _ConnectionStateListenerState extends State<ConnectionStateListener> {
_lifecycleListener = AppLifecycleListener(
// when app comes back from notifications settings, update state
onResume: () {
- // context.read<ConnectionStateCubit>().init();
+ //context.read<ConnectionStateCubit>().init();
},
);
}
@@ -33,20 +32,33 @@ class _ConnectionStateListenerState extends State<ConnectionStateListener> {
super.dispose();
}
+ bool shouldShowBluetoothPermissionScreen(AppConnectionState prev, AppConnectionState curr) {
+ if (prev.isBluetoothEnabled && !curr.isBluetoothEnabled) return true;
+ if (prev.isBluetoothPermissionGranted && !curr.isBluetoothPermissionGranted) return true;
+ print("qqq state=${curr.isBluetoothPermissionGranted}");
+ return false;
+ }
+
+ bool shouldShowInternetPermissionScreen(AppConnectionState prev, AppConnectionState curr) {
+ if (prev.isInternetConnected && !curr.isInternetConnected) return true;
+ return false;
+ }
+
@override
Widget build(BuildContext context) {
return MultiBlocListener(
listeners: [
BlocListener<ConnectionStateCubit, AppConnectionState>(
- listenWhen: (prev, curr) => prev.isBluetoothEnabled && !curr.isBluetoothEnabled,
- listener: (context, state) {
- context.push(AppRoutes.onboardingBluetooth);
+ listenWhen: (prev, curr) => shouldShowBluetoothPermissionScreen(prev, curr),
+ listener: (context, state) async {
+ if (state.isBluetoothEnabled && state.isBluetoothPermissionGranted) return;
+ await BluetoothPermissionRoute().push(context);
},
),
BlocListener<ConnectionStateCubit, AppConnectionState>(
- listenWhen: (prev, curr) => prev.isInternetConnected && !curr.isInternetConnected,
+ listenWhen: (prev, curr) => shouldShowInternetPermissionScreen(prev, curr),
listener: (context, state) {
- print("qqq internet disabled!");
+ InternetDisabledRoute().push(context);
},
),
],
diff --git a/comwell_key_app/lib/domain/repositories/bluetooth_repository.dart b/comwell_key_app/lib/domain/repositories/bluetooth_repository.dart
index 77a68c9b..837152b5 100644
--- a/comwell_key_app/lib/domain/repositories/bluetooth_repository.dart
+++ b/comwell_key_app/lib/domain/repositories/bluetooth_repository.dart
@@ -11,7 +11,10 @@ class BluetoothRepository {
return adapterState == BluetoothAdapterState.on;
}
+ // app does not require bluetooth permission (yet).
+ // Consider remove when app is released and still not needed
Future<bool> isPermissionGranted() async {
+ return true;
final status = await Permission.bluetooth.status;
return status == PermissionStatus.granted;
}
@@ -21,9 +24,10 @@ class BluetoothRepository {
return status == PermissionStatus.granted;
}
- Stream<bool> isEnabledStream() {
- return FlutterBluePlus.adapterState.map((state) {
- return state == BluetoothAdapterState.on;
- });
+ Stream<bool> isEnabledStream() async* {
+ await for (final state in FlutterBluePlus.adapterState) {
+ if (state == BluetoothAdapterState.on) yield true;
+ if (state == BluetoothAdapterState.off) yield false;
+ }
}
}
diff --git a/comwell_key_app/lib/overview/overview_route.dart b/comwell_key_app/lib/overview/overview_route.dart
index 9f0e7451..c19e9eaa 100644
--- a/comwell_key_app/lib/overview/overview_route.dart
+++ b/comwell_key_app/lib/overview/overview_route.dart
@@ -13,4 +13,4 @@ RouteBase overviewRoute = GoRoute(
),
);
},
-);
+);
\ No newline at end of file
diff --git a/comwell_key_app/lib/presentation/screens/onboarding/bluetooth/bluetooth_permission_cubit.dart b/comwell_key_app/lib/presentation/screens/onboarding/bluetooth/bluetooth_permission_cubit.dart
index e4e767b3..b12b3b90 100644
--- a/comwell_key_app/lib/presentation/screens/onboarding/bluetooth/bluetooth_permission_cubit.dart
+++ b/comwell_key_app/lib/presentation/screens/onboarding/bluetooth/bluetooth_permission_cubit.dart
@@ -2,6 +2,7 @@ import 'dart:async';
import 'package:app_settings/app_settings.dart';
import 'package:comwell_key_app/base/base_cubit.dart';
+import 'package:comwell_key_app/domain/models/app_error.dart';
import 'package:comwell_key_app/domain/repositories/bluetooth_repository.dart';
import 'package:comwell_key_app/utils/secure_storage.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
@@ -9,41 +10,25 @@ import 'package:freezed_annotation/freezed_annotation.dart';
part "../../../../.generated/presentation/screens/onboarding/bluetooth/bluetooth_permission_cubit.freezed.dart";
class BluetoothPermissionCubit extends BaseCubit<BluetoothPermissionState> {
- BluetoothPermissionCubit(this._bluetoothRepository, this._preferences) : super(const BluetoothPermissionState()) {
+ BluetoothPermissionCubit(this._bluetoothRepository, this._comwellPreferences)
+ : super(const BluetoothPermissionState()) {
init();
}
- final ComwellPreferences _preferences;
+ final ComwellPreferences _comwellPreferences;
final BluetoothRepository _bluetoothRepository;
- late final StreamSubscription<bool> _bluetoothStatusStream;
- int _clickCount = 0;
- Future<void> init() async {
- await _preferences.setOnboardingHasSeenBluetooth();
- _bluetoothStatusStream = _bluetoothRepository.isEnabledStream().listen((isEnabled) {
- safeEmit(state.copyWith(isEnabled: isEnabled));
- });
+ int _clickCount = 0;
- try {
- safeEmit(state.copyWith(isLoading: true));
- await checkBluetoothStatus();
- } catch (e, st) {
- logError(e, st);
- safeEmit(state.copyWith(errorType: ErrorType.error));
- } finally {
- safeEmit(state.copyWith(isLoading: false));
- }
+ void init() {
+ _comwellPreferences.setOnboardingHasSeenBluetooth();
}
- Future<void> checkBluetoothStatus() async {
- final isSupported = await _bluetoothRepository.isSupported();
- if (!isSupported) return;
- safeEmit(state.copyWith(isSupported: true));
- final isEnabled = await _bluetoothRepository.isEnabled();
- if (!isEnabled) return;
+ Future<void> onEnabledPressed() async {
+ await AppSettings.openAppSettings(type: AppSettingsType.bluetooth);
}
- Future<void> onAcceptClicked() async {
+ Future<bool> onRequestPermissionClicked() async {
_clickCount++;
final shouldRedirectToSettings = _clickCount >= 3;
if (shouldRedirectToSettings) {
@@ -51,12 +36,8 @@ class BluetoothPermissionCubit extends BaseCubit<BluetoothPermissionState> {
} else {
await _bluetoothRepository.request();
}
- }
-
- @override
- Future<void> close() async {
- await _bluetoothStatusStream.cancel();
- return super.close();
+ final isGranted = await _bluetoothRepository.isPermissionGranted();
+ return isGranted;
}
}
@@ -64,11 +45,6 @@ class BluetoothPermissionCubit extends BaseCubit<BluetoothPermissionState> {
abstract class BluetoothPermissionState with _$BluetoothPermissionState {
const factory BluetoothPermissionState({
@Default(false) bool isLoading,
- @Default(false) bool isEnabled,
- @Default(false) bool isSupported,
- @Default(false) bool isPermissionGranted,
- @Default(ErrorType.none) ErrorType errorType,
+ @Default(AppError.none) AppError error,
}) = _BluetoothPermissionState;
}
-
-enum ErrorType { none, error }
diff --git a/comwell_key_app/lib/presentation/screens/onboarding/bluetooth/bluetooth_permission_screen.dart b/comwell_key_app/lib/presentation/screens/onboarding/bluetooth/bluetooth_permission_screen.dart
index 0d726cbb..eb4fc2b1 100644
--- a/comwell_key_app/lib/presentation/screens/onboarding/bluetooth/bluetooth_permission_screen.dart
+++ b/comwell_key_app/lib/presentation/screens/onboarding/bluetooth/bluetooth_permission_screen.dart
@@ -12,18 +12,23 @@ import 'bluetooth_permission_cubit.dart';
class BluetoothPermissionScreen extends StatelessWidget {
const BluetoothPermissionScreen({super.key});
+ bool _bluetoothReady(AppConnectionState prev, AppConnectionState curr) {
+ return curr.isBluetoothEnabled && curr.isBluetoothPermissionGranted;
+ }
+
@override
Widget build(BuildContext context) {
+ final cubit = context.read<BluetoothPermissionCubit>();
return MultiBlocListener(
listeners: [
BlocListener<ConnectionStateCubit, AppConnectionState>(
- listenWhen: (prev, curr) => !prev.isBluetoothEnabled && curr.isBluetoothEnabled,
+ listenWhen: (prev, curr) => _bluetoothReady(prev, curr),
listener: (context, state) {
context.pop();
},
),
],
- child: BlocBuilder<BluetoothPermissionCubit, BluetoothPermissionState>(
+ child: BlocBuilder<ConnectionStateCubit, AppConnectionState>(
builder: (context, state) {
if (state.isLoading) {
return const Scaffold(
@@ -35,15 +40,29 @@ class BluetoothPermissionScreen extends StatelessWidget {
),
);
}
- return PermissionScreenTemplate(
- title: context.strings.bluetooth_disabled,
- subtitle: context.strings.please_enable_bluetooth,
- primaryButtonText: context.strings.generic_ok,
- primaryButtonOnClick: () async {
- context.pop();
- },
- image: Assets.icons.bluetoothCircled,
- );
+ if (!state.isBluetoothEnabled) {
+ return PermissionScreenTemplate(
+ title: context.strings.bluetooth_disabled,
+ subtitle: context.strings.please_enable_bluetooth,
+ primaryButtonText: context.strings.generic_ok,
+ primaryButtonOnClick: () {
+ context.pop();
+ },
+ image: Assets.icons.bluetoothCircled,
+ );
+ }
+ return PermissionScreenTemplate(
+ title: context.strings.bluetooth_permission_title,
+ subtitle: context.strings.bluetooth_permission_description,
+ primaryButtonText: context.strings.allow_bluetooth,
+ primaryButtonOnClick: () async {
+ final isGranted = await cubit.onRequestPermissionClicked();
+ if (isGranted && context.mounted) {
+ context.pop();
+ }
+ },
+ image: Assets.icons.bluetoothCircled,
+ );
},
),
);
diff --git a/comwell_key_app/lib/presentation/screens/onboarding/internet/internet_disabled_screen.dart b/comwell_key_app/lib/presentation/screens/onboarding/internet/internet_disabled_screen.dart
new file mode 100644
index 00000000..41f7ae06
--- /dev/null
+++ b/comwell_key_app/lib/presentation/screens/onboarding/internet/internet_disabled_screen.dart
@@ -0,0 +1,39 @@
+import 'package:comwell_key_app/.generated/assets/assets.gen.dart';
+import 'package:comwell_key_app/connection_state/connection_state_cubit.dart';
+import 'package:comwell_key_app/utils/l10n_utils.dart';
+import 'package:flutter/material.dart';
+import 'package:flutter_bloc/flutter_bloc.dart';
+import 'package:go_router/go_router.dart';
+
+import '../permission_screen_template.dart';
+
+class InternetDisabledScreen extends StatelessWidget {
+ const InternetDisabledScreen({super.key});
+
+ @override
+ Widget build(BuildContext context) {
+ return MultiBlocListener(
+ listeners: [
+ BlocListener<ConnectionStateCubit, AppConnectionState>(
+ listenWhen: (prev, curr) => !prev.isInternetConnected && curr.isInternetConnected,
+ listener: (context, state) {
+ context.pop();
+ },
+ ),
+ ],
+ child: Builder(
+ builder: (context) {
+ return PermissionScreenTemplate(
+ title: context.strings.internet_disabled,
+ subtitle: context.strings.please_enable_internet,
+ primaryButtonText: context.strings.generic_ok,
+ primaryButtonOnClick: () async {
+ context.pop();
+ },
+ image: Assets.icons.noConnection,
+ );
+ },
+ ),
+ );
+ }
+}
diff --git a/comwell_key_app/lib/presentation/screens/onboarding/internet/internet_permission_screen.dart b/comwell_key_app/lib/presentation/screens/onboarding/internet/internet_permission_screen.dart
deleted file mode 100644
index aa33f92e..00000000
--- a/comwell_key_app/lib/presentation/screens/onboarding/internet/internet_permission_screen.dart
+++ /dev/null
@@ -1,39 +0,0 @@
-import 'package:comwell_key_app/.generated/assets/assets.gen.dart';
-import 'package:comwell_key_app/connection_state/connection_state_cubit.dart';
-import 'package:comwell_key_app/utils/l10n_utils.dart';
-import 'package:flutter/material.dart';
-import 'package:flutter_bloc/flutter_bloc.dart';
-import 'package:go_router/go_router.dart';
-
-import '../permission_screen_template.dart';
-
-class InternetStatusScreen extends StatelessWidget {
- const InternetStatusScreen({super.key});
-
- @override
- Widget build(BuildContext context) {
- return MultiBlocListener(
- listeners: [
- BlocListener<ConnectionStateCubit, AppConnectionState>(
- listenWhen: (prev, curr) => !prev.isInternetConnected && curr.isInternetConnected,
- listener: (context, state) {
- context.pop();
- },
- ),
- ],
- child: Builder(
- builder: (context) {
- return PermissionScreenTemplate(
- title: context.strings.internet_disabled,
- subtitle: context.strings.please_enable_internet,
- primaryButtonText: context.strings.generic_ok,
- primaryButtonOnClick: () async {
- context.pop();
- },
- image: Assets.icons.noConnection,
- );
- },
- ),
- );
- }
-}
diff --git a/comwell_key_app/lib/presentation/screens/onboarding/notifications/notification_permission_cubit.dart b/comwell_key_app/lib/presentation/screens/onboarding/notifications/notification_permission_cubit.dart
index f5e26838..bbe4d5ba 100644
--- a/comwell_key_app/lib/presentation/screens/onboarding/notifications/notification_permission_cubit.dart
+++ b/comwell_key_app/lib/presentation/screens/onboarding/notifications/notification_permission_cubit.dart
@@ -1,5 +1,6 @@
import 'package:app_settings/app_settings.dart';
import 'package:bloc/bloc.dart';
+import 'package:comwell_key_app/domain/models/app_error.dart';
import 'package:comwell_key_app/utils/secure_storage.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:permission_handler/permission_handler.dart';
@@ -35,8 +36,7 @@ class NotificationPermissionCubit extends Cubit<NotificationPermissionState> {
abstract class NotificationPermissionState with _$NotificationPermissionState {
const factory NotificationPermissionState({
@Default(false) bool isLoading,
- @Default(ErrorType.none) ErrorType errorType,
+ @Default(AppError.none) AppError errorType,
}) = _NotificationPermissionState;
}
-enum ErrorType { none }
diff --git a/comwell_key_app/lib/presentation/screens/onboarding/notifications/notification_permission_screen.dart b/comwell_key_app/lib/presentation/screens/onboarding/notifications/notification_permission_screen.dart
index 5c8ad970..a7c71952 100644
--- a/comwell_key_app/lib/presentation/screens/onboarding/notifications/notification_permission_screen.dart
+++ b/comwell_key_app/lib/presentation/screens/onboarding/notifications/notification_permission_screen.dart
@@ -14,7 +14,6 @@ class NotificationPermissionScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
final cubit = context.watch<NotificationPermissionCubit>();
- final state = cubit.state;
return PermissionScreenTemplate(
title: context.strings.accept_notifications,
subtitle: context.strings.accept_notifications_rationale,
diff --git a/comwell_key_app/lib/presentation/screens/onboarding/onboarding_routes.dart b/comwell_key_app/lib/presentation/screens/onboarding/onboarding_routes.dart
index 55b1eb33..383fcebf 100644
--- a/comwell_key_app/lib/presentation/screens/onboarding/onboarding_routes.dart
+++ b/comwell_key_app/lib/presentation/screens/onboarding/onboarding_routes.dart
@@ -1,3 +1,4 @@
+import 'package:comwell_key_app/presentation/navigation/transitions/slide_up_transition.dart';
import 'package:comwell_key_app/presentation/screens/onboarding/usage_tracking/usage_tracking_permission_cubit.dart';
import 'package:comwell_key_app/presentation/screens/onboarding/usage_tracking/usage_tracking_permission_screen.dart';
import 'package:comwell_key_app/routing/app_routes.dart';
@@ -8,15 +9,19 @@ import 'package:go_router/go_router.dart';
import 'bluetooth/bluetooth_permission_cubit.dart';
import 'bluetooth/bluetooth_permission_screen.dart';
+import 'internet/internet_disabled_screen.dart';
import 'notifications/notification_permission_cubit.dart';
import 'notifications/notification_permission_screen.dart';
-RouteBase get bluetoothPermissionRoute => GoRoute(
- path: AppRoutes.onboardingBluetooth,
- pageBuilder: (context, state) {
- return MaterialPage(
+part '../../../.generated/presentation/screens/onboarding/onboarding_routes.g.dart';
+
+@TypedGoRoute<BluetoothPermissionRoute>(path: AppRoutes.onboardingBluetooth)
+class BluetoothPermissionRoute extends GoRouteData with $BluetoothPermissionRoute {
+ @override
+ Page<void> buildPage(BuildContext context, GoRouterState state) {
+ return SlideUpTransition(
+ state: state,
child: BlocProvider(
- lazy: false,
create: (context) => BluetoothPermissionCubit(
locator.get(),
locator.get(),
@@ -24,29 +29,48 @@ RouteBase get bluetoothPermissionRoute => GoRoute(
child: const BluetoothPermissionScreen(),
),
);
- },
-);
+ }
+}
-RouteBase get notificationsPermissionRoute => GoRoute(
- path: AppRoutes.onboardingNotification,
- builder: (context, state) {
- return BlocProvider(
- lazy: false,
- create: (context) => NotificationPermissionCubit(
- locator.get(),
+@TypedGoRoute<NotificationPermissionRoute>(path: AppRoutes.onboardingNotification)
+class NotificationPermissionRoute extends GoRouteData with $NotificationPermissionRoute {
+ @override
+ Page<void> buildPage(BuildContext context, GoRouterState state) {
+ return SlideUpTransition(
+ state: state,
+ child: BlocProvider(
+ lazy: false,
+ create: (context) => NotificationPermissionCubit(
+ locator.get(),
+ ),
+ child: const NotificationPermissionScreen(),
+ ),
+ );
+ }
+}
+
+@TypedGoRoute<UsageTrackingPermissionRoute>(path: AppRoutes.onboardingUsageTracking)
+class UsageTrackingPermissionRoute extends GoRouteData with $UsageTrackingPermissionRoute {
+ @override
+ Page<void> buildPage(BuildContext context, GoRouterState state) {
+ return SlideUpTransition(
+ state: state,
+ child: BlocProvider(
+ lazy: false,
+ create: (context) => UsageTrackingPermissionCubit(true, locator.get()),
+ child: const UsageTrackingPermissionScreen(),
),
- child: const NotificationPermissionScreen(),
);
- },
-);
+ }
+}
-RouteBase get usageTrackingPermissionRoute => GoRoute(
- path: AppRoutes.onboardingUsageTracking,
- builder: (context, state) {
- return BlocProvider(
- lazy: false,
- create: (context) => UsageTrackingPermissionCubit(true, locator.get()),
- child: const UsageTrackingPermissionScreen(),
+@TypedGoRoute<InternetDisabledRoute>(path: AppRoutes.internetDisabled)
+class InternetDisabledRoute extends GoRouteData with $InternetDisabledRoute {
+ @override
+ Page<void> buildPage(BuildContext context, GoRouterState state) {
+ return SlideUpTransition(
+ state: state,
+ child: const InternetDisabledScreen(),
);
- },
-);
+ }
+}
diff --git a/comwell_key_app/lib/presentation/screens/onboarding/usage_tracking/usage_tracking_permission_cubit.dart b/comwell_key_app/lib/presentation/screens/onboarding/usage_tracking/usage_tracking_permission_cubit.dart
index 912993de..981c595b 100644
--- a/comwell_key_app/lib/presentation/screens/onboarding/usage_tracking/usage_tracking_permission_cubit.dart
+++ b/comwell_key_app/lib/presentation/screens/onboarding/usage_tracking/usage_tracking_permission_cubit.dart
@@ -5,6 +5,7 @@ import 'package:app_tracking_transparency/app_tracking_transparency.dart';
import 'package:comwell_key_app/base/base_cubit.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
+import '../../../../domain/models/app_error.dart';
import '../../../../utils/secure_storage.dart';
part '../../../../.generated/presentation/screens/onboarding/usage_tracking/usage_tracking_permission_cubit.freezed.dart';
@@ -41,9 +42,13 @@ class UsageTrackingPermissionCubit extends BaseCubit<UsageTrackingPermissionStat
final initialStatus = await AppTrackingTransparency.trackingAuthorizationStatus;
_clickCounter++;
safeEmit(state.copyWith(isLoading: true));
+ final isAuthorized = initialStatus == TrackingStatus.authorized;
if (_clickCounter >= 3) {
await AppSettings.openAppSettings(type: AppSettingsType.settings);
+ } else if (!isAuthorized) {
+ await AppTrackingTransparency.requestTrackingAuthorization();
} else if (isOnboarding) {
+ AppTrackingTransparency.requestTrackingAuthorization();
return true;
} else {
await AppSettings.openAppSettings(type: AppSettingsType.settings);
@@ -59,8 +64,6 @@ class UsageTrackingPermissionCubit extends BaseCubit<UsageTrackingPermissionStat
abstract class UsageTrackingPermissionState with _$UsageTrackingPermissionState {
const factory UsageTrackingPermissionState({
@Default(false) bool isLoading,
- @Default(UsageTrackingError.none) UsageTrackingError errorType,
+ @Default(AppError.none) AppError error,
}) = _UsageTrackingPermissionState;
}
-
-enum UsageTrackingError { none }
diff --git a/comwell_key_app/lib/presentation/screens/onboarding/usage_tracking/usage_tracking_permission_screen.dart b/comwell_key_app/lib/presentation/screens/onboarding/usage_tracking/usage_tracking_permission_screen.dart
index 0a065e42..b1f67206 100644
--- a/comwell_key_app/lib/presentation/screens/onboarding/usage_tracking/usage_tracking_permission_screen.dart
+++ b/comwell_key_app/lib/presentation/screens/onboarding/usage_tracking/usage_tracking_permission_screen.dart
@@ -1,8 +1,10 @@
import 'package:comwell_key_app/.generated/assets/assets.gen.dart';
import 'package:comwell_key_app/presentation/screens/onboarding/permission_screen_template.dart';
+import 'package:comwell_key_app/presentation/screens/onboarding/usage_tracking/usage_tracking_permission_cubit.dart';
import 'package:comwell_key_app/routing/app_routes.dart';
import 'package:comwell_key_app/utils/l10n_utils.dart';
import 'package:flutter/material.dart';
+import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:go_router/go_router.dart';
class UsageTrackingPermissionScreen extends StatelessWidget {
@@ -10,11 +12,13 @@ class UsageTrackingPermissionScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
+ final cubit = context.read<UsageTrackingPermissionCubit>();
return PermissionScreenTemplate(
title: context.strings.allow_usage_tracking,
subtitle: context.strings.usage_tracking_rationale,
primaryButtonText: context.strings.allow,
- primaryButtonOnClick: () {
+ primaryButtonOnClick: () async {
+ await cubit.confirm();
if (context.mounted) context.go(AppRoutes.overview);
},
secondaryButtonText: context.strings.skip,
diff --git a/comwell_key_app/lib/presentation/screens/permission_overview/bloc/permission_overview_cubit.dart b/comwell_key_app/lib/presentation/screens/permission_overview/bloc/permission_overview_cubit.dart
new file mode 100644
index 00000000..f961b458
--- /dev/null
+++ b/comwell_key_app/lib/presentation/screens/permission_overview/bloc/permission_overview_cubit.dart
@@ -0,0 +1,21 @@
+import 'package:comwell_key_app/domain/models/app_error.dart';
+import 'package:comwell_key_app/presentation/base/base_cubit.dart';
+import 'package:comwell_key_app/presentation/screens/permission_overview/bloc/permission_overview_state.dart';
+
+class PermissionOverviewCubit extends BaseCubit<PermissionOverviewState> {
+ PermissionOverviewCubit() : super(const PermissionOverviewState()) {
+ init();
+ }
+
+ Future<void> init() async {
+ try {
+ safeEmit(state.loading());
+ // await Function();
+ } catch (e, st) {
+ logError(e, st);
+ safeEmit(state.copyWith(error: AppError.unknown(e.toString())));
+ } finally {
+ safeEmit(state.copyWith(isLoading: false));
+ }
+ }
+}
\ No newline at end of file
diff --git a/comwell_key_app/lib/presentation/screens/permission_overview/bloc/permission_overview_state.dart b/comwell_key_app/lib/presentation/screens/permission_overview/bloc/permission_overview_state.dart
new file mode 100644
index 00000000..713230a9
--- /dev/null
+++ b/comwell_key_app/lib/presentation/screens/permission_overview/bloc/permission_overview_state.dart
@@ -0,0 +1,14 @@
+import 'package:comwell_key_app/domain/models/app_error.dart';
+import 'package:freezed_annotation/freezed_annotation.dart';
+
+part '../../../../.generated/presentation/screens/permission_overview/bloc/permission_overview_state.freezed.dart';
+
+@freezed
+abstract class PermissionOverviewState with _$PermissionOverviewState {
+ const factory PermissionOverviewState({
+ @Default(false) bool isLoading,
+ @Default(AppError.none) AppError error,
+ }) = _PermissionOverviewState;
+
+ PermissionOverviewState loading() => copyWith(isLoading: true, error: AppError.none);
+}
\ No newline at end of file
diff --git a/comwell_key_app/lib/presentation/screens/permission_overview/permission_overview_route.dart b/comwell_key_app/lib/presentation/screens/permission_overview/permission_overview_route.dart
new file mode 100644
index 00000000..000be38b
--- /dev/null
+++ b/comwell_key_app/lib/presentation/screens/permission_overview/permission_overview_route.dart
@@ -0,0 +1,25 @@
+import 'package:flutter/material.dart';
+import 'package:flutter_bloc/flutter_bloc.dart';
+import 'package:go_router/go_router.dart';
+import 'package:comwell_key_app/presentation/navigation/transitions/slide_in_transition.dart';
+import 'package:comwell_key_app/presentation/screens/permission_overview/bloc/permission_overview_cubit.dart';
+import 'package:comwell_key_app/presentation/screens/permission_overview/permission_overview_screen.dart';
+
+part '../../../.generated/presentation/screens/permission_overview/permission_overview_route.g.dart';
+
+@TypedGoRoute<PermissionOverviewRoute>(
+ path: "/permission-overview", // add me to AppRoutes: static const permissionOverview = "/permission-overview";
+)
+class PermissionOverviewRoute extends GoRouteData with $PermissionOverviewRoute {
+
+ @override
+ Page<void> buildPage(BuildContext context, GoRouterState state) {
+ return SlideInTransition(
+ state: state,
+ child: BlocProvider(
+ create: (context) => PermissionOverviewCubit(),
+ child: const PermissionOverviewScreen(),
+ ),
+ );
+ }
+}
\ No newline at end of file
diff --git a/comwell_key_app/lib/presentation/screens/permission_overview/permission_overview_screen.dart b/comwell_key_app/lib/presentation/screens/permission_overview/permission_overview_screen.dart
new file mode 100644
index 00000000..09e3f126
--- /dev/null
+++ b/comwell_key_app/lib/presentation/screens/permission_overview/permission_overview_screen.dart
@@ -0,0 +1,38 @@
+import 'package:flutter/material.dart';
+import 'package:flutter_bloc/flutter_bloc.dart';
+import 'package:comwell_key_app/presentation/screens/permission_overview/bloc/permission_overview_cubit.dart';
+import 'package:comwell_key_app/presentation/screens/permission_overview/bloc/permission_overview_state.dart';
+
+class PermissionOverviewScreen extends StatelessWidget {
+ const PermissionOverviewScreen({super.key});
+
+ @override
+ Widget build(BuildContext context) {
+ return BlocBuilder<PermissionOverviewCubit, PermissionOverviewState>(
+ builder: (context, state) {
+ final cubit = context.read<PermissionOverviewCubit>();
+ return MultiBlocListener(
+ listeners: [
+ BlocListener<PermissionOverviewCubit, PermissionOverviewState>(
+ listenWhen: (prev, curr) =>
+ prev.isLoading && !curr.isLoading && curr.error.isError,
+ listener: (context, state) {
+ // context.showErrorSnackBar(state.errorMessage);
+ },
+ )
+ ],
+ child: Scaffold(
+ appBar: AppBar(),
+ body: Center(
+ child: Column(
+ children: [
+ Text("PermissionOverview"),
+ ],
+ ),
+ ),
+ ),
+ );
+ },
+ );
+ }
+}
\ No newline at end of file
diff --git a/comwell_key_app/lib/routing/app_router.dart b/comwell_key_app/lib/routing/app_router.dart
index a384d9fe..604250bb 100644
--- a/comwell_key_app/lib/routing/app_router.dart
+++ b/comwell_key_app/lib/routing/app_router.dart
@@ -84,9 +84,10 @@ final router = GoRouter(
},
routes: <RouteBase>[
loginRoute,
- bluetoothPermissionRoute,
- notificationsPermissionRoute,
- usageTrackingPermissionRoute,
+ $bluetoothPermissionRoute,
+ $notificationPermissionRoute,
+ $usageTrackingPermissionRoute,
+ $internetDisabledRoute,
overviewRoute,
profileRoute,
profileSettingsRoute,
diff --git a/comwell_key_app/lib/routing/app_routes.dart b/comwell_key_app/lib/routing/app_routes.dart
index 393795f4..a4d4dc99 100644
--- a/comwell_key_app/lib/routing/app_routes.dart
+++ b/comwell_key_app/lib/routing/app_routes.dart
@@ -12,6 +12,7 @@ abstract class AppRoutes {
static const onboardingBluetooth = "/onboarding/bluetooth";
static const onboardingNotification = "/onboarding/notification";
static const onboardingUsageTracking = "/onboarding/usage-tracking";
+ static const internetDisabled = "/internet-disabled";
static const receivedSharedRoom = "/received-shared-room";
static const receivedSharedBooking = "/received-shared-booking";
static const checkOutSuccess = "/checkout-success";