Compare commits

...

18 Commits

Author SHA1 Message Date
Maxine
2b770b30a8 Revert "Restructure and project file organization"
This reverts commit 0edc1deed0.
2025-09-14 08:56:11 -07:00
Maxine
e6d178cb2a Revert "Minor MainForm field cleanup"
This reverts commit 630fe98d31.
2025-09-14 08:56:11 -07:00
Maxine
c2f5b20e83 Revert "Minor Main file organization"
This reverts commit bd193c0d3f.
2025-09-14 08:56:11 -07:00
Maxine
952251be35 Revert "Renamed 'ADB' to 'AdbManager'"
This reverts commit 252955da0a.
2025-09-14 08:56:11 -07:00
Maxine
385fe45d5d Revert "Fix WebView2 'too many automatic redirections' error"
This reverts commit 06dc91f130.
2025-09-14 08:56:11 -07:00
Maxine
5db0ea301d Revert "Fix unmoved line"
This reverts commit 523efba81c.
2025-09-14 08:56:11 -07:00
Sombody101
523efba81c Fix unmoved line 2025-09-14 08:43:59 -07:00
Sombody101
06dc91f130 Fix WebView2 'too many automatic redirections' error 2025-09-14 08:43:59 -07:00
Sombody101
252955da0a Renamed 'ADB' to 'AdbManager' 2025-09-14 08:43:59 -07:00
Sombody101
bd193c0d3f Minor Main file organization 2025-09-14 08:43:59 -07:00
Sombody101
630fe98d31 Minor MainForm field cleanup 2025-09-14 08:43:59 -07:00
Sombody101
0edc1deed0 Restructure and project file organization 2025-09-14 08:43:59 -07:00
Chax
6aa5c7baea bump it while its hot 2025-04-13 11:41:43 +02:00
Chax
da09545168 Fix "Cannot add or insert the item" bug. 2025-04-13 11:37:33 +02:00
Chax
e07e9a09fa bump 2025-04-10 22:33:52 +02:00
Chax
49deba5771 Update Discord 2025-04-10 16:21:57 +02:00
Chax
56947d0648 Add favorite mechanism 2025-04-10 16:18:53 +02:00
Chax
f2c285c141 Show release notes with trailers enabled, this fixes #198 2025-03-22 13:15:51 +01:00
8 changed files with 255 additions and 70 deletions

View File

@@ -1,4 +1,16 @@
RSL 2.32
RSL 2.34
- Feature: Allow users to favorite games (right click on game)
- Fix: Release Notes not showing with trailers enabled
- Fix: Correct Discord Invite link on connection error
RSL 2.33
- Feature: Allow users to cancel backups
- QoL: Lower ADB Version
- QoL: Revert Add saving the ColumnWidths, Window Sizes/Position
RSL 2.32
- Feature: Allow switching between Public and Private configs
- Feature: Switch to Offline Mode when unable to connect

130
MainForm.Designer.cs generated
View File

@@ -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;
}
}

View File

@@ -509,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)
@@ -1326,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!");
@@ -1730,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;
@@ -1863,16 +1863,33 @@ namespace AndroidSideloader
}
}
}
if (settings.HideAdultContent == true)
if (favoriteView)
{
if (!Game.SubItems[1].Text.Contains("(18+)"))
if (settings.FavoritedGames.Contains(Game.SubItems[1].Text))
{
GameList.Add(Game);
if (settings.HideAdultContent == true && !Game.SubItems[1].Text.Contains("(18+)"))
{
GameList.Add(Game);
}
else if (!settings.HideAdultContent)
{
GameList.Add(Game);
}
}
}
else
{
GameList.Add(Game);
if (settings.HideAdultContent == true)
{
if (!Game.SubItems[1].Text.Contains("(18+)"))
{
GameList.Add(Game);
}
}
else
{
GameList.Add(Game);
}
}
}
})
@@ -1889,7 +1906,7 @@ namespace AndroidSideloader
{
SwitchMirrors();
if (!isOffline){
initListView();
initListView(false);
}
}
@@ -2482,7 +2499,7 @@ namespace AndroidSideloader
await Task.Delay(100);
}
initListView();
initListView(false);
isLoading = false;
changeTitle(" \n\n");
@@ -2554,7 +2571,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");
@@ -3087,7 +3104,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)
{
@@ -3207,7 +3224,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)
{
@@ -3590,7 +3607,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)
@@ -3668,7 +3685,7 @@ Please visit our Telegram (https://t.me/VRPirates) or Discord (https://discord.g
}
else
{
initListView();
initListView(false);
}
}
@@ -3782,9 +3799,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
{
@@ -3841,6 +3855,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)
@@ -3848,7 +3864,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)
{
@@ -4037,7 +4053,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;
@@ -4378,7 +4394,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;
@@ -4529,7 +4545,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;
@@ -4622,10 +4638,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)

View File

@@ -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>

View File

@@ -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.33.0";
public static readonly string LocalVersion = "2.34.1";
public static string currentVersion = string.Empty;
public static string changelog = string.Empty;

View File

@@ -4,6 +4,7 @@ using System;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
namespace AndroidSideloader.Utilities
{
@@ -132,6 +133,7 @@ namespace AndroidSideloader.Utilities
public bool UseDownloadedFiles { get; set; } = false;
public float BandwidthLimit { get; set; } = 0f;
public bool HideAdultContent { get; set; } = false;
public string[] FavoritedGames { get; set; } = new string[0];
private SettingsManager()
{
@@ -253,11 +255,34 @@ namespace AndroidSideloader.Utilities
UseDownloadedFiles = false;
BandwidthLimit = 0f;
HideAdultContent = false;
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();

View File

@@ -1,5 +1,3 @@
RSL 2.33
RSL 2.34.1
- [Feature] Allow users to cancel backups
- [QoL] Lower ADB Version
- [QoL] Revert Add saving the ColumnWidths, Window Sizes/Position
- Fix: Rookie crashing with "Cannto add or insert the item"

View File

@@ -1 +1 @@
2.33.0
2.34.1