feat: allow resigning current NSUserActivity (#18659)

* feat: allow resigning current NSUserActivity

* wrap in @available check
This commit is contained in:
Shelley Vohr 2019-06-06 22:16:03 -07:00 committed by GitHub
parent b30484d3a9
commit abab90f563
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 23 additions and 4 deletions

View file

@ -1417,6 +1417,8 @@ void App::BuildPrototype(v8::Isolate* isolate,
.SetMethod(
"invalidateCurrentActivity",
base::BindRepeating(&Browser::InvalidateCurrentActivity, browser))
.SetMethod("resignCurrentActivity",
base::BindRepeating(&Browser::ResignCurrentActivity, browser))
.SetMethod("updateCurrentActivity",
base::BindRepeating(&Browser::UpdateCurrentActivity, browser))
// TODO(juturu): Remove in 2.0, deprecate before then with warnings

View file

@ -128,9 +128,13 @@ class Browser : public WindowListObserver {
// Returns the type name of the current user activity.
std::string GetCurrentActivityType();
// Invalidates the current user activity.
// Invalidates an activity and marks it as no longer eligible for
// continuation
void InvalidateCurrentActivity();
// Marks this activity object as inactive without invalidating it.
void ResignCurrentActivity();
// Updates the current user activity
void UpdateCurrentActivity(const std::string& type,
const base::DictionaryValue& user_info);

View file

@ -161,6 +161,10 @@ void Browser::InvalidateCurrentActivity() {
[[AtomApplication sharedApplication] invalidateCurrentActivity];
}
void Browser::ResignCurrentActivity() {
[[AtomApplication sharedApplication] resignCurrentActivity];
}
void Browser::UpdateCurrentActivity(const std::string& type,
const base::DictionaryValue& user_info) {
[[AtomApplication sharedApplication]

View file

@ -132,6 +132,7 @@ typedef NS_ENUM(NSInteger, AVAuthorizationStatusMac) {
withUserInfo:(NSDictionary*)userInfo
withWebpageURL:(NSURL*)webpageURL;
- (void)invalidateCurrentActivity;
- (void)resignCurrentActivity;
- (void)updateCurrentActivity:(NSString*)type
withUserInfo:(NSDictionary*)userInfo;

View file

@ -93,6 +93,13 @@ inline void dispatch_sync_main(dispatch_block_t block) {
}
}
- (void)resignCurrentActivity {
if (@available(macOS 10.11, *)) {
if (currentActivity_)
[currentActivity_ resignCurrent];
}
}
- (void)updateCurrentActivity:(NSString*)type
withUserInfo:(NSDictionary*)userInfo {
if (currentActivity_) {

View file

@ -964,11 +964,12 @@ Returns `String` - The type of the currently running activity.
### `app.invalidateCurrentActivity()` _macOS_
* `type` String - Uniquely identifies the activity. Maps to
[`NSUserActivity.activityType`][activity-type].
Invalidates the current [Handoff][handoff] user activity.
### `app.resignCurrentActivity()` _macOS_
Marks the current [Handoff][handoff] user activity as inactive without invalidating it.
### `app.updateCurrentActivity(type, userInfo)` _macOS_
* `type` String - Uniquely identifies the activity. Maps to