diff --git a/.idea/zulip.iml b/.idea/zulip.iml index bc835ab69a..61fb622fa1 100644 --- a/.idea/zulip.iml +++ b/.idea/zulip.iml @@ -16,8 +16,8 @@ - + - + \ No newline at end of file diff --git a/assets/icons/ZulipIcons.ttf b/assets/icons/ZulipIcons.ttf index fec63cceaf..cbf789f31b 100644 Binary files a/assets/icons/ZulipIcons.ttf and b/assets/icons/ZulipIcons.ttf differ diff --git a/assets/icons/mark_read_icon.svg b/assets/icons/mark_read_icon.svg new file mode 100644 index 0000000000..5c598ae87e --- /dev/null +++ b/assets/icons/mark_read_icon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/check_icons_output.txt b/check_icons_output.txt new file mode 100644 index 0000000000..7bf5153276 --- /dev/null +++ b/check_icons_output.txt @@ -0,0 +1,17 @@ +Running icons... +npm notice +npm notice New major version of npm available! 10.9.0 -> 11.2.0 +npm notice Changelog: https://github.com/npm/cli/releases/tag/v11.2.0 +npm notice To update run: npm install -g npm@11.2.0 +npm notice + +added 162 packages in 7s +warning: in the working copy of 'lib/widgets/icons.dart', LF will be replaced by CRLF the next time Git touches it +Error: there were icon updates: + M assets/icons/ZulipIcons.ttf + M lib/widgets/icons.dart + +FAILED: icons + +To rerun the suites that failed, run: + $ tools/check icons diff --git a/icons_check_output.txt b/icons_check_output.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/lib/widgets/icons.dart b/lib/widgets/icons.dart index 6c6934ebd7..ee65128b73 100644 --- a/lib/widgets/icons.dart +++ b/lib/widgets/icons.dart @@ -99,47 +99,51 @@ abstract final class ZulipIcons { /// The Zulip custom icon "lock". static const IconData lock = IconData(0xf119, fontFamily: "Zulip Icons"); + /// The Zulip custom icon "mark_read_icon". + static const IconData mark_read_icon = IconData(0xf11a, fontFamily: "Zulip Icons"); + /// The Zulip custom icon "menu". - static const IconData menu = IconData(0xf11a, fontFamily: "Zulip Icons"); + static const IconData menu = IconData(0xf11b, fontFamily: "Zulip Icons"); /// The Zulip custom icon "message_feed". - static const IconData message_feed = IconData(0xf11b, fontFamily: "Zulip Icons"); + static const IconData message_feed = IconData(0xf11c, fontFamily: "Zulip Icons"); /// The Zulip custom icon "mute". - static const IconData mute = IconData(0xf11c, fontFamily: "Zulip Icons"); + static const IconData mute = IconData(0xf11d, fontFamily: "Zulip Icons"); /// The Zulip custom icon "read_receipts". - static const IconData read_receipts = IconData(0xf11d, fontFamily: "Zulip Icons"); + static const IconData read_receipts = IconData(0xf11e, fontFamily: "Zulip Icons"); /// The Zulip custom icon "send". - static const IconData send = IconData(0xf11e, fontFamily: "Zulip Icons"); + static const IconData send = IconData(0xf11f, fontFamily: "Zulip Icons"); /// The Zulip custom icon "share". - static const IconData share = IconData(0xf11f, fontFamily: "Zulip Icons"); + static const IconData share = IconData(0xf120, fontFamily: "Zulip Icons"); /// The Zulip custom icon "share_ios". - static const IconData share_ios = IconData(0xf120, fontFamily: "Zulip Icons"); + static const IconData share_ios = IconData(0xf121, fontFamily: "Zulip Icons"); /// The Zulip custom icon "smile". - static const IconData smile = IconData(0xf121, fontFamily: "Zulip Icons"); + static const IconData smile = IconData(0xf122, fontFamily: "Zulip Icons"); /// The Zulip custom icon "star". - static const IconData star = IconData(0xf122, fontFamily: "Zulip Icons"); + static const IconData star = IconData(0xf123, fontFamily: "Zulip Icons"); /// The Zulip custom icon "star_filled". - static const IconData star_filled = IconData(0xf123, fontFamily: "Zulip Icons"); + static const IconData star_filled = IconData(0xf124, fontFamily: "Zulip Icons"); /// The Zulip custom icon "three_person". - static const IconData three_person = IconData(0xf124, fontFamily: "Zulip Icons"); + static const IconData three_person = IconData(0xf125, fontFamily: "Zulip Icons"); /// The Zulip custom icon "topic". - static const IconData topic = IconData(0xf125, fontFamily: "Zulip Icons"); + static const IconData topic = IconData(0xf126, fontFamily: "Zulip Icons"); /// The Zulip custom icon "unmute". - static const IconData unmute = IconData(0xf126, fontFamily: "Zulip Icons"); + static const IconData unmute = IconData(0xf127, fontFamily: "Zulip Icons"); /// The Zulip custom icon "user". - static const IconData user = IconData(0xf127, fontFamily: "Zulip Icons"); + static const IconData user = IconData(0xf128, fontFamily: "Zulip Icons"); + // END GENERATED ICON DATA } diff --git a/lib/widgets/message_list.dart b/lib/widgets/message_list.dart index 2cc9e2963e..f5816b1350 100644 --- a/lib/widgets/message_list.dart +++ b/lib/widgets/message_list.dart @@ -3,6 +3,7 @@ import 'dart:math'; import 'package:collection/collection.dart'; import 'package:flutter/material.dart'; import 'package:flutter_color_models/flutter_color_models.dart'; +import 'package:flutter_svg/flutter_svg.dart'; import 'package:intl/intl.dart' hide TextDirection; import '../api/model/model.dart'; @@ -826,7 +827,12 @@ class _MarkAsReadWidgetState extends State { backgroundColor: WidgetStatePropertyAll(messageListTheme.unreadMarker), ), onPressed: _loading ? null : () => _handlePress(context), - icon: const Icon(Icons.playlist_add_check), + icon: SvgPicture.asset( + colorFilter: const ColorFilter.mode(Colors.white, BlendMode.srcIn), + 'assets/icons/mark_read_icon.svg', + width: 24, + height: 24, + ), label: Text(zulipLocalizations.markAllAsReadLabel)))))); } } diff --git a/pubspec.lock b/pubspec.lock index 77adae52d1..87a499e05a 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -450,6 +450,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.26" + flutter_svg: + dependency: "direct main" + description: + name: flutter_svg + sha256: c200fd79c918a40c5cd50ea0877fa13f81bdaf6f0a5d3dbcc2a13e3285d6aa1b + url: "https://pub.dev" + source: hosted + version: "2.0.17" flutter_test: dependency: "direct dev" description: flutter @@ -766,6 +774,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.9.1" + path_parsing: + dependency: transitive + description: + name: path_parsing + sha256: "883402936929eac138ee0a45da5b0f2c80f89913e6dc3bf77eb65b84b409c6ca" + url: "https://pub.dev" + source: hosted + version: "1.1.0" path_provider: dependency: "direct main" description: @@ -1179,6 +1195,30 @@ packages: url: "https://pub.dev" source: hosted version: "4.5.1" + vector_graphics: + dependency: transitive + description: + name: vector_graphics + sha256: "44cc7104ff32563122a929e4620cf3efd584194eec6d1d913eb5ba593dbcf6de" + url: "https://pub.dev" + source: hosted + version: "1.1.18" + vector_graphics_codec: + dependency: transitive + description: + name: vector_graphics_codec + sha256: "99fd9fbd34d9f9a32efd7b6a6aae14125d8237b10403b422a6a6dfeac2806146" + url: "https://pub.dev" + source: hosted + version: "1.1.13" + vector_graphics_compiler: + dependency: transitive + description: + name: vector_graphics_compiler + sha256: "1b4b9e706a10294258727674a340ae0d6e64a7231980f9f9a3d12e4b42407aad" + url: "https://pub.dev" + source: hosted + version: "1.1.16" vector_math: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 82d4fa495a..04e8a4d0c4 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -62,6 +62,7 @@ dependencies: url_launcher_android: ">=6.1.0" video_player: ^2.8.3 wakelock_plus: ^1.2.8 + flutter_svg: ^2.0.17 zulip_plugin: path: ./packages/zulip_plugin # Keep list sorted when adding dependencies; it helps prevent merge conflicts. @@ -114,6 +115,7 @@ flutter: uses-material-design: true assets: + - assets/icons/mark_read_icon.svg - assets/Noto_Color_Emoji/LICENSE - assets/Pygments/AUTHORS.txt - assets/Pygments/LICENSE.txt