Add an accessor for the current activity type and write the simplest possible test.
This commit is contained in:
parent
42768bcc2b
commit
12764a66ed
6 changed files with 29 additions and 9 deletions
|
@ -469,6 +469,8 @@ void App::BuildPrototype(
|
|||
.SetMethod("show", base::Bind(&Browser::Show, browser))
|
||||
.SetMethod("setUserActivity",
|
||||
base::Bind(&Browser::SetUserActivity, browser))
|
||||
.SetMethod("getCurrentActivityType",
|
||||
base::Bind(&Browser::GetCurrentActivityType, browser))
|
||||
#endif
|
||||
#if defined(OS_WIN)
|
||||
.SetMethod("setUserTasks",
|
||||
|
|
|
@ -97,6 +97,9 @@ class Browser : public WindowListObserver {
|
|||
void SetUserActivity(const std::string& type,
|
||||
const std::map<std::string, std::string>& user_info);
|
||||
|
||||
// Returns the type name of the current user activity.
|
||||
std::string GetCurrentActivityType();
|
||||
|
||||
// Resumes an activity via hand-off.
|
||||
bool ContinueUserActivity(const std::string& type,
|
||||
const std::map<std::string, std::string>& user_info);
|
||||
|
|
|
@ -91,19 +91,24 @@ void Browser::SetUserActivity(const std::string& type, const std::map<std::strin
|
|||
NSString* type_ns = [NSString stringWithUTF8String:type.c_str()];
|
||||
NSUserActivity* user_activity = [[NSUserActivity alloc] initWithActivityType:type_ns];
|
||||
|
||||
NSMutableArray* user_info_args = [[NSMutableArray alloc] init];
|
||||
NSMutableDictionary* user_info_args = [[NSMutableDictionary alloc] init];
|
||||
for (auto const &pair : user_info) {
|
||||
NSString* value_ns = [NSString stringWithUTF8String:pair.second.c_str()];
|
||||
NSString* key_ns = [NSString stringWithUTF8String:pair.first.c_str()];
|
||||
|
||||
[user_info_args addObject:value_ns];
|
||||
[user_info_args addObject:key_ns];
|
||||
[user_info_args setObject:value_ns
|
||||
forKey:key_ns];
|
||||
}
|
||||
|
||||
user_activity.userInfo = [[NSDictionary alloc] initWithObjectsAndKeys:user_info_args, nil];
|
||||
user_activity.userInfo = user_info_args;
|
||||
[user_activity becomeCurrent];
|
||||
|
||||
[[AtomApplication sharedApplication] setUserActivity:user_activity];
|
||||
[[AtomApplication sharedApplication] setCurrentActivity:user_activity];
|
||||
}
|
||||
|
||||
std::string Browser::GetCurrentActivityType() {
|
||||
NSUserActivity* user_activity = [[AtomApplication sharedApplication] getCurrentActivity];
|
||||
return base::SysNSStringToUTF8(user_activity.activityType);
|
||||
}
|
||||
|
||||
std::string Browser::GetExecutableFileVersion() const {
|
||||
|
|
|
@ -63,12 +63,11 @@
|
|||
continueUserActivity:(NSUserActivity *)userActivity
|
||||
restorationHandler:(void (^)(NSArray *restorableObjects))restorationHandler {
|
||||
std::string activity_type(base::SysNSStringToUTF8(userActivity.activityType));
|
||||
|
||||
|
||||
std::map<std::string, std::string> user_info;
|
||||
|
||||
|
||||
NSArray* keys = [userActivity.userInfo allKeys];
|
||||
for (NSString* key in keys)
|
||||
{
|
||||
for (NSString* key in keys) {
|
||||
NSString* value = [userActivity.userInfo objectForKey:key];
|
||||
std::string key_str(base::SysNSStringToUTF8(key));
|
||||
std::string value_str(base::SysNSStringToUTF8(value));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue