@@ -29,6 +29,9 @@ public partial class AuthPlugin : BasePlugin
2929 [ LibraryImport ( "libstarlight.so" , EntryPoint = "quit_app" ) ]
3030 private static unsafe partial void quit_app ( ) ;
3131
32+ [ LibraryImport ( "libstarlight.so" , EntryPoint = "open_url" , StringMarshalling = StringMarshalling . Utf8 ) ]
33+ private static unsafe partial nint open_url ( string url ) ;
34+
3235 private static bool _ranLobbyJoin ;
3336
3437 private static readonly Il2CppSystem . String ACTION_VIEW = new ( "android.intent.action.VIEW" . ToCharArray ( ) ) ;
@@ -309,45 +312,7 @@ public static class OpenURLPatch
309312 {
310313 public static bool Prefix ( [ HarmonyArgument ( 0 ) ] string url )
311314 {
312- if ( string . IsNullOrEmpty ( url ) )
313- return false ;
314-
315- if ( ! url . StartsWith ( "http" ) )
316- url = "https://" + url ;
317-
318- using var unityPlayer = new AndroidJavaObjectSafe ( "com.unity3d.player.UnityPlayer" ) ;
319-
320- var activityRaw = unityPlayer . CallStaticReturn ( "getCurrentActivity" ) ;
321- using var currentActivity = new AndroidJavaObjectSafe ( ( AndroidJavaObject ) activityRaw ) ;
322-
323- using var uriClass = new AndroidJavaObjectSafe ( "android.net.Uri" ) ;
324- var uri = uriClass . CallStaticReturn (
325- "parse" ,
326- AndroidJavaObjectSafe . Args ( ( Il2CppSystem . Object ) ( object ) url )
327- ) ;
328-
329- using var intentClass = new AndroidJavaObjectSafe ( "android.content.Intent" ) ;
330-
331- var intent = new AndroidJavaObjectSafe (
332- "android.content.Intent" ,
333- AndroidJavaObjectSafe . Args (
334- ACTION_VIEW ,
335- uri
336- )
337- ) ;
338-
339- currentActivity . Call (
340- "runOnUiThread" ,
341- AndroidJavaObjectSafe . Args (
342- ( Il2CppSystem . Object ) ( object ) ( ( ) =>
343- {
344- currentActivity . Call (
345- "startActivity" ,
346- AndroidJavaObjectSafe . Args ( intent . Inner )
347- ) ;
348- } )
349- )
350- ) ;
315+ open_url ( url ) ;
351316 return false ;
352317 }
353318 }
0 commit comments