Skip to content

Commit ded3f2b

Browse files
committed
fixes here and there
1 parent 518dbc9 commit ded3f2b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+1877
-932
lines changed

.github/workflows/dart.yml

Lines changed: 0 additions & 154 deletions
This file was deleted.

android/app/build.gradle

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@ android {
4646

4747
buildTypes {
4848
release {
49+
minifyEnabled true
50+
shrinkResources true
51+
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
4952
// TODO: Add your own signing config for the release build.
5053
// Signing with the debug keys for now, so `flutter run --release` works.
5154
signingConfig = signingConfigs.debug

android/app/proguard-rules.pro

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#Flutter Wrapper
2+
-keep class io.flutter.app.** { *; }
3+
-keep class io.flutter.plugin.** { *; }
4+
-keep class io.flutter.util.** { *; }
5+
-keep class io.flutter.view.** { *; }
6+
-keep class io.flutter.** { *; }
7+
-keep class io.flutter.plugins.** { *; }

lib/Adaptor/Media/MediaAdaptor.dart

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ class MediaGridState extends State<MediaAdaptor> {
4040
});
4141
}
4242
}
43+
4344
@override
4445
Widget build(BuildContext context) {
4546
switch (widget.type) {
@@ -69,15 +70,15 @@ class MediaGridState extends State<MediaAdaptor> {
6970
left: isFirst ? 24.0 : 6.5,
7071
right: isLast ? 24.0 : 6.5,
7172
);
72-
// debugPrint(_mediaList[index].toString());
7373
return SlideAndScaleAnimation(
7474
initialScale: 0.0,
7575
finalScale: 1.0,
7676
initialOffset: const Offset(1.0, 0.0),
7777
finalOffset: Offset.zero,
7878
duration: const Duration(milliseconds: 200),
7979
child: GestureDetector(
80-
onTap: () => navigateToPage(context,MediaInfoPage(mediaTitle: _mediaList[index].name.toString(),cover: _mediaList[index].cover,banner: _mediaList[index].banner,status: _mediaList[index].status,mediaList: _mediaList,)),
80+
onTap: () =>
81+
navigateToPage(context, MediaInfoPage(_mediaList[index])),
8182
onLongPress: () => settingsBottomSheet(context),
8283
child: Container(
8384
width: 102,
@@ -139,7 +140,7 @@ class LargeViewState extends State<LargeView> {
139140
@override
140141
Widget build(BuildContext context) {
141142
return SizedBox(
142-
height: 464.statusBar(),
143+
height: 464 + (0.statusBar() * 2),
143144
child: AnimatedSwitcher(
144145
duration: const Duration(milliseconds: 500),
145146
child: ScrollConfig(
@@ -150,8 +151,9 @@ class LargeViewState extends State<LargeView> {
150151
itemCount: widget.mediaList.length,
151152
itemBuilder: (context, index) {
152153
return GestureDetector(
153-
// onTap: () => snackString(widget.mediaList[index].name),
154-
onTap: () => navigateToPage(context,MediaInfoPage(mediaTitle: widget.mediaList[index].name.toString(),cover: widget.mediaList[index].cover,banner: widget.mediaList[index].banner,status: widget.mediaList[index].status,mediaList: widget.mediaList,)) ,
154+
onTap: () =>
155+
navigateToPage(
156+
context, MediaInfoPage(widget.mediaList[index])),
155157
onLongPress: () => settingsBottomSheet(context),
156158
child: MediaPageSmallViewHolder(widget.mediaList[index]),
157159
);

lib/Adaptor/Media/MediaPageSmallViewHolder.dart

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ class MediaPageSmallViewHolder extends StatelessWidget {
3636
child: SizedBox.expand(),
3737
),
3838
Padding(
39-
padding: EdgeInsets.only(bottom:24, top : 0.statusBar()),
40-
child: _buildContent(context, theme),
39+
padding: EdgeInsets.only(bottom: 24, top: 0.statusBar()),
40+
child: _buildContent(context, theme),
4141
),
4242
],
4343
),
@@ -128,26 +128,31 @@ class MediaPageSmallViewHolder extends StatelessWidget {
128128
}
129129

130130
Widget _buildMediaCover() {
131-
return ClipRRect(
132-
borderRadius: BorderRadius.circular(16.0),
133-
child: CachedNetworkImage(
134-
imageUrl: mediaInfo.cover ?? '',
135-
fit: BoxFit.cover,
136-
width: 108,
137-
height: 160,
138-
placeholder: (context, url) => Container(
139-
color: Colors.white12,
131+
return Hero(
132+
tag: 'mediaCover-${mediaInfo.id}',
133+
child: ClipRRect(
134+
borderRadius: BorderRadius.circular(16.0),
135+
child: CachedNetworkImage(
136+
imageUrl: mediaInfo.cover ?? '',
137+
fit: BoxFit.cover,
140138
width: 108,
141139
height: 160,
140+
placeholder: (context, url) => Container(
141+
color: Colors.white12,
142+
width: 108,
143+
height: 160,
144+
),
142145
),
143-
),
146+
)
144147
);
145148
}
146149

147150
Widget _buildAdditionalInfo(ColorScheme theme) {
148151
final isAnime = mediaInfo.anime != null;
149152
final mediaType = isAnime ? "Episodes" : "Chapters";
150-
final mediaCount = isAnime ? formatMediaInfo(mediaInfo) : "${mediaInfo.manga?.totalChapters ?? "??"}";
153+
final mediaCount = isAnime
154+
? formatMediaInfo(mediaInfo)
155+
: "${mediaInfo.manga?.totalChapters ?? "??"}";
151156

152157
return Row(
153158
crossAxisAlignment: CrossAxisAlignment.center,

lib/Adaptor/Media/MediaViewHolder.dart

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ class MediaViewHolder extends StatelessWidget {
1111
const MediaViewHolder({super.key, required this.mediaInfo});
1212

1313
@override
14-
Widget build(BuildContext context) { // holder for media
14+
Widget build(BuildContext context) {
15+
// holder for media
1516
final theme = Theme.of(context).colorScheme;
1617
return Column(
1718
crossAxisAlignment: CrossAxisAlignment.start,
@@ -23,12 +24,12 @@ class MediaViewHolder extends StatelessWidget {
2324
child: CachedNetworkImage(
2425
imageUrl: mediaInfo.cover ?? '',
2526
fit: BoxFit.cover,
26-
width: double.infinity,
27-
height: 154,
27+
width: 108,
28+
height: 160,
2829
placeholder: (context, url) => Container(
2930
color: Colors.white12,
30-
width: double.infinity,
31-
height: 154,
31+
width: 108,
32+
height: 160,
3233
),
3334
),
3435
),

lib/Functions/Function.dart

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
import 'dart:async';
2+
import 'dart:io';
23

34
import 'package:flutter/material.dart';
45
import 'package:flutter/services.dart';
56
import 'package:get/get.dart';
7+
import 'package:path_provider/path_provider.dart';
68
import 'package:url_launcher/url_launcher.dart';
7-
9+
import 'package:http/http.dart' as http;
810
import '../Main.dart';
911

10-
class RefreshController extends GetxController {
12+
class _RefreshController extends GetxController {
1113
var activity = <int, RxBool>{};
1214

1315
void all() {
@@ -20,7 +22,7 @@ class RefreshController extends GetxController {
2022
return activity.putIfAbsent(key, () => RxBool(initialValue));
2123
}
2224
}
23-
final RefreshController Refresh = Get.put(RefreshController(), permanent: true);
25+
var Refresh = Get.put(_RefreshController(), permanent: true);
2426

2527
Future<void> snackString(
2628
String? s, {
@@ -104,3 +106,34 @@ void navigateToPage(BuildContext context, Widget page) {
104106
MaterialPageRoute(builder: (context) => page),
105107
);
106108
}
109+
110+
Future<void> downloadImage(String url, String filename) async {
111+
String getFileExtension(String? contentType) {
112+
if (contentType == null) return 'jpg';
113+
if (contentType.contains('jpeg')) return 'jpg';
114+
if (contentType.contains('png')) return 'png';
115+
if (contentType.contains('gif')) return 'gif';
116+
// Add other formats as needed
117+
return 'jpg'; // Default extension
118+
}
119+
try {
120+
Directory directory = await getApplicationDocumentsDirectory();
121+
String filePath = '${directory.path}/$filename';
122+
var response = await http.get(Uri.parse(url));
123+
124+
if (response.statusCode == 200) {
125+
String? contentType = response.headers['content-type'];
126+
String fileExtension = getFileExtension(contentType);
127+
128+
filePath += '.$fileExtension';
129+
File file = File(filePath);
130+
await file.writeAsBytes(response.bodyBytes);
131+
132+
print('Image downloaded and saved to $filePath');
133+
} else {
134+
print('Failed to download image. Status code: ${response.statusCode}');
135+
}
136+
} catch (e) {
137+
print('Error downloading image: $e');
138+
}
139+
}

lib/Main.dart

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
12
import 'package:dantotsu/api/Anilist/AnilistViewModel.dart';
23
import 'package:dantotsu/Screens/Anime/AnimeScreen.dart';
34
import 'package:dantotsu/api/Anilist/Data/data.dart';
@@ -9,7 +10,8 @@ import 'package:get/get_state_manager/src/rx_flutter/rx_obx_widget.dart';
910
import 'package:protocol_handler/protocol_handler.dart';
1011
import 'package:provider/provider.dart';
1112

12-
import 'Prefrerences/PrefManager.dart';
13+
14+
import 'Preferences/PrefManager.dart';
1315
import 'Screens/HomeNavbar.dart';
1416
import 'Screens/Login/LoginScreen.dart';
1517
import 'Screens/Manga/MangaScreen.dart';

0 commit comments

Comments
 (0)