Skip to content

Commit 014fe91

Browse files
ComputerEliteComputerElite
authored andcommitted
Add auto update
1 parent b362505 commit 014fe91

File tree

6 files changed

+80
-7
lines changed

6 files changed

+80
-7
lines changed

Assets/html/index.html

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,11 @@ <h2>To download mods simply download any mod from one of the following sites</h2
182182
<div class="button" id="changeApp">Change app</div>
183183
<div class="buttonLabel">Change the app you want to manage</div>
184184
</div>
185+
<div class="buttonContainer">
186+
<div class="button" id="checkUpdate">Check for QuestAppVersionSwitcher updates</div>
187+
<div class="buttonLabel">Checks if updates for QuestAppVersionSwitcher exist</div>
188+
</div>
189+
<div id="updateTextBox" class="textBox"></div>
185190

186191
<div class="space">
187192
<div class="contentHeader">
@@ -309,6 +314,21 @@ <h2>To download mods simply download any mod from one of the following sites</h2
309314
</div>
310315
</div>
311316
</div>
317+
<div class="restoreStep" id="step11">
318+
<div class="contentHeader headerMargin">
319+
Update Available
320+
</div>
321+
<div id="updateAvailableText"></div>
322+
<div id="step11box" class="textBox"></div>
323+
<div class="buttonSelectionContainer">
324+
<div class="buttonContainer">
325+
<div class="button" id="updateqavs">Update QuestAppVersionSwitcher</div>
326+
</div>
327+
<div class="buttonContainer buttonMargin">
328+
<div class="button" id="cancelupdate">Update later</div>
329+
</div>
330+
</div>
331+
</div>
312332
</div>
313333

314334
<div class="listContainer darken hidden" id="deleteContainer">

Assets/html/script.js

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -701,6 +701,33 @@ function CloseGetPasswordPopup() {
701701
GotoStep(7)
702702
}
703703

704+
CheckUpdate()
705+
706+
document.getElementById("checkUpdate").onclick = () => CheckUpdate()
707+
708+
function CheckUpdate() {
709+
TextBoxText("updateTextBox", "Checking for updates...")
710+
fetch("/questappversionswitcher/checkupdate").then(res => res.json().then(json => {
711+
if(json.isUpdateAvailable) {
712+
OpenGetPasswordPopup()
713+
GotoStep(11)
714+
document.getElementById("updateAvailableText").innerHTML = json.msg
715+
} else {
716+
TextBoxText("updateTextBox", json.msg)
717+
}
718+
}))
719+
}
720+
721+
document.getElementById("cancelupdate").onclick = () => {
722+
CloseGetPasswordPopup()
723+
}
724+
725+
document.getElementById("updateqavs").onclick = () => {
726+
fetch("/questappversionswitcher/update").then(res => res.text().then(text => {
727+
TextBoxText("step11box", text)
728+
}))
729+
}
730+
704731
function OpenGetPasswordPopup() {
705732
CloseGetPasswordPopup()
706733
document.getElementById("getPasswordContainer").className = "listContainer darken"

Properties/AndroidManifest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="1.8.3" package="com.ComputerElite.questappversionswitcher" android:installLocation="preferExternal" android:versionCode="34">
2+
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="1.8.2" package="com.ComputerElite.questappversionswitcher" android:installLocation="preferExternal" android:versionCode="32">
33
<uses-sdk android:minSdkVersion="28" android:targetSdkVersion="29" />
44
<uses-permission android:name="oculus.permission.handtracking" />
55
<uses-permission android:name="com.oculus.permission.HAND_TRACKING" />

Properties/AssemblyInfo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,5 @@
2222
// Minor Version
2323
// Build Number
2424
// Revision
25-
[assembly: AssemblyVersion("1.8.3.0")]
26-
[assembly: AssemblyFileVersion("1.8.3.0")]
25+
[assembly: AssemblyVersion("1.8.2.0")]
26+
[assembly: AssemblyFileVersion("1.8.2.0")]

QuestAppVersionSwitcher.csproj.user

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
33
<PropertyGroup>
4-
<SelectedDevice>Oculus Quest</SelectedDevice>
5-
<ActiveDebugProfile>Oculus Quest %28Android 10.0 - API 29%29</ActiveDebugProfile>
4+
<SelectedDevice>Google Pixel 6</SelectedDevice>
5+
<ActiveDebugProfile>Google Pixel 6 %28Android 13.0 - API 33%29</ActiveDebugProfile>
66
<DefaultDevice>Pixel_5_API_30</DefaultDevice>
77
<AndroidDesignerPreferredTheme>AppTheme</AndroidDesignerPreferredTheme>
88
<AndroidDesignerPreferredDevice>automotive_1024p_landscape</AndroidDesignerPreferredDevice>

WebServer.cs

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
using Thread = System.Threading.Thread;
3737
using OculusGraphQLApiLib;
3838
using OculusGraphQLApiLib.Results;
39+
using ComputerUtils.Updating;
3940

4041
namespace QuestAppVersionSwitcher
4142
{
@@ -385,7 +386,6 @@ public void Start()
385386
{
386387
QAVSReport report = new QAVSReport();
387388
report.version = CoreService.version.ToString();
388-
report.log = Logger.log;
389389
report.userIsLoggedIn = GetLoggedInStatus() == LoggedInStatus.LoggedIn;
390390
report.reportTime = DateTime.Now;
391391
report.availableSpace = Android.OS.Environment.ExternalStorageDirectory.UsableSpace;
@@ -411,6 +411,7 @@ public void Start()
411411

412412
}
413413
}
414+
report.log = Logger.log;
414415
request.SendString(JsonSerializer.Serialize(report));
415416
return true;
416417
}));
@@ -838,7 +839,32 @@ public void Start()
838839
serverRequest.SendString(JsonSerializer.Serialize(progress));
839840
return true;
840841
}));
841-
server.AddRouteFile("/facts.png", "facts.png");
842+
server.AddRoute("GET", "/questappversionswitcher/checkupdate", new Func<ServerRequest, bool>(request =>
843+
{
844+
Updater u = new Updater(CoreService.version.ToString().Substring(0, CoreService.version.ToString().Length - 2), "https://github.com/ComputerElite/QuestAppVersionSwitcher", "QuestAppVersionSwitcher"); ;
845+
request.SendString(JsonSerializer.Serialize(u.CheckUpdate()), "application/json");
846+
return true;
847+
}));
848+
server.AddRoute("GET", "/questappversionswitcher/update", new Func<ServerRequest, bool>(request =>
849+
{
850+
Updater u = new Updater(CoreService.version.ToString().Substring(0, CoreService.version.ToString().Length - 2), "https://github.com/ComputerElite/QuestAppVersionSwitcher", "QuestAppVersionSwitcher"); ;
851+
request.SendString("Downloading apk, one second please");
852+
853+
TempFile tmpFile = new TempFile();
854+
tmpFile.Path += ".apk";
855+
u.DownloadLatestAPK(tmpFile.Path);
856+
string packageName = GetAPKPackageName(tmpFile.Path);
857+
string version = GetAPKVersion(tmpFile.Path);
858+
string backupDir = CoreService.coreVars.QAVSBackupDir + packageName + "/" + version + "/";
859+
Logger.Log("Moving file");
860+
FileManager.CreateDirectoryIfNotExisting(backupDir);
861+
FileManager.DeleteFileIfExisting(backupDir + "app.apk");
862+
File.Move(tmpFile.Path, backupDir + "app.apk");
863+
864+
AndroidService.InitiateInstallApk(backupDir + "app.apk");
865+
return true;
866+
}));
867+
server.AddRouteFile("/facts.png", "facts.png");
842868
server.StartServer(CoreService.coreVars.serverPort);
843869
Thread.Sleep(1500);
844870
if (CoreService.coreVars.loginStep == 1)

0 commit comments

Comments
 (0)