Skip to content

Commit

Permalink
Update QU item info with icon and countdown
Browse files Browse the repository at this point in the history
  • Loading branch information
xiprox committed May 12, 2023
1 parent 7ccbfb7 commit e74bb28
Showing 1 changed file with 29 additions and 12 deletions.
41 changes: 29 additions & 12 deletions lib/features/quick_update/content/entry/info.dart
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
import 'package:aoba/data/model/aliases.dart';
import 'package:aoba/exts/build_context_exts.dart';
import 'package:aoba/exts/date_time_exts.dart';
import 'package:aoba/exts/duration_exts.dart';
import 'package:aoba/widgets/action_loading_error/action_loading_error.dart';
import 'package:aoba/widgets/media_cover_info_box/media_cover_info_box.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:intl/intl.dart';
import 'package:timer_builder/timer_builder.dart';

class Info extends StatelessWidget {
final int? progress;
Expand Down Expand Up @@ -39,11 +40,8 @@ class Info extends StatelessWidget {
final inkColor = colors.primary.withOpacity(0.2);
final hoverColor = colors.primary.withOpacity(0.1);

final airDate = DateTime.fromMillisecondsSinceEpoch((airingAt ?? 0) * 1000);
final durationUntilAiring = Duration(seconds: timeUntilAiring ?? 0);
final countdown = durationUntilAiring.inHours < 3
? durationUntilAiring.toAiringCountdown()
: DateFormat('E h:mm a').format(airDate);
final countdown = Duration(seconds: timeUntilAiring ?? 0);
final airingMoment = DateTime.now().add(countdown);

final lastAiredEpisode = (airingEpisode ?? 1) - 1;
final leftBehindEpisodes = lastAiredEpisode - (progress ?? 0);
Expand Down Expand Up @@ -105,12 +103,31 @@ class Info extends StatelessWidget {
),
],
if (hasAiringInfo) ...[
Text(
countdown,
style: TextStyle(
color: colors.secondary.withOpacity(0.8),
fontSize: 12,
),
Row(
children: [
Icon(
Icons.upcoming_outlined,
size: 14,
color: colors.secondary.withOpacity(0.8),
),
const SizedBox(width: 4),
Expanded(
child: TimerBuilder.periodic(
countdown.refreshPeriod(),
builder: (context) {
final diff = airingMoment.diffFromNow();
final aired = diff.inSeconds <= 0;
return Text(
aired ? 'Aired!' : diff.toAiringCountdown(),
style: TextStyle(
color: colors.secondary.withOpacity(0.8),
fontSize: 12,
),
);
},
),
),
],
),
],
],
Expand Down

0 comments on commit e74bb28

Please sign in to comment.