Add channel management features and localization support

- Implemented functionality to add new channels with a dialog interface.
- Added validation for channel name and secret inputs, ensuring they meet specified criteria.
- Integrated channel creation logic into the connection provider, including automatic slot assignment and MD5 hashing for channel secrets.
- Updated localization files for multiple languages (Spanish, French, Croatian, Italian, German, Slovenian, and English) to include new channel-related strings.
- Enhanced the contacts tab to display the add channel button conditionally based on device connection status.
- Refactored the contacts tab to improve readability and maintainability.
This commit is contained in:
Janez T
2025-10-28 10:17:02 +01:00
parent 6b15006d4e
commit e6289199ba
20 changed files with 1092 additions and 122 deletions

View File

@@ -3464,6 +3464,96 @@ abstract class AppLocalizations {
/// In en, this message translates to:
/// **'Recent Messages'**
String get recentMessages;
/// Button to add a new channel
///
/// In en, this message translates to:
/// **'Add Channel'**
String get addChannel;
/// Label for channel name field
///
/// In en, this message translates to:
/// **'Channel Name'**
String get channelName;
/// Hint for channel name field
///
/// In en, this message translates to:
/// **'e.g., Rescue Team Alpha'**
String get channelNameHint;
/// Label for channel secret field
///
/// In en, this message translates to:
/// **'Channel Secret'**
String get channelSecret;
/// Hint for channel secret field
///
/// In en, this message translates to:
/// **'Shared password for this channel'**
String get channelSecretHint;
/// Help text explaining channel secret
///
/// In en, this message translates to:
/// **'This secret must be shared with all team members who need access to this channel'**
String get channelSecretHelp;
/// Validation error for empty channel name
///
/// In en, this message translates to:
/// **'Channel name is required'**
String get channelNameRequired;
/// Validation error for channel name too long
///
/// In en, this message translates to:
/// **'Channel name must be 31 characters or less'**
String get channelNameTooLong;
/// Validation error for empty channel secret
///
/// In en, this message translates to:
/// **'Channel secret is required'**
String get channelSecretRequired;
/// Validation error for channel secret too long
///
/// In en, this message translates to:
/// **'Channel secret must be 32 characters or less'**
String get channelSecretTooLong;
/// Validation error for non-ASCII characters
///
/// In en, this message translates to:
/// **'Only ASCII characters are allowed'**
String get invalidAsciiCharacters;
/// Success message after creating channel
///
/// In en, this message translates to:
/// **'Channel created successfully'**
String get channelCreatedSuccessfully;
/// Error message when channel creation fails
///
/// In en, this message translates to:
/// **'Failed to create channel: {error}'**
String channelCreationFailed(String error);
/// Error when no channel slots available
///
/// In en, this message translates to:
/// **'All channel slots are in use (maximum 39 custom channels)'**
String get allChannelSlotsInUse;
/// Button text for creating a channel
///
/// In en, this message translates to:
/// **'Create Channel'**
String get createChannel;
}
class _AppLocalizationsDelegate