Removing Tizen.Xamarin.Forms.Extensions 54/234854/1 accepted/tizen_6.0_unified accepted/tizen_6.0_unified_hotfix accepted/tizen_7.0_unified accepted/tizen_7.0_unified_hotfix accepted/tizen_8.0_unified accepted/tizen_unified tizen tizen_6.0 tizen_6.0_hotfix tizen_6.5 tizen_7.0 tizen_7.0_hotfix tizen_8.0 accepted/tizen/6.0/unified/20201030.102955 accepted/tizen/6.0/unified/hotfix/20201103.045742 accepted/tizen/7.0/unified/20221110.060916 accepted/tizen/7.0/unified/hotfix/20221116.112000 accepted/tizen/8.0/unified/20231005.100058 accepted/tizen/unified/20200601.140136 submit/tizen/20200529.112457 submit/tizen_6.0/20201029.205505 submit/tizen_6.0_hotfix/20201102.192905 submit/tizen_6.0_hotfix/20201103.115105 submit/tizen_6.5/20211028.164001 submit/tizen_6.5/20211029.140001 tizen_6.0.m2_release tizen_6.5.m2_release tizen_7.0_m2_release tizen_8.0_m2_release
authork.stepaniuk <k.stepaniuk@samsung.com>
Fri, 29 May 2020 07:12:47 +0000 (09:12 +0200)
committerk.stepaniuk <k.stepaniuk@samsung.com>
Fri, 29 May 2020 07:50:26 +0000 (09:50 +0200)
Updating tpk

Change-Id: I1fcd2673e8cc3598b20d3760675c9d2526f43018
Signed-off-by: k.stepaniuk <k.stepaniuk@samsung.com>
115 files changed:
TVMediaHub.sln
TVMediaHub/TVMediaHub.Tizen/Extensions/ContextPopup.cs [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/Extensions/ContextPopupDirection.cs [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/Extensions/ContextPopupDirectionPriorities.cs [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/Extensions/ContextPopupImplementation.cs [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/Extensions/ContextPopupItem.cs [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/Extensions/ContextPopupOrientation.cs [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/Extensions/Dialog.cs [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/Extensions/DialogImplementation.cs [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/Extensions/DropdownList.cs [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/Extensions/DropdownListRenderer.cs [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/Extensions/IContextPopup.cs [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/Extensions/IDialog.cs [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/Extensions/IMediaViewController.cs [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/Extensions/IToast.cs [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/Extensions/MediaView.cs [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/Extensions/TextSlideEffect.cs [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/Extensions/TizenExtension.cs [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/Extensions/Toast.cs [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/Extensions/ToastImplementation.cs [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/Extensions/ToastProxy.cs [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/Models/ContentProvider.cs
TVMediaHub/TVMediaHub.Tizen/TVMediaHub.Tizen.csproj
TVMediaHub/TVMediaHub.Tizen/Views/MusicPlayer.xaml.cs
TVMediaHub/TVMediaHub.Tizen/bin/Debug/TVMediaHub.Tizen.tpk
TVMediaHub/TVMediaHub.Tizen/bin/Debug/org.tizen.xamediahub-1.0.0.tpi [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/TVMediaHub.Tizen.deps.json [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/org.tizen.xamediahub-1.0.0.tpi [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/org.tizen.xamediahub-1.0.0.tpk [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/TVMediaHub.Tizen.deps.json [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/author-signature.xml [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/Thumbnail1.jpg [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_list_thumbnail_play.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_option_list_check_dis.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_option_list_check_foc.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_option_list_check_nor.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_option_list_check_pre.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_option_menu_dis.9.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_option_menu_foc.9.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_option_menu_nor.9.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_option_menu_pre.9.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_select_check_bk.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_select_check_wh.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_select_for.9.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_select_nor.9.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_select_pre.9.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_unselect_check_bk.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_unselect_check_wh.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_music_info_pause.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_music_info_play.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_focused.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_forward_normal.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_forward_pressed.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_left_normal.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_left_pressed.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_next_normal.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_next_pressed.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_option_normal.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_option_pressed.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_pause_normal.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_pause_pressed.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_play_normal.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_play_pressed.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_previous_normal.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_previous_pressed.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_rewind_normal.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_rewind_pressed.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_right_normal.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_right_pressed.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_rotate_normal.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_rotate_pressed.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_video_normal.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_video_pressed.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_zoom_normal.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_zoom_pressed.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/ic_apps_additional_back.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/ic_play_speed_info.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/ic_zoom_arrow_down_normal.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/ic_zoom_arrow_down_pressed.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/ic_zoom_arrow_left_normal.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/ic_zoom_arrow_left_pressed.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/ic_zoom_arrow_right_normal.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/ic_zoom_arrow_right_pressed.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/ic_zoom_arrow_up_normal.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/ic_zoom_arrow_up_pressed.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_bg_dimmed_95.9.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_black_area.9.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_dimmed.9.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_dimmed_opacity75.9.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_dimmed_opacity85.9.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_gallery_unavailable_photo.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_gallery_unavailable_video.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_gradient_topbottom.9.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_media_no_contents.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_movie_unavailable.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_music_list_focused.9.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_music_list_focused_shadow.9.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_music_list_normal.9.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_music_nocover.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_music_nocover_focused.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_photozoom_gradient.9.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_stroke.9.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_stroke2.9.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_thumbnail_focused_shadow.9.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_thumbnail_gradient_normal.9.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_viewer_progress.9.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_zoom_minimap_black_area.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_zoom_minimap_dimmed.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_zoom_minimap_line.9.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_zoom_minimap_mask.9.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_zoom_minimap_shadow.9.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/shared/res/xamediahub.png [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/signature1.xml [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/tizen-manifest.xml [new file with mode: 0644]
TVMediaHub/TVMediaHub.Tizen/tizen-manifest.xml

index a0fb3a0..5976c0c 100644 (file)
@@ -1,31 +1,31 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.26730.12
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TVMediaHub.Tizen", "TVMediaHub\TVMediaHub.Tizen\TVMediaHub.Tizen.csproj", "{2C968D00-4043-4202-9060-36C831AE6784}"
-EndProject
-Global
-       GlobalSection(SolutionConfigurationPlatforms) = preSolution
-               Debug|Any CPU = Debug|Any CPU
-               Debug|x86 = Debug|x86
-               Release|Any CPU = Release|Any CPU
-               Release|x86 = Release|x86
-       EndGlobalSection
-       GlobalSection(ProjectConfigurationPlatforms) = postSolution
-               {2C968D00-4043-4202-9060-36C831AE6784}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-               {2C968D00-4043-4202-9060-36C831AE6784}.Debug|Any CPU.Build.0 = Debug|Any CPU
-               {2C968D00-4043-4202-9060-36C831AE6784}.Debug|x86.ActiveCfg = Debug|x86
-               {2C968D00-4043-4202-9060-36C831AE6784}.Debug|x86.Build.0 = Debug|x86
-               {2C968D00-4043-4202-9060-36C831AE6784}.Release|Any CPU.ActiveCfg = Release|Any CPU
-               {2C968D00-4043-4202-9060-36C831AE6784}.Release|Any CPU.Build.0 = Release|Any CPU
-               {2C968D00-4043-4202-9060-36C831AE6784}.Release|x86.ActiveCfg = Release|x86
-               {2C968D00-4043-4202-9060-36C831AE6784}.Release|x86.Build.0 = Release|x86
-       EndGlobalSection
-       GlobalSection(SolutionProperties) = preSolution
-               HideSolutionNode = FALSE
-       EndGlobalSection
-       GlobalSection(ExtensibilityGlobals) = postSolution
-               SolutionGuid = {41764591-2375-476F-A664-7DA9F077C762}
-       EndGlobalSection
-EndGlobal
+\r
+Microsoft Visual Studio Solution File, Format Version 12.00\r
+# Visual Studio Version 16\r
+VisualStudioVersion = 16.0.29806.167\r
+MinimumVisualStudioVersion = 10.0.40219.1\r
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TVMediaHub.Tizen", "TVMediaHub\TVMediaHub.Tizen\TVMediaHub.Tizen.csproj", "{2C968D00-4043-4202-9060-36C831AE6784}"\r
+EndProject\r
+Global\r
+       GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
+               Debug|Any CPU = Debug|Any CPU\r
+               Debug|x86 = Debug|x86\r
+               Release|Any CPU = Release|Any CPU\r
+               Release|x86 = Release|x86\r
+       EndGlobalSection\r
+       GlobalSection(ProjectConfigurationPlatforms) = postSolution\r
+               {2C968D00-4043-4202-9060-36C831AE6784}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
+               {2C968D00-4043-4202-9060-36C831AE6784}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
+               {2C968D00-4043-4202-9060-36C831AE6784}.Debug|x86.ActiveCfg = Debug|Any CPU\r
+               {2C968D00-4043-4202-9060-36C831AE6784}.Debug|x86.Build.0 = Debug|Any CPU\r
+               {2C968D00-4043-4202-9060-36C831AE6784}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
+               {2C968D00-4043-4202-9060-36C831AE6784}.Release|Any CPU.Build.0 = Release|Any CPU\r
+               {2C968D00-4043-4202-9060-36C831AE6784}.Release|x86.ActiveCfg = Release|Any CPU\r
+               {2C968D00-4043-4202-9060-36C831AE6784}.Release|x86.Build.0 = Release|Any CPU\r
+       EndGlobalSection\r
+       GlobalSection(SolutionProperties) = preSolution\r
+               HideSolutionNode = FALSE\r
+       EndGlobalSection\r
+       GlobalSection(ExtensibilityGlobals) = postSolution\r
+               SolutionGuid = {41764591-2375-476F-A664-7DA9F077C762}\r
+       EndGlobalSection\r
+EndGlobal\r
diff --git a/TVMediaHub/TVMediaHub.Tizen/Extensions/ContextPopup.cs b/TVMediaHub/TVMediaHub.Tizen/Extensions/ContextPopup.cs
new file mode 100644 (file)
index 0000000..77da480
--- /dev/null
@@ -0,0 +1,309 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Collections.Specialized;
+using System.Linq;
+using Xamarin.Forms;
+
+namespace Tizen.Xamarin.Forms.Extension
+{
+    /// <summary>
+    /// The ContextPopup class allows a contextual popup to be anchored at a view.
+    /// </summary>
+    /// <example>
+    /// <code>
+    /// ContextPopup popup = new ContextPopup
+    /// {
+    ///     DirectionPriorities = new ContextPopupDirectionPriorities(ContextPopupDirection.Down, ContextPopupDirection.Right, ContextPopupDirection.Left, ContextPopupDirection.Up),
+    /// };
+    /// popup.Items.Add(new ContextPopupItem("Text only item"));
+    /// popup.Items.Add(new ContextPopupItem("Home icon", "home"));
+    /// popup.Items.Add(new ContextPopupItem("Chat", StandardIconResource.MenuChat.Name));
+    /// popup.SelectedIndexChanged += (s, e) =>
+    /// {
+    ///     var ctxPopup = s as ContextPopup;
+    ///     Debug.WriteLine("Item with index {0} selected", ctxPopup.SelectedIndex);
+    ///     Debug.WriteLine("It has label: " + (ctxPopup.SelectedItem as ContextPopupItem).Label);
+    /// };
+    ///
+    /// Button btn = new Button
+    /// {
+    ///     Text = "Toggle popup"
+    /// };
+    /// btn.Clicked += (s, e) =>
+    /// {
+    ///     popup.Show(s as Button);
+    /// };
+    /// </code>
+    /// </example>
+    public class ContextPopup : BindableObject
+    {
+        IContextPopup _contextPopup;
+
+        ObservableCollection<ContextPopupItem> _items;
+
+        static ContextPopupDirectionPriorities _priorities =
+            new ContextPopupDirectionPriorities(ContextPopupDirection.Up, ContextPopupDirection.Left, ContextPopupDirection.Right, ContextPopupDirection.Down);
+
+        [Obsolete("OrientationProperty is obsolete as of version 2.3.5-r256-001. The orientation is always vertical.")]
+        public static readonly BindableProperty OrientationProperty = BindableProperty.Create(nameof(Orientation), typeof(ContextPopupOrientation), typeof(ContextPopup),
+            defaultValue: ContextPopupOrientation.Vertical);
+
+        /// <summary>
+        /// BindableProperty. Identifies the IsAutoHidingEnabled bindable property.
+        /// </summary>
+        public static readonly BindableProperty IsAutoHidingEnabledProperty = BindableProperty.Create(nameof(IsAutoHidingEnabled), typeof(bool), typeof(ContextPopup), defaultValue: true);
+
+        /// <summary>
+        /// BindableProperty. Identifies the DirectionPriorities bindable property.
+        /// </summary>
+        public static readonly BindableProperty DirectionPrioritiesProperty = BindableProperty.Create(nameof(DirectionPriorities), typeof(ContextPopupDirectionPriorities),
+            typeof(ContextPopup), defaultValue: _priorities);
+
+        /// <summary>
+        /// BindableProperty. Identifies the SelectedIndex bindable property.
+        /// </summary>
+        public static readonly BindableProperty SelectedIndexProperty = BindableProperty.Create(nameof(SelectedIndex), typeof(int), typeof(ContextPopup), defaultValue: -1,
+            propertyChanged: OnSelectedIndexChanged, coerceValue: CoerceSelectedIndex);
+
+        /// <summary>
+        /// BindableProperty. Identifies the SelectedItem bindable property.
+        /// </summary>
+        public static readonly BindableProperty SelectedItemProperty = BindableProperty.Create(nameof(SelectedItem), typeof(object), typeof(ContextPopup), null,
+            propertyChanged: OnSelectedItemChanged);
+
+        [Obsolete("ItemsSourceProperty is obsolete as of version 2.3.5-r256-001. Please use Items instead.")]
+        public static readonly BindableProperty ItemsSourceProperty = BindableProperty.Create(nameof(ItemsSource), typeof(IList), typeof(ContextPopup), default(IList));
+
+        /// <summary>
+        /// The constructor, which creates a new ContextPopup instance.
+        /// </summary>
+        public ContextPopup()
+        {
+            _contextPopup = DependencyService.Get<IContextPopup>(DependencyFetchTarget.NewInstance);
+
+            _contextPopup.Dismissed += (s, e) => Dismissed?.Invoke(this, EventArgs.Empty);
+            _contextPopup.ItemSelected += (s, e) => ItemSelected?.Invoke(this, EventArgs.Empty);
+
+            _items = new ObservableCollection<ContextPopupItem>();
+            _items.CollectionChanged += ItemsCollectionChanged;
+
+            SetBinding(IsAutoHidingEnabledProperty, new Binding(nameof(IsAutoHidingEnabled), mode: BindingMode.TwoWay, source: _contextPopup));
+            SetBinding(DirectionPrioritiesProperty, new Binding(nameof(DirectionPriorities), mode: BindingMode.TwoWay, source: _contextPopup));
+            SetBinding(SelectedItemProperty, new Binding(nameof(SelectedItem), mode: BindingMode.TwoWay, source: _contextPopup));
+        }
+
+        /// <summary>
+        /// Occurs when the ContextPopup is dismissed.
+        /// </summary>
+        public event EventHandler Dismissed;
+
+        /// <summary>
+        /// Occurs when the index of the selected ContextPopupItem changes.
+        /// </summary>
+        public event EventHandler SelectedIndexChanged;
+
+        /// <summary>
+        /// Occurs when a ContextPopupItem is selected.
+        /// </summary>
+        public event EventHandler ItemSelected;
+
+        [Obsolete("Orientation is obsolete as of version 2.3.5-r256-001. The orientation is always vertical.")]
+        public ContextPopupOrientation Orientation
+        {
+            get { return (ContextPopupOrientation)GetValue(OrientationProperty); }
+            set { SetValue(OrientationProperty, value); }
+        }
+
+        /// <summary>
+        /// Gets or sets whether ContextPopup should be hidden automatically or not when parent of ContextPopup is resized.
+        /// </summary>
+        /// <remarks>
+        /// Setting IsAutoHidingEnabled to false will not be dismissed automatically whenever such as mouse clicked its background area, language i s changed, and its parent geometry is updated(changed).
+        /// </remarks>
+        public bool IsAutoHidingEnabled
+        {
+            get { return (bool)GetValue(IsAutoHidingEnabledProperty); }
+            set { SetValue(IsAutoHidingEnabledProperty, value); }
+        }
+
+        /// <summary>
+        /// Gets or sets the direction priorities for the ContextPopup.<br>
+        /// The position of the ContextPopup depends on the available space.
+        /// Therefore, DirectionPriorities are used to specify desired first, second, third, and fourth priorities for positioning the ContextPopup.
+        /// </summary>
+        public ContextPopupDirectionPriorities DirectionPriorities
+        {
+            get { return (ContextPopupDirectionPriorities)GetValue(DirectionPrioritiesProperty); }
+            set { SetValue(DirectionPrioritiesProperty, value); }
+        }
+
+        /// <summary>
+        /// Gets or sets the index of the selected item of the ContextPopup.
+        /// It is -1 when no item is selected.
+        /// </summary>
+        public int SelectedIndex
+        {
+            get { return (int)GetValue(SelectedIndexProperty); }
+            set { SetValue(SelectedIndexProperty, value); }
+        }
+
+        /// <summary>
+        /// Gets or sets the selected item of the ContextPopup.
+        /// </summary>
+        public ContextPopupItem SelectedItem
+        {
+            get { return (ContextPopupItem)GetValue(SelectedItemProperty); }
+            set { SetValue(SelectedItemProperty, value); }
+        }
+
+        [Obsolete("ItemsSource is obsolete as of version 2.3.5-r256-001. Please use Items instead.")]
+        public IList ItemsSource
+        {
+            get { return (IList)GetValue(ItemsSourceProperty); }
+            set { SetValue(ItemsSourceProperty, value); }
+        }
+
+        /// <summary>
+        /// Gets the list of items in the ContextPopup.
+        /// </summary>
+        public IList<ContextPopupItem> Items
+        {
+            get
+            {
+                return _items;
+            }
+        }
+
+        /// <summary>
+        /// Shows the ContextPopup. The ContextPopup is positioned at the horizontal and the vertical position of a specific anchor.
+        /// </summary>
+        /// <param name="anchor">The view to which the popup should be anchored.</param>
+        public void Show(View anchor)
+        {
+            Show(anchor, 0, 0);
+        }
+
+        /// <summary>
+        /// Shows the ContextPopup. The ContextPopup is positioned at the horizontal and the vertical position of a specific anchor with offsets.
+        /// </summary>
+        /// <param name="anchor">The view to which the popup should be anchored.</param>
+        /// <param name="xOffset">The horizontal offset from the anchor.</param>
+        /// <param name="yOffset">The vertical offset from the anchor.</param>
+        public void Show(View anchor, int xOffset, int yOffset)
+        {
+            _contextPopup.Show(anchor, xOffset, yOffset);
+        }
+
+        /// <summary>
+        /// Shows the ContextPopup. The ContextPopup is positioned at the horizontal and the vertical position of a specific anchor with offsets.
+        /// </summary>
+        /// <param name="anchor">The view to which the popup should be anchored.</param>
+        /// <param name="xOffset">The horizontal offset from the anchor.</param>
+        /// <param name="yOffset">The vertical offset from the anchor.</param>
+        public void Show(View anchor, double xOffset, double yOffset)
+        {
+            Show(anchor, (int)xOffset, (int)yOffset);
+        }
+
+        /// <summary>
+        /// Dismisses the ContextPopup.
+        /// </summary>
+        public void Dismiss()
+        {
+            _contextPopup.Dismiss();
+        }
+
+        /// <summary>
+        /// Gets the direction of the ContextPopup if it is shown.
+        /// This method returns false if it is not shown and the output argument is a default value.
+        /// </summary>
+        /// <param name="direction">The direction of the ContextPopup.</param>
+        /// <returns>true if the ContextPopup is shown, false otherwise.</returns>
+        public bool TryGetContextPopupDirection(out ContextPopupDirection direction)
+        {
+            direction = default(ContextPopupDirection);
+            return _contextPopup.TryGetContextPopupDirection(out direction);
+        }
+
+        void ItemsCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
+        {
+            switch (e.Action)
+            {
+                case NotifyCollectionChangedAction.Add:
+                    AddItems(e);
+                    break;
+
+                case NotifyCollectionChangedAction.Remove:
+                    RemoveItems(e);
+                    break;
+
+                default: // Move, replace, reset
+                    ResetItems();
+                    break;
+            }
+
+            SelectedIndex = SelectedIndex.Clamp(-1, Items.Count - 1);
+            UpdateSelectedItem();
+        }
+
+        void ResetItems()
+        {
+            _contextPopup.ClearItems();
+        }
+
+        void RemoveItems(NotifyCollectionChangedEventArgs e)
+        {
+            _contextPopup.RemoveItems(e.OldItems.OfType<ContextPopupItem>());
+        }
+
+        void AddItems(NotifyCollectionChangedEventArgs e)
+        {
+            _contextPopup.AddItems(e.NewItems.OfType<ContextPopupItem>());
+        }
+
+        static void OnSelectedIndexChanged(BindableObject bindable, object oldValue, object newValue)
+        {
+            var contextPopup = (ContextPopup)bindable;
+            contextPopup.UpdateSelectedItem();
+            contextPopup.SelectedIndexChanged?.Invoke(contextPopup, EventArgs.Empty);
+        }
+
+        static object CoerceSelectedIndex(BindableObject bindable, object value)
+        {
+            var contextPopup = (ContextPopup)bindable;
+            return contextPopup.Items == null ? -1 : ((int)value).Clamp(-1, contextPopup.Items.Count - 1);
+        }
+
+        void UpdateSelectedItem()
+        {
+            if (SelectedIndex == -1)
+            {
+                SelectedItem = null;
+                return;
+            }
+
+            SelectedItem = Items[SelectedIndex];
+        }
+
+        static void OnSelectedItemChanged(BindableObject bindable, object oldValue, object newValue)
+        {
+            var contextPopup = (ContextPopup)bindable;
+            contextPopup.UpdateSelectedIndex(newValue);
+        }
+
+        void UpdateSelectedIndex(object selectedItem)
+        {
+            SelectedIndex = Items.IndexOf(selectedItem as ContextPopupItem);
+        }
+    }
+
+    internal static class NumericExtensions
+    {
+        public static int Clamp(this int self, int min, int max)
+        {
+            return Math.Min(max, Math.Max(self, min));
+        }
+    }
+}
diff --git a/TVMediaHub/TVMediaHub.Tizen/Extensions/ContextPopupDirection.cs b/TVMediaHub/TVMediaHub.Tizen/Extensions/ContextPopupDirection.cs
new file mode 100644 (file)
index 0000000..3ed2408
--- /dev/null
@@ -0,0 +1,28 @@
+namespace Tizen.Xamarin.Forms.Extension
+{
+    /// <summary>
+    /// Enumeration for the direction of a ContextPopup.
+    /// </summary>
+    public enum ContextPopupDirection
+    {
+        /// <summary>
+        /// The down ContextPopup direction.
+        /// </summary>
+        Down,
+
+        /// <summary>
+        /// The right ContextPopup direction.
+        /// </summary>
+        Right,
+
+        /// <summary>
+        /// The left ContextPopup direction.
+        /// </summary>
+        Left,
+
+        /// <summary>
+        /// The up ContextPopup direction.
+        /// </summary>
+        Up,
+    }
+}
\ No newline at end of file
diff --git a/TVMediaHub/TVMediaHub.Tizen/Extensions/ContextPopupDirectionPriorities.cs b/TVMediaHub/TVMediaHub.Tizen/Extensions/ContextPopupDirectionPriorities.cs
new file mode 100644 (file)
index 0000000..10865f2
--- /dev/null
@@ -0,0 +1,43 @@
+namespace Tizen.Xamarin.Forms.Extension
+{
+    /// <summary>
+    /// The direction priorities of a ContextPopup.
+    /// </summary>
+    public struct ContextPopupDirectionPriorities
+    {
+        /// <summary>
+        /// Creates a ContextPopupDirectionPriorities structure.
+        /// </summary>
+        /// <param name="first">The first direction priority.</param>
+        /// <param name="second">The second direction priority.</param>
+        /// <param name="third">The third direction priority.</param>
+        /// <param name="fourth">The fourth direction priority.</param>
+        public ContextPopupDirectionPriorities(ContextPopupDirection first, ContextPopupDirection second, ContextPopupDirection third, ContextPopupDirection fourth)
+        {
+            First = first;
+            Second = second;
+            Third = third;
+            Fourth = fourth;
+        }
+
+        /// <summary>
+        /// Gets the first direction priority.
+        /// </summary>
+        public ContextPopupDirection First { get; private set; }
+
+        /// <summary>
+        /// Gets the second direction priority.
+        /// </summary>
+        public ContextPopupDirection Second { get; private set; }
+
+        /// <summary>
+        /// Gets the third direction priority.
+        /// </summary>
+        public ContextPopupDirection Third { get; private set; }
+
+        /// <summary>
+        /// Gets the fourth direction priority.
+        /// </summary>
+        public ContextPopupDirection Fourth { get; private set; }
+    }
+}
\ No newline at end of file
diff --git a/TVMediaHub/TVMediaHub.Tizen/Extensions/ContextPopupImplementation.cs b/TVMediaHub/TVMediaHub.Tizen/Extensions/ContextPopupImplementation.cs
new file mode 100644 (file)
index 0000000..bd11f18
--- /dev/null
@@ -0,0 +1,283 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Runtime.CompilerServices;
+using Xamarin.Forms.Platform.Tizen;\r
+using EContextPopup = ElmSharp.ContextPopup;
+using EContextPopupDirection = ElmSharp.ContextPopupDirection;
+using EContextPopupItem = ElmSharp.ContextPopupItem;
+using EIcon = ElmSharp.Icon;
+using TForms = Xamarin.Forms.Platform.Tizen.Forms;
+using XForms = Xamarin.Forms;
+using XFPlatformTizen = Xamarin.Forms.Platform.Tizen;
+
+[assembly: XForms.Dependency(typeof(Tizen.Xamarin.Forms.Extension.Renderer.ContextPopupImplementation))]
+namespace Tizen.Xamarin.Forms.Extension.Renderer
+{
+    internal class ContextPopupImplementation : IContextPopup, INotifyPropertyChanged, IDisposable
+    {
+        EContextPopup _popup;
+        IDictionary<ContextPopupItem, EContextPopupItem> _items;
+        bool _isAutoHidingEnabled = true;
+
+        ContextPopupDirectionPriorities _priorities =
+            new ContextPopupDirectionPriorities(ContextPopupDirection.Up, ContextPopupDirection.Left, ContextPopupDirection.Right, ContextPopupDirection.Down);
+
+        ContextPopupItem _selectedItem = null;
+
+        bool _isDisposed;
+
+        public ContextPopupImplementation()
+        {
+            _popup = new EContextPopup((TForms.Context as FormsApplication).MainWindow);
+
+            _popup.BackButtonPressed += (s, e) =>
+            {
+                _popup.Dismiss();
+            };
+
+            _popup.Dismissed += (s, e) =>
+            {
+                Dismissed?.Invoke(this, EventArgs.Empty);
+            };
+
+            _items = new Dictionary<ContextPopupItem, EContextPopupItem>();
+        }
+
+        ~ContextPopupImplementation()
+        {
+            Dispose(false);
+        }
+
+        public event PropertyChangedEventHandler PropertyChanged;
+
+        public event EventHandler ItemSelected;
+
+        public event EventHandler Dismissed;
+
+        public bool IsAutoHidingEnabled
+        {
+            get
+            {
+                return _isAutoHidingEnabled;
+            }
+
+            set
+            {
+                _isAutoHidingEnabled = value;
+                UpdateIsAutoHidingEnabled();
+                OnPropertyChanged();
+            }
+        }
+
+        public ContextPopupDirectionPriorities DirectionPriorities
+        {
+            get
+            {
+                return _priorities;
+            }
+
+            set
+            {
+                _priorities = value;
+                UpdateDirectionPriorities();
+                OnPropertyChanged();
+            }
+        }
+
+        public ContextPopupItem SelectedItem
+        {
+            get
+            {
+                return _selectedItem;
+            }
+
+            set
+            {
+                _selectedItem = value;
+                OnPropertyChanged();
+            }
+        }
+
+        public void Dismiss()
+        {
+            _popup.Dismiss();
+        }
+
+        public void AddItems(IEnumerable<ContextPopupItem> items)
+        {
+            foreach (var item in items)
+            {
+                item.PropertyChanged += ContextPopupItemPropertyChanged;
+                AddItem(item);
+            }
+        }
+
+        public void RemoveItems(IEnumerable<ContextPopupItem> items)
+        {
+            foreach (var item in items)
+            {
+                item.PropertyChanged -= ContextPopupItemPropertyChanged;
+                if (_items.ContainsKey(item))
+                {
+                    var nativeItem = _items[item];
+                    nativeItem.Delete();
+                    _items.Remove(item);
+                }
+            }
+        }
+
+        public void ClearItems()
+        {
+            foreach (var item in _items.Keys)
+                item.PropertyChanged -= ContextPopupItemPropertyChanged;
+
+            _items.Clear();
+            _popup.Clear();
+        }
+
+        public void Show(XForms.View anchor, int xAnchorOffset, int yAnchorOffset)
+        {
+            var geometry = XFPlatformTizen.Platform.GetRenderer(anchor).NativeView.Geometry;
+            _popup.Move(geometry.X + xAnchorOffset, geometry.Y + yAnchorOffset);
+            _popup.Show();
+        }
+
+        public bool TryGetContextPopupDirection(out ContextPopupDirection direction)
+        {
+            var nativeDirection = _popup.Direction;
+            if (nativeDirection != EContextPopupDirection.Unknown)
+            {
+                direction = (ContextPopupDirection)nativeDirection;
+                return true;
+            }
+            else
+            {
+                direction = default(ContextPopupDirection);
+                return false;
+            }
+        }
+
+        public void UpdateContextPopupItemLabel(ContextPopupItem item)
+        {
+            EContextPopupItem nativeItem = _items[item];
+            nativeItem.SetPartText("default", item.Label);
+        }
+
+        public void UpdateContextPopupItemIcon(ContextPopupItem item)
+        {
+            if(string.IsNullOrEmpty(item.Icon))
+                _items[item]?.SetPartContent("icon", null);
+            else
+                AppendOrModifyItemWithIcon(item);
+        }
+
+        public void Dispose()
+        {
+            Dispose(true);
+            GC.SuppressFinalize(this);
+        }
+
+        protected virtual void Dispose(bool isDisposing)
+        {
+            if (_isDisposed)
+                return;
+
+            if (isDisposing)
+            {
+                if (_popup != null)
+                {
+                    _popup.Unrealize();
+                    _popup = null;
+                }
+            }
+
+            _isDisposed = true;
+        }
+
+        protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
+        {
+            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
+        }
+
+        void ContextPopupItemPropertyChanged(object sender, PropertyChangedEventArgs e)
+        {
+            var item = sender as ContextPopupItem;
+
+            if (e.PropertyName == nameof(ContextPopupItem.Label))
+            {
+                // If the native item already has a label
+                UpdateContextPopupItemLabel(item);
+            }
+            else if (e.PropertyName == nameof(ContextPopupItem.Icon))
+            {
+                // If the native item already has an icon
+                UpdateContextPopupItemIcon(item);
+            }
+        }
+
+        void UpdateDirectionPriorities()
+        {
+            _popup.SetDirectionPriorty(
+                (EContextPopupDirection)_priorities.First,
+                (EContextPopupDirection)_priorities.Second,
+                (EContextPopupDirection)_priorities.Third,
+                (EContextPopupDirection)_priorities.Fourth);
+        }
+
+        void UpdateIsAutoHidingEnabled()
+        {
+            _popup.AutoHide = IsAutoHidingEnabled;
+        }
+
+        void AddItem(ContextPopupItem item)
+        {
+            if (_items.ContainsKey(item))
+                return;
+
+            EContextPopupItem nativeItem;
+            if (string.IsNullOrEmpty(item.Icon))
+            {
+                nativeItem = _popup.Append(item.Label);
+            }
+            else
+            {
+                nativeItem = AppendOrModifyItemWithIcon(item);
+            }
+
+            _items.Add(item, nativeItem);
+
+            nativeItem.Selected += (s, e) =>
+            {
+                SelectedItem = item; // This will invoke SelectedIndexChanged if the index has changed
+                ItemSelected?.Invoke(this, EventArgs.Empty);
+            };
+        }
+
+        EContextPopupItem AppendOrModifyItemWithIcon(ContextPopupItem item)
+        {
+            EContextPopupItem nativeItem = null;
+            EIcon icon = new EIcon(_popup);
+            icon.StandardIconName = item.Icon;
+            if (!string.IsNullOrEmpty(icon.StandardIconName))
+            {
+                if (!_items.ContainsKey(item))
+                    nativeItem = _popup.Append(item.Label, icon);
+                else
+                    _items[item].SetPartContent("icon", icon);
+            }
+            else
+            {
+                //Not a standard icon
+                XFPlatformTizen.Native.Image iconImage = new XFPlatformTizen.Native.Image(_popup);
+                var task = iconImage.LoadFromImageSourceAsync(item.Icon);
+                if (!_items.ContainsKey(item))
+                    nativeItem = _popup.Append(item.Label, iconImage);
+                else
+                    _items[item].SetPartContent("icon", iconImage);
+            }
+
+            return nativeItem;
+        }
+    }
+}
\ No newline at end of file
diff --git a/TVMediaHub/TVMediaHub.Tizen/Extensions/ContextPopupItem.cs b/TVMediaHub/TVMediaHub.Tizen/Extensions/ContextPopupItem.cs
new file mode 100644 (file)
index 0000000..550a6c0
--- /dev/null
@@ -0,0 +1,112 @@
+using System.ComponentModel;
+using System.Runtime.CompilerServices;
+using Xamarin.Forms;
+
+namespace Tizen.Xamarin.Forms.Extension
+{
+    /// <summary>
+    /// The class for the items in a ContextPopup.
+    /// Each item can have a label and an icon.
+    /// </summary>
+    /// <example>
+    /// <code>
+    /// new ContextPopupItem("Text only item");
+    /// new ContextPopupItem("Home icon", "home");
+    /// new ContextPopupItem("Car", "car.png");
+    /// new ContextPopupItem("Chat", StandardIconResource.MenuChat.Name);
+    /// </code>
+    /// </example>
+    public class ContextPopupItem : INotifyPropertyChanged
+    {
+        string _label;
+        FileImageSource _icon;
+
+        /// <summary>
+        /// Creates a ContextPopupItem with only a label.
+        /// </summary>
+        /// <param name="label">The label of the ContextPopupItem.</param>
+        public ContextPopupItem(string label)
+        {
+            _label = label;
+        }
+
+        /// <summary>
+        /// Creates a ContextPopupItem with a label and an icon. The icon may be an image or a standard icon.<br>
+        /// To create a ContextPopupItem with only an icon, set the label to an empty string.<br>
+        /// The available standard icons that can be used are specified in the StandardIconResource class.
+        /// The name property of the StandardIconResource class can be used to specify a standard icon.
+        /// </summary>
+        /// <param name="label">The label of the ContextPopupItem.</param>
+        /// <param name="icon">The icon of the ContextPopupItem.</param>
+        /// <code>
+        /// new ContextPopupItem("Text only item");
+        /// new ContextPopupItem("Home icon", "home");
+        /// new ContextPopupItem("Car", "car.png");
+        /// new ContextPopupItem("Chat", StandardIconResource.MenuChat.Name);
+        /// </code>
+        public ContextPopupItem(string label, FileImageSource icon)
+        {
+            if (label == null)
+                label = "";
+            _label = label;
+            _icon = icon;
+        }
+
+        /// <summary>
+        /// Occurs when the label or an icon of a ContextPopupItem is changed.
+        /// </summary>
+        public event PropertyChangedEventHandler PropertyChanged;
+
+        /// <summary>
+        /// Gets or sets the label of a ContextPopupItem.
+        /// </summary>
+        public string Label
+        {
+            get
+            {
+                return _label;
+            }
+            set
+            {
+                if (value != _label)
+                {
+                    _label = value;
+                    OnPropertyChanged();
+                }
+            }
+        }
+
+        /// <summary>
+        /// Gets or sets the icon of a ContextPopupItem. The icon may be an image or a standard icon.<br>
+        /// The available standard icons that can be used are specified in the StandardIconResource class.
+        /// The name property of the StandardIconResource class can be used to specify a standard icon.
+        /// </summary>
+        /// <remarks>
+        /// Icon is only supported on the mobile profile.
+        /// Icon does not always work as expected on the TV profile.
+        /// </remarks>
+        public FileImageSource Icon
+        {
+            get
+            {
+                return _icon;
+            }
+            set
+            {
+                if (value != _icon)
+                {
+                    _icon = value;
+                    OnPropertyChanged();
+                }
+            }
+        }
+
+        /// <summary>
+        /// Called when a bindable property has changed.
+        /// </summary>
+        protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
+        {
+            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
+        }
+    }
+}
\ No newline at end of file
diff --git a/TVMediaHub/TVMediaHub.Tizen/Extensions/ContextPopupOrientation.cs b/TVMediaHub/TVMediaHub.Tizen/Extensions/ContextPopupOrientation.cs
new file mode 100644 (file)
index 0000000..0c602b8
--- /dev/null
@@ -0,0 +1,11 @@
+using System;
+
+namespace Tizen.Xamarin.Forms.Extension
+{
+    [Obsolete("ContextPopupOrientation is obsolete as of version 2.3.5-r256-001. ContextPopup does not support orientation. The orientation is always vertical.")]
+    public enum ContextPopupOrientation
+    {
+        Horizontal,
+        Vertical,
+    }
+}
\ No newline at end of file
diff --git a/TVMediaHub/TVMediaHub.Tizen/Extensions/Dialog.cs b/TVMediaHub/TVMediaHub.Tizen/Extensions/Dialog.cs
new file mode 100644 (file)
index 0000000..4c59c66
--- /dev/null
@@ -0,0 +1,240 @@
+using System;
+using Xamarin.Forms;
+
+namespace Tizen.Xamarin.Forms.Extension
+{
+    /// <summary>
+    /// The dialog widget displays its content with buttons and title.
+    /// </summary>
+    /// <example>
+    /// <code>
+    /// var dialog = new Dialog();
+    /// dialog.Title = "Dialog"
+    ///
+    /// var positive = new Button()
+    /// {
+    ///     Text = "OK"
+    /// }
+    /// var negative = new Button()
+    /// {
+    ///     Text = "Cancel"
+    /// }
+    /// negative.Clicked += (s,e)=>
+    /// {
+    ///     dialog.Hide();
+    /// }
+    ///
+    /// dialog.Positive = positive;
+    /// dialog.Negative = negative;
+    ///
+    /// var label = new Label()
+    /// {
+    ///     Text = "New Dialog"
+    /// }
+    ///
+    /// dialog.Content = label;
+    ///
+    /// dialog.Show();
+    ///
+    /// </code>
+    /// </example>
+    public class Dialog : BindableObject
+    {
+        /// <summary>
+        /// BindableProperty. Identifies the content bindable property.
+        /// </summary>
+        public static readonly BindableProperty ContentProperty = BindableProperty.Create(nameof(Content), typeof(View), typeof(Dialog), null);
+
+        /// <summary>
+        /// BindableProperty. Identifies the positive bindable property.
+        /// </summary>
+        public static readonly BindableProperty PositiveProperty = BindableProperty.Create(nameof(Positive), typeof(Button), typeof(Dialog), null);
+
+        /// <summary>
+        /// BindableProperty. Identifies the neutral bindable property.
+        /// </summary>
+        public static readonly BindableProperty NeutralProperty = BindableProperty.Create(nameof(Neutral), typeof(Button), typeof(Dialog), null);
+
+        /// <summary>
+        /// BindableProperty. Identifies the negative bindable property.
+        /// </summary>
+        public static readonly BindableProperty NegativeProperty = BindableProperty.Create(nameof(Negative), typeof(Button), typeof(Dialog), null);
+
+        /// <summary>
+        /// BindableProperty. Identifies the title bindable property.
+        /// </summary>
+        public static readonly BindableProperty TitleProperty = BindableProperty.Create(nameof(Title), typeof(string), typeof(Dialog), null);
+
+        /// <summary>
+        /// BindableProperty. Identifies the subtitle bindable property.
+        /// </summary>
+        public static readonly BindableProperty SubtitleProperty = BindableProperty.Create(nameof(Subtitle), typeof(string), typeof(Dialog), null);
+
+        /// <summary>
+        /// BindableProperty. Identifies the HorizontalOption bindable property.
+        /// </summary>
+        public static readonly BindableProperty HorizontalOptionProperty = BindableProperty.Create(nameof(HorizontalOption), typeof(LayoutOptions), typeof(Dialog), LayoutOptions.Center);
+
+        /// <summary>
+        /// BindableProperty. Identifies the VerticalOption bindable property.
+        /// </summary>
+        public static readonly BindableProperty VerticalOptionProperty = BindableProperty.Create(nameof(VerticalOption), typeof(LayoutOptions), typeof(Dialog), LayoutOptions.End);
+
+        IDialog _dialog = null;
+
+        /// <summary>
+        /// Occurs when the dialog is hidden.
+        /// </summary>
+        public event EventHandler Hidden;
+
+        /// <summary>
+        /// Occurs when outside of the dialog is clicked.
+        /// </summary>
+        public event EventHandler OutsideClicked;
+
+        /// <summary>
+        /// Occurs when the dialog is shown on the display.
+        /// </summary>
+        public event EventHandler Shown;
+
+        /// <summary>
+        /// Occurs when the device's back button is pressed.
+        /// </summary>
+        public event EventHandler BackButtonPressed;
+
+        public Dialog()
+        {
+            _dialog = DependencyService.Get<IDialog>(DependencyFetchTarget.NewInstance);
+            if (_dialog == null)
+            {
+                throw new Exception("Object reference not set to an instance of a Dialog.");
+            }
+
+            _dialog.Hidden += (s, e) =>
+            {
+                Hidden?.Invoke(this, EventArgs.Empty);
+            };
+
+            _dialog.OutsideClicked += (s, e) =>
+            {
+                OutsideClicked?.Invoke(this, EventArgs.Empty);
+            };
+
+            _dialog.Shown += (s, e) =>
+            {
+                Shown?.Invoke(this, EventArgs.Empty);
+            };
+
+            _dialog.BackButtonPressed += (s, e) =>
+            {
+                BackButtonPressed?.Invoke(this, EventArgs.Empty);
+            };
+
+            SetBinding(ContentProperty, new Binding(nameof(Content), mode: BindingMode.OneWayToSource, source: _dialog));
+            SetBinding(PositiveProperty, new Binding(nameof(Positive), mode: BindingMode.OneWayToSource, source: _dialog));
+            SetBinding(NeutralProperty, new Binding(nameof(Neutral), mode: BindingMode.OneWayToSource, source: _dialog));
+            SetBinding(NegativeProperty, new Binding(nameof(Negative), mode: BindingMode.OneWayToSource, source: _dialog));
+            SetBinding(TitleProperty, new Binding(nameof(Title), mode: BindingMode.OneWayToSource, source: _dialog));
+            SetBinding(SubtitleProperty, new Binding(nameof(Subtitle), mode: BindingMode.OneWayToSource, source: _dialog));
+            SetBinding(HorizontalOptionProperty, new Binding(nameof(HorizontalOption), mode: BindingMode.OneWayToSource, source: _dialog));
+            SetBinding(VerticalOptionProperty, new Binding(nameof(VerticalOption), mode: BindingMode.OneWayToSource, source: _dialog));
+        }
+
+        /// <summary>
+        /// Gets or sets content view of the dialog.
+        /// </summary>
+        public View Content
+        {
+            get { return (View)GetValue(ContentProperty); }
+            set { SetValue(ContentProperty, value); }
+        }
+
+        /// <summary>
+        /// Gets or sets positive button of the dialog.
+        /// This button is on the left.
+        /// When used alone, it is variable in size (can increase to the size of dialog).
+        /// Dialog's all buttons style is bottom
+        /// </summary>
+        public Button Positive
+        {
+            get { return (Button)GetValue(PositiveProperty); }
+            set { SetValue(PositiveProperty, value); }
+        }
+
+        /// <summary>
+        /// Gets or sets neutral button of the dialog.
+        /// This button is at the center.
+        /// When used alone or used with positive, its size is half the size of the dialog and is on the right.
+        /// </summary>
+        public Button Neutral
+        {
+            get { return (Button)GetValue(NeutralProperty); }
+            set { SetValue(NeutralProperty, value); }
+        }
+
+        /// <summary>
+        /// Gets or sets negative button of the dialog.
+        /// This button is always on the right and is displayed at a fixed size.
+        /// </summary>
+        public Button Negative
+        {
+            get { return (Button)GetValue(NegativeProperty); }
+            set { SetValue(NegativeProperty, value); }
+        }
+
+        /// <summary>
+        /// Gets or sets title of the dialog.
+        /// </summary>
+        public string Title
+        {
+            get { return (string)GetValue(TitleProperty); }
+            set { SetValue(TitleProperty, value); }
+        }
+
+        /// <summary>
+        /// Gets or sets subtitle of the dialog.
+        /// When title property value is null, subtitle is not displayed.
+        /// </summary>
+        public string Subtitle
+        {
+            get { return (string)GetValue(SubtitleProperty); }
+            set { SetValue(SubtitleProperty, value); }
+        }
+
+        /// <summary>
+        /// Gets or sets the LayoutOptions that define how the dialog gets laid in a layout cycle.
+        /// The default is center.
+        /// </summary>
+        public LayoutOptions HorizontalOption
+        {
+            get { return (LayoutOptions)GetValue(HorizontalOptionProperty); }
+            set { SetValue(HorizontalOptionProperty, value); }
+        }
+
+        /// <summary>
+        /// Gets or sets the LayoutOptions that define how the dialog gets laid in a layout cycle.
+        /// The default is end.
+        /// </summary>
+        public LayoutOptions VerticalOption
+        {
+            get { return (LayoutOptions)GetValue(VerticalOptionProperty); }
+            set { SetValue(VerticalOptionProperty, value); }
+        }
+
+        /// <summary>
+        /// Shows the dialog.
+        /// </summary>
+        public void Show()
+        {
+            _dialog.Show();
+        }
+
+        /// <summary>
+        /// Hides the dialog.
+        /// </summary>
+        public void Hide()
+        {
+            _dialog.Hide();
+        }
+    }
+}
\ No newline at end of file
diff --git a/TVMediaHub/TVMediaHub.Tizen/Extensions/DialogImplementation.cs b/TVMediaHub/TVMediaHub.Tizen/Extensions/DialogImplementation.cs
new file mode 100644 (file)
index 0000000..1f23321
--- /dev/null
@@ -0,0 +1,391 @@
+using System;
+using Xamarin.Forms;
+using Xamarin.Forms.Platform.Tizen;
+using TForms = Xamarin.Forms.Platform.Tizen.Forms;
+using EPopup = ElmSharp.Popup;
+using Tizen.Xamarin.Forms.Extension.Renderer;
+
+[assembly: Dependency(typeof(DialogImplementation))]
+
+namespace Tizen.Xamarin.Forms.Extension.Renderer
+{
+    class DialogImplementation : IDialog, IDisposable
+    {
+        EPopup _control;
+        View _content;
+        Button _positive;
+        Button _neutral;
+        Button _negative;
+        string _title;
+        string _subtitle;
+        StackLayout _contentView;
+        LayoutOptions _horizontalOption = LayoutOptions.Center;
+        LayoutOptions _verticalOption = LayoutOptions.End;
+
+        LayoutOptions _previousHorizontalOption = LayoutOptions.Center;
+
+        bool _isDisposed = false;
+
+        ElmSharp.Button _nativePositive;
+
+        ElmSharp.Button _nativeNeutral;
+        ElmSharp.Button _nativeNegative;
+        ElmSharp.EvasObject _nativeContent;
+
+        public event EventHandler Hidden;
+
+        public event EventHandler OutsideClicked;
+
+        public event EventHandler Shown;
+
+        public event EventHandler BackButtonPressed;
+
+        public DialogImplementation()
+        {
+            _control = new EPopup((TForms.Context as FormsApplication).MainWindow);
+
+            _control.ShowAnimationFinished += ShowAnimationFinishedHandler;
+            _control.Dismissed += DismissedHandler;
+            _control.OutsideClicked += OutsideClickedHandler;
+            _control.BackButtonPressed += BackButtonPressedHandler;
+
+            _contentView = new StackLayout();
+        }
+
+        ~DialogImplementation()
+        {
+            Dispose(false);
+        }
+
+        public View Content
+        {
+            get
+            {
+                return _content;
+            }
+            set
+            {
+                _content = value;
+                UpdateContent();
+            }
+        }
+
+        public Button Positive
+        {
+            get
+            {
+                return _positive;
+            }
+            set
+            {
+                _positive = value;
+                UpdatePositive();
+            }
+        }
+
+        public Button Neutral
+        {
+            get
+            {
+                return _neutral;
+            }
+            set
+            {
+                _neutral = value;
+                UpdateNeutral();
+            }
+        }
+
+        public Button Negative
+        {
+            get
+            {
+                return _negative;
+            }
+            set
+            {
+                _negative = value;
+                UpdateNegative();
+            }
+        }
+
+        public string Title
+        {
+            get
+            {
+                return _title;
+            }
+            set
+            {
+                _title = value;
+                UpdateTitle();
+            }
+        }
+
+        public string Subtitle
+        {
+            get
+            {
+                return _subtitle;
+            }
+            set
+            {
+                _subtitle = value;
+                UpdateSubtitle();
+            }
+        }
+
+        public LayoutOptions HorizontalOption
+        {
+            get
+            {
+                return _horizontalOption;
+            }
+            set
+            {
+                _horizontalOption = value;
+                UpdateHorizontalOption();
+            }
+        }
+
+        public LayoutOptions VerticalOption
+        {
+            get
+            {
+                return _verticalOption;
+            }
+            set
+            {
+                _verticalOption = value;
+                UpdateVerticalOption();
+            }
+        }
+
+        public void Show()
+        {
+            if (Application.Current.Platform == null)
+            {
+                throw new Exception("When the Application's Platform is null, can not show the Dialog.");
+            }
+            if (_contentView.Platform == null)
+            {
+                UpdateContent();
+            }
+            _control.Show();
+        }
+
+        public void Hide()
+        {
+            _control.Hide();
+        }
+
+        public void Dispose()
+        {
+            Dispose(true);
+            GC.SuppressFinalize(this);
+        }
+
+        protected virtual void Dispose(bool disposing)
+        {
+            if (_isDisposed)
+                return;
+
+            if (disposing)
+            {
+                if (_nativePositive != null)
+                {
+                    _nativePositive.Unrealize();
+                    _nativePositive = null;
+                }
+                if (_nativeNeutral != null)
+                {
+                    _nativeNeutral.Unrealize();
+                    _nativeNeutral = null;
+                }
+                if (_nativeNegative != null)
+                {
+                    _nativeNegative.Unrealize();
+                    _nativeNegative = null;
+                }
+                if (_nativeContent != null)
+                {
+                    _nativeContent.Unrealize();
+                    _nativeContent = null;
+                }
+
+                if (_control != null)
+                {
+                    _control.ShowAnimationFinished -= ShowAnimationFinishedHandler;
+                    _control.Dismissed -= DismissedHandler;
+                    _control.OutsideClicked -= OutsideClickedHandler;
+                    _control.BackButtonPressed -= BackButtonPressedHandler;
+
+                    _control.Unrealize();
+                    _control = null;
+                }
+            }
+
+            _isDisposed = true;
+        }
+
+        void ShowAnimationFinishedHandler(object sender, EventArgs e)
+        {
+            _nativeContent?.MarkChanged();
+            Shown?.Invoke(this, EventArgs.Empty);
+        }
+
+        void DismissedHandler(object sender, EventArgs e)
+        {
+            Hidden?.Invoke(this, EventArgs.Empty);
+        }
+
+        void OutsideClickedHandler(object sender, EventArgs e)
+        {
+            OutsideClicked?.Invoke(this, EventArgs.Empty);
+        }
+
+        void BackButtonPressedHandler(object sender, EventArgs e)
+        {
+            BackButtonPressed?.Invoke(this, EventArgs.Empty);
+        }
+
+        void UpdateContent()
+        {
+            if (Application.Current.Platform == null)
+                return;
+
+            _contentView.Children.Clear();
+
+            if (Content != null)
+            {
+                _contentView.Children.Add(Content);
+
+                _contentView.Platform = Application.Current.Platform;
+
+                var renderer = Platform.GetOrCreateRenderer(_contentView);
+                (renderer as LayoutRenderer)?.RegisterOnLayoutUpdated();
+
+                var sizeRequest = _contentView.Measure((TForms.Context as FormsApplication).MainWindow.ScreenSize.Width, (TForms.Context as FormsApplication).MainWindow.ScreenSize.Height).Request.ToPixel();
+
+                _nativeContent = renderer.NativeView;
+                _nativeContent.MinimumHeight = sizeRequest.Height;
+
+                _control.SetPartContent("default", _nativeContent, true);
+            }
+            else
+            {
+                _control.SetPartContent("default", null, true);
+            }
+        }
+
+        void UpdatePositive()
+        {
+            _nativePositive?.Hide();
+
+            if (Positive != null)
+            {
+                _nativePositive = (ElmSharp.Button)Platform.GetOrCreateRenderer(Positive).NativeView;
+                _nativePositive.Style = "popup";
+            }
+            else
+            {
+                _nativePositive = null;
+            }
+
+            _control.SetPartContent("button1", _nativePositive, true);
+        }
+
+        void UpdateNeutral()
+        {
+            _nativeNeutral?.Hide();
+
+            if (Neutral != null)
+            {
+                _nativeNeutral = (ElmSharp.Button)Platform.GetOrCreateRenderer(Neutral).NativeView;
+                _nativeNeutral.Style = "popup";
+            }
+            else
+            {
+                _nativeNeutral = null;
+            }
+
+            _control.SetPartContent("button2", _nativeNeutral, true);
+        }
+
+        void UpdateNegative()
+        {
+            _nativeNegative?.Hide();
+
+            if (Negative != null)
+            {
+                _nativeNegative = (ElmSharp.Button)Platform.GetOrCreateRenderer(Negative).NativeView;
+                _nativeNegative.Style = "popup";
+            }
+            else
+            {
+                _nativeNegative = null;
+            }
+
+            _control.SetPartContent("button3", _nativeNegative, true);
+        }
+
+        void UpdateTitle()
+        {
+            _control.SetPartText("title,text", Title);
+        }
+
+        void UpdateSubtitle()
+        {
+            _control.SetPartText("subtitle,text", Subtitle);
+        }
+
+        void UpdateHorizontalOption()
+        {
+            switch (HorizontalOption.Alignment)
+            {
+                case LayoutAlignment.Start:
+                    _control.AlignmentX = 0.0;
+                    break;
+
+                case LayoutAlignment.Center:
+                    _control.AlignmentX = 0.5;
+                    break;
+
+                case LayoutAlignment.End:
+                    _control.AlignmentX = 1.0;
+                    break;
+
+                case LayoutAlignment.Fill:
+                    _control.AlignmentX = -1;
+                    break;
+            }
+            if (HorizontalOption.Alignment == LayoutAlignment.Fill || _previousHorizontalOption.Alignment == LayoutAlignment.Fill)
+            {
+                UpdateContent();
+                _previousHorizontalOption = HorizontalOption;
+            }
+        }
+
+        void UpdateVerticalOption()
+        {
+            switch (VerticalOption.Alignment)
+            {
+                case LayoutAlignment.Start:
+                    _control.AlignmentY = 0.0;
+                    break;
+
+                case LayoutAlignment.Center:
+                    _control.AlignmentY = 0.5;
+                    break;
+
+                case LayoutAlignment.End:
+                    _control.AlignmentY = 1.0;
+                    break;
+
+                case LayoutAlignment.Fill:
+                    _control.AlignmentY = -1;
+                    break;
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/TVMediaHub/TVMediaHub.Tizen/Extensions/DropdownList.cs b/TVMediaHub/TVMediaHub.Tizen/Extensions/DropdownList.cs
new file mode 100644 (file)
index 0000000..a48fc6f
--- /dev/null
@@ -0,0 +1,201 @@
+using System;
+using System.Collections;
+using System.Collections.ObjectModel;
+using System.Collections.Specialized;
+using System.ComponentModel;
+using System.Linq;
+using Xamarin.Forms;
+
+namespace Tizen.Xamarin.Forms.Extension
+{
+    /// <summary>
+    /// The DropdownList is a button like widget that pops up a list of items(automatically choosing the direction to display) that have a string label.
+    /// It is a convenient widget to avoid the need to do all the piecing together yourself.
+    /// It is intended for a small number of items in the DropdownList menu (no more than 8), though, it is capable of many more.
+    /// </summary>
+    /// <example>
+    /// <code>
+    /// var dropdownList = new DropdownList();
+    /// dropdownList.ItemSelected += (s, e) =>
+    /// {
+    ///     Debug.WriteLine("e.Selected Item: " + e.SelectedItem);
+    /// };
+    ///
+    /// ObservableCollection<string> ItemsList = new ObservableCollection<string>()
+    /// {
+    ///     "item5", "item6", "item7", "item8"
+    /// };
+    ///
+    /// dropdownList.ItemsSource = ItemsList;
+    /// </code>
+    /// </example>
+    public class DropdownList : View
+    {
+        /// <summary>
+        /// BindableProperty. Identifies the SelectedItem bindable property.
+        /// </summary>
+        public static readonly BindableProperty SelectedItemProperty = BindableProperty.Create("SelectedItem", typeof(object), typeof(DropdownList), default(object), BindingMode.TwoWay, propertyChanged: OnSelectedItemChanged);
+
+        [Obsolete("IsHorizontalProperty is obsolete as of version 2.3.5-r256. The orientation is always vertical.")]
+        public static readonly BindableProperty IsHorizontalProperty = BindableProperty.Create("IsHorizontal", typeof(bool), typeof(DropdownList), default(bool));
+
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public static readonly BindablePropertyKey IsExpandedPropertyKey = BindableProperty.CreateReadOnly("IsExpanded", typeof(bool), typeof(DropdownList), default(bool), propertyChanged: OnIsExpandedPropertyChanged);
+
+        /// <summary>
+        /// BindableProperty. Identifies the IsExpanded bindable property.
+        /// </summary>
+        public static readonly BindableProperty IsExpandedProperty = IsExpandedPropertyKey.BindableProperty;
+
+        /// <summary>
+        /// BindableProperty. Identifies the ItemsSource bindable property.
+        /// </summary>
+        public static readonly BindableProperty ItemsSourceProperty = BindableProperty.Create("ItemsSource", typeof(IEnumerable), typeof(DropdownList), default(IEnumerable), propertyChanged: OnItemsSourceChanged);
+
+        /// <summary>
+        /// BindableProperty. Identifies the DisplayMemberPath bindable property.
+        /// </summary>
+        public static readonly BindableProperty DisplayMemberPathProperty = BindableProperty.Create("DisplayMemberPath", typeof(string), typeof(DropdownList), default(string));
+
+        /// <summary>
+        /// Occurs when an item in the DropdownList is selected.
+        /// SelectedItemChangedEventArgs will also have the selected item.
+        /// </summary>
+        public event EventHandler<SelectedItemChangedEventArgs> ItemSelected;
+
+        /// <summary>
+        /// Occurs when the DropdownList is expanded.
+        /// </summary>
+        public event EventHandler Expanded;
+
+        /// <summary>
+        /// Occurs when the DropdownList is collapsed.
+        /// </summary>
+        public event EventHandler Collapsed;
+
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public event EventHandler<ExpandRequestArgs> ExpandChangeRequested;
+
+        /// <summary>
+        /// Raised when one or more items of ItemsSource is changed.
+        /// </summary>
+        public event NotifyCollectionChangedEventHandler CollectionChanged;
+
+        /// <summary>
+        /// Gets or sets the currently selected item from the DropdownList.ItemsSource.
+        /// </summary>
+        public object SelectedItem
+        {
+            get { return (object)GetValue(SelectedItemProperty); }
+            set { SetValue(SelectedItemProperty, value); }
+        }
+
+        [Obsolete("IsHorizontal is obsolete as of version 2.3.5-r256. The orientation is always vertical.")]
+        public bool IsHorizontal
+        {
+            get { return (bool)GetValue(IsHorizontalProperty); }
+            set { SetValue(IsHorizontalProperty, value); }
+        }
+
+        /// <summary>
+        /// Gets the flag of whether the dropdownlist is expanded.
+        /// </summary>
+        public bool IsExpanded
+        {
+            get { return (bool)GetValue(IsExpandedProperty); }
+        }
+
+        /// <summary>
+        /// Gets or sets the source of items to template and display.
+        /// </summary>
+        public IEnumerable ItemsSource
+        {
+            get { return (IEnumerable)GetValue(ItemsSourceProperty); }
+            set { SetValue(ItemsSourceProperty, value); }
+        }
+
+        /// <summary>
+        /// Gets or sets a member path to a value on the ItemsSource.
+        /// </summary>
+        public string DisplayMemberPath
+        {
+            get { return (string)GetValue(DisplayMemberPathProperty); }
+            set { SetValue(DisplayMemberPathProperty, value); }
+        }
+
+        /// <summary>
+        /// Expands the DropdownList popup from code.
+        /// </summary>
+        public void Expand()
+        {
+            if (!IsExpanded)
+            {
+                var arg = new ExpandRequestArgs { IsExpand = true };
+                ExpandChangeRequested?.Invoke(this, arg);
+            }
+        }
+
+        /// <summary>
+        /// Collapses the DropdownList popup from code.
+        /// </summary>
+        public void Collapse()
+        {
+            if (IsExpanded)
+            {
+                var arg = new ExpandRequestArgs();
+                ExpandChangeRequested?.Invoke(this, arg);
+            }
+        }
+
+        static void OnItemsSourceChanged(BindableObject bindable, object oldValue, object newValue)
+        {
+            (bindable as DropdownList).OnItemsSourceChanged(oldValue as INotifyCollectionChanged, newValue as INotifyCollectionChanged);
+        }
+
+        void OnItemsSourceChanged(INotifyCollectionChanged oldValue, INotifyCollectionChanged newValue)
+        {
+            if (oldValue != null)
+            {
+                oldValue.CollectionChanged -= OnNotifyCollectionChanged;
+            }
+            if (newValue != null)
+            {
+                newValue.CollectionChanged += OnNotifyCollectionChanged;
+            }
+        }
+
+        void OnNotifyCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
+        {
+            CollectionChanged?.Invoke(this, e);
+        }
+
+        static void OnSelectedItemChanged(BindableObject bindable, object oldValue, object newValue)
+        {
+            var dropdownList = (DropdownList)bindable;
+            dropdownList.ItemSelected?.Invoke(bindable, new SelectedItemChangedEventArgs(newValue));
+        }
+
+        static void OnIsExpandedPropertyChanged(BindableObject bindable, object oldvalue, object newvalue)
+        {
+            var element = bindable as DropdownList;
+            if (element != null)
+            {
+                var isExpanded = (bool)newvalue;
+                if (isExpanded)
+                {
+                    element.Expanded?.Invoke(element, EventArgs.Empty);
+                }
+                else
+                {
+                    element.Collapsed?.Invoke(element, EventArgs.Empty);
+                }
+            }
+        }
+
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public class ExpandRequestArgs : EventArgs
+        {
+            public bool IsExpand { get; set; }
+        }
+    }
+}
diff --git a/TVMediaHub/TVMediaHub.Tizen/Extensions/DropdownListRenderer.cs b/TVMediaHub/TVMediaHub.Tizen/Extensions/DropdownListRenderer.cs
new file mode 100644 (file)
index 0000000..2d249fb
--- /dev/null
@@ -0,0 +1,259 @@
+using ElmSharp;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Collections.Specialized;
+using System.ComponentModel;
+using Tizen.Xamarin.Forms.Extension;
+using Tizen.Xamarin.Forms.Extension.Renderer;
+using Xamarin.Forms;
+using Xamarin.Forms.Platform.Tizen;
+using TForms = Xamarin.Forms.Platform.Tizen.Forms;
+
+[assembly: ExportRenderer(typeof(DropdownList), typeof(DropdownListRenderer))]
+
+namespace Tizen.Xamarin.Forms.Extension.Renderer
+{
+    public class DropdownListRenderer : ViewRenderer<DropdownList, Hoversel>
+    {
+        class DropdownItem : BindableObject
+        {
+            public static readonly BindableProperty TextProperty = BindableProperty.Create("Text", typeof(string), typeof(DropdownItem), default(string));
+
+            public string Text
+            {
+                get { return (string)GetValue(TextProperty); }
+                set { SetValue(TextProperty, value); }
+            }
+
+            public HoverselItem HoverselItem { get; set; }
+            public object Data { get; set; }
+        }
+
+        Dictionary<HoverselItem, DropdownItem> _items = new Dictionary<HoverselItem, DropdownItem>();
+        Dictionary<object, DropdownItem> _objectMap = new Dictionary<object, DropdownItem>();
+        object _selectedItem = null;
+
+        protected override void OnElementChanged(ElementChangedEventArgs<DropdownList> e)
+        {
+            if (Control == null)
+            {
+                var dropdownList = new Hoversel((TForms.Context as FormsApplication).MainWindow);
+                SetNativeControl(dropdownList);
+                Control.ItemSelected += OnHoverselItemSelected;
+                Control.Dismissed += OnDismissed;
+                Control.Expanded += OnExpanded;
+            }
+            if (e.OldElement != null)
+            {
+                e.OldElement.ExpandChangeRequested -= OnExpandChangeRequested;
+                e.OldElement.CollectionChanged -= OnCollectionChanged;
+                ClearItems();
+            }
+            if (e.NewElement != null)
+            {
+                e.NewElement.ExpandChangeRequested += OnExpandChangeRequested;
+                e.NewElement.CollectionChanged += OnCollectionChanged;
+                Control.HoverParent = (TForms.Context as FormsApplication).MainWindow;
+
+                AddItems(e.NewElement.ItemsSource);
+                UpdateIsExpanded();
+                UpdateSelectedItem();
+            }
+            base.OnElementChanged(e);
+        }
+
+        void OnHoverselItemSelected(object sender, HoverselItemEventArgs e)
+        {
+            Element.SelectedItem = GetItem(e.Item)?.Data;
+        }
+
+        void OnExpanded(object sender, EventArgs e)
+        {
+            Element?.SetValue(DropdownList.IsExpandedPropertyKey, true);
+        }
+
+        void OnDismissed(object sender, EventArgs e)
+        {
+            Element?.SetValue(DropdownList.IsExpandedPropertyKey, false);
+        }
+
+        protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
+        {
+            if (e.PropertyName == DropdownList.IsExpandedProperty.PropertyName)
+            {
+                UpdateIsExpanded();
+            }
+            else if (e.PropertyName == DropdownList.DisplayMemberPathProperty.PropertyName)
+            {
+                UpdateDisplayMemberPath();
+            }
+            else if (e.PropertyName == DropdownList.SelectedItemProperty.PropertyName)
+            {
+                UpdateSelectedItem();
+            }
+            else if (e.PropertyName == DropdownList.ItemsSourceProperty.PropertyName)
+            {
+                UpdateItemSource();
+            }
+            base.OnElementPropertyChanged(sender, e);
+        }
+
+        void UpdateItemSource()
+        {
+            ClearItems();
+            AddItems(Element.ItemsSource);
+        }
+
+        void UpdateIsExpanded()
+        {
+            if (Element.IsExpanded)
+            {
+                Control.HoverBegin();
+            }
+            else
+            {
+                Control.HoverEnd();
+            }
+        }
+
+        void UpdateSelectedItem()
+        {
+            _selectedItem = Element.SelectedItem;
+            DropdownItem item = GetItem(Element.SelectedItem);
+            if (item == null)
+            {
+                Element.SelectedItem = null;
+                Control.Text = string.Empty;
+            }
+            else
+            {
+                Control.Text = item.Text;
+            }
+        }
+
+        void OnExpandChangeRequested(object sender, DropdownList.ExpandRequestArgs e)
+        {
+            if (e.IsExpand)
+            {
+                Control.HoverBegin();
+            }
+            else
+            {
+                Control.HoverEnd();
+            }
+        }
+
+        void OnCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
+        {
+            if (e.NewItems != null)
+            {
+                AddItems(e.NewItems);
+            }
+            if (e.OldItems != null)
+            {
+                RemoveItems(e.OldItems);
+            }
+            if (e.Action == NotifyCollectionChangedAction.Reset)
+            {
+                ClearItems();
+            }
+        }
+
+        void AddItems(IEnumerable items)
+        {
+            foreach (object item in items)
+            {
+                DropdownItem dropdownItem = new DropdownItem()
+                {
+                    Data = item,
+                };
+                if (!string.IsNullOrEmpty(Element.DisplayMemberPath))
+                {
+                    dropdownItem.SetBinding(DropdownItem.TextProperty, new Binding(Element.DisplayMemberPath));
+                }
+                else
+                {
+                    dropdownItem.Text = item.ToString();
+                }
+                dropdownItem.BindingContext = item;
+                dropdownItem.HoverselItem = Control.AddItem(dropdownItem.Text);
+                dropdownItem.PropertyChanged += OnDropdownItemTextChanged;
+                _items[dropdownItem.HoverselItem] = dropdownItem;
+                _objectMap[item] = dropdownItem;
+            }
+        }
+
+        void OnDropdownItemTextChanged(object sender, PropertyChangedEventArgs e)
+        {
+            if (e.PropertyName == DropdownItem.TextProperty.PropertyName)
+            {
+                DropdownItem item = (DropdownItem)sender;
+                item.HoverselItem?.SetPartText("default", item.Text);
+                if (_selectedItem == item.Data)
+                {
+                    Control.Text = item.Text;
+                }
+            }
+        }
+
+        void UpdateDisplayMemberPath()
+        {
+            foreach (var item in _items.Values)
+            {
+                if (!string.IsNullOrEmpty(Element.DisplayMemberPath))
+                {
+                    item.SetBinding(DropdownItem.TextProperty, new Binding(Element.DisplayMemberPath));
+                }
+                else
+                {
+                    item.Text = item.Data.ToString();
+                }
+            }
+            UpdateSelectedItem();
+        }
+
+        void RemoveItems(IEnumerable items)
+        {
+            foreach (object item in items)
+            {
+                var dropdownItem = GetItem(item);
+                if (Element.SelectedItem == dropdownItem.Data)
+                {
+                    Element.SelectedItem = null;
+                }
+                dropdownItem.PropertyChanged -= OnDropdownItemTextChanged;
+                _items.Remove(dropdownItem.HoverselItem);
+                _objectMap.Remove(item);
+                dropdownItem.HoverselItem.Delete();
+            }
+        }
+
+        void ClearItems()
+        {
+            Control.Clear();
+            _items.Clear();
+            _objectMap.Clear();
+
+            Element.SelectedItem = null;
+        }
+
+        DropdownItem GetItem(object obj)
+        {
+            if (obj == null)
+                return null;
+            DropdownItem item = null;
+            _objectMap.TryGetValue(obj, out item);
+            return item;
+        }
+
+        DropdownItem GetItem(HoverselItem selItem)
+        {
+            if (selItem == null)
+                return null;
+            DropdownItem item = null;
+            _items.TryGetValue(selItem, out item);
+            return item;
+        }
+    }
+}
\ No newline at end of file
diff --git a/TVMediaHub/TVMediaHub.Tizen/Extensions/IContextPopup.cs b/TVMediaHub/TVMediaHub.Tizen/Extensions/IContextPopup.cs
new file mode 100644 (file)
index 0000000..c6bbf75
--- /dev/null
@@ -0,0 +1,31 @@
+using System;
+using System.Collections.Generic;
+using Xamarin.Forms;
+
+namespace Tizen.Xamarin.Forms.Extension
+{
+    internal interface IContextPopup
+    {
+        event EventHandler ItemSelected;
+
+        event EventHandler Dismissed;
+
+        ContextPopupItem SelectedItem { get; set; }
+
+        ContextPopupDirectionPriorities DirectionPriorities { get; set; }
+
+        bool IsAutoHidingEnabled { get; set; }
+
+        void AddItems(IEnumerable<ContextPopupItem> items);
+
+        void RemoveItems(IEnumerable<ContextPopupItem> items);
+
+        void ClearItems();
+
+        void Show(View anchor, int xAnchorOffset, int yAnchorOffset);
+
+        void Dismiss();
+
+        bool TryGetContextPopupDirection(out ContextPopupDirection direction);
+    }
+}
\ No newline at end of file
diff --git a/TVMediaHub/TVMediaHub.Tizen/Extensions/IDialog.cs b/TVMediaHub/TVMediaHub.Tizen/Extensions/IDialog.cs
new file mode 100644 (file)
index 0000000..2a71657
--- /dev/null
@@ -0,0 +1,36 @@
+using System;
+using Xamarin.Forms;
+
+namespace Tizen.Xamarin.Forms.Extension
+{
+    internal interface IDialog
+    {
+        event EventHandler Hidden;
+
+        event EventHandler OutsideClicked;
+
+        event EventHandler Shown;
+
+        event EventHandler BackButtonPressed;
+
+        View Content { get; set; }
+
+        Button Positive { get; set; }
+
+        Button Neutral { get; set; }
+
+        Button Negative { get; set; }
+
+        string Title { get; set; }
+
+        string Subtitle { get; set; }
+
+        LayoutOptions HorizontalOption { get; set; }
+
+        LayoutOptions VerticalOption { get; set; }
+
+        void Show();
+
+        void Hide();
+    }
+}
\ No newline at end of file
diff --git a/TVMediaHub/TVMediaHub.Tizen/Extensions/IMediaViewController.cs b/TVMediaHub/TVMediaHub.Tizen/Extensions/IMediaViewController.cs
new file mode 100644 (file)
index 0000000..1e90ac5
--- /dev/null
@@ -0,0 +1,16 @@
+using Xamarin.Forms;
+
+namespace Tizen.Xamarin.Forms.Extension
+{
+       /// <summary>
+       /// This interface is for internal use by the platform renderers.
+       /// </summary>
+       public interface IMediaViewController : IViewController
+       {
+               /// <summary>
+               /// For internal use by the platform renderers.
+               /// </summary>
+               void SendNativeViewCreated();
+               
+       }
+}
diff --git a/TVMediaHub/TVMediaHub.Tizen/Extensions/IToast.cs b/TVMediaHub/TVMediaHub.Tizen/Extensions/IToast.cs
new file mode 100644 (file)
index 0000000..cd9473b
--- /dev/null
@@ -0,0 +1,28 @@
+namespace Tizen.Xamarin.Forms.Extension
+{
+    /// <summary>
+    /// This interface, which defines the ability to display simple text, is used internally.
+    /// </summary>
+    internal interface IToast
+    {
+        /// <summary>
+        /// Gets or sets the duration.
+        /// </summary>
+        int Duration { get; set; }
+
+        /// <summary>
+        /// Gets or sets the text.
+        /// </summary>
+        string Text { get; set; }
+
+        /// <summary>
+        /// Shows the view for the specified duration.
+        /// </summary>
+        void Show();
+
+        /// <summary>
+        /// Dismisses the specified view.
+        /// </summary>
+        void Dismiss();
+    }
+}
\ No newline at end of file
diff --git a/TVMediaHub/TVMediaHub.Tizen/Extensions/MediaView.cs b/TVMediaHub/TVMediaHub.Tizen/Extensions/MediaView.cs
new file mode 100644 (file)
index 0000000..fc41558
--- /dev/null
@@ -0,0 +1,44 @@
+using System;
+using Xamarin.Forms;
+
+namespace Tizen.Xamarin.Forms.Extension
+{
+    /// <summary>
+    /// The MediaView class provides a view of media that is being played by the player or the camera.
+    /// </summary>
+    /// <example>
+    /// <code>
+    /// MediaView mediaView = new MediaView();
+    /// Tizen.Multimedia.Camera camera = new Tizen.Multimedia.Camera(Tizen.Multimedia.CameraDevice.Rear);
+    /// camera.SetDisplay(Tizen.Multimedia.CameraDisplayType.Evas, (Tizen.Multimedia.MediaView) mediaView.NativeView);
+    /// </code>
+    /// </example>
+    public class MediaView : View, IMediaViewController
+    {
+        internal static readonly BindablePropertyKey NativeViewPropertyKey = BindableProperty.CreateReadOnly("NativeView", typeof(object), typeof(MediaView), default(object));
+
+        /// <summary>
+        /// BindableProperty. Identifies the NativeView bindable property.
+        /// </summary>
+        public static readonly BindableProperty NativeViewProperty = NativeViewPropertyKey.BindableProperty;
+
+        /// <summary>
+        /// NativeView allows application developers to display the video output on screen.
+        /// </summary>
+        public object NativeView
+        {
+            get { return GetValue(NativeViewProperty); }
+            internal set { SetValue(NativeViewPropertyKey, value); }
+        }
+
+        /// <summary>
+        /// Occurs when the NativeView is created.
+        /// </summary>
+        public event EventHandler NativeViewCreated;
+
+        void IMediaViewController.SendNativeViewCreated()
+        {
+            NativeViewCreated?.Invoke(this, EventArgs.Empty);
+        }
+    }
+}
\ No newline at end of file
diff --git a/TVMediaHub/TVMediaHub.Tizen/Extensions/TextSlideEffect.cs b/TVMediaHub/TVMediaHub.Tizen/Extensions/TextSlideEffect.cs
new file mode 100644 (file)
index 0000000..5d21e92
--- /dev/null
@@ -0,0 +1,161 @@
+using System.Linq;
+using Xamarin.Forms;
+
+namespace Tizen.Xamarin.Forms.Extension
+{
+    /// <summary>
+    /// Enumeration for the slide mode of a text.
+    /// </summary>
+    public enum TextSlideMode
+    {
+        /// <summary>
+        /// The text appears on the left of the view and slides to the right to show the overflow. When all of the text has been shown, the position is reset.
+        /// </summary>
+        Short = 1,
+
+        /// <summary>
+        /// The entire text appears from the right of the screen and slides until it disappears to the left of the screen(reappearing on the right again).
+        /// </summary>
+        Long,
+
+        /// <summary>
+        /// The text appears on the left of the view and slides to the right to show the overflow. When all of the text has been shown, the animation reverses, moving the text to the left.
+        /// </summary>
+        Bounce
+    }
+
+    /// <summary>
+    /// An effect that can make text sliding.
+    /// </summary>
+    /// <example>
+    /// <code>
+    /// new Label
+    /// {
+    ///     Text = "Test Slide Text",
+    ///     LineBreakMode =
+    /// }
+    /// </code>
+    /// </example>
+    public static class TextSlideEffect
+    {
+        /// <summary>
+        /// BindableProperty. Implements the attached property that represents the style about how the text slides.
+        /// </summary>
+        public static readonly BindableProperty ModeProperty = BindableProperty.CreateAttached("Mode", typeof(TextSlideMode), typeof(TextSlideEffect), TextSlideMode.Long);
+
+        /// <summary>
+        /// BindableProperty. Implements the attached property that represents the slide mode.
+        /// </summary>
+        public static readonly BindableProperty IsAlwaysOnProperty = BindableProperty.CreateAttached("IsAlwaysOn", typeof(bool), typeof(TextSlideEffect), false);
+
+        /// <summary>
+        /// BindableProperty. Implements the attached property that represents the slide duration.
+        /// </summary>
+        public static readonly BindableProperty DurationProperty = BindableProperty.CreateAttached("Duration", typeof(int), typeof(TextSlideEffect), 3000);
+
+        /// <summary>
+        /// BindableProperty. Implements the attached property that represents the style when the text slides.
+        /// </summary>
+        public static readonly BindableProperty IsTextSlidingProperty = BindableProperty.CreateAttached("IsTextSliding", typeof(bool), typeof(TextSlideEffect), false, propertyChanged: OnIsTextSlidingChanged);
+
+        /// <summary>
+        /// Gets the TextSlideMode of the bindable element.
+        /// </summary>
+        public static TextSlideMode GetMode(BindableObject view)
+        {
+            return (TextSlideMode)view.GetValue(ModeProperty);
+        }
+
+        /// <summary>
+        /// Sets the TextSlideMode of the bindable element.
+        /// </summary>
+        public static void SetMode(BindableObject view, TextSlideMode value)
+        {
+            view.SetValue(ModeProperty, value);
+        }
+
+        /// <summary>
+        /// Gets the IsAlwaysOn of the bindable element.
+        /// </summary>
+        public static bool GetIsAlwaysOn(BindableObject view)
+        {
+            return (bool)view.GetValue(IsAlwaysOnProperty);
+        }
+
+        /// <summary>
+        /// Sets the IsAlwaysOn of the bindable element.
+        /// </summary>
+        /// <remarks>
+        /// When the value is set to false, text will only slide when the length of the text is longer a View.
+        /// Otherwise, the text will always slide.
+        /// </remarks>
+        public static void SetIsAlwaysOn(BindableObject view, bool value)
+        {
+            view.SetValue(IsAlwaysOnProperty, value);
+        }
+
+        /// <summary>
+        /// Gets the Duration of the bindable element.
+        /// </summary>
+        public static int GetDuration(BindableObject view)
+        {
+            return (int)view.GetValue(DurationProperty);
+        }
+
+        /// <summary>
+        /// Sets the Duration(in milliseconds) of the bindable element.
+        /// </summary>
+        public static void SetDuration(BindableObject view, int value)
+        {
+            view.SetValue(DurationProperty, value);
+        }
+
+        /// <summary>
+        /// Gets the sliding status of the bindable element.
+        /// </summary>
+        public static bool GetIsTextSliding(BindableObject view)
+        {
+            return (bool)view.GetValue(IsTextSlidingProperty);
+        }
+
+        /// <summary>
+        /// Sets the sliding status of the bindable element.
+        /// </summary>
+        /// <remarks>
+        /// This method only works properly when the text is not wrapped.
+        /// For example, if the Label.LineBreakMode is set to any options other than NoWrap,
+        /// the Text will not be sliding.
+        /// </remarks>
+        /// <seealso cref="SetIsAlwaysOn(BindableObject, bool)"/>
+        public static void SetIsTextSliding(BindableObject view, bool value)
+        {
+            view.SetValue(IsTextSlidingProperty, value);
+        }
+
+        static void OnIsTextSlidingChanged(BindableObject bindable, object oldValue, object newValue)
+        {
+            var label = bindable as Label;
+            if (label == null)
+                return;
+
+            bool isEnable = (bool)newValue;
+            if (isEnable)
+            {
+                label.Effects.Add(new LabelSlideEffect());
+            }
+            else
+            {
+                var toRemove = label.Effects.FirstOrDefault(e => e is LabelSlideEffect);
+                if (toRemove != null)
+                    label.Effects.Remove(toRemove);
+            }
+        }
+
+        class LabelSlideEffect : RoutingEffect
+        {
+            public LabelSlideEffect() : base("Tizen.LabelSlideEffect")
+            {
+            }
+        }
+    }
+}
diff --git a/TVMediaHub/TVMediaHub.Tizen/Extensions/TizenExtension.cs b/TVMediaHub/TVMediaHub.Tizen/Extensions/TizenExtension.cs
new file mode 100644 (file)
index 0000000..abee9c8
--- /dev/null
@@ -0,0 +1,15 @@
+namespace Tizen.Xamarin.Forms.Extension.Renderer
+{
+    public static class TizenFormsExtension
+    {
+        public static bool IsInitialized { get; private set; }
+
+        public static void Init()
+        {
+            if (IsInitialized)
+                return;
+
+            IsInitialized = true;
+        }
+    }
+}
diff --git a/TVMediaHub/TVMediaHub.Tizen/Extensions/Toast.cs b/TVMediaHub/TVMediaHub.Tizen/Extensions/Toast.cs
new file mode 100644 (file)
index 0000000..1d578ff
--- /dev/null
@@ -0,0 +1,27 @@
+namespace Tizen.Xamarin.Forms.Extension
+{
+    /// <summary>
+    /// The Toast class provides properties that show simple types of messages.
+    /// </summary>
+    /// <example>
+    /// <code>
+    /// Toast.DisplayText("Hello World", 3000)
+    /// </code>
+    /// </example>
+    public sealed class Toast
+    {
+        /// <summary>
+        /// It shows the simplest form of the message.
+        /// </summary>
+        /// <param name="text">The body text of the toast.</param>
+        /// <param name="duration">How long to display the text in milliseconds.</param>
+        public static void DisplayText(string text, int duration = 3000)
+        {
+            new ToastProxy
+            {
+                Text = text,
+                Duration = duration,
+            }.Show();
+        }
+    }
+}
\ No newline at end of file
diff --git a/TVMediaHub/TVMediaHub.Tizen/Extensions/ToastImplementation.cs b/TVMediaHub/TVMediaHub.Tizen/Extensions/ToastImplementation.cs
new file mode 100644 (file)
index 0000000..e94f568
--- /dev/null
@@ -0,0 +1,108 @@
+using System;
+using Tizen.Xamarin.Forms.Extension.Renderer;
+using Xamarin.Forms;
+using Xamarin.Forms.Platform.Tizen;\r
+using EPopup = ElmSharp.Popup;
+using TForms = Xamarin.Forms.Platform.Tizen.Forms;
+
+[assembly: Dependency(typeof(ToastImplementation))]
+
+namespace Tizen.Xamarin.Forms.Extension.Renderer
+{
+    internal class ToastImplementation : IToast, IDisposable
+    {
+        static readonly string DefaultStyle = "toast";
+        static readonly string DefaultPart = "default";
+
+        int _duration = 3000;
+        string _text = string.Empty;
+        EPopup _control = null;
+        bool _isDisposed = false;
+
+        public int Duration
+        {
+            get
+            {
+                return _duration;
+            }
+            set
+            {
+                _duration = value;
+                UpdateDuration();
+            }
+        }
+
+        public string Text
+        {
+            get
+            {
+                return _text;
+            }
+            set
+            {
+                _text = value;
+                UpdateText();
+            }
+        }
+
+        public ToastImplementation()
+        {
+            _control = new EPopup((TForms.Context as FormsApplication).MainWindow)
+            {
+                Style = DefaultStyle,
+                AllowEvents = true,
+            };
+
+            UpdateText();
+            UpdateDuration();
+        }
+
+        ~ToastImplementation()
+        {
+            Dispose(false);
+        }
+
+        public void Show()
+        {
+            _control.Show();
+        }
+
+        public void Dismiss()
+        {
+            _control.Dismiss();
+        }
+
+        public void Dispose()
+        {
+            Dispose(true);
+            GC.SuppressFinalize(this);
+        }
+
+        protected virtual void Dispose(bool isDisposing)
+        {
+            if (_isDisposed)
+                return;
+
+            if (isDisposing)
+            {
+                if (_control != null)
+                {
+                    _control.Unrealize();
+                    _control = null;
+                }
+            }
+
+            _isDisposed = true;
+        }
+
+        void UpdateDuration()
+        {
+            _control.Timeout = Duration / 1000.0;
+        }
+
+        void UpdateText()
+        {
+            _control.SetPartText(DefaultPart, Text);
+        }
+    }
+}
\ No newline at end of file
diff --git a/TVMediaHub/TVMediaHub.Tizen/Extensions/ToastProxy.cs b/TVMediaHub/TVMediaHub.Tizen/Extensions/ToastProxy.cs
new file mode 100644 (file)
index 0000000..c88ec3e
--- /dev/null
@@ -0,0 +1,57 @@
+using System;
+using Xamarin.Forms;
+
+namespace Tizen.Xamarin.Forms.Extension
+{
+    /// <summary>
+    /// This class is for the internal use by toast.
+    /// </summary>
+    internal class ToastProxy : IToast
+    {
+        IToast _toastProxy = null;
+
+        public ToastProxy()
+        {
+            _toastProxy = DependencyService.Get<IToast>(DependencyFetchTarget.NewInstance);
+
+            if (_toastProxy == null)
+                throw new Exception("RealObject is null, Internal instance via DependecyService was not created.");
+        }
+
+        public int Duration
+        {
+            get
+            {
+                return _toastProxy.Duration;
+            }
+
+            set
+            {
+                _toastProxy.Duration = value;
+            }
+        }
+
+        public string Text
+        {
+            get
+            {
+                return _toastProxy.Text;
+            }
+
+            set
+            {
+                _toastProxy.Text = value;
+            }
+        }
+
+        public void Dismiss()
+        {
+            _toastProxy.Dismiss();
+        }
+
+        public void Show()
+        {
+            _toastProxy.Show();
+        }
+    }
+}
\ No newline at end of file
index 328323c..194b735 100755 (executable)
@@ -147,10 +147,10 @@ namespace TVMediaHub.Tizen.Models
 
                     break;
                 case SortOption.Genre:
-                    if (lastGroupItem == null || lastGroupItem.Title != mediaInformationEx.MediaContentInformation.Category)
+                    if (lastGroupItem == null || lastGroupItem.Title != mediaInformationEx.MediaContentInformation.Title)
                     {
                         newGroupFlag = true;
-                        newTitle = mediaInformationEx.MediaContentInformation.Category;
+                        newTitle = mediaInformationEx.MediaContentInformation.Title;
                     }
 
                     break;
index 1ba6ac4..1e0decc 100755 (executable)
@@ -1,39 +1,18 @@
-<Project>
-  <Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
-  <!-- Setting Tizen Extension Path -->
-  <PropertyGroup Label="Globals">
-    <TizenProjectExtensionsPath>$(MSBuildExtensionsPath)\Tizen\VisualStudio\</TizenProjectExtensionsPath>
-    <Platforms>AnyCPU;x86</Platforms>
-  </PropertyGroup>
-
-  <!-- Import Tizen property in Tizen.NET SDK -->
-  <Import Project="$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.props" Condition="Exists('$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.props')" />
-
-  <!-- Property Group for .NET Core Project -->
+<Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
     <OutputType>Exe</OutputType>
-    <TargetFramework>tizen40</TargetFramework>
+    <TargetFramework>tizen60</TargetFramework>
+    <LangVersion>8.0</LangVersion>
+    <TargetFrameworkIdentifier>Tizen</TargetFrameworkIdentifier>
   </PropertyGroup>
 
   <!-- Property Group for Tizen Project -->
-  <PropertyGroup>
-    <TizenCreateTpkOnBuild>true</TizenCreateTpkOnBuild>
-    <PackageTargetFallback>$(PackageTargetFallback);portable-net45+wp80+win81+wpa81</PackageTargetFallback>
-  </PropertyGroup>
-
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
     <DebugType>portable</DebugType>
   </PropertyGroup>
-
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x86'">
-    <DebugType>portable</DebugType>
-  </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <DebugType>None</DebugType>
   </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x86'">
-    <DebugType>None</DebugType>
-  </PropertyGroup>
 
   <PropertyGroup>
     <NoWarn>$(NoWarn);NU1605</NoWarn>
 
   <!-- Include Nuget Package for Tizen Project building -->
   <ItemGroup>
-    <PackageReference Include="Tizen.NET" Version="4.0.0-preview1-00224" />
-    <PackageReference Include="Tizen.NET.Sdk" Version="1.0.0-pre2" />
-    <PackageReference Include="Tizen.Xamarin.Forms.Extension" Version="2.4.0-v00013" />
-    <PackageReference Include="Xamarin.Forms" Version="2.4.0-r266-006" />
-    <PackageReference Include="Xamarin.Forms.Platform.Tizen" Version="2.4.0-r269-002" />
+    <PackageReference Include="Tizen.NET" Version="5.0.0.14392" />
+    <!--<PackageReference Include="Tizen.Xamarin.Forms.Extension" Version="2.4.0-v00013" />-->
+    <PackageReference Include="Xamarin.Forms" Version="3.1.0.583944" />
+    <PackageReference Include="Tizen.NET.Sdk" Version="1.1.2" />
   </ItemGroup>
 
   <Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
index db76955..27942c0 100644 (file)
@@ -15,7 +15,6 @@
 */
 
 using System;
-using Tizen.Xamarin.Forms.Extension;
 using TVMediaHub.Tizen.Utils;
 using TVMediaHub.Tizen.ViewModels;
 using Xamarin.Forms;
index f79de00..1ab7351 100755 (executable)
Binary files a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/TVMediaHub.Tizen.tpk and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/TVMediaHub.Tizen.tpk differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/org.tizen.xamediahub-1.0.0.tpi b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/org.tizen.xamediahub-1.0.0.tpi
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/TVMediaHub.Tizen.deps.json b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/TVMediaHub.Tizen.deps.json
new file mode 100644 (file)
index 0000000..9392a3b
--- /dev/null
@@ -0,0 +1,96 @@
+{\r
+  "runtimeTarget": {\r
+    "name": "Tizen,Version=v6.0/",\r
+    "signature": ""\r
+  },\r
+  "compilationOptions": {},\r
+  "targets": {\r
+    "Tizen,Version=v6.0": {},\r
+    "Tizen,Version=v6.0/": {\r
+      "TVMediaHub.Tizen/1.0.0": {\r
+        "dependencies": {\r
+          "Tizen.NET": "5.0.0.14418",\r
+          "Tizen.NET.Sdk": "1.1.2",\r
+          "Xamarin.Forms": "3.1.0.583944"\r
+        },\r
+        "runtime": {\r
+          "TVMediaHub.Tizen.dll": {}\r
+        }\r
+      },\r
+      "Microsoft.NETCore.Platforms/2.0.0": {},\r
+      "Tizen.NET/5.0.0.14418": {\r
+        "dependencies": {\r
+          "Microsoft.NETCore.Platforms": "2.0.0",\r
+          "Tizen.NET.API5": "5.0.0.14418"\r
+        }\r
+      },\r
+      "Tizen.NET.API5/5.0.0.14418": {},\r
+      "Tizen.NET.Sdk/1.1.2": {},\r
+      "Xamarin.Forms/3.1.0.583944": {\r
+        "dependencies": {\r
+          "Tizen.NET": "5.0.0.14418"\r
+        },\r
+        "runtime": {\r
+          "lib/tizen40/Xamarin.Forms.Core.dll": {\r
+            "assemblyVersion": "2.0.0.0",\r
+            "fileVersion": "2.0.0.0"\r
+          },\r
+          "lib/tizen40/Xamarin.Forms.Platform.Tizen.dll": {\r
+            "assemblyVersion": "2.0.0.0",\r
+            "fileVersion": "2.0.0.0"\r
+          },\r
+          "lib/tizen40/Xamarin.Forms.Platform.dll": {\r
+            "assemblyVersion": "1.0.0.0",\r
+            "fileVersion": "1.0.0.0"\r
+          },\r
+          "lib/tizen40/Xamarin.Forms.Xaml.dll": {\r
+            "assemblyVersion": "2.0.0.0",\r
+            "fileVersion": "2.0.0.0"\r
+          }\r
+        }\r
+      }\r
+    }\r
+  },\r
+  "libraries": {\r
+    "TVMediaHub.Tizen/1.0.0": {\r
+      "type": "project",\r
+      "serviceable": false,\r
+      "sha512": ""\r
+    },\r
+    "Microsoft.NETCore.Platforms/2.0.0": {\r
+      "type": "package",\r
+      "serviceable": true,\r
+      "sha512": "sha512-VdLJOCXhZaEMY7Hm2GKiULmn7IEPFE4XC5LPSfBVCUIA8YLZVh846gtfBJalsPQF2PlzdD7ecX7DZEulJ402ZQ==",\r
+      "path": "microsoft.netcore.platforms/2.0.0",\r
+      "hashPath": "microsoft.netcore.platforms.2.0.0.nupkg.sha512"\r
+    },\r
+    "Tizen.NET/5.0.0.14418": {\r
+      "type": "package",\r
+      "serviceable": true,\r
+      "sha512": "sha512-0fYb8J6rWY9Nksbu8YWAdy7lN6zauNvwgc+8ddlWra75jZER6T25sw2nGPBHecW/CL8HRoRCu9cQxaFZXobJsQ==",\r
+      "path": "tizen.net/5.0.0.14418",\r
+      "hashPath": "tizen.net.5.0.0.14418.nupkg.sha512"\r
+    },\r
+    "Tizen.NET.API5/5.0.0.14418": {\r
+      "type": "package",\r
+      "serviceable": true,\r
+      "sha512": "sha512-SGBtIKquBtlgkWLNzPYfhSvITgqaaO9pFFo7rzprnm3G7E+uRNdJbpOvk0IYRAKspjNANnIyASVSNLDtULB0HQ==",\r
+      "path": "tizen.net.api5/5.0.0.14418",\r
+      "hashPath": "tizen.net.api5.5.0.0.14418.nupkg.sha512"\r
+    },\r
+    "Tizen.NET.Sdk/1.1.2": {\r
+      "type": "package",\r
+      "serviceable": true,\r
+      "sha512": "sha512-XuSWtWDdTo2Id+0Tmsk9FG0Tfwfzy++iOfk04rwhy3RLW1VYVIaNuT52Xyz2//WAK88R7jHqozmr0MhiVzJTLw==",\r
+      "path": "tizen.net.sdk/1.1.2",\r
+      "hashPath": "tizen.net.sdk.1.1.2.nupkg.sha512"\r
+    },\r
+    "Xamarin.Forms/3.1.0.583944": {\r
+      "type": "package",\r
+      "serviceable": true,\r
+      "sha512": "sha512-m2/JGyWjhkpkGhbII4koxfC0UcLORMfxTFfj4UA7ybLzs+MUp5IAsQo7pb6dtNxcI00GVjQcejTzSnVPz9Tsng==",\r
+      "path": "xamarin.forms/3.1.0.583944",\r
+      "hashPath": "xamarin.forms.3.1.0.583944.nupkg.sha512"\r
+    }\r
+  }\r
+}
\ No newline at end of file
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/org.tizen.xamediahub-1.0.0.tpi b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/org.tizen.xamediahub-1.0.0.tpi
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/org.tizen.xamediahub-1.0.0.tpk b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/org.tizen.xamediahub-1.0.0.tpk
new file mode 100644 (file)
index 0000000..1ab7351
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/org.tizen.xamediahub-1.0.0.tpk differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/TVMediaHub.Tizen.deps.json b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/TVMediaHub.Tizen.deps.json
new file mode 100644 (file)
index 0000000..9392a3b
--- /dev/null
@@ -0,0 +1,96 @@
+{\r
+  "runtimeTarget": {\r
+    "name": "Tizen,Version=v6.0/",\r
+    "signature": ""\r
+  },\r
+  "compilationOptions": {},\r
+  "targets": {\r
+    "Tizen,Version=v6.0": {},\r
+    "Tizen,Version=v6.0/": {\r
+      "TVMediaHub.Tizen/1.0.0": {\r
+        "dependencies": {\r
+          "Tizen.NET": "5.0.0.14418",\r
+          "Tizen.NET.Sdk": "1.1.2",\r
+          "Xamarin.Forms": "3.1.0.583944"\r
+        },\r
+        "runtime": {\r
+          "TVMediaHub.Tizen.dll": {}\r
+        }\r
+      },\r
+      "Microsoft.NETCore.Platforms/2.0.0": {},\r
+      "Tizen.NET/5.0.0.14418": {\r
+        "dependencies": {\r
+          "Microsoft.NETCore.Platforms": "2.0.0",\r
+          "Tizen.NET.API5": "5.0.0.14418"\r
+        }\r
+      },\r
+      "Tizen.NET.API5/5.0.0.14418": {},\r
+      "Tizen.NET.Sdk/1.1.2": {},\r
+      "Xamarin.Forms/3.1.0.583944": {\r
+        "dependencies": {\r
+          "Tizen.NET": "5.0.0.14418"\r
+        },\r
+        "runtime": {\r
+          "lib/tizen40/Xamarin.Forms.Core.dll": {\r
+            "assemblyVersion": "2.0.0.0",\r
+            "fileVersion": "2.0.0.0"\r
+          },\r
+          "lib/tizen40/Xamarin.Forms.Platform.Tizen.dll": {\r
+            "assemblyVersion": "2.0.0.0",\r
+            "fileVersion": "2.0.0.0"\r
+          },\r
+          "lib/tizen40/Xamarin.Forms.Platform.dll": {\r
+            "assemblyVersion": "1.0.0.0",\r
+            "fileVersion": "1.0.0.0"\r
+          },\r
+          "lib/tizen40/Xamarin.Forms.Xaml.dll": {\r
+            "assemblyVersion": "2.0.0.0",\r
+            "fileVersion": "2.0.0.0"\r
+          }\r
+        }\r
+      }\r
+    }\r
+  },\r
+  "libraries": {\r
+    "TVMediaHub.Tizen/1.0.0": {\r
+      "type": "project",\r
+      "serviceable": false,\r
+      "sha512": ""\r
+    },\r
+    "Microsoft.NETCore.Platforms/2.0.0": {\r
+      "type": "package",\r
+      "serviceable": true,\r
+      "sha512": "sha512-VdLJOCXhZaEMY7Hm2GKiULmn7IEPFE4XC5LPSfBVCUIA8YLZVh846gtfBJalsPQF2PlzdD7ecX7DZEulJ402ZQ==",\r
+      "path": "microsoft.netcore.platforms/2.0.0",\r
+      "hashPath": "microsoft.netcore.platforms.2.0.0.nupkg.sha512"\r
+    },\r
+    "Tizen.NET/5.0.0.14418": {\r
+      "type": "package",\r
+      "serviceable": true,\r
+      "sha512": "sha512-0fYb8J6rWY9Nksbu8YWAdy7lN6zauNvwgc+8ddlWra75jZER6T25sw2nGPBHecW/CL8HRoRCu9cQxaFZXobJsQ==",\r
+      "path": "tizen.net/5.0.0.14418",\r
+      "hashPath": "tizen.net.5.0.0.14418.nupkg.sha512"\r
+    },\r
+    "Tizen.NET.API5/5.0.0.14418": {\r
+      "type": "package",\r
+      "serviceable": true,\r
+      "sha512": "sha512-SGBtIKquBtlgkWLNzPYfhSvITgqaaO9pFFo7rzprnm3G7E+uRNdJbpOvk0IYRAKspjNANnIyASVSNLDtULB0HQ==",\r
+      "path": "tizen.net.api5/5.0.0.14418",\r
+      "hashPath": "tizen.net.api5.5.0.0.14418.nupkg.sha512"\r
+    },\r
+    "Tizen.NET.Sdk/1.1.2": {\r
+      "type": "package",\r
+      "serviceable": true,\r
+      "sha512": "sha512-XuSWtWDdTo2Id+0Tmsk9FG0Tfwfzy++iOfk04rwhy3RLW1VYVIaNuT52Xyz2//WAK88R7jHqozmr0MhiVzJTLw==",\r
+      "path": "tizen.net.sdk/1.1.2",\r
+      "hashPath": "tizen.net.sdk.1.1.2.nupkg.sha512"\r
+    },\r
+    "Xamarin.Forms/3.1.0.583944": {\r
+      "type": "package",\r
+      "serviceable": true,\r
+      "sha512": "sha512-m2/JGyWjhkpkGhbII4koxfC0UcLORMfxTFfj4UA7ybLzs+MUp5IAsQo7pb6dtNxcI00GVjQcejTzSnVPz9Tsng==",\r
+      "path": "xamarin.forms/3.1.0.583944",\r
+      "hashPath": "xamarin.forms.3.1.0.583944.nupkg.sha512"\r
+    }\r
+  }\r
+}
\ No newline at end of file
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/author-signature.xml b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/author-signature.xml
new file mode 100644 (file)
index 0000000..4711e8f
--- /dev/null
@@ -0,0 +1,422 @@
+<Signature Id="AuthorSignature" xmlns="http://www.w3.org/2000/09/xmldsig#">
+  <SignedInfo>
+    <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
+    <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha512" />
+    <Reference URI="TVMediaHub.Tizen.deps.json">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>U0MEU5PUjq0KxrTzsATqAX7fhJ3XZ2kUA7DfRtoXfbUQRF/XWCIekX6VUFZ+s8kTklEAY92iCluPz8OvT9zT/w==</DigestValue>
+    </Reference>
+    <Reference URI="tizen-manifest.xml">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>uC/YUIaQYAtGROnQbkxExW0Z5nouavxJvAnmd+FuQpHhRuTMCrnyE5zpq1C1+3sSrI7+wsIcWXZqP6AYfOsWsQ==</DigestValue>
+    </Reference>
+    <Reference URI="shared%2Fres%2Fxamediahub.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>kxx5WtbHnhUiryYud3HU8WZn5e0LuLrdJgxZDa11shnpw4xJmEnKZkkoggwFsSmWzrPoABHsI2u7rKEOMETbNw==</DigestValue>
+    </Reference>
+    <Reference URI="res%2FThumbnail1.jpg">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>S4TUCZ15PdxMZ67S9DIeL26VxjSPzFjd6h/aIlHLzSbOaeXMlEtphhldywjyMJv/DiIgyTjzWJmBj5V2s9wFKg==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_zoom_minimap_shadow.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>hZnxKaqta1cQKC+24bFbd8WzCYw0CkPyv6MA4JmKU6qMnrJ2q2NgiIZ7n23QwrDO5GKiiNqbRKRUN/9Do9AZPQ==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_zoom_minimap_mask.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>FJ2N0RHSW45M+/2Z1yA2zbyBUlQuIj3HK80tT4pMonaAM54GP+kPC9U+5NUxWHIuGTzjbpj/Za46PbijkdR0Qw==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_zoom_minimap_line.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>//FDMLX27ym2TDaBYH0eM8B8cWYKuvld8lTmZH9gAx5wAtkCtmwTCZs2Nvav/X0W+JhFahTqLCUL12V5pZoGkw==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_zoom_minimap_dimmed.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>FV429vzVQtV+od5f6QuSXeKuzVJYyrtQsad0pdaOm9F8vfcgSaQkd2pe10PPP73qTTie9vUyiwYKE3SMI3Uw5w==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_zoom_minimap_black_area.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>xHyreLkfh0ou9SbkYTUJ8f41ZEwpR72O8IfBObL5mOgr9Y3sBz0macjgS2lnO62mKRGJkfS/DDAkCZTgCuHHqg==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_viewer_progress.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>lGBEpskEmAMRtTPj+Equkqaj8o4Wc2+IUyD0o2BcxRsUFvzLlqgFVI/gduSkgt1ctPYZx8MMaXHxI3jq27XGGg==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_thumbnail_gradient_normal.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>/ycFfin860AKXP6QghrvIgG0zjdKcrO8DU2Vrc4hpyniJkOUBtkN+6X4acblIiHg87LOAEASc4UZbF+T7UO2SA==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_thumbnail_focused_shadow.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>5rO+Cthk+nniUo9/2fOjbVSk54zHIRYWhFy5JrPyvbSmhr9cyAijP55A7l0zvs25Rl8wqEElqL7sR9BB0fa8mg==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_stroke2.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>QsQfYB8yScICm9Unwl4VOJk12yDnwdvwB23zHxH5ElPFjvVPn3XgKEAYbKEWLeGyiPmUsNwU+pDSPS/bl42pkA==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_stroke.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>AcXdHE4ArG3QJy0Fu1bXmriKCi8hWMOYXAUgZ5O8ypcApACO8OcKpaG6Z40s+Blq0HtysXSAiy8sOyc98FoJoQ==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_photozoom_gradient.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>rjuT/jWQLtPD5fiKnWx0qvYubqLvHy6teEGRLE1AmIjUUEphIf3m9zLp+FcxCnPlWqPtbw9qahGvRRG899dPsA==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_music_nocover_focused.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>+Ffb9F5erZTSMdg8wjq1YwGWBcd5OwdgWBjqe3/5DG1VyG1ETXONd4uctkvAVhHZOMcNxNEnsIBkdiLM32aq6w==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_music_nocover.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>7ecadiou10HWw8uEn7MD43+c1njq0P+4Wjvr1zZ9LDGxfJbnEF3tfCmdktLkszfcnn+7W3s7ap+/HSznihSN5A==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_music_list_normal.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>rTkjpEhnhxJxPY2Hui2hku27ksDes06Xmxigz619H6hHLCYeboI5Qt4DEpDUR0tBmPGkuOgGE7KznuTbfvUnuw==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_music_list_focused_shadow.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>xmKt52d0QjOtzZuV5G2R3kt/HYjAsDxuXsXmcg914OXtqO5NkY6N0RLcO7S/IjPGh6dl+BEp/mz37aCOUnlI2A==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_music_list_focused.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>g7Ow+6LCScxGAlcYaAK9ftC9S62s0sqPXumb44OcurndFomedpis6dy9vvnmpStuUjDpN+Cn1fI/yWXzojtH3A==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_movie_unavailable.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>qihoYkK6iDGkmrfixcaHxA5+mssr/0ScLgVgBQjaijQgokiZBRqaBruk5phegBrZZF8N/nBMB0wh5IzGp7APIA==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_media_no_contents.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>BpYFiZ/N3AC1liBqPABLiFSOHfgRHcMkPXESI+wlgYt/sPRbCu0IRMY9tPEaQFCLuA5gbXib+laBPfWSJlrq2w==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_gradient_topbottom.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>7QHjVywJ34G0KldJYcB+kePcyA7LUaB3nN7FlEUH4T0tbEBr9g+B4w187hv5+ThEKBfX0/fFZ/nRUCQtu8kfig==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_gallery_unavailable_video.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>WMdOH9Gw/FR3r0D9dRUZJcK8yTyJPMh3+DIu+4x/lK+k2Oo8Jl3ys5/g83bnvafs97MHyzajKdp0Y2l1zErLhw==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_gallery_unavailable_photo.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>o4C56Aas4Z/0hS+99SLI7wAOCEt8ZKwvaWYlQXDA2ffP7kTaM2iFGvAjs+b83lInTjJDqUARxvToNfAypT3U5Q==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_dimmed_opacity85.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>yJ+6REFOYK+lPC+cBH5PlTaOlgEvfvD4NmUR/eDkh3Xx1/fFIuNcm1S0ASjrIPSQszxGfIOuruJudAEktC3X2A==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_dimmed_opacity75.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>GgLb0oauwnrwpufXq8XwNKbeVKqyjCOjdueTMLHwPhb746xhGepTxjjNVacoIfa5M8R2PaYieG7GIxKoOH2OSg==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_dimmed.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>chVVlxeakhgJNKvecsiF/nyyGT/oh9VcGY288FB17ArRq2b80A8bcPh0r/LQlqUPqHMUVX4U2UjV0MfjD3yCew==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_black_area.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>LxTpvdtz8TJ33FUMwCbdcgABFBFFsu9sTx3cCDCDivzh76AJKqdItYidAyFtYLm7HhEe9ckuhaooptxmYMs9ag==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_bg_dimmed_95.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>DU3VwYusuthCHIKyOQGwv5gt0EcCLdpm5hQzYP49AgVZRRJ2NJAVBbz/DHeKyjDIzzqB1UmC3h2MbGg71Aqdew==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_zoom_arrow_up_pressed.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>1JlHgVpGkeMy+7/57xLbxGeJ+pF8wXqglarc0hrccyKSTnpSJ2m5k/fmvXOMtVsoMq8G2HONlGCXBl5gWRz6gQ==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_zoom_arrow_up_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>S6UVsATiCOuZmFakZeVOpDq+DuuEq460dRAU2trfOIBIHhmmnlv7f2Y0pilacYdtBgUPvnXFhziu4bY7d9AAxw==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_zoom_arrow_right_pressed.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>fJshCtTSyPjfV7vvCOqI7fIyAdHGqmOOnfJI1VFCRMEy4gL9mFPNxsCwSAQsSjouW8nkZKiVLZldxm7kgTtVmQ==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_zoom_arrow_right_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>AcrkFohuepOalJydSsXymk/1VMy+64MbBNgBjhIp7PNnTrF3qW3w3BI50NiTg1FL76Ge2Mfk2c3RjTKIi7W+NQ==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_zoom_arrow_left_pressed.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>S5Do1AocPEroSiHt0QpxEKerZQHS2i9fHIMwlPahHIlzuLaZWW4KE0YGdj8YuUgFINyqyxKSdx555q2jeJwKnw==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_zoom_arrow_left_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>wh2BYinQahMNGVUQMarIWb7MJ6T9qmgbN6Ohw/JZ1AghE6CGIg2LOaarWUZbSsL5gdPHu5+OXuzqfgRwRAC8HA==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_zoom_arrow_down_pressed.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>RNhvY9eAimsnA73WPY3C2q+TkCbhnWZ0Do73k8vMGdeOcRp5JCnfmcdS148sp7oJfByopUmlSdcIg6VqkKJyxw==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_zoom_arrow_down_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>QilKUZRHfo3noXuhMdCoIlqjHDXlbD/OtEII1w/wwxdEaB2SP6Mjvkv4TwMgcULu8G9sj060ma73zQw+mJ0HSA==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_play_speed_info.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>MwOZXZ5DSVJnSg3voE588k7GSpVa8u6J43P/d+M940w5SBv42i3HXbNqEzP+bzZCrrNVB6Pf2rDXgNJ0iD4j1w==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_apps_additional_back.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>afb2xDymRLXXDUfEym9Osavm7Q2IPyicMikIJYjDUjEaBoIAL9Liym8E/b74co8mQCbYDgnZlg78Xhe5J6Z2yw==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_zoom_pressed.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>FauJnDtq239AcJx2LfciNlmCIaWFWn2VEeIxUHWVf1UVQS1VnysUANKV1eg6GzSgIXldF8OO1GLh4Dq2leO+NA==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_zoom_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>qlhAO0luYiuMspG5FMZ/NU7ACOYF82ME0+19o9bEEjnguJPNARx20d0EE2OV5SAl2Gz3W4m57ITwkktcEDA2aQ==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_video_pressed.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>baYF/bkqAOqoi443N2K9MaOcfiXj3swZNlIz4eNFETsmj/C89Mnz+m9LynOpSZ5ZTfBxPLX81sEtFZFyjmeejw==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_video_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>JPqsGCIzy0jxAmjULW14ROuUxnwn2ncswteaXHWk3mzzrRv/XaMm44r5i+r0f/K235NzHvQQH5Z12PCmMhnDeQ==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_rotate_pressed.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>ZqMmPQ9gEusoQ/ZQ0UIOrD1/36/xARdKwnNl6S5D0Y5IU5jSKEQg8ZQGli6vE/O9iVAkdjwfjSyslWFh6R5+PQ==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_rotate_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>IxcSs8nWfoXm/p/QQ5oDrFeX8n8mN3FDxH6MqwL3rEZBXNCr6iI6PswRcA+/txLSMhQCkgB1wwkjV1S0r6ylsA==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_right_pressed.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>mesw1USM7myj2mDIyrgj0LbTAqWTosih8EVhWPH+Syeq6Uk8WcNRcNnEpeqDSg1ScuRT5nsRzm+JvZZWp0hjTQ==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_right_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>QKki0dhMx0MB16/Watx2MDCk1ajcuT8GqIedO+tqwpccPM8qppXdMmqzew2VvUS8EZvqqGxzFEnppvpYgmTOGg==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_rewind_pressed.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>6XSF7EzY1HFUmDOmDQ0kXdpoPXekZSTtEoomO8nORpMnqvqUmUDmtCf7elkWpiEsSYaiqQ1eEjrAIzis2kOqKQ==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_rewind_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>aguwXNnkbRoRSkqFqHeCAbDiShs/X7X1rxxINtlT3Cm95fqaGq3K4tUci/RK1V0QAKXZUMiNosisKUHdogTWFw==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_previous_pressed.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>c0TtoY44L2uSpFgqE1O6XvVH2Szzb+ctDQY6A6w2Xdso4JhhotzrHv9HTATVKJzI6v8s5dcW9XRwoeLui5hx0Q==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_previous_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>7OlDnW097Jr+y1L68eKk1mZUZgSMbXbbA8LAz8y6grfgWqkqoQgNHkk0Jio4hFkh5EhkLcLqV9WBcAALfuXG2w==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_play_pressed.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>MoiwqytE5pdqdN1OBGdcEoVGIKHa70SMxLekU6gyQDa72Dqbxz+tQfdWQbIREHKLzhYqXZ830QsBXRgixNUbbQ==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_play_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>AHw/K8RsyMRPnZtmlecGZb4uj3oyx/bCEM8CPlU9Uhc89H8JimMf7u4+P2BAQWX4vnvbAvLqrXbRrKwHAAJqMw==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_pause_pressed.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>aWGghhAy91nDbadzCUfaVvN6ZClYjhnY4gtitaKFaYCPpqanDc4P9Uu8YdVnI0Fq8xKWzyB1fXlxj55url5mzw==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_pause_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>pa2WlbWyI1IfhNpSx5t1ALsrl2t1lREq0IQZuyjWlUmEoSMwQzAt9iuh0+fMo2kSxrcyK3adXAGCs2oqpp/gow==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_option_pressed.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>RvX08rWgIfij+CJWyeoWFdoWhE8CSADt/BkEO+YCSdPXO/NO0YOeKbiTf4NXqPZeC1hDwzhTmkOR6R+klbg5NA==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_option_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>tJ2YidE/YhuTRr9xBJDfFtuuRF29nSgH+drAQu/ta9FTCs/EhKnEyvQSE4VGfY/WW3SrJ+9kaPehRQC4gZXHcg==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_next_pressed.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>Wnmek8bvT8A3ktNgWHfDHez6NHIzc4kDr3T6S0MEB4ZNQrrHA/chuinT8o3JDs/2NQ/LmjoZ0MSxg5xBLNKsTA==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_next_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>SzrKBQ8DcReQ48eqCs1kYsC69zmvMipmzkrIvp5/9y4hAlbB8hKdq5jibPbrVdR+ufO7xhlJqLbqnj0HA6174Q==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_left_pressed.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>CQHEcqdzkLy3ysc/nfPp1uinjotqlpr8z5ycNv8SbSiWTd2UoDfa/+F6nBVIAC1dWjmSAic+TYjqGCgai92jnw==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_left_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>pvuei2GUGfA0KRBtX+UBIGKQHsIobotuBbJy7DINBcnE7vWlklBg+Jk0uqrSG8yA2x0D1ZMAkBzGVRpUVAUqjQ==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_forward_pressed.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>orSmEyhbvB30xePHWpGj7u34tIPmsdg0Y9rvZNAofJTPeC9biOrefZyg2JMhJI4006ph1t2AXKqvE89YzLeT2Q==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_forward_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>l6MxOZh9ddHc4oR5YGDumOR9mPd8Xii1JOWZlO3e78B9tx9AnoZshRuZbrjgvzSDNUZIKKXX8T422krTR1t5tg==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_focused.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>Kx0MhLza7cMOKlEsQOsHrqVyJ/vIBeyX/RGBAnXFaCNZxqCxrmGondVF6EoXe3YIMTrRRybftwBPjf/5lVCd8A==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_music_info_play.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>d5yNzcoU3gDfXkQ/Aq5tKfrjmo5jsf8iiA64QHw5UhFBfwqp9GhamZXIwus6K1skDVrLBNY4vM59QxzKMeYM8A==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_music_info_pause.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>cutZf66TWjTZtbst0VGaIk2XdJqcGWBn2ZiYZ6gthTynWxVdt5q1jojFDGE207of1UlEGZ3OmpcGAXak/6/6SQ==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_media_unselect_check_wh.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>zmMtatJJ4NyK9XIm8F/Lr+Y0D5rdGrcDMcx6irLx5sqirKWKU6gGqi6yFVpNTamT/rbkBd5W7rO9FIy+Z488zQ==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_media_unselect_check_bk.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>/8G0xghcNPzidiV4L90t0X/lc28ijfZv64UgaxoZaD9YQBv12aQ3EQwEEsbOVEmE10GDON/4lS+4rf6kqUtCdg==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_media_select_pre.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>eXeT3ecvdUhM1/hXteindMFcEsbsCitMFmeZFT9SO9C/zcTxhizMGpMXR6cc5fMsz5L0/2lDxkCJZdpt/RGG+g==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_media_select_nor.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>M2JUit4O4PHsEsdkBlhDV2Zp2JFi4NXVBPbQ/fPCUxTh+6EJojY8hRBPGKd/a/scnLFAH/ffCJDh+mSgzK+CLA==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_media_select_for.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>bxVZHHskQ45XFtc9QfVj9YEojbEWo7AXUrlpOz+7ceEulIy/jgtxkM2BVoTLAcw/szO9+asMOVx1cTVuyJLO7g==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_media_select_check_wh.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>C9ZJbrpkanzTtxmqTCP7bLW3VO+rKbtjeja5K0CxzCGEEuZz9/Y8NJQ+p6WGsiWq8GUbWEDkQEUuSlKyZzDnqw==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_media_select_check_bk.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>7IdXJqmey8uGoGfHVfYJ9XPpQAfnSeblDZ64xEj+1s4Wd0ETXMyVeiavVlP707RIRT6qpSMlq3dJdrWnAALu3A==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_media_option_menu_pre.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>HHkN/GvaCxJrc5hN1//pFrwmkao4v3iVdPVLhKNpPTUcvn3fMfqPgpRk3t6wosh7Y15Mmm29Kqf1TMijJdacOg==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_media_option_menu_nor.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>ZQrI5VpeJADx7FrPECYWet8IVqbjlrJguVYKaKB0FfTgJqplQR5zLfObe1fMTBx3JS1+WPKEIRmOI4RU9d6Qpg==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_media_option_menu_foc.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>vGwcTV58GY30PZhBzbcIVXNhKPEc4QqWQCu+txOGPfcuFnuEucl5ZdFTRucxKJEJVuSonAUpFmWb3w7ijTvHdw==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_media_option_menu_dis.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>NDV28JzE9px6shEJtMpcAQltSBUUytLMQR5ewKQytEwfinFyRvnc5JSAOkwt3xUzVI77Is3YyvUj0wwkFble7A==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_media_option_list_check_pre.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>5jsl5WLf2G9RTSNYZQVyl1To4AdcF0uge4E2g2mIEAHQELWk83fgr4H7P/AGS3WdVf+BNyL/ppAAx+hn+Y5L6Q==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_media_option_list_check_nor.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>m29Cev7uJzYAt6+pdiKyvByW99fGw9HMToQZ2T8fqfhMN+2Ws4R7IX4Tst6Va3Hf53snlEZRhHvyCsRge+9vPw==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_media_option_list_check_foc.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>UuGjPJ4LzHbpoJzn+A0yK68xIgA6YbPAJoljMWEHpt76K7LZOsD+VK1XHlViTuHj/usT+ka5B4tFRUHFoOX9Bg==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_media_option_list_check_dis.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>Xg0htOiKtc27YMRoa6g+nJ0F5ME7spC3O0RwrMUwDYPZMeugofcTbIx0ca/QeXYxF2laDlxlbjzoeHzCW3GFRg==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_list_thumbnail_play.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>wkyLxi1xnmiCosEFBXriJlzOF1anmlngryTWPMVKE+Zj3Ri4d4PfN/nUczQYTOmkZsuRaOBUVzJcolgD5Eb4XA==</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FXamarin.Forms.Xaml.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>cpqKDnVZS3KsRf1EYbtHBopE7GNRba0zS+pBl9IPI/aXWNexT+Opqjps5L0zHYzxPYeQ//8ZTQUCS4FRFWHPSA==</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FXamarin.Forms.Platform.Tizen.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>Mkuk6OE4d2Ixb514iFGMGHdZATikDuKQLmFpaDad2N9UP0z2TyQZHHyetsCezgw/2DudjA3m/gARf/iG8+a+Xg==</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FXamarin.Forms.Platform.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>LaeAT+53GPo09F10YfI1Yn5Xe+1cYwDCOVS+YPWIsyJ0/AZC8+liT+5AwnTxlCMx5Yb/oD+UAa2R2pDcULVgSQ==</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FXamarin.Forms.Core.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>jsED0lu7awNCBzeeTZpxCFvmTu1ywtzaBkVLxbuN0HahI9NaEPkfCn0O99NXCPIsWtEESlKxSWYqO/tgpspf/w==</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTVMediaHub.Tizen.pdb">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>YVXasL75doN/+N0lqI/0rypO6PvhPfPLdR89ZuLncF7SOhkO9HSdZlXtaQ0fszNqc+CWTam7r/1kH3BqnO6W/A==</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTVMediaHub.Tizen.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>JeWnxQNgTHeAnssfilIIzbJS7kh2LZW9GG8Ajd4g3NXii+4C9blu8nvCwyerl9l07PloXbdha+NWbgPW/fDzMQ==</DigestValue>
+    </Reference>
+    <Reference URI="#prop">
+      <Transforms>
+        <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
+      </Transforms>
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>uZyQ+87kE4t6qxSN4VEx1Pox4WvKeg6zcxAkkLd37pva/nBlGrszr+isy/IJw4IgKnaB7eSEPU4PbccqlynCkQ==</DigestValue>
+    </Reference>
+  </SignedInfo>
+  <SignatureValue>
+gO/pwoVawkGqaLQmXkEVCc3YcGUcxDE0tvazuc9WGLlxAy56qSr8fOpYFzi2GsVsh/DfkFvqSHX+
+aJDhqJ7JNXjfNz52BQXnMyv3N1oIVFDiUsGU5nBha9dhCuwLi0WZS/eFq81MbWBKj227E8SfRgcp
+no/rhDcn0mUAjwAzb/8=
+</SignatureValue>
+  <KeyInfo>
+    <X509Data>
+      <X509Certificate>
+MIICkDCCAXigAwIBAgIGAXJfNTwhMA0GCSqGSIb3DQEBDQUAMFYxGjAYBgNVBAoMEVRpemVuIEFz
+c29jaWF0aW9uMRowGAYDVQQLDBFUaXplbiBBc3NvY2lhdGlvbjEcMBoGA1UEAwwTVGl6ZW4gRGV2
+ZWxvcGVycyBDQTAeFw0yMDA1MjkwNjUzNDNaFw0yNzAxMDEwMDAwMDBaMAwxCjAIBgNVBAMMAXMw
+gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAId63MPD7k7QU87KcnZyNTJWYGvoaxFMLwptdd2i
+Hwyp9NjNDV0Wi3caGLniVY1y4YfCF1FDDYFDhzMliTMUnN1QXzaX3asWv+o6tf47+dKNpNvlpqrb
+P3zUOJTxqGZ6Dt24rDj0GzccHONOYyrdrKXeCLXntdOLaP6RNMFO4Li1AgMBAAGjMjAwMAwGA1Ud
+EwEB/wQCMAAwCwYDVR0PBAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMDMA0GCSqGSIb3DQEBDQUA
+A4IBAQCuEMAidDUzQkKibHaT0ur0mfZGQoswWPoYw+0v24FGcFQxn9pt18H9eTzSxdkReSCjod10
+FYqDGwhoRnV7ryCJe1OgzbL3f850fGrStYNA68+a92k9EV8MZcUy9S+SopwEZBvTJENq/p4mtQce
+qqgs0K7N5ktoFuebu4X4CsAFNpGShn8nzV3ljO/MfjdCgKxlOQP+a4doLqn6egQ5L0FFLlosQTRP
+tC//Ds4rQFQHNVLkO+1Zpfwq8S4B4iI6L9C1cLG6ZBmxhVDLe/cMgAWDu2dFdxROHB5qICsvFjcF
+JPmejIOuMoG4DKOund5Qibra59dt8C8KZ1yJR2Efdd7G
+</X509Certificate>
+      <X509Certificate>
+MIIDOTCCAiGgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMRowGAYDVQQKDBFUaXplbiBBc3NvY2lh
+dGlvbjEaMBgGA1UECwwRVGl6ZW4gQXNzb2NpYXRpb24xHjAcBgNVBAMMFVRpemVuIERldmVsb3Bl
+cnMgUm9vdDAeFw0xMjAxMDEwMDAwMDBaFw0yNzAxMDEwMDAwMDBaMFYxGjAYBgNVBAoMEVRpemVu
+IEFzc29jaWF0aW9uMRowGAYDVQQLDBFUaXplbiBBc3NvY2lhdGlvbjEcMBoGA1UEAwwTVGl6ZW4g
+RGV2ZWxvcGVycyBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANVGhRGmMIUyBA7o
+PCz8Sxut6z6HNkF4oDIuzuKaMzRYPeWodwe9O0gmqAkToQHfwg2giRhE5GoPld0fq+OYMMwSasCu
+g8dwODx1eDeSYVuOLWRxpAmbTXOsSFi6VoWeyaPEm18JBHvZBsU5YQtgZ6Kp7MqzvQg3pXOxtajj
+vyHxiatJl+xXrHgcXC1wgyG3buty7u/Fi2mvKXJ0PRJcCjjK81dqe/Vr20sRUCrbk02zbm5ggFt/
+jIEhV8wbFRQpliobc7J4dSTKhFfrqGM8rdd54LYhD7gSI1CFSe16pUXfcVR7FhJztRaiGLnCrwBE
+dyTZ248+D4L/qR/D0axb3jcCAwEAAaMQMA4wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOC
+AQEAnOXXQ/1O/QTDHyrmQDtFziqPY3xWlJBqJtEqXiT7Y+Ljpe66e+Ee/OjQMlZe8gu21/8cKklH
+95RxjopMWCVedXDUbWdvS2+CdyvVW/quT2E0tjqIzXDekUTYwwhlPWlGxvfj3VsxqSFq3p8Brl04
+1Gx5RKAGyKVsMfTLhbbwSWwApuBUxYfcNpKwLWGPXkysu+HctY03OKv4/xKBnVWiN8ex/Sgesi0M
++OBAOMdZMPK32uJBTeKFx1xZgTLIhk45V0hPOomPjZloiv0LSS11eyd451ufjW0iHRE7WlpR6EvI
+W6TFyZgMpQq+kg4hWl2SBTf3s2VI8Ygz7gj8TMlClg==
+</X509Certificate>
+    </X509Data>
+  </KeyInfo>
+  <Object Id="prop">
+    <SignatureProperties xmlns:dsp="http://www.w3.org/2009/xmldsig-properties">
+      <SignatureProperty Id="profile" Target="#AuthorSignature">
+        <dsp:Profile URI="http://www.w3.org/ns/widgets-digsig#profile" />
+      </SignatureProperty>
+      <SignatureProperty Id="role" Target="#AuthorSignature">
+        <dsp:Role URI="http://www.w3.org/ns/widgets-digsig#role-author" />
+      </SignatureProperty>
+      <SignatureProperty Id="identifier" Target="#AuthorSignature">
+        <dsp:Identifier />
+      </SignatureProperty>
+    </SignatureProperties>
+  </Object>
+</Signature>
\ No newline at end of file
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/Thumbnail1.jpg b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/Thumbnail1.jpg
new file mode 100644 (file)
index 0000000..8f2ceb7
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/Thumbnail1.jpg differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_list_thumbnail_play.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_list_thumbnail_play.png
new file mode 100644 (file)
index 0000000..15603b2
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_list_thumbnail_play.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_option_list_check_dis.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_option_list_check_dis.png
new file mode 100644 (file)
index 0000000..bff7685
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_option_list_check_dis.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_option_list_check_foc.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_option_list_check_foc.png
new file mode 100644 (file)
index 0000000..1f710f9
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_option_list_check_foc.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_option_list_check_nor.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_option_list_check_nor.png
new file mode 100644 (file)
index 0000000..039b309
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_option_list_check_nor.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_option_list_check_pre.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_option_list_check_pre.png
new file mode 100644 (file)
index 0000000..911af2f
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_option_list_check_pre.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_option_menu_dis.9.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_option_menu_dis.9.png
new file mode 100644 (file)
index 0000000..d1037aa
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_option_menu_dis.9.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_option_menu_foc.9.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_option_menu_foc.9.png
new file mode 100644 (file)
index 0000000..1162014
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_option_menu_foc.9.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_option_menu_nor.9.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_option_menu_nor.9.png
new file mode 100644 (file)
index 0000000..b43ff0d
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_option_menu_nor.9.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_option_menu_pre.9.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_option_menu_pre.9.png
new file mode 100644 (file)
index 0000000..4bd5e13
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_option_menu_pre.9.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_select_check_bk.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_select_check_bk.png
new file mode 100644 (file)
index 0000000..6381077
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_select_check_bk.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_select_check_wh.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_select_check_wh.png
new file mode 100644 (file)
index 0000000..9b6f793
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_select_check_wh.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_select_for.9.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_select_for.9.png
new file mode 100644 (file)
index 0000000..04f871f
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_select_for.9.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_select_nor.9.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_select_nor.9.png
new file mode 100644 (file)
index 0000000..09cdcb2
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_select_nor.9.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_select_pre.9.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_select_pre.9.png
new file mode 100644 (file)
index 0000000..9681b56
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_select_pre.9.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_unselect_check_bk.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_unselect_check_bk.png
new file mode 100644 (file)
index 0000000..ed2d69f
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_unselect_check_bk.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_unselect_check_wh.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_unselect_check_wh.png
new file mode 100644 (file)
index 0000000..ee4bf10
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_media_unselect_check_wh.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_music_info_pause.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_music_info_pause.png
new file mode 100644 (file)
index 0000000..f73f5c8
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_music_info_pause.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_music_info_play.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_music_info_play.png
new file mode 100644 (file)
index 0000000..9380081
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_music_info_play.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_focused.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_focused.png
new file mode 100644 (file)
index 0000000..e9ed764
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_focused.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_forward_normal.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_forward_normal.png
new file mode 100644 (file)
index 0000000..3edf22e
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_forward_normal.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_forward_pressed.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_forward_pressed.png
new file mode 100644 (file)
index 0000000..11214b4
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_forward_pressed.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_left_normal.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_left_normal.png
new file mode 100644 (file)
index 0000000..757d84a
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_left_normal.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_left_pressed.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_left_pressed.png
new file mode 100644 (file)
index 0000000..2ab120c
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_left_pressed.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_next_normal.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_next_normal.png
new file mode 100644 (file)
index 0000000..bbccefa
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_next_normal.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_next_pressed.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_next_pressed.png
new file mode 100644 (file)
index 0000000..8a67c60
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_next_pressed.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_option_normal.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_option_normal.png
new file mode 100644 (file)
index 0000000..4373f2e
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_option_normal.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_option_pressed.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_option_pressed.png
new file mode 100644 (file)
index 0000000..45439f8
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_option_pressed.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_pause_normal.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_pause_normal.png
new file mode 100644 (file)
index 0000000..30919b3
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_pause_normal.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_pause_pressed.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_pause_pressed.png
new file mode 100644 (file)
index 0000000..3e186fe
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_pause_pressed.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_play_normal.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_play_normal.png
new file mode 100644 (file)
index 0000000..a9000f7
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_play_normal.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_play_pressed.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_play_pressed.png
new file mode 100644 (file)
index 0000000..c12f2c9
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_play_pressed.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_previous_normal.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_previous_normal.png
new file mode 100644 (file)
index 0000000..a0ed015
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_previous_normal.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_previous_pressed.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_previous_pressed.png
new file mode 100644 (file)
index 0000000..144b3e6
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_previous_pressed.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_rewind_normal.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_rewind_normal.png
new file mode 100644 (file)
index 0000000..9b6c276
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_rewind_normal.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_rewind_pressed.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_rewind_pressed.png
new file mode 100644 (file)
index 0000000..6e03f0d
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_rewind_pressed.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_right_normal.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_right_normal.png
new file mode 100644 (file)
index 0000000..1d76dce
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_right_normal.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_right_pressed.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_right_pressed.png
new file mode 100644 (file)
index 0000000..ce75ad2
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_right_pressed.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_rotate_normal.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_rotate_normal.png
new file mode 100644 (file)
index 0000000..3bcecac
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_rotate_normal.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_rotate_pressed.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_rotate_pressed.png
new file mode 100644 (file)
index 0000000..fb17619
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_rotate_pressed.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_video_normal.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_video_normal.png
new file mode 100644 (file)
index 0000000..d2b47bb
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_video_normal.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_video_pressed.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_video_pressed.png
new file mode 100644 (file)
index 0000000..8c26d20
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_video_pressed.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_zoom_normal.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_zoom_normal.png
new file mode 100644 (file)
index 0000000..d9dd6e8
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_zoom_normal.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_zoom_pressed.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_zoom_pressed.png
new file mode 100644 (file)
index 0000000..ce1bce9
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/btn_viewer_control_zoom_pressed.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/ic_apps_additional_back.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/ic_apps_additional_back.png
new file mode 100644 (file)
index 0000000..b08b643
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/ic_apps_additional_back.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/ic_play_speed_info.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/ic_play_speed_info.png
new file mode 100644 (file)
index 0000000..017ad54
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/ic_play_speed_info.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/ic_zoom_arrow_down_normal.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/ic_zoom_arrow_down_normal.png
new file mode 100644 (file)
index 0000000..9b9ef11
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/ic_zoom_arrow_down_normal.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/ic_zoom_arrow_down_pressed.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/ic_zoom_arrow_down_pressed.png
new file mode 100644 (file)
index 0000000..9a7bb60
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/ic_zoom_arrow_down_pressed.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/ic_zoom_arrow_left_normal.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/ic_zoom_arrow_left_normal.png
new file mode 100644 (file)
index 0000000..b1dc0fc
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/ic_zoom_arrow_left_normal.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/ic_zoom_arrow_left_pressed.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/ic_zoom_arrow_left_pressed.png
new file mode 100644 (file)
index 0000000..792de9c
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/ic_zoom_arrow_left_pressed.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/ic_zoom_arrow_right_normal.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/ic_zoom_arrow_right_normal.png
new file mode 100644 (file)
index 0000000..d0c512a
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/ic_zoom_arrow_right_normal.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/ic_zoom_arrow_right_pressed.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/ic_zoom_arrow_right_pressed.png
new file mode 100644 (file)
index 0000000..00b2aa0
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/ic_zoom_arrow_right_pressed.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/ic_zoom_arrow_up_normal.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/ic_zoom_arrow_up_normal.png
new file mode 100644 (file)
index 0000000..edbf80d
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/ic_zoom_arrow_up_normal.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/ic_zoom_arrow_up_pressed.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/ic_zoom_arrow_up_pressed.png
new file mode 100644 (file)
index 0000000..a237744
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/ic_zoom_arrow_up_pressed.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_bg_dimmed_95.9.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_bg_dimmed_95.9.png
new file mode 100644 (file)
index 0000000..479f7d7
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_bg_dimmed_95.9.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_black_area.9.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_black_area.9.png
new file mode 100644 (file)
index 0000000..1cfa8b3
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_black_area.9.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_dimmed.9.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_dimmed.9.png
new file mode 100644 (file)
index 0000000..cdfbb23
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_dimmed.9.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_dimmed_opacity75.9.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_dimmed_opacity75.9.png
new file mode 100644 (file)
index 0000000..51c60e1
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_dimmed_opacity75.9.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_dimmed_opacity85.9.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_dimmed_opacity85.9.png
new file mode 100644 (file)
index 0000000..fc391b9
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_dimmed_opacity85.9.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_gallery_unavailable_photo.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_gallery_unavailable_photo.png
new file mode 100644 (file)
index 0000000..e7a6f66
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_gallery_unavailable_photo.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_gallery_unavailable_video.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_gallery_unavailable_video.png
new file mode 100644 (file)
index 0000000..51497dd
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_gallery_unavailable_video.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_gradient_topbottom.9.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_gradient_topbottom.9.png
new file mode 100644 (file)
index 0000000..82915bb
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_gradient_topbottom.9.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_media_no_contents.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_media_no_contents.png
new file mode 100644 (file)
index 0000000..7f4b618
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_media_no_contents.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_movie_unavailable.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_movie_unavailable.png
new file mode 100644 (file)
index 0000000..463709d
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_movie_unavailable.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_music_list_focused.9.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_music_list_focused.9.png
new file mode 100644 (file)
index 0000000..01ad4f2
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_music_list_focused.9.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_music_list_focused_shadow.9.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_music_list_focused_shadow.9.png
new file mode 100644 (file)
index 0000000..1a2933c
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_music_list_focused_shadow.9.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_music_list_normal.9.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_music_list_normal.9.png
new file mode 100644 (file)
index 0000000..25dd1ec
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_music_list_normal.9.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_music_nocover.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_music_nocover.png
new file mode 100644 (file)
index 0000000..c9bd7fe
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_music_nocover.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_music_nocover_focused.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_music_nocover_focused.png
new file mode 100644 (file)
index 0000000..901ea5f
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_music_nocover_focused.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_photozoom_gradient.9.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_photozoom_gradient.9.png
new file mode 100644 (file)
index 0000000..56a3e62
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_photozoom_gradient.9.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_stroke.9.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_stroke.9.png
new file mode 100644 (file)
index 0000000..711db5a
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_stroke.9.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_stroke2.9.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_stroke2.9.png
new file mode 100644 (file)
index 0000000..6bcf1a4
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_stroke2.9.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_thumbnail_focused_shadow.9.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_thumbnail_focused_shadow.9.png
new file mode 100644 (file)
index 0000000..ac9dd29
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_thumbnail_focused_shadow.9.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_thumbnail_gradient_normal.9.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_thumbnail_gradient_normal.9.png
new file mode 100644 (file)
index 0000000..7ae5c0e
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_thumbnail_gradient_normal.9.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_viewer_progress.9.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_viewer_progress.9.png
new file mode 100644 (file)
index 0000000..3d5239f
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_viewer_progress.9.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_zoom_minimap_black_area.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_zoom_minimap_black_area.png
new file mode 100644 (file)
index 0000000..e2f1c3f
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_zoom_minimap_black_area.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_zoom_minimap_dimmed.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_zoom_minimap_dimmed.png
new file mode 100644 (file)
index 0000000..f6964ca
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_zoom_minimap_dimmed.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_zoom_minimap_line.9.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_zoom_minimap_line.9.png
new file mode 100644 (file)
index 0000000..52e7d3d
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_zoom_minimap_line.9.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_zoom_minimap_mask.9.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_zoom_minimap_mask.9.png
new file mode 100644 (file)
index 0000000..a4640a6
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_zoom_minimap_mask.9.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_zoom_minimap_shadow.9.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_zoom_minimap_shadow.9.png
new file mode 100644 (file)
index 0000000..67a9b95
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/res/img_zoom_minimap_shadow.9.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/shared/res/xamediahub.png b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/shared/res/xamediahub.png
new file mode 100644 (file)
index 0000000..f28db0f
Binary files /dev/null and b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/shared/res/xamediahub.png differ
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/signature1.xml b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/signature1.xml
new file mode 100644 (file)
index 0000000..379806e
--- /dev/null
@@ -0,0 +1,424 @@
+<Signature Id="DistributorSignature" xmlns="http://www.w3.org/2000/09/xmldsig#">
+  <SignedInfo>
+    <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
+    <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha512" />
+    <Reference URI="TVMediaHub.Tizen.deps.json">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>U0MEU5PUjq0KxrTzsATqAX7fhJ3XZ2kUA7DfRtoXfbUQRF/XWCIekX6VUFZ+s8kTklEAY92iCluPz8OvT9zT/w==</DigestValue>
+    </Reference>
+    <Reference URI="tizen-manifest.xml">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>uC/YUIaQYAtGROnQbkxExW0Z5nouavxJvAnmd+FuQpHhRuTMCrnyE5zpq1C1+3sSrI7+wsIcWXZqP6AYfOsWsQ==</DigestValue>
+    </Reference>
+    <Reference URI="shared%2Fres%2Fxamediahub.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>kxx5WtbHnhUiryYud3HU8WZn5e0LuLrdJgxZDa11shnpw4xJmEnKZkkoggwFsSmWzrPoABHsI2u7rKEOMETbNw==</DigestValue>
+    </Reference>
+    <Reference URI="res%2FThumbnail1.jpg">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>S4TUCZ15PdxMZ67S9DIeL26VxjSPzFjd6h/aIlHLzSbOaeXMlEtphhldywjyMJv/DiIgyTjzWJmBj5V2s9wFKg==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_zoom_minimap_shadow.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>hZnxKaqta1cQKC+24bFbd8WzCYw0CkPyv6MA4JmKU6qMnrJ2q2NgiIZ7n23QwrDO5GKiiNqbRKRUN/9Do9AZPQ==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_zoom_minimap_mask.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>FJ2N0RHSW45M+/2Z1yA2zbyBUlQuIj3HK80tT4pMonaAM54GP+kPC9U+5NUxWHIuGTzjbpj/Za46PbijkdR0Qw==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_zoom_minimap_line.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>//FDMLX27ym2TDaBYH0eM8B8cWYKuvld8lTmZH9gAx5wAtkCtmwTCZs2Nvav/X0W+JhFahTqLCUL12V5pZoGkw==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_zoom_minimap_dimmed.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>FV429vzVQtV+od5f6QuSXeKuzVJYyrtQsad0pdaOm9F8vfcgSaQkd2pe10PPP73qTTie9vUyiwYKE3SMI3Uw5w==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_zoom_minimap_black_area.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>xHyreLkfh0ou9SbkYTUJ8f41ZEwpR72O8IfBObL5mOgr9Y3sBz0macjgS2lnO62mKRGJkfS/DDAkCZTgCuHHqg==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_viewer_progress.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>lGBEpskEmAMRtTPj+Equkqaj8o4Wc2+IUyD0o2BcxRsUFvzLlqgFVI/gduSkgt1ctPYZx8MMaXHxI3jq27XGGg==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_thumbnail_gradient_normal.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>/ycFfin860AKXP6QghrvIgG0zjdKcrO8DU2Vrc4hpyniJkOUBtkN+6X4acblIiHg87LOAEASc4UZbF+T7UO2SA==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_thumbnail_focused_shadow.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>5rO+Cthk+nniUo9/2fOjbVSk54zHIRYWhFy5JrPyvbSmhr9cyAijP55A7l0zvs25Rl8wqEElqL7sR9BB0fa8mg==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_stroke2.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>QsQfYB8yScICm9Unwl4VOJk12yDnwdvwB23zHxH5ElPFjvVPn3XgKEAYbKEWLeGyiPmUsNwU+pDSPS/bl42pkA==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_stroke.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>AcXdHE4ArG3QJy0Fu1bXmriKCi8hWMOYXAUgZ5O8ypcApACO8OcKpaG6Z40s+Blq0HtysXSAiy8sOyc98FoJoQ==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_photozoom_gradient.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>rjuT/jWQLtPD5fiKnWx0qvYubqLvHy6teEGRLE1AmIjUUEphIf3m9zLp+FcxCnPlWqPtbw9qahGvRRG899dPsA==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_music_nocover_focused.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>+Ffb9F5erZTSMdg8wjq1YwGWBcd5OwdgWBjqe3/5DG1VyG1ETXONd4uctkvAVhHZOMcNxNEnsIBkdiLM32aq6w==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_music_nocover.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>7ecadiou10HWw8uEn7MD43+c1njq0P+4Wjvr1zZ9LDGxfJbnEF3tfCmdktLkszfcnn+7W3s7ap+/HSznihSN5A==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_music_list_normal.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>rTkjpEhnhxJxPY2Hui2hku27ksDes06Xmxigz619H6hHLCYeboI5Qt4DEpDUR0tBmPGkuOgGE7KznuTbfvUnuw==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_music_list_focused_shadow.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>xmKt52d0QjOtzZuV5G2R3kt/HYjAsDxuXsXmcg914OXtqO5NkY6N0RLcO7S/IjPGh6dl+BEp/mz37aCOUnlI2A==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_music_list_focused.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>g7Ow+6LCScxGAlcYaAK9ftC9S62s0sqPXumb44OcurndFomedpis6dy9vvnmpStuUjDpN+Cn1fI/yWXzojtH3A==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_movie_unavailable.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>qihoYkK6iDGkmrfixcaHxA5+mssr/0ScLgVgBQjaijQgokiZBRqaBruk5phegBrZZF8N/nBMB0wh5IzGp7APIA==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_media_no_contents.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>BpYFiZ/N3AC1liBqPABLiFSOHfgRHcMkPXESI+wlgYt/sPRbCu0IRMY9tPEaQFCLuA5gbXib+laBPfWSJlrq2w==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_gradient_topbottom.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>7QHjVywJ34G0KldJYcB+kePcyA7LUaB3nN7FlEUH4T0tbEBr9g+B4w187hv5+ThEKBfX0/fFZ/nRUCQtu8kfig==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_gallery_unavailable_video.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>WMdOH9Gw/FR3r0D9dRUZJcK8yTyJPMh3+DIu+4x/lK+k2Oo8Jl3ys5/g83bnvafs97MHyzajKdp0Y2l1zErLhw==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_gallery_unavailable_photo.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>o4C56Aas4Z/0hS+99SLI7wAOCEt8ZKwvaWYlQXDA2ffP7kTaM2iFGvAjs+b83lInTjJDqUARxvToNfAypT3U5Q==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_dimmed_opacity85.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>yJ+6REFOYK+lPC+cBH5PlTaOlgEvfvD4NmUR/eDkh3Xx1/fFIuNcm1S0ASjrIPSQszxGfIOuruJudAEktC3X2A==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_dimmed_opacity75.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>GgLb0oauwnrwpufXq8XwNKbeVKqyjCOjdueTMLHwPhb746xhGepTxjjNVacoIfa5M8R2PaYieG7GIxKoOH2OSg==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_dimmed.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>chVVlxeakhgJNKvecsiF/nyyGT/oh9VcGY288FB17ArRq2b80A8bcPh0r/LQlqUPqHMUVX4U2UjV0MfjD3yCew==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_black_area.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>LxTpvdtz8TJ33FUMwCbdcgABFBFFsu9sTx3cCDCDivzh76AJKqdItYidAyFtYLm7HhEe9ckuhaooptxmYMs9ag==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_bg_dimmed_95.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>DU3VwYusuthCHIKyOQGwv5gt0EcCLdpm5hQzYP49AgVZRRJ2NJAVBbz/DHeKyjDIzzqB1UmC3h2MbGg71Aqdew==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_zoom_arrow_up_pressed.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>1JlHgVpGkeMy+7/57xLbxGeJ+pF8wXqglarc0hrccyKSTnpSJ2m5k/fmvXOMtVsoMq8G2HONlGCXBl5gWRz6gQ==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_zoom_arrow_up_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>S6UVsATiCOuZmFakZeVOpDq+DuuEq460dRAU2trfOIBIHhmmnlv7f2Y0pilacYdtBgUPvnXFhziu4bY7d9AAxw==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_zoom_arrow_right_pressed.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>fJshCtTSyPjfV7vvCOqI7fIyAdHGqmOOnfJI1VFCRMEy4gL9mFPNxsCwSAQsSjouW8nkZKiVLZldxm7kgTtVmQ==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_zoom_arrow_right_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>AcrkFohuepOalJydSsXymk/1VMy+64MbBNgBjhIp7PNnTrF3qW3w3BI50NiTg1FL76Ge2Mfk2c3RjTKIi7W+NQ==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_zoom_arrow_left_pressed.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>S5Do1AocPEroSiHt0QpxEKerZQHS2i9fHIMwlPahHIlzuLaZWW4KE0YGdj8YuUgFINyqyxKSdx555q2jeJwKnw==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_zoom_arrow_left_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>wh2BYinQahMNGVUQMarIWb7MJ6T9qmgbN6Ohw/JZ1AghE6CGIg2LOaarWUZbSsL5gdPHu5+OXuzqfgRwRAC8HA==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_zoom_arrow_down_pressed.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>RNhvY9eAimsnA73WPY3C2q+TkCbhnWZ0Do73k8vMGdeOcRp5JCnfmcdS148sp7oJfByopUmlSdcIg6VqkKJyxw==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_zoom_arrow_down_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>QilKUZRHfo3noXuhMdCoIlqjHDXlbD/OtEII1w/wwxdEaB2SP6Mjvkv4TwMgcULu8G9sj060ma73zQw+mJ0HSA==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_play_speed_info.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>MwOZXZ5DSVJnSg3voE588k7GSpVa8u6J43P/d+M940w5SBv42i3HXbNqEzP+bzZCrrNVB6Pf2rDXgNJ0iD4j1w==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_apps_additional_back.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>afb2xDymRLXXDUfEym9Osavm7Q2IPyicMikIJYjDUjEaBoIAL9Liym8E/b74co8mQCbYDgnZlg78Xhe5J6Z2yw==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_zoom_pressed.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>FauJnDtq239AcJx2LfciNlmCIaWFWn2VEeIxUHWVf1UVQS1VnysUANKV1eg6GzSgIXldF8OO1GLh4Dq2leO+NA==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_zoom_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>qlhAO0luYiuMspG5FMZ/NU7ACOYF82ME0+19o9bEEjnguJPNARx20d0EE2OV5SAl2Gz3W4m57ITwkktcEDA2aQ==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_video_pressed.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>baYF/bkqAOqoi443N2K9MaOcfiXj3swZNlIz4eNFETsmj/C89Mnz+m9LynOpSZ5ZTfBxPLX81sEtFZFyjmeejw==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_video_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>JPqsGCIzy0jxAmjULW14ROuUxnwn2ncswteaXHWk3mzzrRv/XaMm44r5i+r0f/K235NzHvQQH5Z12PCmMhnDeQ==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_rotate_pressed.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>ZqMmPQ9gEusoQ/ZQ0UIOrD1/36/xARdKwnNl6S5D0Y5IU5jSKEQg8ZQGli6vE/O9iVAkdjwfjSyslWFh6R5+PQ==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_rotate_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>IxcSs8nWfoXm/p/QQ5oDrFeX8n8mN3FDxH6MqwL3rEZBXNCr6iI6PswRcA+/txLSMhQCkgB1wwkjV1S0r6ylsA==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_right_pressed.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>mesw1USM7myj2mDIyrgj0LbTAqWTosih8EVhWPH+Syeq6Uk8WcNRcNnEpeqDSg1ScuRT5nsRzm+JvZZWp0hjTQ==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_right_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>QKki0dhMx0MB16/Watx2MDCk1ajcuT8GqIedO+tqwpccPM8qppXdMmqzew2VvUS8EZvqqGxzFEnppvpYgmTOGg==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_rewind_pressed.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>6XSF7EzY1HFUmDOmDQ0kXdpoPXekZSTtEoomO8nORpMnqvqUmUDmtCf7elkWpiEsSYaiqQ1eEjrAIzis2kOqKQ==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_rewind_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>aguwXNnkbRoRSkqFqHeCAbDiShs/X7X1rxxINtlT3Cm95fqaGq3K4tUci/RK1V0QAKXZUMiNosisKUHdogTWFw==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_previous_pressed.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>c0TtoY44L2uSpFgqE1O6XvVH2Szzb+ctDQY6A6w2Xdso4JhhotzrHv9HTATVKJzI6v8s5dcW9XRwoeLui5hx0Q==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_previous_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>7OlDnW097Jr+y1L68eKk1mZUZgSMbXbbA8LAz8y6grfgWqkqoQgNHkk0Jio4hFkh5EhkLcLqV9WBcAALfuXG2w==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_play_pressed.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>MoiwqytE5pdqdN1OBGdcEoVGIKHa70SMxLekU6gyQDa72Dqbxz+tQfdWQbIREHKLzhYqXZ830QsBXRgixNUbbQ==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_play_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>AHw/K8RsyMRPnZtmlecGZb4uj3oyx/bCEM8CPlU9Uhc89H8JimMf7u4+P2BAQWX4vnvbAvLqrXbRrKwHAAJqMw==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_pause_pressed.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>aWGghhAy91nDbadzCUfaVvN6ZClYjhnY4gtitaKFaYCPpqanDc4P9Uu8YdVnI0Fq8xKWzyB1fXlxj55url5mzw==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_pause_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>pa2WlbWyI1IfhNpSx5t1ALsrl2t1lREq0IQZuyjWlUmEoSMwQzAt9iuh0+fMo2kSxrcyK3adXAGCs2oqpp/gow==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_option_pressed.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>RvX08rWgIfij+CJWyeoWFdoWhE8CSADt/BkEO+YCSdPXO/NO0YOeKbiTf4NXqPZeC1hDwzhTmkOR6R+klbg5NA==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_option_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>tJ2YidE/YhuTRr9xBJDfFtuuRF29nSgH+drAQu/ta9FTCs/EhKnEyvQSE4VGfY/WW3SrJ+9kaPehRQC4gZXHcg==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_next_pressed.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>Wnmek8bvT8A3ktNgWHfDHez6NHIzc4kDr3T6S0MEB4ZNQrrHA/chuinT8o3JDs/2NQ/LmjoZ0MSxg5xBLNKsTA==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_next_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>SzrKBQ8DcReQ48eqCs1kYsC69zmvMipmzkrIvp5/9y4hAlbB8hKdq5jibPbrVdR+ufO7xhlJqLbqnj0HA6174Q==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_left_pressed.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>CQHEcqdzkLy3ysc/nfPp1uinjotqlpr8z5ycNv8SbSiWTd2UoDfa/+F6nBVIAC1dWjmSAic+TYjqGCgai92jnw==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_left_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>pvuei2GUGfA0KRBtX+UBIGKQHsIobotuBbJy7DINBcnE7vWlklBg+Jk0uqrSG8yA2x0D1ZMAkBzGVRpUVAUqjQ==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_forward_pressed.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>orSmEyhbvB30xePHWpGj7u34tIPmsdg0Y9rvZNAofJTPeC9biOrefZyg2JMhJI4006ph1t2AXKqvE89YzLeT2Q==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_forward_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>l6MxOZh9ddHc4oR5YGDumOR9mPd8Xii1JOWZlO3e78B9tx9AnoZshRuZbrjgvzSDNUZIKKXX8T422krTR1t5tg==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_viewer_control_focused.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>Kx0MhLza7cMOKlEsQOsHrqVyJ/vIBeyX/RGBAnXFaCNZxqCxrmGondVF6EoXe3YIMTrRRybftwBPjf/5lVCd8A==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_music_info_play.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>d5yNzcoU3gDfXkQ/Aq5tKfrjmo5jsf8iiA64QHw5UhFBfwqp9GhamZXIwus6K1skDVrLBNY4vM59QxzKMeYM8A==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_music_info_pause.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>cutZf66TWjTZtbst0VGaIk2XdJqcGWBn2ZiYZ6gthTynWxVdt5q1jojFDGE207of1UlEGZ3OmpcGAXak/6/6SQ==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_media_unselect_check_wh.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>zmMtatJJ4NyK9XIm8F/Lr+Y0D5rdGrcDMcx6irLx5sqirKWKU6gGqi6yFVpNTamT/rbkBd5W7rO9FIy+Z488zQ==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_media_unselect_check_bk.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>/8G0xghcNPzidiV4L90t0X/lc28ijfZv64UgaxoZaD9YQBv12aQ3EQwEEsbOVEmE10GDON/4lS+4rf6kqUtCdg==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_media_select_pre.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>eXeT3ecvdUhM1/hXteindMFcEsbsCitMFmeZFT9SO9C/zcTxhizMGpMXR6cc5fMsz5L0/2lDxkCJZdpt/RGG+g==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_media_select_nor.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>M2JUit4O4PHsEsdkBlhDV2Zp2JFi4NXVBPbQ/fPCUxTh+6EJojY8hRBPGKd/a/scnLFAH/ffCJDh+mSgzK+CLA==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_media_select_for.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>bxVZHHskQ45XFtc9QfVj9YEojbEWo7AXUrlpOz+7ceEulIy/jgtxkM2BVoTLAcw/szO9+asMOVx1cTVuyJLO7g==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_media_select_check_wh.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>C9ZJbrpkanzTtxmqTCP7bLW3VO+rKbtjeja5K0CxzCGEEuZz9/Y8NJQ+p6WGsiWq8GUbWEDkQEUuSlKyZzDnqw==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_media_select_check_bk.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>7IdXJqmey8uGoGfHVfYJ9XPpQAfnSeblDZ64xEj+1s4Wd0ETXMyVeiavVlP707RIRT6qpSMlq3dJdrWnAALu3A==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_media_option_menu_pre.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>HHkN/GvaCxJrc5hN1//pFrwmkao4v3iVdPVLhKNpPTUcvn3fMfqPgpRk3t6wosh7Y15Mmm29Kqf1TMijJdacOg==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_media_option_menu_nor.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>ZQrI5VpeJADx7FrPECYWet8IVqbjlrJguVYKaKB0FfTgJqplQR5zLfObe1fMTBx3JS1+WPKEIRmOI4RU9d6Qpg==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_media_option_menu_foc.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>vGwcTV58GY30PZhBzbcIVXNhKPEc4QqWQCu+txOGPfcuFnuEucl5ZdFTRucxKJEJVuSonAUpFmWb3w7ijTvHdw==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_media_option_menu_dis.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>NDV28JzE9px6shEJtMpcAQltSBUUytLMQR5ewKQytEwfinFyRvnc5JSAOkwt3xUzVI77Is3YyvUj0wwkFble7A==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_media_option_list_check_pre.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>5jsl5WLf2G9RTSNYZQVyl1To4AdcF0uge4E2g2mIEAHQELWk83fgr4H7P/AGS3WdVf+BNyL/ppAAx+hn+Y5L6Q==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_media_option_list_check_nor.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>m29Cev7uJzYAt6+pdiKyvByW99fGw9HMToQZ2T8fqfhMN+2Ws4R7IX4Tst6Va3Hf53snlEZRhHvyCsRge+9vPw==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_media_option_list_check_foc.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>UuGjPJ4LzHbpoJzn+A0yK68xIgA6YbPAJoljMWEHpt76K7LZOsD+VK1XHlViTuHj/usT+ka5B4tFRUHFoOX9Bg==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_media_option_list_check_dis.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>Xg0htOiKtc27YMRoa6g+nJ0F5ME7spC3O0RwrMUwDYPZMeugofcTbIx0ca/QeXYxF2laDlxlbjzoeHzCW3GFRg==</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_list_thumbnail_play.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>wkyLxi1xnmiCosEFBXriJlzOF1anmlngryTWPMVKE+Zj3Ri4d4PfN/nUczQYTOmkZsuRaOBUVzJcolgD5Eb4XA==</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FXamarin.Forms.Xaml.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>cpqKDnVZS3KsRf1EYbtHBopE7GNRba0zS+pBl9IPI/aXWNexT+Opqjps5L0zHYzxPYeQ//8ZTQUCS4FRFWHPSA==</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FXamarin.Forms.Platform.Tizen.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>Mkuk6OE4d2Ixb514iFGMGHdZATikDuKQLmFpaDad2N9UP0z2TyQZHHyetsCezgw/2DudjA3m/gARf/iG8+a+Xg==</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FXamarin.Forms.Platform.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>LaeAT+53GPo09F10YfI1Yn5Xe+1cYwDCOVS+YPWIsyJ0/AZC8+liT+5AwnTxlCMx5Yb/oD+UAa2R2pDcULVgSQ==</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FXamarin.Forms.Core.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>jsED0lu7awNCBzeeTZpxCFvmTu1ywtzaBkVLxbuN0HahI9NaEPkfCn0O99NXCPIsWtEESlKxSWYqO/tgpspf/w==</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTVMediaHub.Tizen.pdb">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>YVXasL75doN/+N0lqI/0rypO6PvhPfPLdR89ZuLncF7SOhkO9HSdZlXtaQ0fszNqc+CWTam7r/1kH3BqnO6W/A==</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTVMediaHub.Tizen.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>JeWnxQNgTHeAnssfilIIzbJS7kh2LZW9GG8Ajd4g3NXii+4C9blu8nvCwyerl9l07PloXbdha+NWbgPW/fDzMQ==</DigestValue>
+    </Reference>
+    <Reference URI="author-signature.xml">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>5TD7lCuxsFMMNOUYEb8nZQVXrmM3BC3ZRGgLK2q/X1eNTnBB8MVOpw6U5DIt0ceoNg35YoD90uFdYe73r+5dLQ==</DigestValue>
+    </Reference>
+    <Reference URI="#prop">
+      <Transforms>
+        <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
+      </Transforms>
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+      <DigestValue>5YPt7Bw2TSPBQKkKOFPZNFjzt+iifSVhnCWKlLr+/5f/JEGy9SqkT543A8UCz08tYLBNiokj1/ZsXG4PeC92qQ==</DigestValue>
+    </Reference>
+  </SignedInfo>
+  <SignatureValue>
+D6hGqeajIusHujxZd+2bDjYkBOnzSHAYrqQauDpKtPXs95mIL6q0/XsT9gPSRE8AbdhqqQ0pOHIY
+MnQ4/TpUnbTRCaQOikG3K73vwLEPJ0ljK+oW/+sEh6Dg1DqnjpT0rqtrG2rhoxbHDC73uvecT62d
+8ulVTvRdnf6H+laAg9k=
+</SignatureValue>
+  <KeyInfo>
+    <X509Data>
+      <X509Certificate>
+MIICmzCCAgQCCQDXI7WLdVZwiTANBgkqhkiG9w0BAQUFADCBjzELMAkGA1UEBhMCS1IxDjAMBgNV
+BAgMBVN1d29uMQ4wDAYDVQQHDAVTdXdvbjEWMBQGA1UECgwNVGl6ZW4gVGVzdCBDQTEiMCAGA1UE
+CwwZVGl6ZW4gRGlzdHJpYnV0b3IgVGVzdCBDQTEkMCIGA1UEAwwbVGl6ZW4gUHVibGljIERpc3Ry
+aWJ1dG9yIENBMB4XDTEyMTAyOTEzMDMwNFoXDTIyMTAyNzEzMDMwNFowgZMxCzAJBgNVBAYTAktS
+MQ4wDAYDVQQIDAVTdXdvbjEOMAwGA1UEBwwFU3V3b24xFjAUBgNVBAoMDVRpemVuIFRlc3QgQ0Ex
+IjAgBgNVBAsMGVRpemVuIERpc3RyaWJ1dG9yIFRlc3QgQ0ExKDAmBgNVBAMMH1RpemVuIFB1Ymxp
+YyBEaXN0cmlidXRvciBTaWduZXIwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALtMvlc5hENK
+90ZdA+y66+Sy0enD1gpZDBh5T9RP0oRsptJv5jjNTseQbQi0SZOdOXb6J7iQdlBCtR343RpIEz8H
+mrBy7mSY7mgwoU4EPpp4CTSUeAuKcmvrNOngTp5Hv7Ngf02TTHOLK3hZLpGayaDviyNZB5PdqQdB
+hokKjzAzAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAvGp1gxxAIlFfhJH1efjb9BJK/rtRkbYn9+Ez
+GEbEULg1svsgnyWisFimI3uFvgI/swzr1eKVY3Sc8MQ3+Fdy3EkbDZ2+WAubhcEkorTWjzWz2fL1
+vKaYjeIsuEX6TVRUugHWudPzcEuQRLQf8ibZWjbQdBmpeQYBMg5x+xKLCJc=
+</X509Certificate>
+      <X509Certificate>
+MIICtDCCAh2gAwIBAgIJAMDbehElPNKvMA0GCSqGSIb3DQEBBQUAMIGVMQswCQYDVQQGEwJLUjEO
+MAwGA1UECAwFU3V3b24xDjAMBgNVBAcMBVN1d29uMRYwFAYDVQQKDA1UaXplbiBUZXN0IENBMSMw
+IQYDVQQLDBpUVGl6ZW4gRGlzdHJpYnV0b3IgVGVzdCBDQTEpMCcGA1UEAwwgVGl6ZW4gUHVibGlj
+IERpc3RyaWJ1dG9yIFJvb3QgQ0EwHhcNMTIxMDI5MTMwMjUwWhcNMjIxMDI3MTMwMjUwWjCBjzEL
+MAkGA1UEBhMCS1IxDjAMBgNVBAgMBVN1d29uMQ4wDAYDVQQHDAVTdXdvbjEWMBQGA1UECgwNVGl6
+ZW4gVGVzdCBDQTEiMCAGA1UECwwZVGl6ZW4gRGlzdHJpYnV0b3IgVGVzdCBDQTEkMCIGA1UEAwwb
+VGl6ZW4gUHVibGljIERpc3RyaWJ1dG9yIENBMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDe
+OTS/3nXvkDEmsFCJIvRlQ3RKDcxdWJJp625pFqHdmoJBdV+x6jl1raGK2Y1sp2Gdvpjc/z92yzAp
+bE/UVLPh/tRNZPeGhzU4ejDDm7kzdr2f7Ia0U98K+OoY12ucwg7TYNItj9is7Cj4blGfuMDzd2ah
+2AgnCGlwNwV/pv+uVQIDAQABoxAwDjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBACqJ
+KO33YdoGudwanZIxMdXuxnnD9R6u72ltKk1S4zPfMJJv482CRGCI4FK6djhlsI4i0Lt1SVIJEed+
+yc3qckGm19dW+4xdlkekon7pViEBWuyHw8OWv3RXtTum1+PGHjBJ2eYY4ZKIpz73U/1NC16sTB/0
+VhfnkHwPltmrpYVe
+</X509Certificate>
+    </X509Data>
+  </KeyInfo>
+  <Object Id="prop">
+    <SignatureProperties xmlns:dsp="http://www.w3.org/2009/xmldsig-properties">
+      <SignatureProperty Id="profile" Target="#DistributorSignature">
+        <dsp:Profile URI="http://www.w3.org/ns/widgets-digsig#profile" />
+      </SignatureProperty>
+      <SignatureProperty Id="role" Target="#DistributorSignature">
+        <dsp:Role URI="http://www.w3.org/ns/widgets-digsig#role-distributor" />
+      </SignatureProperty>
+      <SignatureProperty Id="identifier" Target="#DistributorSignature">
+        <dsp:Identifier />
+      </SignatureProperty>
+    </SignatureProperties>
+  </Object>
+</Signature>
\ No newline at end of file
diff --git a/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/tizen-manifest.xml b/TVMediaHub/TVMediaHub.Tizen/bin/Debug/tizen60/tpkroot/tizen-manifest.xml
new file mode 100644 (file)
index 0000000..0969823
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest package="org.tizen.xamediahub" version="1.0.0" api-version="5.5" xmlns="http://tizen.org/ns/packages">
+    <profile name="tv" />
+    <ui-application appid="org.tizen.xamediahub" exec="TVMediaHub.Tizen.dll" multiple="false" nodisplay="false" taskmanage="true" type="dotnet" splash-screen-display="true" launch_mode="single">
+        <label>MediaHub</label>
+        <icon>xamediahub.png</icon>
+        <splash-screens />
+    </ui-application>
+    <shortcut-list />
+    <privileges>
+        <privilege>http://tizen.org/privilege/content.write</privilege>
+        <privilege>http://tizen.org/privilege/mediastorage</privilege>
+        <privilege>http://tizen.org/privilege/externalstorage</privilege>
+    </privileges>
+    <dependencies />
+    <provides-appdefined-privileges />
+</manifest>
index f0e5d83..0969823 100644 (file)
@@ -1,14 +1,17 @@
 <?xml version="1.0" encoding="utf-8"?>
-<manifest package="org.tizen.xamediahub" version="1.0.0" api-version="3.0" xmlns="http://tizen.org/ns/packages">
-  <profile name="tv" />
-  <ui-application appid="org.tizen.xamediahub" exec="TVMediaHub.Tizen.dll" multiple="false" nodisplay="false" taskmanage="true" splash-screen-display="true" type="dotnet" launch_mode="single">
-    <label>MediaHub</label>
-    <icon>xamediahub.png</icon>
-  </ui-application>
-  <shortcut-list />
-  <privileges>
-    <privilege>http://tizen.org/privilege/content.write</privilege>
-    <privilege>http://tizen.org/privilege/mediastorage</privilege>
-    <privilege>http://tizen.org/privilege/externalstorage</privilege>
-  </privileges>
+<manifest package="org.tizen.xamediahub" version="1.0.0" api-version="5.5" xmlns="http://tizen.org/ns/packages">
+    <profile name="tv" />
+    <ui-application appid="org.tizen.xamediahub" exec="TVMediaHub.Tizen.dll" multiple="false" nodisplay="false" taskmanage="true" type="dotnet" splash-screen-display="true" launch_mode="single">
+        <label>MediaHub</label>
+        <icon>xamediahub.png</icon>
+        <splash-screens />
+    </ui-application>
+    <shortcut-list />
+    <privileges>
+        <privilege>http://tizen.org/privilege/content.write</privilege>
+        <privilege>http://tizen.org/privilege/mediastorage</privilege>
+        <privilege>http://tizen.org/privilege/externalstorage</privilege>
+    </privileges>
+    <dependencies />
+    <provides-appdefined-privileges />
 </manifest>