/// <summary>
        /// if login failed, re-navigate to the target Uri, otherwise, show status detail of you.
        /// </summary>
        /// <param name="htmlContent">html of websites</param>
        private void CheckIfLoginSucceed(string htmlBodyContent)
        {
            var doc = new HtmlDocument();

            doc.LoadHtml(@"<html>
                                             <head>
                                             <title>......</title >
                                             <link href='style.css' rel='stylesheet' type='text/css'>
                                             <script language='JavaScript1.2' src='nocache.js'></script >
                                             </head><body>" + htmlBodyContent + "</body></html>");
            var rootNode    = doc.DocumentNode;
            var pcCheck     = rootNode.SelectSingleNode("//div[@class='top-nav-info']");
            var mobileCheck = rootNode.SelectSingleNode("//div[@id='people-profile']");

            if (pcCheck == null && mobileCheck == null)  // login failed.
            {
                ReportHelper.ReportAttentionAsync(GetUIString("LoginFailed"));
            }
            else
            {
                // login successful...
                MainLoginPopup.IsOpen = false;
                try {
                    MainPage.SetUserStatus(doc);
                    NavigateToBase?.Invoke(
                        null,
                        null,
                        GetFrameInstance(FrameType.UserInfos),
                        GetPageType(NavigateType.UserInfo));
                } catch { /* Ignore. */ }
            }
        }
Esempio n. 2
0
        private void HamburgerListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            baseListRing.IsActive      = false;
            NavigationSplit.IsPaneOpen = false;
            var model = e.AddedItems.FirstOrDefault() as NavigationBarModel;

            if (model == null)
            {
                return;
            }
            ChangeTitlePath(2, (sender as ListBox).SelectedIndex == 0 ? null : model.Title);
            NavigateType type = model.Title.ToString() == GetUIString("Gallery") ?
                                NavigateType.ImageNaviBar :
                                NavigateType.NaviBar;

            if (IfContainsPageInstance(NaviPathTitle.RoutePath))
            {
                GetFrameInstance(type).Content = GetPageInstance(NaviPathTitle.RoutePath);
            }
            else
            {
                NavigateToBase?.Invoke(
                    sender,
                    new NavigateParameter {
                    PathUri = model.PathUri, Items = model.Items,
                },
                    GetFrameInstance(type),
                    GetPageType(type));
            }
        }
Esempio n. 3
0
        private void HamburgerListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            var item = (sender as ListBox).SelectedItem as NavigationBar;

            if (item == null)
            {
                return;
            }
            navigateTitlePath.Text = item.Title;
            if (item.NaviType == NavigateType.FM || item.NaviType == NavigateType.FM_Extensions)
            {
                //  TO DO WORK FOR STORE EXTENSIONS
                if (IsLogined && HasFMExtensions)
                {
                    item.NaviType = NavigateType.FM_Extensions;
                }
                else
                {
                    item.NaviType = NavigateType.FM;
                }
            }
            NavigateToBase?.Invoke(
                sender,
                new NavigateParameter {
                ToUri = item?.PathUri
            },
                GetFrameInstance(item.FrameType),
                GetPageType(item.NaviType));
            NavigationSplit.IsPaneOpen = false;
        }
Esempio n. 4
0
 private void Grid_Loaded(object sender, RoutedEventArgs e)
 {
     if (VisibleWidth > FormatNumber && IsDivideScreen)
     {
         MetroFrame.Navigate(typeof(MetroPage));
     }
     if (toastUri != null)
     {
         var decode = JsonHelper.FromJson <ToastParameters>(toastUri);
         if (decode != null)
         {
             NavigateToBase?.Invoke(
                 null,
                 new NavigateParameter {
                 ToUri           = new Uri(decode.Uri),
                 Title           = decode.Title,
                 IsFromInfoClick = true,
                 IsNative        = true,
                 FrameType       = FrameType.Content
             },
                 GetFrameInstance(FrameType.Content),
                 GetPageType(NavigateType.ItemClickNative));
         }
     }
 }
        private void HamburgerListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            baseListRing.IsActive = false;
            var model = e.AddedItems.FirstOrDefault() as NavigationBar;

            NavigationSplit.IsPaneOpen = false;
            if (model == null)
            {
                return;
            }
            if (model.NaviType != NavigateType.Content && model.NaviType != NavigateType.Webview)
            {
                ChangeTitlePath(2, (sender as ListBox).SelectedIndex == 0 ? null : model.Title);
            }
            if (IfContainsPageInstance(NaviPathTitle.RoutePath))
            {
                GetFrameInstance(model.NaviType).Content = GetPageInstance(NaviPathTitle.RoutePath);
                return;
            }
            NavigateToBase?.Invoke(
                sender,
                new NavigateParameter {
                ToUri = model.PathUri, MessageBag = model.Title, ToFetchType = model.FetchType, NaviType = NavigateType.Webview
            },
                GetFrameInstance(model.NaviType),
                GetPageType(model.NaviType));
        }
 private void FreeTryBtn_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
 {
     NavigateToBase?.Invoke(
         sender,
         null,
         GetFrameInstance(FrameType.LeftPart),
         GetPageType(NavigateType.FM_Extensions));
 }
        /// <summary>
        /// if login failed, re-navigate to the target Uri, otherwise, show status detail of you.
        /// </summary>
        /// <param name="htmlContent">html of websites</param>
        private async void CheckIfLoginSucceedAsync(string htmlBodyContent)
        {
            var doc = new HtmlDocument();

            doc.LoadHtml(@"<html>
                                             <head>
                                             <title>......</title >
                                             <link href='style.css' rel='stylesheet' type='text/css'>
                                             <script language='JavaScript1.2' src='nocache.js'></script >
                                             </head><body>" + htmlBodyContent + "</body></html>");
            if (htmlBodyContent.Contains("验证码"))  // login failed.
            {
                ReportHelper.ReportAttentionAsync(GetUIString("LoginFailed"));
            }
            else
            {
                // login successful...
                MainLoginPopup.IsOpen = false;
                try {
                    string result = await BeansproutRequestHelper.AccessOauth2Token(EmailBox.Text, PasswordBox.Password);

                    var tokenReturn = default(APITokenReturn);
                    try {
                        JObject jo = JObject.Parse(result);
                        tokenReturn = new APITokenReturn {
                            AccessToken  = jo["access_token"].Value <string>(),
                            RefreshToken = jo["refresh_token"].Value <string>(),
                            ExpiresIn    = jo["expires_in"].Value <string>(),
                            UserId       = jo["douban_user_id"].Value <string>(),
                            UserName     = jo["douban_user_name"].Value <string>(),
                        };
                        MainLoginPopup.IsOpen = false;
                        SettingsHelper.SaveSettingsValue(SettingsSelect.UserID, UserID             = tokenReturn.UserId);
                        SettingsHelper.SaveSettingsValue(SettingsSelect.AccessToken, AccessToken   = tokenReturn.AccessToken);
                        SettingsHelper.SaveSettingsValue(SettingsSelect.RefreshToken, RefreshToken = tokenReturn.RefreshToken);
                        try { await MainPage.SetUserStatusAsync(tokenReturn.UserId); } catch { /* Ignore */ }
                        IsLogined = true;
                        NavigateToBase?.Invoke(
                            null,
                            null,
                            GetFrameInstance(FrameType.UserInfos),
                            GetPageType(NavigateType.UserInfo));
                    } catch { /* Ignore. */ }
                } catch {
                    try {
                        MainPage.SetUserStatus(doc);
                    } catch (Exception e) {
                        Debug.WriteLine(e.Message + "\n" + e.StackTrace);
                    }
                }
                NavigateToBase?.Invoke(
                    null,
                    null,
                    GetFrameInstance(FrameType.UserInfos),
                    GetPageType(NavigateType.UserInfo));
            }
        }
Esempio n. 8
0
 private void FullContentBtn_Click(object sender, RoutedEventArgs e)
 {
     NavigateToBase?.Invoke(
         null,
         new NavigateParameter {
         FrameType = FrameType.UpContent, ToUri = currentUri, Title = GetUIString("LinkContent")
     },
         GetFrameInstance(FrameType.UpContent),
         GetPageType(NavigateType.Undefined));
 }
Esempio n. 9
0
 private void SearchButton_Click(object sender, RoutedEventArgs e)
 {
     NavigateToBase?.Invoke(
         null,
         new NavigateParameter {
         Title = GetUIString("SEARCH"), ToUri = new Uri("https://m.douban.com/search/"), IsNative = true
     },
         GetFrameInstance(FrameType.Content),
         GetPageType(NavigateType.Search));
 }
        /// <summary>
        /// if need, run this method for auto-login.
        /// </summary>
        /// <returns></returns>
        private async void ClickSubmitButtonIfAutoAsync()
        {
            Submit.IsEnabled   = false;
            SubitRing.IsActive = true;
            var user = EmailBox.Text;
            var pass = PasswordBox.Password;

            PasswordAndUserEncryption(user, pass);

            // set the abort button with keybord-focus, so that the vitual keyboad in the mobile device with disappear.
            Abort.Focus(FocusState.Keyboard);

            var result = await DoubanWebProcess.PostDoubanResponseAsync(
                path : "https://frodo.douban.com/service/auth2/token",
                host : "frodo.douban.com",
                reffer : null,
                content :
                new HttpFormUrlEncodedContent(new List <KeyValuePair <string, string> > {
                new KeyValuePair <string, string>("client_id", "0dad551ec0f84ed02907ff5c42e8ec70"),
                new KeyValuePair <string, string>("client_secret", "9e8bb54dc3288cdf"),
                new KeyValuePair <string, string>("redirect_uri", "frodo://app/oauth/callback/"),
                new KeyValuePair <string, string>("grant_type", "password"),
                new KeyValuePair <string, string>("username", user),
                new KeyValuePair <string, string>("password", pass),
                //new KeyValuePair<string, string>("apiKey","0dad551ec0f84ed02907ff5c42e8ec70"),
                new KeyValuePair <string, string>("os_rom", "android"),
            }),
                isMobileDevice : true);

            var tokenReturn = default(APITokenReturn);

            try {
                JObject jo = JObject.Parse(result);
                tokenReturn = new APITokenReturn {
                    AccessToken  = jo["access_token"].Value <string>(),
                    RefreshToken = jo["refresh_token"].Value <string>(),
                    ExpiresIn    = jo["expires_in"].Value <string>(),
                    UserId       = jo["douban_user_id"].Value <string>(),
                    UserName     = jo["douban_user_name"].Value <string>(),
                };
                MainLoginPopup.IsOpen = false;
                try {
                    await MainPage.SetUserStatusAsync(tokenReturn.UserId);

                    //await MainPage.SetUserStatusAsync("155845973");
                    NavigateToBase?.Invoke(
                        null,
                        null,
                        GetFrameInstance(FrameType.UserInfos),
                        GetPageType(NavigateType.UserInfo));
                } catch { /* Ignore. */ }
            } catch {
                ReportHelper.ReportAttentionAsync(GetUIString("LoginFailed"));
            }
        }
Esempio n. 11
0
 private void SettingsButton_Click(object sender, RoutedEventArgs e)
 {
     NavigationSplit.IsPaneOpen = false;
     navigateTitlePath.Text     = GetUIString("Settings");
     NavigateToBase?.Invoke(
         sender,
         null,
         GetFrameInstance(FrameType.LeftPart),
         GetPageType(NavigateType.Settings));
     HamburgerListBox.SelectedIndex = -1;
 }
Esempio n. 12
0
 private void SettingsButton_Click(object sender, RoutedEventArgs e)
 {
     CloseContentFrameIfNeed();
     HamburgerBox.SelectedIndex = -1;
     NavigateTitleBlock.Text    = GetUIString("Settings");
     NavigateToBase?.Invoke(
         sender,
         null,
         GetFrameInstance(FrameType.LeftPart),
         GetPageType(NavigateType.Settings));
 }
 /// <summary>
 /// redirect to login when login-error throws.
 /// </summary>
 private void RedirectToLoginAgain()
 {
     NavigateToBase?.Invoke(
         this,
         new NavigateParameter {
         ToFetchType = DataFetchType.Index_ReLogin,
         MessageBag  = GetUIString("LNU_Index_LS"),
         ToUri       = new Uri(LoginPath),
         NaviType    = NavigateType.ReLogin
     },
         GetFrameInstance(NavigateType.ReLogin),
         typeof(LoginPage));
 }
Esempio n. 14
0
        private void WebView_ScriptNotify(object sender, NotifyEventArgs e)
        {
            var callBack = JsonHelper.FromJson <string>(e.Value);

            System.Diagnostics.Debug.WriteLine("Notify CallBack ---->  :  " + e.Value);

            var movie_mess = new Regex(@"/movie/subject/(?<movie_id>.+)/").Match(e.Value).Groups["movie_id"].Value;

            if (movie_mess != "")
            {
                var target_path = "https://m.douban.com/movie/subject/" + movie_mess;
                var succeed     = Uri.TryCreate(target_path, UriKind.Absolute, out var uri);
                if (!succeed)
                {
                    return;
                }
                NavigateToBase?.Invoke(
                    null,
                    new NavigateParameter {
                    ToUri            = uri,
                    Title            = "",
                    IsNative         = true,
                    SpecialParameter = movie_mess,
                    FrameType        = FrameType.UpContent
                },
                    GetFrameInstance(FrameType.UpContent),
                    GetPageType(NavigateType.MovieContent));
            }
            else
            {
                var content_mess = new Regex(@"actionlink:(?<content>.+/)").Match(e.Value).Groups["content"].Value;
                if (content_mess == "")
                {
                    return;
                }
                var target_path = "https://m.douban.com" + content_mess;
                var succeed     = Uri.TryCreate(target_path, UriKind.Absolute, out var uri);
                if (!succeed)
                {
                    return;
                }
                NavigateToBase?.Invoke(
                    null,
                    new NavigateParameter {
                    Title = "LINK CONTENT", ToUri = uri, FrameType = FrameType.UpContent
                },
                    GetFrameInstance(FrameType.UpContent),
                    GetPageType(NavigateType.Undefined));
            }
        }
        private void SetWrapPanelResources(string webResult)
        {
            if (webResult == null)
            {
                return;
            }
            var doc = new HtmlAgilityPack.HtmlDocument();

            doc.LoadHtml(webResult);
            var wrapList = new List <ItemGroup <MovieItem> >();
            var lis      = doc.DocumentNode
                           .SelectSingleNode("//section[@class='interests']")
                           .SelectSingleNode("div[@class='section-content']")
                           .SelectSingleNode("ul")
                           .SelectNodes("li");

            lis.ToList().ForEach(singleton => {
                var actionL = singleton.SelectSingleNode("a");
                if (actionL != null)
                {
                    wrapList.Add(new ItemGroup <MovieItem> {
                        GroupName = actionL.InnerText, GroupPathUrl = actionL.Attributes["href"].Value,
                    });
                }
            });
            var randomer = new Random();

            wrapList.ForEach(i => {
                var color  = GlobalHelpers.GetColorRandom((randomer.Next()) % 15);
                var button = new Button {
                    Content = i.GroupName, Background = new SolidColorBrush(Colors.Transparent), Foreground = color
                };
                button.Click += (obj, args) => NavigateToBase?.Invoke(
                    null,
                    new NavigateParameter {
                    ToUri = new Uri(i.GroupPathUrl), Title = i.GroupName
                },
                    GetFrameInstance(FrameType.Content),
                    GetPageType(NavigateType.DouList));
                WrapPanel.Children.Add(new Border {
                    CornerRadius    = new CornerRadius(3),
                    BorderBrush     = color,
                    BorderThickness = new Thickness(1),
                    Margin          = new Thickness(3),
                    Child           = button
                });
            });
        }
Esempio n. 16
0
        private void GridView_ItemClick(object sender, ItemClickEventArgs e)
        {
            var item = e.ClickedItem as FMListProgramme;

            if (item == null)
            {
                return;
            }
            NavigateToBase?.Invoke(
                null,
                new NavigateParameter {
                IsDailyList = item.Title.Contains("每日私人歌单"), ID = item.ID, FrameType = FrameType.Content
            },
                GetFrameInstance(FrameType.Content),
                GetPageType(NavigateType.FM_MHzSongList));
        }
Esempio n. 17
0
        private void ItemsGridView_ItemClick(object sender, ItemClickEventArgs e)
        {
            var item = e.ClickedItem as BookItem;

            if (item == null || item.PathUrl == null)
            {
                return;
            }
            NavigateToBase?.Invoke(
                null,
                new NavigateParameter {
                ToUri = new Uri(item.PathUrl), Title = item.Title, FrameType = FrameType.UpContent
            },
                GetFrameInstance(FrameType.UpContent),
                GetPageType(NavigateType.BookContent));
        }
Esempio n. 18
0
        private void ContentList_ItemClick(object sender, ItemClickEventArgs e)
        {
            var iten = e.ClickedItem as LifeStreamItem;

            if (iten == null)
            {
                return;
            }
            Uri.TryCreate(iten.PathUrl, UriKind.RelativeOrAbsolute, out var uri);
            NavigateToBase?.Invoke(
                null,
                new NavigateParameter {
                Title = iten.Content?.Title, ToUri = uri, IsFromInfoClick = true
            },
                DetailsFrame,
                GetPageType(NavigateType.InfoItemClick));
        }
Esempio n. 19
0
        private async Task TryLoginAsync(bool isInit = false)
        {
            try {
                if (isInit)
                {
                    var userId = SettingsHelper.ReadSettingsValue(SettingsSelect.UserID) as string;
                    if (userId == null || userId == "LOGOUT")
                    {
                        return;
                    }
                    LoginResult = await DoubanWebProcess.GetDoubanResponseAsync("https://douban.com/mine/", false);

                    if (LoginResult == null)
                    {
                        ReportHelper.ReportAttentionAsync(GetUIString("WebActionError"));
                        return;
                    }
                    var doc = new HtmlDocument();
                    doc.LoadHtml(LoginResult);
                    if (doc.DocumentNode.SelectSingleNode("//div[@class='top-nav-info']") == null)
                    {
                        SettingsHelper.SaveSettingsValue(SettingsSelect.UserID, "LOGOUT");
                        return;
                    }
                    try {
                        if (!IsLogined)
                        {
                            await MainPage.SetUserStatusAsync(userId);
                        }
                        SetUserStatus();
                    } catch { /* Ignore. */ }
                }
                else
                {
                    if (!IsLogined)
                    {
                        NavigateToBase?.Invoke(null, null, GetFrameInstance(FrameType.Login), GetPageType(NavigateType.Login));
                        MainPage.OpenLoginPopup();
                    }
                    else
                    {
                        NavigateToBase?.Invoke(null, null, GetFrameInstance(FrameType.UserInfos), GetPageType(NavigateType.UserInfo));
                    }
                }
            } catch { ReportHelper.ReportAttentionAsync(GetUIString("WebActionError")); }
        }
Esempio n. 20
0
        private void ContentList_ItemClick(object sender, ItemClickEventArgs e)
        {
            var iten = e.ClickedItem as DiaryItem;

            if (iten == null)
            {
                return;
            }
            Uri.TryCreate(string.Format(NavigateUrlFormat, iten.ID), UriKind.RelativeOrAbsolute, out var uri);
            NavigateToBase?.Invoke(
                null,
                new NavigateParameter {
                Title = iten.Title, ToUri = uri, IsFromInfoClick = true
            },
                UserInfoDetails,
                GetPageType(NavigateType.InfoItemClick));
            UserInfoPopup.IsOpen = false;
        }
Esempio n. 21
0
        private void GridView_ItemClick(object sender, ItemClickEventArgs e)
        {
            var item = e.ClickedItem as MovieItem;

            if (item == null || item.PathUrl == null)
            {
                return;
            }
            NavigateToBase?.Invoke(
                null,
                new NavigateParameter {
                ToUri    = new Uri(UriDecoder.GetUrlFromUri(item.PathInnerUri, UriCastEnum.Movie)),
                IsNative = true,
                Title    = item.Title,
            },
                GetFrameInstance(FrameType.Content),
                GetPageType(NavigateType.MovieContent));
        }
        private void MoreButton_Click(object sender, RoutedEventArgs e)
        {
            var path = (sender as Button).CommandParameter as string;

            if (path == null)
            {
                return;
            }
            var keyword = $"subject_collection/{path}/";

            NavigateToBase?.Invoke( // change loc_id to adjust location.
                null,
                new NavigateParameter {
                ToUri = null, ApiHeadString = keyword, Title = GetUIString("DB_MORE")
            },
                GetFrameInstance(FrameType.Content),
                GetPageType(NavigateType.TVFilter));
        }
        private async void ListView_ItemClickAsync(object sender, ItemClickEventArgs e)
        {
            var item = e.ClickedItem as ChannelsItem;

            if (item == null)
            {
                return;
            }
            var succeed = Service.ChangeServiceChoice(MusicServiceType.MHz);

            if (!succeed)
            {
                return;
            }
            Service.MHzChannelID = item.Id;
            Service.ActionForMHz = GetNewMHzEachTurnAsync;
            var song = await InsertSongsToMHzListAsync();

            if (song == null)
            {
                return;
            }
            if (MainUpContentFrame.Content != null)
            {
                (MainUpContentFrame.Content as FM_SongBoardPage)?.UnregisterServiceEvents();
            }
            Service.MoveToAnyway(song);
            Service.PlayAnyway();
            NavigateToBase?.Invoke(
                null,
                new MusicBoardParameter {
                SID       = song.SID,
                SSID      = song.SSID,
                AID       = song.AID,
                SHA256    = song.SHA256,
                Url       = song.Url,
                Song      = song,
                FrameType = FrameType.UpContent
            },
                GetFrameInstance(FrameType.UpContent),
                GetPageType(NavigateType.MusicBoard));
        }
Esempio n. 24
0
        private void IndexList_ItemClick(object sender, ItemClickEventArgs e)
        {
            var item = e.ClickedItem as IndexItem;

            if (item == null || item.Type == IndexItem.ItemType.DateBlock)
            {
                return;
            }
            NavigateToBase?.Invoke(
                sender,
                new Core.Models.NavigateParameter {
                ToUri = item.PathUrl != null ?
                        new Uri(UriDecoder.GetUrlFromUri(item.PathUrl)) :
                        null,
                Title    = item.Title,
                IsNative = true
            },
                GetFrameInstance(Core.Models.FrameType.Content),
                GetPageType(Core.Models.NavigateType.ItemClickNative));
        }
        private async void PlayAllBtn_ClickAsync(object sender, RoutedEventArgs e)
        {
            if (inner_list == null)
            {
                return;
            }
            var item      = inner_list[0];
            var succeedss = Service.ChangeServiceChoice(MusicServiceType.SongList);

            if (!succeedss)
            {
                return;
            }
            var succeed = false;

            succeed = await Service.InsertItemAsync(item);

            if (!succeed)
            {
                return;
            }
            inner_list.ToList().ForEach(async i => succeed = await Service.InsertItemAsync(i));
            if (MainUpContentFrame.Content != null)
            {
                (MainUpContentFrame.Content as FM_SongBoardPage)?.UnregisterServiceEvents();
            }
            Service.SongListMoveTo(item);
            NavigateToBase?.Invoke(
                null,
                new MusicBoardParameter {
                SID       = item.SID,
                SSID      = item.SSID,
                AID       = item.AID,
                SHA256    = item.SHA256,
                Url       = item.Url,
                Song      = item,
                FrameType = FrameType.UpContent
            },
                GetFrameInstance(FrameType.UpContent),
                GetPageType(NavigateType.MusicBoard));
        }
Esempio n. 26
0
        private void MoreButton_Click(object sender, RoutedEventArgs e)
        {
            var path = (sender as Button).CommandParameter as string;

            if (path == null)
            {
                return;
            }
            var is_not_native = path.Contains("https:");
            var keyword       = is_not_native ? path : $"subject_collection/{path}/";

            NavigateToBase?.Invoke( // change loc_id to adjust location.
                null,
                new NavigateParameter {
                ToUri         = is_not_native ? new Uri(path + $"?loc_id=108288") : null,
                ApiHeadString = keyword,
                Title         = GetUIString("DB_BOOK")
            },
                GetFrameInstance(FrameType.Content),
                GetPageType(is_not_native ? NavigateType.Undefined : NavigateType.BookFilter));
        }
Esempio n. 27
0
        private async void IndexList_ItemClickAsync(object sender, ItemClickEventArgs e)
        {
            var item = e.ClickedItem as SongBase;

            if (item == null)
            {
                return;
            }
            var succeedss = Service.ChangeServiceChoice(MusicServiceType.SongList);

            if (!succeedss)
            {
                return;
            }
            var song    = new MHzSongBase(item);
            var succeed = await Service.InsertItemAsync(song);

            if (!succeed)
            {
                return;
            }
            if (MainUpContentFrame.Content != null)
            {
                (MainUpContentFrame.Content as FM_SongBoardPage)?.UnregisterServiceEvents();
            }
            Service.SongListMoveTo();
            NavigateToBase?.Invoke(
                null,
                new MusicBoardParameter {
                SID       = item.SID,
                SSID      = item.SSID,
                AID       = item.AID,
                SHA256    = item.SHA256,
                Url       = item.Url,
                Song      = song,
                FrameType = FrameType.UpContent
            },
                GetFrameInstance(FrameType.UpContent),
                GetPageType(NavigateType.MusicBoard));
        }
        private void FilterGridView_ItemClick(object sender, ItemClickEventArgs e)
        {
            var item = e.ClickedItem as ItemGroup <MovieItem>;

            if (item == null || item.GroupPathUrl == null)
            {
                return;
            }
            var keyword = new Regex(@"/tv/(?<key_word>.+)").Match(item.GroupPathUrl).Groups["key_word"].Value;

            if (keyword != "")
            {
                keyword = UriDecoder.EditKeyWordsForTVFilter(keyword, "tv");
            }
            NavigateToBase?.Invoke(
                null,
                new NavigateParameter {
                ToUri = new Uri(item.GroupPathUrl), ApiHeadString = keyword, Title = item.GroupName
            },
                GetFrameInstance(FrameType.Content),
                GetPageType(NavigateType.TVFilter));
        }
        private void SetActionLink(string callBack)
        {
            var actionMatch = new Regex(@"actionlink:.+").Match(callBack);

            if (actionMatch.Value == "")
            {
                return;
            }
            var formatStr = actionMatch.Value.Substring(11);

            Uri.TryCreate(formatStr, UriKind.Absolute, out var uri);
            if (uri != null)
            {
                NavigateToBase?.Invoke(
                    null,
                    new NavigateParameter {
                    FrameType = FrameType.UpContent, Title = GetUIString("LinkContent"), ToUri = uri
                },
                    GetFrameInstance(FrameType.UpContent),
                    GetPageType(NavigateType.Undefined));
            }
        }
Esempio n. 30
0
        private void ReviewsListView_ItemClick(object sender, ItemClickEventArgs e)
        {
            var item = e.ClickedItem as MovieContentReview;

            if (item == null)
            {
                return;
            }
            NavigateToBase?.Invoke(null,
                                   new NavigateParameter {
                ToUri     = new Uri(item.PathUrl),
                FrameType =
                    frameType == FrameType.Content ?
                    FrameType.UpContent :
                    FrameType.UserInfos,
                Title = item.Title
            },
                                   GetFrameInstance(frameType == FrameType.Content ?
                                                    FrameType.UpContent :
                                                    FrameType.UserInfos),
                                   GetPageType(NavigateType.MovieContentQuestion));
        }