mirror of
https://github.com/liberatedsystems/Sideband_CE.git
synced 2024-09-03 04:13:27 +02:00
48 lines
1.1 KiB
Python
48 lines
1.1 KiB
Python
|
'''
|
||
|
Module of iOS API for plyer.battery.
|
||
|
'''
|
||
|
|
||
|
from pyobjus import autoclass
|
||
|
from pyobjus.dylib_manager import load_framework
|
||
|
from plyer.facades import Battery
|
||
|
|
||
|
load_framework('/System/Library/Frameworks/UIKit.framework')
|
||
|
UIDevice = autoclass('UIDevice')
|
||
|
|
||
|
|
||
|
class IOSBattery(Battery):
|
||
|
'''
|
||
|
Implementation of iOS battery API.
|
||
|
'''
|
||
|
|
||
|
def __init__(self):
|
||
|
super().__init__()
|
||
|
self.device = UIDevice.currentDevice()
|
||
|
|
||
|
def _get_state(self):
|
||
|
status = {"isCharging": None, "percentage": None}
|
||
|
|
||
|
if not self.device.batteryMonitoringEnabled:
|
||
|
self.device.setBatteryMonitoringEnabled_(True)
|
||
|
|
||
|
if self.device.batteryState == 0:
|
||
|
is_charging = None
|
||
|
elif self.device.batteryState == 2:
|
||
|
is_charging = True
|
||
|
else:
|
||
|
is_charging = False
|
||
|
|
||
|
percentage = self.device.batteryLevel * 100.
|
||
|
|
||
|
status['isCharging'] = is_charging
|
||
|
status['percentage'] = percentage
|
||
|
|
||
|
return status
|
||
|
|
||
|
|
||
|
def instance():
|
||
|
'''
|
||
|
Instance for facade proxy.
|
||
|
'''
|
||
|
return IOSBattery()
|