1414using QuestAppVersionSwitcher . Core ;
1515using System . IO ;
1616using Android . Content ;
17+ using Android . Database ;
1718using Android . Provider ;
1819using AndroidX . Activity . Result . Contract ;
20+ using ComputerUtils . Android . AndroidTools ;
21+ using ComputerUtils . Android . Webserver ;
1922using AlertDialog = Android . App . AlertDialog ;
2023
2124namespace QuestAppVersionSwitcher
2225{
2326 [ Activity ( Theme = "@style/AppTheme" , ConfigurationChanges = ConfigChanges . Orientation | ConfigChanges . ScreenSize ) ]
2427 public class MainActivity : AppCompatActivity
2528 {
29+ public static int pickFileCode = 1 ;
2630 WebView webView ;
2731 protected override void OnCreate ( Bundle savedInstanceState )
2832 {
@@ -33,6 +37,7 @@ protected override void OnCreate(Bundle savedInstanceState)
3337 SetContentView ( Resource . Layout . activity_main ) ;
3438 //Get webView WebView from Main Layout
3539 webView = FindViewById < WebView > ( Resource . Id . webView ) ;
40+ CoreService . mainActivity = this ;
3641
3742 CoreVars . fileDir = "/sdcard/Android/data/com.ComputerElite.questappversionswitcher/files/" ;
3843 CoreService . browser = webView ;
@@ -48,6 +53,29 @@ protected override void OnCreate(Bundle savedInstanceState)
4853 CoreService . Start ( ) ;
4954 }
5055
56+ protected override void OnActivityResult ( int requestCode , Result resultCode , Intent data )
57+ {
58+ if ( requestCode == pickFileCode && resultCode == Result . Ok )
59+ {
60+ // Get the URI of the selected file
61+ Android . Net . Uri uri = data . Data ;
62+ Logger . Log ( uri . ToString ( ) ) ;
63+
64+ // Convert the URI to a file path
65+ string path = GetRealPathFromURI ( uri ) ;
66+
67+ // Start apk install
68+ Logger . Log ( "Selected apk for installation: " + path ) ;
69+ AndroidService . InitiateInstallApk ( path ) ;
70+ }
71+ }
72+
73+ private string GetRealPathFromURI ( Android . Net . Uri uri )
74+ {
75+ return HttpServer . DecodeUrlString ( uri . ToString ( )
76+ . Replace ( "content://com.android.externalstorage.documents/document/primary%3A" , "/sdcard/" ) ) ;
77+ }
78+
5179 public override void OnRequestPermissionsResult ( int requestCode , string [ ] permissions , [ GeneratedEnum ] Android . Content . PM . Permission [ ] grantResults )
5280 {
5381 Xamarin . Essentials . Platform . OnRequestPermissionsResult ( requestCode , permissions , grantResults ) ;
0 commit comments