Merge pull request #1668 from GetStream/chore/min-flutter-3.7
This commit is contained in:
@@ -0,0 +1,71 @@
|
|||||||
|
name: legacy_version_analyze
|
||||||
|
|
||||||
|
env:
|
||||||
|
# Note: The versions below should be manually updated after a new stable
|
||||||
|
# version comes out.
|
||||||
|
flutter_version: "3.7.12"
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
- develop
|
||||||
|
paths:
|
||||||
|
- 'packages/**'
|
||||||
|
- '.github/workflows/legacy_version_analyze.yml'
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
- develop
|
||||||
|
paths:
|
||||||
|
- 'packages/**'
|
||||||
|
- '.github/workflows/legacy_version_analyze.yml'
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.ref }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
# Does a sanity check that packages at least pass analysis on the N-1
|
||||||
|
# versions of Flutter stable if the package claims to support that version.
|
||||||
|
# This is to minimize accidentally making changes that break old versions
|
||||||
|
# (which we don't commit to supporting, but don't want to actively break)
|
||||||
|
# without updating the constraints.
|
||||||
|
analyze_legacy_versions:
|
||||||
|
timeout-minutes: 15
|
||||||
|
if: github.event.pull_request.draft == false
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: "Git Checkout"
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: "Install Flutter"
|
||||||
|
uses: subosito/flutter-action@v2
|
||||||
|
with:
|
||||||
|
cache: true
|
||||||
|
flutter-version: ${{ env.flutter_version }}
|
||||||
|
|
||||||
|
- name: "Install Tools"
|
||||||
|
run: flutter pub global activate melos
|
||||||
|
|
||||||
|
- name: "Bootstrap Workspace"
|
||||||
|
run: melos bootstrap --verbose
|
||||||
|
|
||||||
|
# Only analyze lib/; non-client code doesn't need to work on
|
||||||
|
# all supported legacy version.
|
||||||
|
- name: "Stream Chat Analyze"
|
||||||
|
run: cd packages/stream_chat/lib && dart analyze --fatal-infos .
|
||||||
|
|
||||||
|
- name: "Stream Chat Flutter Core Analyze"
|
||||||
|
run: cd packages/stream_chat_flutter_core/lib && dart analyze --fatal-infos .
|
||||||
|
|
||||||
|
- name: "Stream Chat Flutter Analyze"
|
||||||
|
run: cd packages/stream_chat_flutter/lib && dart analyze --fatal-infos .
|
||||||
|
|
||||||
|
- name: "Stream Chat Persistence Analyze"
|
||||||
|
run: cd packages/stream_chat_persistence/lib && dart analyze --fatal-infos .
|
||||||
|
|
||||||
|
- name: "Stream Chat Localizations Analyze"
|
||||||
|
run: cd packages/stream_chat_localizations/lib && dart analyze --fatal-infos .
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
🔄 Changed
|
🔄 Changed
|
||||||
|
|
||||||
- Updated minimum supported `SDK` version to Dart 2.18
|
- Updated minimum supported `SDK` version to Dart 2.19
|
||||||
|
|
||||||
## 6.4.0
|
## 6.4.0
|
||||||
|
|
||||||
|
|||||||
@@ -6,29 +6,29 @@ repository: https://github.com/GetStream/stream-chat-flutter
|
|||||||
issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues
|
issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: '>=2.18.0 <4.0.0'
|
sdk: '>=2.19.0 <4.0.0'
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
async: ^2.10.0
|
async: ^2.10.0
|
||||||
collection: ^1.17.0
|
collection: ^1.17.0
|
||||||
dio: ^5.2.0
|
dio: ^5.2.1+1
|
||||||
equatable: ^2.0.5
|
equatable: ^2.0.5
|
||||||
freezed_annotation: ^2.2.0
|
freezed_annotation: ^2.2.0
|
||||||
http_parser: ^4.0.2
|
http_parser: ^4.0.2
|
||||||
jose: ^0.3.3
|
jose: ^0.3.3
|
||||||
json_annotation: ^4.8.0
|
json_annotation: ^4.8.1
|
||||||
logging: ^1.1.1
|
logging: ^1.2.0
|
||||||
meta: ^1.8.0
|
meta: ^1.8.0
|
||||||
mime: ^1.0.4
|
mime: ^1.0.4
|
||||||
rate_limiter: ^1.0.0
|
rate_limiter: ^1.0.0
|
||||||
rxdart: ^0.27.7
|
rxdart: ^0.27.7
|
||||||
synchronized: ^3.0.0
|
synchronized: ^3.1.0
|
||||||
uuid: ^3.0.7
|
uuid: ^3.0.7
|
||||||
web_socket_channel: ^2.3.0
|
web_socket_channel: ^2.4.0
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
build_runner: ^2.3.3
|
build_runner: ^2.3.3
|
||||||
freezed: ^2.3.2
|
freezed: ^2.4.0
|
||||||
json_serializable: ^6.6.1
|
json_serializable: ^6.6.2
|
||||||
mocktail: ^0.3.0
|
mocktail: ^0.3.0
|
||||||
test: ^1.24.1
|
test: ^1.24.3
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
🔄 Changed
|
🔄 Changed
|
||||||
|
|
||||||
- Updated minimum supported `SDK` version to Flutter 3.3/Dart 2.18
|
- Updated minimum supported `SDK` version to Flutter 3.7/Dart 2.19
|
||||||
|
|
||||||
## 6.5.0
|
## 6.5.0
|
||||||
|
|
||||||
@@ -104,7 +104,6 @@
|
|||||||
- Updated `chewie` dependency to `^1.6.0`.
|
- Updated `chewie` dependency to `^1.6.0`.
|
||||||
- Updated `share_plus` dependency to `^7.0.2`.
|
- Updated `share_plus` dependency to `^7.0.2`.
|
||||||
- Deprecated `StreamUserItem` in favor of `StreamUserListTile`.
|
- Deprecated `StreamUserItem` in favor of `StreamUserListTile`.
|
||||||
- Updated `jiffy` dependency to `^6.2.1`.
|
|
||||||
|
|
||||||
## 6.4.0
|
## 6.4.0
|
||||||
|
|
||||||
|
|||||||
@@ -106,10 +106,9 @@ class _ConnectedTitleState extends StatelessWidget {
|
|||||||
style: textStyle,
|
style: textStyle,
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
final lastActive = otherMember.user?.lastActive ?? DateTime.now();
|
|
||||||
alternativeWidget = Text(
|
alternativeWidget = Text(
|
||||||
'${context.translations.userLastOnlineText} '
|
'${context.translations.userLastOnlineText} '
|
||||||
'${Jiffy.parseFromDateTime(lastActive).fromNow()}',
|
'${Jiffy(otherMember.user?.lastActive).fromNow()}',
|
||||||
style: textStyle,
|
style: textStyle,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -349,16 +349,16 @@ class _Date extends StatelessWidget {
|
|||||||
|
|
||||||
if (lastMessageAt.millisecondsSinceEpoch >=
|
if (lastMessageAt.millisecondsSinceEpoch >=
|
||||||
startOfDay.millisecondsSinceEpoch) {
|
startOfDay.millisecondsSinceEpoch) {
|
||||||
stringDate = Jiffy.parseFromDateTime(lastMessageAt.toLocal()).jm;
|
stringDate = Jiffy(lastMessageAt.toLocal()).jm;
|
||||||
} else if (lastMessageAt.millisecondsSinceEpoch >=
|
} else if (lastMessageAt.millisecondsSinceEpoch >=
|
||||||
startOfDay
|
startOfDay
|
||||||
.subtract(const Duration(days: 1))
|
.subtract(const Duration(days: 1))
|
||||||
.millisecondsSinceEpoch) {
|
.millisecondsSinceEpoch) {
|
||||||
stringDate = context.translations.yesterdayLabel;
|
stringDate = context.translations.yesterdayLabel;
|
||||||
} else if (startOfDay.difference(lastMessageAt).inDays < 7) {
|
} else if (startOfDay.difference(lastMessageAt).inDays < 7) {
|
||||||
stringDate = Jiffy.parseFromDateTime(lastMessageAt.toLocal()).EEEE;
|
stringDate = Jiffy(lastMessageAt.toLocal()).EEEE;
|
||||||
} else {
|
} else {
|
||||||
stringDate = Jiffy.parseFromDateTime(lastMessageAt.toLocal()).yMd;
|
stringDate = Jiffy(lastMessageAt.toLocal()).yMd;
|
||||||
}
|
}
|
||||||
|
|
||||||
return Text(
|
return Text(
|
||||||
|
|||||||
@@ -611,15 +611,13 @@ class DefaultTranslations implements Translations {
|
|||||||
} else if (date == yesterday) {
|
} else if (date == yesterday) {
|
||||||
return 'yesterday';
|
return 'yesterday';
|
||||||
} else {
|
} else {
|
||||||
return 'on ${Jiffy.parseFromDateTime(date).MMMd}';
|
return 'on ${Jiffy(date).MMMd}';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String sentAtText({required DateTime date, required DateTime time}) {
|
String sentAtText({required DateTime date, required DateTime time}) =>
|
||||||
final atTime = Jiffy.parseFromDateTime(time.toLocal());
|
'Sent ${_getDay(date)} at ${Jiffy(time.toLocal()).format('HH:mm')}';
|
||||||
return 'Sent ${_getDay(date)} at ${atTime.jm}';
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get todayLabel => 'Today';
|
String get todayLabel => 'Today';
|
||||||
|
|||||||
+1
-1
@@ -208,7 +208,7 @@ class MessageInputFileAttachments extends StatelessWidget {
|
|||||||
message: Message(), // dummy message
|
message: Message(), // dummy message
|
||||||
attachment: attachment,
|
attachment: attachment,
|
||||||
constraints: BoxConstraints.loose(Size(
|
constraints: BoxConstraints.loose(Size(
|
||||||
MediaQuery.sizeOf(context).width * 0.65,
|
MediaQuery.of(context).size.width * 0.65,
|
||||||
56,
|
56,
|
||||||
)),
|
)),
|
||||||
trailing: Padding(
|
trailing: Padding(
|
||||||
|
|||||||
@@ -669,20 +669,14 @@ class _StreamMessageListViewState extends State<StreamMessageListView> {
|
|||||||
final isPartOfThread = message.replyCount! > 0 ||
|
final isPartOfThread = message.replyCount! > 0 ||
|
||||||
message.showInChannel == true;
|
message.showInChannel == true;
|
||||||
|
|
||||||
final createdAt = Jiffy.parseFromDateTime(
|
final createdAt = message.createdAt.toLocal();
|
||||||
message.createdAt.toLocal(),
|
final nextCreatedAt = nextMessage.createdAt.toLocal();
|
||||||
);
|
if (!Jiffy(createdAt).isSame(nextCreatedAt, Units.DAY)) {
|
||||||
|
|
||||||
final nextCreatedAt = Jiffy.parseFromDateTime(
|
|
||||||
nextMessage.createdAt.toLocal(),
|
|
||||||
);
|
|
||||||
|
|
||||||
if (!createdAt.isSame(nextCreatedAt, unit: Unit.day)) {
|
|
||||||
separator = _buildDateDivider(nextMessage);
|
separator = _buildDateDivider(nextMessage);
|
||||||
} else {
|
} else {
|
||||||
final hasTimeDiff = !createdAt.isSame(
|
final hasTimeDiff = !Jiffy(createdAt).isSame(
|
||||||
nextCreatedAt,
|
nextCreatedAt,
|
||||||
unit: Unit.minute,
|
Units.MINUTE,
|
||||||
);
|
);
|
||||||
|
|
||||||
final isNextUserSame =
|
final isNextUserSame =
|
||||||
@@ -1077,12 +1071,10 @@ class _StreamMessageListViewState extends State<StreamMessageListView> {
|
|||||||
|
|
||||||
var hasTimeDiff = false;
|
var hasTimeDiff = false;
|
||||||
if (nextMessage != null) {
|
if (nextMessage != null) {
|
||||||
final createdAt = Jiffy.parseFromDateTime(message.createdAt.toLocal());
|
hasTimeDiff = !Jiffy(message.createdAt.toLocal()).isSame(
|
||||||
final nextCreatedAt = Jiffy.parseFromDateTime(
|
|
||||||
nextMessage.createdAt.toLocal(),
|
nextMessage.createdAt.toLocal(),
|
||||||
|
Units.MINUTE,
|
||||||
);
|
);
|
||||||
|
|
||||||
hasTimeDiff = !createdAt.isSame(nextCreatedAt, unit: Unit.minute);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
final hasFileAttachment =
|
final hasFileAttachment =
|
||||||
|
|||||||
@@ -191,7 +191,7 @@ class BottomRow extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
if (showTimeStamp)
|
if (showTimeStamp)
|
||||||
Text(
|
Text(
|
||||||
Jiffy.parseFromDateTime(message.createdAt.toLocal()).jm,
|
Jiffy(message.createdAt.toLocal()).jm,
|
||||||
style: messageTheme.createdAtStyle,
|
style: messageTheme.createdAtStyle,
|
||||||
),
|
),
|
||||||
if (showSendingIndicator)
|
if (showSendingIndicator)
|
||||||
|
|||||||
@@ -20,17 +20,17 @@ class StreamDateDivider extends StatelessWidget {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final createdAt = Jiffy.parseFromDateTime(dateTime);
|
final createdAt = Jiffy(dateTime);
|
||||||
final now = Jiffy.parseFromDateTime(DateTime.now());
|
final now = Jiffy(DateTime.now());
|
||||||
|
|
||||||
var dayInfo = createdAt.MMMd;
|
var dayInfo = createdAt.MMMd;
|
||||||
if (createdAt.isSame(now, unit: Unit.day)) {
|
if (createdAt.isSame(now, Units.DAY)) {
|
||||||
dayInfo = context.translations.todayLabel;
|
dayInfo = context.translations.todayLabel;
|
||||||
} else if (createdAt.isSame(now.subtract(days: 1), unit: Unit.day)) {
|
} else if (createdAt.isSame(now.subtract(days: 1), Units.DAY)) {
|
||||||
dayInfo = context.translations.yesterdayLabel;
|
dayInfo = context.translations.yesterdayLabel;
|
||||||
} else if (createdAt.isAfter(now.subtract(days: 7), unit: Unit.day)) {
|
} else if (createdAt.isAfter(now.subtract(days: 7), Units.DAY)) {
|
||||||
dayInfo = createdAt.EEEE;
|
dayInfo = createdAt.EEEE;
|
||||||
} else if (createdAt.isAfter(now.subtract(years: 1), unit: Unit.day)) {
|
} else if (createdAt.isAfter(now.subtract(years: 1), Units.DAY)) {
|
||||||
dayInfo = createdAt.MMMd;
|
dayInfo = createdAt.MMMd;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -287,16 +287,16 @@ class ChannelLastMessageDate extends StatelessWidget {
|
|||||||
|
|
||||||
if (lastMessageAt.millisecondsSinceEpoch >=
|
if (lastMessageAt.millisecondsSinceEpoch >=
|
||||||
startOfDay.millisecondsSinceEpoch) {
|
startOfDay.millisecondsSinceEpoch) {
|
||||||
stringDate = Jiffy.parseFromDateTime(lastMessageAt.toLocal()).jm;
|
stringDate = Jiffy(lastMessageAt.toLocal()).jm;
|
||||||
} else if (lastMessageAt.millisecondsSinceEpoch >=
|
} else if (lastMessageAt.millisecondsSinceEpoch >=
|
||||||
startOfDay
|
startOfDay
|
||||||
.subtract(const Duration(days: 1))
|
.subtract(const Duration(days: 1))
|
||||||
.millisecondsSinceEpoch) {
|
.millisecondsSinceEpoch) {
|
||||||
stringDate = context.translations.yesterdayLabel;
|
stringDate = context.translations.yesterdayLabel;
|
||||||
} else if (startOfDay.difference(lastMessageAt).inDays < 7) {
|
} else if (startOfDay.difference(lastMessageAt).inDays < 7) {
|
||||||
stringDate = Jiffy.parseFromDateTime(lastMessageAt.toLocal()).EEEE;
|
stringDate = Jiffy(lastMessageAt.toLocal()).EEEE;
|
||||||
} else {
|
} else {
|
||||||
stringDate = Jiffy.parseFromDateTime(lastMessageAt.toLocal()).yMd;
|
stringDate = Jiffy(lastMessageAt.toLocal()).yMd;
|
||||||
}
|
}
|
||||||
|
|
||||||
return Text(
|
return Text(
|
||||||
|
|||||||
+2
-2
@@ -227,9 +227,9 @@ class MessageSearchTileMessageDate extends StatelessWidget {
|
|||||||
if (now.year != createdAt.year ||
|
if (now.year != createdAt.year ||
|
||||||
now.month != createdAt.month ||
|
now.month != createdAt.month ||
|
||||||
now.day != createdAt.day) {
|
now.day != createdAt.day) {
|
||||||
stringDate = Jiffy.parseFromDateTime(createdAt.toLocal()).yMd;
|
stringDate = Jiffy(createdAt.toLocal()).yMd;
|
||||||
} else {
|
} else {
|
||||||
stringDate = Jiffy.parseFromDateTime(createdAt.toLocal()).jm;
|
stringDate = Jiffy(createdAt.toLocal()).jm;
|
||||||
}
|
}
|
||||||
|
|
||||||
return Text(
|
return Text(
|
||||||
|
|||||||
+1
-2
@@ -176,12 +176,11 @@ class UserLastActive extends StatelessWidget {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final chatTheme = StreamChatTheme.of(context);
|
final chatTheme = StreamChatTheme.of(context);
|
||||||
final lastActive = user.lastActive ?? DateTime.now();
|
|
||||||
return Text(
|
return Text(
|
||||||
user.online
|
user.online
|
||||||
? context.translations.userOnlineText
|
? context.translations.userOnlineText
|
||||||
: '${context.translations.userLastOnlineText} '
|
: '${context.translations.userLastOnlineText} '
|
||||||
'${Jiffy.parseFromDateTime(lastActive).fromNow()}',
|
'${Jiffy(user.lastActive).fromNow()}',
|
||||||
style: chatTheme.textTheme.footnote.copyWith(
|
style: chatTheme.textTheme.footnote.copyWith(
|
||||||
color: chatTheme.colorTheme.textHighEmphasis.withOpacity(0.5),
|
color: chatTheme.colorTheme.textHighEmphasis.withOpacity(0.5),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -165,9 +165,9 @@ class StreamChatState extends State<StreamChat> {
|
|||||||
@override
|
@override
|
||||||
void didChangeDependencies() {
|
void didChangeDependencies() {
|
||||||
final currentLocale = Localizations.localeOf(context).toString();
|
final currentLocale = Localizations.localeOf(context).toString();
|
||||||
final availableLocales = Jiffy.getSupportedLocales();
|
final availableLocales = Jiffy.getAllAvailableLocales();
|
||||||
if (availableLocales.contains(currentLocale)) {
|
if (availableLocales.contains(currentLocale)) {
|
||||||
Jiffy.setLocale(currentLocale);
|
Jiffy.locale(currentLocale);
|
||||||
}
|
}
|
||||||
super.didChangeDependencies();
|
super.didChangeDependencies();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -74,12 +74,11 @@ class StreamUserItem extends StatelessWidget {
|
|||||||
|
|
||||||
Widget _buildLastActive(BuildContext context) {
|
Widget _buildLastActive(BuildContext context) {
|
||||||
final chatTheme = StreamChatTheme.of(context);
|
final chatTheme = StreamChatTheme.of(context);
|
||||||
final lastActive = user.lastActive ?? DateTime.now();
|
|
||||||
return Text(
|
return Text(
|
||||||
user.online
|
user.online
|
||||||
? context.translations.userOnlineText
|
? context.translations.userOnlineText
|
||||||
: '${context.translations.userLastOnlineText} '
|
: '${context.translations.userLastOnlineText} '
|
||||||
'${Jiffy.parseFromDateTime(lastActive).fromNow()}',
|
'${Jiffy(user.lastActive).fromNow()}',
|
||||||
style: chatTheme.textTheme.footnote.copyWith(
|
style: chatTheme.textTheme.footnote.copyWith(
|
||||||
color: chatTheme.colorTheme.textHighEmphasis.withOpacity(0.5),
|
color: chatTheme.colorTheme.textHighEmphasis.withOpacity(0.5),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ typedef ChannelTapCallback = void Function(Channel, Widget?);
|
|||||||
typedef ChannelInfoCallback = void Function(Channel);
|
typedef ChannelInfoCallback = void Function(Channel);
|
||||||
|
|
||||||
/// {@template channelPreviewBuilder}
|
/// {@template channelPreviewBuilder}
|
||||||
/// Builder used to create a custom [ChannelPreview] for a [Channel]
|
/// Builder used to create a custom ChannelPreview for a [Channel]
|
||||||
/// {@endtemplate}
|
/// {@endtemplate}
|
||||||
@Deprecated('Use StreamChannelListViewIndexedWidgetBuilder instead')
|
@Deprecated('Use StreamChannelListViewIndexedWidgetBuilder instead')
|
||||||
typedef ChannelPreviewBuilder = Widget Function(BuildContext, Channel);
|
typedef ChannelPreviewBuilder = Widget Function(BuildContext, Channel);
|
||||||
|
|||||||
@@ -6,45 +6,45 @@ repository: https://github.com/GetStream/stream-chat-flutter
|
|||||||
issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues
|
issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.18.0 <4.0.0"
|
sdk: ">=2.19.0 <4.0.0"
|
||||||
flutter: ">=3.3.0"
|
flutter: ">=3.7.0"
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
cached_network_image: ^3.0.0
|
cached_network_image: ^3.2.3
|
||||||
chewie: ^1.6.0
|
chewie: ^1.7.0
|
||||||
collection: ^1.17.0
|
collection: ^1.17.0
|
||||||
contextmenu: ^3.0.0
|
contextmenu: ^3.0.0
|
||||||
dart_vlc: ^0.4.0
|
dart_vlc: ^0.4.0
|
||||||
desktop_drop: ^0.4.0
|
desktop_drop: ^0.4.1
|
||||||
diacritic: ^0.1.3
|
diacritic: ^0.1.4
|
||||||
dio: ^5.2.0
|
dio: ^5.2.1+1
|
||||||
ezanimation: ^0.6.0
|
ezanimation: ^0.6.0
|
||||||
file_picker: ^5.2.4
|
file_picker: ^5.3.1
|
||||||
file_selector: ^0.9.0
|
file_selector: ^1.0.0
|
||||||
flutter:
|
flutter:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
flutter_markdown: ^0.6.1
|
flutter_markdown: ^0.6.15
|
||||||
flutter_portal: ^1.0.0
|
flutter_portal: ^1.1.4
|
||||||
flutter_svg: ^2.0.4
|
flutter_svg: ^2.0.5
|
||||||
http_parser: ^4.0.0
|
http_parser: ^4.0.2
|
||||||
image_gallery_saver: ^2.0.1
|
image_gallery_saver: ^2.0.3
|
||||||
image_picker: ">=0.8.2 <2.0.0"
|
image_picker: ^1.0.0
|
||||||
jiffy: ^6.2.1
|
jiffy: ^5.0.0
|
||||||
lottie: ^2.0.0
|
lottie: ^2.3.2
|
||||||
meta: ^1.8.0
|
meta: ^1.8.0
|
||||||
path_provider: ^2.0.9
|
path_provider: ^2.0.15
|
||||||
photo_manager: ^2.5.2
|
photo_manager: ^2.6.0
|
||||||
photo_view: ^0.14.0
|
photo_view: ^0.14.0
|
||||||
rxdart: ^0.27.0
|
rxdart: ^0.27.7
|
||||||
share_plus: ^7.0.2
|
share_plus: ^7.0.2
|
||||||
shimmer: ^3.0.0
|
shimmer: ^3.0.0
|
||||||
stream_chat_flutter_core: ^6.4.0
|
stream_chat_flutter_core: ^6.4.0
|
||||||
synchronized: ^3.0.0
|
synchronized: ^3.1.0
|
||||||
thumblr: ^0.0.4
|
thumblr: ^0.0.4
|
||||||
url_launcher: ^6.1.0
|
url_launcher: ^6.1.11
|
||||||
video_player: ^2.7.0
|
video_player: ^2.7.0
|
||||||
video_player_macos: ^2.0.1
|
video_player_macos: ^2.0.1
|
||||||
video_thumbnail: ^0.5.0
|
video_thumbnail: ^0.5.3
|
||||||
|
|
||||||
flutter:
|
flutter:
|
||||||
plugin:
|
plugin:
|
||||||
@@ -73,5 +73,4 @@ dev_dependencies:
|
|||||||
flutter_test:
|
flutter_test:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
golden_toolkit: ^0.15.0
|
golden_toolkit: ^0.15.0
|
||||||
mocktail: ^0.3.0
|
mocktail: ^0.3.0
|
||||||
path: ^1.8.2
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
## Upcoming
|
## Upcoming
|
||||||
|
|
||||||
- Updated minimum supported `SDK` version to Flutter 3.3/Dart 2.18
|
- Updated minimum supported `SDK` version to Flutter 3.7/Dart 2.19
|
||||||
|
|
||||||
## 6.4.0
|
## 6.4.0
|
||||||
|
|
||||||
|
|||||||
@@ -6,24 +6,24 @@ repository: https://github.com/GetStream/stream-chat-flutter
|
|||||||
issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues
|
issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.18.0 <4.0.0"
|
sdk: ">=2.19.0 <4.0.0"
|
||||||
flutter: ">=3.3.0"
|
flutter: ">=3.7.0"
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
collection: ^1.17.0
|
collection: ^1.17.0
|
||||||
connectivity_plus: ^4.0.0
|
connectivity_plus: ^4.0.1
|
||||||
flutter:
|
flutter:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
freezed_annotation: ^2.0.3
|
freezed_annotation: ^2.2.0
|
||||||
meta: ^1.8.0
|
meta: ^1.8.0
|
||||||
rxdart: ^0.27.0
|
rxdart: ^0.27.7
|
||||||
stream_chat: ^6.4.0
|
stream_chat: ^6.4.0
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
build_runner: ^2.3.3
|
build_runner: ^2.3.3
|
||||||
fake_async: ^1.2.0
|
fake_async: ^1.3.1
|
||||||
flutter_test:
|
flutter_test:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
freezed: ^2.3.2
|
freezed: ^2.4.0
|
||||||
mocktail: ^0.3.0
|
mocktail: ^0.3.0
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
## Upcoming
|
## Upcoming
|
||||||
|
|
||||||
- Updated minimum supported `SDK` version to Flutter 3.3/Dart 2.18
|
- Updated minimum supported `SDK` version to Flutter 3.7/Dart 2.19
|
||||||
|
|
||||||
## 5.5.0
|
## 5.5.0
|
||||||
|
|
||||||
|
|||||||
@@ -270,15 +270,13 @@ class NnStreamChatLocalizations extends GlobalStreamChatLocalizations {
|
|||||||
} else if (date == yesterday) {
|
} else if (date == yesterday) {
|
||||||
return 'yesterday';
|
return 'yesterday';
|
||||||
} else {
|
} else {
|
||||||
return 'on ${Jiffy.parseFromDateTime(date).MMMd}';
|
return 'on ${Jiffy(date).MMMd}';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String sentAtText({required DateTime date, required DateTime time}) {
|
String sentAtText({required DateTime date, required DateTime time}) =>
|
||||||
final atTime = Jiffy.parseFromDateTime(time.toLocal());
|
'Sent ${_getDay(date)} at ${Jiffy(time.toLocal()).format('HH:mm')}';
|
||||||
return 'Sent ${_getDay(date)} at ${atTime.jm}';
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get todayLabel => 'Today';
|
String get todayLabel => 'Today';
|
||||||
|
|||||||
@@ -249,15 +249,13 @@ class StreamChatLocalizationsCa extends GlobalStreamChatLocalizations {
|
|||||||
} else if (date == yesterday) {
|
} else if (date == yesterday) {
|
||||||
return 'ahir';
|
return 'ahir';
|
||||||
} else {
|
} else {
|
||||||
return 'el ${Jiffy.parseFromDateTime(date).MMMd}';
|
return 'el ${Jiffy(date).MMMd}';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String sentAtText({required DateTime date, required DateTime time}) {
|
String sentAtText({required DateTime date, required DateTime time}) =>
|
||||||
final atTime = Jiffy.parseFromDateTime(time.toLocal());
|
'''Enviat el ${_getDay(date)} a les ${Jiffy(time.toLocal()).format('HH:mm')}''';
|
||||||
return 'Enviat el ${_getDay(date)} a les ${atTime.jm}';
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get todayLabel => 'Avui';
|
String get todayLabel => 'Avui';
|
||||||
|
|||||||
@@ -239,15 +239,13 @@ class StreamChatLocalizationsDe extends GlobalStreamChatLocalizations {
|
|||||||
} else if (date == yesterday) {
|
} else if (date == yesterday) {
|
||||||
return 'Gestern';
|
return 'Gestern';
|
||||||
} else {
|
} else {
|
||||||
return 'am ${Jiffy.parseFromDateTime(date).MMMd}';
|
return 'am ${Jiffy(date).MMMd}';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String sentAtText({required DateTime date, required DateTime time}) {
|
String sentAtText({required DateTime date, required DateTime time}) =>
|
||||||
final atTime = Jiffy.parseFromDateTime(time.toLocal());
|
'Gesendet ${_getDay(date)} am ${Jiffy(time.toLocal()).format('HH:mm')}';
|
||||||
return 'Gesendet ${_getDay(date)} am ${atTime.jm}';
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get todayLabel => 'Heute';
|
String get todayLabel => 'Heute';
|
||||||
|
|||||||
@@ -246,15 +246,13 @@ class StreamChatLocalizationsEn extends GlobalStreamChatLocalizations {
|
|||||||
} else if (date == yesterday) {
|
} else if (date == yesterday) {
|
||||||
return 'yesterday';
|
return 'yesterday';
|
||||||
} else {
|
} else {
|
||||||
return 'on ${Jiffy.parseFromDateTime(date).MMMd}';
|
return 'on ${Jiffy(date).MMMd}';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String sentAtText({required DateTime date, required DateTime time}) {
|
String sentAtText({required DateTime date, required DateTime time}) =>
|
||||||
final atTime = Jiffy.parseFromDateTime(time.toLocal());
|
'Sent ${_getDay(date)} at ${Jiffy(time.toLocal()).format('HH:mm')}';
|
||||||
return 'Sent ${_getDay(date)} at ${atTime.jm}';
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get todayLabel => 'Today';
|
String get todayLabel => 'Today';
|
||||||
|
|||||||
@@ -250,15 +250,13 @@ class StreamChatLocalizationsEs extends GlobalStreamChatLocalizations {
|
|||||||
} else if (date == yesterday) {
|
} else if (date == yesterday) {
|
||||||
return 'ayer';
|
return 'ayer';
|
||||||
} else {
|
} else {
|
||||||
return 'el ${Jiffy.parseFromDateTime(date).MMMd}';
|
return 'el ${Jiffy(date).MMMd}';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String sentAtText({required DateTime date, required DateTime time}) {
|
String sentAtText({required DateTime date, required DateTime time}) =>
|
||||||
final atTime = Jiffy.parseFromDateTime(time.toLocal());
|
'''Enviado el ${_getDay(date)} a las ${Jiffy(time.toLocal()).format('HH:mm')}''';
|
||||||
return 'Enviado el ${_getDay(date)} a las ${atTime.jm}';
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get todayLabel => 'Hoy';
|
String get todayLabel => 'Hoy';
|
||||||
|
|||||||
@@ -249,15 +249,13 @@ class StreamChatLocalizationsFr extends GlobalStreamChatLocalizations {
|
|||||||
} else if (date == yesterday) {
|
} else if (date == yesterday) {
|
||||||
return 'hier';
|
return 'hier';
|
||||||
} else {
|
} else {
|
||||||
return 'le ${Jiffy.parseFromDateTime(date).MMMd}';
|
return 'le ${Jiffy(date).MMMd}';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String sentAtText({required DateTime date, required DateTime time}) {
|
String sentAtText({required DateTime date, required DateTime time}) =>
|
||||||
final atTime = Jiffy.parseFromDateTime(time.toLocal());
|
'Envoyé ${_getDay(date)} à ${Jiffy(time.toLocal()).format('HH:mm')}';
|
||||||
return 'Envoyé ${_getDay(date)} à ${atTime.jm}';
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get todayLabel => "Aujourd'hui";
|
String get todayLabel => "Aujourd'hui";
|
||||||
|
|||||||
@@ -243,15 +243,13 @@ class StreamChatLocalizationsHi extends GlobalStreamChatLocalizations {
|
|||||||
} else if (date == yesterday) {
|
} else if (date == yesterday) {
|
||||||
return 'कल';
|
return 'कल';
|
||||||
} else {
|
} else {
|
||||||
return '${Jiffy.parseFromDateTime(date).MMMd} को';
|
return '${Jiffy(date).MMMd} को';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String sentAtText({required DateTime date, required DateTime time}) {
|
String sentAtText({required DateTime date, required DateTime time}) =>
|
||||||
final atTime = Jiffy.parseFromDateTime(time.toLocal());
|
'${_getDay(date)} ${Jiffy(time.toLocal()).format('HH:mm')} बजे भेजा गया';
|
||||||
return '${_getDay(date)} ${atTime.jm} बजे भेजा गया';
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get todayLabel => 'आज';
|
String get todayLabel => 'आज';
|
||||||
|
|||||||
@@ -252,15 +252,13 @@ Il file è troppo grande per essere caricato. Il limite è di $limitInMB MB.''';
|
|||||||
} else if (date == yesterday) {
|
} else if (date == yesterday) {
|
||||||
return 'ieri';
|
return 'ieri';
|
||||||
} else {
|
} else {
|
||||||
return 'il ${Jiffy.parseFromDateTime(date).MMMd}';
|
return 'il ${Jiffy(date).MMMd}';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String sentAtText({required DateTime date, required DateTime time}) {
|
String sentAtText({required DateTime date, required DateTime time}) =>
|
||||||
final atTime = Jiffy.parseFromDateTime(time.toLocal());
|
"Inviato ${_getDay(date)} alle ${Jiffy(time.toLocal()).format('HH:mm')}";
|
||||||
return 'Inviato ${_getDay(date)} alle ${atTime.jm}';
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get todayLabel => 'Oggi';
|
String get todayLabel => 'Oggi';
|
||||||
|
|||||||
@@ -236,15 +236,13 @@ class StreamChatLocalizationsJa extends GlobalStreamChatLocalizations {
|
|||||||
} else if (date == yesterday) {
|
} else if (date == yesterday) {
|
||||||
return '昨日';
|
return '昨日';
|
||||||
} else {
|
} else {
|
||||||
return '${Jiffy.parseFromDateTime(date).MMMd}に';
|
return '${Jiffy(date).MMMd}に';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String sentAtText({required DateTime date, required DateTime time}) {
|
String sentAtText({required DateTime date, required DateTime time}) =>
|
||||||
final atTime = Jiffy.parseFromDateTime(time.toLocal());
|
'${_getDay(date)}の${Jiffy(time.toLocal()).format('HH:mm')}に送信しました ';
|
||||||
return '${_getDay(date)}の${atTime.jm}に送信しました ';
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get todayLabel => '今日';
|
String get todayLabel => '今日';
|
||||||
|
|||||||
@@ -235,15 +235,13 @@ class StreamChatLocalizationsKo extends GlobalStreamChatLocalizations {
|
|||||||
} else if (date == yesterday) {
|
} else if (date == yesterday) {
|
||||||
return '어제';
|
return '어제';
|
||||||
} else {
|
} else {
|
||||||
return '${Jiffy.parseFromDateTime(date).MMMd}에';
|
return '${Jiffy(date).MMMd}에';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String sentAtText({required DateTime date, required DateTime time}) {
|
String sentAtText({required DateTime date, required DateTime time}) =>
|
||||||
final atTime = Jiffy.parseFromDateTime(time.toLocal());
|
'${_getDay(date)} ${Jiffy(time.toLocal()).format('HH:mm')}에 보냈습니다';
|
||||||
return '${_getDay(date)} ${atTime.jm}에 보냈습니다';
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get todayLabel => '오늘';
|
String get todayLabel => '오늘';
|
||||||
|
|||||||
@@ -242,15 +242,13 @@ class StreamChatLocalizationsNo extends GlobalStreamChatLocalizations {
|
|||||||
} else if (date == yesterday) {
|
} else if (date == yesterday) {
|
||||||
return 'i går';
|
return 'i går';
|
||||||
} else {
|
} else {
|
||||||
return 'på ${Jiffy.parseFromDateTime(date).MMMd}';
|
return 'på ${Jiffy(date).MMMd}';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String sentAtText({required DateTime date, required DateTime time}) {
|
String sentAtText({required DateTime date, required DateTime time}) =>
|
||||||
final atTime = Jiffy.parseFromDateTime(time.toLocal());
|
'Sent ${_getDay(date)} kl. ${Jiffy(time.toLocal()).format('HH:mm')}';
|
||||||
return 'Sent ${_getDay(date)} kl. ${atTime.jm}';
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get todayLabel => 'I dag';
|
String get todayLabel => 'I dag';
|
||||||
|
|||||||
@@ -244,15 +244,13 @@ class StreamChatLocalizationsPt extends GlobalStreamChatLocalizations {
|
|||||||
} else if (date == yesterday) {
|
} else if (date == yesterday) {
|
||||||
return 'Ontem';
|
return 'Ontem';
|
||||||
} else {
|
} else {
|
||||||
return 'o ${Jiffy.parseFromDateTime(date).MMMd}';
|
return 'o ${Jiffy(date).MMMd}';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String sentAtText({required DateTime date, required DateTime time}) {
|
String sentAtText({required DateTime date, required DateTime time}) =>
|
||||||
final atTime = Jiffy.parseFromDateTime(time.toLocal());
|
'''Enviado ${_getDay(date)} às ${Jiffy(time.toLocal()).format('HH:mm')}''';
|
||||||
return 'Enviado ${_getDay(date)} às ${atTime.jm}';
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get todayLabel => 'Hoje';
|
String get todayLabel => 'Hoje';
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ repository: https://github.com/GetStream/stream-chat-flutter
|
|||||||
issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues
|
issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.18.0 <4.0.0"
|
sdk: ">=2.19.0 <4.0.0"
|
||||||
flutter: ">=3.3.0"
|
flutter: ">=3.7.0"
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
flutter:
|
flutter:
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
## Upcoming
|
## Upcoming
|
||||||
|
|
||||||
- Updated minimum supported `SDK` version to Flutter 3.3/Dart 2.18
|
- Updated minimum supported `SDK` version to Flutter 3.7/Dart 2.19
|
||||||
|
|
||||||
## 6.4.0
|
## 6.4.0
|
||||||
|
|
||||||
|
|||||||
@@ -6,23 +6,23 @@ repository: https://github.com/GetStream/stream-chat-flutter
|
|||||||
issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues
|
issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.18.0 <4.0.0"
|
sdk: ">=2.19.0 <4.0.0"
|
||||||
flutter: ">=3.3.0"
|
flutter: ">=3.7.0"
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
drift: ^2.7.0
|
drift: ^2.8.0
|
||||||
flutter:
|
flutter:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
logging: ^1.0.1
|
logging: ^1.2.0
|
||||||
meta: ^1.8.0
|
meta: ^1.8.0
|
||||||
path: ^1.8.2
|
path: ^1.8.2
|
||||||
path_provider: ^2.0.1
|
path_provider: ^2.0.15
|
||||||
sqlite3_flutter_libs: ^0.5.0
|
sqlite3_flutter_libs: ^0.5.15
|
||||||
stream_chat: ^6.4.0
|
stream_chat: ^6.4.0
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
build_runner: ^2.3.3
|
build_runner: ^2.3.3
|
||||||
drift_dev: ^2.7.0
|
drift_dev: ^2.8.3
|
||||||
flutter_test:
|
flutter_test:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
mocktail: ^0.3.0
|
mocktail: ^0.3.0
|
||||||
|
|||||||
+2
-2
@@ -1,7 +1,7 @@
|
|||||||
name: stream_chat_flutter_workspace
|
name: stream_chat_flutter_workspace
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: '>=2.18.0 <3.0.0'
|
sdk: '>=2.19.0 <4.0.0'
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
melos: ^3.0.0
|
melos: ^3.1.0
|
||||||
|
|||||||
Reference in New Issue
Block a user