From 39b3b1662b50a8cc75078b930a34b4f0af8c3e9c Mon Sep 17 00:00:00 2001 From: foamyguy Date: Tue, 22 Jul 2025 15:41:01 -0500 Subject: [PATCH 1/6] public text_fields property --- adafruit_portalbase/__init__.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/adafruit_portalbase/__init__.py b/adafruit_portalbase/__init__.py index 31196a0..27c425a 100644 --- a/adafruit_portalbase/__init__.py +++ b/adafruit_portalbase/__init__.py @@ -567,3 +567,8 @@ def splash(self): def display(self): """The displayio.Display object for this device.""" return self.graphics.display + + + @property + def text_fields(self): + return self._text \ No newline at end of file From 2e84baad1d924dd92b2106b99c236a50360931c3 Mon Sep 17 00:00:00 2001 From: foamyguy Date: Tue, 22 Jul 2025 15:41:43 -0500 Subject: [PATCH 2/6] code format --- adafruit_portalbase/__init__.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/adafruit_portalbase/__init__.py b/adafruit_portalbase/__init__.py index 27c425a..dbe9337 100644 --- a/adafruit_portalbase/__init__.py +++ b/adafruit_portalbase/__init__.py @@ -568,7 +568,6 @@ def display(self): """The displayio.Display object for this device.""" return self.graphics.display - @property def text_fields(self): - return self._text \ No newline at end of file + return self._text From 01f63b41b7dba4890e9e0eac7a69fb09c0b8a862 Mon Sep 17 00:00:00 2001 From: foamyguy Date: Tue, 22 Jul 2025 15:55:27 -0500 Subject: [PATCH 3/6] add docstring --- adafruit_portalbase/__init__.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/adafruit_portalbase/__init__.py b/adafruit_portalbase/__init__.py index dbe9337..86e1621 100644 --- a/adafruit_portalbase/__init__.py +++ b/adafruit_portalbase/__init__.py @@ -570,4 +570,8 @@ def display(self): @property def text_fields(self): + """ + The list of text field(s) metadata objects. + See add_text() definition for available metadata fields. + """ return self._text From a8f57a3c98696490b125a80144080ca3250af966 Mon Sep 17 00:00:00 2001 From: foamyguy Date: Wed, 23 Jul 2025 10:00:06 -0500 Subject: [PATCH 4/6] add support for jpg and png images --- adafruit_portalbase/graphics.py | 15 ++++++++++++--- requirements.txt | 1 + 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/adafruit_portalbase/graphics.py b/adafruit_portalbase/graphics.py index b1a92a3..19076ef 100644 --- a/adafruit_portalbase/graphics.py +++ b/adafruit_portalbase/graphics.py @@ -23,6 +23,7 @@ import gc +import adafruit_imageload import displayio __version__ = "0.0.0+auto.0" @@ -76,11 +77,19 @@ def set_background(self, file_or_color, position=None): if not file_or_color: return # we're done, no background desired - if isinstance(file_or_color, str): # its a filenme: - background = displayio.OnDiskBitmap(file_or_color) + if isinstance(file_or_color, str): # it's a filename: + if file_or_color.lower().endswith(".bmp"): + background = displayio.OnDiskBitmap(file_or_color) + palette = background.pixel_shader + elif file_or_color.lower().endswith(".jpg") or file_or_color.lower().endswith(".jpeg"): + background, palette = adafruit_imageload.load(file_or_color) + elif file_or_color.lower().endswith(".png"): + background, palette = adafruit_imageload.load(file_or_color) + else: + raise ValueError(f"Image File type {file_or_color} not supported") self._bg_sprite = displayio.TileGrid( background, - pixel_shader=background.pixel_shader, + pixel_shader=palette, x=position[0], y=position[1], ) diff --git a/requirements.txt b/requirements.txt index 13d73b5..0e67d1d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -13,3 +13,4 @@ adafruit-circuitpython-miniqr adafruit-circuitpython-requests adafruit-circuitpython-fakerequests adafruit-circuitpython-simpleio +adafruit-circuitpython-imageload From 609f6066c79fde05e5ff31d24c2585d7211d106d Mon Sep 17 00:00:00 2001 From: foamyguy Date: Wed, 23 Jul 2025 11:57:21 -0500 Subject: [PATCH 5/6] refactor logic from review --- adafruit_portalbase/graphics.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/adafruit_portalbase/graphics.py b/adafruit_portalbase/graphics.py index 19076ef..f6edf6c 100644 --- a/adafruit_portalbase/graphics.py +++ b/adafruit_portalbase/graphics.py @@ -78,12 +78,11 @@ def set_background(self, file_or_color, position=None): if not file_or_color: return # we're done, no background desired if isinstance(file_or_color, str): # it's a filename: - if file_or_color.lower().endswith(".bmp"): + file_lower = file_or_color.lower() + if file_lower.endswith(".bmp"): background = displayio.OnDiskBitmap(file_or_color) palette = background.pixel_shader - elif file_or_color.lower().endswith(".jpg") or file_or_color.lower().endswith(".jpeg"): - background, palette = adafruit_imageload.load(file_or_color) - elif file_or_color.lower().endswith(".png"): + elif file_lower.endswith(".jpg") or file_lower.endswith(".jpeg") or file_lower.endswith(".png"): background, palette = adafruit_imageload.load(file_or_color) else: raise ValueError(f"Image File type {file_or_color} not supported") From 9ffb066761f561b728744fd7eff0b31b95304761 Mon Sep 17 00:00:00 2001 From: foamyguy Date: Wed, 23 Jul 2025 12:03:58 -0500 Subject: [PATCH 6/6] code format --- adafruit_portalbase/graphics.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/adafruit_portalbase/graphics.py b/adafruit_portalbase/graphics.py index f6edf6c..89c38ea 100644 --- a/adafruit_portalbase/graphics.py +++ b/adafruit_portalbase/graphics.py @@ -82,7 +82,11 @@ def set_background(self, file_or_color, position=None): if file_lower.endswith(".bmp"): background = displayio.OnDiskBitmap(file_or_color) palette = background.pixel_shader - elif file_lower.endswith(".jpg") or file_lower.endswith(".jpeg") or file_lower.endswith(".png"): + elif ( + file_lower.endswith(".jpg") + or file_lower.endswith(".jpeg") + or file_lower.endswith(".png") + ): background, palette = adafruit_imageload.load(file_or_color) else: raise ValueError(f"Image File type {file_or_color} not supported")