# oled_display.py

import time
import board
import busio
from adafruit_ssd1306 import SSD1306_I2C
from PIL import Image, ImageDraw, ImageFont

class OLEDDisplay:
    def __init__(self, width=128, height=64):
        self.i2c = busio.I2C(board.SCL, board.SDA)
        self.width = width
        self.height = height
        self.oled = SSD1306_I2C(width, height, self.i2c)
        self.oled.fill(0)
        self.oled.show()
        self.font = ImageFont.load_default()

    def show_message(self, message, duration=2, clear_after=True):
        image = Image.new("1", (self.width, self.height))
        draw = ImageDraw.Draw(image)
        draw.text((0, 28), message, font=self.font, fill=255)
        rotated = image.rotate(180)
        self.oled.image(rotated)
        self.oled.show()
        time.sleep(duration)
        if clear_after:
            self.clear()

    def clear(self):
        self.oled.fill(0)
        self.oled.show()
