Skip to content

Commit f56e6f9

Browse files
authored
feat: Added transfer logic for waveshare displays to work with the image library (#146)
1 parent 562ecfe commit f56e6f9

File tree

3 files changed

+23
-20
lines changed

3 files changed

+23
-20
lines changed

lib/image_library/services/image_operations_service.dart

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@ import 'package:magicepaperapp/image_library/model/saved_image_model.dart';
77
import 'package:magicepaperapp/constants/color_constants.dart';
88
import 'package:magicepaperapp/image_library/provider/image_library_provider.dart';
99
import 'package:magicepaperapp/image_library/utils/epd_utils.dart';
10-
import 'package:magicepaperapp/util/epd/epd.dart';
11-
import 'package:magicepaperapp/util/protocol.dart';
10+
import 'package:magicepaperapp/util/epd/display_device.dart';
1211
import 'package:image/image.dart' as img;
1312
import 'dart:typed_data';
1413

@@ -17,7 +16,7 @@ class ImageOperationsService {
1716

1817
ImageOperationsService(this.context);
1918

20-
Epd getEpdFromImage(SavedImage image) {
19+
DisplayDevice getEpdFromImage(SavedImage image) {
2120
return EpdUtils.getEpdFromMetadata(image.metadata);
2221
}
2322

@@ -117,7 +116,10 @@ class ImageOperationsService {
117116
final decodedImage = img.decodeImage(imageData);
118117
if (decodedImage != null) {
119118
final rotatedImage = img.copyRotate(decodedImage, angle: -90);
120-
Protocol(epd: imageEpd).writeImages(rotatedImage);
119+
imageEpd.transfer(
120+
context,
121+
rotatedImage,
122+
);
121123
} else {
122124
_showErrorSnackBar('Failed to decode image "${image.name}"');
123125
}
@@ -296,7 +298,7 @@ class ImageOperationsService {
296298

297299
void _showSaveLoadingSnackBar() {
298300
ScaffoldMessenger.of(context).showSnackBar(
299-
SnackBar(
301+
const SnackBar(
300302
content: Row(
301303
children: [
302304
SizedBox(
@@ -307,28 +309,28 @@ class ImageOperationsService {
307309
valueColor: AlwaysStoppedAnimation<Color>(Colors.white),
308310
),
309311
),
310-
const SizedBox(width: 12),
311-
const Text('Saving image...'),
312+
SizedBox(width: 12),
313+
Text('Saving image...'),
312314
],
313315
),
314316
backgroundColor: colorAccent,
315-
duration: const Duration(seconds: 2),
317+
duration: Duration(seconds: 2),
316318
),
317319
);
318320
}
319321

320322
void _showSaveSuccessSnackBar() {
321323
ScaffoldMessenger.of(context).showSnackBar(
322324
SnackBar(
323-
content: Row(
325+
content: const Row(
324326
children: [
325-
const Icon(
327+
Icon(
326328
Icons.check_circle,
327329
color: Colors.white,
328330
size: 20,
329331
),
330-
const SizedBox(width: 12),
331-
const Text('Image saved to library!'),
332+
SizedBox(width: 12),
333+
Text('Image saved to library!'),
332334
],
333335
),
334336
backgroundColor: Colors.green,
Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
1+
import 'package:magicepaperapp/util/epd/display_device.dart';
12
import 'package:magicepaperapp/util/epd/gdey037z03.dart';
23
import 'package:magicepaperapp/util/epd/gdey037z03bw.dart';
3-
import 'package:magicepaperapp/util/epd/epd.dart';
4+
import 'package:magicepaperapp/util/epd/waveshare_2in9.dart';
45

56
class EpdUtils {
6-
static Epd getEpdFromMetadata(Map<String, dynamic>? metadata) {
7-
final List<Epd> displays = [Gdey037z03(), Gdey037z03BW()];
8-
7+
static DisplayDevice getEpdFromMetadata(Map<String, dynamic>? metadata) {
98
if (metadata == null || !metadata.containsKey('epdModel')) {
10-
return displays[0];
9+
return Gdey037z03();
1110
}
1211

1312
final String epdModel = metadata['epdModel']?.toString() ?? '';
@@ -17,8 +16,10 @@ class EpdUtils {
1716
return Gdey037z03();
1817
case 'GDEY037T03':
1918
return Gdey037z03BW();
19+
case 'waveshare-2.9':
20+
return Waveshare2in9();
2021
default:
21-
return displays[0];
22+
return Gdey037z03();
2223
}
2324
}
2425
}

lib/image_library/widgets/dialogs/image_preview_dialog.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ import 'package:magicepaperapp/image_library/utils/filter_utils.dart';
66
import 'package:magicepaperapp/image_library/utils/source_utils.dart';
77
import 'package:magicepaperapp/image_library/widgets/dialogs/image_properties_dialog.dart';
88
import 'package:magicepaperapp/image_library/widgets/dialogs/image_rename_dialog.dart';
9-
import 'package:magicepaperapp/util/epd/epd.dart';
9+
import 'package:magicepaperapp/util/epd/display_device.dart';
1010
import 'package:magicepaperapp/constants/color_constants.dart';
1111

1212
class ImagePreviewDialog extends StatelessWidget {
1313
final SavedImage image;
14-
final Epd epd;
14+
final DisplayDevice epd;
1515
final VoidCallback onDelete;
1616
final Function(String) onRename;
1717
final VoidCallback onTransfer;

0 commit comments

Comments
 (0)