Implements file info popup for focused image/video item.
authorjjie.choi <jjie.choi@samsung.com>
Thu, 1 Jun 2017 08:18:36 +0000 (17:18 +0900)
committerGeunSun Lee <gs86.lee@samsung.com>
Mon, 5 Jun 2017 01:33:35 +0000 (10:33 +0900)
Change-Id: I7821ebbf6fb2ee69092cee8de16ce4ecf970bfcd
Signed-off-by: jjie.choi <jjie.choi@samsung.com>
TVMediaHub/TVMediaHub.Tizen/Views/ImageGroup.xaml.cs
TVMediaHub/TVMediaHub.Tizen/Views/ImageItem.xaml.cs
TVMediaHub/TVMediaHub.Tizen/Views/ImageTab.xaml.cs
TVMediaHub/TVMediaHub.Tizen/Views/VideoGroup.xaml.cs
TVMediaHub/TVMediaHub.Tizen/Views/VideoItem.xaml.cs
TVMediaHub/TVMediaHub.Tizen/Views/VideoTab.xaml.cs

index cce28cf..8658a6c 100755 (executable)
@@ -25,6 +25,7 @@ using TVMediaHub.Tizen.Utils;
 using Xamarin.Forms;
 using Xamarin.Forms.PlatformConfiguration.TizenSpecific;
 using Xamarin.Forms.Xaml;
+using static TVMediaHub.Tizen.Views.ImageItem;
 
 namespace TVMediaHub.Tizen.Views
 {
@@ -44,9 +45,9 @@ namespace TVMediaHub.Tizen.Views
         /// </summary>
         private ICommand ItemClickCommand;
 
-        public delegate void ItemDeleteHandler(MediaInformation info);
+        public delegate void ContextPopupItemSelectedEventHandler(MediaInformation info, ImageContextPopupItem item);
 
-        public ItemDeleteHandler OnItemDeleteHandler;
+        public ContextPopupItemSelectedEventHandler ContextPopupItemSelectedHandler;
 
         /// <summary>
         /// Gets or set ItemSource to display item
@@ -208,9 +209,9 @@ namespace TVMediaHub.Tizen.Views
                     {
                         ItemClickCommand?.Execute(info);
                     };
-                    view.DeleteItemHandler += (info) =>
+                    view.ContextPopupItemSelectedHandler += (info, selItem) =>
                     {
-                        OnItemDeleteHandler?.Invoke(info);
+                        ContextPopupItemSelectedHandler?.Invoke(info, selItem);
                     };
                     GroupContentArea.Children.Add(view, index / 3, index % 3);
                     index++;
index 0444d39..4952ab6 100755 (executable)
@@ -35,9 +35,14 @@ namespace TVMediaHub.Tizen.Views
         /// </summary>
         public enum ItemStatus
         {
-            NORMAL = 0,
-            SELECTED,
+            Normal = 0,
+            Selected,
         };
+        public enum ImageContextPopupItem
+        {
+            FileInfo = 0,
+            Delete,
+        }
 
         /// <summary>
         /// A flag that whether the item is loaded or not
@@ -92,7 +97,9 @@ namespace TVMediaHub.Tizen.Views
         /// </summary>
         public ItemEventHandler OnItemClickedHandler;
 
-        public ItemEventHandler DeleteItemHandler;
+        public delegate void ContextPopupItemSelectedEventHandler(MediaInformation info, ImageContextPopupItem item);
+
+        public ContextPopupItemSelectedEventHandler ContextPopupItemSelectedHandler;
 
         /// <summary>
         /// Identifies the IsDeleteMode bindable property
@@ -242,13 +249,13 @@ namespace TVMediaHub.Tizen.Views
             OnItemClickedHandler?.Invoke(SelectedImage);
             if (IsDeleteMode)
             {
-                if (CurStatus == ItemStatus.NORMAL)
+                if (CurStatus == ItemStatus.Normal)
                 {
-                    CurStatus = ItemStatus.SELECTED;
+                    CurStatus = ItemStatus.Selected;
                 }
                 else
                 {
-                    CurStatus = ItemStatus.NORMAL;
+                    CurStatus = ItemStatus.Normal;
                 }
 
                 UpdateView();
@@ -265,13 +272,13 @@ namespace TVMediaHub.Tizen.Views
             {
                 ImgCheckDimmed.FadeTo(0.0, 167);
                 ImgCheck.FadeTo(0.0, 167);
-                CurStatus = ItemStatus.NORMAL;
+                CurStatus = ItemStatus.Normal;
             }
             else
             {
                 ImgCheckDimmed.FadeTo(0.75, 167);
                 ImgCheck.FadeTo(0.99, 167);
-                CurStatus = ItemStatus.SELECTED;
+                CurStatus = ItemStatus.Selected;
             }
         }
 
@@ -282,11 +289,11 @@ namespace TVMediaHub.Tizen.Views
         {
             switch (CurStatus)
             {
-                case ItemStatus.NORMAL:
+                case ItemStatus.Normal:
                     ImgCheckDimmed.FadeTo(0.0, 167);
                     ImgCheck.FadeTo(0.0, 167);
                     break;
-                case ItemStatus.SELECTED:
+                case ItemStatus.Selected:
                     ImgCheckDimmed.FadeTo(0.75, 167);
                     ImgCheck.FadeTo(0.99, 167);
                     break;
@@ -304,7 +311,7 @@ namespace TVMediaHub.Tizen.Views
             {
                 if (!IsDeleteMode)
                 {
-                    CurStatus = ItemStatus.NORMAL;
+                    CurStatus = ItemStatus.Normal;
                     UpdateView();
                 }
             }
@@ -432,10 +439,10 @@ namespace TVMediaHub.Tizen.Views
             switch (ctxPopup.SelectedIndex)
             {
                 case 0:
-                    DbgPort.D("File info selected");
+                    ContextPopupItemSelectedHandler?.Invoke(SelectedImage, ImageContextPopupItem.FileInfo);
                     break;
                 case 1:
-                    DeleteItemHandler?.Invoke(SelectedImage);
+                    ContextPopupItemSelectedHandler?.Invoke(SelectedImage, ImageContextPopupItem.Delete);
                     break;
             }
             ctxPopup.Dismiss();
index a2f9e0b..542e2fb 100755 (executable)
@@ -20,6 +20,7 @@ using System.Collections.ObjectModel;
 using System.Threading;
 using System.Windows.Input;
 using Tizen.Content.MediaContent;
+using Tizen.Xamarin.Forms.Extension;
 using TVMediaHub.Tizen.Controls;
 using TVMediaHub.Tizen.DataModels;
 using TVMediaHub.Tizen.Models;
@@ -27,6 +28,7 @@ using TVMediaHub.Tizen.Utils;
 using TVMediaHub.Tizen.ViewModels;
 using Xamarin.Forms;
 using Xamarin.Forms.PlatformConfiguration.TizenSpecific;
+using static TVMediaHub.Tizen.Views.ImageItem;
 
 namespace TVMediaHub.Tizen.Views
 {
@@ -326,9 +328,9 @@ namespace TVMediaHub.Tizen.Views
 
                 galleryGroup.BindingContext = group;
                 galleryGroup.SetClickCommand(OnClickCommand);
-                galleryGroup.OnItemDeleteHandler += (info) =>
+                galleryGroup.ContextPopupItemSelectedHandler += (info, item) =>
                 {
-                    ShowDeletePopup(info);
+                    ShowPopup(info, item);
                 };
                 GalleryContentView.Children.Add(galleryGroup);
                 ImageGroupList.Add(galleryGroup);
@@ -650,12 +652,26 @@ namespace TVMediaHub.Tizen.Views
             }
         }
 
-        private async void ShowDeletePopup(MediaInformation item)
+        private async void ShowPopup(MediaInformation info, ImageContextPopupItem item)
         {
-            bool answer = await DisplayAlert("Delete", "Delete '" + item.Title + "'?", "Yes", "No");
-            if (answer)
+            switch (item)
             {
-                DeleteContentCommand?.Execute(item);
+                case ImageContextPopupItem.FileInfo:
+                    string message = "File name  : " + info.Title + "\n";
+                    message += "File size : " + info.Size + "\n";
+                    message += "File format : " + info.MimeType + "\n";
+                    message += "File size : " + info.Size + "\n";
+                    message += "File path : " + info.FilePath;
+                    await DisplayAlert("File Information", message, "Close");
+                    Dialog dialog = new Dialog();
+                    break;
+                case ImageContextPopupItem.Delete:
+                    bool answer = await DisplayAlert("Delete", "Delete '" + info.Title + "'?", "Yes", "No");
+                    if (answer)
+                    {
+                        DeleteContentCommand?.Execute(item);
+                    }
+                    break;
             }
 
         }
index b063e65..6660de7 100755 (executable)
@@ -23,6 +23,7 @@ using TVMediaHub.Tizen.Utils;
 using Xamarin.Forms;
 using Xamarin.Forms.PlatformConfiguration.TizenSpecific;
 using Tizen.Content.MediaContent;
+using static TVMediaHub.Tizen.Views.VideoItem;
 
 namespace TVMediaHub.Tizen.Views
 {
@@ -59,9 +60,9 @@ namespace TVMediaHub.Tizen.Views
         /// </summary>
         private ICommand ItemClickCommand;
 
-        public delegate void ItemDeleteHandler(MediaInformation info);
+        public delegate void ContextPopupItemSelelectedEventHandler(MediaInformation info, VideoContextPopupItem item);
 
-        public ItemDeleteHandler OnItemDeleteHandler;
+        public ContextPopupItemSelelectedEventHandler ContextPopupItemSelectedHandler;
         /// <summary>
         /// Gets or sets source of list items
         /// </summary>
@@ -262,9 +263,9 @@ namespace TVMediaHub.Tizen.Views
                     {
                         ItemClickCommand?.Execute(info);
                     };
-                    view.DeleteItemHandler += (info) =>
+                    view.ContextPopupItemSelectedHandler += (info, selItem) =>
                     {
-                        OnItemDeleteHandler?.Invoke(info);
+                        ContextPopupItemSelectedHandler?.Invoke(info, selItem);
                     };
 
                     GroupContentArea.Children.Add(view, index / 3, index % 3);
index 9ed3c78..e5f644f 100755 (executable)
@@ -38,10 +38,16 @@ namespace TVMediaHub.Tizen.Views
         /// </summary>
         public enum ItemStatus
         {
-            NORMAL = 0,
-            SELECTED,
+            Normal = 0,
+            Selected,
         };
 
+        public enum VideoContextPopupItem
+        {
+            FileInfo = 0,
+            Delete,
+        }
+
         /// <summary>
         /// A value of current ItemStatus
         /// </summary>
@@ -105,7 +111,9 @@ namespace TVMediaHub.Tizen.Views
         /// </summary>
         public ItemEventHandler OnItemClickedHandler;
 
-        public ItemEventHandler DeleteItemHandler;
+        public delegate void ContextPopupItemSelectedEventHandler(MediaInformation info, VideoContextPopupItem item);
+
+        public ContextPopupItemSelectedEventHandler ContextPopupItemSelectedHandler;
 
         /// <summary>
         /// Identifies the IsDeleteMode bindable property
@@ -362,14 +370,14 @@ namespace TVMediaHub.Tizen.Views
             OnItemClickedHandler?.Invoke(VideoInfo);
             if (IsDeleteMode)
             {
-                if (CurStatus == ItemStatus.NORMAL)
+                if (CurStatus == ItemStatus.Normal)
                 {
-                    CurStatus = ItemStatus.SELECTED;
+                    CurStatus = ItemStatus.Selected;
                     PlayImage.FadeTo(0, 167);
                 }
                 else
                 {
-                    CurStatus = ItemStatus.NORMAL;
+                    CurStatus = ItemStatus.Normal;
                     PlayImage.FadeTo(0.99, 167);
                 }
 #pragma warning restore CS4014
@@ -387,13 +395,13 @@ namespace TVMediaHub.Tizen.Views
             {
                 CheckDimImage.FadeTo(0.0, 167);
                 CheckImage.FadeTo(0.0, 167);
-                CurStatus = ItemStatus.NORMAL;
+                CurStatus = ItemStatus.Normal;
             }
             else
             {
                 CheckDimImage.FadeTo(0.75, 167);
                 CheckImage.FadeTo(0.99, 167);
-                CurStatus = ItemStatus.SELECTED;
+                CurStatus = ItemStatus.Selected;
             }
         }
 
@@ -404,11 +412,11 @@ namespace TVMediaHub.Tizen.Views
         {
             switch (CurStatus)
             {
-                case ItemStatus.NORMAL:
+                case ItemStatus.Normal:
                     CheckDimImage.FadeTo(0.0, 167);
                     CheckImage.FadeTo(0.0, 167);
                     break;
-                case ItemStatus.SELECTED:
+                case ItemStatus.Selected:
                     CheckDimImage.FadeTo(0.75, 167);
                     CheckImage.FadeTo(0.99, 167);
                     break;
@@ -434,7 +442,7 @@ namespace TVMediaHub.Tizen.Views
             {
                 if (!IsDeleteMode)
                 {
-                    CurStatus = ItemStatus.NORMAL;
+                    CurStatus = ItemStatus.Normal;
                     UpdateView();
                 }
             }
@@ -461,10 +469,10 @@ namespace TVMediaHub.Tizen.Views
             switch (ctxPopup.SelectedIndex)
             {
                 case 0:
-                    DbgPort.D("File info selected");
+                    ContextPopupItemSelectedHandler.Invoke(VideoInfo, VideoContextPopupItem.FileInfo);
                     break;
                 case 1:
-                    DeleteItemHandler?.Invoke(VideoInfo);
+                    ContextPopupItemSelectedHandler?.Invoke(VideoInfo, VideoContextPopupItem.Delete);
                     break;
             }
             ctxPopup.Dismiss();
index 7b3f35d..5f22bd9 100755 (executable)
@@ -26,6 +26,8 @@ using TVMediaHub.Tizen.ViewModels;
 using Xamarin.Forms;
 using Xamarin.Forms.PlatformConfiguration.TizenSpecific;
 using Tizen.Content.MediaContent;
+using static TVMediaHub.Tizen.Views.VideoItem;
+using Tizen.Xamarin.Forms.Extension;
 
 namespace TVMediaHub.Tizen.Views
 {
@@ -311,9 +313,9 @@ namespace TVMediaHub.Tizen.Views
                 var GroupItem = e.NewItems[0];
                 groupView.BindingContext = GroupItem;
                 groupView.SetClickCommand(OnClickCommand);
-                groupView.OnItemDeleteHandler += (info) =>
+                groupView.ContextPopupItemSelectedHandler += (info, item) =>
                 {
-                    ShowDeletePopup(info);
+                    ShowPopup(info, item);
                 };
 
                 VideoTabList.Children.Add(groupView);
@@ -639,14 +641,27 @@ namespace TVMediaHub.Tizen.Views
         }
 
 
-        private async void ShowDeletePopup(MediaInformation item)
+        private async void ShowPopup(MediaInformation info, VideoContextPopupItem item)
         {
-            bool answer = await DisplayAlert("Delete", "Delete '" + item.Title + "'?", "Yes", "No");
-            if (answer)
+            switch (item)
             {
-                DeleteContentCommand?.Execute(item);
+                case VideoContextPopupItem.FileInfo:
+                    string message = "File name  : " + info.Title + "\n";
+                    message += "File size : " + info.Size + "\n";
+                    message += "File format : " + info.MimeType + "\n";
+                    message += "File size : " + info.Size + "\n";
+                    message += "File path : " + info.FilePath;
+
+                    await DisplayAlert("File Information", message, "Close");
+                    break;
+                case VideoContextPopupItem.Delete:
+                    bool answer = await DisplayAlert("Delete", "Delete '" + info.Title + "'?", "Yes", "No");
+                    if (answer)
+                    {
+                        DeleteContentCommand?.Execute(item);
+                    }
+                    break;
             }
-
         }
     }
 }