Use a universally supported library for file picking

This commit is contained in:
2025-08-26 14:10:27 -07:00
parent 36b2b5cd36
commit 996ea62161
160 changed files with 23680 additions and 3728 deletions

View File

@@ -0,0 +1,52 @@
#if UNITY_EDITOR || UNITY_ANDROID
using System;
using UnityEngine;
namespace SimpleFileBrowser
{
public class FBCallbackHelper : MonoBehaviour
{
private bool autoDestroyWithCallback;
private Action mainThreadAction = null;
public static FBCallbackHelper Create( bool autoDestroyWithCallback )
{
FBCallbackHelper result = new GameObject( "FBCallbackHelper" ).AddComponent<FBCallbackHelper>();
result.autoDestroyWithCallback = autoDestroyWithCallback;
DontDestroyOnLoad( result.gameObject );
return result;
}
public void CallOnMainThread( Action function )
{
lock( this )
{
mainThreadAction += function;
}
}
private void Update()
{
if( mainThreadAction != null )
{
try
{
Action temp;
lock( this )
{
temp = mainThreadAction;
mainThreadAction = null;
}
temp();
}
finally
{
if( autoDestroyWithCallback )
Destroy( gameObject );
}
}
}
}
}
#endif

View File

@@ -0,0 +1,19 @@
fileFormatVersion: 2
guid: 997bfc59716c24c41ad03bcbd7f8ef0a
timeCreated: 1570918076
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Android/FBCallbackHelper.cs
uploadId: 758381

View File

@@ -0,0 +1,24 @@
#if UNITY_EDITOR || UNITY_ANDROID
using UnityEngine;
namespace SimpleFileBrowser
{
public class FBDirectoryReceiveCallbackAndroid : AndroidJavaProxy
{
private readonly FileBrowser.AndroidSAFDirectoryPickCallback callback;
private readonly FBCallbackHelper callbackHelper;
public FBDirectoryReceiveCallbackAndroid( FileBrowser.AndroidSAFDirectoryPickCallback callback ) : base( "com.yasirkula.unity.FileBrowserDirectoryReceiver" )
{
this.callback = callback;
callbackHelper = FBCallbackHelper.Create( true );
}
[UnityEngine.Scripting.Preserve]
public void OnDirectoryPicked( string rawUri, string name )
{
callbackHelper.CallOnMainThread( () => callback( rawUri, name ) );
}
}
}
#endif

View File

@@ -0,0 +1,19 @@
fileFormatVersion: 2
guid: 8dec4dc5be16ca84e9c147627361671d
timeCreated: 1520199471
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Android/FBDirectoryReceiveCallbackAndroid.cs
uploadId: 758381

View File

@@ -0,0 +1,24 @@
#if UNITY_EDITOR || UNITY_ANDROID
using UnityEngine;
namespace SimpleFileBrowser
{
public class FBPermissionCallbackAndroid : AndroidJavaProxy
{
private readonly FileBrowser.PermissionCallback callback;
private readonly FBCallbackHelper callbackHelper;
public FBPermissionCallbackAndroid( FileBrowser.PermissionCallback callback ) : base( "com.yasirkula.unity.FileBrowserPermissionReceiver" )
{
this.callback = callback;
callbackHelper = FBCallbackHelper.Create( true );
}
[UnityEngine.Scripting.Preserve]
public void OnPermissionResult( int result )
{
callbackHelper.CallOnMainThread( () => callback( (FileBrowser.Permission) result ) );
}
}
}
#endif

View File

@@ -0,0 +1,19 @@
fileFormatVersion: 2
guid: 2cd91db0ba676ef47af67e3597037d1a
timeCreated: 1520199471
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Android/FBPermissionCallbackAndroid.cs
uploadId: 758381

View File

@@ -0,0 +1,40 @@
fileFormatVersion: 2
guid: cae0a78f915b13748ba09fd56bafb4c8
timeCreated: 1606638456
licenseType: Store
PluginImporter:
serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
data:
first:
Android: Android
second:
enabled: 1
settings: {}
data:
first:
Any:
second:
enabled: 0
settings: {}
data:
first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Android/SimpleFileBrowser.aar
uploadId: 758381