Hash: SHA256 RSL 2.4.7 + Added battery percentage to stats on bottom left. = Fixed using ENTER key to install option. = Fixed using Enter to install from Quick Search. = Fixed install feed message when using Enter to Install. = All important message boxes will remain on top until user selects an option.. = Settings form and Quest Options form will remain on top until closed. = Fixed changelog formatting so updater box isn't so wide. HFP -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEKjgtlwMyrpVu4TGfx/Rql1VoczcFAmD9N54ACgkQx/Rql1Vo czfz2g/+OEMxQBKrmWaeXpe4CD1jXs92P/JMU6DPBepNNiKtE+ltX1iG/I1Ft/04 JzFLJqqQsVKP9HceZBkNie87C4YdTu5Z3LUEOS626IVlEx1t0cxXilsVeXWrFSSJ IyAgRbXZKQRVF+nhR0yXLUSjAQqlxLTuu9kxCXOHBPSqw+MmDCukUat9SoJUFpRO +bteP/Y+ihUHHaBcD9AizJJpTzuCgKrKUtyNDPcXPIcOoosx459+tsG+mOAilEay UHMwQoe21//mJJSsaCPPNYOWkY/BV1JNA4dDE+eBoK02U+SXVyh50eO1LFlV1wDd 0XL0O2npdVKjhszpWk2LuyErhaRB6EDMJvNvA8RgWHMF8gR20NPPM183ui79XRr1 bPpAXWbNEVn1OOOcAD+wTwLB6BCc1ryuI4zTHejQufWLQdVMaWKxhREo7bqTWTh+ 4WPLZEC3JOy4uODb2tTJLz0qCBaxXNdr0usVxbO5OaGSKOBsJ2GsBlfBTNCr6If6 tMMi2DXSTYAuIgESCqFo4cEz2YGEmOrIqQ7nx9tBhGV2bfnClBbbiYAmM15ifRHG QHmGhak7h/NFTawOGrS4BV2HfViBR1ef7FJ9v3T4chVJN+ED9tLpfMNKuTLOZ3at dwUOnA4jfDJL2g5YV8ebiAzPS75FSSrQ2wfcyYYyywTdlBc5K58= =0eX4 -----END PGP SIGNATURE-----
341 lines
14 KiB
C#
341 lines
14 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Threading;
|
|
using System.Windows.Forms;
|
|
|
|
namespace AndroidSideloader
|
|
{
|
|
public partial class QuestForm : Form
|
|
{
|
|
public static int length = 0;
|
|
public static string[] result;
|
|
public bool settingsexist = false;
|
|
public static bool QUSon = false;
|
|
public bool delsh = false;
|
|
public QuestForm()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
|
|
private void button1_Click(object sender, EventArgs e)
|
|
{
|
|
bool ChangesMade = false;
|
|
|
|
//Quest 2 settings, might remove them in the future since some of them are broken
|
|
if (RefreshRateComboBox.SelectedIndex != -1)
|
|
{
|
|
ADB.WakeDevice();
|
|
ADB.RunAdbCommandToString($"shell setprop debug.oculus.refreshRate {RefreshRateComboBox.SelectedItem.ToString()}");
|
|
ADB.RunAdbCommandToString($"shell settings put global 90hz_global {RefreshRateComboBox.SelectedIndex}");
|
|
ADB.RunAdbCommandToString($"shell settings put global 90hzglobal {RefreshRateComboBox.SelectedIndex}");
|
|
ChangesMade = true;
|
|
}
|
|
|
|
if (TextureResTextBox.Text.Length > 0)
|
|
{
|
|
ADB.WakeDevice();
|
|
Int32.TryParse(TextureResTextBox.Text, out int result);
|
|
ADB.RunAdbCommandToString($"shell settings put global texture_size_Global {TextureResTextBox.Text}");
|
|
ADB.RunAdbCommandToString($"shell setprop debug.oculus.textureWidth {TextureResTextBox.Text}");
|
|
ADB.RunAdbCommandToString($"shell setprop debug.oculus.textureHeight {TextureResTextBox.Text}");
|
|
ChangesMade = true;
|
|
}
|
|
|
|
if (CPUComboBox.SelectedIndex != -1)
|
|
{
|
|
ADB.RunAdbCommandToString($"shell setprop debug.oculus.cpuLevel {CPUComboBox.SelectedItem.ToString()}");
|
|
ChangesMade = true;
|
|
}
|
|
|
|
if (GPUComboBox.SelectedIndex != -1)
|
|
{
|
|
ADB.RunAdbCommandToString($"shell setprop debug.oculus.gpuLevel {GPUComboBox.SelectedItem.ToString()}");
|
|
ChangesMade = true;
|
|
}
|
|
|
|
if (ChangesMade)
|
|
MessageBox.Show("Settings applied!");
|
|
}
|
|
|
|
|
|
public static void setLength(int value)
|
|
{
|
|
result = new string[value];
|
|
}
|
|
|
|
|
|
|
|
public void ResetQU_click(object sender, EventArgs e)
|
|
{
|
|
ResBox.Text = ("0");
|
|
UsrBox.Text = ("Change Me");
|
|
FOVx.Text = ("0");
|
|
FOVy.Text = ("0");
|
|
QURfrRt.SelectedIndex = 0;
|
|
}
|
|
|
|
private void DeleteShots_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
if (DeleteShots.Checked)
|
|
delsh = true;
|
|
else
|
|
delsh = false;
|
|
}
|
|
private void QUon_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
if (QUon.Checked)
|
|
{
|
|
ResBox.Visible = true;
|
|
UsrBox.Visible = true;
|
|
FOVx.Visible = true;
|
|
FOVy.Visible = true;
|
|
QURfrRt.Visible = true;
|
|
ResetQU.Visible = true;
|
|
QUEnable.Visible = true;
|
|
label5.Visible = true;
|
|
label6.Visible = true;
|
|
label7.Visible = true;
|
|
label8.Visible = true;
|
|
label9.Visible = true;
|
|
label10.Visible = true;
|
|
deleteButton.Visible = true;
|
|
ResBox.Text = Properties.Settings.Default.QUres;
|
|
UsrBox.Text = Properties.Settings.Default.QUname;
|
|
FOVy.Text = Properties.Settings.Default.QUy;
|
|
FOVx.Text = Properties.Settings.Default.QUx;
|
|
QURfrRt.SelectedValue = Properties.Settings.Default.QUhz;
|
|
Properties.Settings.Default.QUturnedon = true;
|
|
}
|
|
else if (!QUon.Checked)
|
|
{
|
|
ResBox.Visible = false;
|
|
UsrBox.Visible = false;
|
|
FOVx.Visible = false;
|
|
FOVy.Visible = false;
|
|
QURfrRt.Visible = false;
|
|
ResetQU.Visible = false;
|
|
QUEnable.Visible = false;
|
|
label5.Visible = false;
|
|
label6.Visible = false;
|
|
label7.Visible = false;
|
|
label8.Visible = false;
|
|
label9.Visible = false;
|
|
label10.Visible = false;
|
|
deleteButton.Visible = false;
|
|
Properties.Settings.Default.QUturnedon = false;
|
|
MessageBox.Show("Ok, Deleted your custom settings file.\nIf you would like to re-enable return here and apply settings again");
|
|
File.Delete($"{Environment.CurrentDirectory}\\Config.Json");
|
|
File.Delete($"{Environment.CurrentDirectory}\\delete_settings");
|
|
}
|
|
|
|
}
|
|
private static readonly Random random = new Random();
|
|
private static readonly object syncLock = new object();
|
|
public static int RandomNumber(int min, int max)
|
|
{
|
|
lock (syncLock)
|
|
{ // synchronize
|
|
return random.Next(min, max);
|
|
}
|
|
}
|
|
private void QUEnable_Click(object sender, EventArgs e)
|
|
{
|
|
|
|
settingsexist = true;
|
|
MessageBox.Show("OK, any -QU packages installed will have these settings applied!\nTo delete settings: goto main app window, select a game with top menu, and click \"Remove QU Setting\"");
|
|
if (QUon.Checked)
|
|
{
|
|
Properties.Settings.Default.QUturnedon = true;
|
|
Random r = new Random();
|
|
|
|
int x = r.Next(999999999);
|
|
int y = r.Next(9999999);
|
|
|
|
var sum = ((long)y * (long)1000000000) + (long)x;
|
|
|
|
int x2 = r.Next(999999999);
|
|
int y2 = r.Next(9999999);
|
|
|
|
var sum2 = ((long)y2 * (long)1000000000) + (long)x2;
|
|
|
|
QUSon = true;
|
|
|
|
string selected = this.QURfrRt.GetItemText(this.QURfrRt.SelectedItem);
|
|
|
|
Properties.Settings.Default.QUString = $"\"refresh_rate\":{selected},\"eye_texture_width\":{ResBox.Text},\"fov_x\":{FOVx.Text},\"fov_y\":{FOVy.Text},\"username\":\"{UsrBox.Text}\"}}";
|
|
Properties.Settings.Default.QUStringF = $"{{\"user_id\":{sum},\"app_id\":\"{sum2}\",";
|
|
Properties.Settings.Default.Save();
|
|
File.WriteAllText($"{Properties.Settings.Default.MainDir}\\delete_settings", "");
|
|
string boff = Properties.Settings.Default.QUStringF + Properties.Settings.Default.QUString;
|
|
File.WriteAllText($"{Properties.Settings.Default.MainDir}\\config.json", boff);
|
|
}
|
|
else
|
|
{
|
|
Properties.Settings.Default.QUturnedon = false;
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
private void QuestForm_FormClosed(object sender, FormClosedEventArgs e)
|
|
{
|
|
if (QUon.Checked)
|
|
{
|
|
Properties.Settings.Default.QUsett = true;
|
|
Properties.Settings.Default.Save();
|
|
}
|
|
if (!QUon.Checked)
|
|
{
|
|
Properties.Settings.Default.QUsett = false;
|
|
Properties.Settings.Default.Save();
|
|
}
|
|
if (DeleteShots.Checked)
|
|
{
|
|
Properties.Settings.Default.delsh = true;
|
|
Properties.Settings.Default.Save();
|
|
}
|
|
if (!DeleteShots.Checked)
|
|
{
|
|
Properties.Settings.Default.delsh = false;
|
|
Properties.Settings.Default.Save();
|
|
}
|
|
}
|
|
private void QuestForm_Load(object sender, EventArgs e)
|
|
{
|
|
if (Properties.Settings.Default.delsh)
|
|
DeleteShots.Checked = true;
|
|
if (Properties.Settings.Default.QUsett)
|
|
{
|
|
ResBox.Text = Properties.Settings.Default.QUres;
|
|
UsrBox.Text = Properties.Settings.Default.QUname;
|
|
FOVy.Text = Properties.Settings.Default.QUy;
|
|
FOVx.Text = Properties.Settings.Default.QUx;
|
|
QURfrRt.Text = Properties.Settings.Default.QUhz;
|
|
QUon.Checked = true;
|
|
if (settingsexist)
|
|
QUSon = true;
|
|
|
|
|
|
}
|
|
}
|
|
|
|
private void ResBox_TextChanged(object sender, EventArgs e)
|
|
{
|
|
Properties.Settings.Default.QUres = ResBox.Text;
|
|
Properties.Settings.Default.Save();
|
|
|
|
}
|
|
|
|
private void UsrBox_TextChanged(object sender, EventArgs e)
|
|
{
|
|
Properties.Settings.Default.QUname = UsrBox.Text;
|
|
Properties.Settings.Default.Save();
|
|
}
|
|
|
|
private void FOVx_TextChanged(object sender, EventArgs e)
|
|
{
|
|
Properties.Settings.Default.QUx = FOVx.Text;
|
|
Properties.Settings.Default.Save();
|
|
}
|
|
|
|
private void FOVy_TextChanged(object sender, EventArgs e)
|
|
{
|
|
Properties.Settings.Default.QUy = FOVy.Text;
|
|
Properties.Settings.Default.Save();
|
|
}
|
|
|
|
private void QURfrRt_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
|
|
string selected = this.QURfrRt.GetItemText(this.QURfrRt.SelectedItem);
|
|
Properties.Settings.Default.QUhz = selected;
|
|
Properties.Settings.Default.Save();
|
|
}
|
|
private void DeleteButton_Click(object sender, EventArgs e)
|
|
{
|
|
|
|
MessageBox.Show("Ok, Deleted your custom settings file.\nIf you would like to re-enable return here and apply settings again");
|
|
File.Delete($"{Properties.Settings.Default.MainDir}\\Config.Json");
|
|
}
|
|
private void questPics_Click(object sender, EventArgs e)
|
|
{
|
|
string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
|
|
|
|
if (!Directory.Exists($"{path}\\Quest ScreenShots"))
|
|
Directory.CreateDirectory($"{path}\\Quest ScreenShots");
|
|
MessageBox.Show("Please wait until you get the message that the transfer has finished.");
|
|
ADB.WakeDevice();
|
|
Program.form.ChangeTitle("Pulling files...");
|
|
ADB.RunAdbCommandToString($"pull \"/sdcard/Oculus/Screenshots\" \"{path}\\Quest ScreenShots\"");
|
|
if (delsh)
|
|
{
|
|
DialogResult dialogResult = MessageBox.Show("You have chosen to delete files from headset after transferring, so be sure to move them from your desktop to somewhere safe!", "Warning!", MessageBoxButtons.OKCancel);
|
|
if (dialogResult == DialogResult.OK)
|
|
{
|
|
ADB.RunAdbCommandToString("shell rm -r /sdcard/Oculus/Screenshots");
|
|
ADB.RunAdbCommandToString("shell mkdir /sdcard/Oculus/Screenshots");
|
|
}
|
|
}
|
|
MessageBox.Show("Transfer finished! ScreenShots can be found in a folder named Quest Screenshots on your desktop!");
|
|
Program.form.ChangeTitle("Done!");
|
|
}
|
|
private void questVids_Click(object sender, EventArgs e)
|
|
{
|
|
string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
|
|
if (!Directory.Exists($"{path}\\Quest VideoShots"))
|
|
Directory.CreateDirectory($"{path}\\Quest VideoShots");
|
|
MessageBox.Show("Please wait until you get the message that the transfer has finished.");
|
|
ADB.WakeDevice();
|
|
Program.form.ChangeTitle("Pulling files...");
|
|
ADB.RunAdbCommandToString($"pull \"/sdcard/Oculus/Videoshots\" \"{path}\\Quest VideoShots\"");
|
|
if (delsh)
|
|
{
|
|
DialogResult dialogResult = MessageBox.Show("You have chosen to delete files from headset after transferring, so be sure to move them from your desktop to somewhere safe!", "Warning!", MessageBoxButtons.OKCancel);
|
|
if (dialogResult == DialogResult.OK)
|
|
{
|
|
ADB.RunAdbCommandToString("shell rm -r /sdcard/Oculus/Videoshots");
|
|
ADB.RunAdbCommandToString("shell mkdir /sdcard/Oculus/Videoshots");
|
|
}
|
|
}
|
|
MessageBox.Show("Transfer finished! VideoShots can be found in a folder named Quest VideoShots on your desktop!");
|
|
Program.form.ChangeTitle("Done!");
|
|
}
|
|
private void button3_Click(object sender, EventArgs e)
|
|
{
|
|
UsernameForm Form = new UsernameForm();
|
|
Form.Show();
|
|
}
|
|
|
|
|
|
private void Form_KeyDown(object sender, KeyEventArgs e)
|
|
{
|
|
if (e.KeyCode == Keys.Escape)
|
|
{
|
|
this.Close();
|
|
}
|
|
}
|
|
protected override bool ProcessDialogKey(Keys keyData)
|
|
{
|
|
if (Form.ModifierKeys == Keys.None && keyData == Keys.Escape)
|
|
{
|
|
this.Close();
|
|
return true;
|
|
}
|
|
return base.ProcessDialogKey(keyData);
|
|
}
|
|
|
|
private void WifiWake_Click(object sender, EventArgs e)
|
|
{
|
|
ADB.RunAdbCommandToString("shell settings put global wifi_wakeup_available 1");
|
|
ADB.RunAdbCommandToString("shell settings put global wifi_wakeup_enabled 1");
|
|
MessageBox.Show("Wake on Wifi enabled!\n\nNOTE: This requires having wireless ADB enabled to work. (Obviously)");
|
|
}
|
|
}
|
|
}
|