Compare commits

...

29 Commits
v2.11 ... v2.12

Author SHA1 Message Date
pmow
c966066c67 Merge pull request #119 from Fenopy/master
2.12 update
2022-09-13 10:16:56 -10:00
pmow
5a1209f77d Merge pull request #121 from nerdunit/revert-120-master
Revert "Titlebar Changes and Icon Fixes"
2022-09-13 10:16:25 -10:00
pmow
fdd1732331 Revert "Titlebar Changes and Icon Fixes" 2022-09-13 10:15:56 -10:00
pmow
e46af16db5 Merge pull request #120 from Chax1/master
Titlebar Changes and Icon Fixes
2022-09-13 10:04:30 -10:00
Chax
9f6a7044a9 fix 2022-09-13 18:07:41 +02:00
Chax
f4c46184bd Merge branch 'master' of https://github.com/Chax1/androidsideloader 2022-09-13 17:37:26 +02:00
Chax
e7bf9ce9a7 Fixed Icons 2022-09-13 17:37:09 +02:00
Chax
5bf13dc655 Update MainForm.cs 2022-09-13 17:28:20 +02:00
Chax
f4cbeec974 Removed normal titlebar and switched it with a cleaner more custom one, should still keep all the status messages! 2022-09-13 17:24:10 +02:00
Fenopy
eecaefff6a 2.12 update 2022-09-13 10:18:38 -05:00
Fenopy
cd0feb4fd5 Add offline mode prompt 2022-09-13 09:32:40 -05:00
Fenopy
42aba1e8e3 gui updates to game donation screen 2022-09-13 08:39:39 -05:00
Fenopy
7d03fce760 - Fix tooltips; add additional tooltips
- add additional logging
2022-09-13 08:39:21 -05:00
Fenopy
177133041e Restore "Auto Update Config" checkbox 2022-09-13 08:07:42 -05:00
Fenopy
b563a1a859 Updater- fix download url 2022-09-13 07:51:15 -05:00
Fenopy
c81081c2cd Fixed github version vs app version comparison 2022-09-13 07:37:27 -05:00
Fenopy
910c62530e - fixed issue with configuration always updating 2022-09-13 07:37:05 -05:00
Fenopy
f20a4e3954 Remove TopMost to prevent "always on top" 2022-09-09 15:45:16 -05:00
pmow
9254d9d2bb Update version 2022-09-08 10:54:43 -10:00
pmow
e8c0c8928e Merge pull request #118 from Fenopy/master
more rclone command changes
2022-09-08 10:52:48 -10:00
Fenopy
3ad5b584d6 Merge branch 'nerdunit:master' into master 2022-09-07 15:41:08 -05:00
Fenopy
84a2132f9c - more changes to rclone commands to fix ETA 2022-09-07 15:40:35 -05:00
pmow
a70fa29891 Update README.md 2022-09-07 09:25:10 -10:00
pmow
79230e1faa Merge pull request #117 from Fenopy/master
multiple fixes for 2.11 release
2022-09-07 09:22:54 -10:00
Fenopy
d1c6ac4bf6 - additional logging
- syntax fixes
- global rclone args
- about updates
2022-09-07 10:14:57 -05:00
Fenopy
1c0fa27d6a - another rclone limit
- better exit routine on quota error
2022-09-06 16:40:14 -05:00
Fenopy
1f41421c56 - update status text
- change server tasks to synchronous
- spelling fixes
- changed threading for sync commands
2022-09-06 15:00:54 -05:00
pmow
1e5c55429c revert version for now 2022-09-06 08:39:14 -10:00
Fenopy
acf7040ba5 Merge pull request #1 from nerdunit/master
Merge pull request #116 from Fenopy/master
2022-09-06 13:33:53 -05:00
16 changed files with 339 additions and 145 deletions

View File

@@ -1,16 +1,27 @@
RSL 2.11
RSL 2.12
- updated auto-update source
- update status text
- change server tasks to synchronous
- spelling fixes
- syntax fixes
- additional logging
~fenopy
RSL 2.11
- Updated rclone commands
- Minor code cleanup/syntax fixes
~f
~fenopy
RSL 2.10.5
- Added auto-offline mode when servers are offline
- Disabled Auto-Config update
~f
~fenopy
RSL 2.10.4

View File

@@ -147,8 +147,8 @@ namespace AndroidSideloader
// panel2
//
this.panel2.BackColor = global::AndroidSideloader.Properties.Settings.Default.SubButtonColor;
this.panel2.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "SubButtonColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
this.panel2.Controls.Add(this.DonorsListView);
this.panel2.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "SubButtonColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
this.panel2.Location = new System.Drawing.Point(16, 43);
this.panel2.Name = "panel2";
this.panel2.Size = new System.Drawing.Size(430, 230);
@@ -175,7 +175,7 @@ namespace AndroidSideloader
this.newdet.AutoSize = true;
this.newdet.BackColor = System.Drawing.Color.Transparent;
this.newdet.Font = new System.Drawing.Font("Microsoft Sans Serif", 10.25F, System.Drawing.FontStyle.Bold);
this.newdet.Location = new System.Drawing.Point(156, 7);
this.newdet.Location = new System.Drawing.Point(120, 7);
this.newdet.Name = "newdet";
this.newdet.Size = new System.Drawing.Size(150, 17);
this.newdet.TabIndex = 3;
@@ -191,11 +191,11 @@ namespace AndroidSideloader
this.upddet.AutoSize = true;
this.upddet.BackColor = System.Drawing.Color.Transparent;
this.upddet.Font = new System.Drawing.Font("Microsoft Sans Serif", 10.25F, System.Drawing.FontStyle.Bold);
this.upddet.Location = new System.Drawing.Point(163, 7);
this.upddet.Location = new System.Drawing.Point(120, 7);
this.upddet.Name = "upddet";
this.upddet.Size = new System.Drawing.Size(136, 17);
this.upddet.Size = new System.Drawing.Size(185, 17);
this.upddet.TabIndex = 3;
this.upddet.Text = "Updates detected";
this.upddet.Text = "Game Updates Detected";
this.upddet.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.upddet.Visible = false;
this.upddet.MouseDown += new System.Windows.Forms.MouseEventHandler(this.DonorsListViewForm_MouseDown);
@@ -206,12 +206,12 @@ namespace AndroidSideloader
//
this.label2.AutoSize = true;
this.label2.BackColor = System.Drawing.Color.Transparent;
this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 10.25F, System.Drawing.FontStyle.Bold);
this.label2.Location = new System.Drawing.Point(101, 23);
this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label2.Location = new System.Drawing.Point(23, 23);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(261, 17);
this.label2.Size = new System.Drawing.Size(416, 15);
this.label2.TabIndex = 3;
this.label2.Text = "All RSL apps are donated by users";
this.label2.Text = "All Apps are donated by users! Without them none of this would be possible!";
this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.label2.MouseDown += new System.Windows.Forms.MouseEventHandler(this.DonorsListViewForm_MouseDown);
this.label2.MouseMove += new System.Windows.Forms.MouseEventHandler(this.DonorsListViewForm_MouseMove);
@@ -222,11 +222,11 @@ namespace AndroidSideloader
this.TimerDesc.AutoSize = true;
this.TimerDesc.BackColor = System.Drawing.Color.Transparent;
this.TimerDesc.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.TimerDesc.Location = new System.Drawing.Point(36, 321);
this.TimerDesc.Location = new System.Drawing.Point(28, 321);
this.TimerDesc.Name = "TimerDesc";
this.TimerDesc.Size = new System.Drawing.Size(390, 13);
this.TimerDesc.Size = new System.Drawing.Size(406, 13);
this.TimerDesc.TabIndex = 3;
this.TimerDesc.Text = "Don\'t share free apps. RSL will extract/upload apps in background.";
this.TimerDesc.Text = "Don\'t share free apps. Rookie will extract/upload apps in background.";
this.TimerDesc.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.TimerDesc.MouseDown += new System.Windows.Forms.MouseEventHandler(this.DonorsListViewForm_MouseDown);
this.TimerDesc.MouseMove += new System.Windows.Forms.MouseEventHandler(this.DonorsListViewForm_MouseMove);
@@ -262,7 +262,6 @@ namespace AndroidSideloader
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.Name = "DonorsListViewForm";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.TopMost = true;
this.Load += new System.EventHandler(this.DonorsListViewForm_Load);
this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.DonorsListViewForm_MouseDown);
this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.DonorsListViewForm_MouseMove);
@@ -271,7 +270,7 @@ namespace AndroidSideloader
this.panel1.PerformLayout();
this.panel2.ResumeLayout(false);
this.ResumeLayout(false);
this.Activate();
}
#endregion

View File

@@ -380,7 +380,6 @@ namespace JR.Utils.GUI.Forms
//
// FlexibleMessageBoxForm
//
this.TopMost = true;
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(260, 102);
@@ -403,6 +402,8 @@ namespace JR.Utils.GUI.Forms
((System.ComponentModel.ISupportInitialize)(this.pictureBoxForIcon)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
this.Activate();
}
private System.Windows.Forms.Button button1;

85
MainForm.Designer.cs generated
View File

@@ -1,4 +1,7 @@
namespace AndroidSideloader

using System.Windows.Forms;
namespace AndroidSideloader
{
partial class MainForm
{
@@ -152,6 +155,9 @@
this.startsideloadbutton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.startsideloadbutton.UseVisualStyleBackColor = false;
this.startsideloadbutton.Click += new System.EventHandler(this.startsideloadbutton_Click);
ToolTip startsideloadbutton_Tooltip = new ToolTip();
startsideloadbutton_Tooltip.SetToolTip(this.startsideloadbutton, "Sideload an APK onto your device");
//
// devicesbutton
//
@@ -173,6 +179,9 @@
this.devicesbutton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.devicesbutton.UseVisualStyleBackColor = false;
this.devicesbutton.Click += new System.EventHandler(this.devicesbutton_Click);
ToolTip devicesbutton_Tooltip = new ToolTip();
devicesbutton_Tooltip.SetToolTip(this.devicesbutton, "Rookie will attempt to reconnect to your Device");
//
// obbcopybutton
//
@@ -194,6 +203,9 @@
this.obbcopybutton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.obbcopybutton.UseVisualStyleBackColor = false;
this.obbcopybutton.Click += new System.EventHandler(this.obbcopybutton_Click);
ToolTip obbcopybutton_Tooltip = new ToolTip();
obbcopybutton_Tooltip.SetToolTip(this.obbcopybutton, "Copies an obb folder to the Android/obb folder from the device (Not all games use obb files)");
//
// backupbutton
//
@@ -215,6 +227,9 @@
this.backupbutton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.backupbutton.UseVisualStyleBackColor = false;
this.backupbutton.Click += new System.EventHandler(this.backupbutton_Click);
ToolTip backupbutton_Tooltip = new ToolTip();
backupbutton_Tooltip.SetToolTip(this.backupbutton, "Saves the game and apps data to the sideloader folder (Does not save APKs or OBBs)");
//
// restorebutton
//
@@ -236,6 +251,9 @@
this.restorebutton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.restorebutton.UseVisualStyleBackColor = false;
this.restorebutton.Click += new System.EventHandler(this.restorebutton_Click);
ToolTip restorebutton_Tooltip = new ToolTip();
restorebutton_Tooltip.SetToolTip(this.restorebutton, "Restores the game and apps data to the device (Use the Backup Game Data button first!)");
//
// getApkButton
//
@@ -257,6 +275,9 @@
this.getApkButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.getApkButton.UseVisualStyleBackColor = false;
this.getApkButton.Click += new System.EventHandler(this.getApkButton_Click);
ToolTip getApkButton_Tooltip = new ToolTip();
getApkButton_Tooltip.SetToolTip(this.getApkButton, "Uploads the selected app to our Servers (Pick app within the Dropdown)");
//
// uninstallAppButton
//
@@ -278,6 +299,9 @@
this.uninstallAppButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.uninstallAppButton.UseVisualStyleBackColor = false;
this.uninstallAppButton.Click += new System.EventHandler(this.uninstallAppButton_Click);
ToolTip uninstallAppButton_Tooltip = new ToolTip();
uninstallAppButton_Tooltip.SetToolTip(this.uninstallAppButton, "Uninstalls the selected app (Select within the Dropdown)");
//
// pullAppToDesktopBtn
//
@@ -299,6 +323,9 @@
this.pullAppToDesktopBtn.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.pullAppToDesktopBtn.UseVisualStyleBackColor = false;
this.pullAppToDesktopBtn.Click += new System.EventHandler(this.pullAppToDesktopBtn_Click);
ToolTip pullAppToDesktopBtn_Tooltip = new ToolTip();
pullAppToDesktopBtn_Tooltip.SetToolTip(this.pullAppToDesktopBtn, "Extracts APK and OBB to your Desktop (Select within the Dropdown)");
//
// progressBar
//
@@ -331,6 +358,9 @@
this.copyBulkObbButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.copyBulkObbButton.UseVisualStyleBackColor = false;
this.copyBulkObbButton.Click += new System.EventHandler(this.copyBulkObbButton_Click);
ToolTip copyBulkObbButton_Tooltip = new ToolTip();
copyBulkObbButton_Tooltip.SetToolTip(this.copyBulkObbButton, "Copies an multiple OBB folders to your device.");
//
// downloadInstallGameButton
//
@@ -351,6 +381,9 @@
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);
ToolTip downloadInstallGameButton_Tooltip = new ToolTip();
downloadInstallGameButton_Tooltip.SetToolTip(this.downloadInstallGameButton, "Downloads and Installs the selected game from the Game List");
//
// panel1
//
@@ -458,6 +491,9 @@
this.aboutBtn.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.aboutBtn.UseVisualStyleBackColor = false;
this.aboutBtn.Click += new System.EventHandler(this.aboutBtn_Click);
ToolTip aboutBtn_Tooltip = new ToolTip();
aboutBtn_Tooltip.SetToolTip(this.aboutBtn, "About the Rookie App and it's amazing creators and contributors");
//
// settingsButton
//
@@ -479,6 +515,9 @@
this.settingsButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.settingsButton.UseVisualStyleBackColor = false;
this.settingsButton.Click += new System.EventHandler(this.settingsButton_Click);
ToolTip settingsButton_Tooltip = new ToolTip();
settingsButton_Tooltip.SetToolTip(this.settingsButton, "Rookie App Settings");
//
// otherContainer
//
@@ -517,6 +556,9 @@
this.InstallQUset.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.InstallQUset.UseVisualStyleBackColor = false;
this.InstallQUset.Click += new System.EventHandler(this.InstallQUset_Click);
ToolTip InstallQUset_Tooltip = new ToolTip();
InstallQUset_Tooltip.SetToolTip(this.InstallQUset, "After you enter your username it will create an user.json file needed for some games");
//
// removeQUSetting
//
@@ -538,6 +580,9 @@
this.removeQUSetting.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.removeQUSetting.UseVisualStyleBackColor = false;
this.removeQUSetting.Click += new System.EventHandler(this.removeQUSetting_Click);
ToolTip removeQUSetting_Tooltip = new ToolTip();
removeQUSetting_Tooltip.SetToolTip(this.removeQUSetting, "Remove QU Settings");
//
// ThemeChangerButton
//
@@ -559,6 +604,9 @@
this.ThemeChangerButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.ThemeChangerButton.UseVisualStyleBackColor = false;
this.ThemeChangerButton.Click += new System.EventHandler(this.ThemeChangerButton_Click);
ToolTip ThemeChangerButton_Tooltip = new ToolTip();
ThemeChangerButton_Tooltip.SetToolTip(this.ThemeChangerButton, "Change Rookie colors and fonts");
//
// QuestOptionsButton
//
@@ -580,6 +628,9 @@
this.QuestOptionsButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.QuestOptionsButton.UseVisualStyleBackColor = false;
this.QuestOptionsButton.Click += new System.EventHandler(this.QuestOptionsButton_Click);
ToolTip QuestOptionsButton_Tooltip = new ToolTip();
QuestOptionsButton_Tooltip.SetToolTip(this.QuestOptionsButton, "Additional Quest Settings and Utilities");
//
// ADBWirelessDisable
//
@@ -601,6 +652,9 @@
this.ADBWirelessDisable.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.ADBWirelessDisable.UseVisualStyleBackColor = false;
this.ADBWirelessDisable.Click += new System.EventHandler(this.ADBWirelessDisable_Click);
ToolTip ADBWirelessDisable_Tooltip = new ToolTip();
ADBWirelessDisable_Tooltip.SetToolTip(this.ADBWirelessDisable, "Removes Wireless ADB settings and disconnects any Wireless devices");
//
// ADBWirelessEnable
//
@@ -622,6 +676,9 @@
this.ADBWirelessEnable.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.ADBWirelessEnable.UseVisualStyleBackColor = false;
this.ADBWirelessEnable.Click += new System.EventHandler(this.ADBWirelessEnable_Click);
ToolTip ADBWirelessEnable_Tooltip = new ToolTip();
ADBWirelessEnable_Tooltip.SetToolTip(this.ADBWirelessEnable, "Enables Wireless sideloading. Requires a connected device to activate!");
//
// otherDrop
//
@@ -677,7 +734,7 @@
this.backupDrop.Padding = new System.Windows.Forms.Padding(7, 0, 0, 0);
this.backupDrop.Size = new System.Drawing.Size(221, 28);
this.backupDrop.TabIndex = 2;
this.backupDrop.Text = "> BACKUP";
this.backupDrop.Text = "> BACKUP / RESTORE";
this.backupDrop.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.backupDrop.UseVisualStyleBackColor = false;
this.backupDrop.Click += new System.EventHandler(this.backupDrop_Click);
@@ -721,6 +778,9 @@
this.UpdateGamesButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.UpdateGamesButton.UseVisualStyleBackColor = false;
this.UpdateGamesButton.Click += new System.EventHandler(this.UpdateGamesButton_Click);
ToolTip UpdateGamesButton_Tooltip = new ToolTip();
UpdateGamesButton_Tooltip.SetToolTip(this.UpdateGamesButton, "Refresh Game List and available updates");
//
// listApkButton
//
@@ -742,6 +802,9 @@
this.listApkButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.listApkButton.UseVisualStyleBackColor = false;
this.listApkButton.Click += new System.EventHandler(this.listApkButton_Click);
ToolTip listApkButton_Tooltip = new ToolTip();
listApkButton_Tooltip.SetToolTip(this.listApkButton, "Refresh connected devices, installed apps, and update game list");
//
// sideloadDrop
//
@@ -793,6 +856,9 @@
this.speedLabel.Size = new System.Drawing.Size(149, 18);
this.speedLabel.TabIndex = 76;
this.speedLabel.Text = "DLS: Speed in MBPS";
ToolTip speedLabel_Tooltip = new ToolTip();
speedLabel_Tooltip.SetToolTip(this.speedLabel, "Current download speed, updates every second, in mbps");
//
// etaLabel
//
@@ -807,6 +873,9 @@
this.etaLabel.Size = new System.Drawing.Size(148, 18);
this.etaLabel.TabIndex = 75;
this.etaLabel.Text = "ETA: HH:MM:SS Left";
ToolTip etaLabel_Tooltip = new ToolTip();
etaLabel_Tooltip.SetToolTip(this.etaLabel, "Estimated time when game will finish download, updates every 5 seconds, format is HH:MM:SS");
//
// freeDisclaimer
//
@@ -1000,6 +1069,9 @@
this.MountButton.UseVisualStyleBackColor = false;
this.MountButton.Click += new System.EventHandler(this.MountButton_Click);
this.MountButton.DragDrop += new System.Windows.Forms.DragEventHandler(this.Form1_DragDrop);
ToolTip MountButton_Tooltip = new ToolTip();
MountButton_Tooltip.SetToolTip(this.MountButton, "Set the active device");
//
// ProgressText
//
@@ -1076,7 +1148,7 @@
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
this.pictureBox1.TabIndex = 74;
this.pictureBox1.TabStop = false;
this.pictureBox1.Click += new System.EventHandler(this.pictureBox1_Click);
this.pictureBox1.Click += new System.EventHandler(this.updateAvailable_Click);
//
// label2
//
@@ -1116,7 +1188,7 @@
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(183, 17);
this.label4.TabIndex = 90;
this.label4.Text = "Shorcuts: CTRL+F or F2";
this.label4.Text = "Shortcuts: CTRL+F or F2";
this.label4.TextAlign = System.Drawing.ContentAlignment.TopCenter;
this.label4.Visible = false;
//
@@ -1144,6 +1216,7 @@
this.label6.TabIndex = 90;
this.label6.Text = "= Update Available";
this.label6.TextAlign = System.Drawing.ContentAlignment.TopCenter;
this.label6.Click += new System.EventHandler(this.updateAvailable_Click);
//
// label7
//
@@ -1185,6 +1258,9 @@
this.EnterInstallBox.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.EnterInstallBox.UseVisualStyleBackColor = true;
this.EnterInstallBox.CheckedChanged += new System.EventHandler(this.EnterInstallBox_CheckedChanged);
ToolTip EnterInstallBox_Tooltip = new ToolTip();
EnterInstallBox_Tooltip.SetToolTip(this.EnterInstallBox, "Use the ENTER key on your keyboard to start installation of games from the Game List");
//
// ADBcommandbox
//
@@ -1260,7 +1336,6 @@
this.pictureBox7.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
this.pictureBox7.TabIndex = 74;
this.pictureBox7.TabStop = false;
this.pictureBox7.Click += new System.EventHandler(this.pictureBox1_Click);
//
// label10
//

View File

@@ -259,10 +259,13 @@ namespace AndroidSideloader
progressBar.Style = ProgressBarStyle.Marquee;
if (!isOffline)
{
ChangeTitle("Initializing Mirrors");
ChangeTitle("Initializing Servers...");
initMirrors(true);
ChangeTitle("Checking if config is updated");
ChangeTitle("Initializing Games");
if (Properties.Settings.Default.autoUpdateConfig) {
ChangeTitle("Checking for a new Configuration File...");
SideloaderRCLONE.updateConfig(currentRemote);
}
ChangeTitle("Grabbing the Games List...");
SideloaderRCLONE.initGames(currentRemote);
//ChangeTitle("Syncing Game Photos");
//ChangeTitle("Updating list of needed clean apps...");
@@ -330,11 +333,13 @@ namespace AndroidSideloader
await Task.Delay(100);
Thread t2 = new Thread(() =>
{
ChangeTitle("Updating Game Notes...");
SideloaderRCLONE.UpdateGameNotes(currentRemote);
});
Thread t3 = new Thread(() =>
{
ChangeTitle("Updating Game Thumbnails (This may take a minute or two)...");
SideloaderRCLONE.UpdateGamePhotos(currentRemote);
});
@@ -349,22 +354,32 @@ namespace AndroidSideloader
t2.IsBackground = true;
t3.IsBackground = true;
t4.IsBackground = true;
if (HasInternet)
{
t2.Start();
t3.Start();
t4.Start();
}
while (t2.IsAlive)
await Task.Delay(50);
await Task.Delay(50);
if (HasInternet)
{
t3.Start();
}
while (t3.IsAlive)
await Task.Delay(50);
await Task.Delay(50);
if (HasInternet)
{
t4.Start();
}
while (t4.IsAlive)
await Task.Delay(50);
await Task.Delay(50);
progressBar.Style = ProgressBarStyle.Marquee;
ChangeTitle("Populating update list, please wait...\n\n");
ChangeTitle("Populating Game Update List, Almost There!");
await CheckForDevice();
if (ADB.DeviceID.Length < 5)
@@ -373,7 +388,6 @@ namespace AndroidSideloader
}
listappsbtn();
showAvailableSpace();
intToolTips();
downloadInstallGameButton.Enabled = true;
isLoading = false;
initListView();
@@ -393,37 +407,6 @@ namespace AndroidSideloader
}
}
private void intToolTips()
{
ToolTip ListDevicesToolTip = new ToolTip();
ListDevicesToolTip.SetToolTip(this.devicesbutton, "Lists the devices in a message box, also updates title bar");
ToolTip SideloadAPKToolTip = new ToolTip();
SideloadAPKToolTip.SetToolTip(this.startsideloadbutton, "Sideloads/Installs one apk on the android device");
ToolTip OBBToolTip = new ToolTip();
OBBToolTip.SetToolTip(this.obbcopybutton, "Copies an obb folder to the Android/Obb folder from the device, some games/apps need this");
ToolTip BackupGameDataToolTip = new ToolTip();
BackupGameDataToolTip.SetToolTip(this.backupbutton, "Saves the game and apps data to the sideloader folder, does not save apk's and obb's");
ToolTip RestoreGameDataToolTip = new ToolTip();
RestoreGameDataToolTip.SetToolTip(this.restorebutton, "Restores the game and apps data to the device, first use Backup Game Data button");
ToolTip GetAPKToolTip = new ToolTip();
GetAPKToolTip.SetToolTip(this.getApkButton, "Saves the selected apk to the folder where the sideloader is");
ToolTip sideloadFolderToolTip = new ToolTip();
sideloadFolderToolTip.SetToolTip(this.pullAppToDesktopBtn, "Sideloads every apk from a folder");
ToolTip uninstallAppToolTip = new ToolTip();
uninstallAppToolTip.SetToolTip(this.uninstallAppButton, "Uninstalls selected app");
ToolTip userjsonToolTip = new ToolTip();
userjsonToolTip.SetToolTip(this.ADBWirelessEnable, "After you enter your username it will create an user.json file needed for some games");
ToolTip etaToolTip = new ToolTip();
etaToolTip.SetToolTip(this.etaLabel, "Estimated time when game will finish download, updates every 5 seconds, format is HH:MM:SS");
ToolTip dlsToolTip = new ToolTip();
dlsToolTip.SetToolTip(this.speedLabel, "Current download speed, updates every second, in mbps");
}
void timer_Tick(object sender, EventArgs e)
{
ADB.RunAdbCommandToString("shell input keyevent KEYCODE_WAKEUP");
@@ -596,7 +579,10 @@ namespace AndroidSideloader
public static void notify(string message)
{
if (Properties.Settings.Default.enableMessageBoxes == true)
FlexibleMessageBox.Show(new Form { TopMost = true, StartPosition = FormStartPosition.CenterScreen }, message);
FlexibleMessageBox.Show(new Form {
TopMost = true,
StartPosition = FormStartPosition.CenterScreen
}, message);
}
private async void obbcopybutton_Click(object sender, EventArgs e)
@@ -983,7 +969,7 @@ namespace AndroidSideloader
var dialog = new FolderSelectDialog
{
Title = "Select your folder with APKs"
Title = "Select your folder with OBBs"
};
if (dialog.Show(Handle))
{
@@ -1015,6 +1001,9 @@ namespace AndroidSideloader
listappsbtn();
initListView();
}
Program.form.ChangeTitle($"Processing dropped file. If Rookie freezes, please wait. Do not close Rookie!");
DragDropLbl.Visible = false;
ProcessOutput output = new ProcessOutput("", "");
ADB.WakeDevice();
@@ -1032,6 +1021,7 @@ namespace AndroidSideloader
{
if (!data.Contains("+") && !data.Contains("_") && data.Contains("."))
{
Logger.Log($"Copying {data} to device");
Program.form.ChangeTitle($"Copying {data} to device...");
Thread t2 = new Thread(() =>
@@ -1062,6 +1052,7 @@ namespace AndroidSideloader
string filename = file2.Replace($"{pathname}\\", "");
string cmd = $"C:\\RSL\\platform-tools\\aapt.exe\" dump badging \"{file2}\" | findstr -i \"package: name\"";
Logger.Log($"Running adb command-{cmd}");
string cmdout = ADB.RunCommandToString(cmd, file2).Output;
cmdout = Utilities.StringUtilities.RemoveEverythingBeforeFirst(cmdout, "=");
cmdout = Utilities.StringUtilities.RemoveEverythingAfterFirst(cmdout, " ");
@@ -1073,7 +1064,7 @@ namespace AndroidSideloader
t3.Interval = 150000; // 180 seconds to fail
t3.Tick += timer_Tick4;
t3.Start();
Program.form.ChangeTitle($"Sideloading apk...");
Program.form.ChangeTitle($"Sideloading apk ({filename})");
Thread t2 = new Thread(() =>
{
@@ -1086,6 +1077,7 @@ namespace AndroidSideloader
t3.Stop();
if (Directory.Exists($"{pathname}\\{cmdout}"))
{
Logger.Log($"Copying obb folder to device- {cmdout}");
Program.form.ChangeTitle($"Copying obb folder to device...");
Thread t1 = new Thread(() =>
{
@@ -1126,6 +1118,7 @@ namespace AndroidSideloader
string[] folders = Directory.GetDirectories(data);
foreach (string folder in folders)
{
Logger.Log($"Copying {folder} to device");
Program.form.ChangeTitle($"Copying {folder} to device...");
Thread t2 = new Thread(() =>
@@ -1158,6 +1151,7 @@ namespace AndroidSideloader
return;
else
{
Logger.Log($"Sideloading custom install.txt");
ChangeTitle("Sideloading custom install.txt automatically.");
Thread t1 = new Thread(() =>
@@ -1180,6 +1174,7 @@ namespace AndroidSideloader
string pathname = Path.GetDirectoryName(data);
string dataname = data.Replace($"{pathname}\\", "");
string cmd = $"\"C:\\RSL\\platform-tools\\aapt.exe\" dump badging \"{data}\" | findstr -i \"package: name\"";
Logger.Log($"Running adb command-{cmd}");
string cmdout = ADB.RunCommandToString(cmd, data).Output;
cmdout = Utilities.StringUtilities.RemoveEverythingBeforeFirst(cmdout, "=");
cmdout = Utilities.StringUtilities.RemoveEverythingAfterFirst(cmdout, " ");
@@ -1206,6 +1201,7 @@ namespace AndroidSideloader
if (Directory.Exists($"{pathname}\\{cmdout}"))
{
Logger.Log($"Copying obb folder to device- {cmdout}");
Program.form.ChangeTitle($"Copying obb folder to device...");
Thread t2 = new Thread(() =>
{
@@ -1233,11 +1229,12 @@ namespace AndroidSideloader
path = foldername;
Thread t1 = new Thread(() =>
{
output += ADB.CopyOBB(path);
});
t1.IsBackground = true;
Logger.Log($"Copying obb folder to device- {path}");
Program.form.ChangeTitle($"Copying obb folder to device ({filename})");
t1.Start();
while (t1.IsAlive)
@@ -1467,7 +1464,9 @@ namespace AndroidSideloader
topItemIndex = gamesListView.TopItem.Index;
}
catch (Exception ex)
{ }
{
FlexibleMessageBox.Show($"Error building game list: {ex.Message}");
}
try
{
@@ -1475,7 +1474,9 @@ namespace AndroidSideloader
gamesListView.TopItem = gamesListView.Items[topItemIndex];
}
catch (Exception ex)
{ }
{
FlexibleMessageBox.Show($"Error building game list: {ex.Message}");
}
Thread t2 = new Thread(() =>
{
if (!errorOnList)
@@ -1794,18 +1795,20 @@ namespace AndroidSideloader
- Software orignally coded by rookie.wtf
- Thanks to pmow for all of his work, including rclone, wonka and other projects, and for scripting the backend
without him none of this would be possible
- Thanks to the data team, they know who they are ;) (Especially HarryEffingPotter, no he did not put this here himself, that is perposterous.)
- Thanks to flow for being friendly and helping every one, also congrats on being the discord server owner now! :D
- Thanks to badcoder5000 for helping me redesign the ui
- Thanks to gotard for the theme changer
- Thanks to Verb8em for drawing the new icon
- Thanks to 7zip team for 7zip :)
- Thanks to rclone team for rclone :D
- Thanks to https://stackoverflow.com/users/57611/erike for the folder browser dialog code
- Thanks to Serge Weinstock for developing SergeUtils, which is used to search the combo box
- Thanks to Mike Gold https://www.c-sharpcorner.com/members/mike-gold2 for the scrollable message box
- Thanks: Roma/Rookie, Pmow, Ivan, Kaladin, John, Sam Hoque, Flow, HarryEffinPotter, and the mod staff!";
- Thanks to HarryEffinPotter for all his Rookie improvements
- Thanks to the VRP Mod Staff, data team, and anyone else I missed!
- Thanks to VRP members of the past and present: Roma/Rookie, Flow, Ivan, Kaladin, John, Sam Hoque
- Additional Thanks and Credits:
- -- rclone https://rclone.org/
- -- 7zip https://www.7-zip.org/
- -- badcoder5000: for help with the UI Redesign
- -- gotard: for the Theme Changer
- -- Verb8em: for drawning the New Icon
- -- ErikE: Folder Browser Dialog Code (https://stackoverflow.com/users/57611/erike)
- -- Serge Weinstock: for developing SergeUtils, which is used to search the combobox
- -- Mike Gold: for the scrollable message box (https://www.c-sharpcorner.com/members/mike-gold2)
";
FlexibleMessageBox.Show(about);
}
@@ -1900,7 +1903,22 @@ without him none of this would be possible
if (quotaTries > remotesList.Items.Count)
{
ShowError_QuotaExceeded();
Application.Exit();
DialogResult om = MessageBox.Show("Relaunch Rookie in Offline Mode?", "Offline Mode?", MessageBoxButtons.YesNo);
if (om == DialogResult.Yes) {
Process pr = new Process();
pr.StartInfo.WorkingDirectory = Application.StartupPath;
pr.StartInfo.FileName = System.AppDomain.CurrentDomain.FriendlyName;
pr.StartInfo.Arguments = "--offline";
pr.Start();
Process.GetCurrentProcess().Kill();
}
if (System.Windows.Forms.Application.MessageLoop)
{
Process.GetCurrentProcess().Kill();
}
}
if (remotesList.SelectedIndex + 1 == remotesList.Items.Count)
{
@@ -1928,6 +1946,8 @@ without him none of this would be possible
const string errorMessage =
@"Unable to connect to Remote Server. Rookie is unable to connect to our Servers.
First time launching Rookie? Please relaunch and try again.
Things you can try:
1) Use a third party config from the wiki (https://wiki.vrpirates.club/general_information/third-party-rclone-configs)
2) Use Resilio for p2p downloads (https://wiki.vrpirates.club/en/Howto/Resilio-Sync-setup-guide)
@@ -1952,7 +1972,11 @@ Things you can try:
initListView();
}
progressBar.Style = ProgressBarStyle.Marquee;
if (gamesListView.SelectedItems.Count == 0) return;
if (gamesListView.SelectedItems.Count == 0) {
progressBar.Style = ProgressBarStyle.Continuous;
ChangeTitle("You must select a game from the Game List!");
return;
}
string namebox = gamesListView.SelectedItems[0].ToString();
string nameboxtranslated = Sideloader.gameNameToSimpleName(namebox);
int count = 0;
@@ -2011,9 +2035,12 @@ Things you can try:
Directory.CreateDirectory(gameDirectory);
ProcessOutput gameDownloadOutput = new ProcessOutput("", "");
Logger.Log($"Starting Game Download");
Logger.Log($"rclone copy \"{currentRemote}:{SideloaderRCLONE.RcloneGamesFolder}/{gameName}\"");
Thread t1 = new Thread(() =>
{
gameDownloadOutput = RCLONE.runRcloneCommand($"copy \"{currentRemote}:{SideloaderRCLONE.RcloneGamesFolder}/{gameName}\" \"{Environment.CurrentDirectory}\\{gameName}\" --progress --transfers 1 --multi-thread-streams 0", Properties.Settings.Default.BandwithLimit);
gameDownloadOutput = RCLONE.runRcloneCommand($"copy \"{currentRemote}:{SideloaderRCLONE.RcloneGamesFolder}/{gameName}\" \"{Environment.CurrentDirectory}\\{gameName}\" --progress --rc --transfers 1 --multi-thread-streams 1 --checkers 1", Properties.Settings.Default.BandwithLimit);
});
t1.IsBackground = true;
t1.Start();
@@ -2079,8 +2106,14 @@ Things you can try:
}
if (removedownloading)
{
ChangeTitle("Deleting game files", false);
try { Directory.Delete(Environment.CurrentDirectory + "\\" + gameName, true); } catch (Exception ex) { FlexibleMessageBox.Show($"Error deleting game files: {ex.Message}"); }
ChangeTitle("Deleting game files", false);
try
{
Directory.Delete(Environment.CurrentDirectory + "\\" + gameName, true);
}
catch (Exception ex) {
FlexibleMessageBox.Show($"Error deleting game files: {ex.Message}");
}
ChangeTitle("");
break;
}
@@ -2833,9 +2866,9 @@ Things you can try:
}
private void pictureBox1_Click(object sender, EventArgs e)
private void updateAvailable_Click(object sender, EventArgs e)
{
// do filtering!
}
private void EnterInstallBox_CheckedChanged(object sender, EventArgs e)

3
NewApps.Designer.cs generated
View File

@@ -133,7 +133,6 @@ namespace AndroidSideloader
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
this.Name = "NewApps";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.TopMost = true;
this.Load += new System.EventHandler(this.NewApps_Load);
this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.label2_MouseDown);
this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.label2_MouseMove);
@@ -141,7 +140,7 @@ namespace AndroidSideloader
this.panel2.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
this.Activate();
}
#endregion

3
QuestForm.Designer.cs generated
View File

@@ -689,12 +689,11 @@ namespace AndroidSideloader
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Quest settings";
this.TopMost = true;
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.QuestForm_FormClosed);
this.Load += new System.EventHandler(this.QuestForm_Load);
this.ResumeLayout(false);
this.PerformLayout();
this.Activate();
}
#endregion

View File

@@ -36,7 +36,10 @@ namespace AndroidSideloader
//Run rclone command
public static ProcessOutput runRcloneCommand(string command, string bandwithLimit = "")
{
if (!MainForm.HasInternet || MainForm.isOffline) return new ProcessOutput("", "No internet");
if (!MainForm.HasInternet || MainForm.isOffline)
{
return new ProcessOutput("", "No internet");
}
ProcessOutput prcoutput = new ProcessOutput();
//Rclone output is unicode, else it will show garbage instead of unicode characters
@@ -105,8 +108,20 @@ namespace AndroidSideloader
prcoutput.Output = output;
prcoutput.Error = error;
}
if (!output.Contains("Game Name;Release Name;") && !output.Contains("package:") && !output.Contains(".meta"))
Logger.Log($"Rclone error: {error}\nRclone Output: {output}");
{
if (!string.IsNullOrWhiteSpace(error))
{
Logger.Log($"Rclone error: {error}\n");
}
if (!string.IsNullOrWhiteSpace(output))
{
Logger.Log($"Rclone Output: {output}");
}
}
if (output.Contains("There is not enough space"))
{
FlexibleMessageBox.Show("There isn't enough space on your PC to properly install this game. Please have at least 2x the size of the game you are trying to download/install available on the drive where Rookie is installed.", "NOT ENOUGH SPACE");

View File

@@ -8,22 +8,8 @@ androidsideloader uses the GPL license, any forks of it must have their source c
## !IMPORTANT!
This app may be buggy and have problems, I will recode it from scratch ~~when MAUI will be released (This september) and a linux port will be available, making RSL cross-platform.~~
Since microsoft delayed MAUI and they don't support linux, I decided to try to rewrite it in go, a language that I started learning recently, so there is no ETA for that.
### This app might get detected as malware, however both the sideloader and the sideloader launcher are open source
This app may be buggy and have problems.
### This app might get detected as malware, however both the sideloader and the sideloader launcher are open source. And obviously, it isn't.
See:
https://www.virustotal.com/gui/file/977105693610cf360fc29339b918e224180ba393ba05a64b6255af3845cbf376/relations
## Special thanks to
- [Everyone who donated!](https://raw.githubusercontent.com/nerdunit/androidsideloader/master/donators.txt)
- pmow for all of his work, including rclone, wonka and other projects
- flow for being friendly and helping every one
- succ for creating and maintaining the server
- badcoder5000 for redesigning the UI
- gotard for the theme changer
- [7zip](https://www.7-zip.org/) team for [7zip](https://www.7-zip.org/) :)
- [rclone](https://rclone.org/) team for [rclone](https://rclone.org/) :D
- [erike](https://stackoverflow.com/users/57611/erike) for the folder browser dialog code
- Serge Weinstock for developing SergeUtils, which is used to search the combo box
- https://www.c-sharpcorner.com/members/mike-gold2 for the scrollable message box

View File

@@ -33,6 +33,7 @@
this.enableMessageBoxesCheckBox = new System.Windows.Forms.CheckBox();
this.resetSettingsButton = new System.Windows.Forms.Button();
this.deleteAfterInstallCheckBox = new System.Windows.Forms.CheckBox();
this.updateConfigCheckBox = new System.Windows.Forms.CheckBox();
this.userJsonOnGameInstall = new System.Windows.Forms.CheckBox();
this.BandwithTextbox = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
@@ -57,7 +58,7 @@
this.checkForUpdatesCheckBox.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
this.checkForUpdatesCheckBox.Location = new System.Drawing.Point(12, 12);
this.checkForUpdatesCheckBox.Name = "checkForUpdatesCheckBox";
this.checkForUpdatesCheckBox.Size = new System.Drawing.Size(148, 22);
this.checkForUpdatesCheckBox.Size = new System.Drawing.Size(165, 22);
this.checkForUpdatesCheckBox.TabIndex = 0;
this.checkForUpdatesCheckBox.Text = "Check for updates";
this.checkForUpdatesCheckBox.UseVisualStyleBackColor = true;
@@ -87,7 +88,7 @@
this.enableMessageBoxesCheckBox.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
this.enableMessageBoxesCheckBox.Location = new System.Drawing.Point(12, 39);
this.enableMessageBoxesCheckBox.Name = "enableMessageBoxesCheckBox";
this.enableMessageBoxesCheckBox.Size = new System.Drawing.Size(309, 22);
this.enableMessageBoxesCheckBox.Size = new System.Drawing.Size(347, 22);
this.enableMessageBoxesCheckBox.TabIndex = 1;
this.enableMessageBoxesCheckBox.Text = "Enable Message Boxes on task completed";
this.enableMessageBoxesCheckBox.UseVisualStyleBackColor = true;
@@ -117,20 +118,33 @@
this.deleteAfterInstallCheckBox.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
this.deleteAfterInstallCheckBox.Location = new System.Drawing.Point(12, 65);
this.deleteAfterInstallCheckBox.Name = "deleteAfterInstallCheckBox";
this.deleteAfterInstallCheckBox.Size = new System.Drawing.Size(288, 22);
this.deleteAfterInstallCheckBox.Size = new System.Drawing.Size(327, 22);
this.deleteAfterInstallCheckBox.TabIndex = 3;
this.deleteAfterInstallCheckBox.Text = "Delete games after download and install";
this.deleteAfterInstallCheckBox.UseVisualStyleBackColor = true;
this.deleteAfterInstallCheckBox.CheckedChanged += new System.EventHandler(this.deleteAfterInstallCheckBox_CheckedChanged);
//
// updateConfigCheckBox
//
this.updateConfigCheckBox.AutoSize = true;
this.updateConfigCheckBox.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
this.updateConfigCheckBox.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
this.updateConfigCheckBox.Location = new System.Drawing.Point(12, 92);
this.updateConfigCheckBox.Name = "updateConfigCheckBox";
this.updateConfigCheckBox.Size = new System.Drawing.Size(235, 22);
this.updateConfigCheckBox.TabIndex = 6;
this.updateConfigCheckBox.Text = "Update config automatically";
this.updateConfigCheckBox.UseVisualStyleBackColor = true;
this.updateConfigCheckBox.CheckedChanged += new System.EventHandler(this.updateConfigCheckBox_CheckedChanged);
//
// userJsonOnGameInstall
//
this.userJsonOnGameInstall.AutoSize = true;
this.userJsonOnGameInstall.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
this.userJsonOnGameInstall.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
this.userJsonOnGameInstall.Location = new System.Drawing.Point(12, 93);
this.userJsonOnGameInstall.Location = new System.Drawing.Point(12, 119);
this.userJsonOnGameInstall.Name = "userJsonOnGameInstall";
this.userJsonOnGameInstall.Size = new System.Drawing.Size(243, 22);
this.userJsonOnGameInstall.Size = new System.Drawing.Size(275, 22);
this.userJsonOnGameInstall.TabIndex = 9;
this.userJsonOnGameInstall.Text = "Push random user.json on install";
this.userJsonOnGameInstall.UseVisualStyleBackColor = true;
@@ -156,7 +170,7 @@
this.label1.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
this.label1.Location = new System.Drawing.Point(40, 273);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(245, 18);
this.label1.Size = new System.Drawing.Size(281, 18);
this.label1.TabIndex = 12;
this.label1.Text = "Download speed limiter, 0 to disable";
//
@@ -286,9 +300,9 @@
this.CblindBox.AutoSize = true;
this.CblindBox.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
this.CblindBox.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
this.CblindBox.Location = new System.Drawing.Point(12, 119);
this.CblindBox.Location = new System.Drawing.Point(12, 145);
this.CblindBox.Name = "CblindBox";
this.CblindBox.Size = new System.Drawing.Size(182, 22);
this.CblindBox.Size = new System.Drawing.Size(204, 22);
this.CblindBox.TabIndex = 9;
this.CblindBox.Text = "Enable colorblind mode";
this.CblindBox.UseVisualStyleBackColor = true;
@@ -300,9 +314,9 @@
this.nodevicemodeBox.AutoSize = true;
this.nodevicemodeBox.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
this.nodevicemodeBox.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
this.nodevicemodeBox.Location = new System.Drawing.Point(12, 170);
this.nodevicemodeBox.Location = new System.Drawing.Point(12, 196);
this.nodevicemodeBox.Name = "nodevicemodeBox";
this.nodevicemodeBox.Size = new System.Drawing.Size(181, 22);
this.nodevicemodeBox.Size = new System.Drawing.Size(202, 22);
this.nodevicemodeBox.TabIndex = 9;
this.nodevicemodeBox.Text = "Enable no device mode";
this.nodevicemodeBox.UseVisualStyleBackColor = true;
@@ -313,9 +327,9 @@
this.bmbfBox.AutoSize = true;
this.bmbfBox.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
this.bmbfBox.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
this.bmbfBox.Location = new System.Drawing.Point(12, 144);
this.bmbfBox.Location = new System.Drawing.Point(12, 170);
this.bmbfBox.Name = "bmbfBox";
this.bmbfBox.Size = new System.Drawing.Size(281, 22);
this.bmbfBox.Size = new System.Drawing.Size(316, 22);
this.bmbfBox.TabIndex = 9;
this.bmbfBox.Text = "Enable BMBF song zips drag and drop";
this.bmbfBox.UseVisualStyleBackColor = true;
@@ -326,9 +340,9 @@
this.AutoReinstBox.AutoSize = true;
this.AutoReinstBox.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
this.AutoReinstBox.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
this.AutoReinstBox.Location = new System.Drawing.Point(12, 196);
this.AutoReinstBox.Location = new System.Drawing.Point(12, 222);
this.AutoReinstBox.Name = "AutoReinstBox";
this.AutoReinstBox.Size = new System.Drawing.Size(280, 22);
this.AutoReinstBox.Size = new System.Drawing.Size(322, 22);
this.AutoReinstBox.TabIndex = 9;
this.AutoReinstBox.Text = "Enable auto reinstall upon install failure";
this.AutoReinstBox.UseVisualStyleBackColor = true;
@@ -354,6 +368,7 @@
this.Controls.Add(this.nodevicemodeBox);
this.Controls.Add(this.CblindBox);
this.Controls.Add(this.userJsonOnGameInstall);
this.Controls.Add(this.updateConfigCheckBox);
this.Controls.Add(this.deleteAfterInstallCheckBox);
this.Controls.Add(this.enableMessageBoxesCheckBox);
this.Controls.Add(this.button1);
@@ -369,13 +384,12 @@
this.ShowIcon = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Settings";
this.TopMost = true;
this.Load += new System.EventHandler(this.SettingsForm_Load);
this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.SettingsForm_KeyPress);
this.Leave += new System.EventHandler(this.SettingsForm_Leave);
this.ResumeLayout(false);
this.PerformLayout();
this.Activate();
}
#endregion
@@ -385,6 +399,7 @@
private System.Windows.Forms.CheckBox enableMessageBoxesCheckBox;
private System.Windows.Forms.Button resetSettingsButton;
private System.Windows.Forms.CheckBox deleteAfterInstallCheckBox;
private System.Windows.Forms.CheckBox updateConfigCheckBox;
private System.Windows.Forms.CheckBox userJsonOnGameInstall;
private System.Windows.Forms.TextBox BandwithTextbox;
private System.Windows.Forms.Label label1;

View File

@@ -31,6 +31,7 @@ namespace AndroidSideloader
checkForUpdatesCheckBox.Checked = Properties.Settings.Default.checkForUpdates;
enableMessageBoxesCheckBox.Checked = Properties.Settings.Default.enableMessageBoxes;
deleteAfterInstallCheckBox.Checked = Properties.Settings.Default.deleteAllAfterInstall;
updateConfigCheckBox.Checked = Properties.Settings.Default.autoUpdateConfig;
userJsonOnGameInstall.Checked = Properties.Settings.Default.userJsonOnGameInstall;
nodevicemodeBox.Checked = Properties.Settings.Default.nodevicemode;
bmbfBox.Checked = Properties.Settings.Default.BMBFchecked;
@@ -141,6 +142,11 @@ namespace AndroidSideloader
Properties.Settings.Default.deleteAllAfterInstall = deleteAfterInstallCheckBox.Checked;
}
private void updateConfigCheckBox_CheckedChanged(object sender, EventArgs e)
{
Properties.Settings.Default.autoUpdateConfig = updateConfigCheckBox.Checked;
}
private void userJsonOnGameInstall_CheckedChanged(object sender, EventArgs e)
{
Properties.Settings.Default.userJsonOnGameInstall = userJsonOnGameInstall.Checked;

View File

@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Net;
using System.IO;
using System.Linq;
using System.Security.Cryptography;
namespace AndroidSideloader
{
@@ -46,22 +47,25 @@ namespace AndroidSideloader
public static void UpdateNouns(string remote)
{
RCLONE.runRcloneCommand($"sync \"{remote}:{RcloneGamesFolder}/.meta/nouns\" \"{Nouns}\"");
Logger.Log($"Updating Nouns");
RCLONE.runRcloneCommand($"sync \"{remote}:{RcloneGamesFolder}/.meta/nouns\" \"{Nouns}\" --http-no-head --transfers 2 --multi-thread-streams 1");
}
public static void UpdateGamePhotos(string remote)
{
RCLONE.runRcloneCommand($"sync \"{remote}:{RcloneGamesFolder}/.meta/thumbnails\" \"{ThumbnailsFolder}\"");
Logger.Log($"Updating Thumbnails");
RCLONE.runRcloneCommand($"sync \"{remote}:{RcloneGamesFolder}/.meta/thumbnails\" \"{ThumbnailsFolder}\" --http-no-head --transfers 2 --multi-thread-streams 1");
}
public static void UpdateGameNotes(string remote)
{
RCLONE.runRcloneCommand($"sync \"{remote}:{RcloneGamesFolder}/.meta/notes\" \"{NotesFolder}\"");
Logger.Log($"Updating Game Notes");
RCLONE.runRcloneCommand($"sync \"{remote}:{RcloneGamesFolder}/.meta/notes\" \"{NotesFolder}\" --http-no-head --transfers 2 --multi-thread-streams 1");
}
public static void RefreshRemotes()
{
Logger.Log($"Refresh / List Remotes");
RemotesList.Clear();
var remotes = RCLONE.runRcloneCommand("listremotes").Output.Split('\n');
@@ -82,6 +86,8 @@ namespace AndroidSideloader
public static void initGames(string remote)
{
Logger.Log($"Initializing Games List");
gameProperties.Clear();
games.Clear();
string tempGameList = RCLONE.runRcloneCommand($"cat \"{remote}:{RcloneGamesFolder}/VRP-GameList.txt\"").Output;
@@ -108,6 +114,7 @@ namespace AndroidSideloader
public static void updateConfig(string remote)
{
Logger.Log($"Attempting to Update Config");
try
{
string configUrl = "https://wiki.vrpirates.club/downloads/vrp.download.config";
@@ -117,13 +124,55 @@ namespace AndroidSideloader
{
string resultString = responseReader.ReadToEnd();
if (File.Exists(Environment.CurrentDirectory + "\\rclone\\vrp.download.config"))
File.Delete(Environment.CurrentDirectory + "\\rclone\\vrp.download.config");
File.Create(Environment.CurrentDirectory + "\\rclone\\vrp.download.config").Close();
File.WriteAllText(Environment.CurrentDirectory + "\\rclone\\vrp.download.config", resultString);
Logger.Log($"Retrived updated config from: {configUrl}");
if (File.Exists(Environment.CurrentDirectory + "\\rclone\\vrp.download.config_new"))
File.Delete(Environment.CurrentDirectory + "\\rclone\\vrp.download.config_new");
File.Create(Environment.CurrentDirectory + "\\rclone\\vrp.download.config_new").Close();
File.WriteAllText(Environment.CurrentDirectory + "\\rclone\\vrp.download.config_new", resultString);
if (!File.Exists(Environment.CurrentDirectory + "\\rclone\\hash.txt"))
File.Create(Environment.CurrentDirectory + "\\rclone\\hash.txt").Close();
string newConfig = CalculateMD5(Environment.CurrentDirectory + "\\rclone\\vrp.download.config_new");
string oldConfig = File.ReadAllText(Environment.CurrentDirectory + "\\rclone\\hash.txt");
if (!File.Exists(Environment.CurrentDirectory + "\\rclone\\vrp.download.config"))
oldConfig = "Config Doesnt Exist!";
Logger.Log($"Online Config Hash: {newConfig}; Local Config Hash: {oldConfig}");
if (newConfig != oldConfig)
{
Logger.Log($"Updated Config Hash is different than the current Config. Updating Configuration File.");
if (File.Exists(Environment.CurrentDirectory + "\\rclone\\vrp.download.config"))
File.Delete(Environment.CurrentDirectory + "\\rclone\\vrp.download.config");
File.Move(Environment.CurrentDirectory + "\\rclone\\vrp.download.config_new", Environment.CurrentDirectory + "\\rclone\\vrp.download.config");
File.WriteAllText(Environment.CurrentDirectory + "\\rclone\\hash.txt", string.Empty);
File.WriteAllText(Environment.CurrentDirectory + "\\rclone\\hash.txt", newConfig);
} else
{
Logger.Log($"Updated Config Hash matches last download. Not updating.");
if (File.Exists(Environment.CurrentDirectory + "\\rclone\\vrp.download.config_new"))
File.Delete(Environment.CurrentDirectory + "\\rclone\\vrp.download.config_new");
}
}
}
catch { }
}
static string CalculateMD5(string filename)
{
using (var md5 = MD5.Create())
{
using (var stream = File.OpenRead(filename))
{
var hash = md5.ComputeHash(stream);
return BitConverter.ToString(hash).Replace("-", "").ToLowerInvariant();
}
}
}
}
}

View File

@@ -153,7 +153,6 @@ namespace AndroidSideloader
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
this.Name = "UpdateForm";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.TopMost = true;
this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.UpdateForm_MouseDown);
this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.UpdateForm_MouseMove);
this.MouseUp += new System.Windows.Forms.MouseEventHandler(this.UpdateForm_MouseUp);
@@ -161,7 +160,7 @@ namespace AndroidSideloader
this.panel1.ResumeLayout(false);
this.panel1.PerformLayout();
this.ResumeLayout(false);
this.Activate();
}
#endregion

View File

@@ -17,7 +17,7 @@ namespace AndroidSideloader
private static string RawGitHubUrl;
private static string GitHubUrl;
static readonly public string LocalVersion = "2.11";
static readonly public string LocalVersion = "2.12";
public static string currentVersion = string.Empty;
public static string changelog = string.Empty;
@@ -30,9 +30,10 @@ namespace AndroidSideloader
currentVersion = client.GetStringAsync($"{RawGitHubUrl}/master/version").Result;
changelog = client.GetStringAsync($"{RawGitHubUrl}/master/changelog.txt").Result;
client.Dispose();
currentVersion = currentVersion.Trim();
}
catch { return false; }
return LocalVersion != currentVersion;
return LocalVersion.Trim() != currentVersion;
}
//Call this to ask the user if they want to update
@@ -58,7 +59,7 @@ namespace AndroidSideloader
var fileClient = new WebClient();
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
Logger.Log($"Downloading update from {RawGitHubUrl}/releases/download/v{currentVersion}/{AppName}.exe to {AppName} v{currentVersion}.exe");
Logger.Log($"Downloading update from {GitHubUrl}/releases/download/v{currentVersion}/{AppName}.exe to {AppName} v{currentVersion}.exe");
fileClient.DownloadFile($"{GitHubUrl}/releases/download/v{currentVersion}/{AppName}.exe", $"{AppName} v{currentVersion}.exe");
fileClient.Dispose();
Logger.Log($"Starting {AppName} v{currentVersion}.exe");

View File

@@ -1,5 +1,11 @@
RSL 2.10.4
RSL 2.12
Made mirror ID start at first again.
- fixed issue with configuration always updating
- fixed github version vs app version comparison
- fixed github download url
- restored "auto update config" checkbox
- fixed tooltips; added additional tooltips to all menu items
- gui fixes and updates to game donation menu
- additional logging and on-screen notifications
~pmow
~fenopy

View File

@@ -1 +1 @@
2.11
2.12