Esempio n. 1
0
    private static ToggleGroupController <string> SetupMediaTypesToggleGroup(
        IIosImagePicker iosImagePicker,
        Text imageTypeText,
        Text movieTypeText,
        Toggle imageTypeToggle,
        Toggle movieTypeToggle,
        DropdownController <IosImagePickerSourceType> sourceTypeDropdownController)
    {
        var values = new[]
        {
            iosImagePicker.MediaTypeImage,
            iosImagePicker.MediaTypeMovie,
        };

        var labels = new[]
        {
            imageTypeText,
            movieTypeText,
        };

        var toggles = new[]
        {
            imageTypeToggle,
            movieTypeToggle,
        };

        var valueVisibilityFilter = default(Func <string, bool>);

        if (iosImagePicker is NativeIosImagePicker)
        {
            valueVisibilityFilter = mediaType =>
            {
                var availableMediaTypes = NativeIosImagePicker.AvailableMediaTypesForSourceType(iosImagePicker.SourceType);
                return(availableMediaTypes != null && Array.IndexOf(availableMediaTypes, mediaType) > -1);
            };
        }

        var toggleGroupController = new ToggleGroupController <string>(
            values,
            labels,
            toggles,
            () => iosImagePicker.MediaTypes,
            mediaTypes => iosImagePicker.MediaTypes = mediaTypes,
            valueVisibilityFilter);

        toggleGroupController.Setup();
        sourceTypeDropdownController.AddDependantController(toggleGroupController);
        return(toggleGroupController);
    }
Esempio n. 2
0
    private void Start()
    {
        var iosImagePicker = default(IIosImagePicker);

#if UNITY_EDITOR
        iosImagePicker = new IosImagePicker.Editor.EditorIosImagePicker();
#else
        if (NativeIosImagePicker.IsCurrentPlatformSupported)
        {
            iosImagePicker = new NativeIosImagePicker();
        }
#endif
        var interfaceControllers = new List <IInterfaceController>();

        var sourceTypeDropdownController = SetupSourceTypeDropdown(iosImagePicker, this.sourceTypeRowGameObject, this.sourceTypeDropdown);
        interfaceControllers.Add(sourceTypeDropdownController);

        var mediaTypesToggleGroupController = SetupMediaTypesToggleGroup(iosImagePicker, this.imageTypeText, this.movieTypeText, this.imageTypeToggle, this.movieTypeToggle, sourceTypeDropdownController);
        interfaceControllers.Add(mediaTypesToggleGroupController);

        var cameraDeviceDropdownController = SetupCameraDeviceDropdown(iosImagePicker, this.cameraDeviceRowGameObject, this.cameraDeviceDropdown);
        interfaceControllers.Add(cameraDeviceDropdownController);

        var cameraCaptureModeDropdownController = SetupCameraCaptureModeDropdown(iosImagePicker, this.cameraCaptureModeRowGameObject, this.cameraCaptureModeDropdown, cameraDeviceDropdownController);
        interfaceControllers.Add(cameraCaptureModeDropdownController);

        var cameraFlashModeDropdownController = SetupCameraFlashModeDropdown(iosImagePicker, this.cameraFlashModeRowGameObject, this.cameraFlashModeDropdown, cameraDeviceDropdownController);
        interfaceControllers.Add(cameraFlashModeDropdownController);

        var allowsEditingDropdownController = SetupAllowsEditingDropdown(iosImagePicker, this.allowsEditingRowGameObject, this.allowsEditingDropdown);
        interfaceControllers.Add(allowsEditingDropdownController);

        var videoQualityDropdownController = SetupVideoQualityDropdown(iosImagePicker, this.videoQualityRowGameObject, this.videoQualityDropdown, mediaTypesToggleGroupController);
        interfaceControllers.Add(videoQualityDropdownController);

        var videoMaxDurationDropdownController = SetupVideoMaxDurationDropdown(iosImagePicker, this.videoMaxDurationRowGameObject, this.videoMaxDurationDropdown, mediaTypesToggleGroupController);
        interfaceControllers.Add(videoMaxDurationDropdownController);

        for (var i = 0; i < interfaceControllers.Count; i++)
        {
            interfaceControllers[i].Refresh();
        }

        this._iosImagePicker       = iosImagePicker;
        this._interfaceControllers = interfaceControllers;
    }
Esempio n. 3
0
    private void CleanupPluginFolder(bool preview)
    {
        var cleanupResult = NativeIosImagePicker.CleanupPluginFolder(preview);

        if (cleanupResult == null || cleanupResult.DeletionEntries == null)
        {
            return;
        }

        var totalFileSize = 0UL;
        var stringBuilder = new StringBuilder("CLEANUP:\n");

        for (var i = 0; i < cleanupResult.DeletionEntries.Length; i++)
        {
            var deletionEntry = cleanupResult.DeletionEntries[i];
            var allDetails    = new[]
            {
                deletionEntry.Path,
                deletionEntry.FileSize + " bytes",
                deletionEntry.IsDirectory ? "Is a Directory" : "Not a Directory",
                deletionEntry.WouldDelete ? "Would Be Deleted" : "",
                deletionEntry.Deleted ? "Deleted" : "",
            };

            totalFileSize += deletionEntry.FileSize;

            stringBuilder.AppendLine(string.Join(" ", allDetails));
        }

        Debug.Log(stringBuilder.ToString());

        var summaryDetails = new[]
        {
            preview ? "WOULD DELETE" : "DELETED",
            cleanupResult.DeletionEntries.Length + " files",
            totalFileSize + " bytes total",
        };

        Debug.Log(string.Join(" ", summaryDetails));
    }
Esempio n. 4
0
    private static DropdownController <IosImagePickerCameraFlashMode> SetupCameraFlashModeDropdown(
        IIosImagePicker iosImagePicker,
        GameObject rowGameObject,
        Dropdown dropdown,
        DropdownController <IosImagePickerCameraDevice> cameraDeviceDropdownController)
    {
        var allFlashModes = new[]
        {
            IosImagePickerCameraFlashMode.Auto,
            IosImagePickerCameraFlashMode.On,
            IosImagePickerCameraFlashMode.Off,
        };

        var valueVisibilityFilter = default(Func <IosImagePickerCameraFlashMode, bool>);

        if (iosImagePicker is NativeIosImagePicker)
        {
            valueVisibilityFilter = flashMode =>
            {
                var currentCameraDevice = iosImagePicker.CameraDevice;
                return(flashMode != IosImagePickerCameraFlashMode.On || NativeIosImagePicker.IsFlashAvailableForCameraDevice(currentCameraDevice));
            };
        }

        var dropdownController = new DropdownController <IosImagePickerCameraFlashMode>(
            allFlashModes,
            rowGameObject,
            dropdown,
            () => iosImagePicker.CameraFlashMode,
            flashMode => iosImagePicker.CameraFlashMode = flashMode,
            valueVisibilityFilter);

        dropdownController.Setup();
        cameraDeviceDropdownController.AddDependantController(dropdownController);
        return(dropdownController);
    }
Esempio n. 5
0
    private static DropdownController <IosImagePickerCameraCaptureMode> SetupCameraCaptureModeDropdown(
        IIosImagePicker iosImagePicker,
        GameObject rowGameObject,
        Dropdown dropdown,
        DropdownController <IosImagePickerCameraDevice> cameraDeviceDropdownController)
    {
        var allCaptureModes = new[]
        {
            IosImagePickerCameraCaptureMode.Photo,
            IosImagePickerCameraCaptureMode.Video,
        };

        var valueVisibilityFilter = default(Func <IosImagePickerCameraCaptureMode, bool>);

        if (iosImagePicker is NativeIosImagePicker)
        {
            valueVisibilityFilter = captureMode =>
            {
                var currentCameraDevice   = iosImagePicker.CameraDevice;
                var availableCaptureModes = NativeIosImagePicker.AvailableCaptureModesForCameraDevice(currentCameraDevice);
                return(availableCaptureModes != null && Array.IndexOf(availableCaptureModes, captureMode) > -1);
            };
        }

        var dropdownController = new DropdownController <IosImagePickerCameraCaptureMode>(
            allCaptureModes,
            rowGameObject,
            dropdown,
            () => iosImagePicker.CameraCaptureMode,
            captureMode => iosImagePicker.CameraCaptureMode = captureMode,
            valueVisibilityFilter);

        dropdownController.Setup();
        cameraDeviceDropdownController.AddDependantController(dropdownController);
        return(dropdownController);
    }