From: Hyerim Kim Date: Wed, 22 Mar 2017 09:40:32 +0000 (+0900) Subject: Add No Contents to display layout in Recent list X-Git-Tag: submit/tizen/20170808.015446~173 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6037fbdb2031bef2d902687e59e682a17db09893;p=profile%2Ftv%2Fapps%2Fdotnet%2Fhome.git Add No Contents to display layout in Recent list Change-Id: I4370af33f34a29aa5b413c7bbbf9e18d5f53582b Signed-off-by: Hyerim Kim --- diff --git a/TVHome/TVHome/ViewModels/MainPageViewModel.cs b/TVHome/TVHome/ViewModels/MainPageViewModel.cs index 9cc8933..bcbb686 100755 --- a/TVHome/TVHome/ViewModels/MainPageViewModel.cs +++ b/TVHome/TVHome/ViewModels/MainPageViewModel.cs @@ -20,6 +20,7 @@ using System.Collections.Generic; using System.ComponentModel; using System.Windows.Input; using System.Threading.Tasks; +using System.Linq; using LibTVRefCommonPortable.DataModels; using LibTVRefCommonPortable.Utils; using Xamarin.Forms; @@ -57,6 +58,8 @@ namespace TVHome.ViewModels public HomeStatus CurrentStatus { get; private set; } public HomeMenuItem SelectedMenuName { get; private set; } + public bool IsShowNoRecentContents { get; set;} + public event PropertyChangedEventHandler PropertyChanged; public MainPageViewModel() @@ -207,10 +210,16 @@ namespace TVHome.ViewModels private async void MakeRecentButtons() { RecentList = await TVHomeImpl.GetInstance.RecentShortcutControllerInstance.GetList(); - if (RecentList != null) + if (RecentList.Count() > 0) { + IsShowNoRecentContents = false; OnPropertyChanged("RecentList"); } + else + { + IsShowNoRecentContents = true; + } + OnPropertyChanged("IsShowNoRecentContents"); } public void OnPropertyChanged(string name) diff --git a/TVHome/TVHome/Views/MainPage.xaml b/TVHome/TVHome/Views/MainPage.xaml index 146bf96..4cba2b0 100755 --- a/TVHome/TVHome/Views/MainPage.xaml +++ b/TVHome/TVHome/Views/MainPage.xaml @@ -33,12 +33,8 @@ RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=1}" RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.89}" OnFocusedCommand="{Binding SubPanelFocusedCommand}" - ItemsSource="{Binding RecentList}" > - - - - - + ItemsSource="{Binding RecentList}" + ShowNoContentsInfo="{Binding IsShowNoRecentContents}"> + - - + HorizontalOptions="Center" + IsVisible="true" + RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=1}" + RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=1}" + RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0}" + RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0}" > + + + + + + \ No newline at end of file diff --git a/TVHome/TVHome/Views/SubThumbnailPanel.xaml.cs b/TVHome/TVHome/Views/SubThumbnailPanel.xaml.cs old mode 100644 new mode 100755 index 4b880cb..2f8cf92 --- a/TVHome/TVHome/Views/SubThumbnailPanel.xaml.cs +++ b/TVHome/TVHome/Views/SubThumbnailPanel.xaml.cs @@ -31,6 +31,12 @@ namespace TVHome.Views /// public partial class SubThumbnailPanel : Panel { + public static readonly BindableProperty ShowNoContentsInfoProperty = BindableProperty.Create("ShowNoContentsInfo", typeof(bool), typeof(SubThumbnailPanel), default(bool)); + public bool ShowNoContentsInfo + { + get { return (bool)GetValue(ShowNoContentsInfoProperty); } + set { SetValue(ShowNoContentsInfoProperty, value); } + } public SubThumbnailPanel() { InitializeComponent(); @@ -40,7 +46,22 @@ namespace TVHome.Views private void OnItemsSourcePropertyChanged(object sender, PropertyChangedEventArgs e) { - if (e.PropertyName != "ItemsSource") + if (e.PropertyName == "ShowNoContentsInfo") + { + if (ShowNoContentsInfo) + { + PanelScrollView.IsVisible = false; + NoContentInfo.IsVisible = true; + HidePanel(); + return; + } + else + { + PanelScrollView.IsVisible = true; + NoContentInfo.IsVisible = false; + } + } + else if (e.PropertyName != "ItemsSource") { return; } @@ -48,7 +69,7 @@ namespace TVHome.Views PanelButtonStack.Children.Clear(); foreach (ShortcutInfo item in ItemsSource) { - var button = ItemTemplate.CreateContent() as PanelButton; + PanelButton button = new SubPanelThumbnailButton(); button.View.BindingContext = item; button.OnFocusedCommand = new Command(() => { @@ -66,33 +87,49 @@ namespace TVHome.Views public override async void HidePanel() { - isFocused = false; - foreach (var item in PanelButtonStack.Children) + if (NoContentInfo.IsVisible) { - item.IsEnabled = false; +#pragma warning disable CS4014 + this.TranslateTo(0, 1, 0); +#pragma warning restore CS4014 + await this.FadeTo(0, 0); } + else + { + isFocused = false; + foreach (var item in PanelButtonStack.Children) + { + item.IsEnabled = false; + } #pragma warning disable CS4014 - PanelScrollView.ScrollToAsync(0, 0, true); - this.TranslateTo(0, 1, 0); + PanelScrollView.ScrollToAsync(0, 0, true); + this.TranslateTo(0, 1, 0); #pragma warning restore CS4014 - await this.FadeTo(0, 0); - IsVisible = false; + await this.FadeTo(0, 0); + } } public override async void ShowPanel() { - IsVisible = true; - isFocused = false; - foreach (var item in PanelButtonStack.Children) + if (NoContentInfo.IsVisible) { - item.IsEnabled = true; + NoContentInfo.IsEnabled = false; + await this.FadeTo(0.8, 0); } + else + { + isFocused = false; + foreach (var item in PanelButtonStack.Children) + { + item.IsEnabled = true; + } #pragma warning disable CS4014 - this.TranslateTo(0, 0, 0); + this.TranslateTo(0, 0, 0); #pragma warning restore CS4014 - await this.FadeTo(0.3, 0); + await this.FadeTo(0.3, 0); + } } public override async void FocusPanel()