From 165bca4b0a8fda7b9529a586e64442c52eebd820 Mon Sep 17 00:00:00 2001 From: Alex Date: Tue, 30 Jun 2026 13:53:13 -0500 Subject: [PATCH] feat: new feature message (#29388) * feat: new feature board * wip * wip * wip * lint * lint * pr feedback * pr feedback * i18n * i18n --- i18n/en.json | 17 + mobile/assets/feature_message/ocr.webp | Bin 0 -> 40488 bytes .../feature_message/open_in_immich.webp | Bin 0 -> 5522 bytes .../feature_message/recently_added.webp | Bin 0 -> 22056 bytes .../assets/feature_message/share_quality.webp | Bin 0 -> 78040 bytes mobile/assets/feature_message/slideshow.webp | Bin 0 -> 20542 bytes .../lib/domain/models/config/app_config.dart | 30 +- .../models/config/feature_message_config.dart | 20 ++ .../domain/models/feature_message.model.dart | 54 +++ mobile/lib/domain/models/settings_key.dart | 16 +- .../services/feature_message.service.dart | 16 + mobile/lib/pages/common/settings.page.dart | 16 + .../pages/dev/main_timeline.page.dart | 32 +- .../pages/feature_message/whats_new.page.dart | 73 ++++ .../feature_message_dialog.widget.dart | 316 ++++++++++++++++++ .../feature_message_placeholder.widget.dart | 105 ++++++ .../providers/feature_message.provider.dart | 7 + mobile/lib/routing/router.dart | 2 + mobile/lib/routing/router.gr.dart | 16 + .../lib/widgets/forms/login/login_form.dart | 3 + mobile/pubspec.yaml | 1 + 21 files changed, 717 insertions(+), 7 deletions(-) create mode 100644 mobile/assets/feature_message/ocr.webp create mode 100644 mobile/assets/feature_message/open_in_immich.webp create mode 100644 mobile/assets/feature_message/recently_added.webp create mode 100644 mobile/assets/feature_message/share_quality.webp create mode 100644 mobile/assets/feature_message/slideshow.webp create mode 100644 mobile/lib/domain/models/config/feature_message_config.dart create mode 100644 mobile/lib/domain/models/feature_message.model.dart create mode 100644 mobile/lib/domain/services/feature_message.service.dart create mode 100644 mobile/lib/presentation/pages/feature_message/whats_new.page.dart create mode 100644 mobile/lib/presentation/widgets/feature_message/feature_message_dialog.widget.dart create mode 100644 mobile/lib/presentation/widgets/feature_message/feature_message_placeholder.widget.dart create mode 100644 mobile/lib/providers/feature_message.provider.dart diff --git a/i18n/en.json b/i18n/en.json index 1587fde604..9b307d0edb 100644 --- a/i18n/en.json +++ b/i18n/en.json @@ -1461,6 +1461,7 @@ "never": "Never", "new_album": "New Album", "new_api_key": "New API Key", + "new_feature": "New Feature", "new_password": "New password", "new_person": "New person", "new_pin_code": "New PIN code", @@ -1521,6 +1522,8 @@ "obtainium_configurator": "Obtainium Configurator", "obtainium_configurator_instructions": "Use Obtainium to install and update the Android app directly from Immich GitHub's release. Create an API key and select a variant to create your Obtainium configuration link", "ocr": "OCR", + "ocr_body": "Immich now reads the text inside your photos, so you can search for them by what they say.", + "ocr_title": "Search text in your photos", "official_immich_resources": "Official Immich Resources", "offline": "Offline", "offset": "Offset", @@ -1539,6 +1542,8 @@ "open": "Open", "open_calendar": "Open calendar", "open_in_browser": "Open in browser", + "open_in_immich_body": "Set Immich as your gallery on Android to open photos straight from other apps.", + "open_in_immich_title": "Open photos in Immich", "open_in_map_view": "Open in map view", "open_in_openstreetmap": "Open in OpenStreetMap", "open_the_search_filters": "Open the search filters", @@ -1697,7 +1702,9 @@ "recent": "Recent", "recent_searches": "Recent searches", "recently_added": "Recently added", + "recently_added_body": "Jump straight to everything you've added lately on a dedicated page.", "recently_added_page_title": "Recently Added", + "recently_added_title": "Recently added", "recently_taken": "Recently taken", "refresh": "Refresh", "refresh_encoded_videos": "Refresh encoded videos", @@ -1904,6 +1911,8 @@ "share_link": "Share Link", "share_original": "Use original (large)", "share_preview": "Use thumbnail (small)", + "share_quality_body": "Press and hold the share button to choose the image quality before you share.", + "share_quality_title": "Choose your share quality", "shared": "Shared", "shared_album_activities_input_disable": "Comment is disabled", "shared_album_activity_remove_content": "Do you want to delete this activity?", @@ -1985,16 +1994,19 @@ "sign_out": "Sign Out", "sign_up": "Sign up", "size": "Size", + "skip": "Skip", "skip_to_content": "Skip to content", "skip_to_folders": "Skip to folders", "skip_to_tags": "Skip to tags", "slideshow": "Slideshow", + "slideshow_body": "Sit back and watch your photos play in a full-screen slideshow.", "slideshow_metadata_overlay_mode": "Overlay content", "slideshow_metadata_overlay_mode_description_only": "Description only", "slideshow_metadata_overlay_mode_full": "Full", "slideshow_repeat": "Repeat slideshow", "slideshow_repeat_description": "Loop back to beginning when slideshow ends", "slideshow_settings": "Slideshow settings", + "slideshow_title": "Slideshow", "smart_album": "Smart album", "some_assets_already_have_a_location_warning": "Some of the selected assets already have a location", "sort_albums_by": "Sort albums by...", @@ -2157,6 +2169,8 @@ "upload_status_errors": "Errors", "upload_status_uploaded": "Uploaded", "upload_success": "Upload success, refresh the page to see new upload assets.", + "upload_to_album_body": "For users that don't utilize the manual upload feature, you can now choose to add local photos directly into an album as you upload them, no need to upload then add to an album later anymore.", + "upload_to_album_title": "Upload straight to an album", "upload_to_immich": "Upload to Immich ({count})", "uploading": "Uploading", "uploading_media": "Uploading media", @@ -2224,6 +2238,9 @@ "week": "Week", "welcome": "Welcome", "welcome_to_immich": "Welcome to Immich", + "whats_new": "What's new", + "whats_new_settings_subtitle": "See what's new in Immich", + "whats_new_version": "Version {version}", "when": "When", "width": "Width", "wifi_name": "Wi-Fi Name", diff --git a/mobile/assets/feature_message/ocr.webp b/mobile/assets/feature_message/ocr.webp new file mode 100644 index 0000000000000000000000000000000000000000..5465c4e06a11020b7426c7b4aa41de589d5195f2 GIT binary patch literal 40488 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

o{-OtyaoAP{ zL9W|EvSa;^Xd677MNJ{=lAXFlK5GjEjp+^KCIT9gm{J`d0$!tzjnT~OIsS3S@m_vY z_TXKwfPJ-rVZWlTalZPld8X17mYKcQ;ba?_v!i3Qsy0^>lM9miXm20kw9vU_YGCV9 z&E3Izm@LUP!J9(#=AUw(jM7HR3I4&LV^3?boxUD{5osb*lkaIDJbF2qRTWa=xLV@- zG8Y`+D{M-2MlBJ@NzKGuRk!Sbsl2Gh3`3kjN9G)HVHxm9Ch?Lep?r2gDAmVj+2t9m zsD@uw^QWK0Hy&<8%2Nf{36l&T6-q~XIhGm@vD7kQx=qybj-&e1&t3o@1_XIS7mDUR zdi6&S^Vvd0cIAeD;1H)21tQX}Rw&6tJKn3LE>Ase>;r}*s_Ec{1URPf&iRd+w!b+m zed!+u>|qyMT&qd=s?l#*cm0pMw;}7--2}3AFv*yI1t>s*`o>=HuRDAdFlcBM#dm1!wTgp|VWD**~u5`|kNt z>?cY&$B1(aW@)`C;}sr#Pcfv5^-Y=%-SU6<<{zr@(M}EITPh8q#V{hqv*3XBXvVJ# z-8omlv?es~#i_qI^B&2SAC+Zv@CWl`!b0Iy=-UGe`rKsFvAs!OK=|S$?nkX-EU^l| zLXg8`Z=mcfG4*6{91Kxd38G@-d;(1wm5JcdohhiTs1j7oonHbLveSkye~opd4{M+# zPc7766V4^|omPETLfDg8P5toW<@K}s{Z>a(xDe<^dcEB>F35Zn>`{h-M5$6e{4i&5 zXiuOR(_cBe_@Sb*K+BSmzWLA1{;d*|76(h%gS~$2Co2(N>kV48XNg*#%RlqifN#zt z|7BlD^}R@92{AE8CpGpb_%hH4<`kP*Ht24RboQ;{2$Xq-{?;nLXZsv^hb2zIFFF2j zMTy=k(H*+y$3=#BJnQjCqez676fYX{!F6Uj^sF!S=#}q=5lWZ9#v5Yx+{83leHsTC z$iyo)o9$}62CJ}6*9kQrwrqBHyir#u%|GN-&3;*xM|DMnSmkcMy0PB#?Q-i#g4>Jw7Z~NT3dkKDasB_FfIH;2- zIwzfy?WNP4f7msVwacaka8k_fh+7yt(eC;I4Un7%X?t})=G#@*T87Ll$@p)&Ox|GN zp@k#ANJ+3ai>@h{whPNYfq_COheh)L6+q?7iEHnK>x2KJ!a;B~6Wv(0q#hz=eWo8u z!GE=o{8{wzW@d_sZXg78KBjj2`}fy5N;}2iVg<;|UBhVF@mZr(E5I zReKDF9+0VooCARVbcU#RcQv@P$v-&oacq6~{jt3LkeF*~>oZo5JuUo9ol0{1UEQmL z8^rV?9H@vc38o*Y&ZaLc zwMmZB*x@<;RfVAbH$dx+%%g+<(__ky@1)Q??giYx@3Tu2m>vnSHhWIfA!pY zvcx#7-&yL=k8;Aw-Dedy{Uzc#-d!$fo~PS{hX8ib6t|4M;jlXyweN+{frc+t{8*D; z0c|oHmKvA5F8P$fU;b+f$%fez$vTnbpi_+y2+~{kWY^#~DP-h^4V|r%eSPe~yPQ#y zzT3X_EO?gpaH5`f&D+RR$9>Y+@CLS0_g(d8Mwfom4N|6$`@S^v&(31MtuFMVIZ5St zO~0y9XhX6=fwKAH3kqnBJ3deQh@69U|4oKZ^gnfev+sx>L~F1eKI2vWmsO2Ul9Nxo zEWf+)LMgEj*AXoctWLQ{L92Oal-Z_93VqMkcO38MfkmSjkr|4vCL(?!rK+5^YUN8K zCwRFwgGCl#dOzr{hC-ts(a4f{ zH-DMz%q(YWX7dWR%2;dz4|wGvby(81&R)a`6LBwt&WsP`s-NJJ>3{l=1IGExVc|@@Y?2KpkL=&O-d#>s+Eau^(G3Jc=OL<*?F@6_i`s3k(BaCWWCJ*1ln39lS`b S-n*Tj>Jv9V{(Jp@H~#}WR?V0I literal 0 HcmV?d00001 diff --git a/mobile/assets/feature_message/open_in_immich.webp b/mobile/assets/feature_message/open_in_immich.webp new file mode 100644 index 0000000000000000000000000000000000000000..910bb9e397b4c086d06c160e5d3ae38a316d41d9 GIT binary patch literal 5522 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 literal 0 HcmV?d00001 diff --git a/mobile/assets/feature_message/recently_added.webp b/mobile/assets/feature_message/recently_added.webp new file mode 100644 index 0000000000000000000000000000000000000000..f530e428025609aa5c4bc1fdabd1957fd2630670 GIT binary patch literal 22056 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

?P4(+E186Vu`=B*A7~| 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 QOq5BHssI20000000GE)*ZvX%Q literal 0 HcmV?d00001 diff --git a/mobile/assets/feature_message/share_quality.webp b/mobile/assets/feature_message/share_quality.webp new file mode 100644 index 0000000000000000000000000000000000000000..8e78cfcbfe4725c1b12829fbe9ce6ad374c0c158 GIT binary patch literal 78040 zcmZ^qV_cMmol2 zi6*jkR-f3^L->xsO+tnZB@9;YCpFit- zA-?TCb^D&ac0R=Y&iyXDMg89w=U%oy=pXWv{XY0KKk?tMr}%IDe!S_tm3QI8^Y>ZA zx7WY(VthrvR=<89@wbzqb5oIeV%n$AT9T{>l{MooW3B?S)Z7d4{+D%uo zY{55KBRumai+|6&l4w%PW-?<{`|C-5{l!PTZ{iar_w7Z3ysMkADA{HT zJtJ^!ZPl*NkG`nZ=jNc)!QMh8@>-lGccH*O1`!O>-oTK}6u{DDd2mGE2FoO2QB#-? zYYqy9n|~exkD7Jq{F5Z5QQgv4^Cjv2jGZZ4v$c`r$_Dpmzup-B)|Wl%1(Q~Rko|pV z*ecA~1@m2guex|>YQHkvUoEghZ)_uD>kwQoXvkg5SgD<}=6p672H!QdZin6Xx z*5gLkq*Z|x8F?-$Gxu^V6DZ;{hjQ5@WeYQ>7I2lh+9$%bY)((7%0=6u9M%i(>G{Zi{y+OaRpj zmq~{)TXWYqqqfy1?pz?Q?XSN|{h6_;&8|VD?EK5!2v=O*Or}ZsShZy>Z?U#`?OZ&+ zd`5%HwJ|#Es-k}%=1JQbQBzAV^{J*}%2JL5iC<51;@$v^+6gZk4QchLCqYK#zt3+J zCJ#gWk~ExB1*r({@iL?9e5o6Q%CTO%diLypSrj=#d#yK%I88s|p1AgLX7pqI0$_0y z);%0p*Ax526RS(UNsjfQL(%s0c{zgwhV{v^MZ#~jybLxkzu<~Sn8ou3k-k;N{pB^S z#>lX4hXqf>E%toUT74-bM*Vvv6K0r+s<4h(uX~SC<+2Gz9%*h!rIi0<_Kxq?<=-52s|;nkH`VfHeuAkYvj)PNbehz%jt@1;P-XE z6&d0E*qGP77KwFM7YV2X+>TuYxaH_RORtu3>BMR<i4XuSrz7QzP zG=aVTs6_Ly{w}G!nvFL+%ti1-+Zk∈(f=D{yr=hYtKx?*uIZhU+&w< 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�`wg!L8hT8C#84jD#0oww=EeAC#_|ayGg0j0=tV=%;y3|Lm_CQS0yDiCE2$Fi= zB2s9NO<%}wFoG_X#j5}snWgVOIS5LqbRniD+D;>DAgtB!|GN7H21;nOrws`HF`eDo<|l9?~|BE$(;W!}Je zmuTIai47s)%YG@0HUv^8O|*8Zybf3T(INCE+}%16NJD|uNf--9@gI{_-GBRRc{l?M zY$28_#r8?g*{6(O)8gzlV8xx3X>{0zdWKhwoI*o=3;eV)Z-#OQ3`*u+a&SR)6(A~3 ztIHC$`djy^Z=#}J$ob>8?Fd!~`iLWBrZNP$0)T)0lGZN}U)~0cBy4}rZ;4z3Pgza!iV8;5lo)|Zvc1kDq zkhA7Qws`tc@fc%Af;{O68k**=(w`t8>QuL$ADd>c8V?KzfR!4ZxJ$c?`Iv78Psp-0 z%85$OG6bd89taNEfY?)w@YTLr5lwIe(_?Bt_BDD4CFrC5_sjJ(-K{_sZpgX19nyHH zopKVmku>)oQB`62IxzQ%b|jBP9-*uMUUOwNT)6yqqLjjMGT>+k!j5i*+>4J8{BVl~ z#~usJ;K!u&-$utC4Jrx0C-ZnSC#=`@HSQ&G`bh2$xSl)|2EI$X5Z0TvmO}4uLL$|2 zeJU?afHgjMOsuEHBuAE3bftxd%vuA7`*Uc)42E#l7?2KoQ=A5=R?c_PTWzb zEY8>MgOhHdcNIH3QHWkji>G7Zl#D+_)sNo8LVq1skAbIFHqEbzieq z)bqgZHD|(28n`NeDztHEbU^hRFm=7HN-tN!oV_5u?pRNx95U0^ULPPZrK=Wqz-9F# z@nVxQ0nsG0F_~!>S=oDThXxzyXwVG*PwLxOY^Kk0{>!jOx*oDgop~3RH1#joe9ipR z-$3E@o|U@J{57iogj*!sF^aqVpKRk##~k-u^hwSEAy-h}A#a405{?zH5hQXgbaF(# z{NxMZIpx~wEJBFO`FS#>Fh3F9Ml)T>>w_+=5i3fP9H!%LprIbvklzv^V$5Q})*6r= zvAK;5001O_JK9U0jIy;0?4@u|O7?sOk4{QMHLwP#T-oIX1>MFt9yf!XVyDeHSjpa$ zpO=piS$R5-`I}eh%@6{4{tv{G(%i?yyt#9qyRW=yirvvu0`52C(w{Ydt*Q`D%bX|N z8J0#=1S3y2^li*VBi8Adt?e_w&4E6NkwsxwL4pE0DVccP0M3iu&Jt4eX&4ZUgFqXR zc*q+NspXlbk+G^uoJ}h2rtHKmo0NrSe$^)DEkW|StPxn^9haAoi>t2nJsg^J$;YG6 zAtu=vBNZYo=i@xH3XsRzydJ~!11QuzA@iRVD8paLr1Hs*-bs5FGg*#Q2}eY8u(ID1 zEy;2`LWfMukt{gWP-W0@@`;a?i7YvLA9I)Q9%B{Ir6Q@M!uOj#Z{v=KHSUW00pZ0S zl*>nb`ZZwVt09of(zFh{9aJcu3IF|ISx2uU)>To>Gfh-31SSi7@B&wtXp8l{)Hprc z3Ae0k76^G$>;&ucnOoNYhTaX(B05^tGgc|Ur9kE z@Z-T1m!C@`|ExM^ZLNjELrP6XCN6OQrH-QdD}%t3>S9rqStOOCnf>x^k{4?~oK?*Q zpu9r`*xsfY3XKM!h*M1+21E5>gW0%uL*oNuJM6*x22N9w&KJ0tblD1ZcCi7h0cNPV zJeV92_CkhTPx83@blMs0S8d$^+JtAgi=rpzEV#&|p`0`9Wy8o}tr38@P3WvjFhg01 zV3i=K3poh+@|c+8#$T4T#$~@44e!B}lG&J3wg-bBRf#VYGQj4}JbW7;kAM@#Arl

}S-HpjP&;(jM7{0pR=Dg}3Y^ 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 .new( logLevel: logLevel ?? this.logLevel, theme: theme ?? this.theme, @@ -74,6 +79,7 @@ class AppConfig { backup: backup ?? this.backup, network: network ?? this.network, share: share ?? this.share, + featureMessage: featureMessage ?? this.featureMessage, ); @override @@ -91,15 +97,29 @@ class AppConfig { other.album == album && other.backup == backup && other.network == network && - other.share == share); + other.share == share && + other.featureMessage == featureMessage); @override - int get hashCode => - Object.hash(logLevel, theme, cleanup, map, timeline, image, viewer, slideshow, album, backup, network, share); + int get hashCode => Object.hash( + logLevel, + theme, + cleanup, + map, + timeline, + image, + viewer, + slideshow, + album, + backup, + network, + share, + featureMessage, + ); @override String toString() => - 'AppConfig(logLevel: $logLevel, theme: $theme, cleanup: $cleanup, map: $map, timeline: $timeline, image: $image, viewer: $viewer, slideshow: $slideshow, album: $album, backup: $backup, network: $network, share: $share)'; + 'AppConfig(logLevel: $logLevel, theme: $theme, cleanup: $cleanup, map: $map, timeline: $timeline, image: $image, viewer: $viewer, slideshow: $slideshow, album: $album, backup: $backup, network: $network, share: $share, featureMessage: $featureMessage)'; T read(SettingsKey key) => (switch (key) { @@ -146,6 +166,7 @@ class AppConfig { .slideshowDuration => slideshow.duration, .slideshowLook => slideshow.look, .slideshowDirection => slideshow.direction, + .featureMessageSeenRelease => featureMessage.seenRelease, }) as T; @@ -199,6 +220,7 @@ class AppConfig { .slideshowDuration => copyWith(slideshow: slideshow.copyWith(duration: value as int)), .slideshowLook => copyWith(slideshow: slideshow.copyWith(look: value as SlideshowLook)), .slideshowDirection => copyWith(slideshow: slideshow.copyWith(direction: value as SlideshowDirection)), + .featureMessageSeenRelease => copyWith(featureMessage: featureMessage.copyWith(seenRelease: value as SemVer)), }; } } diff --git a/mobile/lib/domain/models/config/feature_message_config.dart b/mobile/lib/domain/models/config/feature_message_config.dart new file mode 100644 index 0000000000..d5c7c69550 --- /dev/null +++ b/mobile/lib/domain/models/config/feature_message_config.dart @@ -0,0 +1,20 @@ +import 'package:immich_mobile/utils/semver.dart'; + +class FeatureMessageConfig { + final SemVer seenRelease; + + const FeatureMessageConfig({this.seenRelease = const SemVer(major: 0, minor: 0, patch: 0)}); + + FeatureMessageConfig copyWith({SemVer? seenRelease}) => + FeatureMessageConfig(seenRelease: seenRelease ?? this.seenRelease); + + @override + bool operator ==(Object other) => + identical(this, other) || (other is FeatureMessageConfig && other.seenRelease == seenRelease); + + @override + int get hashCode => seenRelease.hashCode; + + @override + String toString() => 'FeatureMessageConfig(seenRelease: $seenRelease)'; +} diff --git a/mobile/lib/domain/models/feature_message.model.dart b/mobile/lib/domain/models/feature_message.model.dart new file mode 100644 index 0000000000..b3c9c459d3 --- /dev/null +++ b/mobile/lib/domain/models/feature_message.model.dart @@ -0,0 +1,54 @@ +import 'package:flutter/foundation.dart'; +import 'package:immich_mobile/utils/semver.dart'; + +class FeatureHighlight { + /// Asset path of the feature screenshot, or null to show a placeholder. + final String? image; + final String titleKey; + final String bodyKey; + final List platform; + + const FeatureHighlight({ + this.image, + required this.titleKey, + required this.bodyKey, + this.platform = const [.iOS, .android], + }); + + bool get isVisibleOnCurrentPlatform => platform.contains(defaultTargetPlatform); +} + +/// The release this batch of highlights was authored for. Content-defined: +/// bump it only when publishing a new batch, never from the running app version. +const featureMessageRelease = SemVer(major: 3, minor: 0, patch: 0); + +/// Highlights relevant to the current platform. +List get visibleFeatureMessageHighlights => + featureMessageHighlights.where((h) => h.isVisibleOnCurrentPlatform).toList(); + +const List featureMessageHighlights = [ + FeatureHighlight( + image: 'assets/feature_message/share_quality.webp', + titleKey: 'share_quality_title', + bodyKey: 'share_quality_body', + ), + FeatureHighlight( + image: 'assets/feature_message/slideshow.webp', + titleKey: 'slideshow_title', + bodyKey: 'slideshow_body', + ), + FeatureHighlight( + image: 'assets/feature_message/recently_added.webp', + titleKey: 'recently_added_title', + bodyKey: 'recently_added_body', + ), + + FeatureHighlight(image: 'assets/feature_message/ocr.webp', titleKey: 'ocr_title', bodyKey: 'ocr_body'), + FeatureHighlight( + image: 'assets/feature_message/open_in_immich.webp', + titleKey: 'open_in_immich_title', + bodyKey: 'open_in_immich_body', + platform: [.android], + ), + FeatureHighlight(titleKey: 'upload_to_album_title', bodyKey: 'upload_to_album_body'), +]; diff --git a/mobile/lib/domain/models/settings_key.dart b/mobile/lib/domain/models/settings_key.dart index 2933c301b0..00c5286e07 100644 --- a/mobile/lib/domain/models/settings_key.dart +++ b/mobile/lib/domain/models/settings_key.dart @@ -6,6 +6,7 @@ import 'package:immich_mobile/constants/enums.dart'; import 'package:immich_mobile/domain/models/log.model.dart'; import 'package:immich_mobile/domain/models/timeline.model.dart'; import 'package:immich_mobile/providers/album/album_sort_by_options.provider.dart'; +import 'package:immich_mobile/utils/semver.dart'; enum SettingsKey { // Theme @@ -73,7 +74,10 @@ enum SettingsKey { slideshowRepeat(), slideshowDuration(), slideshowLook(codec: _EnumCodec(SlideshowLook.values)), - slideshowDirection(codec: _EnumCodec(SlideshowDirection.values)); + slideshowDirection(codec: _EnumCodec(SlideshowDirection.values)), + + // Feature message + featureMessageSeenRelease(codec: _SemVerCodec()); final _SettingsCodec? _codecOverride; @@ -139,6 +143,16 @@ final class _DateTimeCodec extends _SettingsCodec { DateTime decode(String raw) => DateTime.parse(raw); } +final class _SemVerCodec extends _SettingsCodec { + const _SemVerCodec(); + + @override + String encode(SemVer value) => value.toString(); + + @override + SemVer decode(String raw) => SemVer.fromString(raw); +} + final class _MapCodec extends _SettingsCodec> { final _SettingsCodec _keyCodec; final _SettingsCodec _valueCodec; diff --git a/mobile/lib/domain/services/feature_message.service.dart b/mobile/lib/domain/services/feature_message.service.dart new file mode 100644 index 0000000000..ff0fdda8f3 --- /dev/null +++ b/mobile/lib/domain/services/feature_message.service.dart @@ -0,0 +1,16 @@ +import 'package:immich_mobile/domain/models/feature_message.model.dart'; +import 'package:immich_mobile/domain/models/settings_key.dart'; +import 'package:immich_mobile/infrastructure/repositories/settings.repository.dart'; + +class FeatureMessageService { + final SettingsRepository _settingsRepository; + + const FeatureMessageService(this._settingsRepository); + + bool shouldShow() { + final seen = _settingsRepository.appConfig.featureMessage.seenRelease; + return featureMessageHighlights.isNotEmpty && featureMessageRelease > seen; + } + + Future markSeen() => _settingsRepository.write(SettingsKey.featureMessageSeenRelease, featureMessageRelease); +} diff --git a/mobile/lib/pages/common/settings.page.dart b/mobile/lib/pages/common/settings.page.dart index 65970ee294..d102fe0d3b 100644 --- a/mobile/lib/pages/common/settings.page.dart +++ b/mobile/lib/pages/common/settings.page.dart @@ -3,6 +3,7 @@ import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; import 'package:flutter_hooks/flutter_hooks.dart' hide Store; import 'package:immich_mobile/extensions/build_context_extensions.dart'; +import 'package:immich_mobile/generated/translations.g.dart'; import 'package:immich_mobile/routing/router.dart'; import 'package:immich_mobile/widgets/settings/advanced_settings.dart'; import 'package:immich_mobile/widgets/settings/asset_list_settings/asset_list_settings.dart'; @@ -87,6 +88,14 @@ class _MobileLayout extends StatelessWidget { ], ) .toList(); + settings.add( + SettingsCard( + icon: Icons.auto_awesome_outlined, + title: context.t.whats_new, + subtitle: context.t.whats_new_settings_subtitle, + settingRoute: const WhatsNewRoute(), + ), + ); return ListView(padding: const EdgeInsets.only(top: 10.0, bottom: 60), children: [...settings]); } } @@ -116,6 +125,13 @@ class _TabletLayout extends HookWidget { ), ), ), + SliverToBoxAdapter( + child: ListTile( + title: Text('whats_new'.tr()), + leading: const Icon(Icons.auto_awesome_outlined), + onTap: () => context.pushRoute(const WhatsNewRoute()), + ), + ), ], ), ), diff --git a/mobile/lib/presentation/pages/dev/main_timeline.page.dart b/mobile/lib/presentation/pages/dev/main_timeline.page.dart index 5ec946858d..b78bbc2979 100644 --- a/mobile/lib/presentation/pages/dev/main_timeline.page.dart +++ b/mobile/lib/presentation/pages/dev/main_timeline.page.dart @@ -3,14 +3,42 @@ import 'package:flutter/material.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:immich_mobile/presentation/widgets/memory/memory_lane.widget.dart'; import 'package:immich_mobile/presentation/widgets/timeline/timeline.widget.dart'; +import 'package:immich_mobile/presentation/widgets/feature_message/feature_message_dialog.widget.dart'; +import 'package:immich_mobile/providers/feature_message.provider.dart'; import 'package:immich_mobile/providers/infrastructure/memory.provider.dart'; @RoutePage() -class MainTimelinePage extends ConsumerWidget { +class MainTimelinePage extends ConsumerStatefulWidget { const MainTimelinePage({super.key}); @override - Widget build(BuildContext context, WidgetRef ref) { + ConsumerState createState() => _MainTimelinePageState(); +} + +class _MainTimelinePageState extends ConsumerState { + @override + void initState() { + super.initState(); + WidgetsBinding.instance.addPostFrameCallback((_) async { + if (!mounted) { + return; + } + final service = ref.read(featureMessageServiceProvider); + if (!service.shouldShow()) { + return; + } + + await service.markSeen(); + if (!mounted) { + return; + } + + await showFeatureMessageDialog(context); + }); + } + + @override + Widget build(BuildContext context) { final hasMemories = ref.watch(driftMemoryFutureProvider.select((state) => state.value?.isNotEmpty ?? false)); return Timeline( topSliverWidget: const SliverToBoxAdapter(child: DriftMemoryLane()), diff --git a/mobile/lib/presentation/pages/feature_message/whats_new.page.dart b/mobile/lib/presentation/pages/feature_message/whats_new.page.dart new file mode 100644 index 0000000000..e3c3f8ed6e --- /dev/null +++ b/mobile/lib/presentation/pages/feature_message/whats_new.page.dart @@ -0,0 +1,73 @@ +import 'package:auto_route/auto_route.dart'; +import 'package:easy_localization/easy_localization.dart'; +import 'package:flutter/material.dart'; +import 'package:immich_mobile/domain/models/feature_message.model.dart'; +import 'package:immich_mobile/extensions/build_context_extensions.dart'; +import 'package:immich_mobile/generated/translations.g.dart'; +import 'package:immich_mobile/presentation/widgets/feature_message/feature_message_placeholder.widget.dart'; + +@RoutePage() +class WhatsNewPage extends StatelessWidget { + const WhatsNewPage({super.key}); + + @override + Widget build(BuildContext context) { + final highlights = visibleFeatureMessageHighlights; + return Scaffold( + appBar: AppBar(centerTitle: false, title: Text(context.t.whats_new)), + body: ListView.separated( + padding: const EdgeInsets.only(top: 16, bottom: 64), + itemCount: highlights.length, + separatorBuilder: (_, __) => const SizedBox(height: 24), + itemBuilder: (_, index) => _HighlightCard(highlight: highlights[index]), + ), + ); + } +} + +class _HighlightCard extends StatelessWidget { + final FeatureHighlight highlight; + + const _HighlightCard({required this.highlight}); + + @override + Widget build(BuildContext context) { + final scheme = context.colorScheme; + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + DecoratedBox( + decoration: BoxDecoration( + color: scheme.surfaceContainerHighest, + borderRadius: const BorderRadius.all(Radius.circular(18)), + border: Border.all(color: scheme.outlineVariant.withValues(alpha: 0.5)), + ), + child: ClipRRect( + borderRadius: const BorderRadius.all(Radius.circular(18)), + child: SizedBox( + width: double.infinity, + height: 256, + child: highlight.image == null + ? const FeatureMessagePlaceholder() + : Image.asset( + highlight.image!, + fit: BoxFit.contain, + errorBuilder: (context, _, __) => const FeatureMessagePlaceholder(), + ), + ), + ), + ), + const SizedBox(height: 12), + Text(highlight.titleKey.tr(), style: context.textTheme.titleMedium?.copyWith(fontWeight: FontWeight.w600)), + const SizedBox(height: 4), + Text( + highlight.bodyKey.tr(), + style: context.textTheme.bodyMedium?.copyWith(color: context.colorScheme.onSurfaceVariant), + ), + ], + ), + ); + } +} diff --git a/mobile/lib/presentation/widgets/feature_message/feature_message_dialog.widget.dart b/mobile/lib/presentation/widgets/feature_message/feature_message_dialog.widget.dart new file mode 100644 index 0000000000..9727ec29e4 --- /dev/null +++ b/mobile/lib/presentation/widgets/feature_message/feature_message_dialog.widget.dart @@ -0,0 +1,316 @@ +import 'dart:math' as math; + +import 'package:easy_localization/easy_localization.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:immich_mobile/domain/models/feature_message.model.dart'; +import 'package:immich_mobile/presentation/widgets/feature_message/feature_message_placeholder.widget.dart'; +import 'package:immich_mobile/extensions/build_context_extensions.dart'; +import 'package:immich_mobile/generated/translations.g.dart'; +import 'package:immich_mobile/extensions/theme_extensions.dart'; + +Future showFeatureMessageDialog(BuildContext context) { + return showGeneralDialog( + context: context, + useRootNavigator: true, + barrierDismissible: true, + barrierLabel: context.t.whats_new, + barrierColor: Colors.black.withValues(alpha: 0.55), + transitionDuration: const Duration(milliseconds: 280), + pageBuilder: (_, __, ___) => const _FeatureMessageDialog(), + transitionBuilder: (_, animation, __, child) { + final curved = CurvedAnimation(parent: animation, curve: Curves.easeOutCubic, reverseCurve: Curves.easeInCubic); + return FadeTransition( + opacity: animation, + child: ScaleTransition(scale: Tween(begin: 0.94, end: 1.0).animate(curved), child: child), + ); + }, + ); +} + +class _FeatureMessageDialog extends StatefulWidget { + const _FeatureMessageDialog(); + + @override + State<_FeatureMessageDialog> createState() => _FeatureMessageDialogState(); +} + +class _FeatureMessageDialogState extends State<_FeatureMessageDialog> with SingleTickerProviderStateMixin { + static const double _radius = 24; + + final PageController _controller = PageController(); + late final AnimationController _borderController = AnimationController( + vsync: this, + duration: const Duration(seconds: 7), + )..repeat(); + final List _highlights = visibleFeatureMessageHighlights; + int _index = 0; + + bool get _isLast => _index >= _highlights.length - 1; + + @override + void dispose() { + _controller.dispose(); + _borderController.dispose(); + super.dispose(); + } + + void _advance() { + if (_isLast) { + Navigator.of(context).pop(); + return; + } + _controller.nextPage(duration: const Duration(milliseconds: 320), curve: Curves.easeOutCubic); + } + + List _borderColors(BuildContext context) { + final scheme = context.colorScheme; + // Mute the hues toward the surface and drop opacity in dark mode to keep it gentle. + Color tone(Color c) => context.isDarkTheme ? Color.lerp(c, scheme.surface, 0.45)!.withValues(alpha: 0.6) : c; + return [tone(scheme.primary), tone(scheme.tertiary), tone(scheme.secondary), tone(scheme.primary)]; + } + + @override + Widget build(BuildContext context) { + return Dialog( + insetPadding: const EdgeInsets.symmetric(horizontal: 8, vertical: 64), + clipBehavior: Clip.antiAlias, + backgroundColor: context.isDarkTheme ? context.colorScheme.surfaceContainerLow : Colors.white, + shape: const RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(_radius))), + child: AnimatedBuilder( + animation: _borderController, + builder: (context, child) => CustomPaint( + foregroundPainter: _GradientBorderPainter( + rotation: _borderController.value, + colors: _borderColors(context), + radius: _radius, + strokeWidth: 3, + ), + child: child, + ), + child: ConstrainedBox( + constraints: BoxConstraints(maxHeight: context.height * 0.9, maxWidth: 480), + child: Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.fromLTRB(24, 20, 24, 4), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + children: [ + Text( + context.t.whats_new, + style: context.textTheme.titleLarge?.copyWith(fontWeight: FontWeight.w700), + ), + const SizedBox(height: 2), + Text( + context.t.whats_new_version(version: featureMessageRelease.toString()), + style: context.textTheme.bodyLarge?.copyWith(color: context.colorScheme.onSurfaceSecondary), + ), + ], + ), + ), + const SizedBox(height: 32), + + Expanded( + child: PageView.builder( + controller: _controller, + itemCount: _highlights.length, + onPageChanged: (i) => setState(() => _index = i), + itemBuilder: (_, index) => _FeaturePage(highlight: _highlights[index]), + ), + ), + const SizedBox(height: 8), + _PageDots(controller: _controller, index: _index, count: _highlights.length), + Padding( + padding: const EdgeInsets.fromLTRB(20, 18, 20, 26), + child: Row( + children: [ + TextButton( + onPressed: () => Navigator.of(context).pop(), + style: TextButton.styleFrom(padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 14)), + child: Text(context.t.skip), + ), + const SizedBox(width: 8), + Expanded( + child: DecoratedBox( + decoration: BoxDecoration( + borderRadius: const BorderRadius.all(Radius.circular(100)), + boxShadow: [ + // Soft wide primary glow. + BoxShadow( + color: context.primaryColor.withValues(alpha: 0.38), + blurRadius: 22, + spreadRadius: -4, + offset: const Offset(0, 10), + ), + // Tight contact shadow for grounding. + BoxShadow( + color: context.primaryColor.withValues(alpha: 0.22), + blurRadius: 6, + offset: const Offset(0, 2), + ), + ], + ), + child: FilledButton( + onPressed: _advance, + style: FilledButton.styleFrom( + padding: const EdgeInsets.symmetric(vertical: 16), + elevation: 0, + textStyle: context.textTheme.labelLarge?.copyWith( + fontWeight: FontWeight.w700, + fontSize: 16, + ), + ), + child: AnimatedSwitcher( + duration: const Duration(milliseconds: 200), + child: Text(_isLast ? context.t.ok : context.t.next, key: ValueKey(_isLast)), + ), + ), + ), + ), + ], + ), + ), + ], + ), + ), + ), + ); + } +} + +class _GradientBorderPainter extends CustomPainter { + const _GradientBorderPainter({ + required this.rotation, + required this.colors, + required this.radius, + this.strokeWidth = 3, + }); + + final double rotation; + final List colors; + final double radius; + final double strokeWidth; + + @override + void paint(Canvas canvas, Size size) { + final inset = strokeWidth / 2; + final rect = (Offset.zero & size).deflate(inset); + final rrect = RRect.fromRectAndRadius(rect, Radius.circular(radius - inset)); + + final shader = SweepGradient( + transform: GradientRotation(rotation * 2 * math.pi), + colors: colors, + ).createShader(rect); + + final paint = Paint() + ..shader = shader + ..style = PaintingStyle.stroke + ..strokeWidth = strokeWidth; + canvas.drawRRect(rrect, paint); + } + + @override + bool shouldRepaint(_GradientBorderPainter oldDelegate) => + oldDelegate.rotation != rotation || !listEquals(oldDelegate.colors, colors); +} + +class _FeaturePage extends StatelessWidget { + final FeatureHighlight highlight; + + const _FeaturePage({required this.highlight}); + + @override + Widget build(BuildContext context) { + final scheme = context.colorScheme; + + return SingleChildScrollView( + child: Column( + children: [ + Padding( + padding: const EdgeInsets.fromLTRB(20, 8, 20, 0), + child: DecoratedBox( + decoration: BoxDecoration( + color: scheme.surfaceContainerHighest, + borderRadius: const BorderRadius.all(Radius.circular(18)), + border: Border.all(color: scheme.outlineVariant.withValues(alpha: 0.5)), + ), + child: ClipRRect( + borderRadius: const BorderRadius.all(Radius.circular(18)), + child: SizedBox( + width: double.infinity, + height: 256, + child: highlight.image == null + ? const FeatureMessagePlaceholder() + : Image.asset( + highlight.image!, + fit: BoxFit.contain, + errorBuilder: (context, _, __) => const FeatureMessagePlaceholder(), + ), + ), + ), + ), + ), + Padding( + padding: const EdgeInsets.fromLTRB(24, 18, 24, 8), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + children: [ + Text( + highlight.titleKey.tr(), + style: context.textTheme.titleLarge?.copyWith(fontWeight: FontWeight.w700, fontSize: 24), + ), + const SizedBox(height: 8), + Text( + highlight.bodyKey.tr(), + style: context.textTheme.bodyLarge?.copyWith(color: scheme.onSurfaceVariant, height: 1.4), + ), + ], + ), + ), + ], + ), + ); + } +} + +class _PageDots extends StatelessWidget { + final PageController controller; + final int index; + final int count; + + const _PageDots({required this.controller, required this.index, required this.count}); + + @override + Widget build(BuildContext context) { + final primary = context.primaryColor; + + return AnimatedBuilder( + animation: controller, + builder: (context, _) { + final page = controller.hasClients ? (controller.page ?? index.toDouble()) : index.toDouble(); + return Row( + mainAxisAlignment: MainAxisAlignment.center, + children: List.generate(count, (i) { + final activeness = (1 - (page - i).abs()).clamp(0.0, 1.0); + return AnimatedContainer( + duration: const Duration(milliseconds: 150), + margin: const EdgeInsets.symmetric(horizontal: 3), + height: 7, + width: 7 + 16 * activeness, + decoration: BoxDecoration( + color: Color.lerp(context.colorScheme.surfaceContainerHighest, primary, activeness), + borderRadius: const BorderRadius.all(Radius.circular(8)), + ), + ); + }), + ); + }, + ); + } +} diff --git a/mobile/lib/presentation/widgets/feature_message/feature_message_placeholder.widget.dart b/mobile/lib/presentation/widgets/feature_message/feature_message_placeholder.widget.dart new file mode 100644 index 0000000000..b157d5078b --- /dev/null +++ b/mobile/lib/presentation/widgets/feature_message/feature_message_placeholder.widget.dart @@ -0,0 +1,105 @@ +import 'package:flutter/material.dart'; +import 'package:immich_mobile/extensions/build_context_extensions.dart'; +import 'package:immich_mobile/generated/translations.g.dart'; +import 'package:immich_mobile/widgets/common/immich_logo.dart'; + +class _SplatColors { + static const primary = Color(0xFF4250AF); + static const info = Color(0xFF3B82F6); + static const success = Color(0xFF2FB457); + static const warning = Color(0xFFF2A73B); + static const danger = Color(0xFFE5484D); +} + +class FeatureMessagePlaceholder extends StatelessWidget { + const FeatureMessagePlaceholder({super.key}); + + @override + Widget build(BuildContext context) { + final dark = Theme.of(context).brightness == Brightness.dark; + + final cardColor = dark ? const Color(0xFF232228) : const Color(0xFFEEEDF4); + final tileColor = dark ? const Color(0xFF2B2A32) : const Color(0xFFFBFAFE); + final inkColor = dark ? const Color(0xFFE7E7EC) : const Color(0xFF1A1A1E); + + return Container( + width: double.infinity, + height: double.infinity, + clipBehavior: Clip.antiAlias, + // Fill a plain rectangle — the parent's ClipRRect handles the corner rounding, + // so the placeholder doesn't round its own corners inside that clip. + decoration: BoxDecoration(color: cardColor), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + // ---- confetti motif (168 × 120 region) ---- + SizedBox( + width: 168, + height: 120, + child: Stack( + clipBehavior: Clip.none, + children: [ + // scattered confetti + Positioned(left: 6, top: 24, child: _dot(12, _SplatColors.primary)), + Positioned(left: 80, top: -2, child: _dot(9, _SplatColors.danger)), + Positioned(left: 148, top: 84, child: _dot(11, _SplatColors.success)), + Positioned(left: 140, top: 14, child: _bar(22, 8, 0.49, _SplatColors.danger)), // ~28° + Positioned(left: 2, top: 90, child: _bar(20, 8, -0.31, _SplatColors.info)), // ~-18° + // tilted spark tile + Positioned( + left: 46, + top: 18, + child: Transform.rotate( + angle: -0.105, // ~-6° + child: Container( + width: 84, + height: 84, + decoration: BoxDecoration( + color: tileColor, + borderRadius: const BorderRadius.all(Radius.circular(18)), + boxShadow: [ + BoxShadow( + color: const Color(0xFF0F122D).withValues(alpha: 0.22), + blurRadius: 22, + offset: const Offset(0, 10), + ), + ], + ), + child: Stack( + alignment: Alignment.center, + children: [ + Positioned(left: 12, top: 12, child: _dot(12, _SplatColors.warning)), + const ImmichLogo(size: 40), + ], + ), + ), + ), + ), + ], + ), + ), + const SizedBox(height: 16), + Text( + context.t.new_feature, + style: context.textTheme.titleMedium?.copyWith(fontWeight: FontWeight.w600, color: inkColor), + ), + ], + ), + ); + } + + static Widget _dot(double d, Color c) => Container( + width: d, + height: d, + decoration: BoxDecoration(color: c, shape: BoxShape.circle), + ); + + static Widget _bar(double w, double h, double angle, Color c) => Transform.rotate( + angle: angle, + child: Container( + width: w, + height: h, + decoration: BoxDecoration(color: c, borderRadius: const BorderRadius.all(Radius.circular(99))), + ), + ); +} diff --git a/mobile/lib/providers/feature_message.provider.dart b/mobile/lib/providers/feature_message.provider.dart new file mode 100644 index 0000000000..459464524d --- /dev/null +++ b/mobile/lib/providers/feature_message.provider.dart @@ -0,0 +1,7 @@ +import 'package:hooks_riverpod/hooks_riverpod.dart'; +import 'package:immich_mobile/domain/services/feature_message.service.dart'; +import 'package:immich_mobile/providers/infrastructure/settings.provider.dart'; + +final featureMessageServiceProvider = Provider( + (ref) => FeatureMessageService(ref.read(settingsProvider)), +); diff --git a/mobile/lib/routing/router.dart b/mobile/lib/routing/router.dart index a5403e3966..34d29be945 100644 --- a/mobile/lib/routing/router.dart +++ b/mobile/lib/routing/router.dart @@ -38,6 +38,7 @@ import 'package:immich_mobile/pages/share_intent/share_intent.page.dart'; import 'package:immich_mobile/presentation/pages/cleanup_preview.page.dart'; import 'package:immich_mobile/presentation/pages/dev/main_timeline.page.dart'; import 'package:immich_mobile/presentation/pages/dev/media_stat.page.dart'; +import 'package:immich_mobile/presentation/pages/feature_message/whats_new.page.dart'; import 'package:immich_mobile/presentation/pages/download_info.page.dart'; import 'package:immich_mobile/presentation/pages/drift_activities.page.dart'; import 'package:immich_mobile/presentation/pages/drift_album.page.dart'; @@ -131,6 +132,7 @@ class AppRouter extends RootStackRouter { AutoRoute(page: ProfilePictureCropRoute.page), AutoRoute(page: SettingsRoute.page, guards: [_duplicateGuard]), AutoRoute(page: SettingsSubRoute.page, guards: [_duplicateGuard]), + AutoRoute(page: WhatsNewRoute.page, guards: [_duplicateGuard]), AutoRoute(page: AppLogRoute.page, guards: [_duplicateGuard]), AutoRoute(page: AppLogDetailRoute.page, guards: [_duplicateGuard]), AutoRoute(page: FolderRoute.page, guards: [_authGuard]), diff --git a/mobile/lib/routing/router.gr.dart b/mobile/lib/routing/router.gr.dart index bc7226c2ee..1876a784dc 100644 --- a/mobile/lib/routing/router.gr.dart +++ b/mobile/lib/routing/router.gr.dart @@ -1872,3 +1872,19 @@ class TabShellRoute extends PageRouteInfo { }, ); } + +/// generated route for +/// [WhatsNewPage] +class WhatsNewRoute extends PageRouteInfo { + const WhatsNewRoute({List? children}) + : super(WhatsNewRoute.name, initialChildren: children); + + static const String name = 'WhatsNewRoute'; + + static PageInfo page = PageInfo( + name, + builder: (data) { + return const WhatsNewPage(); + }, + ); +} diff --git a/mobile/lib/widgets/forms/login/login_form.dart b/mobile/lib/widgets/forms/login/login_form.dart index a64daadc49..17e5afe262 100644 --- a/mobile/lib/widgets/forms/login/login_form.dart +++ b/mobile/lib/widgets/forms/login/login_form.dart @@ -18,6 +18,7 @@ import 'package:immich_mobile/extensions/translate_extensions.dart'; import 'package:immich_mobile/infrastructure/repositories/settings.repository.dart'; import 'package:immich_mobile/providers/auth.provider.dart'; import 'package:immich_mobile/providers/background_sync.provider.dart'; +import 'package:immich_mobile/providers/feature_message.provider.dart'; import 'package:immich_mobile/providers/gallery_permission.provider.dart'; import 'package:immich_mobile/providers/oauth.provider.dart'; import 'package:immich_mobile/providers/server_info.provider.dart'; @@ -254,6 +255,7 @@ class LoginForm extends HookConsumerWidget { } unawaited(handleSyncFlow()); ref.read(websocketProvider.notifier).connect(); + unawaited(ref.read(featureMessageServiceProvider).markSeen()); unawaited(context.router.replaceAll([const TabShellRoute()])); return; } @@ -341,6 +343,7 @@ class LoginForm extends HookConsumerWidget { await getManageMediaPermission(); } unawaited(handleSyncFlow()); + unawaited(ref.read(featureMessageServiceProvider).markSeen()); unawaited(context.router.replaceAll([const TabShellRoute()])); return; } diff --git a/mobile/pubspec.yaml b/mobile/pubspec.yaml index c2f99aef66..f151b03f29 100644 --- a/mobile/pubspec.yaml +++ b/mobile/pubspec.yaml @@ -119,6 +119,7 @@ flutter: uses-material-design: true assets: - assets/ + - assets/feature_message/ fonts: - family: GoogleSans fonts: