import Button from '@components/Button' import GracefullyImage from '@components/GracefullyImage' import { useAccessibility } from '@utils/accessibility/AccessibilityManager' import { connectMedia } from '@utils/api/helpers/connect' import { useGlobalStorage } from '@utils/storage/actions' import { StyleConstants } from '@utils/styles/constants' import { useTheme } from '@utils/styles/ThemeManager' import { ResizeMode, Video, VideoFullscreenUpdate } from 'expo-av' import { Platform } from 'expo-modules-core' import * as ScreenOrientation from 'expo-screen-orientation' import React, { useRef, useState } from 'react' import { Pressable, View } from 'react-native' import AttachmentAltText from './AltText' import { aspectRatio } from './dimensions' export interface Props { total: number index: number sensitiveShown: boolean video: Mastodon.AttachmentVideo | Mastodon.AttachmentGifv gifv?: boolean } const AttachmentVideo: React.FC = ({ total, index, sensitiveShown, video, gifv = false }) => { const { colors } = useTheme() const { reduceMotionEnabled } = useAccessibility() const [shouldAutoplayGifv] = useGlobalStorage.boolean('app.auto_play_gifv') const videoPlayer = useRef