Skip to content

Commit acee706

Browse files
committed
replace image loading with library
1 parent 0364b7e commit acee706

File tree

5 files changed

+93
-63
lines changed

5 files changed

+93
-63
lines changed

lib/Frontend/Widgets/tail_blog.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import 'dart:async';
22

3-
import 'package:connectivity_plus/connectivity_plus.dart';
43
import 'package:flutter/material.dart';
54
import 'package:freezed_annotation/freezed_annotation.dart';
65
import 'package:logging/logging.dart';
Lines changed: 12 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1,78 +1,29 @@
1-
import 'dart:typed_data';
2-
3-
import 'package:dio/dio.dart';
4-
import 'package:dio_cache_interceptor/dio_cache_interceptor.dart';
1+
import 'package:cached_network_image/cached_network_image.dart';
52
import 'package:flutter/material.dart';
6-
import 'package:flutter_riverpod/flutter_riverpod.dart';
7-
import 'package:riverpod_annotation/riverpod_annotation.dart';
8-
import 'package:tail_app/Frontend/utils.dart';
9-
import 'package:tail_app/constants.dart';
10-
11-
part 'tail_blog_image.g.dart';
123

13-
class TailBlogImage extends ConsumerStatefulWidget {
4+
class TailBlogImage extends StatelessWidget {
145
const TailBlogImage({required this.url, super.key});
156

167
final String url;
178

18-
@override
19-
ConsumerState<ConsumerStatefulWidget> createState() => _TailBlogImageState();
20-
}
21-
22-
class _TailBlogImageState extends ConsumerState<TailBlogImage> {
239
@override
2410
Widget build(BuildContext context) {
25-
return Builder(
26-
builder: (context) {
27-
if (widget.url != "") {
28-
var snapshot = ref.watch(getBlogImageProvider(widget.url));
29-
return AnimatedOpacity(
30-
duration: animationTransitionDuration,
31-
opacity: snapshot.hasValue ? 1 : 0,
32-
child: snapshot.hasValue ? snapshot.value! : const CircularProgressIndicator(),
33-
);
34-
} else {
35-
return Container();
36-
}
37-
},
38-
);
39-
}
40-
}
41-
42-
@Riverpod()
43-
Future<Widget> getBlogImage(Ref ref, String url) async {
44-
if (await isLimitedDataEnvironment()) {
45-
return Container();
46-
}
47-
Dio dio = await initDio();
48-
49-
Response<List<int>> response = await dio.get(
50-
url,
51-
options: cacheOptions
52-
.copyWith(
53-
policy: CachePolicy.forceCache,
54-
)
55-
.toOptions()
56-
.copyWith(
57-
responseType: ResponseType.bytes,
58-
followRedirects: true,
59-
),
60-
);
61-
62-
if (response.statusCode! < 400) {
63-
Uint8List data = Uint8List.fromList(response.data!);
6411
return SizedBox.expand(
6512
child: FittedBox(
6613
alignment: Alignment.center,
67-
// TRY THIS: Try changing the fit types to see how they change the way
68-
// the placeholder fits into the container.
6914
fit: BoxFit.cover,
70-
child: Image.memory(
71-
data,
72-
width: 300,
15+
child: CachedNetworkImage(
16+
height: 300,
17+
imageUrl: url,
18+
progressIndicatorBuilder: (context, url, downloadProgress) => SizedBox.square(
19+
dimension: 40,
20+
child: CircularProgressIndicator(
21+
value: downloadProgress.progress,
22+
),
23+
),
24+
errorWidget: (context, url, error) => Icon(Icons.error),
7325
),
7426
),
7527
);
7628
}
77-
return Container();
7829
}

lib/Frontend/pages/more.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import '../../constants.dart';
1111
import '../../gen/assets.gen.dart';
1212
import '../go_router_config.dart';
1313
import '../translation_string_definitions.dart';
14-
import '../utils.dart';
1514
import 'html_page.dart';
1615
import 'markdown_viewer.dart';
1716

pubspec.lock

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,30 @@ packages:
241241
url: "https://pub.dev"
242242
source: hosted
243243
version: "8.11.0"
244+
cached_network_image:
245+
dependency: "direct main"
246+
description:
247+
name: cached_network_image
248+
sha256: "7c1183e361e5c8b0a0f21a28401eecdbde252441106a9816400dd4c2b2424916"
249+
url: "https://pub.dev"
250+
source: hosted
251+
version: "3.4.1"
252+
cached_network_image_platform_interface:
253+
dependency: transitive
254+
description:
255+
name: cached_network_image_platform_interface
256+
sha256: "35814b016e37fbdc91f7ae18c8caf49ba5c88501813f73ce8a07027a395e2829"
257+
url: "https://pub.dev"
258+
source: hosted
259+
version: "4.1.1"
260+
cached_network_image_web:
261+
dependency: transitive
262+
description:
263+
name: cached_network_image_web
264+
sha256: "980842f4e8e2535b8dbd3d5ca0b1f0ba66bf61d14cc3a17a9b4788a3685ba062"
265+
url: "https://pub.dev"
266+
source: hosted
267+
version: "1.3.1"
244268
characters:
245269
dependency: transitive
246270
description:
@@ -743,6 +767,14 @@ packages:
743767
url: "https://pub.dev"
744768
source: hosted
745769
version: "3.0.1"
770+
flutter_cache_manager:
771+
dependency: transitive
772+
description:
773+
name: flutter_cache_manager
774+
sha256: "400b6592f16a4409a7f2bb929a9a7e38c72cceb8ffb99ee57bbf2cb2cecf8386"
775+
url: "https://pub.dev"
776+
source: hosted
777+
version: "3.4.1"
746778
flutter_foreground_task:
747779
dependency: "direct main"
748780
description:
@@ -1264,6 +1296,14 @@ packages:
12641296
url: "https://pub.dev"
12651297
source: hosted
12661298
version: "0.5.0"
1299+
octo_image:
1300+
dependency: transitive
1301+
description:
1302+
name: octo_image
1303+
sha256: "34faa6639a78c7e3cbe79be6f9f96535867e879748ade7d17c9b1ae7536293bd"
1304+
url: "https://pub.dev"
1305+
source: hosted
1306+
version: "2.1.0"
12671307
os_detect:
12681308
dependency: transitive
12691309
description:
@@ -1744,6 +1784,46 @@ packages:
17441784
url: "https://pub.dev"
17451785
source: hosted
17461786
version: "7.0.0"
1787+
sqflite:
1788+
dependency: transitive
1789+
description:
1790+
name: sqflite
1791+
sha256: e2297b1da52f127bc7a3da11439985d9b536f75070f3325e62ada69a5c585d03
1792+
url: "https://pub.dev"
1793+
source: hosted
1794+
version: "2.4.2"
1795+
sqflite_android:
1796+
dependency: transitive
1797+
description:
1798+
name: sqflite_android
1799+
sha256: "2b3070c5fa881839f8b402ee4a39c1b4d561704d4ebbbcfb808a119bc2a1701b"
1800+
url: "https://pub.dev"
1801+
source: hosted
1802+
version: "2.4.1"
1803+
sqflite_common:
1804+
dependency: transitive
1805+
description:
1806+
name: sqflite_common
1807+
sha256: "84731e8bfd8303a3389903e01fb2141b6e59b5973cacbb0929021df08dddbe8b"
1808+
url: "https://pub.dev"
1809+
source: hosted
1810+
version: "2.5.5"
1811+
sqflite_darwin:
1812+
dependency: transitive
1813+
description:
1814+
name: sqflite_darwin
1815+
sha256: "279832e5cde3fe99e8571879498c9211f3ca6391b0d818df4e17d9fff5c6ccb3"
1816+
url: "https://pub.dev"
1817+
source: hosted
1818+
version: "2.4.2"
1819+
sqflite_platform_interface:
1820+
dependency: transitive
1821+
description:
1822+
name: sqflite_platform_interface
1823+
sha256: "8dd4515c7bdcae0a785b0062859336de775e8c65db81ae33dd5445f35be61920"
1824+
url: "https://pub.dev"
1825+
source: hosted
1826+
version: "2.4.0"
17471827
stack_trace:
17481828
dependency: transitive
17491829
description:

pubspec.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ dependencies:
7575
lottie: ^3.3.1
7676
pdfx: ^2.9.2
7777
owoify_dart: ^2.1.0
78+
cached_network_image: ^3.4.1
7879

7980
# Locale
8081
flutter_localized_locales: ^2.0.5 # Get language names from shortcode

0 commit comments

Comments
 (0)