From 46c6c321f2f89abeeae5e1fbcb91437d88b536b6 Mon Sep 17 00:00:00 2001 From: Yun Chan Date: Sat, 15 Aug 2026 18:11:49 +0900 Subject: [PATCH] =?UTF-8?q?T3-11/14/15=20+=20M2=20=EC=9E=94=EC=97=AC:=20?= =?UTF-8?q?=EA=B6=8C=ED=95=9C=20=EC=A0=95=EC=B1=85=20UI(PermissionGate/Per?= =?UTF-8?q?missionRequested=20=EB=8B=A4=EC=9D=B4=EC=96=BC=EB=A1=9C?= =?UTF-8?q?=EA=B7=B8+SavesInProfile),=20=EC=B6=94=EC=A0=81=20=EB=B0=A9?= =?UTF-8?q?=EC=A7=80(TrackerBlocklist/WebResourceRequested=20=EC=B0=A8?= =?UTF-8?q?=EB=8B=A8+=EC=8B=A4=EB=93=9C=20=EB=B0=B0=EC=A7=80=C2=B7?= =?UTF-8?q?=ED=8C=9D=EC=97=85),=20=EC=A3=BC=EC=86=8C=EC=B0=BD=20=EC=A7=84?= =?UTF-8?q?=ED=96=89=20=EB=B0=94+=ED=8C=8C=EB=9D=BC=EB=AF=B8=ED=84=B0=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0=20=EB=B3=B5=EC=82=AC(UrlCleaner/NavProgressT?= =?UTF-8?q?racker),=20U5=20=EC=99=84=EB=A3=8C=20=EC=95=8C=EB=A6=BC(Mobile.?= =?UTF-8?q?Core=20=EA=B0=90=EC=A7=80=EA=B8=B0+Plugin.LocalNotification),?= =?UTF-8?q?=20=EC=9E=AC=EC=83=9D=EC=A4=91=20ongoing=20=EB=AF=B8=EB=94=94?= =?UTF-8?q?=EC=96=B4=20=EC=95=8C=EB=A6=BC,=20=EC=8D=B8=EB=84=A4=EC=9D=BC/?= =?UTF-8?q?=ED=95=B4=EC=83=81=EB=8F=84=20API(Thumbnailer=20=EC=82=AC?= =?UTF-8?q?=EC=9D=B4=EB=93=9C=EC=B9=B4=20=EC=BA=90=EC=8B=9C+/thumb)+?= =?UTF-8?q?=EB=9D=BC=EC=9D=B4=EB=B8=8C=EB=9F=AC=EB=A6=AC=20=EA=B7=B8?= =?UTF-8?q?=EB=A6=AC=EB=93=9C,=20=EC=99=B8=EB=B6=80=EB=A7=9D=20=EC=95=88?= =?UTF-8?q?=EB=82=B4(ConnectionTroubleshoot).=20147=20tests=20GREEN?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- VideoDownloader.App/MainWindow.xaml | 46 +++++++- VideoDownloader.App/MainWindow.xaml.cs | 77 ++++++++++++- .../Services/TabViewService.cs | 63 +++++++++- VideoDownloader.Browser/PermissionGate.cs | 78 +++++++++++++ VideoDownloader.Browser/UrlCleaner.cs | 43 +++++++ .../ConnectionTroubleshoot.cs | 21 ++++ .../OfflineStore.cs | 7 +- .../QueueCompletionDetector.cs | 18 +++ .../VideoDownloader.Mobile.Core.csproj | 9 ++ VideoDownloader.Mobile/ApiClient.cs | 3 +- VideoDownloader.Mobile/AppOfflineStore.cs | 7 ++ VideoDownloader.Mobile/Pages.cs | 105 ++++++++++++++--- .../Platforms/Android/AndroidManifest.xml | 6 +- .../VideoDownloader.Mobile.csproj | 6 + VideoDownloader.Server/ServerHost.cs | 24 +++- VideoDownloader.Server/ServerModels.cs | 11 +- VideoDownloader.Server/Thumbnailer.cs | 57 +++++++++ .../VideoDownloader.Server.csproj | 3 + .../Browser/PermissionGateTests.cs | 46 ++++++++ .../Browser/TrackerBlockTests.cs | 40 +++++++ .../Browser/UrlCleanerTests.cs | 80 +++++++++++++ .../E2E/PermissionTrackerE2ETests.cs | 109 ++++++++++++++++++ .../Mobile/MobileCoreTests.cs | 106 +++++++++++++++++ .../Server/RemoteServerE2ETests.cs | 38 ++++++ .../Server/ThumbnailerTests.cs | 84 ++++++++++++++ .../VideoDownloader.Tests.csproj | 1 + 26 files changed, 1058 insertions(+), 30 deletions(-) create mode 100644 VideoDownloader.Browser/PermissionGate.cs create mode 100644 VideoDownloader.Browser/UrlCleaner.cs create mode 100644 VideoDownloader.Mobile.Core/ConnectionTroubleshoot.cs rename {VideoDownloader.Mobile => VideoDownloader.Mobile.Core}/OfflineStore.cs (91%) create mode 100644 VideoDownloader.Mobile.Core/QueueCompletionDetector.cs create mode 100644 VideoDownloader.Mobile.Core/VideoDownloader.Mobile.Core.csproj create mode 100644 VideoDownloader.Mobile/AppOfflineStore.cs create mode 100644 VideoDownloader.Server/Thumbnailer.cs create mode 100644 VideoDownloader.Tests/Browser/PermissionGateTests.cs create mode 100644 VideoDownloader.Tests/Browser/TrackerBlockTests.cs create mode 100644 VideoDownloader.Tests/Browser/UrlCleanerTests.cs create mode 100644 VideoDownloader.Tests/E2E/PermissionTrackerE2ETests.cs create mode 100644 VideoDownloader.Tests/Mobile/MobileCoreTests.cs create mode 100644 VideoDownloader.Tests/Server/ThumbnailerTests.cs diff --git a/VideoDownloader.App/MainWindow.xaml b/VideoDownloader.App/MainWindow.xaml index ccb1b94..c4bfb60 100644 --- a/VideoDownloader.App/MainWindow.xaml +++ b/VideoDownloader.App/MainWindow.xaml @@ -191,6 +191,14 @@