chore(ui, localization): add doc-comments

Signed-off-by: xsahil03x <xdsahil@gmail.com>
This commit is contained in:
Sahil Kumar
2021-07-22 17:18:51 +05:30
committed by xsahil03x
parent 6ceb010f0c
commit 3e552ab4f6
16 changed files with 153 additions and 39 deletions
@@ -1,7 +1,6 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:stream_chat_flutter/stream_chat_flutter.dart';
import 'package:stream_chat_localizations/stream_chat_localizations.dart';
@@ -116,7 +116,7 @@ class ChannelInfo extends StatelessWidget {
),
const SizedBox(width: 10),
Text(
context.translations.searchingForNetworkLabel,
context.translations.searchingForNetworkText,
style: textStyle,
),
],
@@ -226,7 +226,7 @@ class ChannelListHeader extends StatelessWidget implements PreferredSizeWidget {
),
const SizedBox(width: 10),
Text(
context.translations.searchingForNetworkLabel,
context.translations.searchingForNetworkText,
style: StreamChatTheme.of(context)
.channelListHeaderTheme
.title
@@ -106,6 +106,8 @@ extension BuildContextX on BuildContext {
double get textScaleFactor =>
MediaQuery.maybeOf(this)?.textScaleFactor ?? 1.0;
/// Retrieves current translations according to locale
/// Defaults to [DefaultTranslations]
Translations get translations =>
StreamChatLocalizations.of(this) ?? DefaultTranslations.instance;
}
@@ -7,7 +7,7 @@ import 'package:stream_chat_flutter/src/localization/translations.dart'
///
/// See also:
///
/// * [GlobalStreamChatLocalizations], which provides material localizations
/// * [GlobalStreamChatLocalizations], which provides stream chat localizations
/// for many languages.
abstract class StreamChatLocalizations implements Translations {
/// The `StreamChatLocalizations` from the closest [Localizations] instance
@@ -1,208 +1,316 @@
import 'package:jiffy/jiffy.dart';
import 'package:stream_chat_flutter/src/connection_status_builder.dart';
import 'package:stream_chat_flutter/src/message_input.dart';
import 'package:stream_chat_flutter/src/message_list_view.dart';
import 'package:stream_chat_flutter/src/message_search_list_view.dart';
import 'package:stream_chat_flutter_core/stream_chat_flutter_core.dart'
show User;
/// Translation strings for the stream chat widgets
abstract class Translations {
/// The error shown when [launchURL] fails
String get launchUrlError;
/// The error shown when loading users fails
String get loadingUsersError;
/// The label for "retry" button
String get retryLabel;
/// The label for showing no users
String get noUsersLabel;
/// The text for showing user is online
String get userOnlineText;
/// The text for showing the last online of the user
String get userLastOnlineText;
/// The text shown when [users] starts typing
String userTypingText(Iterable<User> users);
/// The label for "thread reply"
String get threadReplyLabel;
/// The text for showing if the message is only visible to you
String get onlyVisibleToYouText;
/// The text for showing the thread reply count
String threadReplyCountText(int count);
/// The text for showing the attachments upload progress
String attachmentsUploadProgressText({
required int remaining,
required int total,
});
/// The text for showing who pinned the message
String pinnedByUserText({
required User pinnedBy,
required User currentUser,
});
/// The text for showing there are empty messages
String get emptyMessagesText;
/// The text for showing generic error
String get genericErrorText;
/// The error shown when loading messages fails
String get loadingMessagesError;
/// The text for showing the result count in [MessageSearchListView]
String resultCountText(int count);
/// The text for showing the message is deleted
String get messageDeletedText;
/// The label for message deleted
String get messageDeletedLabel;
String get messageReactionsText;
/// The label for message reactions
String get messageReactionsLabel;
/// The text for showing there are no chats
String get emptyChatMessagesText;
/// The text for showing the thread separator in case [MessageListView]
/// contains a parent message
String threadSeparatorText(int replyCount);
/// The label for "connected" in [ConnectionStatusBuilder]
String get connectedLabel;
/// The label for "disconnected" in [ConnectionStatusBuilder]
String get disconnectedLabel;
/// The label for "reconnecting" in [ConnectionStatusBuilder]
String get reconnectingLabel;
/// The label for also send as direct message "checkbox"" in [MessageInput]
String get alsoSendAsDirectMessageLabel;
/// The label for search Gif
String get searchGifLabel;
/// The label for add a comment or send in case of
/// attachments inside [MessageInput]
String get addACommentOrSendLabel;
/// The label for write a message in [MessageInput]
String get writeAMessageLabel;
/// The label for instant commands in [MessageInput]
String get instantCommandsLabel;
/// The error shown in case the fi"le is too large even after compression
/// while uploading via [MessageInput]
String fileTooLargeAfterCompressionError(double limitInMB);
/// The error shown in case the file is too large
/// while uploading via [MessageInput]
String fileTooLargeError(double limitInMB);
/// The text for showing the query while searching for emojis
String emojiMatchingQueryText(String query);
/// The label for "add a file"
String get addAFileLabel;
/// The label for "upload a photo"
String get uploadAPhotoLabel;
/// The label for "upload a video"
String get uploadAVideoLabel;
/// The label for "photo from camera"
String get photoFromCameraLabel;
/// The label for "video from camera"
String get videoFromCameraLabel;
/// The label for "upload a file"
String get uploadAFileLabel;
String get somethingWentWrongLabel;
/// The error shown when something went wrong
String get somethingWentWrongError;
/// The label for "OK"
String get okLabel;
/// The label for "add more files"
String get addMoreFilesLabel;
/// The message shown for asking photo and video access permission
String get enablePhotoAndVideoAccessMessage;
/// The message shown for asking gallery access permission
String get allowGalleryAccessMessage;
/// The label for "flag message"
String get flagMessageLabel;
/// The question asked while showing flag message dialog
String get flagMessageQuestion;
/// The label for "Flag"
String get flagLabel;
/// The label for "Cancel"
String get cancelLabel;
/// The label for successful message flag
String get flagMessageSuccessfulLabel;
/// The text for showing the message if successfully flagged
String get flagMessageSuccessfulText;
/// The label for "delete message"
String get deleteMessageLabel;
/// The question asked while showing delete message dialog
String get deleteMessageQuestion;
/// The label for "Delete"
String get deleteLabel;
/// The text for showing the operation could not be completed
String get operationCouldNotBeCompletedText;
/// The label for "Reply"
String get replyLabel;
/// The text for showing pin/un-pin functionality in [MessageWidget]
/// based on [pinned]
String togglePinUnpinText({required bool pinned});
/// The text for showing delete/retry-delete based on [isDeleteFailed]
String toggleDeleteRetryDeleteMessageText({required bool isDeleteFailed});
/// The label for "copy message"
String get copyMessageLabel;
/// The label for "edit message"
String get editMessageLabel;
/// The text for showing resend/resend-edited message
/// based on [isUpdateFailed]
String toggleResendOrResendEditedMessage({required bool isUpdateFailed});
/// The label for "Photos"
String get photosLabel;
/// The text for showing on which [date] and [time] the message was sent
String sentAtText({required DateTime date, required DateTime time});
/// The label for "Today"
String get todayLabel;
/// The label for "Yesterday"
String get yesterdayLabel;
/// The text for showing the channel is muted
String get channelIsMutedText;
/// The text for showing there is no title
String get noTitleText;
/// The label for "let's start chatting"
String get letsStartChattingLabel;
/// The label for sending the first message
String get sendingFirstMessageLabel;
/// The label for "start a chat"
String get startAChatLabel;
/// The error shown when loading channel fails
String get loadingChannelsError;
/// The label for "Delete conversation"
String get deleteConversationLabel;
/// The question asked while showing delete conversation dialog
String get deleteConversationQuestion;
/// The label for "Stream Chat"
String get streamChatLabel;
String get searchingForNetworkLabel;
/// The text for showing searching for network
String get searchingForNetworkText;
/// The label for "Offline"
String get offlineLabel;
/// The label for "Try again"
String get tryAgainLabel;
/// The text for showing the members count based on [count]
String membersCountText(int count);
/// The text for showing the watchers count based on [count]
String watchersCountText(int count);
/// The label for "View Info"
String get viewInfoLabel;
/// The label for "Leave Group"
String get leaveGroupLabel;
/// The label for "Leave"
String get leaveLabel;
/// The label for "Leave conversation"
String get leaveConversationLabel;
/// The question asked while showing leave conversation dialog
String get leaveConversationQuestion;
/// The label for "Show in chat"
String get showInChatLabel;
/// The label for "Save Image"
String get saveImageLabel;
/// The label for "Save Video"
String get saveVideoLabel;
/// The label for "Upload Error"
String get uploadErrorLabel;
/// The label for "Giphy"
String get giphyLabel;
/// The label for "Shuffle"
String get shuffleLabel;
/// The label for "Send"
String get sendLabel;
/// The label for "With"
String get withText;
/// The text shown for "In"
String get inText;
/// The text shown for "You"
String get youText;
/// The text shown for "Of"
String get ofText;
/// The text shown for "File"
String get fileText;
/// The label for "Reply to message"
String get replyToMessageLabel;
}
/// Default implementation of Translation strings for the stream chat widgets
class DefaultTranslations implements Translations {
const DefaultTranslations._();
/// Singleton instance of [DefaultTranslations]
static const instance = DefaultTranslations._();
@override
@@ -278,7 +386,7 @@ class DefaultTranslations implements Translations {
String get messageDeletedLabel => 'Message deleted';
@override
String get messageReactionsText => 'Message Reactions';
String get messageReactionsLabel => 'Message Reactions';
@override
String get emptyChatMessagesText => 'No chats here yet...';
@@ -348,7 +456,7 @@ class DefaultTranslations implements Translations {
String get okLabel => 'OK';
@override
String get somethingWentWrongLabel => 'Something went wrong';
String get somethingWentWrongError => 'Something went wrong';
@override
String get addMoreFilesLabel => 'Add more files';
@@ -479,7 +587,7 @@ class DefaultTranslations implements Translations {
String get streamChatLabel => 'Stream Chat';
@override
String get searchingForNetworkLabel => 'Searching for Network';
String get searchingForNetworkText => 'Searching for Network';
@override
String get offlineLabel => 'Offline...';
@@ -365,7 +365,7 @@ class _MessageActionsModalState extends State<MessageActionsModal> {
size: 24,
),
details: context.translations.operationCouldNotBeCompletedText,
title: context.translations.somethingWentWrongLabel,
title: context.translations.somethingWentWrongError,
okText: context.translations.okLabel,
);
}
@@ -2121,7 +2121,7 @@ class MessageInputState extends State<MessageInput> {
height: 26,
),
Text(
context.translations.somethingWentWrongLabel,
context.translations.somethingWentWrongError,
style: _streamChatTheme.textTheme.headlineBold,
),
const SizedBox(
@@ -155,7 +155,7 @@ class MessageReactionsModal extends StatelessWidget {
mainAxisSize: MainAxisSize.min,
children: [
Text(
context.translations.messageReactionsText,
context.translations.messageReactionsLabel,
style: chatThemeData.textTheme.headlineBold,
),
const SizedBox(height: 16),
@@ -7,7 +7,6 @@ import 'package:stream_chat_flutter/src/attachment_actions_modal.dart';
import 'package:stream_chat_flutter/stream_chat_flutter.dart';
import 'mocks.dart';
import 'package:stream_chat_flutter/src/extension.dart';
class MockAttachmentDownloader extends Mock {
ProgressCallback? progressCallback;
@@ -6,8 +6,11 @@ import 'package:stream_chat_flutter/stream_chat_flutter.dart'
show StreamChatLocalizations, User;
part 'stream_chat_localizations_en.dart';
part 'stream_chat_localizations_fr.dart';
part 'stream_chat_localizations_it.dart';
part 'stream_chat_localizations_hi.dart';
/// The set of supported languages, as language code strings.
@@ -28,8 +31,8 @@ const kStreamChatSupportedLanguages = {
/// Creates a [GlobalStreamChatLocalizations] instance for the given `locale`.
///
/// All of the function's arguments except `locale` will be passed to the
/// [GlobalStreamChatLocalizations] constructor. (The `localeName` argument of that
/// constructor is specified by the actual subclass constructor by this
/// [GlobalStreamChatLocalizations] constructor. (The `localeName` argument
/// of that constructor is specified by the actual subclass constructor by this
/// function.)
///
/// The following locales are supported by this package:
@@ -92,13 +95,15 @@ abstract class GlobalStreamChatLocalizations
required String localeName,
}) : _localeName = localeName;
// ignore: unused_field
final String _localeName;
/// A [LocalizationsDelegate] for [StreamChatLocalizations].
///
/// Most internationalized apps will use [GlobalStreamChatLocalizations.delegates]
/// as the value of [MaterialApp.localizationsDelegates] to include
/// the localizations for both the flutter and stream chat widget libraries.
/// Most internationalized apps will use
/// [GlobalStreamChatLocalizations.delegates] as the value of
/// [MaterialApp.localizationsDelegates] to include the localizations for both
/// the flutter and stream chat widget libraries.
static const LocalizationsDelegate<StreamChatLocalizations> delegate =
_StreamChatLocalizationsDelegate();
@@ -79,7 +79,7 @@ class StreamChatLocalizationsEn extends GlobalStreamChatLocalizations {
String get messageDeletedLabel => 'Message deleted';
@override
String get messageReactionsText => 'Message Reactions';
String get messageReactionsLabel => 'Message Reactions';
@override
String get emptyChatMessagesText => 'No chats here yet...';
@@ -149,7 +149,7 @@ class StreamChatLocalizationsEn extends GlobalStreamChatLocalizations {
String get okLabel => 'OK';
@override
String get somethingWentWrongLabel => 'Something went wrong';
String get somethingWentWrongError => 'Something went wrong';
@override
String get addMoreFilesLabel => 'Add more files';
@@ -280,7 +280,7 @@ class StreamChatLocalizationsEn extends GlobalStreamChatLocalizations {
String get streamChatLabel => 'Stream Chat';
@override
String get searchingForNetworkLabel => 'Searching for Network';
String get searchingForNetworkText => 'Searching for Network';
@override
String get offlineLabel => 'Offline...';
@@ -1,6 +1,6 @@
part of 'stream_chat_localizations.dart';
/// The translations for English (`fr`).
/// The translations for French (`fr`).
class StreamChatLocalizationsFr extends GlobalStreamChatLocalizations {
/// Create an instance of the translation bundle for French.
const StreamChatLocalizationsFr({String localeName = 'fr'})
@@ -42,7 +42,7 @@ class StreamChatLocalizationsFr extends GlobalStreamChatLocalizations {
@override
String threadReplyCountText(int count) =>
"$count Réponses au fil de discussion";
'$count Réponses au fil de discussion';
@override
String attachmentsUploadProgressText({
@@ -80,7 +80,7 @@ class StreamChatLocalizationsFr extends GlobalStreamChatLocalizations {
String get messageDeletedLabel => 'Message supprimé';
@override
String get messageReactionsText => 'Réactions aux messages';
String get messageReactionsLabel => 'Réactions aux messages';
@override
String get emptyChatMessagesText => 'Pas encore de chats ici...';
@@ -124,7 +124,8 @@ class StreamChatLocalizationsFr extends GlobalStreamChatLocalizations {
@override
String fileTooLargeError(double limitInMB) =>
'Le fichier est trop volumineux pour être téléchargé. La taille limite du fichier est de $limitInMB Mo.';
'Le fichier est trop volumineux pour être téléchargé. '
'La taille limite du fichier est de $limitInMB Mo.';
@override
String emojiMatchingQueryText(String query) =>
@@ -152,7 +153,7 @@ class StreamChatLocalizationsFr extends GlobalStreamChatLocalizations {
String get okLabel => 'OK';
@override
String get somethingWentWrongLabel => 'Quelque chose a mal tourné';
String get somethingWentWrongError => 'Quelque chose a mal tourné';
@override
String get addMoreFilesLabel => "Ajouter d'autres fichiers";
@@ -283,7 +284,7 @@ class StreamChatLocalizationsFr extends GlobalStreamChatLocalizations {
String get streamChatLabel => 'Stream Chat';
@override
String get searchingForNetworkLabel => 'Recherche de réseau';
String get searchingForNetworkText => 'Recherche de réseau';
@override
String get offlineLabel => 'Hors ligne...';
@@ -79,7 +79,7 @@ class StreamChatLocalizationsHi extends GlobalStreamChatLocalizations {
String get messageDeletedLabel => 'संदेश हटाये';
@override
String get messageReactionsText => 'संदेश प्रतिक्रियाएं';
String get messageReactionsLabel => 'संदेश प्रतिक्रियाएं';
@override
String get emptyChatMessagesText => 'यहां अभी तक कोई चैट नहीं...';
@@ -149,7 +149,7 @@ class StreamChatLocalizationsHi extends GlobalStreamChatLocalizations {
String get okLabel => 'ठीक';
@override
String get somethingWentWrongLabel => 'लोड करने में समस्या';
String get somethingWentWrongError => 'लोड करने में समस्या';
@override
String get addMoreFilesLabel => 'और फ़ाइलें जोड़ें';
@@ -279,7 +279,7 @@ class StreamChatLocalizationsHi extends GlobalStreamChatLocalizations {
String get streamChatLabel => 'स्ट्रीम चैट';
@override
String get searchingForNetworkLabel => 'नेटवर्क खोज रहे हैं';
String get searchingForNetworkText => 'नेटवर्क खोज रहे हैं';
@override
String get offlineLabel => 'ऑफलाइन...';
@@ -1,8 +1,8 @@
part of 'stream_chat_localizations.dart';
/// The translations for English (`hi`).
/// The translations for Italian (`it`).
class StreamChatLocalizationsIt extends GlobalStreamChatLocalizations {
/// Create an instance of the translation bundle for Hindi.
/// Create an instance of the translation bundle for Italian.
const StreamChatLocalizationsIt({String localeName = 'it'})
: super(localeName: localeName);
@@ -80,7 +80,7 @@ class StreamChatLocalizationsIt extends GlobalStreamChatLocalizations {
String get messageDeletedLabel => 'Messaggio cancellato';
@override
String get messageReactionsText => 'Reazioni al messaggio';
String get messageReactionsLabel => 'Reazioni al messaggio';
@override
String get emptyChatMessagesText => 'Nessuna conversazione al momento...';
@@ -151,7 +151,7 @@ Il file è troppo grande per essere caricato. Il limite è di $limitInMB MB.''';
String get okLabel => 'Ok';
@override
String get somethingWentWrongLabel => 'Qualcosa è andato storto';
String get somethingWentWrongError => 'Qualcosa è andato storto';
@override
String get addMoreFilesLabel => 'Aggiungi altri file';
@@ -281,7 +281,7 @@ Inviato il ${_getDay(date)} alle ${Jiffy(time.toLocal()).format('HH:mm')}''';
String get streamChatLabel => 'Stream Chat';
@override
String get searchingForNetworkLabel => 'Cercando una connessione';
String get searchingForNetworkText => 'Cercando una connessione';
@override
String get offlineLabel => 'Offline...';
@@ -51,7 +51,7 @@ void main() {
expect(localizations.resultCountText(3), isNotNull);
expect(localizations.messageDeletedText, isNotNull);
expect(localizations.messageDeletedLabel, isNotNull);
expect(localizations.messageReactionsText, isNotNull);
expect(localizations.messageReactionsLabel, isNotNull);
expect(localizations.emptyChatMessagesText, isNotNull);
expect(localizations.threadSeparatorText(3), isNotNull);
expect(localizations.connectedLabel, isNotNull);
@@ -72,7 +72,7 @@ void main() {
expect(localizations.uploadAVideoLabel, isNotNull);
expect(localizations.videoFromCameraLabel, isNotNull);
expect(localizations.okLabel, isNotNull);
expect(localizations.somethingWentWrongLabel, isNotNull);
expect(localizations.somethingWentWrongError, isNotNull);
expect(localizations.addMoreFilesLabel, isNotNull);
expect(localizations.enablePhotoAndVideoAccessMessage, isNotNull);
expect(localizations.allowGalleryAccessMessage, isNotNull);
@@ -131,7 +131,7 @@ void main() {
expect(localizations.loadingChannelsError, isNotNull);
expect(localizations.deleteConversationQuestion, isNotNull);
expect(localizations.streamChatLabel, isNotNull);
expect(localizations.searchingForNetworkLabel, isNotNull);
expect(localizations.searchingForNetworkText, isNotNull);
expect(localizations.offlineLabel, isNotNull);
expect(localizations.tryAgainLabel, isNotNull);
// 1 member