ui: Remove the ThumbnailService for images
This commit is contained in:
parent
58bccc1d83
commit
1886bf7ecc
@ -1,3 +1,4 @@
|
|||||||
|
import 'dart:io';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||||
import 'package:flutter_speed_dial/flutter_speed_dial.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/avatar.dart';
|
||||||
import 'package:moxxyv2/ui/widgets/chat/chatbubble.dart';
|
import 'package:moxxyv2/ui/widgets/chat/chatbubble.dart';
|
||||||
import 'package:moxxyv2/ui/widgets/chat/media/media.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/chat/typing.dart';
|
||||||
import 'package:moxxyv2/ui/widgets/textfield.dart';
|
import 'package:moxxyv2/ui/widgets/textfield.dart';
|
||||||
import 'package:moxxyv2/ui/widgets/topbar.dart';
|
import 'package:moxxyv2/ui/widgets/topbar.dart';
|
||||||
@ -428,15 +428,11 @@ class ConversationPageState extends State<ConversationPage> {
|
|||||||
final query = MediaQuery.of(context);
|
final query = MediaQuery.of(context);
|
||||||
|
|
||||||
if (state.backgroundPath.isNotEmpty) {
|
if (state.backgroundPath.isNotEmpty) {
|
||||||
return ImageThumbnailWidget(
|
return Image.file(
|
||||||
state.backgroundPath,
|
File(state.backgroundPath),
|
||||||
(data) => Image.memory(
|
fit: BoxFit.cover,
|
||||||
data,
|
width: query.size.width,
|
||||||
fit: BoxFit.cover,
|
height: query.size.height - query.padding.top,
|
||||||
width: query.size.width,
|
|
||||||
height: query.size.height - query.padding.top,
|
|
||||||
),
|
|
||||||
showSpinner: false,
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
import 'dart:io';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||||
import 'package:mime/mime.dart';
|
import 'package:mime/mime.dart';
|
||||||
@ -120,9 +121,8 @@ class SendFilesPage extends StatelessWidget {
|
|||||||
|
|
||||||
if (mime.startsWith('image/')) {
|
if (mime.startsWith('image/')) {
|
||||||
// Render the image
|
// Render the image
|
||||||
return ImageThumbnailWidget(
|
return Image.file(
|
||||||
path,
|
File(path),
|
||||||
Image.memory,
|
|
||||||
);
|
);
|
||||||
} else if (mime.startsWith('video/')) {
|
} else if (mime.startsWith('video/')) {
|
||||||
// Render the video thumbnail
|
// Render the video thumbnail
|
||||||
|
@ -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/base.dart';
|
||||||
import 'package:moxxyv2/ui/widgets/chat/media/file.dart';
|
import 'package:moxxyv2/ui/widgets/chat/media/file.dart';
|
||||||
import 'package:moxxyv2/ui/widgets/chat/progress.dart';
|
import 'package:moxxyv2/ui/widgets/chat/progress.dart';
|
||||||
import 'package:moxxyv2/ui/widgets/chat/thumbnail.dart';
|
|
||||||
import 'package:open_file/open_file.dart';
|
import 'package:open_file/open_file.dart';
|
||||||
|
|
||||||
class ImageChatWidget extends StatelessWidget {
|
class ImageChatWidget extends StatelessWidget {
|
||||||
@ -30,10 +29,7 @@ class ImageChatWidget extends StatelessWidget {
|
|||||||
|
|
||||||
Widget _buildUploading() {
|
Widget _buildUploading() {
|
||||||
return MediaBaseChatWidget(
|
return MediaBaseChatWidget(
|
||||||
ImageThumbnailWidget(
|
Image.file(File(message.mediaUrl!)),
|
||||||
message.mediaUrl!,
|
|
||||||
Image.memory,
|
|
||||||
),
|
|
||||||
MessageBubbleBottom(message),
|
MessageBubbleBottom(message),
|
||||||
radius,
|
radius,
|
||||||
extra: ProgressWidget(id: message.id),
|
extra: ProgressWidget(id: message.id),
|
||||||
@ -72,10 +68,7 @@ class ImageChatWidget extends StatelessWidget {
|
|||||||
/// The image exists locally
|
/// The image exists locally
|
||||||
Widget _buildImage() {
|
Widget _buildImage() {
|
||||||
return MediaBaseChatWidget(
|
return MediaBaseChatWidget(
|
||||||
ImageThumbnailWidget(
|
Image.file(File(message.mediaUrl!)),
|
||||||
message.mediaUrl!,
|
|
||||||
Image.memory,
|
|
||||||
),
|
|
||||||
MessageBubbleBottom(message),
|
MessageBubbleBottom(message),
|
||||||
radius,
|
radius,
|
||||||
onTap: () {
|
onTap: () {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
|
import 'dart:io';
|
||||||
import 'dart:typed_data';
|
import 'dart:typed_data';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:get_it/get_it.dart';
|
import 'package:get_it/get_it.dart';
|
||||||
import 'package:moxxyv2/shared/helpers.dart';
|
import 'package:moxxyv2/shared/helpers.dart';
|
||||||
@ -85,31 +85,9 @@ Widget buildQuoteMessageWidget(Message message, { void Function()? resetQuote})
|
|||||||
height: 48,
|
height: 48,
|
||||||
child: ClipRRect(
|
child: ClipRRect(
|
||||||
borderRadius: const BorderRadius.all(Radius.circular(8)),
|
borderRadius: const BorderRadius.all(Radius.circular(8)),
|
||||||
child: FutureBuilder<Uint8List>(
|
child: Image.file(File(message.mediaUrl!)),
|
||||||
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();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
)
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
resetQuotedMessage: resetQuote,
|
resetQuotedMessage: resetQuote,
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
import 'dart:typed_data';
|
import 'dart:io';
|
||||||
import 'package:flutter/material.dart';
|
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';
|
import 'package:moxxyv2/ui/widgets/chat/shared/base.dart';
|
||||||
|
|
||||||
class SharedImageWidget extends StatelessWidget {
|
class SharedImageWidget extends StatelessWidget {
|
||||||
@ -15,32 +13,20 @@ class SharedImageWidget extends StatelessWidget {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return SharedMediaContainer(
|
return SharedMediaContainer(
|
||||||
FutureBuilder<Uint8List>(
|
Container(
|
||||||
future: GetIt.I.get<ThumbnailCacheService>().getImageThumbnail(path),
|
decoration: BoxDecoration(
|
||||||
builder: (context, snapshot) {
|
borderRadius: BorderRadius.circular(10),
|
||||||
if (snapshot.connectionState == ConnectionState.done) {
|
border: borderColor != null ? Border.all(
|
||||||
return Container(
|
color: borderColor!,
|
||||||
decoration: BoxDecoration(
|
width: 4,
|
||||||
borderRadius: BorderRadius.circular(10),
|
) : null,
|
||||||
border: borderColor != null ? Border.all(
|
image: DecorationImage(
|
||||||
color: borderColor!,
|
fit: BoxFit.cover,
|
||||||
width: 4,
|
image: FileImage(File(path)),
|
||||||
) : null,
|
),
|
||||||
image: DecorationImage(
|
),
|
||||||
fit: BoxFit.cover,
|
clipBehavior: Clip.hardEdge,
|
||||||
image: MemoryImage(snapshot.data!),
|
child: child,
|
||||||
),
|
|
||||||
),
|
|
||||||
clipBehavior: Clip.hardEdge,
|
|
||||||
child: child,
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
return const Padding(
|
|
||||||
padding: EdgeInsets.all(32),
|
|
||||||
child: CircularProgressIndicator(),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
),
|
),
|
||||||
onTap: onTap,
|
onTap: onTap,
|
||||||
);
|
);
|
||||||
|
Loading…
Reference in New Issue
Block a user