From f98b2a209473cd8b69597774ca6066ce664f8859 Mon Sep 17 00:00:00 2001 From: opa334 Date: Sat, 27 Jan 2024 01:49:53 +0100 Subject: [PATCH] Reload icons on app (un)install --- Shared/CoreServices.h | 4 ++-- TrollStore/TSAppTableViewController.m | 16 ++++++++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/Shared/CoreServices.h b/Shared/CoreServices.h index ef0fc74..a944af1 100644 --- a/Shared/CoreServices.h +++ b/Shared/CoreServices.h @@ -37,8 +37,8 @@ extern NSString *LSInstallTypeKey; @protocol LSApplicationWorkspaceObserverProtocol @optional --(void)applicationsDidInstall:(id)arg1; --(void)applicationsDidUninstall:(id)arg1; +- (void)applicationsDidInstall:(NSArray *)apps; +- (void)applicationsDidUninstall:(NSArray *)apps; @end @interface LSEnumerator : NSEnumerator diff --git a/TrollStore/TSAppTableViewController.m b/TrollStore/TSAppTableViewController.m index ed99728..2c03a7d 100644 --- a/TrollStore/TSAppTableViewController.m +++ b/TrollStore/TSAppTableViewController.m @@ -497,13 +497,25 @@ UIImage* imageWithSize(UIImage* image, CGSize size) [TSPresentationDelegate presentViewController:appSelectAlert animated:YES completion:nil]; } -- (void)applicationsDidInstall:(id)arg1 +- (void)purgeCachedIconsForApps:(NSArray *)apps { + for (LSApplicationProxy *appProxy in apps) { + NSString *appId = appProxy.bundleIdentifier; + if (_cachedIcons[appId]) { + [_cachedIcons removeObjectForKey:appId]; + } + } +} + +- (void)applicationsDidInstall:(NSArray *)apps +{ + [self purgeCachedIconsForApps:apps]; [self reloadTable]; } -- (void)applicationsDidUninstall:(id)arg1 +- (void)applicationsDidUninstall:(NSArray *)apps { + [self purgeCachedIconsForApps:apps]; [self reloadTable]; }