Use a universally supported library for file picking
This commit is contained in:
52
Assets/Plugins/SimpleFileBrowser/Android/FBCallbackHelper.cs
Normal file
52
Assets/Plugins/SimpleFileBrowser/Android/FBCallbackHelper.cs
Normal 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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
BIN
Assets/Plugins/SimpleFileBrowser/Android/SimpleFileBrowser.aar
Normal file
BIN
Assets/Plugins/SimpleFileBrowser/Android/SimpleFileBrowser.aar
Normal file
Binary file not shown.
@@ -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
|
||||
Reference in New Issue
Block a user