Skip to content

Commit 136bbe6

Browse files
authored
fix: added canvas color change support according to the display's colors using ColorPaletteProvider (#45)
1 parent e61ade4 commit 136bbe6

File tree

3 files changed

+25
-15
lines changed

3 files changed

+25
-15
lines changed

lib/pro_image_editor/features/movable_background_image.dart

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ import 'package:google_fonts/google_fonts.dart';
1010
import 'package:image_picker/image_picker.dart';
1111
import 'package:magic_epaper_app/pro_image_editor/features/bottom_bar.dart';
1212
import 'package:magic_epaper_app/pro_image_editor/features/text_bottom_bar.dart';
13+
import 'package:magic_epaper_app/provider/color_palette_provider.dart';
14+
import 'package:magic_epaper_app/provider/getitlocator.dart';
1315
import 'package:pro_image_editor/core/models/layers/layer_interaction.dart';
1416
import 'package:pro_image_editor/designs/whatsapp/whatsapp_paint_colorpicker.dart';
1517
import 'package:pro_image_editor/designs/whatsapp/whatsapp_text_colorpicker.dart';
@@ -215,21 +217,29 @@ class _MovableBackgroundImageExampleState
215217
// _transparentBytes = pngBytes!.buffer.asUint8List();
216218
// }
217219

218-
// Add this method to handle canvas color changes
220+
final List<Color> availableCanvasColors =
221+
getIt<ColorPaletteProvider>().colors;
222+
int currentCanvasColorIndex = 0;
223+
224+
String _getCanvasColorName(Color color) {
225+
if (color == Colors.white) {
226+
return 'white';
227+
} else if (color == Colors.red) {
228+
return 'red';
229+
} else if (color == Colors.black) {
230+
return 'black';
231+
}
232+
233+
return 'white';
234+
}
235+
219236
void _changeCanvasColor() {
220237
setState(() {
221-
// Cycle through colors: white -> red -> black
222-
switch (_currentCanvasColor) {
223-
case 'white':
224-
_currentCanvasColor = 'red';
225-
break;
226-
case 'red':
227-
_currentCanvasColor = 'black';
228-
break;
229-
case 'black':
230-
_currentCanvasColor = 'white';
231-
break;
232-
}
238+
currentCanvasColorIndex =
239+
(currentCanvasColorIndex + 1) % availableCanvasColors.length;
240+
241+
_currentCanvasColor =
242+
_getCanvasColorName(availableCanvasColors[currentCanvasColorIndex]);
233243
});
234244

235245
// Update the canvas by replacing the first layer

lib/util/epd/gdey037z03.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ class Gdey037z03 extends Epd {
1919
String get imgPath => "assets/images/displays/epaper_3.7_bwr.png";
2020

2121
@override
22-
get colors => [Colors.black, Colors.white, Colors.red];
22+
get colors => [Colors.white, Colors.black, Colors.red];
2323

2424
@override
2525
get controller => Uc8253() as Driver;

lib/util/epd/gdey037z03bw.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ class Gdey037z03BW extends Epd {
1919
String get imgPath => "assets/images/displays/epaper_3.7_bw.PNG";
2020

2121
@override
22-
get colors => [Colors.black, Colors.white];
22+
get colors => [Colors.white, Colors.black];
2323

2424
@override
2525
get controller => Uc8253() as Driver;

0 commit comments

Comments
 (0)