From 3da2df1047fd40c62da5fb85e14cf81c346f0468 Mon Sep 17 00:00:00 2001 From: Vivek Tiwari Date: Mon, 10 Mar 2025 17:38:19 +0530 Subject: [PATCH 1/3] Updated 'Mark all messages as read' icon (#1357) --- .idea/zulip.iml | 4 ++-- assets/icons/mark_read_icon.svg | 4 ++++ lib/widgets/message_list.dart | 8 ++++++- pubspec.lock | 40 +++++++++++++++++++++++++++++++++ pubspec.yaml | 2 ++ 5 files changed, 55 insertions(+), 3 deletions(-) create mode 100644 assets/icons/mark_read_icon.svg 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/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/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 From 4fdd5c2e2261859078594f916c7bbd90a7c8b020 Mon Sep 17 00:00:00 2001 From: Vivek Tiwari Date: Mon, 10 Mar 2025 20:01:10 +0530 Subject: [PATCH 2/3] Updated ZulipIcons.ttf and icons.dart after running tools/check icons --- check_icons_output.txt | 17 +++++++++++++++++ icons_check_output.txt | 0 2 files changed, 17 insertions(+) create mode 100644 check_icons_output.txt create mode 100644 icons_check_output.txt 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 From 142229fef5a89a3b13441f4dad0f6a20290d1f93 Mon Sep 17 00:00:00 2001 From: Vivek Tiwari Date: Mon, 10 Mar 2025 20:05:42 +0530 Subject: [PATCH 3/3] Regenerated ZulipIcons.ttf and icons.dart after adding mark_read_icon.svg --- assets/icons/ZulipIcons.ttf | Bin 12716 -> 12968 bytes lib/widgets/icons.dart | 32 ++++++++++++++++++-------------- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/assets/icons/ZulipIcons.ttf b/assets/icons/ZulipIcons.ttf index fec63cceaf36b218eb97c16486cc14200d7fd7d8..cbf789f31b63cc5879807009554bdb4fe5b7c6bc 100644 GIT binary patch delta 1929 zcmb7FTTC2P82--e&aw+T%WXlnKnpD3vI{#qyUPwxE?b)5C5@vw0L;svyffk&_RooO|kr(UY1M!vCr+unj^Rz)n z5J`;TS*$=q72>=S=td7xu#iTEt2nagMUHC^1=@<(+Sj?C;njsc#`Q2StMUcPi~mVT zs?sLBC{u-PRoEnNFSe7W#R5sy&|)Er-XX@>B<4c{FF*YzspM&U>5nik!N{E|q6L*4 zCc%CK^h@F+j4UR&v=Cy61UaP?1zE5K9SqMg+~U>4RuZug+C)FIcA=g*CgT&5R*}4`$y~~sXUQH;I6$FwMWvsqlFWA0 zP{J;@m-5NtUG&TLwFvyXe@`zT$LVC1F+7fE(5}SqVuyRe%cD!8m6|gL z>)b5u$s@k8|28J_%!Z3Nu*7G3sEb=?B#?CTngz0Rg3@Jhq)` z-(uwi24NNH@N;RZqJ8|eS=h%018f+l^(#uH)CyM@S;im{c?iSm`S9`KlSe6!BZg7z z;h}^S&3g??&yLhgc57l^i@l0AgX9TGapXxS(df>aM>AJ>7A+k@826KyNn)kF7`--q zaS||8s}yTwsF-{kY&Pmwv0m+j9_I?)$T7C`{hG?I6F+#iSB2IhQg-yHSB15}M3Hbx6 z2pn-SNc)0|ZrYv?8GI-Bh4F~-VJIDX zEA(~cdzH7U&Qz!V{{?KEt#~(F)Yt%?-#u^g;7P7_SY%q$^q2Cg|E#NopkLGg8p!!)@l^#nn=2c{Mm I9Njwi4;BdvEC2ui delta 1648 zcmb7^OK4nG7{~v2UU^I=iJI1GYn?P{Gc%dTotb1Zlh;fNMg&8}ps0v-%u`L8w23u= z;)rBXTomecQ7D2)kuKb56bg1xp-UGcT3o2Oh%Sm7T?(SVbLZ4{>m2^`oqN95|NFjk z@70A*<{EM&MfJ9Vavz_4=J?F}Gv_3yECtV>n9UWQ{bu${DRcv?m*-aN>suFQhNMV8 zXMZiNY%i`|TKb*JFE4rb?15K5Xu8Q$4}K)7xrDN6{O6QQeb3#ZDVt+_|c}6+u`}> z#p`{sDZc`$xctHwUtRn??@W1zoux)xF~xO7H}#v-t?oYY}ByRgpa2s@KLNwwYhP3t)=>Wto^4>7;`F?6O&_uh;)zn5lgqyD)|ktvPI zZJ=oN&70T5%(I1x6Bw9ACeRv6P1mUHiwP5hh#A6!e?KBzJ~PT7_D4u@khm_fN<=UN zFtwXOW*Anpl&TJ~d#s96v&lU)EduWfgD__Us7uHs31WW5Ise8tZ+nSa%D!zVFz@Y! zs?LDdAO76?G2F=A_Fpw=4?4VXBoERZIk$;;jpueq23RNcsbxd}=*70X-I(Dmbv~#QLc-MvQ@$T>b f|JwZ_`a#cbrgy%JFY$ZsJKp~MPhOz#v7>(h$6?{I 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 }