Exemplo n.º 1
0
    private static Permission GetMultipleMediaFromGallery(MediaPickMultipleCallback callback, MediaType mediaType, string mime, string title)
    {
        Permission result = RequestPermission(true);

        if (result == Permission.Granted && !IsMediaPickerBusy())
        {
            if (CanSelectMultipleFilesFromGallery())
            {
#if !UNITY_EDITOR && UNITY_ANDROID
                AJC.CallStatic("PickMedia", Context, new NGMediaReceiveCallbackAndroid(null, callback), (int)mediaType, true, SelectedMediaPath, mime, title);
#elif !UNITY_EDITOR && UNITY_IOS
                Debug.LogError("Picking multiple media is not supported on iOS");

                if (callback != null)
                {
                    callback(null);
                }
#else
                if (callback != null)
                {
                    callback(null);
                }
#endif
            }
            else if (callback != null)
            {
                callback(null);
            }
        }

        return(result);
    }
Exemplo n.º 2
0
    private static Permission GetMultipleMediaFromGallery(MediaPickMultipleCallback callback, bool imageMode, string mime, string title, int maxSize)
    {
        Permission result = RequestPermission(true);

        if (result == Permission.Granted && !IsMediaPickerBusy())
        {
            if (CanSelectMultipleFilesFromGallery())
            {
#if !UNITY_EDITOR && UNITY_ANDROID
                AJC.CallStatic("PickMedia", Context, new NGMediaReceiveCallbackAndroid(null, callback), imageMode, true, mime, title);
#else
                if (callback != null)
                {
                    callback(null);
                }
#endif
            }
            else if (callback != null)
            {
                callback(null);
            }
        }

        return(result);
    }
Exemplo n.º 3
0
    private static Permission GetMultipleMediaFromGallery(MediaPickMultipleCallback callback, bool imageMode, string mime, string title, int maxSize)
    {
        Permission result = RequestPermission();

        if (result == Permission.Granted && !IsMediaPickerBusy())
        {
            if (CanSelectMultipleFilesFromGallery())
            {
#if !UNITY_EDITOR && UNITY_ANDROID
                object threadLock = new object();
                lock ( threadLock )
                {
                    NGMediaReceiveCallbackAndroid nativeCallback = new NGMediaReceiveCallbackAndroid(threadLock);

                    AJC.CallStatic("PickMedia", Context, nativeCallback, imageMode, true, mime, title);

                    if (nativeCallback.Paths == null)
                    {
                        System.Threading.Monitor.Wait(threadLock);
                    }

                    string[] paths = nativeCallback.Paths;
                    if (paths != null && paths.Length == 0)
                    {
                        paths = null;
                    }

                    if (callback != null)
                    {
                        callback(paths);
                    }
                }
#else
                if (callback != null)
                {
                    callback(null);
                }
#endif
            }
            else if (callback != null)
            {
                callback(null);
            }
        }

        return(result);
    }
Exemplo n.º 4
0
    private static Permission GetMultipleMediaFromGallery(MediaPickMultipleCallback callback, MediaType mediaType, string mime, string title)
    {
        Permission result = RequestPermission(PermissionType.Read);

        if (result == Permission.Granted && !IsMediaPickerBusy())
        {
            if (CanSelectMultipleFilesFromGallery())
            {
#if !UNITY_EDITOR && UNITY_ANDROID
                AJC.CallStatic("PickMedia", Context, new NGMediaReceiveCallbackAndroid(null, callback), (int)mediaType, true, SelectedMediaPath, mime, title);
#elif !UNITY_EDITOR && UNITY_IOS
                if (mediaType == MediaType.Audio)
                {
                    Debug.LogError("Picking audio files is not supported on iOS");

                    if (callback != null)                      // Selecting audio files is not supported on iOS
                    {
                        callback(null);
                    }
                }
                else
                {
                    NGMediaReceiveCallbackiOS.Initialize(null, callback);
                    _NativeGallery_PickMedia(SelectedMediaPath, (int)(mediaType & ~MediaType.Audio), PermissionFreeMode ? 1 : 0, 0);
                }
#else
                if (callback != null)
                {
                    callback(null);
                }
#endif
            }
            else if (callback != null)
            {
                callback(null);
            }
        }

        return(result);
    }
Exemplo n.º 5
0
    private static Permission GetMultipleMediaFromGallery(MediaPickMultipleCallback callback, MediaType mediaType, string mime, string title)
    {
        Permission result = RequestPermission(true);

        if (result == Permission.Granted && !IsMediaPickerBusy())
        {
            if (CanSelectMultipleFilesFromGallery())
            {
#if !UNITY_EDITOR && UNITY_ANDROID
                string savePath;
                if (mediaType == MediaType.Image)
                {
                    savePath = SelectedImagePath;
                }
                else if (mediaType == MediaType.Video)
                {
                    savePath = SelectedVideoPath;
                }
                else
                {
                    savePath = SelectedAudioPath;
                }

                AJC.CallStatic("PickMedia", Context, new NGMediaReceiveCallbackAndroid(null, callback), (int)mediaType, true, savePath, mime, title);
#else
                if (callback != null)
                {
                    callback(null);
                }
#endif
            }
            else if (callback != null)
            {
                callback(null);
            }
        }

        return(result);
    }
Exemplo n.º 6
0
 public static Permission GetVideosFromGallery(MediaPickMultipleCallback callback, string title = "", string mime = "video/*")
 {
     return(GetMultipleMediaFromGallery(callback, false, mime, title, -1));
 }
Exemplo n.º 7
0
 public static Permission GetImagesFromGallery(MediaPickMultipleCallback callback, string title = "", string mime = "image/*", int maxSize = -1)
 {
     return(GetMultipleMediaFromGallery(callback, true, mime, title, maxSize));
 }
Exemplo n.º 8
0
 public static Permission GetMixedMediasFromGallery(MediaPickMultipleCallback callback, MediaType mediaTypes, string title = "")
 {
     return(GetMultipleMediaFromGallery(callback, mediaTypes, "*/*", title));
 }
Exemplo n.º 9
0
 public static Permission GetAudiosFromGallery(MediaPickMultipleCallback callback, string title = "", string mime = "audio/*")
 {
     return(GetMultipleMediaFromGallery(callback, MediaType.Audio, mime, title));
 }
Exemplo n.º 10
0
 public static Permission GetImagesFromGallery(MediaPickMultipleCallback callback, string title = "", string mime = "image/*")
 {
     return(GetMultipleMediaFromGallery(callback, MediaType.Image, mime, title));
 }