From 07eb82e244741e23b13122e746de10b100c25353 Mon Sep 17 00:00:00 2001 From: "kyuho.jo" Date: Mon, 5 Jun 2017 20:35:47 +0900 Subject: [PATCH] Show 'unavailable' icon for not supported contents Change-Id: I3ed9fda3eeae5c633e90569f748c682ddd49c9fe Signed-off-by: kyuho.jo --- .../DataModels/MediaInformationEx.cs | 9 ++++++- .../TVMediaHub.Tizen/Models/ContentProvider.cs | 1 - .../TVMediaHub.Tizen/Models/ImageProvider.cs | 3 ++- .../TVMediaHub.Tizen/Models/VideoProvider.cs | 1 + .../TVMediaHub.Tizen/TVMediaHub.Tizen.csproj | 3 +++ TVMediaHub/TVMediaHub.Tizen/Views/ImageItem.xaml | 3 +++ .../TVMediaHub.Tizen/Views/ImageItem.xaml.cs | 23 +++++++++++++++++ TVMediaHub/TVMediaHub.Tizen/Views/VideoItem.xaml | 3 +++ .../TVMediaHub.Tizen/Views/VideoItem.xaml.cs | 28 ++++++++++++++++++--- .../res/img_gallery_unavailable_photo.png | Bin 0 -> 3234 bytes .../res/img_gallery_unavailable_video.png | Bin 0 -> 2950 bytes .../TVMediaHub.Tizen/res/img_movie_unavailable.png | Bin 0 -> 3179 bytes 12 files changed, 67 insertions(+), 7 deletions(-) create mode 100644 TVMediaHub/TVMediaHub.Tizen/res/img_gallery_unavailable_photo.png create mode 100644 TVMediaHub/TVMediaHub.Tizen/res/img_gallery_unavailable_video.png create mode 100644 TVMediaHub/TVMediaHub.Tizen/res/img_movie_unavailable.png diff --git a/TVMediaHub/TVMediaHub.Tizen/DataModels/MediaInformationEx.cs b/TVMediaHub/TVMediaHub.Tizen/DataModels/MediaInformationEx.cs index 223cd9c..92fe788 100644 --- a/TVMediaHub/TVMediaHub.Tizen/DataModels/MediaInformationEx.cs +++ b/TVMediaHub/TVMediaHub.Tizen/DataModels/MediaInformationEx.cs @@ -20,7 +20,14 @@ namespace TVMediaHub.Tizen.DataModels { public class MediaInformationEx { + /// + /// The media content information + /// public MediaInformation MediaContentInformation; - public bool IsAvailable; + + /// + /// An attribute of the availability of this media content + /// + public bool IsAvailable = true; }; } diff --git a/TVMediaHub/TVMediaHub.Tizen/Models/ContentProvider.cs b/TVMediaHub/TVMediaHub.Tizen/Models/ContentProvider.cs index 672cfd0..fee6c63 100755 --- a/TVMediaHub/TVMediaHub.Tizen/Models/ContentProvider.cs +++ b/TVMediaHub/TVMediaHub.Tizen/Models/ContentProvider.cs @@ -218,7 +218,6 @@ namespace TVMediaHub.Tizen.Models { result.Add(currentGroupItem); lastGroupItem = currentGroupItem; - DbgPort.D("new Group : " + currentGroupItem.Title); } if (currentGroupItem != null) diff --git a/TVMediaHub/TVMediaHub.Tizen/Models/ImageProvider.cs b/TVMediaHub/TVMediaHub.Tizen/Models/ImageProvider.cs index 7a0cd72..1db692b 100755 --- a/TVMediaHub/TVMediaHub.Tizen/Models/ImageProvider.cs +++ b/TVMediaHub/TVMediaHub.Tizen/Models/ImageProvider.cs @@ -54,8 +54,9 @@ namespace TVMediaHub.Tizen.Models // Check 1 : The size of the image file must be less than 4MB. var fileInfo = new FileInfo(mediaContent.MediaContentInformation.FilePath); - if (fileInfo != null && fileInfo.Length > 4 * 1024 * 1024) + if (fileInfo != null && fileInfo.Length > 8 * 1024 * 1024) { + DbgPort.D(mediaContent.MediaContentInformation.DisplayName + ": This content is not available"); mediaContent.IsAvailable = false; } } diff --git a/TVMediaHub/TVMediaHub.Tizen/Models/VideoProvider.cs b/TVMediaHub/TVMediaHub.Tizen/Models/VideoProvider.cs index ed9ca1b..0bcb5e8 100755 --- a/TVMediaHub/TVMediaHub.Tizen/Models/VideoProvider.cs +++ b/TVMediaHub/TVMediaHub.Tizen/Models/VideoProvider.cs @@ -54,6 +54,7 @@ namespace TVMediaHub.Tizen.Models if (mediaContent.MediaContentInformation.IsDrm || mediaContent.MediaContentInformation.MimeType.Contains("ogg")) { + DbgPort.D(mediaContent.MediaContentInformation.DisplayName + " : This content is not available"); mediaContent.IsAvailable = false; } } diff --git a/TVMediaHub/TVMediaHub.Tizen/TVMediaHub.Tizen.csproj b/TVMediaHub/TVMediaHub.Tizen/TVMediaHub.Tizen.csproj index b1cbfcd..b7aed71 100755 --- a/TVMediaHub/TVMediaHub.Tizen/TVMediaHub.Tizen.csproj +++ b/TVMediaHub/TVMediaHub.Tizen/TVMediaHub.Tizen.csproj @@ -210,8 +210,11 @@ + + + diff --git a/TVMediaHub/TVMediaHub.Tizen/Views/ImageItem.xaml b/TVMediaHub/TVMediaHub.Tizen/Views/ImageItem.xaml index 1126cb2..1c056c3 100755 --- a/TVMediaHub/TVMediaHub.Tizen/Views/ImageItem.xaml +++ b/TVMediaHub/TVMediaHub.Tizen/Views/ImageItem.xaml @@ -20,6 +20,9 @@ + diff --git a/TVMediaHub/TVMediaHub.Tizen/Views/ImageItem.xaml.cs b/TVMediaHub/TVMediaHub.Tizen/Views/ImageItem.xaml.cs index a3d7c88..08eb93e 100755 --- a/TVMediaHub/TVMediaHub.Tizen/Views/ImageItem.xaml.cs +++ b/TVMediaHub/TVMediaHub.Tizen/Views/ImageItem.xaml.cs @@ -316,6 +316,14 @@ namespace TVMediaHub.Tizen.Views UpdateView(); } } + else if (e.PropertyName.CompareTo("SelectedImage") == 0) + { + if (SelectedImage.IsAvailable == false) + { + ContentImage.IsVisible = false; + UnavailableIcon.IsVisible = true; + } + } } /// @@ -363,6 +371,13 @@ namespace TVMediaHub.Tizen.Views ImgDimmed.LayoutTo(ImageAreaFocusedBounds, 500, easing); ImgFocused.LayoutTo(ShadowFocusedBounds, 500, easing); ContentImage.LayoutTo(ImageFocusedBounds, 500, easing); + + if (SelectedImage.IsAvailable == false) + { + UnavailableIcon.ScaleTo(1.3, 167, easing); + UnavailableIcon.LayoutTo(ImageFocusedBounds, 500, easing); + } + if (IsDeleteMode) { ImgCheckDimmed.LayoutTo(ImageAreaFocusedBounds, 500, easing); @@ -387,6 +402,13 @@ namespace TVMediaHub.Tizen.Views ImgFocused.Opacity = 0.0; ContentImage.ScaleTo(1.0, 167, easing); ContentImage.LayoutTo(ImageBounds, 167, easing); + + if (SelectedImage.IsAvailable == false) + { + UnavailableIcon.ScaleTo(1.0, 167, easing); + UnavailableIcon.Layout(ImageBounds); + } + ImgFocused.LayoutTo(ShadowNormalBounds, 167, easing); ImgDimmed.LayoutTo(ImageAreaNormalBounds, 167, easing); if (IsDeleteMode) @@ -416,6 +438,7 @@ namespace TVMediaHub.Tizen.Views ImgDimmed.Layout(ImageBounds); ImgCheckDimmed.Layout(ImageAreaNormalBounds); ImgCheck.Layout(ImageAreaNormalBounds); + UnavailableIcon.Layout(ImageAreaNormalBounds); IsLoaded = true; } } diff --git a/TVMediaHub/TVMediaHub.Tizen/Views/VideoItem.xaml b/TVMediaHub/TVMediaHub.Tizen/Views/VideoItem.xaml index 1d934f6..95562da 100644 --- a/TVMediaHub/TVMediaHub.Tizen/Views/VideoItem.xaml +++ b/TVMediaHub/TVMediaHub.Tizen/Views/VideoItem.xaml @@ -33,6 +33,9 @@ + @@ -248,6 +248,7 @@ namespace TVMediaHub.Tizen.Views PlayImage.Layout(PlayIconBounds); CheckDimImage.Layout(NormalBounds); CheckImage.Layout(NormalBounds); + UnavailableIcon.Layout(NormalBounds); IsLoaded = true; } } @@ -278,7 +279,12 @@ namespace TVMediaHub.Tizen.Views DimImage.LayoutTo(NormalBounds, 167, easing); ContentImage.LayoutTo(NormalContentImageBounds, 167, easing); BgDimImage.LayoutTo(NormalShadowBounds, 167, easing); - PlayImage.FadeTo(0.0, 167); + + if (VideoInfo.IsAvailable) + { + PlayImage.FadeTo(0.0, 167); + } + if (IsDeleteMode) { CheckDimImage.LayoutTo(NormalBounds, 167, easing); @@ -331,7 +337,12 @@ namespace TVMediaHub.Tizen.Views DimImage.LayoutTo(FocusedBounds, 500, easing); ContentImage.LayoutTo(FocusedContentImageBounds, 500, easing); BgDimImage.LayoutTo(FocusedShadowBounds, 500, easing); - PlayImage.FadeTo(0.99, 167); + + if (VideoInfo.IsAvailable) + { + PlayImage.FadeTo(0.99, 167); + } + if (IsDeleteMode) { CheckDimImage.LayoutTo(FocusedBounds, 167, easing); @@ -437,7 +448,7 @@ namespace TVMediaHub.Tizen.Views /// /// The source of the event /// A propertyChanged event argument - private void VideoTabPropertyChanged(object sender, PropertyChangedEventArgs e) + private void VideoItemPropertyChanged(object sender, PropertyChangedEventArgs e) { if (e.PropertyName.CompareTo("IsDeleteMode") == 0) { @@ -447,6 +458,15 @@ namespace TVMediaHub.Tizen.Views UpdateView(); } } + else if (e.PropertyName.CompareTo("VideoInfo") == 0) + { + if (VideoInfo.IsAvailable == false) + { + ContentImage.IsVisible = false; + UnavailableIcon.IsVisible = true; + } + } + } public void ShowContextPopup() diff --git a/TVMediaHub/TVMediaHub.Tizen/res/img_gallery_unavailable_photo.png b/TVMediaHub/TVMediaHub.Tizen/res/img_gallery_unavailable_photo.png new file mode 100644 index 0000000000000000000000000000000000000000..e7a6f661ca2e0752200e384f9da17589cc558fa8 GIT binary patch literal 3234 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 NaK(6{ub@I>{|WU1dmI1& literal 0 HcmV?d00001 diff --git a/TVMediaHub/TVMediaHub.Tizen/res/img_gallery_unavailable_video.png b/TVMediaHub/TVMediaHub.Tizen/res/img_gallery_unavailable_video.png new file mode 100644 index 0000000000000000000000000000000000000000..51497dde283b337bfd49e34b44e8aa4f0a36bc71 GIT binary patch literal 2950 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 Chee10 literal 0 HcmV?d00001 -- 2.7.4