diff --git a/assistant+/.theos/packages/org.thebigboss.assistantplus-1.1.0 b/assistant+/.theos/packages/org.thebigboss.assistantplus-1.1.0 index 56a6051..c24b6ae 100644 --- a/assistant+/.theos/packages/org.thebigboss.assistantplus-1.1.0 +++ b/assistant+/.theos/packages/org.thebigboss.assistantplus-1.1.0 @@ -1 +1 @@ -1 \ No newline at end of file +38 \ No newline at end of file diff --git a/assistant+/Assistant+.xcworkspace/xcuserdata/Zaid.xcuserdatad/UserInterfaceState.xcuserstate b/assistant+/Assistant+.xcworkspace/xcuserdata/Zaid.xcuserdatad/UserInterfaceState.xcuserstate index 8bb1e6f..3c0b5c3 100644 Binary files a/assistant+/Assistant+.xcworkspace/xcuserdata/Zaid.xcuserdatad/UserInterfaceState.xcuserstate and b/assistant+/Assistant+.xcworkspace/xcuserdata/Zaid.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/assistant+/AssistantHooks.xm b/assistant+/AssistantHooks.xm index e414db6..da636d3 100644 --- a/assistant+/AssistantHooks.xm +++ b/assistant+/AssistantHooks.xm @@ -22,9 +22,17 @@ static BOOL defaultHandling = YES; static AFConnection *currConnection; static APPluginSystem *pluginManager; static BOOL hasLoadedSnippets = NO; +static APSession *previousSession; BOOL shouldHandleRequest(NSString *text, APSession *currSession) { pluginManager = [[%c(APSpringboardUtils) sharedAPUtils] getPluginManager]; + if (previousSession && [previousSession isListeningAfterSpeaking]) { + NSLog(@"AP: Using previous session"); + currSession = previousSession; + } else { + NSLog(@"AP: Creating new session"); + previousSession = currSession; + } NSArray *lowerCaseArr = [[text componentsSeparatedByString: @" "] valueForKey:@"lowercaseString"]; NSSet *tokens = [NSSet setWithArray:lowerCaseArr]; BOOL pluginWillHandle = [pluginManager handleCommand:text withTokens:tokens withSession:currSession]; @@ -133,6 +141,14 @@ BOOL shouldHandleRequest(NSString *text, APSession *currSession) { } } +- (void)endSession { + if (pluginManager) { + [pluginManager assistantWasDismissed]; + } + previousSession = nil; + %orig; +} + %end %hook AFConnectionClientServiceDelegate @@ -151,7 +167,6 @@ BOOL shouldHandleRequest(NSString *text, APSession *currSession) { } NSLog(@"AP Starting Speech Query: %@", phraseBuilder); - AFConnection *connection = MSHookIvar(self, "_connection"); APSession *currSession = [APSession sessionWithConnection:connection]; if (shouldHandleRequest(phraseBuilder, currSession)) { diff --git a/assistant+/Makefile b/assistant+/Makefile index d1c11fc..3d850d1 100644 --- a/assistant+/Makefile +++ b/assistant+/Makefile @@ -1,9 +1,9 @@ include theos/makefiles/common.mk export ARCHS = armv7 armv7s arm64 -export TARGET = iphone:clang:latest:8.0 -export TARGET_IPHONEOS_DEPLOYMENT_VERSION = 8.0 -export SDKVERSION=8.1 +export TARGET = iphone:clang:latest:8.4 +export TARGET_IPHONEOS_DEPLOYMENT_VERSION = 8.4 +export SDKVERSION=8.4 TWEAK_NAME = Assistant+ diff --git a/assistant+/_/Applications/AssistantPlusApp.app/AssistantPlusApp b/assistant+/_/Applications/AssistantPlusApp.app/AssistantPlusApp index 20062a4..461d854 100755 Binary files a/assistant+/_/Applications/AssistantPlusApp.app/AssistantPlusApp and b/assistant+/_/Applications/AssistantPlusApp.app/AssistantPlusApp differ diff --git a/assistant+/_/Applications/AssistantPlusApp.app/assistantplus_root_helper b/assistant+/_/Applications/AssistantPlusApp.app/assistantplus_root_helper index 711b935..8c4c4ca 100755 Binary files a/assistant+/_/Applications/AssistantPlusApp.app/assistantplus_root_helper and b/assistant+/_/Applications/AssistantPlusApp.app/assistantplus_root_helper differ diff --git a/assistant+/_/Library/AssistantPlusPlugins/customreply.assistantPlugin/customreply b/assistant+/_/Library/AssistantPlusPlugins/customreply.assistantPlugin/customreply index 3a54088..97da082 100755 Binary files a/assistant+/_/Library/AssistantPlusPlugins/customreply.assistantPlugin/customreply and b/assistant+/_/Library/AssistantPlusPlugins/customreply.assistantPlugin/customreply differ diff --git a/assistant+/_/Library/MobileSubstrate/DynamicLibraries/Assistant+.dylib b/assistant+/_/Library/MobileSubstrate/DynamicLibraries/Assistant+.dylib index aa11214..e9b3a8e 100755 Binary files a/assistant+/_/Library/MobileSubstrate/DynamicLibraries/Assistant+.dylib and b/assistant+/_/Library/MobileSubstrate/DynamicLibraries/Assistant+.dylib differ diff --git a/assistant+/_/Library/MobileSubstrate/DynamicLibraries/AssistantPlusPluginManager.dylib b/assistant+/_/Library/MobileSubstrate/DynamicLibraries/AssistantPlusPluginManager.dylib index 2630deb..1e5f18b 100755 Binary files a/assistant+/_/Library/MobileSubstrate/DynamicLibraries/AssistantPlusPluginManager.dylib and b/assistant+/_/Library/MobileSubstrate/DynamicLibraries/AssistantPlusPluginManager.dylib differ diff --git a/assistant+/_/usr/bin/APLocationDaemon b/assistant+/_/usr/bin/APLocationDaemon index a70a858..bbdf744 100755 Binary files a/assistant+/_/usr/bin/APLocationDaemon and b/assistant+/_/usr/bin/APLocationDaemon differ diff --git a/assistant+/_/usr/bin/siriSay b/assistant+/_/usr/bin/siriSay index c07795b..791c47c 100755 Binary files a/assistant+/_/usr/bin/siriSay and b/assistant+/_/usr/bin/siriSay differ diff --git a/assistant+/aplocationdaemon/obj/APLocationDaemon b/assistant+/aplocationdaemon/obj/APLocationDaemon index a70a858..bbdf744 100755 Binary files a/assistant+/aplocationdaemon/obj/APLocationDaemon and b/assistant+/aplocationdaemon/obj/APLocationDaemon differ diff --git a/assistant+/assistantplus_root_helper/obj/assistantplus_root_helper b/assistant+/assistantplus_root_helper/obj/assistantplus_root_helper index 711b935..8c4c4ca 100755 Binary files a/assistant+/assistantplus_root_helper/obj/assistantplus_root_helper and b/assistant+/assistantplus_root_helper/obj/assistantplus_root_helper differ diff --git a/assistant+/assistantplusapp/AssistantPlusApp.xcodeproj/project.xcworkspace/xcuserdata/Zaid.xcuserdatad/UserInterfaceState.xcuserstate b/assistant+/assistantplusapp/AssistantPlusApp.xcodeproj/project.xcworkspace/xcuserdata/Zaid.xcuserdatad/UserInterfaceState.xcuserstate index 07e17fd..0f3c7c9 100644 Binary files a/assistant+/assistantplusapp/AssistantPlusApp.xcodeproj/project.xcworkspace/xcuserdata/Zaid.xcuserdatad/UserInterfaceState.xcuserstate and b/assistant+/assistantplusapp/AssistantPlusApp.xcodeproj/project.xcworkspace/xcuserdata/Zaid.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/assistant+/assistantplusapp/Makefile b/assistant+/assistantplusapp/Makefile index 2581b65..2acc2d8 100644 --- a/assistant+/assistantplusapp/Makefile +++ b/assistant+/assistantplusapp/Makefile @@ -1,8 +1,8 @@ include theos/makefiles/common.mk export ARCHS = armv7 arm64 -export TARGET = iphone:clang:latest:8.0 -export SDKVERSION=8.1 +export TARGET = iphone:clang:latest:8.4 +export SDKVERSION=8.4 APPLICATION_NAME = AssistantPlusApp AssistantPlusApp_FILES = main.m AppDelegate.m MainViewController.m APActivatorListener.m ActivatorListenersViewController.m ListenerDetailViewController.m CustomReplyDetailViewController.m CustomRepliesViewController.m APCustomReply.m PluginsViewController.m CaptureGroupCommandDetailViewController.m CaptureGroupCommandsViewController.m APCaptureGroupCommand.m diff --git a/assistant+/assistantplusapp/obj/AssistantPlusApp.app/AssistantPlusApp b/assistant+/assistantplusapp/obj/AssistantPlusApp.app/AssistantPlusApp index 20062a4..461d854 100755 Binary files a/assistant+/assistantplusapp/obj/AssistantPlusApp.app/AssistantPlusApp and b/assistant+/assistantplusapp/obj/AssistantPlusApp.app/AssistantPlusApp differ diff --git a/assistant+/assistantpluspluginmanager/APPlugin.h b/assistant+/assistantpluspluginmanager/APPlugin.h index 08b7953..545aeec 100644 --- a/assistant+/assistantpluspluginmanager/APPlugin.h +++ b/assistant+/assistantpluspluginmanager/APPlugin.h @@ -28,6 +28,7 @@ - (id)initWithFilePath:(NSURL*)filePath andName:(NSString*)name; - (BOOL)handleSpeech:(NSString*)text withTokens:(NSSet*)tokens withSession:(id)session; +- (void)handleReply:(NSString*)text withTokens:(NSSet*)tokens withSession:(id)session; /// Register a command class -(BOOL)registerCommand:(Class)cls; /// Register a snippet class @@ -36,4 +37,6 @@ - (NSSet*)getRegisteredSnippets; - (NSArray*)getRegisteredCommands; +- (void)assistantWasDismissed; + @end diff --git a/assistant+/assistantpluspluginmanager/APPlugin.m b/assistant+/assistantpluspluginmanager/APPlugin.m index 77c8d68..c553ef3 100644 --- a/assistant+/assistantpluspluginmanager/APPlugin.m +++ b/assistant+/assistantpluspluginmanager/APPlugin.m @@ -92,6 +92,24 @@ return NO; } +- (void)handleReply:(NSString*)text withTokens:(NSSet*)tokens withSession:(id)session { + for (NSObject* cmd in commands) { + if ([cmd respondsToSelector:@selector(handleReply:withTokens:withSession:)]) { + [cmd handleReply:text withTokens:tokens withSession:session]; + } + } +} + +#pragma mark - Notifications + +- (void)assistantWasDismissed { + for (NSObject* cmd in commands) { + if ([cmd respondsToSelector:@selector(assistantWasDismissed)]) { + [cmd assistantWasDismissed]; + } + } +} + #pragma mark - Snippet Presentation -(NSObject*)allocSnippet:(NSString*)snippetClass properties:(NSDictionary *)props { @@ -154,5 +172,4 @@ return YES; } - @end diff --git a/assistant+/assistantpluspluginmanager/APPluginSystem.h b/assistant+/assistantpluspluginmanager/APPluginSystem.h index 9925abe..4f63215 100644 --- a/assistant+/assistantpluspluginmanager/APPluginSystem.h +++ b/assistant+/assistantpluspluginmanager/APPluginSystem.h @@ -16,13 +16,14 @@ NSMutableArray *captureGroupCommandsArray; } -@property (strong, nonatomic) APSession *currSession; +@property (strong, nonatomic) APSession *currentSession; + (id)sharedManager; - (BOOL)loadPlugins; - (BOOL)handleCommand:(NSString*)command withTokens:(NSSet*)tokens withSession:(APSession*)currSession; - (void)reloadCustomRepliesPlugin:(NSDictionary*)replies; - (void)reloadActivatorListeners:(NSDictionary*)listeners; +- (void)assistantWasDismissed; //1.0.1 - (void)siriSay:(NSString*)message; diff --git a/assistant+/assistantpluspluginmanager/APPluginSystem.m b/assistant+/assistantpluspluginmanager/APPluginSystem.m index 9cbe0d8..0e59334 100644 --- a/assistant+/assistantpluspluginmanager/APPluginSystem.m +++ b/assistant+/assistantpluspluginmanager/APPluginSystem.m @@ -60,13 +60,24 @@ static NSString *EVENT_PREFIX = @"APListener"; } - (BOOL)handleCommand:(NSString*)command withTokens:(NSSet*)tokens withSession:(APSession*)currSession { - self.currSession = currSession; - + self.currentSession = currSession; //Clean up the command NSString *userCommand = [command lowercaseString]; userCommand = [userCommand stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; - //First check activator listeners + //First, check if a plugin is listening + if ([currSession isListeningAfterSpeaking] && currSession.currentPlugin) { + NSLog(@"AP: Resuming session"); + if ([currSession.currentPlugin respondsToSelector:@selector(handleReply:withTokens:withSession:)]) { + [currSession.currentPlugin handleReply:userCommand withTokens:tokens withSession:currSession]; + return YES; + } else { + currSession.currentPlugin = nil; + currSession.listenAfterSpeaking = NO; + } + } + + //Then check activator listeners for (APActivatorListener *currListener in activatorListenersArray) { for (NSRegularExpression *currExpression in currListener.triggers) { NSArray *arrayOfAllMatches = [currExpression matchesInString:userCommand options:0 range:NSMakeRange(0, [userCommand length])]; @@ -107,12 +118,20 @@ static NSString *EVENT_PREFIX = @"APListener"; NSLog(@"AP: Got Command \"%@\"", userCommand); for (APPlugin *currPlugin in plugins) { if ([currPlugin handleSpeech:userCommand withTokens:tokens withSession:currSession]) { + currSession.currentPlugin = currPlugin; return YES; } } return NO; } +- (void)assistantWasDismissed { + for (APPlugin *currPlugin in plugins) { + if ([currPlugin respondsToSelector:@selector(assistantWasDismissed)]) { + [currPlugin assistantWasDismissed]; + } + } +} #pragma mark - Message Handlers - (NSDictionary*)getInstalledPlugins { @@ -152,7 +171,7 @@ static NSString *EVENT_PREFIX = @"APListener"; } - (void)siriSay:(NSString*)message { - [self.currSession sendTextSnippet:message temporary:NO scrollToTop:YES dialogPhase:@"Completion"]; + [self.currentSession sendTextSnippet:message temporary:NO scrollToTop:YES dialogPhase:@"Completion"]; } #pragma mark - Activator Methods diff --git a/assistant+/assistantpluspluginmanager/APSession.h b/assistant+/assistantpluspluginmanager/APSession.h index 783d9f6..bf75363 100644 --- a/assistant+/assistantpluspluginmanager/APSession.h +++ b/assistant+/assistantpluspluginmanager/APSession.h @@ -10,8 +10,12 @@ #import "AssistantHeaders.h" #import +@class APPlugin; + @interface APSession : NSObject @property (nonatomic, strong) NSString *refId; +@property (nonatomic, getter=isListeningAfterSpeaking) BOOL listenAfterSpeaking; +@property (nonatomic, strong) APPlugin *currentPlugin; @property (nonatomic, strong) AFConnection *connection; @property (nonatomic, copy) void (^completionHandler)(NSDictionary *locationData); @@ -19,13 +23,18 @@ +(APSession*)sessionWithConnection:(AFConnection*)connection; - (void)sendTextSnippet:(NSString*)text temporary:(BOOL)temporary scrollToTop:(BOOL)toTop dialogPhase:(NSString*)phase; +- (void)sendTextSnippet:(NSString*)text temporary:(BOOL)temporary scrollToTop:(BOOL)toTop dialogPhase:(NSString*)phase listenAfterSpeaking:(BOOL)shouldListen; + -(SOObject*)createTextSnippet:(NSString*)text; + - (void)sendAddViews:(NSArray*)views; - (void)sendAddViews:(NSArray*)views dialogPhase:(NSString*)dialogPhase scrollToTop:(BOOL)toTop temporary:(BOOL)temporary; --(SOObject*)createSnippet:(NSString*)snippetClass properties:(NSDictionary*)props; + - (void)sendCustomSnippet:(NSString*)snippetClass withProperties:(NSDictionary*)props; -- (void)sendRequestCompleted; +-(SOObject*)createSnippet:(NSString*)snippetClass properties:(NSDictionary*)props; -(SOObject*)createAssistantUtteranceView:(NSString*)text; + +- (void)sendRequestCompleted; - (void)getCurrentLocationWithCompletion:(void (^)(NSDictionary *info))completion; +(NSString*)generateRandomUUID; diff --git a/assistant+/assistantpluspluginmanager/APSession.xm b/assistant+/assistantpluspluginmanager/APSession.xm index 7fa9c2f..8bfcb45 100644 --- a/assistant+/assistantpluspluginmanager/APSession.xm +++ b/assistant+/assistantpluspluginmanager/APSession.xm @@ -21,6 +21,7 @@ static NSMutableDictionary *sessionDict; self.refId = [referenceId copy]; if (!self.refId) self.refId = [@"00000000-0000-0000-0000-000000000000" copy]; self.connection = connection; + self.listenAfterSpeaking = NO; } return self; } @@ -40,6 +41,10 @@ static NSMutableDictionary *sessionDict; return currSession; } +- (BOOL)isListeningAfterSpeaking { + return _listenAfterSpeaking; +} + #pragma mark - Public Methods -(SOObject*)createTextSnippet:(NSString*)text { @@ -47,8 +52,12 @@ static NSMutableDictionary *sessionDict; } - (void)sendTextSnippet:(NSString*)text temporary:(BOOL)temporary scrollToTop:(BOOL)toTop dialogPhase:(NSString*)phase { + [self sendTextSnippet:text temporary:temporary scrollToTop:toTop dialogPhase:phase listenAfterSpeaking:NO]; +} + +- (void)sendTextSnippet:(NSString*)text temporary:(BOOL)temporary scrollToTop:(BOOL)toTop dialogPhase:(NSString*)phase listenAfterSpeaking:(BOOL)listen { NSMutableArray* views = [NSMutableArray arrayWithCapacity:1]; - [views addObject:[self createAssistantUtteranceView:text]]; + [views addObject:[self createAssistantUtteranceView:text speakableText:text identifier:@"Misc" listenAfterSpeaking:listen]]; [self sendAddViews:views dialogPhase:phase scrollToTop:toTop temporary:temporary]; } @@ -57,6 +66,7 @@ static NSMutableDictionary *sessionDict; } - (void)sendRequestCompleted { + self.listenAfterSpeaking = NO; NSMutableDictionary* dict = [self createAceRequestCompleted]; [self sendCommandToConnection:dict]; [sessionDict removeObjectForKey:self.refId]; @@ -68,25 +78,21 @@ static NSMutableDictionary *sessionDict; } - (void)sendAddViews:(NSArray*)views { - return [self sendAddViews:views dialogPhase:@"Completion" scrollToTop:NO temporary:NO]; + [self sendAddViews:views dialogPhase:@"Completion" scrollToTop:NO temporary:NO]; } - (void)sendAddViews:(NSArray*)views dialogPhase:(NSString*)dialogPhase scrollToTop:(BOOL)toTop temporary:(BOOL)temporary { + self.listenAfterSpeaking = NO; + for (NSDictionary *currView in views) { + if ([currView[@"listenAfterSpeaking"] boolValue]) { + dialogPhase = @"Clarification"; + self.listenAfterSpeaking = YES; + } + } NSMutableDictionary* dict = [self createAceAddViews:views forPhase:dialogPhase scrollToTop:toTop temporary:temporary]; - // listenAfterSpeaking hack! - // for (NSDictionary* view in views) - // { - // NSDictionary* props = [view objectForKey:@"properties"]; - // if ([[props objectForKey:@"listenAfterSpeaking"] boolValue]) - // { - // _listenAfterSpeaking = YES; - // break; - // } - // } - - // send [self sendCommandToConnection:dict]; } + #pragma mark - APLocationDaemon Communication - (void)handleMessage:(NSString*)name withInfo:(NSDictionary*)locationData { @@ -135,7 +141,7 @@ static NSMutableDictionary *sessionDict; // call the original method to handle our new object if (self.connection == nil) { NSLog(@"AP: AFConnection is nil"); return; } - + if ([dict[@"$class"] isEqualToString:@"CommandSucceeded"]) { [self.connection sendReplyCommand:obj]; } else { @@ -171,7 +177,7 @@ static NSMutableDictionary *sessionDict; if (properties != nil) { //Only necessary for AceObjects - [objDict setObject:@"4.0" forKey:@"$v"]; + [objDict setObject:@"4.3" forKey:@"$v"]; for (NSString *currKey in properties.allKeys) { [objDict setObject:properties[currKey] forKey:currKey]; @@ -213,22 +219,19 @@ static NSMutableDictionary *sessionDict; return [self createAceObjectDictForGroup:@"com.apple.ace.assistant" class:@"AddViews" properties:props]; } -//NSMutableDictionary* SOCreateAceAddViewsUtteranceView(NSString* refId, NSString* text, NSString* speakableText, NSString* dialogPhase, BOOL scrollToTop, BOOL temporary) { -// NSMutableArray* views = [NSMutableArray arrayWithCapacity:1]; -// [views addObject:[self createAssistantUtteranceView:text speakableText:speakableText identifier:@"Misc#ident"]]; -// -// return [self createAceAddViews:views forPhase:dialogPhase scrollToTop:scrollToTop temporary:temporary]; -//} - #pragma mark - AssistantUtteranceView Creation --(NSMutableDictionary*)createAssistantUtteranceView:(NSString*)text speakableText:(NSString*)speakableText identifier:(NSString*)dialogIdentifier { +-(NSMutableDictionary*)createAssistantUtteranceView:(NSString*)text speakableText:(NSString*)speakableText identifier:(NSString*)dialogIdentifier listenAfterSpeaking:(BOOL)listen { if (speakableText == nil) speakableText = text; NSMutableDictionary* props = [NSMutableDictionary dictionaryWithObjectsAndKeys: - text,@"text", speakableText,@"speakableText", dialogIdentifier,@"dialogIdentifier", nil]; + text,@"text", speakableText,@"speakableText", dialogIdentifier,@"dialogIdentifier", @(listen), @"listenAfterSpeaking", nil]; return [self createObjectDictForGroup:@"com.apple.ace.assistant" class:@"AssistantUtteranceView" properties:props]; } +-(NSMutableDictionary*)createAssistantUtteranceView:(NSString*)text speakableText:(NSString*)speakableText identifier:(NSString*)dialogIdentifier { + return [self createAssistantUtteranceView:text speakableText:speakableText identifier:dialogIdentifier listenAfterSpeaking:NO]; +} + -(SOObject*)createAssistantUtteranceView:(NSString*)text { return [self createAssistantUtteranceView:text speakableText:text identifier:@"Misc#Ident"]; } diff --git a/assistant+/assistantpluspluginmanager/AssistantPlusHeaders.h b/assistant+/assistantpluspluginmanager/AssistantPlusHeaders.h index 8ad0a4f..9958c20 100644 --- a/assistant+/assistantpluspluginmanager/AssistantPlusHeaders.h +++ b/assistant+/assistantpluspluginmanager/AssistantPlusHeaders.h @@ -12,6 +12,7 @@ @protocol APSiriSession - (void)sendTextSnippet:(NSString*)text temporary:(BOOL)temporary scrollToTop:(BOOL)toTop dialogPhase:(NSString*)phase; +- (void)sendTextSnippet:(NSString*)text temporary:(BOOL)temporary scrollToTop:(BOOL)toTop dialogPhase:(NSString*)phase listenAfterSpeaking:(BOOL)listen; - (void)sendAddViews:(NSArray*)views; - (void)sendAddViews:(NSArray*)views dialogPhase:(NSString*)dialogPhase scrollToTop:(BOOL)toTop temporary:(BOOL)temporary; -(NSMutableDictionary*)createSnippet:(NSString*)snippetClass properties:(NSDictionary*)props; @@ -32,6 +33,7 @@ +(id)sharedManager; - (void)reloadCustomRepliesPlugin:(NSDictionary*)replies; - (void)reloadActivatorListeners:(NSDictionary*)listeners; +- (void)assistantWasDismissed; @end @protocol APPluginManager @@ -55,9 +57,13 @@ @protocol APPluginCommand @optional -(BOOL)handleSpeech:(NSString*)text withTokens:(NSSet*)tokens withSession:(id)session; +-(void)handleReply:(NSString*)text withTokens:(NSSet*)tokens withSession:(id)session; +-(void)assistantWasDismissed; @end @protocol APPlugin @required -(id)initWithPluginManager:(id)system; +@optional +- (void)assistantWasDismissed; @end diff --git a/assistant+/assistantpluspluginmanager/SBAPPluginManager.xcworkspace/xcuserdata/Zaid.xcuserdatad/UserInterfaceState.xcuserstate b/assistant+/assistantpluspluginmanager/SBAPPluginManager.xcworkspace/xcuserdata/Zaid.xcuserdatad/UserInterfaceState.xcuserstate index 1bde217..5e0c871 100644 Binary files a/assistant+/assistantpluspluginmanager/SBAPPluginManager.xcworkspace/xcuserdata/Zaid.xcuserdatad/UserInterfaceState.xcuserstate and b/assistant+/assistantpluspluginmanager/SBAPPluginManager.xcworkspace/xcuserdata/Zaid.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/assistant+/assistantpluspluginmanager/obj/AssistantPlusPluginManager.dylib b/assistant+/assistantpluspluginmanager/obj/AssistantPlusPluginManager.dylib index 2630deb..1e5f18b 100755 Binary files a/assistant+/assistantpluspluginmanager/obj/AssistantPlusPluginManager.dylib and b/assistant+/assistantpluspluginmanager/obj/AssistantPlusPluginManager.dylib differ diff --git a/assistant+/customreply/AssistantPlusHeaders.h b/assistant+/customreply/AssistantPlusHeaders.h index 0e73d5c..67606ad 100644 --- a/assistant+/customreply/AssistantPlusHeaders.h +++ b/assistant+/customreply/AssistantPlusHeaders.h @@ -19,6 +19,8 @@ dialogPhase: Possible values are Completion, Reflection, Summary, Error, Clarification, and Acknowledgement */ - (void)sendTextSnippet:(NSString*)text temporary:(BOOL)temporary scrollToTop:(BOOL)toTop dialogPhase:(NSString*)phase; +- (void)sendTextSnippet:(NSString*)text temporary:(BOOL)temporary scrollToTop:(BOOL)toTop dialogPhase:(NSString*)phase listenAfterSpeaking:(BOOL)shouldListen; + /* Create an editable dictionary representing a text snippet. In order to send this to the user you must add it to an NSArray and use sendAddviews: */ -(NSMutableDictionary*)createTextSnippet:(NSString*)text; diff --git a/assistant+/customreply/Makefile b/assistant+/customreply/Makefile index 9170862..6483f7a 100644 --- a/assistant+/customreply/Makefile +++ b/assistant+/customreply/Makefile @@ -1,8 +1,8 @@ include theos/makefiles/common.mk export ARCHS = armv7 arm64 -export TARGET = iphone:clang:latest:8.0 -export SDKVERSION=8.1 +export TARGET = iphone:clang:latest:8.4 +export SDKVERSION=8.4 BUNDLE_NAME = customreply customreply_BUNDLE_EXTENSION = assistantPlugin diff --git a/assistant+/customreply/obj/customreply.assistantPlugin/customreply b/assistant+/customreply/obj/customreply.assistantPlugin/customreply index 3a54088..97da082 100755 Binary files a/assistant+/customreply/obj/customreply.assistantPlugin/customreply and b/assistant+/customreply/obj/customreply.assistantPlugin/customreply differ diff --git a/assistant+/obj/Assistant+.dylib b/assistant+/obj/Assistant+.dylib index aa11214..e9b3a8e 100755 Binary files a/assistant+/obj/Assistant+.dylib and b/assistant+/obj/Assistant+.dylib differ diff --git a/assistant+/sirisay/obj/siriSay b/assistant+/sirisay/obj/siriSay index c07795b..791c47c 100755 Binary files a/assistant+/sirisay/obj/siriSay and b/assistant+/sirisay/obj/siriSay differ