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 static DropdownController <IosImagePickerVideoQualityType> SetupVideoQualityDropdown( IIosImagePicker iosImagePicker, GameObject rowGameObject, Dropdown dropdown, ToggleGroupController <string> mediaTypesToggleGroupController) { var allQualityTypes = new[] { IosImagePickerVideoQualityType.High, IosImagePickerVideoQualityType.Medium, IosImagePickerVideoQualityType.Low, IosImagePickerVideoQualityType.VGA640x480, IosImagePickerVideoQualityType.IFrame1280x720, IosImagePickerVideoQualityType.IFrame960x540, }; var valueVisibilityFilter = default(Func <IosImagePickerVideoQualityType, bool>); if (iosImagePicker is NativeIosImagePicker) { valueVisibilityFilter = qualityType => { var currentMediaTypes = iosImagePicker.MediaTypes; return(currentMediaTypes != null && Array.IndexOf(currentMediaTypes, iosImagePicker.MediaTypeMovie) > -1); }; } var dropdownController = new DropdownController <IosImagePickerVideoQualityType>( allQualityTypes, rowGameObject, dropdown, () => iosImagePicker.VideoQuality, videoQuality => iosImagePicker.VideoQuality = videoQuality, valueVisibilityFilter); dropdownController.Setup(); mediaTypesToggleGroupController.AddDependantController(dropdownController); return(dropdownController); }
private static DropdownController <TimeSpan> SetupVideoMaxDurationDropdown( IIosImagePicker iosImagePicker, GameObject rowGameObject, Dropdown dropdown, ToggleGroupController <string> mediaTypesToggleGroupController) { var allMaxDurations = new[] { TimeSpan.FromSeconds(30.0), TimeSpan.FromSeconds(200.0), TimeSpan.FromSeconds(600.0), }; iosImagePicker.VideoMaximumDuration = allMaxDurations[0]; var valueVisibilityFilter = default(Func <TimeSpan, bool>); if (iosImagePicker is NativeIosImagePicker) { valueVisibilityFilter = maxDuration => { var currentMediaTypes = iosImagePicker.MediaTypes; return(currentMediaTypes != null && Array.IndexOf(currentMediaTypes, iosImagePicker.MediaTypeMovie) > -1); }; } var dropdownController = new DropdownController <TimeSpan>( allMaxDurations, rowGameObject, dropdown, () => iosImagePicker.VideoMaximumDuration, maxDuration => iosImagePicker.VideoMaximumDuration = maxDuration, valueVisibilityFilter); dropdownController.Setup(); mediaTypesToggleGroupController.AddDependantController(dropdownController); return(dropdownController); }