Skip to content

Commit

Permalink
Reformat
Browse files Browse the repository at this point in the history
  • Loading branch information
Ziedelth committed Apr 19, 2024
1 parent fe80fc3 commit efdd3e9
Show file tree
Hide file tree
Showing 23 changed files with 451 additions and 241 deletions.
20 changes: 4 additions & 16 deletions lib/components/anime_component.dart
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
import 'package:application/components/card_component.dart';
import 'package:application/components/image_component.dart';
import 'package:application/components/lang_type_component.dart';
import 'package:application/dtos/anime_dto.dart';
import 'package:application/utils/constant.dart';
import 'package:application/views/anime_details_view.dart';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';

class AnimeComponent extends StatelessWidget {
Expand All @@ -28,24 +27,13 @@ class AnimeComponent extends StatelessWidget {
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
ClipRRect(
ImageComponent(
uuid: anime.uuid,
borderRadius: const BorderRadius.only(
topLeft: Radius.circular(16),
topRight: Radius.circular(16),
),
child: CachedNetworkImage(
imageUrl:
'${Constant.apiUrl}/v1/attachments?uuid=${anime.uuid}&type=image',
filterQuality: FilterQuality.high,
fit: BoxFit.fill,
width: double.infinity,
height: 280,
placeholder: (context, url) => Container(
color: Colors.grey,
width: double.infinity,
height: 280,
),
),
height: 280,
),
const SizedBox(height: 4),
Padding(
Expand Down
57 changes: 18 additions & 39 deletions lib/components/calendar_anime_component.dart
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
import 'package:application/components/card_component.dart';
import 'package:application/components/image_component.dart';
import 'package:application/components/lang_type_component.dart';
import 'package:application/components/platform_component.dart';
import 'package:application/components/platforms/list_platform.dart';
import 'package:application/dtos/week_day_release_dto.dart';
import 'package:application/utils/constant.dart';
import 'package:application/views/anime_details_view.dart';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';

Expand Down Expand Up @@ -37,43 +36,23 @@ class CalendarAnimeComponent extends StatelessWidget {
},
child: Column(
children: <Widget>[
SizedBox(
width: double.infinity,
height: 185,
child: Stack(
children: [
ClipRRect(
borderRadius: const BorderRadius.only(
topLeft: Radius.circular(16),
topRight: Radius.circular(16),
),
child: CachedNetworkImage(
imageUrl:
'${Constant.apiUrl}/v1/attachments?uuid=${release.anime.uuid}&type=banner',
filterQuality: FilterQuality.high,
fit: BoxFit.fill,
width: double.infinity,
placeholder: (context, url) => Container(
color: Colors.grey,
width: double.infinity,
),
),
Stack(
children: [
ImageComponent(
uuid: release.anime.uuid,
type: 'banner',
borderRadius: const BorderRadius.only(
topLeft: Radius.circular(16),
topRight: Radius.circular(16),
),
Positioned(
top: 5,
right: 5,
child: Row(
children: [
for (final platform in release.platforms)
Padding(
padding: const EdgeInsets.only(left: 4),
child: PlatformComponent(platform: platform),
),
],
),
),
],
),
height: 185,
),
Positioned(
top: 5,
right: 5,
child: ListPlatform(platforms: release.platforms),
),
],
),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 4),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import 'package:application/components/card_component.dart';
import 'package:application/components/episodes/episode_action_bar.dart';
import 'package:application/components/episodes/episode_image.dart';
import 'package:application/components/episodes/episode_type_component.dart';
import 'package:application/components/lang_type_component.dart';
import 'package:application/dtos/episode_mapping_dto.dart';
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';

class AnimeEpisodeComponent extends StatelessWidget {
final EpisodeMappingDto episode;
Expand All @@ -14,19 +14,6 @@ class AnimeEpisodeComponent extends StatelessWidget {
required this.episode,
});

String _episodeType(BuildContext context) {
switch (episode.episodeType) {
case 'EPISODE':
return AppLocalizations.of(context)!.episode;
case 'SPECIAL':
return AppLocalizations.of(context)!.special;
case 'FILM':
return AppLocalizations.of(context)!.film;
default:
return '';
}
}

@override
Widget build(BuildContext context) {
return CustomCard(
Expand Down Expand Up @@ -54,14 +41,7 @@ class AnimeEpisodeComponent extends StatelessWidget {
overflow: TextOverflow.ellipsis,
maxLines: 1,
),
Text(
AppLocalizations.of(context)!.information(
_episodeType(context),
episode.number,
episode.season,
),
style: Theme.of(context).textTheme.bodyMedium,
),
EpisodeTypeComponent(episode: episode),
for (final langType in episode.langTypes)
LangTypeComponent(langType: langType),
EpisodeActionBar(episode: episode),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import 'package:application/components/card_component.dart';
import 'package:application/components/episodes/episode_action_bar.dart';
import 'package:application/components/episodes/episode_image.dart';
import 'package:application/components/episodes/episode_type_component.dart';
import 'package:application/components/lang_type_component.dart';
import 'package:application/dtos/episode_mapping_dto.dart';
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';

class EpisodeComponent extends StatelessWidget {
final EpisodeMappingDto episode;
Expand All @@ -14,19 +14,6 @@ class EpisodeComponent extends StatelessWidget {
required this.episode,
});

String _episodeType(BuildContext context) {
switch (episode.episodeType) {
case 'EPISODE':
return AppLocalizations.of(context)!.episode;
case 'SPECIAL':
return AppLocalizations.of(context)!.special;
case 'FILM':
return AppLocalizations.of(context)!.film;
default:
return '';
}
}

@override
Widget build(BuildContext context) {
return CustomCard(
Expand Down Expand Up @@ -56,14 +43,7 @@ class EpisodeComponent extends StatelessWidget {
episode.anime.shortName,
style: Theme.of(context).textTheme.bodyLarge,
),
Text(
AppLocalizations.of(context)!.information(
_episodeType(context),
episode.number,
episode.season,
),
style: Theme.of(context).textTheme.bodyMedium,
),
EpisodeTypeComponent(episode: episode),
for (final langType in episode.langTypes)
LangTypeComponent(langType: langType),
],
Expand Down
31 changes: 7 additions & 24 deletions lib/components/episodes/episode_image.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import 'package:application/components/platform_component.dart';
import 'package:application/components/image_component.dart';
import 'package:application/components/platforms/list_platform.dart';
import 'package:application/dtos/episode_mapping_dto.dart';
import 'package:application/utils/constant.dart';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';

class EpisodeImage extends StatelessWidget {
Expand All @@ -22,32 +21,16 @@ class EpisodeImage extends StatelessWidget {
Widget build(BuildContext context) {
return Stack(
children: [
ClipRRect(
ImageComponent(
uuid: episode.uuid,
borderRadius: borderRadius,
child: CachedNetworkImage(
imageUrl:
'${Constant.apiUrl}/v1/attachments?uuid=${episode.uuid}&type=image',
filterQuality: FilterQuality.high,
fit: BoxFit.cover,
width: width,
height: height,
placeholder: (context, url) => Container(
color: Colors.grey,
width: width,
height: height,
),
),
width: width,
height: height,
),
Positioned(
top: 5,
right: 5,
child: Flex(
direction: Axis.horizontal,
children: [
for (final platform in episode.platforms)
PlatformComponent(platform: platform),
],
),
child: ListPlatform(platforms: episode.platforms),
),
],
);
Expand Down
34 changes: 34 additions & 0 deletions lib/components/episodes/episode_type_component.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import 'package:application/dtos/episode_mapping_dto.dart';
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';

class EpisodeTypeComponent extends StatelessWidget {
final EpisodeMappingDto episode;

const EpisodeTypeComponent({super.key, required this.episode});

String _episodeType(BuildContext context) {
switch (episode.episodeType) {
case 'EPISODE':
return AppLocalizations.of(context)!.episode;
case 'SPECIAL':
return AppLocalizations.of(context)!.special;
case 'FILM':
return AppLocalizations.of(context)!.film;
default:
return '';
}
}

@override
Widget build(BuildContext context) {
return Text(
AppLocalizations.of(context)!.information(
_episodeType(context),
episode.number,
episode.season,
),
style: Theme.of(context).textTheme.bodyMedium,
);
}
}
39 changes: 39 additions & 0 deletions lib/components/image_component.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
import 'package:application/utils/constant.dart';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';

class ImageComponent extends StatelessWidget {
final String uuid;
final String type;
final BorderRadius borderRadius;
final double width;
final double height;

const ImageComponent({
super.key,
required this.uuid,
this.type = 'image',
this.borderRadius = BorderRadius.zero,
this.width = double.infinity,
this.height = double.infinity,
});

@override
Widget build(BuildContext context) {
return ClipRRect(
borderRadius: borderRadius,
child: CachedNetworkImage(
imageUrl: '${Constant.apiUrl}/v1/attachments?uuid=$uuid&type=$type',
filterQuality: FilterQuality.high,
fit: BoxFit.cover,
width: width,
height: height,
placeholder: (context, url) => Container(
color: Colors.grey,
width: width,
height: height,
),
),
);
}
}
23 changes: 23 additions & 0 deletions lib/components/platforms/list_platform.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import 'package:application/components/platforms/platform_component.dart';
import 'package:application/dtos/platform_dto.dart';
import 'package:flutter/material.dart';

class ListPlatform extends StatelessWidget {
final List<PlatformDto> platforms;

const ListPlatform({super.key, required this.platforms});

@override
Widget build(BuildContext context) {
return Flex(
direction: Axis.horizontal,
children: [
for (final platform in platforms)
Padding(
padding: const EdgeInsets.only(left: 4),
child: PlatformComponent(platform: platform),
),
],
);
}
}
File renamed without changes.
23 changes: 6 additions & 17 deletions lib/controllers/anime_controller.dart
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
import 'dart:async';
import 'dart:convert';

import 'package:application/controllers/simulcast_controller.dart';
import 'package:application/dtos/anime_dto.dart';
import 'package:application/utils/constant.dart';
import 'package:application/utils/http_request.dart';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;

class AnimeController {
static AnimeController instance = AnimeController();
Expand Down Expand Up @@ -55,26 +53,17 @@ class AnimeController {
isLoading = true;

try {
final response = await http.get(
Uri.parse(
'${Constant.apiUrl}/v1/animes?simulcast=${SimulcastController.instance.current?.uuid}&sort=name&page=$page&limit=12',
),
final pageableDto = await HttpRequest.instance.getPage(
'/v1/animes?simulcast=${SimulcastController.instance.current?.uuid}&sort=name&page=$page&limit=12',
);

if (response.statusCode != 200) {
throw Exception('Failed to load animes');
}

final json =
jsonDecode(utf8.decode(response.bodyBytes)) as Map<String, dynamic>;

animes.addAll(
(json['data'] as List)
pageableDto.data
.map((e) => AnimeDto.fromJson(e as Map<String, dynamic>)),
);
streamController.add(animes);

canLoadMore = animes.length < (json['total'] as int);
streamController.add(animes);
canLoadMore = animes.length < pageableDto.total;
} catch (e) {
debugPrint(e.toString());
} finally {
Expand Down
Loading

0 comments on commit efdd3e9

Please sign in to comment.