Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
49deba5771 | ||
|
|
56947d0648 | ||
|
|
f2c285c141 | ||
|
|
b4b2a42db5 | ||
|
|
3195116fdf | ||
|
|
5df51cfcba | ||
|
|
a6525bf885 | ||
|
|
516618bd5a | ||
|
|
098c0a07a3 | ||
|
|
74fcf91572 | ||
|
|
1fb77054d1 | ||
|
|
c53db4bfc3 |
@@ -1,31 +1,72 @@
|
||||
# Run this script as Administrator
|
||||
# powershell -ExecutionPolicy Bypass -File "C:\RSL\Rookie\AddDefenderExceptions.ps1"
|
||||
|
||||
if (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) {
|
||||
Write-Warning "Please run this script as Administrator!"
|
||||
exit
|
||||
|
||||
################################################################
|
||||
## Auto Elevate to Admin if not running as admin
|
||||
################################################################
|
||||
|
||||
# Get the ID and security principal of the current user account
|
||||
$WindowsID = [System.Security.Principal.WindowsIdentity]::GetCurrent()
|
||||
$WindowsPrincipal = New-Object System.Security.Principal.WindowsPrincipal ($WindowsID)
|
||||
|
||||
# Get the security principal for the Administrator role
|
||||
$AdminRole = [System.Security.Principal.WindowsBuiltInRole]::Administrator
|
||||
|
||||
# Check to see if we are currently running "as Administrator"
|
||||
if ($WindowsPrincipal.IsInRole($AdminRole)) {
|
||||
# We are running "as Administrator" - so change the title and background color to indicate this
|
||||
$Host.UI.RawUI.WindowTitle = $myInvocation.MyCommand.Definition + " (Elevated)"
|
||||
$Host.UI.RawUI.BackgroundColor = "DarkBlue"
|
||||
Clear-Host
|
||||
} else {
|
||||
# We are not running "as Administrator" - so relaunch as administrator
|
||||
# Create a new process object that starts PowerShell
|
||||
$NewProcess = New-Object System.Diagnostics.ProcessStartInfo "PowerShell";
|
||||
# Specify the current script path and name as a parameter
|
||||
$NewProcess.Arguments = $myInvocation.MyCommand.Definition;
|
||||
# Indicate that the process should be elevated
|
||||
$NewProcess.Verb = "runas";
|
||||
# Start the new process
|
||||
[System.Diagnostics.Process]::Start($NewProcess);
|
||||
# Exit from the current unelevated process
|
||||
exit
|
||||
}
|
||||
|
||||
write-host "Run this script from the directory root with which Rookie will be run"
|
||||
start-sleep -s 5
|
||||
|
||||
$paths = @(
|
||||
"C:\RSL",
|
||||
"C:\RSL\Rookie",
|
||||
"C:\RSL\Rookie\rclone",
|
||||
"C:\RSL\Rookie\Sideloader Launcher.exe",
|
||||
"C:\RSL\Rookie\AndroidSideloader*.exe",
|
||||
"C:\RSL\Rookie\rclone\rclone.exe"
|
||||
"$PSScriptRoot", # Replaces 'C:\RSL' with the script's root directory
|
||||
"$PSScriptRoot\rclone",
|
||||
"$PSScriptRoot\Sideloader Launcher.exe",
|
||||
"$PSScriptRoot\AndroidSideloader*.exe",
|
||||
"$PSScriptRoot\rclone\rclone.exe"
|
||||
)
|
||||
|
||||
foreach ($path in $paths) {
|
||||
try {
|
||||
Add-MpPreference -ExclusionPath $path -ErrorAction Stop
|
||||
Add-MpPreference -ExclusionPath $Path -ErrorAction Stop
|
||||
Write-Host "Successfully added exclusion for: $path" -ForegroundColor Green
|
||||
}
|
||||
catch {
|
||||
Write-Host "Failed to add exclusion for: $path" -ForegroundColor Red
|
||||
Write-Host "Failed to add exclusion for: $path " -ForegroundColor Red
|
||||
Write-Host "Error: $_" -ForegroundColor Red
|
||||
Start-Sleep -s 5
|
||||
Pause
|
||||
}
|
||||
}
|
||||
|
||||
# Verify the exclusions
|
||||
Write-Host "`nCurrent exclusions:" -ForegroundColor Cyan
|
||||
Get-MpPreference | Select-Object -ExpandProperty ExclusionPath | Where-Object { $_ -like "C:\RSL*" }
|
||||
$defenderPreferences = Get-MpPreference
|
||||
$paths | ForEach-Object {
|
||||
if ($defenderPreferences.ExclusionPath -contains $_) {
|
||||
Write-Host "$_ is already excluded from Defender."
|
||||
} else {
|
||||
Write-Host "$_ is NOT excluded from Defender."
|
||||
}
|
||||
}
|
||||
Pause
|
||||
|
||||
Start-Sleep -s 5
|
||||
|
||||
@@ -1,4 +1,17 @@
|
||||
RSL 2.31.1
|
||||
RSL 2.32
|
||||
|
||||
- Feature: Allow switching between Public and Private configs
|
||||
- Feature: Switch to Offline Mode when unable to connect
|
||||
- Feature: Save window position and column sizes
|
||||
- Fix: An issue that caused the VIP mirror to fail
|
||||
- Fix: Make video window flexible
|
||||
- Fix: Issue when saving Settings file
|
||||
- Fix: Change Label position to avoid overlapping Queue/Notes windows
|
||||
- Chore: Bump aapt/aapt2/adb to latest
|
||||
- Chore: Bump 7z to 24.09
|
||||
- Chore: Add AddDefenderExceptions.ps1
|
||||
|
||||
RSL 2.31.1
|
||||
|
||||
- Fix: Filtering when Adult Content is shown
|
||||
|
||||
|
||||
130
MainForm.Designer.cs
generated
130
MainForm.Designer.cs
generated
@@ -105,7 +105,6 @@ namespace AndroidSideloader
|
||||
this.speedLabel_Tooltip = new System.Windows.Forms.ToolTip(this.components);
|
||||
this.etaLabel_Tooltip = new System.Windows.Forms.ToolTip(this.components);
|
||||
this.progressDLbtnContainer = new System.Windows.Forms.Panel();
|
||||
this.downloadInstallGameButton = new AndroidSideloader.RoundButton();
|
||||
this.diskLabel = new System.Windows.Forms.Label();
|
||||
this.bottomContainer = new System.Windows.Forms.Panel();
|
||||
this.deviceDrop = new System.Windows.Forms.Button();
|
||||
@@ -125,8 +124,12 @@ namespace AndroidSideloader
|
||||
this.leftNavContainer = new System.Windows.Forms.Panel();
|
||||
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.webView21 = new Microsoft.Web.WebView2.WinForms.WebView2();
|
||||
this.favoriteGame = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.favoriteButton = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.favoriteSwitcher = new AndroidSideloader.RoundButton();
|
||||
this.adbCmd_btnSend = new AndroidSideloader.RoundButton();
|
||||
this.adbCmd_btnToggleUpdates = new AndroidSideloader.RoundButton();
|
||||
this.downloadInstallGameButton = new AndroidSideloader.RoundButton();
|
||||
this.MountButton = new AndroidSideloader.RoundButton();
|
||||
this.btnNoDevice = new AndroidSideloader.RoundButton();
|
||||
((System.ComponentModel.ISupportInitialize)(this.gamesPictureBox)).BeginInit();
|
||||
@@ -141,6 +144,7 @@ namespace AndroidSideloader
|
||||
this.leftNavContainer.SuspendLayout();
|
||||
this.tableLayoutPanel1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.webView21)).BeginInit();
|
||||
this.favoriteGame.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// m_combo
|
||||
@@ -166,7 +170,7 @@ namespace AndroidSideloader
|
||||
this.progressBar.Location = new System.Drawing.Point(2, 0);
|
||||
this.progressBar.MinimumSize = new System.Drawing.Size(200, 13);
|
||||
this.progressBar.Name = "progressBar";
|
||||
this.progressBar.Size = new System.Drawing.Size(482, 13);
|
||||
this.progressBar.Size = new System.Drawing.Size(553, 13);
|
||||
this.progressBar.TabIndex = 7;
|
||||
//
|
||||
// speedLabel
|
||||
@@ -193,7 +197,7 @@ namespace AndroidSideloader
|
||||
this.etaLabel.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.etaLabel.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.etaLabel.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.etaLabel.Location = new System.Drawing.Point(288, 14);
|
||||
this.etaLabel.Location = new System.Drawing.Point(359, 14);
|
||||
this.etaLabel.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.etaLabel.Name = "etaLabel";
|
||||
this.etaLabel.Size = new System.Drawing.Size(196, 18);
|
||||
@@ -234,7 +238,7 @@ namespace AndroidSideloader
|
||||
this.gamesQueListBox.Location = new System.Drawing.Point(601, 493);
|
||||
this.gamesQueListBox.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.gamesQueListBox.Name = "gamesQueListBox";
|
||||
this.gamesQueListBox.Size = new System.Drawing.Size(485, 128);
|
||||
this.gamesQueListBox.Size = new System.Drawing.Size(556, 128);
|
||||
this.gamesQueListBox.TabIndex = 9;
|
||||
this.gamesQueListBox.MouseClick += new System.Windows.Forms.MouseEventHandler(this.gamesQueListBox_MouseClick);
|
||||
this.gamesQueListBox.DragDrop += new System.Windows.Forms.DragEventHandler(this.Form1_DragDrop);
|
||||
@@ -295,7 +299,7 @@ namespace AndroidSideloader
|
||||
this.gamesListView.Location = new System.Drawing.Point(224, 98);
|
||||
this.gamesListView.Name = "gamesListView";
|
||||
this.gamesListView.ShowGroups = false;
|
||||
this.gamesListView.Size = new System.Drawing.Size(862, 350);
|
||||
this.gamesListView.Size = new System.Drawing.Size(933, 350);
|
||||
this.gamesListView.TabIndex = 6;
|
||||
this.gamesListView.UseCompatibleStateImageBehavior = false;
|
||||
this.gamesListView.View = System.Windows.Forms.View.Details;
|
||||
@@ -303,6 +307,7 @@ namespace AndroidSideloader
|
||||
this.gamesListView.SelectedIndexChanged += new System.EventHandler(this.gamesListView_SelectedIndexChanged);
|
||||
this.gamesListView.DragDrop += new System.Windows.Forms.DragEventHandler(this.Form1_DragDrop);
|
||||
this.gamesListView.DragEnter += new System.Windows.Forms.DragEventHandler(this.Form1_DragEnter);
|
||||
this.gamesListView.MouseClick += new System.Windows.Forms.MouseEventHandler(this.gamesListView_MouseClick);
|
||||
this.gamesListView.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.gamesListView_MouseDoubleClick);
|
||||
//
|
||||
// GameNameIndex
|
||||
@@ -356,7 +361,7 @@ namespace AndroidSideloader
|
||||
this.searchTextBox.Location = new System.Drawing.Point(224, 70);
|
||||
this.searchTextBox.MinimumSize = new System.Drawing.Size(231, 26);
|
||||
this.searchTextBox.Name = "searchTextBox";
|
||||
this.searchTextBox.Size = new System.Drawing.Size(862, 24);
|
||||
this.searchTextBox.Size = new System.Drawing.Size(933, 26);
|
||||
this.searchTextBox.TabIndex = 5;
|
||||
this.searchTextBox.Text = "Search";
|
||||
this.searchTextBox.Click += new System.EventHandler(this.searchTextBox_Click);
|
||||
@@ -404,7 +409,7 @@ namespace AndroidSideloader
|
||||
this.notesRichTextBox.ReadOnly = true;
|
||||
this.notesRichTextBox.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.Vertical;
|
||||
this.notesRichTextBox.ShowSelectionMargin = true;
|
||||
this.notesRichTextBox.Size = new System.Drawing.Size(485, 81);
|
||||
this.notesRichTextBox.Size = new System.Drawing.Size(556, 81);
|
||||
this.notesRichTextBox.TabIndex = 10;
|
||||
this.notesRichTextBox.Text = "\n\n\n TIP: PRESS F1 TO SEE A LIST OF SHORTCUTS";
|
||||
//
|
||||
@@ -982,37 +987,9 @@ namespace AndroidSideloader
|
||||
this.progressDLbtnContainer.Location = new System.Drawing.Point(224, 454);
|
||||
this.progressDLbtnContainer.MinimumSize = new System.Drawing.Size(600, 34);
|
||||
this.progressDLbtnContainer.Name = "progressDLbtnContainer";
|
||||
this.progressDLbtnContainer.Size = new System.Drawing.Size(862, 34);
|
||||
this.progressDLbtnContainer.Size = new System.Drawing.Size(933, 34);
|
||||
this.progressDLbtnContainer.TabIndex = 96;
|
||||
//
|
||||
// downloadInstallGameButton
|
||||
//
|
||||
this.downloadInstallGameButton.Active1 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40)))));
|
||||
this.downloadInstallGameButton.Active2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40)))));
|
||||
this.downloadInstallGameButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.downloadInstallGameButton.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
|
||||
this.downloadInstallGameButton.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "SubButtonColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.downloadInstallGameButton.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.downloadInstallGameButton.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.downloadInstallGameButton.DialogResult = System.Windows.Forms.DialogResult.OK;
|
||||
this.downloadInstallGameButton.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F);
|
||||
this.downloadInstallGameButton.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.downloadInstallGameButton.Inactive1 = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
|
||||
this.downloadInstallGameButton.Inactive2 = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
|
||||
this.downloadInstallGameButton.Location = new System.Drawing.Point(498, 0);
|
||||
this.downloadInstallGameButton.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.downloadInstallGameButton.Name = "downloadInstallGameButton";
|
||||
this.downloadInstallGameButton.Radius = 5;
|
||||
this.downloadInstallGameButton.Size = new System.Drawing.Size(364, 34);
|
||||
this.downloadInstallGameButton.Stroke = true;
|
||||
this.downloadInstallGameButton.StrokeColor = System.Drawing.Color.FromArgb(((int)(((byte)(74)))), ((int)(((byte)(74)))), ((int)(((byte)(74)))));
|
||||
this.downloadInstallGameButton.TabIndex = 94;
|
||||
this.downloadInstallGameButton.Text = "Download and Install Game/Add To Queue ⮩ ";
|
||||
this.downloadInstallGameButton.Transparency = false;
|
||||
this.downloadInstallGameButton.Click += new System.EventHandler(this.downloadInstallGameButton_Click);
|
||||
this.downloadInstallGameButton.DragDrop += new System.Windows.Forms.DragEventHandler(this.Form1_DragDrop);
|
||||
this.downloadInstallGameButton.DragEnter += new System.Windows.Forms.DragEventHandler(this.Form1_DragEnter);
|
||||
//
|
||||
// diskLabel
|
||||
//
|
||||
this.diskLabel.AutoSize = true;
|
||||
@@ -1274,7 +1251,7 @@ namespace AndroidSideloader
|
||||
this.verLabel.BackColor = System.Drawing.Color.Transparent;
|
||||
this.verLabel.Font = new System.Drawing.Font("Segoe UI", 11.25F, System.Drawing.FontStyle.Bold);
|
||||
this.verLabel.ForeColor = System.Drawing.SystemColors.Control;
|
||||
this.verLabel.Location = new System.Drawing.Point(1030, 721);
|
||||
this.verLabel.Location = new System.Drawing.Point(1101, 721);
|
||||
this.verLabel.Name = "verLabel";
|
||||
this.verLabel.RightToLeft = System.Windows.Forms.RightToLeft.Yes;
|
||||
this.verLabel.Size = new System.Drawing.Size(68, 20);
|
||||
@@ -1316,7 +1293,7 @@ namespace AndroidSideloader
|
||||
this.tableLayoutPanel1.Controls.Add(this.lblUpToDate, 0, 0);
|
||||
this.tableLayoutPanel1.Controls.Add(this.lblUpdateAvailable, 0, 1);
|
||||
this.tableLayoutPanel1.Controls.Add(this.lblNeedsDonate, 0, 2);
|
||||
this.tableLayoutPanel1.Location = new System.Drawing.Point(860, 2);
|
||||
this.tableLayoutPanel1.Location = new System.Drawing.Point(931, 2);
|
||||
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
|
||||
this.tableLayoutPanel1.RightToLeft = System.Windows.Forms.RightToLeft.No;
|
||||
this.tableLayoutPanel1.RowCount = 3;
|
||||
@@ -1339,6 +1316,48 @@ namespace AndroidSideloader
|
||||
this.webView21.TabIndex = 98;
|
||||
this.webView21.ZoomFactor = 1D;
|
||||
//
|
||||
// favoriteGame
|
||||
//
|
||||
this.favoriteGame.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.favoriteButton});
|
||||
this.favoriteGame.Name = "favoriteGame";
|
||||
this.favoriteGame.Size = new System.Drawing.Size(117, 26);
|
||||
//
|
||||
// favoriteButton
|
||||
//
|
||||
this.favoriteButton.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
|
||||
this.favoriteButton.ForeColor = System.Drawing.Color.White;
|
||||
this.favoriteButton.Name = "favoriteButton";
|
||||
this.favoriteButton.Size = new System.Drawing.Size(116, 22);
|
||||
this.favoriteButton.Text = "Favorite";
|
||||
this.favoriteButton.Click += new System.EventHandler(this.favoriteButton_Click);
|
||||
//
|
||||
// favoriteSwitcher
|
||||
//
|
||||
this.favoriteSwitcher.Active1 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40)))));
|
||||
this.favoriteSwitcher.Active2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40)))));
|
||||
this.favoriteSwitcher.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
|
||||
this.favoriteSwitcher.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
|
||||
this.favoriteSwitcher.Cursor = System.Windows.Forms.Cursors.Default;
|
||||
this.favoriteSwitcher.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "SubButtonColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.favoriteSwitcher.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.favoriteSwitcher.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.favoriteSwitcher.DialogResult = System.Windows.Forms.DialogResult.OK;
|
||||
this.favoriteSwitcher.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F);
|
||||
this.favoriteSwitcher.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.favoriteSwitcher.Inactive1 = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
|
||||
this.favoriteSwitcher.Inactive2 = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
|
||||
this.favoriteSwitcher.Location = new System.Drawing.Point(786, 34);
|
||||
this.favoriteSwitcher.Name = "favoriteSwitcher";
|
||||
this.favoriteSwitcher.Radius = 5;
|
||||
this.favoriteSwitcher.Size = new System.Drawing.Size(168, 28);
|
||||
this.favoriteSwitcher.Stroke = true;
|
||||
this.favoriteSwitcher.StrokeColor = System.Drawing.Color.FromArgb(((int)(((byte)(74)))), ((int)(((byte)(74)))), ((int)(((byte)(74)))));
|
||||
this.favoriteSwitcher.TabIndex = 101;
|
||||
this.favoriteSwitcher.Text = "Games List";
|
||||
this.favoriteSwitcher.Transparency = false;
|
||||
this.favoriteSwitcher.Click += new System.EventHandler(this.favoriteSwitcher_Click);
|
||||
//
|
||||
// adbCmd_btnSend
|
||||
//
|
||||
this.adbCmd_btnSend.Active1 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40)))));
|
||||
@@ -1393,6 +1412,34 @@ namespace AndroidSideloader
|
||||
this.adbCmd_btnToggleUpdates.Visible = false;
|
||||
this.adbCmd_btnToggleUpdates.Click += new System.EventHandler(this.adbCmd_btnToggleUpdates_Click);
|
||||
//
|
||||
// downloadInstallGameButton
|
||||
//
|
||||
this.downloadInstallGameButton.Active1 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40)))));
|
||||
this.downloadInstallGameButton.Active2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40)))));
|
||||
this.downloadInstallGameButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.downloadInstallGameButton.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
|
||||
this.downloadInstallGameButton.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "SubButtonColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.downloadInstallGameButton.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.downloadInstallGameButton.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.downloadInstallGameButton.DialogResult = System.Windows.Forms.DialogResult.OK;
|
||||
this.downloadInstallGameButton.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F);
|
||||
this.downloadInstallGameButton.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.downloadInstallGameButton.Inactive1 = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
|
||||
this.downloadInstallGameButton.Inactive2 = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
|
||||
this.downloadInstallGameButton.Location = new System.Drawing.Point(569, 0);
|
||||
this.downloadInstallGameButton.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.downloadInstallGameButton.Name = "downloadInstallGameButton";
|
||||
this.downloadInstallGameButton.Radius = 5;
|
||||
this.downloadInstallGameButton.Size = new System.Drawing.Size(364, 34);
|
||||
this.downloadInstallGameButton.Stroke = true;
|
||||
this.downloadInstallGameButton.StrokeColor = System.Drawing.Color.FromArgb(((int)(((byte)(74)))), ((int)(((byte)(74)))), ((int)(((byte)(74)))));
|
||||
this.downloadInstallGameButton.TabIndex = 94;
|
||||
this.downloadInstallGameButton.Text = "Download and Install Game/Add To Queue ⮩ ";
|
||||
this.downloadInstallGameButton.Transparency = false;
|
||||
this.downloadInstallGameButton.Click += new System.EventHandler(this.downloadInstallGameButton_Click);
|
||||
this.downloadInstallGameButton.DragDrop += new System.Windows.Forms.DragEventHandler(this.Form1_DragDrop);
|
||||
this.downloadInstallGameButton.DragEnter += new System.Windows.Forms.DragEventHandler(this.Form1_DragEnter);
|
||||
//
|
||||
// MountButton
|
||||
//
|
||||
this.MountButton.Active1 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40)))));
|
||||
@@ -1453,7 +1500,8 @@ namespace AndroidSideloader
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.BackColor = global::AndroidSideloader.Properties.Settings.Default.BackColor;
|
||||
this.BackgroundImage = global::AndroidSideloader.Properties.Resources.pattern_cubes;
|
||||
this.ClientSize = new System.Drawing.Size(1104, 747);
|
||||
this.ClientSize = new System.Drawing.Size(1175, 747);
|
||||
this.Controls.Add(this.favoriteSwitcher);
|
||||
this.Controls.Add(this.adbCmd_btnSend);
|
||||
this.Controls.Add(this.adbCmd_btnToggleUpdates);
|
||||
this.Controls.Add(this.ULLabel);
|
||||
@@ -1509,6 +1557,7 @@ namespace AndroidSideloader
|
||||
this.tableLayoutPanel1.ResumeLayout(false);
|
||||
this.tableLayoutPanel1.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.webView21)).EndInit();
|
||||
this.favoriteGame.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
@@ -1610,5 +1659,8 @@ namespace AndroidSideloader
|
||||
private RoundButton btnNoDevice;
|
||||
private RoundButton adbCmd_btnToggleUpdates;
|
||||
private RoundButton adbCmd_btnSend;
|
||||
private ContextMenuStrip favoriteGame;
|
||||
private ToolStripMenuItem favoriteButton;
|
||||
private RoundButton favoriteSwitcher;
|
||||
}
|
||||
}
|
||||
|
||||
167
MainForm.cs
167
MainForm.cs
@@ -219,17 +219,6 @@ namespace AndroidSideloader
|
||||
}
|
||||
}
|
||||
|
||||
private void LoadListViewColumnWidths(System.Windows.Forms.ListView listView, string listViewName)
|
||||
{
|
||||
if (settings.ListViewColumnWidths.TryGetValue(listViewName, out var columnWidths))
|
||||
{
|
||||
for (int i = 0; i < columnWidths.Length && i < listView.Columns.Count; i++)
|
||||
{
|
||||
listView.Columns[i].Width = columnWidths[i]; // Apply saved width
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static string donorApps = String.Empty;
|
||||
private string oldTitle = String.Empty;
|
||||
public static bool updatesNotified = false;
|
||||
@@ -286,19 +275,6 @@ namespace AndroidSideloader
|
||||
speedLabel.Text = String.Empty;
|
||||
diskLabel.Text = String.Empty;
|
||||
verLabel.Text = Updater.LocalVersion;
|
||||
LoadListViewColumnWidths(gamesListView, "gamesListView");
|
||||
if (settings.MainWindowLocationX == 0 && settings.MainWindowLocationY == 0)
|
||||
{
|
||||
this.StartPosition = FormStartPosition.CenterScreen;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.StartPosition = FormStartPosition.Manual;
|
||||
this.Left = settings.MainWindowLocationX;
|
||||
this.Top = settings.MainWindowLocationY;
|
||||
}
|
||||
this.Width = settings.MainWindowSizeWidth;
|
||||
this.Height = settings.MainWindowSizeHeight;
|
||||
if (File.Exists("crashlog.txt"))
|
||||
{
|
||||
if (File.Exists(settings.CurrentCrashPath))
|
||||
@@ -533,7 +509,7 @@ namespace AndroidSideloader
|
||||
showAvailableSpace();
|
||||
downloadInstallGameButton.Enabled = true;
|
||||
isLoading = false;
|
||||
initListView();
|
||||
initListView(false);
|
||||
|
||||
string[] files = Directory.GetFiles(Environment.CurrentDirectory);
|
||||
foreach (string file in files)
|
||||
@@ -930,6 +906,11 @@ namespace AndroidSideloader
|
||||
{
|
||||
_ = Directory.CreateDirectory(backupFolder);
|
||||
}
|
||||
DialogResult dialogResult1 = FlexibleMessageBox.Show(Program.form, $"Do you want to backup to {backupFolder}?", "Backup?", MessageBoxButtons.YesNo);
|
||||
if (dialogResult1 == DialogResult.No)
|
||||
{
|
||||
return;
|
||||
}
|
||||
ProcessOutput output = new ProcessOutput(String.Empty, String.Empty);
|
||||
Thread t1 = new Thread(() =>
|
||||
{
|
||||
@@ -1345,7 +1326,7 @@ namespace AndroidSideloader
|
||||
showAvailableSpace();
|
||||
changeTitle("Device now detected... refreshing update list.");
|
||||
listAppsBtn();
|
||||
initListView();
|
||||
initListView(false);
|
||||
}
|
||||
|
||||
Program.form.changeTitle($"Processing dropped file. If Rookie freezes, please wait. Do not close Rookie!");
|
||||
@@ -1749,7 +1730,7 @@ namespace AndroidSideloader
|
||||
private bool _allItemsInitialized = false;
|
||||
|
||||
|
||||
private async void initListView()
|
||||
private async void initListView(bool favoriteView)
|
||||
{
|
||||
int upToDateCount = 0;
|
||||
int updateAvailableCount = 0;
|
||||
@@ -1889,6 +1870,13 @@ namespace AndroidSideloader
|
||||
GameList.Add(Game);
|
||||
}
|
||||
}
|
||||
if (favoriteView)
|
||||
{
|
||||
if (settings.FavoritedGames.Contains(Game.SubItems[1].Text))
|
||||
{
|
||||
GameList.Add(Game);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
GameList.Add(Game);
|
||||
@@ -1908,7 +1896,7 @@ namespace AndroidSideloader
|
||||
{
|
||||
SwitchMirrors();
|
||||
if (!isOffline){
|
||||
initListView();
|
||||
initListView(false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2501,7 +2489,7 @@ namespace AndroidSideloader
|
||||
await Task.Delay(100);
|
||||
}
|
||||
|
||||
initListView();
|
||||
initListView(false);
|
||||
isLoading = false;
|
||||
|
||||
changeTitle(" \n\n");
|
||||
@@ -2573,7 +2561,7 @@ $@"Unable to connect to Remote Server. Rookie is unable to connect to our Server
|
||||
|
||||
First time launching Rookie? Please relaunch and try again.
|
||||
|
||||
Please visit our Telegram (https://t.me/VRPirates) or Discord (https://discord.gg/DcfEpwVa4a) for Troubleshooting steps!
|
||||
Please visit our Telegram (https://t.me/VRPirates) or Discord (https://discord.gg/tBKMZy7QDA) for Troubleshooting steps!
|
||||
";
|
||||
|
||||
_ = FlexibleMessageBox.Show(Program.form, errorMessage, "Unable to connect to Remote Server");
|
||||
@@ -3106,7 +3094,7 @@ Please visit our Telegram (https://t.me/VRPirates) or Discord (https://discord.g
|
||||
listAppsBtn();
|
||||
if (!updateAvailableClicked && !upToDate_Clicked && !NeedsDonation_Clicked && !settings.NodeviceMode && !gamesQueueList.Any())
|
||||
{
|
||||
initListView();
|
||||
initListView(false);
|
||||
}
|
||||
if (settings.EnableMessageBoxes)
|
||||
{
|
||||
@@ -3226,7 +3214,7 @@ Please visit our Telegram (https://t.me/VRPirates) or Discord (https://discord.g
|
||||
|
||||
if (!updateAvailableClicked && !upToDate_Clicked && !NeedsDonation_Clicked && !settings.NodeviceMode && !gamesQueueList.Any())
|
||||
{
|
||||
initListView();
|
||||
initListView(false);
|
||||
}
|
||||
if (settings.EnableMessageBoxes)
|
||||
{
|
||||
@@ -3330,17 +3318,6 @@ Please visit our Telegram (https://t.me/VRPirates) or Discord (https://discord.g
|
||||
}
|
||||
}
|
||||
|
||||
private void SaveListViewColumnWidths(System.Windows.Forms.ListView listView, string listViewName)
|
||||
{
|
||||
var columnWidths = new int[listView.Columns.Count];
|
||||
for (int i = 0; i < listView.Columns.Count; i++)
|
||||
{
|
||||
columnWidths[i] = listView.Columns[i].Width; // Get current width
|
||||
}
|
||||
|
||||
settings.ListViewColumnWidths[listViewName] = columnWidths;
|
||||
settings.Save(); // Save to settings file
|
||||
}
|
||||
|
||||
private async void Form1_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
@@ -3381,12 +3358,7 @@ Please visit our Telegram (https://t.me/VRPirates) or Discord (https://discord.g
|
||||
RCLONE.killRclone();
|
||||
_ = ADB.RunAdbCommandToString("kill-server");
|
||||
}
|
||||
SaveListViewColumnWidths(gamesListView, "gamesListView");
|
||||
settings.MainWindowLocationX = this.Left;
|
||||
settings.MainWindowLocationY = this.Top;
|
||||
settings.MainWindowSizeHeight = this.Height;
|
||||
settings.MainWindowSizeWidth = this.Width;
|
||||
settings.Save();
|
||||
|
||||
}
|
||||
|
||||
private async void ADBWirelessDisable_Click(object sender, EventArgs e)
|
||||
@@ -3625,7 +3597,7 @@ Please visit our Telegram (https://t.me/VRPirates) or Discord (https://discord.g
|
||||
_ = GetDeviceID();
|
||||
_ = FlexibleMessageBox.Show(Program.form, "If your device is not Connected, hit reconnect first or it won't work!\nNOTE: THIS MAY TAKE UP TO 60 SECONDS.\nThere will be a Popup text window with all updates available when it is done!", "Is device connected?", MessageBoxButtons.OKCancel);
|
||||
listAppsBtn();
|
||||
initListView();
|
||||
initListView(false);
|
||||
}
|
||||
bool dialogIsUp = false;
|
||||
if (keyData == Keys.F1 && !dialogIsUp)
|
||||
@@ -3703,7 +3675,7 @@ Please visit our Telegram (https://t.me/VRPirates) or Discord (https://discord.g
|
||||
}
|
||||
else
|
||||
{
|
||||
initListView();
|
||||
initListView(false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3817,9 +3789,6 @@ Please visit our Telegram (https://t.me/VRPirates) or Discord (https://discord.g
|
||||
}
|
||||
|
||||
gamesPictureBox.BackgroundImage = File.Exists(ImagePath) ? Image.FromFile(ImagePath) : new Bitmap(367, 214);
|
||||
|
||||
string NotePath = $"{SideloaderRCLONE.NotesFolder}\\{CurrentReleaseName}.txt";
|
||||
notesRichTextBox.Text = File.Exists(NotePath) ? File.ReadAllText(NotePath) : "";
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -3876,6 +3845,8 @@ Please visit our Telegram (https://t.me/VRPirates) or Discord (https://discord.g
|
||||
Logger.Log(ex.Message);
|
||||
}
|
||||
}
|
||||
string NotePath = $"{SideloaderRCLONE.NotesFolder}\\{CurrentReleaseName}.txt";
|
||||
notesRichTextBox.Text = File.Exists(NotePath) ? File.ReadAllText(NotePath) : "";
|
||||
}
|
||||
|
||||
public void UpdateGamesButton_Click(object sender, EventArgs e)
|
||||
@@ -3883,7 +3854,7 @@ Please visit our Telegram (https://t.me/VRPirates) or Discord (https://discord.g
|
||||
_ = GetDeviceID();
|
||||
_ = FlexibleMessageBox.Show(Program.form, "If your device is not Connected, hit reconnect first or it won't work!\nNOTE: THIS MAY TAKE UP TO 60 SECONDS.\nThere will be a Popup text window with all updates available when it is done!", "Is device connected?", MessageBoxButtons.OKCancel);
|
||||
listAppsBtn();
|
||||
initListView();
|
||||
initListView(false);
|
||||
|
||||
if (SideloaderRCLONE.games.Count < 1)
|
||||
{
|
||||
@@ -4072,7 +4043,7 @@ Please visit our Telegram (https://t.me/VRPirates) or Discord (https://discord.g
|
||||
else
|
||||
{
|
||||
updateAvailableClicked = false;
|
||||
initListView();
|
||||
initListView(false);
|
||||
}
|
||||
lblUpToDate.Click += lblUpToDate_Click;
|
||||
lblUpdateAvailable.Click += updateAvailable_Click;
|
||||
@@ -4413,7 +4384,7 @@ Please visit our Telegram (https://t.me/VRPirates) or Discord (https://discord.g
|
||||
else
|
||||
{
|
||||
upToDate_Clicked = false;
|
||||
initListView();
|
||||
initListView(false);
|
||||
}
|
||||
lblUpToDate.Click += lblUpToDate_Click;
|
||||
lblUpdateAvailable.Click += updateAvailable_Click;
|
||||
@@ -4564,7 +4535,7 @@ Please visit our Telegram (https://t.me/VRPirates) or Discord (https://discord.g
|
||||
else
|
||||
{
|
||||
NeedsDonation_Clicked = false;
|
||||
initListView();
|
||||
initListView(false);
|
||||
}
|
||||
lblUpToDate.Click += lblUpToDate_Click;
|
||||
lblUpdateAvailable.Click += updateAvailable_Click;
|
||||
@@ -4657,10 +4628,86 @@ Please visit our Telegram (https://t.me/VRPirates) or Discord (https://discord.g
|
||||
KeyPressEventArgs enterKeyPressArgs = new KeyPressEventArgs((char)Keys.Enter);
|
||||
ADBcommandbox_KeyPress(adbCmd_CommandBox, enterKeyPressArgs);
|
||||
}
|
||||
|
||||
private ListViewItem _rightClickedItem;
|
||||
private void gamesListView_MouseClick(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (e.Button == MouseButtons.Right)
|
||||
{
|
||||
_rightClickedItem = gamesListView.GetItemAt(e.X, e.Y);
|
||||
gamesListView.SelectedItems.Clear();
|
||||
if (_rightClickedItem != null)
|
||||
{
|
||||
_rightClickedItem.Selected = true;
|
||||
}
|
||||
|
||||
// Get the name of the release of the right-clicked item
|
||||
string packageName = _rightClickedItem.SubItems[1].Text;
|
||||
|
||||
// Check if the game is favorited and update the menu item text accordingly
|
||||
ToolStripMenuItem favoriteMenuItem = favoriteGame.Items[0] as ToolStripMenuItem;
|
||||
if (SettingsManager.Instance.FavoritedGames.Contains(packageName))
|
||||
{
|
||||
favoriteButton.Text = "Unfavorite"; // If it's already favorited, show "Unfavorite"
|
||||
}
|
||||
else
|
||||
{
|
||||
favoriteButton.Text = "Favorite"; // If it's not favorited, show "Favorite"
|
||||
}
|
||||
|
||||
// Show the context menu at the mouse position
|
||||
favoriteGame.Show(gamesListView, e.Location);
|
||||
}
|
||||
}
|
||||
|
||||
private void favoriteButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (_rightClickedItem != null)
|
||||
{
|
||||
string packageName = _rightClickedItem.SubItems[1].Text;
|
||||
|
||||
// Check the menu item's text to decide whether to add or remove the game from favorites
|
||||
if ((sender as ToolStripMenuItem).Text == "Favorite")
|
||||
{
|
||||
// Add to favorites
|
||||
settings.AddFavoriteGame(packageName);
|
||||
Console.WriteLine($"{packageName} has been added to favorites.");
|
||||
}
|
||||
else if ((sender as ToolStripMenuItem).Text == "Unfavorite")
|
||||
{
|
||||
// Remove from favorites
|
||||
settings.RemoveFavoriteGame(packageName);
|
||||
Console.WriteLine($"{packageName} has been removed from favorites.");
|
||||
}
|
||||
|
||||
// After adding/removing, update the context menu text
|
||||
ToolStripMenuItem favoriteMenuItem = sender as ToolStripMenuItem;
|
||||
if (settings.FavoritedGames.Contains(packageName))
|
||||
{
|
||||
favoriteMenuItem.Text = "Unfavorite";
|
||||
}
|
||||
else
|
||||
{
|
||||
favoriteMenuItem.Text = "Favorite";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void favoriteSwitcher_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (favoriteSwitcher.Text == "Games List")
|
||||
{
|
||||
favoriteSwitcher.Text = "Favorited Games";
|
||||
initListView(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
favoriteSwitcher.Text = "Games List";
|
||||
initListView(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static class ControlExtensions
|
||||
{
|
||||
public static void Invoke(this Control control, Action action)
|
||||
|
||||
@@ -180,4 +180,10 @@
|
||||
<metadata name="listApkButton_Tooltip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>955, 17</value>
|
||||
</metadata>
|
||||
<metadata name="favoriteGame.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>855, 95</value>
|
||||
</metadata>
|
||||
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>161</value>
|
||||
</metadata>
|
||||
</root>
|
||||
@@ -13,7 +13,7 @@ namespace AndroidSideloader
|
||||
private static readonly string RawGitHubUrl = "https://raw.githubusercontent.com/VRPirates/rookie";
|
||||
private static readonly string GitHubUrl = "https://github.com/VRPirates/rookie";
|
||||
|
||||
public static readonly string LocalVersion = "2.32.0";
|
||||
public static readonly string LocalVersion = "2.33.0";
|
||||
public static string currentVersion = string.Empty;
|
||||
public static string changelog = string.Empty;
|
||||
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Windows.Forms;
|
||||
using System.Linq;
|
||||
|
||||
namespace AndroidSideloader.Utilities
|
||||
{
|
||||
@@ -134,11 +133,7 @@ namespace AndroidSideloader.Utilities
|
||||
public bool UseDownloadedFiles { get; set; } = false;
|
||||
public float BandwidthLimit { get; set; } = 0f;
|
||||
public bool HideAdultContent { get; set; } = false;
|
||||
public Dictionary<string, int[]> ListViewColumnWidths { get; set; } = new Dictionary<string, int[]>();
|
||||
public int MainWindowLocationX { get; set; } = 0;
|
||||
public int MainWindowLocationY { get; set; } = 0;
|
||||
public int MainWindowSizeWidth { get; set; } = 0;
|
||||
public int MainWindowSizeHeight { get; set; } = 0;
|
||||
public string[] FavoritedGames { get; set; } = new string[0];
|
||||
|
||||
private SettingsManager()
|
||||
{
|
||||
@@ -260,19 +255,34 @@ namespace AndroidSideloader.Utilities
|
||||
UseDownloadedFiles = false;
|
||||
BandwidthLimit = 0f;
|
||||
HideAdultContent = false;
|
||||
ListViewColumnWidths = new Dictionary<string, int[]>
|
||||
{
|
||||
{ "gamesListView", new[] { 158, 244, 87, 75, 145, 66, 80 } }
|
||||
};
|
||||
MainWindowLocationX = 0;
|
||||
MainWindowLocationY = 0;
|
||||
MainWindowSizeWidth = 1120;
|
||||
MainWindowSizeHeight = 786;
|
||||
FavoritedGames = new string[0];
|
||||
|
||||
Save();
|
||||
Save();
|
||||
Debug.WriteLine("Default settings created.");
|
||||
}
|
||||
|
||||
public void AddFavoriteGame(string packageName)
|
||||
{
|
||||
if (!FavoritedGames.Contains(packageName))
|
||||
{
|
||||
var list = FavoritedGames.ToList();
|
||||
list.Add(packageName);
|
||||
FavoritedGames = list.ToArray();
|
||||
Save();
|
||||
}
|
||||
}
|
||||
|
||||
public void RemoveFavoriteGame(string packageName)
|
||||
{
|
||||
if (FavoritedGames.Contains(packageName))
|
||||
{
|
||||
var list = FavoritedGames.ToList();
|
||||
list.Remove(packageName);
|
||||
FavoritedGames = list.ToArray();
|
||||
Save();
|
||||
}
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
FontStyle?.Dispose();
|
||||
|
||||
@@ -1,12 +1,5 @@
|
||||
RSL 2.32
|
||||
RSL 2.33
|
||||
|
||||
- Feature: Allow switching between Public and Private configs
|
||||
- Feature: Switch to Offline Mode when unable to connect
|
||||
- Feature: Save window position and column sizes
|
||||
- Fix: An issue that caused the VIP mirror to fail
|
||||
- Fix: Make video window flexible
|
||||
- Fix: Issue when saving Settings file
|
||||
- Fix: Change Label position to avoid overlapping Queue/Notes windows
|
||||
- Chore: Bump aapt/aapt2/adb to latest
|
||||
- Chore: Bump 7z to 24.09
|
||||
- Chore: Add AddDefenderExceptions.ps1
|
||||
- [Feature] Allow users to cancel backups
|
||||
- [QoL] Lower ADB Version
|
||||
- [QoL] Revert Add saving the ColumnWidths, Window Sizes/Position
|
||||
BIN
dependencies.7z
BIN
dependencies.7z
Binary file not shown.
Reference in New Issue
Block a user