mirror of
https://github.com/ente-io/ente.git
synced 2025-08-10 08:22:20 +00:00
chore: move date related utils to date_time_util.dart
This commit is contained in:
parent
d2764fe7e1
commit
7743a4af98
@ -6,8 +6,8 @@ import "package:photos/models/file/file.dart";
|
|||||||
import "package:photos/theme/colors.dart";
|
import "package:photos/theme/colors.dart";
|
||||||
import "package:photos/theme/ente_theme.dart";
|
import "package:photos/theme/ente_theme.dart";
|
||||||
import "package:photos/ui/viewer/file/preview_status_widget.dart";
|
import "package:photos/ui/viewer/file/preview_status_widget.dart";
|
||||||
|
import "package:photos/utils/date_time_util.dart";
|
||||||
import "package:photos/utils/debouncer.dart";
|
import "package:photos/utils/debouncer.dart";
|
||||||
import "package:photos/utils/seconds_to_duration.dart";
|
|
||||||
|
|
||||||
class VideoWidget extends StatefulWidget {
|
class VideoWidget extends StatefulWidget {
|
||||||
final EnteFile file;
|
final EnteFile file;
|
||||||
|
@ -24,12 +24,11 @@ import "package:photos/ui/viewer/file/native_video_player_controls/play_pause_bu
|
|||||||
import "package:photos/ui/viewer/file/native_video_player_controls/seek_bar.dart";
|
import "package:photos/ui/viewer/file/native_video_player_controls/seek_bar.dart";
|
||||||
import "package:photos/ui/viewer/file/preview_status_widget.dart";
|
import "package:photos/ui/viewer/file/preview_status_widget.dart";
|
||||||
import "package:photos/ui/viewer/file/thumbnail_widget.dart";
|
import "package:photos/ui/viewer/file/thumbnail_widget.dart";
|
||||||
|
import "package:photos/utils/date_time_util.dart";
|
||||||
import "package:photos/utils/debouncer.dart";
|
import "package:photos/utils/debouncer.dart";
|
||||||
import "package:photos/utils/dialog_util.dart";
|
import "package:photos/utils/dialog_util.dart";
|
||||||
import "package:photos/utils/duration_to_seconds.dart";
|
|
||||||
import "package:photos/utils/exif_util.dart";
|
import "package:photos/utils/exif_util.dart";
|
||||||
import "package:photos/utils/file_util.dart";
|
import "package:photos/utils/file_util.dart";
|
||||||
import "package:photos/utils/seconds_to_duration.dart";
|
|
||||||
import "package:photos/utils/toast_util.dart";
|
import "package:photos/utils/toast_util.dart";
|
||||||
import "package:visibility_detector/visibility_detector.dart";
|
import "package:visibility_detector/visibility_detector.dart";
|
||||||
|
|
||||||
@ -617,9 +616,7 @@ class _SeekBarAndDuration extends StatelessWidget {
|
|||||||
_,
|
_,
|
||||||
) {
|
) {
|
||||||
return Text(
|
return Text(
|
||||||
secondsToDuration(
|
secondsToDuration(value),
|
||||||
value,
|
|
||||||
),
|
|
||||||
style: getEnteTextTheme(
|
style: getEnteTextTheme(
|
||||||
context,
|
context,
|
||||||
).mini.copyWith(
|
).mini.copyWith(
|
||||||
@ -638,9 +635,7 @@ class _SeekBarAndDuration extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
duration ?? "0:00",
|
duration ?? "0:00",
|
||||||
style: getEnteTextTheme(
|
style: getEnteTextTheme(context).mini.copyWith(
|
||||||
context,
|
|
||||||
).mini.copyWith(
|
|
||||||
color: textBaseDark,
|
color: textBaseDark,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -216,3 +216,40 @@ bool isNumeric(String? s) {
|
|||||||
}
|
}
|
||||||
return double.tryParse(s) != null;
|
return double.tryParse(s) != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Returns the duration in seconds from the format "h:mm:ss" or "m:ss".
|
||||||
|
int? durationToSeconds(String? duration) {
|
||||||
|
if (duration == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
final parts = duration.split(':');
|
||||||
|
int seconds = 0;
|
||||||
|
|
||||||
|
if (parts.length == 3) {
|
||||||
|
// Format: "h:mm:ss"
|
||||||
|
seconds += int.parse(parts[0]) * 3600; // Hours to seconds
|
||||||
|
seconds += int.parse(parts[1]) * 60; // Minutes to seconds
|
||||||
|
seconds += int.parse(parts[2]); // Seconds
|
||||||
|
} else if (parts.length == 2) {
|
||||||
|
// Format: "m:ss"
|
||||||
|
seconds += int.parse(parts[0]) * 60; // Minutes to seconds
|
||||||
|
seconds += int.parse(parts[1]); // Seconds
|
||||||
|
} else {
|
||||||
|
throw FormatException('Invalid duration format: $duration');
|
||||||
|
}
|
||||||
|
|
||||||
|
return seconds;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Returns the duration in the format "h:mm:ss" or "m:ss".
|
||||||
|
String secondsToDuration(int totalSeconds) {
|
||||||
|
final hours = totalSeconds ~/ 3600;
|
||||||
|
final minutes = (totalSeconds % 3600) ~/ 60;
|
||||||
|
final seconds = totalSeconds % 60;
|
||||||
|
|
||||||
|
if (hours > 0) {
|
||||||
|
return '${hours.toString().padLeft(1, '0')}:${minutes.toString().padLeft(2, '0')}:${seconds.toString().padLeft(2, '0')}';
|
||||||
|
} else {
|
||||||
|
return '${minutes.toString().padLeft(1, '0')}:${seconds.toString().padLeft(2, '0')}';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -1,23 +0,0 @@
|
|||||||
/// Returns the duration in seconds from the format "h:mm:ss" or "m:ss".
|
|
||||||
int? durationToSeconds(String? duration) {
|
|
||||||
if (duration == null) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
final parts = duration.split(':');
|
|
||||||
int seconds = 0;
|
|
||||||
|
|
||||||
if (parts.length == 3) {
|
|
||||||
// Format: "h:mm:ss"
|
|
||||||
seconds += int.parse(parts[0]) * 3600; // Hours to seconds
|
|
||||||
seconds += int.parse(parts[1]) * 60; // Minutes to seconds
|
|
||||||
seconds += int.parse(parts[2]); // Seconds
|
|
||||||
} else if (parts.length == 2) {
|
|
||||||
// Format: "m:ss"
|
|
||||||
seconds += int.parse(parts[0]) * 60; // Minutes to seconds
|
|
||||||
seconds += int.parse(parts[1]); // Seconds
|
|
||||||
} else {
|
|
||||||
throw FormatException('Invalid duration format: $duration');
|
|
||||||
}
|
|
||||||
|
|
||||||
return seconds;
|
|
||||||
}
|
|
@ -1,12 +0,0 @@
|
|||||||
/// Returns the duration in the format "h:mm:ss" or "m:ss".
|
|
||||||
String secondsToDuration(int totalSeconds) {
|
|
||||||
final hours = totalSeconds ~/ 3600;
|
|
||||||
final minutes = (totalSeconds % 3600) ~/ 60;
|
|
||||||
final seconds = totalSeconds % 60;
|
|
||||||
|
|
||||||
if (hours > 0) {
|
|
||||||
return '${hours.toString().padLeft(1, '0')}:${minutes.toString().padLeft(2, '0')}:${seconds.toString().padLeft(2, '0')}';
|
|
||||||
} else {
|
|
||||||
return '${minutes.toString().padLeft(1, '0')}:${seconds.toString().padLeft(2, '0')}';
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user