Пример #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);
    }
Пример #2
0
    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);
    }
Пример #3
0
    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);
    }