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); }
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; }
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)); }
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); }
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); }