mirror of
https://github.com/KRTirtho/spotube.git
synced 2025-09-13 07:55:18 +00:00

Configuration File Removals: .vscode/c_cpp_properties.json: Removed the entire configuration for C/C++ properties. .vscode/launch.json: Removed the Dart launch configurations for different environments and modes. .vscode/settings.json: Removed settings related to CMake, spell checking, file nesting, and Dart Flutter SDK path. .vscode/snippets.code-snippets: Removed code snippets for Dart, including PaginatedState and PaginatedNotifier templates. .vscode/tasks.json: Removed the tasks configuration file. Documentation Updates: CONTRIBUTION.md: Removed heart emoji from the introductory text. README.md: Updated the logo image and made minor text adjustments, including removing emojis and updating section titles. [1] [2] [3] [4] [5] Asset Removals: lib/collections/assets.gen.dart: Removed multiple unused asset references, including images related to Spotube logos and banners. [1] [2] [3] Minor Code Cleanups: cli/commands/build/linux.dart, cli/commands/build/windows.dart, cli/commands/translated.dart, cli/commands/untranslated.dart: Adjusted import statements for consistency. [1] [2] [3] [4] integration_test/app_test.dart: Removed an unnecessary blank line. lib/collections/routes.dart: Commented out the TrackRoute configuration.
50 lines
1.4 KiB
Dart
50 lines
1.4 KiB
Dart
import 'package:duration/duration.dart';
|
|
import 'package:duration/locale.dart';
|
|
|
|
extension DurationToHumanReadableString on Duration {
|
|
String toHumanReadableString({padZero = true}) {
|
|
final mm = inMinutes
|
|
.remainder(60)
|
|
.toString()
|
|
.padLeft(2, !padZero && inHours == 0 ? '' : "0");
|
|
final ss = inSeconds.remainder(60).toString().padLeft(2, "0");
|
|
|
|
if (inHours > 0) {
|
|
final hh = inHours.toString().padLeft(2, !padZero ? '' : "0");
|
|
return "$hh:$mm:$ss";
|
|
}
|
|
|
|
return "$mm:$ss";
|
|
}
|
|
|
|
String format({
|
|
DurationTersity tersity = DurationTersity.second,
|
|
DurationTersity upperTersity = DurationTersity.week,
|
|
DurationLocale locale = const EnglishDurationLocale(),
|
|
String? spacer,
|
|
String? delimiter,
|
|
String? conjugation,
|
|
bool abbreviated = false,
|
|
}) =>
|
|
printDuration(
|
|
this,
|
|
tersity: tersity,
|
|
upperTersity: upperTersity,
|
|
locale: locale,
|
|
spacer: spacer,
|
|
delimiter: delimiter,
|
|
conjugation: conjugation,
|
|
abbreviated: abbreviated,
|
|
);
|
|
}
|
|
|
|
extension ParseDuration on Duration {
|
|
static Duration fromString(String duration) {
|
|
final parts = duration.split(':').reversed.toList();
|
|
final seconds = int.parse(parts[0]);
|
|
final minutes = parts.length > 1 ? int.parse(parts[1]) : 0;
|
|
final hours = parts.length > 2 ? int.parse(parts[2]) : 0;
|
|
return Duration(hours: hours, minutes: minutes, seconds: seconds);
|
|
}
|
|
}
|