feat: Add support for hash and private channels with corresponding UI updates

- Introduced new localization strings for channel types and their descriptions in Italian, German, Spanish, French, Croatian, Slovenian, and English.
- Updated the `AppProvider` to handle channel info reception, including deletion of channels and updating the UI accordingly.
- Enhanced `ChannelsProvider` to support channel removal and notify listeners.
- Modified `ConnectionProvider` to include methods for checking empty channel slots and deleting channels.
- Updated BLE service methods to handle channel deletion and verification.
- Improved the `AddChannelDialog` to differentiate between hash and private channels, including dynamic UI elements based on channel type.
- Added delete functionality for channels in the `ContactTile` widget with confirmation dialogs.
- Adjusted permission request dialog behavior to allow dismissing by tapping outside.
This commit is contained in:
Janez T
2025-11-14 11:20:16 +01:00
parent 21daa83c1a
commit a0f096cc4f
26 changed files with 704 additions and 121 deletions

View File

@@ -3491,6 +3491,16 @@
"description": "Help text explaining channel secret"
},
"channelTypesInfo": "Hash channels (#team): Secret auto-generated from name. Same name = same channel across devices.\n\nPrivate channels: Use explicit secret. Only those with the secret can join.",
"@channelTypesInfo": {
"description": "Information banner explaining hash and private channel types"
},
"hashChannelInfo": "Hash channel: Secret will be auto-generated from the channel name. Anyone using the same name will join the same channel.",
"@hashChannelInfo": {
"description": "Help text for hash channels (# prefix)"
},
"channelNameRequired": "Channel name is required",
"@channelNameRequired": {
"description": "Validation error for empty channel name"
@@ -3531,6 +3541,36 @@
}
},
"deleteChannel": "Delete Channel",
"@deleteChannel": {
"description": "Delete channel button/menu item"
},
"deleteChannelConfirmation": "Are you sure you want to delete channel \"{channelName}\"? This action cannot be undone.",
"@deleteChannelConfirmation": {
"description": "Confirmation dialog when deleting a channel",
"placeholders": {
"channelName": {
"type": "String"
}
}
},
"channelDeletedSuccessfully": "Channel deleted successfully",
"@channelDeletedSuccessfully": {
"description": "Success message after deleting channel"
},
"channelDeletionFailed": "Failed to delete channel: {error}",
"@channelDeletionFailed": {
"description": "Error message when channel deletion fails",
"placeholders": {
"error": {
"type": "String"
}
}
},
"allChannelSlotsInUse": "All channel slots are in use (maximum 39 custom channels)",
"@allChannelSlotsInUse": {
"description": "Error when no channel slots available"