[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.

fix: sound picker light mode text

+33 -21
+14 -9
lib/src/core/pro_video_editor/ui/widgets/audio/audio_edit_controls_section.dart
··· 1 1 import 'package:flutter/material.dart'; 2 2 import 'package:pro_image_editor/pro_image_editor.dart'; 3 - import 'package:spark/src/core/design_system/tokens/colors.dart'; 4 3 import 'package:spark/src/core/pro_video_editor/ui/widgets/audio/audio_waveform_selector.dart'; 5 4 6 5 /// Displays edit controls for the selected audio track. ··· 95 94 } 96 95 97 96 Widget _buildTrackInfo() { 97 + final colorScheme = Theme.of(context).colorScheme; 98 + 98 99 return Container( 99 100 padding: const EdgeInsets.all(16), 100 101 decoration: BoxDecoration( 101 - color: AppColors.grey800, 102 + color: colorScheme.surfaceContainerHighest, 102 103 borderRadius: BorderRadius.circular(12), 103 104 ), 104 105 child: Row( ··· 128 129 children: [ 129 130 Text( 130 131 widget.audioTrack.title, 131 - style: const TextStyle( 132 + style: TextStyle( 132 133 fontSize: 16, 133 134 fontWeight: FontWeight.w600, 134 - color: Colors.white, 135 + color: colorScheme.onSurface, 135 136 ), 136 137 maxLines: 1, 137 138 overflow: TextOverflow.ellipsis, ··· 141 142 widget.audioTrack.subtitle, 142 143 style: TextStyle( 143 144 fontSize: 14, 144 - color: Colors.white.withAlpha(179), 145 + color: colorScheme.onSurfaceVariant, 145 146 ), 146 147 maxLines: 1, 147 148 overflow: TextOverflow.ellipsis, ··· 169 170 170 171 Widget _buildBalanceSlider() { 171 172 final balanceSliderBackground = _style.balanceSliderBackground; 173 + final colorScheme = Theme.of(context).colorScheme; 174 + 172 175 return Column( 173 176 crossAxisAlignment: CrossAxisAlignment.start, 174 177 children: [ 175 - const Text( 178 + Text( 176 179 'Balance', 177 180 style: TextStyle( 178 181 fontSize: 14, 179 182 fontWeight: FontWeight.w500, 180 - color: Colors.white, 183 + color: colorScheme.onSurface, 181 184 ), 182 185 ), 183 186 const SizedBox(height: 12), ··· 216 219 } 217 220 218 221 Widget _buildStartTimeSelector() { 222 + final colorScheme = Theme.of(context).colorScheme; 223 + 219 224 return Column( 220 225 crossAxisAlignment: CrossAxisAlignment.start, 221 226 children: [ 222 - const Text( 227 + Text( 223 228 'Start Time', 224 229 style: TextStyle( 225 230 fontSize: 14, 226 231 fontWeight: FontWeight.w500, 227 - color: Colors.white, 232 + color: colorScheme.onSurface, 228 233 ), 229 234 ), 230 235 const SizedBox(height: 12),
+13 -8
lib/src/core/pro_video_editor/ui/widgets/audio/audio_selection_bottom_sheet.dart
··· 1 1 import 'package:flutter/material.dart'; 2 2 import 'package:pro_image_editor/pro_image_editor.dart'; 3 - import 'package:spark/src/core/design_system/tokens/colors.dart'; 4 3 import 'package:spark/src/core/pro_video_editor/ui/widgets/audio/audio_edit_controls_section.dart'; 5 4 import 'package:spark/src/core/pro_video_editor/ui/widgets/audio/audio_track_list_section.dart'; 6 5 ··· 118 117 119 118 @override 120 119 Widget build(BuildContext context) { 120 + final colorScheme = Theme.of(context).colorScheme; 121 + 121 122 return Container( 122 - decoration: const BoxDecoration( 123 - color: AppColors.grey900, 124 - borderRadius: BorderRadius.vertical(top: Radius.circular(20)), 123 + decoration: BoxDecoration( 124 + color: colorScheme.surface, 125 + borderRadius: const BorderRadius.vertical(top: Radius.circular(20)), 125 126 ), 126 127 child: Column( 127 128 mainAxisSize: MainAxisSize.min, ··· 170 171 } 171 172 172 173 Widget _buildDragHandle() { 174 + final colorScheme = Theme.of(context).colorScheme; 175 + 173 176 return Container( 174 177 margin: const EdgeInsets.only(top: 12, bottom: 8), 175 178 width: 40, 176 179 height: 4, 177 180 decoration: BoxDecoration( 178 - color: AppColors.grey600, 181 + color: colorScheme.outlineVariant, 179 182 borderRadius: BorderRadius.circular(2), 180 183 ), 181 184 ); ··· 183 186 184 187 Widget _buildHeader() { 185 188 final i18n = widget.configs.i18n.audioEditor; 189 + final colorScheme = Theme.of(context).colorScheme; 190 + 186 191 return Padding( 187 192 padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 12), 188 193 child: Row( ··· 190 195 Expanded( 191 196 child: Text( 192 197 _showEditControls ? i18n.editTrack : 'Select Track', 193 - style: const TextStyle( 198 + style: TextStyle( 194 199 fontSize: 18, 195 200 fontWeight: FontWeight.w600, 196 - color: Colors.white, 201 + color: colorScheme.onSurface, 197 202 ), 198 203 ), 199 204 ), 200 205 if (!_showEditControls) 201 206 IconButton( 202 - icon: const Icon(Icons.close, color: Colors.white), 207 + icon: Icon(Icons.close, color: colorScheme.onSurface), 203 208 onPressed: () => Navigator.of(context).pop(), 204 209 ), 205 210 ],
+6 -4
lib/src/core/pro_video_editor/ui/widgets/audio/audio_track_list_section.dart
··· 32 32 @override 33 33 Widget build(BuildContext context) { 34 34 if (audioTracks.isEmpty) { 35 - return _buildEmptyState(); 35 + return _buildEmptyState(context); 36 36 } 37 37 return ListView.builder( 38 38 padding: const EdgeInsets.symmetric(vertical: 8, horizontal: 12), ··· 53 53 ); 54 54 } 55 55 56 - Widget _buildEmptyState() { 56 + Widget _buildEmptyState(BuildContext context) { 57 + final colorScheme = Theme.of(context).colorScheme; 58 + 57 59 return Center( 58 60 child: Padding( 59 61 padding: const EdgeInsets.all(32), ··· 63 65 Icon( 64 66 configs.audioEditor.icons.audioTrackDefaultIcon, 65 67 size: 48, 66 - color: Colors.white.withAlpha(128), 68 + color: colorScheme.onSurfaceVariant.withAlpha(128), 67 69 ), 68 70 const SizedBox(height: 16), 69 71 Text( 70 72 'No audio tracks available', 71 73 style: TextStyle( 72 74 fontSize: 16, 73 - color: Colors.white.withAlpha(179), 75 + color: colorScheme.onSurfaceVariant, 74 76 ), 75 77 textAlign: TextAlign.center, 76 78 ),