[READ ONLY MIRROR] Open Source TikTok alternative built on AT Protocol github.com/sprksocial/client
flutter atproto video dart
10
fork

Configure Feed

Select the types of activity you want to include in your feed.

safe area upload button (#70)

the bible

authored by

Jean Carlo Polo and committed by
GitHub
432ba0ae 28ebd661

+48 -42
+48 -42
lib/src/features/posting/ui/pages/create_video_page.dart
··· 204 204 else 205 205 CameraView(cameraController: cameraState.value?.controller, isInitialized: cameraState.value?.isInitialized ?? false), 206 206 207 - Positioned( 208 - top: 20, 209 - left: 20, 210 - child: GestureDetector( 211 - onTap: () => context.router.maybePop(), 212 - child: Container( 213 - padding: const EdgeInsets.all(8), 214 - decoration: BoxDecoration(color: Colors.black.withAlpha(100), shape: BoxShape.circle), 215 - child: const Icon(FluentIcons.dismiss_24_regular, color: Colors.white, size: 24), 216 - ), 217 - ), 218 - ), 219 - 220 - Positioned( 221 - top: 20, 222 - left: 0, 223 - right: 0, 224 - child: Center( 225 - child: ModeSelector( 226 - isVideoMode: _isVideoMode, 227 - onModeSelected: (isVideoMode) => setState(() => _isVideoMode = isVideoMode), 228 - ), 229 - ), 230 - ), 231 - 232 - Positioned( 233 - bottom: 30, 234 - left: 0, 235 - right: 0, 236 - child: Column( 207 + SafeArea( 208 + child: Stack( 237 209 children: [ 238 - if (_isVideoMode) ...[ 239 - RecordingBar(isRecording: _isRecording, progress: _recordingProgress, timeText: _recordingTimeText), 240 - const SizedBox(height: 20), 241 - ], 242 - 243 - CameraControls( 244 - isVideoMode: _isVideoMode, 245 - isRecording: _isRecording, 246 - onCapturePressed: _onCapturePressed, 247 - onFlipCameraPressed: () => ref.read(cameraProvider.notifier).flipCamera(), 248 - onGalleryPressed: _onVideoGalleryPressed, 249 - onImageGalleryPressed: _onImageGalleryPressed, 210 + Positioned( 211 + top: 20, 212 + left: 20, 213 + child: GestureDetector( 214 + onTap: () => context.router.maybePop(), 215 + child: Container( 216 + padding: const EdgeInsets.all(8), 217 + decoration: BoxDecoration(color: Colors.black.withAlpha(100), shape: BoxShape.circle), 218 + child: const Icon(FluentIcons.dismiss_24_regular, color: Colors.white, size: 24), 219 + ), 220 + ), 221 + ), 222 + 223 + Positioned( 224 + top: 20, 225 + left: 0, 226 + right: 0, 227 + child: Center( 228 + child: ModeSelector( 229 + isVideoMode: _isVideoMode, 230 + onModeSelected: (isVideoMode) => setState(() => _isVideoMode = isVideoMode), 231 + ), 232 + ), 233 + ), 234 + 235 + Positioned( 236 + bottom: 30, 237 + left: 0, 238 + right: 0, 239 + child: Column( 240 + children: [ 241 + if (_isVideoMode) ...[ 242 + RecordingBar(isRecording: _isRecording, progress: _recordingProgress, timeText: _recordingTimeText), 243 + const SizedBox(height: 20), 244 + ], 245 + 246 + CameraControls( 247 + isVideoMode: _isVideoMode, 248 + isRecording: _isRecording, 249 + onCapturePressed: _onCapturePressed, 250 + onFlipCameraPressed: () => ref.read(cameraProvider.notifier).flipCamera(), 251 + onGalleryPressed: _onVideoGalleryPressed, 252 + onImageGalleryPressed: _onImageGalleryPressed, 253 + ), 254 + ], 255 + ), 250 256 ), 251 257 ], 252 258 ),