ui: Remove the ThumbnailService for images

This commit is contained in:
PapaTutuWawa 2022-08-14 13:25:17 +02:00
parent 58bccc1d83
commit 1886bf7ecc
5 changed files with 29 additions and 76 deletions

View File

@ -1,3 +1,4 @@
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_speed_dial/flutter_speed_dial.dart';
@ -10,7 +11,6 @@ import 'package:moxxyv2/ui/helpers.dart';
import 'package:moxxyv2/ui/widgets/avatar.dart';
import 'package:moxxyv2/ui/widgets/chat/chatbubble.dart';
import 'package:moxxyv2/ui/widgets/chat/media/media.dart';
import 'package:moxxyv2/ui/widgets/chat/thumbnail.dart';
import 'package:moxxyv2/ui/widgets/chat/typing.dart';
import 'package:moxxyv2/ui/widgets/textfield.dart';
import 'package:moxxyv2/ui/widgets/topbar.dart';
@ -428,15 +428,11 @@ class ConversationPageState extends State<ConversationPage> {
final query = MediaQuery.of(context);
if (state.backgroundPath.isNotEmpty) {
return ImageThumbnailWidget(
state.backgroundPath,
(data) => Image.memory(
data,
fit: BoxFit.cover,
width: query.size.width,
height: query.size.height - query.padding.top,
),
showSpinner: false,
return Image.file(
File(state.backgroundPath),
fit: BoxFit.cover,
width: query.size.width,
height: query.size.height - query.padding.top,
);
}

View File

@ -1,3 +1,4 @@
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:mime/mime.dart';
@ -120,9 +121,8 @@ class SendFilesPage extends StatelessWidget {
if (mime.startsWith('image/')) {
// Render the image
return ImageThumbnailWidget(
path,
Image.memory,
return Image.file(
File(path),
);
} else if (mime.startsWith('video/')) {
// Render the video thumbnail

View File

@ -11,7 +11,6 @@ import 'package:moxxyv2/ui/widgets/chat/helpers.dart';
import 'package:moxxyv2/ui/widgets/chat/media/base.dart';
import 'package:moxxyv2/ui/widgets/chat/media/file.dart';
import 'package:moxxyv2/ui/widgets/chat/progress.dart';
import 'package:moxxyv2/ui/widgets/chat/thumbnail.dart';
import 'package:open_file/open_file.dart';
class ImageChatWidget extends StatelessWidget {
@ -30,10 +29,7 @@ class ImageChatWidget extends StatelessWidget {
Widget _buildUploading() {
return MediaBaseChatWidget(
ImageThumbnailWidget(
message.mediaUrl!,
Image.memory,
),
Image.file(File(message.mediaUrl!)),
MessageBubbleBottom(message),
radius,
extra: ProgressWidget(id: message.id),
@ -72,10 +68,7 @@ class ImageChatWidget extends StatelessWidget {
/// The image exists locally
Widget _buildImage() {
return MediaBaseChatWidget(
ImageThumbnailWidget(
message.mediaUrl!,
Image.memory,
),
Image.file(File(message.mediaUrl!)),
MessageBubbleBottom(message),
radius,
onTap: () {

View File

@ -1,5 +1,5 @@
import 'dart:io';
import 'dart:typed_data';
import 'package:flutter/material.dart';
import 'package:get_it/get_it.dart';
import 'package:moxxyv2/shared/helpers.dart';
@ -85,31 +85,9 @@ Widget buildQuoteMessageWidget(Message message, { void Function()? resetQuote})
height: 48,
child: ClipRRect(
borderRadius: const BorderRadius.all(Radius.circular(8)),
child: FutureBuilder<Uint8List>(
future: GetIt.I.get<ThumbnailCacheService>().getImageThumbnail(message.mediaUrl!),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
if (snapshot.data != null) {
return Image.memory(
snapshot.data!,
fit: BoxFit.cover,
);
} else {
return const Padding(
padding: EdgeInsets.all(32),
child: Icon(
Icons.error_outline,
size: 32,
),
);
}
} else {
return const CircularProgressIndicator();
}
},
),
child: Image.file(File(message.mediaUrl!)),
),
)
),
],
),
resetQuotedMessage: resetQuote,

View File

@ -1,7 +1,5 @@
import 'dart:typed_data';
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:get_it/get_it.dart';
import 'package:moxxyv2/ui/service/thumbnail.dart';
import 'package:moxxyv2/ui/widgets/chat/shared/base.dart';
class SharedImageWidget extends StatelessWidget {
@ -15,32 +13,20 @@ class SharedImageWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return SharedMediaContainer(
FutureBuilder<Uint8List>(
future: GetIt.I.get<ThumbnailCacheService>().getImageThumbnail(path),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
return Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10),
border: borderColor != null ? Border.all(
color: borderColor!,
width: 4,
) : null,
image: DecorationImage(
fit: BoxFit.cover,
image: MemoryImage(snapshot.data!),
),
),
clipBehavior: Clip.hardEdge,
child: child,
);
} else {
return const Padding(
padding: EdgeInsets.all(32),
child: CircularProgressIndicator(),
);
}
},
Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10),
border: borderColor != null ? Border.all(
color: borderColor!,
width: 4,
) : null,
image: DecorationImage(
fit: BoxFit.cover,
image: FileImage(File(path)),
),
),
clipBehavior: Clip.hardEdge,
child: child,
),
onTap: onTap,
);