From c5fdbe6bc4c07e712386d499afc5b650b3e05234 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Moreau?= Date: Wed, 15 Apr 2026 16:09:24 -0400 Subject: [PATCH] Remove share package feature --- .../Infrastructure/AvaloniaBootstrapper.cs | 8 -- .../SoftwarePages/PackagesPageViewModel.cs | 21 --- .../Views/MainWindow.axaml.cs | 7 - .../AbstractPackagesPage.axaml.cs | 16 --- .../SoftwarePages/DiscoverSoftwarePage.cs | 7 - .../SoftwarePages/InstalledPackagesPage.cs | 14 +- .../Views/SoftwarePages/PackageBundlesPage.cs | 10 +- .../SoftwarePages/SoftwareUpdatesPage.cs | 10 -- .../BackgroundApi.cs | 19 +-- .../TelemetryHandler.cs | 4 - src/UniGetUI/App.xaml.cs | 6 - src/UniGetUI/MainWindow.xaml.cs | 23 +--- .../DialogPages/DialogHelper_Packages.cs | 130 ------------------ .../Pages/DialogPages/PackageDetailsPage.xaml | 26 +--- .../DialogPages/PackageDetailsPage.xaml.cs | 5 - .../AbstractPackagesPage.xaml.cs | 8 -- .../SoftwarePages/DiscoverSoftwarePage.cs | 21 --- .../SoftwarePages/InstalledPackagesPage.cs | 24 ---- .../Pages/SoftwarePages/PackageBundlesPage.cs | 31 +---- .../SoftwarePages/SoftwareUpdatesPage.cs | 13 -- 20 files changed, 9 insertions(+), 394 deletions(-) diff --git a/src/UniGetUI.Avalonia/Infrastructure/AvaloniaBootstrapper.cs b/src/UniGetUI.Avalonia/Infrastructure/AvaloniaBootstrapper.cs index b8d1876c9a..e4787867be 100644 --- a/src/UniGetUI.Avalonia/Infrastructure/AvaloniaBootstrapper.cs +++ b/src/UniGetUI.Avalonia/Infrastructure/AvaloniaBootstrapper.cs @@ -108,14 +108,6 @@ private static async Task InitializeBackgroundApiAsync() MainWindow.Instance?.ShowFromTray(); }); - _backgroundApi.OnShowSharedPackage += (_, pkg) => - Dispatcher.UIThread.Post(() => - { - Logger.Info($"BackgroundApi: ShowSharedPackage {pkg.Key}/{pkg.Value}"); - MainWindow.Instance?.ShowFromTray(); - MainWindow.Instance?.OpenSharedPackage(pkg.Key, pkg.Value); - }); - _backgroundApi.OnUpgradeAll += (_, _) => Dispatcher.UIThread.Post(() => _ = AvaloniaPackageOperationHelper.UpdateAllAsync()); diff --git a/src/UniGetUI.Avalonia/ViewModels/SoftwarePages/PackagesPageViewModel.cs b/src/UniGetUI.Avalonia/ViewModels/SoftwarePages/PackagesPageViewModel.cs index 2c0a380e4c..0b12130d87 100644 --- a/src/UniGetUI.Avalonia/ViewModels/SoftwarePages/PackagesPageViewModel.cs +++ b/src/UniGetUI.Avalonia/ViewModels/SoftwarePages/PackagesPageViewModel.cs @@ -167,11 +167,6 @@ public partial class PackagesPageViewModel : ViewModelBase public event Action? HelpRequested; /// Fired when the ViewModel wants to show the Manage-Ignored-Updates dialog. public event Action? ManageIgnoredRequested; - /// - /// Fired when the ViewModel has built a share URL. - /// Arguments: (packageName, url). Both null means "nothing to share". - /// - public event Action? SharePackageRequested; // ─── Constructor ───────────────────────────────────────────────────────── public PackagesPageViewModel(PackagesPageData data) @@ -717,22 +712,6 @@ public void UpdateSubtitle() [RelayCommand] private void RequestHelp() => HelpRequested?.Invoke(); [RelayCommand] private void RequestManageIgnored() => ManageIgnoredRequested?.Invoke(); - [RelayCommand] - public void RequestShare(IPackage? package) - { - if (package is null || package.Source.IsVirtualManager) - { - SharePackageRequested?.Invoke(null, null); - return; - } - var url = "https://marticliment.com/unigetui/share?" - + "name=" + System.Web.HttpUtility.UrlEncode(package.Name) - + "&id=" + System.Web.HttpUtility.UrlEncode(package.Id) - + "&sourceName=" + System.Web.HttpUtility.UrlEncode(package.Source.Name) - + "&managerName=" + System.Web.HttpUtility.UrlEncode(package.Manager.Name); - SharePackageRequested?.Invoke(package.Name, url); - } - // ─── Sort commands ──────────────────────────────────────────────────────── [RelayCommand] private void SortByName() => SortFieldIndex = 0; [RelayCommand] private void SortById() => SortFieldIndex = 1; diff --git a/src/UniGetUI.Avalonia/Views/MainWindow.axaml.cs b/src/UniGetUI.Avalonia/Views/MainWindow.axaml.cs index 621cd0b33c..f6223b9ea8 100644 --- a/src/UniGetUI.Avalonia/Views/MainWindow.axaml.cs +++ b/src/UniGetUI.Avalonia/Views/MainWindow.axaml.cs @@ -237,13 +237,6 @@ public void QuitApplication() as IClassicDesktopStyleApplicationLifetime)?.Shutdown(); } - public void OpenSharedPackage(string managerName, string packageId) - { - // TODO: open package details for the shared package - Logger.Info($"OpenSharedPackage: {managerName}/{packageId}"); - Navigate(PageType.Discover); - } - public static void ApplyProxyVariableToProcess() { try diff --git a/src/UniGetUI.Avalonia/Views/SoftwarePages/AbstractPackagesPage.axaml.cs b/src/UniGetUI.Avalonia/Views/SoftwarePages/AbstractPackagesPage.axaml.cs index a649845266..daa61430fe 100644 --- a/src/UniGetUI.Avalonia/Views/SoftwarePages/AbstractPackagesPage.axaml.cs +++ b/src/UniGetUI.Avalonia/Views/SoftwarePages/AbstractPackagesPage.axaml.cs @@ -34,22 +34,6 @@ protected AbstractPackagesPage(PackagesPageData data) if (GetMainWindow() is { } win) await new ManageIgnoredUpdatesWindow().ShowDialog(win); }; - ViewModel.SharePackageRequested += async (pkgName, url) => - { - if (GetMainWindow() is not { } win) return; - if (url is null) - { - await ViewModel.ShowInfoDialog(win, - CoreTools.Translate("Nothing to share"), - CoreTools.Translate("Please select a package first.")); - return; - } - var clipboard = TopLevel.GetTopLevel(this)?.Clipboard; - if (clipboard is not null) await clipboard.SetTextAsync(url); - await ViewModel.ShowInfoDialog(win, - CoreTools.Translate("Share link copied"), - CoreTools.Translate("The share link for {0} has been copied to the clipboard.", pkgName ?? "")); - }; // "New version" sort option is only relevant on the updates page OrderByNewVersion_Menu.IsVisible = ViewModel.RoleIsUpdateLike; diff --git a/src/UniGetUI.Avalonia/Views/SoftwarePages/DiscoverSoftwarePage.cs b/src/UniGetUI.Avalonia/Views/SoftwarePages/DiscoverSoftwarePage.cs index f9a0f0bf35..5c6b43ebb3 100644 --- a/src/UniGetUI.Avalonia/Views/SoftwarePages/DiscoverSoftwarePage.cs +++ b/src/UniGetUI.Avalonia/Views/SoftwarePages/DiscoverSoftwarePage.cs @@ -1,4 +1,3 @@ -using System.Web; using Avalonia; using Avalonia.Controls; using Avalonia.Controls.ApplicationLifetimes; @@ -73,8 +72,6 @@ protected override void GenerateToolBar(PackagesPageViewModel vm) ViewModel.AddToolbarSeparator(); ViewModel.AddToolbarButton("info_round", CoreTools.Translate("Package details"), () => _ = ShowDetailsForPackage(SelectedItem), showLabel: false); - ViewModel.AddToolbarButton("share", CoreTools.Translate("Share"), - () => vm.RequestShareCommand.Execute(SelectedItem), showLabel: false); ViewModel.AddToolbarSeparator(); ViewModel.AddToolbarButton("add_to", CoreTools.Translate("Add selection to bundle"), () => _ = ExportSelectionToBundleAsync(vm)); @@ -121,9 +118,6 @@ protected override void GenerateToolBar(PackagesPageViewModel vm) var menuInstallOptions = new MenuItem { Header = CoreTools.AutoTranslated("Install options"), Icon = LoadMenuIcon("options") }; menuInstallOptions.Click += (_, _) => _ = ShowInstallationOptionsForPackage(SelectedItem); - var menuShare = new MenuItem { Header = CoreTools.AutoTranslated("Share this package"), Icon = LoadMenuIcon("share") }; - menuShare.Click += (_, _) => ViewModel.RequestShareCommand.Execute(SelectedItem); - var menuDetails = new MenuItem { Header = CoreTools.AutoTranslated("Package details"), Icon = LoadMenuIcon("info_round") }; menuDetails.Click += (_, _) => _ = ShowDetailsForPackage(SelectedItem); @@ -137,7 +131,6 @@ protected override void GenerateToolBar(PackagesPageViewModel vm) menu.Items.Add(_menuSkipHash); menu.Items.Add(_menuDownloadInstaller); menu.Items.Add(new Separator()); - menu.Items.Add(menuShare); menu.Items.Add(menuDetails); return menu; diff --git a/src/UniGetUI.Avalonia/Views/SoftwarePages/InstalledPackagesPage.cs b/src/UniGetUI.Avalonia/Views/SoftwarePages/InstalledPackagesPage.cs index 3ea7e4ba6b..d75381665f 100644 --- a/src/UniGetUI.Avalonia/Views/SoftwarePages/InstalledPackagesPage.cs +++ b/src/UniGetUI.Avalonia/Views/SoftwarePages/InstalledPackagesPage.cs @@ -27,7 +27,6 @@ public class InstalledPackagesPage : AbstractPackagesPage private MenuItem? _menuReinstall; private MenuItem? _menuUninstallThenReinstall; private MenuItem? _menuIgnoreUpdates; - private MenuItem? _menuShare; private MenuItem? _menuDetails; private MenuItem? _menuOpenInstallLocation; private MenuItem? _menuDownloadInstaller; @@ -90,8 +89,6 @@ protected override void GenerateToolBar(PackagesPageViewModel vm) ViewModel.AddToolbarSeparator(); ViewModel.AddToolbarButton("info_round", CoreTools.Translate("Package details"), () => _ = ShowDetailsForPackage(SelectedItem), showLabel: false); - ViewModel.AddToolbarButton("share", CoreTools.Translate("Share"), - () => vm.RequestShareCommand.Execute(SelectedItem), showLabel: false); ViewModel.AddToolbarSeparator(); ViewModel.AddToolbarButton("pin", CoreTools.Translate("Ignore selected packages"), async () => { @@ -188,13 +185,6 @@ protected override void GenerateToolBar(PackagesPageViewModel vm) }; _menuIgnoreUpdates.Click += (_, _) => _ = ToggleIgnoreUpdatesAsync(SelectedItem); - _menuShare = new MenuItem - { - Header = CoreTools.AutoTranslated("Share this package"), - Icon = LoadMenuIcon("share"), - }; - _menuShare.Click += (_, _) => ViewModel.RequestShareCommand.Execute(SelectedItem); - _menuDetails = new MenuItem { Header = CoreTools.AutoTranslated("Package details"), @@ -219,7 +209,6 @@ protected override void GenerateToolBar(PackagesPageViewModel vm) menu.Items.Add(new Separator()); menu.Items.Add(_menuIgnoreUpdates); menu.Items.Add(new Separator()); - menu.Items.Add(_menuShare); menu.Items.Add(_menuDetails); return menu; @@ -230,7 +219,7 @@ protected override void WhenShowingContextMenu(IPackage package) if (_menuAsAdmin is null || _menuInteractive is null || _menuRemoveData is null || _menuInstallationOptions is null || _menuReinstall is null || _menuUninstallThenReinstall is null || _menuIgnoreUpdates is null - || _menuShare is null || _menuDetails is null + || _menuDetails is null || _menuOpenInstallLocation is null || _menuDownloadInstaller is null) { Logger.Warn("Context menu items are null on InstalledPackagesPage"); @@ -247,7 +236,6 @@ protected override void WhenShowingContextMenu(IPackage package) _menuInstallationOptions.IsEnabled = !isLocal; _menuReinstall.IsEnabled = !isLocal; _menuUninstallThenReinstall.IsEnabled = !isLocal; - _menuShare.IsEnabled = !isLocal; _menuDetails.IsEnabled = !isLocal; _menuOpenInstallLocation.IsEnabled = package.Manager.DetailsHelper.GetInstallLocation(package) is not null; diff --git a/src/UniGetUI.Avalonia/Views/SoftwarePages/PackageBundlesPage.cs b/src/UniGetUI.Avalonia/Views/SoftwarePages/PackageBundlesPage.cs index 2821e900be..953a61357b 100644 --- a/src/UniGetUI.Avalonia/Views/SoftwarePages/PackageBundlesPage.cs +++ b/src/UniGetUI.Avalonia/Views/SoftwarePages/PackageBundlesPage.cs @@ -34,7 +34,6 @@ public class PackageBundlesPage : AbstractPackagesPage private MenuItem? _menuInteractive; private MenuItem? _menuSkipHash; private MenuItem? _menuDownloadInstaller; - private MenuItem? _menuShare; private MenuItem? _menuDetails; private readonly PackageBundlesLoader _loader; @@ -113,8 +112,6 @@ protected override void GenerateToolBar(PackagesPageViewModel vm) ViewModel.AddToolbarSeparator(); ViewModel.AddToolbarButton("info_round", CoreTools.Translate("Package details"), () => _ = ShowDetailsForPackage(SelectedItem), showLabel: false); - ViewModel.AddToolbarButton("share", CoreTools.Translate("Share"), - () => vm.RequestShareCommand.Execute(SelectedItem), showLabel: false); ViewModel.AddToolbarSeparator(); ViewModel.AddToolbarButton("help", CoreTools.Translate("Help"), () => vm.RequestHelpCommand.Execute(null)); @@ -168,9 +165,6 @@ private static IReadOnlyList GetCheckedNonInstalledPackages(PackagesPa } }; - _menuShare = new MenuItem { Header = CoreTools.AutoTranslated("Share this package"), Icon = LoadMenuIcon("share") }; - _menuShare.Click += (_, _) => ViewModel.RequestShareCommand.Execute(SelectedItem); - _menuDetails = new MenuItem { Header = CoreTools.AutoTranslated("Package details"), Icon = LoadMenuIcon("info_round") }; _menuDetails.Click += (_, _) => _ = ShowDetailsForPackage(SelectedItem); @@ -186,7 +180,6 @@ private static IReadOnlyList GetCheckedNonInstalledPackages(PackagesPa menu.Items.Add(new Separator()); menu.Items.Add(menuRemoveFromList); menu.Items.Add(new Separator()); - menu.Items.Add(_menuShare); menu.Items.Add(_menuDetails); return menu; } @@ -195,7 +188,7 @@ protected override void WhenShowingContextMenu(IPackage package) { if (_menuInstall is null || _menuInstallOptions is null || _menuAsAdmin is null || _menuInteractive is null || _menuSkipHash is null || _menuDownloadInstaller is null - || _menuShare is null || _menuDetails is null) + || _menuDetails is null) { Logger.Warn("Context menu items are null on PackageBundlesPage"); return; @@ -210,7 +203,6 @@ protected override void WhenShowingContextMenu(IPackage package) _menuInteractive.IsEnabled = isValid && caps.CanRunInteractively; _menuSkipHash.IsEnabled = isValid && caps.CanSkipIntegrityChecks; _menuDownloadInstaller.IsEnabled = isValid && caps.CanDownloadInstaller; - _menuShare.IsEnabled = isValid; _menuDetails.IsEnabled = isValid; } diff --git a/src/UniGetUI.Avalonia/Views/SoftwarePages/SoftwareUpdatesPage.cs b/src/UniGetUI.Avalonia/Views/SoftwarePages/SoftwareUpdatesPage.cs index d9c01a396a..75d00560a0 100644 --- a/src/UniGetUI.Avalonia/Views/SoftwarePages/SoftwareUpdatesPage.cs +++ b/src/UniGetUI.Avalonia/Views/SoftwarePages/SoftwareUpdatesPage.cs @@ -84,8 +84,6 @@ protected override void GenerateToolBar(PackagesPageViewModel vm) ViewModel.AddToolbarSeparator(); ViewModel.AddToolbarButton("info_round", CoreTools.Translate("Package details"), () => _ = ShowDetailsForPackage(SelectedItem), showLabel: false); - ViewModel.AddToolbarButton("share", CoreTools.Translate("Share"), - () => vm.RequestShareCommand.Execute(SelectedItem), showLabel: false); ViewModel.AddToolbarSeparator(); ViewModel.AddToolbarButton("pin", CoreTools.Translate("Ignore selected packages"), async () => { @@ -229,13 +227,6 @@ protected override void GenerateToolBar(PackagesPageViewModel vm) menuPause.Items.Add(item); } - var menuShare = new MenuItem - { - Header = CoreTools.AutoTranslated("Share this package"), - Icon = LoadMenuIcon("share"), - }; - menuShare.Click += (_, _) => ViewModel.RequestShareCommand.Execute(SelectedItem); - var menuDetails = new MenuItem { Header = CoreTools.AutoTranslated("Package details"), @@ -261,7 +252,6 @@ protected override void GenerateToolBar(PackagesPageViewModel vm) menu.Items.Add(menuSkipVersion); menu.Items.Add(menuPause); menu.Items.Add(new Separator()); - menu.Items.Add(menuShare); menu.Items.Add(menuDetails); return menu; diff --git a/src/UniGetUI.Interface.BackgroundApi/BackgroundApi.cs b/src/UniGetUI.Interface.BackgroundApi/BackgroundApi.cs index ed0e0e552a..1559cb7b13 100644 --- a/src/UniGetUI.Interface.BackgroundApi/BackgroundApi.cs +++ b/src/UniGetUI.Interface.BackgroundApi/BackgroundApi.cs @@ -25,7 +25,6 @@ public class BackgroundApiRunner { public event EventHandler? OnOpenWindow; public event EventHandler? OnOpenUpdatesPage; - public event EventHandler>? OnShowSharedPackage; public event EventHandler? OnUpgradeAll; public event EventHandler? OnUpgradeAllForManager; public event EventHandler? OnUpgradePackage; @@ -62,7 +61,6 @@ public async Task Start() app.UseRouting(); app.UseEndpoints(endpoints => { - // Share endpoints endpoints.MapGet("/v2/show-package", V2_ShowPackage); endpoints.MapGet("/is-running", API_IsRunning); // Widgets v1 API @@ -98,21 +96,10 @@ public async Task Start() private async Task V2_ShowPackage(HttpContext context) { - var query = context.Request.Query; - if (string.IsNullOrEmpty(query["pid"]) || string.IsNullOrEmpty(query["psource"])) - { - context.Response.StatusCode = 400; - return; - } - - string packageId = query["pid"].ToString(); - string packageSource = query["psource"].ToString(); - OnShowSharedPackage?.Invoke( - null, - new KeyValuePair(packageId, packageSource) + context.Response.StatusCode = StatusCodes.Status410Gone; + await context.Response.WriteAsync( + "{\"status\": \"removed\", \"message\": \"package sharing has been removed\"}" ); - - await context.Response.WriteAsync("{\"status\": \"success\"}"); } private async Task API_IsRunning(HttpContext context) diff --git a/src/UniGetUI.Interface.Telemetry/TelemetryHandler.cs b/src/UniGetUI.Interface.Telemetry/TelemetryHandler.cs index 0c02104c99..e03b045e1a 100644 --- a/src/UniGetUI.Interface.Telemetry/TelemetryHandler.cs +++ b/src/UniGetUI.Interface.Telemetry/TelemetryHandler.cs @@ -19,7 +19,6 @@ public enum TEL_InstallReferral { DIRECT_SEARCH, FROM_BUNDLE, - FROM_WEB_SHARE, ALREADY_INSTALLED, } @@ -208,9 +207,6 @@ public static void UninstallPackage(IPackage package, TEL_OP_RESULT status) => public static void PackageDetails(IPackage package, string eventSource) => _ = TrackPackageEventAsync(package, "details", eventSource: eventSource); - public static void SharedPackage(IPackage package, string eventSource) => - _ = TrackPackageEventAsync(package, "share", eventSource: eventSource); - private static async Task TrackPackageEventAsync( IPackage package, string operation, diff --git a/src/UniGetUI/App.xaml.cs b/src/UniGetUI/App.xaml.cs index ce3a182798..6480addc0d 100644 --- a/src/UniGetUI/App.xaml.cs +++ b/src/UniGetUI/App.xaml.cs @@ -418,12 +418,6 @@ private async Task InitializeBackgroundAPI() MainWindow?.Activate(); }); - BackgroundApi.OnShowSharedPackage += (_, package) => - MainWindow.DispatcherQueue.TryEnqueue(() => - { - DialogHelper.ShowSharedPackage_ThreadSafe(package.Key, package.Value); - }); - BackgroundApi.OnUpgradeAll += (_, _) => MainWindow.DispatcherQueue.TryEnqueue(() => { diff --git a/src/UniGetUI/MainWindow.xaml.cs b/src/UniGetUI/MainWindow.xaml.cs index 4d8d034b98..e2d0b401e4 100644 --- a/src/UniGetUI/MainWindow.xaml.cs +++ b/src/UniGetUI/MainWindow.xaml.cs @@ -311,28 +311,7 @@ private void HandleDeepLink(string link) if (baseUrl.StartsWith("showPackage")) { - string Id = Regex.Match(baseUrl, "id=([^&]+)").Value.Split("=")[^1]; - string CombinedManagerName = Regex - .Match(baseUrl, "combinedManagerName=([^&]+)") - .Value.Split("=")[^1]; - string ManagerName = Regex.Match(baseUrl, "managerName=([^&]+)").Value.Split("=")[ - ^1 - ]; - string SourceName = Regex.Match(baseUrl, "sourceName=([^&]+)").Value.Split("=")[^1]; - - if (Id != "" && CombinedManagerName != "" && ManagerName == "" && SourceName == "") - { - Logger.Warn($"URI {link} follows old scheme"); - DialogHelper.ShowSharedPackage_ThreadSafe(Id, CombinedManagerName); - } - else if (Id != "" && ManagerName != "" && SourceName != "") - { - DialogHelper.ShowSharedPackage_ThreadSafe(Id, ManagerName, SourceName); - } - else - { - Logger.Error(new UriFormatException($"Malformed URL {link}")); - } + Logger.Warn($"Ignoring unsupported package-share deep link: {link}"); } else if (baseUrl.StartsWith("showUniGetUI")) { diff --git a/src/UniGetUI/Pages/DialogPages/DialogHelper_Packages.cs b/src/UniGetUI/Pages/DialogPages/DialogHelper_Packages.cs index 3966ee70e1..461f09f2fe 100644 --- a/src/UniGetUI/Pages/DialogPages/DialogHelper_Packages.cs +++ b/src/UniGetUI/Pages/DialogPages/DialogHelper_Packages.cs @@ -1,4 +1,3 @@ -using System.Web; using ABI.Microsoft.UI.Text; using Microsoft.UI; using Microsoft.UI.Xaml; @@ -17,7 +16,6 @@ using UniGetUI.PackageEngine.PackageLoader; using UniGetUI.PackageEngine.Serializable; using UniGetUI.Pages.SettingsPages.GeneralPages; -using Windows.ApplicationModel.DataTransfer; using Windows.UI.Text; namespace UniGetUI.Pages.DialogPages; @@ -181,84 +179,6 @@ public static async Task ConfirmUninstallation(IReadOnlyList pac return await ShowDialogAsync(dialog) is ContentDialogResult.Primary; } - public static void ShowSharedPackage_ThreadSafe(string id, string combinedSourceName) - { - var contents = combinedSourceName.Split(':'); - string managerName = contents[0]; - string sourceName = ""; - if (contents.Length > 1) - sourceName = contents[1]; - _ = GetPackageFromIdAndManager(id, managerName, sourceName, "LEGACY_COMBINEDSOURCE"); - } - - public static void ShowSharedPackage_ThreadSafe( - string id, - string managerName, - string sourceName - ) - { - MainApp.Instance.MainWindow.DispatcherQueue.TryEnqueue(() => - { - _ = GetPackageFromIdAndManager(id, managerName, sourceName, "DEFAULT"); - }); - } - - private static async Task GetPackageFromIdAndManager( - string id, - string managerName, - string sourceName, - string eventSource - ) - { - int loadingId = ShowLoadingDialog(CoreTools.Translate("Please wait...")); - try - { - Window.Activate(); - - var findResult = await Task.Run(() => - DiscoverablePackagesLoader.Instance.GetPackageFromIdAndManager( - id, - managerName, - sourceName - ) - ); - - HideLoadingDialog(loadingId); - - if (findResult.Item1 is null) - throw new KeyNotFoundException(findResult.Item2 ?? "Unknown error"); - - TelemetryHandler.SharedPackage(findResult.Item1, eventSource); - _ = ShowPackageDetails( - findResult.Item1, - OperationType.Install, - TEL_InstallReferral.FROM_WEB_SHARE - ); - } - catch (Exception ex) - { - Logger.Error($"An error occurred while attempting to show the package with id {id}"); - HideLoadingDialog(loadingId); - - var warningDialog = new ContentDialog - { - Title = CoreTools.Translate("Package not found"), - Content = - CoreTools.Translate( - "An error occurred when attempting to show the package with Id {0}", - id - ) - + ":\n" - + ex.Message, - CloseButtonText = CoreTools.Translate("Ok"), - DefaultButton = ContentDialogButton.Close, - XamlRoot = MainApp.Instance.MainWindow.Content.XamlRoot, // Ensure the dialog is shown in the correct context - }; - - await ShowDialogAsync(warningDialog); - } - } - public static async Task ShowBundleSecurityReport( Dictionary> packageReport ) @@ -390,56 +310,6 @@ Dictionary> packageReport await ShowDialogAsync(dialog); } - public static void SharePackage(IPackage? package) - { - if (package is null) - return; - - if (package.Source.IsVirtualManager || package is InvalidImportedPackage) - { - DialogHelper.ShowDismissableBalloon( - CoreTools.Translate("Something went wrong"), - CoreTools.Translate("\"{0}\" is a local package and can't be shared", package.Name) - ); - return; - } - - IntPtr hWnd = Window.GetWindowHandle(); - - NativeHelpers.IDataTransferManagerInterop interop = - DataTransferManager.As(); - - IntPtr result = interop.GetForWindow(hWnd, NativeHelpers._dtm_iid); - DataTransferManager dataTransferManager = - WinRT.MarshalInterface.FromAbi(result); - - dataTransferManager.DataRequested += (_, args) => - { - DataRequest dataPackage = args.Request; - Uri ShareUrl = new( - "https://marticliment.com/unigetui/share?" - + "name=" - + HttpUtility.UrlEncode(package.Name) - + "&id=" - + HttpUtility.UrlEncode(package.Id) - + "&sourceName=" - + HttpUtility.UrlEncode(package.Source.Name) - + "&managerName=" - + HttpUtility.UrlEncode(package.Manager.DisplayName) - ); - - dataPackage.Data.SetWebLink(ShareUrl); - dataPackage.Data.Properties.Title = "Sharing " + package.Name; - dataPackage.Data.Properties.ApplicationName = "WingetUI"; - dataPackage.Data.Properties.ContentSourceWebLink = ShareUrl; - dataPackage.Data.Properties.Description = - "Share " + package.Name + " with your friends"; - dataPackage.Data.Properties.PackageFamilyName = "WingetUI"; - }; - - interop.ShowShareUIForWindow(hWnd); - } - /// /// Returns true if the user confirms to lose unsaved changes, and wants to proceed with the creation of a new bundle /// diff --git a/src/UniGetUI/Pages/DialogPages/PackageDetailsPage.xaml b/src/UniGetUI/Pages/DialogPages/PackageDetailsPage.xaml index c0abab9b70..2673e2fb46 100644 --- a/src/UniGetUI/Pages/DialogPages/PackageDetailsPage.xaml +++ b/src/UniGetUI/Pages/DialogPages/PackageDetailsPage.xaml @@ -118,38 +118,16 @@ - + - - - - - + diff --git a/src/UniGetUI/Pages/DialogPages/PackageDetailsPage.xaml.cs b/src/UniGetUI/Pages/DialogPages/PackageDetailsPage.xaml.cs index fb25feac02..aa7938673d 100644 --- a/src/UniGetUI/Pages/DialogPages/PackageDetailsPage.xaml.cs +++ b/src/UniGetUI/Pages/DialogPages/PackageDetailsPage.xaml.cs @@ -558,11 +558,6 @@ public async Task LoadScreenshots() PackageDetailsPage_SizeChanged(); } - public void ShareButton_Click(object sender, RoutedEventArgs e) - { - DialogHelper.SharePackage(Package); - } - public void DownloadInstallerButton_Click(object sender, RoutedEventArgs e) { if (!Package.Manager.Capabilities.CanDownloadInstaller) diff --git a/src/UniGetUI/Pages/SoftwarePages/AbstractPackagesPage.xaml.cs b/src/UniGetUI/Pages/SoftwarePages/AbstractPackagesPage.xaml.cs index 3a023f7476..3608e66937 100644 --- a/src/UniGetUI/Pages/SoftwarePages/AbstractPackagesPage.xaml.cs +++ b/src/UniGetUI/Pages/SoftwarePages/AbstractPackagesPage.xaml.cs @@ -1219,14 +1219,6 @@ protected void OpenPackageInstallLocation(IPackage? package) CoreTools.Launch(path); } - protected void SharePackage(IPackage? package) - { - if (package is null) - return; - - DialogHelper.SharePackage(package); - } - protected async Task ShowInstallationOptionsForPackage(IPackage? package) { if (package is null) diff --git a/src/UniGetUI/Pages/SoftwarePages/DiscoverSoftwarePage.cs b/src/UniGetUI/Pages/SoftwarePages/DiscoverSoftwarePage.cs index 6a19859e7f..9e591e854a 100644 --- a/src/UniGetUI/Pages/SoftwarePages/DiscoverSoftwarePage.cs +++ b/src/UniGetUI/Pages/SoftwarePages/DiscoverSoftwarePage.cs @@ -141,14 +141,6 @@ public override BetterMenu GenerateContextMenu() menu.Items.Add(new MenuFlyoutSeparator { Height = 5 }); - BetterMenuItem menuShare = new() - { - Text = CoreTools.AutoTranslated("Share this package"), - IconName = IconType.Share, - }; - menuShare.Click += MenuShare_Invoked; - menu.Items.Add(menuShare); - BetterMenuItem menuDetails = new() { Text = CoreTools.AutoTranslated("Package details"), @@ -186,7 +178,6 @@ public override void GenerateToolBar() AppBarButton InstallationSettings = new(); AppBarButton PackageDetails = new(); - AppBarButton SharePackage = new(); AppBarButton ExportSelection = new(); @@ -196,7 +187,6 @@ public override void GenerateToolBar() ToolBar.PrimaryCommands.Add(InstallationSettings); ToolBar.PrimaryCommands.Add(new AppBarSeparator()); ToolBar.PrimaryCommands.Add(PackageDetails); - ToolBar.PrimaryCommands.Add(SharePackage); ToolBar.PrimaryCommands.Add(new AppBarSeparator()); ToolBar.PrimaryCommands.Add(ExportSelection); ToolBar.PrimaryCommands.Add(new AppBarSeparator()); @@ -211,7 +201,6 @@ public override void GenerateToolBar() { DownloadInstallers, CoreTools.Translate("Download selected installers") }, { InstallationSettings, CoreTools.Translate("Install options") }, { PackageDetails, " " + CoreTools.Translate("Package details") }, - { SharePackage, " " + CoreTools.Translate("Share") }, { ExportSelection, CoreTools.Translate("Add selection to bundle") }, { HelpButton, CoreTools.Translate("Help") }, }; @@ -224,7 +213,6 @@ public override void GenerateToolBar() { DownloadInstallers, IconType.Download }, { InstallInteractive, IconType.Interactive }, { PackageDetails, IconType.Info_Round }, - { SharePackage, IconType.Share }, { ExportSelection, IconType.AddTo }, { HelpButton, IconType.Help }, }; @@ -267,7 +255,6 @@ public override void GenerateToolBar() TEL_InstallReferral.DIRECT_SEARCH ); - SharePackage.Click += (_, _) => DialogHelper.SharePackage(SelectedItem); } public override async Task LoadPackages() @@ -331,14 +318,6 @@ private void MenuDetails_Invoked(object sender, RoutedEventArgs e) ShowDetailsForPackage(SelectedItem, TEL_InstallReferral.DIRECT_SEARCH); } - private void MenuShare_Invoked(object sender, RoutedEventArgs e) - { - if (SelectedItem is null) - return; - - DialogHelper.SharePackage(SelectedItem); - } - private void MenuInstall_Invoked(object sender, RoutedEventArgs e) => _ = MainApp.Operations.Install(SelectedItem, TEL_InstallReferral.DIRECT_SEARCH); diff --git a/src/UniGetUI/Pages/SoftwarePages/InstalledPackagesPage.cs b/src/UniGetUI/Pages/SoftwarePages/InstalledPackagesPage.cs index 10e65a0e19..e47858ae3e 100644 --- a/src/UniGetUI/Pages/SoftwarePages/InstalledPackagesPage.cs +++ b/src/UniGetUI/Pages/SoftwarePages/InstalledPackagesPage.cs @@ -30,7 +30,6 @@ public partial class InstalledPackagesPage : AbstractPackagesPage private BetterMenuItem? MenuReinstallPackage; private BetterMenuItem? MenuUninstallThenReinstall; private BetterMenuItem? MenuIgnoreUpdates; - private BetterMenuItem? MenuSharePackage; private BetterMenuItem? MenuPackageDetails; private BetterMenuItem? MenuOpenInstallLocation; private BetterMenuItem? MenuDownloadInstaller; @@ -168,14 +167,6 @@ public override BetterMenu GenerateContextMenu() menu.Items.Add(new MenuFlyoutSeparator()); - MenuSharePackage = new() - { - Text = CoreTools.AutoTranslated("Share this package"), - IconName = IconType.Share, - }; - MenuSharePackage.Click += MenuShare_Invoked; - menu.Items.Add(MenuSharePackage); - MenuPackageDetails = new() { Text = CoreTools.AutoTranslated("Package details"), @@ -211,7 +202,6 @@ public override void GenerateToolBar() AppBarButton InstallationSettings = new(); AppBarButton PackageDetails = new(); - AppBarButton SharePackage = new(); AppBarButton IgnoreSelected = new(); AppBarButton ManageIgnored = new(); @@ -223,7 +213,6 @@ public override void GenerateToolBar() ToolBar.PrimaryCommands.Add(InstallationSettings); ToolBar.PrimaryCommands.Add(new AppBarSeparator()); ToolBar.PrimaryCommands.Add(PackageDetails); - ToolBar.PrimaryCommands.Add(SharePackage); ToolBar.PrimaryCommands.Add(new AppBarSeparator()); ToolBar.PrimaryCommands.Add(IgnoreSelected); ToolBar.PrimaryCommands.Add(ManageIgnored); @@ -240,7 +229,6 @@ public override void GenerateToolBar() { DownloadInstallers, CoreTools.Translate("Download selected installers") }, { InstallationSettings, " " + CoreTools.Translate("Uninstall options") }, { PackageDetails, " " + CoreTools.Translate("Package details") }, - { SharePackage, " " + CoreTools.Translate("Share") }, { IgnoreSelected, CoreTools.Translate("Ignore selected packages") }, { ManageIgnored, CoreTools.Translate("Manage ignored updates") }, { ExportSelection, CoreTools.Translate("Add selection to bundle") }, @@ -254,7 +242,6 @@ public override void GenerateToolBar() { DownloadInstallers, IconType.Download }, { InstallationSettings, IconType.Options }, { PackageDetails, IconType.Info_Round }, - { SharePackage, IconType.Share }, { IgnoreSelected, IconType.Pin }, { ManageIgnored, IconType.ClipboardList }, { ExportSelection, IconType.AddTo }, @@ -300,7 +287,6 @@ public override void GenerateToolBar() FilteredPackages.GetCheckedPackages(), TEL_InstallReferral.ALREADY_INSTALLED ); - SharePackage.Click += (_, _) => DialogHelper.SharePackage(SelectedItem); } protected override void WhenPackageCountUpdated() @@ -353,7 +339,6 @@ MenuAsAdmin is null || MenuUninstallThenReinstall is null || MenuReinstallPackage is null || MenuIgnoreUpdates is null - || MenuSharePackage is null || MenuPackageDetails is null || MenuOpenInstallLocation is null || MenuDownloadInstaller is null @@ -373,7 +358,6 @@ MenuAsAdmin is null MenuReinstallPackage.IsEnabled = !IS_LOCAL; MenuUninstallThenReinstall.IsEnabled = !IS_LOCAL; MenuIgnoreUpdates.IsEnabled = false; // Will be set on the lines below; - MenuSharePackage.IsEnabled = !IS_LOCAL; MenuPackageDetails.IsEnabled = !IS_LOCAL; MenuDownloadInstaller.IsEnabled = !IS_LOCAL && package.Manager.Capabilities.CanDownloadInstaller; @@ -527,14 +511,6 @@ private async Task _menuIgnorePackage_Invoked() } } - private void MenuShare_Invoked(object sender, RoutedEventArgs args) - { - if (SelectedItem is null) - return; - - DialogHelper.SharePackage(SelectedItem); - } - private void MenuDetails_Invoked(object sender, RoutedEventArgs args) { ShowDetailsForPackage(SelectedItem, TEL_InstallReferral.ALREADY_INSTALLED); diff --git a/src/UniGetUI/Pages/SoftwarePages/PackageBundlesPage.cs b/src/UniGetUI/Pages/SoftwarePages/PackageBundlesPage.cs index 30a37bb97a..c0d9a8f496 100644 --- a/src/UniGetUI/Pages/SoftwarePages/PackageBundlesPage.cs +++ b/src/UniGetUI/Pages/SoftwarePages/PackageBundlesPage.cs @@ -31,7 +31,6 @@ public partial class PackageBundlesPage : AbstractPackagesPage { private BetterMenuItem? MenuInstallOptions; private BetterMenuItem? MenuInstall; - private BetterMenuItem? MenuShare; private BetterMenuItem? MenuDetails; private BetterMenuItem? MenuAsAdmin; private BetterMenuItem? MenuInteractive; @@ -162,14 +161,6 @@ public override BetterMenu GenerateContextMenu() menu.Items.Add(menuRemoveFromList); menu.Items.Add(new MenuFlyoutSeparator()); - MenuShare = new() - { - Text = CoreTools.AutoTranslated("Share this package"), - IconName = IconType.Share, - }; - MenuShare.Click += MenuShare_Invoked; - menu.Items.Add(MenuShare); - MenuDetails = new() { Text = CoreTools.AutoTranslated("Package details"), @@ -212,7 +203,6 @@ public override void GenerateToolBar() AppBarButton ToBatchScript = new(); AppBarButton AddPackagesToBundle = new(); AppBarButton PackageDetails = new(); - AppBarButton SharePackage = new(); AppBarButton HelpButton = new(); ToolBar.PrimaryCommands.Add(new AppBarSeparator()); @@ -226,7 +216,6 @@ public override void GenerateToolBar() ToolBar.PrimaryCommands.Add(RemoveSelected); ToolBar.PrimaryCommands.Add(new AppBarSeparator()); ToolBar.PrimaryCommands.Add(PackageDetails); - ToolBar.PrimaryCommands.Add(SharePackage); ToolBar.PrimaryCommands.Add(new AppBarSeparator()); ToolBar.PrimaryCommands.Add(HelpButton); @@ -244,7 +233,6 @@ public override void GenerateToolBar() { SaveBundle, CoreTools.Translate("Save as") }, { AddPackagesToBundle, CoreTools.Translate("Add packages to bundle") }, { PackageDetails, " " + CoreTools.Translate("Package details") }, - { SharePackage, " " + CoreTools.Translate("Share") }, { HelpButton, CoreTools.Translate("Help") }, }; @@ -261,7 +249,6 @@ public override void GenerateToolBar() { SaveBundle, IconType.SaveAs }, { AddPackagesToBundle, IconType.AddTo }, { PackageDetails, IconType.Info_Round }, - { SharePackage, IconType.Share }, { HelpButton, IconType.Help }, }; @@ -277,7 +264,7 @@ public override void GenerateToolBar() DialogHelper.ShowDismissableBalloon( CoreTools.Translate("Something went wrong"), CoreTools.Translate( - "\"{0}\" is a local package and can't be shared", + "\"{0}\" is a local package and is not compatible with this feature", SelectedItem.Name ) ); @@ -331,13 +318,6 @@ IReadOnlyList GetCheckedNonInstalledPackages() SaveBundle.Click += async (_, _) => await SaveFile(); ToBatchScript.Click += (_, _) => _ = CreateBatchScript(); - SharePackage.Click += (_, _) => - { - IPackage? package = SelectedItem; - if (package is not null) - DialogHelper.SharePackage(package); - }; - AddPackagesToBundle.Click += (_, _) => _ = DialogHelper.HowToAddPackagesToBundle(); } @@ -407,7 +387,6 @@ MenuAsAdmin is null || MenuInteractive is null || MenuSkipHash is null || MenuDetails is null - || MenuShare is null || MenuInstall is null || MenuInstallOptions is null || MenuDownloadInstaller is null @@ -425,7 +404,6 @@ MenuAsAdmin is null MenuSkipHash.IsEnabled = IS_VALID && package.Manager.Capabilities.CanSkipIntegrityChecks; MenuDetails.IsEnabled = IS_VALID; - MenuShare.IsEnabled = IS_VALID; MenuInstall.IsEnabled = IS_VALID; MenuInstallOptions.IsEnabled = IS_VALID; MenuDownloadInstaller.IsEnabled = @@ -460,13 +438,6 @@ private void MenuSkipHash_Invoked(object sender, RoutedEventArgs args) _ = ImportAndInstallPackage([SelectedItem], skiphash: true); } - private void MenuShare_Invoked(object sender, RoutedEventArgs args) - { - if (SelectedItem is null) - return; - DialogHelper.SharePackage(SelectedItem); - } - private void MenuDetails_Invoked(object sender, RoutedEventArgs args) { ShowDetailsForPackage(SelectedItem, TEL_InstallReferral.FROM_BUNDLE); diff --git a/src/UniGetUI/Pages/SoftwarePages/SoftwareUpdatesPage.cs b/src/UniGetUI/Pages/SoftwarePages/SoftwareUpdatesPage.cs index d7d871c71a..0d35183f25 100644 --- a/src/UniGetUI/Pages/SoftwarePages/SoftwareUpdatesPage.cs +++ b/src/UniGetUI/Pages/SoftwarePages/SoftwareUpdatesPage.cs @@ -151,13 +151,6 @@ public override BetterMenu GenerateContextMenu() }; menuSkipVersion.Click += MenuSkipVersion_Invoked; - BetterMenuItem menuShare = new() - { - Text = CoreTools.AutoTranslated("Share this package"), - IconName = IconType.Share, - }; - menuShare.Click += (_, _) => SharePackage(SelectedItem); - BetterMenuItem menuDetails = new() { Text = CoreTools.AutoTranslated("Package details"), @@ -217,7 +210,6 @@ public override BetterMenu GenerateContextMenu() ContextMenu.Items.Add(menuSkipVersion); ContextMenu.Items.Add(menuPause); ContextMenu.Items.Add(new MenuFlyoutSeparator()); - ContextMenu.Items.Add(menuShare); ContextMenu.Items.Add(menuDetails); return ContextMenu; @@ -274,7 +266,6 @@ public override void GenerateToolBar() AppBarButton InstallationSettings = new(); AppBarButton PackageDetails = new(); - AppBarButton SharePackage = new(); AppBarButton IgnoreSelected = new(); AppBarButton ManageIgnored = new(); @@ -285,7 +276,6 @@ public override void GenerateToolBar() ToolBar.PrimaryCommands.Add(InstallationSettings); ToolBar.PrimaryCommands.Add(new AppBarSeparator()); ToolBar.PrimaryCommands.Add(PackageDetails); - ToolBar.PrimaryCommands.Add(SharePackage); ToolBar.PrimaryCommands.Add(new AppBarSeparator()); ToolBar.PrimaryCommands.Add(IgnoreSelected); ToolBar.PrimaryCommands.Add(ManageIgnored); @@ -302,7 +292,6 @@ public override void GenerateToolBar() { UninstallSelection, CoreTools.Translate("Uninstall selected packages") }, { InstallationSettings, " " + CoreTools.Translate("Update options") }, { PackageDetails, " " + CoreTools.Translate("Package details") }, - { SharePackage, " " + CoreTools.Translate("Share") }, { IgnoreSelected, CoreTools.Translate("Ignore selected packages") }, { ManageIgnored, CoreTools.Translate("Manage ignored updates") }, { HelpButton, CoreTools.Translate("Help") }, @@ -317,7 +306,6 @@ public override void GenerateToolBar() { DownloadInstallers, IconType.Download }, { UninstallSelection, IconType.Delete }, { PackageDetails, IconType.Info_Round }, - { SharePackage, IconType.Share }, { IgnoreSelected, IconType.Pin }, { ManageIgnored, IconType.ClipboardList }, { HelpButton, IconType.Help }, @@ -359,7 +347,6 @@ public override void GenerateToolBar() ); UninstallSelection.Click += (_, _) => _ = MainApp.Operations.ConfirmAndUninstall(FilteredPackages.GetCheckedPackages()); - SharePackage.Click += (_, _) => DialogHelper.SharePackage(SelectedItem); } protected override void WhenPackageCountUpdated()