Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 0 additions & 8 deletions src/UniGetUI.Avalonia/Infrastructure/AvaloniaBootstrapper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -167,11 +167,6 @@ public partial class PackagesPageViewModel : ViewModelBase
public event Action? HelpRequested;
/// <summary>Fired when the ViewModel wants to show the Manage-Ignored-Updates dialog.</summary>
public event Action? ManageIgnoredRequested;
/// <summary>
/// Fired when the ViewModel has built a share URL.
/// Arguments: (packageName, url). Both null means "nothing to share".
/// </summary>
public event Action<string?, string?>? SharePackageRequested;

// ─── Constructor ─────────────────────────────────────────────────────────
public PackagesPageViewModel(PackagesPageData data)
Expand Down Expand Up @@ -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;
Expand Down
7 changes: 0 additions & 7 deletions src/UniGetUI.Avalonia/Views/MainWindow.axaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
using System.Web;
using Avalonia;
using Avalonia.Controls;
using Avalonia.Controls.ApplicationLifetimes;
Expand Down Expand Up @@ -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));
Expand Down Expand Up @@ -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);

Expand All @@ -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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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 () =>
{
Expand Down Expand Up @@ -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"),
Expand All @@ -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;
Expand All @@ -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");
Expand All @@ -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;
Expand Down
10 changes: 1 addition & 9 deletions src/UniGetUI.Avalonia/Views/SoftwarePages/PackageBundlesPage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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));
Expand Down Expand Up @@ -168,9 +165,6 @@ private static IReadOnlyList<IPackage> 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);

Expand All @@ -186,7 +180,6 @@ private static IReadOnlyList<IPackage> 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;
}
Expand All @@ -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;
Expand All @@ -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;
}

Expand Down
10 changes: 0 additions & 10 deletions src/UniGetUI.Avalonia/Views/SoftwarePages/SoftwareUpdatesPage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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 () =>
{
Expand Down Expand Up @@ -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"),
Expand All @@ -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;
Expand Down
19 changes: 3 additions & 16 deletions src/UniGetUI.Interface.BackgroundApi/BackgroundApi.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ public class BackgroundApiRunner
{
public event EventHandler<EventArgs>? OnOpenWindow;
public event EventHandler<EventArgs>? OnOpenUpdatesPage;
public event EventHandler<KeyValuePair<string, string>>? OnShowSharedPackage;
public event EventHandler<EventArgs>? OnUpgradeAll;
public event EventHandler<string>? OnUpgradeAllForManager;
public event EventHandler<string>? OnUpgradePackage;
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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<string, string>(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)
Expand Down
4 changes: 0 additions & 4 deletions src/UniGetUI.Interface.Telemetry/TelemetryHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
{
DIRECT_SEARCH,
FROM_BUNDLE,
FROM_WEB_SHARE,
ALREADY_INSTALLED,
}

Expand Down Expand Up @@ -74,7 +73,7 @@

private static readonly HttpClient _httpClient;

static TelemetryHandler()

Check warning on line 76 in src/UniGetUI.Interface.Telemetry/TelemetryHandler.cs

View workflow job for this annotation

GitHub Actions / test-codebase

Initialize all static fields in 'TelemetryHandler' when those fields are declared and remove the explicit static constructor (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1810)

Check warning on line 76 in src/UniGetUI.Interface.Telemetry/TelemetryHandler.cs

View workflow job for this annotation

GitHub Actions / test-codebase

Initialize all static fields in 'TelemetryHandler' when those fields are declared and remove the explicit static constructor (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1810)

Check warning on line 76 in src/UniGetUI.Interface.Telemetry/TelemetryHandler.cs

View workflow job for this annotation

GitHub Actions / test-codebase

Initialize all static fields in 'TelemetryHandler' when those fields are declared and remove the explicit static constructor (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1810)
{
_httpClient = new HttpClient(CoreTools.GenericHttpClientParameters)
{
Expand Down Expand Up @@ -208,9 +207,6 @@
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,
Expand Down
6 changes: 0 additions & 6 deletions src/UniGetUI/App.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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(() =>
{
Expand Down
23 changes: 1 addition & 22 deletions src/UniGetUI/MainWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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"))
{
Expand Down
Loading
Loading