Skip to content

Commit

Permalink
chore: real-time like button for downloaded item info
Browse files Browse the repository at this point in the history
  • Loading branch information
MSOB7YY committed Nov 20, 2023
1 parent 5079801 commit 9e9cff0
Showing 1 changed file with 26 additions and 6 deletions.
32 changes: 26 additions & 6 deletions lib/youtube/widgets/yt_download_task_item_card.dart
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import 'package:namida/ui/widgets/settings/extra_settings.dart';
import 'package:namida/youtube/class/youtube_id.dart';
import 'package:namida/youtube/class/youtube_item_download_config.dart';
import 'package:namida/youtube/controller/youtube_controller.dart';
import 'package:namida/youtube/controller/youtube_playlist_controller.dart';
import 'package:namida/youtube/widgets/yt_thumbnail.dart';
import 'package:namida/youtube/yt_utils.dart';

Expand Down Expand Up @@ -148,12 +149,13 @@ class YTDownloadTaskItemCard extends StatelessWidget {

final saveLocation = "${AppDirs.YOUTUBE_DOWNLOADS}$groupName/${item.filename}";

List<Widget> getTrailing(IconData icon, String text) {
List<Widget> getTrailing(IconData icon, String text, {Widget? iconWidget}) {
return [
Icon(
icon,
size: 22.0,
),
iconWidget ??
Icon(
icon,
size: 18.0,
),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 4.0),
child: Text(
Expand All @@ -171,7 +173,25 @@ class YTDownloadTaskItemCard extends StatelessWidget {
trailingWidgets: [
...getTrailing(Broken.eye, info?.viewCount?.formatDecimalShort() ?? '?'),
const SizedBox(width: 6.0),
...getTrailing(Broken.like_1, info?.likeCount?.formatDecimalShort() ?? '?'),
...() {
final videoId = info?.id ?? '';
final isUserLiked = YoutubePlaylistController.inst.favouritesPlaylist.value.tracks.firstWhereEff((element) => element.id == videoId) != null;
final videoLikeCount = info?.likeCount == null && !isUserLiked ? null : (isUserLiked ? 1 : 0) + (info?.likeCount ?? 0);
return getTrailing(
Broken.like_1,
videoLikeCount?.formatDecimalShort() ?? '?',
iconWidget: NamidaRawLikeButton(
size: 18.0,
likedIcon: Broken.like_filled,
normalIcon: Broken.like_1,
disabledColor: context.theme.iconTheme.color,
isLiked: isUserLiked,
onTap: (isLiked) async {
YoutubePlaylistController.inst.favouriteButtonOnPressed(videoId);
},
),
);
}(),
],
child: SizedBox(
height: context.height * 0.6,
Expand Down

0 comments on commit 9e9cff0

Please sign in to comment.