From 63774617b4374a9f1382cceb4adf0536dfcdcfed Mon Sep 17 00:00:00 2001 From: Nina Zakharenko Date: Thu, 13 Feb 2020 23:28:59 -0800 Subject: [PATCH 1/5] Update max group size to reflect number of elements --- adafruit_pybadger.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/adafruit_pybadger.py b/adafruit_pybadger.py index 8e677d9..d83d075 100755 --- a/adafruit_pybadger.py +++ b/adafruit_pybadger.py @@ -289,7 +289,7 @@ def show_business_card(self, *, image_name=None, name_string=None, name_scale=1, ``terminalio.FONT``. """ - business_card_splash = displayio.Group(max_size=30) + business_card_splash = displayio.Group(max_size=4) self.display.show(business_card_splash) with open(image_name, "rb") as file_name: on_disk_bitmap = displayio.OnDiskBitmap(file_name) From 1a92cb131bcfaec54c2f58e32fa2ddd3d65edf81 Mon Sep 17 00:00:00 2001 From: Nina Zakharenko Date: Thu, 13 Feb 2020 23:32:00 -0800 Subject: [PATCH 2/5] Save labels for present properties into a list --- adafruit_pybadger.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/adafruit_pybadger.py b/adafruit_pybadger.py index d83d075..5f7bf9a 100755 --- a/adafruit_pybadger.py +++ b/adafruit_pybadger.py @@ -300,24 +300,28 @@ def show_business_card(self, *, image_name=None, name_string=None, name_scale=1, except AttributeError: self.display.wait_for_frame() + business_card_label_groups = [] if name_string: name_group = self._create_label_group(text=name_string, font=name_font, scale=name_scale, height_adjustment=0.73) - business_card_splash.append(name_group) + business_card_label_groups.append(name_group) if email_string_one: email_one_group = self._create_label_group(text=email_string_one, font=email_font_one, scale=email_scale_one, height_adjustment=0.84) - business_card_splash.append(email_one_group) + business_card_label_groups.append(email_one_group) if email_string_two: email_two_group = self._create_label_group(text=email_string_two, font=email_font_two, scale=email_scale_two, height_adjustment=0.91) - business_card_splash.append(email_two_group) + business_card_label_groups.append(email_two_group) + + for group in business_card_label_groups: + business_card_splash.append(group) # pylint: disable=too-many-locals def show_badge(self, *, background_color=0xFF0000, foreground_color=0xFFFFFF, From 4bfb679554e2f77e396e47d2e37b6a54d2de1a52 Mon Sep 17 00:00:00 2001 From: Nina Zakharenko Date: Thu, 13 Feb 2020 23:36:56 -0800 Subject: [PATCH 3/5] Remove wait_for_frame() call when displaying card Per the release notes for CircuitPython 5.0.0 Alpha 2, calling wait_for_frame is no longer needed, and calling refresh() should accomplish the same goal. Additionally, target_frames_per_second is already set to 60 by default. --- adafruit_pybadger.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/adafruit_pybadger.py b/adafruit_pybadger.py index 5f7bf9a..18deb42 100755 --- a/adafruit_pybadger.py +++ b/adafruit_pybadger.py @@ -295,10 +295,7 @@ def show_business_card(self, *, image_name=None, name_string=None, name_scale=1, on_disk_bitmap = displayio.OnDiskBitmap(file_name) face_image = displayio.TileGrid(on_disk_bitmap, pixel_shader=displayio.ColorConverter()) business_card_splash.append(face_image) - try: - self.display.refresh(target_frames_per_second=60) - except AttributeError: - self.display.wait_for_frame() + self.display.refresh() business_card_label_groups = [] if name_string: From a8cea0c764a163b44cb978957d2277b3f30fbca6 Mon Sep 17 00:00:00 2001 From: Nina Zakharenko Date: Thu, 13 Feb 2020 23:39:54 -0800 Subject: [PATCH 4/5] For business card, display background and labels together When displaying the business card, group the calls to add the background bitmap and the labels to the group in the same place in code, allowing them to display at the same time. This change has removed the black background around the labels, which appeared to be caused by a bug, since labels don't have a background color property. --- adafruit_pybadger.py | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/adafruit_pybadger.py b/adafruit_pybadger.py index 18deb42..3ad6ffe 100755 --- a/adafruit_pybadger.py +++ b/adafruit_pybadger.py @@ -289,14 +289,6 @@ def show_business_card(self, *, image_name=None, name_string=None, name_scale=1, ``terminalio.FONT``. """ - business_card_splash = displayio.Group(max_size=4) - self.display.show(business_card_splash) - with open(image_name, "rb") as file_name: - on_disk_bitmap = displayio.OnDiskBitmap(file_name) - face_image = displayio.TileGrid(on_disk_bitmap, pixel_shader=displayio.ColorConverter()) - business_card_splash.append(face_image) - self.display.refresh() - business_card_label_groups = [] if name_string: name_group = self._create_label_group(text=name_string, @@ -317,8 +309,15 @@ def show_business_card(self, *, image_name=None, name_string=None, name_scale=1, height_adjustment=0.91) business_card_label_groups.append(email_two_group) - for group in business_card_label_groups: - business_card_splash.append(group) + business_card_splash = displayio.Group(max_size=4) + self.display.show(business_card_splash) + with open(image_name, "rb") as file_name: + on_disk_bitmap = displayio.OnDiskBitmap(file_name) + face_image = displayio.TileGrid(on_disk_bitmap, pixel_shader=displayio.ColorConverter()) + business_card_splash.append(face_image) + for group in business_card_label_groups: + business_card_splash.append(group) + self.display.refresh() # pylint: disable=too-many-locals def show_badge(self, *, background_color=0xFF0000, foreground_color=0xFFFFFF, From 2c4cdabc8f3a7b30f3b9a73ae5213bad4e77557d Mon Sep 17 00:00:00 2001 From: Nina Zakharenko Date: Mon, 17 Feb 2020 13:37:07 -0800 Subject: [PATCH 5/5] Refresh display function should support CircuitPython 4 and 5 --- adafruit_pybadger.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/adafruit_pybadger.py b/adafruit_pybadger.py index 3ad6ffe..41bad8a 100755 --- a/adafruit_pybadger.py +++ b/adafruit_pybadger.py @@ -317,7 +317,12 @@ def show_business_card(self, *, image_name=None, name_string=None, name_scale=1, business_card_splash.append(face_image) for group in business_card_label_groups: business_card_splash.append(group) - self.display.refresh() + try: + # Refresh display in CircuitPython 5 + self.display.refresh() + except AttributeError: + # Refresh display in CircuitPython 4 + self.display.wait_for_frame() # pylint: disable=too-many-locals def show_badge(self, *, background_color=0xFF0000, foreground_color=0xFFFFFF,