// this gets called periodically after activity.BecomeCurrent() is called // //http://www.raywenderlich.com/84174/ios-8-handoff-tutorial public override void UpdateUserActivityState(NSUserActivity activity) { Console.WriteLine("UpdateUserActivityState for " + activity.Title); // update activity if (current.IsIndexable()) { activity.AddUserInfoEntries(current.IdToDictionary()); } // persist partly-entered data for Handoff activity.AddUserInfoEntries(current.NameToDictionary()); activity.AddUserInfoEntries(current.NotesToDictionary()); base.UpdateUserActivityState(activity); }
// // https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/AppSearch/Activities.html#//apple_ref/doc/uid/TP40016308-CH6-SW1 // public static NSUserActivity CreateNSUserActivity(TodoItem userInfo) { var activityType = ActivityTypes.Detail; if (userInfo.Id <= 0) { activityType = ActivityTypes.Add; } var activity = new NSUserActivity(activityType); activity.EligibleForSearch = true; activity.EligibleForPublicIndexing = false; activity.EligibleForHandoff = true; activity.Title = NSBundle.MainBundle.LocalizedString("Todo Detail", ""); // Attributes var nsd = new NSMutableDictionary(); nsd.Add(new NSString("en"), new NSString("Add todo")); nsd.Add(new NSString("fr"), new NSString("ajouter todo")); nsd.Add(new NSString("ja"), new NSString("TODOを追加")); nsd.Add(new NSString("es"), new NSString("añadir todo")); nsd.Add(new NSString("pt"), new NSString("adicionar todo")); nsd.Add(new NSString("ar"), new NSString("إضافة تودو")); nsd.Add(new NSString("he"), new NSString("להוסיף todo")); var csls = new CSLocalizedString(nsd); var attributeSet = new CoreSpotlight.CSSearchableItemAttributeSet(); if (userInfo.Id <= 0) { attributeSet.DisplayName = csls; attributeSet.ContentDescription = NSBundle.MainBundle.LocalizedString("(new)", ""); activity.AddUserInfoEntries(NSDictionary.FromObjectAndKey(new NSString("0"), ActivityKeys.Id)); } else { attributeSet.DisplayName = NSBundle.MainBundle.LocalizedString("Edit Todo", ""); attributeSet.ContentDescription = userInfo.Name + "!"; activity.AddUserInfoEntries(NSDictionary.FromObjectAndKey(new NSString(userInfo.Id.ToString()), ActivityKeys.Id)); } activity.ContentAttributeSet = attributeSet; activity.BecomeCurrent(); // don't forget to ResignCurrent() return(activity); }
public static NSUserActivity CreateNSUserActivity(Restaurant userInfo) { var activityType = ActivityTypes.View; var activity = new NSUserActivity(activityType); activity.EligibleForSearch = true; // HACK: can result in duplicates with CoreSpotlight activity.EligibleForPublicIndexing = false; activity.EligibleForHandoff = false; activity.Title = "Restaurant " + userInfo.Name; // var keywords = new NSString[] {new NSString("Add"), new NSString("Todo"), new NSString("Empty"), new NSString("Task") }; // activity.Keywords = new NSSet<NSString>(keywords); var attributeSet = new CoreSpotlight.CSSearchableItemAttributeSet(); attributeSet.DisplayName = userInfo.Name; attributeSet.ContentDescription = userInfo.Cuisine + " " + userInfo.Chef; // Handoff https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/Handoff/AdoptingHandoff/AdoptingHandoff.html // attributeSet.RelatedUniqueIdentifier = userInfo.Number.ToString(); // CoreSpotlight "id" activity.AddUserInfoEntries(NSDictionary.FromObjectAndKey(new NSString(userInfo.Number.ToString()), ActivityKeys.Id)); activity.ContentAttributeSet = attributeSet; activity.BecomeCurrent(); // don't forget to ResignCurrent() return(activity); }
/// <summary> /// Navigates the Webview to the given URL string. /// </summary> /// <param name="url">URL.</param> private void NavigateToURL(string url) { // Properly formatted? if (!url.StartsWith ("http://")) { // Add web url = "http://" + url; } // Display the give webpage WebView.LoadRequest(new NSUrlRequest(NSUrl.FromString(url))); // Invalidate existing Activity if (UserActivity != null) { UserActivity.Invalidate(); UserActivity = null; } // Create a new user Activity to support this tab UserActivity = new NSUserActivity (ThisApp.UserActivityTab4); UserActivity.Title = "Coffee Break Tab"; // Update the activity when the tab's URL changes var userInfo = new NSMutableDictionary (); userInfo.Add (new NSString ("Url"), new NSString (url)); UserActivity.AddUserInfoEntries (userInfo); // Inform Activity that it has been updated UserActivity.BecomeCurrent (); // Log User Activity Console.WriteLine ("Creating User Activity: {0} - {1}", UserActivity.Title, url); }
/// <summary> /// Navigates the Webview to the given URL string. /// </summary> /// <param name="url">URL.</param> private void NavigateToURL(string url) { // Properly formatted? if (!url.StartsWith("http://")) { // Add web url = "http://" + url; } // Display the give webpage WebView.LoadRequest(new NSUrlRequest(NSUrl.FromString(url))); // Invalidate existing Activity if (UserActivity != null) { UserActivity.Invalidate(); UserActivity = null; } // Create a new user Activity to support this tab UserActivity = new NSUserActivity(ThisApp.UserActivityTab4); UserActivity.Title = "Coffee Break Tab"; // Update the activity when the tab's URL changes var userInfo = new NSMutableDictionary(); userInfo.Add(new NSString("Url"), new NSString(url)); UserActivity.AddUserInfoEntries(userInfo); // Inform Activity that it has been updated UserActivity.BecomeCurrent(); // Log User Activity Console.WriteLine("Creating User Activity: {0} - {1}", UserActivity.Title, url); }
public static NSUserActivity CreateNSUserActivity(Restaurant userInfo) { var activityType = ActivityTypes.View; var activity = new NSUserActivity(activityType); activity.EligibleForSearch = true; // HACK: can result in duplicates with CoreSpotlight activity.EligibleForPublicIndexing = false; activity.EligibleForHandoff = false; activity.Title = "Restaurant " + userInfo.Name; // var keywords = new NSString[] {new NSString("Add"), new NSString("Todo"), new NSString("Empty"), new NSString("Task") }; // activity.Keywords = new NSSet<NSString>(keywords); var attributeSet = new CoreSpotlight.CSSearchableItemAttributeSet (); attributeSet.DisplayName = userInfo.Name; attributeSet.ContentDescription = userInfo.Cuisine + " " + userInfo.Chef; // Handoff https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/Handoff/AdoptingHandoff/AdoptingHandoff.html // attributeSet.RelatedUniqueIdentifier = userInfo.Number.ToString(); // CoreSpotlight "id" activity.AddUserInfoEntries(NSDictionary.FromObjectAndKey(new NSString(userInfo.Number.ToString()), ActivityKeys.Id)); activity.ContentAttributeSet = attributeSet; activity.BecomeCurrent (); // don't forget to ResignCurrent() return activity; }
void RegisterHandoff(Speaker speaker) { var userInfo = new NSMutableDictionary(); userInfo.Add(new NSString("Url"), new NSString(speaker.GetAppLink().AppLinkUri.AbsoluteUri)); var keywords = new NSMutableSet <NSString>(new NSString(speaker.FirstName), new NSString(speaker.LastName)); if (speaker.Sessions != null) { foreach (var session in speaker.Sessions) { keywords.Add(new NSString(session.Title)); } } _activity.Keywords = new NSSet <NSString>(keywords); _activity.WebPageUrl = NSUrl.FromString(speaker.GetWebUrl()); _activity.EligibleForHandoff = false; _activity.AddUserInfoEntries(userInfo); // Provide context var attributes = new CSSearchableItemAttributeSet($"{AboutThisApp.PackageName}.speaker"); attributes.Keywords = keywords.ToArray().Select(k => k.ToString()).ToArray(); attributes.Url = NSUrl.FromString(speaker.GetAppLink().AppLinkUri.AbsoluteUri); _activity.ContentAttributeSet = attributes; }
public override void UpdateUserActivityState(NSUserActivity activity) { base.UpdateUserActivityState(activity); UserInfo info = GetFilterValues(); activity.AddUserInfoEntries(info.Dictionary); }
NSUserActivity CreateActivity() { var activity = new NSUserActivity(activityName); activity.EligibleForSearch = true; activity.EligibleForPublicIndexing = true; activity.EligibleForHandoff = false; activity.Title = "Favorites"; activity.AddUserInfoEntries(NSDictionary.FromObjectAndKey(new NSString("Favorites"), new NSString("Name"))); //var keywords = new string[] { }; activity.Keywords = new NSSet<NSString>(new NSString("Favorites"), new NSString("Soccer"), new NSString("Favorites")); activity.ContentAttributeSet = new CSSearchableItemAttributeSet("Open favorites"); return activity; }
NSUserActivity CreateActivity() { var activity = new NSUserActivity(activityName); activity.EligibleForSearch = true; activity.EligibleForPublicIndexing = true; activity.EligibleForHandoff = false; activity.Title = monkey.Name; activity.AddUserInfoEntries(NSDictionary.FromObjectAndKey(new NSString(monkey.Name), new NSString("Name"))); var keywords = new string[] { monkey.Name, "Monkey" }; activity.Keywords = new NSSet(keywords); activity.ContentAttributeSet = new CoreSpotlight.CSSearchableItemAttributeSet(monkey.Details); return activity; }
NSUserActivity CreateActivity() { var activity = new NSUserActivity(activityName); activity.EligibleForSearch = true; activity.EligibleForPublicIndexing = true; activity.EligibleForHandoff = false; activity.Title = "Favorites"; activity.AddUserInfoEntries(NSDictionary.FromObjectAndKey(new NSString("Favorites"), new NSString("Name"))); //var keywords = new string[] { }; activity.Keywords = new NSSet <NSString>(new NSString("Favorites"), new NSString("Soccer"), new NSString("Favorites")); activity.ContentAttributeSet = new CSSearchableItemAttributeSet("Open favorites"); return(activity); }
NSUserActivity CreateActivity() { var activity = new NSUserActivity(activityName); activity.EligibleForSearch = true; activity.EligibleForPublicIndexing = true; activity.EligibleForHandoff = false; activity.Title = monkey.Name; activity.AddUserInfoEntries(NSDictionary.FromObjectAndKey(new NSString(monkey.Name), new NSString("Name"))); var keywords = new NSString[] { (NSString)monkey.Name, (NSString)"Monkey" }; activity.Keywords = new NSSet <NSString>(keywords); activity.ContentAttributeSet = new CoreSpotlight.CSSearchableItemAttributeSet(monkey.Details); return(activity); }
public static NSUserActivity ToUserActivity(this IPersistedState?state, string userActivityType) { var userInfo = new NSMutableDictionary(); if (state is not null) { foreach (var pair in state) { userInfo.SetValueForKey(new NSString(pair.Value), new NSString(pair.Key)); } } var userActivity = new NSUserActivity(userActivityType); userActivity.AddUserInfoEntries(userInfo); return(userActivity); }
public override void UpdateUserActivityState(NSUserActivity activity) { base.UpdateUserActivityState(activity); string imageIdentifier = detailViewController.ImageIdentifier; if (string.IsNullOrEmpty(imageIdentifier)) { return; } activity.Title = DataSource.GetTitleForIdentifier(imageIdentifier); var userInfo = new UserInfo { ImageId = imageIdentifier }; activity.AddUserInfoEntries(userInfo.Dictionary); }
NSUserActivity CreateActivity(TodoItem item) { // Create app search activity var activity = new NSUserActivity (ActivityTypes.View); // Populate activity activity.Title = item.Name; // Add additional data var attributes = new CSSearchableItemAttributeSet (); attributes.DisplayName = item.Name; attributes.ContentDescription = item.Notes; activity.ContentAttributeSet = attributes; activity.AddUserInfoEntries (NSDictionary.FromObjectAndKey (new NSString (item.ID), new NSString ("Id"))); // Add app search ability activity.EligibleForSearch = true; activity.BecomeCurrent (); // Don't forget to ResignCurrent() later return activity; }
public override void UpdateUserActivityState(NSUserActivity activity) { base.UpdateUserActivityState(activity); var keys = new NSString[] { (NSString)(NSUserActivityHelper.ActivityKeys.MenuItems), (NSString)(NSUserActivityHelper.ActivityKeys.SegueId) }; // Creates an NSArray<NSString> of MenuItem.ItemNameKey values var menuItemNames = NSArray.FromNSObjects( MenuItems.Select <MenuItem, NSString>( (menuItem) => (NSString)(menuItem.ItemNameKey) ).ToArray <NSString>() ); var objects = new NSObject[] { menuItemNames, (NSString)"Soup Menu" }; NSDictionary userInfo = NSDictionary.FromObjectsAndKeys(objects, keys); activity.AddUserInfoEntries(userInfo); }
NSUserActivity CreateActivity(TodoItem item) { // Create app search activity var activity = new NSUserActivity(ActivityTypes.View); // Populate activity activity.Title = item.Name; // Add additional data var attributes = new CSSearchableItemAttributeSet(); attributes.DisplayName = item.Name; attributes.ContentDescription = item.Notes; activity.ContentAttributeSet = attributes; activity.AddUserInfoEntries(NSDictionary.FromObjectAndKey(new NSString(item.ID), new NSString("Id"))); // Add app search ability activity.EligibleForSearch = true; activity.BecomeCurrent(); // Don't forget to ResignCurrent() later return(activity); }
public override void UpdateUserActivityState (NSUserActivity activity) { base.UpdateUserActivityState (activity); UserInfo info = GetFilterValues (); activity.AddUserInfoEntries (info.Dictionary); }
public static void SetEntryDescription(this NSUserActivity userActivity, string entryDescription) => userActivity.AddUserInfoEntries(new NSDictionary(entryDescriptionKey, entryDescription));
public static void SetResponseText(this NSUserActivity userActivity, string responseText) => userActivity.AddUserInfoEntries(new NSDictionary(responseTextKey, responseText));
public override void UpdateUserActivityState(NSUserActivity activity) { activity.AddUserInfoEntries(NSDictionary.FromObjectAndKey(new NSString(beer.Id), new NSString("id"))); base.UpdateUserActivityState(activity); }
// this gets called periodically after activity.BecomeCurrent() is called // //http://www.raywenderlich.com/84174/ios-8-handoff-tutorial public override void UpdateUserActivityState(NSUserActivity activity) { Console.WriteLine ("UpdateUserActivityState for " + activity.Title); // update activity if (current.IsIndexable()) { activity.AddUserInfoEntries (current.IdToDictionary()); activity.AddUserInfoEntries (current.NameToDictionary()); } base.UpdateUserActivityState (activity); }
public override void UpdateUserActivityState(NSUserActivity activity) { base.UpdateUserActivityState (activity); string imageIdentifier = detailViewController.ImageIdentifier; if (string.IsNullOrEmpty (imageIdentifier)) return; activity.Title = DataSource.GetTitleForIdentifier (imageIdentifier); var userInfo = new UserInfo { ImageId = imageIdentifier }; activity.AddUserInfoEntries (userInfo.Dictionary); }