Skip to content

Instantly share code, notes, and snippets.

@ColdGrub1384
Created September 22, 2020 15:32
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save ColdGrub1384/90838e45712aaa8aeed830ab910f048b to your computer and use it in GitHub Desktop.
Save ColdGrub1384/90838e45712aaa8aeed830ab910f048b to your computer and use it in GitHub Desktop.
A battery widget for the Home Screen monitoring in background.
# Created with Pyto
import widgets as wd
import sf_symbols as sf
import sys
from datetime import time
from UIKit import UIDevice
from background import BackgroundTask
from threading import Thread
if "monitoring_battery" in sys.modules:
print("Already monitoring")
raise SystemExit
sys.modules["monitoring_battery"] = True
BACKGROUND = wd.Color.rgb(255/255, 250/255, 227/255)
FOREGROUND = wd.Color.rgb(75/255, 72/255, 55/255)
device = UIDevice.currentDevice
device.setBatteryMonitoringEnabled(True)
def monitor(bg):
prev_battery = None
while True:
battery = int(float(device.batteryLevel)*100)
if battery == prev_battery:
bg.wait(60)
continue
prev_battery = battery
widget = wd.Widget()
if battery <= 0.1:
symbol = sf.BATTERY_0
elif battery <= 0.5:
symbol = sf.BATTERY_25
else:
symbol = sf.BATTERY_100
battery_symbol = wd.SystemSymbol(
symbol,
color=FOREGROUND,
padding=wd.PADDING_ALL,
font_size=70
)
battery_level = wd.Text(
str(battery)+"%",
color=FOREGROUND,
font=wd.Font("AmericanTypewriter-Bold", 25),
)
for layout in [
widget.small_layout,
widget.medium_layout,
widget.large_layout]:
layout.add_row([battery_symbol])
layout.add_row([battery_level])
layout.set_background_color(BACKGROUND)
wd.save_widget(widget, "Battery")
def monitor_in_background():
with BackgroundTask() as bg:
monitor(bg)
Thread(target=monitor_in_background).start()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment