Compare commits
21 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
872ceb17ce | ||
|
|
494f3dec69 | ||
|
|
ab870f984d | ||
|
|
c4327c3de9 | ||
|
|
34c3c1b9ab | ||
|
|
698c49bc0e | ||
|
|
298fbe8a00 | ||
|
|
7143bf63c6 | ||
|
|
c905acaa6a | ||
|
|
de1cfd511a | ||
|
|
af7bbc3407 | ||
|
|
e9805f8c17 | ||
|
|
a8106a87b2 | ||
|
|
3eb88329b6 | ||
|
|
2f6e196ea3 | ||
|
|
aa8185abea | ||
|
|
683c3b87b5 | ||
|
|
49f7bc9470 | ||
|
|
ceb2e5954e | ||
|
|
6eba1c46bf | ||
|
|
781ffbbc90 |
@@ -126,6 +126,9 @@
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="UHWID">
|
||||
<HintPath>packages\UHWID.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="WindowsBase" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
@@ -136,6 +139,12 @@
|
||||
<Compile Include="Form1.Designer.cs">
|
||||
<DependentUpon>Form1.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ImageForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="ImageForm.Designer.cs">
|
||||
<DependentUpon>ImageForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="SettingsForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
@@ -167,6 +176,9 @@
|
||||
<DependentUpon>Form1.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="ImageForm.resx">
|
||||
<DependentUpon>ImageForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
|
||||
@@ -53,6 +53,9 @@
|
||||
<value>
|
||||
</value>
|
||||
</setting>
|
||||
<setting name="autoUpdateConfig" serializeAs="String">
|
||||
<value>True</value>
|
||||
</setting>
|
||||
</AndroidSideloader.Properties.Settings>
|
||||
</userSettings>
|
||||
</configuration>
|
||||
72
Form1.Designer.cs
generated
72
Form1.Designer.cs
generated
@@ -36,8 +36,6 @@
|
||||
this.backupbutton = new System.Windows.Forms.Button();
|
||||
this.restorebutton = new System.Windows.Forms.Button();
|
||||
this.getApkButton = new System.Windows.Forms.Button();
|
||||
this.launchPackageTextBox = new System.Windows.Forms.TextBox();
|
||||
this.launchApkButton = new System.Windows.Forms.Button();
|
||||
this.uninstallAppButton = new System.Windows.Forms.Button();
|
||||
this.sideloadFolderButton = new System.Windows.Forms.Button();
|
||||
this.progressBar = new System.Windows.Forms.ProgressBar();
|
||||
@@ -59,6 +57,9 @@
|
||||
this.listApkButton = new System.Windows.Forms.Button();
|
||||
this.sideloadDrop = new System.Windows.Forms.Button();
|
||||
this.pictureBox1 = new System.Windows.Forms.PictureBox();
|
||||
this.etaLabel = new System.Windows.Forms.Label();
|
||||
this.speedLabel = new System.Windows.Forms.Label();
|
||||
this.diskLabel = new System.Windows.Forms.Label();
|
||||
this.panel1.SuspendLayout();
|
||||
this.backupContainer.SuspendLayout();
|
||||
this.sideloadContainer.SuspendLayout();
|
||||
@@ -210,29 +211,6 @@
|
||||
this.getApkButton.UseVisualStyleBackColor = false;
|
||||
this.getApkButton.Click += new System.EventHandler(this.getApkButton_Click);
|
||||
//
|
||||
// launchPackageTextBox
|
||||
//
|
||||
this.launchPackageTextBox.BackColor = global::AndroidSideloader.Properties.Settings.Default.TextBoxColor;
|
||||
this.launchPackageTextBox.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "TextBoxColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.launchPackageTextBox.ForeColor = System.Drawing.Color.White;
|
||||
this.launchPackageTextBox.Location = new System.Drawing.Point(714, 150);
|
||||
this.launchPackageTextBox.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.launchPackageTextBox.Name = "launchPackageTextBox";
|
||||
this.launchPackageTextBox.Size = new System.Drawing.Size(255, 22);
|
||||
this.launchPackageTextBox.TabIndex = 23;
|
||||
this.launchPackageTextBox.Text = "de.eye_interactive.atvl.settings";
|
||||
//
|
||||
// launchApkButton
|
||||
//
|
||||
this.launchApkButton.Location = new System.Drawing.Point(714, 177);
|
||||
this.launchApkButton.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.launchApkButton.Name = "launchApkButton";
|
||||
this.launchApkButton.Size = new System.Drawing.Size(255, 25);
|
||||
this.launchApkButton.TabIndex = 24;
|
||||
this.launchApkButton.Text = "Launch Apk By Package Name";
|
||||
this.launchApkButton.UseVisualStyleBackColor = true;
|
||||
this.launchApkButton.Click += new System.EventHandler(this.launchApkButton_Click);
|
||||
//
|
||||
// uninstallAppButton
|
||||
//
|
||||
this.uninstallAppButton.BackColor = global::AndroidSideloader.Properties.Settings.Default.SubButtonColor;
|
||||
@@ -624,7 +602,39 @@
|
||||
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);
|
||||
//
|
||||
// etaLabel
|
||||
//
|
||||
this.etaLabel.AutoSize = true;
|
||||
this.etaLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.etaLabel.ForeColor = System.Drawing.Color.White;
|
||||
this.etaLabel.Location = new System.Drawing.Point(278, 204);
|
||||
this.etaLabel.Name = "etaLabel";
|
||||
this.etaLabel.Size = new System.Drawing.Size(295, 36);
|
||||
this.etaLabel.TabIndex = 75;
|
||||
this.etaLabel.Text = "ETA: HH:MM:SS Left";
|
||||
//
|
||||
// speedLabel
|
||||
//
|
||||
this.speedLabel.AutoSize = true;
|
||||
this.speedLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.speedLabel.ForeColor = System.Drawing.Color.White;
|
||||
this.speedLabel.Location = new System.Drawing.Point(278, 170);
|
||||
this.speedLabel.Name = "speedLabel";
|
||||
this.speedLabel.Size = new System.Drawing.Size(300, 36);
|
||||
this.speedLabel.TabIndex = 76;
|
||||
this.speedLabel.Text = "DLS: Speed in MBPS";
|
||||
//
|
||||
// diskLabel
|
||||
//
|
||||
this.diskLabel.AutoSize = true;
|
||||
this.diskLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.diskLabel.ForeColor = System.Drawing.Color.White;
|
||||
this.diskLabel.Location = new System.Drawing.Point(282, 145);
|
||||
this.diskLabel.Name = "diskLabel";
|
||||
this.diskLabel.Size = new System.Drawing.Size(103, 25);
|
||||
this.diskLabel.TabIndex = 77;
|
||||
this.diskLabel.Text = "Disk Label";
|
||||
//
|
||||
// Form1
|
||||
//
|
||||
@@ -633,13 +643,14 @@
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.BackColor = global::AndroidSideloader.Properties.Settings.Default.BackColor;
|
||||
this.ClientSize = new System.Drawing.Size(982, 786);
|
||||
this.Controls.Add(this.diskLabel);
|
||||
this.Controls.Add(this.speedLabel);
|
||||
this.Controls.Add(this.etaLabel);
|
||||
this.Controls.Add(this.panel1);
|
||||
this.Controls.Add(this.gamesComboBox);
|
||||
this.Controls.Add(this.downloadInstallGameButton);
|
||||
this.Controls.Add(this.DragDropLbl);
|
||||
this.Controls.Add(this.progressBar);
|
||||
this.Controls.Add(this.launchApkButton);
|
||||
this.Controls.Add(this.launchPackageTextBox);
|
||||
this.Controls.Add(this.m_combo);
|
||||
this.Controls.Add(this.pictureBox1);
|
||||
this.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "BackColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
@@ -672,8 +683,6 @@
|
||||
private System.Windows.Forms.Button restorebutton;
|
||||
private System.Windows.Forms.Button getApkButton;
|
||||
private SergeUtils.EasyCompletionComboBox m_combo;
|
||||
private System.Windows.Forms.TextBox launchPackageTextBox;
|
||||
private System.Windows.Forms.Button launchApkButton;
|
||||
private System.Windows.Forms.Button uninstallAppButton;
|
||||
private System.Windows.Forms.Button sideloadFolderButton;
|
||||
private System.Windows.Forms.ProgressBar progressBar;
|
||||
@@ -695,6 +704,9 @@
|
||||
private System.Windows.Forms.Button themesbutton;
|
||||
private System.Windows.Forms.Button donateButton;
|
||||
private System.Windows.Forms.PictureBox pictureBox1;
|
||||
private System.Windows.Forms.Label etaLabel;
|
||||
private System.Windows.Forms.Label speedLabel;
|
||||
private System.Windows.Forms.Label diskLabel;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
473
Form1.cs
473
Form1.cs
@@ -3,6 +3,7 @@ using System.Diagnostics;
|
||||
using System.Windows.Forms;
|
||||
using System.IO;
|
||||
using System.Threading;
|
||||
using System.Management;
|
||||
using System.ComponentModel;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
@@ -33,10 +34,11 @@ namespace AndroidSideloader
|
||||
#endif
|
||||
string path;
|
||||
|
||||
string result;
|
||||
string obbPath = "";
|
||||
string allText;
|
||||
|
||||
bool is1April = false;
|
||||
|
||||
public static string debugPath = "debug.log";
|
||||
public static string adbPath = Environment.CurrentDirectory + "\\adb\\";
|
||||
string[] line;
|
||||
@@ -45,15 +47,12 @@ namespace AndroidSideloader
|
||||
{
|
||||
InitializeComponent();
|
||||
//calling the design to hide the pannels until onclick
|
||||
customizeDesign();
|
||||
CustomizeDesign();
|
||||
|
||||
|
||||
Timer99.Tick += Timer99_Tick; // don't freeze the ui
|
||||
Timer99.Interval = new TimeSpan(0, 0, 0, 0, 1024);
|
||||
Timer99.IsEnabled = true;
|
||||
Timer99.Stop();
|
||||
}
|
||||
|
||||
public void changeTitle(string txt)
|
||||
public void ChangeTitle(string txt)
|
||||
{
|
||||
if (this.InvokeRequired)
|
||||
this.Invoke(new Action(() => this.Text = txt));
|
||||
@@ -62,25 +61,14 @@ namespace AndroidSideloader
|
||||
}
|
||||
|
||||
//adding the styling to the form
|
||||
private void customizeDesign()
|
||||
private void CustomizeDesign()
|
||||
{
|
||||
sideloadContainer.Visible = false;
|
||||
backupContainer.Visible = false;
|
||||
}
|
||||
|
||||
private void hideSubMenu()
|
||||
{
|
||||
if (sideloadContainer.Visible == true)
|
||||
{
|
||||
sideloadContainer.Visible = false;
|
||||
}
|
||||
if (backupContainer.Visible == true)
|
||||
{
|
||||
backupContainer.Visible = false;
|
||||
}
|
||||
}
|
||||
//does the fancy stuff
|
||||
private void showSubMenu(Panel subMenu)
|
||||
private void ShowSubMenu(Panel subMenu)
|
||||
{
|
||||
if (subMenu.Visible == false)
|
||||
{
|
||||
@@ -92,7 +80,7 @@ namespace AndroidSideloader
|
||||
}
|
||||
}
|
||||
|
||||
public void changeStyle(int style)
|
||||
public void ChangeStyle(int style)
|
||||
{
|
||||
if (style==1)
|
||||
{
|
||||
@@ -120,11 +108,15 @@ namespace AndroidSideloader
|
||||
|
||||
}
|
||||
|
||||
public void runAdbCommand(string command)
|
||||
public void RunAdbCommand(string command, bool changeTitle = true)
|
||||
{
|
||||
changeStyle(1);
|
||||
oldTitle = this.Text;
|
||||
changeTitle("Rookie's Sideloader | Running command " + command);
|
||||
ChangeStyle(1);
|
||||
|
||||
if (changeTitle==true)
|
||||
{
|
||||
oldTitle = this.Text;
|
||||
ChangeTitle("Rookie's Sideloader | Running command " + command);
|
||||
}
|
||||
|
||||
Process cmd = new Process();
|
||||
cmd.StartInfo.FileName = Environment.CurrentDirectory + "\\adb\\adb.exe";
|
||||
@@ -149,15 +141,27 @@ namespace AndroidSideloader
|
||||
sw.Close();
|
||||
line = allText.Split('\n');
|
||||
|
||||
changeTitle(oldTitle);
|
||||
changeStyle(0);
|
||||
if (changeTitle == true)
|
||||
ChangeTitle(oldTitle);
|
||||
ChangeStyle(0);
|
||||
}
|
||||
|
||||
private void sideload(string path)
|
||||
void AprilPrank()
|
||||
{
|
||||
if (is1April)
|
||||
{
|
||||
ImageForm Form = new ImageForm();
|
||||
Form.Show();
|
||||
this.Invoke(() => { this.Hide(); });
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
private void Sideload(string path)
|
||||
{
|
||||
Thread t1 = new Thread(() =>
|
||||
{
|
||||
runAdbCommand("install -g -d -r " + '"' + path + '"');
|
||||
RunAdbCommand("install -g -d -r " + '"' + path + '"');
|
||||
});
|
||||
t1.IsBackground = true;
|
||||
t1.Start();
|
||||
@@ -177,19 +181,22 @@ namespace AndroidSideloader
|
||||
else
|
||||
return;
|
||||
}
|
||||
AprilPrank();
|
||||
await Task.Run(() => Sideload(path));
|
||||
|
||||
await Task.Run(() => sideload(path));
|
||||
|
||||
notify(allText);
|
||||
if (!is1April)
|
||||
notify(allText);
|
||||
}
|
||||
|
||||
private void devicesbutton_Click(object sender, EventArgs e)
|
||||
{
|
||||
runAdbCommand("devices");
|
||||
RunAdbCommand("devices");
|
||||
|
||||
changeTitlebarToDevice();
|
||||
ChangeTitlebarToDevice();
|
||||
|
||||
notify(allText);
|
||||
|
||||
showAvailableSpace();
|
||||
}
|
||||
|
||||
public static void notify(string message)
|
||||
@@ -205,9 +212,9 @@ namespace AndroidSideloader
|
||||
|
||||
public void ExtractFile(string sourceArchive, string destination)
|
||||
{
|
||||
changeStyle(1);
|
||||
ChangeStyle(1);
|
||||
oldTitle = this.Text;
|
||||
changeTitle("Rookie's Sideloader | Extracting archive " + sourceArchive);
|
||||
ChangeTitle("Rookie's Sideloader | Extracting archive " + sourceArchive);
|
||||
string zPath = "7z.exe"; //add to proj and set CopyToOuputDir
|
||||
ProcessStartInfo pro = new ProcessStartInfo();
|
||||
pro.WindowStyle = ProcessWindowStyle.Hidden;
|
||||
@@ -215,15 +222,15 @@ namespace AndroidSideloader
|
||||
pro.Arguments = string.Format("x \"{0}\" -y -o\"{1}\"", sourceArchive, destination);
|
||||
Process x = Process.Start(pro);
|
||||
x.WaitForExit();
|
||||
changeStyle(0);
|
||||
changeTitle(oldTitle);
|
||||
ChangeStyle(0);
|
||||
ChangeTitle(oldTitle);
|
||||
}
|
||||
|
||||
private void obbcopy(string obbPath)
|
||||
{
|
||||
Thread t1 = new Thread(() =>
|
||||
{
|
||||
runAdbCommand("push " + '"' + obbPath + '"' + " /sdcard/Android/obb");
|
||||
RunAdbCommand("push " + '"' + obbPath + '"' + " /sdcard/Android/obb");
|
||||
});
|
||||
t1.IsBackground = true;
|
||||
t1.Start();
|
||||
@@ -249,7 +256,7 @@ namespace AndroidSideloader
|
||||
notify(allText);
|
||||
}
|
||||
|
||||
private void changeTitlebarToDevice()
|
||||
private void ChangeTitlebarToDevice()
|
||||
{
|
||||
if (line[1].Length > 1)
|
||||
this.Text = "Rookie's Sideloader | Device Connected with ID | " + line[1].Replace("device", "");
|
||||
@@ -265,6 +272,9 @@ namespace AndroidSideloader
|
||||
ServicePointManager.Expect100Continue = true;
|
||||
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
|
||||
|
||||
if (!File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\warning.png"))
|
||||
client.DownloadFile("https://github.com/nerdunit/androidsideloader/raw/master/secret", Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\warning.png");
|
||||
|
||||
if (!File.Exists(Environment.CurrentDirectory + "\\7z.exe"))
|
||||
{
|
||||
client.DownloadFile("https://github.com/nerdunit/androidsideloader/raw/master/7z.exe", "7z.exe");
|
||||
@@ -318,13 +328,89 @@ namespace AndroidSideloader
|
||||
}
|
||||
}
|
||||
}
|
||||
int TimerMs = 1024;
|
||||
|
||||
bool isDonator = false;
|
||||
string donatorName = "";
|
||||
void SetTimerSpeed()
|
||||
{
|
||||
var donators = client.GetStringAsync("https://raw.githubusercontent.com/nerdunit/androidsideloader/master/donators.txt").Result.Split('\n');
|
||||
|
||||
foreach (string line in donators)
|
||||
{
|
||||
if (line.Contains(HWID))
|
||||
{ /*line.Split(';')
|
||||
* [0] is HWID
|
||||
* [1] is Time in ms when donatebutton should refresh
|
||||
* [2] is name
|
||||
*/
|
||||
|
||||
isDonator = true;
|
||||
TimerMs = Int32.Parse(line.Split(';')[1]);
|
||||
try { donatorName = line.Split(';')[2]; } catch { }
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void showAvailableSpace()
|
||||
{
|
||||
RunAdbCommand("shell df", false);
|
||||
|
||||
long totalSize = 0;
|
||||
|
||||
long usedSize = 0;
|
||||
|
||||
long freeSize = 0;
|
||||
|
||||
foreach (string currLine in line)
|
||||
{
|
||||
if (currLine.StartsWith("/data/media"))
|
||||
{
|
||||
var foo = currLine.Split(' ');
|
||||
int i = 0;
|
||||
foreach (string curr in foo)
|
||||
{
|
||||
if (curr.Length > 1)
|
||||
{
|
||||
switch (i)
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
totalSize = Int64.Parse(curr) / 1000;
|
||||
break;
|
||||
case 2:
|
||||
usedSize = Int64.Parse(curr) / 1000;
|
||||
break;
|
||||
case 3:
|
||||
freeSize = Int64.Parse(curr) / 1000;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (totalSize != 0)
|
||||
diskLabel.Text = $"Total space: {String.Format("{0:0.00}", (double)totalSize / 1000)}GB Used space: {String.Format("{0:0.00}", (double)usedSize / 1000)}GB Free space: {String.Format("{0:0.00}", (double)freeSize / 1000)}GB";
|
||||
|
||||
}
|
||||
|
||||
//A lot of stuff to do when the form loads, centers the program,
|
||||
private void Form1_Load(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
this.CenterToScreen();
|
||||
|
||||
SetTimerSpeed();
|
||||
|
||||
etaLabel.Text = "";
|
||||
speedLabel.Text = "";
|
||||
diskLabel.Text = "";
|
||||
|
||||
if (File.Exists(debugPath))
|
||||
File.Delete(debugPath); //clear debug.log each start
|
||||
|
||||
@@ -334,10 +420,12 @@ namespace AndroidSideloader
|
||||
if (Properties.Settings.Default.checkForUpdates == true)
|
||||
checkForUpdate();
|
||||
|
||||
runAdbCommand("devices"); //check if there is any device connected
|
||||
changeTitlebarToDevice();
|
||||
RunAdbCommand("devices"); //check if there is any device connected
|
||||
|
||||
ChangeTitlebarToDevice();
|
||||
|
||||
if (line[1].Length > 1) //check for device connected
|
||||
{
|
||||
if (Properties.Settings.Default.firstRun == true)
|
||||
{
|
||||
UsernameForm.createUserJson(randomString(16));
|
||||
@@ -346,12 +434,14 @@ namespace AndroidSideloader
|
||||
Properties.Settings.Default.firstRun = false;
|
||||
Properties.Settings.Default.Save();
|
||||
}
|
||||
showAvailableSpace();
|
||||
}
|
||||
|
||||
intToolTips();
|
||||
|
||||
listappsBtn();
|
||||
}
|
||||
string localVersion = "1.3";
|
||||
readonly string localVersion = "1.6";
|
||||
void intToolTips()
|
||||
{
|
||||
ToolTip ListDevicesToolTip = new ToolTip();
|
||||
@@ -372,6 +462,11 @@ namespace AndroidSideloader
|
||||
uninstallAppToolTip.SetToolTip(this.uninstallAppButton, "Uninstalls selected app");
|
||||
ToolTip userjsonToolTip = new ToolTip();
|
||||
userjsonToolTip.SetToolTip(this.userjsonButton, "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 checkForUpdate()
|
||||
{
|
||||
@@ -421,7 +516,7 @@ namespace AndroidSideloader
|
||||
MessageBox.Show("Action Started, may take some time...");
|
||||
Thread t1 = new Thread(() =>
|
||||
{
|
||||
runAdbCommand("pull " + '"' + "/sdcard/Android/data" + '"');
|
||||
RunAdbCommand("pull " + '"' + "/sdcard/Android/data" + '"');
|
||||
});
|
||||
t1.IsBackground = true;
|
||||
t1.Start();
|
||||
@@ -449,7 +544,7 @@ namespace AndroidSideloader
|
||||
{
|
||||
Thread t1 = new Thread(() =>
|
||||
{
|
||||
runAdbCommand("push " + '"' + obbPath + '"' + " /sdcard/Android/");
|
||||
RunAdbCommand("push " + '"' + obbPath + '"' + " /sdcard/Android/");
|
||||
});
|
||||
t1.IsBackground = true;
|
||||
t1.Start();
|
||||
@@ -479,14 +574,14 @@ namespace AndroidSideloader
|
||||
{
|
||||
Thread t1 = new Thread(() =>
|
||||
{
|
||||
runAdbCommand("shell pm list packages");
|
||||
RunAdbCommand("shell pm list packages");
|
||||
});
|
||||
t1.IsBackground = true;
|
||||
t1.Start();
|
||||
t1.Join();
|
||||
}
|
||||
|
||||
public string[] getGames()
|
||||
public async Task<string[]> getGames()
|
||||
{
|
||||
string command = "cat \"VRP:Quest Games/APK_packagenames.txt\" --config .\\a";
|
||||
|
||||
@@ -506,11 +601,12 @@ namespace AndroidSideloader
|
||||
var games = cmd.StandardOutput.ReadToEnd().Split('\n');
|
||||
cmd.WaitForExit();
|
||||
return games;
|
||||
|
||||
}
|
||||
|
||||
private async void listappsBtn()
|
||||
{
|
||||
var games = getGames();
|
||||
var games = getGames().Result;
|
||||
|
||||
allText = "";
|
||||
|
||||
@@ -551,7 +647,7 @@ namespace AndroidSideloader
|
||||
{
|
||||
Thread t1 = new Thread(() =>
|
||||
{
|
||||
runAdbCommand("shell pm path " + package);
|
||||
RunAdbCommand("shell pm path " + package);
|
||||
});
|
||||
t1.IsBackground = true;
|
||||
t1.Start();
|
||||
@@ -560,13 +656,13 @@ namespace AndroidSideloader
|
||||
|
||||
private void pullapk(string apkPath)
|
||||
{
|
||||
Thread t2 = new Thread(() =>
|
||||
Thread t1 = new Thread(() =>
|
||||
{
|
||||
runAdbCommand("pull " + apkPath);
|
||||
RunAdbCommand("pull " + apkPath);
|
||||
});
|
||||
t2.IsBackground = true;
|
||||
t2.Start();
|
||||
t2.Join();
|
||||
t1.IsBackground = true;
|
||||
t1.Start();
|
||||
t1.Join();
|
||||
}
|
||||
|
||||
private async void getApkButton_Click(object sender, EventArgs e)
|
||||
@@ -579,7 +675,7 @@ namespace AndroidSideloader
|
||||
return;
|
||||
}
|
||||
|
||||
string[] games = getGames();
|
||||
var games = getGames().Result;
|
||||
|
||||
string packageName = m_combo.SelectedItem.ToString();
|
||||
|
||||
@@ -609,7 +705,6 @@ namespace AndroidSideloader
|
||||
if (File.Exists(Environment.CurrentDirectory + "\\" + packageName + ".apk"))
|
||||
File.Delete(Environment.CurrentDirectory + "\\" + packageName + ".apk");
|
||||
|
||||
|
||||
File.Move(Environment.CurrentDirectory + "\\adb\\" + currApkPath, Environment.CurrentDirectory + "\\" + packageName + ".apk");
|
||||
|
||||
notify(allText);
|
||||
@@ -619,7 +714,7 @@ namespace AndroidSideloader
|
||||
{
|
||||
Thread t1 = new Thread(() =>
|
||||
{
|
||||
runAdbCommand("shell am start -n " + launchPackageTextBox.Text);
|
||||
RunAdbCommand("shell am start -n " + getpackagename());
|
||||
});
|
||||
t1.IsBackground = true;
|
||||
t1.Start();
|
||||
@@ -629,7 +724,7 @@ namespace AndroidSideloader
|
||||
async Task<string> getpackagename()
|
||||
#pragma warning restore CS1998 // Async method lacks 'await' operators and will run synchronously
|
||||
{
|
||||
string[] games = getGames();
|
||||
var games = getGames().Result;
|
||||
|
||||
string packageName = m_combo.SelectedItem.ToString();
|
||||
|
||||
@@ -689,7 +784,7 @@ namespace AndroidSideloader
|
||||
{
|
||||
Thread t1 = new Thread(() =>
|
||||
{
|
||||
runAdbCommand("shell rm -r " + path);
|
||||
RunAdbCommand("shell rm -r " + path);
|
||||
});
|
||||
t1.IsBackground = true;
|
||||
t1.Start();
|
||||
@@ -700,7 +795,8 @@ namespace AndroidSideloader
|
||||
{
|
||||
Thread t1 = new Thread(() =>
|
||||
{
|
||||
runAdbCommand("shell pm uninstall -k --user 0 " + package);
|
||||
RunAdbCommand("shell pm uninstall -k --user 0 " + package);
|
||||
RunAdbCommand("shell pm uninstall" + package);
|
||||
});
|
||||
t1.IsBackground = true;
|
||||
t1.Start();
|
||||
@@ -731,7 +827,7 @@ namespace AndroidSideloader
|
||||
string extension = Path.GetExtension(files[i]);
|
||||
if (extension == ".apk")
|
||||
{
|
||||
await Task.Run(() => sideload(files[i]));
|
||||
await Task.Run(() => Sideload(files[i]));
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < childDirectories.Length; i++)
|
||||
@@ -755,9 +851,6 @@ namespace AndroidSideloader
|
||||
|
||||
private void copyBulkObbButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
//bool result = experimentalFeatureAccept("THIS IS AN EXPERIMENTAL FEATURE AND MIGHT NOT WORK, DO YOU WANT TO CONTINUE?");
|
||||
//if (result == false)
|
||||
// return;
|
||||
|
||||
var dialog = new FolderSelectDialog
|
||||
{
|
||||
@@ -793,22 +886,22 @@ namespace AndroidSideloader
|
||||
}
|
||||
}
|
||||
|
||||
public void checkHashFunc(string file)
|
||||
#pragma warning disable CS1998 // Async method lacks 'await' operators and will run synchronously
|
||||
public async Task<string> checkHashFunc(string file)
|
||||
#pragma warning restore CS1998 // Async method lacks 'await' operators and will run synchronously
|
||||
{
|
||||
using (FileStream stream = File.OpenRead(file))
|
||||
using (var md5 = MD5.Create())
|
||||
{
|
||||
using (var md5 = MD5.Create())
|
||||
using (var stream = File.OpenRead(file))
|
||||
{
|
||||
using (var hashStream = File.OpenRead(file))
|
||||
{
|
||||
result = BitConverter.ToString(md5.ComputeHash(hashStream)).Replace("-", "").ToLowerInvariant();
|
||||
}
|
||||
return BitConverter.ToString(md5.ComputeHash(stream)).Replace("-", "").ToLower();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private async void Form1_DragDrop(object sender, DragEventArgs e)
|
||||
{
|
||||
AprilPrank();
|
||||
bool ok = false;
|
||||
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
|
||||
foreach (string file in files)
|
||||
@@ -817,7 +910,7 @@ namespace AndroidSideloader
|
||||
if (extension == ".apk")
|
||||
{
|
||||
ok = true;
|
||||
await Task.Run(() => sideload(file));
|
||||
await Task.Run(() => Sideload(file));
|
||||
}
|
||||
else if (Directory.Exists(file))
|
||||
{
|
||||
@@ -826,7 +919,7 @@ namespace AndroidSideloader
|
||||
}
|
||||
}
|
||||
DragDropLbl.Visible = false;
|
||||
if (ok)
|
||||
if (ok && !is1April)
|
||||
notify("Done");
|
||||
}
|
||||
string oldTitle;
|
||||
@@ -836,44 +929,64 @@ namespace AndroidSideloader
|
||||
oldTitle = this.Text;
|
||||
DragDropLbl.Visible = true;
|
||||
DragDropLbl.Text = "Drag apk or obb";
|
||||
changeTitle(DragDropLbl.Text);
|
||||
ChangeTitle(DragDropLbl.Text);
|
||||
}
|
||||
|
||||
private void Form1_DragLeave(object sender, EventArgs e)
|
||||
{
|
||||
changeTitle(oldTitle);
|
||||
ChangeTitle(oldTitle);
|
||||
DragDropLbl.Visible = false;
|
||||
}
|
||||
|
||||
private void Form1_Shown(object sender, EventArgs e)
|
||||
{
|
||||
Timer99.Start();
|
||||
|
||||
|
||||
Debug.WriteLine(TimerMs);
|
||||
Timer99.Tick += Timer99_Tick; // don't freeze the ui
|
||||
Timer99.Interval = new TimeSpan(0, 0, 0, 0, TimerMs);
|
||||
if (TimerMs != 0)
|
||||
Timer99.Start();
|
||||
|
||||
DateTime today = DateTime.Today;
|
||||
|
||||
if (today.Month == 4 && today.Day == 1)
|
||||
is1April = true;
|
||||
|
||||
initGames();
|
||||
}
|
||||
void initGames()
|
||||
string runRcloneCommand(string command)
|
||||
{
|
||||
|
||||
gamesComboBox.Invoke(() => { gamesComboBox.Items.Clear(); });
|
||||
|
||||
string command = "lsf --config .\\a --dirs-only \"VRP:Quest Games\" --drive-acknowledge-abuse";
|
||||
|
||||
wait = true;
|
||||
Process cmd = new Process();
|
||||
cmd.StartInfo.StandardOutputEncoding = Encoding.UTF8;
|
||||
|
||||
cmd.StartInfo.FileName = Environment.CurrentDirectory + "\\rclone\\rclone.exe";
|
||||
cmd.StartInfo.Arguments = command;
|
||||
cmd.StartInfo.RedirectStandardInput = true;
|
||||
cmd.StartInfo.RedirectStandardOutput = true;
|
||||
cmd.StartInfo.WorkingDirectory = Environment.CurrentDirectory + "\\rclone";
|
||||
cmd.StartInfo.CreateNoWindow = true;
|
||||
if (debugMode == true)
|
||||
cmd.StartInfo.CreateNoWindow = false;
|
||||
cmd.StartInfo.UseShellExecute = false;
|
||||
cmd.Start();
|
||||
//cmd.StandardInput.WriteLine("chcp 65001");
|
||||
|
||||
cmd.StandardInput.WriteLine(command);
|
||||
cmd.StandardInput.Flush();
|
||||
cmd.StandardInput.Close();
|
||||
var games = cmd.StandardOutput.ReadToEnd().Split('\n');
|
||||
|
||||
var output = cmd.StandardOutput.ReadToEnd();
|
||||
cmd.WaitForExit();
|
||||
wait = false;
|
||||
return output;
|
||||
}
|
||||
void initGames()
|
||||
{
|
||||
|
||||
gamesComboBox.Invoke(() => { gamesComboBox.Items.Clear(); });
|
||||
|
||||
var games = runRcloneCommand("lsf --config .\\a --dirs-only \"VRP:Quest Games\" --drive-acknowledge-abuse").Split('\n');
|
||||
|
||||
|
||||
Debug.WriteLine("Loaded following games: ");
|
||||
foreach (string game in games)
|
||||
@@ -889,12 +1002,12 @@ namespace AndroidSideloader
|
||||
string wrDelimiter = "-------";
|
||||
private void sideloadContainer_Click(object sender, EventArgs e)
|
||||
{
|
||||
showSubMenu(sideloadContainer);
|
||||
ShowSubMenu(sideloadContainer);
|
||||
}
|
||||
|
||||
private void backupDrop_Click(object sender, EventArgs e)
|
||||
{
|
||||
showSubMenu(backupContainer);
|
||||
ShowSubMenu(backupContainer);
|
||||
}
|
||||
|
||||
private void settingsButton_Click(object sender, EventArgs e)
|
||||
@@ -905,7 +1018,12 @@ namespace AndroidSideloader
|
||||
|
||||
private void aboutBtn_Click(object sender, EventArgs e)
|
||||
{
|
||||
string about = $@"Finally {localVersion}
|
||||
string donatorMsg = "";
|
||||
|
||||
if (isDonator)
|
||||
donatorMsg = $"Thank you {donatorName} for donating! :D";
|
||||
|
||||
string about = $@"Finally {localVersion} {donatorMsg}
|
||||
- Software orignally coded by rookie.lol
|
||||
- Thanks to pmow for all of his work, including rclone, wonka and other projects
|
||||
- Thanks to flow for being friendly and helping every one
|
||||
@@ -917,7 +1035,10 @@ namespace AndroidSideloader
|
||||
- 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 to https://github.com/davcs86 for the hwid lib
|
||||
- The icon of the app contains an icon made by icon8.com";
|
||||
|
||||
|
||||
FlexibleMessageBox.Show(about);
|
||||
}
|
||||
|
||||
@@ -938,15 +1059,15 @@ namespace AndroidSideloader
|
||||
return;
|
||||
}
|
||||
oldTitle = this.Text;
|
||||
changeTitle("Checking hash of file " + file);
|
||||
changeStyle(1);
|
||||
ChangeTitle("Checking hash of file " + file);
|
||||
ChangeStyle(1);
|
||||
|
||||
await Task.Run(() => checkHashFunc(file));
|
||||
Clipboard.SetText(result);
|
||||
string hash = await checkHashFunc(file);
|
||||
Clipboard.SetText(hash);
|
||||
|
||||
changeStyle(0);
|
||||
changeTitle(oldTitle);
|
||||
FlexibleMessageBox.Show("The selected file hash is " + result + " and it was copied to clipboard");
|
||||
ChangeStyle(0);
|
||||
ChangeTitle(oldTitle);
|
||||
FlexibleMessageBox.Show("The selected file hash is " + hash + " and it was copied to clipboard");
|
||||
}
|
||||
|
||||
private void userjsonButton_Click(object sender, EventArgs e)
|
||||
@@ -954,18 +1075,18 @@ namespace AndroidSideloader
|
||||
UsernameForm form = new UsernameForm();
|
||||
form.Show();
|
||||
}
|
||||
|
||||
public static readonly string HWID = UHWID.UHWIDEngine.SimpleUid;
|
||||
private void donateButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
Clipboard.SetText("rookie.lol#0001");
|
||||
notify("Ask rookie.lol#0001 or pmow#1706 where you can donate");
|
||||
notify("Ask rookie.lol#0001 or pmow#1706 where you can donate, hwid: " + HWID);
|
||||
}
|
||||
|
||||
private async void listApkButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
changeStyle(1);
|
||||
ChangeStyle(1);
|
||||
await Task.Run(() => initGames());
|
||||
changeStyle(0);
|
||||
ChangeStyle(0);
|
||||
|
||||
listappsBtn();
|
||||
}
|
||||
@@ -992,94 +1113,131 @@ namespace AndroidSideloader
|
||||
|
||||
private static readonly HttpClient client = new HttpClient();
|
||||
|
||||
bool updatedConfig = false;
|
||||
async Task updateConfig()
|
||||
{
|
||||
updatedConfig = true;
|
||||
//string rcloneConfigPath = Environment.CurrentDirectory + "\\rclone\\a";
|
||||
|
||||
//string localHash = await checkHashFunc(rcloneConfigPath);
|
||||
|
||||
//string hash = runRcloneCommand("md5sum --config .\\a \"VRP:Quest Homebrew/Sideloading Methods/1. Rookie Sideloader - VRP Edition/a\"");
|
||||
//hash = hash.Substring(0, hash.LastIndexOf(" ")); //remove stuff after hash
|
||||
|
||||
//Debug.WriteLine("The local file hash is " + localHash + " and the current a file hash is " + hash);
|
||||
|
||||
//if (!string.Equals(localHash, hash))
|
||||
//{
|
||||
runRcloneCommand(string.Format("copy \"VRP:Quest Homebrew/Sideloading Methods/1. Rookie Sideloader - VRP Edition/a\" \"{0}\" --config .\\a", Environment.CurrentDirectory));
|
||||
File.Delete(Environment.CurrentDirectory + "\\rclone\\a");
|
||||
File.Move(Environment.CurrentDirectory + "\\a", Environment.CurrentDirectory + "\\rclone\\a");
|
||||
//}
|
||||
}
|
||||
private async void downloadInstallGameButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (updatedConfig == false && Properties.Settings.Default.autoUpdateConfig == true) //check for config only once per program open and if setting enabled
|
||||
{
|
||||
ChangeTitle("Rookie's Sideloader | Updating rclone config");
|
||||
await Task.Run(() => updateConfig());
|
||||
}
|
||||
|
||||
string gameName = gamesComboBox.SelectedItem.ToString();
|
||||
|
||||
Debug.WriteLine(runRcloneCommand($"size \"VRP:Quest Games/{gameName}\" --config .\\a --json"));
|
||||
|
||||
dynamic results = JsonConvert.DeserializeObject<dynamic>(runRcloneCommand($"size \"VRP:Quest Games/{gameName}\" --config .\\a --json"));
|
||||
|
||||
long gameSize = results.bytes.ToObject<long>();
|
||||
|
||||
DialogResult dialogResult = FlexibleMessageBox.Show($"Are you sure you want to download {gameName}? it has a size of {String.Format("{0:0.00}", (double)gameSize / 1000000)} MB" , "Are you sure?", MessageBoxButtons.YesNo);
|
||||
if (dialogResult != DialogResult.Yes)
|
||||
return;
|
||||
|
||||
int apkNumber = 0;
|
||||
int obbNumber = 0;
|
||||
|
||||
string gameName = gamesComboBox.SelectedItem.ToString();
|
||||
|
||||
changeTitle("Rookie's Sideloader | Downloading game " + gameName);
|
||||
|
||||
Directory.CreateDirectory(Environment.CurrentDirectory + "\\" + gameName);
|
||||
string command = "copy --config .\\a \"VRP:Quest Games/" + gamesComboBox.SelectedItem.ToString() + "\" \"" + Environment.CurrentDirectory + "\\" + gameName + "\" --progress --drive-acknowledge-abuse --rc";
|
||||
|
||||
Process cmd = new Process();
|
||||
string[] games;
|
||||
|
||||
Thread t1 = new Thread(() =>
|
||||
{
|
||||
wait = true;
|
||||
|
||||
cmd.StartInfo.FileName = Environment.CurrentDirectory + "\\rclone\\rclone.exe";
|
||||
cmd.StartInfo.Arguments = command;
|
||||
cmd.StartInfo.RedirectStandardInput = true;
|
||||
cmd.StartInfo.RedirectStandardOutput = true;
|
||||
cmd.StartInfo.WorkingDirectory = Environment.CurrentDirectory + "\\rclone";
|
||||
cmd.StartInfo.CreateNoWindow = true;
|
||||
if (debugMode == true)
|
||||
cmd.StartInfo.CreateNoWindow = false;
|
||||
cmd.StartInfo.UseShellExecute = false;
|
||||
cmd.Start();
|
||||
|
||||
cmd.StandardInput.WriteLine(command);
|
||||
cmd.StandardInput.Flush();
|
||||
cmd.StandardInput.Close();
|
||||
|
||||
var games = cmd.StandardOutput.ReadToEnd().Split('\n');
|
||||
cmd.WaitForExit();
|
||||
wait = false;
|
||||
games = runRcloneCommand("copy --config .\\a \"VRP:Quest Games/" + gameName + "\" \"" + Environment.CurrentDirectory + "\\" + gameName + "\" --progress --drive-acknowledge-abuse --rc").Split('\n');
|
||||
});
|
||||
t1.IsBackground = true;
|
||||
t1.Start();
|
||||
|
||||
ChangeTitle("Rookie's Sideloader | Pushing user.json");
|
||||
|
||||
UsernameForm.createUserJson(randomString(16));
|
||||
|
||||
UsernameForm.pushUserJson();
|
||||
|
||||
UsernameForm.deleteUserJson();
|
||||
|
||||
ChangeTitle("Rookie's Sideloader | Downloading game " + gameName);
|
||||
|
||||
await Task.Delay(5000);
|
||||
|
||||
int i = 0;
|
||||
while (wait)
|
||||
{
|
||||
HttpResponseMessage response = await client.PostAsync("http://127.0.0.1:5572/core/stats", null);
|
||||
|
||||
string foo = await response.Content.ReadAsStringAsync();
|
||||
|
||||
//Debug.WriteLine("RESP CONTENT " + foo);
|
||||
dynamic results = JsonConvert.DeserializeObject<dynamic>(foo);
|
||||
|
||||
float downloadSpeed = results.speed.ToObject<float>();
|
||||
|
||||
long allSize = 0;
|
||||
|
||||
long downloaded = 0;
|
||||
|
||||
try
|
||||
{
|
||||
HttpResponseMessage response = await client.PostAsync("http://127.0.0.1:5572/core/stats", null);
|
||||
|
||||
string foo = await response.Content.ReadAsStringAsync();
|
||||
|
||||
Debug.WriteLine("RESP CONTENT " + foo);
|
||||
results = JsonConvert.DeserializeObject<dynamic>(foo);
|
||||
|
||||
float downloadSpeed = results.speed.ToObject<float>();
|
||||
|
||||
long allSize = 0;
|
||||
|
||||
long downloaded = 0;
|
||||
|
||||
|
||||
foreach (var obj in results.transferring)
|
||||
{
|
||||
allSize += obj["size"].ToObject<long>();
|
||||
downloaded += obj["bytes"].ToObject<long>();
|
||||
}
|
||||
allSize /= 1000;
|
||||
downloaded /= 1000;
|
||||
allSize /= 1000000;
|
||||
downloaded /= 1000000;
|
||||
Debug.WriteLine("Allsize: " + allSize + "\nDownloaded: " + downloaded + "\nValue: " + (((double)downloaded / (double)allSize) * 100));
|
||||
try { progressBar.Value = Convert.ToInt32((((double)downloaded / (double)allSize) * 100)); } catch { }
|
||||
|
||||
i++;
|
||||
downloadSpeed /= 1000000;
|
||||
if (i == 4)
|
||||
{
|
||||
i = 0;
|
||||
float seconds = (allSize - downloaded) / downloadSpeed;
|
||||
|
||||
TimeSpan time = TimeSpan.FromSeconds(seconds);
|
||||
|
||||
etaLabel.Text = "ETA: " + time.ToString(@"hh\:mm\:ss") + " left";
|
||||
}
|
||||
|
||||
speedLabel.Text = "DLS: " + String.Format("{0:0.00}", downloadSpeed) + " mbps";
|
||||
}
|
||||
catch { }
|
||||
changeTitle("Rookie's Sideloader | Downloading " + gameName + " | Speed " + String.Format("{0:0.00}", downloadSpeed / 1000000) + " mbps");
|
||||
|
||||
await Task.Delay(1000);
|
||||
}
|
||||
|
||||
progressBar.Value = 0;
|
||||
changeTitle("Rookie's Sideloader | Installing game apk " + gameName);
|
||||
|
||||
ChangeTitle("Rookie's Sideloader | Installing game apk " + gameName);
|
||||
etaLabel.Text = "ETA: Done";
|
||||
speedLabel.Text = "DLS: Done";
|
||||
|
||||
AprilPrank();
|
||||
string[] files = Directory.GetFiles(Environment.CurrentDirectory + "\\" + gameName);
|
||||
|
||||
Debug.WriteLine("Game Folder is: " + Environment.CurrentDirectory + "\\" + gameName);
|
||||
|
||||
string output = "";
|
||||
Debug.WriteLine("FILES IN GAME FOLDER: ");
|
||||
foreach (string file in files)
|
||||
{
|
||||
@@ -1087,16 +1245,15 @@ namespace AndroidSideloader
|
||||
string extension = Path.GetExtension(file);
|
||||
if (extension == ".apk")
|
||||
{
|
||||
changeStyle(1);
|
||||
apkNumber++;
|
||||
await Task.Run(() => sideload(file));
|
||||
changeStyle(0);
|
||||
await Task.Run(() => Sideload(file));
|
||||
output += allText;
|
||||
}
|
||||
}
|
||||
|
||||
Debug.WriteLine(wrDelimiter);
|
||||
|
||||
changeTitle("Rookie's Sideloader | Installing game obb " + gameName);
|
||||
ChangeTitle("Rookie's Sideloader | Installing game obb " + gameName);
|
||||
|
||||
string[] folders = Directory.GetDirectories(Environment.CurrentDirectory + "\\" + gameName);
|
||||
|
||||
@@ -1117,36 +1274,28 @@ namespace AndroidSideloader
|
||||
|
||||
if (isObb == true)
|
||||
{
|
||||
changeStyle(1);
|
||||
obbNumber++;
|
||||
await Task.Run(() => obbcopy(folder));
|
||||
changeStyle(0);
|
||||
}
|
||||
}
|
||||
|
||||
if (Properties.Settings.Default.deleteAllAfterInstall)
|
||||
{
|
||||
string oldTitle = this.Text;
|
||||
changeTitle("Rookie's Sideloader | Deleting game files");
|
||||
ChangeTitle("Rookie's Sideloader | Deleting game files");
|
||||
Directory.Delete(Environment.CurrentDirectory + "\\" + gameName, true);
|
||||
changeTitle(oldTitle);
|
||||
}
|
||||
|
||||
notify("Game downloaded and installed " + apkNumber + " apks and " + obbNumber + " obb folders");
|
||||
ChangeTitlebarToDevice();
|
||||
//notify("Game downloaded and installed " + apkNumber + " apks and " + obbNumber + " obb folders");
|
||||
notify($"Apk installation output: {output}\n");
|
||||
//Environment.CurrentDirectory + "\\" + gameName
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void themesbutton_Click(object sender, EventArgs e)
|
||||
{
|
||||
ThemeForm themeform1 = new ThemeForm();
|
||||
themeForm themeform1 = new themeForm();
|
||||
themeform1.Show();
|
||||
}
|
||||
|
||||
private void pictureBox1_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public static class ControlExtensions
|
||||
|
||||
64
ImageForm.Designer.cs
generated
Normal file
64
ImageForm.Designer.cs
generated
Normal file
@@ -0,0 +1,64 @@
|
||||
namespace AndroidSideloader
|
||||
{
|
||||
partial class ImageForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.pictureBox1 = new System.Windows.Forms.PictureBox();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// pictureBox1
|
||||
//
|
||||
this.pictureBox1.Location = new System.Drawing.Point(13, 13);
|
||||
this.pictureBox1.Name = "pictureBox1";
|
||||
this.pictureBox1.Size = new System.Drawing.Size(775, 425);
|
||||
this.pictureBox1.TabIndex = 0;
|
||||
this.pictureBox1.TabStop = false;
|
||||
//
|
||||
// ImageForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(800, 450);
|
||||
this.Controls.Add(this.pictureBox1);
|
||||
this.Name = "ImageForm";
|
||||
this.Text = "ImageForm";
|
||||
this.TopMost = true;
|
||||
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.ImageForm_FormClosing);
|
||||
this.Load += new System.EventHandler(this.ImageForm_Load);
|
||||
this.Shown += new System.EventHandler(this.ImageForm_Shown);
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.PictureBox pictureBox1;
|
||||
}
|
||||
}
|
||||
45
ImageForm.cs
Normal file
45
ImageForm.cs
Normal file
@@ -0,0 +1,45 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace AndroidSideloader
|
||||
{
|
||||
public partial class ImageForm : Form
|
||||
{
|
||||
public ImageForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void ImageForm_Shown(object sender, EventArgs e)
|
||||
{
|
||||
//this.CenterToScreen();
|
||||
this.WindowState = FormWindowState.Maximized;
|
||||
this.MinimumSize = this.Size;
|
||||
this.MaximumSize = this.Size;
|
||||
|
||||
pictureBox1.Size = this.Size;
|
||||
|
||||
pictureBox1.Image = new Bitmap(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\warning.png");
|
||||
pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
|
||||
|
||||
}
|
||||
|
||||
private void ImageForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void ImageForm_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
Form1 obj = (Form1)Application.OpenForms["Form1"];
|
||||
obj.Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
120
ImageForm.resx
Normal file
120
ImageForm.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
@@ -2,7 +2,8 @@
|
||||
|
||||
The icon of the app contains an icon made by icon8.com
|
||||
|
||||
Special thanks to
|
||||
Special thanks to
|
||||
- Everyone who donated!
|
||||
- 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
|
||||
|
||||
29
SettingsForm.Designer.cs
generated
29
SettingsForm.Designer.cs
generated
@@ -34,13 +34,14 @@
|
||||
this.copyMessageToClipboardCheckBox = 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.SuspendLayout();
|
||||
//
|
||||
// checkForUpdatesCheckBox
|
||||
//
|
||||
this.checkForUpdatesCheckBox.AutoSize = true;
|
||||
this.checkForUpdatesCheckBox.Location = new System.Drawing.Point(17, 16);
|
||||
this.checkForUpdatesCheckBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.checkForUpdatesCheckBox.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.checkForUpdatesCheckBox.Name = "checkForUpdatesCheckBox";
|
||||
this.checkForUpdatesCheckBox.Size = new System.Drawing.Size(145, 21);
|
||||
this.checkForUpdatesCheckBox.TabIndex = 0;
|
||||
@@ -53,7 +54,7 @@
|
||||
this.applyButton.BackColor = System.Drawing.Color.White;
|
||||
this.applyButton.ForeColor = System.Drawing.Color.Black;
|
||||
this.applyButton.Location = new System.Drawing.Point(476, 225);
|
||||
this.applyButton.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.applyButton.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.applyButton.Name = "applyButton";
|
||||
this.applyButton.Size = new System.Drawing.Size(100, 28);
|
||||
this.applyButton.TabIndex = 5;
|
||||
@@ -65,7 +66,7 @@
|
||||
//
|
||||
this.enableMessageBoxesCheckBox.AutoSize = true;
|
||||
this.enableMessageBoxesCheckBox.Location = new System.Drawing.Point(17, 44);
|
||||
this.enableMessageBoxesCheckBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.enableMessageBoxesCheckBox.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.enableMessageBoxesCheckBox.Name = "enableMessageBoxesCheckBox";
|
||||
this.enableMessageBoxesCheckBox.Size = new System.Drawing.Size(296, 21);
|
||||
this.enableMessageBoxesCheckBox.TabIndex = 1;
|
||||
@@ -77,7 +78,7 @@
|
||||
//
|
||||
this.copyMessageToClipboardCheckBox.AutoSize = true;
|
||||
this.copyMessageToClipboardCheckBox.Location = new System.Drawing.Point(17, 73);
|
||||
this.copyMessageToClipboardCheckBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.copyMessageToClipboardCheckBox.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.copyMessageToClipboardCheckBox.Name = "copyMessageToClipboardCheckBox";
|
||||
this.copyMessageToClipboardCheckBox.Size = new System.Drawing.Size(201, 21);
|
||||
this.copyMessageToClipboardCheckBox.TabIndex = 2;
|
||||
@@ -90,7 +91,7 @@
|
||||
this.resetSettingsButton.BackColor = System.Drawing.Color.White;
|
||||
this.resetSettingsButton.ForeColor = System.Drawing.Color.Black;
|
||||
this.resetSettingsButton.Location = new System.Drawing.Point(341, 225);
|
||||
this.resetSettingsButton.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.resetSettingsButton.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.resetSettingsButton.Name = "resetSettingsButton";
|
||||
this.resetSettingsButton.Size = new System.Drawing.Size(127, 28);
|
||||
this.resetSettingsButton.TabIndex = 4;
|
||||
@@ -102,7 +103,7 @@
|
||||
//
|
||||
this.deleteAfterInstallCheckBox.AutoSize = true;
|
||||
this.deleteAfterInstallCheckBox.Location = new System.Drawing.Point(17, 102);
|
||||
this.deleteAfterInstallCheckBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.deleteAfterInstallCheckBox.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.deleteAfterInstallCheckBox.Name = "deleteAfterInstallCheckBox";
|
||||
this.deleteAfterInstallCheckBox.Size = new System.Drawing.Size(282, 21);
|
||||
this.deleteAfterInstallCheckBox.TabIndex = 3;
|
||||
@@ -110,12 +111,25 @@
|
||||
this.deleteAfterInstallCheckBox.UseVisualStyleBackColor = true;
|
||||
this.deleteAfterInstallCheckBox.CheckedChanged += new System.EventHandler(this.deleteAfterInstallCheckBox_CheckedChanged);
|
||||
//
|
||||
// updateConfigCheckBox
|
||||
//
|
||||
this.updateConfigCheckBox.AutoSize = true;
|
||||
this.updateConfigCheckBox.Location = new System.Drawing.Point(17, 131);
|
||||
this.updateConfigCheckBox.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.updateConfigCheckBox.Name = "updateConfigCheckBox";
|
||||
this.updateConfigCheckBox.Size = new System.Drawing.Size(204, 21);
|
||||
this.updateConfigCheckBox.TabIndex = 6;
|
||||
this.updateConfigCheckBox.Text = "Update config automatically";
|
||||
this.updateConfigCheckBox.UseVisualStyleBackColor = true;
|
||||
this.updateConfigCheckBox.CheckedChanged += new System.EventHandler(this.updateConfigCheckBox_CheckedChanged);
|
||||
//
|
||||
// SettingsForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.BackColor = global::AndroidSideloader.Properties.Settings.Default.BackColor;
|
||||
this.ClientSize = new System.Drawing.Size(592, 268);
|
||||
this.Controls.Add(this.updateConfigCheckBox);
|
||||
this.Controls.Add(this.deleteAfterInstallCheckBox);
|
||||
this.Controls.Add(this.resetSettingsButton);
|
||||
this.Controls.Add(this.copyMessageToClipboardCheckBox);
|
||||
@@ -124,7 +138,7 @@
|
||||
this.Controls.Add(this.checkForUpdatesCheckBox);
|
||||
this.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "BackColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.ForeColor = System.Drawing.Color.White;
|
||||
this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.Name = "SettingsForm";
|
||||
this.ShowIcon = false;
|
||||
this.Text = "SettingsForm";
|
||||
@@ -143,5 +157,6 @@
|
||||
private System.Windows.Forms.CheckBox copyMessageToClipboardCheckBox;
|
||||
private System.Windows.Forms.Button resetSettingsButton;
|
||||
private System.Windows.Forms.CheckBox deleteAfterInstallCheckBox;
|
||||
private System.Windows.Forms.CheckBox updateConfigCheckBox;
|
||||
}
|
||||
}
|
||||
@@ -32,6 +32,7 @@ namespace AndroidSideloader
|
||||
enableMessageBoxesCheckBox.Checked = Properties.Settings.Default.enableMessageBoxes;
|
||||
copyMessageToClipboardCheckBox.Checked = Properties.Settings.Default.copyMessageToClipboard;
|
||||
deleteAfterInstallCheckBox.Checked = Properties.Settings.Default.deleteAllAfterInstall;
|
||||
updateConfigCheckBox.Checked = Properties.Settings.Default.autoUpdateConfig;
|
||||
}
|
||||
|
||||
void intToolTips()
|
||||
@@ -81,5 +82,10 @@ namespace AndroidSideloader
|
||||
{
|
||||
Properties.Settings.Default.deleteAllAfterInstall = deleteAfterInstallCheckBox.Checked;
|
||||
}
|
||||
|
||||
private void updateConfigCheckBox_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
Properties.Settings.Default.autoUpdateConfig = updateConfigCheckBox.Checked;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
331
ThemeForm.Designer.cs
generated
331
ThemeForm.Designer.cs
generated
@@ -1,6 +1,6 @@
|
||||
namespace AndroidSideloader
|
||||
{
|
||||
partial class ThemeForm
|
||||
partial class themeForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
@@ -28,199 +28,222 @@
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.colorDialog = new System.Windows.Forms.ColorDialog();
|
||||
this.SetBGcolorButton = new System.Windows.Forms.Button();
|
||||
this.SetPanelColorButton = new System.Windows.Forms.Button();
|
||||
this.SetButtonColorButton = new System.Windows.Forms.Button();
|
||||
this.SetComboBoxColorButton = new System.Windows.Forms.Button();
|
||||
this.SetTextBoxColorButton = new System.Windows.Forms.Button();
|
||||
this.SaveSettingsButton = new System.Windows.Forms.Button();
|
||||
this.ResetSettingsButton = new System.Windows.Forms.Button();
|
||||
this.openFileDialog = new System.Windows.Forms.OpenFileDialog();
|
||||
this.SetBGpicButton = new System.Windows.Forms.Button();
|
||||
this.SetFontStyleButton = new System.Windows.Forms.Button();
|
||||
this.fontDialog = new System.Windows.Forms.FontDialog();
|
||||
this.SetFontColorButton = new System.Windows.Forms.Button();
|
||||
this.SetSubBoxColorButton = new System.Windows.Forms.Button();
|
||||
this.colorDialog1 = new System.Windows.Forms.ColorDialog();
|
||||
this.button1 = new System.Windows.Forms.Button();
|
||||
this.button2 = new System.Windows.Forms.Button();
|
||||
this.button4 = new System.Windows.Forms.Button();
|
||||
this.button5 = new System.Windows.Forms.Button();
|
||||
this.button6 = new System.Windows.Forms.Button();
|
||||
this.button7 = new System.Windows.Forms.Button();
|
||||
this.button8 = new System.Windows.Forms.Button();
|
||||
this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
|
||||
this.button9 = new System.Windows.Forms.Button();
|
||||
this.button10 = new System.Windows.Forms.Button();
|
||||
this.fontDialog1 = new System.Windows.Forms.FontDialog();
|
||||
this.button3 = new System.Windows.Forms.Button();
|
||||
this.button11 = new System.Windows.Forms.Button();
|
||||
this.button12 = new System.Windows.Forms.Button();
|
||||
this.button13 = new System.Windows.Forms.Button();
|
||||
this.openThemeDialog = new System.Windows.Forms.OpenFileDialog();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// colorDialog
|
||||
// colorDialog1
|
||||
//
|
||||
this.colorDialog.AnyColor = true;
|
||||
this.colorDialog.FullOpen = true;
|
||||
this.colorDialog1.AnyColor = true;
|
||||
this.colorDialog1.FullOpen = true;
|
||||
//
|
||||
// SetBGcolorButton
|
||||
// button1
|
||||
//
|
||||
this.SetBGcolorButton.Location = new System.Drawing.Point(17, 15);
|
||||
this.SetBGcolorButton.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.SetBGcolorButton.Name = "SetBGcolorButton";
|
||||
this.SetBGcolorButton.Size = new System.Drawing.Size(171, 28);
|
||||
this.SetBGcolorButton.TabIndex = 0;
|
||||
this.SetBGcolorButton.Text = "Set backgorund color";
|
||||
this.SetBGcolorButton.UseVisualStyleBackColor = true;
|
||||
this.SetBGcolorButton.Click += new System.EventHandler(this.SetBGcolorButton_Click);
|
||||
this.button1.Location = new System.Drawing.Point(13, 12);
|
||||
this.button1.Name = "button1";
|
||||
this.button1.Size = new System.Drawing.Size(128, 23);
|
||||
this.button1.TabIndex = 0;
|
||||
this.button1.Text = "Set backgorund color";
|
||||
this.button1.UseVisualStyleBackColor = true;
|
||||
this.button1.Click += new System.EventHandler(this.button1_Click);
|
||||
//
|
||||
// SetPanelColorButton
|
||||
// button2
|
||||
//
|
||||
this.SetPanelColorButton.Location = new System.Drawing.Point(17, 84);
|
||||
this.SetPanelColorButton.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.SetPanelColorButton.Name = "SetPanelColorButton";
|
||||
this.SetPanelColorButton.Size = new System.Drawing.Size(171, 28);
|
||||
this.SetPanelColorButton.TabIndex = 2;
|
||||
this.SetPanelColorButton.Text = "Set panel color";
|
||||
this.SetPanelColorButton.UseVisualStyleBackColor = true;
|
||||
this.SetPanelColorButton.Click += new System.EventHandler(this.SetPanelColorButton_Click);
|
||||
this.button2.Location = new System.Drawing.Point(13, 68);
|
||||
this.button2.Name = "button2";
|
||||
this.button2.Size = new System.Drawing.Size(128, 23);
|
||||
this.button2.TabIndex = 0;
|
||||
this.button2.Text = "Set panel color";
|
||||
this.button2.UseVisualStyleBackColor = true;
|
||||
this.button2.Click += new System.EventHandler(this.button2_Click);
|
||||
//
|
||||
// SetButtonColorButton
|
||||
// button4
|
||||
//
|
||||
this.SetButtonColorButton.Location = new System.Drawing.Point(17, 187);
|
||||
this.SetButtonColorButton.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.SetButtonColorButton.Name = "SetButtonColorButton";
|
||||
this.SetButtonColorButton.Size = new System.Drawing.Size(171, 28);
|
||||
this.SetButtonColorButton.TabIndex = 5;
|
||||
this.SetButtonColorButton.Text = "Set button color";
|
||||
this.SetButtonColorButton.UseVisualStyleBackColor = true;
|
||||
this.SetButtonColorButton.Click += new System.EventHandler(this.SetButtonColorButton_Click);
|
||||
this.button4.Location = new System.Drawing.Point(13, 152);
|
||||
this.button4.Name = "button4";
|
||||
this.button4.Size = new System.Drawing.Size(128, 23);
|
||||
this.button4.TabIndex = 0;
|
||||
this.button4.Text = "Set button color";
|
||||
this.button4.UseVisualStyleBackColor = true;
|
||||
this.button4.Click += new System.EventHandler(this.button4_Click);
|
||||
//
|
||||
// SetComboBoxColorButton
|
||||
// button5
|
||||
//
|
||||
this.SetComboBoxColorButton.Location = new System.Drawing.Point(17, 256);
|
||||
this.SetComboBoxColorButton.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.SetComboBoxColorButton.Name = "SetComboBoxColorButton";
|
||||
this.SetComboBoxColorButton.Size = new System.Drawing.Size(171, 28);
|
||||
this.SetComboBoxColorButton.TabIndex = 7;
|
||||
this.SetComboBoxColorButton.Text = "Set combobox color";
|
||||
this.SetComboBoxColorButton.UseVisualStyleBackColor = true;
|
||||
this.SetComboBoxColorButton.Click += new System.EventHandler(this.SetComboBoxColorButton_Click);
|
||||
this.button5.Location = new System.Drawing.Point(13, 208);
|
||||
this.button5.Name = "button5";
|
||||
this.button5.Size = new System.Drawing.Size(128, 23);
|
||||
this.button5.TabIndex = 0;
|
||||
this.button5.Text = "Set combobox color";
|
||||
this.button5.UseVisualStyleBackColor = true;
|
||||
this.button5.Click += new System.EventHandler(this.button5_Click);
|
||||
//
|
||||
// SetTextBoxColorButton
|
||||
// button6
|
||||
//
|
||||
this.SetTextBoxColorButton.Location = new System.Drawing.Point(17, 290);
|
||||
this.SetTextBoxColorButton.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.SetTextBoxColorButton.Name = "SetTextBoxColorButton";
|
||||
this.SetTextBoxColorButton.Size = new System.Drawing.Size(171, 28);
|
||||
this.SetTextBoxColorButton.TabIndex = 8;
|
||||
this.SetTextBoxColorButton.Text = "Set textbox color";
|
||||
this.SetTextBoxColorButton.UseVisualStyleBackColor = true;
|
||||
this.SetTextBoxColorButton.Click += new System.EventHandler(this.SetTextBoxColorButton_Click);
|
||||
this.button6.Location = new System.Drawing.Point(13, 236);
|
||||
this.button6.Name = "button6";
|
||||
this.button6.Size = new System.Drawing.Size(128, 23);
|
||||
this.button6.TabIndex = 0;
|
||||
this.button6.Text = "Set textbox color";
|
||||
this.button6.UseVisualStyleBackColor = true;
|
||||
this.button6.Click += new System.EventHandler(this.button6_Click);
|
||||
//
|
||||
// SaveSettingsButton
|
||||
// button7
|
||||
//
|
||||
this.SaveSettingsButton.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
|
||||
this.SaveSettingsButton.Location = new System.Drawing.Point(247, 14);
|
||||
this.SaveSettingsButton.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.SaveSettingsButton.Name = "SaveSettingsButton";
|
||||
this.SaveSettingsButton.Size = new System.Drawing.Size(124, 100);
|
||||
this.SaveSettingsButton.TabIndex = 9;
|
||||
this.SaveSettingsButton.Text = "Save Settings";
|
||||
this.SaveSettingsButton.UseVisualStyleBackColor = true;
|
||||
this.SaveSettingsButton.Click += new System.EventHandler(this.SaveSettingsButton_Click);
|
||||
this.button7.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
|
||||
this.button7.Location = new System.Drawing.Point(185, 11);
|
||||
this.button7.Name = "button7";
|
||||
this.button7.Size = new System.Drawing.Size(93, 52);
|
||||
this.button7.TabIndex = 1;
|
||||
this.button7.Text = "Save";
|
||||
this.button7.UseVisualStyleBackColor = true;
|
||||
this.button7.Click += new System.EventHandler(this.button7_Click);
|
||||
//
|
||||
// ResetSettingsButton
|
||||
// button8
|
||||
//
|
||||
this.ResetSettingsButton.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
|
||||
this.ResetSettingsButton.Location = new System.Drawing.Point(247, 121);
|
||||
this.ResetSettingsButton.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.ResetSettingsButton.Name = "ResetSettingsButton";
|
||||
this.ResetSettingsButton.Size = new System.Drawing.Size(124, 98);
|
||||
this.ResetSettingsButton.TabIndex = 10;
|
||||
this.ResetSettingsButton.Text = "Reset Settings";
|
||||
this.ResetSettingsButton.UseVisualStyleBackColor = true;
|
||||
this.ResetSettingsButton.Click += new System.EventHandler(this.ResetSettingsButton_Click);
|
||||
this.button8.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
|
||||
this.button8.Location = new System.Drawing.Point(185, 69);
|
||||
this.button8.Name = "button8";
|
||||
this.button8.Size = new System.Drawing.Size(93, 52);
|
||||
this.button8.TabIndex = 2;
|
||||
this.button8.Text = "Reset";
|
||||
this.button8.UseVisualStyleBackColor = true;
|
||||
this.button8.Click += new System.EventHandler(this.button8_Click);
|
||||
//
|
||||
// openFileDialog
|
||||
// openFileDialog1
|
||||
//
|
||||
this.openFileDialog.Filter = "Images|*.png;*.jpg;*.bmp;*.gif";
|
||||
this.openFileDialog1.Filter = "Images|*.png;*.jpg;*.bmp;*.gif";
|
||||
//
|
||||
// SetBGpicButton
|
||||
// button9
|
||||
//
|
||||
this.SetBGpicButton.Location = new System.Drawing.Point(17, 49);
|
||||
this.SetBGpicButton.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.SetBGpicButton.Name = "SetBGpicButton";
|
||||
this.SetBGpicButton.Size = new System.Drawing.Size(171, 28);
|
||||
this.SetBGpicButton.TabIndex = 1;
|
||||
this.SetBGpicButton.Text = "Set background picture";
|
||||
this.SetBGpicButton.UseVisualStyleBackColor = true;
|
||||
this.SetBGpicButton.Click += new System.EventHandler(this.SetBGpicButton_Click);
|
||||
this.button9.Location = new System.Drawing.Point(13, 40);
|
||||
this.button9.Name = "button9";
|
||||
this.button9.Size = new System.Drawing.Size(128, 23);
|
||||
this.button9.TabIndex = 3;
|
||||
this.button9.Text = "Set background picture";
|
||||
this.button9.UseVisualStyleBackColor = true;
|
||||
this.button9.Click += new System.EventHandler(this.button9_Click);
|
||||
//
|
||||
// SetFontStyleButton
|
||||
// button10
|
||||
//
|
||||
this.SetFontStyleButton.Location = new System.Drawing.Point(17, 153);
|
||||
this.SetFontStyleButton.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.SetFontStyleButton.Name = "SetFontStyleButton";
|
||||
this.SetFontStyleButton.Size = new System.Drawing.Size(171, 28);
|
||||
this.SetFontStyleButton.TabIndex = 4;
|
||||
this.SetFontStyleButton.Text = "Set font style";
|
||||
this.SetFontStyleButton.UseVisualStyleBackColor = true;
|
||||
this.SetFontStyleButton.Click += new System.EventHandler(this.SetFontStyleButton_Click);
|
||||
this.button10.Location = new System.Drawing.Point(13, 124);
|
||||
this.button10.Name = "button10";
|
||||
this.button10.Size = new System.Drawing.Size(128, 23);
|
||||
this.button10.TabIndex = 4;
|
||||
this.button10.Text = "Set font style";
|
||||
this.button10.UseVisualStyleBackColor = true;
|
||||
this.button10.Click += new System.EventHandler(this.button10_Click);
|
||||
//
|
||||
// fontDialog
|
||||
// fontDialog1
|
||||
//
|
||||
this.fontDialog.Color = System.Drawing.Color.White;
|
||||
this.fontDialog.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
|
||||
this.fontDialog1.Color = System.Drawing.Color.White;
|
||||
this.fontDialog1.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
|
||||
//
|
||||
// SetFontColorButton
|
||||
// button3
|
||||
//
|
||||
this.SetFontColorButton.Location = new System.Drawing.Point(17, 118);
|
||||
this.SetFontColorButton.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.SetFontColorButton.Name = "SetFontColorButton";
|
||||
this.SetFontColorButton.Size = new System.Drawing.Size(171, 28);
|
||||
this.SetFontColorButton.TabIndex = 3;
|
||||
this.SetFontColorButton.Text = "Set font color";
|
||||
this.SetFontColorButton.UseVisualStyleBackColor = true;
|
||||
this.SetFontColorButton.Click += new System.EventHandler(this.SetFontColorButton_Click);
|
||||
this.button3.Location = new System.Drawing.Point(13, 96);
|
||||
this.button3.Name = "button3";
|
||||
this.button3.Size = new System.Drawing.Size(128, 23);
|
||||
this.button3.TabIndex = 5;
|
||||
this.button3.Text = "Set font color";
|
||||
this.button3.UseVisualStyleBackColor = true;
|
||||
this.button3.Click += new System.EventHandler(this.button3_Click);
|
||||
//
|
||||
// SetSubBoxColorButton
|
||||
// button11
|
||||
//
|
||||
this.SetSubBoxColorButton.Location = new System.Drawing.Point(17, 222);
|
||||
this.SetSubBoxColorButton.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.SetSubBoxColorButton.Name = "SetSubBoxColorButton";
|
||||
this.SetSubBoxColorButton.Size = new System.Drawing.Size(171, 28);
|
||||
this.SetSubBoxColorButton.TabIndex = 6;
|
||||
this.SetSubBoxColorButton.Text = "Set sub-button color";
|
||||
this.SetSubBoxColorButton.UseVisualStyleBackColor = true;
|
||||
this.SetSubBoxColorButton.Click += new System.EventHandler(this.SetSubBoxColorButton_Click);
|
||||
this.button11.Location = new System.Drawing.Point(13, 180);
|
||||
this.button11.Name = "button11";
|
||||
this.button11.Size = new System.Drawing.Size(128, 23);
|
||||
this.button11.TabIndex = 6;
|
||||
this.button11.Text = "Set sub-button color";
|
||||
this.button11.UseVisualStyleBackColor = true;
|
||||
this.button11.Click += new System.EventHandler(this.button11_Click);
|
||||
//
|
||||
// ThemeForm
|
||||
// button12
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
|
||||
this.button12.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
|
||||
this.button12.Location = new System.Drawing.Point(185, 127);
|
||||
this.button12.Name = "button12";
|
||||
this.button12.Size = new System.Drawing.Size(93, 52);
|
||||
this.button12.TabIndex = 7;
|
||||
this.button12.Text = "Export Theme";
|
||||
this.button12.UseVisualStyleBackColor = true;
|
||||
this.button12.Click += new System.EventHandler(this.button12_Click);
|
||||
//
|
||||
// button13
|
||||
//
|
||||
this.button13.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
|
||||
this.button13.Location = new System.Drawing.Point(185, 185);
|
||||
this.button13.Name = "button13";
|
||||
this.button13.Size = new System.Drawing.Size(93, 52);
|
||||
this.button13.TabIndex = 8;
|
||||
this.button13.Text = "Import theme";
|
||||
this.button13.UseVisualStyleBackColor = true;
|
||||
this.button13.Click += new System.EventHandler(this.button13_Click);
|
||||
//
|
||||
// openThemeDialog
|
||||
//
|
||||
this.openThemeDialog.Filter = "Text Files|*.txt";
|
||||
//
|
||||
// themeForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.BackColor = global::AndroidSideloader.Properties.Settings.Default.BackColor;
|
||||
this.ClientSize = new System.Drawing.Size(387, 335);
|
||||
this.Controls.Add(this.SetSubBoxColorButton);
|
||||
this.Controls.Add(this.SetFontColorButton);
|
||||
this.Controls.Add(this.SetFontStyleButton);
|
||||
this.Controls.Add(this.SetBGpicButton);
|
||||
this.Controls.Add(this.ResetSettingsButton);
|
||||
this.Controls.Add(this.SaveSettingsButton);
|
||||
this.Controls.Add(this.SetTextBoxColorButton);
|
||||
this.Controls.Add(this.SetComboBoxColorButton);
|
||||
this.Controls.Add(this.SetButtonColorButton);
|
||||
this.Controls.Add(this.SetPanelColorButton);
|
||||
this.Controls.Add(this.SetBGcolorButton);
|
||||
this.ClientSize = new System.Drawing.Size(290, 272);
|
||||
this.Controls.Add(this.button13);
|
||||
this.Controls.Add(this.button12);
|
||||
this.Controls.Add(this.button11);
|
||||
this.Controls.Add(this.button3);
|
||||
this.Controls.Add(this.button10);
|
||||
this.Controls.Add(this.button9);
|
||||
this.Controls.Add(this.button8);
|
||||
this.Controls.Add(this.button7);
|
||||
this.Controls.Add(this.button6);
|
||||
this.Controls.Add(this.button5);
|
||||
this.Controls.Add(this.button4);
|
||||
this.Controls.Add(this.button2);
|
||||
this.Controls.Add(this.button1);
|
||||
this.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "BackColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.Name = "ThemeForm";
|
||||
this.Name = "themeForm";
|
||||
this.Text = "Create Your Theme";
|
||||
this.Load += new System.EventHandler(this.themeForm_Load);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.ColorDialog colorDialog;
|
||||
private System.Windows.Forms.Button SetBGcolorButton;
|
||||
private System.Windows.Forms.Button SetPanelColorButton;
|
||||
private System.Windows.Forms.Button SetButtonColorButton;
|
||||
private System.Windows.Forms.Button SetComboBoxColorButton;
|
||||
private System.Windows.Forms.Button SetTextBoxColorButton;
|
||||
private System.Windows.Forms.Button SaveSettingsButton;
|
||||
private System.Windows.Forms.Button ResetSettingsButton;
|
||||
private System.Windows.Forms.OpenFileDialog openFileDialog;
|
||||
private System.Windows.Forms.Button SetBGpicButton;
|
||||
private System.Windows.Forms.Button SetFontStyleButton;
|
||||
private System.Windows.Forms.FontDialog fontDialog;
|
||||
private System.Windows.Forms.Button SetFontColorButton;
|
||||
private System.Windows.Forms.Button SetSubBoxColorButton;
|
||||
private System.Windows.Forms.ColorDialog colorDialog1;
|
||||
private System.Windows.Forms.Button button1;
|
||||
private System.Windows.Forms.Button button2;
|
||||
private System.Windows.Forms.Button button4;
|
||||
private System.Windows.Forms.Button button5;
|
||||
private System.Windows.Forms.Button button6;
|
||||
private System.Windows.Forms.Button button7;
|
||||
private System.Windows.Forms.Button button8;
|
||||
private System.Windows.Forms.OpenFileDialog openFileDialog1;
|
||||
private System.Windows.Forms.Button button9;
|
||||
private System.Windows.Forms.Button button10;
|
||||
private System.Windows.Forms.FontDialog fontDialog1;
|
||||
private System.Windows.Forms.Button button3;
|
||||
private System.Windows.Forms.Button button11;
|
||||
private System.Windows.Forms.Button button12;
|
||||
private System.Windows.Forms.Button button13;
|
||||
private System.Windows.Forms.OpenFileDialog openThemeDialog;
|
||||
}
|
||||
}
|
||||
175
ThemeForm.cs
175
ThemeForm.cs
@@ -8,95 +8,192 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using System.Collections;
|
||||
using System.Collections.Specialized;
|
||||
|
||||
namespace AndroidSideloader
|
||||
{
|
||||
public partial class ThemeForm : Form
|
||||
public partial class themeForm : Form
|
||||
{
|
||||
|
||||
public ThemeForm()
|
||||
public themeForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void SaveSettingsButton_Click(object sender, EventArgs e)
|
||||
|
||||
|
||||
private void button4_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (colorDialog1.ShowDialog() == DialogResult.OK)
|
||||
Properties.Settings.Default.ButtonColor = colorDialog1.Color;
|
||||
}
|
||||
|
||||
private void button2_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (colorDialog1.ShowDialog() == DialogResult.OK)
|
||||
Properties.Settings.Default.PanelColor = colorDialog1.Color;
|
||||
}
|
||||
|
||||
private void button1_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (colorDialog1.ShowDialog() == DialogResult.OK)
|
||||
Properties.Settings.Default.BackColor = colorDialog1.Color;
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void button7_Click(object sender, EventArgs e)
|
||||
{
|
||||
Properties.Settings.Default.Save();
|
||||
this.Close();
|
||||
}
|
||||
|
||||
private void ResetSettingsButton_Click(object sender, EventArgs e)
|
||||
private void button8_Click(object sender, EventArgs e)
|
||||
{
|
||||
Properties.Settings.Default.BackColor = Color.FromArgb(45, 45, 45);
|
||||
Properties.Settings.Default.BackColor = Color.FromArgb(45,45,45);
|
||||
Properties.Settings.Default.ComboBoxColor = Color.FromArgb(45, 45, 45);
|
||||
Properties.Settings.Default.TextBoxColor = Color.FromArgb(45, 45, 45);
|
||||
Properties.Settings.Default.TextBoxColor = Color.FromArgb(45,45,45);
|
||||
Properties.Settings.Default.ButtonColor = SystemColors.ActiveCaptionText;
|
||||
Properties.Settings.Default.SubButtonColor = Color.FromArgb(64, 64, 64);
|
||||
Properties.Settings.Default.SubButtonColor=Color.FromArgb(64, 64, 64);
|
||||
Properties.Settings.Default.PanelColor = SystemColors.ActiveCaptionText;
|
||||
Properties.Settings.Default.BackPicturePath = "";
|
||||
Properties.Settings.Default.FontStyle = new Font("Arial", 11, FontStyle.Regular);
|
||||
Properties.Settings.Default.FontStyle = new Font("Microsoft Sans Serif", 11, FontStyle.Regular);
|
||||
Properties.Settings.Default.FontColor = Color.White;
|
||||
Properties.Settings.Default.Save();
|
||||
|
||||
}
|
||||
|
||||
private void SetBGcolorButton_Click(object sender, EventArgs e)
|
||||
|
||||
|
||||
private void button5_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (colorDialog.ShowDialog() == DialogResult.OK)
|
||||
Properties.Settings.Default.BackColor = colorDialog.Color;
|
||||
if (colorDialog1.ShowDialog() == DialogResult.OK)
|
||||
Properties.Settings.Default.ComboBoxColor = colorDialog1.Color;
|
||||
}
|
||||
|
||||
private void SetBGpicButton_Click(object sender, EventArgs e)
|
||||
private void button6_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (openFileDialog.ShowDialog() == DialogResult.OK)
|
||||
if (colorDialog1.ShowDialog() == DialogResult.OK)
|
||||
Properties.Settings.Default.TextBoxColor = colorDialog1.Color;
|
||||
}
|
||||
|
||||
private void button9_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (openFileDialog1.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
String extension = Path.GetExtension(openFileDialog.FileName);
|
||||
String extension = Path.GetExtension(openFileDialog1.FileName);
|
||||
if (File.Exists(Environment.CurrentDirectory + "\\pic" + extension))
|
||||
File.Delete(Environment.CurrentDirectory + "\\pic" + extension);
|
||||
File.Copy(openFileDialog.FileName, Environment.CurrentDirectory + "\\pic" + extension);
|
||||
Properties.Settings.Default.BackPicturePath = Environment.CurrentDirectory + "\\pic" + extension;
|
||||
File.Copy(openFileDialog1.FileName, Environment.CurrentDirectory + "\\pic" + extension);
|
||||
Properties.Settings.Default.BackPicturePath = Environment.CurrentDirectory + "\\pic" + extension ;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void SetPanelColorButton_Click(object sender, EventArgs e)
|
||||
private void button10_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (colorDialog.ShowDialog() == DialogResult.OK)
|
||||
Properties.Settings.Default.PanelColor = colorDialog.Color;
|
||||
if (fontDialog1.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
Properties.Settings.Default.FontStyle = fontDialog1.Font;
|
||||
}
|
||||
}
|
||||
|
||||
private void SetFontColorButton_Click(object sender, EventArgs e)
|
||||
private void button3_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (colorDialog.ShowDialog() == DialogResult.OK)
|
||||
Properties.Settings.Default.FontColor = colorDialog.Color;
|
||||
if (colorDialog1.ShowDialog() == DialogResult.OK)
|
||||
Properties.Settings.Default.FontColor = colorDialog1.Color;
|
||||
}
|
||||
|
||||
private void SetFontStyleButton_Click(object sender, EventArgs e)
|
||||
private void button11_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (fontDialog.ShowDialog() == DialogResult.OK)
|
||||
Properties.Settings.Default.FontStyle = fontDialog.Font;
|
||||
if (colorDialog1.ShowDialog() == DialogResult.OK)
|
||||
Properties.Settings.Default.SubButtonColor = colorDialog1.Color;
|
||||
}
|
||||
|
||||
private void SetButtonColorButton_Click(object sender, EventArgs e)
|
||||
private void themeForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
if (colorDialog.ShowDialog() == DialogResult.OK)
|
||||
Properties.Settings.Default.ButtonColor = colorDialog.Color;
|
||||
|
||||
}
|
||||
|
||||
private void SetSubBoxColorButton_Click(object sender, EventArgs e)
|
||||
private void button12_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (colorDialog.ShowDialog() == DialogResult.OK)
|
||||
Properties.Settings.Default.SubButtonColor = colorDialog.Color;
|
||||
String BackColor = ColorTranslator.ToHtml(Properties.Settings.Default.BackColor);
|
||||
String PanelColor = ColorTranslator.ToHtml(Properties.Settings.Default.PanelColor);
|
||||
String TextBoxColor = ColorTranslator.ToHtml(Properties.Settings.Default.TextBoxColor);
|
||||
String ComboBoxColor = ColorTranslator.ToHtml(Properties.Settings.Default.ComboBoxColor);
|
||||
String ButtonColor = ColorTranslator.ToHtml(Properties.Settings.Default.ButtonColor);
|
||||
String SubButtonColor = ColorTranslator.ToHtml(Properties.Settings.Default.SubButtonColor);
|
||||
String FontColor = ColorTranslator.ToHtml(Properties.Settings.Default.FontColor);
|
||||
var cvt = new FontConverter();
|
||||
string FontStyle = cvt.ConvertToString(Properties.Settings.Default.FontStyle);
|
||||
int i;
|
||||
if (File.Exists(Environment.CurrentDirectory + "\\theme.txt"))
|
||||
{
|
||||
if (File.Exists(Environment.CurrentDirectory + "\\theme11.txt"))
|
||||
MessageBox.Show("You can't export more than 12 themes, sorry :(");
|
||||
else
|
||||
{
|
||||
for (i = 1; i <= 10; i++)
|
||||
{
|
||||
if (File.Exists(Environment.CurrentDirectory + "\\theme" + i + ".txt"))
|
||||
continue;
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
File.WriteAllText(Environment.CurrentDirectory + "\\theme" + i + ".txt", "#SideloaderTheme# \n" + BackColor + "\n" + PanelColor + "\n" + ButtonColor + "\n" + SubButtonColor + "\n"
|
||||
+ TextBoxColor + "\n" + ComboBoxColor + "\n" + FontColor + "\n" + FontStyle);
|
||||
MessageBox.Show("Theme exported as theme" + i + ".txt");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
File.WriteAllText(Environment.CurrentDirectory + "\\theme.txt", "#SideloaderTheme# \n" + BackColor + "\n" + PanelColor + "\n" + ButtonColor + "\n" + SubButtonColor + "\n"
|
||||
+ TextBoxColor + "\n" + ComboBoxColor + "\n" + FontColor + "\n" + FontStyle);
|
||||
MessageBox.Show("Theme exported as theme.txt");
|
||||
}
|
||||
}
|
||||
|
||||
private void SetComboBoxColorButton_Click(object sender, EventArgs e)
|
||||
private void button13_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (colorDialog.ShowDialog() == DialogResult.OK)
|
||||
Properties.Settings.Default.ComboBoxColor = colorDialog.Color;
|
||||
}
|
||||
openThemeDialog.InitialDirectory = Environment.CurrentDirectory;
|
||||
if (openThemeDialog.ShowDialog() == DialogResult.OK) {
|
||||
using (StreamReader sr = new StreamReader(openThemeDialog.FileName))
|
||||
{
|
||||
StringCollection myCol = new StringCollection();
|
||||
myCol.AddRange(File.ReadAllLines(openThemeDialog.FileName));
|
||||
if (myCol.Contains("#SideloaderTheme# "))
|
||||
{
|
||||
String[] settings = new String[myCol.Count];
|
||||
myCol.CopyTo(settings, 0);
|
||||
|
||||
private void SetTextBoxColorButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (colorDialog.ShowDialog() == DialogResult.OK)
|
||||
Properties.Settings.Default.TextBoxColor = colorDialog.Color;
|
||||
Color BackColor = ColorTranslator.FromHtml(settings[1]);
|
||||
Color PanelColor = ColorTranslator.FromHtml(settings[2]);
|
||||
Color ButtonColor = ColorTranslator.FromHtml(settings[3]);
|
||||
Color SubButtonColor = ColorTranslator.FromHtml(settings[4]);
|
||||
Color TextBoxColor = ColorTranslator.FromHtml(settings[5]);
|
||||
Color ComboBoxColor = ColorTranslator.FromHtml(settings[6]);
|
||||
Color FontColor = ColorTranslator.FromHtml(settings[7]);
|
||||
Properties.Settings.Default.BackColor = BackColor;
|
||||
Properties.Settings.Default.PanelColor = PanelColor;
|
||||
Properties.Settings.Default.ButtonColor = ButtonColor;
|
||||
Properties.Settings.Default.SubButtonColor = SubButtonColor;
|
||||
Properties.Settings.Default.TextBoxColor = TextBoxColor;
|
||||
Properties.Settings.Default.ComboBoxColor = ComboBoxColor;
|
||||
Properties.Settings.Default.FontColor = FontColor;
|
||||
System.ComponentModel.TypeConverter converter =
|
||||
System.ComponentModel.TypeDescriptor.GetConverter(typeof(Font));
|
||||
var cvt = new FontConverter();
|
||||
Font f = cvt.ConvertFromString(settings[8]) as Font;
|
||||
Properties.Settings.Default.FontStyle = f;
|
||||
}
|
||||
else
|
||||
MessageBox.Show("The file you've selected is not a Rookie Sideloader theme file!");
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -117,13 +117,16 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="colorDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<metadata name="colorDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="openFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<metadata name="openFileDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>138, 17</value>
|
||||
</metadata>
|
||||
<metadata name="fontDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<metadata name="fontDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>278, 17</value>
|
||||
</metadata>
|
||||
<metadata name="openThemeDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>394, 17</value>
|
||||
</metadata>
|
||||
</root>
|
||||
@@ -39,7 +39,22 @@ https://t.me/questgameclub/thxdonate
|
||||
https://t.me/questgameclub/play
|
||||
https://t.me/questgameclub/love
|
||||
https://t.me/questgameclub/vip
|
||||
https://t.me/questgameclub/thxdonatetome");
|
||||
https://t.me/questgameclub/thxdonatetome
|
||||
NEW PASSWORDS
|
||||
t.me/questgameclub/thx/donate/pass
|
||||
t.me/questgameclub/donate
|
||||
t.me/questgameclub/thxdonatevip
|
||||
t.me/questgameclub/thxdonatetome
|
||||
https://t.me/questgameclub/thxdonate
|
||||
t.me/questgameclub/thxdonate
|
||||
t.me/questgameclub/thxdonateclub
|
||||
t.me/questgameclub/thx/donate/vip
|
||||
t.me/questgameclub/donate/thx
|
||||
t.me/questgameclub/thx/donate
|
||||
t.me/questgameclub/donateclub
|
||||
t.me/questgameclub/donatevip
|
||||
t.me/questgameclub/thx/donate/vip
|
||||
t.me/questgameclub/thx/donate/quest");
|
||||
else
|
||||
Form1.notify("Sorry I'm too dumb to answer that right now, please ask flow, if flow can't figure it out nobody can");
|
||||
|
||||
|
||||
@@ -1,3 +1,26 @@
|
||||
1.7
|
||||
+ Removed some freezes
|
||||
+ Sideloader kills rclone on start and on close if it's open so you dont waste bandwith
|
||||
+ Updating rclone config now does a hash check first
|
||||
+ Refresh storage after game install and on game uninstall
|
||||
|
||||
1.6
|
||||
+ Disk space label and check
|
||||
+ Checks game size before download
|
||||
= Download and install game button outputs adb log now
|
||||
- Launch package name button and textbox
|
||||
|
||||
1.5
|
||||
+ Added ETA, based on CURRENT DOWNLOAD SPEED NOT DELTA OF IT
|
||||
+ Added DLS label instead of showing it in the toolbar
|
||||
+ Added more indication of what the software is doing, in the toolbar
|
||||
+ Added some tooltips
|
||||
|
||||
1.4
|
||||
+ Donators can now change the speed of the donate button color change (even disable)
|
||||
+ Auto update for the rclone config
|
||||
+ Theme export and import buttons (by gotard)
|
||||
|
||||
1.3
|
||||
+ Added progress bar logic for game downloading with rclone
|
||||
+ Uninstalling apps now asks the user if it should also remove game data
|
||||
|
||||
15
donators.txt
15
donators.txt
@@ -1,3 +1,12 @@
|
||||
CC0E0834BFEBFBFF000906E9;5000
|
||||
184204E0178BFBFF00870F10;0
|
||||
E5148390BFEBFBFF000906EA;250
|
||||
CC0E0834BFEBFBFF000906E9;5000;ROOKIE.LOL
|
||||
184204E0178BFBFF00870F10;0;Flow
|
||||
E5148390BFEBFBFF000906EA;250;Gotard
|
||||
5ECC5497178BFBFF00870F10;1024;Saidis21
|
||||
B0374BE2BFEBFBFF00040651;0;ecirbaf
|
||||
926C60A8178BFBFF00800F82;250;ThePhantomPickaxe
|
||||
2A8C5999BFEBFBFF0001067A;0;karl
|
||||
80ACB80FBFEBFBFF000206C2;4096;JJ-4
|
||||
9AA172C9BFEBFBFF000906ED;1024;Clayton Bigsby
|
||||
645C9EADBFEBFBFF000906EA;5000;Heracide
|
||||
1C51D0CD178BFBFF00870F10;0;Mr.Tibby
|
||||
287B5C6CBFEBFBFF000906EA;0;videobeer
|
||||
Reference in New Issue
Block a user