From d68cc433688ae0de2a6813f70e348de96158393c Mon Sep 17 00:00:00 2001 From: ayushya Date: Tue, 15 Sep 2026 22:44:42 -0400 Subject: [PATCH] Add Trash/Shares/Recent tabs, file sharing, Details sheet, and rebrand to Noo Major additions since the initial rebuild: - New tabs: Trash, Shares, Recent, configurable tab visibility/order/default - Nextcloud sharing: search users/teams, internal link, email shares, public links, "others with access" - in its own Share bottom sheet - Details bottom sheet (Info/Versions/Activity) with a persistent peek panel in the media viewer, reachable from selection, swipe, and the media viewer - Files/Photos: tap-and-hold multi-select with a sticky selection toolbar, swipe actions (favorite/delete/share), sticky sort/filter controls, list/grid views, breadcrumb chips, whole-account Photos view - Media viewer: pinch/double-tap zoom on images, predictive-back support, fixed PDF zoom-out floor - Settings: Material You theming incl. AMOLED black, configurable bottom bar tabs, swipe actions, media seek bar style, and folder-listing cache policy (never/periodic/manual) to cut down on refetching - Login flow moved to an in-app Chrome Custom Tab with retry-tolerant polling - Replaced ad hoc widgets with native Material 3 equivalents (toggle IconButtons, SliverAppBar selection toolbar, SearchBar, drag handles) - Rebrand: app renamed to Noo throughout, package id -> dev.ayushya.noo, new adaptive launcher icon Co-Authored-By: Claude Sonnet 5 --- README.md | 2 +- android/app/build.gradle.kts | 4 +- android/app/src/main/AndroidManifest.xml | 3 +- .../ayushya/noo}/MainActivity.kt | 2 +- .../drawable-hdpi/ic_launcher_background.png | Bin 0 -> 7352 bytes .../drawable-hdpi/ic_launcher_foreground.png | Bin 1910 -> 6946 bytes .../drawable-hdpi/ic_launcher_monochrome.png | Bin 0 -> 4939 bytes .../drawable-mdpi/ic_launcher_background.png | Bin 0 -> 2758 bytes .../drawable-mdpi/ic_launcher_foreground.png | Bin 1226 -> 3919 bytes .../drawable-mdpi/ic_launcher_monochrome.png | Bin 0 -> 2854 bytes .../drawable-xhdpi/ic_launcher_background.png | Bin 0 -> 10136 bytes .../drawable-xhdpi/ic_launcher_foreground.png | Bin 2105 -> 10008 bytes .../drawable-xhdpi/ic_launcher_monochrome.png | Bin 0 -> 7015 bytes .../ic_launcher_background.png | Bin 0 -> 29830 bytes .../ic_launcher_foreground.png | Bin 2712 -> 18404 bytes .../ic_launcher_monochrome.png | Bin 0 -> 12131 bytes .../ic_launcher_background.png | Bin 0 -> 59833 bytes .../ic_launcher_foreground.png | Bin 3507 -> 27474 bytes .../ic_launcher_monochrome.png | Bin 0 -> 17859 bytes .../res/mipmap-anydpi-v26/ic_launcher.xml | 7 +- .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 1889 -> 5284 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 1178 -> 2709 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 2297 -> 7717 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 3562 -> 15326 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 4411 -> 23932 bytes android/app/src/main/res/values/colors.xml | 4 - assets/icon/app_icon.png | Bin 9889 -> 294697 bytes assets/icon/app_icon_background.png | Bin 0 -> 148733 bytes assets/icon/app_icon_foreground.png | Bin 5932 -> 39878 bytes assets/icon/app_icon_monochrome.png | Bin 0 -> 23964 bytes devtools_options.yaml | 3 + ios/Runner.xcodeproj/project.pbxproj | 12 +- ios/Runner/Info.plist | 4 +- lib/main.dart | 55 +- lib/models/app_tab.dart | 47 + lib/models/nextcloud_file_version.dart | 16 + lib/models/nextcloud_item.dart | 11 + lib/models/nextcloud_share.dart | 42 + lib/models/nextcloud_sharee.dart | 30 + lib/models/selection_action.dart | 18 + lib/providers/server_provider.dart | 800 +++++++++- lib/services/login_flow_service.dart | 2 +- lib/services/nextcloud_service.dart | 931 ++++++++++- lib/theme/app_theme.dart | 40 +- lib/views/account_view.dart | 407 ++++- lib/views/activity_view.dart | 191 ++- lib/views/file_viewer_screen.dart | 256 ++- lib/views/files_view.dart | 1371 +++++++---------- lib/views/photos_view.dart | 594 +++++-- lib/views/recent_view.dart | 262 ++++ lib/views/search_view.dart | 59 +- lib/views/shares_view.dart | 318 ++++ lib/views/trash_view.dart | 289 ++++ lib/widgets/app_tab_view_builder.dart | 28 + lib/widgets/breadcrumbs.dart | 72 + lib/widgets/details/details_activity_tab.dart | 142 ++ lib/widgets/details/details_info_tab.dart | 64 + lib/widgets/details/details_sheet.dart | 135 ++ lib/widgets/details/details_versions_tab.dart | 160 ++ lib/widgets/details/peek_details_sheet.dart | 86 ++ lib/widgets/gradual_bottom_sheet.dart | 60 + lib/widgets/more_tabs_button.dart | 50 + lib/widgets/profile_avatar_button.dart | 2 +- lib/widgets/segmented_icon_toggle.dart | 39 +- lib/widgets/selectable_thumbnail.dart | 53 + lib/widgets/share_sheet.dart | 406 +++++ lib/widgets/sort_menu_button.dart | 90 ++ lib/widgets/sticky_header_delegate.dart | 34 + lib/widgets/swipeable_item.dart | 113 ++ lib/widgets/synced_header_scaffold.dart | 336 ++++ pubspec.yaml | 5 +- test/widget_test.dart | 31 +- windows/CMakeLists.txt | 4 +- windows/runner/Runner.rc | 12 +- windows/runner/main.cpp | 2 +- 75 files changed, 6491 insertions(+), 1213 deletions(-) rename android/app/src/main/kotlin/{family/nasa/nextcloud_client => dev/ayushya/noo}/MainActivity.kt (71%) create mode 100644 android/app/src/main/res/drawable-hdpi/ic_launcher_background.png create mode 100644 android/app/src/main/res/drawable-hdpi/ic_launcher_monochrome.png create mode 100644 android/app/src/main/res/drawable-mdpi/ic_launcher_background.png create mode 100644 android/app/src/main/res/drawable-mdpi/ic_launcher_monochrome.png create mode 100644 android/app/src/main/res/drawable-xhdpi/ic_launcher_background.png create mode 100644 android/app/src/main/res/drawable-xhdpi/ic_launcher_monochrome.png create mode 100644 android/app/src/main/res/drawable-xxhdpi/ic_launcher_background.png create mode 100644 android/app/src/main/res/drawable-xxhdpi/ic_launcher_monochrome.png create mode 100644 android/app/src/main/res/drawable-xxxhdpi/ic_launcher_background.png create mode 100644 android/app/src/main/res/drawable-xxxhdpi/ic_launcher_monochrome.png delete mode 100644 android/app/src/main/res/values/colors.xml create mode 100644 assets/icon/app_icon_background.png create mode 100644 assets/icon/app_icon_monochrome.png create mode 100644 devtools_options.yaml create mode 100644 lib/models/app_tab.dart create mode 100644 lib/models/nextcloud_file_version.dart create mode 100644 lib/models/nextcloud_share.dart create mode 100644 lib/models/nextcloud_sharee.dart create mode 100644 lib/models/selection_action.dart create mode 100644 lib/views/recent_view.dart create mode 100644 lib/views/shares_view.dart create mode 100644 lib/views/trash_view.dart create mode 100644 lib/widgets/app_tab_view_builder.dart create mode 100644 lib/widgets/breadcrumbs.dart create mode 100644 lib/widgets/details/details_activity_tab.dart create mode 100644 lib/widgets/details/details_info_tab.dart create mode 100644 lib/widgets/details/details_sheet.dart create mode 100644 lib/widgets/details/details_versions_tab.dart create mode 100644 lib/widgets/details/peek_details_sheet.dart create mode 100644 lib/widgets/gradual_bottom_sheet.dart create mode 100644 lib/widgets/more_tabs_button.dart create mode 100644 lib/widgets/selectable_thumbnail.dart create mode 100644 lib/widgets/share_sheet.dart create mode 100644 lib/widgets/sort_menu_button.dart create mode 100644 lib/widgets/sticky_header_delegate.dart create mode 100644 lib/widgets/swipeable_item.dart create mode 100644 lib/widgets/synced_header_scaffold.dart diff --git a/README.md b/README.md index a6255e9..74d6907 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# nextcloud_client +# Noo A new Flutter project. diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index cb7c742..d6e7d5a 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -5,7 +5,7 @@ plugins { } android { - namespace = "family.nasa.nextcloud_client" + namespace = "dev.ayushya.noo" compileSdk = flutter.compileSdkVersion ndkVersion = flutter.ndkVersion @@ -15,7 +15,7 @@ android { } defaultConfig { - applicationId = "family.nasa.nextcloud_client" + applicationId = "dev.ayushya.noo" // You can update the following values to match your application needs. // For more information, see: https://flutter.dev/to/review-gradle-config. minSdk = flutter.minSdkVersion diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 0687e83..4a84133 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -5,7 +5,8 @@ android:name="${applicationName}" android:icon="@mipmap/ic_launcher" android:networkSecurityConfig="@xml/network_security_config" - android:usesCleartextTraffic="true"> + android:usesCleartextTraffic="true" + android:enableOnBackInvokedCallback="true"> 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 U5q8#r2m2|)%fp9spFmIh2PUyb`Tzg` diff --git a/android/app/src/main/res/drawable-hdpi/ic_launcher_monochrome.png b/android/app/src/main/res/drawable-hdpi/ic_launcher_monochrome.png new file mode 100644 index 0000000000000000000000000000000000000000..901bd0caa345410eb5469ed1a827ef050a3ef1bf GIT binary patch literal 4939 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 g?Bf4Cg( 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 M%+~a+vD<@x0bjpnV*mgE literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-xhdpi/ic_launcher_background.png b/android/app/src/main/res/drawable-xhdpi/ic_launcher_background.png new file mode 100644 index 0000000000000000000000000000000000000000..0358504fe2c4885750660904623c37a59f264c58 GIT binary patch literal 10136 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

USF=dw72??ecpGoDu4T1LRQy3{3tFo zx0o(jTODVgG+DncSUo#<8D7~hijcqiaWx%+^t%Adi2Q)Rg#sGX?;OZgl!69$*;U%Ky{D`%ZJ$ zA?R#tshCyHL(|yNH)ga$8_-P=cd-liV*p&$XADvmulhye7C;pTzr~9avN4+J&SAhN=|Sv%_IQ*Wwvb zl1%u1HC*;+d+U$)H35?>Ue;q9z`Dw#3YAT$sG5OVZ0a44kG;m3dWm4Rh!uF={5O#x zPWUEE^mbmZ78QjE)WvT;zXar}b>9{{r@WCU6tDyZxqXrEIv;s`zvkUxBZd+onTogkGq!260JQkCv=X4mFmt$dUFiREl3lED7de_9=7bc)^bDq zFKINV{%mD>%;X8J*w4J3B6_u3jYV*yy|upLQ*NzAu&$Ue*uY|$Buof$vs~F#>l!fJAsvQ_fbQWG_8eC#v-ivwZ@w~Q^xCk$aZ^kZ%_3C6 znah;Q-7IdvNOs($Pd)!gzTiF$M`BAdv)$6CMU;Z>Pr+r>t+CN|iaynWk2P;fCEpw& zE=O=Y+PWf?wqOv`;F;Obr3JEZ?crHahC1)h>9#Q(@f15```?hQV7KiYiQsxh*&S+? z@vjJ4aLk{r(sYpa8Urz1ZVLB`b)k9moZc-1Go_h5Z5)EZ39_H%=VUWyBEigNv&go~ zcxkj>T(~<;Y^l*fKvEp7ko*kNrx5BF9;3ebc_SwhHX55E(Se_Z748X1{Kq87yJezX zd?uv=!@tdPraR`(g47)QlxQ`dt3jBO&y|0uuHB-vc!!x;a{J90PnW}0ocDHzrJ~1B z3ZtI3EK}#S;+v%+B}GG}(Qxy6>bAHG*=ET?nkZOoM>ecR$a`NSVFIf2{T0&MbM zA@j2W+!<}oAGdkc)2$k05p>BY9NU;mgb+nm-4`)*Rt2NwQgan*aI3=|xBPF|;m5uG zUhE10x$KKqIc?0g2|Am`Z{I?lv zsyzz0i5q?Jsu0YN2wr|JH!5+YN(I7ao)Ri$8_FG0E$H5q?rJfj7FwkI_!ZG7ZO=i*l$e{||p8V7fM*qsK?r znNjRn%Ypapxt}sK)F)}vGoP6E=F=CZo?8wPakbvF9=8&}A}>HdWsClmO7+~)USXmZ zC1D1-Mj{hq%sFS^?2HXLkO=Ghxfjx&Zlj>G5$@!Ti~Hu=qOOKeYI|#bw-+IbZYmcl z(yvDlG7LSE nK4@+NoQ5<5t_+|A4?-8ssltIFAl9=JcjpXrjI>KNpTGM*FugT+ literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png b/android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png index 5e2e2fb9d5bbdbf04a53356c8fec63851cbb220a..c9b6c7832c720ffec24cebe146c957a017e90026 100644 GIT binary patch literal 10008 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_launcher_background.png b/android/app/src/main/res/drawable-xxhdpi/ic_launcher_background.png new file mode 100644 index 0000000000000000000000000000000000000000..0cb1ca0e19c3169aa83d32eb648508988cc10009 GIT binary patch literal 29830 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png b/android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png index 5d574792ee84f20bddca3fd155f5796cbdf3c2a6..2aa793eb2439c9f0b95c627f0c64352518938c17 100644 GIT binary patch literal 18404 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 Y{$S&-?3J${g3r?NboFyt=akR{0Gz@YC;$Ke literal 2712 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 XkH&>WzV1)r`De-s>hd+R7UBN|NL%xy literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_background.png b/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_background.png new file mode 100644 index 0000000000000000000000000000000000000000..6a790e70dac0d665ec8ea068283a6f66e007fc05 GIT binary patch literal 59833 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png b/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png index 1c1ac20c73fba025fbd284a8912ac7182850b48f..0206c5a38766ae6406dfd61e33c2ff09e5e30900 100644 GIT binary patch literal 27474 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 literal 3507 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 diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_monochrome.png b/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_monochrome.png new file mode 100644 index 0000000000000000000000000000000000000000..e97c97b27b64d63056f75fb21c67243d4cebc2ba GIT binary patch literal 17859 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≥MQOE^qVgf)_#XyNlvmAH%*#1q#pY}6Tt^Lu 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 - + + + + diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png index aebae731d28d4f2bae40040f8b1b0f3e0e16398f..6ee490eaa26d1c297889ef06345111a37800a6b8 100644 GIT binary patch literal 5284 zcmV;V6kF?wP)!Lcqqv zdDw*DR}zdLU>5-sOq|3q6vBWFxWFJI1qp_EyYWgw#bx+T| zcX9bvExVdK)6;$WeCIn~PY-eXPu@%*2m}Bk{SSfUZ-4};1492L=?{7`Zvj=;eME7`d(!F>-7yFBGZbwR=34I6g=vk6Pv$;Y}WkY{}yWC z?6?r=h{?HyxgitV4eaj%nR z#&fe+1favjCM+_8^Fhe5hyfEkuYg7DKJSD*3Lq9fwzDA?@nhcH=0YyV5f4t&f?=Ry zF=vqiH3UN7SOJTIkk1mVINx<&i}*|wXi=_1#ahJKlxL6Ef~OxY6a6+kunaH_BA{h} z>>5Xlynb*13$@5=(+fVB@wUpMIN#;)?AciqEbTTL!Ys5X zsAs=fEut`W^8gts;Bg$#A__q0vxr*IB7!#=YQT;bQDZH#?N}ChI;w!7Mv&|7HH9g* zDiRP;J8#(zGO^aIKlh2|S zIAle-NhS&5U!X++CN}UzMMB!t7cl@EYf)qFGyy3F8$|BrOj-C$gtRDR;|jFM^+h@H zZ_t7tav6&Xxs&f(UW*!jlu>MGz(N`j@)Y?&%vy_b*Lqrnz(jhX|Bke%0gGb)l38m} zW(4d_X3L^1%(C;seF|z(kp~L>Ris7D7zEfDZ(WNTXEfu7T4qsTNdq1ue(j7_n2Rm> za{x&UM1V2*p<5Ff&S*^oT3%X|(byR#qlI|L_}Wa1s09|0$u%E>Ws&@?TWJ(THsKop0$OA&XE?mnfR#OO$Rab^ke+5Aaz&bTIG9cwXi+W{ zoZI*sV~&Tkh$o2_?4{q2Mp~3h9Ol|$EsFiy<~!T0!p_ZJUWY#1(!yf&7M106bZLU60l;BRd>R>nKPQeq`G(fwOABf?kLcr z@XQv?iZgpGqj_D={wuT`2zCCPn6RL&gsyTVg>s?}9IqwvCy@gobtnCIW(CQ}Pl3A* z!&b;5r&w)i-MJZy8knv|z?2}c{&UcgkQP;Nz!v;LZ!?;@LM2;kpNRV*g|Wq6$!nC

Cf@+s6 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 N002ovPDHLkV1n2NmE8aU diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png index 3fc910f7590df0a2df6504315ad25678dad439f7..92e9c09089dc23a830b47bb6f0c72dcac1afcddc 100644 GIT binary patch delta 2702 zcmV;93UT$C36&L)BYz59NklRFWkN^M7WyL+`I5+_j|9=2L{*6D2Pw`*%IsUcB z0K75k*t?c>pPo}*GxNK1t7n5_#vf*m2nQDr;Nn4?a66Hnk8}B;_+AwNmmkH`#ML+s zu7;TV;uFLKB*w%aIFX|WamJ{bTf_3TZ76wc;5RYNZ8Bp}C>JY*6h{ zNNGWj$wI-oHY+W(LBV4}Hiay2=Zu2VLKX^IG+A0O(SI5tw?@I5LN*G_bpoGGYO+~6 zQWgp(Vfew@F-SSmT(zL;fR927QqPfG3bjW;(?s3X-cC8U@XkRC4ux81A%Q|#$n8-` zYoU!JwLzhk7MQNG;4QS^PKFkBp^YP@wU9(1orpX+J1sD$l(a{I8zQ9Z!kit+MIlKi zXOU7UIDcm1YQSv+TBDE@avBBG!^|0ljN;i&$j&i?<2r67oyn21P%sI@Z7mcvxO%7< zqdQJw2Kic0D?SS$TM8LI`uz;%;z;^N5om;ET>&-?74hl$ISh3&6evNt!EtG-f%k4S zu=ipW=Wa*fpemJCD6~$5`H;-q&$u*6Ia0*M1AkWc1o+YYedwy)!JB6;;O9q5_;9>} zT9YHs0xan(;*$%zudgCk6X= zKDHXXI)#Wb&_cJRkZarUh3ru%jY8HA%XK7(U^XnsH!Z?9cOS>eaR7x5G5?m`BcQns@J1E9767@{O5WJ2n!&TTG!wap8doE@M;+&w}H3L-NN>bEAX4c|HI+YCJ4)c1q`1X>cXml z0xsWaVBdu@rW>lV*DJ9 zc^AUYg?Rb&C>lbry7A)JFw~7NFYUqR9mClBjdgf%={%ICE7)~zQcx{k?N>J4gQ+_u z9KJM;b@Ph&$@;~3=IyIEcC#U#jb;_R9wSk-T5wSCx0G30P{BX9d;qKY6xRO!zqri< z!SQ&|uJdEqx@rOD6#`tZQ-4#~R`uqwZSCE7?5{^KG|-Knkm8B^@4}{?$7Jw<=;ZPA zp3|sCRLn>C6#j5*6fZrp8eesL8i^u}L_N#IjmqgF>7oZ{nwG z=Hv0#52C?BVUe7~)s-6Y)EiAq*Xr21Y7iTj3}QjZ@#LPPIA11Wr5{;2A3yxZ`#3Wd z^Em{kff`R_B2Wb`Mt_@7>^?Jzy=#Z?{J~K`XiDAEtVvd|ym2IlLP-?3_+8hR$A!@e zoGMj8!o2c#>NH*yJI~%gxm?E5o+5s6;C&ppJ`El}Bn&|!;FpKbWACLYkX%t%ETzP( zmQF7#AS&=XH=7{&4%rtemy*vT4(#eDzD_AF-f7_O zt^gmFBE<@O6OWUKLuPqrLz8HUWq=X-8NsbuLk3EcFK;0`NJdo817&YiRAF&*Jcb4; zN@`n_#JeZCaDRGof_r-NxH&bZ=5g}W2T=pON#v&9eH-AR0N{;_x3F#PN|X+r#d~9A zL_AWF6U$uzzuwfCy_>29&Jyzox((#2q|1#9QD+IdLxL@9`az>QJ{Yfqr?<^n0ig|qq88fSBb587iO@9i>1K52vyrnZ|OO-1AH8O#x z{(cQ$9TH9b_QQ17b|=T&sl4C?6Q~g4{%QmJhc5z?Cq(NY!ys0Csn75}n|nkeYSZG5 z<#rAtY&rx93Lrrsk%e6(cWcYNFF0VA!z2>l94O1|?U!93U2U9 z2Qm@jOqh7<2Zt`u44@elQuW2Q675h((uv!Zh;J}SR4w#y{MvO7IOdQ^C!M&Xy%dFf zEq}B~pdAW2L7Pb2`v?wKE6$53st|EDA#LfTv)B7w_zR-XIXfECQUkL=LGK$ho$`4( zrdmzAM@I0PPGVz1s7ELN4TM|0iO;w83AAw}!`sByN%?|2Tdnz`%nTj|Avbv4IwN(R z7;|vx)E)s3g*J}lZv1lv>HD>+-D5k=Uw?{1uK0-?v{S^8VW&J*iRX%fad!W^u=rFi zCx_SLZ6Hm!OBM=nXqP~QII(2tV`c=}qTo6bOhn?GNP+;hdZI^qa00000Ne4wv IM6N<$f_ifSCjbBd delta 1158 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 delta 2286 zcmVd2kbT6vtnZO`0@K+N5oomePw-Ez+u`NU?Pe@j4 zW2`Dh8y;xPP=IAU?tYh}zOSdgx~JWCxV>@D_V&iz+q@oUcOdbYvHnA(W$HE7^jjZ| zPQ30G6{FJ!a?wymsbthzeS9(=k(Md55;E?50!3+W*tM;(a?^)rYIke~@Uf$fH);V) z@mCilXFu_VA%A-E)PS=WDJY70+|0RnxH_v()*M~Gyy?{D&qgD}1qEO>QPURf8L zbi?huWh`QJ#^j8QypoUOQVSnEv1{@Dea;5^NS_~3fC%$txtTNG*{F?3NZ~zGkrNr0 zJ3D7?*@2ULmOOf-XwgHOJE^Z6w$XVJU; zuI742_13Qjo*yItcDUH)%gqiMCQe)OQBT{+L(a}qNB!pp34o&=xx*y~KG+lUUSEIk z=Lhm}N`D6f1;BB>Jk%tQF(y0Dnm)g%v0~#o7$^WvvZ!VzAyTpzmN=@me1YW)P5>+~ z$TM8wP;1SxaT9KRr2fQ)_c#HtwnIB9sbTdCfK^Q_tkF(LYUraTW`!HmCNWr2mWQ2m zFeT&{Fj&v0orqL1L}yK7a505;B2p#7oH>QTm47VSiAa^OaO-#mml0_vB2|^Ti{rw6Uu&c zz<)2hJHQv@UyPs>K(AB6llLdUO|#4a{eR|!aCoga8Sc2r3Cl}spsKEq_Z;~m=mZ!S zr-8SgNr9vU?M25zAxcZqVcFUm*txHhm;Cr9s02t&41-lKrGYt8&09>JRs|(bCBvH^ z)WX)^+IWl07eOOHe5?jmzdQjm2k-GOhM*8Yp#XTbcs!At z?*~PAz9v#q<=zFqhO{f zGz19KC?GBI;_Lar##Pw{ZWhny+<=Gx)>w_Gnjb${%uBFnpsuN(x0r;!0iiqWybxHz z2zmiry}}l>ghZ|8_nS>bfJR3@c)Y$5cQS-3E*HNK7ZCxlc2a3~!6m67x997EG`I3w zB_%ct-F=`-bON+?xWN%B0)K4T(F*qzT13?h;jTNrAtpd$iyMCWy$$Bg4s3H(FtYiV zGrY$nT8#U3Plsp(*mJN8Dyn;Vk4sblqapMwp@`ef!uuQQiNq!<04tK|Kc6h*4p8L47lS zb)TUiz9_$8b92ZFu<0jqO^+Yq0vxe9VcQ>Va6`U{^rd*kR^@`NJIQZf6l7n}s!!@* zQhGRyiwhItau-dv(+eeQ?BEq(6eoxP-A)!>e76dgFG>k|5!yOEuy}P9R15T4lVDpD zaUA`~%Qh&!CjsWpHh%@>irL=7UEDim_}Z&b2)a4f>0)8UN42o&=N7nYUM%_QM9P1JM`c$^3SK51F>Dn4lDS>N}EHV7O6E+swIy_L*&_`_B;b@@x zf(CYS_J%(0kSf&QkdZpF0F;phpo}a4Wn=*;BMU$oSpdq&0)J3O7JxFc0F;phpo}a4 zWn=*;!=McxI>FISM5-`oOo_gTv=fmc`0z963Mvaghkj>MErXV<=n6_Z87boIICYFc zKU}nArJalv>2Uo08-r%Vaz{)DeE1o(QbIFg^unc`kd)}{X|Q*<9{r1(2cQ$QEP${y zRerl34WBsy(0_&-ouJW-n08`P!0U1K)Z5C|!2dI0AB#5J=mbqUH%U-;{EO9|zBX>_ z^?#)Z^gu@&ZghgCnw`jTcAP#|^UsIN{J#&V1^HO?Kt~&Hbb_XopQ!QqSg)=8^&-~W z=klK$RE$Fddh|d?8*X%hrjn(Iu^(Pn(&^a$`@nPORewX#fF3>2&)RUy@I`~IY_0uB zY00_ghb%{*HK120(1u%(>_iUU{EEHH77q2dVb=rDfF3>2(S}?0nhXqV^Rd|(>dE&r z;(`ns(4z-B+Hj*2G?6St3XXQL!#%gnKbH%xh@k;JdZ42XH#$M188NS!iVU1&;W!_M zngd5W!)GzdB}tY=4|KHQMki=ABSt@59`Y3pSlhw!0?u&#ldRD&rZr(K+@T9J9%x34 zez<7Kimsq&Oo`rz0c9UzVD%UmQ?QJa;Pyhe` diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png index 02026022ea8f478137fdcd8c58e23ea4ae390bf1..e8c852679b6f3f1fdcfa13d47a089d8b197c39ef 100644 GIT binary patch literal 15326 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 literal 3562 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 Z;KTS$-DQs|x&FhE={`Vc)oR*D{U4SIzGnac diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png index 38a0bcfd9983a54030899a23abbf1a3965115ad4..6c4a8242af3391e4c77adaca20632bbd8578836a 100644 GIT binary patch literal 23932 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 b2>Jg5J&@}rZXba|00000NkvXXu0mjf4P<}0 literal 4411 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 - - #3D5AD1 - \ No newline at end of file diff --git a/assets/icon/app_icon.png b/assets/icon/app_icon.png index 4dea52a3bcf4e0ce9a27d2f1bcabf7b3677f1049..15df0ef04b7c9e13dd9ee48fc21e8ec740e4080f 100644 GIT binary patch literal 294697 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 z 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�GMX+{{}*J+iU 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 diff --git a/assets/icon/app_icon_background.png b/assets/icon/app_icon_background.png new file mode 100644 index 0000000000000000000000000000000000000000..7c4c1a6687c173b4cc952b7abc72b048c62488c8 GIT binary patch literal 148733 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оm|WLcA#soIIbP8XOTSqA5V#aFMJRQ#WJpJ2 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

B1aMd^YW4t9S5l!1s3n%MN0^ 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�ZTBsC+9BD`I#HL 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 HIz;{-88*!* literal 0 HcmV?d00001 diff --git a/assets/icon/app_icon_foreground.png b/assets/icon/app_icon_foreground.png index d9003993b1d53036900d345f461c8a9c9fc20404..15199f9c4452001be381da600acdb584c19ac03f 100644 GIT binary patch literal 39878 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

owUWxDj<%0k^Ry-nK3T1HW>uz0rCQtgOW(>5 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 literal 0 HcmV?d00001 diff --git a/devtools_options.yaml b/devtools_options.yaml new file mode 100644 index 0000000..fa0b357 --- /dev/null +++ b/devtools_options.yaml @@ -0,0 +1,3 @@ +description: This file stores settings for Dart & Flutter DevTools. +documentation: https://docs.flutter.dev/tools/devtools/extensions#configure-extension-enablement-states +extensions: diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 4c21634..f833847 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -382,7 +382,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = com.example.nextcloudClient; + PRODUCT_BUNDLE_IDENTIFIER = dev.ayushya.noo; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; @@ -398,7 +398,7 @@ CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = YES; MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.example.nextcloudClient.RunnerTests; + PRODUCT_BUNDLE_IDENTIFIER = dev.ayushya.noo.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -415,7 +415,7 @@ CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = YES; MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.example.nextcloudClient.RunnerTests; + PRODUCT_BUNDLE_IDENTIFIER = dev.ayushya.noo.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; @@ -430,7 +430,7 @@ CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = YES; MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.example.nextcloudClient.RunnerTests; + PRODUCT_BUNDLE_IDENTIFIER = dev.ayushya.noo.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; @@ -561,7 +561,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = com.example.nextcloudClient; + PRODUCT_BUNDLE_IDENTIFIER = dev.ayushya.noo; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -583,7 +583,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = com.example.nextcloudClient; + PRODUCT_BUNDLE_IDENTIFIER = dev.ayushya.noo; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist index 73a81c6..29e8c6b 100644 --- a/ios/Runner/Info.plist +++ b/ios/Runner/Info.plist @@ -7,7 +7,7 @@ CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleDisplayName - Nextcloud Client + Noo CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier @@ -15,7 +15,7 @@ CFBundleInfoDictionaryVersion 6.0 CFBundleName - nextcloud_client + noo CFBundlePackageType APPL CFBundleShortVersionString diff --git a/lib/main.dart b/lib/main.dart index 150e27a..aa5c59f 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,13 +1,12 @@ import 'package:dynamic_color/dynamic_color.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; +import 'models/app_tab.dart'; import 'providers/server_provider.dart'; import 'theme/app_theme.dart'; -import 'views/activity_view.dart'; -import 'views/files_view.dart'; import 'views/login_view.dart'; -import 'views/photos_view.dart'; import 'views/search_view.dart'; +import 'widgets/app_tab_view_builder.dart'; import 'widgets/floating_bottom_bar.dart'; void main() { @@ -41,6 +40,7 @@ class NextcloudApp extends StatelessWidget { provider.seedColor, dynamicScheme: darkDynamic, useDynamicColor: provider.useDynamicColor, + amoled: provider.amoledDark, ), themeMode: provider.themeMode, home: provider.isRestoringSession @@ -83,19 +83,24 @@ class MainShellView extends StatefulWidget { } class _MainShellViewState extends State { - int _currentIndex = 0; - - late final List _scrollControllers; + late AppTab _currentTab; + late final Map _scrollControllers; @override void initState() { super.initState(); - _scrollControllers = List.generate(3, (index) => ScrollController()); + _scrollControllers = { + for (final tab in AppTab.values) tab: ScrollController(), + }; + // Preferences load asynchronously, but in practice finish well before + // session restore (which also has to hit the network) does, so by the + // time this shell mounts `defaultTab` already reflects the saved value. + _currentTab = context.read().defaultTab; } @override void dispose() { - for (var c in _scrollControllers) { + for (final c in _scrollControllers.values) { c.dispose(); } super.dispose(); @@ -104,31 +109,39 @@ class _MainShellViewState extends State { @override Widget build(BuildContext context) { final provider = context.watch(); - final navItems = const [ - FloatingNavItem(label: 'Files', icon: Icons.folder_rounded), - FloatingNavItem(label: 'Photos', icon: Icons.photo_library_rounded), - FloatingNavItem(label: 'Activity', icon: Icons.history_rounded), - ]; + final visible = provider.visibleTabs; + final selectedTab = visible.contains(_currentTab) + ? _currentTab + : (visible.isNotEmpty ? visible.first : AppTab.files); + final selectedIndex = visible + .indexOf(selectedTab) + .clamp(0, visible.isEmpty ? 0 : visible.length - 1); + + final navItems = visible + .map((tab) => FloatingNavItem(label: tab.label, icon: tab.icon)) + .toList(); return Scaffold( body: Stack( children: [ IndexedStack( - index: _currentIndex, - children: [ - FilesView(scrollController: _scrollControllers[0]), - PhotosView(scrollController: _scrollControllers[1]), - ActivityView(scrollController: _scrollControllers[2]), - ], + index: selectedIndex, + children: visible + .map((tab) => buildAppTabView(tab, _scrollControllers[tab]!)) + .toList(), ), + // Each tab now renders its own sticky selection toolbar inline + // (right under its sort/filter row) instead of this shell + // swapping in a shared floating bar - the bottom nav stays put + // and usable regardless of selection state. FloatingBottomNavBar( - selectedIndex: _currentIndex, + selectedIndex: selectedIndex, items: navItems, opacity: provider.bottomBarOpacity, blurSigma: provider.bottomBarBlur, onDestinationSelected: (index) { setState(() { - _currentIndex = index; + _currentTab = visible[index]; }); }, onSearchTap: () { diff --git a/lib/models/app_tab.dart b/lib/models/app_tab.dart new file mode 100644 index 0000000..77c9f8e --- /dev/null +++ b/lib/models/app_tab.dart @@ -0,0 +1,47 @@ +import 'package:flutter/material.dart'; +import 'package:material_symbols_icons/symbols.dart'; + +/// Every destination the bottom nav bar can show. Order here is only the +/// fallback default — actual order/visibility/default-tab are user +/// configurable and persisted in [ServerProvider]. +enum AppTab { files, photos, activity, trash, shares, recent } + +/// At most this many tabs may be visible in the bottom nav bar at once — +/// the rest are reachable through the "more" dropdown instead. +const int maxVisibleTabs = 5; + +extension AppTabInfo on AppTab { + String get label { + switch (this) { + case AppTab.files: + return 'Files'; + case AppTab.photos: + return 'Photos'; + case AppTab.activity: + return 'Activity'; + case AppTab.trash: + return 'Trash'; + case AppTab.shares: + return 'Shares'; + case AppTab.recent: + return 'Recent'; + } + } + + IconData get icon { + switch (this) { + case AppTab.files: + return Icons.folder_rounded; + case AppTab.photos: + return Icons.photo_library_rounded; + case AppTab.activity: + return Icons.electric_bolt_rounded; + case AppTab.trash: + return Icons.delete_outline_rounded; + case AppTab.shares: + return Icons.groups_rounded; + case AppTab.recent: + return Symbols.search_activity_rounded; + } + } +} diff --git a/lib/models/nextcloud_file_version.dart b/lib/models/nextcloud_file_version.dart new file mode 100644 index 0000000..47cb749 --- /dev/null +++ b/lib/models/nextcloud_file_version.dart @@ -0,0 +1,16 @@ +/// One entry in a file's version history (Nextcloud's DAV versions API). +class NextcloudFileVersion { + /// The timestamp segment used in the DAV versions/restore URLs, e.g. + /// `1699999999`. + final String versionLabel; + final DateTime timestamp; + final int size; + final bool isCurrent; + + const NextcloudFileVersion({ + required this.versionLabel, + required this.timestamp, + required this.size, + this.isCurrent = false, + }); +} diff --git a/lib/models/nextcloud_item.dart b/lib/models/nextcloud_item.dart index 0fedcf0..a0f8ae8 100644 --- a/lib/models/nextcloud_item.dart +++ b/lib/models/nextcloud_item.dart @@ -18,6 +18,11 @@ class NextcloudItem { final int? imageHeight; final String? mountType; + /// Trash-bin items only: the folder path the item was deleted from, and + /// when it was deleted. Null for items fetched from a regular directory. + final String? originalLocation; + final DateTime? deletedAt; + const NextcloudItem({ required this.id, required this.name, @@ -33,6 +38,8 @@ class NextcloudItem { this.imageWidth, this.imageHeight, this.mountType, + this.originalLocation, + this.deletedAt, }) : dateCreated = dateCreated ?? lastModified; bool get isFolder => type == NextcloudItemType.folder; @@ -55,6 +62,8 @@ class NextcloudItem { int? imageWidth, int? imageHeight, String? mountType, + String? originalLocation, + DateTime? deletedAt, }) { return NextcloudItem( id: id ?? this.id, @@ -71,6 +80,8 @@ class NextcloudItem { imageWidth: imageWidth ?? this.imageWidth, imageHeight: imageHeight ?? this.imageHeight, mountType: mountType ?? this.mountType, + originalLocation: originalLocation ?? this.originalLocation, + deletedAt: deletedAt ?? this.deletedAt, ); } diff --git a/lib/models/nextcloud_share.dart b/lib/models/nextcloud_share.dart new file mode 100644 index 0000000..073fbde --- /dev/null +++ b/lib/models/nextcloud_share.dart @@ -0,0 +1,42 @@ +import 'nextcloud_item.dart'; + +enum ShareType { user, group, publicLink, email, federated, other } + +/// A Nextcloud OCS share — either something the current user has shared +/// with someone else, or something someone else has shared with them +/// (distinguished by [sharedWithMe]). +class NextcloudShare { + final String id; + final String path; + final String name; + final NextcloudItemType itemType; + final ShareType shareType; + final String ownerDisplayName; + final String? sharedWithDisplayName; + final DateTime sharedAt; + final bool sharedWithMe; + + /// Only set for public-link shares. + final String? url; + final int permissions; + final String? token; + final DateTime? expireDate; + + const NextcloudShare({ + required this.id, + required this.path, + required this.name, + required this.itemType, + required this.shareType, + required this.ownerDisplayName, + this.sharedWithDisplayName, + required this.sharedAt, + required this.sharedWithMe, + this.url, + this.permissions = 1, + this.token, + this.expireDate, + }); + + bool get isFolder => itemType == NextcloudItemType.folder; +} diff --git a/lib/models/nextcloud_sharee.dart b/lib/models/nextcloud_sharee.dart new file mode 100644 index 0000000..09058f0 --- /dev/null +++ b/lib/models/nextcloud_sharee.dart @@ -0,0 +1,30 @@ +/// One result from a sharee search (`/ocs/.../sharees`) — a user or team +/// (group) that a file/folder can be shared with. +enum ShareeType { user, group, remote } + +class NextcloudSharee { + final String shareWith; + final String label; + final ShareeType type; + final String? subtitle; + + const NextcloudSharee({ + required this.shareWith, + required this.label, + required this.type, + this.subtitle, + }); + + /// The numeric OCS `shareType` used when creating a share with this + /// sharee (0 = user, 1 = group, 6 = federated/remote). + int get shareTypeValue { + switch (type) { + case ShareeType.user: + return 0; + case ShareeType.group: + return 1; + case ShareeType.remote: + return 6; + } + } +} diff --git a/lib/models/selection_action.dart b/lib/models/selection_action.dart new file mode 100644 index 0000000..b07da88 --- /dev/null +++ b/lib/models/selection_action.dart @@ -0,0 +1,18 @@ +import 'package:flutter/material.dart'; + +/// One bulk action available for the current multi-selection (e.g. favorite, +/// download, delete), shown as an icon button in the sticky selection +/// toolbar each tab (Files, Photos, ...) renders inline in its own content. +class SelectionAction { + final IconData icon; + final String label; + final Color? color; + final VoidCallback onTap; + + const SelectionAction({ + required this.icon, + required this.label, + required this.onTap, + this.color, + }); +} diff --git a/lib/providers/server_provider.dart b/lib/providers/server_provider.dart index 4ed9a71..c7f21a9 100644 --- a/lib/providers/server_provider.dart +++ b/lib/providers/server_provider.dart @@ -1,9 +1,14 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import 'package:http/http.dart' as http; import 'package:shared_preferences/shared_preferences.dart'; import 'package:url_launcher/url_launcher.dart'; +import '../models/app_tab.dart'; +import '../models/nextcloud_file_version.dart'; import '../models/nextcloud_item.dart'; +import '../models/nextcloud_share.dart'; +import '../models/nextcloud_sharee.dart'; import '../services/login_flow_service.dart'; import '../services/nextcloud_service.dart'; import '../theme/app_theme.dart'; @@ -12,7 +17,44 @@ enum LoginFlowStatus { idle, initiating, awaitingBrowser, error } enum FileSortField { name, dateCreated, dateModified, size } -class ServerProvider extends ChangeNotifier { +/// Which storage a listing shows — always exactly one, like the list/grid +/// view toggle, not an optional filter. +enum StorageScope { cloud, external } + +/// What swiping a Files list-view item left/right does, user-configurable +/// in Settings. +enum SwipeAction { none, favorite, delete, share } + +/// How aggressively the Files tab's folder listings (not thumbnails/file +/// content - just the list of names/sizes/dates) are reused across +/// navigation instead of refetched from the server every time. +enum CachePolicy { + /// Every navigation refetches - today's behavior. + never, + + /// A listing is reused until it's older than [ServerProvider. + /// cacheIntervalMinutes]; a timer also proactively refreshes the current + /// folder on that same interval while the app is in the foreground. + interval, + + /// A listing is reused indefinitely until the user pulls to refresh. + manual, +} + +/// One cached folder listing and when it was fetched. +class _CachedDirectory { + final List items; + final DateTime fetchedAt; + + const _CachedDirectory(this.items, this.fetchedAt); +} + +/// The two linear progress indicator styles Material 3 offers for the video +/// player's seek bar: an animated travelling-wave line (matching Android's +/// current media player), or a plain flat classic bar. +enum MediaProgressBarStyle { wavy, classic } + +class ServerProvider extends ChangeNotifier with WidgetsBindingObserver { static const _storage = FlutterSecureStorage(); static const _keyServerUrl = 'nc_server_url'; static const _keyLoginName = 'nc_login_name'; @@ -25,11 +67,22 @@ class ServerProvider extends ChangeNotifier { static const _prefBottomBarOpacity = 'ui_bottom_bar_opacity'; static const _prefBottomBarBlur = 'ui_bottom_bar_blur'; static const _prefGridView = 'ui_grid_view'; - static const _prefShowFavoritesOnly = 'ui_show_favorites_only'; - static const _prefShowExternalOnly = 'ui_show_external_only'; - static const _prefShowHidden = 'ui_show_hidden'; + static const _prefShowFavoritesOnlyFiles = 'ui_show_favorites_only'; + static const _prefShowFavoritesOnlyPhotos = 'ui_show_favorites_only_photos'; + static const _prefStorageScope = 'ui_storage_scope'; + static const _prefShowHiddenFiles = 'ui_show_hidden'; + static const _prefShowHiddenPhotos = 'ui_show_hidden_photos'; static const _prefSortField = 'ui_sort_field'; static const _prefSortAscending = 'ui_sort_ascending'; + static const _prefTabOrder = 'ui_tab_order'; + static const _prefHiddenTabs = 'ui_hidden_tabs'; + static const _prefDefaultTab = 'ui_default_tab'; + static const _prefSwipeLeftAction = 'ui_swipe_left_action'; + static const _prefSwipeRightAction = 'ui_swipe_right_action'; + static const _prefAmoledDark = 'ui_amoled_dark'; + static const _prefMediaProgressBarStyle = 'ui_media_progress_bar_style'; + static const _prefCachePolicy = 'ui_cache_policy'; + static const _prefCacheIntervalMinutes = 'ui_cache_interval_minutes'; final Future _prefsFuture = SharedPreferences.getInstance(); @@ -52,6 +105,8 @@ class ServerProvider extends ChangeNotifier { Color _seedColor = AppTheme.defaultNextcloudBlue; ThemeMode _themeMode = ThemeMode.system; bool _useDynamicColor = true; + bool _amoledDark = false; + MediaProgressBarStyle _mediaProgressBarStyle = MediaProgressBarStyle.wavy; // UI settings double _bottomBarOpacity = 0.55; @@ -61,24 +116,86 @@ class ServerProvider extends ChangeNotifier { String _currentFolderPath = '/'; List _pathStack = ['/']; bool _isGridView = false; - bool _showFavoritesOnly = false; - bool _showExternalOnly = false; - bool _showHidden = false; + bool _showFavoritesOnlyFiles = false; + bool _showFavoritesOnlyPhotos = false; + StorageScope _storageScope = StorageScope.cloud; + bool _showHiddenFiles = false; + bool _showHiddenPhotos = false; FileSortField _sortField = FileSortField.name; bool _sortAscending = true; + // Bottom nav tab configuration + List _tabOrder = AppTab.values.toList(); + Set _hiddenTabs = {}; + AppTab _defaultTab = AppTab.files; + + // Files list-view swipe actions + SwipeAction _swipeLeftAction = SwipeAction.delete; + SwipeAction _swipeRightAction = SwipeAction.favorite; + + // Folder-listing cache: keyed by folder path, holds nothing but the item + // list itself (no thumbnails/content) plus when it was fetched. + CachePolicy _cachePolicy = CachePolicy.never; + int _cacheIntervalMinutes = 5; + final Map _directoryCache = {}; + Timer? _cacheRefreshTimer; + // Data state List _items = []; NextcloudUserQuota? _quota; List _activities = []; + // All-account media (the Photos tab) — fetched separately from [_items] + // since it spans every folder, not just the currently browsed one. + List _allMedia = []; + bool _isMediaLoading = false; + String? _mediaErrorMessage; + + // Trash state — kept separate from the regular folder-loading/error state + // above so a trash-fetch failure can't bleed a stale error into Files. + List _trashItems = []; + bool _isTrashLoading = false; + String? _trashErrorMessage; + + // Shares state — likewise kept separate. + List _shares = []; + bool _isSharesLoading = false; + String? _sharesErrorMessage; + bool _sharesWithMe = false; + + // Recent-files state — likewise kept separate. + List _recentItems = []; + bool _isRecentLoading = false; + String? _recentErrorMessage; + NextcloudService? _service; ServerProvider() { + WidgetsBinding.instance.addObserver(this); _restoreSession(); _loadPreferences(); } + /// Starts/stops the periodic folder-listing refresh as the app leaves and + /// returns to the foreground - only relevant under [CachePolicy.interval]. + @override + void didChangeAppLifecycleState(AppLifecycleState state) { + if (state == AppLifecycleState.resumed) { + _startCacheRefreshTimerIfNeeded(); + } else if (state == AppLifecycleState.paused) { + _cacheRefreshTimer?.cancel(); + } + } + + void _startCacheRefreshTimerIfNeeded() { + _cacheRefreshTimer?.cancel(); + if (_cachePolicy != CachePolicy.interval || !_isLoggedIn) return; + _cacheRefreshTimer = Timer.periodic( + Duration(minutes: _cacheIntervalMinutes), + (_) => refreshData(), + ); + } + // Getters String get serverUrl => _serverUrl; String get username => _username; @@ -93,63 +210,135 @@ class ServerProvider extends ChangeNotifier { Color get seedColor => _seedColor; ThemeMode get themeMode => _themeMode; bool get useDynamicColor => _useDynamicColor; + bool get amoledDark => _amoledDark; + MediaProgressBarStyle get mediaProgressBarStyle => _mediaProgressBarStyle; double get bottomBarOpacity => _bottomBarOpacity; double get bottomBarBlur => _bottomBarBlur; String get currentFolderPath => _currentFolderPath; List get pathStack => _pathStack; bool get isGridView => _isGridView; - bool get showFavoritesOnly => _showFavoritesOnly; - bool get showExternalOnly => _showExternalOnly; - bool get showHidden => _showHidden; + bool get showFavoritesOnlyFiles => _showFavoritesOnlyFiles; + bool get showFavoritesOnlyPhotos => _showFavoritesOnlyPhotos; + StorageScope get storageScope => _storageScope; + bool get showHiddenFiles => _showHiddenFiles; + bool get showHiddenPhotos => _showHiddenPhotos; FileSortField get sortField => _sortField; bool get sortAscending => _sortAscending; + CachePolicy get cachePolicy => _cachePolicy; + int get cacheIntervalMinutes => _cacheIntervalMinutes; + + /// Every tab in the user's configured order, including hidden ones — used + /// by the reorder/visibility settings UI. + List get tabOrder => _tabOrder; + Set get hiddenTabs => _hiddenTabs; + AppTab get defaultTab => _defaultTab; + + /// The tabs the bottom nav bar should actually show, in order. + List get visibleTabs => + _tabOrder.where((t) => !_hiddenTabs.contains(t)).toList(); + + SwipeAction get swipeLeftAction => _swipeLeftAction; + SwipeAction get swipeRightAction => _swipeRightAction; /// Exposes the active service so views can build file URLs, auth headers, /// and trigger downloads/previews directly. NextcloudService? get service => _service; - List get items { - var filtered = _items; - if (_showFavoritesOnly) { + int _compareItems(NextcloudItem a, NextcloudItem b) { + switch (_sortField) { + case FileSortField.name: + return a.name.toLowerCase().compareTo(b.name.toLowerCase()); + case FileSortField.dateCreated: + return a.dateCreated.compareTo(b.dateCreated); + case FileSortField.dateModified: + return a.lastModified.compareTo(b.lastModified); + case FileSortField.size: + return a.size.compareTo(b.size); + } + } + + /// True if [item] or any ancestor folder in its path is a dotfile/dotfolder. + bool _isHiddenItem(NextcloudItem item) { + return item.path + .split('/') + .where((segment) => segment.isNotEmpty) + .any((segment) => segment.startsWith('.')); + } + + /// Applies the shared favorites-only/hidden-files/storage-scope toggles, + /// used by both [items] and [photoItems]. `showFavoritesOnly`/`showHidden` + /// are passed in separately since Files and Photos each have their own + /// independent favorites-only and hidden-files toggles. + List _applyCommonFilters( + List source, { + required bool showFavoritesOnly, + required bool showHidden, + }) { + var filtered = source; + if (showFavoritesOnly) { filtered = filtered.where((item) => item.isFavorite).toList(); } - if (_showExternalOnly) { - filtered = filtered.where((item) => item.isExternalStorage).toList(); - } - if (!_showHidden) { - filtered = filtered.where((item) => !item.name.startsWith('.')).toList(); + if (!showHidden) { + filtered = filtered.where((item) => !_isHiddenItem(item)).toList(); } + filtered = filtered + .where( + (item) => _storageScope == StorageScope.external + ? item.isExternalStorage + : !item.isExternalStorage, + ) + .toList(); + return filtered; + } - int compare(NextcloudItem a, NextcloudItem b) { - switch (_sortField) { - case FileSortField.name: - return a.name.toLowerCase().compareTo(b.name.toLowerCase()); - case FileSortField.dateCreated: - return a.dateCreated.compareTo(b.dateCreated); - case FileSortField.dateModified: - return a.lastModified.compareTo(b.lastModified); - case FileSortField.size: - return a.size.compareTo(b.size); - } - } + List get items { + final filtered = _applyCommonFilters( + _items, + showFavoritesOnly: _showFavoritesOnlyFiles, + showHidden: _showHiddenFiles, + ); - final folders = filtered.where((i) => i.isFolder).toList()..sort(compare); - final files = filtered.where((i) => !i.isFolder).toList()..sort(compare); + final folders = filtered.where((i) => i.isFolder).toList() + ..sort(_compareItems); + final files = filtered.where((i) => !i.isFolder).toList() + ..sort(_compareItems); return _sortAscending ? [...folders, ...files] : [...folders.reversed, ...files.reversed]; } + /// All images/videos across the whole account (not just the currently + /// browsed folder) — see [fetchAllMedia]. List get photoItems { - return _items - .where((i) => i.isMedia || i.type == NextcloudItemType.image) - .toList(); + final media = _allMedia.where((i) => i.isMedia).toList(); + final filtered = _applyCommonFilters( + media, + showFavoritesOnly: _showFavoritesOnlyPhotos, + showHidden: _showHiddenPhotos, + )..sort(_compareItems); + return _sortAscending ? filtered : filtered.reversed.toList(); } + bool get isMediaLoading => _isMediaLoading; + String? get mediaErrorMessage => _mediaErrorMessage; + NextcloudUserQuota? get quota => _quota; List get activities => _activities; + List get trashItems => _trashItems; + bool get isTrashLoading => _isTrashLoading; + String? get trashErrorMessage => _trashErrorMessage; + + List get shares => _shares; + bool get isSharesLoading => _isSharesLoading; + String? get sharesErrorMessage => _sharesErrorMessage; + bool get sharesWithMe => _sharesWithMe; + + List get recentItems => _recentItems; + bool get isRecentLoading => _isRecentLoading; + String? get recentErrorMessage => _recentErrorMessage; + Future _restoreSession() async { try { final server = await _storage.read(key: _keyServerUrl); @@ -180,17 +369,36 @@ class ServerProvider extends ChangeNotifier { } _useDynamicColor = prefs.getBool(_prefUseDynamicColor) ?? _useDynamicColor; + _amoledDark = prefs.getBool(_prefAmoledDark) ?? _amoledDark; + final progressBarStyleName = prefs.getString(_prefMediaProgressBarStyle); + if (progressBarStyleName != null) { + _mediaProgressBarStyle = MediaProgressBarStyle.values.firstWhere( + (s) => s.name == progressBarStyleName, + orElse: () => _mediaProgressBarStyle, + ); + } final seedColorValue = prefs.getInt(_prefSeedColor); if (seedColorValue != null) _seedColor = Color(seedColorValue); _bottomBarOpacity = prefs.getDouble(_prefBottomBarOpacity) ?? _bottomBarOpacity; _bottomBarBlur = prefs.getDouble(_prefBottomBarBlur) ?? _bottomBarBlur; _isGridView = prefs.getBool(_prefGridView) ?? _isGridView; - _showFavoritesOnly = - prefs.getBool(_prefShowFavoritesOnly) ?? _showFavoritesOnly; - _showExternalOnly = - prefs.getBool(_prefShowExternalOnly) ?? _showExternalOnly; - _showHidden = prefs.getBool(_prefShowHidden) ?? _showHidden; + _showFavoritesOnlyFiles = + prefs.getBool(_prefShowFavoritesOnlyFiles) ?? _showFavoritesOnlyFiles; + _showFavoritesOnlyPhotos = + prefs.getBool(_prefShowFavoritesOnlyPhotos) ?? + _showFavoritesOnlyPhotos; + final storageScopeName = prefs.getString(_prefStorageScope); + if (storageScopeName != null) { + _storageScope = StorageScope.values.firstWhere( + (s) => s.name == storageScopeName, + orElse: () => StorageScope.cloud, + ); + } + _showHiddenFiles = + prefs.getBool(_prefShowHiddenFiles) ?? _showHiddenFiles; + _showHiddenPhotos = + prefs.getBool(_prefShowHiddenPhotos) ?? _showHiddenPhotos; final sortFieldName = prefs.getString(_prefSortField); if (sortFieldName != null) { _sortField = FileSortField.values.firstWhere( @@ -200,6 +408,75 @@ class ServerProvider extends ChangeNotifier { } _sortAscending = prefs.getBool(_prefSortAscending) ?? _sortAscending; + final savedOrderNames = prefs.getStringList(_prefTabOrder); + if (savedOrderNames != null) { + final order = []; + for (final name in savedOrderNames) { + final match = AppTab.values.where((t) => t.name == name).firstOrNull; + if (match != null) order.add(match); + } + // Forward-compat: a tab added in a later app update won't be in an + // older saved order yet, so append anything missing. + for (final tab in AppTab.values) { + if (!order.contains(tab)) order.add(tab); + } + _tabOrder = order; + } + + final savedHiddenNames = prefs.getStringList(_prefHiddenTabs); + if (savedHiddenNames != null) { + _hiddenTabs = savedHiddenNames + .map( + (name) => AppTab.values.where((t) => t.name == name).firstOrNull, + ) + .whereType() + .toSet(); + // Never let every tab end up hidden. + if (_hiddenTabs.length >= AppTab.values.length) { + _hiddenTabs = {}; + } + } + + final savedDefaultName = prefs.getString(_prefDefaultTab); + if (savedDefaultName != null) { + final match = AppTab.values + .where((t) => t.name == savedDefaultName) + .firstOrNull; + if (match != null) _defaultTab = match; + } + if (_hiddenTabs.contains(_defaultTab)) { + _defaultTab = _tabOrder.firstWhere( + (t) => !_hiddenTabs.contains(t), + orElse: () => _tabOrder.first, + ); + } + _enforceMaxVisibleTabs(); + + final swipeLeftName = prefs.getString(_prefSwipeLeftAction); + if (swipeLeftName != null) { + _swipeLeftAction = SwipeAction.values.firstWhere( + (a) => a.name == swipeLeftName, + orElse: () => _swipeLeftAction, + ); + } + final swipeRightName = prefs.getString(_prefSwipeRightAction); + if (swipeRightName != null) { + _swipeRightAction = SwipeAction.values.firstWhere( + (a) => a.name == swipeRightName, + orElse: () => _swipeRightAction, + ); + } + final cachePolicyName = prefs.getString(_prefCachePolicy); + if (cachePolicyName != null) { + _cachePolicy = CachePolicy.values.firstWhere( + (c) => c.name == cachePolicyName, + orElse: () => _cachePolicy, + ); + } + _cacheIntervalMinutes = + prefs.getInt(_prefCacheIntervalMinutes) ?? _cacheIntervalMinutes; + _startCacheRefreshTimerIfNeeded(); + notifyListeners(); } catch (e) { debugPrint('[ServerProvider] Preference restore failed: $e'); @@ -251,6 +528,7 @@ class ServerProvider extends ChangeNotifier { if (persist) { await _persistCredentials(_serverUrl, _username, _password); } + _startCacheRefreshTimerIfNeeded(); await refreshData(); _isLoading = false; notifyListeners(); @@ -284,9 +562,17 @@ class ServerProvider extends ChangeNotifier { final init = await LoginFlowService.initiate(serverUrl); _pendingLoginUrl = init.loginUrl; + // Chrome Custom Tabs (inAppBrowserView): real Chrome, so the saved + // passwords/autofill service works normally, unlike Flutter's own + // embedded web view. The tradeoff is that - like Login Flow v2's + // grant page itself, which never redirects back into the app on its + // own (unlike the old nc:// Flow v1) - a Custom Tab belongs to + // Chrome's own task, not ours, so we have no way to close it + // automatically once polling below detects success; the user has to + // switch back manually, same as with the external browser. final opened = await launchUrl( init.loginUrl, - mode: LaunchMode.externalApplication, + mode: LaunchMode.inAppBrowserView, ); if (!opened) { throw Exception('Could not open the browser for login.'); @@ -321,6 +607,14 @@ class ServerProvider extends ChangeNotifier { result.appPassword, ); } + } on http.ClientException catch (e) { + // A single dropped connection (e.g. the network briefly + // reconfiguring right as the login browser opens) used to abort + // the whole flow, forcing the user to start over even though + // they'd already granted access - just skip this tick and let + // the next scheduled poll (2s later) try again. The 10-minute + // timeout above is still the real ceiling. + debugPrint('[ServerProvider] Poll network hiccup, retrying: $e'); } catch (e) { timer.cancel(); _pollTimeoutTimer?.cancel(); @@ -338,7 +632,7 @@ class ServerProvider extends ChangeNotifier { Future reopenLoginBrowser() async { if (_pendingLoginUrl != null) { - await launchUrl(_pendingLoginUrl!, mode: LaunchMode.externalApplication); + await launchUrl(_pendingLoginUrl!, mode: LaunchMode.inAppBrowserView); } } @@ -361,7 +655,13 @@ class ServerProvider extends ChangeNotifier { _items = []; _quota = null; _activities = []; + _allMedia = []; + _trashItems = []; + _shares = []; + _recentItems = []; _service = null; + _directoryCache.clear(); + _cacheRefreshTimer?.cancel(); await _clearPersistedCredentials(); notifyListeners(); } @@ -384,6 +684,10 @@ class ServerProvider extends ChangeNotifier { try { _items = await _service!.fetchDirectory(_currentFolderPath); + _directoryCache[_currentFolderPath] = _CachedDirectory( + _items, + DateTime.now(), + ); debugPrint( '[ServerProvider] Loaded ${_items.length} items for $_currentFolderPath', ); @@ -417,17 +721,35 @@ class ServerProvider extends ChangeNotifier { return _service!.searchFiles(query); } + /// Loads every image/video across the whole account for the Photos tab. + Future fetchAllMedia() async { + if (!_isLoggedIn || _service == null) return; + + _isMediaLoading = true; + _mediaErrorMessage = null; + notifyListeners(); + + try { + _allMedia = await _service!.fetchAllMedia(); + debugPrint('[ServerProvider] Loaded ${_allMedia.length} media items'); + } catch (e) { + debugPrint('[ServerProvider] Error fetching all media: $e'); + _mediaErrorMessage = e.toString().replaceAll('Exception: ', ''); + } finally { + _isMediaLoading = false; + notifyListeners(); + } + } + Future navigateToFolder(String path) async { - _currentFolderPath = path; _pathStack.add(path); - await refreshData(); + await _navigateTo(path); } Future navigateUp() async { if (_pathStack.length > 1) { _pathStack.removeLast(); - _currentFolderPath = _pathStack.last; - await refreshData(); + await _navigateTo(_pathStack.last); } } @@ -436,7 +758,35 @@ class ServerProvider extends ChangeNotifier { Future navigateToPathIndex(int index) async { if (index < 0 || index >= _pathStack.length - 1) return; _pathStack = _pathStack.sublist(0, index + 1); - _currentFolderPath = _pathStack.last; + await _navigateTo(_pathStack.last); + } + + /// True if [path]'s cached listing (if any) is still usable under the + /// current [CachePolicy] - never for [CachePolicy.never], indefinitely + /// for [CachePolicy.manual], and until it's older than + /// [cacheIntervalMinutes] for [CachePolicy.interval]. + bool _isCacheFresh(String path) { + if (_cachePolicy == CachePolicy.never) return false; + final cached = _directoryCache[path]; + if (cached == null) return false; + if (_cachePolicy == CachePolicy.manual) return true; + return DateTime.now().difference(cached.fetchedAt) < + Duration(minutes: _cacheIntervalMinutes); + } + + /// Switches the current folder to [path], serving its listing straight + /// from the cache when that's still fresh (instant, no network call at + /// all) and only falling back to [refreshData] otherwise. + Future _navigateTo(String path) async { + _currentFolderPath = path; + final cached = _directoryCache[path]; + if (cached != null && _isCacheFresh(path)) { + debugPrint('[ServerProvider] Serving cached listing for $path'); + _items = cached.items; + _errorMessage = null; + notifyListeners(); + return; + } await refreshData(); } @@ -447,26 +797,41 @@ class ServerProvider extends ChangeNotifier { _prefsFuture.then((p) => p.setBool(_prefGridView, value)); } - void toggleFavoritesFilter() { - _showFavoritesOnly = !_showFavoritesOnly; + void toggleFavoritesFilterFiles() { + _showFavoritesOnlyFiles = !_showFavoritesOnlyFiles; notifyListeners(); _prefsFuture.then( - (p) => p.setBool(_prefShowFavoritesOnly, _showFavoritesOnly), + (p) => p.setBool(_prefShowFavoritesOnlyFiles, _showFavoritesOnlyFiles), ); } - void toggleExternalStorageFilter() { - _showExternalOnly = !_showExternalOnly; + void toggleFavoritesFilterPhotos() { + _showFavoritesOnlyPhotos = !_showFavoritesOnlyPhotos; notifyListeners(); _prefsFuture.then( - (p) => p.setBool(_prefShowExternalOnly, _showExternalOnly), + (p) => p.setBool(_prefShowFavoritesOnlyPhotos, _showFavoritesOnlyPhotos), ); } - void toggleShowHidden() { - _showHidden = !_showHidden; + void setStorageScope(StorageScope scope) { + if (_storageScope == scope) return; + _storageScope = scope; notifyListeners(); - _prefsFuture.then((p) => p.setBool(_prefShowHidden, _showHidden)); + _prefsFuture.then((p) => p.setString(_prefStorageScope, scope.name)); + } + + void toggleShowHiddenFiles() { + _showHiddenFiles = !_showHiddenFiles; + notifyListeners(); + _prefsFuture.then((p) => p.setBool(_prefShowHiddenFiles, _showHiddenFiles)); + } + + void toggleShowHiddenPhotos() { + _showHiddenPhotos = !_showHiddenPhotos; + notifyListeners(); + _prefsFuture.then( + (p) => p.setBool(_prefShowHiddenPhotos, _showHiddenPhotos), + ); } void setSortField(FileSortField field) { @@ -482,6 +847,101 @@ class ServerProvider extends ChangeNotifier { _prefsFuture.then((p) => p.setBool(_prefSortAscending, _sortAscending)); } + void setTabOrder(List order) { + _tabOrder = order; + notifyListeners(); + _prefsFuture.then( + (p) => p.setStringList(_prefTabOrder, order.map((t) => t.name).toList()), + ); + } + + /// Shows or hides a tab in the bottom nav bar. Refuses to hide the last + /// remaining visible tab. If the tab being hidden is the current default, + /// the default falls back to the next visible tab. + /// Returns null on success, or a user-facing reason the change was + /// refused (hiding the last visible tab, or showing a 6th). + String? setTabHidden(AppTab tab, bool hidden) { + if (hidden) { + final remaining = _tabOrder + .where((t) => t != tab && !_hiddenTabs.contains(t)) + .length; + if (remaining == 0) return 'At least one tab must stay visible'; + _hiddenTabs = {..._hiddenTabs, tab}; + if (_defaultTab == tab) { + _defaultTab = _tabOrder.firstWhere((t) => !_hiddenTabs.contains(t)); + _prefsFuture.then( + (p) => p.setString(_prefDefaultTab, _defaultTab.name), + ); + } + } else { + final currentlyVisible = _tabOrder + .where((t) => !_hiddenTabs.contains(t)) + .length; + if (currentlyVisible >= maxVisibleTabs) { + return 'You can only show up to $maxVisibleTabs tabs at once'; + } + _hiddenTabs = {..._hiddenTabs}..remove(tab); + } + notifyListeners(); + _prefsFuture.then( + (p) => p.setStringList( + _prefHiddenTabs, + _hiddenTabs.map((t) => t.name).toList(), + ), + ); + return null; + } + + /// If more than [maxVisibleTabs] end up visible (e.g. a fresh install, or + /// an existing saved config from before a new tab was added to the app), + /// hide the overflow automatically rather than exceeding the cap. + void _enforceMaxVisibleTabs() { + final visible = _tabOrder.where((t) => !_hiddenTabs.contains(t)).toList(); + if (visible.length <= maxVisibleTabs) return; + _hiddenTabs = {..._hiddenTabs, ...visible.sublist(maxVisibleTabs)}; + if (_hiddenTabs.contains(_defaultTab)) { + _defaultTab = _tabOrder.firstWhere((t) => !_hiddenTabs.contains(t)); + } + } + + void setDefaultTab(AppTab tab) { + if (_hiddenTabs.contains(tab) || _defaultTab == tab) return; + _defaultTab = tab; + notifyListeners(); + _prefsFuture.then((p) => p.setString(_prefDefaultTab, tab.name)); + } + + void setSwipeLeftAction(SwipeAction action) { + if (_swipeLeftAction == action) return; + _swipeLeftAction = action; + notifyListeners(); + _prefsFuture.then((p) => p.setString(_prefSwipeLeftAction, action.name)); + } + + void setSwipeRightAction(SwipeAction action) { + if (_swipeRightAction == action) return; + _swipeRightAction = action; + notifyListeners(); + _prefsFuture.then((p) => p.setString(_prefSwipeRightAction, action.name)); + } + + void setCachePolicy(CachePolicy policy) { + if (_cachePolicy == policy) return; + _cachePolicy = policy; + notifyListeners(); + _prefsFuture.then((p) => p.setString(_prefCachePolicy, policy.name)); + _startCacheRefreshTimerIfNeeded(); + } + + void setCacheIntervalMinutes(int minutes) { + final clamped = minutes.clamp(1, 60); + if (_cacheIntervalMinutes == clamped) return; + _cacheIntervalMinutes = clamped; + notifyListeners(); + _prefsFuture.then((p) => p.setInt(_prefCacheIntervalMinutes, clamped)); + _startCacheRefreshTimerIfNeeded(); + } + Future uploadFileFromPath( String name, String localFilePath, { @@ -504,11 +964,107 @@ class ServerProvider extends ChangeNotifier { if (_service == null) return false; final success = await _service!.deleteItem(itemPath); if (success) { + _allMedia = _allMedia.where((i) => i.path != itemPath).toList(); await refreshData(); } return success; } + Future fetchTrash() async { + if (!_isLoggedIn || _service == null) return; + + _isTrashLoading = true; + _trashErrorMessage = null; + notifyListeners(); + + try { + _trashItems = await _service!.fetchTrash(); + } catch (e) { + debugPrint('[ServerProvider] Error fetching trash: $e'); + _trashErrorMessage = e.toString().replaceAll('Exception: ', ''); + } finally { + _isTrashLoading = false; + notifyListeners(); + } + } + + /// Restores a trashed item (identified by [NextcloudItem.path], the + /// trash-relative name) back to where it was deleted from. + Future restoreTrashItem(NextcloudItem item) async { + if (_service == null) return false; + final success = await _service!.restoreTrashItem(item.path); + if (success) { + _trashItems = _trashItems.where((i) => i.id != item.id).toList(); + notifyListeners(); + } + return success; + } + + /// Permanently deletes a trashed item. Cannot be undone. + Future deleteTrashItemForever(NextcloudItem item) async { + if (_service == null) return false; + final success = await _service!.deleteTrashItemForever(item.path); + if (success) { + _trashItems = _trashItems.where((i) => i.id != item.id).toList(); + notifyListeners(); + } + return success; + } + + Future fetchShares() async { + if (!_isLoggedIn || _service == null) return; + + _isSharesLoading = true; + _sharesErrorMessage = null; + notifyListeners(); + + try { + _shares = await _service!.fetchShares(sharedWithMe: _sharesWithMe); + } catch (e) { + debugPrint('[ServerProvider] Error fetching shares: $e'); + _sharesErrorMessage = e.toString().replaceAll('Exception: ', ''); + } finally { + _isSharesLoading = false; + notifyListeners(); + } + } + + /// Switches between "shared by me" and "shared with me" and refetches. + void setSharesWithMe(bool value) { + if (_sharesWithMe == value) return; + _sharesWithMe = value; + notifyListeners(); + fetchShares(); + } + + Future deleteShare(NextcloudShare share) async { + if (_service == null) return false; + final success = await _service!.deleteShare(share.id); + if (success) { + _shares = _shares.where((s) => s.id != share.id).toList(); + notifyListeners(); + } + return success; + } + + Future fetchRecent() async { + if (!_isLoggedIn || _service == null) return; + + _isRecentLoading = true; + _recentErrorMessage = null; + notifyListeners(); + + try { + _recentItems = await _service!.fetchRecentFiles(); + } catch (e) { + debugPrint('[ServerProvider] Error fetching recent files: $e'); + _recentErrorMessage = e.toString().replaceAll('Exception: ', ''); + } finally { + _isRecentLoading = false; + notifyListeners(); + } + } + Future createFolder(String folderName) async { if (_service == null) return false; final success = await _service!.createFolder( @@ -525,11 +1081,119 @@ class ServerProvider extends ChangeNotifier { if (_service == null) return; final success = await _service!.toggleFavorite(item.path, item.isFavorite); if (success) { + final updated = item.copyWith(isFavorite: !item.isFavorite); final index = _items.indexWhere((i) => i.id == item.id); - if (index != -1) { - _items[index] = item.copyWith(isFavorite: !item.isFavorite); - notifyListeners(); - } + if (index != -1) _items[index] = updated; + final mediaIndex = _allMedia.indexWhere((i) => i.id == item.id); + if (mediaIndex != -1) _allMedia[mediaIndex] = updated; + notifyListeners(); + } + } + + /// Creates a public link share for [item] and returns its URL, or null on + /// failure (server error, unsupported item, etc). + Future createShareLink(NextcloudItem item) async { + if (_service == null) return null; + try { + return await _service!.createPublicShareLink(item.path); + } catch (e) { + debugPrint('[ServerProvider] createShareLink failed: $e'); + return null; + } + } + + // --- Details sheet: per-item sharing/activity/versions --- + // + // These are thin pass-throughs (no stored state, no notifyListeners) - + // unlike the flat account-wide lists above (`_shares`, `_trashItems`, + // ...), the data here is transient and scoped to whichever item's + // Details sheet happens to be open, so it lives in that sheet's own + // local widget state rather than bloating this provider. + + Future> fetchItemShares(NextcloudItem item) async { + if (_service == null) return []; + try { + return await _service!.fetchSharesForPath(item.path); + } catch (e) { + debugPrint('[ServerProvider] fetchItemShares failed: $e'); + return []; + } + } + + Future> fetchInheritedShares(NextcloudItem item) async { + if (_service == null) return []; + return _service!.fetchInheritedShares(item.path); + } + + Future> searchSharees(String query) async { + if (_service == null) return []; + try { + return await _service!.searchSharees(query); + } catch (e) { + debugPrint('[ServerProvider] searchSharees failed: $e'); + return []; + } + } + + Future createShare({ + required String path, + required int shareType, + String? shareWith, + String? password, + DateTime? expireDate, + }) async { + if (_service == null) return null; + try { + return await _service!.createShare( + path: path, + shareType: shareType, + shareWith: shareWith, + password: password, + expireDate: expireDate, + ); + } catch (e) { + debugPrint('[ServerProvider] createShare failed: $e'); + return null; + } + } + + Future> fetchFileActivity(NextcloudItem item) async { + if (_service == null) return []; + return _service!.fetchFileActivity(item.id); + } + + Future> fetchFileVersions( + NextcloudItem item, + ) async { + if (_service == null) return []; + return _service!.fetchFileVersions(item.id); + } + + Future restoreFileVersion( + NextcloudItem item, + String versionLabel, + ) async { + if (_service == null) return false; + try { + return await _service!.restoreFileVersion(item.id, versionLabel); + } catch (e) { + debugPrint('[ServerProvider] restoreFileVersion failed: $e'); + return false; + } + } + + Future downloadVersion( + NextcloudItem item, + String versionLabel, + String savePath, + ) async { + if (_service == null) return false; + try { + await _service!.downloadVersionToFile(item.id, versionLabel, savePath); + return true; + } catch (e) { + debugPrint('[ServerProvider] downloadVersion failed: $e'); + return false; } } @@ -549,6 +1213,20 @@ class ServerProvider extends ChangeNotifier { _prefsFuture.then((p) => p.setBool(_prefUseDynamicColor, value)); } + void setAmoledDark(bool value) { + _amoledDark = value; + notifyListeners(); + _prefsFuture.then((p) => p.setBool(_prefAmoledDark, value)); + } + + void setMediaProgressBarStyle(MediaProgressBarStyle style) { + _mediaProgressBarStyle = style; + notifyListeners(); + _prefsFuture.then( + (p) => p.setString(_prefMediaProgressBarStyle, style.name), + ); + } + void setBottomBarOpacity(double value) { _bottomBarOpacity = value; notifyListeners(); @@ -569,8 +1247,10 @@ class ServerProvider extends ChangeNotifier { @override void dispose() { + WidgetsBinding.instance.removeObserver(this); _pollTimer?.cancel(); _pollTimeoutTimer?.cancel(); + _cacheRefreshTimer?.cancel(); super.dispose(); } } diff --git a/lib/services/login_flow_service.dart b/lib/services/login_flow_service.dart index 0c2dc1a..f9e970d 100644 --- a/lib/services/login_flow_service.dart +++ b/lib/services/login_flow_service.dart @@ -32,7 +32,7 @@ class LoginFlowResult { /// back a scoped app password. /// https://docs.nextcloud.com/server/latest/developer_manual/client_apis/LoginFlow/index.html#login-flow-v2 class LoginFlowService { - static const _userAgent = 'Nextcloud-Flutter-Client/1.0'; + static const _userAgent = 'Noo/1.0'; static String normalizeServerUrl(String input) { var url = input.trim(); diff --git a/lib/services/nextcloud_service.dart b/lib/services/nextcloud_service.dart index 0165458..dcd18b0 100644 --- a/lib/services/nextcloud_service.dart +++ b/lib/services/nextcloud_service.dart @@ -4,7 +4,10 @@ import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; import 'package:http/http.dart' as http; import 'package:xml/xml.dart' as xml; +import '../models/nextcloud_file_version.dart'; import '../models/nextcloud_item.dart'; +import '../models/nextcloud_share.dart'; +import '../models/nextcloud_sharee.dart'; extension XmlElementHelper on xml.XmlNode { Iterable findLocalChildren(String localName) { @@ -80,7 +83,7 @@ class NextcloudService { 'Authorization': 'Basic $credentials', 'OCS-APIRequest': 'true', 'Accept': 'application/json, application/xml', - 'User-Agent': 'Nextcloud-Flutter-Client/1.0', + 'User-Agent': 'Noo/1.0', }; } @@ -523,6 +526,332 @@ class NextcloudService { return results; } + /// Finds every image/video anywhere in the account (not just the current + /// folder) via the same WebDAV SEARCH-REPORT mechanism Nextcloud's own + /// Files app uses for its "Photos" filter, so the Photos tab can show a + /// true all-folders library instead of just the currently browsed folder. + Future> fetchAllMedia() async { + final url = '$_cleanServerUrl/remote.php/dav/'; + debugPrint('[Nextcloud DAV] SEARCH for all media from $url'); + + final body = + ''' + + + + + + + + + + + + + + + + + + /files/$username + infinity + + + + + + + image/% + + + + video/% + + + + + + + + + + + 2000 + + +'''; + + final request = http.Request('SEARCH', Uri.parse(url)) + ..headers.addAll({..._headers, 'Content-Type': 'text/xml'}) + ..body = body; + + final streamed = await http.Client().send(request); + final responseBody = await streamed.stream.bytesToString(); + debugPrint( + '[Nextcloud DAV] All-media SEARCH status: ${streamed.statusCode}, bytes: ${responseBody.length}', + ); + + if (streamed.statusCode != 207 && streamed.statusCode != 200) { + throw Exception('Failed to load media. HTTP ${streamed.statusCode}'); + } + + final document = xml.XmlDocument.parse(responseBody); + final responses = document.findLocalDescendants('response'); + + final results = []; + for (var res in responses) { + final hrefNode = + res.findLocalChildren('href').firstOrNull ?? + res.findLocalDescendants('href').firstOrNull; + final href = hrefNode?.innerText ?? ''; + if (href.isEmpty) continue; + + final props = res.findLocalDescendants('prop'); + if (props.isEmpty) continue; + + String? sizeStr; + String? lastModStr; + String? createdStr; + String? mimeType; + bool isFav = false; + String? fileId; + String? mountType; + + for (var prop in props) { + sizeStr ??= prop + .findLocalChildren('getcontentlength') + .firstOrNull + ?.innerText; + lastModStr ??= prop + .findLocalChildren('getlastmodified') + .firstOrNull + ?.innerText; + createdStr ??= prop + .findLocalChildren('creationdate') + .firstOrNull + ?.innerText; + mimeType ??= prop + .findLocalChildren('getcontenttype') + .firstOrNull + ?.innerText; + if (!isFav) { + isFav = + prop.findLocalChildren('favorite').firstOrNull?.innerText == '1'; + } + fileId ??= prop.findLocalChildren('fileid').firstOrNull?.innerText; + mountType ??= prop + .findLocalChildren('mount-type') + .firstOrNull + ?.innerText; + } + + var decodedHref = Uri.decodeFull(href); + if (decodedHref.endsWith('/') && decodedHref.length > 1) { + decodedHref = decodedHref.substring(0, decodedHref.length - 1); + } + final name = decodedHref.split('/').where((s) => s.isNotEmpty).last; + if (name.isEmpty) continue; + + // Strip the DAV root prefix so `path` matches what fetchDirectory produces. + final marker = '/files/$username'; + final markerIndex = decodedHref.indexOf(marker); + final itemPath = markerIndex >= 0 + ? decodedHref.substring(markerIndex + marker.length) + : decodedHref; + if (itemPath.isEmpty) continue; + + final size = int.tryParse(sizeStr ?? '0') ?? 0; + final lastMod = _parseDavDate(lastModStr) ?? DateTime.now(); + final created = _parseDavDate(createdStr); + final itemType = NextcloudItem.deduceType(name, false, mimeType); + final validId = (fileId != null && fileId.isNotEmpty) ? fileId : name; + + results.add( + NextcloudItem( + id: validId, + name: name, + path: itemPath, + type: itemType, + size: size, + lastModified: lastMod, + dateCreated: created, + isFavorite: isFav, + mimeType: mimeType, + previewUrl: + '$_cleanServerUrl/core/preview?fileId=$validId&x=500&y=500', + mountType: mountType, + ), + ); + } + + debugPrint( + '[Nextcloud DAV] All-media SEARCH found ${results.length} items', + ); + return results; + } + + /// Finds recently modified files across the whole account (folders + /// excluded), newest first — same SEARCH-REPORT mechanism as + /// [fetchAllMedia], just without the image/video mimetype filter. + Future> fetchRecentFiles() async { + final url = '$_cleanServerUrl/remote.php/dav/'; + debugPrint('[Nextcloud DAV] SEARCH for recent files from $url'); + + final body = + ''' + + + + + + + + + + + + + + + + + /files/$username + infinity + + + + + + % + + + + + + + + + + 200 + + +'''; + + final request = http.Request('SEARCH', Uri.parse(url)) + ..headers.addAll({..._headers, 'Content-Type': 'text/xml'}) + ..body = body; + + final streamed = await http.Client().send(request); + final responseBody = await streamed.stream.bytesToString(); + debugPrint( + '[Nextcloud DAV] Recent SEARCH status: ${streamed.statusCode}, bytes: ${responseBody.length}', + ); + + if (streamed.statusCode != 207 && streamed.statusCode != 200) { + throw Exception( + 'Failed to load recent files. HTTP ${streamed.statusCode}', + ); + } + + final document = xml.XmlDocument.parse(responseBody); + final responses = document.findLocalDescendants('response'); + + final results = []; + for (var res in responses) { + final hrefNode = + res.findLocalChildren('href').firstOrNull ?? + res.findLocalDescendants('href').firstOrNull; + final href = hrefNode?.innerText ?? ''; + if (href.isEmpty) continue; + + final props = res.findLocalDescendants('prop'); + if (props.isEmpty) continue; + + bool isCollection = false; + String? sizeStr; + String? lastModStr; + String? createdStr; + String? mimeType; + bool isFav = false; + String? fileId; + + for (var prop in props) { + if (!isCollection) { + final resTypeNode = prop + .findLocalChildren('resourcetype') + .firstOrNull; + if (resTypeNode != null && + resTypeNode.findLocalChildren('collection').isNotEmpty) { + isCollection = true; + } + } + sizeStr ??= prop + .findLocalChildren('getcontentlength') + .firstOrNull + ?.innerText; + lastModStr ??= prop + .findLocalChildren('getlastmodified') + .firstOrNull + ?.innerText; + createdStr ??= prop + .findLocalChildren('creationdate') + .firstOrNull + ?.innerText; + mimeType ??= prop + .findLocalChildren('getcontenttype') + .firstOrNull + ?.innerText; + if (!isFav) { + isFav = + prop.findLocalChildren('favorite').firstOrNull?.innerText == '1'; + } + fileId ??= prop.findLocalChildren('fileid').firstOrNull?.innerText; + } + + if (isCollection) continue; // folders aren't "recent files" + + var decodedHref = Uri.decodeFull(href); + if (decodedHref.endsWith('/') && decodedHref.length > 1) { + decodedHref = decodedHref.substring(0, decodedHref.length - 1); + } + final name = decodedHref.split('/').where((s) => s.isNotEmpty).last; + if (name.isEmpty) continue; + + // Strip the DAV root prefix so `path` matches what fetchDirectory produces. + final marker = '/files/$username'; + final markerIndex = decodedHref.indexOf(marker); + final itemPath = markerIndex >= 0 + ? decodedHref.substring(markerIndex + marker.length) + : decodedHref; + if (itemPath.isEmpty) continue; + + final size = int.tryParse(sizeStr ?? '0') ?? 0; + final lastMod = _parseDavDate(lastModStr) ?? DateTime.now(); + final created = _parseDavDate(createdStr); + final itemType = NextcloudItem.deduceType(name, false, mimeType); + final validId = (fileId != null && fileId.isNotEmpty) ? fileId : name; + + results.add( + NextcloudItem( + id: validId, + name: name, + path: itemPath, + type: itemType, + size: size, + lastModified: lastMod, + dateCreated: created, + isFavorite: isFav, + mimeType: mimeType, + previewUrl: + '$_cleanServerUrl/core/preview?fileId=$validId&x=500&y=500', + ), + ); + } + + debugPrint('[Nextcloud DAV] Recent SEARCH found ${results.length} items'); + return results; + } + Future fetchUserQuota() async { final url = '$_cleanServerUrl/ocs/v1.php/cloud/user?format=json'; debugPrint('[Nextcloud OCS] Fetching user quota from $url'); @@ -665,6 +994,606 @@ class NextcloudService { return response.statusCode == 201; } + /// Lists the contents of the Nextcloud trash bin (flat — deleted folders + /// appear as a single entry, not expanded). + Future> fetchTrash() async { + final url = '$_cleanServerUrl/remote.php/dav/trashbin/$username/trash/'; + debugPrint('[Nextcloud DAV] Requesting PROPFIND for trash: $url'); + + final request = http.Request('PROPFIND', Uri.parse(url)) + ..headers.addAll({ + ..._headers, + 'Depth': '1', + 'Content-Type': 'application/xml', + }); + + const body = ''' + + + + + + + + + + + +'''; + + request.body = body; + + final streamedResponse = await http.Client().send(request); + final responseBody = await streamedResponse.stream.bytesToString(); + debugPrint( + '[Nextcloud DAV] Trash PROPFIND status: ${streamedResponse.statusCode}, bytes: ${responseBody.length}', + ); + + if (streamedResponse.statusCode != 207 && + streamedResponse.statusCode != 200) { + throw Exception( + 'Failed to load trash. HTTP ${streamedResponse.statusCode}', + ); + } + + final document = xml.XmlDocument.parse(responseBody); + final responses = document.findLocalDescendants('response'); + final targetPath = _davPath( + '$_cleanServerUrl/remote.php/dav/trashbin/$username/trash/', + ); + + final items = []; + for (var res in responses) { + final hrefNode = + res.findLocalChildren('href').firstOrNull ?? + res.findLocalDescendants('href').firstOrNull; + final href = hrefNode?.innerText ?? ''; + final hrefPath = _davPath(Uri.decodeFull(href)); + if (hrefPath == targetPath) continue; // skip the trash root itself + + final props = res.findLocalDescendants('prop'); + if (props.isEmpty) continue; + + bool isCollection = false; + String? sizeStr; + String? mimeType; + String? fileId; + String? originalLocation; + String? deletionTimeStr; + + for (var prop in props) { + if (!isCollection) { + final resTypeNode = prop + .findLocalChildren('resourcetype') + .firstOrNull; + if (resTypeNode != null && + resTypeNode.findLocalChildren('collection').isNotEmpty) { + isCollection = true; + } + } + sizeStr ??= + prop.findLocalChildren('size').firstOrNull?.innerText ?? + prop.findLocalChildren('getcontentlength').firstOrNull?.innerText; + mimeType ??= prop + .findLocalChildren('getcontenttype') + .firstOrNull + ?.innerText; + fileId ??= prop.findLocalChildren('fileid').firstOrNull?.innerText; + originalLocation ??= prop + .findLocalChildren('trashbin-original-location') + .firstOrNull + ?.innerText; + deletionTimeStr ??= prop + .findLocalChildren('trashbin-deletion-time') + .firstOrNull + ?.innerText; + } + + // The trash entry's own on-disk name, e.g. "photo.jpg.d1735689600" — + // this (not the display name) is what restore/delete-forever need. + final trashName = Uri.decodeFull( + href.split('/').where((s) => s.isNotEmpty).last, + ); + if (trashName.isEmpty) continue; + + final displayName = + (originalLocation != null && originalLocation.isNotEmpty) + ? originalLocation.split('/').where((s) => s.isNotEmpty).last + : trashName; + + final size = int.tryParse(sizeStr ?? '0') ?? 0; + final deletionTime = deletionTimeStr != null + ? DateTime.fromMillisecondsSinceEpoch( + (int.tryParse(deletionTimeStr) ?? 0) * 1000, + ) + : DateTime.now(); + final itemType = NextcloudItem.deduceType( + displayName, + isCollection, + mimeType, + ); + final validId = (fileId != null && fileId.isNotEmpty) + ? fileId + : trashName; + + items.add( + NextcloudItem( + id: validId, + name: displayName, + path: trashName, + type: itemType, + size: size, + lastModified: deletionTime, + originalLocation: originalLocation, + deletedAt: deletionTime, + ), + ); + } + + debugPrint('[Nextcloud DAV] Loaded ${items.length} trash items'); + return items; + } + + /// Restores a trashed item (identified by its trash-relative name, i.e. + /// [NextcloudItem.path] for a trash item) back to its original location. + Future restoreTrashItem(String trashName) async { + final sourceUrl = + '$_cleanServerUrl/remote.php/dav/trashbin/$username/trash/$trashName'; + final destUrl = + '$_cleanServerUrl/remote.php/dav/trashbin/$username/restore/$trashName'; + debugPrint('[Nextcloud DAV] Restoring trash item $sourceUrl -> $destUrl'); + + final request = http.Request('MOVE', Uri.parse(sourceUrl)) + ..headers.addAll({..._headers, 'Destination': destUrl}); + final response = await http.Client().send(request); + debugPrint('[Nextcloud DAV] Restore status: ${response.statusCode}'); + return response.statusCode == 201 || response.statusCode == 204; + } + + /// Permanently deletes a trashed item (identified by its trash-relative + /// name, i.e. [NextcloudItem.path] for a trash item). Cannot be undone. + Future deleteTrashItemForever(String trashName) async { + final url = + '$_cleanServerUrl/remote.php/dav/trashbin/$username/trash/$trashName'; + debugPrint('[Nextcloud DAV] Permanently deleting trash item $url'); + + final response = await http.delete(Uri.parse(url), headers: _headers); + debugPrint( + '[Nextcloud DAV] Permanent delete status: ${response.statusCode}', + ); + return response.statusCode == 204 || response.statusCode == 200; + } + + ShareType _mapShareType(int value) { + switch (value) { + case 0: + return ShareType.user; + case 1: + return ShareType.group; + case 3: + return ShareType.publicLink; + case 4: + return ShareType.email; + case 6: + return ShareType.federated; + default: + return ShareType.other; + } + } + + /// Lists shares: things the current user has shared with others by + /// default, or things others have shared with the current user when + /// [sharedWithMe] is true. + Future> fetchShares({bool sharedWithMe = false}) async { + final url = + '$_cleanServerUrl/ocs/v2.php/apps/files_sharing/api/v1/shares' + '?format=json${sharedWithMe ? '&shared_with_me=true' : ''}'; + debugPrint( + '[Nextcloud OCS] Fetching shares (sharedWithMe=$sharedWithMe) from $url', + ); + + final response = await http.get(Uri.parse(url), headers: _headers); + debugPrint( + '[Nextcloud OCS] Shares response status: ${response.statusCode}', + ); + + if (response.statusCode != 200) { + throw Exception('Failed to load shares. HTTP ${response.statusCode}'); + } + + final data = jsonDecode(response.body); + final rawList = data['ocs']?['data']; + if (rawList is! List) return []; + + return rawList.map((raw) { + final path = (raw['path'] ?? '/').toString(); + final segments = path.split('/').where((s) => s.isNotEmpty).toList(); + final name = segments.isNotEmpty ? segments.last : path; + final isFolder = (raw['item_type'] ?? '').toString() == 'folder'; + final mimeType = raw['mimetype'] as String?; + + return NextcloudShare( + id: (raw['id'] ?? '').toString(), + path: path, + name: name, + itemType: NextcloudItem.deduceType(name, isFolder, mimeType), + shareType: _mapShareType((raw['share_type'] as num?)?.toInt() ?? -1), + ownerDisplayName: (raw['displayname_owner'] ?? raw['uid_owner'] ?? '') + .toString(), + sharedWithDisplayName: raw['share_with_displayname'] as String?, + sharedAt: DateTime.fromMillisecondsSinceEpoch( + ((raw['stime'] as num?)?.toInt() ?? 0) * 1000, + ), + sharedWithMe: sharedWithMe, + ); + }).toList(); + } + + /// Creates a public link share for [path] and returns its share URL. + Future createPublicShareLink(String path) async { + final url = + '$_cleanServerUrl/ocs/v2.php/apps/files_sharing/api/v1/shares?format=json'; + debugPrint('[Nextcloud OCS] Creating public share link for $path'); + + final response = await http.post( + Uri.parse(url), + headers: _headers, + body: {'path': path, 'shareType': '3'}, + ); + debugPrint( + '[Nextcloud OCS] Create share response status: ${response.statusCode}', + ); + + if (response.statusCode != 200) { + throw Exception( + 'Failed to create share link. HTTP ${response.statusCode}', + ); + } + + final data = jsonDecode(response.body); + final shareUrl = data['ocs']?['data']?['url'] as String?; + if (shareUrl == null) { + throw Exception('Server response did not include a share URL.'); + } + return shareUrl; + } + + /// Removes a share (un-shares an item you shared, or removes one shared + /// with you). + Future deleteShare(String shareId) async { + final url = + '$_cleanServerUrl/ocs/v2.php/apps/files_sharing/api/v1/shares/$shareId?format=json'; + debugPrint('[Nextcloud OCS] Deleting share $shareId'); + + final response = await http.delete(Uri.parse(url), headers: _headers); + debugPrint('[Nextcloud OCS] Delete share status: ${response.statusCode}'); + return response.statusCode == 200; + } + + NextcloudShare _shareFromJson(Map raw, {required bool sharedWithMe}) { + final path = (raw['path'] ?? '/').toString(); + final segments = path.split('/').where((s) => s.isNotEmpty).toList(); + final name = segments.isNotEmpty ? segments.last : path; + final isFolder = (raw['item_type'] ?? '').toString() == 'folder'; + final mimeType = raw['mimetype'] as String?; + final expiration = raw['expiration'] as String?; + + return NextcloudShare( + id: (raw['id'] ?? '').toString(), + path: path, + name: name, + itemType: NextcloudItem.deduceType(name, isFolder, mimeType), + shareType: _mapShareType((raw['share_type'] as num?)?.toInt() ?? -1), + ownerDisplayName: (raw['displayname_owner'] ?? raw['uid_owner'] ?? '') + .toString(), + sharedWithDisplayName: raw['share_with_displayname'] as String?, + sharedAt: DateTime.fromMillisecondsSinceEpoch( + ((raw['stime'] as num?)?.toInt() ?? 0) * 1000, + ), + sharedWithMe: sharedWithMe, + url: raw['url'] as String?, + permissions: (raw['permissions'] as num?)?.toInt() ?? 1, + token: raw['token'] as String?, + expireDate: expiration != null ? DateTime.tryParse(expiration) : null, + ); + } + + /// The current user's own direct shares on a single file/folder (for the + /// Details sheet's Sharing tab) — unlike [fetchShares], scoped to one path. + Future> fetchSharesForPath(String path) async { + final url = + '$_cleanServerUrl/ocs/v2.php/apps/files_sharing/api/v1/shares' + '?format=json&path=${Uri.encodeQueryComponent(path)}&reshares=true'; + debugPrint('[Nextcloud OCS] Fetching shares for path $path'); + + final response = await http.get(Uri.parse(url), headers: _headers); + if (response.statusCode != 200) { + throw Exception('Failed to load shares. HTTP ${response.statusCode}'); + } + final data = jsonDecode(response.body); + final rawList = data['ocs']?['data']; + if (rawList is! List) return []; + return rawList + .map((raw) => _shareFromJson(raw, sharedWithMe: false)) + .toList(); + } + + /// Shares inherited from a parent folder that the current user doesn't + /// own directly ("Others with access" in the web UI). Returns an empty + /// list rather than throwing on servers too old to support this endpoint. + Future> fetchInheritedShares(String path) async { + final url = + '$_cleanServerUrl/ocs/v2.php/apps/files_sharing/api/v1/shares/inherited' + '?format=json&path=${Uri.encodeQueryComponent(path)}'; + debugPrint('[Nextcloud OCS] Fetching inherited shares for path $path'); + + try { + final response = await http.get(Uri.parse(url), headers: _headers); + if (response.statusCode != 200) return []; + final data = jsonDecode(response.body); + final rawList = data['ocs']?['data']; + if (rawList is! List) return []; + return rawList + .map( + (raw) => _shareFromJson(raw, sharedWithMe: false), + ) + .toList(); + } catch (e) { + debugPrint('[Nextcloud OCS] Inherited shares unavailable: $e'); + return []; + } + } + + /// Searches users/teams (groups) a file/folder can be shared with. + Future> searchSharees(String query) async { + final url = + '$_cleanServerUrl/ocs/v2.php/apps/files_sharing/api/v1/sharees' + '?format=json&itemType=file&search=${Uri.encodeQueryComponent(query)}'; + debugPrint('[Nextcloud OCS] Searching sharees for "$query"'); + + final response = await http.get(Uri.parse(url), headers: _headers); + if (response.statusCode != 200) { + throw Exception('Sharee search failed. HTTP ${response.statusCode}'); + } + final data = jsonDecode(response.body)['ocs']?['data']; + if (data is! Map) return []; + + NextcloudSharee? fromEntry(dynamic raw, ShareeType type) { + if (raw is! Map) return null; + final value = raw['value']; + final shareWith = value is Map ? value['shareWith'] as String? : null; + if (shareWith == null) return null; + return NextcloudSharee( + shareWith: shareWith, + label: (raw['label'] ?? shareWith).toString(), + type: type, + subtitle: value is Map + ? value['shareWithAdditionalInfo'] as String? + : null, + ); + } + + final results = []; + final seen = {}; + void addAll(String bucket, ShareeType type) { + final list = data[bucket]; + final exactList = (data['exact'] is Map) ? data['exact'][bucket] : null; + for (final raw in [ + ...(exactList is List ? exactList : []), + ...(list is List ? list : []), + ]) { + final sharee = fromEntry(raw, type); + if (sharee == null) continue; + final key = '${sharee.type}:${sharee.shareWith}'; + if (seen.add(key)) results.add(sharee); + } + } + + addAll('users', ShareeType.user); + addAll('groups', ShareeType.group); + return results; + } + + String _formatDavDate(DateTime date) { + final y = date.year.toString().padLeft(4, '0'); + final m = date.month.toString().padLeft(2, '0'); + final d = date.day.toString().padLeft(2, '0'); + return '$y-$m-$d'; + } + + /// General-purpose share creation, covering public links (shareType 3), + /// user/team shares (0/1), and email shares (4). [createPublicShareLink] + /// is left as the simpler dedicated entry point used by the swipe action. + Future createShare({ + required String path, + required int shareType, + String? shareWith, + String? password, + DateTime? expireDate, + }) async { + final url = + '$_cleanServerUrl/ocs/v2.php/apps/files_sharing/api/v1/shares?format=json'; + debugPrint('[Nextcloud OCS] Creating share (type $shareType) for $path'); + + final body = { + 'path': path, + 'shareType': '$shareType', + 'shareWith': ?shareWith, + if (password != null && password.isNotEmpty) 'password': password, + if (expireDate != null) 'expireDate': _formatDavDate(expireDate), + }; + + final response = await http.post( + Uri.parse(url), + headers: _headers, + body: body, + ); + if (response.statusCode != 200) { + throw Exception('Failed to create share. HTTP ${response.statusCode}'); + } + final data = jsonDecode(response.body)['ocs']?['data']; + if (data is! Map) { + throw Exception('Server response did not include the new share.'); + } + return _shareFromJson(data, sharedWithMe: false); + } + + /// Per-file activity feed (Details sheet's Activity tab), unlike + /// [fetchActivities] which is the whole-account feed. + Future> fetchFileActivity(String fileId) async { + List parse(String body) { + final data = jsonDecode(body); + final rawData = data['ocs']?['data']; + List list = []; + if (rawData is List) { + list = rawData; + } else if (rawData is Map && rawData['activity'] is List) { + list = rawData['activity']; + } + return list.map((a) { + return NextcloudActivity( + id: (a['activity_id'] ?? '').toString(), + title: a['subject'] ?? 'Activity', + subject: a['message'] ?? (a['subject'] ?? ''), + timestamp: DateTime.fromMillisecondsSinceEpoch( + (a['timestamp'] as int? ?? 0) * 1000, + ), + icon: Icons.cloud_outlined, + author: a['user'] ?? username, + ); + }).toList(); + } + + // The activity app doesn't have one single documented way to scope the + // feed to a specific file across server versions - try the same base + // endpoint `fetchActivities` uses (proven to work) with object filter + // params first, then fall back to the `filter/files` route some + // versions expose, rather than betting on just one. + final candidates = [ + '$_cleanServerUrl/ocs/v2.php/apps/activity/api/v2/activity' + '?format=json&object_type=files&object_id=${Uri.encodeQueryComponent(fileId)}', + '$_cleanServerUrl/ocs/v2.php/apps/activity/api/v2/activity/filter/files' + '?format=json&object_type=files&object_id=${Uri.encodeQueryComponent(fileId)}', + ]; + + for (final url in candidates) { + try { + debugPrint('[Nextcloud OCS] Fetching activity for file $fileId: $url'); + final response = await http.get(Uri.parse(url), headers: _headers); + debugPrint( + '[Nextcloud OCS] File activity response status: ${response.statusCode}', + ); + if (response.statusCode != 200) continue; + final items = parse(response.body); + if (items.isNotEmpty) return items; + } catch (e) { + debugPrint('[Nextcloud OCS] File activity attempt failed: $e'); + } + } + return []; + } + + /// Lists a file's version history via the DAV versions endpoint. + Future> fetchFileVersions(String fileId) async { + final url = + '$_cleanServerUrl/remote.php/dav/versions/$username/versions/$fileId'; + debugPrint('[Nextcloud DAV] Requesting PROPFIND for versions of $fileId'); + + const body = ''' + + + + + +'''; + + try { + final request = http.Request('PROPFIND', Uri.parse(url)) + ..headers.addAll({ + ..._headers, + 'Depth': '1', + 'Content-Type': 'application/xml', + }) + ..body = body; + final streamed = await http.Client().send(request); + final responseBody = await streamed.stream.bytesToString(); + if (streamed.statusCode != 207 && streamed.statusCode != 200) { + debugPrint( + '[Nextcloud DAV] Versions PROPFIND failed: ${streamed.statusCode}', + ); + return []; + } + + final document = xml.XmlDocument.parse(responseBody); + final responses = document.findLocalDescendants('response'); + final versions = []; + for (final res in responses) { + final href = res.findLocalChildren('href').firstOrNull?.innerText ?? ''; + final hrefPath = _davPath(Uri.decodeFull(href)); + // Skip the versions collection entry itself. + if (hrefPath.endsWith('/versions/$fileId')) continue; + final versionLabel = hrefPath.split('/').lastOrNull; + if (versionLabel == null || versionLabel.isEmpty) continue; + + final props = res.findLocalDescendants('prop'); + String? lastModStr; + String? sizeStr; + for (final prop in props) { + lastModStr ??= prop + .findLocalChildren('getlastmodified') + .firstOrNull + ?.innerText; + sizeStr ??= prop + .findLocalChildren('getcontentlength') + .firstOrNull + ?.innerText; + } + final timestamp = _parseDavDate(lastModStr) ?? DateTime.now(); + versions.add( + NextcloudFileVersion( + versionLabel: versionLabel, + timestamp: timestamp, + size: int.tryParse(sizeStr ?? '') ?? 0, + ), + ); + } + versions.sort((a, b) => b.timestamp.compareTo(a.timestamp)); + return versions; + } catch (e) { + debugPrint('[Nextcloud DAV] Fetching versions failed: $e'); + return []; + } + } + + /// Restores [versionLabel] as the current version of [fileId]. + Future restoreFileVersion(String fileId, String versionLabel) async { + final source = + '$_cleanServerUrl/remote.php/dav/versions/$username/versions/$fileId/$versionLabel'; + final destination = + '$_cleanServerUrl/remote.php/dav/versions/$username/restore/$versionLabel'; + debugPrint('[Nextcloud DAV] Restoring version $versionLabel of $fileId'); + + final request = http.Request('MOVE', Uri.parse(source)) + ..headers.addAll({..._headers, 'Destination': destination}); + final response = await http.Client().send(request); + debugPrint( + '[Nextcloud DAV] Restore version status: ${response.statusCode}', + ); + return response.statusCode == 201 || response.statusCode == 204; + } + + /// Downloads a specific historical version's bytes to [savePath]. + Future downloadVersionToFile( + String fileId, + String versionLabel, + String savePath, + ) async { + final url = + '$_cleanServerUrl/remote.php/dav/versions/$username/versions/$fileId/$versionLabel'; + final dio = Dio(); + await dio.download(url, savePath, options: Options(headers: _headers)); + } + Future toggleFavorite( String itemPath, bool currentFavoriteState, diff --git a/lib/theme/app_theme.dart b/lib/theme/app_theme.dart index 31fb1bf..fe42c81 100644 --- a/lib/theme/app_theme.dart +++ b/lib/theme/app_theme.dart @@ -4,6 +4,24 @@ import 'package:google_fonts/google_fonts.dart'; class AppTheme { static const Color defaultNextcloudBlue = Color(0xFF0082C9); + // Flutter's Material 3 default (ZoomPageTransitionsBuilder) doesn't + // implement Android's predictive-back gesture at all. Opting into + // PredictiveBackPageTransitionsBuilder here (Android only) is required — + // on top of the manifest's enableOnBackInvokedCallback flag — for the + // system back gesture to animate/scale the current screen away instead of + // popping instantly. + static const _pageTransitionsTheme = PageTransitionsTheme( + builders: {TargetPlatform.android: PredictiveBackPageTransitionsBuilder()}, + ); + + // Flutter's Slider defaults to the older "2023" Material 3 look even with + // useMaterial3 on; year2023: false opts into the current redesign (gapped + // track, taller handle-shaped thumb) app-wide instead of per-slider. The + // flag itself is deprecated in favor of `false` becoming the new default + // in a future Flutter release - safe to keep using until then. + // ignore: deprecated_member_use + static const _sliderTheme = SliderThemeData(year2023: false); + static const List seedColors = [ Color(0xFF0082C9), // Nextcloud Blue Color(0xFF009688), // Ocean Teal @@ -29,6 +47,8 @@ class AppTheme { brightness: Brightness.light, colorScheme: colorScheme, scaffoldBackgroundColor: colorScheme.surface, + pageTransitionsTheme: _pageTransitionsTheme, + sliderTheme: _sliderTheme, textTheme: GoogleFonts.interTextTheme(ThemeData.light().textTheme) .copyWith( headlineMedium: GoogleFonts.inter( @@ -64,19 +84,37 @@ class AppTheme { Color seedColor, { ColorScheme? dynamicScheme, bool useDynamicColor = true, + bool amoled = false, }) { - final colorScheme = (useDynamicColor && dynamicScheme != null) + var colorScheme = (useDynamicColor && dynamicScheme != null) ? dynamicScheme : ColorScheme.fromSeed( seedColor: seedColor, brightness: Brightness.dark, ); + if (amoled) { + // True OLED black across every surface tone Material 3 hands out - + // not just the scaffold - so cards, app bars and sheets all go black + // too instead of the usual dark-grey elevation tints. + colorScheme = colorScheme.copyWith( + surface: Colors.black, + surfaceContainerLowest: Colors.black, + surfaceContainerLow: Colors.black, + surfaceContainer: Colors.black, + surfaceContainerHigh: Colors.black, + surfaceContainerHighest: Colors.black, + surfaceDim: Colors.black, + ); + } + return ThemeData( useMaterial3: true, brightness: Brightness.dark, colorScheme: colorScheme, scaffoldBackgroundColor: colorScheme.surface, + pageTransitionsTheme: _pageTransitionsTheme, + sliderTheme: _sliderTheme, textTheme: GoogleFonts.interTextTheme(ThemeData.dark().textTheme) .copyWith( headlineMedium: GoogleFonts.inter( diff --git a/lib/views/account_view.dart b/lib/views/account_view.dart index bc93365..3c65735 100644 --- a/lib/views/account_view.dart +++ b/lib/views/account_view.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; +import '../models/app_tab.dart'; import '../providers/server_provider.dart'; import '../theme/app_theme.dart'; import '../widgets/frosted_glass_container.dart'; @@ -22,7 +23,7 @@ class AccountView extends StatelessWidget { return Scaffold( appBar: AppBar( - title: const Text('Account & Storage'), + title: const Text('Settings'), actions: [ IconButton( onPressed: () => _showLogoutConfirmation(context, provider), @@ -316,6 +317,16 @@ class AccountView extends StatelessWidget { provider.setThemeMode(set.first), ), ), + const SizedBox(height: 8), + SwitchListTile( + contentPadding: EdgeInsets.zero, + title: const Text('AMOLED Black'), + subtitle: const Text( + 'Use pure black backgrounds in dark mode', + ), + value: provider.amoledDark, + onChanged: provider.setAmoledDark, + ), ], ), ), @@ -331,6 +342,78 @@ class AccountView extends StatelessWidget { ), const SizedBox(height: 10), const _BottomBarAppearanceCard(), + const SizedBox(height: 24), + + // Bottom Nav Tabs + Text( + 'Bottom Bar Tabs', + style: theme.textTheme.titleMedium?.copyWith( + fontWeight: FontWeight.w700, + ), + ), + const SizedBox(height: 4), + Text( + 'Drag to reorder, tap the star to set the default, toggle to show or hide', + style: theme.textTheme.bodySmall?.copyWith( + color: colorScheme.onSurfaceVariant, + ), + ), + const SizedBox(height: 10), + const _TabSettingsCard(), + const SizedBox(height: 24), + + // Swipe Actions + Text( + 'Files Swipe Actions', + style: theme.textTheme.titleMedium?.copyWith( + fontWeight: FontWeight.w700, + ), + ), + const SizedBox(height: 4), + Text( + 'Choose what swiping a file left or right does in list view', + style: theme.textTheme.bodySmall?.copyWith( + color: colorScheme.onSurfaceVariant, + ), + ), + const SizedBox(height: 10), + const _SwipeActionsCard(), + const SizedBox(height: 24), + + // Media Player + Text( + 'Media Player', + style: theme.textTheme.titleMedium?.copyWith( + fontWeight: FontWeight.w700, + ), + ), + const SizedBox(height: 4), + Text( + 'Choose the seek bar style used when playing videos', + style: theme.textTheme.bodySmall?.copyWith( + color: colorScheme.onSurfaceVariant, + ), + ), + const SizedBox(height: 10), + const _MediaPlayerCard(), + const SizedBox(height: 24), + + // Files Cache + Text( + 'Files Cache', + style: theme.textTheme.titleMedium?.copyWith( + fontWeight: FontWeight.w700, + ), + ), + const SizedBox(height: 4), + Text( + 'Reuse a folder\'s listing instead of refetching it on every visit', + style: theme.textTheme.bodySmall?.copyWith( + color: colorScheme.onSurfaceVariant, + ), + ), + const SizedBox(height: 10), + const _CacheSettingsCard(), ], ), ), @@ -575,3 +658,325 @@ class _AccentSwatch extends StatelessWidget { ); } } + +class _SwipeActionsCard extends StatelessWidget { + const _SwipeActionsCard(); + + String _label(SwipeAction action) { + switch (action) { + case SwipeAction.none: + return 'None'; + case SwipeAction.favorite: + return 'Favorite'; + case SwipeAction.delete: + return 'Delete'; + case SwipeAction.share: + return 'Share'; + } + } + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + final provider = context.watch(); + + return Card( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 4), + child: Column( + children: [ + _buildRow( + context, + theme, + label: 'Swipe right', + value: provider.swipeRightAction, + onChanged: provider.setSwipeRightAction, + ), + const Divider(height: 1), + _buildRow( + context, + theme, + label: 'Swipe left', + value: provider.swipeLeftAction, + onChanged: provider.setSwipeLeftAction, + ), + ], + ), + ), + ); + } + + Widget _buildRow( + BuildContext context, + ThemeData theme, { + required String label, + required SwipeAction value, + required ValueChanged onChanged, + }) { + return Padding( + padding: const EdgeInsets.symmetric(vertical: 8), + child: Row( + children: [ + Expanded( + child: Text( + label, + style: theme.textTheme.titleSmall?.copyWith( + fontWeight: FontWeight.w600, + ), + ), + ), + DropdownButton( + value: value, + underline: const SizedBox.shrink(), + borderRadius: BorderRadius.circular(12), + items: SwipeAction.values + .map((a) => DropdownMenuItem(value: a, child: Text(_label(a)))) + .toList(), + onChanged: (a) { + if (a != null) onChanged(a); + }, + ), + ], + ), + ); + } +} + +class _MediaPlayerCard extends StatelessWidget { + const _MediaPlayerCard(); + + String _label(MediaProgressBarStyle style) { + switch (style) { + case MediaProgressBarStyle.wavy: + return 'Wavy'; + case MediaProgressBarStyle.classic: + return 'Classic'; + } + } + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + final provider = context.watch(); + + return Card( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 4), + child: Row( + children: [ + Expanded( + child: Text( + 'Seek bar style', + style: theme.textTheme.titleSmall?.copyWith( + fontWeight: FontWeight.w600, + ), + ), + ), + DropdownButton( + value: provider.mediaProgressBarStyle, + underline: const SizedBox.shrink(), + borderRadius: BorderRadius.circular(12), + items: MediaProgressBarStyle.values + .map( + (s) => DropdownMenuItem(value: s, child: Text(_label(s))), + ) + .toList(), + onChanged: (s) { + if (s != null) provider.setMediaProgressBarStyle(s); + }, + ), + ], + ), + ), + ); + } +} + +class _CacheSettingsCard extends StatelessWidget { + const _CacheSettingsCard(); + + String _label(CachePolicy policy) { + switch (policy) { + case CachePolicy.never: + return 'Never cache'; + case CachePolicy.interval: + return 'Refresh periodically'; + case CachePolicy.manual: + return 'Refresh manually only'; + } + } + + String _description(CachePolicy policy) { + switch (policy) { + case CachePolicy.never: + return 'Every visit to a folder fetches it fresh (current behavior)'; + case CachePolicy.interval: + return 'Reuse a folder\'s listing until it\'s a few minutes old'; + case CachePolicy.manual: + return 'Reuse a folder\'s listing until you pull to refresh'; + } + } + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + final colorScheme = theme.colorScheme; + final provider = context.watch(); + + return Card( + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 4), + child: Column( + children: [ + RadioGroup( + groupValue: provider.cachePolicy, + onChanged: (value) { + if (value != null) provider.setCachePolicy(value); + }, + child: Column( + children: [ + for (final policy in CachePolicy.values) + RadioListTile( + value: policy, + title: Text(_label(policy)), + subtitle: Text(_description(policy)), + ), + ], + ), + ), + if (provider.cachePolicy == CachePolicy.interval) + Padding( + padding: const EdgeInsets.fromLTRB(16, 0, 16, 12), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Divider(), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + 'Refresh interval', + style: theme.textTheme.bodyMedium, + ), + Text( + '${provider.cacheIntervalMinutes} min', + style: theme.textTheme.bodySmall?.copyWith( + color: colorScheme.onSurfaceVariant, + ), + ), + ], + ), + Slider( + value: provider.cacheIntervalMinutes.toDouble(), + min: 1, + max: 60, + divisions: 59, + label: '${provider.cacheIntervalMinutes} min', + onChanged: (value) => + provider.setCacheIntervalMinutes(value.round()), + ), + ], + ), + ), + ], + ), + ), + ); + } +} + +class _TabSettingsCard extends StatelessWidget { + const _TabSettingsCard(); + + @override + Widget build(BuildContext context) { + final provider = context.watch(); + + return Card( + clipBehavior: Clip.antiAlias, + child: ReorderableListView( + shrinkWrap: true, + physics: const NeverScrollableScrollPhysics(), + onReorderItem: (oldIndex, newIndex) { + final order = List.from(provider.tabOrder); + final tab = order.removeAt(oldIndex); + order.insert(newIndex, tab); + provider.setTabOrder(order); + }, + children: [ + for (final tab in provider.tabOrder) + _TabConfigRow( + key: ValueKey(tab), + tab: tab, + isVisible: !provider.hiddenTabs.contains(tab), + isDefault: provider.defaultTab == tab, + onVisibilityChanged: (value) { + final error = provider.setTabHidden(tab, !value); + if (error != null && context.mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text(error), + behavior: SnackBarBehavior.floating, + ), + ); + } + }, + onSetDefault: () => provider.setDefaultTab(tab), + ), + ], + ), + ); + } +} + +class _TabConfigRow extends StatelessWidget { + final AppTab tab; + final bool isVisible; + final bool isDefault; + final ValueChanged onVisibilityChanged; + final VoidCallback onSetDefault; + + const _TabConfigRow({ + required super.key, + required this.tab, + required this.isVisible, + required this.isDefault, + required this.onVisibilityChanged, + required this.onSetDefault, + }); + + @override + Widget build(BuildContext context) { + final colorScheme = Theme.of(context).colorScheme; + + return ListTile( + leading: Icon( + tab.icon, + color: isVisible + ? colorScheme.onSurfaceVariant + : colorScheme.outlineVariant, + ), + title: Text( + tab.label, + style: TextStyle(color: isVisible ? null : colorScheme.outline), + ), + subtitle: isDefault ? const Text('Default tab') : null, + trailing: Row( + mainAxisSize: MainAxisSize.min, + children: [ + IconButton( + icon: Icon( + isDefault ? Icons.star_rounded : Icons.star_outline_rounded, + color: isDefault + ? Colors.amber.shade700 + : colorScheme.outlineVariant, + ), + tooltip: 'Set as default tab', + onPressed: isVisible && !isDefault ? onSetDefault : null, + ), + Switch(value: isVisible, onChanged: onVisibilityChanged), + ], + ), + ); + } +} diff --git a/lib/views/activity_view.dart b/lib/views/activity_view.dart index 7100e90..3705240 100644 --- a/lib/views/activity_view.dart +++ b/lib/views/activity_view.dart @@ -2,7 +2,9 @@ import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import '../providers/server_provider.dart'; +import '../widgets/more_tabs_button.dart'; import '../widgets/profile_avatar_button.dart'; +import '../widgets/synced_header_scaffold.dart'; class ActivityView extends StatelessWidget { final ScrollController scrollController; @@ -16,77 +18,65 @@ class ActivityView extends StatelessWidget { final provider = context.watch(); final activities = provider.activities; - return CustomScrollView( - controller: scrollController, - physics: const BouncingScrollPhysics(), - slivers: [ - SliverAppBar( - pinned: true, - expandedHeight: kToolbarHeight, - collapsedHeight: kToolbarHeight, - backgroundColor: colorScheme.surface, - surfaceTintColor: colorScheme.surface, - scrolledUnderElevation: 0, - actions: const [ProfileAvatarButton()], - ), - const SliverToBoxAdapter(child: SizedBox(height: 8)), + final List contentSlivers = [ + const SliverToBoxAdapter(child: SizedBox(height: 16)), - if (activities.isEmpty) - SliverFillRemaining( - child: Center( - child: Text( - 'No recent activity', - style: theme.textTheme.titleMedium?.copyWith( - color: colorScheme.onSurfaceVariant, - ), + if (activities.isEmpty) + SliverFillRemaining( + hasScrollBody: false, + child: Center( + child: Text( + 'No recent activity', + style: theme.textTheme.titleMedium?.copyWith( + color: colorScheme.onSurfaceVariant, ), ), - ) - else - SliverPadding( - padding: const EdgeInsets.symmetric(horizontal: 20), - sliver: SliverList( - delegate: SliverChildBuilderDelegate((context, index) { - final act = activities[index]; + ), + ) + else + SliverPadding( + padding: const EdgeInsets.symmetric(horizontal: 20), + sliver: SliverList( + delegate: SliverChildBuilderDelegate((context, index) { + final act = activities[index]; - return Padding( - padding: const EdgeInsets.only(bottom: 12), - child: Container( - padding: const EdgeInsets.all(16), - decoration: BoxDecoration( - color: colorScheme.surfaceContainerLow, - borderRadius: BorderRadius.circular(20), - border: Border.all( - color: colorScheme.outlineVariant.withValues( - alpha: 0.2, + return Padding( + padding: const EdgeInsets.only(bottom: 12), + child: Container( + padding: const EdgeInsets.all(16), + decoration: BoxDecoration( + color: colorScheme.surfaceContainerLow, + borderRadius: BorderRadius.circular(20), + border: Border.all( + color: colorScheme.outlineVariant.withValues(alpha: 0.2), + ), + ), + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + padding: const EdgeInsets.all(10), + decoration: BoxDecoration( + color: colorScheme.primaryContainer, + shape: BoxShape.circle, + ), + child: Icon( + act.icon, + color: colorScheme.onPrimaryContainer, + size: 20, ), ), - ), - child: Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Container( - padding: const EdgeInsets.all(10), - decoration: BoxDecoration( - color: colorScheme.primaryContainer, - shape: BoxShape.circle, - ), - child: Icon( - act.icon, - color: colorScheme.onPrimaryContainer, - size: 20, - ), - ), - const SizedBox(width: 14), - Expanded( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - Text( + const SizedBox(width: 14), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Expanded( + child: Text( act.title, style: theme.textTheme.titleMedium ?.copyWith( @@ -94,45 +84,54 @@ class ActivityView extends StatelessWidget { fontSize: 14, ), ), - Text( - DateFormat.jm().format(act.timestamp), - style: theme.textTheme.bodySmall?.copyWith( - color: colorScheme.onSurfaceVariant, - fontSize: 11, - ), + ), + const SizedBox(width: 8), + Text( + DateFormat.jm().format(act.timestamp), + style: theme.textTheme.bodySmall?.copyWith( + color: colorScheme.onSurfaceVariant, + fontSize: 11, ), - ], - ), - const SizedBox(height: 4), - Text( - act.subject, - style: theme.textTheme.bodyMedium?.copyWith( - color: colorScheme.onSurfaceVariant, - fontSize: 13, ), + ], + ), + const SizedBox(height: 4), + Text( + act.subject, + style: theme.textTheme.bodyMedium?.copyWith( + color: colorScheme.onSurfaceVariant, + fontSize: 13, ), - const SizedBox(height: 6), - Text( - 'By ${act.author} • ${DateFormat.MMMd().format(act.timestamp)}', - style: theme.textTheme.bodySmall?.copyWith( - color: colorScheme.primary, - fontWeight: FontWeight.w500, - fontSize: 11, - ), + ), + const SizedBox(height: 6), + Text( + 'By ${act.author} • ${DateFormat.MMMd().format(act.timestamp)}', + style: theme.textTheme.bodySmall?.copyWith( + color: colorScheme.primary, + fontWeight: FontWeight.w500, + fontSize: 11, ), - ], - ), + ), + ], ), - ], - ), + ), + ], ), - ); - }, childCount: activities.length), - ), + ), + ); + }, childCount: activities.length), ), + ), - const SliverToBoxAdapter(child: SizedBox(height: 100)), - ], + const SliverToBoxAdapter(child: SizedBox(height: 100)), + const SliverFillRemaining(hasScrollBody: false, child: SizedBox()), + ]; + + return SyncedHeaderScaffold( + scrollController: scrollController, + provider: provider, + actions: const [MoreTabsButton(), ProfileAvatarButton()], + contentSlivers: contentSlivers, ); } } diff --git a/lib/views/file_viewer_screen.dart b/lib/views/file_viewer_screen.dart index 062635b..89f5fa9 100644 --- a/lib/views/file_viewer_screen.dart +++ b/lib/views/file_viewer_screen.dart @@ -8,11 +8,13 @@ import 'package:path/path.dart' as p; import 'package:path_provider/path_provider.dart'; import 'package:pdfx/pdfx.dart'; import 'package:provider/provider.dart'; -import 'package:share_plus/share_plus.dart'; import 'package:video_player/video_player.dart'; import '../models/nextcloud_item.dart'; import '../providers/server_provider.dart'; +import '../widgets/details/details_sheet.dart'; +import '../widgets/details/peek_details_sheet.dart'; import '../widgets/frosted_glass_container.dart'; +import '../widgets/share_sheet.dart'; const _textPreviewExtensions = { '.txt', @@ -55,15 +57,15 @@ class FileViewerScreen extends StatefulWidget { /// Opens the viewer with no page transition — media should appear /// instantly, not fade/zoom in the way MaterialPageRoute normally would. + /// Going *back* still uses the theme's normal (predictive-back-capable) + /// transition, via [_InstantOpenPageRoute] below. static Route route({ required NextcloudItem item, List? siblings, }) { - return PageRouteBuilder( - pageBuilder: (context, animation, secondaryAnimation) => + return _InstantOpenPageRoute( + pageBuilder: (context) => FileViewerScreen(item: item, siblings: siblings), - transitionDuration: Duration.zero, - reverseTransitionDuration: Duration.zero, ); } @@ -71,6 +73,30 @@ class FileViewerScreen extends StatefulWidget { State createState() => _FileViewerScreenState(); } +/// A [PageRoute] that opens instantly (zero-duration forward transition) +/// but still delegates to the app's [PageTransitionsTheme] for the reverse +/// transition — unlike a plain [PageRouteBuilder] with no transitionsBuilder, +/// which never consults the theme and so can't participate in Android's +/// predictive-back gesture at all. +class _InstantOpenPageRoute extends PageRoute + with MaterialRouteTransitionMixin { + _InstantOpenPageRoute({required this.pageBuilder, super.settings}); + + final WidgetBuilder pageBuilder; + + @override + Widget buildContent(BuildContext context) => pageBuilder(context); + + @override + bool get maintainState => true; + + @override + Duration get transitionDuration => Duration.zero; + + @override + Duration get reverseTransitionDuration => const Duration(milliseconds: 300); +} + class _FileViewerScreenState extends State { double? _downloadProgress; bool _isBusy = false; @@ -190,23 +216,6 @@ class _FileViewerScreenState extends State { } } - Future _shareCurrentItem(ServerProvider provider) async { - final item = _currentItem; - setState(() => _isBusy = true); - try { - final path = await _downloadToTemp(provider, item); - await SharePlus.instance.share(ShareParams(files: [XFile(path)])); - } catch (e) { - if (mounted) { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar(content: Text('Could not share ${item.name}: $e')), - ); - } - } finally { - if (mounted) setState(() => _isBusy = false); - } - } - Future _toggleFavorite(ServerProvider provider) async { final item = _currentItem; await provider.toggleItemFavorite(item); @@ -328,28 +337,48 @@ class _FileViewerScreenState extends State { ), ), ), - Align( - alignment: Alignment.bottomCenter, - child: AnimatedSlide( - duration: const Duration(milliseconds: 220), - curve: Curves.easeInOutCubic, - offset: _controlsVisible ? Offset.zero : const Offset(0, 1.4), - child: IgnorePointer( - ignoring: !_controlsVisible, - child: _MediaActionBar( - isFavorite: _currentItem.isFavorite, - isBusy: _isBusy, - opacity: provider.bottomBarOpacity, - blurSigma: provider.bottomBarBlur, - onShare: () => _shareCurrentItem(provider), - onFavorite: () => _toggleFavorite(provider), - onDelete: () => _deleteCurrentItem(provider), - onOpenExternally: () => _openExternally(provider), - onDownload: () => _downloadToDevice(provider), + // The action bar floats just above the details peek below it, + // rather than overlapping it. + Padding( + padding: EdgeInsets.only( + bottom: MediaQuery.sizeOf(context).height * 0.16, + ), + child: Align( + alignment: Alignment.bottomCenter, + child: AnimatedSlide( + duration: const Duration(milliseconds: 220), + curve: Curves.easeInOutCubic, + offset: _controlsVisible ? Offset.zero : const Offset(0, 1.4), + child: IgnorePointer( + ignoring: !_controlsVisible, + child: _MediaActionBar( + isFavorite: _currentItem.isFavorite, + isBusy: _isBusy, + opacity: provider.bottomBarOpacity, + blurSigma: provider.bottomBarBlur, + onShare: () => ShareSheet.show(context, _currentItem), + onFavorite: () => _toggleFavorite(provider), + onDelete: () => _deleteCurrentItem(provider), + onOpenExternally: () => _openExternally(provider), + onDownload: () => _downloadToDevice(provider), + onDetails: () => DetailsSheet.show(context, _currentItem), + ), ), ), ), ), + // Always-present peek of the current item's details, draggable + // up into the full Info/Versions/Activity sheet. + Positioned.fill( + child: IgnorePointer( + ignoring: !_controlsVisible, + child: AnimatedOpacity( + opacity: _controlsVisible ? 1 : 0, + duration: const Duration(milliseconds: 200), + child: PeekDetailsSheet(item: _currentItem), + ), + ), + ), ], ), ), @@ -404,6 +433,7 @@ class _FileViewerScreenState extends State { item: widget.item, isBusy: _isBusy, onOpenExternally: () => _openExternally(provider), + onOpenDetails: () => DetailsSheet.show(context, widget.item), ); } } @@ -421,6 +451,7 @@ class _MediaActionBar extends StatelessWidget { final VoidCallback onDelete; final VoidCallback onOpenExternally; final VoidCallback onDownload; + final VoidCallback onDetails; const _MediaActionBar({ required this.isFavorite, @@ -432,6 +463,7 @@ class _MediaActionBar extends StatelessWidget { required this.onDelete, required this.onOpenExternally, required this.onDownload, + required this.onDetails, }); @override @@ -458,10 +490,10 @@ class _MediaActionBar extends StatelessWidget { ), _ActionIconButton( icon: isFavorite - ? Icons.star_rounded - : Icons.star_outline_rounded, + ? Icons.favorite_rounded + : Icons.favorite_border_rounded, tooltip: 'Favorite', - color: isFavorite ? Colors.amber : null, + color: isFavorite ? Colors.red : null, onTap: onFavorite, ), _ActionIconButton( @@ -480,6 +512,11 @@ class _MediaActionBar extends StatelessWidget { color: colorScheme.error, onTap: isBusy ? null : onDelete, ), + _ActionIconButton( + icon: Icons.info_outline_rounded, + tooltip: 'Details', + onTap: onDetails, + ), ], ), ), @@ -524,35 +561,102 @@ class _ActionIconButton extends StatelessWidget { } } -class _ImagePreview extends StatelessWidget { +class _ImagePreview extends StatefulWidget { final String url; final Map headers; const _ImagePreview({super.key, required this.url, required this.headers}); + @override + State<_ImagePreview> createState() => _ImagePreviewState(); +} + +class _ImagePreviewState extends State<_ImagePreview> + with SingleTickerProviderStateMixin { + static const _doubleTapScale = 3.0; + + final TransformationController _transformController = + TransformationController(); + late final AnimationController _animController; + Animation? _animation; + Offset _doubleTapPosition = Offset.zero; + + @override + void initState() { + super.initState(); + _animController = + AnimationController( + vsync: this, + duration: const Duration(milliseconds: 220), + )..addListener(() { + if (_animation != null) { + _transformController.value = _animation!.value; + } + }); + } + + @override + void dispose() { + _animController.dispose(); + _transformController.dispose(); + super.dispose(); + } + + void _onDoubleTapDown(TapDownDetails details) { + _doubleTapPosition = details.localPosition; + } + + void _onDoubleTap() { + final isZoomedIn = _transformController.value.getMaxScaleOnAxis() > 1.01; + final Matrix4 endMatrix; + if (isZoomedIn) { + endMatrix = Matrix4.identity(); + } else { + final p = _doubleTapPosition; + endMatrix = Matrix4.identity() + ..translateByDouble( + -p.dx * (_doubleTapScale - 1), + -p.dy * (_doubleTapScale - 1), + 0, + 1, + ) + ..scaleByDouble(_doubleTapScale, _doubleTapScale, _doubleTapScale, 1); + } + _animation = Matrix4Tween( + begin: _transformController.value, + end: endMatrix, + ).animate(CurveTween(curve: Curves.easeOut).animate(_animController)); + _animController.forward(from: 0); + } + @override Widget build(BuildContext context) { final colorScheme = Theme.of(context).colorScheme; return SizedBox.expand( - child: InteractiveViewer( - minScale: 0.8, - maxScale: 5.0, - child: Center( - child: Image.network( - url, - headers: headers, - fit: BoxFit.contain, - loadingBuilder: (context, child, progress) { - if (progress == null) return child; - return Center( - child: CircularProgressIndicator(color: colorScheme.primary), - ); - }, - errorBuilder: (context, error, stack) => Center( - child: Icon( - Icons.broken_image_outlined, - color: colorScheme.onSurfaceVariant, - size: 64, + child: GestureDetector( + onDoubleTapDown: _onDoubleTapDown, + onDoubleTap: _onDoubleTap, + child: InteractiveViewer( + transformationController: _transformController, + minScale: 0.8, + maxScale: 5.0, + child: Center( + child: Image.network( + widget.url, + headers: widget.headers, + fit: BoxFit.contain, + loadingBuilder: (context, child, progress) { + if (progress == null) return child; + return Center( + child: CircularProgressIndicator(color: colorScheme.primary), + ); + }, + errorBuilder: (context, error, stack) => Center( + child: Icon( + Icons.broken_image_outlined, + color: colorScheme.onSurfaceVariant, + size: 64, + ), ), ), ), @@ -647,6 +751,9 @@ class _VideoPreviewState extends State<_VideoPreview> { @override Widget build(BuildContext context) { final colorScheme = Theme.of(context).colorScheme; + final progressBarStyle = context + .watch() + .mediaProgressBarStyle; if (_error != null) { return Center( child: Text( @@ -737,6 +844,7 @@ class _VideoPreviewState extends State<_VideoPreview> { controller: controller, playedColor: fg, trackColor: fg.withValues(alpha: 0.3), + style: progressBarStyle, ), ), ], @@ -760,11 +868,13 @@ class _WavySeekBar extends StatefulWidget { final VideoPlayerController controller; final Color playedColor; final Color trackColor; + final MediaProgressBarStyle style; const _WavySeekBar({ required this.controller, required this.playedColor, required this.trackColor, + required this.style, }); @override @@ -793,7 +903,8 @@ class _WavySeekBarState extends State<_WavySeekBar> @override Widget build(BuildContext context) { final value = widget.controller.value; - final isPlaying = value.isPlaying && _dragRatio == null; + final isWavy = widget.style == MediaProgressBarStyle.wavy; + final isPlaying = isWavy && value.isPlaying && _dragRatio == null; if (isPlaying && !_waveController.isAnimating) { _waveController.repeat(); } else if (!isPlaying && _waveController.isAnimating) { @@ -976,7 +1087,14 @@ class _PdfPreviewState extends State<_PdfPreview> { child: CircularProgressIndicator(color: colorScheme.primary), ); } - return PdfViewPinch(controller: _controller!); + // pdfx's own default minScale (1.0 = the page's true/100% size) is + // often *larger* than the fit-to-width size a wide page first renders + // at, since that initial render is just normal box layout, not the + // InteractiveViewer transform pinching engages on first touch - so the + // moment you touch the page it snaps up to 1.0 and, with the default + // floor, can never pinch back down past it. A low floor here lets you + // zoom back out past that to the fit-width view you started at. + return PdfViewPinch(controller: _controller!, minScale: 0.3); } } @@ -1049,11 +1167,13 @@ class _UnsupportedPreview extends StatelessWidget { final NextcloudItem item; final bool isBusy; final VoidCallback onOpenExternally; + final VoidCallback onOpenDetails; const _UnsupportedPreview({ required this.item, required this.isBusy, required this.onOpenExternally, + required this.onOpenDetails, }); @override @@ -1094,6 +1214,12 @@ class _UnsupportedPreview extends StatelessWidget { icon: const Icon(Icons.open_in_new_rounded), label: const Text('Open with...'), ), + const SizedBox(height: 12), + OutlinedButton.icon( + onPressed: onOpenDetails, + icon: const Icon(Icons.info_outline_rounded), + label: const Text('Details'), + ), ], ), ), diff --git a/lib/views/files_view.dart b/lib/views/files_view.dart index 6141ba3..fc3a948 100644 --- a/lib/views/files_view.dart +++ b/lib/views/files_view.dart @@ -1,27 +1,29 @@ import 'package:file_picker/file_picker.dart'; import 'package:file_saver/file_saver.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; import 'package:intl/intl.dart'; import 'package:material_symbols_icons/symbols.dart'; import 'package:path/path.dart' as p; import 'package:path_provider/path_provider.dart'; import 'package:provider/provider.dart'; +import 'package:share_plus/share_plus.dart'; import '../models/nextcloud_item.dart'; +import '../models/selection_action.dart'; import '../providers/server_provider.dart'; +import '../widgets/breadcrumbs.dart'; +import '../widgets/details/details_sheet.dart'; +import '../widgets/more_tabs_button.dart'; import '../widgets/profile_avatar_button.dart'; import '../widgets/segmented_icon_toggle.dart'; +import '../widgets/selectable_thumbnail.dart'; +import '../widgets/share_sheet.dart'; +import '../widgets/sort_menu_button.dart'; +import '../widgets/sticky_header_delegate.dart'; +import '../widgets/swipeable_item.dart'; +import '../widgets/synced_header_scaffold.dart'; import 'file_viewer_screen.dart'; -String _formatBytes(int bytes) { - if (bytes <= 0) return '0 B'; - if (bytes < 1024) return '$bytes B'; - if (bytes < 1024 * 1024) return '${(bytes / 1024).toStringAsFixed(1)} KB'; - if (bytes < 1024 * 1024 * 1024) { - return '${(bytes / (1024 * 1024)).toStringAsFixed(1)} MB'; - } - return '${(bytes / (1024 * 1024 * 1024)).toStringAsFixed(2)} GB'; -} - class FilesView extends StatefulWidget { final ScrollController scrollController; @@ -161,301 +163,253 @@ class _ItemThumbnail extends StatelessWidget { } } -String _sortFieldLabel(FileSortField field) { - switch (field) { - case FileSortField.name: - return 'Name'; - case FileSortField.dateCreated: - return 'Date created'; - case FileSortField.dateModified: - return 'Date modified'; - case FileSortField.size: - return 'Size'; - } -} - -/// Dropdown trigger (replacing the old "My files" label) for choosing which -/// field the file list is sorted by. -class _SortMenuButton extends StatelessWidget { - final FileSortField field; - final ValueChanged onChanged; - - const _SortMenuButton({required this.field, required this.onChanged}); - - @override - Widget build(BuildContext context) { - final theme = Theme.of(context); - final colorScheme = theme.colorScheme; - - return PopupMenuButton( - initialValue: field, - onSelected: onChanged, - offset: const Offset(0, 36), - shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), - itemBuilder: (context) => FileSortField.values.map((f) { - return PopupMenuItem( - value: f, - child: Row( - children: [ - SizedBox( - width: 20, - child: f == field - ? Icon( - Icons.check_rounded, - size: 18, - color: colorScheme.primary, - ) - : null, - ), - const SizedBox(width: 8), - Text(_sortFieldLabel(f)), - ], - ), - ); - }).toList(), - child: Padding( - padding: const EdgeInsets.symmetric(vertical: 4), - child: Row( - mainAxisSize: MainAxisSize.min, - children: [ - Text( - _sortFieldLabel(field), - style: theme.textTheme.bodyMedium?.copyWith( - fontWeight: FontWeight.w600, - color: colorScheme.onSurfaceVariant, - ), - maxLines: 1, - overflow: TextOverflow.ellipsis, - ), - Icon( - Icons.arrow_drop_down_rounded, - color: colorScheme.onSurfaceVariant, - ), - ], - ), - ), - ); - } -} - -/// Tappable "Home / Folder / Sub-folder" trail shown under the sort/filter -/// row whenever the user has navigated below the root. -class _Breadcrumbs extends StatelessWidget { - final List pathStack; - final ValueChanged onTap; - - const _Breadcrumbs({required this.pathStack, required this.onTap}); - - String _labelFor(int index) { - if (index == 0) return 'Home'; - final segments = pathStack[index] - .split('/') - .where((s) => s.isNotEmpty) - .toList(); - return segments.isEmpty ? 'Home' : segments.last; - } - - @override - Widget build(BuildContext context) { - final theme = Theme.of(context); - final colorScheme = theme.colorScheme; - final lastIndex = pathStack.length - 1; - - return SingleChildScrollView( - scrollDirection: Axis.horizontal, - child: Row( - children: [ - for (var i = 0; i < pathStack.length; i++) ...[ - if (i > 0) - Padding( - padding: const EdgeInsets.symmetric(horizontal: 2), - child: Icon( - Icons.chevron_right_rounded, - size: 16, - color: colorScheme.outlineVariant, - ), - ), - if (i == lastIndex) - Text( - _labelFor(i), - style: theme.textTheme.bodySmall?.copyWith( - fontWeight: FontWeight.w700, - color: colorScheme.onSurface, - ), - ) - else - InkWell( - borderRadius: BorderRadius.circular(8), - onTap: () => onTap(i), - child: Padding( - padding: const EdgeInsets.symmetric( - horizontal: 2, - vertical: 2, - ), - child: Text( - _labelFor(i), - style: theme.textTheme.bodySmall?.copyWith( - fontWeight: FontWeight.w600, - color: colorScheme.primary, - ), - ), - ), - ), - ], - ], - ), - ); - } -} - class _FilesViewState extends State { - static const double _lockThreshold = 100; - static const double _syncThreshold = 14; - static const double _pullingEpsilon = 8; + final Set _selectedIds = {}; - bool _headerLocked = false; - bool _isPulling = false; - double _pullDistance = 0; + bool get _isSelecting => _selectedIds.isNotEmpty; - void _revealPanel() { - if (widget.scrollController.hasClients) { - widget.scrollController.animateTo( - 0, - duration: const Duration(milliseconds: 300), - curve: Curves.easeOutCubic, + void _toggleSelection(NextcloudItem item) { + HapticFeedback.selectionClick(); + setState(() { + if (!_selectedIds.remove(item.id)) _selectedIds.add(item.id); + }); + } + + void _clearSelection() { + setState(_selectedIds.clear); + } + + /// The bulk actions shown in the sticky selection toolbar for the + /// currently-selected items. + List _buildSelectionActions( + ServerProvider provider, + List selected, + ) { + return [ + SelectionAction( + icon: selected.every((i) => i.isFavorite) + ? Icons.favorite_rounded + : Icons.favorite_border_rounded, + label: selected.every((i) => i.isFavorite) + ? 'Remove from favorites' + : 'Favorite', + color: Colors.red.shade400, + onTap: () => _favoriteSelected(provider, selected), + ), + SelectionAction( + icon: Icons.share_rounded, + label: 'Share', + onTap: () => selected.length == 1 + ? ShareSheet.show(context, selected.single) + : _shareSelected(context, provider, selected), + ), + SelectionAction( + icon: Icons.download_rounded, + label: 'Download', + onTap: () => _downloadSelected(context, provider, selected), + ), + SelectionAction( + icon: Icons.delete_outline_rounded, + label: 'Delete', + color: Theme.of(context).colorScheme.error, + onTap: () => _confirmDeleteSelected(context, provider, selected), + ), + if (selected.length == 1) + SelectionAction( + icon: Icons.info_outline_rounded, + label: 'Details', + onTap: () => DetailsSheet.show(context, selected.single), + ), + ]; + } + + Future _shareSelected( + BuildContext context, + ServerProvider provider, + List items, + ) async { + final messenger = ScaffoldMessenger.of(context); + messenger.showSnackBar( + const SnackBar( + content: Text('Creating share link(s)…'), + behavior: SnackBarBehavior.floating, + ), + ); + + final lines = []; + for (final item in items) { + final link = await provider.createShareLink(item); + if (link != null) { + lines.add(items.length > 1 ? '${item.name}: $link' : link); + } + } + + if (!mounted) return; + messenger.hideCurrentSnackBar(); + _clearSelection(); + if (lines.isEmpty) { + messenger.showSnackBar( + const SnackBar( + content: Text('Could not create share link(s)'), + behavior: SnackBarBehavior.floating, + ), + ); + return; + } + + try { + await SharePlus.instance.share(ShareParams(text: lines.join('\n'))); + } catch (_) { + if (!mounted) return; + messenger.showSnackBar( + const SnackBar( + content: Text('Could not open the share sheet'), + behavior: SnackBarBehavior.floating, + ), ); } } - void _lockOpen() { - if (!_headerLocked) setState(() => _headerLocked = true); - _revealPanel(); - } - - bool _handleScrollNotification(ScrollNotification notification) { - final metrics = notification.metrics; - if (metrics.pixels < metrics.minScrollExtent) { - _pullDistance = metrics.minScrollExtent - metrics.pixels; - final pulling = _pullDistance > _pullingEpsilon; - if (pulling != _isPulling && !_headerLocked) { - setState(() => _isPulling = pulling); - } - } else if (_isPulling) { - setState(() => _isPulling = false); - } - - if (notification is ScrollEndNotification) { - final pulled = _pullDistance; - _pullDistance = 0; - if (_isPulling) setState(() => _isPulling = false); - - if (pulled >= _lockThreshold) { - _lockOpen(); - context.read().refreshData(); - } else if (pulled >= _syncThreshold) { - context.read().refreshData(); - } - } - return false; - } - @override Widget build(BuildContext context) { final theme = Theme.of(context); final colorScheme = theme.colorScheme; final provider = context.watch(); - final Widget leadingWidget; - if (_headerLocked) { - leadingWidget = IconButton( - icon: const Icon(Icons.keyboard_arrow_up_rounded), - tooltip: 'Collapse', - onPressed: () => setState(() => _headerLocked = false), - ); - } else if (_isPulling) { - leadingWidget = const SizedBox.shrink(); - } else { - leadingWidget = _SyncStatusChip(provider: provider, onTap: _lockOpen); - } + final hasBreadcrumbs = provider.pathStack.length > 1; + final selectedItems = provider.items + .where((i) => _selectedIds.contains(i.id)) + .toList(); - final List contentSlivers = [ - SliverToBoxAdapter( - child: Padding( - padding: const EdgeInsets.fromLTRB(20, 16, 20, 12), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Row( - children: [ - IconButton( - icon: Icon( - provider.sortAscending - ? Icons.arrow_upward_rounded - : Icons.arrow_downward_rounded, - size: 20, + final controlsRow = Padding( + padding: const EdgeInsets.fromLTRB(20, 16, 20, 12), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SizedBox( + height: 44, + child: Row( + children: [ + IconButton( + icon: Icon( + provider.sortAscending + ? Icons.arrow_upward_rounded + : Icons.arrow_downward_rounded, + size: 20, + ), + visualDensity: VisualDensity.compact, + tooltip: provider.sortAscending ? 'Ascending' : 'Descending', + onPressed: provider.toggleSortOrder, + ), + Expanded( + child: SortMenuButton( + field: provider.sortField, + onChanged: provider.setSortField, + ), + ), + ToggleIconButton( + icon: provider.showFavoritesOnlyFiles + ? Icons.favorite_rounded + : Icons.favorite_border_rounded, + isSelected: provider.showFavoritesOnlyFiles, + onTap: provider.toggleFavoritesFilterFiles, + tooltip: 'Favorites only', + ), + const SizedBox(width: 4), + ToggleIconButton( + icon: provider.showHiddenFiles + ? Icons.visibility_rounded + : Icons.visibility_off_rounded, + isSelected: provider.showHiddenFiles, + onTap: provider.toggleShowHiddenFiles, + tooltip: 'Show hidden files', + ), + const SizedBox(width: 4), + SegmentedIconGroup( + children: [ + ToggleIconButton( + icon: Symbols.circles_rounded, + isSelected: provider.storageScope == StorageScope.cloud, + onTap: () => provider.setStorageScope(StorageScope.cloud), + tooltip: 'Cloud storage', ), - visualDensity: VisualDensity.compact, - tooltip: provider.sortAscending - ? 'Ascending' - : 'Descending', - onPressed: provider.toggleSortOrder, - ), - Expanded( - child: _SortMenuButton( - field: provider.sortField, - onChanged: provider.setSortField, + ToggleIconButton( + icon: Symbols.hard_drive_rounded, + isSelected: + provider.storageScope == StorageScope.external, + onTap: () => + provider.setStorageScope(StorageScope.external), + tooltip: 'External storage', ), - ), - ToggleIconButton( - icon: Icons.star_rounded, - isSelected: provider.showFavoritesOnly, - onTap: provider.toggleFavoritesFilter, - tooltip: 'Favorites only', - ), - const SizedBox(width: 4), - ToggleIconButton( - icon: Symbols.hard_drive_rounded, - isSelected: provider.showExternalOnly, - onTap: provider.toggleExternalStorageFilter, - tooltip: 'External storage only', - ), - const SizedBox(width: 4), - ToggleIconButton( - icon: Icons.visibility_rounded, - isSelected: provider.showHidden, - onTap: provider.toggleShowHidden, - tooltip: 'Show hidden files', - ), - const SizedBox(width: 8), - SegmentedIconGroup( - children: [ - ToggleIconButton( - icon: Icons.view_list_rounded, - isSelected: !provider.isGridView, - onTap: () => provider.setGridView(false), - tooltip: 'List view', - ), - ToggleIconButton( - icon: Icons.grid_view_rounded, - isSelected: provider.isGridView, - onTap: () => provider.setGridView(true), - tooltip: 'Grid view', - ), - ], - ), - ], - ), - if (provider.pathStack.length > 1) ...[ - const SizedBox(height: 10), - _Breadcrumbs( - pathStack: provider.pathStack, - onTap: (index) => provider.navigateToPathIndex(index), + ], + ), + const SizedBox(width: 8), + SegmentedIconGroup( + children: [ + ToggleIconButton( + icon: Icons.view_list_rounded, + isSelected: !provider.isGridView, + onTap: () => provider.setGridView(false), + tooltip: 'List view', + ), + ToggleIconButton( + icon: Icons.grid_view_rounded, + isSelected: provider.isGridView, + onTap: () => provider.setGridView(true), + tooltip: 'Grid view', + ), + ], ), ], - ], + ), ), + if (hasBreadcrumbs) ...[ + const SizedBox(height: 10), + SizedBox( + height: 32, + child: Breadcrumbs( + pathStack: provider.pathStack, + onTap: (index) => provider.navigateToPathIndex(index), + ), + ), + ], + ], + ), + ); + + final List contentSlivers = [ + // Sticky while browsing; once selecting, the toolbar below takes over + // the pinned slot and this is free to scroll away. + SliverPersistentHeader( + pinned: !_isSelecting, + delegate: StickyHeaderDelegate( + height: hasBreadcrumbs ? 114 : 72, + child: controlsRow, ), ), + if (_isSelecting) + SliverAppBar( + pinned: true, + automaticallyImplyLeading: false, + leading: IconButton( + icon: const Icon(Icons.close_rounded), + tooltip: 'Cancel selection', + onPressed: _clearSelection, + ), + title: Text('${selectedItems.length} selected'), + actions: [ + for (final action in _buildSelectionActions( + provider, + selectedItems, + )) + IconButton( + icon: Icon(action.icon, color: action.color), + tooltip: action.label, + onPressed: action.onTap, + ), + const SizedBox(width: 4), + ], + ), // Files List / Grid if (provider.isLoading) @@ -567,56 +521,130 @@ class _FilesViewState extends State { ]; return PopScope( - canPop: provider.pathStack.length <= 1, + canPop: !_isSelecting && provider.pathStack.length <= 1, onPopInvokedWithResult: (didPop, result) { - if (!didPop) provider.navigateUp(); + if (didPop) return; + if (_isSelecting) { + _clearSelection(); + } else { + provider.navigateUp(); + } }, - child: ColoredBox( - color: colorScheme.surfaceContainer, - child: NotificationListener( - onNotification: _handleScrollNotification, - child: CustomScrollView( - controller: widget.scrollController, - physics: const BouncingScrollPhysics(), - slivers: [ - SliverAppBar( - pinned: true, - stretch: true, - expandedHeight: _headerLocked ? 190 : kToolbarHeight, - collapsedHeight: kToolbarHeight, - backgroundColor: colorScheme.surfaceContainer, - surfaceTintColor: colorScheme.surfaceContainer, - scrolledUnderElevation: 0, - automaticallyImplyLeading: false, - leadingWidth: _headerLocked ? 56 : 160, - leading: leadingWidget, - actions: [ - IconButton( - icon: const Icon(Icons.add_rounded), - tooltip: 'New', - onPressed: () => _showCreateMenu(context, provider), - ), - const ProfileAvatarButton(), - ], - flexibleSpace: FlexibleSpaceBar( - background: _FilesStretchPanel( - provider: provider, - forceVisible: _headerLocked, - ), - ), - ), - DecoratedSliver( - decoration: BoxDecoration( - color: colorScheme.surface, - borderRadius: const BorderRadius.vertical( - top: Radius.circular(28), - ), - ), - sliver: SliverMainAxisGroup(slivers: contentSlivers), - ), - ], + child: SyncedHeaderScaffold( + scrollController: widget.scrollController, + provider: provider, + actions: [ + IconButton( + icon: const Icon(Icons.add_rounded), + tooltip: 'New', + onPressed: () => _showCreateMenu(context, provider), ), - ), + const MoreTabsButton(), + const ProfileAvatarButton(), + ], + contentSlivers: contentSlivers, + ), + ); + } + + Future _favoriteSelected( + ServerProvider provider, + List items, + ) async { + final allFavorited = items.every((i) => i.isFavorite); + for (final item in items) { + if (item.isFavorite == allFavorited) { + await provider.toggleItemFavorite(item); + } + } + _clearSelection(); + } + + Future _downloadSelected( + BuildContext context, + ServerProvider provider, + List items, + ) async { + final messenger = ScaffoldMessenger.of(context); + messenger.showSnackBar( + SnackBar( + content: Text('Downloading ${items.length} item(s)...'), + behavior: SnackBarBehavior.floating, + ), + ); + + var succeeded = 0; + for (final item in items) { + if (item.isFolder) continue; + try { + final tempDir = await getTemporaryDirectory(); + final tempPath = p.join(tempDir.path, item.name); + await provider.service!.downloadToFile(item.path, tempPath); + final ext = p.extension(item.name).replaceFirst('.', ''); + final baseName = p.basenameWithoutExtension(item.name); + await FileSaver.instance.saveFile( + name: baseName, + filePath: tempPath, + ext: ext, + ); + succeeded++; + } catch (_) { + // Reported in the summary snackbar below. + } + } + + _clearSelection(); + messenger.showSnackBar( + SnackBar( + content: Text('Downloaded $succeeded of ${items.length} item(s)'), + behavior: SnackBarBehavior.floating, + ), + ); + } + + Future _confirmDeleteSelected( + BuildContext context, + ServerProvider provider, + List items, + ) async { + final confirmed = await showDialog( + context: context, + builder: (dialogContext) { + return AlertDialog( + title: const Text('Delete Items'), + content: Text( + 'Delete ${items.length} item(s) from the server? This cannot be undone.', + ), + actions: [ + TextButton( + onPressed: () => Navigator.pop(dialogContext, false), + child: const Text('Cancel'), + ), + FilledButton( + style: FilledButton.styleFrom( + backgroundColor: Theme.of(dialogContext).colorScheme.error, + ), + onPressed: () => Navigator.pop(dialogContext, true), + child: const Text('Delete'), + ), + ], + ); + }, + ); + if (confirmed != true || !context.mounted) return; + + final messenger = ScaffoldMessenger.of(context); + var succeeded = 0; + for (final item in items) { + final success = await provider.deleteItem(item.path); + if (success) succeeded++; + } + + _clearSelection(); + messenger.showSnackBar( + SnackBar( + content: Text('Deleted $succeeded of ${items.length} item(s)'), + behavior: SnackBarBehavior.floating, ), ); } @@ -628,85 +656,104 @@ class _FilesViewState extends State { ) { final theme = Theme.of(context); final colorScheme = theme.colorScheme; + final isSelected = _selectedIds.contains(item.id); - return Padding( - padding: const EdgeInsets.only(bottom: 8), - child: Material( - color: colorScheme.surfaceContainerLow, - borderRadius: BorderRadius.circular(16), - child: InkWell( - borderRadius: BorderRadius.circular(16), - onTap: () { - if (item.isFolder) { - provider.navigateToFolder(item.path); - } else { - _openFile(context, item, provider); - } - }, - child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), - child: Row( - children: [ - _ItemThumbnail( + // No border radius here — the outer ClipRRect below is the only place + // that rounds this tile's corners. Rounding it here too would give the + // tile its own independent rounded edge, which becomes visible as a + // stray floating corner while it slides during a swipe. + final card = Material( + color: isSelected + ? colorScheme.primaryContainer.withValues(alpha: 0.5) + : colorScheme.surfaceContainerLow, + child: InkWell( + onTap: () { + if (_isSelecting) { + _toggleSelection(item); + } else if (item.isFolder) { + provider.navigateToFolder(item.path); + } else { + _openFile(context, item, provider); + } + }, + onLongPress: () => _toggleSelection(item), + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), + child: Row( + children: [ + SelectableThumbnail( + isSelected: isSelected, + size: 44, + checkmarkSize: 24, + child: _ItemThumbnail( item: item, provider: provider, size: 44, borderRadius: 12, iconSize: 22, ), - const SizedBox(width: 14), - Expanded( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - item.name, - maxLines: 1, - overflow: TextOverflow.ellipsis, - style: theme.textTheme.titleMedium?.copyWith( - fontWeight: FontWeight.w600, - fontSize: 14, - ), + ), + const SizedBox(width: 14), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + item.name, + style: theme.textTheme.titleMedium?.copyWith( + fontWeight: FontWeight.w600, + fontSize: 14, ), - const SizedBox(height: 2), - Text( - item.isFolder - ? 'Folder' - : '${_formatBytes(item.size)} • ${DateFormat.yMMMd().format(item.lastModified)}', - style: theme.textTheme.bodySmall?.copyWith( - color: colorScheme.onSurfaceVariant, - ), + ), + const SizedBox(height: 2), + Text( + item.isFolder + ? 'Folder' + : '${formatBytes(item.size)} • ${DateFormat.yMMMd().format(item.lastModified)}', + style: theme.textTheme.bodySmall?.copyWith( + color: colorScheme.onSurfaceVariant, ), - ], - ), + ), + ], ), - IconButton( - icon: Icon( - item.isFavorite - ? Icons.star_rounded - : Icons.star_outline_rounded, - color: item.isFavorite - ? Colors.amber.shade700 - : colorScheme.outlineVariant, - size: 20, - ), - onPressed: () => provider.toggleItemFavorite(item), - ), - IconButton( - icon: Icon( - Icons.more_vert_rounded, - color: colorScheme.onSurfaceVariant, - size: 20, - ), - onPressed: () => - _showFileDetailsSheet(context, item, provider), - ), - ], - ), + ), + ], ), ), ), ); + + final content = _isSelecting + ? card + : SwipeableItem( + itemKey: ValueKey('file-${item.id}'), + provider: provider, + onFavorite: () => provider.toggleItemFavorite(item), + onShare: () => ShareSheet.show(context, item), + onDelete: () => _deleteViaSwipe(provider, item), + child: card, + ); + + return Padding( + padding: const EdgeInsets.only(bottom: 8), + child: ClipRRect(borderRadius: BorderRadius.circular(16), child: content), + ); + } + + Future _deleteViaSwipe( + ServerProvider provider, + NextcloudItem item, + ) async { + final success = await provider.deleteItem(item.path); + if (!mounted) return; + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text( + success ? 'Deleted ${item.name}' : 'Failed to delete ${item.name}', + ), + behavior: SnackBarBehavior.floating, + ), + ); } Widget _buildGridCard( @@ -714,76 +761,164 @@ class _FilesViewState extends State { NextcloudItem item, ServerProvider provider, ) { - final theme = Theme.of(context); - final colorScheme = theme.colorScheme; + final isSelected = _selectedIds.contains(item.id); + final isMedia = + (item.type == NextcloudItemType.image || + item.type == NextcloudItemType.video) && + item.previewUrl != null; return Material( - color: colorScheme.surfaceContainerLow, + color: Theme.of(context).colorScheme.surfaceContainerLow, borderRadius: BorderRadius.circular(20), + clipBehavior: Clip.antiAlias, child: InkWell( - borderRadius: BorderRadius.circular(20), onTap: () { - if (item.isFolder) { + if (_isSelecting) { + _toggleSelection(item); + } else if (item.isFolder) { provider.navigateToFolder(item.path); } else { _openFile(context, item, provider); } }, - child: Padding( - padding: const EdgeInsets.all(14), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - _ItemThumbnail( - item: item, - provider: provider, - size: 40, - borderRadius: 12, - iconSize: 24, - ), - IconButton( - icon: Icon( - item.isFavorite - ? Icons.star_rounded - : Icons.star_outline_rounded, - color: item.isFavorite - ? Colors.amber.shade700 - : colorScheme.outlineVariant, - size: 20, - ), - onPressed: () => provider.toggleItemFavorite(item), - ), - ], + onLongPress: () => _toggleSelection(item), + child: SelectableThumbnail( + isSelected: isSelected, + checkmarkSize: 32, + child: isMedia + ? _buildMediaGridContent(context, item, provider) + : _buildPlainGridContent(context, item), + ), + ), + ); + } + + /// Grid content for images/videos: the actual preview fills the whole + /// card as a background, with the name/size legible over a bottom scrim + /// — matching a Google Photos-style grid instead of a small icon badge. + Widget _buildMediaGridContent( + BuildContext context, + NextcloudItem item, + ServerProvider provider, + ) { + final theme = Theme.of(context); + + return LayoutBuilder( + builder: (context, constraints) { + final cachePixels = + (constraints.maxWidth * MediaQuery.of(context).devicePixelRatio) + .round(); + return Stack( + fit: StackFit.expand, + children: [ + Image.network( + item.previewUrl!, + headers: provider.service?.authHeaders, + fit: BoxFit.cover, + cacheWidth: cachePixels, + cacheHeight: cachePixels, + filterQuality: FilterQuality.low, + gaplessPlayback: true, + errorBuilder: (ctx, err, stack) => + _buildPlainGridContent(context, item), + ), + if (item.type == NextcloudItemType.video) + const Center( + child: Icon( + Icons.play_circle_fill_rounded, + color: Colors.white, + size: 36, + ), ), - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - item.name, - maxLines: 2, - overflow: TextOverflow.ellipsis, - style: theme.textTheme.titleMedium?.copyWith( - fontWeight: FontWeight.w600, - fontSize: 13, - ), + Positioned( + left: 0, + right: 0, + bottom: 0, + child: Container( + padding: const EdgeInsets.fromLTRB(10, 20, 10, 8), + decoration: const BoxDecoration( + gradient: LinearGradient( + begin: Alignment.topCenter, + end: Alignment.bottomCenter, + colors: [Colors.transparent, Colors.black87], ), - const SizedBox(height: 2), - Text( - item.isFolder ? 'Folder' : _formatBytes(item.size), - style: theme.textTheme.bodySmall?.copyWith( - color: colorScheme.onSurfaceVariant, - fontSize: 11, + ), + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + item.name, + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: theme.textTheme.titleSmall?.copyWith( + color: Colors.white, + fontWeight: FontWeight.w600, + fontSize: 12, + ), ), - ), - ], + Text( + formatBytes(item.size), + style: theme.textTheme.bodySmall?.copyWith( + color: Colors.white70, + fontSize: 10, + ), + ), + ], + ), + ), + ), + ], + ); + }, + ); + } + + /// Grid content for folders and non-previewable files: an icon badge + /// with name/size below, since there's no meaningful preview to show. + Widget _buildPlainGridContent(BuildContext context, NextcloudItem item) { + final theme = Theme.of(context); + final colorScheme = theme.colorScheme; + final iconColor = _getIconColor(context, item.type); + + return Padding( + padding: const EdgeInsets.all(14), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Container( + width: 40, + height: 40, + decoration: BoxDecoration( + color: iconColor.withValues(alpha: 0.12), + borderRadius: BorderRadius.circular(12), + ), + child: Icon(_getItemIcon(item.type), color: iconColor, size: 24), + ), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + item.name, + maxLines: 2, + overflow: TextOverflow.ellipsis, + style: theme.textTheme.titleMedium?.copyWith( + fontWeight: FontWeight.w600, + fontSize: 13, + ), + ), + const SizedBox(height: 2), + Text( + item.isFolder ? 'Folder' : formatBytes(item.size), + style: theme.textTheme.bodySmall?.copyWith( + color: colorScheme.onSurfaceVariant, + fontSize: 11, + ), ), ], ), - ), + ], ), ); } @@ -799,193 +934,12 @@ class _FilesViewState extends State { ); } - Future _downloadItem( - BuildContext context, - ServerProvider provider, - NextcloudItem item, - ) async { - final messenger = ScaffoldMessenger.of(context); - messenger.showSnackBar( - SnackBar( - content: Text('Downloading ${item.name}...'), - behavior: SnackBarBehavior.floating, - ), - ); - try { - final tempDir = await getTemporaryDirectory(); - final tempPath = p.join(tempDir.path, item.name); - await provider.service!.downloadToFile(item.path, tempPath); - final ext = p.extension(item.name).replaceFirst('.', ''); - final baseName = p.basenameWithoutExtension(item.name); - await FileSaver.instance.saveFile( - name: baseName, - filePath: tempPath, - ext: ext, - ); - messenger.showSnackBar( - SnackBar( - content: Text('Saved ${item.name} to Downloads'), - behavior: SnackBarBehavior.floating, - ), - ); - } catch (e) { - messenger.showSnackBar( - SnackBar( - content: Text('Download failed: $e'), - behavior: SnackBarBehavior.floating, - ), - ); - } - } - - void _showFileDetailsSheet( - BuildContext context, - NextcloudItem item, - ServerProvider provider, - ) { - final theme = Theme.of(context); - final colorScheme = theme.colorScheme; - - showModalBottomSheet( - context: context, - backgroundColor: colorScheme.surfaceContainerHigh, - shape: const RoundedRectangleBorder( - borderRadius: BorderRadius.vertical(top: Radius.circular(28)), - ), - builder: (context) { - return Padding( - padding: const EdgeInsets.fromLTRB(24, 16, 24, 32), - child: Column( - mainAxisSize: MainAxisSize.min, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Center( - child: Container( - width: 36, - height: 4, - decoration: BoxDecoration( - color: colorScheme.outlineVariant, - borderRadius: BorderRadius.circular(2), - ), - ), - ), - const SizedBox(height: 20), - Row( - children: [ - Container( - padding: const EdgeInsets.all(12), - decoration: BoxDecoration( - color: _getIconColor( - context, - item.type, - ).withValues(alpha: 0.12), - borderRadius: BorderRadius.circular(16), - ), - child: Icon( - _getItemIcon(item.type), - color: _getIconColor(context, item.type), - size: 28, - ), - ), - const SizedBox(width: 16), - Expanded( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - item.name, - style: theme.textTheme.titleMedium?.copyWith( - fontWeight: FontWeight.w700, - ), - ), - const SizedBox(height: 2), - Text( - item.path, - style: theme.textTheme.bodySmall?.copyWith( - color: colorScheme.onSurfaceVariant, - ), - ), - ], - ), - ), - ], - ), - const SizedBox(height: 24), - const Divider(height: 1), - const SizedBox(height: 16), - if (!item.isFolder) ...[ - ListTile( - leading: const Icon(Icons.open_in_new_rounded), - title: const Text('Open'), - onTap: () { - Navigator.pop(context); - _openFile(context, item, provider); - }, - ), - ListTile( - leading: const Icon(Icons.download_rounded), - title: const Text('Download'), - onTap: () { - Navigator.pop(context); - _downloadItem(context, provider, item); - }, - ), - ], - ListTile( - leading: Icon( - item.isFavorite - ? Icons.star_rounded - : Icons.star_outline_rounded, - color: item.isFavorite ? Colors.amber.shade700 : null, - ), - title: Text( - item.isFavorite - ? 'Remove from Favorites' - : 'Add to Favorites', - ), - onTap: () { - provider.toggleItemFavorite(item); - Navigator.pop(context); - }, - ), - ListTile( - leading: Icon( - Icons.delete_outline_rounded, - color: colorScheme.error, - ), - title: Text( - 'Delete from Server', - style: TextStyle(color: colorScheme.error), - ), - onTap: () async { - Navigator.pop(context); - final success = await provider.deleteItem(item.path); - if (context.mounted) { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - content: Text( - success - ? 'Deleted ${item.name}' - : 'Failed to delete ${item.name}', - ), - behavior: SnackBarBehavior.floating, - ), - ); - } - }, - ), - ], - ), - ); - }, - ); - } - void _showCreateMenu(BuildContext context, ServerProvider provider) { final colorScheme = Theme.of(context).colorScheme; showModalBottomSheet( context: context, backgroundColor: colorScheme.surfaceContainerHigh, + showDragHandle: true, shape: const RoundedRectangleBorder( borderRadius: BorderRadius.vertical(top: Radius.circular(28)), ), @@ -996,15 +950,6 @@ class _FilesViewState extends State { child: Column( mainAxisSize: MainAxisSize.min, children: [ - Container( - width: 36, - height: 4, - margin: const EdgeInsets.only(bottom: 12), - decoration: BoxDecoration( - color: colorScheme.outlineVariant, - borderRadius: BorderRadius.circular(2), - ), - ), ListTile( leading: const Icon(Icons.upload_file_rounded), title: const Text('Upload File'), @@ -1132,147 +1077,3 @@ class _FilesViewState extends State { } } } - -/// A compact, always-visible summary of the same status shown by -/// [_FilesStretchPanel] — tapping it is a discoverable shortcut for pulling -/// the header down to expand that same "Synced" view. -class _SyncStatusChip extends StatelessWidget { - final ServerProvider provider; - final VoidCallback onTap; - - const _SyncStatusChip({required this.provider, required this.onTap}); - - @override - Widget build(BuildContext context) { - final theme = Theme.of(context); - final colorScheme = theme.colorScheme; - final quota = provider.quota; - - return Padding( - padding: const EdgeInsets.only(left: 12), - child: Material( - color: Colors.transparent, - shape: const StadiumBorder(), - child: InkWell( - onTap: onTap, - customBorder: const StadiumBorder(), - child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 14, vertical: 9), - child: Row( - mainAxisSize: MainAxisSize.min, - children: [ - Icon( - provider.isLoading - ? Icons.cloud_sync_rounded - : Icons.cloud_done_outlined, - color: colorScheme.primary, - size: 18, - ), - const SizedBox(width: 6), - Text( - quota != null ? _formatBytes(quota.usedBytes) : 'Sync', - style: theme.textTheme.labelMedium?.copyWith( - fontWeight: FontWeight.w700, - ), - ), - ], - ), - ), - ), - ), - ); - } -} - -/// Revealed by pulling the "Files" header down past its normal height -/// (Google Photos' "pull to see backup status" pattern). Shows storage quota; -/// [_FilesViewState] decides via [forceVisible] whether it stays locked open. -class _FilesStretchPanel extends StatelessWidget { - final ServerProvider provider; - - /// Keeps the panel fully shown even without live overscroll — used once - /// the header has "locked" open after a deliberate pull-down. - final bool forceVisible; - - const _FilesStretchPanel({required this.provider, this.forceVisible = false}); - - @override - Widget build(BuildContext context) { - final theme = Theme.of(context); - final colorScheme = theme.colorScheme; - final topInset = MediaQuery.of(context).padding.top; - - return LayoutBuilder( - builder: (context, constraints) { - final settings = context - .dependOnInheritedWidgetOfExactType(); - final maxExtent = settings?.maxExtent ?? constraints.maxHeight; - final stretch = (constraints.maxHeight - maxExtent).clamp(0.0, 80.0); - // Reaches 1.0 (title fully hidden) at 50px of pull — comfortably - // before the 100px stretchTriggerOffset that locks the header open. - final progress = forceVisible ? 1.0 : (stretch / 50).clamp(0.0, 1.0); - final quota = provider.quota; - - return Stack( - children: [ - if (progress > 0) - // Anchored below the toolbar row (icons), never the bottom, - // so it can never share space with the title above. - Positioned( - left: 20, - right: 20, - top: topInset + kToolbarHeight + 4, - child: Opacity( - opacity: progress, - child: Column( - mainAxisSize: MainAxisSize.min, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - provider.isLoading ? 'Syncing…' : 'Synced', - style: theme.textTheme.titleLarge?.copyWith( - fontWeight: FontWeight.w700, - ), - ), - const SizedBox(height: 10), - Container( - padding: const EdgeInsets.symmetric( - horizontal: 16, - vertical: 12, - ), - decoration: BoxDecoration( - color: colorScheme.surfaceContainerHigh, - borderRadius: BorderRadius.circular(20), - ), - child: Row( - children: [ - Icon( - Icons.cloud_done_outlined, - color: colorScheme.primary, - ), - const SizedBox(width: 12), - Expanded( - child: Text( - quota != null - ? (quota.totalBytes > 0 - ? '${_formatBytes(quota.usedBytes)} of ${_formatBytes(quota.totalBytes)} used' - : '${_formatBytes(quota.usedBytes)} used') - : 'Pull to refresh', - style: theme.textTheme.titleSmall?.copyWith( - fontWeight: FontWeight.w600, - ), - ), - ), - ], - ), - ), - ], - ), - ), - ), - ], - ); - }, - ); - } -} diff --git a/lib/views/photos_view.dart b/lib/views/photos_view.dart index b7654ed..26977b2 100644 --- a/lib/views/photos_view.dart +++ b/lib/views/photos_view.dart @@ -1,78 +1,314 @@ +import 'package:file_saver/file_saver.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:material_symbols_icons/symbols.dart'; +import 'package:path/path.dart' as p; +import 'package:path_provider/path_provider.dart'; import 'package:provider/provider.dart'; +import 'package:share_plus/share_plus.dart'; import '../models/nextcloud_item.dart'; +import '../models/selection_action.dart'; import '../providers/server_provider.dart'; +import '../widgets/details/details_sheet.dart'; +import '../widgets/more_tabs_button.dart'; import '../widgets/profile_avatar_button.dart'; +import '../widgets/segmented_icon_toggle.dart'; +import '../widgets/selectable_thumbnail.dart'; +import '../widgets/share_sheet.dart'; +import '../widgets/sort_menu_button.dart'; +import '../widgets/sticky_header_delegate.dart'; +import '../widgets/synced_header_scaffold.dart'; import 'file_viewer_screen.dart'; -class PhotosView extends StatelessWidget { +class PhotosView extends StatefulWidget { final ScrollController scrollController; const PhotosView({super.key, required this.scrollController}); + @override + State createState() => _PhotosViewState(); +} + +class _PhotosViewState extends State { + bool _requested = false; + final Set _selectedIds = {}; + + bool get _isSelecting => _selectedIds.isNotEmpty; + + void _toggleSelection(NextcloudItem item) { + HapticFeedback.selectionClick(); + setState(() { + if (!_selectedIds.remove(item.id)) _selectedIds.add(item.id); + }); + } + + void _clearSelection() { + setState(_selectedIds.clear); + } + + /// The bulk actions shown in the sticky selection toolbar for the + /// currently-selected items. + List _buildSelectionActions( + ServerProvider provider, + List selected, + ) { + return [ + SelectionAction( + icon: selected.every((i) => i.isFavorite) + ? Icons.favorite_rounded + : Icons.favorite_border_rounded, + label: selected.every((i) => i.isFavorite) + ? 'Remove from favorites' + : 'Favorite', + color: Colors.red.shade400, + onTap: () => _favoriteSelected(provider, selected), + ), + SelectionAction( + icon: Icons.share_rounded, + label: 'Share', + onTap: () => selected.length == 1 + ? ShareSheet.show(context, selected.single) + : _shareSelected(context, provider, selected), + ), + SelectionAction( + icon: Icons.download_rounded, + label: 'Download', + onTap: () => _downloadSelected(context, provider, selected), + ), + SelectionAction( + icon: Icons.delete_outline_rounded, + label: 'Delete', + color: Theme.of(context).colorScheme.error, + onTap: () => _confirmDeleteSelected(context, provider, selected), + ), + if (selected.length == 1) + SelectionAction( + icon: Icons.info_outline_rounded, + label: 'Details', + onTap: () => DetailsSheet.show(context, selected.single), + ), + ]; + } + @override Widget build(BuildContext context) { final theme = Theme.of(context); final colorScheme = theme.colorScheme; final provider = context.watch(); - final photos = provider.photoItems; - return CustomScrollView( - controller: scrollController, - physics: const BouncingScrollPhysics(), - slivers: [ + if (!_requested) { + _requested = true; + WidgetsBinding.instance.addPostFrameCallback( + (_) => provider.fetchAllMedia(), + ); + } + + final photos = provider.photoItems; + final selectedItems = photos + .where((i) => _selectedIds.contains(i.id)) + .toList(); + + final controlsRow = Padding( + padding: const EdgeInsets.fromLTRB(16, 16, 16, 0), + child: SizedBox( + height: 44, + child: Row( + children: [ + IconButton( + icon: Icon( + provider.sortAscending + ? Icons.arrow_upward_rounded + : Icons.arrow_downward_rounded, + size: 20, + ), + visualDensity: VisualDensity.compact, + tooltip: provider.sortAscending ? 'Ascending' : 'Descending', + onPressed: provider.toggleSortOrder, + ), + Expanded( + child: SortMenuButton( + field: provider.sortField, + onChanged: provider.setSortField, + ), + ), + ToggleIconButton( + icon: provider.showFavoritesOnlyPhotos + ? Icons.favorite_rounded + : Icons.favorite_border_rounded, + isSelected: provider.showFavoritesOnlyPhotos, + onTap: provider.toggleFavoritesFilterPhotos, + tooltip: 'Favorites only', + ), + const SizedBox(width: 4), + ToggleIconButton( + icon: provider.showHiddenPhotos + ? Icons.visibility_rounded + : Icons.visibility_off_rounded, + isSelected: provider.showHiddenPhotos, + onTap: provider.toggleShowHiddenPhotos, + tooltip: 'Show hidden files', + ), + const SizedBox(width: 4), + SegmentedIconGroup( + children: [ + ToggleIconButton( + icon: Symbols.circles_rounded, + isSelected: provider.storageScope == StorageScope.cloud, + onTap: () => provider.setStorageScope(StorageScope.cloud), + tooltip: 'Cloud storage', + ), + ToggleIconButton( + icon: Symbols.hard_drive_rounded, + isSelected: provider.storageScope == StorageScope.external, + onTap: () => provider.setStorageScope(StorageScope.external), + tooltip: 'External storage', + ), + ], + ), + ], + ), + ), + ); + + final List contentSlivers = [ + // Sticky while browsing; once selecting, the toolbar below takes over + // the pinned slot and this is free to scroll away. + SliverPersistentHeader( + pinned: !_isSelecting, + delegate: StickyHeaderDelegate(height: 60, child: controlsRow), + ), + if (_isSelecting) SliverAppBar( pinned: true, - expandedHeight: kToolbarHeight, - collapsedHeight: kToolbarHeight, - backgroundColor: colorScheme.surface, - surfaceTintColor: colorScheme.surface, - scrolledUnderElevation: 0, - actions: const [ProfileAvatarButton()], + automaticallyImplyLeading: false, + leading: IconButton( + icon: const Icon(Icons.close_rounded), + tooltip: 'Cancel selection', + onPressed: _clearSelection, + ), + title: Text('${selectedItems.length} selected'), + actions: [ + for (final action in _buildSelectionActions( + provider, + selectedItems, + )) + IconButton( + icon: Icon(action.icon, color: action.color), + tooltip: action.label, + onPressed: action.onTap, + ), + const SizedBox(width: 4), + ], ), - const SliverToBoxAdapter(child: SizedBox(height: 8)), + const SliverToBoxAdapter(child: SizedBox(height: 8)), - if (photos.isEmpty) - SliverFillRemaining( - child: Center( + if (provider.isMediaLoading && photos.isEmpty) + const SliverFillRemaining( + hasScrollBody: false, + child: Center(child: CircularProgressIndicator()), + ) + else if (provider.mediaErrorMessage != null) + SliverFillRemaining( + hasScrollBody: false, + child: Center( + child: Padding( + padding: const EdgeInsets.all(24), child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Icon( - Icons.photo_library_outlined, + Icons.error_outline_rounded, size: 64, - color: colorScheme.outlineVariant, + color: colorScheme.error, ), - const SizedBox(height: 12), + const SizedBox(height: 16), Text( - 'No photos found in Nextcloud library', - style: theme.textTheme.titleMedium?.copyWith( + 'Could not load photos', + style: theme.textTheme.titleLarge?.copyWith( + color: colorScheme.error, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(height: 8), + Text( + provider.mediaErrorMessage!, + textAlign: TextAlign.center, + style: theme.textTheme.bodyMedium?.copyWith( color: colorScheme.onSurfaceVariant, ), ), + const SizedBox(height: 20), + FilledButton.icon( + onPressed: provider.fetchAllMedia, + icon: const Icon(Icons.refresh_rounded), + label: const Text('Retry'), + ), ], ), ), - ) - else - SliverPadding( - padding: const EdgeInsets.symmetric(horizontal: 16), - sliver: SliverGrid( - gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount( - crossAxisCount: 3, - crossAxisSpacing: 8, - mainAxisSpacing: 8, - childAspectRatio: 1.0, - ), - delegate: SliverChildBuilderDelegate((context, index) { - final photo = photos[index]; - return _buildPhotoTile(context, photo, provider); - }, childCount: photos.length), + ), + ) + else if (photos.isEmpty) + SliverFillRemaining( + hasScrollBody: false, + child: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Icons.photo_library_outlined, + size: 64, + color: colorScheme.outlineVariant, + ), + const SizedBox(height: 12), + Text( + 'No photos found in Nextcloud library', + style: theme.textTheme.titleMedium?.copyWith( + color: colorScheme.onSurfaceVariant, + ), + ), + ], ), ), + ) + else + SliverPadding( + padding: const EdgeInsets.symmetric(horizontal: 16), + sliver: SliverGrid( + gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: 3, + crossAxisSpacing: 8, + mainAxisSpacing: 8, + childAspectRatio: 1.0, + ), + delegate: SliverChildBuilderDelegate((context, index) { + final photo = photos[index]; + return _buildPhotoTile(context, photo, provider); + }, childCount: photos.length), + ), + ), - const SliverToBoxAdapter(child: SizedBox(height: 100)), - ], + // Fixed clearance so the last row isn't hidden behind the floating + // nav bar, regardless of grid length. + const SliverToBoxAdapter(child: SizedBox(height: 100)), + // For a short grid this stretches the white card's background down to + // the screen edge (matching the empty state above); for a long grid + // that already fills the viewport it contributes nothing extra. + const SliverFillRemaining(hasScrollBody: false, child: SizedBox()), + ]; + + return PopScope( + canPop: !_isSelecting, + onPopInvokedWithResult: (didPop, result) { + if (!didPop && _isSelecting) _clearSelection(); + }, + child: SyncedHeaderScaffold( + scrollController: widget.scrollController, + provider: provider, + actions: const [MoreTabsButton(), ProfileAvatarButton()], + onRefresh: provider.fetchAllMedia, + contentSlivers: contentSlivers, + ), ); } @@ -81,71 +317,87 @@ class PhotosView extends StatelessWidget { NextcloudItem photo, ServerProvider provider, ) { - final theme = Theme.of(context); - final colorScheme = theme.colorScheme; + final colorScheme = Theme.of(context).colorScheme; + final isSelected = _selectedIds.contains(photo.id); - return GestureDetector( - onTap: () => _openLightbox(context, photo, provider), - child: Container( - decoration: BoxDecoration( - color: colorScheme.surfaceContainerHigh, - borderRadius: BorderRadius.circular(16), - ), - clipBehavior: Clip.antiAlias, - child: Stack( - fit: StackFit.expand, - children: [ - photo.previewUrl != null - ? LayoutBuilder( - builder: (context, constraints) { - // Decode at the tile's actual rendered size rather - // than the full 500x500 preview the server returns — - // cheaper to decode/cache while scrolling a grid. - final cachePixels = - (constraints.maxWidth * - MediaQuery.of(context).devicePixelRatio) - .round(); - return Image.network( - photo.previewUrl!, - headers: provider.service?.authHeaders, - fit: BoxFit.cover, - cacheWidth: cachePixels, - cacheHeight: cachePixels, - filterQuality: FilterQuality.low, - gaplessPlayback: true, - errorBuilder: (ctx, err, stack) => - _buildFallbackTile(context, photo), - ); - }, - ) - : _buildFallbackTile(context, photo), - if (photo.type == NextcloudItemType.video) - Positioned( - bottom: 8, - right: 8, - child: Container( - padding: const EdgeInsets.all(4), - decoration: BoxDecoration( - color: Colors.black.withValues(alpha: 0.6), - shape: BoxShape.circle, - ), - child: const Icon( - Icons.play_arrow_rounded, - color: Colors.white, - size: 16, + // No border radius on the tile itself — the outer ClipRRect below is + // the only place that rounds it, so a swipe doesn't reveal a stray + // floating rounded corner mid-drag (see the same fix in files_view). + final tile = GestureDetector( + onTap: () { + if (_isSelecting) { + _toggleSelection(photo); + } else { + _openLightbox(context, photo, provider); + } + }, + onLongPress: () => _toggleSelection(photo), + child: ColoredBox( + color: colorScheme.surfaceContainerHigh, + child: SelectableThumbnail( + isSelected: isSelected, + checkmarkSize: 32, + child: Stack( + fit: StackFit.expand, + children: [ + photo.previewUrl != null + ? LayoutBuilder( + builder: (context, constraints) { + // Decode at the tile's actual rendered size rather + // than the full 500x500 preview the server returns — + // cheaper to decode/cache while scrolling a grid. + final cachePixels = + (constraints.maxWidth * + MediaQuery.of(context).devicePixelRatio) + .round(); + return Image.network( + photo.previewUrl!, + headers: provider.service?.authHeaders, + fit: BoxFit.cover, + cacheWidth: cachePixels, + cacheHeight: cachePixels, + filterQuality: FilterQuality.low, + gaplessPlayback: true, + errorBuilder: (ctx, err, stack) => + _buildFallbackTile(context, photo), + ); + }, + ) + : _buildFallbackTile(context, photo), + if (photo.type == NextcloudItemType.video) + Positioned( + bottom: 8, + right: 8, + child: Container( + padding: const EdgeInsets.all(4), + decoration: BoxDecoration( + color: Colors.black.withValues(alpha: 0.6), + shape: BoxShape.circle, + ), + child: const Icon( + Icons.play_arrow_rounded, + color: Colors.white, + size: 16, + ), ), ), - ), - if (photo.isFavorite) - const Positioned( - top: 8, - right: 8, - child: Icon(Icons.star_rounded, color: Colors.amber, size: 18), - ), - ], + if (photo.isFavorite) + const Positioned( + top: 8, + right: 8, + child: Icon( + Icons.favorite_rounded, + color: Colors.red, + size: 18, + ), + ), + ], + ), ), ), ); + + return ClipRRect(borderRadius: BorderRadius.circular(16), child: tile); } Widget _buildFallbackTile(BuildContext context, NextcloudItem photo) { @@ -174,4 +426,152 @@ class PhotosView extends StatelessWidget { FileViewerScreen.route(item: photo, siblings: provider.photoItems), ); } + + Future _favoriteSelected( + ServerProvider provider, + List items, + ) async { + final allFavorited = items.every((i) => i.isFavorite); + for (final item in items) { + if (item.isFavorite == allFavorited) { + await provider.toggleItemFavorite(item); + } + } + _clearSelection(); + } + + Future _shareSelected( + BuildContext context, + ServerProvider provider, + List items, + ) async { + final messenger = ScaffoldMessenger.of(context); + messenger.showSnackBar( + const SnackBar( + content: Text('Creating share link(s)…'), + behavior: SnackBarBehavior.floating, + ), + ); + + final lines = []; + for (final item in items) { + final link = await provider.createShareLink(item); + if (link != null) { + lines.add(items.length > 1 ? '${item.name}: $link' : link); + } + } + + if (!mounted) return; + messenger.hideCurrentSnackBar(); + _clearSelection(); + if (lines.isEmpty) { + messenger.showSnackBar( + const SnackBar( + content: Text('Could not create share link(s)'), + behavior: SnackBarBehavior.floating, + ), + ); + return; + } + + try { + await SharePlus.instance.share(ShareParams(text: lines.join('\n'))); + } catch (_) { + if (!mounted) return; + messenger.showSnackBar( + const SnackBar( + content: Text('Could not open the share sheet'), + behavior: SnackBarBehavior.floating, + ), + ); + } + } + + Future _downloadSelected( + BuildContext context, + ServerProvider provider, + List items, + ) async { + final messenger = ScaffoldMessenger.of(context); + messenger.showSnackBar( + SnackBar( + content: Text('Downloading ${items.length} item(s)...'), + behavior: SnackBarBehavior.floating, + ), + ); + + var succeeded = 0; + for (final item in items) { + try { + final tempDir = await getTemporaryDirectory(); + final tempPath = p.join(tempDir.path, item.name); + await provider.service!.downloadToFile(item.path, tempPath); + final ext = p.extension(item.name).replaceFirst('.', ''); + final baseName = p.basenameWithoutExtension(item.name); + await FileSaver.instance.saveFile( + name: baseName, + filePath: tempPath, + ext: ext, + ); + succeeded++; + } catch (_) { + // Reported in the summary snackbar below. + } + } + + _clearSelection(); + messenger.showSnackBar( + SnackBar( + content: Text('Downloaded $succeeded of ${items.length} item(s)'), + behavior: SnackBarBehavior.floating, + ), + ); + } + + Future _confirmDeleteSelected( + BuildContext context, + ServerProvider provider, + List items, + ) async { + final confirmed = await showDialog( + context: context, + builder: (dialogContext) { + return AlertDialog( + title: const Text('Delete Items'), + content: Text( + 'Delete ${items.length} item(s) from the server? This cannot be undone.', + ), + actions: [ + TextButton( + onPressed: () => Navigator.pop(dialogContext, false), + child: const Text('Cancel'), + ), + FilledButton( + style: FilledButton.styleFrom( + backgroundColor: Theme.of(dialogContext).colorScheme.error, + ), + onPressed: () => Navigator.pop(dialogContext, true), + child: const Text('Delete'), + ), + ], + ); + }, + ); + if (confirmed != true || !context.mounted) return; + + final messenger = ScaffoldMessenger.of(context); + var succeeded = 0; + for (final item in items) { + final success = await provider.deleteItem(item.path); + if (success) succeeded++; + } + + _clearSelection(); + messenger.showSnackBar( + SnackBar( + content: Text('Deleted $succeeded of ${items.length} item(s)'), + behavior: SnackBarBehavior.floating, + ), + ); + } } diff --git a/lib/views/recent_view.dart b/lib/views/recent_view.dart new file mode 100644 index 0000000..6ed726b --- /dev/null +++ b/lib/views/recent_view.dart @@ -0,0 +1,262 @@ +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:provider/provider.dart'; +import '../models/nextcloud_item.dart'; +import '../providers/server_provider.dart'; +import '../widgets/more_tabs_button.dart'; +import '../widgets/profile_avatar_button.dart'; +import '../widgets/synced_header_scaffold.dart'; +import 'file_viewer_screen.dart'; + +IconData _recentItemIcon(NextcloudItemType type) { + switch (type) { + case NextcloudItemType.folder: + return Icons.folder_rounded; + case NextcloudItemType.image: + return Icons.image_rounded; + case NextcloudItemType.video: + return Icons.movie_rounded; + case NextcloudItemType.audio: + return Icons.audiotrack_rounded; + case NextcloudItemType.document: + return Icons.description_rounded; + case NextcloudItemType.archive: + return Icons.folder_zip_rounded; + case NextcloudItemType.file: + return Icons.insert_drive_file_rounded; + } +} + +Color _recentItemIconColor(BuildContext context, NextcloudItemType type) { + final colorScheme = Theme.of(context).colorScheme; + switch (type) { + case NextcloudItemType.folder: + return colorScheme.primary; + case NextcloudItemType.image: + return Colors.amber.shade700; + case NextcloudItemType.video: + return Colors.deepOrange.shade600; + case NextcloudItemType.audio: + return Colors.purple.shade600; + case NextcloudItemType.document: + return Colors.blue.shade700; + case NextcloudItemType.archive: + return Colors.teal.shade700; + case NextcloudItemType.file: + return colorScheme.outline; + } +} + +/// Recently modified files across the whole account (not folders), newest +/// first — see [ServerProvider.fetchRecent]. +class RecentView extends StatefulWidget { + final ScrollController scrollController; + + const RecentView({super.key, required this.scrollController}); + + @override + State createState() => _RecentViewState(); +} + +class _RecentViewState extends State { + bool _requested = false; + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + final colorScheme = theme.colorScheme; + final provider = context.watch(); + + if (!_requested) { + _requested = true; + WidgetsBinding.instance.addPostFrameCallback( + (_) => provider.fetchRecent(), + ); + } + + final items = provider.recentItems; + + final List contentSlivers = [ + const SliverToBoxAdapter(child: SizedBox(height: 16)), + + if (provider.isRecentLoading && items.isEmpty) + const SliverFillRemaining( + hasScrollBody: false, + child: Center(child: CircularProgressIndicator()), + ) + else if (provider.recentErrorMessage != null) + SliverFillRemaining( + hasScrollBody: false, + child: Center( + child: Padding( + padding: const EdgeInsets.all(24), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Icons.error_outline_rounded, + size: 64, + color: colorScheme.error, + ), + const SizedBox(height: 16), + Text( + 'Could not load recent files', + style: theme.textTheme.titleLarge?.copyWith( + color: colorScheme.error, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(height: 8), + Text( + provider.recentErrorMessage!, + textAlign: TextAlign.center, + style: theme.textTheme.bodyMedium?.copyWith( + color: colorScheme.onSurfaceVariant, + ), + ), + const SizedBox(height: 20), + FilledButton.icon( + onPressed: provider.fetchRecent, + icon: const Icon(Icons.refresh_rounded), + label: const Text('Retry'), + ), + ], + ), + ), + ), + ) + else if (items.isEmpty) + SliverFillRemaining( + hasScrollBody: false, + child: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Icons.history_rounded, + size: 64, + color: colorScheme.outlineVariant, + ), + const SizedBox(height: 12), + Text( + 'No recent files', + style: theme.textTheme.titleMedium?.copyWith( + color: colorScheme.onSurfaceVariant, + ), + ), + ], + ), + ), + ) + else + SliverPadding( + padding: const EdgeInsets.symmetric(horizontal: 20), + sliver: SliverList( + delegate: SliverChildBuilderDelegate((context, index) { + final item = items[index]; + return _buildTile(context, item, provider); + }, childCount: items.length), + ), + ), + + const SliverToBoxAdapter(child: SizedBox(height: 100)), + const SliverFillRemaining(hasScrollBody: false, child: SizedBox()), + ]; + + return SyncedHeaderScaffold( + scrollController: widget.scrollController, + provider: provider, + actions: const [MoreTabsButton(), ProfileAvatarButton()], + onRefresh: provider.fetchRecent, + contentSlivers: contentSlivers, + ); + } + + Widget _buildTile( + BuildContext context, + NextcloudItem item, + ServerProvider provider, + ) { + final theme = Theme.of(context); + final colorScheme = theme.colorScheme; + final iconColor = _recentItemIconColor(context, item.type); + final folderPath = item.path.substring( + 0, + item.path.length - item.name.length, + ); + + return Padding( + padding: const EdgeInsets.only(bottom: 8), + child: Material( + color: colorScheme.surfaceContainerLow, + borderRadius: BorderRadius.circular(16), + child: InkWell( + borderRadius: BorderRadius.circular(16), + onTap: () => _openFile(context, item, provider), + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), + child: Row( + children: [ + Container( + width: 44, + height: 44, + decoration: BoxDecoration( + color: iconColor.withValues(alpha: 0.12), + borderRadius: BorderRadius.circular(12), + ), + child: Icon( + _recentItemIcon(item.type), + color: iconColor, + size: 22, + ), + ), + const SizedBox(width: 14), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + item.name, + style: theme.textTheme.titleMedium?.copyWith( + fontWeight: FontWeight.w600, + fontSize: 14, + ), + ), + const SizedBox(height: 2), + Text( + folderPath.isEmpty ? '/' : folderPath, + style: theme.textTheme.bodySmall?.copyWith( + color: colorScheme.onSurfaceVariant, + ), + ), + const SizedBox(height: 2), + Text( + DateFormat.yMMMd().add_jm().format(item.lastModified), + style: theme.textTheme.bodySmall?.copyWith( + color: colorScheme.primary, + fontWeight: FontWeight.w500, + ), + ), + ], + ), + ), + ], + ), + ), + ), + ), + ); + } + + void _openFile( + BuildContext context, + NextcloudItem item, + ServerProvider provider, + ) { + final siblings = provider.recentItems.where((i) => i.isMedia).toList(); + Navigator.push( + context, + FileViewerScreen.route(item: item, siblings: siblings), + ); + } +} diff --git a/lib/views/search_view.dart b/lib/views/search_view.dart index 9c3bc12..260d52f 100644 --- a/lib/views/search_view.dart +++ b/lib/views/search_view.dart @@ -23,14 +23,6 @@ class _SearchViewState extends State { String? _error; bool _hasSearched = false; - @override - void initState() { - super.initState(); - WidgetsBinding.instance.addPostFrameCallback( - (_) => _focusNode.requestFocus(), - ); - } - @override void dispose() { _debounce?.cancel(); @@ -104,30 +96,37 @@ class _SearchViewState extends State { final colorScheme = theme.colorScheme; return Scaffold( - appBar: AppBar( - titleSpacing: 0, - title: TextField( - controller: _controller, - focusNode: _focusNode, - onChanged: _onChanged, - decoration: const InputDecoration( - hintText: 'Search your files...', - border: InputBorder.none, - ), - style: theme.textTheme.titleMedium, - ), - actions: [ - if (_controller.text.isNotEmpty) - IconButton( - icon: const Icon(Icons.close_rounded), - onPressed: () { - _controller.clear(); - _onChanged(''); - }, + body: SafeArea( + child: Column( + children: [ + Padding( + padding: const EdgeInsets.fromLTRB(12, 8, 12, 4), + child: SearchBar( + controller: _controller, + focusNode: _focusNode, + autoFocus: true, + hintText: 'Search your files...', + onChanged: _onChanged, + leading: IconButton( + icon: const Icon(Icons.arrow_back_rounded), + onPressed: () => Navigator.pop(context), + ), + trailing: [ + if (_controller.text.isNotEmpty) + IconButton( + icon: const Icon(Icons.close_rounded), + onPressed: () { + _controller.clear(); + _onChanged(''); + }, + ), + ], + ), ), - ], + Expanded(child: _buildBody(context, colorScheme, theme)), + ], + ), ), - body: _buildBody(context, colorScheme, theme), ); } diff --git a/lib/views/shares_view.dart b/lib/views/shares_view.dart new file mode 100644 index 0000000..09b9358 --- /dev/null +++ b/lib/views/shares_view.dart @@ -0,0 +1,318 @@ +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:provider/provider.dart'; +import '../models/nextcloud_item.dart'; +import '../models/nextcloud_share.dart'; +import '../providers/server_provider.dart'; +import '../widgets/more_tabs_button.dart'; +import '../widgets/profile_avatar_button.dart'; +import '../widgets/synced_header_scaffold.dart'; + +IconData _shareItemIcon(NextcloudItemType type) { + switch (type) { + case NextcloudItemType.folder: + return Icons.folder_rounded; + case NextcloudItemType.image: + return Icons.image_rounded; + case NextcloudItemType.video: + return Icons.movie_rounded; + case NextcloudItemType.audio: + return Icons.audiotrack_rounded; + case NextcloudItemType.document: + return Icons.description_rounded; + case NextcloudItemType.archive: + return Icons.folder_zip_rounded; + case NextcloudItemType.file: + return Icons.insert_drive_file_rounded; + } +} + +IconData _shareTypeIcon(ShareType type) { + switch (type) { + case ShareType.user: + return Icons.person_rounded; + case ShareType.group: + return Icons.groups_rounded; + case ShareType.publicLink: + return Icons.link_rounded; + case ShareType.email: + return Icons.email_rounded; + case ShareType.federated: + return Icons.public_rounded; + case ShareType.other: + return Icons.share_rounded; + } +} + +class SharesView extends StatefulWidget { + final ScrollController scrollController; + + const SharesView({super.key, required this.scrollController}); + + @override + State createState() => _SharesViewState(); +} + +class _SharesViewState extends State { + bool _requested = false; + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + final colorScheme = theme.colorScheme; + final provider = context.watch(); + + if (!_requested) { + _requested = true; + WidgetsBinding.instance.addPostFrameCallback( + (_) => provider.fetchShares(), + ); + } + + final shares = provider.shares; + + final List contentSlivers = [ + SliverToBoxAdapter( + child: Padding( + padding: const EdgeInsets.fromLTRB(20, 16, 20, 8), + child: SegmentedButton( + segments: const [ + ButtonSegment(value: false, label: Text('Shared by me')), + ButtonSegment(value: true, label: Text('Shared with me')), + ], + selected: {provider.sharesWithMe}, + onSelectionChanged: (set) => provider.setSharesWithMe(set.first), + ), + ), + ), + const SliverToBoxAdapter(child: SizedBox(height: 8)), + + if (provider.isSharesLoading && shares.isEmpty) + const SliverFillRemaining( + hasScrollBody: false, + child: Center(child: CircularProgressIndicator()), + ) + else if (provider.sharesErrorMessage != null) + SliverFillRemaining( + hasScrollBody: false, + child: Center( + child: Padding( + padding: const EdgeInsets.all(24), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Icons.error_outline_rounded, + size: 64, + color: colorScheme.error, + ), + const SizedBox(height: 16), + Text( + 'Could not load shares', + style: theme.textTheme.titleLarge?.copyWith( + color: colorScheme.error, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(height: 8), + Text( + provider.sharesErrorMessage!, + textAlign: TextAlign.center, + style: theme.textTheme.bodyMedium?.copyWith( + color: colorScheme.onSurfaceVariant, + ), + ), + const SizedBox(height: 20), + FilledButton.icon( + onPressed: provider.fetchShares, + icon: const Icon(Icons.refresh_rounded), + label: const Text('Retry'), + ), + ], + ), + ), + ), + ) + else if (shares.isEmpty) + SliverFillRemaining( + hasScrollBody: false, + child: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Icons.groups_rounded, + size: 64, + color: colorScheme.outlineVariant, + ), + const SizedBox(height: 12), + Text( + provider.sharesWithMe + ? 'Nothing has been shared with you' + : 'You haven\'t shared anything yet', + style: theme.textTheme.titleMedium?.copyWith( + color: colorScheme.onSurfaceVariant, + ), + ), + ], + ), + ), + ) + else + SliverPadding( + padding: const EdgeInsets.symmetric(horizontal: 20), + sliver: SliverList( + delegate: SliverChildBuilderDelegate((context, index) { + final share = shares[index]; + return _buildShareTile(context, share, provider); + }, childCount: shares.length), + ), + ), + + const SliverToBoxAdapter(child: SizedBox(height: 100)), + const SliverFillRemaining(hasScrollBody: false, child: SizedBox()), + ]; + + return SyncedHeaderScaffold( + scrollController: widget.scrollController, + provider: provider, + actions: const [MoreTabsButton(), ProfileAvatarButton()], + onRefresh: provider.fetchShares, + contentSlivers: contentSlivers, + ); + } + + Widget _buildShareTile( + BuildContext context, + NextcloudShare share, + ServerProvider provider, + ) { + final theme = Theme.of(context); + final colorScheme = theme.colorScheme; + final iconColor = colorScheme.primary; + + final withWhom = share.sharedWithMe + ? 'From ${share.ownerDisplayName}' + : (share.sharedWithDisplayName != null + ? 'With ${share.sharedWithDisplayName}' + : 'Shared link'); + + return Padding( + padding: const EdgeInsets.only(bottom: 8), + child: Material( + color: colorScheme.surfaceContainerLow, + borderRadius: BorderRadius.circular(16), + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), + child: Row( + children: [ + Container( + width: 44, + height: 44, + decoration: BoxDecoration( + color: iconColor.withValues(alpha: 0.12), + borderRadius: BorderRadius.circular(12), + ), + child: Icon( + _shareItemIcon(share.itemType), + color: iconColor, + size: 22, + ), + ), + const SizedBox(width: 14), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + share.name, + style: theme.textTheme.titleMedium?.copyWith( + fontWeight: FontWeight.w600, + fontSize: 14, + ), + ), + const SizedBox(height: 2), + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 2), + child: Icon( + _shareTypeIcon(share.shareType), + size: 13, + color: colorScheme.onSurfaceVariant, + ), + ), + const SizedBox(width: 4), + Expanded( + child: Text( + '$withWhom • ${DateFormat.yMMMd().format(share.sharedAt)}', + style: theme.textTheme.bodySmall?.copyWith( + color: colorScheme.onSurfaceVariant, + ), + ), + ), + ], + ), + ], + ), + ), + IconButton( + icon: Icon(Icons.link_off_rounded, color: colorScheme.error), + tooltip: share.sharedWithMe ? 'Remove' : 'Unshare', + onPressed: () => _confirmUnshare(context, provider, share), + ), + ], + ), + ), + ), + ); + } + + Future _confirmUnshare( + BuildContext context, + ServerProvider provider, + NextcloudShare share, + ) async { + final confirmed = await showDialog( + context: context, + builder: (dialogContext) { + return AlertDialog( + title: Text(share.sharedWithMe ? 'Remove Share' : 'Unshare'), + content: Text( + share.sharedWithMe + ? 'Remove "${share.name}" shared with you by ${share.ownerDisplayName}?' + : 'Stop sharing "${share.name}"?', + ), + actions: [ + TextButton( + onPressed: () => Navigator.pop(dialogContext, false), + child: const Text('Cancel'), + ), + FilledButton( + style: FilledButton.styleFrom( + backgroundColor: Theme.of(dialogContext).colorScheme.error, + ), + onPressed: () => Navigator.pop(dialogContext, true), + child: const Text('Remove'), + ), + ], + ); + }, + ); + if (confirmed != true || !context.mounted) return; + + final messenger = ScaffoldMessenger.of(context); + final success = await provider.deleteShare(share); + messenger.showSnackBar( + SnackBar( + content: Text( + success + ? 'Removed share for ${share.name}' + : 'Failed to remove share for ${share.name}', + ), + behavior: SnackBarBehavior.floating, + ), + ); + } +} diff --git a/lib/views/trash_view.dart b/lib/views/trash_view.dart new file mode 100644 index 0000000..77fb04b --- /dev/null +++ b/lib/views/trash_view.dart @@ -0,0 +1,289 @@ +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:provider/provider.dart'; +import '../models/nextcloud_item.dart'; +import '../providers/server_provider.dart'; +import '../widgets/more_tabs_button.dart'; +import '../widgets/profile_avatar_button.dart'; +import '../widgets/synced_header_scaffold.dart'; + +IconData _trashItemIcon(NextcloudItemType type) { + switch (type) { + case NextcloudItemType.folder: + return Icons.folder_rounded; + case NextcloudItemType.image: + return Icons.image_rounded; + case NextcloudItemType.video: + return Icons.movie_rounded; + case NextcloudItemType.audio: + return Icons.audiotrack_rounded; + case NextcloudItemType.document: + return Icons.description_rounded; + case NextcloudItemType.archive: + return Icons.folder_zip_rounded; + case NextcloudItemType.file: + return Icons.insert_drive_file_rounded; + } +} + +class TrashView extends StatefulWidget { + final ScrollController scrollController; + + const TrashView({super.key, required this.scrollController}); + + @override + State createState() => _TrashViewState(); +} + +class _TrashViewState extends State { + bool _requested = false; + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + final colorScheme = theme.colorScheme; + final provider = context.watch(); + + if (!_requested) { + _requested = true; + WidgetsBinding.instance.addPostFrameCallback( + (_) => provider.fetchTrash(), + ); + } + + final trash = provider.trashItems; + + final List contentSlivers = [ + const SliverToBoxAdapter(child: SizedBox(height: 16)), + + if (provider.isTrashLoading && trash.isEmpty) + const SliverFillRemaining( + hasScrollBody: false, + child: Center(child: CircularProgressIndicator()), + ) + else if (provider.trashErrorMessage != null) + SliverFillRemaining( + hasScrollBody: false, + child: Center( + child: Padding( + padding: const EdgeInsets.all(24), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Icons.error_outline_rounded, + size: 64, + color: colorScheme.error, + ), + const SizedBox(height: 16), + Text( + 'Could not load trash', + style: theme.textTheme.titleLarge?.copyWith( + color: colorScheme.error, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(height: 8), + Text( + provider.trashErrorMessage!, + textAlign: TextAlign.center, + style: theme.textTheme.bodyMedium?.copyWith( + color: colorScheme.onSurfaceVariant, + ), + ), + const SizedBox(height: 20), + FilledButton.icon( + onPressed: provider.fetchTrash, + icon: const Icon(Icons.refresh_rounded), + label: const Text('Retry'), + ), + ], + ), + ), + ), + ) + else if (trash.isEmpty) + SliverFillRemaining( + hasScrollBody: false, + child: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Icons.delete_outline_rounded, + size: 64, + color: colorScheme.outlineVariant, + ), + const SizedBox(height: 12), + Text( + 'Trash is empty', + style: theme.textTheme.titleMedium?.copyWith( + color: colorScheme.onSurfaceVariant, + ), + ), + ], + ), + ), + ) + else + SliverPadding( + padding: const EdgeInsets.symmetric(horizontal: 20), + sliver: SliverList( + delegate: SliverChildBuilderDelegate((context, index) { + final item = trash[index]; + return _buildTrashTile(context, item, provider); + }, childCount: trash.length), + ), + ), + + const SliverToBoxAdapter(child: SizedBox(height: 100)), + const SliverFillRemaining(hasScrollBody: false, child: SizedBox()), + ]; + + return SyncedHeaderScaffold( + scrollController: widget.scrollController, + provider: provider, + actions: const [MoreTabsButton(), ProfileAvatarButton()], + onRefresh: provider.fetchTrash, + contentSlivers: contentSlivers, + ); + } + + Widget _buildTrashTile( + BuildContext context, + NextcloudItem item, + ServerProvider provider, + ) { + final theme = Theme.of(context); + final colorScheme = theme.colorScheme; + final iconColor = colorScheme.outline; + + return Padding( + padding: const EdgeInsets.only(bottom: 8), + child: Material( + color: colorScheme.surfaceContainerLow, + borderRadius: BorderRadius.circular(16), + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), + child: Row( + children: [ + Container( + width: 44, + height: 44, + decoration: BoxDecoration( + color: iconColor.withValues(alpha: 0.12), + borderRadius: BorderRadius.circular(12), + ), + child: Icon( + _trashItemIcon(item.type), + color: iconColor, + size: 22, + ), + ), + const SizedBox(width: 14), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + item.name, + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: theme.textTheme.titleMedium?.copyWith( + fontWeight: FontWeight.w600, + fontSize: 14, + ), + ), + const SizedBox(height: 2), + Text( + item.deletedAt != null + ? 'Deleted ${DateFormat.yMMMd().format(item.deletedAt!)}' + : 'Deleted', + style: theme.textTheme.bodySmall?.copyWith( + color: colorScheme.onSurfaceVariant, + ), + ), + ], + ), + ), + IconButton( + icon: const Icon(Icons.restore_rounded), + tooltip: 'Restore', + color: colorScheme.primary, + onPressed: () => _restore(context, provider, item), + ), + IconButton( + icon: Icon( + Icons.delete_forever_rounded, + color: colorScheme.error, + ), + tooltip: 'Delete forever', + onPressed: () => _confirmDeleteForever(context, provider, item), + ), + ], + ), + ), + ), + ); + } + + Future _restore( + BuildContext context, + ServerProvider provider, + NextcloudItem item, + ) async { + final messenger = ScaffoldMessenger.of(context); + final success = await provider.restoreTrashItem(item); + messenger.showSnackBar( + SnackBar( + content: Text( + success ? 'Restored ${item.name}' : 'Failed to restore ${item.name}', + ), + behavior: SnackBarBehavior.floating, + ), + ); + } + + Future _confirmDeleteForever( + BuildContext context, + ServerProvider provider, + NextcloudItem item, + ) async { + final confirmed = await showDialog( + context: context, + builder: (dialogContext) { + return AlertDialog( + title: const Text('Delete Forever'), + content: Text( + 'Permanently delete "${item.name}"? This cannot be undone.', + ), + actions: [ + TextButton( + onPressed: () => Navigator.pop(dialogContext, false), + child: const Text('Cancel'), + ), + FilledButton( + style: FilledButton.styleFrom( + backgroundColor: Theme.of(dialogContext).colorScheme.error, + ), + onPressed: () => Navigator.pop(dialogContext, true), + child: const Text('Delete Forever'), + ), + ], + ); + }, + ); + if (confirmed != true || !context.mounted) return; + + final messenger = ScaffoldMessenger.of(context); + final success = await provider.deleteTrashItemForever(item); + messenger.showSnackBar( + SnackBar( + content: Text( + success ? 'Deleted ${item.name}' : 'Failed to delete ${item.name}', + ), + behavior: SnackBarBehavior.floating, + ), + ); + } +} diff --git a/lib/widgets/app_tab_view_builder.dart b/lib/widgets/app_tab_view_builder.dart new file mode 100644 index 0000000..a736078 --- /dev/null +++ b/lib/widgets/app_tab_view_builder.dart @@ -0,0 +1,28 @@ +import 'package:flutter/material.dart'; +import '../models/app_tab.dart'; +import '../views/activity_view.dart'; +import '../views/files_view.dart'; +import '../views/photos_view.dart'; +import '../views/recent_view.dart'; +import '../views/shares_view.dart'; +import '../views/trash_view.dart'; + +/// Builds the view widget for a given [AppTab]. Shared by the main shell +/// (for visible tabs) and the "more tabs" dropdown (for launching a tab +/// that's currently hidden from the bottom nav bar). +Widget buildAppTabView(AppTab tab, ScrollController controller) { + switch (tab) { + case AppTab.files: + return FilesView(scrollController: controller); + case AppTab.photos: + return PhotosView(scrollController: controller); + case AppTab.activity: + return ActivityView(scrollController: controller); + case AppTab.trash: + return TrashView(scrollController: controller); + case AppTab.shares: + return SharesView(scrollController: controller); + case AppTab.recent: + return RecentView(scrollController: controller); + } +} diff --git a/lib/widgets/breadcrumbs.dart b/lib/widgets/breadcrumbs.dart new file mode 100644 index 0000000..23c6843 --- /dev/null +++ b/lib/widgets/breadcrumbs.dart @@ -0,0 +1,72 @@ +import 'package:flutter/material.dart'; + +/// Tappable "Home / Folder / Sub-folder" trail shown whenever the user has +/// navigated below the root, in both the Files and Photos tabs. +class Breadcrumbs extends StatelessWidget { + final List pathStack; + final ValueChanged onTap; + + const Breadcrumbs({super.key, required this.pathStack, required this.onTap}); + + String _labelFor(int index) { + if (index == 0) return 'Home'; + final segments = pathStack[index] + .split('/') + .where((s) => s.isNotEmpty) + .toList(); + return segments.isEmpty ? 'Home' : segments.last; + } + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + final colorScheme = theme.colorScheme; + final lastIndex = pathStack.length - 1; + + return SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: Row( + children: [ + for (var i = 0; i < pathStack.length; i++) ...[ + if (i > 0) + Padding( + padding: const EdgeInsets.symmetric(horizontal: 2), + child: Icon( + Icons.chevron_right_rounded, + size: 16, + color: colorScheme.outlineVariant, + ), + ), + if (i == lastIndex) + Padding( + padding: const EdgeInsets.symmetric(horizontal: 8), + child: Text( + _labelFor(i), + style: theme.textTheme.bodySmall?.copyWith( + fontWeight: FontWeight.w700, + color: colorScheme.onSurface, + ), + ), + ) + else + // A chip's whole pill is the tap target (not just the text), + // so the previous plain-text crumbs were fiddly to hit. + ActionChip( + label: Text(_labelFor(i)), + labelStyle: theme.textTheme.bodySmall?.copyWith( + fontWeight: FontWeight.w600, + color: colorScheme.primary, + ), + onPressed: () => onTap(i), + backgroundColor: colorScheme.surfaceContainerHigh, + side: BorderSide.none, + visualDensity: VisualDensity.compact, + materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, + padding: const EdgeInsets.symmetric(horizontal: 4), + ), + ], + ], + ), + ); + } +} diff --git a/lib/widgets/details/details_activity_tab.dart b/lib/widgets/details/details_activity_tab.dart new file mode 100644 index 0000000..1238752 --- /dev/null +++ b/lib/widgets/details/details_activity_tab.dart @@ -0,0 +1,142 @@ +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:provider/provider.dart'; +import '../../models/nextcloud_item.dart'; +import '../../providers/server_provider.dart'; + +/// Per-file activity feed — same list-item look as the account-wide +/// Activity tab (activity_view.dart), scoped to a single item. +class DetailsActivityTab extends StatefulWidget { + final NextcloudItem item; + + const DetailsActivityTab({super.key, required this.item}); + + @override + State createState() => _DetailsActivityTabState(); +} + +class _DetailsActivityTabState extends State { + bool _requested = false; + bool _isLoading = true; + List _activities = []; + + Future _load() async { + final provider = context.read(); + final result = await provider.fetchFileActivity(widget.item); + if (!mounted) return; + setState(() { + _activities = result; + _isLoading = false; + }); + } + + @override + Widget build(BuildContext context) { + if (!_requested) { + _requested = true; + WidgetsBinding.instance.addPostFrameCallback((_) => _load()); + } + final theme = Theme.of(context); + final colorScheme = theme.colorScheme; + + if (_isLoading) { + return const Center(child: CircularProgressIndicator()); + } + if (_activities.isEmpty) { + return Center( + child: Text( + 'No recent activity', + style: theme.textTheme.titleMedium?.copyWith( + color: colorScheme.onSurfaceVariant, + ), + ), + ); + } + + return ListView.builder( + padding: const EdgeInsets.fromLTRB(20, 12, 20, 24), + itemCount: _activities.length, + itemBuilder: (context, index) { + final act = _activities[index]; + return Padding( + padding: const EdgeInsets.only(bottom: 12), + child: Container( + padding: const EdgeInsets.all(16), + decoration: BoxDecoration( + color: colorScheme.surfaceContainerLow, + borderRadius: BorderRadius.circular(20), + border: Border.all( + color: colorScheme.outlineVariant.withValues(alpha: 0.2), + ), + ), + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + padding: const EdgeInsets.all(10), + decoration: BoxDecoration( + color: colorScheme.primaryContainer, + shape: BoxShape.circle, + ), + child: Icon( + act.icon, + color: colorScheme.onPrimaryContainer, + size: 20, + ), + ), + const SizedBox(width: 14), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Expanded( + child: Text( + act.title, + style: theme.textTheme.titleMedium?.copyWith( + fontWeight: FontWeight.w600, + fontSize: 14, + ), + ), + ), + const SizedBox(width: 8), + Text( + DateFormat.jm().format(act.timestamp), + style: theme.textTheme.bodySmall?.copyWith( + color: colorScheme.onSurfaceVariant, + fontSize: 11, + ), + ), + ], + ), + const SizedBox(height: 4), + Text( + act.subject, + style: theme.textTheme.bodyMedium?.copyWith( + color: colorScheme.onSurfaceVariant, + fontSize: 13, + ), + ), + const SizedBox(height: 6), + Text( + 'By ${act.author} • ${DateFormat.MMMd().format(act.timestamp)}', + style: theme.textTheme.bodySmall?.copyWith( + color: colorScheme.primary, + fontWeight: FontWeight.w500, + fontSize: 11, + ), + ), + ], + ), + ), + ], + ), + ), + ); + }, + ); + } +} diff --git a/lib/widgets/details/details_info_tab.dart b/lib/widgets/details/details_info_tab.dart new file mode 100644 index 0000000..821441c --- /dev/null +++ b/lib/widgets/details/details_info_tab.dart @@ -0,0 +1,64 @@ +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import '../../models/nextcloud_item.dart'; +import '../synced_header_scaffold.dart' show formatBytes; + +/// Plain metadata tab of the Details sheet — name, type, size, location, +/// and dates. No network calls, so no loading state needed. +class DetailsInfoTab extends StatelessWidget { + final NextcloudItem item; + final ScrollController? scrollController; + + const DetailsInfoTab({super.key, required this.item, this.scrollController}); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + final colorScheme = theme.colorScheme; + + final rows = <(String, String)>[ + ('Name', item.name), + ('Type', item.isFolder ? 'Folder' : (item.mimeType ?? 'File')), + if (!item.isFolder) ('Size', formatBytes(item.size)), + ('Location', item.path), + ('Modified', DateFormat.yMMMd().add_jm().format(item.lastModified)), + ('Created', DateFormat.yMMMd().add_jm().format(item.dateCreated)), + ('Favorite', item.isFavorite ? 'Yes' : 'No'), + ]; + + return ListView.separated( + controller: scrollController, + padding: const EdgeInsets.fromLTRB(20, 12, 20, 24), + itemCount: rows.length, + separatorBuilder: (context, index) => const Divider(height: 1), + itemBuilder: (context, index) { + final (label, value) = rows[index]; + return Padding( + padding: const EdgeInsets.symmetric(vertical: 12), + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SizedBox( + width: 96, + child: Text( + label, + style: theme.textTheme.bodyMedium?.copyWith( + color: colorScheme.onSurfaceVariant, + ), + ), + ), + Expanded( + child: Text( + value, + style: theme.textTheme.bodyMedium?.copyWith( + fontWeight: FontWeight.w500, + ), + ), + ), + ], + ), + ); + }, + ); + } +} diff --git a/lib/widgets/details/details_sheet.dart b/lib/widgets/details/details_sheet.dart new file mode 100644 index 0000000..9726499 --- /dev/null +++ b/lib/widgets/details/details_sheet.dart @@ -0,0 +1,135 @@ +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import '../../models/nextcloud_item.dart'; +import '../gradual_bottom_sheet.dart'; +import '../synced_header_scaffold.dart' show formatBytes; +import 'details_activity_tab.dart'; +import 'details_info_tab.dart'; +import 'details_versions_tab.dart'; + +IconData _detailsItemIcon(NextcloudItemType type) { + switch (type) { + case NextcloudItemType.folder: + return Icons.folder_rounded; + case NextcloudItemType.image: + return Icons.image_rounded; + case NextcloudItemType.video: + return Icons.movie_rounded; + case NextcloudItemType.audio: + return Icons.audiotrack_rounded; + case NextcloudItemType.document: + return Icons.description_rounded; + case NextcloudItemType.archive: + return Icons.folder_zip_rounded; + case NextcloudItemType.file: + return Icons.insert_drive_file_rounded; + } +} + +/// Reusable "Details" bottom sheet for a single file/folder — Info, +/// Versions, and Activity tabs. Sharing lives in its own sheet +/// ([ShareSheet]), triggered separately from wherever a "Share" action +/// appears. Triggered from long-press selection (exactly one item), the +/// media viewer's action bar, and the "open externally" flow for +/// unsupported file types. +class DetailsSheet extends StatelessWidget { + final NextcloudItem item; + + const DetailsSheet({super.key, required this.item}); + + static Future show(BuildContext context, NextcloudItem item) { + return showGradualBottomSheet( + context, + builder: (context, scrollController) => DetailsSheet(item: item), + ); + } + + @override + Widget build(BuildContext context) { + return DefaultTabController( + length: 3, + child: Column( + children: [ + DetailsHeader(item: item), + const TabBar( + tabs: [ + Tab(icon: Icon(Icons.info_outline_rounded), text: 'Info'), + Tab(icon: Icon(Icons.history_rounded), text: 'Versions'), + Tab(icon: Icon(Icons.electric_bolt_rounded), text: 'Activity'), + ], + ), + Expanded( + child: TabBarView( + children: [ + DetailsInfoTab(item: item), + DetailsVersionsTab(item: item), + DetailsActivityTab(item: item), + ], + ), + ), + ], + ), + ); + } +} + +/// Icon/name/size/date row shared by [DetailsSheet] and the media viewer's +/// collapsed "peek" state (which shows just this, before the user drags the +/// sheet open far enough to reveal the tabs). +class DetailsHeader extends StatelessWidget { + final NextcloudItem item; + + const DetailsHeader({super.key, required this.item}); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + final colorScheme = theme.colorScheme; + + return Padding( + padding: const EdgeInsets.fromLTRB(20, 12, 20, 8), + child: Row( + children: [ + Container( + width: 44, + height: 44, + decoration: BoxDecoration( + color: colorScheme.primaryContainer, + borderRadius: BorderRadius.circular(12), + ), + child: Icon( + _detailsItemIcon(item.type), + color: colorScheme.onPrimaryContainer, + size: 22, + ), + ), + const SizedBox(width: 14), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + item.name, + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: theme.textTheme.titleMedium?.copyWith( + fontWeight: FontWeight.w700, + ), + ), + const SizedBox(height: 2), + Text( + item.isFolder + ? DateFormat.yMMMd().format(item.lastModified) + : '${formatBytes(item.size)} • ${DateFormat.yMMMd().format(item.lastModified)}', + style: theme.textTheme.bodySmall?.copyWith( + color: colorScheme.onSurfaceVariant, + ), + ), + ], + ), + ), + ], + ), + ); + } +} diff --git a/lib/widgets/details/details_versions_tab.dart b/lib/widgets/details/details_versions_tab.dart new file mode 100644 index 0000000..c276d82 --- /dev/null +++ b/lib/widgets/details/details_versions_tab.dart @@ -0,0 +1,160 @@ +import 'package:file_saver/file_saver.dart'; +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:path/path.dart' as p; +import 'package:path_provider/path_provider.dart'; +import 'package:provider/provider.dart'; +import '../../models/nextcloud_file_version.dart'; +import '../../models/nextcloud_item.dart'; +import '../../providers/server_provider.dart'; +import '../synced_header_scaffold.dart' show formatBytes; + +/// File version history — a synthetic "Current version" row (from the +/// item's own metadata) followed by whatever the DAV versions endpoint +/// returns, each with Restore/Download actions. +class DetailsVersionsTab extends StatefulWidget { + final NextcloudItem item; + + const DetailsVersionsTab({super.key, required this.item}); + + @override + State createState() => _DetailsVersionsTabState(); +} + +class _DetailsVersionsTabState extends State { + bool _requested = false; + bool _isLoading = true; + List _versions = []; + + Future _load() async { + final provider = context.read(); + final result = await provider.fetchFileVersions(widget.item); + if (!mounted) return; + setState(() { + _versions = result; + _isLoading = false; + }); + } + + Future _restore(NextcloudFileVersion version) async { + final provider = context.read(); + final messenger = ScaffoldMessenger.of(context); + final success = await provider.restoreFileVersion( + widget.item, + version.versionLabel, + ); + if (!mounted) return; + messenger.showSnackBar( + SnackBar( + content: Text( + success ? 'Restored version' : 'Could not restore version', + ), + behavior: SnackBarBehavior.floating, + ), + ); + if (success) _load(); + } + + Future _download(NextcloudFileVersion version) async { + final provider = context.read(); + final messenger = ScaffoldMessenger.of(context); + try { + final tempDir = await getTemporaryDirectory(); + final tempPath = p.join( + tempDir.path, + '${version.versionLabel}_${widget.item.name}', + ); + final success = await provider.downloadVersion( + widget.item, + version.versionLabel, + tempPath, + ); + if (!success) throw Exception('download failed'); + final ext = p.extension(widget.item.name).replaceFirst('.', ''); + final baseName = p.basenameWithoutExtension(widget.item.name); + await FileSaver.instance.saveFile( + name: baseName, + filePath: tempPath, + ext: ext, + ); + if (!mounted) return; + messenger.showSnackBar( + const SnackBar( + content: Text('Version downloaded'), + behavior: SnackBarBehavior.floating, + ), + ); + } catch (_) { + if (!mounted) return; + messenger.showSnackBar( + const SnackBar( + content: Text('Could not download version'), + behavior: SnackBarBehavior.floating, + ), + ); + } + } + + @override + Widget build(BuildContext context) { + if (!_requested) { + _requested = true; + WidgetsBinding.instance.addPostFrameCallback((_) => _load()); + } + final theme = Theme.of(context); + final colorScheme = theme.colorScheme; + + if (_isLoading) { + return const Center(child: CircularProgressIndicator()); + } + + final items = [ + NextcloudFileVersion( + versionLabel: 'current', + timestamp: widget.item.lastModified, + size: widget.item.size, + isCurrent: true, + ), + ..._versions, + ]; + + return ListView.separated( + padding: const EdgeInsets.fromLTRB(20, 12, 20, 24), + itemCount: items.length, + separatorBuilder: (context, index) => const SizedBox(height: 4), + itemBuilder: (context, index) { + final version = items[index]; + return ListTile( + contentPadding: EdgeInsets.zero, + leading: CircleAvatar( + backgroundColor: colorScheme.primaryContainer, + child: Icon( + Icons.history_rounded, + color: colorScheme.onPrimaryContainer, + size: 20, + ), + ), + title: Text( + version.isCurrent + ? 'Current version' + : DateFormat.yMMMd().add_jm().format(version.timestamp), + ), + subtitle: Text( + '${DateFormat.yMMMd().format(version.timestamp)} • ${formatBytes(version.size)}', + ), + trailing: version.isCurrent + ? null + : PopupMenuButton( + onSelected: (value) => value == 'restore' + ? _restore(version) + : _download(version), + itemBuilder: (context) => const [ + PopupMenuItem(value: 'restore', child: Text('Restore')), + PopupMenuItem(value: 'download', child: Text('Download')), + ], + ), + ); + }, + ); + } +} diff --git a/lib/widgets/details/peek_details_sheet.dart b/lib/widgets/details/peek_details_sheet.dart new file mode 100644 index 0000000..89f1982 --- /dev/null +++ b/lib/widgets/details/peek_details_sheet.dart @@ -0,0 +1,86 @@ +import 'package:flutter/material.dart'; +import '../../models/nextcloud_item.dart'; +import 'details_sheet.dart'; + +/// A persistent (non-modal) draggable panel that rests as a small "peek" +/// of a file's details - just the header - so it's always partly visible +/// without blocking the content above it, and expands into the full +/// [DetailsSheet] (with its Info/Versions/Activity tabs) once dragged past +/// [_expandThreshold]. Meant to be placed directly in a `Stack`, not shown +/// via `showModalBottomSheet`/`showBottomSheet` - there's no scrim and +/// nothing behind it is blocked from receiving gestures. +class PeekDetailsSheet extends StatefulWidget { + final NextcloudItem item; + + const PeekDetailsSheet({super.key, required this.item}); + + @override + State createState() => _PeekDetailsSheetState(); +} + +class _PeekDetailsSheetState extends State { + static const _peekSize = 0.16; + static const _maxSize = 0.9; + static const _expandThreshold = 0.3; + + double _size = _peekSize; + + @override + Widget build(BuildContext context) { + final colorScheme = Theme.of(context).colorScheme; + final expanded = _size > _expandThreshold; + + return DraggableScrollableSheet( + initialChildSize: _peekSize, + minChildSize: _peekSize, + maxChildSize: _maxSize, + snap: true, + snapSizes: const [_peekSize, _maxSize], + builder: (context, scrollController) { + return NotificationListener( + onNotification: (notification) { + if ((notification.extent - _size).abs() > 0.002) { + setState(() => _size = notification.extent); + } + return false; + }, + child: Container( + decoration: BoxDecoration( + color: colorScheme.surfaceContainerHigh, + borderRadius: const BorderRadius.vertical( + top: Radius.circular(28), + ), + ), + child: Column( + children: [ + const SizedBox(height: 12), + Container( + width: 36, + height: 4, + decoration: BoxDecoration( + color: colorScheme.outlineVariant, + borderRadius: BorderRadius.circular(2), + ), + ), + Expanded( + child: expanded + ? DetailsSheet(item: widget.item) + // Peek state: just the header, but still wrapped in + // a scrollable using the sheet's own controller - a + // DraggableScrollableSheet only picks up drag-to- + // resize gestures from a Scrollable using that + // controller, even over otherwise-static content. + : SingleChildScrollView( + controller: scrollController, + physics: const AlwaysScrollableScrollPhysics(), + child: DetailsHeader(item: widget.item), + ), + ), + ], + ), + ), + ); + }, + ); + } +} diff --git a/lib/widgets/gradual_bottom_sheet.dart b/lib/widgets/gradual_bottom_sheet.dart new file mode 100644 index 0000000..5f5fe35 --- /dev/null +++ b/lib/widgets/gradual_bottom_sheet.dart @@ -0,0 +1,60 @@ +import 'package:flutter/material.dart'; + +typedef GradualSheetBuilder = + Widget Function(BuildContext context, ScrollController scrollController); + +/// Shows a bottom sheet that can be dragged open/closed gradually (and +/// snaps to a few comfortable stops on release) instead of the default +/// modal bottom sheet's binary fully-open/fully-dismissed behavior. +/// [builder] gets a [ScrollController] it can hand to its own scrollable +/// content so dragging that content also resizes the sheet; content that +/// manages its own scrolling (e.g. a TabBarView of independent lists) can +/// just ignore it. +Future showGradualBottomSheet( + BuildContext context, { + required GradualSheetBuilder builder, + double initialSize = 0.6, + double minSize = 0.3, + double maxSize = 0.95, +}) { + final colorScheme = Theme.of(context).colorScheme; + return showModalBottomSheet( + context: context, + isScrollControlled: true, + backgroundColor: Colors.transparent, + builder: (sheetContext) { + return DraggableScrollableSheet( + initialChildSize: initialSize, + minChildSize: minSize, + maxChildSize: maxSize, + snap: true, + snapSizes: [minSize, initialSize, maxSize], + expand: false, + builder: (context, scrollController) { + return Container( + decoration: BoxDecoration( + color: colorScheme.surfaceContainerHigh, + borderRadius: const BorderRadius.vertical( + top: Radius.circular(28), + ), + ), + child: Column( + children: [ + const SizedBox(height: 12), + Container( + width: 36, + height: 4, + decoration: BoxDecoration( + color: colorScheme.outlineVariant, + borderRadius: BorderRadius.circular(2), + ), + ), + Expanded(child: builder(context, scrollController)), + ], + ), + ); + }, + ); + }, + ); +} diff --git a/lib/widgets/more_tabs_button.dart b/lib/widgets/more_tabs_button.dart new file mode 100644 index 0000000..3940090 --- /dev/null +++ b/lib/widgets/more_tabs_button.dart @@ -0,0 +1,50 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import '../models/app_tab.dart'; +import '../providers/server_provider.dart'; +import 'app_tab_view_builder.dart'; + +/// Opens a tab that's currently hidden from the bottom nav bar as its own +/// standalone screen. Shown in every tab's toolbar (not just Files) so +/// hidden destinations stay reachable no matter which tab is active. +/// Always visible; dims/disables itself when nothing is hidden. +class MoreTabsButton extends StatelessWidget { + const MoreTabsButton({super.key}); + + @override + Widget build(BuildContext context) { + final provider = context.watch(); + + return PopupMenuButton( + icon: const Icon(Icons.apps_rounded), + tooltip: 'More tabs', + enabled: provider.hiddenTabs.isNotEmpty, + onSelected: (tab) => _openHiddenTab(context, tab), + itemBuilder: (context) => [ + for (final tab in provider.tabOrder.where( + (t) => provider.hiddenTabs.contains(t), + )) + PopupMenuItem( + value: tab, + child: Row( + children: [ + Icon(tab.icon, size: 20), + const SizedBox(width: 12), + Text(tab.label), + ], + ), + ), + ], + ); + } + + void _openHiddenTab(BuildContext context, AppTab tab) { + Navigator.push( + context, + MaterialPageRoute( + builder: (_) => + Scaffold(body: buildAppTabView(tab, ScrollController())), + ), + ); + } +} diff --git a/lib/widgets/profile_avatar_button.dart b/lib/widgets/profile_avatar_button.dart index 3febee4..e802e1d 100644 --- a/lib/widgets/profile_avatar_button.dart +++ b/lib/widgets/profile_avatar_button.dart @@ -20,7 +20,7 @@ class ProfileAvatarButton extends StatelessWidget { return Padding( padding: const EdgeInsets.only(right: 8), child: IconButton( - tooltip: 'Account', + tooltip: 'Settings', onPressed: () { Navigator.push( context, diff --git a/lib/widgets/segmented_icon_toggle.dart b/lib/widgets/segmented_icon_toggle.dart index 3364e02..ae78b10 100644 --- a/lib/widgets/segmented_icon_toggle.dart +++ b/lib/widgets/segmented_icon_toggle.dart @@ -1,7 +1,10 @@ import 'package:flutter/material.dart'; /// A single icon button that fills with a solid circle when active — -/// the building block for Drive-style toggle controls. +/// the building block for Drive-style toggle controls. Thin wrapper around +/// the native Material 3 toggle `IconButton` (its `isSelected` constructor +/// param, not a hand-rolled Material+InkWell) so every call site here gets +/// the built-in selected/unselected treatment for free. class ToggleIconButton extends StatelessWidget { final IconData icon; final bool isSelected; @@ -20,26 +23,26 @@ class ToggleIconButton extends StatelessWidget { Widget build(BuildContext context) { final colorScheme = Theme.of(context).colorScheme; - final button = Material( - color: isSelected ? colorScheme.primaryContainer : Colors.transparent, - shape: const CircleBorder(), - child: InkWell( - onTap: onTap, - customBorder: const CircleBorder(), - child: Padding( - padding: const EdgeInsets.all(8), - child: Icon( - icon, - size: 20, - color: isSelected - ? colorScheme.onPrimaryContainer - : colorScheme.onSurfaceVariant, - ), + return IconButton( + isSelected: isSelected, + icon: Icon(icon, size: 20), + tooltip: tooltip, + onPressed: onTap, + visualDensity: VisualDensity.compact, + style: ButtonStyle( + shape: const WidgetStatePropertyAll(CircleBorder()), + foregroundColor: WidgetStateProperty.resolveWith( + (states) => states.contains(WidgetState.selected) + ? colorScheme.onPrimaryContainer + : colorScheme.onSurfaceVariant, + ), + backgroundColor: WidgetStateProperty.resolveWith( + (states) => states.contains(WidgetState.selected) + ? colorScheme.primaryContainer + : Colors.transparent, ), ), ); - - return tooltip != null ? Tooltip(message: tooltip!, child: button) : button; } } diff --git a/lib/widgets/selectable_thumbnail.dart b/lib/widgets/selectable_thumbnail.dart new file mode 100644 index 0000000..2a6d71e --- /dev/null +++ b/lib/widgets/selectable_thumbnail.dart @@ -0,0 +1,53 @@ +import 'package:flutter/material.dart'; + +/// Wraps a thumbnail so it can show the multi-select checkmark state: +/// dimmed with a checkmark overlaid once selected, matching the Google +/// Photos-style long-press-to-select pattern. Shared by the Files and +/// Photos tabs. +class SelectableThumbnail extends StatelessWidget { + final bool isSelected; + final Widget child; + + /// Fixed width/height for a small square thumbnail (Files list/grid + /// tiles). Leave null to fill whatever space the parent already gives it + /// instead (e.g. a Photos grid cell, whose size comes from the grid + /// layout rather than a fixed constant). + final double? size; + final double checkmarkSize; + + const SelectableThumbnail({ + super.key, + required this.isSelected, + required this.child, + this.size, + this.checkmarkSize = 28, + }); + + @override + Widget build(BuildContext context) { + final colorScheme = Theme.of(context).colorScheme; + final stack = Stack( + fit: StackFit.expand, + children: [ + Positioned.fill( + child: AnimatedOpacity( + opacity: isSelected ? 0.35 : 1, + duration: const Duration(milliseconds: 150), + child: child, + ), + ), + if (isSelected) + Center( + child: Icon( + Icons.check_circle_rounded, + color: colorScheme.primary, + size: checkmarkSize, + ), + ), + ], + ); + + if (size == null) return stack; + return SizedBox(width: size, height: size, child: stack); + } +} diff --git a/lib/widgets/share_sheet.dart b/lib/widgets/share_sheet.dart new file mode 100644 index 0000000..a9267a7 --- /dev/null +++ b/lib/widgets/share_sheet.dart @@ -0,0 +1,406 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:provider/provider.dart'; +import '../models/nextcloud_item.dart'; +import '../models/nextcloud_share.dart'; +import '../models/nextcloud_sharee.dart'; +import '../providers/server_provider.dart'; +import 'gradual_bottom_sheet.dart'; + +IconData _shareTypeIcon(ShareType type) { + switch (type) { + case ShareType.user: + return Icons.person_rounded; + case ShareType.group: + return Icons.groups_rounded; + case ShareType.publicLink: + return Icons.link_rounded; + case ShareType.email: + return Icons.email_rounded; + case ShareType.federated: + return Icons.public_rounded; + case ShareType.other: + return Icons.share_rounded; + } +} + +/// Builds the "internal link" URL for a file, or null if [fileId] isn't a +/// numeric Nextcloud file id (WebDAV `oc:fileid` was missing for this item). +String? internalLinkFor(String serverUrl, String fileId) { + if (int.tryParse(fileId) == null) return null; + var url = serverUrl.trim(); + if (!url.startsWith('http://') && !url.startsWith('https://')) { + url = 'https://$url'; + } + if (url.endsWith('/')) url = url.substring(0, url.length - 1); + return '$url/index.php/f/$fileId'; +} + +/// Standalone "Share" bottom sheet for a single file/folder — replicates +/// the web client's Sharing panel: search users/teams, "Others with +/// access" (inherited shares), an internal link to copy, an email-share +/// field, and a public link. Every "Share" action in the app (swipe, +/// multi-select, media viewer) opens this same sheet. +class ShareSheet extends StatefulWidget { + final NextcloudItem item; + final ScrollController? scrollController; + + const ShareSheet({super.key, required this.item, this.scrollController}); + + static Future show(BuildContext context, NextcloudItem item) { + return showGradualBottomSheet( + context, + builder: (context, scrollController) => + ShareSheet(item: item, scrollController: scrollController), + ); + } + + @override + State createState() => _ShareSheetState(); +} + +class _ShareSheetState extends State { + bool _requested = false; + bool _isLoading = true; + List _shares = []; + List _inherited = []; + List _searchResults = []; + bool _isSearching = false; + final _searchController = TextEditingController(); + final _emailController = TextEditingController(); + + @override + void dispose() { + _searchController.dispose(); + _emailController.dispose(); + super.dispose(); + } + + Future _load() async { + final provider = context.read(); + final results = await Future.wait([ + provider.fetchItemShares(widget.item), + provider.fetchInheritedShares(widget.item), + ]); + if (!mounted) return; + setState(() { + _shares = results[0]; + _inherited = results[1]; + _isLoading = false; + }); + } + + Future _search(String query) async { + final trimmed = query.trim(); + if (trimmed.isEmpty) { + setState(() => _searchResults = []); + return; + } + setState(() => _isSearching = true); + final provider = context.read(); + final results = await provider.searchSharees(trimmed); + if (!mounted) return; + setState(() { + _searchResults = results; + _isSearching = false; + }); + } + + Future _addSharee(NextcloudSharee sharee) async { + final provider = context.read(); + final messenger = ScaffoldMessenger.of(context); + final share = await provider.createShare( + path: widget.item.path, + shareType: sharee.shareTypeValue, + shareWith: sharee.shareWith, + ); + if (!mounted) return; + if (share == null) { + messenger.showSnackBar( + const SnackBar( + content: Text('Could not share this item'), + behavior: SnackBarBehavior.floating, + ), + ); + return; + } + setState(() { + _shares = [..._shares, share]; + _searchResults = []; + _searchController.clear(); + }); + messenger.showSnackBar( + SnackBar( + content: Text('Shared with ${sharee.label}'), + behavior: SnackBarBehavior.floating, + ), + ); + } + + Future _addEmailShare() async { + final email = _emailController.text.trim(); + if (email.isEmpty) return; + final provider = context.read(); + final messenger = ScaffoldMessenger.of(context); + final share = await provider.createShare( + path: widget.item.path, + shareType: 4, + shareWith: email, + ); + if (!mounted) return; + if (share == null) { + messenger.showSnackBar( + const SnackBar( + content: Text('Could not create email share'), + behavior: SnackBarBehavior.floating, + ), + ); + return; + } + setState(() { + _shares = [..._shares, share]; + _emailController.clear(); + }); + messenger.showSnackBar( + SnackBar( + content: Text('Shared with $email'), + behavior: SnackBarBehavior.floating, + ), + ); + } + + Future _createPublicLink() async { + final provider = context.read(); + final messenger = ScaffoldMessenger.of(context); + final share = await provider.createShare( + path: widget.item.path, + shareType: 3, + ); + if (!mounted) return; + if (share == null) { + messenger.showSnackBar( + const SnackBar( + content: Text('Could not create public link'), + behavior: SnackBarBehavior.floating, + ), + ); + return; + } + setState(() => _shares = [..._shares, share]); + } + + Future _removeShare(NextcloudShare share) async { + final provider = context.read(); + final messenger = ScaffoldMessenger.of(context); + final success = await provider.deleteShare(share); + if (!mounted) return; + if (success) { + setState(() => _shares = _shares.where((s) => s.id != share.id).toList()); + } else { + messenger.showSnackBar( + const SnackBar( + content: Text('Could not remove share'), + behavior: SnackBarBehavior.floating, + ), + ); + } + } + + void _copy(String text, String label) { + Clipboard.setData(ClipboardData(text: text)); + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('Copied $label'), + behavior: SnackBarBehavior.floating, + ), + ); + } + + Widget _sectionHeader(String label) { + final colorScheme = Theme.of(context).colorScheme; + return Row( + children: [ + Text( + label, + style: const TextStyle(fontWeight: FontWeight.w700, fontSize: 15), + ), + const SizedBox(width: 6), + Icon( + Icons.info_outline_rounded, + size: 16, + color: colorScheme.onSurfaceVariant, + ), + ], + ); + } + + Widget _shareRow( + NextcloudShare share, { + bool removable = true, + bool copyUrl = false, + }) { + final colorScheme = Theme.of(context).colorScheme; + final label = switch (share.shareType) { + ShareType.publicLink => 'Public link', + _ => share.sharedWithDisplayName ?? 'Shared', + }; + return ListTile( + contentPadding: EdgeInsets.zero, + leading: Icon( + _shareTypeIcon(share.shareType), + color: colorScheme.primary, + ), + title: Text(label), + trailing: Row( + mainAxisSize: MainAxisSize.min, + children: [ + if (copyUrl && share.url != null) + IconButton( + icon: const Icon(Icons.copy_rounded), + tooltip: 'Copy link', + onPressed: () => _copy(share.url!, 'link'), + ), + if (removable) + IconButton( + icon: Icon(Icons.close_rounded, color: colorScheme.error), + tooltip: 'Remove', + onPressed: () => _removeShare(share), + ), + ], + ), + ); + } + + @override + Widget build(BuildContext context) { + if (!_requested) { + _requested = true; + WidgetsBinding.instance.addPostFrameCallback((_) => _load()); + } + final theme = Theme.of(context); + final colorScheme = theme.colorScheme; + final provider = context.watch(); + + if (_isLoading) { + return const Center(child: CircularProgressIndicator()); + } + + final userGroupShares = _shares + .where( + (s) => + s.shareType == ShareType.user || s.shareType == ShareType.group, + ) + .toList(); + final publicLinkShares = _shares + .where((s) => s.shareType == ShareType.publicLink) + .toList(); + final emailShares = _shares + .where((s) => s.shareType == ShareType.email) + .toList(); + final internalLink = internalLinkFor(provider.serverUrl, widget.item.id); + + return ListView( + controller: widget.scrollController, + padding: const EdgeInsets.fromLTRB(20, 12, 20, 24), + children: [ + Text( + widget.item.name, + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: theme.textTheme.titleMedium?.copyWith( + fontWeight: FontWeight.w700, + ), + ), + const SizedBox(height: 16), + _sectionHeader('Internal shares'), + const SizedBox(height: 8), + TextField( + controller: _searchController, + decoration: InputDecoration( + hintText: 'Type names or teams', + prefixIcon: const Icon(Icons.search_rounded), + suffixIcon: _isSearching + ? const Padding( + padding: EdgeInsets.all(14), + child: SizedBox( + width: 16, + height: 16, + child: CircularProgressIndicator(strokeWidth: 2), + ), + ) + : null, + border: OutlineInputBorder(borderRadius: BorderRadius.circular(16)), + filled: true, + fillColor: colorScheme.surfaceContainerLow, + ), + onChanged: _search, + ), + for (final sharee in _searchResults) + ListTile( + contentPadding: EdgeInsets.zero, + leading: Icon( + sharee.type == ShareeType.group + ? Icons.groups_rounded + : Icons.person_rounded, + ), + title: Text(sharee.label), + subtitle: sharee.subtitle != null ? Text(sharee.subtitle!) : null, + onTap: () => _addSharee(sharee), + ), + for (final share in userGroupShares) _shareRow(share), + if (_inherited.isNotEmpty) + ExpansionTile( + tilePadding: EdgeInsets.zero, + leading: const Icon(Icons.more_horiz_rounded), + title: Text('Others with access (${_inherited.length})'), + children: [ + for (final share in _inherited) + _shareRow(share, removable: false), + ], + ), + if (internalLink != null) + ListTile( + contentPadding: EdgeInsets.zero, + leading: const Icon(Icons.link_rounded), + title: const Text('Internal link'), + subtitle: const Text('For people who already have access'), + trailing: IconButton( + icon: const Icon(Icons.copy_rounded), + tooltip: 'Copy link', + onPressed: () => _copy(internalLink, 'internal link'), + ), + ), + const SizedBox(height: 20), + const Divider(), + const SizedBox(height: 12), + _sectionHeader('External shares'), + const SizedBox(height: 8), + TextField( + controller: _emailController, + keyboardType: TextInputType.emailAddress, + decoration: InputDecoration( + hintText: 'Type an email', + prefixIcon: const Icon(Icons.email_outlined), + border: OutlineInputBorder(borderRadius: BorderRadius.circular(16)), + filled: true, + fillColor: colorScheme.surfaceContainerLow, + ), + onSubmitted: (_) => _addEmailShare(), + ), + for (final share in emailShares) _shareRow(share), + const SizedBox(height: 8), + for (final share in publicLinkShares) _shareRow(share, copyUrl: true), + ListTile( + contentPadding: EdgeInsets.zero, + leading: const Icon(Icons.link_rounded), + title: const Text('Create public link'), + trailing: IconButton( + icon: const Icon(Icons.add_rounded), + tooltip: 'Create public link', + onPressed: _createPublicLink, + ), + ), + ], + ); + } +} diff --git a/lib/widgets/sort_menu_button.dart b/lib/widgets/sort_menu_button.dart new file mode 100644 index 0000000..da889f6 --- /dev/null +++ b/lib/widgets/sort_menu_button.dart @@ -0,0 +1,90 @@ +import 'package:flutter/material.dart'; +import '../providers/server_provider.dart'; + +String sortFieldLabel(FileSortField field) { + switch (field) { + case FileSortField.name: + return 'Name'; + case FileSortField.dateCreated: + return 'Date created'; + case FileSortField.dateModified: + return 'Date modified'; + case FileSortField.size: + return 'Size'; + } +} + +/// Dropdown trigger for choosing which field a list/grid is sorted by, +/// shared by the Files and Photos tabs. +class SortMenuButton extends StatelessWidget { + final FileSortField field; + final ValueChanged onChanged; + + const SortMenuButton({ + super.key, + required this.field, + required this.onChanged, + }); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + final colorScheme = theme.colorScheme; + + return PopupMenuButton( + initialValue: field, + onSelected: onChanged, + offset: const Offset(0, 36), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + itemBuilder: (context) => FileSortField.values.map((f) { + return PopupMenuItem( + value: f, + child: Row( + children: [ + SizedBox( + width: 20, + child: f == field + ? Icon( + Icons.check_rounded, + size: 18, + color: colorScheme.primary, + ) + : null, + ), + const SizedBox(width: 8), + Text(sortFieldLabel(f)), + ], + ), + ); + }).toList(), + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 4), + child: Row( + // A plain Text child in a Row always takes its full intrinsic + // width no matter what maxLines/overflow say - Flexible is what + // actually lets it shrink to whatever space this row has left + // (it's squeezed by favorite/hidden/storage/list-grid toggles + // alongside it) so the ellipsis can kick in instead of + // overflowing. + children: [ + Flexible( + child: Text( + sortFieldLabel(field), + style: theme.textTheme.bodyMedium?.copyWith( + fontWeight: FontWeight.w600, + color: colorScheme.onSurfaceVariant, + ), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ), + Icon( + Icons.arrow_drop_down_rounded, + color: colorScheme.onSurfaceVariant, + ), + ], + ), + ), + ); + } +} diff --git a/lib/widgets/sticky_header_delegate.dart b/lib/widgets/sticky_header_delegate.dart new file mode 100644 index 0000000..4559422 --- /dev/null +++ b/lib/widgets/sticky_header_delegate.dart @@ -0,0 +1,34 @@ +import 'package:flutter/material.dart'; + +/// Wraps [child] as a sliver that pins to the top of the scroll view when +/// used with `SliverPersistentHeader(pinned: true, ...)`, or scrolls away +/// normally with `pinned: false`. [height] must match the child's actual +/// rendered height - Flutter's sliver protocol needs an extent up front, +/// not one measured after layout, so callers own getting this right for +/// whatever fixed-height content they pass in. +class StickyHeaderDelegate extends SliverPersistentHeaderDelegate { + final double height; + final Widget child; + + const StickyHeaderDelegate({required this.height, required this.child}); + + @override + double get minExtent => height; + + @override + double get maxExtent => height; + + @override + Widget build( + BuildContext context, + double shrinkOffset, + bool overlapsContent, + ) { + return Material(color: Theme.of(context).colorScheme.surface, child: child); + } + + @override + bool shouldRebuild(covariant StickyHeaderDelegate oldDelegate) { + return oldDelegate.height != height || oldDelegate.child != child; + } +} diff --git a/lib/widgets/swipeable_item.dart b/lib/widgets/swipeable_item.dart new file mode 100644 index 0000000..67df977 --- /dev/null +++ b/lib/widgets/swipeable_item.dart @@ -0,0 +1,113 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import '../providers/server_provider.dart'; + +/// Wraps [child] with the user's configured swipe-left/swipe-right actions +/// (favorite, delete, share, or none) — shared between the Files list view +/// and the Photos grid so both behave identically. Callers own the actual +/// side effects (favoriting, sharing, deleting); this widget only decides +/// which action a given swipe direction maps to and drives the gesture. +class SwipeableItem extends StatelessWidget { + final Key itemKey; + final ServerProvider provider; + final Future Function() onFavorite; + final Future Function() onShare; + final Future Function() onDelete; + final Widget child; + + const SwipeableItem({ + super.key, + required this.itemKey, + required this.provider, + required this.onFavorite, + required this.onShare, + required this.onDelete, + required this.child, + }); + + static DismissDirection _directionFor(SwipeAction left, SwipeAction right) { + final hasLeft = left != SwipeAction.none; + final hasRight = right != SwipeAction.none; + if (hasLeft && hasRight) return DismissDirection.horizontal; + if (hasRight) return DismissDirection.startToEnd; + if (hasLeft) return DismissDirection.endToStart; + return DismissDirection.none; + } + + static Widget _background( + BuildContext context, + SwipeAction action, + Alignment alignment, + ) { + if (action == SwipeAction.none) return const SizedBox.shrink(); + final colorScheme = Theme.of(context).colorScheme; + final Color color; + final IconData icon; + switch (action) { + case SwipeAction.delete: + color = colorScheme.error; + icon = Icons.delete_rounded; + case SwipeAction.favorite: + color = Colors.red.shade400; + icon = Icons.favorite_rounded; + case SwipeAction.share: + color = colorScheme.primary; + icon = Icons.share_rounded; + case SwipeAction.none: + return const SizedBox.shrink(); + } + + return Container( + color: color, + alignment: alignment, + padding: const EdgeInsets.symmetric(horizontal: 24), + child: Icon(icon, color: Colors.white), + ); + } + + @override + Widget build(BuildContext context) { + final rightAction = provider.swipeRightAction; + final leftAction = provider.swipeLeftAction; + final direction = _directionFor(leftAction, rightAction); + if (direction == DismissDirection.none) return child; + + return Dismissible( + key: itemKey, + direction: direction, + background: _background(context, rightAction, Alignment.centerLeft), + secondaryBackground: _background( + context, + leftAction, + Alignment.centerRight, + ), + confirmDismiss: (dir) async { + final action = dir == DismissDirection.startToEnd + ? rightAction + : leftAction; + switch (action) { + case SwipeAction.favorite: + HapticFeedback.selectionClick(); + await onFavorite(); + return false; + case SwipeAction.share: + HapticFeedback.selectionClick(); + await onShare(); + return false; + case SwipeAction.delete: + HapticFeedback.mediumImpact(); + return true; // Actual delete happens in onDismissed. + case SwipeAction.none: + return false; + } + }, + onDismissed: (dir) { + final action = dir == DismissDirection.startToEnd + ? rightAction + : leftAction; + if (action == SwipeAction.delete) onDelete(); + }, + child: child, + ); + } +} diff --git a/lib/widgets/synced_header_scaffold.dart b/lib/widgets/synced_header_scaffold.dart new file mode 100644 index 0000000..6f54211 --- /dev/null +++ b/lib/widgets/synced_header_scaffold.dart @@ -0,0 +1,336 @@ +import 'package:flutter/material.dart'; +import '../models/nextcloud_item.dart'; +import '../providers/server_provider.dart'; + +String formatBytes(int bytes) { + if (bytes <= 0) return '0 B'; + if (bytes < 1024) return '$bytes B'; + if (bytes < 1024 * 1024) return '${(bytes / 1024).toStringAsFixed(1)} KB'; + if (bytes < 1024 * 1024 * 1024) { + return '${(bytes / (1024 * 1024)).toStringAsFixed(1)} MB'; + } + return '${(bytes / (1024 * 1024 * 1024)).toStringAsFixed(2)} GB'; +} + +/// "5.16 GB / 100 GB" — or "5.16 GB / ∞" when the server reports no quota +/// limit (or doesn't report one at all). +String formatQuota(NextcloudUserQuota quota) { + final total = quota.totalBytes > 0 ? formatBytes(quota.totalBytes) : '∞'; + return '${formatBytes(quota.usedBytes)} / $total'; +} + +/// Shared "pull down to see sync status" scroll header used by both the +/// Files and Photos tabs: a compact sync-status chip that expands into a +/// storage-quota panel (Google Photos' "pull to see backup status" +/// pattern), sitting on a gray backdrop above a white rounded-top card that +/// holds the tab's own content slivers. +class SyncedHeaderScaffold extends StatefulWidget { + final ScrollController scrollController; + final ServerProvider provider; + + /// Trailing icons in the app bar (e.g. an upload button, the avatar). + final List actions; + + /// The tab's own content, already built as slivers (a filter/sort row, + /// breadcrumbs, the grid/list, empty/loading/error states, etc.). Wrapped + /// internally in the white rounded-top card. + final List contentSlivers; + + /// What a deliberate pull-to-sync should trigger. Defaults to + /// [ServerProvider.refreshData] (the current folder's listing); pass e.g. + /// `provider.fetchTrash` for a tab backed by different data. + final Future Function()? onRefresh; + + const SyncedHeaderScaffold({ + super.key, + required this.scrollController, + required this.provider, + required this.actions, + required this.contentSlivers, + this.onRefresh, + }); + + @override + State createState() => _SyncedHeaderScaffoldState(); +} + +class _SyncedHeaderScaffoldState extends State { + static const double _lockThreshold = 100; + static const double _syncThreshold = 14; + static const double _pullingEpsilon = 8; + + bool _headerLocked = false; + bool _isPulling = false; + double _pullDistance = 0; + + void _revealPanel() { + if (widget.scrollController.hasClients) { + widget.scrollController.animateTo( + 0, + duration: const Duration(milliseconds: 300), + curve: Curves.easeOutCubic, + ); + } + } + + void _lockOpen() { + if (!_headerLocked) setState(() => _headerLocked = true); + _revealPanel(); + } + + bool _handleScrollNotification(ScrollNotification notification) { + final metrics = notification.metrics; + if (metrics.pixels < metrics.minScrollExtent) { + _pullDistance = metrics.minScrollExtent - metrics.pixels; + final pulling = _pullDistance > _pullingEpsilon; + if (pulling != _isPulling && !_headerLocked) { + setState(() => _isPulling = pulling); + } + } else if (_isPulling) { + setState(() => _isPulling = false); + } + + if (notification is ScrollEndNotification) { + final pulled = _pullDistance; + _pullDistance = 0; + if (_isPulling) setState(() => _isPulling = false); + + final refresh = widget.onRefresh ?? widget.provider.refreshData; + if (pulled >= _lockThreshold) { + _lockOpen(); + refresh(); + } else if (pulled >= _syncThreshold) { + refresh(); + } + } + return false; + } + + @override + Widget build(BuildContext context) { + final colorScheme = Theme.of(context).colorScheme; + final provider = widget.provider; + + final Widget leadingWidget; + if (_headerLocked) { + leadingWidget = IconButton( + icon: const Icon(Icons.keyboard_arrow_up_rounded), + tooltip: 'Collapse', + onPressed: () => setState(() => _headerLocked = false), + ); + } else if (_isPulling) { + leadingWidget = const SizedBox.shrink(); + } else { + leadingWidget = _SyncStatusChip(provider: provider, onTap: _lockOpen); + } + + return ColoredBox( + color: colorScheme.surfaceContainer, + child: NotificationListener( + onNotification: _handleScrollNotification, + child: CustomScrollView( + controller: widget.scrollController, + // Plain BouncingScrollPhysics only bounces/overscrolls reliably + // once content already fills the viewport — with too little + // content (e.g. a single item) the pull gesture can fail to + // register at all. AlwaysScrollableScrollPhysics keeps the pull + // (and therefore the sync header) working regardless of content + // length. + physics: const AlwaysScrollableScrollPhysics( + parent: BouncingScrollPhysics(), + ), + slivers: [ + SliverAppBar( + pinned: true, + stretch: true, + expandedHeight: _headerLocked ? 190 : kToolbarHeight, + collapsedHeight: kToolbarHeight, + backgroundColor: colorScheme.surfaceContainer, + surfaceTintColor: colorScheme.surfaceContainer, + scrolledUnderElevation: 0, + automaticallyImplyLeading: false, + leadingWidth: _headerLocked ? 56 : 160, + leading: leadingWidget, + actions: widget.actions, + flexibleSpace: FlexibleSpaceBar( + background: _SyncedStretchPanel( + provider: provider, + forceVisible: _headerLocked, + ), + ), + ), + DecoratedSliver( + decoration: BoxDecoration( + color: colorScheme.surface, + borderRadius: const BorderRadius.vertical( + top: Radius.circular(28), + ), + ), + sliver: SliverMainAxisGroup(slivers: widget.contentSlivers), + ), + ], + ), + ), + ); + } +} + +/// A compact, always-visible summary of the same status shown by +/// [_SyncedStretchPanel] — tapping it is a discoverable shortcut for pulling +/// the header down to expand that same "Synced" view. +class _SyncStatusChip extends StatelessWidget { + final ServerProvider provider; + final VoidCallback onTap; + + const _SyncStatusChip({required this.provider, required this.onTap}); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + final colorScheme = theme.colorScheme; + final quota = provider.quota; + + return Padding( + padding: const EdgeInsets.only(left: 12), + child: Material( + color: Colors.transparent, + shape: const StadiumBorder(), + child: InkWell( + onTap: onTap, + customBorder: const StadiumBorder(), + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 14, vertical: 9), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Icon( + provider.isLoading + ? Icons.cloud_sync_rounded + : Icons.cloud_done_outlined, + color: colorScheme.primary, + size: 18, + ), + const SizedBox(width: 6), + Text( + quota != null ? formatQuota(quota) : 'Sync', + style: theme.textTheme.labelMedium?.copyWith( + fontWeight: FontWeight.w700, + ), + ), + ], + ), + ), + ), + ), + ); + } +} + +/// Revealed by pulling the header down past its normal height (Google +/// Photos' "pull to see backup status" pattern). Shows storage quota; +/// [_SyncedHeaderScaffoldState] decides via [forceVisible] whether it stays +/// locked open. +class _SyncedStretchPanel extends StatelessWidget { + final ServerProvider provider; + + /// Keeps the panel fully shown even without live overscroll — used once + /// the header has "locked" open after a deliberate pull-down. + final bool forceVisible; + + const _SyncedStretchPanel({ + required this.provider, + this.forceVisible = false, + }); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + final colorScheme = theme.colorScheme; + final topInset = MediaQuery.of(context).padding.top; + + return LayoutBuilder( + builder: (context, constraints) { + final settings = context + .dependOnInheritedWidgetOfExactType(); + final maxExtent = settings?.maxExtent ?? constraints.maxHeight; + final stretch = (constraints.maxHeight - maxExtent).clamp(0.0, 80.0); + // Reaches 1.0 (title fully hidden) at 50px of pull — comfortably + // before the 100px lock threshold. + final progress = forceVisible ? 1.0 : (stretch / 50).clamp(0.0, 1.0); + final quota = provider.quota; + + return Stack( + children: [ + if (progress > 0) + // Anchored below the toolbar row (icons), never the bottom, + // so it can never share space with the title above. + Positioned( + left: 20, + right: 20, + top: topInset + kToolbarHeight + 4, + child: Opacity( + opacity: progress, + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + provider.isLoading ? 'Syncing…' : 'Synced', + style: theme.textTheme.titleLarge?.copyWith( + fontWeight: FontWeight.w700, + ), + ), + if (provider.serverUrl.isNotEmpty) ...[ + const SizedBox(height: 2), + Text( + provider.serverUrl.replaceFirst( + RegExp(r'^https?://'), + '', + ), + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: theme.textTheme.bodySmall?.copyWith( + color: colorScheme.onSurfaceVariant, + ), + ), + ], + const SizedBox(height: 10), + Container( + padding: const EdgeInsets.symmetric( + horizontal: 16, + vertical: 12, + ), + decoration: BoxDecoration( + color: colorScheme.surfaceContainerHigh, + borderRadius: BorderRadius.circular(20), + ), + child: Row( + children: [ + Icon( + Icons.cloud_done_outlined, + color: colorScheme.primary, + ), + const SizedBox(width: 12), + Expanded( + child: Text( + quota != null + ? formatQuota(quota) + : 'Pull to refresh', + style: theme.textTheme.titleSmall?.copyWith( + fontWeight: FontWeight.w600, + ), + ), + ), + ], + ), + ), + ], + ), + ), + ), + ], + ); + }, + ); + } +} diff --git a/pubspec.yaml b/pubspec.yaml index 9481993..bc390c3 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,4 +1,4 @@ -name: nextcloud_client +name: noo description: "A new Flutter project." # The following line prevents the package from being accidentally published to # pub.dev using `flutter pub publish`. This is preferred for private packages. @@ -69,8 +69,9 @@ dev_dependencies: flutter_launcher_icons: android: true image_path: "assets/icon/app_icon.png" - adaptive_icon_background: "#3D5AD1" + adaptive_icon_background: "assets/icon/app_icon_background.png" adaptive_icon_foreground: "assets/icon/app_icon_foreground.png" + adaptive_icon_monochrome: "assets/icon/app_icon_monochrome.png" # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/test/widget_test.dart b/test/widget_test.dart index 5fe638a..b977d71 100644 --- a/test/widget_test.dart +++ b/test/widget_test.dart @@ -1,16 +1,35 @@ +import 'package:flutter/services.dart'; import 'package:flutter_test/flutter_test.dart'; +import 'package:google_fonts/google_fonts.dart'; import 'package:provider/provider.dart'; -import 'package:nextcloud_client/main.dart'; -import 'package:nextcloud_client/providers/server_provider.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:noo/main.dart'; +import 'package:noo/providers/server_provider.dart'; void main() { + const secureStorageChannel = MethodChannel( + 'plugins.it_nomads.com/flutter_secure_storage', + ); + + setUpAll(() { + GoogleFonts.config.allowRuntimeFetching = false; + SharedPreferences.setMockInitialValues({}); + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(secureStorageChannel, (call) async { + if (call.method == 'readAll') return {}; + return null; + }); + }); + test('ServerProvider initializes unauthenticated', () { final provider = ServerProvider(); expect(provider.isLoggedIn, false); expect(provider.items.isEmpty, true); }); - testWidgets('App renders LoginView when not logged in', (WidgetTester tester) async { + testWidgets('App renders LoginView when not logged in', ( + WidgetTester tester, + ) async { final provider = ServerProvider(); await tester.pumpWidget( @@ -21,10 +40,8 @@ void main() { ); await tester.pumpAndSettle(); - expect(find.text('Nextcloud Client'), findsOneWidget); + expect(find.text('Noo'), findsOneWidget); expect(find.text('Server Address'), findsOneWidget); - expect(find.text('Username'), findsOneWidget); - expect(find.text('Password or App Password'), findsOneWidget); - expect(find.text('Log In'), findsOneWidget); + expect(find.text('Continue'), findsOneWidget); }); } diff --git a/windows/CMakeLists.txt b/windows/CMakeLists.txt index eb428c6..e91e15e 100644 --- a/windows/CMakeLists.txt +++ b/windows/CMakeLists.txt @@ -1,10 +1,10 @@ # Project-level configuration. cmake_minimum_required(VERSION 3.14) -project(nextcloud_client LANGUAGES CXX) +project(noo LANGUAGES CXX) # The name of the executable created for the application. Change this to change # the on-disk name of your application. -set(BINARY_NAME "nextcloud_client") +set(BINARY_NAME "noo") # Explicitly opt in to modern CMake behaviors to avoid warnings with recent # versions of CMake. diff --git a/windows/runner/Runner.rc b/windows/runner/Runner.rc index aa82f9b..f5284f8 100644 --- a/windows/runner/Runner.rc +++ b/windows/runner/Runner.rc @@ -89,13 +89,13 @@ BEGIN BEGIN BLOCK "040904e4" BEGIN - VALUE "CompanyName", "com.example" "\0" - VALUE "FileDescription", "nextcloud_client" "\0" + VALUE "CompanyName", "dev.ayushya" "\0" + VALUE "FileDescription", "noo" "\0" VALUE "FileVersion", VERSION_AS_STRING "\0" - VALUE "InternalName", "nextcloud_client" "\0" - VALUE "LegalCopyright", "Copyright (C) 2026 com.example. All rights reserved." "\0" - VALUE "OriginalFilename", "nextcloud_client.exe" "\0" - VALUE "ProductName", "nextcloud_client" "\0" + VALUE "InternalName", "noo" "\0" + VALUE "LegalCopyright", "Copyright (C) 2026 dev.ayushya. All rights reserved." "\0" + VALUE "OriginalFilename", "noo.exe" "\0" + VALUE "ProductName", "noo" "\0" VALUE "ProductVersion", VERSION_AS_STRING "\0" END END diff --git a/windows/runner/main.cpp b/windows/runner/main.cpp index f07d180..00946da 100644 --- a/windows/runner/main.cpp +++ b/windows/runner/main.cpp @@ -27,7 +27,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev, FlutterWindow window(project); Win32Window::Point origin(10, 10); Win32Window::Size size(1280, 720); - if (!window.Create(L"nextcloud_client", origin, size)) { + if (!window.Create(L"Noo", origin, size)) { return EXIT_FAILURE; } window.SetQuitOnClose(true);