Skip to content

Commit

Permalink
Merge pull request #1101 from doronz88/feature/springboard-ios18
Browse files Browse the repository at this point in the history
springboard: add ios18 features
  • Loading branch information
doronz88 committed Jun 30, 2024
2 parents a47b99d + 56f3c45 commit 8ec4ec8
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 4 deletions.
21 changes: 18 additions & 3 deletions pymobiledevice3/cli/springboard.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
from typing import IO

import click
import IPython

Expand Down Expand Up @@ -59,8 +61,21 @@ def springboard_orientation(service_provider: LockdownClient):
print(SpringBoardServicesService(lockdown=service_provider).get_interface_orientation())


@springboard.command('wallpaper', cls=Command)
@springboard.command('wallpaper-home-screen', cls=Command)
@click.argument('out', type=click.File('wb'))
def springboard_wallpaper(service_provider: LockdownClient, out):
""" get wallpapaer """
def springboard_wallpaper_home_screen(service_provider: LockdownClient, out: IO) -> None:
""" get homescreen wallpaper """
out.write(SpringBoardServicesService(lockdown=service_provider).get_wallpaper_pngdata())


@springboard.command('wallpaper-preview-image', cls=Command)
@click.argument('wallpaper-name', type=click.Choice(['homescreen', 'lockscreen']))
@click.argument('out', type=click.File('wb'))
@click.option('-r', '--reload', is_flag=True, help='reload icon state before fetching image')
def springboard_wallpaper_preview_image(service_provider: LockdownClient, wallpaper_name: str, out: IO,
reload: bool) -> None:
""" get the preview image of either the homescreen or the lockscreen """
with SpringBoardServicesService(lockdown=service_provider) as springboard_service:
if reload:
springboard_service.reload_icon_state()
out.write(springboard_service.get_wallpaper_preview_image(wallpaper_name))
15 changes: 14 additions & 1 deletion pymobiledevice3/services/springboard.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from enum import IntEnum
from typing import List, Optional
from typing import List, Mapping, Optional

from pymobiledevice3.lockdown import LockdownClient
from pymobiledevice3.lockdown_service_provider import LockdownServiceProvider
Expand Down Expand Up @@ -45,3 +45,16 @@ def get_interface_orientation(self) -> InterfaceOrientation:

def get_wallpaper_pngdata(self) -> bytes:
return self.service.send_recv_plist({'command': 'getHomeScreenWallpaperPNGData'}).get('pngData')

def get_homescreen_icon_metrics(self) -> Mapping[str, float]:
return self.service.send_recv_plist({'command': 'getHomeScreenIconMetrics'})

def get_wallpaper_info(self, wallpaper_name: str) -> Mapping:
return self.service.send_recv_plist({'command': 'getWallpaperInfo', 'wallpaperName': wallpaper_name})

def reload_icon_state(self) -> None:
self.set_icon_state(self.get_icon_state())

def get_wallpaper_preview_image(self, wallpaper_name: str) -> bytes:
return self.service.send_recv_plist({
'command': 'getWallpaperPreviewImage', 'wallpaperName': wallpaper_name})['pngData']

0 comments on commit 8ec4ec8

Please sign in to comment.