Add contractor sharing feature and move settings to navigation bar
Contractor Sharing: - Add .casera file format for sharing contractors between users - Create SharedContractor model with JSON serialization - Implement ContractorSharingManager for iOS (Swift) and Android (Kotlin) - Register .casera file type in iOS Info.plist and Android manifest - Add share button to ContractorDetailView (iOS) and ContractorDetailScreen (Android) - Add import confirmation, success, and error dialogs - Create expect/actual platform implementations for sharing and import handling Navigation Changes: - Remove Profile tab from bottom tab bar (iOS and Android) - Add settings gear icon to left side of "My Properties" title - Settings gear opens Profile/Settings screen as sheet (iOS) or navigates (Android) - Add property button to top right action bar Bug Fixes: - Fix ResidenceUsersResponse to match API's flat array response format - Fix GenerateShareCodeResponse handling to access nested shareCode property - Update ManageUsersDialog to accept residenceOwnerId parameter 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -39,6 +39,10 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"%@ has been added to your contacts." : {
|
||||
"comment" : "A message displayed when a contractor is successfully imported to the user's contacts. The placeholder is replaced with the name of the imported contractor.",
|
||||
"isCommentAutoGenerated" : true
|
||||
},
|
||||
"%@, %@" : {
|
||||
"comment" : "A city and state combination.",
|
||||
"isCommentAutoGenerated" : true,
|
||||
@@ -4747,6 +4751,17 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"common_import" : {
|
||||
"extractionState" : "manual",
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Import"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"common_loading" : {
|
||||
"extractionState" : "manual",
|
||||
"localizations" : {
|
||||
@@ -5072,6 +5087,17 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"common_share" : {
|
||||
"extractionState" : "manual",
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Share"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"common_success" : {
|
||||
"extractionState" : "manual",
|
||||
"localizations" : {
|
||||
@@ -5229,6 +5255,9 @@
|
||||
},
|
||||
"Continue with Free" : {
|
||||
|
||||
},
|
||||
"Contractor Imported" : {
|
||||
|
||||
},
|
||||
"Contractors" : {
|
||||
"comment" : "A tab label for the contractors section.",
|
||||
@@ -17315,6 +17344,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"Import" : {
|
||||
"comment" : "The text on a button that triggers the import action.",
|
||||
"isCommentAutoGenerated" : true
|
||||
},
|
||||
"Import Contractor" : {
|
||||
"comment" : "The title of an alert dialog that appears when a user attempts to import a contractor.",
|
||||
"isCommentAutoGenerated" : true
|
||||
},
|
||||
"Import Failed" : {
|
||||
"comment" : "A dialog title when importing a contractor fails.",
|
||||
"isCommentAutoGenerated" : true
|
||||
},
|
||||
"In Progress" : {
|
||||
"comment" : "A label displayed next to an image of a play button, indicating that a task is currently in progress.",
|
||||
"isCommentAutoGenerated" : true
|
||||
@@ -17381,6 +17422,10 @@
|
||||
"comment" : "A message displayed when no task templates match a search query.",
|
||||
"isCommentAutoGenerated" : true
|
||||
},
|
||||
"OK" : {
|
||||
"comment" : "A button that dismisses the success dialog.",
|
||||
"isCommentAutoGenerated" : true
|
||||
},
|
||||
"or" : {
|
||||
|
||||
},
|
||||
@@ -17406,10 +17451,6 @@
|
||||
"comment" : "The title of the \"Pro\" plan in the feature comparison view.",
|
||||
"isCommentAutoGenerated" : true
|
||||
},
|
||||
"Profile" : {
|
||||
"comment" : "A label for the \"Profile\" tab in the main tab view.",
|
||||
"isCommentAutoGenerated" : true
|
||||
},
|
||||
"profile_account" : {
|
||||
"extractionState" : "manual",
|
||||
"localizations" : {
|
||||
@@ -29636,6 +29677,10 @@
|
||||
"comment" : "The title of the welcome screen in the preview.",
|
||||
"isCommentAutoGenerated" : true
|
||||
},
|
||||
"Would you like to import this contractor to your contacts?" : {
|
||||
"comment" : "A message displayed in an alert when a user imports a contractor.",
|
||||
"isCommentAutoGenerated" : true
|
||||
},
|
||||
"You now have full access to all Pro features!" : {
|
||||
"comment" : "A message displayed to users after successfully upgrading to the Pro version of the app.",
|
||||
"isCommentAutoGenerated" : true
|
||||
|
||||
Reference in New Issue
Block a user