mirror of
https://github.com/SideStore/SideStore.git
synced 2026-02-12 08:13:26 +01:00
Downloads, resigns, and installs apps from start to finish
This commit is contained in:
@@ -24,6 +24,7 @@ NSErrorDomain const ALTDeviceErrorDomain = @"com.rileytestut.ALTDeviceError";
|
||||
|
||||
@property (nonatomic, readonly) NSMutableDictionary<NSUUID *, void (^)(void)> *installationCompletionHandlers;
|
||||
@property (nonatomic, readonly) NSMutableDictionary<NSUUID *, NSProgress *> *installationProgress;
|
||||
@property (nonatomic, readonly) NSMutableDictionary<NSUUID *, NSValue *> *installationClients;
|
||||
|
||||
@end
|
||||
|
||||
@@ -47,6 +48,7 @@ NSErrorDomain const ALTDeviceErrorDomain = @"com.rileytestut.ALTDeviceError";
|
||||
{
|
||||
_installationCompletionHandlers = [NSMutableDictionary dictionary];
|
||||
_installationProgress = [NSMutableDictionary dictionary];
|
||||
_installationClients = [NSMutableDictionary dictionary];
|
||||
}
|
||||
|
||||
return self;
|
||||
@@ -235,6 +237,9 @@ NSErrorDomain const ALTDeviceErrorDomain = @"com.rileytestut.ALTDeviceError";
|
||||
return progress;
|
||||
}
|
||||
|
||||
NSValue *value = [NSValue valueWithPointer:(const void *)np];
|
||||
|
||||
self.installationClients[UUID] = value;
|
||||
self.installationProgress[UUID] = progress;
|
||||
self.installationCompletionHandlers[UUID] = ^{
|
||||
finish(nil);
|
||||
@@ -357,18 +362,17 @@ NSErrorDomain const ALTDeviceErrorDomain = @"com.rileytestut.ALTDeviceError";
|
||||
#pragma mark - Getters -
|
||||
|
||||
- (NSArray<ALTDevice *> *)connectedDevices
|
||||
{
|
||||
{
|
||||
NSMutableArray *connectedDevices = [NSMutableArray array];
|
||||
|
||||
int count = 0;
|
||||
char **udids = NULL;
|
||||
|
||||
if (idevice_get_device_list(&udids, &count) < 0)
|
||||
{
|
||||
fprintf(stderr, "ERROR: Unable to retrieve device list!\n");
|
||||
return @[];
|
||||
}
|
||||
|
||||
NSMutableArray *connectedDevices = [NSMutableArray array];
|
||||
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
char *udid = udids[i];
|
||||
@@ -435,9 +439,19 @@ void ALTDeviceManagerDidFinishAppInstallation(const char *notification, void *uu
|
||||
if (completionHandler != nil)
|
||||
{
|
||||
completionHandler();
|
||||
|
||||
ALTDeviceManager.sharedManager.installationCompletionHandlers[UUID] = nil;
|
||||
ALTDeviceManager.sharedManager.installationProgress[UUID] = nil;
|
||||
}
|
||||
|
||||
NSValue *value = ALTDeviceManager.sharedManager.installationClients[UUID];
|
||||
if (value != nil)
|
||||
{
|
||||
np_client_t np = (np_client_t)value.pointerValue;
|
||||
np_set_notify_callback(np, NULL, uuid);
|
||||
|
||||
ALTDeviceManager.sharedManager.installationClients[UUID] = nil;
|
||||
}
|
||||
}
|
||||
|
||||
void ALTDeviceManagerUpdateStatus(plist_t command, plist_t status, void *uuid)
|
||||
|
||||
Reference in New Issue
Block a user