using System; using System.Collections.Generic; using System.IO.IsolatedStorage; using System.Windows.Controls; using MahTweets.Mobile.Core.Extensions; using MahTweets.Mobile.Core.Services; using Microsoft.Phone.Tasks; using Phone.Controls; namespace MahTweets.Mobile.Core { public class ActionsBarBase : UserControl { public AbstractStatusUpdate Update { get; private set; } public INavigationService NavigationService { get; private set; } public void Initialise(INavigationService navigationService, AbstractStatusUpdate statusUpdate) { NavigationService = navigationService; Update = statusUpdate; } public void ViewLinks() { var links = new List(); var words = Update.Text.Split(' '); foreach (var word in words) { if (word.ContainsHyperlink()) links.Add(word); else if ((word.StartsWith("@") || word.StartsWith(".@") || word.StartsWith("-@") || word.StartsWith("r@") || word.StartsWith("rt@")) && word != "@") { links.Add(word); } else if (word.StartsWith("#") && word != "#") { links.Add(word); } } var dialog = new PickerBoxDialog { SelectedIndex = -1, Title = "Links", ItemSource = links }; dialog.Closed += DialogClosed; dialog.Show(); } private void DialogClosed(object sender, EventArgs e) { var link = (string)((PickerBoxDialog)sender).SelectedItem; if (link.ContainsHyperlink()) { bool UseInternalBrowser = true; if (IsolatedStorageSettings.ApplicationSettings.Contains("UseInternalBrowser")) UseInternalBrowser = (bool)IsolatedStorageSettings.ApplicationSettings["UseInternalBrowser"]; if (UseInternalBrowser) NavigationService.Navigate(new Uri("/Views/BrowserView.xaml?Url=" + link, UriKind.RelativeOrAbsolute)); else { var task = new WebBrowserTask { URL = link }; task.Show(); } } else if (link.StartsWith("@")) { NavigationService.Navigate( new Uri("/MahTweets.Mobile.TwitterPlugin;component/Views/ProfileView.xaml?Name=" + link.Substring(1), UriKind.RelativeOrAbsolute)); } else if (link.StartsWith("#")) { NavigationService.Navigate( new Uri("/Views/SearchView.xaml?Term=" + link.Substring(1), UriKind.RelativeOrAbsolute)); } } } }