Skip to content

Commit c00fcce

Browse files
ComputerEliteComputerElite
authored andcommitted
make QAVS not quit on first start after permission grant but instead start normally
1 parent 09498f7 commit c00fcce

File tree

4 files changed

+28
-9
lines changed

4 files changed

+28
-9
lines changed

QuestAppVersionSwitcher/CoreService.cs

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
using Android.Media.Audiofx;
1919
using Android.OS;
2020
using Android.Provider;
21+
using AndroidX.Activity.Result;
2122
using Com.Xamarin.Formsviewgroup;
2223
using ComputerUtils.Android;
2324
using Xamarin.Essentials;
@@ -32,7 +33,9 @@ public class CoreService
3233
public static CoreVars coreVars = new CoreVars();
3334
public static Version version = Assembly.GetExecutingAssembly().GetName().Version;
3435
public static string ua = "Mozilla/5.0 (X11; Linux x86_64; Quest) AppleWebKit/537.36 (KHTML, like Gecko) OculusBrowser/23.2.0.4.49.401374055 SamsungBrowser/4.0 Chrome/104.0.5112.111 VR Safari/537.36";
35-
public async void Start()
36+
public static ActivityResultLauncher launcher;
37+
38+
public static async void Start()
3639
{
3740
// Accept every ssl certificate, may be a security risk but it's the only way to get the mod list (CoPilot)
3841
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(delegate { return true; });
@@ -47,6 +50,7 @@ public async void Start()
4750
{
4851
if (await Permissions.RequestAsync<Permissions.StorageRead>() != PermissionStatus.Granted) return;
4952
}
53+
AfterPermissionGrantStart();
5054
}
5155
else
5256
{
@@ -56,15 +60,20 @@ public async void Start()
5660
if (Directory.Exists(coreVars.QAVSPermTestDir)) Directory.Delete(coreVars.QAVSPermTestDir, true);
5761
Directory.CreateDirectory(coreVars.QAVSPermTestDir);
5862
Directory.Delete(coreVars.QAVSPermTestDir, true);
63+
AfterPermissionGrantStart();
5964
}
6065
catch (Exception e)
6166
{
6267
// Manage storage permission
6368
Android.Net.Uri uri = Android.Net.Uri.Parse("package:com.ComputerElite.questappversionswitcher");
6469
Intent i = new Intent(Settings.ActionManageAppAllFilesAccessPermission, uri);
65-
AndroidCore.context.StartActivity(i);
70+
launcher.Launch(i);
6671
}
6772
}
73+
}
74+
75+
public static void AfterPermissionGrantStart()
76+
{
6877

6978

7079
//Set webbrowser settings
@@ -105,4 +114,12 @@ public async void Start()
105114
qAVSWebserver.Start();
106115
}
107116
}
117+
118+
public class ManageStoragePermissionCallback : Java.Lang.Object, IActivityResultCallback
119+
{
120+
public void OnActivityResult(Java.Lang.Object result)
121+
{
122+
CoreService.AfterPermissionGrantStart();
123+
}
124+
}
108125
}

QuestAppVersionSwitcher/MainActivity.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,12 @@ protected override void OnCreate(Bundle savedInstanceState)
4242

4343
FolderPermission.l = AndroidCore.activity.RegisterForActivityResult(
4444
new ActivityResultContracts.StartActivityForResult(), new FolderPermissionCallback());
45-
46-
// Start all services
47-
CoreService core = new CoreService();
48-
core.Start();
45+
46+
47+
CoreService.launcher = AndroidCore.activity.RegisterForActivityResult(
48+
new ActivityResultContracts.StartActivityForResult(), new ManageStoragePermissionCallback());
49+
50+
CoreService.Start();
4951
}
5052

5153
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults)

QuestAppVersionSwitcher/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.10.5" package="com.ComputerElite.questappversionswitcher" android:installLocation="preferExternal" android:versionCode="53">
2+
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="1.10.6" package="com.ComputerElite.questappversionswitcher" android:installLocation="preferExternal" android:versionCode="54">
33
<uses-sdk android:minSdkVersion="28" android:targetSdkVersion="32" />
44
<uses-permission android:name="oculus.permission.handtracking" />
55
<uses-permission android:name="com.oculus.permission.HAND_TRACKING" />

QuestAppVersionSwitcher/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.10.5.0")]
26-
[assembly: AssemblyFileVersion("1.10.5.0")]
25+
[assembly: AssemblyVersion("1.10.6.0")]
26+
[assembly: AssemblyFileVersion("1.10.6.0")]

0 commit comments

Comments
 (0)