Add residence sharing via .casera files

- Add SharedResidence model and package type detection for .casera files
- Add generateSharePackage API endpoint integration
- Create ResidenceSharingManager for iOS and Android
- Add share button to residence detail screens (owner only)
- Add residence import handling with confirmation dialogs
- Update Quick Look extensions to show house icon for residence packages
- Route .casera imports by type (contractor vs residence)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Trey t
2025-12-06 18:54:46 -06:00
parent 04c3389e4d
commit 83e2cd14a6
27 changed files with 1445 additions and 43 deletions
+13 -6
View File
@@ -17348,10 +17348,6 @@
"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
@@ -17368,9 +17364,16 @@
"comment" : "A title for the registration screen.",
"isCommentAutoGenerated" : true
},
"Join Failed" : {
"comment" : "An alert title displayed when joining a residence fails.",
"isCommentAutoGenerated" : true
},
"Join Residence" : {
"comment" : "A button label that allows a user to join an existing residence.",
"isCommentAutoGenerated" : true
},
"Joined Residence" : {
},
"Joining residence..." : {
"comment" : "A message displayed while waiting for the app to join a residence.",
@@ -24606,6 +24609,10 @@
"comment" : "A label displayed above the share code section of the view.",
"isCommentAutoGenerated" : true
},
"Share Failed" : {
"comment" : "An alert title that appears when sharing a file fails.",
"isCommentAutoGenerated" : true
},
"Share this code with others to give them access to %@" : {
"comment" : "A caption below the share code, explaining that it can be shared with others to give them access to a residence. The argument is the name of the residence.",
"isCommentAutoGenerated" : true
@@ -29683,8 +29690,8 @@
"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.",
"You now have access to %@." : {
"comment" : "A message displayed when a user successfully imports a residence, indicating that they now have access to it. The argument is the name of the residence that was imported.",
"isCommentAutoGenerated" : true
},
"You now have full access to all Pro features!" : {