diff --git a/Headers/Foundation/NSUserActivity.h b/Headers/Foundation/NSUserActivity.h index cf4772dd23..67c59ffb04 100644 --- a/Headers/Foundation/NSUserActivity.h +++ b/Headers/Foundation/NSUserActivity.h @@ -1,21 +1,21 @@ -/**Definition of class NSUserActivity +/* Definition of class NSUserActivity Copyright (C) 2019 Free Software Foundation, Inc. By: Gregory John Casamento Date: Fri Nov 1 00:25:47 EDT 2019 This file is part of the GNUstep Library. - + This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. - + This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - + You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, @@ -25,7 +25,8 @@ #ifndef _NSUserActivity_h_GNUSTEP_BASE_INCLUDE #define _NSUserActivity_h_GNUSTEP_BASE_INCLUDE -#include +#import +#import #if OS_API_VERSION(MAC_OS_X_VERSION_10_10, GS_API_LATEST) @@ -33,8 +34,135 @@ extern "C" { #endif +GS_EXPORT NSString* const NSUserActivityBrowsingWeb; + +@class NSString, NSInputStream, NSOutputStream, NSError, NSDictionary, NSSet, NSURL, NSDate; + +typedef NSString* NSUserActivityPersistentIdentifier; + +@protocol NSUserActivityDelegate; + +DEFINE_BLOCK_TYPE(GSContinuationStreamsCompletionHandler, void, NSInputStream*, NSOutputStream*, NSError*); + +DEFINE_BLOCK_TYPE_NO_ARGS(GSDeleteSavedCompletionHandler, void); + GS_EXPORT_CLASS @interface NSUserActivity : NSObject +{ + NSString *_activityType; + NSString *_title; + NSDictionary *_userInfo; + NSSet *_requiredUserInfoKeys; + NSURL *_webpageURL; + NSURL *_referrerURL; + NSDate *_expirationDate; + NSSet *_keywords; + id _delegate; + NSString *_targetContentIdentifier; + NSString *_persistentIdentifier; + + BOOL _supportsContinuationStreams; + BOOL _needsSave; + BOOL _valid; + BOOL _eligibleForPrediction; + BOOL _eligibleForPublicIndexing; + BOOL _eligibleForSearch; + BOOL _eligibleForHandoff; +} + +- (instancetype) initWithActivityType: (NSString *)activityType; + +- (instancetype) init; + +- (void) becomeCurrent; + +#if OS_API_VERSION(MAC_OS_X_VERSION_10_11, GS_API_LATEST) +- (void) resignCurrent; +#endif + +- (void) invalidate; + +- (void) getContinuationStreamsWithCompletionHandler: (GSContinuationStreamsCompletionHandler)handler; + ++ (void) deleteSavedUserActivitiesWithPersistentIdentifiers: (NSArray *)persistentIdentifies completionHandler: (GSDeleteSavedCompletionHandler)handler; + ++ (void) deleteAllSavedUserActivitiesWithCompletionHandler: (GSDeleteSavedCompletionHandler)handler; + +// properties... +- (NSString *) activityType; + +- (NSString *) title; + +- (void) setTitle: (NSString *)title; + +- (NSDictionary *) userInfo; + +- (void) setUserInfo: (NSDictionary *)userInfo; + +- (BOOL) needsSave; + +- (void) setNeedsSave: (BOOL)needsSave; + +- (NSURL *) webpageURL; + +- (void) setWebpageURL: (NSURL *)url; + +- (NSURL *) referrerURL; + +- (void) setReferrerURL: (NSURL *)url; + +- (NSDate *) expirationDate; + +- (void) setExpirationDate: (NSDate *)date; + +- (NSArray *) keywords; + +- (void) setKeywords: (NSArray *)keywords; + +- (BOOL) supportsContinuationStreams; + +- (void) setSupportsContinuationStreams: (BOOL)flag; + +- (id) delegate; + +- (void) setDelegate: (id)delegate; + +- (NSString *) targetContentIdentifier; + +- (void) setTargetContentIdentifier: (NSString *)targetContentIdentifier; + +#if OS_API_VERSION(MAC_OS_X_VERSION_10_11, GS_API_LATEST) +- (BOOL) isEligibleForHandoff; + +- (void) setEligibleForHandoff: (BOOL)f; + +- (BOOL) isEligibleForSearch; + +- (void) setEligibleForSearch: (BOOL)f; + +- (BOOL) isEligibleForPublicIndexing; + +- (void) setEligibleForPublicIndexing: (BOOL)f; + +- (BOOL) isEligibleForPrediction; + +- (void) setEligibleForPrediction: (BOOL)f; +#endif + +#if OS_API_VERSION(MAC_OS_X_VERSION_10_15, GS_API_LATEST) +- (NSUserActivityPersistentIdentifier) persistentIdentifier; + +- (void) setPersistentIdentifier: (NSUserActivityPersistentIdentifier)persistentIdentifier; +#endif +@end + +@protocol NSUserActivityDelegate + +- (void) userActivityWillSave: (NSUserActivity *)activity; + +- (void) userActivityWasContinued: (NSUserActivity *)activity; + +- (void) userActivity: (NSUserActivity *)activity didRecieveInputStream: (NSInputStream *)inputStream outputStream: (NSOutputStream *)outputStream; @end @@ -45,4 +173,3 @@ GS_EXPORT_CLASS #endif /* GS_API_MACOSX */ #endif /* _NSUserActivity_h_GNUSTEP_BASE_INCLUDE */ - diff --git a/Source/NSUbiquitousKeyValueStore.m b/Source/NSUbiquitousKeyValueStore.m index 6b2c5c1174..d6cee06bef 100644 --- a/Source/NSUbiquitousKeyValueStore.m +++ b/Source/NSUbiquitousKeyValueStore.m @@ -20,21 +20,21 @@ License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110 USA. - */ + #import "common.h" #import "Foundation/NSAutoreleasePool.h" #import "Foundation/NSCoder.h" #import "Foundation/NSEnumerator.h" #import "Foundation/NSException.h" #import "Foundation/NSKeyedArchiver.h" -#import -#import -#import -#import -#import -#import -#import +#import "Foundation/NSUbiquitousKeyValueStore.h" +#import "Foundation/NSArray.h" +#import "Foundation/NSDictionary.h" +#import "Foundation/NSData.h" +#import "Foundation/NSString.h" +#import "Foundation/NSValue.h" +#import "Foundation/NSUserDefaults.h" static NSUbiquitousKeyValueStore *_sharedUbiquitousKeyValueStore = nil; diff --git a/Source/NSUserActivity.m b/Source/NSUserActivity.m index c3be01c492..62c2052e28 100644 --- a/Source/NSUserActivity.m +++ b/Source/NSUserActivity.m @@ -22,9 +22,238 @@ Boston, MA 02110 USA. */ +#import "Foundation/NSDate.h" +#import "Foundation/NSDictionary.h" +#import "Foundation/NSString.h" +#import "Foundation/NSSet.h" +#import "Foundation/NSURL.h" #import "Foundation/NSUserActivity.h" +static NSUserActivity *__currentUserActivity = nil; + @implementation NSUserActivity -@end +- (instancetype) initWithActivityType: (NSString *)activityType +{ + self = [super init]; + + if (self != nil) + { + ASSIGNCOPY(_activityType, activityType); + _userInfo = [[NSMutableDictionary alloc] init]; + _requiredUserInfoKeys = [[NSMutableSet alloc] initWithCapacity: 10]; + _keywords = [[NSMutableSet alloc] init]; + } + + return self; +} + +- (instancetype) init +{ + self = [self initWithActivityType: nil]; + return self; +} + +- (void) dealloc +{ + __currentUserActivity = nil; + _delegate = nil; + + RELEASE(_activityType); + RELEASE(_title); + RELEASE(_userInfo); + RELEASE(_requiredUserInfoKeys); + RELEASE(_webpageURL); + RELEASE(_referrerURL); + RELEASE(_expirationDate); + RELEASE(_keywords); + RELEASE(_targetContentIdentifier); + RELEASE(_persistentIdentifier); + + [super dealloc]; +} + +- (void) becomeCurrent +{ + __currentUserActivity = self; +} + +- (void) resignCurrent +{ + __currentUserActivity = nil; +} + +- (void) invalidate +{ + _valid = NO; +} + +- (void) getContinuationStreamsWithCompletionHandler: (GSContinuationStreamsCompletionHandler)handler +{ +} + ++ (void) deleteSavedUserActivitiesWithPersistentIdentifiers: (NSArray *)persistentIdentifies completionHandler: (GSDeleteSavedCompletionHandler)handler +{ +} + ++ (void) deleteAllSavedUserActivitiesWithCompletionHandler: (GSDeleteSavedCompletionHandler)handler +{ +} + +// properties... +- (NSString *) activityType +{ + return _activityType; +} + +- (NSString *) title +{ + return _title; +} + +- (void) setTitle: (NSString *)title +{ + ASSIGNCOPY(_title, title); +} + +- (NSDictionary *) userInfo +{ + return _userInfo; +} + +- (void) setUserInfo: (NSDictionary *)userInfo +{ + ASSIGNCOPY(_userInfo, userInfo); +} + +- (BOOL) needsSave +{ + return _needsSave; +} + +- (void) setNeedsSave: (BOOL)needsSave +{ + _needsSave = needsSave; +} + +- (NSURL *) webpageURL +{ + return _webpageURL; +} + +- (void) setWebpageURL: (NSURL *)url +{ + ASSIGNCOPY(_webpageURL, url); +} + +- (NSURL *) referrerURL +{ + return _referrerURL; +} +- (void) setReferrerURL: (NSURL *)url +{ + ASSIGNCOPY(_referrerURL, url); +} + +- (NSDate *) expirationDate +{ + return _expirationDate; +} + +- (void) setExpirationDate: (NSDate *)date +{ + ASSIGNCOPY(_expirationDate, date); +} + +- (NSSet *) keywords +{ + return _keywords; +} + +- (void) setKeywords: (NSArray *)keywords +{ + ASSIGNCOPY(_keywords, keywords); +} + +- (BOOL) supportsContinuationStreams +{ + return _supportsContinuationStreams; +} + +- (void) setSupportsContinuationStreams: (BOOL)flag +{ + _supportsContinuationStreams = flag; +} + +- (id) delegate +{ + return _delegate; +} + +- (void) setDelegate: (id)delegate +{ + _delegate = delegate; +} + +- (NSString *) targetContentIdentifier +{ + return _targetContentIdentifier; +} + +- (void) setTargetContentIdentifier: (NSString *)targetContentIdentifier +{ + ASSIGNCOPY(_targetContentIdentifier, targetContentIdentifier); +} + +- (BOOL) isEligibleForHandoff +{ + return _eligibleForHandoff; +} + +- (void) setEligibleForHandoff: (BOOL)f +{ + _eligibleForHandoff = f; +} + +- (BOOL) isEligibleForSearch +{ + return _eligibleForSearch; +} + +- (void) setEligibleForSearch: (BOOL)f +{ + _eligibleForSearch = f; +} + +- (BOOL) isEligibleForPublicIndexing +{ + return _eligibleForPublicIndexing; +} + +- (void) setEligibleForPublicIndexing: (BOOL)f +{ + _eligibleForPublicIndexing = f; +} + +- (BOOL) isEligibleForPrediction +{ + return _eligibleForPrediction; +} + +- (void) setEligibleForPrediction: (BOOL)f +{ + _eligibleForPrediction = f; +} + +- (NSUserActivityPersistentIdentifier) persistentIdentifier +{ + return _persistentIdentifier; +} + +- (void) setPersistentIdentifier: (NSUserActivityPersistentIdentifier)persistentIdentifier +{ + ASSIGNCOPY(_persistentIdentifier, persistentIdentifier); +} + +@end