Add haptic feedback, rich task completion, and Google Sign-In preparation
- Add platform haptic feedback abstraction (HapticFeedback.kt) with implementations for Android, iOS, JVM, JS, and WASM - Enhance CompleteTaskDialog with interactive 5-star rating, image thumbnails, and haptic feedback - Add ImageBitmap platform abstraction for displaying selected images - Localize TaskTemplatesBrowserSheet with string resources - Add Android widgets infrastructure (small, medium, large sizes) - Add Google Sign-In button components and auth flow preparation - Update strings.xml with new localization keys for completions, templates, and document features - Integrate haptic feedback into ThemePickerDialog 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -72,6 +72,14 @@
|
||||
<string name="properties_join_title">Join Property</string>
|
||||
<string name="properties_join_code_label">Enter Share Code</string>
|
||||
<string name="properties_join_button">Join</string>
|
||||
<string name="properties_join_residence_title">Join Residence</string>
|
||||
<string name="properties_join_residence_message">Would you like to join this shared residence?</string>
|
||||
<string name="properties_join_success">Joined Residence</string>
|
||||
<string name="properties_join_success_message">You now have access to %1$s.</string>
|
||||
<string name="properties_join_failed">Join Failed</string>
|
||||
<string name="properties_joining">Joining...</string>
|
||||
<string name="properties_shared_by">Shared by: %1$s</string>
|
||||
<string name="properties_expires">Expires: %1$s</string>
|
||||
<string name="properties_share_upgrade_title">Pro Feature</string>
|
||||
<string name="properties_share_upgrade_message">Sharing residences is a Pro feature. Upgrade to invite family members to collaborate on home maintenance.</string>
|
||||
<string name="properties_users_title">Property Members</string>
|
||||
@@ -163,6 +171,35 @@
|
||||
<string name="tasks_due_date_placeholder">2025-01-31</string>
|
||||
<string name="tasks_update">Update Task</string>
|
||||
<string name="tasks_failed_to_update">Failed to Update Task</string>
|
||||
<string name="tasks_failed_to_cancel">Failed to cancel task</string>
|
||||
<string name="tasks_failed_to_restore">Failed to restore task</string>
|
||||
<string name="tasks_failed_to_mark_in_progress">Failed to mark task in progress</string>
|
||||
<string name="tasks_failed_to_archive">Failed to archive task</string>
|
||||
<string name="tasks_failed_to_unarchive">Failed to unarchive task</string>
|
||||
<string name="tasks_card_in_progress">IN PROGRESS</string>
|
||||
<string name="tasks_card_actions">Actions</string>
|
||||
<string name="tasks_card_mark_in_progress">Mark In Progress</string>
|
||||
<string name="tasks_card_complete_task">Complete Task</string>
|
||||
<string name="tasks_card_edit_task">Edit Task</string>
|
||||
<string name="tasks_card_cancel_task">Cancel Task</string>
|
||||
<string name="tasks_card_restore_task">Restore Task</string>
|
||||
<string name="tasks_card_archive_task">Archive Task</string>
|
||||
<string name="tasks_card_unarchive_task">Unarchive Task</string>
|
||||
<string name="tasks_card_not_available">N/A</string>
|
||||
<string name="tasks_card_completed_by">By: %1$s</string>
|
||||
<string name="tasks_card_cost">Cost: $%1$s</string>
|
||||
<string name="tasks_card_view_photos">View Photos (%1$d)</string>
|
||||
<string name="tasks_add_new">Add New Task</string>
|
||||
<string name="tasks_property_required">Property *</string>
|
||||
<string name="tasks_property_error">Property is required</string>
|
||||
<string name="tasks_browse_templates">Browse Task Templates</string>
|
||||
<string name="tasks_common_tasks">%1$d common tasks</string>
|
||||
<string name="tasks_category_error">Category is required</string>
|
||||
<string name="tasks_interval_days">Interval Days (optional)</string>
|
||||
<string name="tasks_interval_override">Override default frequency interval</string>
|
||||
<string name="tasks_due_date_format_error">Due date is required (format: YYYY-MM-DD)</string>
|
||||
<string name="tasks_due_date_format">Format: YYYY-MM-DD</string>
|
||||
<string name="tasks_create">Create Task</string>
|
||||
|
||||
<!-- Task Columns / Kanban -->
|
||||
<string name="tasks_column_overdue">Overdue</string>
|
||||
@@ -184,6 +221,21 @@
|
||||
<string name="tasks_in_progress_label">In Progress</string>
|
||||
<string name="tasks_cancelled_message">Task cancelled</string>
|
||||
|
||||
<!-- Task Templates -->
|
||||
<string name="templates_title">Task Templates</string>
|
||||
<string name="templates_done">Done</string>
|
||||
<string name="templates_search_placeholder">Search templates...</string>
|
||||
<string name="templates_clear">Clear</string>
|
||||
<string name="templates_result">result</string>
|
||||
<string name="templates_results">results</string>
|
||||
<string name="templates_no_results_title">No Templates Found</string>
|
||||
<string name="templates_no_results_message">Try a different search term</string>
|
||||
<string name="templates_empty_title">No Templates Available</string>
|
||||
<string name="templates_empty_message">Templates will appear here once loaded</string>
|
||||
<string name="templates_expand">Expand</string>
|
||||
<string name="templates_collapse">Collapse</string>
|
||||
<string name="templates_add">Add</string>
|
||||
|
||||
<!-- Task Completions -->
|
||||
<string name="completions_title">Task Completions</string>
|
||||
<string name="completions_add_title">Complete Task</string>
|
||||
@@ -193,6 +245,29 @@
|
||||
<string name="completions_photos_label">Photos</string>
|
||||
<string name="completions_add_photo">Add Photo</string>
|
||||
<string name="completions_delete_confirm">Delete this completion record?</string>
|
||||
<string name="completions_complete_task_title">Complete Task: %1$s</string>
|
||||
<string name="completions_select_contractor">Select Contractor (optional)</string>
|
||||
<string name="completions_choose_contractor_placeholder">Choose a contractor or leave blank</string>
|
||||
<string name="completions_expand">Expand</string>
|
||||
<string name="completions_none_manual">None (manual entry)</string>
|
||||
<string name="completions_loading_contractors">Loading contractors...</string>
|
||||
<string name="completions_error_loading_contractors">Error loading contractors</string>
|
||||
<string name="completions_completed_by_name">Completed By Name (optional)</string>
|
||||
<string name="completions_completed_by_placeholder">Enter name if not using contractor above</string>
|
||||
<string name="completions_actual_cost_optional">Actual Cost (optional)</string>
|
||||
<string name="completions_notes_optional">Notes (optional)</string>
|
||||
<string name="completions_rating">Rating: %1$d out of 5</string>
|
||||
<string name="completions_add_images">Add Images</string>
|
||||
<string name="completions_take_photo">Take Photo</string>
|
||||
<string name="completions_choose_from_library">Choose from Library</string>
|
||||
<string name="completions_images_selected">%1$d image(s) selected</string>
|
||||
<string name="completions_remove_image">Remove image</string>
|
||||
<string name="completions_complete_button">Complete</string>
|
||||
<string name="completions_quality_rating">Quality Rating</string>
|
||||
<string name="completions_photos_count">Photos (%1$d/%2$d)</string>
|
||||
<string name="completions_camera">Camera</string>
|
||||
<string name="completions_library">Library</string>
|
||||
<string name="completions_add_photos_helper">Add photos of completed work (optional)</string>
|
||||
|
||||
<!-- Contractors -->
|
||||
<string name="contractors_title">Contractors</string>
|
||||
@@ -259,6 +334,32 @@
|
||||
<string name="contractors_import_failed">Import Failed</string>
|
||||
<string name="contractors_shared_by">Shared by: %1$s</string>
|
||||
|
||||
<!-- Contractor Form/Dialog -->
|
||||
<string name="contractors_form_add_title">Add Contractor</string>
|
||||
<string name="contractors_form_edit_title">Edit Contractor</string>
|
||||
<string name="contractors_form_basic_info">Basic Information</string>
|
||||
<string name="contractors_form_name_required">Name *</string>
|
||||
<string name="contractors_form_company">Company</string>
|
||||
<string name="contractors_form_residence_optional">Residence (Optional)</string>
|
||||
<string name="contractors_form_personal_no_residence">Personal (No Residence)</string>
|
||||
<string name="contractors_form_personal_visibility">Only you will see this contractor</string>
|
||||
<string name="contractors_form_shared_visibility">All users of %1$s will see this contractor</string>
|
||||
<string name="contractors_form_contact_info">Contact Information</string>
|
||||
<string name="contractors_form_phone">Phone</string>
|
||||
<string name="contractors_form_email">Email</string>
|
||||
<string name="contractors_form_website">Website</string>
|
||||
<string name="contractors_form_specialties">Specialties</string>
|
||||
<string name="contractors_form_address_section">Address</string>
|
||||
<string name="contractors_form_street_address">Street Address</string>
|
||||
<string name="contractors_form_city">City</string>
|
||||
<string name="contractors_form_state">State</string>
|
||||
<string name="contractors_form_zip_code">ZIP Code</string>
|
||||
<string name="contractors_form_notes_section">Notes</string>
|
||||
<string name="contractors_form_private_notes">Private Notes</string>
|
||||
<string name="contractors_form_mark_favorite">Mark as Favorite</string>
|
||||
<string name="contractors_form_add_button">Add</string>
|
||||
<string name="contractors_form_save_button">Save</string>
|
||||
|
||||
<!-- Documents -->
|
||||
<string name="documents_title">Documents</string>
|
||||
<string name="documents_and_warranties">Documents & Warranties</string>
|
||||
@@ -338,6 +439,51 @@
|
||||
<string name="documents_previous">Previous</string>
|
||||
<string name="documents_next">Next</string>
|
||||
|
||||
<!-- Document Form -->
|
||||
<string name="documents_form_edit_warranty">Edit Warranty</string>
|
||||
<string name="documents_form_edit_document">Edit Document</string>
|
||||
<string name="documents_form_add_warranty">Add Warranty</string>
|
||||
<string name="documents_form_add_document">Add Document</string>
|
||||
<string name="documents_form_select_residence">Select Residence</string>
|
||||
<string name="documents_form_residence_required">Residence *</string>
|
||||
<string name="documents_form_document_type_required">Document Type *</string>
|
||||
<string name="documents_form_title_required">Title *</string>
|
||||
<string name="documents_form_item_name_required">Item Name *</string>
|
||||
<string name="documents_form_model_number">Model Number</string>
|
||||
<string name="documents_form_serial_number">Serial Number</string>
|
||||
<string name="documents_form_provider_required">Provider/Company *</string>
|
||||
<string name="documents_form_provider_contact">Provider Contact</string>
|
||||
<string name="documents_form_claim_phone">Claim Phone</string>
|
||||
<string name="documents_form_claim_email">Claim Email</string>
|
||||
<string name="documents_form_claim_website">Claim Website</string>
|
||||
<string name="documents_form_purchase_date">Purchase Date (YYYY-MM-DD)</string>
|
||||
<string name="documents_form_warranty_start">Warranty Start Date (YYYY-MM-DD)</string>
|
||||
<string name="documents_form_warranty_end_required">Warranty End Date (YYYY-MM-DD) *</string>
|
||||
<string name="documents_form_description">Description</string>
|
||||
<string name="documents_form_category">Category</string>
|
||||
<string name="documents_form_select_category">Select Category</string>
|
||||
<string name="documents_form_category_none">None</string>
|
||||
<string name="documents_form_tags">Tags</string>
|
||||
<string name="documents_form_tags_placeholder">tag1, tag2, tag3</string>
|
||||
<string name="documents_form_notes">Notes</string>
|
||||
<string name="documents_form_active">Active</string>
|
||||
<string name="documents_form_existing_photos">Existing Photos (%1$d)</string>
|
||||
<string name="documents_form_new_photos">New Photos (%1$d/%2$d)</string>
|
||||
<string name="documents_form_photos">Photos (%1$d/%2$d)</string>
|
||||
<string name="documents_form_camera">Camera</string>
|
||||
<string name="documents_form_gallery">Gallery</string>
|
||||
<string name="documents_form_image_number">Image %1$d</string>
|
||||
<string name="documents_form_remove_image">Remove image</string>
|
||||
<string name="documents_form_update_warranty">Update Warranty</string>
|
||||
<string name="documents_form_update_document">Update Document</string>
|
||||
<string name="documents_form_select_residence_error">Please select a residence</string>
|
||||
<string name="documents_form_title_error">Title is required</string>
|
||||
<string name="documents_form_item_name_error">Item name is required for warranties</string>
|
||||
<string name="documents_form_provider_error">Provider is required for warranties</string>
|
||||
<string name="documents_form_date_placeholder">2024-01-15</string>
|
||||
<string name="documents_form_date_placeholder_end">2025-01-15</string>
|
||||
<string name="documents_form_failed_to_load_residences">Failed to load residences: %1$s</string>
|
||||
|
||||
<!-- Profile -->
|
||||
<string name="profile_title">Profile</string>
|
||||
<string name="profile_edit_title">Edit Profile</string>
|
||||
@@ -453,6 +599,7 @@
|
||||
<string name="common_share">Share</string>
|
||||
<string name="common_import">Import</string>
|
||||
<string name="common_importing">Importing...</string>
|
||||
<string name="common_try_again">Try Again</string>
|
||||
|
||||
<!-- Errors -->
|
||||
<string name="error_generic">Something went wrong. Please try again.</string>
|
||||
|
||||
Reference in New Issue
Block a user