mirror of
https://github.com/immich-app/immich.git
synced 2026-05-18 03:10:24 +03:00
feat(mobile): use material design 3 slider (#26829)
* feat(mobile): use material design 3 slider The new slider is easier to use, and looks more modern. * chore: add shadow to button and text for better visibility --------- Co-authored-by: Alex <alex.tran1502@gmail.com>
This commit is contained in:
@@ -62,8 +62,6 @@ ThemeData getThemeData({required ColorScheme colorScheme, required Locale locale
|
|||||||
),
|
),
|
||||||
chipTheme: const ChipThemeData(side: BorderSide.none),
|
chipTheme: const ChipThemeData(side: BorderSide.none),
|
||||||
sliderTheme: const SliderThemeData(
|
sliderTheme: const SliderThemeData(
|
||||||
thumbShape: RoundSliderThumbShape(enabledThumbRadius: 7),
|
|
||||||
trackHeight: 2.0,
|
|
||||||
// ignore: deprecated_member_use
|
// ignore: deprecated_member_use
|
||||||
year2023: false,
|
year2023: false,
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -14,6 +14,8 @@ import 'package:immich_mobile/widgets/asset_viewer/animated_play_pause.dart';
|
|||||||
class VideoControls extends HookConsumerWidget {
|
class VideoControls extends HookConsumerWidget {
|
||||||
final String videoPlayerName;
|
final String videoPlayerName;
|
||||||
|
|
||||||
|
static const List<Shadow> _controlShadows = [Shadow(color: Colors.black87, blurRadius: 6, offset: Offset(0, 1))];
|
||||||
|
|
||||||
const VideoControls({super.key, required this.videoPlayerName});
|
const VideoControls({super.key, required this.videoPlayerName});
|
||||||
|
|
||||||
void _toggle(WidgetRef ref, bool isCasting) {
|
void _toggle(WidgetRef ref, bool isCasting) {
|
||||||
@@ -70,14 +72,17 @@ class VideoControls extends HookConsumerWidget {
|
|||||||
children: [
|
children: [
|
||||||
Row(
|
Row(
|
||||||
children: [
|
children: [
|
||||||
IconButton(
|
IconTheme(
|
||||||
iconSize: 32,
|
data: const IconThemeData(shadows: _controlShadows),
|
||||||
padding: const EdgeInsets.all(12),
|
child: IconButton(
|
||||||
constraints: const BoxConstraints(),
|
iconSize: 32,
|
||||||
icon: isFinished
|
padding: const EdgeInsets.all(12),
|
||||||
? const Icon(Icons.replay, color: Colors.white, size: 32)
|
constraints: const BoxConstraints(),
|
||||||
: AnimatedPlayPause(color: Colors.white, size: 32, playing: isPlaying),
|
icon: isFinished
|
||||||
onPressed: () => _toggle(ref, isCasting),
|
? const Icon(Icons.replay, color: Colors.white, size: 32)
|
||||||
|
: AnimatedPlayPause(color: Colors.white, size: 32, playing: isPlaying),
|
||||||
|
onPressed: () => _toggle(ref, isCasting),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
const Spacer(),
|
const Spacer(),
|
||||||
Text(
|
Text(
|
||||||
@@ -86,6 +91,7 @@ class VideoControls extends HookConsumerWidget {
|
|||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
fontWeight: FontWeight.w500,
|
fontWeight: FontWeight.w500,
|
||||||
fontFeatures: [FontFeature.tabularFigures()],
|
fontFeatures: [FontFeature.tabularFigures()],
|
||||||
|
shadows: _controlShadows,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
const SizedBox(width: 16),
|
const SizedBox(width: 16),
|
||||||
|
|||||||
Reference in New Issue
Block a user