From ba5c87e7a8c14fe20877fff765d28a73a99c32f2 Mon Sep 17 00:00:00 2001 From: Arjan Schrijver Date: Thu, 22 Jul 2021 13:09:00 +0200 Subject: [PATCH] Fossil Hybrid HR: Add icon for inverting colors of background image --- .../HybridHRWatchfaceDesignerActivity.java | 14 ++++++++++ .../main/res/drawable/ic_invert_colors.xml | 10 +++++++ .../activity_hybridhr_watchface_designer.xml | 27 ++++++++++++++----- 3 files changed, 44 insertions(+), 7 deletions(-) create mode 100644 app/src/main/res/drawable/ic_invert_colors.xml diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/qhybrid/HybridHRWatchfaceDesignerActivity.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/qhybrid/HybridHRWatchfaceDesignerActivity.java index b5863a954..85af7b01b 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/qhybrid/HybridHRWatchfaceDesignerActivity.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/qhybrid/HybridHRWatchfaceDesignerActivity.java @@ -87,6 +87,7 @@ public class HybridHRWatchfaceDesignerActivity extends AbstractGBActivity implem private String watchfaceName = "NewWatchface"; final private ArrayList widgets = new ArrayList<>(); private HybridHRWatchfaceSettings watchfaceSettings = new HybridHRWatchfaceSettings(); + private int defaultWidgetColor = HybridHRWatchfaceWidget.COLOR_WHITE; @Override protected void onCreate(Bundle savedInstanceState) { @@ -114,6 +115,7 @@ public class HybridHRWatchfaceDesignerActivity extends AbstractGBActivity implem backgroundImageView.setOnDragListener(this); findViewById(R.id.watchface_widget_delete_droparea).setOnDragListener(this); + findViewById(R.id.watchface_invert_colors).setOnClickListener(this); findViewById(R.id.button_edit_name).setOnClickListener(this); findViewById(R.id.button_set_background).setOnClickListener(this); findViewById(R.id.button_add_widget).setOnClickListener(this); @@ -179,6 +181,16 @@ public class HybridHRWatchfaceDesignerActivity extends AbstractGBActivity implem }) .setTitle(R.string.watchface_dialog_title_set_name) .show(); + } else if (v.getId() == R.id.watchface_invert_colors) { + if (selectedBackgroundImage != null) { + selectedBackgroundImage = BitmapUtil.invertBitmapColors(selectedBackgroundImage); + renderWatchfacePreview(); + if (defaultWidgetColor == HybridHRWatchfaceWidget.COLOR_WHITE) { + defaultWidgetColor = HybridHRWatchfaceWidget.COLOR_BLACK; + } else { + defaultWidgetColor = HybridHRWatchfaceWidget.COLOR_WHITE; + } + } } else if (v.getId() == R.id.button_set_background) { Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT); intent.addCategory(Intent.CATEGORY_OPENABLE); @@ -437,6 +449,8 @@ public class HybridHRWatchfaceDesignerActivity extends AbstractGBActivity implem colorSpinner.setAdapter(widgetColorAdapter); if (widget != null) { colorSpinner.setSelection(widget.getColor()); + } else { + colorSpinner.setSelection(defaultWidgetColor); } // Set X coordinate final EditText posX = layout.findViewById(R.id.watchface_widget_pos_x); diff --git a/app/src/main/res/drawable/ic_invert_colors.xml b/app/src/main/res/drawable/ic_invert_colors.xml new file mode 100644 index 000000000..c446a4635 --- /dev/null +++ b/app/src/main/res/drawable/ic_invert_colors.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/layout/activity_hybridhr_watchface_designer.xml b/app/src/main/res/layout/activity_hybridhr_watchface_designer.xml index f3cce7572..556426e55 100644 --- a/app/src/main/res/layout/activity_hybridhr_watchface_designer.xml +++ b/app/src/main/res/layout/activity_hybridhr_watchface_designer.xml @@ -34,16 +34,29 @@ + android:layout_height="wrap_content"> + + + + android:layout_marginTop="20dp" + android:layout_marginBottom="20dp"> + + +