TV Home/Apps Migration 42/147142/1
authorJH Choi <jjie.choi@samsung.com>
Fri, 1 Sep 2017 06:49:35 +0000 (15:49 +0900)
committerJH Choi <jjie.choi@samsung.com>
Fri, 1 Sep 2017 06:49:35 +0000 (15:49 +0900)
Change-Id: If19587d2eb7c777d6a6e4890cbfbbb0acc22275a
Signed-off-by: JH Choi <jjie.choi@samsung.com>
489 files changed:
HomeUnitTest/AppShortcutTestCases.cs [deleted file]
HomeUnitTest/HomeUnitTest.csproj [deleted file]
HomeUnitTest/ManagedAppsTestCases.cs [deleted file]
HomeUnitTest/Properties/AssemblyInfo.cs [deleted file]
HomeUnitTest/RecentTestCases.cs [deleted file]
HomeUnitTest/Settings.StyleCop [deleted file]
HomeUnitTest/packages.config [deleted file]
LibCommon.Shared/DataModels/AppControlAction.cs [new file with mode: 0644]
LibCommon.Shared/DataModels/AppShortcutInfo.cs [new file with mode: 0644]
LibCommon.Shared/DataModels/CommandAction.cs [new file with mode: 0644]
LibCommon.Shared/DataModels/FileSystemEventCustomArgs.cs [new file with mode: 0644]
LibCommon.Shared/DataModels/HomeMenuAppShortcutInfo.cs [new file with mode: 0644]
LibCommon.Shared/DataModels/IAction.cs [new file with mode: 0644]
LibCommon.Shared/DataModels/IEnumerableItem.cs [new file with mode: 0644]
LibCommon.Shared/DataModels/MediaControlAction.cs [new file with mode: 0644]
LibCommon.Shared/DataModels/RecentShortcutInfo.cs [new file with mode: 0644]
LibCommon.Shared/DataModels/SettingShortcutInfo.cs [new file with mode: 0644]
LibCommon.Shared/DataModels/ShortcutInfo.cs [new file with mode: 0644]
LibCommon.Shared/DataModels/StateDescription.cs [new file with mode: 0644]
LibCommon.Shared/DataModels/WatcherType.cs [new file with mode: 0644]
LibCommon.Shared/LibCommon.Shared.csproj [new file with mode: 0644]
LibCommon.Shared/Models/AppShortcutController.cs [new file with mode: 0644]
LibCommon.Shared/Models/ManagedApps.cs [new file with mode: 0644]
LibCommon.Shared/Models/RecentShortcutController.cs [new file with mode: 0644]
LibCommon.Shared/Settings.StyleCop [new file with mode: 0644]
LibCommon.Shared/Stubs/ApplicationManagerAPITestStub.cs [new file with mode: 0644]
LibCommon.Shared/Stubs/FileSystemAPITestStub.cs [new file with mode: 0644]
LibCommon.Shared/Stubs/FileWatcherAPITestStub.cs [new file with mode: 0644]
LibCommon.Shared/Stubs/MediaContentAPITestStub.cs [new file with mode: 0644]
LibCommon.Shared/Utils/AppControlUtils.cs [new file with mode: 0644]
LibCommon.Shared/Utils/AppShortcutStorage.cs [new file with mode: 0644]
LibCommon.Shared/Utils/ApplicationManagerUtils.cs [new file with mode: 0644]
LibCommon.Shared/Utils/DateUtils.cs [new file with mode: 0644]
LibCommon.Shared/Utils/DebuggingUtils.cs [new file with mode: 0644]
LibCommon.Shared/Utils/FileSystemUtils.cs [new file with mode: 0644]
LibCommon.Shared/Utils/IAppControl.cs [new file with mode: 0644]
LibCommon.Shared/Utils/IAppLifeControl.cs [new file with mode: 0644]
LibCommon.Shared/Utils/IApplicationManagerAPIs.cs [new file with mode: 0644]
LibCommon.Shared/Utils/IDebuggingAPIs.cs [new file with mode: 0644]
LibCommon.Shared/Utils/IFileSystemAPIs.cs [new file with mode: 0644]
LibCommon.Shared/Utils/IFileSystemWatcherAPIs.cs [new file with mode: 0644]
LibCommon.Shared/Utils/IMediaContentAPIs.cs [new file with mode: 0644]
LibCommon.Shared/Utils/IPackageManager.cs [new file with mode: 0644]
LibCommon.Shared/Utils/IPlatformNotification.cs [new file with mode: 0644]
LibCommon.Shared/Utils/IStatePublisher.cs [new file with mode: 0644]
LibCommon.Shared/Utils/IStateSubscriber.cs [new file with mode: 0644]
LibCommon.Shared/Utils/ISystemSettings.cs [new file with mode: 0644]
LibCommon.Shared/Utils/ITVHome.cs [new file with mode: 0644]
LibCommon.Shared/Utils/IWindowAPIs.cs [new file with mode: 0644]
LibCommon.Shared/Utils/MediaContentUtils.cs [new file with mode: 0644]
LibCommon.Shared/Utils/PackageManagerUtils.cs [new file with mode: 0644]
LibCommon.Shared/Utils/RecentShortcutStorage.cs [new file with mode: 0644]
LibCommon.Shared/Utils/SizeUtils.cs [new file with mode: 0644]
LibCommon.Shared/Utils/TVHomeImpl.cs [new file with mode: 0644]
LibCommon.Shared/bin/Debug/netstandard2.0/LibCommon.Shared.deps.json [new file with mode: 0644]
LibCommon.Tizen/LibCommon.Tizen.csproj [new file with mode: 0644]
LibCommon.Tizen/Ports/AppControlPort.cs [new file with mode: 0644]
LibCommon.Tizen/Ports/ApplicationManagerPort.cs [new file with mode: 0644]
LibCommon.Tizen/Ports/DbgPort.cs [new file with mode: 0644]
LibCommon.Tizen/Ports/FileSystemPort.cs [new file with mode: 0644]
LibCommon.Tizen/Ports/FileSystemWatcherPort.cs [new file with mode: 0644]
LibCommon.Tizen/Ports/MediaContentPort.cs [new file with mode: 0644]
LibCommon.Tizen/Ports/PackageManagerPort.cs [new file with mode: 0644]
LibCommon.Tizen/Ports/SystemSettingsPort.cs [new file with mode: 0644]
LibCommon.Tizen/Ports/WindowPort.cs [new file with mode: 0644]
LibCommon.Tizen/Settings.StyleCop [new file with mode: 0644]
LibCommon.Tizen/bin/Debug/netstandard2.0/LibCommon.Tizen.deps.json [new file with mode: 0644]
LibTVRefCommonPortable/DataModels/AppControlAction.cs [deleted file]
LibTVRefCommonPortable/DataModels/AppShortcutInfo.cs [deleted file]
LibTVRefCommonPortable/DataModels/CommandAction.cs [deleted file]
LibTVRefCommonPortable/DataModels/FileSystemEventCustomArgs.cs [deleted file]
LibTVRefCommonPortable/DataModels/HomeMenuAppShortcutInfo.cs [deleted file]
LibTVRefCommonPortable/DataModels/IAction.cs [deleted file]
LibTVRefCommonPortable/DataModels/IEnumerableItem.cs [deleted file]
LibTVRefCommonPortable/DataModels/MediaControlAction.cs [deleted file]
LibTVRefCommonPortable/DataModels/RecentShortcutInfo.cs [deleted file]
LibTVRefCommonPortable/DataModels/SettingShortcutInfo.cs [deleted file]
LibTVRefCommonPortable/DataModels/ShortcutInfo.cs [deleted file]
LibTVRefCommonPortable/DataModels/StateDescription.cs [deleted file]
LibTVRefCommonPortable/DataModels/WatcherType.cs [deleted file]
LibTVRefCommonPortable/LibTVRefCommonPortable.csproj [deleted file]
LibTVRefCommonPortable/Models/AppShortcutController.cs [deleted file]
LibTVRefCommonPortable/Models/ManagedApps.cs [deleted file]
LibTVRefCommonPortable/Models/RecentShortcutController.cs [deleted file]
LibTVRefCommonPortable/Properties/AssemblyInfo.cs [deleted file]
LibTVRefCommonPortable/Settings.StyleCop [deleted file]
LibTVRefCommonPortable/Stubs/ApplicationManagerAPITestStub.cs [deleted file]
LibTVRefCommonPortable/Stubs/FileSystemAPITestStub.cs [deleted file]
LibTVRefCommonPortable/Stubs/FileWatcherAPITestStub.cs [deleted file]
LibTVRefCommonPortable/Stubs/MediaContentAPITestStub.cs [deleted file]
LibTVRefCommonPortable/Utils/AppControlUtils.cs [deleted file]
LibTVRefCommonPortable/Utils/AppShortcutStorage.cs [deleted file]
LibTVRefCommonPortable/Utils/ApplicationManagerUtils.cs [deleted file]
LibTVRefCommonPortable/Utils/DateUtils.cs [deleted file]
LibTVRefCommonPortable/Utils/DebuggingUtils.cs [deleted file]
LibTVRefCommonPortable/Utils/FileSystemUtils.cs [deleted file]
LibTVRefCommonPortable/Utils/IAppControl.cs [deleted file]
LibTVRefCommonPortable/Utils/IAppLifeControl.cs [deleted file]
LibTVRefCommonPortable/Utils/IApplicationManagerAPIs.cs [deleted file]
LibTVRefCommonPortable/Utils/IDebuggingAPIs.cs [deleted file]
LibTVRefCommonPortable/Utils/IFileSystemAPIs.cs [deleted file]
LibTVRefCommonPortable/Utils/IFileSystemWatcherAPIs.cs [deleted file]
LibTVRefCommonPortable/Utils/IMediaContentAPIs.cs [deleted file]
LibTVRefCommonPortable/Utils/IPackageManager.cs [deleted file]
LibTVRefCommonPortable/Utils/IPlatformNotification.cs [deleted file]
LibTVRefCommonPortable/Utils/IStatePublisher.cs [deleted file]
LibTVRefCommonPortable/Utils/IStateSubscriber.cs [deleted file]
LibTVRefCommonPortable/Utils/ISystemSettings.cs [deleted file]
LibTVRefCommonPortable/Utils/ITVHome.cs [deleted file]
LibTVRefCommonPortable/Utils/IWindowAPIs.cs [deleted file]
LibTVRefCommonPortable/Utils/MediaContentUtils.cs [deleted file]
LibTVRefCommonPortable/Utils/PackageManagerUtils.cs [deleted file]
LibTVRefCommonPortable/Utils/RecentShortcutStorage.cs [deleted file]
LibTVRefCommonPortable/Utils/SizeUtils.cs [deleted file]
LibTVRefCommonPortable/Utils/TVHomeImpl.cs [deleted file]
LibTVRefCommonPortable/packages.config [deleted file]
LibTVRefCommonTizen/LibTVRefCommonTizen.csproj [deleted file]
LibTVRefCommonTizen/LibTVRefCommonTizen.project.json [deleted file]
LibTVRefCommonTizen/Ports/AppControlPort.cs [deleted file]
LibTVRefCommonTizen/Ports/ApplicationManagerPort.cs [deleted file]
LibTVRefCommonTizen/Ports/DbgPort.cs [deleted file]
LibTVRefCommonTizen/Ports/FileSystemPort.cs [deleted file]
LibTVRefCommonTizen/Ports/FileSystemWatcherPort.cs [deleted file]
LibTVRefCommonTizen/Ports/MediaContentPort.cs [deleted file]
LibTVRefCommonTizen/Ports/PackageManagerPort.cs [deleted file]
LibTVRefCommonTizen/Ports/SystemSettingsPort.cs [deleted file]
LibTVRefCommonTizen/Ports/WindowPort.cs [deleted file]
LibTVRefCommonTizen/Properties/AssemblyInfo.cs [deleted file]
LibTVRefCommonTizen/Settings.StyleCop [deleted file]
TVApps.sln [deleted file]
TVApps/TVApps.Tizen.TV/Renderer/NinePatchImageRenderer.cs [new file with mode: 0644]
TVApps/TVApps.Tizen.TV/Settings.StyleCop [new file with mode: 0644]
TVApps/TVApps.Tizen.TV/TVApps.Tizen.TV.csproj [new file with mode: 0644]
TVApps/TVApps.Tizen.TV/TVApps.TizenTV.cs [new file with mode: 0644]
TVApps/TVApps.Tizen.TV/bin/Debug/netcoreapp2.0/TVApps.Tizen.TV.deps.json [new file with mode: 0644]
TVApps/TVApps.Tizen.TV/bin/Debug/netcoreapp2.0/TVApps.Tizen.TV.runtimeconfig.dev.json [new file with mode: 0644]
TVApps/TVApps.Tizen.TV/bin/Debug/netcoreapp2.0/TVApps.Tizen.TV.runtimeconfig.json [new file with mode: 0644]
TVApps/TVApps.Tizen.TV/bin/Debug/netcoreapp2.0/org.tizen.xaapps-1.0.0.tpi [new file with mode: 0644]
TVApps/TVApps.Tizen.TV/bin/Debug/netcoreapp2.0/org.tizen.xaapps-1.0.0.tpk [new file with mode: 0644]
TVApps/TVApps.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/author-signature.xml [new file with mode: 0644]
TVApps/TVApps.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/shared/res/TVApps.Tizen.TV.png [new file with mode: 0644]
TVApps/TVApps.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/signature1.xml [new file with mode: 0644]
TVApps/TVApps.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/tizen-manifest.xml [new file with mode: 0644]
TVApps/TVApps.Tizen.TV/shared/res/TVApps.Tizen.TV.png [new file with mode: 0644]
TVApps/TVApps.Tizen.TV/tizen-manifest.xml [new file with mode: 0644]
TVApps/TVApps.TizenTV/Properties/AssemblyInfo.cs [deleted file]
TVApps/TVApps.TizenTV/Renderer/NinePatchImageRenderer.cs [deleted file]
TVApps/TVApps.TizenTV/Settings.StyleCop [deleted file]
TVApps/TVApps.TizenTV/TVApps.TizenTV.cs [deleted file]
TVApps/TVApps.TizenTV/TVApps.TizenTV.csproj [deleted file]
TVApps/TVApps.TizenTV/TVApps.TizenTV.project.json [deleted file]
TVApps/TVApps.TizenTV/shared/res/xaapps.png [deleted file]
TVApps/TVApps.TizenTV/tizen-manifest.xml [deleted file]
TVApps/TVApps/Controls/AppItemCell.xaml.cs
TVApps/TVApps/Properties/AssemblyInfo.cs [deleted file]
TVApps/TVApps/TVApps.csproj
TVApps/TVApps/Views/FooterNormalStatus.xaml.cs
TVApps/TVApps/Views/FooterPinStatus.xaml.cs
TVApps/TVApps/Views/MainPage.xaml.cs
TVApps/TVApps/bin/Debug/netstandard2.0/TVApps.deps.json [new file with mode: 0644]
TVApps/TVApps/packages.config [deleted file]
TVHome.sln [deleted file]
TVHome/TVHome.Tizen.TV/Settings.StyleCop [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/Sniper.cs [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/SniperException.cs [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/SniperInterOp.cs [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/TVHome.Tizen.TV.csproj [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/TVHome.TizenTV.cs [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/TVHome.Tizen.TV.deps.json [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/TVHome.Tizen.TV.runtimeconfig.dev.json [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/TVHome.Tizen.TV.runtimeconfig.json [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/org.tizen.xahome-1.0.0.tpi [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/org.tizen.xahome-1.0.0.tpk [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/author-signature.xml [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/AppIcon.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/bg_home_gradient_dimmed.9.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/bg_home_gradient_dimmed_option.9.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/btn_home_list_move_left.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/btn_home_list_move_right.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/btn_option_menu_nocontent_bg.9.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/btn_tizen_dropdown_line_dimmed.9.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/btn_tizen_dropdown_line_normal.9.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/btn_tizen_option_menu_bg_focused.9.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/btn_tizen_option_menu_bg_normal.9.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/btn_tizen_option_menu_bg_selected.9.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/btn_tizen_option_menu_list_box_bg.9.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/btn_tizen_option_menu_nocontent_bg.9.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/home_icon_bg_01.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/home_icon_bg_02.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/home_icon_bg_03.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/home_icon_bg_04.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/home_icon_bg_05.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/home_icon_bg_06.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/home_icon_bg_07.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/home_icon_bg_08.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_apps_additional_back.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_apps_launcher_mediahub_164.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_apps_launcher_mediahub_196.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_apps_launcher_pinmark.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_apps_pinmark.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_launcher_mediahub_136.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_launcher_mediahub_168.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_launcher_mediahub_42.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_addpin_138.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_addpin_182.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_apps_138.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_apps_182.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_apps_focused.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_apps_normal.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_apps_selected.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_apps_unselected.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_recent_focused.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_recent_normal.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_recent_selected.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_recent_unselected.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_settings_focused.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_settings_normal.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_settings_selected.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_settings_unselected.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_settings_all_138.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_settings_all_182.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_settings_brightness_138.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_settings_brightness_182.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_settings_color_138.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_settings_color_182.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_settings_contrast_138.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_settings_contrast_182.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_settings_tint_138.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_settings_tint_182.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_launcher_mediahub_138.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_launcher_mediahub_182.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_list_thumbnail_gradient_focused.9.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_list_thumbnail_gradient_normal.9.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_list_thumbnail_shadow_focused.9.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_home_list_addpin_focused.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_home_list_addpin_normal.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_home_list_allapps_focused.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_home_list_allapps_normal.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_home_list_mediahub_focused.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_home_list_mediahub_normal.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_home_menu_addpin_138.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_home_menu_addpin_182.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_home_menu_apps_138.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_home_menu_apps_182.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_option_box_more_dimmed.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_option_box_more_normal.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_option_menu_list_box_check_focused.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_option_menu_list_box_check_normal.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_option_menu_list_box_check_selected.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_apps_list_dimmed_75.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_apps_list_dimmed_85.9.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_apps_list_dimmed_95.9.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_apps_list_dimmed_check.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_apps_list_stroke.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_apps_no_contents.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_home_list_dimmed_apps_60.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_home_list_dimmed_apps_75.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_home_list_dimmed_recent_60.9.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_home_menu_focused_bg.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_home_recent_dimmed_option_75.9.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_tizen_apps_list_dimmed.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_tizen_apps_list_dimmed_check.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_tizen_home_list_bg_focused.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_tizen_home_list_bg_normal.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_tizen_home_list_bg_white_focused.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_tizen_home_list_bg_white_normal.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_tizen_home_list_dimmed_recent.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/screenshot.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/shared/res/TVHome.Tizen.TV.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/signature1.xml [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/tizen-manifest.xml [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/AppIcon.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/bg_home_gradient_dimmed.9.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/bg_home_gradient_dimmed_option.9.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/btn_home_list_move_left.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/btn_home_list_move_right.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/btn_option_menu_nocontent_bg.9.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/btn_tizen_dropdown_line_dimmed.9.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/btn_tizen_dropdown_line_normal.9.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/btn_tizen_option_menu_bg_focused.9.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/btn_tizen_option_menu_bg_normal.9.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/btn_tizen_option_menu_bg_selected.9.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/btn_tizen_option_menu_list_box_bg.9.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/btn_tizen_option_menu_nocontent_bg.9.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/home_icon_bg_01.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/home_icon_bg_02.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/home_icon_bg_03.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/home_icon_bg_04.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/home_icon_bg_05.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/home_icon_bg_06.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/home_icon_bg_07.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/home_icon_bg_08.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_apps_additional_back.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_apps_launcher_mediahub_164.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_apps_launcher_mediahub_196.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_apps_launcher_pinmark.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_apps_pinmark.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_home_launcher_mediahub_136.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_home_launcher_mediahub_168.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_home_launcher_mediahub_42.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_home_menu_addpin_138.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_home_menu_addpin_182.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_home_menu_apps_138.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_home_menu_apps_182.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_home_menu_apps_focused.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_home_menu_apps_normal.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_home_menu_apps_selected.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_home_menu_apps_unselected.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_home_menu_recent_focused.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_home_menu_recent_normal.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_home_menu_recent_selected.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_home_menu_recent_unselected.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_home_menu_settings_focused.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_home_menu_settings_normal.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_home_menu_settings_selected.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_home_menu_settings_unselected.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_home_settings_all_138.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_home_settings_all_182.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_home_settings_brightness_138.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_home_settings_brightness_182.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_home_settings_color_138.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_home_settings_color_182.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_home_settings_contrast_138.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_home_settings_contrast_182.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_home_settings_tint_138.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_home_settings_tint_182.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_launcher_mediahub_138.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_launcher_mediahub_182.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_list_thumbnail_gradient_focused.9.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_list_thumbnail_gradient_normal.9.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_list_thumbnail_shadow_focused.9.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_tizen_home_list_addpin_focused.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_tizen_home_list_addpin_normal.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_tizen_home_list_allapps_focused.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_tizen_home_list_allapps_normal.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_tizen_home_list_mediahub_focused.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_tizen_home_list_mediahub_normal.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_tizen_home_menu_addpin_138.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_tizen_home_menu_addpin_182.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_tizen_home_menu_apps_138.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_tizen_home_menu_apps_182.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_tizen_option_box_more_dimmed.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_tizen_option_box_more_normal.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_tizen_option_menu_list_box_check_focused.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_tizen_option_menu_list_box_check_normal.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/ic_tizen_option_menu_list_box_check_selected.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/img_apps_list_dimmed_75.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/img_apps_list_dimmed_85.9.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/img_apps_list_dimmed_95.9.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/img_apps_list_dimmed_check.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/img_apps_list_stroke.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/img_apps_no_contents.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/img_home_list_dimmed_apps_60.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/img_home_list_dimmed_apps_75.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/img_home_list_dimmed_recent_60.9.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/img_home_menu_focused_bg.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/img_home_recent_dimmed_option_75.9.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/img_tizen_apps_list_dimmed.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/img_tizen_apps_list_dimmed_check.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/img_tizen_home_list_bg_focused.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/img_tizen_home_list_bg_normal.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/img_tizen_home_list_bg_white_focused.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/img_tizen_home_list_bg_white_normal.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/img_tizen_home_list_dimmed_recent.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/res/screenshot.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/shared/res/TVHome.Tizen.TV.png [new file with mode: 0644]
TVHome/TVHome.Tizen.TV/tizen-manifest.xml [new file with mode: 0644]
TVHome/TVHome.TizenTV/Properties/AssemblyInfo.cs [deleted file]
TVHome/TVHome.TizenTV/Settings.StyleCop [deleted file]
TVHome/TVHome.TizenTV/Sniper.cs [deleted file]
TVHome/TVHome.TizenTV/SniperException.cs [deleted file]
TVHome/TVHome.TizenTV/SniperInterOp.cs [deleted file]
TVHome/TVHome.TizenTV/TVHome.TizenTV.cs [deleted file]
TVHome/TVHome.TizenTV/TVHome.TizenTV.csproj [deleted file]
TVHome/TVHome.TizenTV/TVHome.TizenTV.project.json [deleted file]
TVHome/TVHome.TizenTV/bin/Debug/TVHome.TizenTV.tpk [deleted file]
TVHome/TVHome.TizenTV/res/AppIcon.png [deleted file]
TVHome/TVHome.TizenTV/res/bg_home_gradient_dimmed.9.png [deleted file]
TVHome/TVHome.TizenTV/res/bg_home_gradient_dimmed_option.9.png [deleted file]
TVHome/TVHome.TizenTV/res/btn_home_list_move_left.png [deleted file]
TVHome/TVHome.TizenTV/res/btn_home_list_move_right.png [deleted file]
TVHome/TVHome.TizenTV/res/btn_option_menu_nocontent_bg.9.png [deleted file]
TVHome/TVHome.TizenTV/res/btn_tizen_dropdown_line_dimmed.9.png [deleted file]
TVHome/TVHome.TizenTV/res/btn_tizen_dropdown_line_normal.9.png [deleted file]
TVHome/TVHome.TizenTV/res/btn_tizen_option_menu_bg_focused.9.png [deleted file]
TVHome/TVHome.TizenTV/res/btn_tizen_option_menu_bg_normal.9.png [deleted file]
TVHome/TVHome.TizenTV/res/btn_tizen_option_menu_bg_selected.9.png [deleted file]
TVHome/TVHome.TizenTV/res/btn_tizen_option_menu_list_box_bg.9.png [deleted file]
TVHome/TVHome.TizenTV/res/btn_tizen_option_menu_nocontent_bg.9.png [deleted file]
TVHome/TVHome.TizenTV/res/home_icon_bg_01.png [deleted file]
TVHome/TVHome.TizenTV/res/home_icon_bg_02.png [deleted file]
TVHome/TVHome.TizenTV/res/home_icon_bg_03.png [deleted file]
TVHome/TVHome.TizenTV/res/home_icon_bg_04.png [deleted file]
TVHome/TVHome.TizenTV/res/home_icon_bg_05.png [deleted file]
TVHome/TVHome.TizenTV/res/home_icon_bg_06.png [deleted file]
TVHome/TVHome.TizenTV/res/home_icon_bg_07.png [deleted file]
TVHome/TVHome.TizenTV/res/home_icon_bg_08.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_apps_additional_back.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_apps_launcher_mediahub_164.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_apps_launcher_mediahub_196.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_apps_launcher_pinmark.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_apps_pinmark.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_home_launcher_mediahub_136.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_home_launcher_mediahub_168.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_home_launcher_mediahub_42.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_home_menu_addpin_138.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_home_menu_addpin_182.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_home_menu_apps_138.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_home_menu_apps_182.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_home_menu_apps_focused.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_home_menu_apps_normal.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_home_menu_apps_selected.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_home_menu_apps_unselected.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_home_menu_recent_focused.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_home_menu_recent_normal.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_home_menu_recent_selected.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_home_menu_recent_unselected.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_home_menu_settings_focused.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_home_menu_settings_normal.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_home_menu_settings_selected.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_home_menu_settings_unselected.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_home_settings_all_138.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_home_settings_all_182.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_home_settings_brightness_138.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_home_settings_brightness_182.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_home_settings_color_138.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_home_settings_color_182.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_home_settings_contrast_138.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_home_settings_contrast_182.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_home_settings_tint_138.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_home_settings_tint_182.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_launcher_mediahub_138.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_launcher_mediahub_182.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_list_thumbnail_gradient_focused.9.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_list_thumbnail_gradient_normal.9.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_list_thumbnail_shadow_focused.9.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_tizen_home_list_addpin_focused.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_tizen_home_list_addpin_normal.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_tizen_home_list_allapps_focused.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_tizen_home_list_allapps_normal.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_tizen_home_list_mediahub_focused.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_tizen_home_list_mediahub_normal.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_tizen_home_menu_addpin_138.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_tizen_home_menu_addpin_182.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_tizen_home_menu_apps_138.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_tizen_home_menu_apps_182.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_tizen_option_box_more_dimmed.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_tizen_option_box_more_normal.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_tizen_option_menu_list_box_check_focused.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_tizen_option_menu_list_box_check_normal.png [deleted file]
TVHome/TVHome.TizenTV/res/ic_tizen_option_menu_list_box_check_selected.png [deleted file]
TVHome/TVHome.TizenTV/res/img_apps_list_dimmed_75.png [deleted file]
TVHome/TVHome.TizenTV/res/img_apps_list_dimmed_85.9.png [deleted file]
TVHome/TVHome.TizenTV/res/img_apps_list_dimmed_95.9.png [deleted file]
TVHome/TVHome.TizenTV/res/img_apps_list_dimmed_check.png [deleted file]
TVHome/TVHome.TizenTV/res/img_apps_list_stroke.png [deleted file]
TVHome/TVHome.TizenTV/res/img_apps_no_contents.png [deleted file]
TVHome/TVHome.TizenTV/res/img_home_list_dimmed_apps_60.png [deleted file]
TVHome/TVHome.TizenTV/res/img_home_list_dimmed_apps_75.png [deleted file]
TVHome/TVHome.TizenTV/res/img_home_list_dimmed_recent_60.9.png [deleted file]
TVHome/TVHome.TizenTV/res/img_home_menu_focused_bg.png [deleted file]
TVHome/TVHome.TizenTV/res/img_home_recent_dimmed_option_75.9.png [deleted file]
TVHome/TVHome.TizenTV/res/img_tizen_apps_list_dimmed.png [deleted file]
TVHome/TVHome.TizenTV/res/img_tizen_apps_list_dimmed_check.png [deleted file]
TVHome/TVHome.TizenTV/res/img_tizen_home_list_bg_focused.png [deleted file]
TVHome/TVHome.TizenTV/res/img_tizen_home_list_bg_normal.png [deleted file]
TVHome/TVHome.TizenTV/res/img_tizen_home_list_bg_white_focused.png [deleted file]
TVHome/TVHome.TizenTV/res/img_tizen_home_list_bg_white_normal.png [deleted file]
TVHome/TVHome.TizenTV/res/img_tizen_home_list_dimmed_recent.png [deleted file]
TVHome/TVHome.TizenTV/res/screenshot.png [deleted file]
TVHome/TVHome.TizenTV/shared/org.tizen.home.service [deleted file]
TVHome/TVHome.TizenTV/shared/replace_default.home.sh [deleted file]
TVHome/TVHome.TizenTV/shared/res/xahome.png [deleted file]
TVHome/TVHome.TizenTV/tizen-manifest.xml [deleted file]
TVHome/TVHome/Controls/MainPanelButton.xaml.cs
TVHome/TVHome/Controls/SubPanelAllAppsButton.xaml.cs
TVHome/TVHome/Controls/SubPanelButton.xaml.cs
TVHome/TVHome/Controls/SubPanelSettingButton.xaml.cs
TVHome/TVHome/Controls/SubPanelThumbnailButton.xaml.cs
TVHome/TVHome/Properties/AssemblyInfo.cs [deleted file]
TVHome/TVHome/TVHome.csproj
TVHome/TVHome/Views/MainPage.xaml.cs
TVHome/TVHome/Views/SubThumbnailPanel.xaml.cs
TVHome/TVHome/bin/Debug/netstandard2.0/TVHome.deps.json [new file with mode: 0644]
TVHome/TVHome/packages.config [deleted file]
TVHomeApps.sln
packaging/org.tizen.xahome.path [deleted file]
packaging/org.tizen.xahome.service [deleted file]
packaging/org.tizen.xahome.spec [deleted file]

diff --git a/HomeUnitTest/AppShortcutTestCases.cs b/HomeUnitTest/AppShortcutTestCases.cs
deleted file mode 100644 (file)
index 0484e2e..0000000
+++ /dev/null
@@ -1,251 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using System;
-using Microsoft.VisualStudio.TestTools.UnitTesting;
-using LibTVRefCommonPortable.Models;
-using System.Threading.Tasks;
-using System.Linq;
-using LibTVRefCommonPortable.DataModels;
-
-namespace HomeUnitTest
-{
-    /// <summary>
-    /// A test cases for AppShortcutController
-    /// </summary>
-    [TestClass]
-    public class AppShortcutTestCases
-    {
-        /// <summary>
-        /// A instance of AppShortcutController
-        /// </summary>
-        private AppShortcutController controller;
-
-        /// <summary>
-        /// All Apps app shortcut name
-        /// </summary>
-        private static readonly string AllApps = "All apps";
-
-        /// <summary>
-        /// MediaHub app shortcut name
-        /// </summary>
-        private static readonly string MediaHub = "Media Hub";
-
-        /// <summary>
-        /// Add pin app shortcut name
-        /// </summary>
-        private static readonly string AddPin = "Add pin";
-
-        /// <summary>
-        /// A constructor that initialize AppShortcutController instance.
-        /// </summary>
-        public AppShortcutTestCases()
-        {
-            controller = new AppShortcutController();
-        }
-
-        #region 추가 테스트 특성
-        //
-        // 테스트를 작성할 때 다음 추가 특성을 사용할 수 있습니다.
-        //
-        // ClassInitialize를 사용하여 클래스의 첫 번째 테스트를 실행하기 전에 코드를 실행합니다.
-        // [ClassInitialize()]
-        // public static void MyClassInitialize(TestContext testContext) { }
-        //
-        // ClassCleanup을 사용하여 클래스의 테스트를 모두 실행한 후에 코드를 실행합니다.
-        // [ClassCleanup()]
-        // public static void MyClassCleanup() { }
-        //
-        // TestInitialize를 사용하여 각 테스트를 실행하기 전에 코드를 실행합니다.
-        // [TestInitialize()]
-        // public void MyTestInitialize() { }
-        //
-        // TestCleanup을 사용하여 각 테스트를 실행한 후에 코드를 실행합니다.
-        // [TestCleanup()]
-        // public void MyTestCleanup() { }
-        //
-        #endregion
-
-
-        [TestMethod]
-        public async Task AppShortcutGetInstalledAppsTest()
-        {
-            var installedApps = await controller.GetInstalledApps();
-
-            foreach (var app in installedApps)
-            {
-                Console.Out.WriteLine("App ID : " + app.AppID);
-                Console.Out.WriteLine("Installed Date : " + app.Installed);
-
-                Assert.AreNotEqual(app.AppID, null,
-                    "AppID is required!!!");
-
-                // Err : CurrentStateDescription should not be null
-                Assert.AreNotEqual(app.CurrentStateDescription, null,
-                    "CurrentStateDescription is null!!!");
-
-                // Err : type of Action should be the AppControlAction
-                Assert.IsTrue(app.CurrentStateDescription.Action is AppControlAction,
-                    "AppShortcut's action should be AppControlAction!!!");
-
-                // Err : Action in CurrentStateDescription should not be null
-                Assert.AreNotEqual(app.CurrentStateDescription.Action, null,
-                    "StateDescription should have Action!!!");
-
-                // Err : Label in CurrentStateDescription should not be null
-                Assert.AreNotEqual(app.CurrentStateDescription.Label, null,
-                    "StateDescription should have Label!!!");
-
-                // Err : IconPath in CurrentStateDescription should not be null
-                Assert.AreNotEqual(app.CurrentStateDescription.IconPath, null,
-                    "StateDescription should have App Icon!!!");
-
-                // Err : removable app property check
-                if (app.CurrentStateDescription.Label.Contains("removable") &&
-                    app.IsRemovable == false)
-                {
-                    Assert.Fail("Setting Removable flag is wrong");
-                }
-
-                // Err : Invalid state description removing.
-                if (app.CurrentStateDescription.Label.Contains("invalid"))
-                {
-                    Assert.Fail("Invalid App Shortcut included!!!");
-                }
-            }
-        }
-
-        [TestMethod]
-        public void AppShortcutGetDefaultShortcutsTest()
-        {
-            var defaultShortcuts = controller.GetDefaultShortcuts();
-
-            // Req : Order of default shortcuts is All apps > Media Hub > Add pin
-            Assert.AreNotEqual(defaultShortcuts.ElementAt(0).CurrentStateDescription,
-                null, "All Apps CurrentStateDescription is invalid!!!");
-            Assert.AreEqual(defaultShortcuts.ElementAt(0).CurrentStateDescription.Label, AllApps);
-
-            Assert.AreNotEqual(defaultShortcuts.ElementAt(1).CurrentStateDescription,
-                null, "Media Hub CurrentStateDescription is invalid!!!");
-            Assert.AreEqual(defaultShortcuts.ElementAt(1).CurrentStateDescription.Label, MediaHub);
-
-            Assert.AreNotEqual(defaultShortcuts.ElementAt(2).CurrentStateDescription,
-                null, "Add pin CurrentStateDescription is invalid!!!");
-            Assert.AreEqual(defaultShortcuts.ElementAt(2).CurrentStateDescription.Label, AddPin);
-        }
-
-        [TestMethod]
-        public async Task AppShortcutGetPinnedAppsWithDefaultShortcutsTest()
-        {
-            var pinnedApps = await controller.GetPinnedAppsWithDefaultShortcuts();
-
-            // Req : A Maximum number of pinned apps is 10. + All apps, Media Hub, Add pin
-            Assert.IsTrue(pinnedApps.Count() <= 13, "A Maximum number of pinned apps is 10!!! NOT " + pinnedApps.Count());
-
-            // Req : Order of default shortcuts is All apps > Media Hub > Add pin
-            Assert.AreNotEqual(pinnedApps.ElementAt(0).CurrentStateDescription,
-                null, "All Apps CurrentStateDescription is invalid!!!");
-            Assert.AreEqual(pinnedApps.ElementAt(0).CurrentStateDescription.Label, AllApps);
-
-            Assert.AreNotEqual(pinnedApps.ElementAt(1).CurrentStateDescription,
-                null, "Media Hub CurrentStateDescription is invalid!!!");
-            Assert.AreEqual(pinnedApps.ElementAt(1).CurrentStateDescription.Label, MediaHub);
-
-            Assert.AreNotEqual(pinnedApps.ElementAt(pinnedApps.Count() - 1).CurrentStateDescription,
-                null, "Add pin CurrentStateDescription is invalid!!!");
-            Assert.AreEqual(pinnedApps.ElementAt(pinnedApps.Count() - 1).CurrentStateDescription.Label, AddPin);
-
-            foreach (var shortcut in pinnedApps)
-            {
-                // Err : shortcut should be AppShortcutInfo
-                if ((shortcut is AppShortcutInfo) == false)
-                {
-                    Assert.Fail("Invalid ShortCut type!!!");
-                }
-
-                var app = shortcut as AppShortcutInfo;
-
-                Console.Out.WriteLine("ID : " + app.AppID);
-                Console.Out.WriteLine("Label : " + app.CurrentStateDescription.Label);
-                Console.Out.WriteLine("Installed : " + app.Installed);
-
-                // Err : CurrentStateDescription should not be null
-                Assert.AreNotEqual(app.CurrentStateDescription, null,
-                    "StateDescription CurrentStateDescription is null!!!");
-
-                // Err : Both ID and Label should not be null
-                Assert.IsFalse((app.AppID == null || app.AppID.Length < 1) &&
-                    (app.CurrentStateDescription.Label == null || app.CurrentStateDescription.Label.Length < 1),
-                        "Both ID and Label should not be null!!!");
-
-                // Err : AppID should be exist
-                if (app.AppID == null)
-                {
-                    if (app.CurrentStateDescription.Label.CompareTo(AllApps) != 0 &&
-                        app.CurrentStateDescription.Label.CompareTo(MediaHub) != 0 &&
-                        app.CurrentStateDescription.Label.CompareTo(AddPin) != 0)
-                    {
-                        Assert.Fail("App ID is missing!!! " + app.CurrentStateDescription.Label);
-                    }
-                }
-                else
-                {
-                    // Req : TVHome, TVApps, MediaHub, Settings should not be pinned.
-                    Assert.IsFalse(app.AppID.Contains("xahome"), "TVHome should not be pinned");
-                    Assert.IsFalse(app.AppID.Contains("xaapps"), "TVApps should not be pinned");
-                    Assert.IsFalse(app.AppID.Contains("xamediahub"), "MediaHub should not be pinned");
-                    Assert.IsFalse(app.AppID.Contains("settings"), "Settings should not be pinned");
-                }
-
-                // Err : removable app property check
-                if (app.CurrentStateDescription.Label.Contains("removable") &&
-                    app.IsRemovable == false)
-                {
-                    Assert.Fail("Removable is failed");
-                }
-
-                // Err : Invalid state description removing.
-                if (app.CurrentStateDescription.Label.Contains("invalid"))
-                {
-                    Assert.Fail("Invalid App Shortcut included!!!");
-                }
-            }
-        }
-
-        [TestMethod]
-        public async Task AppShortcutGetPinnedAppsAppIDsTest()
-        {
-            var pinnedAppsIDs = await controller.GetPinnedAppsAppIDs();
-
-            // Req : A Maximum number of pinned apps is 10.
-            Assert.IsTrue(pinnedAppsIDs.Count() <= 10,
-                "A Maximum number of pinned apps is 10!!! NOT " + pinnedAppsIDs.Count());
-
-            foreach (var appID in pinnedAppsIDs.Keys)
-            {
-                // Err : AppID should not be null or empty.
-                Assert.AreNotEqual(appID, null, "App ID should not be null");
-                Assert.IsFalse(appID.Length < 1, "App ID should not be empty");
-
-                // Req : TVHome, TVApps, MediaHub, Settings should not be pinned.
-                Assert.IsFalse(appID.Contains("xahome"), "TVHome should not be pinned");
-                Assert.IsFalse(appID.Contains("xaapps"), "TVApps should not be pinned");
-                Assert.IsFalse(appID.Contains("xamediahub"), "MediaHub should not be pinned");
-                Assert.IsFalse(appID.Contains("settings"), "Settings should not be pinned");
-            }
-        }
-    }
-}
diff --git a/HomeUnitTest/HomeUnitTest.csproj b/HomeUnitTest/HomeUnitTest.csproj
deleted file mode 100755 (executable)
index 3bba917..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="..\packages\MSTest.TestAdapter.1.1.11\build\net45\MSTest.TestAdapter.props" Condition="Exists('..\packages\MSTest.TestAdapter.1.1.11\build\net45\MSTest.TestAdapter.props')" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProjectGuid>{1F2DB8A0-7D1E-4BA3-BF27-335D033C572C}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>HomeUnitTest</RootNamespace>
-    <AssemblyName>HomeUnitTest</AssemblyName>
-    <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">15.0</VisualStudioVersion>
-    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
-    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages</ReferencePath>
-    <IsCodedUITest>False</IsCodedUITest>
-    <TestProjectType>UnitTest</TestProjectType>
-    <NuGetPackageImportStamp>
-    </NuGetPackageImportStamp>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
-    <DefineConstants>TRACE;DEBUG</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
-    <PackageReference Include="Tizen.Xamarin.Forms.Extension">
-      <Version>2.3.5-v00015</Version>
-    </PackageReference>
-    <PackageReference Include="Xamarin.Forms">
-      <Version>2.4.0-r266-001</Version>
-    </PackageReference>
-    <PackageReference Include="MSTest.TestAdapter">
-        <Version>1.1.11</Version>
-    </PackageReference>
-    <PackageReference Include="MSTest.TestFramework">
-        <Version>1.1.11</Version>
-    </PackageReference>
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="AppShortcutTestCases.cs" />
-    <Compile Include="ManagedAppsTestCases.cs" />
-    <Compile Include="RecentTestCases.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\LibTVRefCommonPortable\LibTVRefCommonPortable.csproj">
-      <Project>{67f9d3a8-f71e-4428-913f-c37ae82cdb24}</Project>
-      <Name>LibTVRefCommonPortable</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="packages.config" />
-  </ItemGroup>
-  <Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
-  </Target>
-</Project>
\ No newline at end of file
diff --git a/HomeUnitTest/ManagedAppsTestCases.cs b/HomeUnitTest/ManagedAppsTestCases.cs
deleted file mode 100644 (file)
index 4d12be1..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using Microsoft.VisualStudio.TestTools.UnitTesting;
-using LibTVRefCommonPortable.Models;
-
-namespace HomeUnitTest
-{
-    /// <summary>
-    /// A Test cases for ManagedApps class.
-    /// </summary>
-    [TestClass]
-    public class ManagedAppsTestCases
-    {
-        /// <summary>
-        /// TVHome package ID
-        /// </summary>
-        private static readonly string Home = "org.tizen.xahome";
-
-        /// <summary>
-        /// TVApps package ID
-        /// </summary>
-        private static readonly string Apps = "org.tizen.xaapps";
-
-        /// <summary>
-        /// Mediahub package ID
-        /// </summary>
-        private static readonly string Mediahub = "org.tizen.xamediahub";
-
-        /// <summary>
-        /// Settings package ID
-        /// </summary>
-        private static readonly string Settings = "org.tizen.settings";
-
-        [TestMethod]
-        public void ManagerAppsIsHiddenRecentAppTest()
-        {
-            Assert.IsTrue(ManagedApps.IsHiddenRecentApp(Home), "TVHome should not be hidden in Recents");
-            Assert.IsTrue(ManagedApps.IsHiddenRecentApp(Apps), "Apps should not be hidden in Recents");
-            Assert.IsTrue(ManagedApps.IsHiddenRecentApp(Mediahub), "Mediahub should not be hidden in Recents");
-            Assert.IsTrue(ManagedApps.IsHiddenRecentApp(Settings), "Settings should not be hidden in Recents");
-        }
-
-        [TestMethod]
-        public void ManagerAppsIsNonPinnableAppsTest()
-        {
-            Assert.IsTrue(ManagedApps.IsNonPinnableApps(Home), "TVHome should not be pinned");
-            Assert.IsTrue(ManagedApps.IsNonPinnableApps(Apps), "Apps should not be pinned");
-            Assert.IsTrue(ManagedApps.IsNonPinnableApps(Mediahub), "Mediahub should not be pinned");
-            Assert.IsTrue(ManagedApps.IsNonPinnableApps(Settings), "Settings should not be pinned");
-        }
-    }
-}
diff --git a/HomeUnitTest/Properties/AssemblyInfo.cs b/HomeUnitTest/Properties/AssemblyInfo.cs
deleted file mode 100644 (file)
index 695ffc8..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-// <auto-generated/>
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-[assembly: AssemblyTitle("HomeUnitTest")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("HomeUnitTest")]
-[assembly: AssemblyCopyright("Copyright ©  2017")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-[assembly: ComVisible(false)]
-
-[assembly: Guid("1f2db8a0-7d1e-4ba3-bf27-335d033c572c")]
-
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/HomeUnitTest/RecentTestCases.cs b/HomeUnitTest/RecentTestCases.cs
deleted file mode 100644 (file)
index b0fae05..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using System;
-using Microsoft.VisualStudio.TestTools.UnitTesting;
-using LibTVRefCommonPortable.Models;
-using LibTVRefCommonPortable.DataModels;
-using System.Linq;
-
-namespace HomeUnitTest
-{
-    /// <summary>
-    /// A test cases for RecentShortcutController
-    /// </summary>
-    [TestClass]
-    public class RecentTestCases
-    {
-        /// <summary>
-        /// A instance of RecentShortcutController
-        /// </summary>
-        private RecentShortcutController controller;
-
-        /// <summary>
-        /// A constructor that initializes RecentShortcutController instance.
-        /// </summary>
-        public RecentTestCases()
-        {
-            controller = new RecentShortcutController();
-        }
-
-        [TestMethod]
-        public void RecentGetListTest()
-        {
-            var recents = controller.GetList();
-
-            // Req : MAX number of recent = 10
-            if (recents.Count() > 10)
-            {
-                Assert.Fail("Too many Recent!!!, Returned = " + recents.Count());
-            }
-
-            bool isAllMedias = true;
-            bool isAllApps = true;
-
-            foreach (var recent in recents)
-            {
-                Console.Out.WriteLine("-----------------------------");
-                Console.Out.WriteLine("Type : " + recent.Type);
-                Console.Out.WriteLine("ID : " + recent.Id);
-                Console.Out.WriteLine("Date : " + recent.Date);
-                Console.Out.WriteLine("ScreenShot : " + recent.ScreenshotPath);
-
-                switch (recent.Type)
-                {
-                    case RecentShortcutType.Application:
-                        isAllMedias = false;
-                        break;
-                    case RecentShortcutType.Media:
-                        isAllApps = false;
-                        break;
-                }
-
-                // Req : Invalid Recent(id, label has 'invalid') should not included!!!
-                if (recent.CurrentStateDescription == null ||
-                    recent.CurrentStateDescription.Label.ToLower().Contains("invalid"))
-                {
-                    Assert.Fail("Recent including invalid items!!!, " + recent.Id);
-                }
-            }
-
-            // Err : Test Sample Recents are consist of App and Media types both.
-            if (isAllMedias || isAllApps)
-            {
-                Assert.Fail("Invalid Recent list, All Media({0}), All Apps({1})", isAllMedias, isAllApps);
-            }
-        }
-    }
-}
diff --git a/HomeUnitTest/Settings.StyleCop b/HomeUnitTest/Settings.StyleCop
deleted file mode 100644 (file)
index 837530c..0000000
+++ /dev/null
@@ -1,722 +0,0 @@
-<StyleCopSettings Version="105">
-  <GlobalSettings>
-    <StringProperty Name="MergeSettingsFiles">NoMerge</StringProperty>
-  </GlobalSettings>
-  <Analyzers>
-    <Analyzer AnalyzerId="StyleCop.CSharp.DocumentationRules">
-      <Rules>
-        <Rule Name="ElementsMustBeDocumented">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementDocumentationMustHaveSummaryText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="EnumerationItemsMustBeDocumented">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DocumentationMustContainValidXml">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementDocumentationMustHaveSummary">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="PartialElementDocumentationMustHaveSummary">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementDocumentationMustNotHaveDefaultSummary">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="VoidReturnValueMustNotBeDocumented">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="GenericTypeParametersMustBeDocumented">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="GenericTypeParametersMustBeDocumentedPartialClass">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="GenericTypeParameterDocumentationMustMatchTypeParameters">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="GenericTypeParameterDocumentationMustDeclareParameterName">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="GenericTypeParameterDocumentationMustHaveText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="PropertySummaryDocumentationMustMatchAccessors">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="PropertySummaryDocumentationMustOmitSetAccessorWithRestrictedAccess">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementDocumentationMustNotBeCopiedAndPasted">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="SingleLineCommentsMustNotUseDocumentationStyleSlashes">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DocumentationTextMustNotBeEmpty">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DocumentationTextMustContainWhitespace">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DocumentationMustMeetCharacterPercentage">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ConstructorSummaryDocumentationMustBeginWithStandardText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DestructorSummaryDocumentationMustBeginWithStandardText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DocumentationHeadersMustNotContainBlankLines">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="IncludedDocumentationXPathDoesNotExist">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="IncludeNodeDoesNotContainValidFileAndPath">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="InheritDocMustBeUsedWithInheritingClass">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementDocumentationMustBeSpelledCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileMustHaveHeader">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileHeaderMustShowCopyright">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileHeaderMustHaveCopyrightText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileHeaderMustContainFileName">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileHeaderFileNameDocumentationMustMatchFileName">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileHeaderMustHaveValidCompanyText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileHeaderFileNameDocumentationMustMatchTypeName">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-      </Rules>
-      <AnalyzerSettings />
-    </Analyzer>
-    <Analyzer AnalyzerId="StyleCop.CSharp.NamingRules">
-      <Rules>
-        <Rule Name="ConstFieldNamesMustBeginWithUpperCaseLetter">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FieldNamesMustBeginWithLowerCaseLetter">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FieldNamesMustNotContainUnderscore">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementMustBeginWithLowerCaseLetter">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="NonPrivateReadonlyFieldsMustBeginWithUpperCaseLetter">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FieldNamesMustNotUseHungarianNotation">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="AccessibleFieldsMustBeginWithUpperCaseLetter">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="VariableNamesMustNotBePrefixed">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FieldNamesMustNotBeginWithUnderscore">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="StaticReadonlyFieldsMustBeginWithUpperCaseLetter">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-      </Rules>
-      <AnalyzerSettings />
-    </Analyzer>
-    <Analyzer AnalyzerId="StyleCop.CSharp.LayoutRules">
-      <Rules>
-        <Rule Name="AllAccessorsMustBeMultiLineOrSingleLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="OpeningCurlyBracketsMustNotBeFollowedByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementDocumentationHeadersMustNotBeFollowedByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="CodeMustNotContainMultipleBlankLinesInARow">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ClosingCurlyBracketsMustNotBePrecededByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="OpeningCurlyBracketsMustNotBePrecededByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ChainedStatementBlocksMustNotBePrecededByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="WhileDoFooterMustNotBePrecededByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="SingleLineCommentsMustNotBeFollowedByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementDocumentationHeaderMustBePrecededByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="SingleLineCommentMustBePrecededByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementsMustBeSeparatedByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="CodeMustNotContainBlankLinesAtStartOfFile">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="CodeMustNotContainBlankLinesAtEndOfFile">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-      </Rules>
-      <AnalyzerSettings />
-    </Analyzer>
-    <Analyzer AnalyzerId="StyleCop.CSharp.MaintainabilityRules">
-      <Rules>
-        <Rule Name="AccessModifierMustBeDeclared">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FieldsMustBePrivate">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="CodeAnalysisSuppressionMustHaveJustification">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DebugAssertMustProvideMessageText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DebugFailMustProvideMessageText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileMayOnlyContainASingleClass">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileMayOnlyContainASingleNamespace">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="StatementMustNotUseUnnecessaryParenthesis">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ArithmeticExpressionsMustDeclarePrecedence">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ConditionalExpressionsMustDeclarePrecedence">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="RemoveDelegateParenthesisWhenPossible">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="AttributeConstructorMustNotUseUnnecessaryParenthesis">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="RemoveUnnecessaryCode">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-      </Rules>
-      <AnalyzerSettings />
-    </Analyzer>
-    <Analyzer AnalyzerId="StyleCop.CSharp.OrderingRules">
-      <Rules>
-        <Rule Name="UsingDirectivesMustBePlacedWithinNamespace">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementsMustAppearInTheCorrectOrder">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementsMustBeOrderedByAccess">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ConstantsMustAppearBeforeFields">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="StaticElementsMustAppearBeforeInstanceElements">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DeclarationKeywordsMustFollowOrder">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ProtectedMustComeBeforeInternal">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="PropertyAccessorsMustFollowOrder">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="EventAccessorsMustFollowOrder">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="StaticReadonlyElementsMustAppearBeforeStaticNonReadonlyElements">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="InstanceReadonlyElementsMustAppearBeforeInstanceNonReadonlyElements">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="NoValueFirstComparison">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="SystemUsingDirectivesMustBePlacedBeforeOtherUsingDirectives">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="UsingAliasDirectivesMustBePlacedAfterOtherUsingDirectives">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="UsingDirectivesMustBeOrderedAlphabeticallyByNamespace">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="UsingAliasDirectivesMustBeOrderedAlphabeticallyByAliasName">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="UsingStaticDirectivesMustBePlacedAfterUsingNamespaceDirectives">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-      </Rules>
-      <AnalyzerSettings />
-    </Analyzer>
-    <Analyzer AnalyzerId="StyleCop.CSharp.ReadabilityRules">
-      <Rules>
-        <Rule Name="CommentsMustContainText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DoNotPrefixCallsWithBaseUnlessLocalImplementationExists">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="PrefixLocalCallsWithThis">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="PrefixCallsCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="OpeningParenthesisMustBeOnDeclarationLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ClosingParenthesisMustBeOnLineOfLastParameter">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ClosingParenthesisMustBeOnLineOfOpeningParenthesis">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="CommaMustBeOnSameLineAsPreviousParameter">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ParameterListMustFollowDeclaration">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ParameterMustFollowComma">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="SplitParametersMustStartOnLineAfterDeclaration">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ParametersMustBeOnSameLineOrSeparateLines">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ParameterMustNotSpanMultipleLines">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="QueryClauseMustFollowPreviousClause">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="QueryClausesMustBeOnSeparateLinesOrAllOnOneLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="QueryClauseMustBeginOnNewLineWhenPreviousClauseSpansMultipleLines">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="QueryClausesSpanningMultipleLinesMustBeginOnOwnLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DoNotPlaceRegionsWithinElements">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="CodeMustNotContainEmptyStatements">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="CodeMustNotContainMultipleStatementsOnOneLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="BlockStatementsMustNotContainEmbeddedComments">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="BlockStatementsMustNotContainEmbeddedRegions">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="UseStringEmptyForEmptyStrings">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="UseBuiltInTypeAlias">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="UseShorthandForNullableTypes">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-      </Rules>
-      <AnalyzerSettings />
-    </Analyzer>
-    <Analyzer AnalyzerId="StyleCop.CSharp.SpacingRules">
-      <Rules>
-        <Rule Name="CommasMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="SemicolonsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DocumentationLinesMustBeginWithSingleSpace">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="SingleLineCommentsMustBeginWithSingleSpace">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="PreprocessorKeywordsMustNotBePrecededBySpace">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="OperatorKeywordMustBeFollowedBySpace">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="OpeningCurlyBracketsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ClosingCurlyBracketsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="OpeningGenericBracketsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ClosingGenericBracketsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="OpeningAttributeBracketsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ClosingAttributeBracketsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="NullableTypeSymbolsMustNotBePrecededBySpace">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="MemberAccessSymbolsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="IncrementDecrementSymbolsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="NegativeSignsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="PositiveSignsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DereferenceAndAccessOfSymbolsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ColonsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="CodeMustNotContainMultipleWhitespaceInARow">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="CodeMustNotContainSpaceAfterNewKeywordInImplicitlyTypedArrayAllocation">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="TabsMustNotBeUsed">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DoNotSplitNullConditionalOperators">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-      </Rules>
-      <AnalyzerSettings />
-    </Analyzer>
-  </Analyzers>
-</StyleCopSettings>
\ No newline at end of file
diff --git a/HomeUnitTest/packages.config b/HomeUnitTest/packages.config
deleted file mode 100644 (file)
index 46675bd..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<packages>
-  <package id="MSTest.TestAdapter" version="1.1.11" targetFramework="net461" />
-  <package id="MSTest.TestFramework" version="1.1.11" targetFramework="net461" />
-  <package id="Xamarin.Forms" version="2.3.5-r233-012" targetFramework="net461" />
-</packages>
\ No newline at end of file
diff --git a/LibCommon.Shared/DataModels/AppControlAction.cs b/LibCommon.Shared/DataModels/AppControlAction.cs
new file mode 100644 (file)
index 0000000..e30afe4
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using System;
+using LibTVRefCommonPortable.Utils;
+using System.Collections.Generic;
+
+namespace LibTVRefCommonPortable.DataModels
+{
+    /// <summary>
+    /// A class defines App Control behavior.
+    /// </summary>
+    public class AppControlAction : IAction
+    {
+        /// <summary>
+        /// A target application ID
+        /// </summary>
+        public string AppID { get; set; }
+
+        /// <summary>
+        /// A dictionary which has extra data for App Control
+        /// </summary>
+        protected Dictionary<string, string> extraData;
+
+        /// <summary>
+        /// A dictionary which has extra data for App Control
+        /// </summary>
+        public Dictionary<string, string> ExtraData
+        {
+            get
+            {
+                if (extraData == null)
+                {
+                    extraData = new Dictionary<string, string>();
+                }
+
+                return extraData;
+            }
+        }
+
+        /// <summary>
+        /// A method which invoke an App Control to the application of the AppID
+        /// </summary>
+        /// <returns>a next state after App Control invocation</returns>
+        public string Execute()
+        {
+            // Warn : Do NOT pass 'E'xtraData, it will create a new Dictionary and it might cause unexpected situation.
+            AppControlUtils.SendLaunchRequest(AppID, extraData);
+            return "default";
+        }
+    }
+}
diff --git a/LibCommon.Shared/DataModels/AppShortcutInfo.cs b/LibCommon.Shared/DataModels/AppShortcutInfo.cs
new file mode 100644 (file)
index 0000000..7aeff96
--- /dev/null
@@ -0,0 +1,232 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using LibTVRefCommonPortable.Utils;
+using System;
+using System.Xml.Serialization;
+using Xamarin.Forms;
+
+namespace LibTVRefCommonPortable.DataModels
+{
+    /// <summary>
+    /// A class defines App Shortcut button
+    /// </summary>
+    public class AppShortcutInfo : ShortcutInfo
+    {
+        /// <summary>
+        /// An application ID of the App Shortcut.
+        /// </summary>
+        public string AppID { get; set; }
+
+        /// <summary>
+        /// An App Shortcut status.
+        /// </summary>
+        [XmlIgnore]
+        public string Status { get; set; }
+
+        /// <summary>
+        /// A flag indicates that a App Shortcut is checked or not.
+        /// </summary>
+        [XmlIgnore]
+        private bool isChecked;
+
+        /// <summary>
+        /// A flag indicates that a App Shortcut is checked or not.
+        /// </summary>
+        [XmlIgnore]
+        public bool IsChecked
+        {
+            get
+            {
+                return isChecked;
+            }
+
+            set
+            {
+                if (isChecked != value)
+                {
+                    isChecked = value;
+                    OnPropertyChanged("IsChecked");
+                }
+            }
+        }
+
+        /// <summary>
+        /// A flag indicates that a App Shortcut is pinned or not.
+        /// </summary>
+        [XmlIgnore]
+        private bool isPinned;
+
+        /// <summary>
+        /// A flag indicates that a App Shortcut is pinned or not.
+        /// </summary>
+        [XmlIgnore]
+        public bool IsPinned
+        {
+            get
+            {
+                return isPinned;
+            }
+
+            set
+            {
+                if (isPinned != value)
+                {
+                    isPinned = value;
+                    OnPropertyChanged("IsPinned");
+                }
+            }
+        }
+
+        /// <summary>
+        /// A flag indicates that a App Shortcut can be removed.
+        /// </summary>
+        [XmlIgnore]
+        public bool IsRemovable { get; set; }
+
+        /// <summary>
+        /// A flag indicates that a App Shortcut is focused or not.
+        /// </summary>
+        [XmlIgnore]
+        private bool isFocused;
+
+        /// <summary>
+        /// A flag indicates that a App Shortcut is focused or not.
+        /// </summary>
+        [XmlIgnore]
+        public bool IsFocused
+        {
+            get
+            {
+                return isFocused;
+            }
+
+            set
+            {
+                if (isFocused != value)
+                {
+                    isFocused = value;
+                    OnPropertyChanged("IsFocused");
+                }
+            }
+        }
+
+        /// <summary>
+        /// A flag indicates that a App Shortcut is dimmed or not.
+        /// </summary>
+        [XmlIgnore]
+        private bool isDim;
+
+        /// <summary>
+        /// A flag indicates that a App Shortcut is dimmed or not.
+        /// </summary>
+        [XmlIgnore]
+        public bool IsDim
+        {
+            get
+            {
+                return isDim;
+            }
+
+            set
+            {
+                if (isDim != value)
+                {
+                    isDim = value;
+                    OnPropertyChanged("IsDim");
+                }
+            }
+        }
+
+        /// <summary>
+        /// A flag indicates that a App Shortcut is showing options or not.
+        /// </summary>
+        [XmlIgnore]
+        private bool isShowOptions;
+
+        /// <summary>
+        /// A flag indicates that a App Shortcut is showing options or not.
+        /// </summary>
+        [XmlIgnore]
+        public bool IsShowOptions
+        {
+            get
+            {
+                return isShowOptions;
+            }
+
+            set
+            {
+                if (isShowOptions != value)
+                {
+                    isShowOptions = value;
+                    OnPropertyChanged("IsShowOptions");
+                }
+            }
+        }
+
+        /// <summary>
+        /// An app installed time.
+        /// </summary>
+        [XmlIgnore]
+        public DateTime Installed { get; set; }
+
+        /// <summary>
+        /// A pin command of the Option menu.
+        /// </summary>
+        [XmlIgnore]
+        public Command OptionMenuPinToggleCommand { get; set; }
+
+        /// <summary>
+        /// A deleting app command of the Option menu.
+        /// </summary>
+        [XmlIgnore]
+        public Command OptionMenuDeleteCommand { get; set; }
+
+        [XmlIgnore]
+        public Command ToDefaultCommand { get; set; }
+
+        /// <summary>
+        /// A Constructor.
+        /// Initializes AppShortcutInfo.
+        /// </summary>
+        public AppShortcutInfo()
+        {
+            OptionMenuPinToggleCommand = new Command(() =>
+            {
+                MessagingCenter.Send<AppShortcutInfo, string>(this, "OptionMenuPinToggle", AppID);
+            });
+
+            OptionMenuDeleteCommand = new Command(() =>
+            {
+                MessagingCenter.Send<AppShortcutInfo, string>(this, "OptionMenuDelete", AppID);
+            });
+
+            ToDefaultCommand = new Command(() =>
+            {
+                MessagingCenter.Send<AppShortcutInfo>(this, "ChangeToDefaultMode");
+            });
+        }
+
+        /// <summary>
+        /// Update State of a shortcut.
+        /// </summary>
+        public override void UpdateState()
+        {
+            SetCurrentState("default");
+        }
+    }
+}
diff --git a/LibCommon.Shared/DataModels/CommandAction.cs b/LibCommon.Shared/DataModels/CommandAction.cs
new file mode 100644 (file)
index 0000000..220c7c5
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using System;
+
+namespace LibTVRefCommonPortable.DataModels
+{
+    /// <summary>
+    /// A Action class which can invoke a Command
+    /// </summary>
+    public class CommandAction : IAction
+    {
+        /// <summary>
+        /// A next description after invocation of the Command.
+        /// </summary>
+        public string NextStateDescription { get; set; }
+
+        /// <summary>
+        /// A Command to be executed
+        /// </summary>
+        public event EventHandler<String> Command;
+
+        /// <summary>
+        /// A Command parameter.
+        /// </summary>
+        public string CommandParameter { get; set; }
+
+        /// <summary>
+        /// A method execute a action.
+        /// </summary>
+        /// <returns>A next statue of a Shortcut.</returns>
+        public string Execute()
+        {
+            Command?.Invoke(this, CommandParameter);
+            return NextStateDescription;
+        }
+    }
+}
diff --git a/LibCommon.Shared/DataModels/FileSystemEventCustomArgs.cs b/LibCommon.Shared/DataModels/FileSystemEventCustomArgs.cs
new file mode 100644 (file)
index 0000000..b608ea9
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using System;
+
+namespace LibTVRefCommonPortable.DataModels
+{
+    /// <summary>
+    /// A class contains file system event arguments.
+    /// </summary>
+    public class FileSystemEventCustomArgs : EventArgs
+    {
+        /// <summary>
+        /// Initializes a new instance of the System.IO.FileSystemEventArgs class.
+        /// </summary>
+        /// <param name="changeType">One of the System.IO.WatcherChangeTypes values, which represents the kind of change detected in the file system.</param>
+        /// <param name="directory">The root directory of the affected file or directory.</param>
+        /// <param name="name">The name of the affected file or directory.</param>
+        public FileSystemEventCustomArgs(WatcherType changeType, string directory, string name)
+        {
+            ChangeType = changeType;
+            FullPath = directory;
+            Name = name;
+        }
+
+        /// <summary>
+        /// Gets the type of directory event that occurred.
+        /// One of the System.IO.WatcherChangeTypes values that represents the kind of change
+        /// detected in the file system.
+        /// </summary>
+        public WatcherType ChangeType { set; get; }
+
+        /// <summary>
+        /// Gets the fully qualified path of the affected file or directory.
+        /// The path of the affected file or directory.
+        /// </summary>
+        public string FullPath { set; get; }
+
+        /// <summary>
+        /// Gets the name of the affected file or directory.
+        /// The name of the affected file or directory.
+        /// </summary>
+        public string Name { set; get; }
+    }
+}
\ No newline at end of file
diff --git a/LibCommon.Shared/DataModels/HomeMenuAppShortcutInfo.cs b/LibCommon.Shared/DataModels/HomeMenuAppShortcutInfo.cs
new file mode 100644 (file)
index 0000000..8ede65d
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+namespace LibTVRefCommonPortable.DataModels
+{
+    /// <summary>
+    /// A Home Menu AppShortcut information
+    /// </summary>
+    /// <seealso cref="ShortcutInfo"/>
+    public class HomeMenuAppShortcutInfo : ShortcutInfo
+    {
+        /// <summary>
+        /// A Shortcut status
+        /// </summary>
+        public string Status { get; set; }
+
+        /// <summary>
+        /// A method initializes a status of a Shortcut.
+        /// </summary>
+        public override void UpdateState()
+        {
+            SetCurrentState("default");
+        }
+
+        /// <summary>
+        /// A method changes current status of a Shortcut.
+        /// </summary>
+        /// <param name="status">A new status</param>
+        public void ChangeStatus(string status)
+        {
+            Status = status;
+            OnPropertyChanged("Status");
+            SetCurrentState(status);
+        }
+    }
+}
diff --git a/LibCommon.Shared/DataModels/IAction.cs b/LibCommon.Shared/DataModels/IAction.cs
new file mode 100644 (file)
index 0000000..d4616da
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+namespace LibTVRefCommonPortable.DataModels
+{
+    /// <summary>
+    /// An interface defines behaviors that will be exported by inherited classes.
+    /// </summary>
+    public interface IAction
+    {
+        /// <summary>
+        /// A method execute an action.
+        /// </summary>
+        /// <returns>A next statue of a Shortcut.</returns>
+        string Execute();
+    }
+}
diff --git a/LibCommon.Shared/DataModels/IEnumerableItem.cs b/LibCommon.Shared/DataModels/IEnumerableItem.cs
new file mode 100644 (file)
index 0000000..efcfd2b
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using System.Collections.Generic;
+
+namespace TVHome.DataModels
+{
+    public interface IEnumerableItem
+    {
+        IDictionary<int, string> ItemProperties
+        {
+            set;
+            get;
+        }
+
+    }
+}
diff --git a/LibCommon.Shared/DataModels/MediaControlAction.cs b/LibCommon.Shared/DataModels/MediaControlAction.cs
new file mode 100644 (file)
index 0000000..440fcfb
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using System;
+using LibTVRefCommonPortable.Utils;
+
+namespace LibTVRefCommonPortable.DataModels
+{
+    /// <summary>
+    /// A Media ControlAction.
+    /// </summary>
+    class MediaControlAction : AppControlAction
+    {
+        /// <summary>
+        /// A file URI to be open
+        /// </summary>
+        public string FileUri { get; set; }
+
+        /// <summary>
+        /// A method execute a action.
+        /// </summary>
+        /// <returns>A next statue of a Shortcut.</returns>
+        new public string Execute()
+        {
+            // Warn : Do NOT pass 'E'xtraData, it will create a new Dictionary and it might cause unexpected situation.
+            AppControlUtils.SendLaunchRequest(AppID, extraData, FileUri);
+            return "default";
+        }
+    }
+}
diff --git a/LibCommon.Shared/DataModels/RecentShortcutInfo.cs b/LibCommon.Shared/DataModels/RecentShortcutInfo.cs
new file mode 100644 (file)
index 0000000..3d853ef
--- /dev/null
@@ -0,0 +1,69 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using System;
+using System.Collections;
+
+namespace LibTVRefCommonPortable.DataModels
+{
+    /// <summary>
+    /// Types for recent shortcut
+    /// </summary>
+    public enum RecentShortcutType
+    {
+        Application = 0,
+        Media = 1,
+    }
+
+    /// <summary>
+    /// A Recent Shortcut information
+    /// </summary>
+    public class RecentShortcutInfo : ShortcutInfo, IComparable
+    {
+        /// <summary>
+        /// A type for the content of the shortcut
+        /// </summary>
+        public RecentShortcutType Type { get; set; }
+
+        /// <summary>
+        /// An Id for the content of the shortcut
+        /// </summary>
+        public string Id { get; set; }
+        /// <summary>
+        /// A Last used Time
+        /// </summary>
+        public DateTime Date { get; set; }
+
+        /// <summary>
+        /// A Screenshot image path
+        /// </summary>
+        public string ScreenshotPath { get; set; }
+
+        /// <summary>
+        /// Initialize State of a shortcut.
+        /// </summary>
+        public override void UpdateState()
+        {
+            SetCurrentState("default");
+        }
+
+        int IComparable.CompareTo(object target)
+        {
+            var rightShortcutInfo = target as RecentShortcutInfo;
+            return Date.CompareTo(rightShortcutInfo.Date) * -1;
+        }
+    }
+}
diff --git a/LibCommon.Shared/DataModels/SettingShortcutInfo.cs b/LibCommon.Shared/DataModels/SettingShortcutInfo.cs
new file mode 100644 (file)
index 0000000..fd355d2
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using System;
+
+namespace LibTVRefCommonPortable.DataModels
+{
+    /// <summary>
+    /// A Setting Shortcut information
+    /// </summary>
+    public class SettingShortcutInfo : ShortcutInfo
+    {
+        /// <summary>
+        /// Initialize State of a shortcut.
+        /// </summary>
+        public override void UpdateState()
+        {
+            SetCurrentState("default");
+        }
+    }
+}
diff --git a/LibCommon.Shared/DataModels/ShortcutInfo.cs b/LibCommon.Shared/DataModels/ShortcutInfo.cs
new file mode 100644 (file)
index 0000000..00854f6
--- /dev/null
@@ -0,0 +1,122 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Xml.Serialization;
+using LibTVRefCommonPortable.Utils;
+
+namespace LibTVRefCommonPortable.DataModels
+{
+    /// <summary>
+    /// TVHome and TVApps has several buttons that represent Apps, Contents, Settings.
+    /// The ShortcutInfo is a model for those buttons with detail information of the represented object.
+    /// </summary>
+    public abstract class ShortcutInfo : INotifyPropertyChanged
+    {
+        /// <summary>
+        /// An event handler for handing property changed. </summary>
+        public event PropertyChangedEventHandler PropertyChanged;
+
+        /// <summary>
+        /// State descriptions of Shortcut. </summary>
+        [XmlIgnore]
+        private Dictionary<String, StateDescription> stateDescriptions = new Dictionary<String, StateDescription>();
+
+        /// <summary>
+        /// State descriptions of Shortcut. </summary>
+        [XmlIgnore]
+        public Dictionary<String, StateDescription> StateDescriptions
+        {
+            get
+            {
+                return stateDescriptions;
+            }
+        }
+
+        /// <summary>
+        /// A method notifies property changed event. </summary>
+        /// <param name="propertyName"> A property name.</param>
+        protected void OnPropertyChanged(string propertyName)
+        {
+            var handler = PropertyChanged;
+            if (handler != null)
+            {
+                handler(this, new PropertyChangedEventArgs(propertyName));
+            }
+        }
+
+        /// <summary>
+        /// A current state description of a Shortcut. </summary>
+        [XmlIgnore]
+        public StateDescription CurrentStateDescription
+        {
+            get;
+            set;
+        }
+
+        /// <summary>
+        /// A current state description of a Shortcut. </summary>
+        /// <param name="state"> A property name.</param>
+        /// <returns> A result of state transition</returns>
+        protected bool SetCurrentState(string state)
+        {
+            if (stateDescriptions.ContainsKey(state) == false)
+            {
+                DebuggingUtils.Err(state + " is doesn't exists!!!");
+                return false;
+            }
+
+            if (CurrentStateDescription != null &&
+                CurrentStateDescription == stateDescriptions[state])
+            {
+                return true;
+            }
+
+            CurrentStateDescription = stateDescriptions[state];
+            OnPropertyChanged("CurrentStateDescription");
+            return true;
+        }
+
+        /// <summary>
+        /// Initialize State of a shortcut.
+        /// </summary>
+        abstract public void UpdateState();
+
+        /// <summary>
+        /// A method executes a action.
+        /// After execution of the action, status will be changed if returned status is available. </summary>
+        /// <returns> A result of action invocation. </returns>
+        public bool DoAction()
+        {
+            if (CurrentStateDescription == null)
+            {
+                DebuggingUtils.Err("Current state is not set!!!");
+                return false;
+            }
+
+            String newState = CurrentStateDescription.Action.Execute();
+            if (newState == null)
+            {
+                DebuggingUtils.Err("Invalid State returned!!!");
+                return false;
+            }
+
+            return SetCurrentState(newState);
+        }
+    }
+}
diff --git a/LibCommon.Shared/DataModels/StateDescription.cs b/LibCommon.Shared/DataModels/StateDescription.cs
new file mode 100644 (file)
index 0000000..b3766c5
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+namespace LibTVRefCommonPortable.DataModels
+{
+    /// <summary>
+    /// A class represents a state of a Shortcut.
+    /// </summary>
+    public class StateDescription
+    {
+        /// <summary>
+        /// Constructor.
+        /// </summary>
+        public StateDescription()
+        {
+            Label = "";
+            IconPath = "";
+        }
+
+        /// <summary>
+        /// A Shortcut label.
+        /// </summary>
+        public string Label
+        {
+            get;
+            set;
+        }
+
+        /// <summary>
+        /// A Shortcut icon path.
+        /// </summary>
+        public string IconPath
+        {
+            get;
+            set;
+        }
+
+        /// <summary>
+        /// A Action instance to be called when a Shortcut is pressed.
+        /// </summary>
+        public IAction Action
+        {
+            get;
+            set;
+        }
+
+    }
+}
diff --git a/LibCommon.Shared/DataModels/WatcherType.cs b/LibCommon.Shared/DataModels/WatcherType.cs
new file mode 100644 (file)
index 0000000..68ce9cc
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+namespace LibTVRefCommonPortable.DataModels
+{
+    /// <summary>
+    /// A File Watcher type enumeration.
+    /// </summary>
+    public enum WatcherType
+    {
+        /// <summary>
+        /// The creation of a file or folder.
+        /// </summary>
+        Created = 1,
+        /// <summary>
+        /// The deletion of a file or folder.
+        /// </summary>
+        Deleted = 2,
+        /// <summary>
+        /// The change of a file or folder. The types of changes include: changes to size,
+        /// attributes, security settings, last write, and last access time.
+        /// </summary>
+        Changed = 4,
+        /// <summary>
+        /// The renaming of a file or folder.
+        /// </summary>
+        Renamed = 8,
+        /// <summary>
+        /// The creation, deletion, change, or renaming of a file or folder.
+        /// </summary>
+        All = 15
+    }
+}
diff --git a/LibCommon.Shared/LibCommon.Shared.csproj b/LibCommon.Shared/LibCommon.Shared.csproj
new file mode 100644 (file)
index 0000000..21691c0
--- /dev/null
@@ -0,0 +1,12 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>netstandard2.0</TargetFramework>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <PackageReference Include="Tizen.Xamarin.Forms.Extension" Version="2.4.0-v00005" />
+    <PackageReference Include="Xamarin.Forms" Version="2.4.0.266-pre1" />
+  </ItemGroup>
+
+</Project>
diff --git a/LibCommon.Shared/Models/AppShortcutController.cs b/LibCommon.Shared/Models/AppShortcutController.cs
new file mode 100644 (file)
index 0000000..7ec06fd
--- /dev/null
@@ -0,0 +1,353 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using System;
+using System.Collections.Generic;
+using LibTVRefCommonPortable.DataModels;
+using LibTVRefCommonPortable.Utils;
+using System.Threading.Tasks;
+
+namespace LibTVRefCommonPortable.Models
+{
+    /// <summary>
+    /// A class provides Application related information to ViewModel.
+    /// The TVHome shows the Pinned app list when the App Home Menu is pressed,
+    /// by invoking AppShortcutController's API to retrieve the pinned app list.
+    /// The TVApps shows the installed the Tizen UI apps in the main screen.
+    /// To provides the installed apps, the TVApps invokes an AppShortcutController's API.
+    /// </summary>
+    public class AppShortcutController
+    {
+        /// <summary>
+        /// A default app icon for no icon applications.
+        /// </summary>
+        private static String DefaultAppIcon = "AppIcon.png";
+
+        /// <summary>
+        /// A method provides installed app list.
+        /// The returned app list has only Tizen UI apps not the system app or no display apps.
+        /// </summary>
+        /// <returns>An installed app list.</returns>
+        public async Task<IEnumerable<AppShortcutInfo>> GetInstalledApps()
+        {
+            List<AppShortcutInfo> appShortcutInfoList = new List<AppShortcutInfo>();
+
+            var installedAppList = await ApplicationManagerUtils.Instance.GetAllInstalledApplication();
+
+            foreach (var item in installedAppList)
+            {
+                if (ManagedApps.IsNonPinnableApps(item.AppID))
+                {
+                    continue;
+                }
+
+                var defaultStateDescription = new StateDescription()
+                {
+                    Label = item.Applabel ?? "No Name",
+                    IconPath = item.IconPath ?? DefaultAppIcon,
+                    Action = new AppControlAction()
+                    {
+                        AppID = item.AppID,
+                    }
+                };
+
+                var appShortcutInfo = new AppShortcutInfo()
+                {
+                    IsRemovable = ApplicationManagerUtils.Instance.GetAppInfoRemovable(item.AppID),
+                    Installed = item.InstalledTime,
+                };
+
+                appShortcutInfo.StateDescriptions.Add("default", defaultStateDescription);
+                appShortcutInfo.CurrentStateDescription = defaultStateDescription;
+                appShortcutInfo.AppID = item.AppID;
+                appShortcutInfoList.Add(appShortcutInfo);
+            }
+
+            return appShortcutInfoList;
+        }
+
+        /// <summary>
+        /// A method appends an All Apps Shortcut and a MediaHub Shortcut at first in the given App Shortcut list.
+        /// Actually this method is used for making the Pinned App Shortcut panel of the TVHome
+        /// </summary>
+        /// <seealso cref="GetDefaultShortcuts"/>
+        /// <seealso cref="GetPinnedAppsWithDefaultShortcuts"/>
+        /// <param name="returnPinnedAppsInfo">An App Shortcut list contains the additional Shortcuts.</param>
+        private void AddAllAppsAndMediaHubShortcut(ref List<ShortcutInfo> returnPinnedAppsInfo)
+        {
+            var allAppsShortcutInfo = new AppShortcutInfo()
+            {
+                StateDescriptions =
+                {
+                    {
+                        "default",
+                        new StateDescription
+                        {
+                            Label = "All apps",
+                            IconPath = "ic_home_menu_apps_138.png",
+                            Action = new AppControlAction
+                            {
+                                AppID = ManagedApps.TVAppsAppID,
+                            }
+                        }
+                    },
+                    {
+                        "focused",
+                        new StateDescription
+                        {
+                            Label = "All apps",
+                            IconPath = "ic_home_menu_apps_182.png",
+                            Action = new AppControlAction
+                            {
+                                AppID = ManagedApps.TVAppsAppID,
+                            }
+                        }
+                    },
+                }
+            };
+
+            allAppsShortcutInfo.UpdateState();
+            returnPinnedAppsInfo.Insert(0, allAppsShortcutInfo);
+
+            var mediaHubShortcutInfo = new AppShortcutInfo()
+            {
+                StateDescriptions =
+                {
+                    {
+                        "default",
+                        new StateDescription
+                        {
+                            Label = "Media Hub",
+                            IconPath = "ic_launcher_mediahub_138.png",
+                            Action = new AppControlAction
+                            {
+                                AppID = ManagedApps.MediaHubAppID,
+                            }
+                        }
+                    },
+                    {
+                        "focused",
+                        new StateDescription
+                        {
+                            Label = "Media Hub",
+                            IconPath = "ic_launcher_mediahub_182.png",
+                            Action = new AppControlAction
+                            {
+                                AppID = ManagedApps.MediaHubAppID,
+                            }
+                        }
+                    },
+                }
+            };
+
+            mediaHubShortcutInfo.UpdateState();
+            returnPinnedAppsInfo.Insert(1, mediaHubShortcutInfo);
+        }
+
+        /// <summary>
+        /// A method appends an Add Pin Shortcut in the given App Shortcut list.
+        /// </summary>
+        /// <seealso cref="GetDefaultShortcuts"/>
+        /// <seealso cref="GetPinnedAppsWithDefaultShortcuts"/>
+        /// <param name="returnPinnedAppsInfo">An App Shortcut list contains the additional Shortcuts.</param>
+        private void AppendAddPinShortcut(ref List<ShortcutInfo> returnPinnedAppsInfo)
+        {
+            var addPinCommandAction = new CommandAction()
+            {
+                NextStateDescription = "default",
+                CommandParameter = "",
+            };
+
+            addPinCommandAction.Command += new EventHandler<string>((s, e) =>
+            {
+                AppControlUtils.SendAddAppRequestToApps();
+            });
+
+            var addPinShortcutInfo = new AppShortcutInfo()
+            {
+                StateDescriptions =
+                {
+                    {
+                        "default",
+                        new StateDescription
+                        {
+                            Label = "Add pin",
+                            IconPath = "ic_home_menu_addpin_138.png",
+                            Action = addPinCommandAction,
+                        }
+                    },
+                    {
+                        "focused",
+                        new StateDescription
+                        {
+                            Label = "Add pin",
+                            IconPath = "ic_home_menu_addpin_182.png",
+                            Action = addPinCommandAction,
+                        }
+                    },
+                }
+            };
+
+            addPinShortcutInfo.UpdateState();
+            returnPinnedAppsInfo.Add(addPinShortcutInfo);
+        }
+
+        /// <summary>
+        /// A method provides Pinned App Shortcut list by retrieving from the AppShortcutStorage.
+        /// This method provides only the Pinned App Shortcut list not including any additional Shortcuts
+        /// such as the All Apps, the Media Hub, and the Add Pin.
+        /// </summary>
+        /// <returns>A Pinned App Shortcut list.</returns>
+        private async Task<List<ShortcutInfo>> GetPinnedApps()
+        {
+            IEnumerable<AppShortcutInfo> pinned_apps_info = await AppShortcutStorage.Read();
+
+            List<ShortcutInfo> returnPinnedAppsInfo = new List<ShortcutInfo>();
+
+            int numberOfPinnedApp = 0;
+            foreach (AppShortcutInfo appShortcutInfo in pinned_apps_info)
+            {
+                if (numberOfPinnedApp >= 10)
+                {
+                    break;
+                }
+
+                if (appShortcutInfo.AppID == null ||
+                    appShortcutInfo.AppID.Length < 1)
+                {
+                    continue;
+                }
+
+                if (ManagedApps.IsNonPinnableApps(appShortcutInfo.AppID))
+                {
+                    continue;
+                }
+
+                InstalledApp appInfo = ApplicationManagerUtils.Instance.GetInstalledApplication(appShortcutInfo.AppID);
+                if (appInfo == null)
+                {
+                    continue;
+                }
+
+                string appLabel = appInfo.Applabel ?? "No Name";
+                string appIconPath = appInfo.IconPath ?? DefaultAppIcon;
+
+                var defaultStateDescription = new StateDescription()
+                {
+                    Label = appLabel,
+                    IconPath = appIconPath,
+                    Action = new AppControlAction
+                    {
+                        AppID = appShortcutInfo.AppID,
+                    }
+                };
+
+                appShortcutInfo.StateDescriptions.Add("default", defaultStateDescription);
+                appShortcutInfo.CurrentStateDescription = defaultStateDescription;
+                appShortcutInfo.IsPinned = true;
+                returnPinnedAppsInfo.Add(appShortcutInfo);
+
+                numberOfPinnedApp += 1;
+            }
+
+            return returnPinnedAppsInfo;
+        }
+
+        /// <summary>
+        /// A method provides an App Shortcut list which contains default App Shortcuts
+        /// such as the All Apps, the Media Hub, and the Add Pin.
+        /// </summary>
+        /// <returns>A default App Shortcut list.</returns>
+        public IEnumerable<ShortcutInfo> GetDefaultShortcuts()
+        {
+            List<ShortcutInfo> returnPinnedAppsInfo = new List<ShortcutInfo>();
+
+            AddAllAppsAndMediaHubShortcut(ref returnPinnedAppsInfo);
+            AppendAddPinShortcut(ref returnPinnedAppsInfo);
+
+            return returnPinnedAppsInfo;
+        }
+
+        /// <summary>
+        /// A method provides the App Shortcut list with the default App Shortcut icons.
+        /// The pinned apps, the All Apps, the MediaHub, and the Add Pin are included in the return App Shortcut list.
+        /// </summary>
+        /// <returns>App Shortcut list.</returns>
+        public async Task<IEnumerable<ShortcutInfo>> GetPinnedAppsWithDefaultShortcuts()
+        {
+            List<ShortcutInfo> returnPinnedAppsInfo = await GetPinnedApps();
+
+            AddAllAppsAndMediaHubShortcut(ref returnPinnedAppsInfo);
+            AppendAddPinShortcut(ref returnPinnedAppsInfo);
+
+            return returnPinnedAppsInfo;
+        }
+
+        /// <summary>
+        /// A method provides only pinned app's app ID as a hash table.
+        /// </summary>
+        /// <returns>A hash table includes pinned app's app ID.</returns>
+        public async Task<Dictionary<string, string>> GetPinnedAppsAppIDs()
+        {
+            IEnumerable<AppShortcutInfo> pinned_apps_info = await AppShortcutStorage.Read();
+            Dictionary<string, string> pinnedAppsDictionary = new Dictionary<string, string>();
+
+            int numberOfPinnedApp = 0;
+            foreach (AppShortcutInfo appShortcutInfo in pinned_apps_info)
+            {
+                if (numberOfPinnedApp >= 10)
+                {
+                    break;
+                }
+
+                if (ManagedApps.IsNonPinnableApps(appShortcutInfo.AppID))
+                {
+                    continue;
+                }
+
+                pinnedAppsDictionary.Add(appShortcutInfo.AppID, appShortcutInfo.AppID);
+                numberOfPinnedApp += 1;
+            }
+
+            return pinnedAppsDictionary;
+        }
+
+        /// <summary>
+        /// A method updates the pinned App list by using the AppShortcutStorage.
+        /// </summary>
+        /// <param name="pinnedAppsInfo">A pinned app list.</param>
+        public void UpdatePinnedApps(IEnumerable<AppShortcutInfo> pinnedAppsInfo)
+        {
+            AppShortcutStorage.Write(pinnedAppsInfo);
+        }
+
+        /// <summary>
+        /// A listener to get notification of the AppShortcutStorage.
+        /// </summary>
+        /// <param name="eventListener">A Event Handler for the nonfiction of AppShortutStorage.</param>
+        public void AddFileSystemChangedListener(EventHandler<EventArgs> eventListener)
+        {
+            if (AppShortcutStorage.Instance != null)
+            {
+                AppShortcutStorage.Instance.AddStorageChangedListener(eventListener);
+            }
+            else
+            {
+                DebuggingUtils.Err("AppShortcutStorage Instance is NULL");
+            }
+        }
+    }
+}
diff --git a/LibCommon.Shared/Models/ManagedApps.cs b/LibCommon.Shared/Models/ManagedApps.cs
new file mode 100644 (file)
index 0000000..b6b00b1
--- /dev/null
@@ -0,0 +1,120 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace LibTVRefCommonPortable.Models
+{
+    /// <summary>
+    /// A class has some apps have to managed in the TVHome, TVApps by platform policy reason.
+    /// </summary>
+    public class ManagedApps
+    {
+        /// <summary>
+        /// The app ID of TV reference home application
+        /// </summary>
+        public static string TVHomeAppID
+        {
+            get
+            {
+                return "org.tizen.xahome";
+            }
+        }
+
+        /// <summary>
+        /// The app ID of TV reference apps-tray application
+        /// </summary>
+        public static string TVAppsAppID
+        {
+            get
+            {
+                return "org.tizen.xaapps";
+            }
+        }
+
+        /// <summary>
+        /// The app ID of TV reference apps-tray application
+        /// </summary>
+        public static string MediaHubAppID
+        {
+            get
+            {
+                return "org.tizen.xamediahub";
+            }
+        }
+
+        /// <summary>
+        /// The Settings App ID
+        /// </summary>
+        public static string SettingsAppID
+        {
+            get
+            {
+                return "org.tizen.settings";
+            }
+        }
+
+        /// <summary>
+        /// Checks application isn't pinnable
+        /// </summary>
+        /// <param name="appID">Application id for checking</param>
+        /// <returns>If the application isn't pinnable return 'true'</returns>
+        public static bool IsNonPinnableApps(string appID)
+        {
+            if (appID == null)
+            {
+                return true;
+            }
+
+            if (appID.CompareTo(TVHomeAppID) == 0 ||
+                  appID.CompareTo(TVAppsAppID) == 0 ||
+                  appID.CompareTo(MediaHubAppID) == 0 ||
+                  appID.CompareTo(SettingsAppID) == 0)
+            {
+                return true;
+            }
+
+            return false;
+        }
+
+        /// <summary>
+        /// Checks application have to be hidden at recently used application
+        /// </summary>
+        /// <param name="appID">Application id for checking</param>
+        /// <returns>If the application have to be hidden, return 'true'</returns>
+        public static bool IsHiddenRecentApp(string appID)
+        {
+            if (appID == null)
+            {
+                return true;
+            }
+
+            if (appID.CompareTo(TVHomeAppID) == 0 ||
+                  appID.CompareTo(TVAppsAppID) == 0 ||
+                  appID.CompareTo(MediaHubAppID) == 0 ||
+                  appID.CompareTo(SettingsAppID) == 0)
+            {
+                return true;
+            }
+
+            return false;
+        }
+    }
+}
diff --git a/LibCommon.Shared/Models/RecentShortcutController.cs b/LibCommon.Shared/Models/RecentShortcutController.cs
new file mode 100644 (file)
index 0000000..4fa5a06
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using System.Collections.Generic;
+using LibTVRefCommonPortable.DataModels;
+using LibTVRefCommonPortable.Utils;
+
+
+namespace LibTVRefCommonPortable.Models
+{
+    /// <summary>
+    /// A class provides Recent Shortcut information to the ViewModel
+    /// The Recent Shortcut can be an app which is recently used and
+    /// a content which is recently consumed in the TV.
+    /// </summary>
+    public class RecentShortcutController
+    {
+        /// <summary>
+        /// A method removes a Recent Shortcut.
+        /// </summary>
+        /// <param name="appId">a Recent Shortcut's appId to be removed.</param>
+        public void Remove(string appId)
+        {
+            RecentShortcutStorage.Delete(appId);
+        }
+
+        /// <summary>
+        /// A method removes all Recent Shortcuts.
+        /// </summary>
+        public void RemoveAll()
+        {
+            RecentShortcutStorage.DeleteAll();
+        }
+
+        /// <summary>
+        /// A method provides a Recent Shortcut list.
+        /// </summary>
+        /// <returns>A Recent Shortcut list.</returns>
+        public IEnumerable<RecentShortcutInfo> GetList()
+        {
+            return RecentShortcutStorage.Read();
+        }
+    }
+}
diff --git a/LibCommon.Shared/Settings.StyleCop b/LibCommon.Shared/Settings.StyleCop
new file mode 100644 (file)
index 0000000..837530c
--- /dev/null
@@ -0,0 +1,722 @@
+<StyleCopSettings Version="105">
+  <GlobalSettings>
+    <StringProperty Name="MergeSettingsFiles">NoMerge</StringProperty>
+  </GlobalSettings>
+  <Analyzers>
+    <Analyzer AnalyzerId="StyleCop.CSharp.DocumentationRules">
+      <Rules>
+        <Rule Name="ElementsMustBeDocumented">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementDocumentationMustHaveSummaryText">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="EnumerationItemsMustBeDocumented">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DocumentationMustContainValidXml">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementDocumentationMustHaveSummary">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="PartialElementDocumentationMustHaveSummary">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementDocumentationMustNotHaveDefaultSummary">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="VoidReturnValueMustNotBeDocumented">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="GenericTypeParametersMustBeDocumented">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="GenericTypeParametersMustBeDocumentedPartialClass">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="GenericTypeParameterDocumentationMustMatchTypeParameters">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="GenericTypeParameterDocumentationMustDeclareParameterName">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="GenericTypeParameterDocumentationMustHaveText">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="PropertySummaryDocumentationMustMatchAccessors">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="PropertySummaryDocumentationMustOmitSetAccessorWithRestrictedAccess">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementDocumentationMustNotBeCopiedAndPasted">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="SingleLineCommentsMustNotUseDocumentationStyleSlashes">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DocumentationTextMustNotBeEmpty">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DocumentationTextMustContainWhitespace">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DocumentationMustMeetCharacterPercentage">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ConstructorSummaryDocumentationMustBeginWithStandardText">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DestructorSummaryDocumentationMustBeginWithStandardText">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DocumentationHeadersMustNotContainBlankLines">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="IncludedDocumentationXPathDoesNotExist">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="IncludeNodeDoesNotContainValidFileAndPath">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="InheritDocMustBeUsedWithInheritingClass">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementDocumentationMustBeSpelledCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FileMustHaveHeader">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FileHeaderMustShowCopyright">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FileHeaderMustHaveCopyrightText">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FileHeaderMustContainFileName">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FileHeaderFileNameDocumentationMustMatchFileName">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FileHeaderMustHaveValidCompanyText">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FileHeaderFileNameDocumentationMustMatchTypeName">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+      </Rules>
+      <AnalyzerSettings />
+    </Analyzer>
+    <Analyzer AnalyzerId="StyleCop.CSharp.NamingRules">
+      <Rules>
+        <Rule Name="ConstFieldNamesMustBeginWithUpperCaseLetter">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FieldNamesMustBeginWithLowerCaseLetter">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FieldNamesMustNotContainUnderscore">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementMustBeginWithLowerCaseLetter">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="NonPrivateReadonlyFieldsMustBeginWithUpperCaseLetter">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FieldNamesMustNotUseHungarianNotation">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="AccessibleFieldsMustBeginWithUpperCaseLetter">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="VariableNamesMustNotBePrefixed">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FieldNamesMustNotBeginWithUnderscore">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="StaticReadonlyFieldsMustBeginWithUpperCaseLetter">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+      </Rules>
+      <AnalyzerSettings />
+    </Analyzer>
+    <Analyzer AnalyzerId="StyleCop.CSharp.LayoutRules">
+      <Rules>
+        <Rule Name="AllAccessorsMustBeMultiLineOrSingleLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="OpeningCurlyBracketsMustNotBeFollowedByBlankLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementDocumentationHeadersMustNotBeFollowedByBlankLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="CodeMustNotContainMultipleBlankLinesInARow">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ClosingCurlyBracketsMustNotBePrecededByBlankLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="OpeningCurlyBracketsMustNotBePrecededByBlankLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ChainedStatementBlocksMustNotBePrecededByBlankLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="WhileDoFooterMustNotBePrecededByBlankLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="SingleLineCommentsMustNotBeFollowedByBlankLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementDocumentationHeaderMustBePrecededByBlankLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="SingleLineCommentMustBePrecededByBlankLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementsMustBeSeparatedByBlankLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="CodeMustNotContainBlankLinesAtStartOfFile">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="CodeMustNotContainBlankLinesAtEndOfFile">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+      </Rules>
+      <AnalyzerSettings />
+    </Analyzer>
+    <Analyzer AnalyzerId="StyleCop.CSharp.MaintainabilityRules">
+      <Rules>
+        <Rule Name="AccessModifierMustBeDeclared">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FieldsMustBePrivate">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="CodeAnalysisSuppressionMustHaveJustification">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DebugAssertMustProvideMessageText">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DebugFailMustProvideMessageText">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FileMayOnlyContainASingleClass">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FileMayOnlyContainASingleNamespace">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="StatementMustNotUseUnnecessaryParenthesis">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ArithmeticExpressionsMustDeclarePrecedence">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ConditionalExpressionsMustDeclarePrecedence">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="RemoveDelegateParenthesisWhenPossible">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="AttributeConstructorMustNotUseUnnecessaryParenthesis">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="RemoveUnnecessaryCode">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+      </Rules>
+      <AnalyzerSettings />
+    </Analyzer>
+    <Analyzer AnalyzerId="StyleCop.CSharp.OrderingRules">
+      <Rules>
+        <Rule Name="UsingDirectivesMustBePlacedWithinNamespace">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementsMustAppearInTheCorrectOrder">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementsMustBeOrderedByAccess">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ConstantsMustAppearBeforeFields">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="StaticElementsMustAppearBeforeInstanceElements">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DeclarationKeywordsMustFollowOrder">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ProtectedMustComeBeforeInternal">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="PropertyAccessorsMustFollowOrder">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="EventAccessorsMustFollowOrder">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="StaticReadonlyElementsMustAppearBeforeStaticNonReadonlyElements">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="InstanceReadonlyElementsMustAppearBeforeInstanceNonReadonlyElements">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="NoValueFirstComparison">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="SystemUsingDirectivesMustBePlacedBeforeOtherUsingDirectives">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="UsingAliasDirectivesMustBePlacedAfterOtherUsingDirectives">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="UsingDirectivesMustBeOrderedAlphabeticallyByNamespace">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="UsingAliasDirectivesMustBeOrderedAlphabeticallyByAliasName">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="UsingStaticDirectivesMustBePlacedAfterUsingNamespaceDirectives">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+      </Rules>
+      <AnalyzerSettings />
+    </Analyzer>
+    <Analyzer AnalyzerId="StyleCop.CSharp.ReadabilityRules">
+      <Rules>
+        <Rule Name="CommentsMustContainText">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DoNotPrefixCallsWithBaseUnlessLocalImplementationExists">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="PrefixLocalCallsWithThis">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="PrefixCallsCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="OpeningParenthesisMustBeOnDeclarationLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ClosingParenthesisMustBeOnLineOfLastParameter">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ClosingParenthesisMustBeOnLineOfOpeningParenthesis">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="CommaMustBeOnSameLineAsPreviousParameter">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ParameterListMustFollowDeclaration">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ParameterMustFollowComma">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="SplitParametersMustStartOnLineAfterDeclaration">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ParametersMustBeOnSameLineOrSeparateLines">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ParameterMustNotSpanMultipleLines">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="QueryClauseMustFollowPreviousClause">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="QueryClausesMustBeOnSeparateLinesOrAllOnOneLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="QueryClauseMustBeginOnNewLineWhenPreviousClauseSpansMultipleLines">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="QueryClausesSpanningMultipleLinesMustBeginOnOwnLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DoNotPlaceRegionsWithinElements">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="CodeMustNotContainEmptyStatements">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="CodeMustNotContainMultipleStatementsOnOneLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="BlockStatementsMustNotContainEmbeddedComments">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="BlockStatementsMustNotContainEmbeddedRegions">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="UseStringEmptyForEmptyStrings">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="UseBuiltInTypeAlias">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="UseShorthandForNullableTypes">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+      </Rules>
+      <AnalyzerSettings />
+    </Analyzer>
+    <Analyzer AnalyzerId="StyleCop.CSharp.SpacingRules">
+      <Rules>
+        <Rule Name="CommasMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="SemicolonsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DocumentationLinesMustBeginWithSingleSpace">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="SingleLineCommentsMustBeginWithSingleSpace">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="PreprocessorKeywordsMustNotBePrecededBySpace">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="OperatorKeywordMustBeFollowedBySpace">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="OpeningCurlyBracketsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ClosingCurlyBracketsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="OpeningGenericBracketsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ClosingGenericBracketsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="OpeningAttributeBracketsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ClosingAttributeBracketsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="NullableTypeSymbolsMustNotBePrecededBySpace">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="MemberAccessSymbolsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="IncrementDecrementSymbolsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="NegativeSignsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="PositiveSignsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DereferenceAndAccessOfSymbolsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ColonsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="CodeMustNotContainMultipleWhitespaceInARow">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="CodeMustNotContainSpaceAfterNewKeywordInImplicitlyTypedArrayAllocation">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="TabsMustNotBeUsed">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DoNotSplitNullConditionalOperators">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+      </Rules>
+      <AnalyzerSettings />
+    </Analyzer>
+  </Analyzers>
+</StyleCopSettings>
\ No newline at end of file
diff --git a/LibCommon.Shared/Stubs/ApplicationManagerAPITestStub.cs b/LibCommon.Shared/Stubs/ApplicationManagerAPITestStub.cs
new file mode 100644 (file)
index 0000000..082dc66
--- /dev/null
@@ -0,0 +1,250 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using LibTVRefCommonPortable.Utils;
+using System;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+
+namespace LibTVRefCommonPortable.Stubs
+{
+    /// <summary>
+    /// A unit testing stub of IApplicationManagerAPIs.
+    /// </summary>
+    public class ApplicationManagerAPITestStub : IApplicationManagerAPIs
+    {
+        /// <summary>
+        /// A method for removing all recent applications
+        /// </summary>
+        public void DeleteAllRecentApplication()
+        {
+            throw new NotImplementedException();
+        }
+
+        /// <summary>
+        /// A method for removing the specified recent application
+        /// </summary>
+        /// <param name="appId">An application ID</param>
+        public void DeleteRecentApplication(string appId)
+        {
+            throw new NotImplementedException();
+        }
+
+        /// <summary>
+        /// A method provides installed application list.
+        /// </summary>
+        /// <returns>An installed application list</returns>
+        public Task<IEnumerable<InstalledApp>> GetAllInstalledApplication()
+        {
+            return Task.Run(() =>
+            {
+                List<InstalledApp> installedApps = new List<InstalledApp>();
+
+                installedApps.Add(new InstalledApp
+                {
+                    Applabel = "app1",
+                    AppID = "app1",
+                    IconPath = "path/app1",
+                    InstalledTime = new DateTime(2017, 05, 02),
+                });
+
+                installedApps.Add(new InstalledApp
+                {
+                    Applabel = "app2.removable",
+                    AppID = "app2.removable",
+                    IconPath = "path/app2",
+                    InstalledTime = new DateTime(2017, 05, 02),
+                });
+
+                installedApps.Add(new InstalledApp
+                {
+                    Applabel = "invalid.app3.noid",
+                    IconPath = "path/app3",
+                    InstalledTime = new DateTime(2017, 05, 02),
+                });
+
+                installedApps.Add(new InstalledApp
+                {
+                    Applabel = "app4.noicon",
+                    AppID = "app4.noicon",
+                    InstalledTime = new DateTime(2017, 05, 02),
+                });
+
+                installedApps.Add(new InstalledApp
+                {
+                    Applabel = "app5.nolabel",
+                    AppID = "app5.nolabel",
+                    IconPath = "path/app5",
+                    InstalledTime = new DateTime(2017, 05, 02),
+                });
+
+                installedApps.Add(new InstalledApp
+                {
+                    Applabel = "invalid.org.tizen.xahome",
+                    AppID = "org.tizen.xahome",
+                    IconPath = "path/app3",
+                    InstalledTime = new DateTime(2017, 05, 02),
+                });
+
+                installedApps.Add(new InstalledApp
+                {
+                    Applabel = "invalid.org.tizen.xaapps",
+                    AppID = "org.tizen.xaapps",
+                    IconPath = "path/app4",
+                    InstalledTime = new DateTime(2017, 05, 02),
+                });
+
+                installedApps.Add(new InstalledApp
+                {
+                    Applabel = "invalid.org.tizen.xamediahub",
+                    AppID = "org.tizen.xamediahub",
+                    IconPath = "path/app5",
+                    InstalledTime = new DateTime(2017, 05, 02),
+                });
+
+                installedApps.Add(new InstalledApp
+                {
+                    Applabel = "invalid.org.tizen.settings",
+                    AppID = "org.tizen.settings",
+                    IconPath = "path/app6",
+                    InstalledTime = new DateTime(2017, 05, 02),
+                });
+
+                return (IEnumerable<InstalledApp>)installedApps;
+            });
+        }
+
+        /// <summary>
+        /// Gets the app ID by the app label
+        /// </summary>
+        /// <param name="appLabel">the app label to get</param>
+        /// <returns>the app ID of the app label</returns>
+        public Task<string> GetAppIDbyAppLabel(string appLabel)
+        {
+            throw new NotImplementedException();
+        }
+
+        /// <summary>
+        /// Checks whether application is removable
+        /// </summary>
+        /// <param name="appID">The app ID to get</param>
+        /// <returns>If the application is removable, true; otherwise, false</returns>
+        public bool GetAppInfoRemovable(string appID)
+        {
+            return appID.Contains("removable");
+        }
+
+        /// <summary>
+        /// A method provides application information which is matched with the given app ID.
+        /// </summary>
+        /// <param name="applicationId">An application ID</param>
+        /// <returns>An installed application information</returns>
+        public InstalledApp GetInstalledApplication(string applicationId)
+        {
+            return new InstalledApp
+            {
+                AppID = applicationId,
+                Applabel = applicationId,
+                IconPath = "path/" + applicationId,
+                InstalledTime = DateUtils.GetRandomDate(),
+            };
+        }
+
+        /// <summary>
+        /// A method provides a recent application list.
+        /// </summary>
+        /// <returns>A Recent application list.</returns>
+        public IEnumerable<RecentApp> GetRecentApplications()
+        {
+            IList<RecentApp> testData = new List<RecentApp>();
+
+            testData.Add(new RecentApp
+            {
+                InstanceID = "recentapp1",
+                InstanceLabel = "recentapp1",
+                AppID = "org.tizen.recentapp1",
+                Applabel = "recentapp1",
+                IconPath = "/test/recentapp1",
+                LaunchedTime = new DateTime(2014, 11, 12),
+                Uri = "uri/recentapp1",
+                ScreenShot = "screenshot/recentapp1",
+            });
+            testData.Add(new RecentApp
+            {
+                InstanceID = "recentapp2.noscreenshot",
+                InstanceLabel = "recentapp2.noscreenshot",
+                AppID = "org.tizen.recentapp2.noscreenshot",
+                Applabel = "recentapp2.noscreenshot",
+                IconPath = "/test/recentapp2",
+                LaunchedTime = new DateTime(2014, 11, 12),
+                Uri = "uri/recentapp2",
+            });
+            testData.Add(new RecentApp
+            {
+                InstanceID = "invalid.recentapp3.nolabel",
+                AppID = "invalid.org.tizen.recentapp3.nolabel",
+                IconPath = "/test/recentapp3",
+                LaunchedTime = new DateTime(2014, 11, 12),
+                Uri = "uri/recentapp3",
+                ScreenShot = "screenshot/recentapp3",
+            });
+            testData.Add(new RecentApp
+            {
+                InstanceID = "invalid.recentapp4.notime",
+                AppID = "invalid.org.tizen.recentapp4.notime",
+                Applabel = "recentapp4.notime",
+                IconPath = "/test/recentapp4",
+                Uri = "uri/recentapp4",
+                ScreenShot = "screenshot/recentapp4",
+            });
+            testData.Add(new RecentApp
+            {
+                InstanceID = "recentapp5",
+                InstanceLabel = "recentapp5",
+                AppID = "org.tizen.recentapp5",
+                Applabel = "recentapp5",
+                IconPath = "/test/recentapp5",
+                LaunchedTime = new DateTime(2017, 05, 02),
+                Uri = "uri/recentapp5",
+                ScreenShot = "screenshot/recentapp5",
+            });
+            testData.Add(new RecentApp
+            {
+                InstanceID = "recentapp6",
+                InstanceLabel = "recentapp6",
+                AppID = "org.tizen.recentapp6",
+                Applabel = "recentapp6",
+                IconPath = "/test/recentapp6",
+                LaunchedTime = new DateTime(2017, 02, 26),
+                Uri = "uri/recentapp6",
+                ScreenShot = "screenshot/recentapp6",
+            });
+            testData.Add(new RecentApp
+            {
+                InstanceID = "recentapp7",
+                InstanceLabel = "recentapp7",
+                AppID = "org.tizen.recentapp7",
+                Applabel = "recentapp7",
+                IconPath = "/test/recentapp7",
+                LaunchedTime = new DateTime(2016, 04, 25),
+                Uri = "uri/recentapp7",
+                ScreenShot = "screenshot/recentapp7",
+            });
+
+            return testData;
+        }
+    }
+}
diff --git a/LibCommon.Shared/Stubs/FileSystemAPITestStub.cs b/LibCommon.Shared/Stubs/FileSystemAPITestStub.cs
new file mode 100644 (file)
index 0000000..bc3955e
--- /dev/null
@@ -0,0 +1,180 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using LibTVRefCommonPortable.Utils;
+using System;
+using System.IO;
+using System.Text;
+
+namespace LibTVRefCommonPortable.Stubs
+{
+    /// <summary>
+    /// A unit test stub for FileSystemUtils
+    /// </summary>
+    public class FileSystemAPITestStub : IFileSystemAPIs
+    {
+        /// <summary>
+        /// A directory path which should be used for app data storing.
+        /// </summary>
+        public string AppDataStorage
+        {
+            get
+            {
+                return "test_app_data_path/";
+            }
+        }
+
+        /// <summary>
+        /// A directory path which should be used for app resource storing.
+        /// </summary>
+        public string AppResourceStorage
+        {
+            get
+            {
+                return "test_app_resource_path/";
+            }
+        }
+
+        /// <summary>
+        /// A directory path which should be used for sharing between apps.
+        /// </summary>
+        public string PlatformShareStorage
+        {
+            get
+            {
+                return "test_platform_share_path/";
+            }
+        }
+
+        /// <summary>
+        /// A method closes the file.
+        /// </summary>
+        /// <param name="stream">A file descriptor</param>
+        public void CloseFile(Stream stream)
+        {
+        }
+
+        /// <summary>
+        /// A method flushing the stream to write remains.
+        /// </summary>
+        /// <param name="stream">A file descriptor</param>
+        public void Flush(Stream stream)
+        {
+        }
+
+        /// <summary>
+        /// A method checks if a file existence in the file system.
+        /// </summary>
+        /// <param name="filePath">A file path</param>
+        /// <returns>An existence of the file</returns>
+        public bool IsFileExist(string filePath)
+        {
+            return true;
+        }
+
+        /// <summary>
+        /// A method checks if file is read to use.
+        /// </summary>
+        /// <param name="filePath">A file path</param>
+        /// <returns>A status of ready</returns>
+        public bool IsFileReady(string filePath)
+        {
+            return true;
+        }
+
+        /// <summary>
+        /// A method opens a file on the given mode.
+        /// </summary>
+        /// <param name="filePath">A file path</param>
+        /// <param name="mode">An opening mode</param>
+        /// <returns>A file descriptor</returns>
+        public Stream OpenFile(string filePath, UtilFileMode mode)
+        {
+            if (mode != UtilFileMode.Open)
+            {
+                throw new NotImplementedException();
+            }
+
+            if (filePath.Contains("pinned_apps_info"))
+            {
+                StringBuilder pinnedApps = new StringBuilder();
+
+                pinnedApps.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
+                pinnedApps.Append("<ArrayOfAppShortcutInfo");
+                pinnedApps.Append(" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"");
+                pinnedApps.Append(" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">");
+                pinnedApps.Append("  <AppShortcutInfo>");
+                pinnedApps.Append("    <AppID>org.tizen.xahome</AppID>");
+                pinnedApps.Append("  </AppShortcutInfo>");
+                pinnedApps.Append("  <AppShortcutInfo>");
+                pinnedApps.Append("    <AppID>org.tizen.xaapps</AppID>");
+                pinnedApps.Append("  </AppShortcutInfo>");
+                pinnedApps.Append("  <AppShortcutInfo>");
+                pinnedApps.Append("    <AppID>org.tizen.xamediahub</AppID>");
+                pinnedApps.Append("  </AppShortcutInfo>");
+                pinnedApps.Append("  <AppShortcutInfo>");
+                pinnedApps.Append("    <AppID>org.tizen.settings</AppID>");
+                pinnedApps.Append("  </AppShortcutInfo>");
+                pinnedApps.Append("  <AppShortcutInfo>");
+                pinnedApps.Append("    <AppID>org.tizen.example.TocToc.Tizen</AppID>");
+                pinnedApps.Append("  </AppShortcutInfo>");
+                pinnedApps.Append("  <AppShortcutInfo>");
+                pinnedApps.Append("    <AppID>org.tizen.example.YouTube.Tizen</AppID>");
+                pinnedApps.Append("  </AppShortcutInfo>");
+                pinnedApps.Append("  <AppShortcutInfo>");
+                pinnedApps.Append("    <AppID>org.tizen.example.Toda.Tizen</AppID>");
+                pinnedApps.Append("  </AppShortcutInfo>");
+                pinnedApps.Append("  <AppShortcutInfo>");
+                pinnedApps.Append("    <AppID>org.tizen.example.Butterfly4.Tizen</AppID>");
+                pinnedApps.Append("  </AppShortcutInfo>");
+                pinnedApps.Append("  <AppShortcutInfo>");
+                pinnedApps.Append("    <AppID>org.tizen.example.Butterfly5.Tizen</AppID>");
+                pinnedApps.Append("  </AppShortcutInfo>");
+                pinnedApps.Append("  <AppShortcutInfo>");
+                pinnedApps.Append("    <AppID>org.tizen.example.Butterfly6.Tizen</AppID>");
+                pinnedApps.Append("  </AppShortcutInfo>");
+                pinnedApps.Append("  <AppShortcutInfo>");
+                pinnedApps.Append("    <AppID>org.tizen.example.Butterfly7.Tizen</AppID>");
+                pinnedApps.Append("  </AppShortcutInfo>");
+                pinnedApps.Append("  <AppShortcutInfo>");
+                pinnedApps.Append("    <AppID>org.tizen.example.Butterfly8.Tizen</AppID>");
+                pinnedApps.Append("  </AppShortcutInfo>");
+                pinnedApps.Append("  <AppShortcutInfo>");
+                pinnedApps.Append("    <AppID>org.tizen.example.Butterfly9.Tizen</AppID>");
+                pinnedApps.Append("  </AppShortcutInfo>");
+                pinnedApps.Append("  <AppShortcutInfo>");
+                pinnedApps.Append("    <AppID>org.tizen.example.Butterfly10.Tizen</AppID>");
+                pinnedApps.Append("  </AppShortcutInfo>");
+                pinnedApps.Append("  <AppShortcutInfo>");
+                pinnedApps.Append("    <AppID>org.tizen.example.Butterfly11.Tizen</AppID>");
+                pinnedApps.Append("  </AppShortcutInfo>");
+                pinnedApps.Append("  <AppShortcutInfo>");
+                pinnedApps.Append("    <AppID></AppID>");
+                pinnedApps.Append("  </AppShortcutInfo>");
+                pinnedApps.Append("</ArrayOfAppShortcutInfo>");
+
+                MemoryStream stream = new MemoryStream();
+                StreamWriter writer = new StreamWriter(stream);
+                writer.Write(pinnedApps.ToString());
+                writer.Flush();
+                stream.Position = 0;
+                return stream;
+            }
+
+            throw new NotImplementedException();
+        }
+    }
+}
diff --git a/LibCommon.Shared/Stubs/FileWatcherAPITestStub.cs b/LibCommon.Shared/Stubs/FileWatcherAPITestStub.cs
new file mode 100644 (file)
index 0000000..24709b5
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using LibTVRefCommonPortable.Utils;
+using System;
+
+namespace LibTVRefCommonPortable.Stubs
+{
+    /// <summary>
+    /// A unit test stub for FileSystemUtils
+    /// </summary>
+    public class FileWatcherAPITestStub : IFileSystemWatcherAPIs
+    {
+        /// <summary>
+        /// A EventHandler for the file system watcher.
+        /// </summary>
+        public event EventHandler<EventArgs> CustomChanged;
+
+        /// <summary>
+        /// A method starts the file system watcher.
+        /// </summary>
+        /// <param name="path">Target file path</param>
+        /// <param name="fileName">Target file name</param>
+        public void Run(String path, String fileName)
+        {
+            CustomChanged?.Invoke(this, EventArgs.Empty);
+
+        }
+    }
+}
diff --git a/LibCommon.Shared/Stubs/MediaContentAPITestStub.cs b/LibCommon.Shared/Stubs/MediaContentAPITestStub.cs
new file mode 100644 (file)
index 0000000..2eeefb9
--- /dev/null
@@ -0,0 +1,101 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using LibTVRefCommonPortable.Utils;
+using System;
+using System.Collections.Generic;
+
+namespace LibTVRefCommonPortable.Stubs
+{
+    /// <summary>
+    /// A unit testing stub for MediaContentUtils
+    /// </summary>
+    public class MediaContentAPITestStub : IMediaContentAPIs
+    {
+        /// <summary>
+        /// A method for getting recently played media content list
+        /// </summary>
+        /// <param name="limitation">Maximum count of list</param>
+        /// <returns>The recently played media content list</returns>
+        public IEnumerable<RecentlyPlayedMedia> GetRecentlyPlayedMedia(int limitation)
+        {
+            IList<RecentlyPlayedMedia> recentlyPlayed = new List<RecentlyPlayedMedia>();
+
+            recentlyPlayed.Add(new RecentlyPlayedMedia
+            {
+                MediaId = "id/recent_media1",
+                ThumbnailPath = "thumbnail/recent_media1",
+                FilePath = "filepath/recent_media1",
+                DisplayName = "recent_media1",
+                PlayedAt = new DateTime(2017, 05, 22),
+            });
+
+            recentlyPlayed.Add(new RecentlyPlayedMedia
+            {
+                MediaId = "invalid.recent_media2.nofilepath",
+                ThumbnailPath = "invalid.recent_media2.nofilepath",
+                DisplayName = "invalid.recent_media2.nofilepath",
+                PlayedAt = new DateTime(2017, 2, 26),
+            });
+
+            recentlyPlayed.Add(new RecentlyPlayedMedia
+            {
+                MediaId = "id/recent_media3.nothumbnail",
+                FilePath = "filepath/recent_media3.nothumbnail",
+                DisplayName = "recent_media3.nothumbnail",
+                PlayedAt = new DateTime(2016, 4, 25),
+            });
+
+            recentlyPlayed.Add(new RecentlyPlayedMedia
+            {
+                MediaId = "id/recent_media4",
+                ThumbnailPath = "thumbnail/recent_media4",
+                FilePath = "filepath/recent_media4",
+                DisplayName = "recent_media4",
+                PlayedAt = new DateTime(2015, 12, 7),
+            });
+
+            recentlyPlayed.Add(new RecentlyPlayedMedia
+            {
+                MediaId = "id/recent_media5",
+                ThumbnailPath = "thumbnail/recent_media5",
+                FilePath = "filepath/recent_media5",
+                DisplayName = "recent_media5",
+                PlayedAt = new DateTime(2015, 10, 1),
+            });
+
+            recentlyPlayed.Add(new RecentlyPlayedMedia
+            {
+                MediaId = "id/recent_media6",
+                ThumbnailPath = "thumbnail/recent_media6",
+                FilePath = "filepath/recent_media6",
+                DisplayName = "recent_media6",
+                PlayedAt = new DateTime(2015, 3, 3),
+            });
+
+            recentlyPlayed.Add(new RecentlyPlayedMedia
+            {
+                MediaId = "id/recent_media7",
+                ThumbnailPath = "thumbnail/recent_media7",
+                FilePath = "filepath/recent_media7",
+                DisplayName = "recent_media8",
+                PlayedAt = new DateTime(2014, 11, 17),
+            });
+
+            return recentlyPlayed;
+        }
+    }
+}
diff --git a/LibCommon.Shared/Utils/AppControlUtils.cs b/LibCommon.Shared/Utils/AppControlUtils.cs
new file mode 100644 (file)
index 0000000..64a8832
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using System.Collections.Generic;
+using Xamarin.Forms;
+
+namespace LibTVRefCommonPortable.Utils
+{
+    /// <summary>
+    /// A class provides App Control utility APIs.
+    /// </summary>
+    public sealed class AppControlUtils
+    {
+        /// <summary>
+        /// A method makes the app to be launched.
+        /// </summary>
+        /// <param name="appID">An application ID of the targeted application.</param>
+        /// <param name="extraData">An extra data for App Control invoking.</param>
+        /// <param name="fileUri">A file Uri to be opened.</param>
+        public static void SendLaunchRequest(string appID, IDictionary<string, string> extraData = null, string fileUri = null)
+        {
+            if (DependencyService.Get<IAppControl>() == null)
+            {
+                return;
+            }
+
+            DependencyService.Get<IAppControl>().SendLaunchRequest(appID, extraData, fileUri);
+        }
+
+        /// <summary>
+        /// A method sends a add pin request App Control to TVApps app.
+        /// </summary>
+        public static void SendAddAppRequestToApps()
+        {
+            if (DependencyService.Get<IAppControl>() == null)
+            {
+                return;
+            }
+
+            DependencyService.Get<IAppControl>().SendAddAppRequestToApps();
+        }
+
+        /// <summary>
+        /// A method sends a pin added notification App control to TVHome app.
+        /// </summary>
+        /// <param name="addedAddID">An app ID of newly added.</param>
+        public static void SendAppAddedNotificationToHome(string addedAddID)
+        {
+            if (DependencyService.Get<IAppControl>() == null)
+            {
+                return;
+            }
+
+            DependencyService.Get<IAppControl>().SendAppAddedNotificationToHome(addedAddID);
+        }
+
+        /// <summary>
+        /// A method terminates caller application.
+        /// </summary>
+        public static void SelfTerminate()
+        {
+            if (DependencyService.Get<IAppLifeControl>() == null)
+            {
+                return;
+            }
+
+            DependencyService.Get<IAppLifeControl>().SelfTerminate();
+        }
+    }
+}
diff --git a/LibCommon.Shared/Utils/AppShortcutStorage.cs b/LibCommon.Shared/Utils/AppShortcutStorage.cs
new file mode 100644 (file)
index 0000000..67b5ae1
--- /dev/null
@@ -0,0 +1,144 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+using System;
+using System.Collections.Generic;
+using System.Xml.Serialization;
+using System.IO;
+using LibTVRefCommonPortable.DataModels;
+using System.Threading.Tasks;
+using System.Diagnostics;
+
+namespace LibTVRefCommonPortable.Utils
+{
+    /// <summary>
+    /// A class manages App Shortcuts by using subsystem.
+    /// </summary>
+    public class AppShortcutStorage
+    {
+        /// <summary>
+        /// A storage path.
+        /// </summary>
+        private static String StoragePath;
+
+        /// <summary>
+        /// A file system watcher which checks if the targeted storage is changed.
+        /// </summary>
+        private static IFileSystemWatcherAPIs fileSystemWatcher = FileSystemUtils.Instance.FileSysteamWatcherInstance;
+
+        /// <summary>
+        /// An instance of AppShortcutStorage.
+        /// </summary>
+        private static AppShortcutStorage instance = new AppShortcutStorage();
+
+        /// <summary>
+        /// An instance of AppShortcutStorage.
+        /// </summary>
+        public static AppShortcutStorage Instance
+        {
+            get { return instance; }
+        }
+
+        /// <summary>
+        /// A constructor of AppShortcutStorage.
+        /// </summary>
+        private AppShortcutStorage()
+        {
+            StoragePath = FileSystemUtils.Instance.PlatformShareStorage + "pinned_apps_info.xml";
+
+            CheckStorage();
+
+            fileSystemWatcher.Run(FileSystemUtils.Instance.PlatformShareStorage, "pinned_apps_info.xml");
+        }
+
+        /// <summary>
+        /// Check if the storage is exist
+        /// </summary>
+        private static void CheckStorage()
+        {
+            if (FileSystemUtils.Instance.IsFileExist(StoragePath) == false)
+            {
+                DebuggingUtils.Err("Set Default Pinned Apps" + StoragePath);
+                List<AppShortcutInfo> result = new List<AppShortcutInfo>();
+                Write(result);
+            }
+        }
+
+        /// <summary>
+        /// A method provides an app Shortcut list.
+        /// </summary>
+        /// <returns>An app Shortcut list.</returns>
+        public static async Task<IEnumerable<AppShortcutInfo>> Read()
+        {
+            CheckStorage();
+
+            for (int i = 0; i <= 6; i++)
+            {
+                if (FileSystemUtils.Instance.IsFileReady(StoragePath))
+                {
+                    break;
+                }
+                else if (i == 6)
+                {
+                    DebuggingUtils.Err("Can't open storage" + StoragePath);
+                    return new List<AppShortcutInfo>();
+                }
+
+                await Task.Delay(100);
+                DebuggingUtils.Dbg("[" + i + "] Waiting for Writing" + StoragePath);
+            }
+
+            using (Stream fileStream = FileSystemUtils.Instance.OpenFile(StoragePath, UtilFileMode.Open))
+            {
+                Debug.Assert(fileStream != null);
+
+                XmlSerializer serializer = new XmlSerializer(typeof(List<AppShortcutInfo>));
+                StreamReader streamReader = new StreamReader(fileStream);
+                List<AppShortcutInfo> list = (List<AppShortcutInfo>)serializer.Deserialize(streamReader);
+
+                return list;
+            }
+        }
+
+        /// <summary>
+        /// A method updates App Shortcuts of the storage
+        /// </summary>
+        /// <param name="pinnedAppInfo">An app Shortcuts that pinned by a user.</param>
+        /// <returns>A status of storage update.</returns>
+        public static bool Write(IEnumerable<AppShortcutInfo> pinnedAppInfo)
+        {
+            using (Stream fileStream = FileSystemUtils.Instance.OpenFile(StoragePath, UtilFileMode.Create))
+            {
+                Debug.Assert(fileStream != null);
+
+                XmlSerializer serializer = new XmlSerializer(typeof(List<AppShortcutInfo>));
+                StreamWriter streamWriter = new StreamWriter(fileStream);
+                serializer.Serialize(streamWriter, pinnedAppInfo);
+                streamWriter.Flush();
+            }
+
+            return true;
+        }
+
+        /// <summary>
+        /// A method sets an event listener for the storage watcher
+        /// </summary>
+        /// <param name="eventListener">An event handler for the storage event </param>
+        public void AddStorageChangedListener(EventHandler<EventArgs> eventListener)
+        {
+            fileSystemWatcher.CustomChanged += eventListener;
+        }
+    }
+}
diff --git a/LibCommon.Shared/Utils/ApplicationManagerUtils.cs b/LibCommon.Shared/Utils/ApplicationManagerUtils.cs
new file mode 100644 (file)
index 0000000..138d211
--- /dev/null
@@ -0,0 +1,137 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using LibTVRefCommonPortable.Stubs;
+using System;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+using Xamarin.Forms;
+
+namespace LibTVRefCommonPortable.Utils
+{
+    /// <summary>
+    /// A class provides application controlling functions
+    /// </summary>
+    public sealed class ApplicationManagerUtils
+    {
+        /// <summary>
+        /// A instance of platform specific application manager port.
+        /// </summary>
+        private static IApplicationManagerAPIs applicationManagerAPIs;
+
+        /// <summary>
+        /// A instance of ApplicationManagerUtils
+        /// </summary>
+        private static readonly ApplicationManagerUtils instance = new ApplicationManagerUtils();
+
+        /// <summary>
+        /// A getter of ApplicationManagerUtils instance
+        /// </summary>
+        public static ApplicationManagerUtils Instance
+        {
+            get
+            {
+                return instance;
+            }
+        }
+
+        /// <summary>
+        /// A constructor
+        /// </summary>
+        private ApplicationManagerUtils()
+        {
+            applicationManagerAPIs = new ApplicationManagerAPITestStub();
+
+            try
+            {
+                if (DependencyService.Get<IApplicationManagerAPIs>() != null)
+                {
+                    applicationManagerAPIs = DependencyService.Get<IApplicationManagerAPIs>();
+                }
+            }
+            catch (InvalidOperationException e)
+            {
+                DebuggingUtils.Err(e.Message);
+            }
+        }
+
+        /// <summary>
+        /// A method for removing all recent applications
+        /// </summary>
+        public void DeleteAllRecentApplication()
+        {
+            applicationManagerAPIs.DeleteAllRecentApplication();
+        }
+
+        /// <summary>
+        /// A method for removing the specified recent application
+        /// </summary>
+        /// <param name="appId">An application ID</param>
+        public void DeleteRecentApplication(string appId)
+        {
+            applicationManagerAPIs.DeleteRecentApplication(appId);
+        }
+
+
+        /// <summary>
+        /// Gets the information of the recent applications
+        /// </summary>
+        /// <returns>The list of the recent applications</returns>
+        public IEnumerable<RecentApp> GetRecentApplications()
+        {
+            return applicationManagerAPIs.GetRecentApplications();
+        }
+
+        /// <summary>
+        /// Gets the information of the specified application with the app ID
+        /// </summary>
+        /// <param name="appID">The app Id to get</param>
+        /// <returns>The information of the installed application</returns>
+        public InstalledApp GetInstalledApplication(string appID)
+        {
+            return applicationManagerAPIs.GetInstalledApplication(appID);
+        }
+
+        /// <summary>
+        /// Gets the information of the installed applications asynchronously
+        /// </summary>
+        /// <returns>The list of the installed applications</returns>
+        public Task<IEnumerable<InstalledApp>> GetAllInstalledApplication()
+        {
+            return applicationManagerAPIs.GetAllInstalledApplication();
+        }
+
+        /// <summary>
+        /// Checks whether application is removable
+        /// </summary>
+        /// <param name="appID">The app ID to get</param>
+        /// <returns>If the application is removable, true; otherwise, false</returns>
+        public bool GetAppInfoRemovable(string appID)
+        {
+            return applicationManagerAPIs.GetAppInfoRemovable(appID);
+        }
+
+        /// <summary>
+        /// Gets the app ID by the app label
+        /// </summary>
+        /// <param name="appLabel">the app label to get</param>
+        /// <returns>the app ID of the app label</returns>
+        public Task<string> GetAppIDbyAppLabel(string appLabel)
+        {
+            return applicationManagerAPIs.GetAppIDbyAppLabel(appLabel);
+        }
+    }
+}
diff --git a/LibCommon.Shared/Utils/DateUtils.cs b/LibCommon.Shared/Utils/DateUtils.cs
new file mode 100644 (file)
index 0000000..f2e6e14
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using System;
+
+namespace LibTVRefCommonPortable.Utils
+{
+    /// <summary>
+    /// A class provides Date, Time related functions
+    /// </summary>
+    public class DateUtils
+    {
+        /// <summary>
+        /// A random seed
+        /// </summary>
+        private static Random seed = new Random();
+
+        /// <summary>
+        /// A method provides a random date.
+        /// </summary>
+        /// <returns>A date</returns>
+        public static DateTime GetRandomDate()
+        {
+            DateTime baseDate = DateTime.Now.AddYears(-10);
+            return baseDate.AddDays(seed.Next((DateTime.Now - baseDate).Days));
+        }
+    }
+}
diff --git a/LibCommon.Shared/Utils/DebuggingUtils.cs b/LibCommon.Shared/Utils/DebuggingUtils.cs
new file mode 100644 (file)
index 0000000..61418c6
--- /dev/null
@@ -0,0 +1,135 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using System;
+using System.Runtime.CompilerServices;
+using Xamarin.Forms;
+
+namespace LibTVRefCommonPortable.Utils
+{
+    /// <summary>
+    /// A debugging utility class.
+    /// </summary>
+    public sealed class DebuggingUtils
+    {
+        /// <summary>
+        /// A debugging API interface
+        /// </summary>
+        private static IDebuggingAPIs ism;
+
+        /// <summary>
+        /// An instance of DebuggingUtils
+        /// </summary>
+        private static readonly DebuggingUtils instance = new DebuggingUtils();
+
+        /// <summary>
+        /// A method provides instance of DebuggingUtils. </summary>
+        public static DebuggingUtils Instance
+        {
+            get { return instance; }
+        }
+
+        /// <summary>
+        /// Default implementation of IDebuggingAPIs interface .
+        /// This is required for the unit testing of the Calculator application.
+        /// </summary>
+        private class DefaultSM : IDebuggingAPIs
+        {
+            /// <summary>
+            /// A method displays an error log.
+            /// </summary>
+            /// <param name="message"> An error message.</param>
+            /// <param name="file"> A file name.</param>
+            /// <param name="func"> A function name.</param>
+            /// <param name="line"> A line number.</param>
+            public void Dbg(string message, String file, String func, Int32 line)
+            {
+            }
+
+            /// <summary>
+            /// A method displays a dialog with a given message.
+            /// </summary>
+            /// <param name="message"> A debugging message.</param>
+            /// <param name="file"> A file name.</param>
+            /// <param name="func"> A function name.</param>
+            /// <param name="line"> A line number.</param>
+            public void Err(string message, String file, String func, Int32 line)
+            {
+            }
+
+            /// <summary>
+            /// A method displays a debugging log.
+            /// </summary>
+            /// <param name="message"> A debugging message.</param>
+            public void Popup(string message)
+            {
+            }
+        }
+
+        /// <summary>
+        /// DebuggingUtils constructor which set interface instance.
+        /// </summary>
+        private DebuggingUtils()
+        {
+            ism = new DefaultSM();
+
+            try
+            {
+                if (DependencyService.Get<IDebuggingAPIs>() != null)
+                {
+                    ism = DependencyService.Get<IDebuggingAPIs>();
+                }
+            }
+            catch (InvalidOperationException e)
+            {
+                Err(e.Message);
+            }
+        }
+
+        /// <summary>
+        /// A method displays a debugging message
+        /// </summary>
+        /// <param name="message"> A list of command line arguments.</param>
+        /// <param name="file"> A file name.</param>
+        /// <param name="func"> A function name.</param>
+        /// <param name="line"> A line number.</param>
+        public static void Dbg(string message, [CallerFilePath] System.String file = "", [CallerMemberName] System.String func = "", [CallerLineNumber] System.Int32 line = 0)
+        {
+            ism.Dbg(message, file, func, line);
+        }
+
+        /// <summary>
+        /// A method displays an error message
+        /// </summary>
+        /// <param name="message"> A list of command line arguments.</param>
+        /// <param name="file"> A file name.</param>
+        /// <param name="func"> A function name.</param>
+        /// <param name="line"> A line number.</param>
+        public static void Err(string message, [CallerFilePath] System.String file = "", [CallerMemberName] System.String func = "", [CallerLineNumber] System.Int32 line = 0)
+        {
+            ism.Err(message, file, func, line);
+        }
+
+        /// <summary>
+        /// A method displays a pop up  message
+        /// </summary>
+        /// <param name="message"> A list of command line arguments.</param>
+        public static void Popup(string message)
+        {
+            ism.Popup(message);
+        }
+    }
+}
diff --git a/LibCommon.Shared/Utils/FileSystemUtils.cs b/LibCommon.Shared/Utils/FileSystemUtils.cs
new file mode 100644 (file)
index 0000000..4ed3434
--- /dev/null
@@ -0,0 +1,176 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using LibTVRefCommonPortable.Stubs;
+using System;
+using System.IO;
+using Xamarin.Forms;
+
+namespace LibTVRefCommonPortable.Utils
+{
+    /// <summary>
+    /// A class for file system control function.
+    /// </summary>
+    class FileSystemUtils
+    {
+        /// <summary>
+        /// A instance of file system port layer
+        /// </summary>
+        private static IFileSystemAPIs fileSystemAPIs;
+
+        /// <summary>
+        /// A instance of file system watcher port layer
+        /// </summary>
+        private static IFileSystemWatcherAPIs fileSystemWatcherAPIs;
+
+        /// <summary>
+        /// A instance of FileSystemUtils
+        /// </summary>
+        private static readonly FileSystemUtils instance = new FileSystemUtils();
+
+        /// <summary>
+        /// A property of FileSystemUtils instance
+        /// </summary>
+        public static FileSystemUtils Instance
+        {
+            get
+            {
+                return instance;
+            }
+        }
+
+        /// <summary>
+        /// A property of file system watcher instance
+        /// </summary>
+        public IFileSystemWatcherAPIs FileSysteamWatcherInstance
+        {
+            get
+            {
+                return fileSystemWatcherAPIs;
+            }
+        }
+
+        /// <summary>
+        /// A constructor
+        /// </summary>
+        private FileSystemUtils()
+        {
+            fileSystemAPIs = new FileSystemAPITestStub();
+            fileSystemWatcherAPIs = new FileWatcherAPITestStub();
+
+            try
+            {
+                if (DependencyService.Get<IFileSystemAPIs>() != null)
+                {
+                    fileSystemAPIs = DependencyService.Get<IFileSystemAPIs>();
+                }
+
+                if (DependencyService.Get<IFileSystemWatcherAPIs>() != null)
+                {
+                    fileSystemWatcherAPIs = DependencyService.Get<IFileSystemWatcherAPIs>();
+                }
+            }
+            catch (InvalidOperationException e)
+            {
+                DebuggingUtils.Err(e.Message);
+            }
+        }
+
+        /// <summary>
+        /// A directory path which should be used for app data storing.
+        /// </summary>
+        public string AppDataStorage
+        {
+            get
+            {
+                return fileSystemAPIs.AppDataStorage;
+            }
+        }
+
+        /// <summary>
+        /// A directory path which should be used for app resource storing.
+        /// </summary>
+        public string AppResourceStorage
+        {
+            get
+            {
+                return fileSystemAPIs.AppResourceStorage;
+            }
+        }
+
+        /// <summary>
+        /// A directory path which should be used for sharing between apps.
+        /// </summary>
+        public string PlatformShareStorage
+        {
+            get
+            {
+                return fileSystemAPIs.PlatformShareStorage;
+            }
+        }
+
+        /// <summary>
+        /// A method opens a file on the given mode.
+        /// </summary>
+        /// <param name="filePath">A file path</param>
+        /// <param name="mode">An opening mode</param>
+        /// <returns>A file descriptor</returns>
+        public Stream OpenFile(string filePath, UtilFileMode mode)
+        {
+            return fileSystemAPIs.OpenFile(filePath, mode);
+        }
+
+        /// <summary>
+        /// A method flushing the stream to write remains.
+        /// </summary>
+        /// <param name="stream">A file descriptor</param>
+        public void Flush(Stream stream)
+        {
+            fileSystemAPIs.Flush(stream);
+        }
+
+        /// <summary>
+        /// A method closes the file.
+        /// </summary>
+        /// <param name="stream">A file descriptor</param>
+        public void CloseFile(Stream stream)
+        {
+            fileSystemAPIs.CloseFile(stream);
+        }
+
+        /// <summary>
+        /// A method checks if a file existence in the file system.
+        /// </summary>
+        /// <param name="filePath">A file path</param>
+        /// <returns>An existence of the file</returns>
+        public bool IsFileExist(String filePath)
+        {
+            return fileSystemAPIs.IsFileExist(filePath);
+        }
+
+        /// <summary>
+        /// A method checks if file is read to use.
+        /// </summary>
+        /// <param name="filePath">A file path</param>
+        /// <returns>A status of ready</returns>
+        public bool IsFileReady(String filePath)
+        {
+            return fileSystemAPIs.IsFileReady(filePath);
+        }
+
+
+    }
+}
diff --git a/LibCommon.Shared/Utils/IAppControl.cs b/LibCommon.Shared/Utils/IAppControl.cs
new file mode 100644 (file)
index 0000000..9aa4c3f
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+using System.Collections.Generic;
+
+namespace LibTVRefCommonPortable.Utils
+{
+    /// <summary>
+    /// An interface for App Control feature
+    /// </summary>
+    public interface IAppControl
+    {
+        /// <summary>
+        /// Sends the launch request
+        /// </summary>
+        /// <param name="appId"> The app ID to explicitly launch</param>
+        /// <param name="extraData">The extra data for the app control</param>
+        /// <param name="fileUri">The file uri to be opened</param>
+        void SendLaunchRequest(string appId, IDictionary<string, string> extraData, string fileUri);
+
+        /// <summary>
+        /// A method sends add pin request App Control to TVApps app.
+        /// </summary>
+        void SendAddAppRequestToApps();
+
+        /// <summary>
+        /// A method sends a pin added notification App control to TVHome app.
+        /// </summary>
+        /// <param name="addedAddID">An app ID of newly added.</param>
+        void SendAppAddedNotificationToHome(string addedAddID);
+    }
+}
diff --git a/LibCommon.Shared/Utils/IAppLifeControl.cs b/LibCommon.Shared/Utils/IAppLifeControl.cs
new file mode 100644 (file)
index 0000000..ab6e2e7
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+namespace LibTVRefCommonPortable.Utils
+{
+    /// <summary>
+    /// An interface for app life management.
+    /// </summary>
+    public interface IAppLifeControl
+    {
+        /// <summary>
+        /// A method terminates the caller app.
+        /// </summary>
+        void SelfTerminate();
+    }
+}
diff --git a/LibCommon.Shared/Utils/IApplicationManagerAPIs.cs b/LibCommon.Shared/Utils/IApplicationManagerAPIs.cs
new file mode 100644 (file)
index 0000000..c8521b9
--- /dev/null
@@ -0,0 +1,144 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using System;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+
+namespace LibTVRefCommonPortable.Utils
+{
+    /// <summary>
+    /// A class to store RecentApp information.
+    /// </summary>
+    public class RecentApp
+    {
+        /// <summary>
+        /// A Recent instance ID
+        /// </summary>
+        public String InstanceID;
+
+        /// <summary>
+        /// A Recent instance label
+        /// </summary>
+        public String InstanceLabel;
+
+        /// <summary>
+        /// An app ID
+        /// </summary>
+        public String AppID;
+
+        /// <summary>
+        /// An app label
+        /// </summary>
+        public String Applabel;
+
+        /// <summary>
+        /// An app icon path
+        /// </summary>
+        public String IconPath;
+
+        /// <summary>
+        /// A last launched date
+        /// </summary>
+        public DateTime LaunchedTime;
+
+        /// <summary>
+        /// A URI of accessible content if the Recent is a content.
+        /// </summary>
+        public String Uri;
+
+        /// <summary>
+        /// A File Path of screenshot of the recent app or recent content.
+        /// </summary>
+        public String ScreenShot;
+    }
+
+    /// <summary>
+    /// A class to store installed app information.
+    /// </summary>
+    public class InstalledApp
+    {
+        /// <summary>
+        /// An app ID
+        /// </summary>
+        public String AppID;
+
+        /// <summary>
+        /// An app label
+        /// </summary>
+        public String Applabel;
+
+        /// <summary>
+        /// An app icon path
+        /// </summary>
+        public String IconPath;
+
+        /// <summary>
+        /// A installed date
+        /// </summary>
+        public DateTime InstalledTime;
+    }
+
+    /// <summary>
+    /// An interface for Application Manager feature
+    /// </summary>
+    public interface IApplicationManagerAPIs
+    {
+        /// <summary>
+        /// A method provides installed application list.
+        /// </summary>
+        /// <returns>An installed application list</returns>
+        Task<IEnumerable<InstalledApp>> GetAllInstalledApplication();
+
+        /// <summary>
+        /// A method provides a recent application list.
+        /// </summary>
+        /// <returns>A Recent application list.</returns>
+        IEnumerable<RecentApp> GetRecentApplications();
+
+        /// <summary>
+        /// A method provides application information which is matched with the given app ID.
+        /// </summary>
+        /// <param name="applicationId">An application ID</param>
+        /// <returns>An installed application information</returns>
+        InstalledApp GetInstalledApplication(string applicationId);
+
+        /// <summary>
+        /// A method for removing all recent applications
+        /// </summary>
+        void DeleteAllRecentApplication();
+
+        /// <summary>
+        /// A method for removing the specified recent application
+        /// </summary>
+        /// <param name="appId">An application ID</param>
+        void DeleteRecentApplication(string appId);
+
+        /// <summary>
+        /// Checks whether application is removable
+        /// </summary>
+        /// <param name="appID">The app ID to get</param>
+        /// <returns>If the application is removable, true; otherwise, false</returns>
+        bool GetAppInfoRemovable(string appID);
+
+        /// <summary>
+        /// Gets the app ID by the app label
+        /// </summary>
+        /// <param name="appLabel">the app label to get</param>
+        /// <returns>the app ID of the app label</returns>
+        Task<string> GetAppIDbyAppLabel(string appLabel);
+    }
+}
diff --git a/LibCommon.Shared/Utils/IDebuggingAPIs.cs b/LibCommon.Shared/Utils/IDebuggingAPIs.cs
new file mode 100644 (file)
index 0000000..eb46618
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using System;
+
+namespace LibTVRefCommonPortable.Utils
+{
+    /// <summary>
+    /// An interface contains debugging methods which are using platform subsystems.
+    /// </summary>
+    /// <remarks>
+    /// Implementing this class should be occurred in platform project.
+    /// Also the implementation should be registered to the DependencyService in an app initialization.
+    /// Please refer to Xamarin Dependency Service
+    /// https://developer.xamarin.com/guides/xamarin-forms/dependency-service/introduction/
+    /// </remarks>
+    public interface IDebuggingAPIs
+    {
+        /// <summary>
+        /// A method displays a debugging log. </summary>
+        /// <param name="message"> A debugging message.</param>
+        void Popup(string message);
+
+        /// <summary>
+        /// A method displays an error log. </summary>
+        /// <param name="message"> An error message.</param>
+        /// <param name="file"> A file name.</param>
+        /// <param name="func"> A function name.</param>
+        /// <param name="line"> A line number.</param>
+        void Dbg(string message, String file, String func, Int32 line);
+
+        /// <summary>
+        /// A method displays a dialog with a given message. </summary>
+        /// <param name="message"> A debugging message.</param>
+        /// <param name="file"> A file name.</param>
+        /// <param name="func"> A function name.</param>
+        /// <param name="line"> A line number.</param>
+        void Err(string message, String file, String func, Int32 line);
+    }
+}
diff --git a/LibCommon.Shared/Utils/IFileSystemAPIs.cs b/LibCommon.Shared/Utils/IFileSystemAPIs.cs
new file mode 100644 (file)
index 0000000..2f29351
--- /dev/null
@@ -0,0 +1,98 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using System;
+using System.IO;
+
+namespace LibTVRefCommonPortable.Utils
+{
+    /// <summary>
+    /// An enumeration for the file open mode.
+    /// </summary>
+    public enum UtilFileMode
+    {
+        CreateNew = 1,
+        Create = 2,
+        Open = 3,
+        OpenOrCreate = 4,
+        Truncate = 5,
+        Append = 6
+    }
+
+    /// <summary>
+    /// An interface for the file operations
+    /// </summary>
+    public interface IFileSystemAPIs
+    {
+        /// <summary>
+        /// A directory path which should be used for app data storing.
+        /// </summary>
+        string AppDataStorage
+        {
+            get;
+        }
+
+        /// <summary>
+        /// A directory path which should be used for app resource storing.
+        /// </summary>
+        string AppResourceStorage
+        {
+            get;
+        }
+
+        /// <summary>
+        /// A directory path which should be used for sharing between apps.
+        /// </summary>
+        string PlatformShareStorage
+        {
+            get;
+        }
+
+        /// <summary>
+        /// A method opens a file on the given mode.
+        /// </summary>
+        /// <param name="filePath">A file path</param>
+        /// <param name="mode">An opening mode</param>
+        /// <returns>A file descriptor</returns>
+        Stream OpenFile(string filePath, UtilFileMode mode);
+
+        /// <summary>
+        /// A method flushing the stream to write remains.
+        /// </summary>
+        /// <param name="stream">A file descriptor</param>
+        void Flush(Stream stream);
+
+        /// <summary>
+        /// A method closes the file.
+        /// </summary>
+        /// <param name="stream">A file descriptor</param>
+        void CloseFile(Stream stream);
+
+        /// <summary>
+        /// A method checks if a file existence in the file system.
+        /// </summary>
+        /// <param name="filePath">A file path</param>
+        /// <returns>An existence of the file</returns>
+        bool IsFileExist(String filePath);
+
+        /// <summary>
+        /// A method checks if file is read to use.
+        /// </summary>
+        /// <param name="filePath">A file path</param>
+        /// <returns>A status of ready</returns>
+        bool IsFileReady(String filePath);
+    }
+}
diff --git a/LibCommon.Shared/Utils/IFileSystemWatcherAPIs.cs b/LibCommon.Shared/Utils/IFileSystemWatcherAPIs.cs
new file mode 100644 (file)
index 0000000..43ecb20
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using System;
+
+namespace LibTVRefCommonPortable.Utils
+{
+    /// <summary>
+    /// An interface for the file system watcher.
+    /// </summary>
+    public interface IFileSystemWatcherAPIs
+    {
+        /// <summary>
+        /// A EventHandler for the file system watcher.
+        /// </summary>
+        event EventHandler<EventArgs> CustomChanged;
+
+        /// <summary>
+        /// A method starts the file system watcher.
+        /// </summary>
+        /// <param name="path">Target file path</param>
+        /// <param name="fileName">Target file name</param>
+        void Run(String path, String fileName);
+    }
+}
diff --git a/LibCommon.Shared/Utils/IMediaContentAPIs.cs b/LibCommon.Shared/Utils/IMediaContentAPIs.cs
new file mode 100644 (file)
index 0000000..a0b26a9
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+using System;
+using System.Collections.Generic;
+
+namespace LibTVRefCommonPortable.Utils
+{
+    /// <summary>
+    /// An information of recently played media content
+    /// </summary>
+    public struct RecentlyPlayedMedia
+    {
+        /// <summary>
+        /// An ID of media content
+        /// </summary>
+        public string MediaId;
+
+        /// <summary>
+        /// A path of media content thumbnail
+        /// </summary>
+        public string ThumbnailPath;
+
+        /// <summary>
+        /// A path of media content
+        /// </summary>
+        public string FilePath;
+
+        /// <summary>
+        /// A title of media content
+        /// </summary>
+        public string DisplayName;
+
+        /// <summary>
+        /// Last played time of media content
+        /// </summary>
+        public DateTime PlayedAt;
+    }
+
+    /// <summary>
+    /// An interface for getting recently played media contents.
+    /// </summary>
+    public interface IMediaContentAPIs
+    {
+        /// <summary>
+        /// A method for getting recently played media content list
+        /// </summary>
+        /// <param name="limitation">Maximum count of list</param>
+        /// <returns>The recently played media content list</returns>
+        IEnumerable<RecentlyPlayedMedia> GetRecentlyPlayedMedia(int limitation);
+    }
+}
diff --git a/LibCommon.Shared/Utils/IPackageManager.cs b/LibCommon.Shared/Utils/IPackageManager.cs
new file mode 100644 (file)
index 0000000..a449672
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using System.Collections.Generic;
+
+namespace LibTVRefCommonPortable.Utils
+{
+    /// <summary>
+    /// An interface for package manager subsystem.
+    /// </summary>
+    public interface IPackageManager
+    {
+        /// <summary>
+        /// A method provides installed package list.
+        /// </summary>
+        /// <returns>A package list</returns>
+        Dictionary<string, string[]> GetPackageList();
+
+        /// <summary>
+        /// A method provides a detail information (TBD)
+        /// </summary>
+        /// <param name="pkgID">A package ID</param>
+        /// <returns>A package label</returns>
+        string GetPackageLabel(string pkgID);
+
+        /// <summary>
+        /// Gets the package ID by the app ID
+        /// </summary>
+        /// <param name="appID">The app ID to get</param>
+        /// <returns>The package ID that contains given app ID</returns>
+        string GetPackageIDByAppID(string appID);
+
+        /// <summary>
+        /// A method removes the package.
+        /// </summary>
+        /// <param name="pkgID">A package ID</param>
+        /// <returns>A status of uninstall</returns>
+        bool UninstallPackage(string pkgID);
+
+        /// <summary>
+        /// A method remove the package by using an app ID.
+        /// </summary>
+        /// <param name="appID">an app ID</param>
+        /// <returns>A status of uninstall</returns>
+        bool UninstallPackageByAppID(string appID);
+
+        /// <summary>
+        /// Gets applications list by the package ID
+        /// </summary>
+        /// <param name="pkgID">The package ID to get applications</param>
+        /// <returns>The list of applications</returns>
+        List<string> GetApplicationsByPkgID(string pkgID);
+    }
+}
diff --git a/LibCommon.Shared/Utils/IPlatformNotification.cs b/LibCommon.Shared/Utils/IPlatformNotification.cs
new file mode 100644 (file)
index 0000000..b5664e2
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+namespace LibTVRefCommonPortable.Utils
+{
+    /// <summary>
+    /// An interface for the platform notification.
+    /// </summary>
+    public interface IPlatformNotification
+    {
+        /// <summary>
+        /// A method will be called when the Home remote control key is pressed.
+        /// </summary>
+        void OnHomeKeyPressed();
+
+        /// <summary>
+        /// A method will be called when the Menu remote control key is pressed.
+        /// </summary>
+        void OnMenuKeyPressed();
+
+        /// <summary>
+        /// A method will be called if an app is installed.
+        /// </summary>
+        /// <param name="pkgID">A package ID of newly installed.</param>
+        void OnAppInstalled(string pkgID);
+
+        /// <summary>
+        /// A method will be called if an app is uninstalled.
+        /// </summary>
+        /// <param name="pkgID">A package ID of uninstalled.</param>
+        void OnAppUninstalled(string pkgID);
+
+        /// <summary>
+        /// A method will be called if the app gets a App Control request for pinning a app.
+        /// </summary>
+        void OnPinAppRequestReceived();
+
+        /// <summary>
+        /// A method will be called if the app gets an app pinned notification App Control request.
+        /// </summary>
+        /// <param name="appID">A pinned app ID</param>
+        void OnAppPinnedNotificationReceived(string appID);
+
+        /// <summary>
+        /// A method will be called when the Navigation remote control key is pressed.
+        /// </summary>
+        /// <param name="keyName">A pressed remote control key name</param>
+        void OnNavigationKeyPressed(string keyName);
+    }
+}
diff --git a/LibCommon.Shared/Utils/IStatePublisher.cs b/LibCommon.Shared/Utils/IStatePublisher.cs
new file mode 100644 (file)
index 0000000..0c3605d
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace LibTVRefCommonPortable.Utils
+{
+    public enum AppState
+    {
+        HomeMainPanelRecentFocused,
+        HomeMainPanelAppsFocused,
+        HomeMainPanelSettingsFocused,
+        HomeSubPanelRecentFocused,
+        HomeSubPanelAppsFocused,
+        HomeSubPanelSettingsFocused,
+        HomeShowOptions,
+        HomeMove,
+        HomeIconified,
+    }
+
+    public interface IStatePublisher
+    {
+        AppState CurrentState
+        {
+            get;
+            set;
+        }
+
+    }
+}
diff --git a/LibCommon.Shared/Utils/IStateSubscriber.cs b/LibCommon.Shared/Utils/IStateSubscriber.cs
new file mode 100644 (file)
index 0000000..bb59eb7
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace LibTVRefCommonPortable.Utils
+{
+    public interface IStateSubscriber
+    {
+        void OnStateChanged(AppState state);
+    }
+}
diff --git a/LibCommon.Shared/Utils/ISystemSettings.cs b/LibCommon.Shared/Utils/ISystemSettings.cs
new file mode 100644 (file)
index 0000000..97c369e
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+namespace LibTVRefCommonPortable.Utils
+{
+    /// <summary>
+    /// An interface for getting system setting informations.
+    /// </summary>
+    public interface ISystemSettings
+    {
+        /// <summary>
+        /// A method for getting system model name.
+        /// </summary>
+        /// <param name="modelName">The system model name</param>
+        /// <returns>The result whether getting the modelName is done</returns>
+        bool GetSystemModelName(out string modelName);
+    }
+}
diff --git a/LibCommon.Shared/Utils/ITVHome.cs b/LibCommon.Shared/Utils/ITVHome.cs
new file mode 100644 (file)
index 0000000..c7c6f69
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using LibTVRefCommonPortable.Models;
+
+namespace LibTVRefCommonPortable.Utils
+{
+    /// <summary>
+    /// An interface for the TVHomeImpl class
+    /// The Models' instances in the TVHomeImpl class,
+    /// so to use the Models from other files, it should access the instance of the TVHomeImpl.
+    /// To reduce dependency between the TVHome and any other file,
+    /// the instance of the TVHomeImpl will be provided as a ITVHome interface.
+    /// </summary>
+    public interface ITVHome
+    {
+        /// <summary>
+        /// An instance of the AppShortcutController
+        /// </summary>
+        /// <see cref="AppShortcutController"/>
+        AppShortcutController AppShortcutControllerInstance
+        {
+            get;
+        }
+
+        /// <summary>
+        /// An instance of the RecentShortcutController
+        /// </summary>
+        /// <see cref="RecentShortcutController"/>
+        RecentShortcutController RecentShortcutControllerInstance
+        {
+            get;
+        }
+    }
+}
diff --git a/LibCommon.Shared/Utils/IWindowAPIs.cs b/LibCommon.Shared/Utils/IWindowAPIs.cs
new file mode 100644 (file)
index 0000000..98de5ef
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+namespace LibTVRefCommonPortable.Utils
+{
+    /// <summary>
+    /// An interface for the Window management.
+    /// </summary>
+    public interface IWindowAPIs
+    {
+        /// <summary>
+        /// A method minimizes the app's window.
+        /// </summary>
+        /// <param name="iconified">A minimize status</param>
+        void SetIconified(bool iconified);
+
+        /// <summary>
+        /// A method provides a minimized status of the App.
+        /// </summary>
+        /// <returns>A status of minimized of app.</returns>
+        bool GetIconified();
+    }
+}
diff --git a/LibCommon.Shared/Utils/MediaContentUtils.cs b/LibCommon.Shared/Utils/MediaContentUtils.cs
new file mode 100644 (file)
index 0000000..9d56eb2
--- /dev/null
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using LibTVRefCommonPortable.Stubs;
+using System;
+using System.Collections.Generic;
+using Xamarin.Forms;
+
+namespace LibTVRefCommonPortable.Utils
+{
+    /// <summary>
+    /// A class provides media contents and related functions.
+    /// </summary>
+    public class MediaContentUtils
+    {
+        /// <summary>
+        /// A instance of IMediaContentAPIs port.
+        /// </summary>
+        private static IMediaContentAPIs mediaContentAPIs;
+
+        /// <summary>
+        /// A instance of MediaContentUtils
+        /// </summary>
+        private static readonly MediaContentUtils instance = new MediaContentUtils();
+
+        /// <summary>
+        /// A property of MediaContentUtils instance.
+        /// </summary>
+        public static MediaContentUtils Instance
+        {
+            get
+            {
+                return instance;
+            }
+        }
+
+        /// <summary>
+        /// A Constructor
+        /// </summary>
+        private MediaContentUtils()
+        {
+            mediaContentAPIs = new MediaContentAPITestStub();
+
+            try
+            {
+                if (DependencyService.Get<IMediaContentAPIs>() != null)
+                {
+                    mediaContentAPIs = DependencyService.Get<IMediaContentAPIs>();
+                }
+            }
+            catch (InvalidOperationException e)
+            {
+                DebuggingUtils.Err(e.Message);
+            }
+        }
+
+        /// <summary>
+        /// A method provides media playing history.
+        /// </summary>
+        /// <param name="limitation">A number of getting media playing history</param>
+        /// <returns>A list of played medias.</returns>
+        public IEnumerable<RecentlyPlayedMedia> GetRecentlyPlayedMedia(int limitation)
+        {
+            return mediaContentAPIs.GetRecentlyPlayedMedia(limitation);
+        }
+
+    }
+}
diff --git a/LibCommon.Shared/Utils/PackageManagerUtils.cs b/LibCommon.Shared/Utils/PackageManagerUtils.cs
new file mode 100644 (file)
index 0000000..50cd961
--- /dev/null
@@ -0,0 +1,116 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using System.Collections.Generic;
+using Xamarin.Forms;
+
+namespace LibTVRefCommonPortable.Utils
+{
+    /// <summary>
+    /// A class for package manager function.
+    /// </summary>
+    public sealed class PackageManagerUtils
+    {
+        /// <summary>
+        /// A method provides installed package list.
+        /// </summary>
+        /// <returns>A package list</returns>
+        public static Dictionary<string, string[]> GetPackageList()
+        {
+            if (DependencyService.Get<IPackageManager>() == null)
+            {
+                return new Dictionary<string, string[]>();
+            }
+
+            return DependencyService.Get<IPackageManager>().GetPackageList();
+        }
+
+        /// <summary>
+        /// A method provides a detail information (TBD)
+        /// </summary>
+        /// <param name="pkgID">A package ID</param>
+        /// <returns>A package label</returns>
+        public static string GetPackageLabel(string pkgID)
+        {
+            if (DependencyService.Get<IPackageManager>() == null)
+            {
+                return null;
+            }
+
+            return DependencyService.Get<IPackageManager>().GetPackageLabel(pkgID);
+        }
+
+        /// <summary>
+        /// Gets the pacakge ID by the app ID
+        /// </summary>
+        /// <param name="appID">The app ID to get</param>
+        /// <returns>The pacakge ID that contains given app ID</returns>
+        public static string GetPackageIDByAppID(string appID)
+        {
+            if (DependencyService.Get<IPackageManager>() == null)
+            {
+                return null;
+            }
+
+            return DependencyService.Get<IPackageManager>().GetPackageIDByAppID(appID);
+        }
+
+        /// <summary>
+        /// A method removes the package.
+        /// </summary>
+        /// <param name="pkgID">A package ID</param>
+        /// <returns>A status of uninstall</returns>
+        public static bool UninstallPackage(string pkgID)
+        {
+            if (DependencyService.Get<IPackageManager>() == null)
+            {
+                return false;
+            }
+
+            return DependencyService.Get<IPackageManager>().UninstallPackage(pkgID);
+        }
+
+        /// <summary>
+        /// A method remove the package by using an app ID.
+        /// </summary>
+        /// <param name="appID">An app ID</param>
+        /// <returns>A status of uninstallation</returns>
+        public static bool UninstallPackageByAppID(string appID)
+        {
+            if (DependencyService.Get<IPackageManager>() == null)
+            {
+                return false;
+            }
+
+            return DependencyService.Get<IPackageManager>().UninstallPackageByAppID(appID);
+        }
+
+        /// <summary>
+        /// Gets applications list by the package ID
+        /// </summary>
+        /// <param name="pkgID">The package ID to get applications</param>
+        /// <returns>The list of applications</returns>
+        public static List<string> GetApplicationsByPkgID(string pkgID)
+        {
+            if (DependencyService.Get<IPackageManager>() == null)
+            {
+                return null;
+            }
+
+            return DependencyService.Get<IPackageManager>().GetApplicationsByPkgID(pkgID);
+        }
+    }
+}
diff --git a/LibCommon.Shared/Utils/RecentShortcutStorage.cs b/LibCommon.Shared/Utils/RecentShortcutStorage.cs
new file mode 100644 (file)
index 0000000..6d9dedd
--- /dev/null
@@ -0,0 +1,181 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using System.Collections.Generic;
+using LibTVRefCommonPortable.DataModels;
+using System;
+using LibTVRefCommonPortable.Models;
+
+namespace LibTVRefCommonPortable.Utils
+{
+    /// <summary>
+    /// A class to manage the Recent Shortcuts.
+    /// </summary>
+    public sealed class RecentShortcutStorage
+    {
+        /// <summary>
+        /// A maximum number of recent apps and contents
+        /// </summary>
+        private static readonly int MaxRecents = 10;
+
+        /// <summary>
+        /// A method provides all Recent Shortcuts' information list.
+        /// </summary>
+        /// <returns>a Recent Shortcut information list.</returns>
+        public static IEnumerable<RecentShortcutInfo> Read()
+        {
+            List<RecentShortcutInfo> recentShortcutInfoList = new List<RecentShortcutInfo>();
+            IEnumerable<RecentApp> recentApps = null;
+
+            try
+            {
+                recentApps = ApplicationManagerUtils.Instance.GetRecentApplications();
+            }
+            catch (Exception e)
+            {
+                DebuggingUtils.Err("GetRecentApplications failed. " + e.Message);
+            }
+
+            if (recentApps != null)
+            {
+                foreach (var item in recentApps)
+                {
+                    if (ManagedApps.IsHiddenRecentApp(item.AppID))
+                    {
+                        continue;
+                    }
+
+                    if (item.Applabel == null || item.Applabel.Length == 0 ||
+                        item.LaunchedTime.CompareTo(new DateTime()) == 0)
+                    {
+                        continue;
+                    }
+
+                    var defaultStateDescription = new StateDescription()
+                    {
+                        Label = item.Applabel,
+                        IconPath = item.IconPath,
+                        Action = new AppControlAction()
+                        {
+                            AppID = item.AppID,
+                        }
+                    };
+                    var recentShortcutInfo = new RecentShortcutInfo();
+
+                    if (item.ScreenShot == null)
+                    {
+                        recentShortcutInfo.ScreenshotPath = "screenshot.png";
+
+                        string capturedAppScreen = FileSystemUtils.Instance.PlatformShareStorage + item.AppID + ".jpg";
+                        if (FileSystemUtils.Instance.IsFileExist(capturedAppScreen))
+                        {
+                            recentShortcutInfo.ScreenshotPath = capturedAppScreen;
+                        }
+                        else
+                        {
+                            string testScreenShot = FileSystemUtils.Instance.AppResourceStorage + item.AppID + ".png";
+                            if (FileSystemUtils.Instance.IsFileExist(testScreenShot))
+                            {
+                                recentShortcutInfo.ScreenshotPath = testScreenShot;
+                            }
+                        }
+                    }
+                    else
+                    {
+                        recentShortcutInfo.ScreenshotPath = item.ScreenShot;
+                    }
+
+                    recentShortcutInfo.Type = RecentShortcutType.Application;
+                    recentShortcutInfo.StateDescriptions.Add("default", defaultStateDescription);
+                    recentShortcutInfo.CurrentStateDescription = defaultStateDescription;
+                    recentShortcutInfo.Id = item.AppID;
+                    recentShortcutInfo.Date = item.LaunchedTime;
+                    recentShortcutInfoList.Add(recentShortcutInfo);
+                }
+            }
+
+            IEnumerable<RecentlyPlayedMedia> recentMedias = MediaContentUtils.Instance.GetRecentlyPlayedMedia(MaxRecents);
+            foreach (var item in recentMedias)
+            {
+                if (item.FilePath == null || item.FilePath.Length == 0)
+                {
+                    continue;
+                }
+
+                // DebuggingUtils.Dbg("media :" + item.DisplayName + ", PlayedAt : " + item.PlayedAt.ToString());
+                var defaultStateDescription = new StateDescription()
+                {
+                    Label = item.DisplayName,
+                    IconPath = "ic_launcher_mediahub_138.png",
+                    Action = new MediaControlAction()
+                    {
+                        AppID = "org.tizen.xamediahub",
+                        FileUri = "file://" + item.FilePath,
+                    }
+                };
+                var mediaControlAction = defaultStateDescription.Action as MediaControlAction;
+
+                mediaControlAction?.ExtraData.Add("View By", "All");
+                mediaControlAction?.ExtraData.Add("Media type", "Video");
+                mediaControlAction?.ExtraData.Add("Media Id", item.MediaId);
+
+                var recentShortcutInfo = new RecentShortcutInfo();
+
+                recentShortcutInfo.ScreenshotPath = item.FilePath + ".tn";
+
+                if (item.ThumbnailPath != null)
+                {
+                    if (FileSystemUtils.Instance.IsFileExist(item.ThumbnailPath))
+                    {
+                        recentShortcutInfo.ScreenshotPath = item.ThumbnailPath;
+                    }
+                }
+
+                recentShortcutInfo.Type = RecentShortcutType.Media;
+                recentShortcutInfo.StateDescriptions.Add("default", defaultStateDescription);
+                recentShortcutInfo.CurrentStateDescription = defaultStateDescription;
+                recentShortcutInfo.Id = "org.tizen.xamediahub";
+                recentShortcutInfo.Date = item.PlayedAt.ToUniversalTime();
+                recentShortcutInfoList.Add(recentShortcutInfo);
+            }
+
+            recentShortcutInfoList.Sort();
+            if (recentShortcutInfoList.Count > MaxRecents)
+            {
+                recentShortcutInfoList.RemoveRange(MaxRecents, recentShortcutInfoList.Count - MaxRecents);
+            }
+
+            return recentShortcutInfoList;
+        }
+
+        /// <summary>
+        /// A method deletes a Recent Shortcut.
+        /// </summary>
+        /// <param name="appId">An application ID</param>
+        public static void Delete(string appId)
+        {
+            ApplicationManagerUtils.Instance.DeleteRecentApplication(appId);
+        }
+
+        /// <summary>
+        /// A method deletes all Recent Shortcuts.
+        /// </summary>
+        public static void DeleteAll()
+        {
+            ApplicationManagerUtils.Instance.DeleteAllRecentApplication();
+        }
+    }
+}
diff --git a/LibCommon.Shared/Utils/SizeUtils.cs b/LibCommon.Shared/Utils/SizeUtils.cs
new file mode 100644 (file)
index 0000000..4ac601d
--- /dev/null
@@ -0,0 +1,171 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using System;
+
+namespace LibTVRefCommonPortable.Utils
+{
+    /// <summary>
+    /// A class provides Size metric related functions
+    /// </summary>
+    public class SizeUtils
+    {
+        /// <summary>
+        /// Base Screen Height
+        /// </summary>
+        private static int baseScreenWidth = 1920;
+
+        /// <summary>
+        /// Base Screen Height
+        /// </summary>
+        public static int BaseScreenWidth
+        {
+            get
+            {
+                return baseScreenWidth;
+            }
+        }
+
+        /// <summary>
+        /// Base Screen Height
+        /// </summary>
+        private static int baseScreenHeight = 1080;
+
+        /// <summary>
+        /// Base Screen Height
+        /// </summary>
+        public static int BaseScreenHeight
+        {
+            get
+            {
+                return baseScreenHeight;
+            }
+        }
+
+
+        /// <summary>
+        /// Screen Height
+        /// </summary>
+        public static int ScreenHeight { set; get; }
+
+        /// <summary>
+        /// Screen Width
+        /// </summary>
+        public static int ScreenWidth { set; get; }
+
+        /// <summary>
+        /// Device DPI
+        /// </summary>
+        public static double Dpi { set; get; }
+
+        /// <summary>
+        /// Font Scale ratio
+        /// </summary>
+        public static double ScaleRatio { set; get; }
+
+        /// <summary>
+        /// Platform Model enumerations
+        /// </summary>
+        private enum PlatformModel
+        {
+            TV,
+            Emulator,
+            Other,
+        }
+
+        /// <summary>
+        /// Platform Model Name
+        /// </summary>
+        private static PlatformModel ModelName = PlatformModel.TV;
+
+        /// <summary>
+        /// Set model name of running device.
+        /// </summary>
+        /// <param name="modelName">a model name</param>
+        public static void SetModelName(string modelName)
+        {
+            if (modelName == null)
+            {
+                return;
+            }
+
+            DebuggingUtils.Dbg("ModelName is " + modelName);
+            switch (modelName.ToLower()[0])
+            {
+                case 'e':
+                    ModelName = PlatformModel.Emulator;
+                    break;
+
+                default:
+                case 'x':
+                    ModelName = PlatformModel.Other;
+                    break;
+            }
+        }
+
+        /// <summary>
+        /// A method provides a converted height size.
+        /// </summary>
+        /// <param name="heightBaseSize">A height value in BaseScreen ratio</param>
+        /// <returns>A converted height size</returns>
+        public static int GetHeightSize(int heightBaseSize)
+        {
+            return Convert.ToInt32((double)((double)heightBaseSize / (double)BaseScreenHeight) * (double)(ScreenHeight));
+        }
+
+        /// <summary>
+        /// A method provides a converted width size.
+        /// </summary>
+        /// <param name="widthBaseSize">A width value in BaseScreen ratio</param>
+        /// <returns>A converted width size</returns>
+        public static int GetWidthSize(int widthBaseSize)
+        {
+            return Convert.ToInt32((double)((double)widthBaseSize / (double)BaseScreenWidth) * (double)(ScreenWidth));
+        }
+
+        /// <summary>
+        /// A method provides a converted width size by double type.
+        /// </summary>
+        /// <param name="widthBaseSize">A width value in BaseScreen ratio</param>
+        /// <returns>A converted width size</returns>
+        public static double GetWidthSizeDouble(double widthBaseSize)
+        {
+            return (double)(widthBaseSize / (double)BaseScreenWidth) * (double)(ScreenWidth);
+        }
+
+        /// <summary>
+        /// A method provides a converted font size.
+        /// </summary>
+        /// <param name="fontBaseSize">A base font size value in BaseScreen ratio</param>
+        /// <returns>A converted font size</returns>
+        public static int GetFontSize(int fontBaseSize)
+        {
+            switch (ModelName)
+            {
+                case PlatformModel.Emulator:
+                    //DebuggingUtils.Dbg("Emulator, Font size = " + fontBaseSize + " => " + ((double)((double)fontBaseSize / (double)BaseScreenHeight) * (double)ScreenHeight) * ScaleRatio);
+                    return Convert.ToInt32(((double)((double)fontBaseSize / (double)BaseScreenHeight) * (double)ScreenHeight) * ScaleRatio);
+
+                default:
+                case PlatformModel.Other:
+                case PlatformModel.TV:
+                    //DebuggingUtils.Dbg(String.Format("TV/Other, fontBaseSize = {0}, BaseScreenHeight = {1}, ScreenHeight = {2}, ScaleRatio = {3}", fontBaseSize, BaseScreenHeight, ScreenHeight, ScaleRatio));
+                    double tempAdjustmentRatio = 1D;
+                    return Convert.ToInt32(((double)((double)fontBaseSize / (double)BaseScreenHeight) * (double)ScreenHeight) * ScaleRatio * tempAdjustmentRatio);
+            }
+        }
+    }
+}
diff --git a/LibCommon.Shared/Utils/TVHomeImpl.cs b/LibCommon.Shared/Utils/TVHomeImpl.cs
new file mode 100644 (file)
index 0000000..01cd0f2
--- /dev/null
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using LibTVRefCommonPortable.Models;
+
+namespace LibTVRefCommonPortable.Utils
+{
+    /// <summary>
+    /// A main instance class of the TVHome, TVApps to providing the Model functions.
+    /// This class is a kind of the Singleton class and includes major Model classes
+    /// such as the AppShortcutController, the RecentShortcutController, and the SettingShortcutcontroller
+    /// that are providing major functions related with TVHome, TVApps using scenarios.
+    /// </summary>
+    /// <see cref="AppShortcutController"/>
+    /// <see cref="RecentShortcutController"/>
+    /// <see cref="SettingShortcutController"/>
+    public class TVHomeImpl : ITVHome
+    {
+        /// <summary>
+        /// An instance of the TVHomeImpl
+        /// </summary>
+        private static readonly TVHomeImpl instance = new TVHomeImpl();
+
+        /// <summary>
+        /// An instance of the TVHomeImpl
+        /// </summary>
+        public static ITVHome GetInstance
+        {
+            get
+            {
+                return instance;
+            }
+        }
+
+        /// <summary>
+        /// A constructor of TVHomeImpl
+        /// Initializes Model implementations.
+        /// </summary>
+        private TVHomeImpl()
+        {
+
+        }
+
+        /// <summary>
+        /// An instance of the AppShortcutController
+        /// </summary>
+        private static readonly AppShortcutController appShortcutController = new AppShortcutController();
+        public AppShortcutController AppShortcutControllerInstance
+        {
+            get
+            {
+                return appShortcutController;
+            }
+        }
+
+        /// <summary>
+        /// An instance of the RecentShortcutController
+        /// </summary>
+        private static readonly RecentShortcutController recentShortcutController = new RecentShortcutController();
+        public RecentShortcutController RecentShortcutControllerInstance
+        {
+            get
+            {
+                return recentShortcutController;
+            }
+        }
+    }
+}
diff --git a/LibCommon.Shared/bin/Debug/netstandard2.0/LibCommon.Shared.deps.json b/LibCommon.Shared/bin/Debug/netstandard2.0/LibCommon.Shared.deps.json
new file mode 100644 (file)
index 0000000..6dfbe97
--- /dev/null
@@ -0,0 +1,78 @@
+{
+  "runtimeTarget": {
+    "name": ".NETStandard,Version=v2.0/",
+    "signature": "cf5149bdff09bd8db6df7773b79e5a86c601ccd4"
+  },
+  "compilationOptions": {},
+  "targets": {
+    ".NETStandard,Version=v2.0": {},
+    ".NETStandard,Version=v2.0/": {
+      "LibCommon.Shared/1.0.0": {
+        "dependencies": {
+          "NETStandard.Library": "2.0.0",
+          "Tizen.Xamarin.Forms.Extension": "2.4.0-v00005",
+          "Xamarin.Forms": "2.4.0.266-pre1"
+        },
+        "runtime": {
+          "LibCommon.Shared.dll": {}
+        }
+      },
+      "Microsoft.NETCore.Platforms/1.1.0": {},
+      "NETStandard.Library/2.0.0": {
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0"
+        }
+      },
+      "Tizen.Xamarin.Forms.Extension/2.4.0-v00005": {
+        "dependencies": {
+          "Xamarin.Forms": "2.4.0.266-pre1"
+        },
+        "runtime": {
+          "lib/netstandard1.0/Tizen.Xamarin.Forms.Extension.dll": {}
+        }
+      },
+      "Xamarin.Forms/2.4.0.266-pre1": {
+        "runtime": {
+          "lib/netstandard1.0/Xamarin.Forms.Core.dll": {},
+          "lib/netstandard1.0/Xamarin.Forms.Platform.dll": {},
+          "lib/netstandard1.0/Xamarin.Forms.Xaml.dll": {}
+        }
+      }
+    }
+  },
+  "libraries": {
+    "LibCommon.Shared/1.0.0": {
+      "type": "project",
+      "serviceable": false,
+      "sha512": ""
+    },
+    "Microsoft.NETCore.Platforms/1.1.0": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==",
+      "path": "microsoft.netcore.platforms/1.1.0",
+      "hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512"
+    },
+    "NETStandard.Library/2.0.0": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-7jnbRU+L08FXKMxqUflxEXtVymWvNOrS8yHgu9s6EM8Anr6T/wIX4nZ08j/u3Asz+tCufp3YVwFSEvFTPYmBPA==",
+      "path": "netstandard.library/2.0.0",
+      "hashPath": "netstandard.library.2.0.0.nupkg.sha512"
+    },
+    "Tizen.Xamarin.Forms.Extension/2.4.0-v00005": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-MKUamVt5XloZ/JziyOXLdbahn7T0LDQDJGUt3ynt0iSia4aLpZLOua6/iypBhnC79FgMaNfUA7APjVfjh3NLTg==",
+      "path": "tizen.xamarin.forms.extension/2.4.0-v00005",
+      "hashPath": "tizen.xamarin.forms.extension.2.4.0-v00005.nupkg.sha512"
+    },
+    "Xamarin.Forms/2.4.0.266-pre1": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-pMu+b01vdH1ul5EJo1opQjEcwisWT35DdZO6EuR9HNKfY1dWyKmAlWgRdGUtjtdbhjOAtCOQUxI7F3x4hvV8KA==",
+      "path": "xamarin.forms/2.4.0.266-pre1",
+      "hashPath": "xamarin.forms.2.4.0.266-pre1.nupkg.sha512"
+    }
+  }
+}
\ No newline at end of file
diff --git a/LibCommon.Tizen/LibCommon.Tizen.csproj b/LibCommon.Tizen/LibCommon.Tizen.csproj
new file mode 100644 (file)
index 0000000..a57be02
--- /dev/null
@@ -0,0 +1,18 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>netstandard2.0</TargetFramework>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <PackageReference Include="Tizen.NET" Version="4.0.0-preview1-00143" />
+    <PackageReference Include="Tizen.Xamarin.Forms.Extension" Version="2.4.0-v00005" />
+    <PackageReference Include="Xamarin.Forms" Version="2.4.0.266-pre1" />
+    <PackageReference Include="Xamarin.Forms.Platform.Tizen" Version="2.4.0-r266-006" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="..\LibCommon.Shared\LibCommon.Shared.csproj" />
+  </ItemGroup>
+
+</Project>
diff --git a/LibCommon.Tizen/Ports/AppControlPort.cs b/LibCommon.Tizen/Ports/AppControlPort.cs
new file mode 100644 (file)
index 0000000..45dad8f
--- /dev/null
@@ -0,0 +1,131 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+using System;
+using LibTVRefCommonPortable.Utils;
+using Tizen.Applications;
+using System.Collections.Generic;
+
+namespace LibTVRefCommonTizen.Ports
+{
+    /// <summary>
+    /// Handles the AppControl APIs
+    /// </summary>
+    public class AppControlPort : IAppControl
+    {
+        /// <summary>
+        /// The app ID of TV reference home application
+        /// </summary>
+        public static string TVHomeAppID = "org.tizen.xahome";
+
+        /// <summary>
+        /// The app ID of TV reference apps-tray application
+        /// </summary>
+        public static string TVAppsAppID = "org.tizen.xaapps";
+
+        /// <summary>
+        /// Represents the operation to be performed between TVHome and TVApps
+        /// This operation is sent from TVHomes to TVApps
+        /// </summary>
+        public static string AddAppOperation = "http://xahome.tizen.org/appcontrol/operation/add_app";
+
+        /// <summary>
+        /// Represents the operation to be performed between TVHome and TVApps
+        /// This operation is sent from TVApps to TVHome
+        /// </summary>
+        public static string AppAddedNotifyOperation = "http://xahome.tizen.org/appcontrol/operation/app_added";
+
+        public static string KeyAddedAppID = "AddedAppID";
+
+        /// <summary>
+        /// Sends the launch request
+        /// </summary>
+        /// <param name="appId"> The app ID to explicitly launch</param>
+        /// <param name="extraData">The extra data for the app control</param>
+        /// <param name="fileUri">The file URI to be opened</param>
+        public void SendLaunchRequest(string appId, IDictionary<string, string> extraData = null, string fileUri = null)
+        {
+            try
+            {
+                AppControl appControl = new AppControl();
+
+                if (appId == null || appId.Length <= 0)
+                {
+                    DbgPort.E("The AppID is null or blank");
+                    return;
+                }
+
+                string value;
+
+                appControl.ApplicationId = appId;
+
+                if (extraData != null)
+                {
+                    foreach (var key in extraData.Keys)
+                    {
+                        if (extraData.TryGetValue(key, out value))
+                        {
+                            appControl.ExtraData.Add(key, value);
+                        }
+                    }
+                }
+
+                if (fileUri != null && fileUri.Length != 0)
+                {
+                    appControl.Uri = fileUri;
+                    appControl.LaunchMode = AppControlLaunchMode.Group;
+                    appControl.Mime = "video/*";
+                    appControl.Operation = AppControlOperations.View;
+                }
+
+                AppControl.SendLaunchRequest(appControl);
+            }
+            catch (InvalidOperationException)
+            {
+                DbgPort.E("Failed to create AppControl");
+            }
+        }
+
+        /// <summary>
+        /// Sends the 'Add PIN apps' operation to TV Apps
+        /// </summary>
+        public void SendAddAppRequestToApps()
+        {
+            AppControl appControl = new AppControl()
+            {
+                ApplicationId = TVAppsAppID,
+                Operation = AddAppOperation,
+            };
+            AppControl.SendLaunchRequest(appControl);
+        }
+
+        /// <summary>
+        /// Sends the pinned app ID to TV Home
+        /// </summary>
+        /// <param name="addedAddID">The app ID to add PIN list int the TV Home</param>
+        public void SendAppAddedNotificationToHome(string addedAddID)
+        {
+            AppControl appControl = new AppControl()
+            {
+                ApplicationId = TVHomeAppID,
+                Operation = AppAddedNotifyOperation,
+            };
+            appControl.ExtraData.Add(KeyAddedAppID, addedAddID);
+            AppControl.SendLaunchRequest(appControl);
+        }
+    }
+}
diff --git a/LibCommon.Tizen/Ports/ApplicationManagerPort.cs b/LibCommon.Tizen/Ports/ApplicationManagerPort.cs
new file mode 100644 (file)
index 0000000..29511ef
--- /dev/null
@@ -0,0 +1,270 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using System;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+using Tizen.Applications;
+using LibTVRefCommonPortable.Utils;
+
+namespace LibTVRefCommonTizen.Ports
+{
+    /// <summary>
+    /// Handles the ApplicationsManager APIs
+    /// </summary>
+    public class ApplicationManagerPort : IApplicationManagerAPIs
+    {
+        /// <summary>
+        /// Defines the default app icon
+        /// If the app icon is not exist, shows the default app icon
+        /// </summary>
+        private static String DefaultAppIcon = "AppIcon.png";
+
+        /// <summary>
+        /// The constructor of this class
+        /// Adds the EventHandler for ApplicationLaunched
+        /// </summary>
+        public ApplicationManagerPort()
+        {
+            ApplicationManager.ApplicationLaunched += new EventHandler<ApplicationLaunchedEventArgs>(OnApplicationLaunched);
+        }
+
+        /// <summary>
+        /// Arguments for the event that is raised when the application is launched
+        /// </summary>
+        /// <param name="sender">The source of the event</param>
+        /// <param name="args">An object that contains no event data</param>
+        /// <remarks>
+        /// https://msdn.microsoft.com/en-us/library/system.eventhandler(v=vs.110).aspx
+        /// </remarks>
+        void OnApplicationLaunched(object sender, EventArgs args)
+        {
+            ApplicationLaunchedEventArgs launchedEventArgs = args as ApplicationLaunchedEventArgs;
+            DbgPort.D(launchedEventArgs.ApplicationRunningContext.ApplicationId + " launched");
+        }
+
+        /// <summary>
+        /// Clears all recent applications
+        /// </summary>
+        public void DeleteAllRecentApplication()
+        {
+            RecentApplicationControl.DeleteAll();
+        }
+
+        /// <summary>
+        /// Removes the specified application with the app ID
+        /// </summary>
+        /// <param name="appId">An application ID that is removed</param>
+        public void DeleteRecentApplication(string appId)
+        {
+            IEnumerable<RecentApplicationInfo> recentApps = ApplicationManager.GetRecentApplications();
+            string pkgId = PackageManager.GetPackageIdByApplicationId(appId);
+
+            foreach (var item in recentApps)
+            {
+                if (item.PackageId.Equals(pkgId))
+                {
+                    RecentApplicationControl controller = item.Controller;
+                    controller.Delete();
+                }
+            }
+        }
+
+        /// <summary>
+        /// Gets the information of the recent applications
+        /// </summary>
+        /// <returns>The list of the recent applications</returns>
+        public IEnumerable<RecentApp> GetRecentApplications()
+        {
+            bool isNoRecentApps = true;
+            List<RecentApp> resultList = new List<RecentApp>();
+
+            try
+            {
+                IEnumerable<RecentApplicationInfo> recentApps = ApplicationManager.GetRecentApplications();
+
+                foreach (var app in recentApps)
+                {
+                    if (app.IsNoDisplay ||
+                        app.ApplicationId == null ||
+                        app.ApplicationId.Length < 1)
+                    {
+                        continue;
+                    }
+
+                    DbgPort.D("Recent App (" + app.Label + "): " + app.ApplicationId);
+
+                    resultList.Add(new RecentApp()
+                    {
+                        InstanceID = app.InstanceId,
+                        InstanceLabel = app.InstanceName,
+                        AppID = app.ApplicationId,
+                        Applabel = (app.Label == null || app.Label.Length < 1) ? "No Name" : app.Label,
+                        IconPath = app.IconPath,
+                        LaunchedTime = app.LaunchTime,
+                        Uri = app.Uri,
+                    });
+                    isNoRecentApps = false;
+                }
+            }
+            catch (InvalidOperationException)
+            {
+                DbgPort.E("Failed to get the information of the recent applications");
+                return null;
+            }
+
+            if (isNoRecentApps)
+            {
+                DbgPort.E("No Recent Apps!!!");
+            }
+
+            return resultList;
+        }
+
+        /// <summary>
+        /// Gets the information of the specified application with the app ID
+        /// </summary>
+        /// <param name="appID">The app Id to get</param>
+        /// <returns>The information of the installed application</returns>
+        public InstalledApp GetInstalledApplication(string appID)
+        {
+            InstalledApp result = null;
+            ApplicationInfo appInfo = null;
+
+            try
+            {
+                appInfo = ApplicationManager.GetInstalledApplication(appID);
+                if (appInfo == null)
+                {
+                    DbgPort.D("GetInstalledApplication failed");
+                    return null;
+                }
+
+                result = new InstalledApp()
+                {
+                    AppID = appInfo.ApplicationId,
+                    Applabel = appInfo.Label,
+                    IconPath = (System.IO.File.Exists(appInfo.IconPath)) ? appInfo.IconPath : DefaultAppIcon,
+                };
+            }
+            catch (Exception exception)
+            {
+                DbgPort.E("Failed to get the installed application(" + appID + ") :" + exception.Message);
+                return null;
+            }
+
+            return result;
+        }
+
+        /// <summary>
+        /// Gets the information of the installed applications asynchronously
+        /// </summary>
+        /// <returns>The list of the installed applications</returns>
+        public async Task<IEnumerable<InstalledApp>> GetAllInstalledApplication()
+        {
+            try
+            {
+                IList<InstalledApp> resultList = new List<InstalledApp>();
+                Task<IEnumerable<ApplicationInfo>> task = ApplicationManager.GetInstalledApplicationsAsync();
+
+                IEnumerable<ApplicationInfo> installedList = await task;
+
+                foreach (var appInfo in installedList)
+                {
+                    if (appInfo.Label == null ||
+                    appInfo.ApplicationId == null ||
+                    appInfo.IsNoDisplay)
+                    {
+                        continue;
+                    }
+
+                    Package pkgInfo = PackageManager.GetPackage(appInfo.PackageId);
+                    if (pkgInfo == null)
+                    {
+                        continue;
+                    }
+
+                    if (pkgInfo.IsSystemPackage)
+                    {
+                        continue;
+                    }
+
+                    resultList.Add(new InstalledApp
+                    {
+                        AppID = appInfo.ApplicationId,
+                        Applabel = appInfo.Label,
+                        IconPath = (System.IO.File.Exists(appInfo.IconPath)) ? appInfo.IconPath : DefaultAppIcon,
+                        InstalledTime = new DateTime(pkgInfo.InstalledTime),
+                    });
+                }
+
+                return resultList;
+            }
+            catch (Exception exception)
+            {
+                DbgPort.E("Failed to get the all installed applications : " + exception.Message);
+                return null;
+            }
+        }
+
+        /// <summary>
+        /// Checks whether application is removable
+        /// </summary>
+        /// <param name="appID">The app ID to get</param>
+        /// <returns>If the application is removable, true; otherwise, false</returns>
+        public bool GetAppInfoRemovable(string appID)
+        {
+            ApplicationInfo appInfo = null;
+
+            try
+            {
+                appInfo = ApplicationManager.GetInstalledApplication(appID);
+                if (appInfo == null)
+                {
+                    DbgPort.D("Failed to get the installed application(" + appID + ")");
+                    return false;
+                }
+
+                return !appInfo.IsPreload;
+            }
+            catch (Exception exception)
+            {
+                DbgPort.E("Failed to get the installed application(" + appID + ") :" + exception.Message);
+                return false;
+            }
+        }
+
+        /// <summary>
+        /// Gets the app ID by the app label
+        /// </summary>
+        /// <param name="appLabel">the app label to get</param>
+        /// <returns>the app ID of the app label</returns>
+        public async Task<string> GetAppIDbyAppLabel(string appLabel)
+        {
+            IEnumerable<ApplicationInfo> installedList = await ApplicationManager.GetInstalledApplicationsAsync();
+
+            foreach (var app in installedList)
+            {
+                if (app != null && app.Label.Equals(appLabel))
+                {
+                    return app.ApplicationId;
+                }
+            }
+
+            return null;
+        }
+    }
+}
\ No newline at end of file
diff --git a/LibCommon.Tizen/Ports/DbgPort.cs b/LibCommon.Tizen/Ports/DbgPort.cs
new file mode 100644 (file)
index 0000000..682f4c0
--- /dev/null
@@ -0,0 +1,141 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using Xamarin.Forms.Platform.Tizen.Native;
+using Tizen;
+using LibTVRefCommonPortable.Utils;
+using System.Runtime.CompilerServices;
+using System;
+using ElmSharp;
+
+namespace LibTVRefCommonTizen.Ports
+{
+    /// <summary>
+    /// Platform dependent implementation for the Logging and the Popup displaying
+    /// DbgPort is implementing IDebuggingAPIs which is defined in Calculator shared project
+    /// </summary>
+    /// <remarks>
+    /// Please refer to Xamarin Dependency Service
+    /// https://developer.xamarin.com/guides/xamarin-forms/dependency-service/introduction/
+    /// </remarks>
+    public class DbgPort : IDebuggingAPIs
+    {
+        /// <summary>
+        /// A TV Home Windows reference
+        /// This is used to display a Dialog
+        /// </summary>
+        public static Window MainWindow
+        {
+            set;
+            get;
+        }
+
+        /// <summary>
+        /// A Logging Tag
+        /// </summary>
+        public static string TAG = "home";
+
+
+        /// <summary>
+        /// A flag which enables console log writting
+        /// </summary>
+        private static readonly bool IsNeedToShowInConsole = true;
+
+        public static string Prefix
+        {
+            set;
+            get;
+        }
+
+        /// <summary>
+        /// Displays a log message which developer want to check
+        /// </summary>
+        /// <param name="message"> A debugging message </param>
+        /// <param name="file"> A file name that debugging message is exist </param>
+        /// <param name="func"> A function name that debugging message is exist </param>
+        /// <param name="line"> A line number that debugging message is exist </param>
+        public void Dbg(string message, String file, String func, Int32 line)
+        {
+            D(message, file, func, line);
+        }
+
+        /// <summary>
+        /// </summary>
+        /// <param name="message"> A debugging message </param>
+        /// <param name="file"> A file name that debugging message is exist </param>
+        /// <param name="func"> A function name that debugging message is exist </param>
+        /// <param name="line"> A line number that debugging message is exist </param>
+        public void Err(string message, String file, String func, Int32 line)
+        {
+            E(message, file, func, line);
+        }
+
+        /// <summary>
+        /// Displays a dialog with a given message
+        /// </summary>
+        /// <param name="message"> A debugging message </param>
+        public void Popup(string message)
+        {
+            if (MainWindow == null)
+            {
+                return;
+            }
+            //bool result = await Xamarin.Forms.Page.DisplayAlert("Calculator", message, "OK");
+
+            Dialog toast = new Dialog(MainWindow);
+            toast.Title = message;
+            toast.Timeout = 2.3;
+            toast.BackButtonPressed += (s, e) =>
+            {
+                toast.Dismiss();
+            };
+            toast.Show();
+        }
+
+        /// <summary>
+        /// Displays a log message which developer want to check
+        /// </summary>
+        /// <param name="message"> A debugging message </param>
+        /// <param name="file"> A file name that debugging message is exist </param>
+        /// <param name="func"> A function name that debugging message is exist </param>
+        /// <param name="line"> A line number that debugging message is exist </param>
+        public static void D(string message, [CallerFilePath] System.String file = "", [CallerMemberName] System.String func = "", [CallerLineNumber] System.Int32 line = 0)
+        {
+            Log.Debug(TAG, Prefix + ", " + message, file, func, line);
+            if (IsNeedToShowInConsole)
+            {
+                Console.WriteLine(String.Format("{0}, {1}:{2},{3}", message, file.Substring(file.LastIndexOf("\\")), line, func));
+            }
+
+        }
+
+        /// <summary>
+        /// Displays an error log message
+        /// </summary>
+        /// <param name="message"> A debugging message </param>
+        /// <param name="file"> A file name that debugging message is exist </param>
+        /// <param name="func"> A function name that debugging message is exist </param>
+        /// <param name="line"> A line number that debugging message is exist </param>
+        public static void E(string message, [CallerFilePath] System.String file = "", [CallerMemberName] System.String func = "", [CallerLineNumber] System.Int32 line = 0)
+        {
+            Log.Error(TAG, Prefix + ", " + message, file, func, line);
+            if (IsNeedToShowInConsole)
+            {
+                Console.WriteLine(String.Format("{0}, {1}:{2},{3}", message, file.Substring(file.LastIndexOf("\\")), line, func));
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/LibCommon.Tizen/Ports/FileSystemPort.cs b/LibCommon.Tizen/Ports/FileSystemPort.cs
new file mode 100644 (file)
index 0000000..3479317
--- /dev/null
@@ -0,0 +1,152 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using System;
+using System.IO;
+using LibTVRefCommonPortable.Utils;
+
+namespace LibTVRefCommonTizen.Ports
+{
+    /// <summary>
+    /// Handles FileSystem APIs
+    /// </summary>
+    public class FileSystemPort : IFileSystemAPIs
+    {
+        /// <summary>
+        /// A directory path which should be used for app data storing.
+        /// </summary>
+        public static string AppDataStroagePath { private get; set; }
+
+        /// <summary>
+        /// A property of AppDataStroagePath to be exported to PCL.
+        /// </summary>
+        public string AppDataStorage
+        {
+            get
+            {
+                return AppDataStroagePath ?? "";
+            }
+        }
+
+        public static string AppResourceStoragePath { private get; set; }
+
+        public string AppResourceStorage
+        {
+            get
+            {
+                return AppResourceStoragePath ?? "";
+            }
+        }
+
+        /// <summary>
+        /// A directory path which should be used for sharing between apps.
+        /// </summary>
+        public static string PlatformShareStroagePath { private get; set; }
+
+        /// <summary>
+        /// A property of PlatformShareStroagePath to be exported to PCL.
+        /// </summary>
+        public string PlatformShareStorage
+        {
+            get
+            {
+                return PlatformShareStroagePath ?? "";
+            }
+        }
+
+        /// <summary>
+        /// Opens the given file
+        /// </summary>
+        /// <param name="filePath">A relative or absolute path for the file that the current FileStream object will encapsulate</param>
+        /// <param name="mode">A constant that determines how to open or create the file</param>
+        /// <returns>A generic view of a sequence of bytes</returns>
+        public Stream OpenFile(string filePath, UtilFileMode mode)
+        {
+            Stream fileStream = null;
+            DbgPort.D("[" + mode.ToString() + "] Opening the file, " + filePath);
+            try
+            {
+                fileStream = new FileStream(filePath, (FileMode)mode);
+            }
+            catch (Exception exception)
+            {
+                DbgPort.E("Exception!! " + exception.Message);
+            }
+
+            return fileStream;
+        }
+
+        /// <summary>
+        /// Flushes the given steam
+        /// </summary>
+        /// <param name="stream">The stream to flush</param>
+        public void Flush(Stream stream)
+        {
+            var fileStream = stream as FileStream;
+            fileStream.Flush();
+        }
+
+        /// <summary>
+        /// Closes the given stream
+        /// </summary>
+        /// <param name="stream">The stream to close</param>
+        public void CloseFile(Stream stream)
+        {
+            var fileStream = stream as FileStream;
+            fileStream.Dispose();
+        }
+
+        /// <summary>
+        /// Checks whether the given file exist
+        /// </summary>
+        /// <param name="fileName">The file to check</param>
+        /// <returns>
+        /// true if the caller has the required permissions and path contains the name of an existing file, otherwise, false
+        /// </returns>
+        /// <remarks>
+        /// https://msdn.microsoft.com/en-us/library/system.io.file.exists(v=vs.110).aspx
+        /// </remarks>
+        public bool IsFileExist(String fileName)
+        {
+            return File.Exists(fileName);
+        }
+
+        /// <summary>
+        /// Checks whether the given file ready
+        /// </summary>
+        /// <param name="fileName">The file to check</param>
+        /// <returns>
+        /// true if the file is ready to open, otherwise, false
+        /// </returns>
+        /// <remarks>
+        /// https://msdn.microsoft.com/en-us/library/y973b725(v=vs.110).aspx
+        /// </remarks>
+        public bool IsFileReady(String fileName)
+        {
+            try
+            {
+                using (FileStream inputStream = File.Open(fileName, FileMode.Open, FileAccess.Read, FileShare.None))
+                {
+                    return (inputStream.Length > 0) ? true : false;
+                }
+            }
+            catch (Exception)
+            {
+                return false;
+            }
+        }
+    }
+}
diff --git a/LibCommon.Tizen/Ports/FileSystemWatcherPort.cs b/LibCommon.Tizen/Ports/FileSystemWatcherPort.cs
new file mode 100644 (file)
index 0000000..731690a
--- /dev/null
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+using System;
+using System.IO;
+using LibTVRefCommonPortable.Utils;
+using LibTVRefCommonPortable.DataModels;
+
+namespace LibTVRefCommonTizen.Ports
+{
+    /// <summary>
+    /// Handles FileSystemWatcher APIs
+    /// </summary>
+    public class FileSystemWatcherPort : IFileSystemWatcherAPIs
+    {
+        static FileSystemWatcher watcher;
+        public event EventHandler<EventArgs> CustomChanged;
+        private FileSystemEventCustomArgs args;
+
+        /// <summary>
+        /// Listens to the file system change notifications and raises events when a directory, or file in a directory, changes
+        /// If the 'pinned_apps_info.xml' is created, changed, or deleted, invokes event handler method
+        /// </summary>
+        /// <param name="path">A file path which has the target file</param>
+        /// <param name="fileName">A file name to be watching</param>
+        /// <remarks>
+        /// https://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher(v=vs.110).aspx
+        /// </remarks>
+        public void Run(String path, String fileName)
+        {
+            if (File.Exists(path + fileName) == false)
+            {
+                DbgPort.E("Watching File is not exist!!!" + path + fileName);
+            }
+
+            watcher = new FileSystemWatcher();
+            watcher.Path = path;
+            watcher.NotifyFilter = NotifyFilters.LastWrite;
+            watcher.Filter = fileName;
+
+            watcher.Created += new FileSystemEventHandler(WatcherChanged);
+            watcher.Changed += new FileSystemEventHandler(WatcherChanged);
+            watcher.Deleted += new FileSystemEventHandler(WatcherChanged);
+            watcher.IncludeSubdirectories = true;
+            watcher.EnableRaisingEvents = true;
+        }
+
+        /// <summary>
+        /// Represents the method that will handle the Changed, Created, or Deleted event of a FileSystemWatcher class
+        /// </summary>
+        /// <param name="sender">The source of the event</param>
+        /// <param name="e">The FileSystemEventArgs that contains the event data</param>
+        /// <remarks>
+        /// https://msdn.microsoft.com/en-us/library/system.io.filesystemeventhandler(v=vs.110).aspx
+        /// </remarks>
+        private void WatcherChanged(object sender, FileSystemEventArgs e)
+        {
+            args = new FileSystemEventCustomArgs((WatcherType)e.ChangeType, e.FullPath, e.Name);
+            if (e.ChangeType.Equals(WatcherChangeTypes.Changed))
+            {
+                CustomChanged.Invoke(this, args);
+            }
+
+            DbgPort.D(e.ChangeType + ", " + e.Name);
+        }
+    }
+}
diff --git a/LibCommon.Tizen/Ports/MediaContentPort.cs b/LibCommon.Tizen/Ports/MediaContentPort.cs
new file mode 100644 (file)
index 0000000..ccc610b
--- /dev/null
@@ -0,0 +1,88 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using System;
+using System.Collections.Generic;
+using Tizen.Content.MediaContent;
+using LibTVRefCommonPortable.Utils;
+
+namespace LibTVRefCommonTizen.Ports
+{
+    /// <summary>
+    /// Handles the MediaContent APIs
+    /// </summary>
+    public class MediaContentPort : IMediaContentAPIs
+    {
+        private MediaDatabase mediaDatabase;
+        private MediaInfoCommand mediaInfoCommand;
+        /// <summary>
+        /// The constructor of this class
+        /// Connects content database
+        /// </summary>
+        public MediaContentPort()
+        {
+            DbgPort.D("MediaContentPort");
+            mediaDatabase = new MediaDatabase();
+            mediaDatabase.Connect();
+            mediaInfoCommand = new MediaInfoCommand(mediaDatabase);
+        }
+
+        /// <summary>
+        /// A method for getting recently played media content list
+        /// </summary>
+        /// <param name="limitation">Maximum count of list</param>
+        /// <returns>The recently played media content list</returns>
+        public IEnumerable<RecentlyPlayedMedia> GetRecentlyPlayedMedia(int limitation)
+        {
+            var recentlyPlayedVideos = new List<RecentlyPlayedMedia>();
+            var selectArguments = new SelectArguments();
+
+            selectArguments.SortOrder = "MEDIA_LAST_PLAYED_TIME";
+            //contentFilter.OrderKey = "MEDIA_LAST_PLAYED_TIME";           
+            //contentFilter.Order = ContentOrder.Desc;
+            selectArguments.FilterExpression = "MEDIA_TYPE=1 AND MEDIA_LAST_PLAYED_TIME!=0";
+            selectArguments.StartRowIndex = 0;
+            selectArguments.TotalRowCount = limitation;
+
+            IEnumerable<VideoInfo> mediaInformations = new List<VideoInfo>();
+
+            try
+            {
+                var reader = mediaInfoCommand.SelectMedia(selectArguments);
+                while (reader.Read())
+                {
+                    var videoInfo = reader.Current as VideoInfo;
+                    recentlyPlayedVideos.Add(
+                        new RecentlyPlayedMedia()
+                        {
+                            MediaId = videoInfo.Id,
+                            ThumbnailPath = videoInfo.ThumbnailPath,
+                            DisplayName = videoInfo.DisplayName,
+                            //videoInfo.
+                            //PlayedAt = videoInfo.PlayedAt,
+                            FilePath = videoInfo.Path,
+                        });
+                }
+            }
+            catch (Exception exception)
+            {
+                DbgPort.E(exception.Message);
+            }
+
+            return recentlyPlayedVideos;
+        }
+    }
+}
diff --git a/LibCommon.Tizen/Ports/PackageManagerPort.cs b/LibCommon.Tizen/Ports/PackageManagerPort.cs
new file mode 100644 (file)
index 0000000..4004d1d
--- /dev/null
@@ -0,0 +1,273 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using System.Collections.Generic;
+using Tizen.Applications;
+
+using LibTVRefCommonPortable.Utils;
+using System;
+
+namespace LibTVRefCommonTizen.Ports
+{
+    /// <summary>
+    /// Handles PackageManager APIs
+    /// </summary>
+    public class PackageManagerPort : IPackageManager
+    {
+        /// <summary>
+        /// An interface for platform notification
+        /// </summary>
+        private static IPlatformNotification Notification
+        {
+            get;
+            set;
+        }
+
+        /// <summary>
+        /// The constructor for this class
+        /// </summary>
+        public PackageManagerPort()
+        {
+
+        }
+
+        /// <summary>
+        /// Registers a callback function to be invoked when the package is installed or uninstalled
+        /// </summary>
+        /// <param name="app">The instance of TVApps</param>
+        public static void RegisterCallbacks(IPlatformNotification app)
+        {
+            Notification = app;
+            PackageManager.InstallProgressChanged += PackageManager_InstallProgressChanged;
+            PackageManager.UninstallProgressChanged += PackageManager_UninstallProgressChanged;
+        }
+
+        /// <summary>
+        /// Unregisters the callback function
+        /// </summary>
+        public static void UnregisterCallbacks()
+        {
+            Notification = null;
+            PackageManager.InstallProgressChanged -= PackageManager_InstallProgressChanged;
+            PackageManager.UninstallProgressChanged -= PackageManager_UninstallProgressChanged;
+        }
+
+        /// <summary>
+        /// UninstallProgressChanged event
+        /// This event is occurred when a package is getting uninstalled and the progress of the request to the package manager changes
+        /// </summary>
+        /// <param name="sender">The source of the event</param>
+        /// <param name="e">An object that contains no event data</param>
+        private static void PackageManager_UninstallProgressChanged(object sender, PackageManagerEventArgs e)
+        {
+            if (e.State == PackageEventState.Completed)
+            {
+                if (Notification != null)
+                {
+                    Notification.OnAppUninstalled(e.PackageId);
+                }
+            }
+        }
+
+        /// <summary>
+        /// InstallProgressChanged event
+        /// This event is occurred when a package is getting installed and the progress of the request to the package manager changes
+        /// </summary>
+        /// <param name="sender">The source of the event</param>
+        /// <param name="e">An object that contains no event data</param>
+        private static void PackageManager_InstallProgressChanged(object sender, PackageManagerEventArgs e)
+        {
+            if (e.State == PackageEventState.Completed)
+            {
+                Notification?.OnAppInstalled(e.PackageId);
+            }
+        }
+
+        /// <summary>
+        /// Retrieves package information of all installed packages
+        /// </summary>
+        /// <returns>The list of packages</returns>
+        public Dictionary<string, string[]> GetPackageList()
+        {
+            Dictionary<string, string[]> pkgList = new Dictionary<string, string[]>();
+            IEnumerable<Package> packages = PackageManager.GetPackages();
+
+            string[] result;
+
+            foreach (var item in packages)
+            {
+                if (item.Id == null)
+                {
+                    continue;
+                }
+
+                result = new string[3];
+                var itemLabel = "No Name";
+
+                if (!string.IsNullOrEmpty(item.Label))
+                {
+                    itemLabel = item.Label;
+                }
+
+                result[0] = itemLabel;
+                result[1] = item.Id;
+                result[2] = (System.IO.File.Exists(item.IconPath)) ? item.IconPath : "AppIcon.png";
+
+                pkgList.Add(itemLabel, result);
+            }
+
+            return pkgList;
+        }
+
+        /// <summary>
+        /// Gets the package label for the given package
+        /// </summary>
+        /// <param name="pkgID">The ID of the package</param>
+        /// <returns>The package label for the given package ID</returns>
+        public string GetPackageLabel(string pkgID)
+        {
+            try
+            {
+                Package tempItem = PackageManager.GetPackage(pkgID);
+
+                if(tempItem == null)
+                {
+                    return null;
+                }
+                else
+                {
+                    return tempItem.Label;
+                }
+            }
+            catch (Exception e)
+            {
+                DbgPort.E("Failed to get package information(" + pkgID + ") : " + e.Message);
+
+                return null;
+            }
+        }
+
+        /// <summary>
+        /// Gets the pacakge ID by the app ID
+        /// </summary>
+        /// <param name="appID">The app ID to get</param>
+        /// <returns>The pacakge ID that contains given app ID</returns>
+        public string GetPackageIDByAppID(string appID)
+        {
+            try
+            {
+                return PackageManager.GetPackageIdByApplicationId(appID);
+            }
+            catch (Exception e)
+            {
+                DbgPort.E("Failed to get the package ID by app ID(" + appID + ") : " + e.Message);
+
+                return null;
+            }
+        }
+
+        /// <summary>
+        /// Uninstalls package with the given package
+        /// </summary>
+        /// <param name="pkgID">The ID of the package to be uninstalled</param>
+        /// <returns>Returns true if uninstalltion request is successful, false otherwise</returns>
+        public bool UninstallPackage(string pkgID)
+        {
+            try
+            {
+                Package tempItem = PackageManager.GetPackage(pkgID);
+                if(tempItem == null)
+                {
+                    return false;
+                }
+                else
+                {
+                    return PackageManager.Uninstall(tempItem.Id, tempItem.PackageType);
+                }
+            }
+            catch (Exception e)
+            {
+                DbgPort.E("Failed to get package information(" + pkgID + ") : " + e.Message);
+
+                return false;
+            }
+
+        }
+
+        /// <summary>
+        /// Uninstalls package with the given  app ID
+        /// </summary>
+        /// <param name="appID">The app ID to be uninstalled<</param>
+        /// <returns>Returns true if uninstallation request is successful, false otherwise</returns>
+        public bool UninstallPackageByAppID(string appID)
+        {
+            try
+            {
+                string pkgID = PackageManager.GetPackageIdByApplicationId(appID);
+
+                return UninstallPackage(pkgID);
+            }
+            catch (Exception e)
+            {
+                DbgPort.E("Failed to uninstall by AppID(" + appID + ") : " + e.Message);
+
+                return false;
+            }
+        }
+
+        /// <summary>
+        /// Gets applications list by the package ID
+        /// </summary>
+        /// <param name="pkgID">The package ID to get applications</param>
+        /// <returns>The list of applications</returns>
+        public List<string> GetApplicationsByPkgID(string pkgID)
+        {
+            try
+            {
+                int index = 0;
+                List<string> apps = new List<string>();
+                Package pkg = PackageManager.GetPackage(pkgID);
+                if(pkg == null)
+                {
+                    return null;
+                }
+                IEnumerable<ApplicationInfo> appsList = pkg.GetApplications();
+                if (appsList == null)
+                {
+                    DbgPort.E("Failed to get apps list(" + pkgID + ")");
+
+                    return null;
+                }
+
+                foreach (var app in appsList)
+                {
+                    apps.Add(app.ApplicationId);
+                    DbgPort.D("[" + index + "] " + app.ApplicationId);
+                    index++;
+                }
+
+                return apps;
+            }
+            catch (Exception e)
+            {
+                DbgPort.E("Failed to get the package information(" + pkgID + ") : " + e.Message);
+
+                return new List<string>();
+            }
+
+        }
+    }
+}
\ No newline at end of file
diff --git a/LibCommon.Tizen/Ports/SystemSettingsPort.cs b/LibCommon.Tizen/Ports/SystemSettingsPort.cs
new file mode 100644 (file)
index 0000000..8bba7c7
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using System;
+using System.Runtime.InteropServices;
+using LibTVRefCommonPortable.Utils;
+using Xamarin.Forms.Platform.Tizen.Native;
+
+
+namespace LibTVRefCommonTizen.Ports
+{
+    /// <summary>
+    /// Handles the SystemSettings APIs
+    /// </summary>
+    public class SystemSettingsPort : ISystemSettings
+    {
+        public static readonly int ErrorNone = 0;
+        public static readonly string KeyModelName = "http://tizen.org/system/model_name";
+
+        internal class SystemInfo
+        {
+            [DllImport("libcapi-system-info.so.0", EntryPoint = "system_info_get_platform_string", CallingConvention = CallingConvention.Cdecl)]
+            internal static extern int SystemInfoGetPlatformString(string key, out string value);
+        }
+
+        /// <summary>
+        /// A method for getting system model name.
+        /// </summary>
+        /// <param name="modelName">The system model name</param>
+        /// <returns>The result whether getting the modelName is done</returns>
+        public bool GetSystemModelName(out string modelName)
+        {
+            if (SystemInfo.SystemInfoGetPlatformString(KeyModelName, out modelName) != ErrorNone)
+            {
+                modelName = "";
+                return false;
+            }
+
+            return true;
+        }
+    }
+}
diff --git a/LibCommon.Tizen/Ports/WindowPort.cs b/LibCommon.Tizen/Ports/WindowPort.cs
new file mode 100644 (file)
index 0000000..2c45c91
--- /dev/null
@@ -0,0 +1,103 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using System;
+using System.Runtime.InteropServices;
+using LibTVRefCommonPortable.Utils;
+using ElmSharp;
+
+namespace LibTVRefCommonTizen.Ports
+{
+    /// <summary>
+    /// Handles Window APIs
+    /// </summary>
+    public class WindowPort : IWindowAPIs
+    {
+        internal class ElmWindow
+        {
+            [DllImport("libelementary.so.1", EntryPoint = "elm_win_keygrab_set", CallingConvention = CallingConvention.Cdecl)]
+            internal static extern IntPtr ElmWinKeygrabSet(IntPtr obj, string key, ulong modifiers, ulong not_modifiers, int proirity, int grab_mode);
+
+            [DllImport("libelementary.so.1", EntryPoint = "elm_win_iconified_set", CallingConvention = CallingConvention.Cdecl)]
+            internal static extern void ElmWinIconfiedSet(IntPtr obj, bool iconified);
+
+            [DllImport("libelementary.so.1", EntryPoint = "elm_win_iconified_get", CallingConvention = CallingConvention.Cdecl)]
+            internal static extern bool ElmWinIconifiedGet(IntPtr obj);
+        }
+
+        /// <summary>
+        /// The main window of the App
+        /// </summary>
+        static private Window mainWindow;
+        public Window MainWindow
+        {
+            set
+            {
+                mainWindow = value;
+            }
+        }
+
+        /// <summary>
+        /// Sets the keygrab of the Elm_Win object
+        /// </summary>
+        /// <param name="key">
+        /// keyname string to set keygrab
+        /// </param>
+        public void SetKeyGrabExclusively(string key)
+        {
+            if (mainWindow != null)
+            {
+                ElmWindow.ElmWinKeygrabSet((IntPtr)mainWindow, key, 0, 0, 0, 1024);
+            }
+        }
+
+        /// <summary>
+        /// Sets the iconified state of a window
+        /// </summary>
+        /// <param name="iconified">
+        /// If true the window is iconified, otherwise false
+        /// </param>
+        public void SetIconified(bool iconified)
+        {
+            if (mainWindow != null)
+            {
+                ElmWindow.ElmWinIconfiedSet((IntPtr)mainWindow, iconified);
+            }
+        }
+
+        /// <summary>
+        /// Gets the iconified state of a window
+        /// </summary>
+        /// <returns>
+        /// true if the window is iconified, otherwise false
+        /// </returns>
+        public bool GetIconified()
+        {
+            return (mainWindow != null) ? ElmWindow.ElmWinIconifiedGet((IntPtr)mainWindow) : false;
+        }
+
+        /// <summary>
+        /// Activates the window object
+        /// </summary>
+        /// <remarks>
+        /// This is just a request that a Window Manager may ignore, so calling this function does not ensure in any way that the window is going to be the active one after it
+        /// </remarks>
+        public void Active()
+        {
+            mainWindow?.Active();
+        }
+    }
+}
diff --git a/LibCommon.Tizen/Settings.StyleCop b/LibCommon.Tizen/Settings.StyleCop
new file mode 100644 (file)
index 0000000..837530c
--- /dev/null
@@ -0,0 +1,722 @@
+<StyleCopSettings Version="105">
+  <GlobalSettings>
+    <StringProperty Name="MergeSettingsFiles">NoMerge</StringProperty>
+  </GlobalSettings>
+  <Analyzers>
+    <Analyzer AnalyzerId="StyleCop.CSharp.DocumentationRules">
+      <Rules>
+        <Rule Name="ElementsMustBeDocumented">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementDocumentationMustHaveSummaryText">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="EnumerationItemsMustBeDocumented">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DocumentationMustContainValidXml">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementDocumentationMustHaveSummary">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="PartialElementDocumentationMustHaveSummary">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementDocumentationMustNotHaveDefaultSummary">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="VoidReturnValueMustNotBeDocumented">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="GenericTypeParametersMustBeDocumented">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="GenericTypeParametersMustBeDocumentedPartialClass">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="GenericTypeParameterDocumentationMustMatchTypeParameters">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="GenericTypeParameterDocumentationMustDeclareParameterName">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="GenericTypeParameterDocumentationMustHaveText">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="PropertySummaryDocumentationMustMatchAccessors">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="PropertySummaryDocumentationMustOmitSetAccessorWithRestrictedAccess">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementDocumentationMustNotBeCopiedAndPasted">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="SingleLineCommentsMustNotUseDocumentationStyleSlashes">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DocumentationTextMustNotBeEmpty">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DocumentationTextMustContainWhitespace">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DocumentationMustMeetCharacterPercentage">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ConstructorSummaryDocumentationMustBeginWithStandardText">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DestructorSummaryDocumentationMustBeginWithStandardText">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DocumentationHeadersMustNotContainBlankLines">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="IncludedDocumentationXPathDoesNotExist">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="IncludeNodeDoesNotContainValidFileAndPath">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="InheritDocMustBeUsedWithInheritingClass">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementDocumentationMustBeSpelledCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FileMustHaveHeader">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FileHeaderMustShowCopyright">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FileHeaderMustHaveCopyrightText">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FileHeaderMustContainFileName">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FileHeaderFileNameDocumentationMustMatchFileName">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FileHeaderMustHaveValidCompanyText">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FileHeaderFileNameDocumentationMustMatchTypeName">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+      </Rules>
+      <AnalyzerSettings />
+    </Analyzer>
+    <Analyzer AnalyzerId="StyleCop.CSharp.NamingRules">
+      <Rules>
+        <Rule Name="ConstFieldNamesMustBeginWithUpperCaseLetter">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FieldNamesMustBeginWithLowerCaseLetter">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FieldNamesMustNotContainUnderscore">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementMustBeginWithLowerCaseLetter">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="NonPrivateReadonlyFieldsMustBeginWithUpperCaseLetter">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FieldNamesMustNotUseHungarianNotation">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="AccessibleFieldsMustBeginWithUpperCaseLetter">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="VariableNamesMustNotBePrefixed">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FieldNamesMustNotBeginWithUnderscore">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="StaticReadonlyFieldsMustBeginWithUpperCaseLetter">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+      </Rules>
+      <AnalyzerSettings />
+    </Analyzer>
+    <Analyzer AnalyzerId="StyleCop.CSharp.LayoutRules">
+      <Rules>
+        <Rule Name="AllAccessorsMustBeMultiLineOrSingleLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="OpeningCurlyBracketsMustNotBeFollowedByBlankLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementDocumentationHeadersMustNotBeFollowedByBlankLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="CodeMustNotContainMultipleBlankLinesInARow">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ClosingCurlyBracketsMustNotBePrecededByBlankLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="OpeningCurlyBracketsMustNotBePrecededByBlankLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ChainedStatementBlocksMustNotBePrecededByBlankLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="WhileDoFooterMustNotBePrecededByBlankLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="SingleLineCommentsMustNotBeFollowedByBlankLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementDocumentationHeaderMustBePrecededByBlankLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="SingleLineCommentMustBePrecededByBlankLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementsMustBeSeparatedByBlankLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="CodeMustNotContainBlankLinesAtStartOfFile">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="CodeMustNotContainBlankLinesAtEndOfFile">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+      </Rules>
+      <AnalyzerSettings />
+    </Analyzer>
+    <Analyzer AnalyzerId="StyleCop.CSharp.MaintainabilityRules">
+      <Rules>
+        <Rule Name="AccessModifierMustBeDeclared">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FieldsMustBePrivate">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="CodeAnalysisSuppressionMustHaveJustification">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DebugAssertMustProvideMessageText">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DebugFailMustProvideMessageText">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FileMayOnlyContainASingleClass">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FileMayOnlyContainASingleNamespace">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="StatementMustNotUseUnnecessaryParenthesis">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ArithmeticExpressionsMustDeclarePrecedence">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ConditionalExpressionsMustDeclarePrecedence">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="RemoveDelegateParenthesisWhenPossible">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="AttributeConstructorMustNotUseUnnecessaryParenthesis">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="RemoveUnnecessaryCode">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+      </Rules>
+      <AnalyzerSettings />
+    </Analyzer>
+    <Analyzer AnalyzerId="StyleCop.CSharp.OrderingRules">
+      <Rules>
+        <Rule Name="UsingDirectivesMustBePlacedWithinNamespace">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementsMustAppearInTheCorrectOrder">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementsMustBeOrderedByAccess">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ConstantsMustAppearBeforeFields">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="StaticElementsMustAppearBeforeInstanceElements">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DeclarationKeywordsMustFollowOrder">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ProtectedMustComeBeforeInternal">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="PropertyAccessorsMustFollowOrder">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="EventAccessorsMustFollowOrder">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="StaticReadonlyElementsMustAppearBeforeStaticNonReadonlyElements">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="InstanceReadonlyElementsMustAppearBeforeInstanceNonReadonlyElements">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="NoValueFirstComparison">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="SystemUsingDirectivesMustBePlacedBeforeOtherUsingDirectives">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="UsingAliasDirectivesMustBePlacedAfterOtherUsingDirectives">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="UsingDirectivesMustBeOrderedAlphabeticallyByNamespace">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="UsingAliasDirectivesMustBeOrderedAlphabeticallyByAliasName">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="UsingStaticDirectivesMustBePlacedAfterUsingNamespaceDirectives">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+      </Rules>
+      <AnalyzerSettings />
+    </Analyzer>
+    <Analyzer AnalyzerId="StyleCop.CSharp.ReadabilityRules">
+      <Rules>
+        <Rule Name="CommentsMustContainText">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DoNotPrefixCallsWithBaseUnlessLocalImplementationExists">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="PrefixLocalCallsWithThis">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="PrefixCallsCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="OpeningParenthesisMustBeOnDeclarationLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ClosingParenthesisMustBeOnLineOfLastParameter">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ClosingParenthesisMustBeOnLineOfOpeningParenthesis">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="CommaMustBeOnSameLineAsPreviousParameter">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ParameterListMustFollowDeclaration">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ParameterMustFollowComma">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="SplitParametersMustStartOnLineAfterDeclaration">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ParametersMustBeOnSameLineOrSeparateLines">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ParameterMustNotSpanMultipleLines">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="QueryClauseMustFollowPreviousClause">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="QueryClausesMustBeOnSeparateLinesOrAllOnOneLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="QueryClauseMustBeginOnNewLineWhenPreviousClauseSpansMultipleLines">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="QueryClausesSpanningMultipleLinesMustBeginOnOwnLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DoNotPlaceRegionsWithinElements">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="CodeMustNotContainEmptyStatements">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="CodeMustNotContainMultipleStatementsOnOneLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="BlockStatementsMustNotContainEmbeddedComments">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="BlockStatementsMustNotContainEmbeddedRegions">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="UseStringEmptyForEmptyStrings">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="UseBuiltInTypeAlias">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="UseShorthandForNullableTypes">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+      </Rules>
+      <AnalyzerSettings />
+    </Analyzer>
+    <Analyzer AnalyzerId="StyleCop.CSharp.SpacingRules">
+      <Rules>
+        <Rule Name="CommasMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="SemicolonsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DocumentationLinesMustBeginWithSingleSpace">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="SingleLineCommentsMustBeginWithSingleSpace">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="PreprocessorKeywordsMustNotBePrecededBySpace">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="OperatorKeywordMustBeFollowedBySpace">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="OpeningCurlyBracketsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ClosingCurlyBracketsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="OpeningGenericBracketsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ClosingGenericBracketsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="OpeningAttributeBracketsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ClosingAttributeBracketsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="NullableTypeSymbolsMustNotBePrecededBySpace">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="MemberAccessSymbolsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="IncrementDecrementSymbolsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="NegativeSignsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="PositiveSignsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DereferenceAndAccessOfSymbolsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ColonsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="CodeMustNotContainMultipleWhitespaceInARow">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="CodeMustNotContainSpaceAfterNewKeywordInImplicitlyTypedArrayAllocation">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="TabsMustNotBeUsed">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DoNotSplitNullConditionalOperators">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+      </Rules>
+      <AnalyzerSettings />
+    </Analyzer>
+  </Analyzers>
+</StyleCopSettings>
\ No newline at end of file
diff --git a/LibCommon.Tizen/bin/Debug/netstandard2.0/LibCommon.Tizen.deps.json b/LibCommon.Tizen/bin/Debug/netstandard2.0/LibCommon.Tizen.deps.json
new file mode 100644 (file)
index 0000000..35e1d9f
--- /dev/null
@@ -0,0 +1,199 @@
+{
+  "runtimeTarget": {
+    "name": ".NETStandard,Version=v2.0/",
+    "signature": "2a93253ff39d191d9ba22d2151167c179fe82d97"
+  },
+  "compilationOptions": {},
+  "targets": {
+    ".NETStandard,Version=v2.0": {},
+    ".NETStandard,Version=v2.0/": {
+      "LibCommon.Tizen/1.0.0": {
+        "dependencies": {
+          "LibCommon.Shared": "1.0.0",
+          "NETStandard.Library": "2.0.0",
+          "Tizen.NET": "4.0.0-preview1-00143",
+          "Tizen.Xamarin.Forms.Extension": "2.4.0-v00005",
+          "Xamarin.Forms": "2.4.0.266-pre1",
+          "Xamarin.Forms.Platform.Tizen": "2.4.0-r266-006"
+        },
+        "runtime": {
+          "LibCommon.Tizen.dll": {}
+        }
+      },
+      "Microsoft.NETCore.Platforms/1.1.0": {},
+      "NETStandard.Library/2.0.0": {
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0"
+        }
+      },
+      "Tizen.NET/4.0.0-preview1-00143": {
+        "runtime": {
+          "lib/netstandard1.6/ElmSharp.Wearable.dll": {},
+          "lib/netstandard1.6/ElmSharp.dll": {},
+          "lib/netstandard1.6/Tizen.Account.AccountManager.dll": {},
+          "lib/netstandard1.6/Tizen.Account.FidoClient.dll": {},
+          "lib/netstandard1.6/Tizen.Account.OAuth2.dll": {},
+          "lib/netstandard1.6/Tizen.Account.SyncManager.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.Alarm.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.AttachPanel.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.Badge.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.Common.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.DataControl.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.MessagePort.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.Notification.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.NotificationEventListener.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.PackageManager.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.Preference.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.RemoteView.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.Service.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.ToastMessage.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.UI.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.WatchApplication.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.WidgetApplication.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.WidgetControl.dll": {},
+          "lib/netstandard1.6/Tizen.Content.Download.dll": {},
+          "lib/netstandard1.6/Tizen.Content.MediaContent.dll": {},
+          "lib/netstandard1.6/Tizen.Content.MimeType.dll": {},
+          "lib/netstandard1.6/Tizen.Context.dll": {},
+          "lib/netstandard1.6/Tizen.Location.Geofence.dll": {},
+          "lib/netstandard1.6/Tizen.Location.dll": {},
+          "lib/netstandard1.6/Tizen.Log.dll": {},
+          "lib/netstandard1.6/Tizen.Maps.dll": {},
+          "lib/netstandard1.6/Tizen.Messaging.Push.dll": {},
+          "lib/netstandard1.6/Tizen.Messaging.dll": {},
+          "lib/netstandard1.6/Tizen.Multimedia.AudioIO.dll": {},
+          "lib/netstandard1.6/Tizen.Multimedia.Camera.dll": {},
+          "lib/netstandard1.6/Tizen.Multimedia.MediaCodec.dll": {},
+          "lib/netstandard1.6/Tizen.Multimedia.MediaPlayer.dll": {},
+          "lib/netstandard1.6/Tizen.Multimedia.Metadata.dll": {},
+          "lib/netstandard1.6/Tizen.Multimedia.Radio.dll": {},
+          "lib/netstandard1.6/Tizen.Multimedia.Recorder.dll": {},
+          "lib/netstandard1.6/Tizen.Multimedia.Remoting.dll": {},
+          "lib/netstandard1.6/Tizen.Multimedia.StreamRecorder.dll": {},
+          "lib/netstandard1.6/Tizen.Multimedia.Util.dll": {},
+          "lib/netstandard1.6/Tizen.Multimedia.Vision.dll": {},
+          "lib/netstandard1.6/Tizen.Multimedia.dll": {},
+          "lib/netstandard1.6/Tizen.NUI.dll": {},
+          "lib/netstandard1.6/Tizen.Network.Bluetooth.dll": {},
+          "lib/netstandard1.6/Tizen.Network.Connection.dll": {},
+          "lib/netstandard1.6/Tizen.Network.IoTConnectivity.dll": {},
+          "lib/netstandard1.6/Tizen.Network.Nfc.dll": {},
+          "lib/netstandard1.6/Tizen.Network.Nsd.dll": {},
+          "lib/netstandard1.6/Tizen.Network.Smartcard.dll": {},
+          "lib/netstandard1.6/Tizen.Network.WiFi.dll": {},
+          "lib/netstandard1.6/Tizen.Network.WiFiDirect.dll": {},
+          "lib/netstandard1.6/Tizen.PhonenumberUtils.dll": {},
+          "lib/netstandard1.6/Tizen.Pims.Calendar.dll": {},
+          "lib/netstandard1.6/Tizen.Pims.Contacts.dll": {},
+          "lib/netstandard1.6/Tizen.Security.SecureRepository.dll": {},
+          "lib/netstandard1.6/Tizen.Security.TEEC.dll": {},
+          "lib/netstandard1.6/Tizen.Security.dll": {},
+          "lib/netstandard1.6/Tizen.Sensor.dll": {},
+          "lib/netstandard1.6/Tizen.System.Feedback.dll": {},
+          "lib/netstandard1.6/Tizen.System.Information.dll": {},
+          "lib/netstandard1.6/Tizen.System.MediaKey.dll": {},
+          "lib/netstandard1.6/Tizen.System.PlatformConfig.dll": {},
+          "lib/netstandard1.6/Tizen.System.Storage.dll": {},
+          "lib/netstandard1.6/Tizen.System.SystemSettings.dll": {},
+          "lib/netstandard1.6/Tizen.System.dll": {},
+          "lib/netstandard1.6/Tizen.Telephony.dll": {},
+          "lib/netstandard1.6/Tizen.Tracer.dll": {},
+          "lib/netstandard1.6/Tizen.Uix.InputMethod.dll": {},
+          "lib/netstandard1.6/Tizen.Uix.InputMethodManager.dll": {},
+          "lib/netstandard1.6/Tizen.Uix.Stt.dll": {},
+          "lib/netstandard1.6/Tizen.Uix.Tts.dll": {},
+          "lib/netstandard1.6/Tizen.Uix.VoiceControl.dll": {},
+          "lib/netstandard1.6/Tizen.WebView.dll": {},
+          "lib/netstandard1.6/Tizen.dll": {}
+        }
+      },
+      "Tizen.Xamarin.Forms.Extension/2.4.0-v00005": {
+        "dependencies": {
+          "Xamarin.Forms": "2.4.0.266-pre1"
+        },
+        "runtime": {
+          "lib/netstandard1.0/Tizen.Xamarin.Forms.Extension.dll": {}
+        }
+      },
+      "Xamarin.Forms/2.4.0.266-pre1": {
+        "runtime": {
+          "lib/netstandard1.0/Xamarin.Forms.Core.dll": {},
+          "lib/netstandard1.0/Xamarin.Forms.Platform.dll": {},
+          "lib/netstandard1.0/Xamarin.Forms.Xaml.dll": {}
+        }
+      },
+      "Xamarin.Forms.Platform.Tizen/2.4.0-r266-006": {
+        "dependencies": {
+          "Tizen.NET": "4.0.0-preview1-00143",
+          "Xamarin.Forms": "2.4.0.266-pre1"
+        },
+        "runtime": {
+          "lib/netstandard1.6/Xamarin.Forms.Platform.Tizen.dll": {}
+        }
+      },
+      "LibCommon.Shared/1.0.0": {
+        "dependencies": {
+          "Tizen.Xamarin.Forms.Extension": "2.4.0-v00005",
+          "Xamarin.Forms": "2.4.0.266-pre1"
+        },
+        "runtime": {
+          "LibCommon.Shared.dll": {}
+        }
+      }
+    }
+  },
+  "libraries": {
+    "LibCommon.Tizen/1.0.0": {
+      "type": "project",
+      "serviceable": false,
+      "sha512": ""
+    },
+    "Microsoft.NETCore.Platforms/1.1.0": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==",
+      "path": "microsoft.netcore.platforms/1.1.0",
+      "hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512"
+    },
+    "NETStandard.Library/2.0.0": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-7jnbRU+L08FXKMxqUflxEXtVymWvNOrS8yHgu9s6EM8Anr6T/wIX4nZ08j/u3Asz+tCufp3YVwFSEvFTPYmBPA==",
+      "path": "netstandard.library/2.0.0",
+      "hashPath": "netstandard.library.2.0.0.nupkg.sha512"
+    },
+    "Tizen.NET/4.0.0-preview1-00143": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-woW6D9FsWZD2lJRwbND2hzMIi9l7QYwUqfpCxrMT3+Mh3+8UdFM86skDdw3mAgpLIqfC1plUfbISksQ9G2Gcgg==",
+      "path": "tizen.net/4.0.0-preview1-00143",
+      "hashPath": "tizen.net.4.0.0-preview1-00143.nupkg.sha512"
+    },
+    "Tizen.Xamarin.Forms.Extension/2.4.0-v00005": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-MKUamVt5XloZ/JziyOXLdbahn7T0LDQDJGUt3ynt0iSia4aLpZLOua6/iypBhnC79FgMaNfUA7APjVfjh3NLTg==",
+      "path": "tizen.xamarin.forms.extension/2.4.0-v00005",
+      "hashPath": "tizen.xamarin.forms.extension.2.4.0-v00005.nupkg.sha512"
+    },
+    "Xamarin.Forms/2.4.0.266-pre1": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-pMu+b01vdH1ul5EJo1opQjEcwisWT35DdZO6EuR9HNKfY1dWyKmAlWgRdGUtjtdbhjOAtCOQUxI7F3x4hvV8KA==",
+      "path": "xamarin.forms/2.4.0.266-pre1",
+      "hashPath": "xamarin.forms.2.4.0.266-pre1.nupkg.sha512"
+    },
+    "Xamarin.Forms.Platform.Tizen/2.4.0-r266-006": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-xDEcJnKerroXtMLLUVssB9+f2mZMB5ngulNB09OsIp0gRqP7GnpqJEyWQsISFRCk272lNVd57UhXGCUFl9/aRg==",
+      "path": "xamarin.forms.platform.tizen/2.4.0-r266-006",
+      "hashPath": "xamarin.forms.platform.tizen.2.4.0-r266-006.nupkg.sha512"
+    },
+    "LibCommon.Shared/1.0.0": {
+      "type": "project",
+      "serviceable": false,
+      "sha512": ""
+    }
+  }
+}
\ No newline at end of file
diff --git a/LibTVRefCommonPortable/DataModels/AppControlAction.cs b/LibTVRefCommonPortable/DataModels/AppControlAction.cs
deleted file mode 100644 (file)
index e30afe4..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using System;
-using LibTVRefCommonPortable.Utils;
-using System.Collections.Generic;
-
-namespace LibTVRefCommonPortable.DataModels
-{
-    /// <summary>
-    /// A class defines App Control behavior.
-    /// </summary>
-    public class AppControlAction : IAction
-    {
-        /// <summary>
-        /// A target application ID
-        /// </summary>
-        public string AppID { get; set; }
-
-        /// <summary>
-        /// A dictionary which has extra data for App Control
-        /// </summary>
-        protected Dictionary<string, string> extraData;
-
-        /// <summary>
-        /// A dictionary which has extra data for App Control
-        /// </summary>
-        public Dictionary<string, string> ExtraData
-        {
-            get
-            {
-                if (extraData == null)
-                {
-                    extraData = new Dictionary<string, string>();
-                }
-
-                return extraData;
-            }
-        }
-
-        /// <summary>
-        /// A method which invoke an App Control to the application of the AppID
-        /// </summary>
-        /// <returns>a next state after App Control invocation</returns>
-        public string Execute()
-        {
-            // Warn : Do NOT pass 'E'xtraData, it will create a new Dictionary and it might cause unexpected situation.
-            AppControlUtils.SendLaunchRequest(AppID, extraData);
-            return "default";
-        }
-    }
-}
diff --git a/LibTVRefCommonPortable/DataModels/AppShortcutInfo.cs b/LibTVRefCommonPortable/DataModels/AppShortcutInfo.cs
deleted file mode 100755 (executable)
index 7aeff96..0000000
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using LibTVRefCommonPortable.Utils;
-using System;
-using System.Xml.Serialization;
-using Xamarin.Forms;
-
-namespace LibTVRefCommonPortable.DataModels
-{
-    /// <summary>
-    /// A class defines App Shortcut button
-    /// </summary>
-    public class AppShortcutInfo : ShortcutInfo
-    {
-        /// <summary>
-        /// An application ID of the App Shortcut.
-        /// </summary>
-        public string AppID { get; set; }
-
-        /// <summary>
-        /// An App Shortcut status.
-        /// </summary>
-        [XmlIgnore]
-        public string Status { get; set; }
-
-        /// <summary>
-        /// A flag indicates that a App Shortcut is checked or not.
-        /// </summary>
-        [XmlIgnore]
-        private bool isChecked;
-
-        /// <summary>
-        /// A flag indicates that a App Shortcut is checked or not.
-        /// </summary>
-        [XmlIgnore]
-        public bool IsChecked
-        {
-            get
-            {
-                return isChecked;
-            }
-
-            set
-            {
-                if (isChecked != value)
-                {
-                    isChecked = value;
-                    OnPropertyChanged("IsChecked");
-                }
-            }
-        }
-
-        /// <summary>
-        /// A flag indicates that a App Shortcut is pinned or not.
-        /// </summary>
-        [XmlIgnore]
-        private bool isPinned;
-
-        /// <summary>
-        /// A flag indicates that a App Shortcut is pinned or not.
-        /// </summary>
-        [XmlIgnore]
-        public bool IsPinned
-        {
-            get
-            {
-                return isPinned;
-            }
-
-            set
-            {
-                if (isPinned != value)
-                {
-                    isPinned = value;
-                    OnPropertyChanged("IsPinned");
-                }
-            }
-        }
-
-        /// <summary>
-        /// A flag indicates that a App Shortcut can be removed.
-        /// </summary>
-        [XmlIgnore]
-        public bool IsRemovable { get; set; }
-
-        /// <summary>
-        /// A flag indicates that a App Shortcut is focused or not.
-        /// </summary>
-        [XmlIgnore]
-        private bool isFocused;
-
-        /// <summary>
-        /// A flag indicates that a App Shortcut is focused or not.
-        /// </summary>
-        [XmlIgnore]
-        public bool IsFocused
-        {
-            get
-            {
-                return isFocused;
-            }
-
-            set
-            {
-                if (isFocused != value)
-                {
-                    isFocused = value;
-                    OnPropertyChanged("IsFocused");
-                }
-            }
-        }
-
-        /// <summary>
-        /// A flag indicates that a App Shortcut is dimmed or not.
-        /// </summary>
-        [XmlIgnore]
-        private bool isDim;
-
-        /// <summary>
-        /// A flag indicates that a App Shortcut is dimmed or not.
-        /// </summary>
-        [XmlIgnore]
-        public bool IsDim
-        {
-            get
-            {
-                return isDim;
-            }
-
-            set
-            {
-                if (isDim != value)
-                {
-                    isDim = value;
-                    OnPropertyChanged("IsDim");
-                }
-            }
-        }
-
-        /// <summary>
-        /// A flag indicates that a App Shortcut is showing options or not.
-        /// </summary>
-        [XmlIgnore]
-        private bool isShowOptions;
-
-        /// <summary>
-        /// A flag indicates that a App Shortcut is showing options or not.
-        /// </summary>
-        [XmlIgnore]
-        public bool IsShowOptions
-        {
-            get
-            {
-                return isShowOptions;
-            }
-
-            set
-            {
-                if (isShowOptions != value)
-                {
-                    isShowOptions = value;
-                    OnPropertyChanged("IsShowOptions");
-                }
-            }
-        }
-
-        /// <summary>
-        /// An app installed time.
-        /// </summary>
-        [XmlIgnore]
-        public DateTime Installed { get; set; }
-
-        /// <summary>
-        /// A pin command of the Option menu.
-        /// </summary>
-        [XmlIgnore]
-        public Command OptionMenuPinToggleCommand { get; set; }
-
-        /// <summary>
-        /// A deleting app command of the Option menu.
-        /// </summary>
-        [XmlIgnore]
-        public Command OptionMenuDeleteCommand { get; set; }
-
-        [XmlIgnore]
-        public Command ToDefaultCommand { get; set; }
-
-        /// <summary>
-        /// A Constructor.
-        /// Initializes AppShortcutInfo.
-        /// </summary>
-        public AppShortcutInfo()
-        {
-            OptionMenuPinToggleCommand = new Command(() =>
-            {
-                MessagingCenter.Send<AppShortcutInfo, string>(this, "OptionMenuPinToggle", AppID);
-            });
-
-            OptionMenuDeleteCommand = new Command(() =>
-            {
-                MessagingCenter.Send<AppShortcutInfo, string>(this, "OptionMenuDelete", AppID);
-            });
-
-            ToDefaultCommand = new Command(() =>
-            {
-                MessagingCenter.Send<AppShortcutInfo>(this, "ChangeToDefaultMode");
-            });
-        }
-
-        /// <summary>
-        /// Update State of a shortcut.
-        /// </summary>
-        public override void UpdateState()
-        {
-            SetCurrentState("default");
-        }
-    }
-}
diff --git a/LibTVRefCommonPortable/DataModels/CommandAction.cs b/LibTVRefCommonPortable/DataModels/CommandAction.cs
deleted file mode 100644 (file)
index 220c7c5..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using System;
-
-namespace LibTVRefCommonPortable.DataModels
-{
-    /// <summary>
-    /// A Action class which can invoke a Command
-    /// </summary>
-    public class CommandAction : IAction
-    {
-        /// <summary>
-        /// A next description after invocation of the Command.
-        /// </summary>
-        public string NextStateDescription { get; set; }
-
-        /// <summary>
-        /// A Command to be executed
-        /// </summary>
-        public event EventHandler<String> Command;
-
-        /// <summary>
-        /// A Command parameter.
-        /// </summary>
-        public string CommandParameter { get; set; }
-
-        /// <summary>
-        /// A method execute a action.
-        /// </summary>
-        /// <returns>A next statue of a Shortcut.</returns>
-        public string Execute()
-        {
-            Command?.Invoke(this, CommandParameter);
-            return NextStateDescription;
-        }
-    }
-}
diff --git a/LibTVRefCommonPortable/DataModels/FileSystemEventCustomArgs.cs b/LibTVRefCommonPortable/DataModels/FileSystemEventCustomArgs.cs
deleted file mode 100644 (file)
index b608ea9..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using System;
-
-namespace LibTVRefCommonPortable.DataModels
-{
-    /// <summary>
-    /// A class contains file system event arguments.
-    /// </summary>
-    public class FileSystemEventCustomArgs : EventArgs
-    {
-        /// <summary>
-        /// Initializes a new instance of the System.IO.FileSystemEventArgs class.
-        /// </summary>
-        /// <param name="changeType">One of the System.IO.WatcherChangeTypes values, which represents the kind of change detected in the file system.</param>
-        /// <param name="directory">The root directory of the affected file or directory.</param>
-        /// <param name="name">The name of the affected file or directory.</param>
-        public FileSystemEventCustomArgs(WatcherType changeType, string directory, string name)
-        {
-            ChangeType = changeType;
-            FullPath = directory;
-            Name = name;
-        }
-
-        /// <summary>
-        /// Gets the type of directory event that occurred.
-        /// One of the System.IO.WatcherChangeTypes values that represents the kind of change
-        /// detected in the file system.
-        /// </summary>
-        public WatcherType ChangeType { set; get; }
-
-        /// <summary>
-        /// Gets the fully qualified path of the affected file or directory.
-        /// The path of the affected file or directory.
-        /// </summary>
-        public string FullPath { set; get; }
-
-        /// <summary>
-        /// Gets the name of the affected file or directory.
-        /// The name of the affected file or directory.
-        /// </summary>
-        public string Name { set; get; }
-    }
-}
\ No newline at end of file
diff --git a/LibTVRefCommonPortable/DataModels/HomeMenuAppShortcutInfo.cs b/LibTVRefCommonPortable/DataModels/HomeMenuAppShortcutInfo.cs
deleted file mode 100644 (file)
index 8ede65d..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-namespace LibTVRefCommonPortable.DataModels
-{
-    /// <summary>
-    /// A Home Menu AppShortcut information
-    /// </summary>
-    /// <seealso cref="ShortcutInfo"/>
-    public class HomeMenuAppShortcutInfo : ShortcutInfo
-    {
-        /// <summary>
-        /// A Shortcut status
-        /// </summary>
-        public string Status { get; set; }
-
-        /// <summary>
-        /// A method initializes a status of a Shortcut.
-        /// </summary>
-        public override void UpdateState()
-        {
-            SetCurrentState("default");
-        }
-
-        /// <summary>
-        /// A method changes current status of a Shortcut.
-        /// </summary>
-        /// <param name="status">A new status</param>
-        public void ChangeStatus(string status)
-        {
-            Status = status;
-            OnPropertyChanged("Status");
-            SetCurrentState(status);
-        }
-    }
-}
diff --git a/LibTVRefCommonPortable/DataModels/IAction.cs b/LibTVRefCommonPortable/DataModels/IAction.cs
deleted file mode 100644 (file)
index d4616da..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-namespace LibTVRefCommonPortable.DataModels
-{
-    /// <summary>
-    /// An interface defines behaviors that will be exported by inherited classes.
-    /// </summary>
-    public interface IAction
-    {
-        /// <summary>
-        /// A method execute an action.
-        /// </summary>
-        /// <returns>A next statue of a Shortcut.</returns>
-        string Execute();
-    }
-}
diff --git a/LibTVRefCommonPortable/DataModels/IEnumerableItem.cs b/LibTVRefCommonPortable/DataModels/IEnumerableItem.cs
deleted file mode 100644 (file)
index efcfd2b..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using System.Collections.Generic;
-
-namespace TVHome.DataModels
-{
-    public interface IEnumerableItem
-    {
-        IDictionary<int, string> ItemProperties
-        {
-            set;
-            get;
-        }
-
-    }
-}
diff --git a/LibTVRefCommonPortable/DataModels/MediaControlAction.cs b/LibTVRefCommonPortable/DataModels/MediaControlAction.cs
deleted file mode 100644 (file)
index 440fcfb..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using System;
-using LibTVRefCommonPortable.Utils;
-
-namespace LibTVRefCommonPortable.DataModels
-{
-    /// <summary>
-    /// A Media ControlAction.
-    /// </summary>
-    class MediaControlAction : AppControlAction
-    {
-        /// <summary>
-        /// A file URI to be open
-        /// </summary>
-        public string FileUri { get; set; }
-
-        /// <summary>
-        /// A method execute a action.
-        /// </summary>
-        /// <returns>A next statue of a Shortcut.</returns>
-        new public string Execute()
-        {
-            // Warn : Do NOT pass 'E'xtraData, it will create a new Dictionary and it might cause unexpected situation.
-            AppControlUtils.SendLaunchRequest(AppID, extraData, FileUri);
-            return "default";
-        }
-    }
-}
diff --git a/LibTVRefCommonPortable/DataModels/RecentShortcutInfo.cs b/LibTVRefCommonPortable/DataModels/RecentShortcutInfo.cs
deleted file mode 100755 (executable)
index 3d853ef..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using System;
-using System.Collections;
-
-namespace LibTVRefCommonPortable.DataModels
-{
-    /// <summary>
-    /// Types for recent shortcut
-    /// </summary>
-    public enum RecentShortcutType
-    {
-        Application = 0,
-        Media = 1,
-    }
-
-    /// <summary>
-    /// A Recent Shortcut information
-    /// </summary>
-    public class RecentShortcutInfo : ShortcutInfo, IComparable
-    {
-        /// <summary>
-        /// A type for the content of the shortcut
-        /// </summary>
-        public RecentShortcutType Type { get; set; }
-
-        /// <summary>
-        /// An Id for the content of the shortcut
-        /// </summary>
-        public string Id { get; set; }
-        /// <summary>
-        /// A Last used Time
-        /// </summary>
-        public DateTime Date { get; set; }
-
-        /// <summary>
-        /// A Screenshot image path
-        /// </summary>
-        public string ScreenshotPath { get; set; }
-
-        /// <summary>
-        /// Initialize State of a shortcut.
-        /// </summary>
-        public override void UpdateState()
-        {
-            SetCurrentState("default");
-        }
-
-        int IComparable.CompareTo(object target)
-        {
-            var rightShortcutInfo = target as RecentShortcutInfo;
-            return Date.CompareTo(rightShortcutInfo.Date) * -1;
-        }
-    }
-}
diff --git a/LibTVRefCommonPortable/DataModels/SettingShortcutInfo.cs b/LibTVRefCommonPortable/DataModels/SettingShortcutInfo.cs
deleted file mode 100755 (executable)
index fd355d2..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using System;
-
-namespace LibTVRefCommonPortable.DataModels
-{
-    /// <summary>
-    /// A Setting Shortcut information
-    /// </summary>
-    public class SettingShortcutInfo : ShortcutInfo
-    {
-        /// <summary>
-        /// Initialize State of a shortcut.
-        /// </summary>
-        public override void UpdateState()
-        {
-            SetCurrentState("default");
-        }
-    }
-}
diff --git a/LibTVRefCommonPortable/DataModels/ShortcutInfo.cs b/LibTVRefCommonPortable/DataModels/ShortcutInfo.cs
deleted file mode 100644 (file)
index 00854f6..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Xml.Serialization;
-using LibTVRefCommonPortable.Utils;
-
-namespace LibTVRefCommonPortable.DataModels
-{
-    /// <summary>
-    /// TVHome and TVApps has several buttons that represent Apps, Contents, Settings.
-    /// The ShortcutInfo is a model for those buttons with detail information of the represented object.
-    /// </summary>
-    public abstract class ShortcutInfo : INotifyPropertyChanged
-    {
-        /// <summary>
-        /// An event handler for handing property changed. </summary>
-        public event PropertyChangedEventHandler PropertyChanged;
-
-        /// <summary>
-        /// State descriptions of Shortcut. </summary>
-        [XmlIgnore]
-        private Dictionary<String, StateDescription> stateDescriptions = new Dictionary<String, StateDescription>();
-
-        /// <summary>
-        /// State descriptions of Shortcut. </summary>
-        [XmlIgnore]
-        public Dictionary<String, StateDescription> StateDescriptions
-        {
-            get
-            {
-                return stateDescriptions;
-            }
-        }
-
-        /// <summary>
-        /// A method notifies property changed event. </summary>
-        /// <param name="propertyName"> A property name.</param>
-        protected void OnPropertyChanged(string propertyName)
-        {
-            var handler = PropertyChanged;
-            if (handler != null)
-            {
-                handler(this, new PropertyChangedEventArgs(propertyName));
-            }
-        }
-
-        /// <summary>
-        /// A current state description of a Shortcut. </summary>
-        [XmlIgnore]
-        public StateDescription CurrentStateDescription
-        {
-            get;
-            set;
-        }
-
-        /// <summary>
-        /// A current state description of a Shortcut. </summary>
-        /// <param name="state"> A property name.</param>
-        /// <returns> A result of state transition</returns>
-        protected bool SetCurrentState(string state)
-        {
-            if (stateDescriptions.ContainsKey(state) == false)
-            {
-                DebuggingUtils.Err(state + " is doesn't exists!!!");
-                return false;
-            }
-
-            if (CurrentStateDescription != null &&
-                CurrentStateDescription == stateDescriptions[state])
-            {
-                return true;
-            }
-
-            CurrentStateDescription = stateDescriptions[state];
-            OnPropertyChanged("CurrentStateDescription");
-            return true;
-        }
-
-        /// <summary>
-        /// Initialize State of a shortcut.
-        /// </summary>
-        abstract public void UpdateState();
-
-        /// <summary>
-        /// A method executes a action.
-        /// After execution of the action, status will be changed if returned status is available. </summary>
-        /// <returns> A result of action invocation. </returns>
-        public bool DoAction()
-        {
-            if (CurrentStateDescription == null)
-            {
-                DebuggingUtils.Err("Current state is not set!!!");
-                return false;
-            }
-
-            String newState = CurrentStateDescription.Action.Execute();
-            if (newState == null)
-            {
-                DebuggingUtils.Err("Invalid State returned!!!");
-                return false;
-            }
-
-            return SetCurrentState(newState);
-        }
-    }
-}
diff --git a/LibTVRefCommonPortable/DataModels/StateDescription.cs b/LibTVRefCommonPortable/DataModels/StateDescription.cs
deleted file mode 100644 (file)
index b3766c5..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-namespace LibTVRefCommonPortable.DataModels
-{
-    /// <summary>
-    /// A class represents a state of a Shortcut.
-    /// </summary>
-    public class StateDescription
-    {
-        /// <summary>
-        /// Constructor.
-        /// </summary>
-        public StateDescription()
-        {
-            Label = "";
-            IconPath = "";
-        }
-
-        /// <summary>
-        /// A Shortcut label.
-        /// </summary>
-        public string Label
-        {
-            get;
-            set;
-        }
-
-        /// <summary>
-        /// A Shortcut icon path.
-        /// </summary>
-        public string IconPath
-        {
-            get;
-            set;
-        }
-
-        /// <summary>
-        /// A Action instance to be called when a Shortcut is pressed.
-        /// </summary>
-        public IAction Action
-        {
-            get;
-            set;
-        }
-
-    }
-}
diff --git a/LibTVRefCommonPortable/DataModels/WatcherType.cs b/LibTVRefCommonPortable/DataModels/WatcherType.cs
deleted file mode 100644 (file)
index 68ce9cc..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-namespace LibTVRefCommonPortable.DataModels
-{
-    /// <summary>
-    /// A File Watcher type enumeration.
-    /// </summary>
-    public enum WatcherType
-    {
-        /// <summary>
-        /// The creation of a file or folder.
-        /// </summary>
-        Created = 1,
-        /// <summary>
-        /// The deletion of a file or folder.
-        /// </summary>
-        Deleted = 2,
-        /// <summary>
-        /// The change of a file or folder. The types of changes include: changes to size,
-        /// attributes, security settings, last write, and last access time.
-        /// </summary>
-        Changed = 4,
-        /// <summary>
-        /// The renaming of a file or folder.
-        /// </summary>
-        Renamed = 8,
-        /// <summary>
-        /// The creation, deletion, change, or renaming of a file or folder.
-        /// </summary>
-        All = 15
-    }
-}
diff --git a/LibTVRefCommonPortable/LibTVRefCommonPortable.csproj b/LibTVRefCommonPortable/LibTVRefCommonPortable.csproj
deleted file mode 100755 (executable)
index a5a92f2..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
-  <PropertyGroup>
-    <MinimumVisualStudioVersion>10.0</MinimumVisualStudioVersion>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProjectGuid>{67F9D3A8-F71E-4428-913F-C37AE82CDB24}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>LibTVRefCommonPortable</RootNamespace>
-    <AssemblyName>LibTVRefCommonPortable</AssemblyName>
-    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
-    <TargetFrameworkProfile>Profile259</TargetFrameworkProfile>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <NuGetPackageImportStamp>
-    </NuGetPackageImportStamp>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <ItemGroup>
-    <Compile Include="DataModels\AppControlAction.cs" />
-    <Compile Include="DataModels\AppShortcutInfo.cs" />
-    <Compile Include="DataModels\CommandAction.cs" />
-    <Compile Include="DataModels\FileSystemEventCustomArgs.cs" />
-    <Compile Include="DataModels\HomeMenuAppShortcutInfo.cs" />
-    <Compile Include="DataModels\IAction.cs" />
-    <Compile Include="DataModels\MediaControlAction.cs" />
-    <Compile Include="DataModels\RecentShortcutInfo.cs" />
-    <Compile Include="DataModels\SettingShortcutInfo.cs" />
-    <Compile Include="DataModels\ShortcutInfo.cs" />
-    <Compile Include="DataModels\StateDescription.cs" />
-    <Compile Include="DataModels\WatcherType.cs" />
-    <Compile Include="Models\AppShortcutController.cs" />
-    <Compile Include="Models\ManagedApps.cs" />
-    <Compile Include="Models\RecentShortcutController.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="Stubs\ApplicationManagerAPITestStub.cs" />
-    <Compile Include="Stubs\FileSystemAPITestStub.cs" />
-    <Compile Include="Stubs\FileWatcherAPITestStub.cs" />
-    <Compile Include="Stubs\MediaContentAPITestStub.cs" />
-    <Compile Include="Utils\AppControlUtils.cs" />
-    <Compile Include="Utils\ApplicationManagerUtils.cs" />
-    <Compile Include="Utils\AppShortcutStorage.cs" />
-    <Compile Include="Utils\FileSystemUtils.cs" />
-    <Compile Include="Utils\IMediaContentAPIs.cs" />
-    <Compile Include="Utils\IStatePublisher.cs" />
-    <Compile Include="Utils\IStateSubscriber.cs" />
-    <Compile Include="Utils\ISystemSettings.cs" />
-    <Compile Include="Utils\MediaContentUtils.cs" />
-    <Compile Include="Utils\SizeUtils.cs" />
-    <Compile Include="Utils\DateUtils.cs" />
-    <Compile Include="Utils\DebuggingUtils.cs" />
-    <Compile Include="Utils\IAppControl.cs" />
-    <Compile Include="Utils\IApplicationManagerAPIs.cs" />
-    <Compile Include="Utils\IAppLifeControl.cs" />
-    <Compile Include="Utils\IWindowAPIs.cs" />
-    <Compile Include="Utils\IPlatformNotification.cs" />
-    <Compile Include="Utils\IDebuggingAPIs.cs" />
-    <Compile Include="Utils\IFileSystemAPIs.cs" />
-    <Compile Include="Utils\IFileSystemWatcherAPIs.cs" />
-    <Compile Include="Utils\IPackageManager.cs" />
-    <Compile Include="Utils\ITVHome.cs" />
-    <Compile Include="Utils\PackageManagerUtils.cs" />
-    <Compile Include="Utils\RecentShortcutStorage.cs" />
-    <Compile Include="Utils\TVHomeImpl.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <PackageReference Include="Tizen.Xamarin.Forms.Extension">
-      <Version>2.3.5-v00015</Version>
-    </PackageReference>
-    <PackageReference Include="Xamarin.Forms">
-      <Version>2.4.0-r266-001</Version>
-    </PackageReference>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="packages.config" />
-  </ItemGroup>
-  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" />
-  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
-  </Target>
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
-       Other similar extension points exist, see Microsoft.Common.targets.
-  <Target Name="BeforeBuild">
-  </Target>
-  <Target Name="AfterBuild">
-  </Target>
-  -->
-</Project>
\ No newline at end of file
diff --git a/LibTVRefCommonPortable/Models/AppShortcutController.cs b/LibTVRefCommonPortable/Models/AppShortcutController.cs
deleted file mode 100755 (executable)
index 7ec06fd..0000000
+++ /dev/null
@@ -1,353 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using System;
-using System.Collections.Generic;
-using LibTVRefCommonPortable.DataModels;
-using LibTVRefCommonPortable.Utils;
-using System.Threading.Tasks;
-
-namespace LibTVRefCommonPortable.Models
-{
-    /// <summary>
-    /// A class provides Application related information to ViewModel.
-    /// The TVHome shows the Pinned app list when the App Home Menu is pressed,
-    /// by invoking AppShortcutController's API to retrieve the pinned app list.
-    /// The TVApps shows the installed the Tizen UI apps in the main screen.
-    /// To provides the installed apps, the TVApps invokes an AppShortcutController's API.
-    /// </summary>
-    public class AppShortcutController
-    {
-        /// <summary>
-        /// A default app icon for no icon applications.
-        /// </summary>
-        private static String DefaultAppIcon = "AppIcon.png";
-
-        /// <summary>
-        /// A method provides installed app list.
-        /// The returned app list has only Tizen UI apps not the system app or no display apps.
-        /// </summary>
-        /// <returns>An installed app list.</returns>
-        public async Task<IEnumerable<AppShortcutInfo>> GetInstalledApps()
-        {
-            List<AppShortcutInfo> appShortcutInfoList = new List<AppShortcutInfo>();
-
-            var installedAppList = await ApplicationManagerUtils.Instance.GetAllInstalledApplication();
-
-            foreach (var item in installedAppList)
-            {
-                if (ManagedApps.IsNonPinnableApps(item.AppID))
-                {
-                    continue;
-                }
-
-                var defaultStateDescription = new StateDescription()
-                {
-                    Label = item.Applabel ?? "No Name",
-                    IconPath = item.IconPath ?? DefaultAppIcon,
-                    Action = new AppControlAction()
-                    {
-                        AppID = item.AppID,
-                    }
-                };
-
-                var appShortcutInfo = new AppShortcutInfo()
-                {
-                    IsRemovable = ApplicationManagerUtils.Instance.GetAppInfoRemovable(item.AppID),
-                    Installed = item.InstalledTime,
-                };
-
-                appShortcutInfo.StateDescriptions.Add("default", defaultStateDescription);
-                appShortcutInfo.CurrentStateDescription = defaultStateDescription;
-                appShortcutInfo.AppID = item.AppID;
-                appShortcutInfoList.Add(appShortcutInfo);
-            }
-
-            return appShortcutInfoList;
-        }
-
-        /// <summary>
-        /// A method appends an All Apps Shortcut and a MediaHub Shortcut at first in the given App Shortcut list.
-        /// Actually this method is used for making the Pinned App Shortcut panel of the TVHome
-        /// </summary>
-        /// <seealso cref="GetDefaultShortcuts"/>
-        /// <seealso cref="GetPinnedAppsWithDefaultShortcuts"/>
-        /// <param name="returnPinnedAppsInfo">An App Shortcut list contains the additional Shortcuts.</param>
-        private void AddAllAppsAndMediaHubShortcut(ref List<ShortcutInfo> returnPinnedAppsInfo)
-        {
-            var allAppsShortcutInfo = new AppShortcutInfo()
-            {
-                StateDescriptions =
-                {
-                    {
-                        "default",
-                        new StateDescription
-                        {
-                            Label = "All apps",
-                            IconPath = "ic_home_menu_apps_138.png",
-                            Action = new AppControlAction
-                            {
-                                AppID = ManagedApps.TVAppsAppID,
-                            }
-                        }
-                    },
-                    {
-                        "focused",
-                        new StateDescription
-                        {
-                            Label = "All apps",
-                            IconPath = "ic_home_menu_apps_182.png",
-                            Action = new AppControlAction
-                            {
-                                AppID = ManagedApps.TVAppsAppID,
-                            }
-                        }
-                    },
-                }
-            };
-
-            allAppsShortcutInfo.UpdateState();
-            returnPinnedAppsInfo.Insert(0, allAppsShortcutInfo);
-
-            var mediaHubShortcutInfo = new AppShortcutInfo()
-            {
-                StateDescriptions =
-                {
-                    {
-                        "default",
-                        new StateDescription
-                        {
-                            Label = "Media Hub",
-                            IconPath = "ic_launcher_mediahub_138.png",
-                            Action = new AppControlAction
-                            {
-                                AppID = ManagedApps.MediaHubAppID,
-                            }
-                        }
-                    },
-                    {
-                        "focused",
-                        new StateDescription
-                        {
-                            Label = "Media Hub",
-                            IconPath = "ic_launcher_mediahub_182.png",
-                            Action = new AppControlAction
-                            {
-                                AppID = ManagedApps.MediaHubAppID,
-                            }
-                        }
-                    },
-                }
-            };
-
-            mediaHubShortcutInfo.UpdateState();
-            returnPinnedAppsInfo.Insert(1, mediaHubShortcutInfo);
-        }
-
-        /// <summary>
-        /// A method appends an Add Pin Shortcut in the given App Shortcut list.
-        /// </summary>
-        /// <seealso cref="GetDefaultShortcuts"/>
-        /// <seealso cref="GetPinnedAppsWithDefaultShortcuts"/>
-        /// <param name="returnPinnedAppsInfo">An App Shortcut list contains the additional Shortcuts.</param>
-        private void AppendAddPinShortcut(ref List<ShortcutInfo> returnPinnedAppsInfo)
-        {
-            var addPinCommandAction = new CommandAction()
-            {
-                NextStateDescription = "default",
-                CommandParameter = "",
-            };
-
-            addPinCommandAction.Command += new EventHandler<string>((s, e) =>
-            {
-                AppControlUtils.SendAddAppRequestToApps();
-            });
-
-            var addPinShortcutInfo = new AppShortcutInfo()
-            {
-                StateDescriptions =
-                {
-                    {
-                        "default",
-                        new StateDescription
-                        {
-                            Label = "Add pin",
-                            IconPath = "ic_home_menu_addpin_138.png",
-                            Action = addPinCommandAction,
-                        }
-                    },
-                    {
-                        "focused",
-                        new StateDescription
-                        {
-                            Label = "Add pin",
-                            IconPath = "ic_home_menu_addpin_182.png",
-                            Action = addPinCommandAction,
-                        }
-                    },
-                }
-            };
-
-            addPinShortcutInfo.UpdateState();
-            returnPinnedAppsInfo.Add(addPinShortcutInfo);
-        }
-
-        /// <summary>
-        /// A method provides Pinned App Shortcut list by retrieving from the AppShortcutStorage.
-        /// This method provides only the Pinned App Shortcut list not including any additional Shortcuts
-        /// such as the All Apps, the Media Hub, and the Add Pin.
-        /// </summary>
-        /// <returns>A Pinned App Shortcut list.</returns>
-        private async Task<List<ShortcutInfo>> GetPinnedApps()
-        {
-            IEnumerable<AppShortcutInfo> pinned_apps_info = await AppShortcutStorage.Read();
-
-            List<ShortcutInfo> returnPinnedAppsInfo = new List<ShortcutInfo>();
-
-            int numberOfPinnedApp = 0;
-            foreach (AppShortcutInfo appShortcutInfo in pinned_apps_info)
-            {
-                if (numberOfPinnedApp >= 10)
-                {
-                    break;
-                }
-
-                if (appShortcutInfo.AppID == null ||
-                    appShortcutInfo.AppID.Length < 1)
-                {
-                    continue;
-                }
-
-                if (ManagedApps.IsNonPinnableApps(appShortcutInfo.AppID))
-                {
-                    continue;
-                }
-
-                InstalledApp appInfo = ApplicationManagerUtils.Instance.GetInstalledApplication(appShortcutInfo.AppID);
-                if (appInfo == null)
-                {
-                    continue;
-                }
-
-                string appLabel = appInfo.Applabel ?? "No Name";
-                string appIconPath = appInfo.IconPath ?? DefaultAppIcon;
-
-                var defaultStateDescription = new StateDescription()
-                {
-                    Label = appLabel,
-                    IconPath = appIconPath,
-                    Action = new AppControlAction
-                    {
-                        AppID = appShortcutInfo.AppID,
-                    }
-                };
-
-                appShortcutInfo.StateDescriptions.Add("default", defaultStateDescription);
-                appShortcutInfo.CurrentStateDescription = defaultStateDescription;
-                appShortcutInfo.IsPinned = true;
-                returnPinnedAppsInfo.Add(appShortcutInfo);
-
-                numberOfPinnedApp += 1;
-            }
-
-            return returnPinnedAppsInfo;
-        }
-
-        /// <summary>
-        /// A method provides an App Shortcut list which contains default App Shortcuts
-        /// such as the All Apps, the Media Hub, and the Add Pin.
-        /// </summary>
-        /// <returns>A default App Shortcut list.</returns>
-        public IEnumerable<ShortcutInfo> GetDefaultShortcuts()
-        {
-            List<ShortcutInfo> returnPinnedAppsInfo = new List<ShortcutInfo>();
-
-            AddAllAppsAndMediaHubShortcut(ref returnPinnedAppsInfo);
-            AppendAddPinShortcut(ref returnPinnedAppsInfo);
-
-            return returnPinnedAppsInfo;
-        }
-
-        /// <summary>
-        /// A method provides the App Shortcut list with the default App Shortcut icons.
-        /// The pinned apps, the All Apps, the MediaHub, and the Add Pin are included in the return App Shortcut list.
-        /// </summary>
-        /// <returns>App Shortcut list.</returns>
-        public async Task<IEnumerable<ShortcutInfo>> GetPinnedAppsWithDefaultShortcuts()
-        {
-            List<ShortcutInfo> returnPinnedAppsInfo = await GetPinnedApps();
-
-            AddAllAppsAndMediaHubShortcut(ref returnPinnedAppsInfo);
-            AppendAddPinShortcut(ref returnPinnedAppsInfo);
-
-            return returnPinnedAppsInfo;
-        }
-
-        /// <summary>
-        /// A method provides only pinned app's app ID as a hash table.
-        /// </summary>
-        /// <returns>A hash table includes pinned app's app ID.</returns>
-        public async Task<Dictionary<string, string>> GetPinnedAppsAppIDs()
-        {
-            IEnumerable<AppShortcutInfo> pinned_apps_info = await AppShortcutStorage.Read();
-            Dictionary<string, string> pinnedAppsDictionary = new Dictionary<string, string>();
-
-            int numberOfPinnedApp = 0;
-            foreach (AppShortcutInfo appShortcutInfo in pinned_apps_info)
-            {
-                if (numberOfPinnedApp >= 10)
-                {
-                    break;
-                }
-
-                if (ManagedApps.IsNonPinnableApps(appShortcutInfo.AppID))
-                {
-                    continue;
-                }
-
-                pinnedAppsDictionary.Add(appShortcutInfo.AppID, appShortcutInfo.AppID);
-                numberOfPinnedApp += 1;
-            }
-
-            return pinnedAppsDictionary;
-        }
-
-        /// <summary>
-        /// A method updates the pinned App list by using the AppShortcutStorage.
-        /// </summary>
-        /// <param name="pinnedAppsInfo">A pinned app list.</param>
-        public void UpdatePinnedApps(IEnumerable<AppShortcutInfo> pinnedAppsInfo)
-        {
-            AppShortcutStorage.Write(pinnedAppsInfo);
-        }
-
-        /// <summary>
-        /// A listener to get notification of the AppShortcutStorage.
-        /// </summary>
-        /// <param name="eventListener">A Event Handler for the nonfiction of AppShortutStorage.</param>
-        public void AddFileSystemChangedListener(EventHandler<EventArgs> eventListener)
-        {
-            if (AppShortcutStorage.Instance != null)
-            {
-                AppShortcutStorage.Instance.AddStorageChangedListener(eventListener);
-            }
-            else
-            {
-                DebuggingUtils.Err("AppShortcutStorage Instance is NULL");
-            }
-        }
-    }
-}
diff --git a/LibTVRefCommonPortable/Models/ManagedApps.cs b/LibTVRefCommonPortable/Models/ManagedApps.cs
deleted file mode 100644 (file)
index b6b00b1..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace LibTVRefCommonPortable.Models
-{
-    /// <summary>
-    /// A class has some apps have to managed in the TVHome, TVApps by platform policy reason.
-    /// </summary>
-    public class ManagedApps
-    {
-        /// <summary>
-        /// The app ID of TV reference home application
-        /// </summary>
-        public static string TVHomeAppID
-        {
-            get
-            {
-                return "org.tizen.xahome";
-            }
-        }
-
-        /// <summary>
-        /// The app ID of TV reference apps-tray application
-        /// </summary>
-        public static string TVAppsAppID
-        {
-            get
-            {
-                return "org.tizen.xaapps";
-            }
-        }
-
-        /// <summary>
-        /// The app ID of TV reference apps-tray application
-        /// </summary>
-        public static string MediaHubAppID
-        {
-            get
-            {
-                return "org.tizen.xamediahub";
-            }
-        }
-
-        /// <summary>
-        /// The Settings App ID
-        /// </summary>
-        public static string SettingsAppID
-        {
-            get
-            {
-                return "org.tizen.settings";
-            }
-        }
-
-        /// <summary>
-        /// Checks application isn't pinnable
-        /// </summary>
-        /// <param name="appID">Application id for checking</param>
-        /// <returns>If the application isn't pinnable return 'true'</returns>
-        public static bool IsNonPinnableApps(string appID)
-        {
-            if (appID == null)
-            {
-                return true;
-            }
-
-            if (appID.CompareTo(TVHomeAppID) == 0 ||
-                  appID.CompareTo(TVAppsAppID) == 0 ||
-                  appID.CompareTo(MediaHubAppID) == 0 ||
-                  appID.CompareTo(SettingsAppID) == 0)
-            {
-                return true;
-            }
-
-            return false;
-        }
-
-        /// <summary>
-        /// Checks application have to be hidden at recently used application
-        /// </summary>
-        /// <param name="appID">Application id for checking</param>
-        /// <returns>If the application have to be hidden, return 'true'</returns>
-        public static bool IsHiddenRecentApp(string appID)
-        {
-            if (appID == null)
-            {
-                return true;
-            }
-
-            if (appID.CompareTo(TVHomeAppID) == 0 ||
-                  appID.CompareTo(TVAppsAppID) == 0 ||
-                  appID.CompareTo(MediaHubAppID) == 0 ||
-                  appID.CompareTo(SettingsAppID) == 0)
-            {
-                return true;
-            }
-
-            return false;
-        }
-    }
-}
diff --git a/LibTVRefCommonPortable/Models/RecentShortcutController.cs b/LibTVRefCommonPortable/Models/RecentShortcutController.cs
deleted file mode 100755 (executable)
index 4fa5a06..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using System.Collections.Generic;
-using LibTVRefCommonPortable.DataModels;
-using LibTVRefCommonPortable.Utils;
-
-
-namespace LibTVRefCommonPortable.Models
-{
-    /// <summary>
-    /// A class provides Recent Shortcut information to the ViewModel
-    /// The Recent Shortcut can be an app which is recently used and
-    /// a content which is recently consumed in the TV.
-    /// </summary>
-    public class RecentShortcutController
-    {
-        /// <summary>
-        /// A method removes a Recent Shortcut.
-        /// </summary>
-        /// <param name="appId">a Recent Shortcut's appId to be removed.</param>
-        public void Remove(string appId)
-        {
-            RecentShortcutStorage.Delete(appId);
-        }
-
-        /// <summary>
-        /// A method removes all Recent Shortcuts.
-        /// </summary>
-        public void RemoveAll()
-        {
-            RecentShortcutStorage.DeleteAll();
-        }
-
-        /// <summary>
-        /// A method provides a Recent Shortcut list.
-        /// </summary>
-        /// <returns>A Recent Shortcut list.</returns>
-        public IEnumerable<RecentShortcutInfo> GetList()
-        {
-            return RecentShortcutStorage.Read();
-        }
-    }
-}
diff --git a/LibTVRefCommonPortable/Properties/AssemblyInfo.cs b/LibTVRefCommonPortable/Properties/AssemblyInfo.cs
deleted file mode 100644 (file)
index b75f38f..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-using System.Resources;
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("LibTVRefCommonPortable")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("LibTVRefCommonPortable")]
-[assembly: AssemblyCopyright("Copyright ©  2014")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-[assembly: NeutralResourcesLanguage("en")]
-
-// Version information for an assembly consists of the following four values:
-//
-//      Major Version
-//      Minor Version
-//      Build Number
-//      Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/LibTVRefCommonPortable/Settings.StyleCop b/LibTVRefCommonPortable/Settings.StyleCop
deleted file mode 100644 (file)
index 837530c..0000000
+++ /dev/null
@@ -1,722 +0,0 @@
-<StyleCopSettings Version="105">
-  <GlobalSettings>
-    <StringProperty Name="MergeSettingsFiles">NoMerge</StringProperty>
-  </GlobalSettings>
-  <Analyzers>
-    <Analyzer AnalyzerId="StyleCop.CSharp.DocumentationRules">
-      <Rules>
-        <Rule Name="ElementsMustBeDocumented">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementDocumentationMustHaveSummaryText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="EnumerationItemsMustBeDocumented">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DocumentationMustContainValidXml">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementDocumentationMustHaveSummary">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="PartialElementDocumentationMustHaveSummary">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementDocumentationMustNotHaveDefaultSummary">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="VoidReturnValueMustNotBeDocumented">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="GenericTypeParametersMustBeDocumented">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="GenericTypeParametersMustBeDocumentedPartialClass">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="GenericTypeParameterDocumentationMustMatchTypeParameters">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="GenericTypeParameterDocumentationMustDeclareParameterName">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="GenericTypeParameterDocumentationMustHaveText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="PropertySummaryDocumentationMustMatchAccessors">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="PropertySummaryDocumentationMustOmitSetAccessorWithRestrictedAccess">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementDocumentationMustNotBeCopiedAndPasted">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="SingleLineCommentsMustNotUseDocumentationStyleSlashes">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DocumentationTextMustNotBeEmpty">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DocumentationTextMustContainWhitespace">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DocumentationMustMeetCharacterPercentage">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ConstructorSummaryDocumentationMustBeginWithStandardText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DestructorSummaryDocumentationMustBeginWithStandardText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DocumentationHeadersMustNotContainBlankLines">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="IncludedDocumentationXPathDoesNotExist">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="IncludeNodeDoesNotContainValidFileAndPath">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="InheritDocMustBeUsedWithInheritingClass">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementDocumentationMustBeSpelledCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileMustHaveHeader">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileHeaderMustShowCopyright">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileHeaderMustHaveCopyrightText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileHeaderMustContainFileName">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileHeaderFileNameDocumentationMustMatchFileName">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileHeaderMustHaveValidCompanyText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileHeaderFileNameDocumentationMustMatchTypeName">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-      </Rules>
-      <AnalyzerSettings />
-    </Analyzer>
-    <Analyzer AnalyzerId="StyleCop.CSharp.NamingRules">
-      <Rules>
-        <Rule Name="ConstFieldNamesMustBeginWithUpperCaseLetter">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FieldNamesMustBeginWithLowerCaseLetter">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FieldNamesMustNotContainUnderscore">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementMustBeginWithLowerCaseLetter">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="NonPrivateReadonlyFieldsMustBeginWithUpperCaseLetter">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FieldNamesMustNotUseHungarianNotation">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="AccessibleFieldsMustBeginWithUpperCaseLetter">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="VariableNamesMustNotBePrefixed">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FieldNamesMustNotBeginWithUnderscore">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="StaticReadonlyFieldsMustBeginWithUpperCaseLetter">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-      </Rules>
-      <AnalyzerSettings />
-    </Analyzer>
-    <Analyzer AnalyzerId="StyleCop.CSharp.LayoutRules">
-      <Rules>
-        <Rule Name="AllAccessorsMustBeMultiLineOrSingleLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="OpeningCurlyBracketsMustNotBeFollowedByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementDocumentationHeadersMustNotBeFollowedByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="CodeMustNotContainMultipleBlankLinesInARow">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ClosingCurlyBracketsMustNotBePrecededByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="OpeningCurlyBracketsMustNotBePrecededByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ChainedStatementBlocksMustNotBePrecededByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="WhileDoFooterMustNotBePrecededByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="SingleLineCommentsMustNotBeFollowedByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementDocumentationHeaderMustBePrecededByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="SingleLineCommentMustBePrecededByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementsMustBeSeparatedByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="CodeMustNotContainBlankLinesAtStartOfFile">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="CodeMustNotContainBlankLinesAtEndOfFile">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-      </Rules>
-      <AnalyzerSettings />
-    </Analyzer>
-    <Analyzer AnalyzerId="StyleCop.CSharp.MaintainabilityRules">
-      <Rules>
-        <Rule Name="AccessModifierMustBeDeclared">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FieldsMustBePrivate">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="CodeAnalysisSuppressionMustHaveJustification">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DebugAssertMustProvideMessageText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DebugFailMustProvideMessageText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileMayOnlyContainASingleClass">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileMayOnlyContainASingleNamespace">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="StatementMustNotUseUnnecessaryParenthesis">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ArithmeticExpressionsMustDeclarePrecedence">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ConditionalExpressionsMustDeclarePrecedence">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="RemoveDelegateParenthesisWhenPossible">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="AttributeConstructorMustNotUseUnnecessaryParenthesis">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="RemoveUnnecessaryCode">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-      </Rules>
-      <AnalyzerSettings />
-    </Analyzer>
-    <Analyzer AnalyzerId="StyleCop.CSharp.OrderingRules">
-      <Rules>
-        <Rule Name="UsingDirectivesMustBePlacedWithinNamespace">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementsMustAppearInTheCorrectOrder">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementsMustBeOrderedByAccess">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ConstantsMustAppearBeforeFields">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="StaticElementsMustAppearBeforeInstanceElements">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DeclarationKeywordsMustFollowOrder">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ProtectedMustComeBeforeInternal">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="PropertyAccessorsMustFollowOrder">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="EventAccessorsMustFollowOrder">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="StaticReadonlyElementsMustAppearBeforeStaticNonReadonlyElements">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="InstanceReadonlyElementsMustAppearBeforeInstanceNonReadonlyElements">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="NoValueFirstComparison">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="SystemUsingDirectivesMustBePlacedBeforeOtherUsingDirectives">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="UsingAliasDirectivesMustBePlacedAfterOtherUsingDirectives">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="UsingDirectivesMustBeOrderedAlphabeticallyByNamespace">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="UsingAliasDirectivesMustBeOrderedAlphabeticallyByAliasName">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="UsingStaticDirectivesMustBePlacedAfterUsingNamespaceDirectives">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-      </Rules>
-      <AnalyzerSettings />
-    </Analyzer>
-    <Analyzer AnalyzerId="StyleCop.CSharp.ReadabilityRules">
-      <Rules>
-        <Rule Name="CommentsMustContainText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DoNotPrefixCallsWithBaseUnlessLocalImplementationExists">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="PrefixLocalCallsWithThis">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="PrefixCallsCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="OpeningParenthesisMustBeOnDeclarationLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ClosingParenthesisMustBeOnLineOfLastParameter">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ClosingParenthesisMustBeOnLineOfOpeningParenthesis">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="CommaMustBeOnSameLineAsPreviousParameter">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ParameterListMustFollowDeclaration">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ParameterMustFollowComma">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="SplitParametersMustStartOnLineAfterDeclaration">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ParametersMustBeOnSameLineOrSeparateLines">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ParameterMustNotSpanMultipleLines">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="QueryClauseMustFollowPreviousClause">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="QueryClausesMustBeOnSeparateLinesOrAllOnOneLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="QueryClauseMustBeginOnNewLineWhenPreviousClauseSpansMultipleLines">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="QueryClausesSpanningMultipleLinesMustBeginOnOwnLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DoNotPlaceRegionsWithinElements">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="CodeMustNotContainEmptyStatements">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="CodeMustNotContainMultipleStatementsOnOneLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="BlockStatementsMustNotContainEmbeddedComments">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="BlockStatementsMustNotContainEmbeddedRegions">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="UseStringEmptyForEmptyStrings">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="UseBuiltInTypeAlias">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="UseShorthandForNullableTypes">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-      </Rules>
-      <AnalyzerSettings />
-    </Analyzer>
-    <Analyzer AnalyzerId="StyleCop.CSharp.SpacingRules">
-      <Rules>
-        <Rule Name="CommasMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="SemicolonsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DocumentationLinesMustBeginWithSingleSpace">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="SingleLineCommentsMustBeginWithSingleSpace">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="PreprocessorKeywordsMustNotBePrecededBySpace">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="OperatorKeywordMustBeFollowedBySpace">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="OpeningCurlyBracketsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ClosingCurlyBracketsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="OpeningGenericBracketsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ClosingGenericBracketsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="OpeningAttributeBracketsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ClosingAttributeBracketsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="NullableTypeSymbolsMustNotBePrecededBySpace">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="MemberAccessSymbolsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="IncrementDecrementSymbolsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="NegativeSignsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="PositiveSignsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DereferenceAndAccessOfSymbolsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ColonsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="CodeMustNotContainMultipleWhitespaceInARow">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="CodeMustNotContainSpaceAfterNewKeywordInImplicitlyTypedArrayAllocation">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="TabsMustNotBeUsed">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DoNotSplitNullConditionalOperators">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-      </Rules>
-      <AnalyzerSettings />
-    </Analyzer>
-  </Analyzers>
-</StyleCopSettings>
\ No newline at end of file
diff --git a/LibTVRefCommonPortable/Stubs/ApplicationManagerAPITestStub.cs b/LibTVRefCommonPortable/Stubs/ApplicationManagerAPITestStub.cs
deleted file mode 100644 (file)
index 082dc66..0000000
+++ /dev/null
@@ -1,250 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using LibTVRefCommonPortable.Utils;
-using System;
-using System.Collections.Generic;
-using System.Threading.Tasks;
-
-namespace LibTVRefCommonPortable.Stubs
-{
-    /// <summary>
-    /// A unit testing stub of IApplicationManagerAPIs.
-    /// </summary>
-    public class ApplicationManagerAPITestStub : IApplicationManagerAPIs
-    {
-        /// <summary>
-        /// A method for removing all recent applications
-        /// </summary>
-        public void DeleteAllRecentApplication()
-        {
-            throw new NotImplementedException();
-        }
-
-        /// <summary>
-        /// A method for removing the specified recent application
-        /// </summary>
-        /// <param name="appId">An application ID</param>
-        public void DeleteRecentApplication(string appId)
-        {
-            throw new NotImplementedException();
-        }
-
-        /// <summary>
-        /// A method provides installed application list.
-        /// </summary>
-        /// <returns>An installed application list</returns>
-        public Task<IEnumerable<InstalledApp>> GetAllInstalledApplication()
-        {
-            return Task.Run(() =>
-            {
-                List<InstalledApp> installedApps = new List<InstalledApp>();
-
-                installedApps.Add(new InstalledApp
-                {
-                    Applabel = "app1",
-                    AppID = "app1",
-                    IconPath = "path/app1",
-                    InstalledTime = new DateTime(2017, 05, 02),
-                });
-
-                installedApps.Add(new InstalledApp
-                {
-                    Applabel = "app2.removable",
-                    AppID = "app2.removable",
-                    IconPath = "path/app2",
-                    InstalledTime = new DateTime(2017, 05, 02),
-                });
-
-                installedApps.Add(new InstalledApp
-                {
-                    Applabel = "invalid.app3.noid",
-                    IconPath = "path/app3",
-                    InstalledTime = new DateTime(2017, 05, 02),
-                });
-
-                installedApps.Add(new InstalledApp
-                {
-                    Applabel = "app4.noicon",
-                    AppID = "app4.noicon",
-                    InstalledTime = new DateTime(2017, 05, 02),
-                });
-
-                installedApps.Add(new InstalledApp
-                {
-                    Applabel = "app5.nolabel",
-                    AppID = "app5.nolabel",
-                    IconPath = "path/app5",
-                    InstalledTime = new DateTime(2017, 05, 02),
-                });
-
-                installedApps.Add(new InstalledApp
-                {
-                    Applabel = "invalid.org.tizen.xahome",
-                    AppID = "org.tizen.xahome",
-                    IconPath = "path/app3",
-                    InstalledTime = new DateTime(2017, 05, 02),
-                });
-
-                installedApps.Add(new InstalledApp
-                {
-                    Applabel = "invalid.org.tizen.xaapps",
-                    AppID = "org.tizen.xaapps",
-                    IconPath = "path/app4",
-                    InstalledTime = new DateTime(2017, 05, 02),
-                });
-
-                installedApps.Add(new InstalledApp
-                {
-                    Applabel = "invalid.org.tizen.xamediahub",
-                    AppID = "org.tizen.xamediahub",
-                    IconPath = "path/app5",
-                    InstalledTime = new DateTime(2017, 05, 02),
-                });
-
-                installedApps.Add(new InstalledApp
-                {
-                    Applabel = "invalid.org.tizen.settings",
-                    AppID = "org.tizen.settings",
-                    IconPath = "path/app6",
-                    InstalledTime = new DateTime(2017, 05, 02),
-                });
-
-                return (IEnumerable<InstalledApp>)installedApps;
-            });
-        }
-
-        /// <summary>
-        /// Gets the app ID by the app label
-        /// </summary>
-        /// <param name="appLabel">the app label to get</param>
-        /// <returns>the app ID of the app label</returns>
-        public Task<string> GetAppIDbyAppLabel(string appLabel)
-        {
-            throw new NotImplementedException();
-        }
-
-        /// <summary>
-        /// Checks whether application is removable
-        /// </summary>
-        /// <param name="appID">The app ID to get</param>
-        /// <returns>If the application is removable, true; otherwise, false</returns>
-        public bool GetAppInfoRemovable(string appID)
-        {
-            return appID.Contains("removable");
-        }
-
-        /// <summary>
-        /// A method provides application information which is matched with the given app ID.
-        /// </summary>
-        /// <param name="applicationId">An application ID</param>
-        /// <returns>An installed application information</returns>
-        public InstalledApp GetInstalledApplication(string applicationId)
-        {
-            return new InstalledApp
-            {
-                AppID = applicationId,
-                Applabel = applicationId,
-                IconPath = "path/" + applicationId,
-                InstalledTime = DateUtils.GetRandomDate(),
-            };
-        }
-
-        /// <summary>
-        /// A method provides a recent application list.
-        /// </summary>
-        /// <returns>A Recent application list.</returns>
-        public IEnumerable<RecentApp> GetRecentApplications()
-        {
-            IList<RecentApp> testData = new List<RecentApp>();
-
-            testData.Add(new RecentApp
-            {
-                InstanceID = "recentapp1",
-                InstanceLabel = "recentapp1",
-                AppID = "org.tizen.recentapp1",
-                Applabel = "recentapp1",
-                IconPath = "/test/recentapp1",
-                LaunchedTime = new DateTime(2014, 11, 12),
-                Uri = "uri/recentapp1",
-                ScreenShot = "screenshot/recentapp1",
-            });
-            testData.Add(new RecentApp
-            {
-                InstanceID = "recentapp2.noscreenshot",
-                InstanceLabel = "recentapp2.noscreenshot",
-                AppID = "org.tizen.recentapp2.noscreenshot",
-                Applabel = "recentapp2.noscreenshot",
-                IconPath = "/test/recentapp2",
-                LaunchedTime = new DateTime(2014, 11, 12),
-                Uri = "uri/recentapp2",
-            });
-            testData.Add(new RecentApp
-            {
-                InstanceID = "invalid.recentapp3.nolabel",
-                AppID = "invalid.org.tizen.recentapp3.nolabel",
-                IconPath = "/test/recentapp3",
-                LaunchedTime = new DateTime(2014, 11, 12),
-                Uri = "uri/recentapp3",
-                ScreenShot = "screenshot/recentapp3",
-            });
-            testData.Add(new RecentApp
-            {
-                InstanceID = "invalid.recentapp4.notime",
-                AppID = "invalid.org.tizen.recentapp4.notime",
-                Applabel = "recentapp4.notime",
-                IconPath = "/test/recentapp4",
-                Uri = "uri/recentapp4",
-                ScreenShot = "screenshot/recentapp4",
-            });
-            testData.Add(new RecentApp
-            {
-                InstanceID = "recentapp5",
-                InstanceLabel = "recentapp5",
-                AppID = "org.tizen.recentapp5",
-                Applabel = "recentapp5",
-                IconPath = "/test/recentapp5",
-                LaunchedTime = new DateTime(2017, 05, 02),
-                Uri = "uri/recentapp5",
-                ScreenShot = "screenshot/recentapp5",
-            });
-            testData.Add(new RecentApp
-            {
-                InstanceID = "recentapp6",
-                InstanceLabel = "recentapp6",
-                AppID = "org.tizen.recentapp6",
-                Applabel = "recentapp6",
-                IconPath = "/test/recentapp6",
-                LaunchedTime = new DateTime(2017, 02, 26),
-                Uri = "uri/recentapp6",
-                ScreenShot = "screenshot/recentapp6",
-            });
-            testData.Add(new RecentApp
-            {
-                InstanceID = "recentapp7",
-                InstanceLabel = "recentapp7",
-                AppID = "org.tizen.recentapp7",
-                Applabel = "recentapp7",
-                IconPath = "/test/recentapp7",
-                LaunchedTime = new DateTime(2016, 04, 25),
-                Uri = "uri/recentapp7",
-                ScreenShot = "screenshot/recentapp7",
-            });
-
-            return testData;
-        }
-    }
-}
diff --git a/LibTVRefCommonPortable/Stubs/FileSystemAPITestStub.cs b/LibTVRefCommonPortable/Stubs/FileSystemAPITestStub.cs
deleted file mode 100644 (file)
index bc3955e..0000000
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using LibTVRefCommonPortable.Utils;
-using System;
-using System.IO;
-using System.Text;
-
-namespace LibTVRefCommonPortable.Stubs
-{
-    /// <summary>
-    /// A unit test stub for FileSystemUtils
-    /// </summary>
-    public class FileSystemAPITestStub : IFileSystemAPIs
-    {
-        /// <summary>
-        /// A directory path which should be used for app data storing.
-        /// </summary>
-        public string AppDataStorage
-        {
-            get
-            {
-                return "test_app_data_path/";
-            }
-        }
-
-        /// <summary>
-        /// A directory path which should be used for app resource storing.
-        /// </summary>
-        public string AppResourceStorage
-        {
-            get
-            {
-                return "test_app_resource_path/";
-            }
-        }
-
-        /// <summary>
-        /// A directory path which should be used for sharing between apps.
-        /// </summary>
-        public string PlatformShareStorage
-        {
-            get
-            {
-                return "test_platform_share_path/";
-            }
-        }
-
-        /// <summary>
-        /// A method closes the file.
-        /// </summary>
-        /// <param name="stream">A file descriptor</param>
-        public void CloseFile(Stream stream)
-        {
-        }
-
-        /// <summary>
-        /// A method flushing the stream to write remains.
-        /// </summary>
-        /// <param name="stream">A file descriptor</param>
-        public void Flush(Stream stream)
-        {
-        }
-
-        /// <summary>
-        /// A method checks if a file existence in the file system.
-        /// </summary>
-        /// <param name="filePath">A file path</param>
-        /// <returns>An existence of the file</returns>
-        public bool IsFileExist(string filePath)
-        {
-            return true;
-        }
-
-        /// <summary>
-        /// A method checks if file is read to use.
-        /// </summary>
-        /// <param name="filePath">A file path</param>
-        /// <returns>A status of ready</returns>
-        public bool IsFileReady(string filePath)
-        {
-            return true;
-        }
-
-        /// <summary>
-        /// A method opens a file on the given mode.
-        /// </summary>
-        /// <param name="filePath">A file path</param>
-        /// <param name="mode">An opening mode</param>
-        /// <returns>A file descriptor</returns>
-        public Stream OpenFile(string filePath, UtilFileMode mode)
-        {
-            if (mode != UtilFileMode.Open)
-            {
-                throw new NotImplementedException();
-            }
-
-            if (filePath.Contains("pinned_apps_info"))
-            {
-                StringBuilder pinnedApps = new StringBuilder();
-
-                pinnedApps.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
-                pinnedApps.Append("<ArrayOfAppShortcutInfo");
-                pinnedApps.Append(" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"");
-                pinnedApps.Append(" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">");
-                pinnedApps.Append("  <AppShortcutInfo>");
-                pinnedApps.Append("    <AppID>org.tizen.xahome</AppID>");
-                pinnedApps.Append("  </AppShortcutInfo>");
-                pinnedApps.Append("  <AppShortcutInfo>");
-                pinnedApps.Append("    <AppID>org.tizen.xaapps</AppID>");
-                pinnedApps.Append("  </AppShortcutInfo>");
-                pinnedApps.Append("  <AppShortcutInfo>");
-                pinnedApps.Append("    <AppID>org.tizen.xamediahub</AppID>");
-                pinnedApps.Append("  </AppShortcutInfo>");
-                pinnedApps.Append("  <AppShortcutInfo>");
-                pinnedApps.Append("    <AppID>org.tizen.settings</AppID>");
-                pinnedApps.Append("  </AppShortcutInfo>");
-                pinnedApps.Append("  <AppShortcutInfo>");
-                pinnedApps.Append("    <AppID>org.tizen.example.TocToc.Tizen</AppID>");
-                pinnedApps.Append("  </AppShortcutInfo>");
-                pinnedApps.Append("  <AppShortcutInfo>");
-                pinnedApps.Append("    <AppID>org.tizen.example.YouTube.Tizen</AppID>");
-                pinnedApps.Append("  </AppShortcutInfo>");
-                pinnedApps.Append("  <AppShortcutInfo>");
-                pinnedApps.Append("    <AppID>org.tizen.example.Toda.Tizen</AppID>");
-                pinnedApps.Append("  </AppShortcutInfo>");
-                pinnedApps.Append("  <AppShortcutInfo>");
-                pinnedApps.Append("    <AppID>org.tizen.example.Butterfly4.Tizen</AppID>");
-                pinnedApps.Append("  </AppShortcutInfo>");
-                pinnedApps.Append("  <AppShortcutInfo>");
-                pinnedApps.Append("    <AppID>org.tizen.example.Butterfly5.Tizen</AppID>");
-                pinnedApps.Append("  </AppShortcutInfo>");
-                pinnedApps.Append("  <AppShortcutInfo>");
-                pinnedApps.Append("    <AppID>org.tizen.example.Butterfly6.Tizen</AppID>");
-                pinnedApps.Append("  </AppShortcutInfo>");
-                pinnedApps.Append("  <AppShortcutInfo>");
-                pinnedApps.Append("    <AppID>org.tizen.example.Butterfly7.Tizen</AppID>");
-                pinnedApps.Append("  </AppShortcutInfo>");
-                pinnedApps.Append("  <AppShortcutInfo>");
-                pinnedApps.Append("    <AppID>org.tizen.example.Butterfly8.Tizen</AppID>");
-                pinnedApps.Append("  </AppShortcutInfo>");
-                pinnedApps.Append("  <AppShortcutInfo>");
-                pinnedApps.Append("    <AppID>org.tizen.example.Butterfly9.Tizen</AppID>");
-                pinnedApps.Append("  </AppShortcutInfo>");
-                pinnedApps.Append("  <AppShortcutInfo>");
-                pinnedApps.Append("    <AppID>org.tizen.example.Butterfly10.Tizen</AppID>");
-                pinnedApps.Append("  </AppShortcutInfo>");
-                pinnedApps.Append("  <AppShortcutInfo>");
-                pinnedApps.Append("    <AppID>org.tizen.example.Butterfly11.Tizen</AppID>");
-                pinnedApps.Append("  </AppShortcutInfo>");
-                pinnedApps.Append("  <AppShortcutInfo>");
-                pinnedApps.Append("    <AppID></AppID>");
-                pinnedApps.Append("  </AppShortcutInfo>");
-                pinnedApps.Append("</ArrayOfAppShortcutInfo>");
-
-                MemoryStream stream = new MemoryStream();
-                StreamWriter writer = new StreamWriter(stream);
-                writer.Write(pinnedApps.ToString());
-                writer.Flush();
-                stream.Position = 0;
-                return stream;
-            }
-
-            throw new NotImplementedException();
-        }
-    }
-}
diff --git a/LibTVRefCommonPortable/Stubs/FileWatcherAPITestStub.cs b/LibTVRefCommonPortable/Stubs/FileWatcherAPITestStub.cs
deleted file mode 100644 (file)
index 24709b5..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using LibTVRefCommonPortable.Utils;
-using System;
-
-namespace LibTVRefCommonPortable.Stubs
-{
-    /// <summary>
-    /// A unit test stub for FileSystemUtils
-    /// </summary>
-    public class FileWatcherAPITestStub : IFileSystemWatcherAPIs
-    {
-        /// <summary>
-        /// A EventHandler for the file system watcher.
-        /// </summary>
-        public event EventHandler<EventArgs> CustomChanged;
-
-        /// <summary>
-        /// A method starts the file system watcher.
-        /// </summary>
-        /// <param name="path">Target file path</param>
-        /// <param name="fileName">Target file name</param>
-        public void Run(String path, String fileName)
-        {
-            CustomChanged?.Invoke(this, EventArgs.Empty);
-
-        }
-    }
-}
diff --git a/LibTVRefCommonPortable/Stubs/MediaContentAPITestStub.cs b/LibTVRefCommonPortable/Stubs/MediaContentAPITestStub.cs
deleted file mode 100644 (file)
index 2eeefb9..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using LibTVRefCommonPortable.Utils;
-using System;
-using System.Collections.Generic;
-
-namespace LibTVRefCommonPortable.Stubs
-{
-    /// <summary>
-    /// A unit testing stub for MediaContentUtils
-    /// </summary>
-    public class MediaContentAPITestStub : IMediaContentAPIs
-    {
-        /// <summary>
-        /// A method for getting recently played media content list
-        /// </summary>
-        /// <param name="limitation">Maximum count of list</param>
-        /// <returns>The recently played media content list</returns>
-        public IEnumerable<RecentlyPlayedMedia> GetRecentlyPlayedMedia(int limitation)
-        {
-            IList<RecentlyPlayedMedia> recentlyPlayed = new List<RecentlyPlayedMedia>();
-
-            recentlyPlayed.Add(new RecentlyPlayedMedia
-            {
-                MediaId = "id/recent_media1",
-                ThumbnailPath = "thumbnail/recent_media1",
-                FilePath = "filepath/recent_media1",
-                DisplayName = "recent_media1",
-                PlayedAt = new DateTime(2017, 05, 22),
-            });
-
-            recentlyPlayed.Add(new RecentlyPlayedMedia
-            {
-                MediaId = "invalid.recent_media2.nofilepath",
-                ThumbnailPath = "invalid.recent_media2.nofilepath",
-                DisplayName = "invalid.recent_media2.nofilepath",
-                PlayedAt = new DateTime(2017, 2, 26),
-            });
-
-            recentlyPlayed.Add(new RecentlyPlayedMedia
-            {
-                MediaId = "id/recent_media3.nothumbnail",
-                FilePath = "filepath/recent_media3.nothumbnail",
-                DisplayName = "recent_media3.nothumbnail",
-                PlayedAt = new DateTime(2016, 4, 25),
-            });
-
-            recentlyPlayed.Add(new RecentlyPlayedMedia
-            {
-                MediaId = "id/recent_media4",
-                ThumbnailPath = "thumbnail/recent_media4",
-                FilePath = "filepath/recent_media4",
-                DisplayName = "recent_media4",
-                PlayedAt = new DateTime(2015, 12, 7),
-            });
-
-            recentlyPlayed.Add(new RecentlyPlayedMedia
-            {
-                MediaId = "id/recent_media5",
-                ThumbnailPath = "thumbnail/recent_media5",
-                FilePath = "filepath/recent_media5",
-                DisplayName = "recent_media5",
-                PlayedAt = new DateTime(2015, 10, 1),
-            });
-
-            recentlyPlayed.Add(new RecentlyPlayedMedia
-            {
-                MediaId = "id/recent_media6",
-                ThumbnailPath = "thumbnail/recent_media6",
-                FilePath = "filepath/recent_media6",
-                DisplayName = "recent_media6",
-                PlayedAt = new DateTime(2015, 3, 3),
-            });
-
-            recentlyPlayed.Add(new RecentlyPlayedMedia
-            {
-                MediaId = "id/recent_media7",
-                ThumbnailPath = "thumbnail/recent_media7",
-                FilePath = "filepath/recent_media7",
-                DisplayName = "recent_media8",
-                PlayedAt = new DateTime(2014, 11, 17),
-            });
-
-            return recentlyPlayed;
-        }
-    }
-}
diff --git a/LibTVRefCommonPortable/Utils/AppControlUtils.cs b/LibTVRefCommonPortable/Utils/AppControlUtils.cs
deleted file mode 100644 (file)
index 64a8832..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using System.Collections.Generic;
-using Xamarin.Forms;
-
-namespace LibTVRefCommonPortable.Utils
-{
-    /// <summary>
-    /// A class provides App Control utility APIs.
-    /// </summary>
-    public sealed class AppControlUtils
-    {
-        /// <summary>
-        /// A method makes the app to be launched.
-        /// </summary>
-        /// <param name="appID">An application ID of the targeted application.</param>
-        /// <param name="extraData">An extra data for App Control invoking.</param>
-        /// <param name="fileUri">A file Uri to be opened.</param>
-        public static void SendLaunchRequest(string appID, IDictionary<string, string> extraData = null, string fileUri = null)
-        {
-            if (DependencyService.Get<IAppControl>() == null)
-            {
-                return;
-            }
-
-            DependencyService.Get<IAppControl>().SendLaunchRequest(appID, extraData, fileUri);
-        }
-
-        /// <summary>
-        /// A method sends a add pin request App Control to TVApps app.
-        /// </summary>
-        public static void SendAddAppRequestToApps()
-        {
-            if (DependencyService.Get<IAppControl>() == null)
-            {
-                return;
-            }
-
-            DependencyService.Get<IAppControl>().SendAddAppRequestToApps();
-        }
-
-        /// <summary>
-        /// A method sends a pin added notification App control to TVHome app.
-        /// </summary>
-        /// <param name="addedAddID">An app ID of newly added.</param>
-        public static void SendAppAddedNotificationToHome(string addedAddID)
-        {
-            if (DependencyService.Get<IAppControl>() == null)
-            {
-                return;
-            }
-
-            DependencyService.Get<IAppControl>().SendAppAddedNotificationToHome(addedAddID);
-        }
-
-        /// <summary>
-        /// A method terminates caller application.
-        /// </summary>
-        public static void SelfTerminate()
-        {
-            if (DependencyService.Get<IAppLifeControl>() == null)
-            {
-                return;
-            }
-
-            DependencyService.Get<IAppLifeControl>().SelfTerminate();
-        }
-    }
-}
diff --git a/LibTVRefCommonPortable/Utils/AppShortcutStorage.cs b/LibTVRefCommonPortable/Utils/AppShortcutStorage.cs
deleted file mode 100644 (file)
index 67b5ae1..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-using System;
-using System.Collections.Generic;
-using System.Xml.Serialization;
-using System.IO;
-using LibTVRefCommonPortable.DataModels;
-using System.Threading.Tasks;
-using System.Diagnostics;
-
-namespace LibTVRefCommonPortable.Utils
-{
-    /// <summary>
-    /// A class manages App Shortcuts by using subsystem.
-    /// </summary>
-    public class AppShortcutStorage
-    {
-        /// <summary>
-        /// A storage path.
-        /// </summary>
-        private static String StoragePath;
-
-        /// <summary>
-        /// A file system watcher which checks if the targeted storage is changed.
-        /// </summary>
-        private static IFileSystemWatcherAPIs fileSystemWatcher = FileSystemUtils.Instance.FileSysteamWatcherInstance;
-
-        /// <summary>
-        /// An instance of AppShortcutStorage.
-        /// </summary>
-        private static AppShortcutStorage instance = new AppShortcutStorage();
-
-        /// <summary>
-        /// An instance of AppShortcutStorage.
-        /// </summary>
-        public static AppShortcutStorage Instance
-        {
-            get { return instance; }
-        }
-
-        /// <summary>
-        /// A constructor of AppShortcutStorage.
-        /// </summary>
-        private AppShortcutStorage()
-        {
-            StoragePath = FileSystemUtils.Instance.PlatformShareStorage + "pinned_apps_info.xml";
-
-            CheckStorage();
-
-            fileSystemWatcher.Run(FileSystemUtils.Instance.PlatformShareStorage, "pinned_apps_info.xml");
-        }
-
-        /// <summary>
-        /// Check if the storage is exist
-        /// </summary>
-        private static void CheckStorage()
-        {
-            if (FileSystemUtils.Instance.IsFileExist(StoragePath) == false)
-            {
-                DebuggingUtils.Err("Set Default Pinned Apps" + StoragePath);
-                List<AppShortcutInfo> result = new List<AppShortcutInfo>();
-                Write(result);
-            }
-        }
-
-        /// <summary>
-        /// A method provides an app Shortcut list.
-        /// </summary>
-        /// <returns>An app Shortcut list.</returns>
-        public static async Task<IEnumerable<AppShortcutInfo>> Read()
-        {
-            CheckStorage();
-
-            for (int i = 0; i <= 6; i++)
-            {
-                if (FileSystemUtils.Instance.IsFileReady(StoragePath))
-                {
-                    break;
-                }
-                else if (i == 6)
-                {
-                    DebuggingUtils.Err("Can't open storage" + StoragePath);
-                    return new List<AppShortcutInfo>();
-                }
-
-                await Task.Delay(100);
-                DebuggingUtils.Dbg("[" + i + "] Waiting for Writing" + StoragePath);
-            }
-
-            using (Stream fileStream = FileSystemUtils.Instance.OpenFile(StoragePath, UtilFileMode.Open))
-            {
-                Debug.Assert(fileStream != null);
-
-                XmlSerializer serializer = new XmlSerializer(typeof(List<AppShortcutInfo>));
-                StreamReader streamReader = new StreamReader(fileStream);
-                List<AppShortcutInfo> list = (List<AppShortcutInfo>)serializer.Deserialize(streamReader);
-
-                return list;
-            }
-        }
-
-        /// <summary>
-        /// A method updates App Shortcuts of the storage
-        /// </summary>
-        /// <param name="pinnedAppInfo">An app Shortcuts that pinned by a user.</param>
-        /// <returns>A status of storage update.</returns>
-        public static bool Write(IEnumerable<AppShortcutInfo> pinnedAppInfo)
-        {
-            using (Stream fileStream = FileSystemUtils.Instance.OpenFile(StoragePath, UtilFileMode.Create))
-            {
-                Debug.Assert(fileStream != null);
-
-                XmlSerializer serializer = new XmlSerializer(typeof(List<AppShortcutInfo>));
-                StreamWriter streamWriter = new StreamWriter(fileStream);
-                serializer.Serialize(streamWriter, pinnedAppInfo);
-                streamWriter.Flush();
-            }
-
-            return true;
-        }
-
-        /// <summary>
-        /// A method sets an event listener for the storage watcher
-        /// </summary>
-        /// <param name="eventListener">An event handler for the storage event </param>
-        public void AddStorageChangedListener(EventHandler<EventArgs> eventListener)
-        {
-            fileSystemWatcher.CustomChanged += eventListener;
-        }
-    }
-}
diff --git a/LibTVRefCommonPortable/Utils/ApplicationManagerUtils.cs b/LibTVRefCommonPortable/Utils/ApplicationManagerUtils.cs
deleted file mode 100644 (file)
index 138d211..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using LibTVRefCommonPortable.Stubs;
-using System;
-using System.Collections.Generic;
-using System.Threading.Tasks;
-using Xamarin.Forms;
-
-namespace LibTVRefCommonPortable.Utils
-{
-    /// <summary>
-    /// A class provides application controlling functions
-    /// </summary>
-    public sealed class ApplicationManagerUtils
-    {
-        /// <summary>
-        /// A instance of platform specific application manager port.
-        /// </summary>
-        private static IApplicationManagerAPIs applicationManagerAPIs;
-
-        /// <summary>
-        /// A instance of ApplicationManagerUtils
-        /// </summary>
-        private static readonly ApplicationManagerUtils instance = new ApplicationManagerUtils();
-
-        /// <summary>
-        /// A getter of ApplicationManagerUtils instance
-        /// </summary>
-        public static ApplicationManagerUtils Instance
-        {
-            get
-            {
-                return instance;
-            }
-        }
-
-        /// <summary>
-        /// A constructor
-        /// </summary>
-        private ApplicationManagerUtils()
-        {
-            applicationManagerAPIs = new ApplicationManagerAPITestStub();
-
-            try
-            {
-                if (DependencyService.Get<IApplicationManagerAPIs>() != null)
-                {
-                    applicationManagerAPIs = DependencyService.Get<IApplicationManagerAPIs>();
-                }
-            }
-            catch (InvalidOperationException e)
-            {
-                DebuggingUtils.Err(e.Message);
-            }
-        }
-
-        /// <summary>
-        /// A method for removing all recent applications
-        /// </summary>
-        public void DeleteAllRecentApplication()
-        {
-            applicationManagerAPIs.DeleteAllRecentApplication();
-        }
-
-        /// <summary>
-        /// A method for removing the specified recent application
-        /// </summary>
-        /// <param name="appId">An application ID</param>
-        public void DeleteRecentApplication(string appId)
-        {
-            applicationManagerAPIs.DeleteRecentApplication(appId);
-        }
-
-
-        /// <summary>
-        /// Gets the information of the recent applications
-        /// </summary>
-        /// <returns>The list of the recent applications</returns>
-        public IEnumerable<RecentApp> GetRecentApplications()
-        {
-            return applicationManagerAPIs.GetRecentApplications();
-        }
-
-        /// <summary>
-        /// Gets the information of the specified application with the app ID
-        /// </summary>
-        /// <param name="appID">The app Id to get</param>
-        /// <returns>The information of the installed application</returns>
-        public InstalledApp GetInstalledApplication(string appID)
-        {
-            return applicationManagerAPIs.GetInstalledApplication(appID);
-        }
-
-        /// <summary>
-        /// Gets the information of the installed applications asynchronously
-        /// </summary>
-        /// <returns>The list of the installed applications</returns>
-        public Task<IEnumerable<InstalledApp>> GetAllInstalledApplication()
-        {
-            return applicationManagerAPIs.GetAllInstalledApplication();
-        }
-
-        /// <summary>
-        /// Checks whether application is removable
-        /// </summary>
-        /// <param name="appID">The app ID to get</param>
-        /// <returns>If the application is removable, true; otherwise, false</returns>
-        public bool GetAppInfoRemovable(string appID)
-        {
-            return applicationManagerAPIs.GetAppInfoRemovable(appID);
-        }
-
-        /// <summary>
-        /// Gets the app ID by the app label
-        /// </summary>
-        /// <param name="appLabel">the app label to get</param>
-        /// <returns>the app ID of the app label</returns>
-        public Task<string> GetAppIDbyAppLabel(string appLabel)
-        {
-            return applicationManagerAPIs.GetAppIDbyAppLabel(appLabel);
-        }
-    }
-}
diff --git a/LibTVRefCommonPortable/Utils/DateUtils.cs b/LibTVRefCommonPortable/Utils/DateUtils.cs
deleted file mode 100644 (file)
index f2e6e14..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using System;
-
-namespace LibTVRefCommonPortable.Utils
-{
-    /// <summary>
-    /// A class provides Date, Time related functions
-    /// </summary>
-    public class DateUtils
-    {
-        /// <summary>
-        /// A random seed
-        /// </summary>
-        private static Random seed = new Random();
-
-        /// <summary>
-        /// A method provides a random date.
-        /// </summary>
-        /// <returns>A date</returns>
-        public static DateTime GetRandomDate()
-        {
-            DateTime baseDate = DateTime.Now.AddYears(-10);
-            return baseDate.AddDays(seed.Next((DateTime.Now - baseDate).Days));
-        }
-    }
-}
diff --git a/LibTVRefCommonPortable/Utils/DebuggingUtils.cs b/LibTVRefCommonPortable/Utils/DebuggingUtils.cs
deleted file mode 100644 (file)
index 61418c6..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using System;
-using System.Runtime.CompilerServices;
-using Xamarin.Forms;
-
-namespace LibTVRefCommonPortable.Utils
-{
-    /// <summary>
-    /// A debugging utility class.
-    /// </summary>
-    public sealed class DebuggingUtils
-    {
-        /// <summary>
-        /// A debugging API interface
-        /// </summary>
-        private static IDebuggingAPIs ism;
-
-        /// <summary>
-        /// An instance of DebuggingUtils
-        /// </summary>
-        private static readonly DebuggingUtils instance = new DebuggingUtils();
-
-        /// <summary>
-        /// A method provides instance of DebuggingUtils. </summary>
-        public static DebuggingUtils Instance
-        {
-            get { return instance; }
-        }
-
-        /// <summary>
-        /// Default implementation of IDebuggingAPIs interface .
-        /// This is required for the unit testing of the Calculator application.
-        /// </summary>
-        private class DefaultSM : IDebuggingAPIs
-        {
-            /// <summary>
-            /// A method displays an error log.
-            /// </summary>
-            /// <param name="message"> An error message.</param>
-            /// <param name="file"> A file name.</param>
-            /// <param name="func"> A function name.</param>
-            /// <param name="line"> A line number.</param>
-            public void Dbg(string message, String file, String func, Int32 line)
-            {
-            }
-
-            /// <summary>
-            /// A method displays a dialog with a given message.
-            /// </summary>
-            /// <param name="message"> A debugging message.</param>
-            /// <param name="file"> A file name.</param>
-            /// <param name="func"> A function name.</param>
-            /// <param name="line"> A line number.</param>
-            public void Err(string message, String file, String func, Int32 line)
-            {
-            }
-
-            /// <summary>
-            /// A method displays a debugging log.
-            /// </summary>
-            /// <param name="message"> A debugging message.</param>
-            public void Popup(string message)
-            {
-            }
-        }
-
-        /// <summary>
-        /// DebuggingUtils constructor which set interface instance.
-        /// </summary>
-        private DebuggingUtils()
-        {
-            ism = new DefaultSM();
-
-            try
-            {
-                if (DependencyService.Get<IDebuggingAPIs>() != null)
-                {
-                    ism = DependencyService.Get<IDebuggingAPIs>();
-                }
-            }
-            catch (InvalidOperationException e)
-            {
-                Err(e.Message);
-            }
-        }
-
-        /// <summary>
-        /// A method displays a debugging message
-        /// </summary>
-        /// <param name="message"> A list of command line arguments.</param>
-        /// <param name="file"> A file name.</param>
-        /// <param name="func"> A function name.</param>
-        /// <param name="line"> A line number.</param>
-        public static void Dbg(string message, [CallerFilePath] System.String file = "", [CallerMemberName] System.String func = "", [CallerLineNumber] System.Int32 line = 0)
-        {
-            ism.Dbg(message, file, func, line);
-        }
-
-        /// <summary>
-        /// A method displays an error message
-        /// </summary>
-        /// <param name="message"> A list of command line arguments.</param>
-        /// <param name="file"> A file name.</param>
-        /// <param name="func"> A function name.</param>
-        /// <param name="line"> A line number.</param>
-        public static void Err(string message, [CallerFilePath] System.String file = "", [CallerMemberName] System.String func = "", [CallerLineNumber] System.Int32 line = 0)
-        {
-            ism.Err(message, file, func, line);
-        }
-
-        /// <summary>
-        /// A method displays a pop up  message
-        /// </summary>
-        /// <param name="message"> A list of command line arguments.</param>
-        public static void Popup(string message)
-        {
-            ism.Popup(message);
-        }
-    }
-}
diff --git a/LibTVRefCommonPortable/Utils/FileSystemUtils.cs b/LibTVRefCommonPortable/Utils/FileSystemUtils.cs
deleted file mode 100644 (file)
index 4ed3434..0000000
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using LibTVRefCommonPortable.Stubs;
-using System;
-using System.IO;
-using Xamarin.Forms;
-
-namespace LibTVRefCommonPortable.Utils
-{
-    /// <summary>
-    /// A class for file system control function.
-    /// </summary>
-    class FileSystemUtils
-    {
-        /// <summary>
-        /// A instance of file system port layer
-        /// </summary>
-        private static IFileSystemAPIs fileSystemAPIs;
-
-        /// <summary>
-        /// A instance of file system watcher port layer
-        /// </summary>
-        private static IFileSystemWatcherAPIs fileSystemWatcherAPIs;
-
-        /// <summary>
-        /// A instance of FileSystemUtils
-        /// </summary>
-        private static readonly FileSystemUtils instance = new FileSystemUtils();
-
-        /// <summary>
-        /// A property of FileSystemUtils instance
-        /// </summary>
-        public static FileSystemUtils Instance
-        {
-            get
-            {
-                return instance;
-            }
-        }
-
-        /// <summary>
-        /// A property of file system watcher instance
-        /// </summary>
-        public IFileSystemWatcherAPIs FileSysteamWatcherInstance
-        {
-            get
-            {
-                return fileSystemWatcherAPIs;
-            }
-        }
-
-        /// <summary>
-        /// A constructor
-        /// </summary>
-        private FileSystemUtils()
-        {
-            fileSystemAPIs = new FileSystemAPITestStub();
-            fileSystemWatcherAPIs = new FileWatcherAPITestStub();
-
-            try
-            {
-                if (DependencyService.Get<IFileSystemAPIs>() != null)
-                {
-                    fileSystemAPIs = DependencyService.Get<IFileSystemAPIs>();
-                }
-
-                if (DependencyService.Get<IFileSystemWatcherAPIs>() != null)
-                {
-                    fileSystemWatcherAPIs = DependencyService.Get<IFileSystemWatcherAPIs>();
-                }
-            }
-            catch (InvalidOperationException e)
-            {
-                DebuggingUtils.Err(e.Message);
-            }
-        }
-
-        /// <summary>
-        /// A directory path which should be used for app data storing.
-        /// </summary>
-        public string AppDataStorage
-        {
-            get
-            {
-                return fileSystemAPIs.AppDataStorage;
-            }
-        }
-
-        /// <summary>
-        /// A directory path which should be used for app resource storing.
-        /// </summary>
-        public string AppResourceStorage
-        {
-            get
-            {
-                return fileSystemAPIs.AppResourceStorage;
-            }
-        }
-
-        /// <summary>
-        /// A directory path which should be used for sharing between apps.
-        /// </summary>
-        public string PlatformShareStorage
-        {
-            get
-            {
-                return fileSystemAPIs.PlatformShareStorage;
-            }
-        }
-
-        /// <summary>
-        /// A method opens a file on the given mode.
-        /// </summary>
-        /// <param name="filePath">A file path</param>
-        /// <param name="mode">An opening mode</param>
-        /// <returns>A file descriptor</returns>
-        public Stream OpenFile(string filePath, UtilFileMode mode)
-        {
-            return fileSystemAPIs.OpenFile(filePath, mode);
-        }
-
-        /// <summary>
-        /// A method flushing the stream to write remains.
-        /// </summary>
-        /// <param name="stream">A file descriptor</param>
-        public void Flush(Stream stream)
-        {
-            fileSystemAPIs.Flush(stream);
-        }
-
-        /// <summary>
-        /// A method closes the file.
-        /// </summary>
-        /// <param name="stream">A file descriptor</param>
-        public void CloseFile(Stream stream)
-        {
-            fileSystemAPIs.CloseFile(stream);
-        }
-
-        /// <summary>
-        /// A method checks if a file existence in the file system.
-        /// </summary>
-        /// <param name="filePath">A file path</param>
-        /// <returns>An existence of the file</returns>
-        public bool IsFileExist(String filePath)
-        {
-            return fileSystemAPIs.IsFileExist(filePath);
-        }
-
-        /// <summary>
-        /// A method checks if file is read to use.
-        /// </summary>
-        /// <param name="filePath">A file path</param>
-        /// <returns>A status of ready</returns>
-        public bool IsFileReady(String filePath)
-        {
-            return fileSystemAPIs.IsFileReady(filePath);
-        }
-
-
-    }
-}
diff --git a/LibTVRefCommonPortable/Utils/IAppControl.cs b/LibTVRefCommonPortable/Utils/IAppControl.cs
deleted file mode 100644 (file)
index 9aa4c3f..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-using System.Collections.Generic;
-
-namespace LibTVRefCommonPortable.Utils
-{
-    /// <summary>
-    /// An interface for App Control feature
-    /// </summary>
-    public interface IAppControl
-    {
-        /// <summary>
-        /// Sends the launch request
-        /// </summary>
-        /// <param name="appId"> The app ID to explicitly launch</param>
-        /// <param name="extraData">The extra data for the app control</param>
-        /// <param name="fileUri">The file uri to be opened</param>
-        void SendLaunchRequest(string appId, IDictionary<string, string> extraData, string fileUri);
-
-        /// <summary>
-        /// A method sends add pin request App Control to TVApps app.
-        /// </summary>
-        void SendAddAppRequestToApps();
-
-        /// <summary>
-        /// A method sends a pin added notification App control to TVHome app.
-        /// </summary>
-        /// <param name="addedAddID">An app ID of newly added.</param>
-        void SendAppAddedNotificationToHome(string addedAddID);
-    }
-}
diff --git a/LibTVRefCommonPortable/Utils/IAppLifeControl.cs b/LibTVRefCommonPortable/Utils/IAppLifeControl.cs
deleted file mode 100644 (file)
index ab6e2e7..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-namespace LibTVRefCommonPortable.Utils
-{
-    /// <summary>
-    /// An interface for app life management.
-    /// </summary>
-    public interface IAppLifeControl
-    {
-        /// <summary>
-        /// A method terminates the caller app.
-        /// </summary>
-        void SelfTerminate();
-    }
-}
diff --git a/LibTVRefCommonPortable/Utils/IApplicationManagerAPIs.cs b/LibTVRefCommonPortable/Utils/IApplicationManagerAPIs.cs
deleted file mode 100755 (executable)
index c8521b9..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using System;
-using System.Collections.Generic;
-using System.Threading.Tasks;
-
-namespace LibTVRefCommonPortable.Utils
-{
-    /// <summary>
-    /// A class to store RecentApp information.
-    /// </summary>
-    public class RecentApp
-    {
-        /// <summary>
-        /// A Recent instance ID
-        /// </summary>
-        public String InstanceID;
-
-        /// <summary>
-        /// A Recent instance label
-        /// </summary>
-        public String InstanceLabel;
-
-        /// <summary>
-        /// An app ID
-        /// </summary>
-        public String AppID;
-
-        /// <summary>
-        /// An app label
-        /// </summary>
-        public String Applabel;
-
-        /// <summary>
-        /// An app icon path
-        /// </summary>
-        public String IconPath;
-
-        /// <summary>
-        /// A last launched date
-        /// </summary>
-        public DateTime LaunchedTime;
-
-        /// <summary>
-        /// A URI of accessible content if the Recent is a content.
-        /// </summary>
-        public String Uri;
-
-        /// <summary>
-        /// A File Path of screenshot of the recent app or recent content.
-        /// </summary>
-        public String ScreenShot;
-    }
-
-    /// <summary>
-    /// A class to store installed app information.
-    /// </summary>
-    public class InstalledApp
-    {
-        /// <summary>
-        /// An app ID
-        /// </summary>
-        public String AppID;
-
-        /// <summary>
-        /// An app label
-        /// </summary>
-        public String Applabel;
-
-        /// <summary>
-        /// An app icon path
-        /// </summary>
-        public String IconPath;
-
-        /// <summary>
-        /// A installed date
-        /// </summary>
-        public DateTime InstalledTime;
-    }
-
-    /// <summary>
-    /// An interface for Application Manager feature
-    /// </summary>
-    public interface IApplicationManagerAPIs
-    {
-        /// <summary>
-        /// A method provides installed application list.
-        /// </summary>
-        /// <returns>An installed application list</returns>
-        Task<IEnumerable<InstalledApp>> GetAllInstalledApplication();
-
-        /// <summary>
-        /// A method provides a recent application list.
-        /// </summary>
-        /// <returns>A Recent application list.</returns>
-        IEnumerable<RecentApp> GetRecentApplications();
-
-        /// <summary>
-        /// A method provides application information which is matched with the given app ID.
-        /// </summary>
-        /// <param name="applicationId">An application ID</param>
-        /// <returns>An installed application information</returns>
-        InstalledApp GetInstalledApplication(string applicationId);
-
-        /// <summary>
-        /// A method for removing all recent applications
-        /// </summary>
-        void DeleteAllRecentApplication();
-
-        /// <summary>
-        /// A method for removing the specified recent application
-        /// </summary>
-        /// <param name="appId">An application ID</param>
-        void DeleteRecentApplication(string appId);
-
-        /// <summary>
-        /// Checks whether application is removable
-        /// </summary>
-        /// <param name="appID">The app ID to get</param>
-        /// <returns>If the application is removable, true; otherwise, false</returns>
-        bool GetAppInfoRemovable(string appID);
-
-        /// <summary>
-        /// Gets the app ID by the app label
-        /// </summary>
-        /// <param name="appLabel">the app label to get</param>
-        /// <returns>the app ID of the app label</returns>
-        Task<string> GetAppIDbyAppLabel(string appLabel);
-    }
-}
diff --git a/LibTVRefCommonPortable/Utils/IDebuggingAPIs.cs b/LibTVRefCommonPortable/Utils/IDebuggingAPIs.cs
deleted file mode 100644 (file)
index eb46618..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using System;
-
-namespace LibTVRefCommonPortable.Utils
-{
-    /// <summary>
-    /// An interface contains debugging methods which are using platform subsystems.
-    /// </summary>
-    /// <remarks>
-    /// Implementing this class should be occurred in platform project.
-    /// Also the implementation should be registered to the DependencyService in an app initialization.
-    /// Please refer to Xamarin Dependency Service
-    /// https://developer.xamarin.com/guides/xamarin-forms/dependency-service/introduction/
-    /// </remarks>
-    public interface IDebuggingAPIs
-    {
-        /// <summary>
-        /// A method displays a debugging log. </summary>
-        /// <param name="message"> A debugging message.</param>
-        void Popup(string message);
-
-        /// <summary>
-        /// A method displays an error log. </summary>
-        /// <param name="message"> An error message.</param>
-        /// <param name="file"> A file name.</param>
-        /// <param name="func"> A function name.</param>
-        /// <param name="line"> A line number.</param>
-        void Dbg(string message, String file, String func, Int32 line);
-
-        /// <summary>
-        /// A method displays a dialog with a given message. </summary>
-        /// <param name="message"> A debugging message.</param>
-        /// <param name="file"> A file name.</param>
-        /// <param name="func"> A function name.</param>
-        /// <param name="line"> A line number.</param>
-        void Err(string message, String file, String func, Int32 line);
-    }
-}
diff --git a/LibTVRefCommonPortable/Utils/IFileSystemAPIs.cs b/LibTVRefCommonPortable/Utils/IFileSystemAPIs.cs
deleted file mode 100644 (file)
index 2f29351..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using System;
-using System.IO;
-
-namespace LibTVRefCommonPortable.Utils
-{
-    /// <summary>
-    /// An enumeration for the file open mode.
-    /// </summary>
-    public enum UtilFileMode
-    {
-        CreateNew = 1,
-        Create = 2,
-        Open = 3,
-        OpenOrCreate = 4,
-        Truncate = 5,
-        Append = 6
-    }
-
-    /// <summary>
-    /// An interface for the file operations
-    /// </summary>
-    public interface IFileSystemAPIs
-    {
-        /// <summary>
-        /// A directory path which should be used for app data storing.
-        /// </summary>
-        string AppDataStorage
-        {
-            get;
-        }
-
-        /// <summary>
-        /// A directory path which should be used for app resource storing.
-        /// </summary>
-        string AppResourceStorage
-        {
-            get;
-        }
-
-        /// <summary>
-        /// A directory path which should be used for sharing between apps.
-        /// </summary>
-        string PlatformShareStorage
-        {
-            get;
-        }
-
-        /// <summary>
-        /// A method opens a file on the given mode.
-        /// </summary>
-        /// <param name="filePath">A file path</param>
-        /// <param name="mode">An opening mode</param>
-        /// <returns>A file descriptor</returns>
-        Stream OpenFile(string filePath, UtilFileMode mode);
-
-        /// <summary>
-        /// A method flushing the stream to write remains.
-        /// </summary>
-        /// <param name="stream">A file descriptor</param>
-        void Flush(Stream stream);
-
-        /// <summary>
-        /// A method closes the file.
-        /// </summary>
-        /// <param name="stream">A file descriptor</param>
-        void CloseFile(Stream stream);
-
-        /// <summary>
-        /// A method checks if a file existence in the file system.
-        /// </summary>
-        /// <param name="filePath">A file path</param>
-        /// <returns>An existence of the file</returns>
-        bool IsFileExist(String filePath);
-
-        /// <summary>
-        /// A method checks if file is read to use.
-        /// </summary>
-        /// <param name="filePath">A file path</param>
-        /// <returns>A status of ready</returns>
-        bool IsFileReady(String filePath);
-    }
-}
diff --git a/LibTVRefCommonPortable/Utils/IFileSystemWatcherAPIs.cs b/LibTVRefCommonPortable/Utils/IFileSystemWatcherAPIs.cs
deleted file mode 100644 (file)
index 43ecb20..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using System;
-
-namespace LibTVRefCommonPortable.Utils
-{
-    /// <summary>
-    /// An interface for the file system watcher.
-    /// </summary>
-    public interface IFileSystemWatcherAPIs
-    {
-        /// <summary>
-        /// A EventHandler for the file system watcher.
-        /// </summary>
-        event EventHandler<EventArgs> CustomChanged;
-
-        /// <summary>
-        /// A method starts the file system watcher.
-        /// </summary>
-        /// <param name="path">Target file path</param>
-        /// <param name="fileName">Target file name</param>
-        void Run(String path, String fileName);
-    }
-}
diff --git a/LibTVRefCommonPortable/Utils/IMediaContentAPIs.cs b/LibTVRefCommonPortable/Utils/IMediaContentAPIs.cs
deleted file mode 100644 (file)
index a0b26a9..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-using System;
-using System.Collections.Generic;
-
-namespace LibTVRefCommonPortable.Utils
-{
-    /// <summary>
-    /// An information of recently played media content
-    /// </summary>
-    public struct RecentlyPlayedMedia
-    {
-        /// <summary>
-        /// An ID of media content
-        /// </summary>
-        public string MediaId;
-
-        /// <summary>
-        /// A path of media content thumbnail
-        /// </summary>
-        public string ThumbnailPath;
-
-        /// <summary>
-        /// A path of media content
-        /// </summary>
-        public string FilePath;
-
-        /// <summary>
-        /// A title of media content
-        /// </summary>
-        public string DisplayName;
-
-        /// <summary>
-        /// Last played time of media content
-        /// </summary>
-        public DateTime PlayedAt;
-    }
-
-    /// <summary>
-    /// An interface for getting recently played media contents.
-    /// </summary>
-    public interface IMediaContentAPIs
-    {
-        /// <summary>
-        /// A method for getting recently played media content list
-        /// </summary>
-        /// <param name="limitation">Maximum count of list</param>
-        /// <returns>The recently played media content list</returns>
-        IEnumerable<RecentlyPlayedMedia> GetRecentlyPlayedMedia(int limitation);
-    }
-}
diff --git a/LibTVRefCommonPortable/Utils/IPackageManager.cs b/LibTVRefCommonPortable/Utils/IPackageManager.cs
deleted file mode 100644 (file)
index a449672..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using System.Collections.Generic;
-
-namespace LibTVRefCommonPortable.Utils
-{
-    /// <summary>
-    /// An interface for package manager subsystem.
-    /// </summary>
-    public interface IPackageManager
-    {
-        /// <summary>
-        /// A method provides installed package list.
-        /// </summary>
-        /// <returns>A package list</returns>
-        Dictionary<string, string[]> GetPackageList();
-
-        /// <summary>
-        /// A method provides a detail information (TBD)
-        /// </summary>
-        /// <param name="pkgID">A package ID</param>
-        /// <returns>A package label</returns>
-        string GetPackageLabel(string pkgID);
-
-        /// <summary>
-        /// Gets the package ID by the app ID
-        /// </summary>
-        /// <param name="appID">The app ID to get</param>
-        /// <returns>The package ID that contains given app ID</returns>
-        string GetPackageIDByAppID(string appID);
-
-        /// <summary>
-        /// A method removes the package.
-        /// </summary>
-        /// <param name="pkgID">A package ID</param>
-        /// <returns>A status of uninstall</returns>
-        bool UninstallPackage(string pkgID);
-
-        /// <summary>
-        /// A method remove the package by using an app ID.
-        /// </summary>
-        /// <param name="appID">an app ID</param>
-        /// <returns>A status of uninstall</returns>
-        bool UninstallPackageByAppID(string appID);
-
-        /// <summary>
-        /// Gets applications list by the package ID
-        /// </summary>
-        /// <param name="pkgID">The package ID to get applications</param>
-        /// <returns>The list of applications</returns>
-        List<string> GetApplicationsByPkgID(string pkgID);
-    }
-}
diff --git a/LibTVRefCommonPortable/Utils/IPlatformNotification.cs b/LibTVRefCommonPortable/Utils/IPlatformNotification.cs
deleted file mode 100755 (executable)
index b5664e2..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-namespace LibTVRefCommonPortable.Utils
-{
-    /// <summary>
-    /// An interface for the platform notification.
-    /// </summary>
-    public interface IPlatformNotification
-    {
-        /// <summary>
-        /// A method will be called when the Home remote control key is pressed.
-        /// </summary>
-        void OnHomeKeyPressed();
-
-        /// <summary>
-        /// A method will be called when the Menu remote control key is pressed.
-        /// </summary>
-        void OnMenuKeyPressed();
-
-        /// <summary>
-        /// A method will be called if an app is installed.
-        /// </summary>
-        /// <param name="pkgID">A package ID of newly installed.</param>
-        void OnAppInstalled(string pkgID);
-
-        /// <summary>
-        /// A method will be called if an app is uninstalled.
-        /// </summary>
-        /// <param name="pkgID">A package ID of uninstalled.</param>
-        void OnAppUninstalled(string pkgID);
-
-        /// <summary>
-        /// A method will be called if the app gets a App Control request for pinning a app.
-        /// </summary>
-        void OnPinAppRequestReceived();
-
-        /// <summary>
-        /// A method will be called if the app gets an app pinned notification App Control request.
-        /// </summary>
-        /// <param name="appID">A pinned app ID</param>
-        void OnAppPinnedNotificationReceived(string appID);
-
-        /// <summary>
-        /// A method will be called when the Navigation remote control key is pressed.
-        /// </summary>
-        /// <param name="keyName">A pressed remote control key name</param>
-        void OnNavigationKeyPressed(string keyName);
-    }
-}
diff --git a/LibTVRefCommonPortable/Utils/IStatePublisher.cs b/LibTVRefCommonPortable/Utils/IStatePublisher.cs
deleted file mode 100644 (file)
index 0c3605d..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace LibTVRefCommonPortable.Utils
-{
-    public enum AppState
-    {
-        HomeMainPanelRecentFocused,
-        HomeMainPanelAppsFocused,
-        HomeMainPanelSettingsFocused,
-        HomeSubPanelRecentFocused,
-        HomeSubPanelAppsFocused,
-        HomeSubPanelSettingsFocused,
-        HomeShowOptions,
-        HomeMove,
-        HomeIconified,
-    }
-
-    public interface IStatePublisher
-    {
-        AppState CurrentState
-        {
-            get;
-            set;
-        }
-
-    }
-}
diff --git a/LibTVRefCommonPortable/Utils/IStateSubscriber.cs b/LibTVRefCommonPortable/Utils/IStateSubscriber.cs
deleted file mode 100644 (file)
index bb59eb7..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace LibTVRefCommonPortable.Utils
-{
-    public interface IStateSubscriber
-    {
-        void OnStateChanged(AppState state);
-    }
-}
diff --git a/LibTVRefCommonPortable/Utils/ISystemSettings.cs b/LibTVRefCommonPortable/Utils/ISystemSettings.cs
deleted file mode 100644 (file)
index 97c369e..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-namespace LibTVRefCommonPortable.Utils
-{
-    /// <summary>
-    /// An interface for getting system setting informations.
-    /// </summary>
-    public interface ISystemSettings
-    {
-        /// <summary>
-        /// A method for getting system model name.
-        /// </summary>
-        /// <param name="modelName">The system model name</param>
-        /// <returns>The result whether getting the modelName is done</returns>
-        bool GetSystemModelName(out string modelName);
-    }
-}
diff --git a/LibTVRefCommonPortable/Utils/ITVHome.cs b/LibTVRefCommonPortable/Utils/ITVHome.cs
deleted file mode 100755 (executable)
index c7c6f69..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using LibTVRefCommonPortable.Models;
-
-namespace LibTVRefCommonPortable.Utils
-{
-    /// <summary>
-    /// An interface for the TVHomeImpl class
-    /// The Models' instances in the TVHomeImpl class,
-    /// so to use the Models from other files, it should access the instance of the TVHomeImpl.
-    /// To reduce dependency between the TVHome and any other file,
-    /// the instance of the TVHomeImpl will be provided as a ITVHome interface.
-    /// </summary>
-    public interface ITVHome
-    {
-        /// <summary>
-        /// An instance of the AppShortcutController
-        /// </summary>
-        /// <see cref="AppShortcutController"/>
-        AppShortcutController AppShortcutControllerInstance
-        {
-            get;
-        }
-
-        /// <summary>
-        /// An instance of the RecentShortcutController
-        /// </summary>
-        /// <see cref="RecentShortcutController"/>
-        RecentShortcutController RecentShortcutControllerInstance
-        {
-            get;
-        }
-    }
-}
diff --git a/LibTVRefCommonPortable/Utils/IWindowAPIs.cs b/LibTVRefCommonPortable/Utils/IWindowAPIs.cs
deleted file mode 100644 (file)
index 98de5ef..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-namespace LibTVRefCommonPortable.Utils
-{
-    /// <summary>
-    /// An interface for the Window management.
-    /// </summary>
-    public interface IWindowAPIs
-    {
-        /// <summary>
-        /// A method minimizes the app's window.
-        /// </summary>
-        /// <param name="iconified">A minimize status</param>
-        void SetIconified(bool iconified);
-
-        /// <summary>
-        /// A method provides a minimized status of the App.
-        /// </summary>
-        /// <returns>A status of minimized of app.</returns>
-        bool GetIconified();
-    }
-}
diff --git a/LibTVRefCommonPortable/Utils/MediaContentUtils.cs b/LibTVRefCommonPortable/Utils/MediaContentUtils.cs
deleted file mode 100644 (file)
index 9d56eb2..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using LibTVRefCommonPortable.Stubs;
-using System;
-using System.Collections.Generic;
-using Xamarin.Forms;
-
-namespace LibTVRefCommonPortable.Utils
-{
-    /// <summary>
-    /// A class provides media contents and related functions.
-    /// </summary>
-    public class MediaContentUtils
-    {
-        /// <summary>
-        /// A instance of IMediaContentAPIs port.
-        /// </summary>
-        private static IMediaContentAPIs mediaContentAPIs;
-
-        /// <summary>
-        /// A instance of MediaContentUtils
-        /// </summary>
-        private static readonly MediaContentUtils instance = new MediaContentUtils();
-
-        /// <summary>
-        /// A property of MediaContentUtils instance.
-        /// </summary>
-        public static MediaContentUtils Instance
-        {
-            get
-            {
-                return instance;
-            }
-        }
-
-        /// <summary>
-        /// A Constructor
-        /// </summary>
-        private MediaContentUtils()
-        {
-            mediaContentAPIs = new MediaContentAPITestStub();
-
-            try
-            {
-                if (DependencyService.Get<IMediaContentAPIs>() != null)
-                {
-                    mediaContentAPIs = DependencyService.Get<IMediaContentAPIs>();
-                }
-            }
-            catch (InvalidOperationException e)
-            {
-                DebuggingUtils.Err(e.Message);
-            }
-        }
-
-        /// <summary>
-        /// A method provides media playing history.
-        /// </summary>
-        /// <param name="limitation">A number of getting media playing history</param>
-        /// <returns>A list of played medias.</returns>
-        public IEnumerable<RecentlyPlayedMedia> GetRecentlyPlayedMedia(int limitation)
-        {
-            return mediaContentAPIs.GetRecentlyPlayedMedia(limitation);
-        }
-
-    }
-}
diff --git a/LibTVRefCommonPortable/Utils/PackageManagerUtils.cs b/LibTVRefCommonPortable/Utils/PackageManagerUtils.cs
deleted file mode 100644 (file)
index 50cd961..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using System.Collections.Generic;
-using Xamarin.Forms;
-
-namespace LibTVRefCommonPortable.Utils
-{
-    /// <summary>
-    /// A class for package manager function.
-    /// </summary>
-    public sealed class PackageManagerUtils
-    {
-        /// <summary>
-        /// A method provides installed package list.
-        /// </summary>
-        /// <returns>A package list</returns>
-        public static Dictionary<string, string[]> GetPackageList()
-        {
-            if (DependencyService.Get<IPackageManager>() == null)
-            {
-                return new Dictionary<string, string[]>();
-            }
-
-            return DependencyService.Get<IPackageManager>().GetPackageList();
-        }
-
-        /// <summary>
-        /// A method provides a detail information (TBD)
-        /// </summary>
-        /// <param name="pkgID">A package ID</param>
-        /// <returns>A package label</returns>
-        public static string GetPackageLabel(string pkgID)
-        {
-            if (DependencyService.Get<IPackageManager>() == null)
-            {
-                return null;
-            }
-
-            return DependencyService.Get<IPackageManager>().GetPackageLabel(pkgID);
-        }
-
-        /// <summary>
-        /// Gets the pacakge ID by the app ID
-        /// </summary>
-        /// <param name="appID">The app ID to get</param>
-        /// <returns>The pacakge ID that contains given app ID</returns>
-        public static string GetPackageIDByAppID(string appID)
-        {
-            if (DependencyService.Get<IPackageManager>() == null)
-            {
-                return null;
-            }
-
-            return DependencyService.Get<IPackageManager>().GetPackageIDByAppID(appID);
-        }
-
-        /// <summary>
-        /// A method removes the package.
-        /// </summary>
-        /// <param name="pkgID">A package ID</param>
-        /// <returns>A status of uninstall</returns>
-        public static bool UninstallPackage(string pkgID)
-        {
-            if (DependencyService.Get<IPackageManager>() == null)
-            {
-                return false;
-            }
-
-            return DependencyService.Get<IPackageManager>().UninstallPackage(pkgID);
-        }
-
-        /// <summary>
-        /// A method remove the package by using an app ID.
-        /// </summary>
-        /// <param name="appID">An app ID</param>
-        /// <returns>A status of uninstallation</returns>
-        public static bool UninstallPackageByAppID(string appID)
-        {
-            if (DependencyService.Get<IPackageManager>() == null)
-            {
-                return false;
-            }
-
-            return DependencyService.Get<IPackageManager>().UninstallPackageByAppID(appID);
-        }
-
-        /// <summary>
-        /// Gets applications list by the package ID
-        /// </summary>
-        /// <param name="pkgID">The package ID to get applications</param>
-        /// <returns>The list of applications</returns>
-        public static List<string> GetApplicationsByPkgID(string pkgID)
-        {
-            if (DependencyService.Get<IPackageManager>() == null)
-            {
-                return null;
-            }
-
-            return DependencyService.Get<IPackageManager>().GetApplicationsByPkgID(pkgID);
-        }
-    }
-}
diff --git a/LibTVRefCommonPortable/Utils/RecentShortcutStorage.cs b/LibTVRefCommonPortable/Utils/RecentShortcutStorage.cs
deleted file mode 100755 (executable)
index 6d9dedd..0000000
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using System.Collections.Generic;
-using LibTVRefCommonPortable.DataModels;
-using System;
-using LibTVRefCommonPortable.Models;
-
-namespace LibTVRefCommonPortable.Utils
-{
-    /// <summary>
-    /// A class to manage the Recent Shortcuts.
-    /// </summary>
-    public sealed class RecentShortcutStorage
-    {
-        /// <summary>
-        /// A maximum number of recent apps and contents
-        /// </summary>
-        private static readonly int MaxRecents = 10;
-
-        /// <summary>
-        /// A method provides all Recent Shortcuts' information list.
-        /// </summary>
-        /// <returns>a Recent Shortcut information list.</returns>
-        public static IEnumerable<RecentShortcutInfo> Read()
-        {
-            List<RecentShortcutInfo> recentShortcutInfoList = new List<RecentShortcutInfo>();
-            IEnumerable<RecentApp> recentApps = null;
-
-            try
-            {
-                recentApps = ApplicationManagerUtils.Instance.GetRecentApplications();
-            }
-            catch (Exception e)
-            {
-                DebuggingUtils.Err("GetRecentApplications failed. " + e.Message);
-            }
-
-            if (recentApps != null)
-            {
-                foreach (var item in recentApps)
-                {
-                    if (ManagedApps.IsHiddenRecentApp(item.AppID))
-                    {
-                        continue;
-                    }
-
-                    if (item.Applabel == null || item.Applabel.Length == 0 ||
-                        item.LaunchedTime.CompareTo(new DateTime()) == 0)
-                    {
-                        continue;
-                    }
-
-                    var defaultStateDescription = new StateDescription()
-                    {
-                        Label = item.Applabel,
-                        IconPath = item.IconPath,
-                        Action = new AppControlAction()
-                        {
-                            AppID = item.AppID,
-                        }
-                    };
-                    var recentShortcutInfo = new RecentShortcutInfo();
-
-                    if (item.ScreenShot == null)
-                    {
-                        recentShortcutInfo.ScreenshotPath = "screenshot.png";
-
-                        string capturedAppScreen = FileSystemUtils.Instance.PlatformShareStorage + item.AppID + ".jpg";
-                        if (FileSystemUtils.Instance.IsFileExist(capturedAppScreen))
-                        {
-                            recentShortcutInfo.ScreenshotPath = capturedAppScreen;
-                        }
-                        else
-                        {
-                            string testScreenShot = FileSystemUtils.Instance.AppResourceStorage + item.AppID + ".png";
-                            if (FileSystemUtils.Instance.IsFileExist(testScreenShot))
-                            {
-                                recentShortcutInfo.ScreenshotPath = testScreenShot;
-                            }
-                        }
-                    }
-                    else
-                    {
-                        recentShortcutInfo.ScreenshotPath = item.ScreenShot;
-                    }
-
-                    recentShortcutInfo.Type = RecentShortcutType.Application;
-                    recentShortcutInfo.StateDescriptions.Add("default", defaultStateDescription);
-                    recentShortcutInfo.CurrentStateDescription = defaultStateDescription;
-                    recentShortcutInfo.Id = item.AppID;
-                    recentShortcutInfo.Date = item.LaunchedTime;
-                    recentShortcutInfoList.Add(recentShortcutInfo);
-                }
-            }
-
-            IEnumerable<RecentlyPlayedMedia> recentMedias = MediaContentUtils.Instance.GetRecentlyPlayedMedia(MaxRecents);
-            foreach (var item in recentMedias)
-            {
-                if (item.FilePath == null || item.FilePath.Length == 0)
-                {
-                    continue;
-                }
-
-                // DebuggingUtils.Dbg("media :" + item.DisplayName + ", PlayedAt : " + item.PlayedAt.ToString());
-                var defaultStateDescription = new StateDescription()
-                {
-                    Label = item.DisplayName,
-                    IconPath = "ic_launcher_mediahub_138.png",
-                    Action = new MediaControlAction()
-                    {
-                        AppID = "org.tizen.xamediahub",
-                        FileUri = "file://" + item.FilePath,
-                    }
-                };
-                var mediaControlAction = defaultStateDescription.Action as MediaControlAction;
-
-                mediaControlAction?.ExtraData.Add("View By", "All");
-                mediaControlAction?.ExtraData.Add("Media type", "Video");
-                mediaControlAction?.ExtraData.Add("Media Id", item.MediaId);
-
-                var recentShortcutInfo = new RecentShortcutInfo();
-
-                recentShortcutInfo.ScreenshotPath = item.FilePath + ".tn";
-
-                if (item.ThumbnailPath != null)
-                {
-                    if (FileSystemUtils.Instance.IsFileExist(item.ThumbnailPath))
-                    {
-                        recentShortcutInfo.ScreenshotPath = item.ThumbnailPath;
-                    }
-                }
-
-                recentShortcutInfo.Type = RecentShortcutType.Media;
-                recentShortcutInfo.StateDescriptions.Add("default", defaultStateDescription);
-                recentShortcutInfo.CurrentStateDescription = defaultStateDescription;
-                recentShortcutInfo.Id = "org.tizen.xamediahub";
-                recentShortcutInfo.Date = item.PlayedAt.ToUniversalTime();
-                recentShortcutInfoList.Add(recentShortcutInfo);
-            }
-
-            recentShortcutInfoList.Sort();
-            if (recentShortcutInfoList.Count > MaxRecents)
-            {
-                recentShortcutInfoList.RemoveRange(MaxRecents, recentShortcutInfoList.Count - MaxRecents);
-            }
-
-            return recentShortcutInfoList;
-        }
-
-        /// <summary>
-        /// A method deletes a Recent Shortcut.
-        /// </summary>
-        /// <param name="appId">An application ID</param>
-        public static void Delete(string appId)
-        {
-            ApplicationManagerUtils.Instance.DeleteRecentApplication(appId);
-        }
-
-        /// <summary>
-        /// A method deletes all Recent Shortcuts.
-        /// </summary>
-        public static void DeleteAll()
-        {
-            ApplicationManagerUtils.Instance.DeleteAllRecentApplication();
-        }
-    }
-}
diff --git a/LibTVRefCommonPortable/Utils/SizeUtils.cs b/LibTVRefCommonPortable/Utils/SizeUtils.cs
deleted file mode 100644 (file)
index 4ac601d..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using System;
-
-namespace LibTVRefCommonPortable.Utils
-{
-    /// <summary>
-    /// A class provides Size metric related functions
-    /// </summary>
-    public class SizeUtils
-    {
-        /// <summary>
-        /// Base Screen Height
-        /// </summary>
-        private static int baseScreenWidth = 1920;
-
-        /// <summary>
-        /// Base Screen Height
-        /// </summary>
-        public static int BaseScreenWidth
-        {
-            get
-            {
-                return baseScreenWidth;
-            }
-        }
-
-        /// <summary>
-        /// Base Screen Height
-        /// </summary>
-        private static int baseScreenHeight = 1080;
-
-        /// <summary>
-        /// Base Screen Height
-        /// </summary>
-        public static int BaseScreenHeight
-        {
-            get
-            {
-                return baseScreenHeight;
-            }
-        }
-
-
-        /// <summary>
-        /// Screen Height
-        /// </summary>
-        public static int ScreenHeight { set; get; }
-
-        /// <summary>
-        /// Screen Width
-        /// </summary>
-        public static int ScreenWidth { set; get; }
-
-        /// <summary>
-        /// Device DPI
-        /// </summary>
-        public static double Dpi { set; get; }
-
-        /// <summary>
-        /// Font Scale ratio
-        /// </summary>
-        public static double ScaleRatio { set; get; }
-
-        /// <summary>
-        /// Platform Model enumerations
-        /// </summary>
-        private enum PlatformModel
-        {
-            TV,
-            Emulator,
-            Other,
-        }
-
-        /// <summary>
-        /// Platform Model Name
-        /// </summary>
-        private static PlatformModel ModelName = PlatformModel.TV;
-
-        /// <summary>
-        /// Set model name of running device.
-        /// </summary>
-        /// <param name="modelName">a model name</param>
-        public static void SetModelName(string modelName)
-        {
-            if (modelName == null)
-            {
-                return;
-            }
-
-            DebuggingUtils.Dbg("ModelName is " + modelName);
-            switch (modelName.ToLower()[0])
-            {
-                case 'e':
-                    ModelName = PlatformModel.Emulator;
-                    break;
-
-                default:
-                case 'x':
-                    ModelName = PlatformModel.Other;
-                    break;
-            }
-        }
-
-        /// <summary>
-        /// A method provides a converted height size.
-        /// </summary>
-        /// <param name="heightBaseSize">A height value in BaseScreen ratio</param>
-        /// <returns>A converted height size</returns>
-        public static int GetHeightSize(int heightBaseSize)
-        {
-            return Convert.ToInt32((double)((double)heightBaseSize / (double)BaseScreenHeight) * (double)(ScreenHeight));
-        }
-
-        /// <summary>
-        /// A method provides a converted width size.
-        /// </summary>
-        /// <param name="widthBaseSize">A width value in BaseScreen ratio</param>
-        /// <returns>A converted width size</returns>
-        public static int GetWidthSize(int widthBaseSize)
-        {
-            return Convert.ToInt32((double)((double)widthBaseSize / (double)BaseScreenWidth) * (double)(ScreenWidth));
-        }
-
-        /// <summary>
-        /// A method provides a converted width size by double type.
-        /// </summary>
-        /// <param name="widthBaseSize">A width value in BaseScreen ratio</param>
-        /// <returns>A converted width size</returns>
-        public static double GetWidthSizeDouble(double widthBaseSize)
-        {
-            return (double)(widthBaseSize / (double)BaseScreenWidth) * (double)(ScreenWidth);
-        }
-
-        /// <summary>
-        /// A method provides a converted font size.
-        /// </summary>
-        /// <param name="fontBaseSize">A base font size value in BaseScreen ratio</param>
-        /// <returns>A converted font size</returns>
-        public static int GetFontSize(int fontBaseSize)
-        {
-            switch (ModelName)
-            {
-                case PlatformModel.Emulator:
-                    //DebuggingUtils.Dbg("Emulator, Font size = " + fontBaseSize + " => " + ((double)((double)fontBaseSize / (double)BaseScreenHeight) * (double)ScreenHeight) * ScaleRatio);
-                    return Convert.ToInt32(((double)((double)fontBaseSize / (double)BaseScreenHeight) * (double)ScreenHeight) * ScaleRatio);
-
-                default:
-                case PlatformModel.Other:
-                case PlatformModel.TV:
-                    //DebuggingUtils.Dbg(String.Format("TV/Other, fontBaseSize = {0}, BaseScreenHeight = {1}, ScreenHeight = {2}, ScaleRatio = {3}", fontBaseSize, BaseScreenHeight, ScreenHeight, ScaleRatio));
-                    double tempAdjustmentRatio = 1D;
-                    return Convert.ToInt32(((double)((double)fontBaseSize / (double)BaseScreenHeight) * (double)ScreenHeight) * ScaleRatio * tempAdjustmentRatio);
-            }
-        }
-    }
-}
diff --git a/LibTVRefCommonPortable/Utils/TVHomeImpl.cs b/LibTVRefCommonPortable/Utils/TVHomeImpl.cs
deleted file mode 100755 (executable)
index 01cd0f2..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using LibTVRefCommonPortable.Models;
-
-namespace LibTVRefCommonPortable.Utils
-{
-    /// <summary>
-    /// A main instance class of the TVHome, TVApps to providing the Model functions.
-    /// This class is a kind of the Singleton class and includes major Model classes
-    /// such as the AppShortcutController, the RecentShortcutController, and the SettingShortcutcontroller
-    /// that are providing major functions related with TVHome, TVApps using scenarios.
-    /// </summary>
-    /// <see cref="AppShortcutController"/>
-    /// <see cref="RecentShortcutController"/>
-    /// <see cref="SettingShortcutController"/>
-    public class TVHomeImpl : ITVHome
-    {
-        /// <summary>
-        /// An instance of the TVHomeImpl
-        /// </summary>
-        private static readonly TVHomeImpl instance = new TVHomeImpl();
-
-        /// <summary>
-        /// An instance of the TVHomeImpl
-        /// </summary>
-        public static ITVHome GetInstance
-        {
-            get
-            {
-                return instance;
-            }
-        }
-
-        /// <summary>
-        /// A constructor of TVHomeImpl
-        /// Initializes Model implementations.
-        /// </summary>
-        private TVHomeImpl()
-        {
-
-        }
-
-        /// <summary>
-        /// An instance of the AppShortcutController
-        /// </summary>
-        private static readonly AppShortcutController appShortcutController = new AppShortcutController();
-        public AppShortcutController AppShortcutControllerInstance
-        {
-            get
-            {
-                return appShortcutController;
-            }
-        }
-
-        /// <summary>
-        /// An instance of the RecentShortcutController
-        /// </summary>
-        private static readonly RecentShortcutController recentShortcutController = new RecentShortcutController();
-        public RecentShortcutController RecentShortcutControllerInstance
-        {
-            get
-            {
-                return recentShortcutController;
-            }
-        }
-    }
-}
diff --git a/LibTVRefCommonPortable/packages.config b/LibTVRefCommonPortable/packages.config
deleted file mode 100755 (executable)
index 6356cba..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<packages>
-  <package id="Tizen.Xamarin.Forms.Extension" version="2.3.5-v00010" targetFramework="portable45-net45+win8+wp8+wpa81" />
-  <package id="Xamarin.Forms" version="2.3.5-r233-012" targetFramework="portable45-net45+win8+wp8+wpa81" />
-</packages>
\ No newline at end of file
diff --git a/LibTVRefCommonTizen/LibTVRefCommonTizen.csproj b/LibTVRefCommonTizen/LibTVRefCommonTizen.csproj
deleted file mode 100755 (executable)
index bd6be11..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProductVersion>8.0.30703</ProductVersion>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectTypeGuids>{2F98DAC9-6F16-457B-AED7-D43CAC379341};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ProjectGuid>{C558D279-897E-45E1-A10A-DECD788770F4}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>LibTVRefCommonTizen</RootNamespace>
-    <AssemblyName>LibTVRefCommonTizen</AssemblyName>
-    <FileAlignment>512</FileAlignment>
-    <DefaultLanguage>en-US</DefaultLanguage>
-  </PropertyGroup>
-  <PropertyGroup>
-    <TargetFrameworkIdentifier>DNXCore</TargetFrameworkIdentifier>
-    <TargetFrameworkVersion>v5.0</TargetFrameworkVersion>
-    <AddAdditionalExplicitAssemblyReferences>false</AddAdditionalExplicitAssemblyReferences>
-    <NuGetTargetMoniker>.NETCoreApp,Version=v1.0</NuGetTargetMoniker>
-    <NoStdLib>true</NoStdLib>
-    <NoWarn>$(NoWarn);1701</NoWarn>
-    <UseVSHostingProcess>false</UseVSHostingProcess>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>portable</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>portable</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <ItemGroup>
-    <None Include="LibTVRefCommonTizen.project.json" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="Ports\AppControlPort.cs" />
-    <Compile Include="Ports\ApplicationManagerPort.cs" />
-    <Compile Include="Ports\DbgPort.cs" />
-    <Compile Include="Ports\MediaContentPort.cs" />
-    <Compile Include="Ports\SystemSettingsPort.cs" />
-    <Compile Include="Ports\WindowPort.cs" />
-    <Compile Include="Ports\FileSystemPort.cs" />
-    <Compile Include="Ports\FileSystemWatcherPort.cs" />
-    <Compile Include="Ports\PackageManagerPort.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\LibTVRefCommonPortable\LibTVRefCommonPortable.csproj">
-      <Project>{67f9d3a8-f71e-4428-913f-c37ae82cdb24}</Project>
-      <Name>LibTVRefCommonPortable</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
-               Other similar extension points exist, see Microsoft.Common.targets.
-       <Target Name="BeforeBuild">
-       </Target>
-       <Target Name="AfterBuild">
-       </Target>
-       -->
-  <PropertyGroup>
-    <!-- https://github.com/dotnet/corefxlab/tree/master/samples/NetCoreSample and
-                        https://docs.microsoft.com/en-us/dotnet/articles/core/tutorials/target-dotnetcore-with-msbuild
-               -->
-    <!-- We don't use any of MSBuild's resolution logic for resolving the framework, so just set these two
-                        properties to any folder that exists to skip the GetReferenceAssemblyPaths task (not target) and
-                        to prevent it from outputting a warning (MSB3644).
-               -->
-    <_TargetFrameworkDirectories>$(MSBuildThisFileDirectory)</_TargetFrameworkDirectories>
-    <_FullFrameworkReferenceAssemblyPaths>$(MSBuildThisFileDirectory)</_FullFrameworkReferenceAssemblyPaths>
-    <AutoUnifyAssemblyReferences>true</AutoUnifyAssemblyReferences>
-  </PropertyGroup>
-  <ProjectExtensions>
-    <VisualStudio>
-      <FlavorProperties GUID="{2F98DAC9-6F16-457B-AED7-D43CAC379341}" Configuration="Debug|Any CPU">
-        <ProjectCommonFlavorCfg>
-          <excludeXamarinForms>True</excludeXamarinForms>
-        </ProjectCommonFlavorCfg>
-      </FlavorProperties>
-      <FlavorProperties GUID="{2F98DAC9-6F16-457B-AED7-D43CAC379341}" Configuration="Release|Any CPU">
-        <ProjectCommonFlavorCfg />
-      </FlavorProperties>
-    </VisualStudio>
-  </ProjectExtensions>
-</Project>
\ No newline at end of file
diff --git a/LibTVRefCommonTizen/LibTVRefCommonTizen.project.json b/LibTVRefCommonTizen/LibTVRefCommonTizen.project.json
deleted file mode 100755 (executable)
index 84dadd1..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "dependencies": {
-    "ElmSharp": "1.2.2",
-    "Microsoft.NETCore.App": "1.1.2",
-    "Tizen.Applications": "1.5.8",
-    "Tizen.Content.MediaContent": "1.0.20",
-    "Tizen.Multimedia": "1.2.0",
-    "Tizen.Multimedia.MediaPlayer": "1.0.2",
-    "Tizen.Xamarin.Forms.Extension": "2.3.5-v00015",
-    "Xamarin.Forms": "2.4.0-r266-001",
-    "Xamarin.Forms.Platform.Tizen": "2.3.5-r256-001"
-  },
-  "frameworks": {
-    "netcoreapp1.0": {
-      "imports": [
-        "portable-net45+wp80+win81+wpa81",
-        "netstandard1.6"
-      ]
-    }
-  }
-}
\ No newline at end of file
diff --git a/LibTVRefCommonTizen/Ports/AppControlPort.cs b/LibTVRefCommonTizen/Ports/AppControlPort.cs
deleted file mode 100644 (file)
index 45dad8f..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-using System;
-using LibTVRefCommonPortable.Utils;
-using Tizen.Applications;
-using System.Collections.Generic;
-
-namespace LibTVRefCommonTizen.Ports
-{
-    /// <summary>
-    /// Handles the AppControl APIs
-    /// </summary>
-    public class AppControlPort : IAppControl
-    {
-        /// <summary>
-        /// The app ID of TV reference home application
-        /// </summary>
-        public static string TVHomeAppID = "org.tizen.xahome";
-
-        /// <summary>
-        /// The app ID of TV reference apps-tray application
-        /// </summary>
-        public static string TVAppsAppID = "org.tizen.xaapps";
-
-        /// <summary>
-        /// Represents the operation to be performed between TVHome and TVApps
-        /// This operation is sent from TVHomes to TVApps
-        /// </summary>
-        public static string AddAppOperation = "http://xahome.tizen.org/appcontrol/operation/add_app";
-
-        /// <summary>
-        /// Represents the operation to be performed between TVHome and TVApps
-        /// This operation is sent from TVApps to TVHome
-        /// </summary>
-        public static string AppAddedNotifyOperation = "http://xahome.tizen.org/appcontrol/operation/app_added";
-
-        public static string KeyAddedAppID = "AddedAppID";
-
-        /// <summary>
-        /// Sends the launch request
-        /// </summary>
-        /// <param name="appId"> The app ID to explicitly launch</param>
-        /// <param name="extraData">The extra data for the app control</param>
-        /// <param name="fileUri">The file URI to be opened</param>
-        public void SendLaunchRequest(string appId, IDictionary<string, string> extraData = null, string fileUri = null)
-        {
-            try
-            {
-                AppControl appControl = new AppControl();
-
-                if (appId == null || appId.Length <= 0)
-                {
-                    DbgPort.E("The AppID is null or blank");
-                    return;
-                }
-
-                string value;
-
-                appControl.ApplicationId = appId;
-
-                if (extraData != null)
-                {
-                    foreach (var key in extraData.Keys)
-                    {
-                        if (extraData.TryGetValue(key, out value))
-                        {
-                            appControl.ExtraData.Add(key, value);
-                        }
-                    }
-                }
-
-                if (fileUri != null && fileUri.Length != 0)
-                {
-                    appControl.Uri = fileUri;
-                    appControl.LaunchMode = AppControlLaunchMode.Group;
-                    appControl.Mime = "video/*";
-                    appControl.Operation = AppControlOperations.View;
-                }
-
-                AppControl.SendLaunchRequest(appControl);
-            }
-            catch (InvalidOperationException)
-            {
-                DbgPort.E("Failed to create AppControl");
-            }
-        }
-
-        /// <summary>
-        /// Sends the 'Add PIN apps' operation to TV Apps
-        /// </summary>
-        public void SendAddAppRequestToApps()
-        {
-            AppControl appControl = new AppControl()
-            {
-                ApplicationId = TVAppsAppID,
-                Operation = AddAppOperation,
-            };
-            AppControl.SendLaunchRequest(appControl);
-        }
-
-        /// <summary>
-        /// Sends the pinned app ID to TV Home
-        /// </summary>
-        /// <param name="addedAddID">The app ID to add PIN list int the TV Home</param>
-        public void SendAppAddedNotificationToHome(string addedAddID)
-        {
-            AppControl appControl = new AppControl()
-            {
-                ApplicationId = TVHomeAppID,
-                Operation = AppAddedNotifyOperation,
-            };
-            appControl.ExtraData.Add(KeyAddedAppID, addedAddID);
-            AppControl.SendLaunchRequest(appControl);
-        }
-    }
-}
diff --git a/LibTVRefCommonTizen/Ports/ApplicationManagerPort.cs b/LibTVRefCommonTizen/Ports/ApplicationManagerPort.cs
deleted file mode 100755 (executable)
index 29511ef..0000000
+++ /dev/null
@@ -1,270 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using System;
-using System.Collections.Generic;
-using System.Threading.Tasks;
-using Tizen.Applications;
-using LibTVRefCommonPortable.Utils;
-
-namespace LibTVRefCommonTizen.Ports
-{
-    /// <summary>
-    /// Handles the ApplicationsManager APIs
-    /// </summary>
-    public class ApplicationManagerPort : IApplicationManagerAPIs
-    {
-        /// <summary>
-        /// Defines the default app icon
-        /// If the app icon is not exist, shows the default app icon
-        /// </summary>
-        private static String DefaultAppIcon = "AppIcon.png";
-
-        /// <summary>
-        /// The constructor of this class
-        /// Adds the EventHandler for ApplicationLaunched
-        /// </summary>
-        public ApplicationManagerPort()
-        {
-            ApplicationManager.ApplicationLaunched += new EventHandler<ApplicationLaunchedEventArgs>(OnApplicationLaunched);
-        }
-
-        /// <summary>
-        /// Arguments for the event that is raised when the application is launched
-        /// </summary>
-        /// <param name="sender">The source of the event</param>
-        /// <param name="args">An object that contains no event data</param>
-        /// <remarks>
-        /// https://msdn.microsoft.com/en-us/library/system.eventhandler(v=vs.110).aspx
-        /// </remarks>
-        void OnApplicationLaunched(object sender, EventArgs args)
-        {
-            ApplicationLaunchedEventArgs launchedEventArgs = args as ApplicationLaunchedEventArgs;
-            DbgPort.D(launchedEventArgs.ApplicationRunningContext.ApplicationId + " launched");
-        }
-
-        /// <summary>
-        /// Clears all recent applications
-        /// </summary>
-        public void DeleteAllRecentApplication()
-        {
-            RecentApplicationControl.DeleteAll();
-        }
-
-        /// <summary>
-        /// Removes the specified application with the app ID
-        /// </summary>
-        /// <param name="appId">An application ID that is removed</param>
-        public void DeleteRecentApplication(string appId)
-        {
-            IEnumerable<RecentApplicationInfo> recentApps = ApplicationManager.GetRecentApplications();
-            string pkgId = PackageManager.GetPackageIdByApplicationId(appId);
-
-            foreach (var item in recentApps)
-            {
-                if (item.PackageId.Equals(pkgId))
-                {
-                    RecentApplicationControl controller = item.Controller;
-                    controller.Delete();
-                }
-            }
-        }
-
-        /// <summary>
-        /// Gets the information of the recent applications
-        /// </summary>
-        /// <returns>The list of the recent applications</returns>
-        public IEnumerable<RecentApp> GetRecentApplications()
-        {
-            bool isNoRecentApps = true;
-            List<RecentApp> resultList = new List<RecentApp>();
-
-            try
-            {
-                IEnumerable<RecentApplicationInfo> recentApps = ApplicationManager.GetRecentApplications();
-
-                foreach (var app in recentApps)
-                {
-                    if (app.IsNoDisplay ||
-                        app.ApplicationId == null ||
-                        app.ApplicationId.Length < 1)
-                    {
-                        continue;
-                    }
-
-                    DbgPort.D("Recent App (" + app.Label + "): " + app.ApplicationId);
-
-                    resultList.Add(new RecentApp()
-                    {
-                        InstanceID = app.InstanceId,
-                        InstanceLabel = app.InstanceName,
-                        AppID = app.ApplicationId,
-                        Applabel = (app.Label == null || app.Label.Length < 1) ? "No Name" : app.Label,
-                        IconPath = app.IconPath,
-                        LaunchedTime = app.LaunchTime,
-                        Uri = app.Uri,
-                    });
-                    isNoRecentApps = false;
-                }
-            }
-            catch (InvalidOperationException)
-            {
-                DbgPort.E("Failed to get the information of the recent applications");
-                return null;
-            }
-
-            if (isNoRecentApps)
-            {
-                DbgPort.E("No Recent Apps!!!");
-            }
-
-            return resultList;
-        }
-
-        /// <summary>
-        /// Gets the information of the specified application with the app ID
-        /// </summary>
-        /// <param name="appID">The app Id to get</param>
-        /// <returns>The information of the installed application</returns>
-        public InstalledApp GetInstalledApplication(string appID)
-        {
-            InstalledApp result = null;
-            ApplicationInfo appInfo = null;
-
-            try
-            {
-                appInfo = ApplicationManager.GetInstalledApplication(appID);
-                if (appInfo == null)
-                {
-                    DbgPort.D("GetInstalledApplication failed");
-                    return null;
-                }
-
-                result = new InstalledApp()
-                {
-                    AppID = appInfo.ApplicationId,
-                    Applabel = appInfo.Label,
-                    IconPath = (System.IO.File.Exists(appInfo.IconPath)) ? appInfo.IconPath : DefaultAppIcon,
-                };
-            }
-            catch (Exception exception)
-            {
-                DbgPort.E("Failed to get the installed application(" + appID + ") :" + exception.Message);
-                return null;
-            }
-
-            return result;
-        }
-
-        /// <summary>
-        /// Gets the information of the installed applications asynchronously
-        /// </summary>
-        /// <returns>The list of the installed applications</returns>
-        public async Task<IEnumerable<InstalledApp>> GetAllInstalledApplication()
-        {
-            try
-            {
-                IList<InstalledApp> resultList = new List<InstalledApp>();
-                Task<IEnumerable<ApplicationInfo>> task = ApplicationManager.GetInstalledApplicationsAsync();
-
-                IEnumerable<ApplicationInfo> installedList = await task;
-
-                foreach (var appInfo in installedList)
-                {
-                    if (appInfo.Label == null ||
-                    appInfo.ApplicationId == null ||
-                    appInfo.IsNoDisplay)
-                    {
-                        continue;
-                    }
-
-                    Package pkgInfo = PackageManager.GetPackage(appInfo.PackageId);
-                    if (pkgInfo == null)
-                    {
-                        continue;
-                    }
-
-                    if (pkgInfo.IsSystemPackage)
-                    {
-                        continue;
-                    }
-
-                    resultList.Add(new InstalledApp
-                    {
-                        AppID = appInfo.ApplicationId,
-                        Applabel = appInfo.Label,
-                        IconPath = (System.IO.File.Exists(appInfo.IconPath)) ? appInfo.IconPath : DefaultAppIcon,
-                        InstalledTime = new DateTime(pkgInfo.InstalledTime),
-                    });
-                }
-
-                return resultList;
-            }
-            catch (Exception exception)
-            {
-                DbgPort.E("Failed to get the all installed applications : " + exception.Message);
-                return null;
-            }
-        }
-
-        /// <summary>
-        /// Checks whether application is removable
-        /// </summary>
-        /// <param name="appID">The app ID to get</param>
-        /// <returns>If the application is removable, true; otherwise, false</returns>
-        public bool GetAppInfoRemovable(string appID)
-        {
-            ApplicationInfo appInfo = null;
-
-            try
-            {
-                appInfo = ApplicationManager.GetInstalledApplication(appID);
-                if (appInfo == null)
-                {
-                    DbgPort.D("Failed to get the installed application(" + appID + ")");
-                    return false;
-                }
-
-                return !appInfo.IsPreload;
-            }
-            catch (Exception exception)
-            {
-                DbgPort.E("Failed to get the installed application(" + appID + ") :" + exception.Message);
-                return false;
-            }
-        }
-
-        /// <summary>
-        /// Gets the app ID by the app label
-        /// </summary>
-        /// <param name="appLabel">the app label to get</param>
-        /// <returns>the app ID of the app label</returns>
-        public async Task<string> GetAppIDbyAppLabel(string appLabel)
-        {
-            IEnumerable<ApplicationInfo> installedList = await ApplicationManager.GetInstalledApplicationsAsync();
-
-            foreach (var app in installedList)
-            {
-                if (app != null && app.Label.Equals(appLabel))
-                {
-                    return app.ApplicationId;
-                }
-            }
-
-            return null;
-        }
-    }
-}
\ No newline at end of file
diff --git a/LibTVRefCommonTizen/Ports/DbgPort.cs b/LibTVRefCommonTizen/Ports/DbgPort.cs
deleted file mode 100644 (file)
index 64eb213..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using Xamarin.Forms.Platform.Tizen.Native;
-using Tizen;
-using LibTVRefCommonPortable.Utils;
-using System.Runtime.CompilerServices;
-using System;
-
-namespace LibTVRefCommonTizen.Ports
-{
-    /// <summary>
-    /// Platform dependent implementation for the Logging and the Popup displaying
-    /// DbgPort is implementing IDebuggingAPIs which is defined in Calculator shared project
-    /// </summary>
-    /// <remarks>
-    /// Please refer to Xamarin Dependency Service
-    /// https://developer.xamarin.com/guides/xamarin-forms/dependency-service/introduction/
-    /// </remarks>
-    public class DbgPort : IDebuggingAPIs
-    {
-        /// <summary>
-        /// A TV Home Windows reference
-        /// This is used to display a Dialog
-        /// </summary>
-        public static Xamarin.Forms.Platform.Tizen.Native.Window MainWindow
-        {
-            set;
-            get;
-        }
-
-        /// <summary>
-        /// A Logging Tag
-        /// </summary>
-        public static string TAG = "home";
-
-
-        /// <summary>
-        /// A flag which enables console log writting
-        /// </summary>
-        private static readonly bool IsNeedToShowInConsole = true;
-
-        public static string Prefix
-        {
-            set;
-            get;
-        }
-
-        /// <summary>
-        /// Displays a log message which developer want to check
-        /// </summary>
-        /// <param name="message"> A debugging message </param>
-        /// <param name="file"> A file name that debugging message is exist </param>
-        /// <param name="func"> A function name that debugging message is exist </param>
-        /// <param name="line"> A line number that debugging message is exist </param>
-        public void Dbg(string message, String file, String func, Int32 line)
-        {
-            D(message, file, func, line);
-        }
-
-        /// <summary>
-        /// </summary>
-        /// <param name="message"> A debugging message </param>
-        /// <param name="file"> A file name that debugging message is exist </param>
-        /// <param name="func"> A function name that debugging message is exist </param>
-        /// <param name="line"> A line number that debugging message is exist </param>
-        public void Err(string message, String file, String func, Int32 line)
-        {
-            E(message, file, func, line);
-        }
-
-        /// <summary>
-        /// Displays a dialog with a given message
-        /// </summary>
-        /// <param name="message"> A debugging message </param>
-        public void Popup(string message)
-        {
-            if (MainWindow == null)
-            {
-                return;
-            }
-            //bool result = await Xamarin.Forms.Page.DisplayAlert("Calculator", message, "OK");
-
-            Dialog toast = new Dialog(MainWindow);
-            toast.Title = message;
-            toast.Timeout = 2.3;
-            toast.BackButtonPressed += (s, e) =>
-            {
-                toast.Dismiss();
-            };
-            toast.Show();
-        }
-
-        /// <summary>
-        /// Displays a log message which developer want to check
-        /// </summary>
-        /// <param name="message"> A debugging message </param>
-        /// <param name="file"> A file name that debugging message is exist </param>
-        /// <param name="func"> A function name that debugging message is exist </param>
-        /// <param name="line"> A line number that debugging message is exist </param>
-        public static void D(string message, [CallerFilePath] System.String file = "", [CallerMemberName] System.String func = "", [CallerLineNumber] System.Int32 line = 0)
-        {
-            Log.Debug(TAG, Prefix + ", " + message, file, func, line);
-            if (IsNeedToShowInConsole)
-            {
-                Console.WriteLine(String.Format("{0}, {1}:{2},{3}", message, file.Substring(file.LastIndexOf("\\")), line, func));
-            }
-
-        }
-
-        /// <summary>
-        /// Displays an error log message
-        /// </summary>
-        /// <param name="message"> A debugging message </param>
-        /// <param name="file"> A file name that debugging message is exist </param>
-        /// <param name="func"> A function name that debugging message is exist </param>
-        /// <param name="line"> A line number that debugging message is exist </param>
-        public static void E(string message, [CallerFilePath] System.String file = "", [CallerMemberName] System.String func = "", [CallerLineNumber] System.Int32 line = 0)
-        {
-            Log.Error(TAG, Prefix + ", " + message, file, func, line);
-            if (IsNeedToShowInConsole)
-            {
-                Console.WriteLine(String.Format("{0}, {1}:{2},{3}", message, file.Substring(file.LastIndexOf("\\")), line, func));
-            }
-        }
-    }
-}
\ No newline at end of file
diff --git a/LibTVRefCommonTizen/Ports/FileSystemPort.cs b/LibTVRefCommonTizen/Ports/FileSystemPort.cs
deleted file mode 100644 (file)
index 3479317..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using System;
-using System.IO;
-using LibTVRefCommonPortable.Utils;
-
-namespace LibTVRefCommonTizen.Ports
-{
-    /// <summary>
-    /// Handles FileSystem APIs
-    /// </summary>
-    public class FileSystemPort : IFileSystemAPIs
-    {
-        /// <summary>
-        /// A directory path which should be used for app data storing.
-        /// </summary>
-        public static string AppDataStroagePath { private get; set; }
-
-        /// <summary>
-        /// A property of AppDataStroagePath to be exported to PCL.
-        /// </summary>
-        public string AppDataStorage
-        {
-            get
-            {
-                return AppDataStroagePath ?? "";
-            }
-        }
-
-        public static string AppResourceStoragePath { private get; set; }
-
-        public string AppResourceStorage
-        {
-            get
-            {
-                return AppResourceStoragePath ?? "";
-            }
-        }
-
-        /// <summary>
-        /// A directory path which should be used for sharing between apps.
-        /// </summary>
-        public static string PlatformShareStroagePath { private get; set; }
-
-        /// <summary>
-        /// A property of PlatformShareStroagePath to be exported to PCL.
-        /// </summary>
-        public string PlatformShareStorage
-        {
-            get
-            {
-                return PlatformShareStroagePath ?? "";
-            }
-        }
-
-        /// <summary>
-        /// Opens the given file
-        /// </summary>
-        /// <param name="filePath">A relative or absolute path for the file that the current FileStream object will encapsulate</param>
-        /// <param name="mode">A constant that determines how to open or create the file</param>
-        /// <returns>A generic view of a sequence of bytes</returns>
-        public Stream OpenFile(string filePath, UtilFileMode mode)
-        {
-            Stream fileStream = null;
-            DbgPort.D("[" + mode.ToString() + "] Opening the file, " + filePath);
-            try
-            {
-                fileStream = new FileStream(filePath, (FileMode)mode);
-            }
-            catch (Exception exception)
-            {
-                DbgPort.E("Exception!! " + exception.Message);
-            }
-
-            return fileStream;
-        }
-
-        /// <summary>
-        /// Flushes the given steam
-        /// </summary>
-        /// <param name="stream">The stream to flush</param>
-        public void Flush(Stream stream)
-        {
-            var fileStream = stream as FileStream;
-            fileStream.Flush();
-        }
-
-        /// <summary>
-        /// Closes the given stream
-        /// </summary>
-        /// <param name="stream">The stream to close</param>
-        public void CloseFile(Stream stream)
-        {
-            var fileStream = stream as FileStream;
-            fileStream.Dispose();
-        }
-
-        /// <summary>
-        /// Checks whether the given file exist
-        /// </summary>
-        /// <param name="fileName">The file to check</param>
-        /// <returns>
-        /// true if the caller has the required permissions and path contains the name of an existing file, otherwise, false
-        /// </returns>
-        /// <remarks>
-        /// https://msdn.microsoft.com/en-us/library/system.io.file.exists(v=vs.110).aspx
-        /// </remarks>
-        public bool IsFileExist(String fileName)
-        {
-            return File.Exists(fileName);
-        }
-
-        /// <summary>
-        /// Checks whether the given file ready
-        /// </summary>
-        /// <param name="fileName">The file to check</param>
-        /// <returns>
-        /// true if the file is ready to open, otherwise, false
-        /// </returns>
-        /// <remarks>
-        /// https://msdn.microsoft.com/en-us/library/y973b725(v=vs.110).aspx
-        /// </remarks>
-        public bool IsFileReady(String fileName)
-        {
-            try
-            {
-                using (FileStream inputStream = File.Open(fileName, FileMode.Open, FileAccess.Read, FileShare.None))
-                {
-                    return (inputStream.Length > 0) ? true : false;
-                }
-            }
-            catch (Exception)
-            {
-                return false;
-            }
-        }
-    }
-}
diff --git a/LibTVRefCommonTizen/Ports/FileSystemWatcherPort.cs b/LibTVRefCommonTizen/Ports/FileSystemWatcherPort.cs
deleted file mode 100755 (executable)
index 731690a..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-using System;
-using System.IO;
-using LibTVRefCommonPortable.Utils;
-using LibTVRefCommonPortable.DataModels;
-
-namespace LibTVRefCommonTizen.Ports
-{
-    /// <summary>
-    /// Handles FileSystemWatcher APIs
-    /// </summary>
-    public class FileSystemWatcherPort : IFileSystemWatcherAPIs
-    {
-        static FileSystemWatcher watcher;
-        public event EventHandler<EventArgs> CustomChanged;
-        private FileSystemEventCustomArgs args;
-
-        /// <summary>
-        /// Listens to the file system change notifications and raises events when a directory, or file in a directory, changes
-        /// If the 'pinned_apps_info.xml' is created, changed, or deleted, invokes event handler method
-        /// </summary>
-        /// <param name="path">A file path which has the target file</param>
-        /// <param name="fileName">A file name to be watching</param>
-        /// <remarks>
-        /// https://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher(v=vs.110).aspx
-        /// </remarks>
-        public void Run(String path, String fileName)
-        {
-            if (File.Exists(path + fileName) == false)
-            {
-                DbgPort.E("Watching File is not exist!!!" + path + fileName);
-            }
-
-            watcher = new FileSystemWatcher();
-            watcher.Path = path;
-            watcher.NotifyFilter = NotifyFilters.LastWrite;
-            watcher.Filter = fileName;
-
-            watcher.Created += new FileSystemEventHandler(WatcherChanged);
-            watcher.Changed += new FileSystemEventHandler(WatcherChanged);
-            watcher.Deleted += new FileSystemEventHandler(WatcherChanged);
-            watcher.IncludeSubdirectories = true;
-            watcher.EnableRaisingEvents = true;
-        }
-
-        /// <summary>
-        /// Represents the method that will handle the Changed, Created, or Deleted event of a FileSystemWatcher class
-        /// </summary>
-        /// <param name="sender">The source of the event</param>
-        /// <param name="e">The FileSystemEventArgs that contains the event data</param>
-        /// <remarks>
-        /// https://msdn.microsoft.com/en-us/library/system.io.filesystemeventhandler(v=vs.110).aspx
-        /// </remarks>
-        private void WatcherChanged(object sender, FileSystemEventArgs e)
-        {
-            args = new FileSystemEventCustomArgs((WatcherType)e.ChangeType, e.FullPath, e.Name);
-            if (e.ChangeType.Equals(WatcherChangeTypes.Changed))
-            {
-                CustomChanged.Invoke(this, args);
-            }
-
-            DbgPort.D(e.ChangeType + ", " + e.Name);
-        }
-    }
-}
diff --git a/LibTVRefCommonTizen/Ports/MediaContentPort.cs b/LibTVRefCommonTizen/Ports/MediaContentPort.cs
deleted file mode 100644 (file)
index dba51f5..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using System;
-using System.Collections.Generic;
-using Tizen.Content.MediaContent;
-using LibTVRefCommonPortable.Utils;
-
-namespace LibTVRefCommonTizen.Ports
-{
-    /// <summary>
-    /// Handles the MediaContent APIs
-    /// </summary>
-    public class MediaContentPort : IMediaContentAPIs
-    {
-        /// <summary>
-        /// The constructor of this class
-        /// Connects content database
-        /// </summary>
-        public MediaContentPort()
-        {
-            DbgPort.D("MediaContentPort");
-            ContentDatabase.Connect();
-        }
-
-        /// <summary>
-        /// A method for getting recently played media content list
-        /// </summary>
-        /// <param name="limitation">Maximum count of list</param>
-        /// <returns>The recently played media content list</returns>
-        public IEnumerable<RecentlyPlayedMedia> GetRecentlyPlayedMedia(int limitation)
-        {
-            var recentlyPlayedVideos = new List<RecentlyPlayedMedia>();
-            var contentFilter = new ContentFilter();
-
-            contentFilter.OrderKey = "MEDIA_LAST_PLAYED_TIME";
-            contentFilter.Order = ContentOrder.Desc;
-            contentFilter.Condition = "MEDIA_TYPE=1 AND MEDIA_LAST_PLAYED_TIME!=0";
-            contentFilter.Offset = 0;
-            contentFilter.Count = limitation;
-
-            IEnumerable<MediaInformation> mediaInformations = new List<MediaInformation>();
-
-            try
-            {
-                mediaInformations = ContentManager.Database.SelectAll<MediaInformation>(contentFilter);
-            }
-            catch (Exception exception)
-            {
-                DbgPort.E(exception.Message);
-            }
-
-            foreach (var mediaInformation in mediaInformations)
-            {
-                recentlyPlayedVideos.Add(
-                    new RecentlyPlayedMedia()
-                    {
-                        MediaId = mediaInformation.MediaId,
-                        ThumbnailPath = mediaInformation.ThumbnailPath,
-                        DisplayName = mediaInformation.DisplayName,
-                        PlayedAt = mediaInformation.PlayedAt,
-                        FilePath = mediaInformation.FilePath,
-                    });
-            }
-
-            return recentlyPlayedVideos;
-        }
-    }
-}
diff --git a/LibTVRefCommonTizen/Ports/PackageManagerPort.cs b/LibTVRefCommonTizen/Ports/PackageManagerPort.cs
deleted file mode 100644 (file)
index 4004d1d..0000000
+++ /dev/null
@@ -1,273 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using System.Collections.Generic;
-using Tizen.Applications;
-
-using LibTVRefCommonPortable.Utils;
-using System;
-
-namespace LibTVRefCommonTizen.Ports
-{
-    /// <summary>
-    /// Handles PackageManager APIs
-    /// </summary>
-    public class PackageManagerPort : IPackageManager
-    {
-        /// <summary>
-        /// An interface for platform notification
-        /// </summary>
-        private static IPlatformNotification Notification
-        {
-            get;
-            set;
-        }
-
-        /// <summary>
-        /// The constructor for this class
-        /// </summary>
-        public PackageManagerPort()
-        {
-
-        }
-
-        /// <summary>
-        /// Registers a callback function to be invoked when the package is installed or uninstalled
-        /// </summary>
-        /// <param name="app">The instance of TVApps</param>
-        public static void RegisterCallbacks(IPlatformNotification app)
-        {
-            Notification = app;
-            PackageManager.InstallProgressChanged += PackageManager_InstallProgressChanged;
-            PackageManager.UninstallProgressChanged += PackageManager_UninstallProgressChanged;
-        }
-
-        /// <summary>
-        /// Unregisters the callback function
-        /// </summary>
-        public static void UnregisterCallbacks()
-        {
-            Notification = null;
-            PackageManager.InstallProgressChanged -= PackageManager_InstallProgressChanged;
-            PackageManager.UninstallProgressChanged -= PackageManager_UninstallProgressChanged;
-        }
-
-        /// <summary>
-        /// UninstallProgressChanged event
-        /// This event is occurred when a package is getting uninstalled and the progress of the request to the package manager changes
-        /// </summary>
-        /// <param name="sender">The source of the event</param>
-        /// <param name="e">An object that contains no event data</param>
-        private static void PackageManager_UninstallProgressChanged(object sender, PackageManagerEventArgs e)
-        {
-            if (e.State == PackageEventState.Completed)
-            {
-                if (Notification != null)
-                {
-                    Notification.OnAppUninstalled(e.PackageId);
-                }
-            }
-        }
-
-        /// <summary>
-        /// InstallProgressChanged event
-        /// This event is occurred when a package is getting installed and the progress of the request to the package manager changes
-        /// </summary>
-        /// <param name="sender">The source of the event</param>
-        /// <param name="e">An object that contains no event data</param>
-        private static void PackageManager_InstallProgressChanged(object sender, PackageManagerEventArgs e)
-        {
-            if (e.State == PackageEventState.Completed)
-            {
-                Notification?.OnAppInstalled(e.PackageId);
-            }
-        }
-
-        /// <summary>
-        /// Retrieves package information of all installed packages
-        /// </summary>
-        /// <returns>The list of packages</returns>
-        public Dictionary<string, string[]> GetPackageList()
-        {
-            Dictionary<string, string[]> pkgList = new Dictionary<string, string[]>();
-            IEnumerable<Package> packages = PackageManager.GetPackages();
-
-            string[] result;
-
-            foreach (var item in packages)
-            {
-                if (item.Id == null)
-                {
-                    continue;
-                }
-
-                result = new string[3];
-                var itemLabel = "No Name";
-
-                if (!string.IsNullOrEmpty(item.Label))
-                {
-                    itemLabel = item.Label;
-                }
-
-                result[0] = itemLabel;
-                result[1] = item.Id;
-                result[2] = (System.IO.File.Exists(item.IconPath)) ? item.IconPath : "AppIcon.png";
-
-                pkgList.Add(itemLabel, result);
-            }
-
-            return pkgList;
-        }
-
-        /// <summary>
-        /// Gets the package label for the given package
-        /// </summary>
-        /// <param name="pkgID">The ID of the package</param>
-        /// <returns>The package label for the given package ID</returns>
-        public string GetPackageLabel(string pkgID)
-        {
-            try
-            {
-                Package tempItem = PackageManager.GetPackage(pkgID);
-
-                if(tempItem == null)
-                {
-                    return null;
-                }
-                else
-                {
-                    return tempItem.Label;
-                }
-            }
-            catch (Exception e)
-            {
-                DbgPort.E("Failed to get package information(" + pkgID + ") : " + e.Message);
-
-                return null;
-            }
-        }
-
-        /// <summary>
-        /// Gets the pacakge ID by the app ID
-        /// </summary>
-        /// <param name="appID">The app ID to get</param>
-        /// <returns>The pacakge ID that contains given app ID</returns>
-        public string GetPackageIDByAppID(string appID)
-        {
-            try
-            {
-                return PackageManager.GetPackageIdByApplicationId(appID);
-            }
-            catch (Exception e)
-            {
-                DbgPort.E("Failed to get the package ID by app ID(" + appID + ") : " + e.Message);
-
-                return null;
-            }
-        }
-
-        /// <summary>
-        /// Uninstalls package with the given package
-        /// </summary>
-        /// <param name="pkgID">The ID of the package to be uninstalled</param>
-        /// <returns>Returns true if uninstalltion request is successful, false otherwise</returns>
-        public bool UninstallPackage(string pkgID)
-        {
-            try
-            {
-                Package tempItem = PackageManager.GetPackage(pkgID);
-                if(tempItem == null)
-                {
-                    return false;
-                }
-                else
-                {
-                    return PackageManager.Uninstall(tempItem.Id, tempItem.PackageType);
-                }
-            }
-            catch (Exception e)
-            {
-                DbgPort.E("Failed to get package information(" + pkgID + ") : " + e.Message);
-
-                return false;
-            }
-
-        }
-
-        /// <summary>
-        /// Uninstalls package with the given  app ID
-        /// </summary>
-        /// <param name="appID">The app ID to be uninstalled<</param>
-        /// <returns>Returns true if uninstallation request is successful, false otherwise</returns>
-        public bool UninstallPackageByAppID(string appID)
-        {
-            try
-            {
-                string pkgID = PackageManager.GetPackageIdByApplicationId(appID);
-
-                return UninstallPackage(pkgID);
-            }
-            catch (Exception e)
-            {
-                DbgPort.E("Failed to uninstall by AppID(" + appID + ") : " + e.Message);
-
-                return false;
-            }
-        }
-
-        /// <summary>
-        /// Gets applications list by the package ID
-        /// </summary>
-        /// <param name="pkgID">The package ID to get applications</param>
-        /// <returns>The list of applications</returns>
-        public List<string> GetApplicationsByPkgID(string pkgID)
-        {
-            try
-            {
-                int index = 0;
-                List<string> apps = new List<string>();
-                Package pkg = PackageManager.GetPackage(pkgID);
-                if(pkg == null)
-                {
-                    return null;
-                }
-                IEnumerable<ApplicationInfo> appsList = pkg.GetApplications();
-                if (appsList == null)
-                {
-                    DbgPort.E("Failed to get apps list(" + pkgID + ")");
-
-                    return null;
-                }
-
-                foreach (var app in appsList)
-                {
-                    apps.Add(app.ApplicationId);
-                    DbgPort.D("[" + index + "] " + app.ApplicationId);
-                    index++;
-                }
-
-                return apps;
-            }
-            catch (Exception e)
-            {
-                DbgPort.E("Failed to get the package information(" + pkgID + ") : " + e.Message);
-
-                return new List<string>();
-            }
-
-        }
-    }
-}
\ No newline at end of file
diff --git a/LibTVRefCommonTizen/Ports/SystemSettingsPort.cs b/LibTVRefCommonTizen/Ports/SystemSettingsPort.cs
deleted file mode 100644 (file)
index 8bba7c7..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using System;
-using System.Runtime.InteropServices;
-using LibTVRefCommonPortable.Utils;
-using Xamarin.Forms.Platform.Tizen.Native;
-
-
-namespace LibTVRefCommonTizen.Ports
-{
-    /// <summary>
-    /// Handles the SystemSettings APIs
-    /// </summary>
-    public class SystemSettingsPort : ISystemSettings
-    {
-        public static readonly int ErrorNone = 0;
-        public static readonly string KeyModelName = "http://tizen.org/system/model_name";
-
-        internal class SystemInfo
-        {
-            [DllImport("libcapi-system-info.so.0", EntryPoint = "system_info_get_platform_string", CallingConvention = CallingConvention.Cdecl)]
-            internal static extern int SystemInfoGetPlatformString(string key, out string value);
-        }
-
-        /// <summary>
-        /// A method for getting system model name.
-        /// </summary>
-        /// <param name="modelName">The system model name</param>
-        /// <returns>The result whether getting the modelName is done</returns>
-        public bool GetSystemModelName(out string modelName)
-        {
-            if (SystemInfo.SystemInfoGetPlatformString(KeyModelName, out modelName) != ErrorNone)
-            {
-                modelName = "";
-                return false;
-            }
-
-            return true;
-        }
-    }
-}
diff --git a/LibTVRefCommonTizen/Ports/WindowPort.cs b/LibTVRefCommonTizen/Ports/WindowPort.cs
deleted file mode 100644 (file)
index f2213d3..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using System;
-using System.Runtime.InteropServices;
-using LibTVRefCommonPortable.Utils;
-using Xamarin.Forms.Platform.Tizen.Native;
-
-namespace LibTVRefCommonTizen.Ports
-{
-    /// <summary>
-    /// Handles Window APIs
-    /// </summary>
-    public class WindowPort : IWindowAPIs
-    {
-        internal class ElmWindow
-        {
-            [DllImport("libelementary.so.1", EntryPoint = "elm_win_keygrab_set", CallingConvention = CallingConvention.Cdecl)]
-            internal static extern IntPtr ElmWinKeygrabSet(IntPtr obj, string key, ulong modifiers, ulong not_modifiers, int proirity, int grab_mode);
-
-            [DllImport("libelementary.so.1", EntryPoint = "elm_win_iconified_set", CallingConvention = CallingConvention.Cdecl)]
-            internal static extern void ElmWinIconfiedSet(IntPtr obj, bool iconified);
-
-            [DllImport("libelementary.so.1", EntryPoint = "elm_win_iconified_get", CallingConvention = CallingConvention.Cdecl)]
-            internal static extern bool ElmWinIconifiedGet(IntPtr obj);
-        }
-
-        /// <summary>
-        /// The main window of the App
-        /// </summary>
-        static private Window mainWindow;
-        public Window MainWindow
-        {
-            set
-            {
-                mainWindow = value;
-            }
-        }
-
-        /// <summary>
-        /// Sets the keygrab of the Elm_Win object
-        /// </summary>
-        /// <param name="key">
-        /// keyname string to set keygrab
-        /// </param>
-        public void SetKeyGrabExclusively(string key)
-        {
-            if (mainWindow != null)
-            {
-                ElmWindow.ElmWinKeygrabSet((IntPtr)mainWindow, key, 0, 0, 0, 1024);
-            }
-        }
-
-        /// <summary>
-        /// Sets the iconified state of a window
-        /// </summary>
-        /// <param name="iconified">
-        /// If true the window is iconified, otherwise false
-        /// </param>
-        public void SetIconified(bool iconified)
-        {
-            if (mainWindow != null)
-            {
-                ElmWindow.ElmWinIconfiedSet((IntPtr)mainWindow, iconified);
-            }
-        }
-
-        /// <summary>
-        /// Gets the iconified state of a window
-        /// </summary>
-        /// <returns>
-        /// true if the window is iconified, otherwise false
-        /// </returns>
-        public bool GetIconified()
-        {
-            return (mainWindow != null) ? ElmWindow.ElmWinIconifiedGet((IntPtr)mainWindow) : false;
-        }
-
-        /// <summary>
-        /// Activates the window object
-        /// </summary>
-        /// <remarks>
-        /// This is just a request that a Window Manager may ignore, so calling this function does not ensure in any way that the window is going to be the active one after it
-        /// </remarks>
-        public void Active()
-        {
-            mainWindow?.Active();
-        }
-    }
-}
diff --git a/LibTVRefCommonTizen/Properties/AssemblyInfo.cs b/LibTVRefCommonTizen/Properties/AssemblyInfo.cs
deleted file mode 100644 (file)
index cc5ece9..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("LibTVRefCommonTizen")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("LibTVRefCommonTizen")]
-[assembly: AssemblyCopyright("Copyright ©  2017")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components.  If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("c558d279-897e-45e1-a10a-decd788770f4")]
-
-// Version information for an assembly consists of the following four values:
-//
-//      Major Version
-//      Minor Version
-//      Build Number
-//      Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/LibTVRefCommonTizen/Settings.StyleCop b/LibTVRefCommonTizen/Settings.StyleCop
deleted file mode 100644 (file)
index 837530c..0000000
+++ /dev/null
@@ -1,722 +0,0 @@
-<StyleCopSettings Version="105">
-  <GlobalSettings>
-    <StringProperty Name="MergeSettingsFiles">NoMerge</StringProperty>
-  </GlobalSettings>
-  <Analyzers>
-    <Analyzer AnalyzerId="StyleCop.CSharp.DocumentationRules">
-      <Rules>
-        <Rule Name="ElementsMustBeDocumented">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementDocumentationMustHaveSummaryText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="EnumerationItemsMustBeDocumented">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DocumentationMustContainValidXml">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementDocumentationMustHaveSummary">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="PartialElementDocumentationMustHaveSummary">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementDocumentationMustNotHaveDefaultSummary">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="VoidReturnValueMustNotBeDocumented">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="GenericTypeParametersMustBeDocumented">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="GenericTypeParametersMustBeDocumentedPartialClass">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="GenericTypeParameterDocumentationMustMatchTypeParameters">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="GenericTypeParameterDocumentationMustDeclareParameterName">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="GenericTypeParameterDocumentationMustHaveText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="PropertySummaryDocumentationMustMatchAccessors">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="PropertySummaryDocumentationMustOmitSetAccessorWithRestrictedAccess">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementDocumentationMustNotBeCopiedAndPasted">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="SingleLineCommentsMustNotUseDocumentationStyleSlashes">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DocumentationTextMustNotBeEmpty">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DocumentationTextMustContainWhitespace">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DocumentationMustMeetCharacterPercentage">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ConstructorSummaryDocumentationMustBeginWithStandardText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DestructorSummaryDocumentationMustBeginWithStandardText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DocumentationHeadersMustNotContainBlankLines">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="IncludedDocumentationXPathDoesNotExist">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="IncludeNodeDoesNotContainValidFileAndPath">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="InheritDocMustBeUsedWithInheritingClass">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementDocumentationMustBeSpelledCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileMustHaveHeader">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileHeaderMustShowCopyright">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileHeaderMustHaveCopyrightText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileHeaderMustContainFileName">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileHeaderFileNameDocumentationMustMatchFileName">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileHeaderMustHaveValidCompanyText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileHeaderFileNameDocumentationMustMatchTypeName">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-      </Rules>
-      <AnalyzerSettings />
-    </Analyzer>
-    <Analyzer AnalyzerId="StyleCop.CSharp.NamingRules">
-      <Rules>
-        <Rule Name="ConstFieldNamesMustBeginWithUpperCaseLetter">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FieldNamesMustBeginWithLowerCaseLetter">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FieldNamesMustNotContainUnderscore">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementMustBeginWithLowerCaseLetter">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="NonPrivateReadonlyFieldsMustBeginWithUpperCaseLetter">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FieldNamesMustNotUseHungarianNotation">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="AccessibleFieldsMustBeginWithUpperCaseLetter">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="VariableNamesMustNotBePrefixed">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FieldNamesMustNotBeginWithUnderscore">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="StaticReadonlyFieldsMustBeginWithUpperCaseLetter">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-      </Rules>
-      <AnalyzerSettings />
-    </Analyzer>
-    <Analyzer AnalyzerId="StyleCop.CSharp.LayoutRules">
-      <Rules>
-        <Rule Name="AllAccessorsMustBeMultiLineOrSingleLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="OpeningCurlyBracketsMustNotBeFollowedByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementDocumentationHeadersMustNotBeFollowedByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="CodeMustNotContainMultipleBlankLinesInARow">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ClosingCurlyBracketsMustNotBePrecededByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="OpeningCurlyBracketsMustNotBePrecededByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ChainedStatementBlocksMustNotBePrecededByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="WhileDoFooterMustNotBePrecededByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="SingleLineCommentsMustNotBeFollowedByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementDocumentationHeaderMustBePrecededByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="SingleLineCommentMustBePrecededByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementsMustBeSeparatedByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="CodeMustNotContainBlankLinesAtStartOfFile">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="CodeMustNotContainBlankLinesAtEndOfFile">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-      </Rules>
-      <AnalyzerSettings />
-    </Analyzer>
-    <Analyzer AnalyzerId="StyleCop.CSharp.MaintainabilityRules">
-      <Rules>
-        <Rule Name="AccessModifierMustBeDeclared">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FieldsMustBePrivate">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="CodeAnalysisSuppressionMustHaveJustification">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DebugAssertMustProvideMessageText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DebugFailMustProvideMessageText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileMayOnlyContainASingleClass">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileMayOnlyContainASingleNamespace">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="StatementMustNotUseUnnecessaryParenthesis">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ArithmeticExpressionsMustDeclarePrecedence">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ConditionalExpressionsMustDeclarePrecedence">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="RemoveDelegateParenthesisWhenPossible">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="AttributeConstructorMustNotUseUnnecessaryParenthesis">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="RemoveUnnecessaryCode">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-      </Rules>
-      <AnalyzerSettings />
-    </Analyzer>
-    <Analyzer AnalyzerId="StyleCop.CSharp.OrderingRules">
-      <Rules>
-        <Rule Name="UsingDirectivesMustBePlacedWithinNamespace">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementsMustAppearInTheCorrectOrder">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementsMustBeOrderedByAccess">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ConstantsMustAppearBeforeFields">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="StaticElementsMustAppearBeforeInstanceElements">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DeclarationKeywordsMustFollowOrder">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ProtectedMustComeBeforeInternal">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="PropertyAccessorsMustFollowOrder">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="EventAccessorsMustFollowOrder">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="StaticReadonlyElementsMustAppearBeforeStaticNonReadonlyElements">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="InstanceReadonlyElementsMustAppearBeforeInstanceNonReadonlyElements">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="NoValueFirstComparison">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="SystemUsingDirectivesMustBePlacedBeforeOtherUsingDirectives">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="UsingAliasDirectivesMustBePlacedAfterOtherUsingDirectives">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="UsingDirectivesMustBeOrderedAlphabeticallyByNamespace">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="UsingAliasDirectivesMustBeOrderedAlphabeticallyByAliasName">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="UsingStaticDirectivesMustBePlacedAfterUsingNamespaceDirectives">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-      </Rules>
-      <AnalyzerSettings />
-    </Analyzer>
-    <Analyzer AnalyzerId="StyleCop.CSharp.ReadabilityRules">
-      <Rules>
-        <Rule Name="CommentsMustContainText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DoNotPrefixCallsWithBaseUnlessLocalImplementationExists">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="PrefixLocalCallsWithThis">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="PrefixCallsCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="OpeningParenthesisMustBeOnDeclarationLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ClosingParenthesisMustBeOnLineOfLastParameter">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ClosingParenthesisMustBeOnLineOfOpeningParenthesis">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="CommaMustBeOnSameLineAsPreviousParameter">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ParameterListMustFollowDeclaration">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ParameterMustFollowComma">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="SplitParametersMustStartOnLineAfterDeclaration">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ParametersMustBeOnSameLineOrSeparateLines">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ParameterMustNotSpanMultipleLines">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="QueryClauseMustFollowPreviousClause">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="QueryClausesMustBeOnSeparateLinesOrAllOnOneLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="QueryClauseMustBeginOnNewLineWhenPreviousClauseSpansMultipleLines">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="QueryClausesSpanningMultipleLinesMustBeginOnOwnLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DoNotPlaceRegionsWithinElements">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="CodeMustNotContainEmptyStatements">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="CodeMustNotContainMultipleStatementsOnOneLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="BlockStatementsMustNotContainEmbeddedComments">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="BlockStatementsMustNotContainEmbeddedRegions">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="UseStringEmptyForEmptyStrings">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="UseBuiltInTypeAlias">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="UseShorthandForNullableTypes">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-      </Rules>
-      <AnalyzerSettings />
-    </Analyzer>
-    <Analyzer AnalyzerId="StyleCop.CSharp.SpacingRules">
-      <Rules>
-        <Rule Name="CommasMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="SemicolonsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DocumentationLinesMustBeginWithSingleSpace">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="SingleLineCommentsMustBeginWithSingleSpace">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="PreprocessorKeywordsMustNotBePrecededBySpace">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="OperatorKeywordMustBeFollowedBySpace">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="OpeningCurlyBracketsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ClosingCurlyBracketsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="OpeningGenericBracketsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ClosingGenericBracketsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="OpeningAttributeBracketsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ClosingAttributeBracketsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="NullableTypeSymbolsMustNotBePrecededBySpace">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="MemberAccessSymbolsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="IncrementDecrementSymbolsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="NegativeSignsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="PositiveSignsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DereferenceAndAccessOfSymbolsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ColonsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="CodeMustNotContainMultipleWhitespaceInARow">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="CodeMustNotContainSpaceAfterNewKeywordInImplicitlyTypedArrayAllocation">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="TabsMustNotBeUsed">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DoNotSplitNullConditionalOperators">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-      </Rules>
-      <AnalyzerSettings />
-    </Analyzer>
-  </Analyzers>
-</StyleCopSettings>
\ No newline at end of file
diff --git a/TVApps.sln b/TVApps.sln
deleted file mode 100644 (file)
index 1c609c9..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 14
-VisualStudioVersion = 14.0.25420.1
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TVApps", "TVApps\TVApps\TVApps.csproj", "{FD8C0EF4-6CEA-4421-85B7-7AC8592738C6}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TVApps.TizenTV", "TVApps\TVApps.TizenTV\TVApps.TizenTV.csproj", "{7E341BF5-B7BD-4532-9D4A-AA89537B525E}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibTVRefCommonPortable", "LibTVRefCommonPortable\LibTVRefCommonPortable.csproj", "{67F9D3A8-F71E-4428-913F-C37AE82CDB24}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibTVRefCommonTizen", "LibTVRefCommonTizen\LibTVRefCommonTizen.csproj", "{C558D279-897E-45E1-A10A-DECD788770F4}"
-EndProject
-Global
-       GlobalSection(SolutionConfigurationPlatforms) = preSolution
-               Debug|Any CPU = Debug|Any CPU
-               Release|Any CPU = Release|Any CPU
-       EndGlobalSection
-       GlobalSection(ProjectConfigurationPlatforms) = postSolution
-               {FD8C0EF4-6CEA-4421-85B7-7AC8592738C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-               {FD8C0EF4-6CEA-4421-85B7-7AC8592738C6}.Debug|Any CPU.Build.0 = Debug|Any CPU
-               {FD8C0EF4-6CEA-4421-85B7-7AC8592738C6}.Release|Any CPU.ActiveCfg = Release|Any CPU
-               {FD8C0EF4-6CEA-4421-85B7-7AC8592738C6}.Release|Any CPU.Build.0 = Release|Any CPU
-               {7E341BF5-B7BD-4532-9D4A-AA89537B525E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-               {7E341BF5-B7BD-4532-9D4A-AA89537B525E}.Debug|Any CPU.Build.0 = Debug|Any CPU
-               {7E341BF5-B7BD-4532-9D4A-AA89537B525E}.Release|Any CPU.ActiveCfg = Release|Any CPU
-               {7E341BF5-B7BD-4532-9D4A-AA89537B525E}.Release|Any CPU.Build.0 = Release|Any CPU
-               {67F9D3A8-F71E-4428-913F-C37AE82CDB24}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-               {67F9D3A8-F71E-4428-913F-C37AE82CDB24}.Debug|Any CPU.Build.0 = Debug|Any CPU
-               {67F9D3A8-F71E-4428-913F-C37AE82CDB24}.Release|Any CPU.ActiveCfg = Release|Any CPU
-               {67F9D3A8-F71E-4428-913F-C37AE82CDB24}.Release|Any CPU.Build.0 = Release|Any CPU
-               {C558D279-897E-45E1-A10A-DECD788770F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-               {C558D279-897E-45E1-A10A-DECD788770F4}.Debug|Any CPU.Build.0 = Debug|Any CPU
-               {C558D279-897E-45E1-A10A-DECD788770F4}.Release|Any CPU.ActiveCfg = Release|Any CPU
-               {C558D279-897E-45E1-A10A-DECD788770F4}.Release|Any CPU.Build.0 = Release|Any CPU
-       EndGlobalSection
-       GlobalSection(SolutionProperties) = preSolution
-               HideSolutionNode = FALSE
-       EndGlobalSection
-EndGlobal
diff --git a/TVApps/TVApps.Tizen.TV/Renderer/NinePatchImageRenderer.cs b/TVApps/TVApps.Tizen.TV/Renderer/NinePatchImageRenderer.cs
new file mode 100644 (file)
index 0000000..f490767
--- /dev/null
@@ -0,0 +1,78 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using System.ComponentModel;
+
+using TVApps.Controls;
+using TVApps.TizenTV.Renderer;
+using Xamarin.Forms.Platform.Tizen;
+
+[assembly: ExportRenderer(typeof(NinePatchImage), typeof(NinePatchImageRenderer))]
+namespace TVApps.TizenTV.Renderer
+{
+    /// <summary>
+    /// A custom renderer for NinePatchImage
+    /// </summary>
+    /// <see cref="NinePatchImage"/>
+    class NinePatchImageRenderer : ImageRenderer
+    {
+        /// <summary>
+        /// Updates border when Element is changed
+        /// </summary>
+        /// <param name="args">An image element changed event's argument </param>
+        protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.Image> args)
+        {
+            base.OnElementChanged(args);
+            UpdateBorder();
+        }
+
+        /// <summary>
+        /// Updates border when ElementProperty is changed
+        /// </summary>
+        /// <param name="sender">The source of the event</param>
+        /// <param name="args">An image element property changed event's argument </param>
+        protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs args)
+        {
+            if ((args.PropertyName == NinePatchImage.BorderBottomProperty.PropertyName)
+                || (args.PropertyName == NinePatchImage.BorderLeftProperty.PropertyName)
+                || (args.PropertyName == NinePatchImage.BorderRightProperty.PropertyName)
+                || (args.PropertyName == NinePatchImage.BorderTopProperty.PropertyName))
+            {
+                UpdateBorder();
+            }
+
+            base.OnElementPropertyChanged(sender, args);
+        }
+
+        /// <summary>
+        /// A method updates border of Control(Native Image)
+        /// </summary>
+        void UpdateBorder()
+        {
+            var img = Element as NinePatchImage;
+            Control.SetBorder(img.BorderLeft, img.BorderRight, img.BorderTop, img.BorderBottom);
+        }
+
+        /// <summary>
+        /// A method updates border of Control(Native Image) after loading
+        /// </summary>
+        protected override void UpdateAfterLoading()
+        {
+            base.UpdateAfterLoading();
+            UpdateBorder();
+        }
+    }
+}
diff --git a/TVApps/TVApps.Tizen.TV/Settings.StyleCop b/TVApps/TVApps.Tizen.TV/Settings.StyleCop
new file mode 100644 (file)
index 0000000..837530c
--- /dev/null
@@ -0,0 +1,722 @@
+<StyleCopSettings Version="105">
+  <GlobalSettings>
+    <StringProperty Name="MergeSettingsFiles">NoMerge</StringProperty>
+  </GlobalSettings>
+  <Analyzers>
+    <Analyzer AnalyzerId="StyleCop.CSharp.DocumentationRules">
+      <Rules>
+        <Rule Name="ElementsMustBeDocumented">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementDocumentationMustHaveSummaryText">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="EnumerationItemsMustBeDocumented">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DocumentationMustContainValidXml">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementDocumentationMustHaveSummary">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="PartialElementDocumentationMustHaveSummary">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementDocumentationMustNotHaveDefaultSummary">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="VoidReturnValueMustNotBeDocumented">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="GenericTypeParametersMustBeDocumented">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="GenericTypeParametersMustBeDocumentedPartialClass">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="GenericTypeParameterDocumentationMustMatchTypeParameters">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="GenericTypeParameterDocumentationMustDeclareParameterName">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="GenericTypeParameterDocumentationMustHaveText">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="PropertySummaryDocumentationMustMatchAccessors">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="PropertySummaryDocumentationMustOmitSetAccessorWithRestrictedAccess">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementDocumentationMustNotBeCopiedAndPasted">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="SingleLineCommentsMustNotUseDocumentationStyleSlashes">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DocumentationTextMustNotBeEmpty">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DocumentationTextMustContainWhitespace">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DocumentationMustMeetCharacterPercentage">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ConstructorSummaryDocumentationMustBeginWithStandardText">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DestructorSummaryDocumentationMustBeginWithStandardText">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DocumentationHeadersMustNotContainBlankLines">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="IncludedDocumentationXPathDoesNotExist">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="IncludeNodeDoesNotContainValidFileAndPath">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="InheritDocMustBeUsedWithInheritingClass">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementDocumentationMustBeSpelledCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FileMustHaveHeader">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FileHeaderMustShowCopyright">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FileHeaderMustHaveCopyrightText">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FileHeaderMustContainFileName">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FileHeaderFileNameDocumentationMustMatchFileName">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FileHeaderMustHaveValidCompanyText">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FileHeaderFileNameDocumentationMustMatchTypeName">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+      </Rules>
+      <AnalyzerSettings />
+    </Analyzer>
+    <Analyzer AnalyzerId="StyleCop.CSharp.NamingRules">
+      <Rules>
+        <Rule Name="ConstFieldNamesMustBeginWithUpperCaseLetter">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FieldNamesMustBeginWithLowerCaseLetter">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FieldNamesMustNotContainUnderscore">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementMustBeginWithLowerCaseLetter">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="NonPrivateReadonlyFieldsMustBeginWithUpperCaseLetter">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FieldNamesMustNotUseHungarianNotation">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="AccessibleFieldsMustBeginWithUpperCaseLetter">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="VariableNamesMustNotBePrefixed">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FieldNamesMustNotBeginWithUnderscore">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="StaticReadonlyFieldsMustBeginWithUpperCaseLetter">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+      </Rules>
+      <AnalyzerSettings />
+    </Analyzer>
+    <Analyzer AnalyzerId="StyleCop.CSharp.LayoutRules">
+      <Rules>
+        <Rule Name="AllAccessorsMustBeMultiLineOrSingleLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="OpeningCurlyBracketsMustNotBeFollowedByBlankLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementDocumentationHeadersMustNotBeFollowedByBlankLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="CodeMustNotContainMultipleBlankLinesInARow">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ClosingCurlyBracketsMustNotBePrecededByBlankLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="OpeningCurlyBracketsMustNotBePrecededByBlankLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ChainedStatementBlocksMustNotBePrecededByBlankLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="WhileDoFooterMustNotBePrecededByBlankLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="SingleLineCommentsMustNotBeFollowedByBlankLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementDocumentationHeaderMustBePrecededByBlankLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="SingleLineCommentMustBePrecededByBlankLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementsMustBeSeparatedByBlankLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="CodeMustNotContainBlankLinesAtStartOfFile">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="CodeMustNotContainBlankLinesAtEndOfFile">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+      </Rules>
+      <AnalyzerSettings />
+    </Analyzer>
+    <Analyzer AnalyzerId="StyleCop.CSharp.MaintainabilityRules">
+      <Rules>
+        <Rule Name="AccessModifierMustBeDeclared">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FieldsMustBePrivate">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="CodeAnalysisSuppressionMustHaveJustification">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DebugAssertMustProvideMessageText">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DebugFailMustProvideMessageText">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FileMayOnlyContainASingleClass">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FileMayOnlyContainASingleNamespace">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="StatementMustNotUseUnnecessaryParenthesis">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ArithmeticExpressionsMustDeclarePrecedence">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ConditionalExpressionsMustDeclarePrecedence">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="RemoveDelegateParenthesisWhenPossible">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="AttributeConstructorMustNotUseUnnecessaryParenthesis">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="RemoveUnnecessaryCode">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+      </Rules>
+      <AnalyzerSettings />
+    </Analyzer>
+    <Analyzer AnalyzerId="StyleCop.CSharp.OrderingRules">
+      <Rules>
+        <Rule Name="UsingDirectivesMustBePlacedWithinNamespace">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementsMustAppearInTheCorrectOrder">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementsMustBeOrderedByAccess">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ConstantsMustAppearBeforeFields">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="StaticElementsMustAppearBeforeInstanceElements">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DeclarationKeywordsMustFollowOrder">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ProtectedMustComeBeforeInternal">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="PropertyAccessorsMustFollowOrder">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="EventAccessorsMustFollowOrder">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="StaticReadonlyElementsMustAppearBeforeStaticNonReadonlyElements">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="InstanceReadonlyElementsMustAppearBeforeInstanceNonReadonlyElements">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="NoValueFirstComparison">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="SystemUsingDirectivesMustBePlacedBeforeOtherUsingDirectives">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="UsingAliasDirectivesMustBePlacedAfterOtherUsingDirectives">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="UsingDirectivesMustBeOrderedAlphabeticallyByNamespace">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="UsingAliasDirectivesMustBeOrderedAlphabeticallyByAliasName">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="UsingStaticDirectivesMustBePlacedAfterUsingNamespaceDirectives">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+      </Rules>
+      <AnalyzerSettings />
+    </Analyzer>
+    <Analyzer AnalyzerId="StyleCop.CSharp.ReadabilityRules">
+      <Rules>
+        <Rule Name="CommentsMustContainText">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DoNotPrefixCallsWithBaseUnlessLocalImplementationExists">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="PrefixLocalCallsWithThis">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="PrefixCallsCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="OpeningParenthesisMustBeOnDeclarationLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ClosingParenthesisMustBeOnLineOfLastParameter">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ClosingParenthesisMustBeOnLineOfOpeningParenthesis">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="CommaMustBeOnSameLineAsPreviousParameter">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ParameterListMustFollowDeclaration">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ParameterMustFollowComma">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="SplitParametersMustStartOnLineAfterDeclaration">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ParametersMustBeOnSameLineOrSeparateLines">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ParameterMustNotSpanMultipleLines">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="QueryClauseMustFollowPreviousClause">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="QueryClausesMustBeOnSeparateLinesOrAllOnOneLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="QueryClauseMustBeginOnNewLineWhenPreviousClauseSpansMultipleLines">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="QueryClausesSpanningMultipleLinesMustBeginOnOwnLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DoNotPlaceRegionsWithinElements">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="CodeMustNotContainEmptyStatements">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="CodeMustNotContainMultipleStatementsOnOneLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="BlockStatementsMustNotContainEmbeddedComments">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="BlockStatementsMustNotContainEmbeddedRegions">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="UseStringEmptyForEmptyStrings">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="UseBuiltInTypeAlias">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="UseShorthandForNullableTypes">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+      </Rules>
+      <AnalyzerSettings />
+    </Analyzer>
+    <Analyzer AnalyzerId="StyleCop.CSharp.SpacingRules">
+      <Rules>
+        <Rule Name="CommasMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="SemicolonsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DocumentationLinesMustBeginWithSingleSpace">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="SingleLineCommentsMustBeginWithSingleSpace">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="PreprocessorKeywordsMustNotBePrecededBySpace">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="OperatorKeywordMustBeFollowedBySpace">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="OpeningCurlyBracketsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ClosingCurlyBracketsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="OpeningGenericBracketsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ClosingGenericBracketsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="OpeningAttributeBracketsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ClosingAttributeBracketsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="NullableTypeSymbolsMustNotBePrecededBySpace">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="MemberAccessSymbolsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="IncrementDecrementSymbolsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="NegativeSignsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="PositiveSignsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DereferenceAndAccessOfSymbolsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ColonsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="CodeMustNotContainMultipleWhitespaceInARow">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="CodeMustNotContainSpaceAfterNewKeywordInImplicitlyTypedArrayAllocation">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="TabsMustNotBeUsed">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DoNotSplitNullConditionalOperators">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+      </Rules>
+      <AnalyzerSettings />
+    </Analyzer>
+  </Analyzers>
+</StyleCopSettings>
\ No newline at end of file
diff --git a/TVApps/TVApps.Tizen.TV/TVApps.Tizen.TV.csproj b/TVApps/TVApps.Tizen.TV/TVApps.Tizen.TV.csproj
new file mode 100644 (file)
index 0000000..e0d9483
--- /dev/null
@@ -0,0 +1,56 @@
+<Project>
+  <Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
+
+  <!-- Setting Tizen Extension Path -->
+  <PropertyGroup Label="Globals">
+    <TizenProjectExtensionsPath>$(MSBuildExtensionsPath)\Tizen\VisualStudio\</TizenProjectExtensionsPath>
+  </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 -->
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>netcoreapp2.0</TargetFramework>
+  </PropertyGroup>
+
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugType>portable</DebugType>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>None</DebugType>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Folder Include="lib\" />
+    <Folder Include="res\" />
+  </ItemGroup>
+
+  
+  <!-- If solution already has PCL project, will reference -->
+  
+
+  <!-- Include Nuget Package for Tizen Project building -->
+  <ItemGroup>
+    <PackageReference Include="Tizen.NET" Version="4.0.0-preview1-00143" />
+    <PackageReference Include="Tizen.NET.Sdk" Version="0.9.18-pre1" />
+    <PackageReference Include="Tizen.Xamarin.Forms.Extension" Version="2.4.0-v00005" />
+    <PackageReference Include="Xamarin.Forms" Version="2.4.0.266-pre1" />
+    <PackageReference Include="Xamarin.Forms.Platform.Tizen" Version="2.4.0-r266-006" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\LibCommon.Shared\LibCommon.Shared.csproj" />
+    <ProjectReference Include="..\..\LibCommon.Tizen\LibCommon.Tizen.csproj" />
+    <ProjectReference Include="..\TVApps\TVApps.csproj" />
+  </ItemGroup>
+
+  <Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
+  <Import Project="$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.targets" Condition="Exists('$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.targets')" />
+
+  <!-- Install Check 'Visual Studio for Tizen' for developing on Visual Studio -->
+  <Target Name="TizenVsixInstallCheck" BeforeTargets="CompileDesignTime">
+    <Warning Condition="!Exists('$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.props')" Text="$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.props is not exist.&#xA; you need to check if 'Visual Studio for Tizen' is installed" />
+    <Warning Condition="!Exists('$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.targets')" Text="$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.targets is not exist.\&#xA; you need to check if 'Visual Studio for Tizen' is installed" />
+  </Target>
+</Project>
diff --git a/TVApps/TVApps.Tizen.TV/TVApps.TizenTV.cs b/TVApps/TVApps.Tizen.TV/TVApps.TizenTV.cs
new file mode 100644 (file)
index 0000000..067aef0
--- /dev/null
@@ -0,0 +1,145 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using LibTVRefCommonPortable.Utils;
+using LibTVRefCommonTizen.Ports;
+using Tizen.Applications;
+using Tizen.Xamarin.Forms.Extension.Renderer;
+
+namespace TVApps.TizenTV
+{
+    /// <summary>
+    /// TV Apps application main entry point
+    /// </summary>
+    public class Program : Xamarin.Forms.Platform.Tizen.FormsApplication, IAppLifeControl
+    {
+        /// <summary>
+        /// The application instance
+        /// </summary>
+        private static Program instance;
+
+        /// <summary>
+        /// An interface for the platform notification
+        /// </summary>
+        private IPlatformNotification notification;
+
+        /// <summary>
+        /// A method will be called when application is created
+        /// </summary>
+        protected override void OnCreate()
+        {
+            base.OnCreate();
+
+            FileSystemPort.AppDataStroagePath = DirectoryInfo.Data;
+            FileSystemPort.PlatformShareStroagePath = "/opt/usr/home/owner/share/";
+
+            var app = new App(MainWindow.ScreenSize.Width,
+                MainWindow.ScreenSize.Height,
+                MainWindow.ScreenDpi.X,
+                ElmSharp.Elementary.GetScale());
+            notification = app;
+
+            DbgPort.D("-----------------------------------");
+            DbgPort.D("Apps application is being loaded...");
+            DbgPort.D("-----------------------------------");
+            LoadApplication(app);
+
+            PackageManagerPort.RegisterCallbacks(notification);
+            MainWindow.Alpha = true;
+            MainWindow.KeyUp += KeyUpListener;
+
+            MainWindow.KeyGrab(ElmSharp.EvasKeyEventArgs.PlatformMenuButtonName, true);
+            MainWindow.KeyGrab("XF86Info", true);
+        }
+
+        /// <summary>
+        /// A method will be called when application receives KeyUp event
+        /// </summary>
+
+        /// <param name="sender">The source of the event</param>
+        /// <param name="args">A EvasKey event's argument</param>
+        private void KeyUpListener(object sender, ElmSharp.EvasKeyEventArgs args)
+        {
+            DebuggingUtils.Dbg("[TVApps.TizenTV.cs] Key Pressed :" + args.KeyName);
+            if (args.KeyName.CompareTo(ElmSharp.EvasKeyEventArgs.PlatformMenuButtonName) == 0 ||
+                args.KeyName.CompareTo("XF86Info") == 0)
+            {
+                notification?.OnMenuKeyPressed();
+            }
+        }
+
+        /// <summary>
+        /// A method will be called when application is terminated
+        /// </summary>
+        protected override void OnTerminate()
+        {
+            base.OnTerminate();
+
+            notification = null;
+            PackageManagerPort.UnregisterCallbacks();
+            MainWindow.KeyUngrab(ElmSharp.EvasKeyEventArgs.PlatformMenuButtonName);
+            MainWindow.KeyUngrab("XF86Info");
+        }
+
+        /// <summary>
+        /// A method will be called when application receives AppControl
+        /// </summary>
+        /// <param name="e">AppControl event argument</param>
+        protected override void OnAppControlReceived(AppControlReceivedEventArgs e)
+        {
+            DbgPort.D("OnAppControlReceived, " + e.ReceivedAppControl.Operation);
+
+            if (AppControlPort.AddAppOperation.CompareTo(e.ReceivedAppControl.Operation) == 0)
+            {
+                DbgPort.D("Add App Request");
+                notification.OnPinAppRequestReceived();
+            }
+        }
+
+        /// <summary>
+        /// The entry point for the application
+        /// </summary>
+        /// <param name="args">A list of command line arguments</param>
+        static void Main(string[] args)
+        {
+            instance = new Program();
+
+            DbgPort.Prefix = "Apps";
+
+            Xamarin.Forms.DependencyService.Register<DbgPort>();
+            Xamarin.Forms.DependencyService.Register<Program>();
+            Xamarin.Forms.DependencyService.Register<AppControlPort>();
+            Xamarin.Forms.DependencyService.Register<PackageManagerPort>();
+            Xamarin.Forms.DependencyService.Register<FileSystemWatcherPort>();
+            Xamarin.Forms.DependencyService.Register<ApplicationManagerPort>();
+            Xamarin.Forms.DependencyService.Register<FileSystemPort>();
+            Xamarin.Forms.DependencyService.Register<SystemSettingsPort>();
+
+            Xamarin.Forms.Platform.Tizen.Forms.Init(instance);
+            TizenFormsExtension.Init();
+
+            instance.Run(args);
+        }
+
+        /// <summary>
+        /// A method terminates application
+        /// </summary>
+        public void SelfTerminate()
+        {
+            instance.Exit();
+        }
+    }
+}
diff --git a/TVApps/TVApps.Tizen.TV/bin/Debug/netcoreapp2.0/TVApps.Tizen.TV.deps.json b/TVApps/TVApps.Tizen.TV/bin/Debug/netcoreapp2.0/TVApps.Tizen.TV.deps.json
new file mode 100644 (file)
index 0000000..a2bf14e
--- /dev/null
@@ -0,0 +1,222 @@
+{
+  "runtimeTarget": {
+    "name": ".NETCoreApp,Version=v2.0",
+    "signature": "7b37460e941a73f9576f52a534d76051a2c28b59"
+  },
+  "compilationOptions": {},
+  "targets": {
+    ".NETCoreApp,Version=v2.0": {
+      "TVApps.Tizen.TV/1.0.0": {
+        "dependencies": {
+          "LibCommon.Shared": "1.0.0",
+          "LibCommon.Tizen": "1.0.0",
+          "TVApps": "1.0.0",
+          "Tizen.NET": "4.0.0-preview1-00143",
+          "Tizen.NET.Sdk": "0.9.18-pre1",
+          "Tizen.Xamarin.Forms.Extension": "2.4.0-v00005",
+          "Xamarin.Forms": "2.4.0.266-pre1",
+          "Xamarin.Forms.Platform.Tizen": "2.4.0-r266-006"
+        },
+        "runtime": {
+          "TVApps.Tizen.TV.dll": {}
+        }
+      },
+      "Tizen.NET/4.0.0-preview1-00143": {
+        "runtime": {
+          "lib/netstandard1.6/ElmSharp.Wearable.dll": {},
+          "lib/netstandard1.6/ElmSharp.dll": {},
+          "lib/netstandard1.6/Tizen.Account.AccountManager.dll": {},
+          "lib/netstandard1.6/Tizen.Account.FidoClient.dll": {},
+          "lib/netstandard1.6/Tizen.Account.OAuth2.dll": {},
+          "lib/netstandard1.6/Tizen.Account.SyncManager.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.Alarm.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.AttachPanel.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.Badge.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.Common.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.DataControl.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.MessagePort.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.Notification.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.NotificationEventListener.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.PackageManager.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.Preference.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.RemoteView.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.Service.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.ToastMessage.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.UI.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.WatchApplication.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.WidgetApplication.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.WidgetControl.dll": {},
+          "lib/netstandard1.6/Tizen.Content.Download.dll": {},
+          "lib/netstandard1.6/Tizen.Content.MediaContent.dll": {},
+          "lib/netstandard1.6/Tizen.Content.MimeType.dll": {},
+          "lib/netstandard1.6/Tizen.Context.dll": {},
+          "lib/netstandard1.6/Tizen.Location.Geofence.dll": {},
+          "lib/netstandard1.6/Tizen.Location.dll": {},
+          "lib/netstandard1.6/Tizen.Log.dll": {},
+          "lib/netstandard1.6/Tizen.Maps.dll": {},
+          "lib/netstandard1.6/Tizen.Messaging.Push.dll": {},
+          "lib/netstandard1.6/Tizen.Messaging.dll": {},
+          "lib/netstandard1.6/Tizen.Multimedia.AudioIO.dll": {},
+          "lib/netstandard1.6/Tizen.Multimedia.Camera.dll": {},
+          "lib/netstandard1.6/Tizen.Multimedia.MediaCodec.dll": {},
+          "lib/netstandard1.6/Tizen.Multimedia.MediaPlayer.dll": {},
+          "lib/netstandard1.6/Tizen.Multimedia.Metadata.dll": {},
+          "lib/netstandard1.6/Tizen.Multimedia.Radio.dll": {},
+          "lib/netstandard1.6/Tizen.Multimedia.Recorder.dll": {},
+          "lib/netstandard1.6/Tizen.Multimedia.Remoting.dll": {},
+          "lib/netstandard1.6/Tizen.Multimedia.StreamRecorder.dll": {},
+          "lib/netstandard1.6/Tizen.Multimedia.Util.dll": {},
+          "lib/netstandard1.6/Tizen.Multimedia.Vision.dll": {},
+          "lib/netstandard1.6/Tizen.Multimedia.dll": {},
+          "lib/netstandard1.6/Tizen.NUI.dll": {},
+          "lib/netstandard1.6/Tizen.Network.Bluetooth.dll": {},
+          "lib/netstandard1.6/Tizen.Network.Connection.dll": {},
+          "lib/netstandard1.6/Tizen.Network.IoTConnectivity.dll": {},
+          "lib/netstandard1.6/Tizen.Network.Nfc.dll": {},
+          "lib/netstandard1.6/Tizen.Network.Nsd.dll": {},
+          "lib/netstandard1.6/Tizen.Network.Smartcard.dll": {},
+          "lib/netstandard1.6/Tizen.Network.WiFi.dll": {},
+          "lib/netstandard1.6/Tizen.Network.WiFiDirect.dll": {},
+          "lib/netstandard1.6/Tizen.PhonenumberUtils.dll": {},
+          "lib/netstandard1.6/Tizen.Pims.Calendar.dll": {},
+          "lib/netstandard1.6/Tizen.Pims.Contacts.dll": {},
+          "lib/netstandard1.6/Tizen.Security.SecureRepository.dll": {},
+          "lib/netstandard1.6/Tizen.Security.TEEC.dll": {},
+          "lib/netstandard1.6/Tizen.Security.dll": {},
+          "lib/netstandard1.6/Tizen.Sensor.dll": {},
+          "lib/netstandard1.6/Tizen.System.Feedback.dll": {},
+          "lib/netstandard1.6/Tizen.System.Information.dll": {},
+          "lib/netstandard1.6/Tizen.System.MediaKey.dll": {},
+          "lib/netstandard1.6/Tizen.System.PlatformConfig.dll": {},
+          "lib/netstandard1.6/Tizen.System.Storage.dll": {},
+          "lib/netstandard1.6/Tizen.System.SystemSettings.dll": {},
+          "lib/netstandard1.6/Tizen.System.dll": {},
+          "lib/netstandard1.6/Tizen.Telephony.dll": {},
+          "lib/netstandard1.6/Tizen.Tracer.dll": {},
+          "lib/netstandard1.6/Tizen.Uix.InputMethod.dll": {},
+          "lib/netstandard1.6/Tizen.Uix.InputMethodManager.dll": {},
+          "lib/netstandard1.6/Tizen.Uix.Stt.dll": {},
+          "lib/netstandard1.6/Tizen.Uix.Tts.dll": {},
+          "lib/netstandard1.6/Tizen.Uix.VoiceControl.dll": {},
+          "lib/netstandard1.6/Tizen.WebView.dll": {},
+          "lib/netstandard1.6/Tizen.dll": {}
+        }
+      },
+      "Tizen.NET.Sdk/0.9.18-pre1": {},
+      "Tizen.Xamarin.Forms.Extension/2.4.0-v00005": {
+        "dependencies": {
+          "Xamarin.Forms": "2.4.0.266-pre1",
+          "Xamarin.Forms.Platform.Tizen": "2.4.0-r266-006"
+        },
+        "runtime": {
+          "lib/netcoreapp2.0/Tizen.Xamarin.Forms.Extension.Renderer.dll": {},
+          "lib/netcoreapp2.0/Tizen.Xamarin.Forms.Extension.dll": {}
+        }
+      },
+      "Xamarin.Forms/2.4.0.266-pre1": {
+        "runtime": {
+          "lib/netstandard1.0/Xamarin.Forms.Core.dll": {},
+          "lib/netstandard1.0/Xamarin.Forms.Platform.dll": {},
+          "lib/netstandard1.0/Xamarin.Forms.Xaml.dll": {}
+        }
+      },
+      "Xamarin.Forms.Platform.Tizen/2.4.0-r266-006": {
+        "dependencies": {
+          "Tizen.NET": "4.0.0-preview1-00143",
+          "Xamarin.Forms": "2.4.0.266-pre1"
+        },
+        "runtime": {
+          "lib/netstandard1.6/Xamarin.Forms.Platform.Tizen.dll": {}
+        }
+      },
+      "LibCommon.Shared/1.0.0": {
+        "dependencies": {
+          "Tizen.Xamarin.Forms.Extension": "2.4.0-v00005",
+          "Xamarin.Forms": "2.4.0.266-pre1"
+        },
+        "runtime": {
+          "LibCommon.Shared.dll": {}
+        }
+      },
+      "LibCommon.Tizen/1.0.0": {
+        "dependencies": {
+          "LibCommon.Shared": "1.0.0",
+          "Tizen.NET": "4.0.0-preview1-00143",
+          "Tizen.Xamarin.Forms.Extension": "2.4.0-v00005",
+          "Xamarin.Forms": "2.4.0.266-pre1",
+          "Xamarin.Forms.Platform.Tizen": "2.4.0-r266-006"
+        },
+        "runtime": {
+          "LibCommon.Tizen.dll": {}
+        }
+      },
+      "TVApps/1.0.0": {
+        "dependencies": {
+          "LibCommon.Shared": "1.0.0",
+          "Tizen.Xamarin.Forms.Extension": "2.4.0-v00005",
+          "Xamarin.Forms": "2.4.0.266-pre1"
+        },
+        "runtime": {
+          "TVApps.dll": {}
+        }
+      }
+    }
+  },
+  "libraries": {
+    "TVApps.Tizen.TV/1.0.0": {
+      "type": "project",
+      "serviceable": false,
+      "sha512": ""
+    },
+    "Tizen.NET/4.0.0-preview1-00143": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-woW6D9FsWZD2lJRwbND2hzMIi9l7QYwUqfpCxrMT3+Mh3+8UdFM86skDdw3mAgpLIqfC1plUfbISksQ9G2Gcgg==",
+      "path": "tizen.net/4.0.0-preview1-00143",
+      "hashPath": "tizen.net.4.0.0-preview1-00143.nupkg.sha512"
+    },
+    "Tizen.NET.Sdk/0.9.18-pre1": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-lUsZ48M9YxKKwpYpE6zbd2/uw7GeJJZmKYABHW6Xdcfarxf17ncGRBLl7Gnt2rAc5ev8UkNKYfZoQQh+kQO2Hw==",
+      "path": "tizen.net.sdk/0.9.18-pre1",
+      "hashPath": "tizen.net.sdk.0.9.18-pre1.nupkg.sha512"
+    },
+    "Tizen.Xamarin.Forms.Extension/2.4.0-v00005": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-MKUamVt5XloZ/JziyOXLdbahn7T0LDQDJGUt3ynt0iSia4aLpZLOua6/iypBhnC79FgMaNfUA7APjVfjh3NLTg==",
+      "path": "tizen.xamarin.forms.extension/2.4.0-v00005",
+      "hashPath": "tizen.xamarin.forms.extension.2.4.0-v00005.nupkg.sha512"
+    },
+    "Xamarin.Forms/2.4.0.266-pre1": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-pMu+b01vdH1ul5EJo1opQjEcwisWT35DdZO6EuR9HNKfY1dWyKmAlWgRdGUtjtdbhjOAtCOQUxI7F3x4hvV8KA==",
+      "path": "xamarin.forms/2.4.0.266-pre1",
+      "hashPath": "xamarin.forms.2.4.0.266-pre1.nupkg.sha512"
+    },
+    "Xamarin.Forms.Platform.Tizen/2.4.0-r266-006": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-xDEcJnKerroXtMLLUVssB9+f2mZMB5ngulNB09OsIp0gRqP7GnpqJEyWQsISFRCk272lNVd57UhXGCUFl9/aRg==",
+      "path": "xamarin.forms.platform.tizen/2.4.0-r266-006",
+      "hashPath": "xamarin.forms.platform.tizen.2.4.0-r266-006.nupkg.sha512"
+    },
+    "LibCommon.Shared/1.0.0": {
+      "type": "project",
+      "serviceable": false,
+      "sha512": ""
+    },
+    "LibCommon.Tizen/1.0.0": {
+      "type": "project",
+      "serviceable": false,
+      "sha512": ""
+    },
+    "TVApps/1.0.0": {
+      "type": "project",
+      "serviceable": false,
+      "sha512": ""
+    }
+  }
+}
\ No newline at end of file
diff --git a/TVApps/TVApps.Tizen.TV/bin/Debug/netcoreapp2.0/TVApps.Tizen.TV.runtimeconfig.dev.json b/TVApps/TVApps.Tizen.TV/bin/Debug/netcoreapp2.0/TVApps.Tizen.TV.runtimeconfig.dev.json
new file mode 100644 (file)
index 0000000..2c2f357
--- /dev/null
@@ -0,0 +1,9 @@
+{
+  "runtimeOptions": {
+    "additionalProbingPaths": [
+      "C:\\Users\\samsung\\.dotnet\\store\\|arch|\\|tfm|",
+      "C:\\Users\\samsung\\.nuget\\packages",
+      "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder"
+    ]
+  }
+}
\ No newline at end of file
diff --git a/TVApps/TVApps.Tizen.TV/bin/Debug/netcoreapp2.0/TVApps.Tizen.TV.runtimeconfig.json b/TVApps/TVApps.Tizen.TV/bin/Debug/netcoreapp2.0/TVApps.Tizen.TV.runtimeconfig.json
new file mode 100644 (file)
index 0000000..7539019
--- /dev/null
@@ -0,0 +1,9 @@
+{
+  "runtimeOptions": {
+    "tfm": "netcoreapp2.0",
+    "framework": {
+      "name": "Microsoft.NETCore.App",
+      "version": "2.0.0"
+    }
+  }
+}
\ No newline at end of file
diff --git a/TVApps/TVApps.Tizen.TV/bin/Debug/netcoreapp2.0/org.tizen.xaapps-1.0.0.tpi b/TVApps/TVApps.Tizen.TV/bin/Debug/netcoreapp2.0/org.tizen.xaapps-1.0.0.tpi
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/TVApps/TVApps.Tizen.TV/bin/Debug/netcoreapp2.0/org.tizen.xaapps-1.0.0.tpk b/TVApps/TVApps.Tizen.TV/bin/Debug/netcoreapp2.0/org.tizen.xaapps-1.0.0.tpk
new file mode 100644 (file)
index 0000000..7319ded
Binary files /dev/null and b/TVApps/TVApps.Tizen.TV/bin/Debug/netcoreapp2.0/org.tizen.xaapps-1.0.0.tpk differ
diff --git a/TVApps/TVApps.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/author-signature.xml b/TVApps/TVApps.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/author-signature.xml
new file mode 100644 (file)
index 0000000..b9074ae
--- /dev/null
@@ -0,0 +1,150 @@
+<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-sha256" />
+    <Reference URI="tizen-manifest.xml">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>PW6DDKlhSQZGENOMYSTs9krh2HLoq2dKCYzYpjHKDNs=</DigestValue>
+    </Reference>
+    <Reference URI="shared%2Fres%2FTVApps.Tizen.TV.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>/gTbhhRqVKFAMykTkZyDaEozK7OBNMSXGtsJpmRcLuE=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FXamarin.Forms.Xaml.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>J/d/Iu+nPnrMUHbnjHtcNpI4dTAbHKyD61nelmBE8rE=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FXamarin.Forms.Platform.Tizen.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>k9quBEmTxuUA7AiVyJthoirEwrl9SgQr5J0DXi6llkk=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FXamarin.Forms.Platform.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>8FCwIup+0tvOQf5a14Lo7VQVCCG9bgxkw/sxAFAN8lM=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FXamarin.Forms.Core.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>Wnha/ZDGFuzYPiZ6JyEp1wTQYBpYv7WDYs8CHPr3Ugs=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTVApps.Tizen.TV.pdb">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>x/rqZEBQb4V2cBRByJrDHyvHUP5aIka4jiBYuVysUJg=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTVApps.Tizen.TV.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>BgawWdKNYytoW7rglBK3/WadIDO64RmYLRvqdVlKcYA=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTVApps.pdb">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>iN7qVbbwpxhN3RAqDyb3zDQuvkTlNJNM3mIo45nyMzU=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTVApps.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>nmik89SH8yehPu6zI2peM/amzyT0kunzhWjX/nKDWto=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTizen.Xamarin.Forms.Extension.Renderer.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>7oZiDFE6sc/h/5gxMoKu72pn73f48lWBD8p5W7h7j4I=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTizen.Xamarin.Forms.Extension.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>Q1voviamaw/GnkgZDXopBuyM18WxY0sxyD5g3Uyovf4=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTizen.System.PlatformConfig.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>1fLNIiGbumlNGMW1fApud98XB/+XaRzlfKtOlAaIDwQ=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTizen.Applications.WatchApplication.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>899qMfwfpHleUrl1Eyx89Y4AJxYGBwOc7bsmIIERfA4=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTizen.Applications.AttachPanel.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>Ujn3mYvFRa5GBhVgy6iMMKWOOh0Vl33ISGagcSkxC2U=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTizen.Account.SyncManager.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>vy52VSuLoSlQmeqgLYOQP2SZUL8kdr2x6Dw4WL5ia5M=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FLibCommon.Tizen.pdb">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>p9BXz7Wy961nTBtuJ6NBBlcg3d6JzxtAa2kKvTAjU0k=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FLibCommon.Tizen.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>ytXYOQFfxUo6TNaE/JC9uMkpYq28zyKWfuzKtLt1hD8=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FLibCommon.Shared.pdb">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>28yMmL3EV3MWlzVPfP3R3jC9/qQWZlIWvvKHFJz5Qs0=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FLibCommon.Shared.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>L9fmVpePV7PCT/SW8PIIBm6ekdcZSq9eG07O/R4s8pI=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FElmSharp.Wearable.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>9xk59Y9Uhmml3aT0AKL5zD8aQbN2QMedWOZxxGQ86EA=</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#sha256" />
+      <DigestValue>e2rGZ9lURQWep1IIbrRk2NYMw5EXlejQt2B0bMLUyoc=</DigestValue>
+    </Reference>
+  </SignedInfo>
+  <SignatureValue>
+nbrOAJrnCyJgp5Y34tEQ3Daf0njmZIIV0sNvkwJs69Uugq+NdAjTI9Svtker16UkS4R5DjC2/FmR
+bMHFZVxEpsKv4mkpiqrw1R+PWjQOTUEXd1wOeuJpVvUkBMMtbQRSAgnLf01P7H9Ew3Uqb15BLHZx
+1umibqx4r9BhmOMZiIE=
+</SignatureValue>
+  <KeyInfo>
+    <X509Data>
+      <X509Certificate>
+MIIClTCCAX2gAwIBAgIGAVYhXgiqMA0GCSqGSIb3DQEBBQUAMFYxGjAYBgNVBAoMEVRpemVuIEFz
+c29jaWF0aW9uMRowGAYDVQQLDBFUaXplbiBBc3NvY2lhdGlvbjEcMBoGA1UEAwwTVGl6ZW4gRGV2
+ZWxvcGVycyBDQTAeFw0xMjExMDEwMDAwMDBaFw0xOTAxMDEwMDAwMDBaMBExDzANBgNVBAMMBmF1
+dGhvcjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApm4Xqu2NAxOEh4Fgo0w6j+Q9MccSOPny
+mkyM3XMn0nL7mFKL4ZETxyRXlMU8DnM9l4zsEH3iS15cZknesUrCEAiuhL4fsp05ZSr6ERCYQrXs
+06WPmepipiM7n6BWzCsSmv0qNxkYWjZODWT2+15PsXfvwsK9wsrjSDIT8SuYV48CAwEAAaMyMDAw
+DAYDVR0TAQH/BAIwADALBgNVHQ8EBAMCB4AwEwYDVR0lBAwwCgYIKwYBBQUHAwMwDQYJKoZIhvcN
+AQEFBQADggEBAMqla3XZiV3xAQe3laSgVJvmtEsjl3Zfp7Nufrobsl4pxQhVbOITomeEqrJkn4e6
+zzfsjQQ6nw0yXqeo6qfP1ez8Wvr/egyfO6BrnARX37K5cXszpIn7IvO6xl4Ux/rtp4vvQXDcrDS5
+F07d9tg+5UO6MC/9cKaCNEIxSkXEhjOf5x2LGg686fq5V4WEKCO2ApkJRXn+tFRArysrT5FPEnus
+NG+XhHWJw58HgBrZFl0SOUJQvzi3xv5xVPml65qwbehmQyu+LcgWeKySO46nzF0AXlCTaC78FGYk
+nrG2yFeWO6SWXGV7uxgizufT+s851rPFg/EWYEjqX4jU/jp7Swg=
+</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/TVApps/TVApps.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/shared/res/TVApps.Tizen.TV.png b/TVApps/TVApps.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/shared/res/TVApps.Tizen.TV.png
new file mode 100644 (file)
index 0000000..9f3cb98
Binary files /dev/null and b/TVApps/TVApps.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/shared/res/TVApps.Tizen.TV.png differ
diff --git a/TVApps/TVApps.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/signature1.xml b/TVApps/TVApps.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/signature1.xml
new file mode 100644 (file)
index 0000000..d648894
--- /dev/null
@@ -0,0 +1,152 @@
+<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-sha256" />
+    <Reference URI="tizen-manifest.xml">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>PW6DDKlhSQZGENOMYSTs9krh2HLoq2dKCYzYpjHKDNs=</DigestValue>
+    </Reference>
+    <Reference URI="shared%2Fres%2FTVApps.Tizen.TV.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>/gTbhhRqVKFAMykTkZyDaEozK7OBNMSXGtsJpmRcLuE=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FXamarin.Forms.Xaml.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>J/d/Iu+nPnrMUHbnjHtcNpI4dTAbHKyD61nelmBE8rE=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FXamarin.Forms.Platform.Tizen.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>k9quBEmTxuUA7AiVyJthoirEwrl9SgQr5J0DXi6llkk=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FXamarin.Forms.Platform.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>8FCwIup+0tvOQf5a14Lo7VQVCCG9bgxkw/sxAFAN8lM=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FXamarin.Forms.Core.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>Wnha/ZDGFuzYPiZ6JyEp1wTQYBpYv7WDYs8CHPr3Ugs=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTVApps.Tizen.TV.pdb">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>x/rqZEBQb4V2cBRByJrDHyvHUP5aIka4jiBYuVysUJg=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTVApps.Tizen.TV.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>BgawWdKNYytoW7rglBK3/WadIDO64RmYLRvqdVlKcYA=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTVApps.pdb">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>iN7qVbbwpxhN3RAqDyb3zDQuvkTlNJNM3mIo45nyMzU=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTVApps.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>nmik89SH8yehPu6zI2peM/amzyT0kunzhWjX/nKDWto=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTizen.Xamarin.Forms.Extension.Renderer.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>7oZiDFE6sc/h/5gxMoKu72pn73f48lWBD8p5W7h7j4I=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTizen.Xamarin.Forms.Extension.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>Q1voviamaw/GnkgZDXopBuyM18WxY0sxyD5g3Uyovf4=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTizen.System.PlatformConfig.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>1fLNIiGbumlNGMW1fApud98XB/+XaRzlfKtOlAaIDwQ=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTizen.Applications.WatchApplication.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>899qMfwfpHleUrl1Eyx89Y4AJxYGBwOc7bsmIIERfA4=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTizen.Applications.AttachPanel.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>Ujn3mYvFRa5GBhVgy6iMMKWOOh0Vl33ISGagcSkxC2U=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTizen.Account.SyncManager.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>vy52VSuLoSlQmeqgLYOQP2SZUL8kdr2x6Dw4WL5ia5M=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FLibCommon.Tizen.pdb">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>p9BXz7Wy961nTBtuJ6NBBlcg3d6JzxtAa2kKvTAjU0k=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FLibCommon.Tizen.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>ytXYOQFfxUo6TNaE/JC9uMkpYq28zyKWfuzKtLt1hD8=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FLibCommon.Shared.pdb">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>28yMmL3EV3MWlzVPfP3R3jC9/qQWZlIWvvKHFJz5Qs0=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FLibCommon.Shared.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>L9fmVpePV7PCT/SW8PIIBm6ekdcZSq9eG07O/R4s8pI=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FElmSharp.Wearable.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>9xk59Y9Uhmml3aT0AKL5zD8aQbN2QMedWOZxxGQ86EA=</DigestValue>
+    </Reference>
+    <Reference URI="author-signature.xml">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>v1HIQ1oAj0d93pjOih1y2AIp2no3LNXDJ4VtjJfuxnA=</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#sha256" />
+      <DigestValue>abSCdQC03ZcPoEN8T0eWSILDIhDi2uNziivgdw1gmmQ=</DigestValue>
+    </Reference>
+  </SignedInfo>
+  <SignatureValue>
+WYhNnCdE+md3kl9gZJRTpLWQQlrq6HhTOAd/YRhEAc7QaJJzVoBbWnRtxmIgmD4z5mWCUvpoIciR
+ikSD0U0pc6qyKugNHRgG8U2g+4jpHfEukaPpfKBeWLVmySS+Qw2w+Gq7RgIGrMICPWntQuxxqFj8
+oX4m/76+NR8hpdU6djw=
+</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/TVApps/TVApps.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/tizen-manifest.xml b/TVApps/TVApps.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/tizen-manifest.xml
new file mode 100644 (file)
index 0000000..e1b0576
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest package="org.tizen.xaapps" version="1.0.0" api-version="3.0" xmlns="http://tizen.org/ns/packages">
+  <profile name="tv" />
+  <ui-application appid="org.tizen.xaapps" exec="TVApps.Tizen.TV.dll" multiple="false" nodisplay="true" taskmanage="false" splash-screen-display="false" type="dotnet" launch_mode="single">
+    <icon>xaapps.png</icon>
+    <label>Apps</label>
+  </ui-application>
+  <shortcut-list />
+</manifest>
diff --git a/TVApps/TVApps.Tizen.TV/shared/res/TVApps.Tizen.TV.png b/TVApps/TVApps.Tizen.TV/shared/res/TVApps.Tizen.TV.png
new file mode 100644 (file)
index 0000000..9f3cb98
Binary files /dev/null and b/TVApps/TVApps.Tizen.TV/shared/res/TVApps.Tizen.TV.png differ
diff --git a/TVApps/TVApps.Tizen.TV/tizen-manifest.xml b/TVApps/TVApps.Tizen.TV/tizen-manifest.xml
new file mode 100644 (file)
index 0000000..e1b0576
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest package="org.tizen.xaapps" version="1.0.0" api-version="3.0" xmlns="http://tizen.org/ns/packages">
+  <profile name="tv" />
+  <ui-application appid="org.tizen.xaapps" exec="TVApps.Tizen.TV.dll" multiple="false" nodisplay="true" taskmanage="false" splash-screen-display="false" type="dotnet" launch_mode="single">
+    <icon>xaapps.png</icon>
+    <label>Apps</label>
+  </ui-application>
+  <shortcut-list />
+</manifest>
diff --git a/TVApps/TVApps.TizenTV/Properties/AssemblyInfo.cs b/TVApps/TVApps.TizenTV/Properties/AssemblyInfo.cs
deleted file mode 100644 (file)
index e9b9107..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("TVApps.TizenTV")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("TVApps.TizenTV")]
-[assembly: AssemblyCopyright("Copyright ©  2017")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components.  If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("7e341bf5-b7bd-4532-9d4a-aa89537b525e")]
-
-// Version information for an assembly consists of the following four values:
-//
-//      Major Version
-//      Minor Version
-//      Build Number
-//      Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/TVApps/TVApps.TizenTV/Renderer/NinePatchImageRenderer.cs b/TVApps/TVApps.TizenTV/Renderer/NinePatchImageRenderer.cs
deleted file mode 100644 (file)
index f490767..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using System.ComponentModel;
-
-using TVApps.Controls;
-using TVApps.TizenTV.Renderer;
-using Xamarin.Forms.Platform.Tizen;
-
-[assembly: ExportRenderer(typeof(NinePatchImage), typeof(NinePatchImageRenderer))]
-namespace TVApps.TizenTV.Renderer
-{
-    /// <summary>
-    /// A custom renderer for NinePatchImage
-    /// </summary>
-    /// <see cref="NinePatchImage"/>
-    class NinePatchImageRenderer : ImageRenderer
-    {
-        /// <summary>
-        /// Updates border when Element is changed
-        /// </summary>
-        /// <param name="args">An image element changed event's argument </param>
-        protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.Image> args)
-        {
-            base.OnElementChanged(args);
-            UpdateBorder();
-        }
-
-        /// <summary>
-        /// Updates border when ElementProperty is changed
-        /// </summary>
-        /// <param name="sender">The source of the event</param>
-        /// <param name="args">An image element property changed event's argument </param>
-        protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs args)
-        {
-            if ((args.PropertyName == NinePatchImage.BorderBottomProperty.PropertyName)
-                || (args.PropertyName == NinePatchImage.BorderLeftProperty.PropertyName)
-                || (args.PropertyName == NinePatchImage.BorderRightProperty.PropertyName)
-                || (args.PropertyName == NinePatchImage.BorderTopProperty.PropertyName))
-            {
-                UpdateBorder();
-            }
-
-            base.OnElementPropertyChanged(sender, args);
-        }
-
-        /// <summary>
-        /// A method updates border of Control(Native Image)
-        /// </summary>
-        void UpdateBorder()
-        {
-            var img = Element as NinePatchImage;
-            Control.SetBorder(img.BorderLeft, img.BorderRight, img.BorderTop, img.BorderBottom);
-        }
-
-        /// <summary>
-        /// A method updates border of Control(Native Image) after loading
-        /// </summary>
-        protected override void UpdateAfterLoading()
-        {
-            base.UpdateAfterLoading();
-            UpdateBorder();
-        }
-    }
-}
diff --git a/TVApps/TVApps.TizenTV/Settings.StyleCop b/TVApps/TVApps.TizenTV/Settings.StyleCop
deleted file mode 100644 (file)
index 837530c..0000000
+++ /dev/null
@@ -1,722 +0,0 @@
-<StyleCopSettings Version="105">
-  <GlobalSettings>
-    <StringProperty Name="MergeSettingsFiles">NoMerge</StringProperty>
-  </GlobalSettings>
-  <Analyzers>
-    <Analyzer AnalyzerId="StyleCop.CSharp.DocumentationRules">
-      <Rules>
-        <Rule Name="ElementsMustBeDocumented">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementDocumentationMustHaveSummaryText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="EnumerationItemsMustBeDocumented">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DocumentationMustContainValidXml">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementDocumentationMustHaveSummary">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="PartialElementDocumentationMustHaveSummary">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementDocumentationMustNotHaveDefaultSummary">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="VoidReturnValueMustNotBeDocumented">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="GenericTypeParametersMustBeDocumented">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="GenericTypeParametersMustBeDocumentedPartialClass">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="GenericTypeParameterDocumentationMustMatchTypeParameters">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="GenericTypeParameterDocumentationMustDeclareParameterName">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="GenericTypeParameterDocumentationMustHaveText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="PropertySummaryDocumentationMustMatchAccessors">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="PropertySummaryDocumentationMustOmitSetAccessorWithRestrictedAccess">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementDocumentationMustNotBeCopiedAndPasted">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="SingleLineCommentsMustNotUseDocumentationStyleSlashes">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DocumentationTextMustNotBeEmpty">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DocumentationTextMustContainWhitespace">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DocumentationMustMeetCharacterPercentage">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ConstructorSummaryDocumentationMustBeginWithStandardText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DestructorSummaryDocumentationMustBeginWithStandardText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DocumentationHeadersMustNotContainBlankLines">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="IncludedDocumentationXPathDoesNotExist">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="IncludeNodeDoesNotContainValidFileAndPath">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="InheritDocMustBeUsedWithInheritingClass">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementDocumentationMustBeSpelledCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileMustHaveHeader">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileHeaderMustShowCopyright">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileHeaderMustHaveCopyrightText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileHeaderMustContainFileName">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileHeaderFileNameDocumentationMustMatchFileName">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileHeaderMustHaveValidCompanyText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileHeaderFileNameDocumentationMustMatchTypeName">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-      </Rules>
-      <AnalyzerSettings />
-    </Analyzer>
-    <Analyzer AnalyzerId="StyleCop.CSharp.NamingRules">
-      <Rules>
-        <Rule Name="ConstFieldNamesMustBeginWithUpperCaseLetter">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FieldNamesMustBeginWithLowerCaseLetter">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FieldNamesMustNotContainUnderscore">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementMustBeginWithLowerCaseLetter">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="NonPrivateReadonlyFieldsMustBeginWithUpperCaseLetter">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FieldNamesMustNotUseHungarianNotation">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="AccessibleFieldsMustBeginWithUpperCaseLetter">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="VariableNamesMustNotBePrefixed">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FieldNamesMustNotBeginWithUnderscore">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="StaticReadonlyFieldsMustBeginWithUpperCaseLetter">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-      </Rules>
-      <AnalyzerSettings />
-    </Analyzer>
-    <Analyzer AnalyzerId="StyleCop.CSharp.LayoutRules">
-      <Rules>
-        <Rule Name="AllAccessorsMustBeMultiLineOrSingleLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="OpeningCurlyBracketsMustNotBeFollowedByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementDocumentationHeadersMustNotBeFollowedByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="CodeMustNotContainMultipleBlankLinesInARow">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ClosingCurlyBracketsMustNotBePrecededByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="OpeningCurlyBracketsMustNotBePrecededByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ChainedStatementBlocksMustNotBePrecededByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="WhileDoFooterMustNotBePrecededByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="SingleLineCommentsMustNotBeFollowedByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementDocumentationHeaderMustBePrecededByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="SingleLineCommentMustBePrecededByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementsMustBeSeparatedByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="CodeMustNotContainBlankLinesAtStartOfFile">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="CodeMustNotContainBlankLinesAtEndOfFile">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-      </Rules>
-      <AnalyzerSettings />
-    </Analyzer>
-    <Analyzer AnalyzerId="StyleCop.CSharp.MaintainabilityRules">
-      <Rules>
-        <Rule Name="AccessModifierMustBeDeclared">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FieldsMustBePrivate">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="CodeAnalysisSuppressionMustHaveJustification">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DebugAssertMustProvideMessageText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DebugFailMustProvideMessageText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileMayOnlyContainASingleClass">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileMayOnlyContainASingleNamespace">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="StatementMustNotUseUnnecessaryParenthesis">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ArithmeticExpressionsMustDeclarePrecedence">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ConditionalExpressionsMustDeclarePrecedence">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="RemoveDelegateParenthesisWhenPossible">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="AttributeConstructorMustNotUseUnnecessaryParenthesis">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="RemoveUnnecessaryCode">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-      </Rules>
-      <AnalyzerSettings />
-    </Analyzer>
-    <Analyzer AnalyzerId="StyleCop.CSharp.OrderingRules">
-      <Rules>
-        <Rule Name="UsingDirectivesMustBePlacedWithinNamespace">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementsMustAppearInTheCorrectOrder">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementsMustBeOrderedByAccess">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ConstantsMustAppearBeforeFields">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="StaticElementsMustAppearBeforeInstanceElements">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DeclarationKeywordsMustFollowOrder">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ProtectedMustComeBeforeInternal">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="PropertyAccessorsMustFollowOrder">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="EventAccessorsMustFollowOrder">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="StaticReadonlyElementsMustAppearBeforeStaticNonReadonlyElements">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="InstanceReadonlyElementsMustAppearBeforeInstanceNonReadonlyElements">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="NoValueFirstComparison">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="SystemUsingDirectivesMustBePlacedBeforeOtherUsingDirectives">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="UsingAliasDirectivesMustBePlacedAfterOtherUsingDirectives">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="UsingDirectivesMustBeOrderedAlphabeticallyByNamespace">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="UsingAliasDirectivesMustBeOrderedAlphabeticallyByAliasName">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="UsingStaticDirectivesMustBePlacedAfterUsingNamespaceDirectives">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-      </Rules>
-      <AnalyzerSettings />
-    </Analyzer>
-    <Analyzer AnalyzerId="StyleCop.CSharp.ReadabilityRules">
-      <Rules>
-        <Rule Name="CommentsMustContainText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DoNotPrefixCallsWithBaseUnlessLocalImplementationExists">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="PrefixLocalCallsWithThis">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="PrefixCallsCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="OpeningParenthesisMustBeOnDeclarationLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ClosingParenthesisMustBeOnLineOfLastParameter">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ClosingParenthesisMustBeOnLineOfOpeningParenthesis">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="CommaMustBeOnSameLineAsPreviousParameter">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ParameterListMustFollowDeclaration">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ParameterMustFollowComma">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="SplitParametersMustStartOnLineAfterDeclaration">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ParametersMustBeOnSameLineOrSeparateLines">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ParameterMustNotSpanMultipleLines">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="QueryClauseMustFollowPreviousClause">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="QueryClausesMustBeOnSeparateLinesOrAllOnOneLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="QueryClauseMustBeginOnNewLineWhenPreviousClauseSpansMultipleLines">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="QueryClausesSpanningMultipleLinesMustBeginOnOwnLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DoNotPlaceRegionsWithinElements">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="CodeMustNotContainEmptyStatements">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="CodeMustNotContainMultipleStatementsOnOneLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="BlockStatementsMustNotContainEmbeddedComments">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="BlockStatementsMustNotContainEmbeddedRegions">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="UseStringEmptyForEmptyStrings">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="UseBuiltInTypeAlias">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="UseShorthandForNullableTypes">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-      </Rules>
-      <AnalyzerSettings />
-    </Analyzer>
-    <Analyzer AnalyzerId="StyleCop.CSharp.SpacingRules">
-      <Rules>
-        <Rule Name="CommasMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="SemicolonsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DocumentationLinesMustBeginWithSingleSpace">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="SingleLineCommentsMustBeginWithSingleSpace">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="PreprocessorKeywordsMustNotBePrecededBySpace">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="OperatorKeywordMustBeFollowedBySpace">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="OpeningCurlyBracketsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ClosingCurlyBracketsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="OpeningGenericBracketsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ClosingGenericBracketsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="OpeningAttributeBracketsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ClosingAttributeBracketsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="NullableTypeSymbolsMustNotBePrecededBySpace">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="MemberAccessSymbolsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="IncrementDecrementSymbolsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="NegativeSignsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="PositiveSignsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DereferenceAndAccessOfSymbolsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ColonsMustBeSpacedCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="CodeMustNotContainMultipleWhitespaceInARow">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="CodeMustNotContainSpaceAfterNewKeywordInImplicitlyTypedArrayAllocation">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="TabsMustNotBeUsed">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DoNotSplitNullConditionalOperators">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-      </Rules>
-      <AnalyzerSettings />
-    </Analyzer>
-  </Analyzers>
-</StyleCopSettings>
\ No newline at end of file
diff --git a/TVApps/TVApps.TizenTV/TVApps.TizenTV.cs b/TVApps/TVApps.TizenTV/TVApps.TizenTV.cs
deleted file mode 100755 (executable)
index 067aef0..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using LibTVRefCommonPortable.Utils;
-using LibTVRefCommonTizen.Ports;
-using Tizen.Applications;
-using Tizen.Xamarin.Forms.Extension.Renderer;
-
-namespace TVApps.TizenTV
-{
-    /// <summary>
-    /// TV Apps application main entry point
-    /// </summary>
-    public class Program : Xamarin.Forms.Platform.Tizen.FormsApplication, IAppLifeControl
-    {
-        /// <summary>
-        /// The application instance
-        /// </summary>
-        private static Program instance;
-
-        /// <summary>
-        /// An interface for the platform notification
-        /// </summary>
-        private IPlatformNotification notification;
-
-        /// <summary>
-        /// A method will be called when application is created
-        /// </summary>
-        protected override void OnCreate()
-        {
-            base.OnCreate();
-
-            FileSystemPort.AppDataStroagePath = DirectoryInfo.Data;
-            FileSystemPort.PlatformShareStroagePath = "/opt/usr/home/owner/share/";
-
-            var app = new App(MainWindow.ScreenSize.Width,
-                MainWindow.ScreenSize.Height,
-                MainWindow.ScreenDpi.X,
-                ElmSharp.Elementary.GetScale());
-            notification = app;
-
-            DbgPort.D("-----------------------------------");
-            DbgPort.D("Apps application is being loaded...");
-            DbgPort.D("-----------------------------------");
-            LoadApplication(app);
-
-            PackageManagerPort.RegisterCallbacks(notification);
-            MainWindow.Alpha = true;
-            MainWindow.KeyUp += KeyUpListener;
-
-            MainWindow.KeyGrab(ElmSharp.EvasKeyEventArgs.PlatformMenuButtonName, true);
-            MainWindow.KeyGrab("XF86Info", true);
-        }
-
-        /// <summary>
-        /// A method will be called when application receives KeyUp event
-        /// </summary>
-
-        /// <param name="sender">The source of the event</param>
-        /// <param name="args">A EvasKey event's argument</param>
-        private void KeyUpListener(object sender, ElmSharp.EvasKeyEventArgs args)
-        {
-            DebuggingUtils.Dbg("[TVApps.TizenTV.cs] Key Pressed :" + args.KeyName);
-            if (args.KeyName.CompareTo(ElmSharp.EvasKeyEventArgs.PlatformMenuButtonName) == 0 ||
-                args.KeyName.CompareTo("XF86Info") == 0)
-            {
-                notification?.OnMenuKeyPressed();
-            }
-        }
-
-        /// <summary>
-        /// A method will be called when application is terminated
-        /// </summary>
-        protected override void OnTerminate()
-        {
-            base.OnTerminate();
-
-            notification = null;
-            PackageManagerPort.UnregisterCallbacks();
-            MainWindow.KeyUngrab(ElmSharp.EvasKeyEventArgs.PlatformMenuButtonName);
-            MainWindow.KeyUngrab("XF86Info");
-        }
-
-        /// <summary>
-        /// A method will be called when application receives AppControl
-        /// </summary>
-        /// <param name="e">AppControl event argument</param>
-        protected override void OnAppControlReceived(AppControlReceivedEventArgs e)
-        {
-            DbgPort.D("OnAppControlReceived, " + e.ReceivedAppControl.Operation);
-
-            if (AppControlPort.AddAppOperation.CompareTo(e.ReceivedAppControl.Operation) == 0)
-            {
-                DbgPort.D("Add App Request");
-                notification.OnPinAppRequestReceived();
-            }
-        }
-
-        /// <summary>
-        /// The entry point for the application
-        /// </summary>
-        /// <param name="args">A list of command line arguments</param>
-        static void Main(string[] args)
-        {
-            instance = new Program();
-
-            DbgPort.Prefix = "Apps";
-
-            Xamarin.Forms.DependencyService.Register<DbgPort>();
-            Xamarin.Forms.DependencyService.Register<Program>();
-            Xamarin.Forms.DependencyService.Register<AppControlPort>();
-            Xamarin.Forms.DependencyService.Register<PackageManagerPort>();
-            Xamarin.Forms.DependencyService.Register<FileSystemWatcherPort>();
-            Xamarin.Forms.DependencyService.Register<ApplicationManagerPort>();
-            Xamarin.Forms.DependencyService.Register<FileSystemPort>();
-            Xamarin.Forms.DependencyService.Register<SystemSettingsPort>();
-
-            Xamarin.Forms.Platform.Tizen.Forms.Init(instance);
-            TizenFormsExtension.Init();
-
-            instance.Run(args);
-        }
-
-        /// <summary>
-        /// A method terminates application
-        /// </summary>
-        public void SelfTerminate()
-        {
-            instance.Exit();
-        }
-    }
-}
diff --git a/TVApps/TVApps.TizenTV/TVApps.TizenTV.csproj b/TVApps/TVApps.TizenTV/TVApps.TizenTV.csproj
deleted file mode 100755 (executable)
index f7a4224..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProductVersion>8.0.30703</ProductVersion>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectTypeGuids>{2F98DAC9-6F16-457B-AED7-D43CAC379341};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ProjectGuid>{7E341BF5-B7BD-4532-9D4A-AA89537B525E}</ProjectGuid>
-    <OutputType>Exe</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>TVApps.TizenTV</RootNamespace>
-    <AssemblyName>xaapps</AssemblyName>
-    <FileAlignment>512</FileAlignment>
-    <DefaultLanguage>en-US</DefaultLanguage>
-  </PropertyGroup>
-  <PropertyGroup>
-    <TargetFrameworkIdentifier>DNXCore</TargetFrameworkIdentifier>
-    <TargetFrameworkVersion>v5.0</TargetFrameworkVersion>
-    <AddAdditionalExplicitAssemblyReferences>false</AddAdditionalExplicitAssemblyReferences>
-    <NuGetTargetMoniker>.NETCoreApp,Version=v1.0</NuGetTargetMoniker>
-    <NoStdLib>true</NoStdLib>
-    <NoWarn>$(NoWarn);1701</NoWarn>
-    <UseVSHostingProcess>false</UseVSHostingProcess>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>portable</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>portable</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <ItemGroup>
-    <None Include="TVApps.TizenTV.project.json" />
-    <None Include="tizen-manifest.xml" />
-    <None Include="shared\res\xaapps.png" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="Renderer\NinePatchImageRenderer.cs" />
-    <Compile Include="TVApps.TizenTV.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <Folder Include="lib\" />
-    <Folder Include="res\" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\..\LibTVRefCommonPortable\LibTVRefCommonPortable.csproj">
-      <Project>{67F9D3A8-F71E-4428-913F-C37AE82CDB24}</Project>
-      <Name>LibTVRefCommonPortable</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\..\LibTVRefCommonTizen\LibTVRefCommonTizen.csproj">
-      <Project>{C558D279-897E-45E1-A10A-DECD788770F4}</Project>
-      <Name>LibTVRefCommonTizen</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\TVApps\TVApps.csproj">
-      <Project>{fd8c0ef4-6cea-4421-85b7-7ac8592738c6}</Project>
-      <Name>TVApps</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
-               Other similar extension points exist, see Microsoft.Common.targets.
-       <Target Name="BeforeBuild">
-       </Target>
-       <Target Name="AfterBuild">
-       </Target>
-       -->
-  <PropertyGroup>
-    <!-- https://github.com/dotnet/corefxlab/tree/master/samples/NetCoreSample and
-                        https://docs.microsoft.com/en-us/dotnet/articles/core/tutorials/target-dotnetcore-with-msbuild
-               -->
-    <!-- We don't use any of MSBuild's resolution logic for resolving the framework, so just set these two
-                        properties to any folder that exists to skip the GetReferenceAssemblyPaths task (not target) and
-                        to prevent it from outputting a warning (MSB3644).
-               -->
-    <_TargetFrameworkDirectories>$(MSBuildThisFileDirectory)</_TargetFrameworkDirectories>
-    <_FullFrameworkReferenceAssemblyPaths>$(MSBuildThisFileDirectory)</_FullFrameworkReferenceAssemblyPaths>
-    <AutoUnifyAssemblyReferences>true</AutoUnifyAssemblyReferences>
-  </PropertyGroup>
-  <ProjectExtensions>
-    <VisualStudio>
-      <FlavorProperties GUID="{2F98DAC9-6F16-457B-AED7-D43CAC379341}" Configuration="Debug|Any CPU">
-        <ProjectCommonFlavorCfg>
-          <excludeXamarinForms>True</excludeXamarinForms>
-        </ProjectCommonFlavorCfg>
-      </FlavorProperties>
-      <FlavorProperties GUID="{2F98DAC9-6F16-457B-AED7-D43CAC379341}" Configuration="Release|Any CPU">
-        <ProjectCommonFlavorCfg />
-      </FlavorProperties>
-    </VisualStudio>
-  </ProjectExtensions>
-</Project>
\ No newline at end of file
diff --git a/TVApps/TVApps.TizenTV/TVApps.TizenTV.project.json b/TVApps/TVApps.TizenTV/TVApps.TizenTV.project.json
deleted file mode 100755 (executable)
index af8f2d4..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-{
-  "buildOptions": {
-    "emitEntryPoint": true,
-    "debugType": "portable",
-    "platform": "AnyCPU",
-    "preserveCompilationContext": true
-  },
-  "dependencies": {
-    "ElmSharp": "1.2.2",
-    "Microsoft.NETCore.App": "1.1.2",
-    "Tizen.Applications": "1.5.8",
-    "Tizen.Content.MediaContent": "1.0.20",
-    "Tizen.Multimedia": "1.2.0",
-    "Tizen.Multimedia.MediaPlayer": "1.0.2",
-    "Tizen.Xamarin.Forms.Extension": "2.3.5-v00015",
-    "Xamarin.Forms": "2.4.0-r266-001",
-    "Xamarin.Forms.Platform.Tizen": "2.3.5-r256-001"
-  },
-  "runtimes": {
-    "win": {},
-    "linux": {}
-  },
-  "frameworks": {
-    "netcoreapp1.0": {
-      "imports": [
-        "portable-net45+wp80+win81+wpa81",
-        "netstandard1.6"
-      ]
-    }
-  }
-}
\ No newline at end of file
diff --git a/TVApps/TVApps.TizenTV/shared/res/xaapps.png b/TVApps/TVApps.TizenTV/shared/res/xaapps.png
deleted file mode 100644 (file)
index 9765b1b..0000000
Binary files a/TVApps/TVApps.TizenTV/shared/res/xaapps.png and /dev/null differ
diff --git a/TVApps/TVApps.TizenTV/tizen-manifest.xml b/TVApps/TVApps.TizenTV/tizen-manifest.xml
deleted file mode 100644 (file)
index 7c7a788..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<manifest package="org.tizen.xaapps" version="1.0.0" api-version="3.0" xmlns="http://tizen.org/ns/packages">
-  <profile name="tv" />
-  <ui-application appid="org.tizen.xaapps" exec="xaapps.exe" multiple="false" nodisplay="true" taskmanage="false" splash-screen-display="false" type="dotnet" launch_mode="single">
-    <icon>xaapps.png</icon>
-    <label>Apps</label>
-  </ui-application>
-  <shortcut-list />
-</manifest>
index 9e10d91faebe68f59679036539cd95020968b80b..33bcd0eb7cd553548c8ecd56d6e22f3efcdb05a7 100755 (executable)
@@ -19,7 +19,6 @@ using System;
 using System.ComponentModel;
 using System.Windows.Input;
 using Xamarin.Forms;
-using Xamarin.Forms.PlatformConfiguration.TizenSpecific;
 using Tizen.Xamarin.Forms.Extension;
 
 namespace TVApps.Controls
@@ -204,7 +203,7 @@ namespace TVApps.Controls
 
             ButtonTitle.PropertyChanged += ButtonTitlePropertyChanged;
             PropertyChanged += AppItemCellPropertyChanged;
-            ButtonTitle.On<Tizen>().SetFontWeight(FontWeight.Normal);
+            //ButtonTitle.On<Tizen>().SetFontWeight(FontWeight.Normal);
 
         }
 
@@ -359,7 +358,6 @@ namespace TVApps.Controls
             ContextPopup popup = new ContextPopup
             {
                 IsAutoHidingEnabled = true,
-                Orientation = ContextPopupOrientation.Vertical,
                 DirectionPriorities = new ContextPopupDirectionPriorities(ContextPopupDirection.Down, ContextPopupDirection.Right, ContextPopupDirection.Left, ContextPopupDirection.Up),
             };
 
diff --git a/TVApps/TVApps/Properties/AssemblyInfo.cs b/TVApps/TVApps/Properties/AssemblyInfo.cs
deleted file mode 100644 (file)
index e8bdef9..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-using System.Resources;
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("TVApps")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("TVApps")]
-[assembly: AssemblyCopyright("Copyright ©  2017")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Version information for an assembly consists of the following four values:
-//
-//      Major Version
-//      Minor Version
-//      Build Number
-//      Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
index 272c85a1e9331b7b531e24caaf5c783dcafbfa71..0a45e6ad289f06e0084cec9b52826c8e7923d806 100755 (executable)
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project Sdk="Microsoft.NET.Sdk">
+
   <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ProjectGuid>{FD8C0EF4-6CEA-4421-85B7-7AC8592738C6}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <RootNamespace>TVApps</RootNamespace>
-    <AssemblyName>TVApps</AssemblyName>
-    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
-    <TargetFrameworkProfile>Profile259</TargetFrameworkProfile>
-    <MinimumVisualStudioVersion>10.0</MinimumVisualStudioVersion>
-    <NuGetPackageImportStamp>
-    </NuGetPackageImportStamp>
+    <TargetFramework>netstandard2.0</TargetFramework>
   </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>portable</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <ConsolePause>false</ConsolePause>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>portable</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <ConsolePause>false</ConsolePause>
-  </PropertyGroup>
-  <ItemGroup>
-    <Compile Include="Controls\AppItemCell.xaml.cs">
-      <DependentUpon>AppItemCell.xaml</DependentUpon>
-    </Compile>
-    <Compile Include="Controls\AppListView.xaml.cs">
-      <DependentUpon>AppListView.xaml</DependentUpon>
-    </Compile>
-    <Compile Include="Controls\NinePatchImage.xaml.cs">
-      <DependentUpon>NinePatchImage.xaml</DependentUpon>
-    </Compile>
-    <Compile Include="TVApps.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="ViewModels\AppsHolder.cs" />
-    <Compile Include="ViewModels\AppsListSorter.cs" />
-    <Compile Include="ViewModels\FooterViewModel.cs" />
-    <Compile Include="ViewModels\IAppsViewModel.cs" />
-    <Compile Include="ViewModels\ItemViewModel.cs" />
-    <Compile Include="ViewModels\ListViewModel.cs" />
-    <Compile Include="ViewModels\MainPageViewModel.cs" />
-    <Compile Include="Views\FooterDeleteStatus.xaml.cs">
-      <DependentUpon>FooterDeleteStatus.xaml</DependentUpon>
-    </Compile>
-    <Compile Include="Views\FooterNormalStatus.xaml.cs">
-      <DependentUpon>FooterNormalStatus.xaml</DependentUpon>
-    </Compile>
-    <Compile Include="Views\FooterPinStatus.xaml.cs">
-      <DependentUpon>FooterPinStatus.xaml</DependentUpon>
-    </Compile>
-    <Compile Include="Views\MainPage.xaml.cs">
-      <DependentUpon>MainPage.xaml</DependentUpon>
-    </Compile>
-  </ItemGroup>
-  <ItemGroup>
-    <EmbeddedResource Include="Views\MainPage.xaml">
-      <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-  </ItemGroup>
-  <ItemGroup>
-    <EmbeddedResource Include="Controls\NinePatchImage.xaml">
-      <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-  </ItemGroup>
-  <ItemGroup>
-    <EmbeddedResource Include="Controls\AppListView.xaml">
-      <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-  </ItemGroup>
-  <ItemGroup>
-    <EmbeddedResource Include="Controls\AppItemCell.xaml">
-      <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-  </ItemGroup>
-  <ItemGroup>
-    <EmbeddedResource Include="Views\FooterDeleteStatus.xaml">
-      <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-    <EmbeddedResource Include="Views\FooterNormalStatus.xaml">
-      <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-    <EmbeddedResource Include="Views\FooterPinStatus.xaml">
-      <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\..\LibTVRefCommonPortable\LibTVRefCommonPortable.csproj">
-      <Project>{67f9d3a8-f71e-4428-913f-c37ae82cdb24}</Project>
-      <Name>LibTVRefCommonPortable</Name>
-    </ProjectReference>
-  </ItemGroup>
+
   <ItemGroup>
-    <PackageReference Include="Tizen.Xamarin.Forms.Extension">
-      <Version>2.3.5-v00015</Version>
-    </PackageReference>
-    <PackageReference Include="Xamarin.Forms">
-      <Version>2.4.0-r266-001</Version>
-    </PackageReference>
+    <PackageReference Include="Tizen.Xamarin.Forms.Extension" Version="2.4.0-v00005" />
+    <PackageReference Include="Xamarin.Forms" Version="2.4.0.266-pre1" />
   </ItemGroup>
+
   <ItemGroup>
-    <None Include="packages.config" />
+    <ProjectReference Include="..\..\LibCommon.Shared\LibCommon.Shared.csproj" />
   </ItemGroup>
-  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" />
-  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
-  </Target>
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
-               Other similar extension points exist, see Microsoft.Common.targets.
-       <Target Name="BeforeBuild">
-       </Target>
-       <Target Name="AfterBuild">
-       </Target>
-       -->
-</Project>
\ No newline at end of file
+
+</Project>
index bbfb62caac7cb805545808ce5400fc9f2d16db20..766699ad75302e168182aab09d613bfa5342b188 100755 (executable)
@@ -192,7 +192,6 @@ namespace TVApps.Views
             ContextPopup popup = new ContextPopup
             {
                 IsAutoHidingEnabled = true,
-                Orientation = ContextPopupOrientation.Vertical,
                 DirectionPriorities = new ContextPopupDirectionPriorities(ContextPopupDirection.Up, ContextPopupDirection.Right, ContextPopupDirection.Left, ContextPopupDirection.Down),
             };
 
index 25a7db0118c77da3be784c21020ee676174965ee..95d2480b881f6bb92904bb9dbdafde9ae2fad68b 100755 (executable)
@@ -16,7 +16,6 @@
 
 using LibTVRefCommonPortable.Utils;
 using Xamarin.Forms;
-using Xamarin.Forms.PlatformConfiguration.TizenSpecific;
 
 namespace TVApps.Views
 {
@@ -146,7 +145,7 @@ namespace TVApps.Views
                 Opacity = 0.7,
                 HorizontalTextAlignment = TextAlignment.Start,
             };
-            AppNameLabel.On<Xamarin.Forms.PlatformConfiguration.Tizen>().SetFontWeight(FontWeight.Medium);
+            //AppNameLabel.On<Xamarin.Forms.PlatformConfiguration.Tizen>().SetFontWeight(FontWeight.Medium);
 
             AfterLabel = new Xamarin.Forms.Label()
             {
@@ -157,7 +156,7 @@ namespace TVApps.Views
                 Opacity = 0.7,
                 HorizontalTextAlignment = TextAlignment.Start
             };
-            AfterLabel.On<Xamarin.Forms.PlatformConfiguration.Tizen>().SetFontWeight(FontWeight.Light);
+            //AfterLabel.On<Xamarin.Forms.PlatformConfiguration.Tizen>().SetFontWeight(FontWeight.Light);
 
             PropertyChanged += FooterPinStatusPropertyChanged;
         }
index 937e68f0777755248f5853ebf5f0c91822059e60..c2f359afd0f6bca028fb38aef0e1ebc756c69bcd 100755 (executable)
@@ -24,7 +24,6 @@ using System.Threading.Tasks;
 using System.Windows.Input;
 using System.Collections.Generic;
 using System.Linq;
-using Xamarin.Forms.PlatformConfiguration.TizenSpecific;
 using Tizen.Xamarin.Forms.Extension;
 
 namespace TVApps.Views
@@ -159,7 +158,7 @@ namespace TVApps.Views
             BackKeyInfoImage.HeightRequest = backKeyImageSize;
             BackKeyInfo.FontSize = SizeUtils.GetFontSize(28);
             BackKeyInfo.Margin = new Thickness(SizeUtils.GetWidthSize(6), 0, 0, 0);
-            BackKeyInfo.On<Tizen>().SetFontWeight(FontWeight.Normal);
+            //BackKeyInfo.On<Tizen>().SetFontWeight(FontWeight.Normal);
 
             PropertyChanged += MainPagePropertyChanged;
             SetCurrentStatus(AppsStatus.Default);
@@ -238,20 +237,20 @@ namespace TVApps.Views
 
                 if (i == 1)
                 {
-                    prevButton?.On<Tizen>()?.SetNextFocusDownView(
-                        lowerList[i - 1].FindByName<Button>("ButtonFocusArea"));
+                    //prevButton?.On<Tizen>()?.SetNextFocusDownView(
+                    //    lowerList[i - 1].FindByName<Button>("ButtonFocusArea"));
                 }
 
-                button?.On<Tizen>()?.SetNextFocusDownView(
-                    lowerList[i].FindByName<Button>("ButtonFocusArea"));
+                //button?.On<Tizen>()?.SetNextFocusDownView(
+                //    lowerList[i].FindByName<Button>("ButtonFocusArea"));
 
                 if (i == upperCount - 2)
                 {
-                    button?.On<Tizen>()?.SetNextFocusDownView(lowerList[i].FindByName<Button>("ButtonFocusArea"));
+                    //button?.On<Tizen>()?.SetNextFocusDownView(lowerList[i].FindByName<Button>("ButtonFocusArea"));
 
-                    nextButton?.On<Tizen>()?.SetNextFocusRightView(nextButton);
-                    nextButton?.On<Tizen>()?.SetNextFocusDownView(
-                        lowerList[lowerCount - 1].FindByName<Button>("ButtonFocusArea"));
+                    //nextButton?.On<Tizen>()?.SetNextFocusRightView(nextButton);
+                    //nextButton?.On<Tizen>()?.SetNextFocusDownView(
+                    //    lowerList[lowerCount - 1].FindByName<Button>("ButtonFocusArea"));
                 }
             }
 
@@ -266,24 +265,24 @@ namespace TVApps.Views
 
                 if (i == 1)
                 {
-                    prevButton?.On<Tizen>()?.SetNextFocusUpView(
-                        upperList[i - 1].FindByName<Button>("ButtonFocusArea"));
+                    //prevButton?.On<Tizen>()?.SetNextFocusUpView(
+                    //    upperList[i - 1].FindByName<Button>("ButtonFocusArea"));
                 }
 
-                button?.On<Tizen>()?.SetNextFocusUpView(
-                    upperList[i].FindByName<Button>("ButtonFocusArea"));
+                //button?.On<Tizen>()?.SetNextFocusUpView(
+                //    upperList[i].FindByName<Button>("ButtonFocusArea"));
 
                 if (i == lowerCount - 2)
                 {
-                    nextButton?.On<Tizen>()?.SetNextFocusUpView(upperList[i + 1].FindByName<Button>("ButtonFocusArea"));
+                    //nextButton?.On<Tizen>()?.SetNextFocusUpView(upperList[i + 1].FindByName<Button>("ButtonFocusArea"));
 
                     if (upperCount > lowerCount)
                     {
-                        nextButton?.On<Tizen>()?.SetNextFocusRightView(upperList[upperCount - 1].FindByName<Button>("ButtonFocusArea"));
+                        //nextButton?.On<Tizen>()?.SetNextFocusRightView(upperList[upperCount - 1].FindByName<Button>("ButtonFocusArea"));
                     }
                     else
                     {
-                        nextButton?.On<Tizen>()?.SetNextFocusRightView(nextButton);
+                        //nextButton?.On<Tizen>()?.SetNextFocusRightView(nextButton);
                     }
                 }
             }
@@ -298,8 +297,8 @@ namespace TVApps.Views
         /// <param name="right">A right App icon</param>
         private void SetFocusChainingLeftAndRight(Button left, Button right)
         {
-            left?.On<Tizen>()?.SetNextFocusRightView(right);
-            right?.On<Tizen>()?.SetNextFocusLeftView(left);
+            //left?.On<Tizen>()?.SetNextFocusRightView(right);
+            //right?.On<Tizen>()?.SetNextFocusLeftView(left);
         }
 
         /// <summary>
@@ -313,7 +312,7 @@ namespace TVApps.Views
             foreach (var item in lowerList)
             {
                 Button button = item.FindByName<Button>("ButtonFocusArea");
-                button?.On<Tizen>()?.SetNextFocusDownView(sortList);
+                //button?.On<Tizen>()?.SetNextFocusDownView(sortList);
             }
         }
 
@@ -328,15 +327,15 @@ namespace TVApps.Views
             foreach (var item in lowerList)
             {
                 Button button = item.FindByName<Button>("ButtonFocusArea");
-                button?.On<Tizen>()?.SetNextFocusDownView(cancelButton);
+                //button?.On<Tizen>()?.SetNextFocusDownView(cancelButton);
             }
 
             if (lowerList.Count > 0)
             {
-                cancelButton?.On<Tizen>()?.SetNextFocusUpView(lowerList[lowerList.Count - 1].FindByName<Button>("ButtonFocusArea"));
+                //cancelButton?.On<Tizen>()?.SetNextFocusUpView(lowerList[lowerList.Count - 1].FindByName<Button>("ButtonFocusArea"));
             }
 
-            cancelButton?.On<Tizen>()?.SetNextFocusLeftView(cancelButton);
+            //cancelButton?.On<Tizen>()?.SetNextFocusLeftView(cancelButton);
         }
 
         /// <summary>
@@ -350,15 +349,15 @@ namespace TVApps.Views
             foreach (var item in lowerList)
             {
                 Button button = item.FindByName<Button>("ButtonFocusArea");
-                button?.On<Tizen>()?.SetNextFocusDownView(doneButton);
+                //button?.On<Tizen>()?.SetNextFocusDownView(doneButton);
             }
 
             if (lowerList.Count > 0)
             {
-                doneButton?.On<Tizen>()?.SetNextFocusUpView(lowerList[lowerList.Count - 1].FindByName<Button>("ButtonFocusArea"));
+                //doneButton?.On<Tizen>()?.SetNextFocusUpView(lowerList[lowerList.Count - 1].FindByName<Button>("ButtonFocusArea"));
             }
 
-            doneButton?.On<Tizen>()?.SetNextFocusLeftView(doneButton);
+            //doneButton?.On<Tizen>()?.SetNextFocusLeftView(doneButton);
         }
 
         /// <summary>
diff --git a/TVApps/TVApps/bin/Debug/netstandard2.0/TVApps.deps.json b/TVApps/TVApps/bin/Debug/netstandard2.0/TVApps.deps.json
new file mode 100644 (file)
index 0000000..c57156a
--- /dev/null
@@ -0,0 +1,93 @@
+{
+  "runtimeTarget": {
+    "name": ".NETStandard,Version=v2.0/",
+    "signature": "cf5149bdff09bd8db6df7773b79e5a86c601ccd4"
+  },
+  "compilationOptions": {},
+  "targets": {
+    ".NETStandard,Version=v2.0": {},
+    ".NETStandard,Version=v2.0/": {
+      "TVApps/1.0.0": {
+        "dependencies": {
+          "LibCommon.Shared": "1.0.0",
+          "NETStandard.Library": "2.0.0",
+          "Tizen.Xamarin.Forms.Extension": "2.4.0-v00005",
+          "Xamarin.Forms": "2.4.0.266-pre1"
+        },
+        "runtime": {
+          "TVApps.dll": {}
+        }
+      },
+      "Microsoft.NETCore.Platforms/1.1.0": {},
+      "NETStandard.Library/2.0.0": {
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0"
+        }
+      },
+      "Tizen.Xamarin.Forms.Extension/2.4.0-v00005": {
+        "dependencies": {
+          "Xamarin.Forms": "2.4.0.266-pre1"
+        },
+        "runtime": {
+          "lib/netstandard1.0/Tizen.Xamarin.Forms.Extension.dll": {}
+        }
+      },
+      "Xamarin.Forms/2.4.0.266-pre1": {
+        "runtime": {
+          "lib/netstandard1.0/Xamarin.Forms.Core.dll": {},
+          "lib/netstandard1.0/Xamarin.Forms.Platform.dll": {},
+          "lib/netstandard1.0/Xamarin.Forms.Xaml.dll": {}
+        }
+      },
+      "LibCommon.Shared/1.0.0": {
+        "dependencies": {
+          "Tizen.Xamarin.Forms.Extension": "2.4.0-v00005",
+          "Xamarin.Forms": "2.4.0.266-pre1"
+        },
+        "runtime": {
+          "LibCommon.Shared.dll": {}
+        }
+      }
+    }
+  },
+  "libraries": {
+    "TVApps/1.0.0": {
+      "type": "project",
+      "serviceable": false,
+      "sha512": ""
+    },
+    "Microsoft.NETCore.Platforms/1.1.0": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==",
+      "path": "microsoft.netcore.platforms/1.1.0",
+      "hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512"
+    },
+    "NETStandard.Library/2.0.0": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-7jnbRU+L08FXKMxqUflxEXtVymWvNOrS8yHgu9s6EM8Anr6T/wIX4nZ08j/u3Asz+tCufp3YVwFSEvFTPYmBPA==",
+      "path": "netstandard.library/2.0.0",
+      "hashPath": "netstandard.library.2.0.0.nupkg.sha512"
+    },
+    "Tizen.Xamarin.Forms.Extension/2.4.0-v00005": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-MKUamVt5XloZ/JziyOXLdbahn7T0LDQDJGUt3ynt0iSia4aLpZLOua6/iypBhnC79FgMaNfUA7APjVfjh3NLTg==",
+      "path": "tizen.xamarin.forms.extension/2.4.0-v00005",
+      "hashPath": "tizen.xamarin.forms.extension.2.4.0-v00005.nupkg.sha512"
+    },
+    "Xamarin.Forms/2.4.0.266-pre1": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-pMu+b01vdH1ul5EJo1opQjEcwisWT35DdZO6EuR9HNKfY1dWyKmAlWgRdGUtjtdbhjOAtCOQUxI7F3x4hvV8KA==",
+      "path": "xamarin.forms/2.4.0.266-pre1",
+      "hashPath": "xamarin.forms.2.4.0.266-pre1.nupkg.sha512"
+    },
+    "LibCommon.Shared/1.0.0": {
+      "type": "project",
+      "serviceable": false,
+      "sha512": ""
+    }
+  }
+}
\ No newline at end of file
diff --git a/TVApps/TVApps/packages.config b/TVApps/TVApps/packages.config
deleted file mode 100755 (executable)
index 6356cba..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<packages>
-  <package id="Tizen.Xamarin.Forms.Extension" version="2.3.5-v00010" targetFramework="portable45-net45+win8+wp8+wpa81" />
-  <package id="Xamarin.Forms" version="2.3.5-r233-012" targetFramework="portable45-net45+win8+wp8+wpa81" />
-</packages>
\ No newline at end of file
diff --git a/TVHome.sln b/TVHome.sln
deleted file mode 100644 (file)
index 06dc6f4..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-\r
-Microsoft Visual Studio Solution File, Format Version 12.00\r
-# Visual Studio 14\r
-VisualStudioVersion = 14.0.25420.1\r
-MinimumVisualStudioVersion = 10.0.40219.1\r
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TVHome", "TVHome\TVHome\TVHome.csproj", "{54DD6673-7E64-48E6-A008-4D455E19E017}"\r
-EndProject\r
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibTVRefCommonPortable", "LibTVRefCommonPortable\LibTVRefCommonPortable.csproj", "{67F9D3A8-F71E-4428-913F-C37AE82CDB24}"\r
-EndProject\r
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibTVRefCommonTizen", "LibTVRefCommonTizen\LibTVRefCommonTizen.csproj", "{C558D279-897E-45E1-A10A-DECD788770F4}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-               {67F9D3A8-F71E-4428-913F-C37AE82CDB24} = {67F9D3A8-F71E-4428-913F-C37AE82CDB24}\r
-       EndProjectSection\r
-EndProject\r
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TVHome.TizenTV", "TVHome\TVHome.TizenTV\TVHome.TizenTV.csproj", "{CE03A1DC-A3E0-41DD-B06C-92C19E8D2A8F}"\r
-EndProject\r
-Global\r
-       GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
-               Debug|Any CPU = Debug|Any CPU\r
-               Release|Any CPU = Release|Any CPU\r
-       EndGlobalSection\r
-       GlobalSection(ProjectConfigurationPlatforms) = postSolution\r
-               {54DD6673-7E64-48E6-A008-4D455E19E017}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
-               {54DD6673-7E64-48E6-A008-4D455E19E017}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
-               {54DD6673-7E64-48E6-A008-4D455E19E017}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
-               {54DD6673-7E64-48E6-A008-4D455E19E017}.Release|Any CPU.Build.0 = Release|Any CPU\r
-               {67F9D3A8-F71E-4428-913F-C37AE82CDB24}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
-               {67F9D3A8-F71E-4428-913F-C37AE82CDB24}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
-               {67F9D3A8-F71E-4428-913F-C37AE82CDB24}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
-               {67F9D3A8-F71E-4428-913F-C37AE82CDB24}.Release|Any CPU.Build.0 = Release|Any CPU\r
-               {C558D279-897E-45E1-A10A-DECD788770F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
-               {C558D279-897E-45E1-A10A-DECD788770F4}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
-               {C558D279-897E-45E1-A10A-DECD788770F4}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
-               {C558D279-897E-45E1-A10A-DECD788770F4}.Release|Any CPU.Build.0 = Release|Any CPU\r
-               {CE03A1DC-A3E0-41DD-B06C-92C19E8D2A8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
-               {CE03A1DC-A3E0-41DD-B06C-92C19E8D2A8F}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
-               {CE03A1DC-A3E0-41DD-B06C-92C19E8D2A8F}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
-               {CE03A1DC-A3E0-41DD-B06C-92C19E8D2A8F}.Release|Any CPU.Build.0 = Release|Any CPU\r
-       EndGlobalSection\r
-       GlobalSection(SolutionProperties) = preSolution\r
-               HideSolutionNode = FALSE\r
-       EndGlobalSection\r
-EndGlobal\r
diff --git a/TVHome/TVHome.Tizen.TV/Settings.StyleCop b/TVHome/TVHome.Tizen.TV/Settings.StyleCop
new file mode 100644 (file)
index 0000000..837530c
--- /dev/null
@@ -0,0 +1,722 @@
+<StyleCopSettings Version="105">
+  <GlobalSettings>
+    <StringProperty Name="MergeSettingsFiles">NoMerge</StringProperty>
+  </GlobalSettings>
+  <Analyzers>
+    <Analyzer AnalyzerId="StyleCop.CSharp.DocumentationRules">
+      <Rules>
+        <Rule Name="ElementsMustBeDocumented">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementDocumentationMustHaveSummaryText">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="EnumerationItemsMustBeDocumented">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DocumentationMustContainValidXml">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementDocumentationMustHaveSummary">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="PartialElementDocumentationMustHaveSummary">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementDocumentationMustNotHaveDefaultSummary">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="VoidReturnValueMustNotBeDocumented">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="GenericTypeParametersMustBeDocumented">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="GenericTypeParametersMustBeDocumentedPartialClass">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="GenericTypeParameterDocumentationMustMatchTypeParameters">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="GenericTypeParameterDocumentationMustDeclareParameterName">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="GenericTypeParameterDocumentationMustHaveText">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="PropertySummaryDocumentationMustMatchAccessors">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="PropertySummaryDocumentationMustOmitSetAccessorWithRestrictedAccess">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementDocumentationMustNotBeCopiedAndPasted">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="SingleLineCommentsMustNotUseDocumentationStyleSlashes">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DocumentationTextMustNotBeEmpty">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DocumentationTextMustContainWhitespace">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DocumentationMustMeetCharacterPercentage">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ConstructorSummaryDocumentationMustBeginWithStandardText">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DestructorSummaryDocumentationMustBeginWithStandardText">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DocumentationHeadersMustNotContainBlankLines">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="IncludedDocumentationXPathDoesNotExist">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="IncludeNodeDoesNotContainValidFileAndPath">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="InheritDocMustBeUsedWithInheritingClass">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementDocumentationMustBeSpelledCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FileMustHaveHeader">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FileHeaderMustShowCopyright">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FileHeaderMustHaveCopyrightText">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FileHeaderMustContainFileName">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FileHeaderFileNameDocumentationMustMatchFileName">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FileHeaderMustHaveValidCompanyText">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FileHeaderFileNameDocumentationMustMatchTypeName">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+      </Rules>
+      <AnalyzerSettings />
+    </Analyzer>
+    <Analyzer AnalyzerId="StyleCop.CSharp.NamingRules">
+      <Rules>
+        <Rule Name="ConstFieldNamesMustBeginWithUpperCaseLetter">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FieldNamesMustBeginWithLowerCaseLetter">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FieldNamesMustNotContainUnderscore">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementMustBeginWithLowerCaseLetter">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="NonPrivateReadonlyFieldsMustBeginWithUpperCaseLetter">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FieldNamesMustNotUseHungarianNotation">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="AccessibleFieldsMustBeginWithUpperCaseLetter">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="VariableNamesMustNotBePrefixed">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FieldNamesMustNotBeginWithUnderscore">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="StaticReadonlyFieldsMustBeginWithUpperCaseLetter">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+      </Rules>
+      <AnalyzerSettings />
+    </Analyzer>
+    <Analyzer AnalyzerId="StyleCop.CSharp.LayoutRules">
+      <Rules>
+        <Rule Name="AllAccessorsMustBeMultiLineOrSingleLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="OpeningCurlyBracketsMustNotBeFollowedByBlankLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementDocumentationHeadersMustNotBeFollowedByBlankLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="CodeMustNotContainMultipleBlankLinesInARow">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ClosingCurlyBracketsMustNotBePrecededByBlankLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="OpeningCurlyBracketsMustNotBePrecededByBlankLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ChainedStatementBlocksMustNotBePrecededByBlankLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="WhileDoFooterMustNotBePrecededByBlankLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="SingleLineCommentsMustNotBeFollowedByBlankLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementDocumentationHeaderMustBePrecededByBlankLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="SingleLineCommentMustBePrecededByBlankLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementsMustBeSeparatedByBlankLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="CodeMustNotContainBlankLinesAtStartOfFile">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="CodeMustNotContainBlankLinesAtEndOfFile">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+      </Rules>
+      <AnalyzerSettings />
+    </Analyzer>
+    <Analyzer AnalyzerId="StyleCop.CSharp.MaintainabilityRules">
+      <Rules>
+        <Rule Name="AccessModifierMustBeDeclared">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FieldsMustBePrivate">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="CodeAnalysisSuppressionMustHaveJustification">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DebugAssertMustProvideMessageText">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DebugFailMustProvideMessageText">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FileMayOnlyContainASingleClass">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="FileMayOnlyContainASingleNamespace">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="StatementMustNotUseUnnecessaryParenthesis">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ArithmeticExpressionsMustDeclarePrecedence">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ConditionalExpressionsMustDeclarePrecedence">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="RemoveDelegateParenthesisWhenPossible">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="AttributeConstructorMustNotUseUnnecessaryParenthesis">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="RemoveUnnecessaryCode">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+      </Rules>
+      <AnalyzerSettings />
+    </Analyzer>
+    <Analyzer AnalyzerId="StyleCop.CSharp.OrderingRules">
+      <Rules>
+        <Rule Name="UsingDirectivesMustBePlacedWithinNamespace">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementsMustAppearInTheCorrectOrder">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ElementsMustBeOrderedByAccess">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ConstantsMustAppearBeforeFields">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="StaticElementsMustAppearBeforeInstanceElements">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DeclarationKeywordsMustFollowOrder">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ProtectedMustComeBeforeInternal">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="PropertyAccessorsMustFollowOrder">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="EventAccessorsMustFollowOrder">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="StaticReadonlyElementsMustAppearBeforeStaticNonReadonlyElements">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="InstanceReadonlyElementsMustAppearBeforeInstanceNonReadonlyElements">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="NoValueFirstComparison">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="SystemUsingDirectivesMustBePlacedBeforeOtherUsingDirectives">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="UsingAliasDirectivesMustBePlacedAfterOtherUsingDirectives">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="UsingDirectivesMustBeOrderedAlphabeticallyByNamespace">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="UsingAliasDirectivesMustBeOrderedAlphabeticallyByAliasName">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="UsingStaticDirectivesMustBePlacedAfterUsingNamespaceDirectives">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+      </Rules>
+      <AnalyzerSettings />
+    </Analyzer>
+    <Analyzer AnalyzerId="StyleCop.CSharp.ReadabilityRules">
+      <Rules>
+        <Rule Name="CommentsMustContainText">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DoNotPrefixCallsWithBaseUnlessLocalImplementationExists">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="PrefixLocalCallsWithThis">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="PrefixCallsCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="OpeningParenthesisMustBeOnDeclarationLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ClosingParenthesisMustBeOnLineOfLastParameter">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ClosingParenthesisMustBeOnLineOfOpeningParenthesis">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="CommaMustBeOnSameLineAsPreviousParameter">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ParameterListMustFollowDeclaration">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ParameterMustFollowComma">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="SplitParametersMustStartOnLineAfterDeclaration">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ParametersMustBeOnSameLineOrSeparateLines">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ParameterMustNotSpanMultipleLines">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="QueryClauseMustFollowPreviousClause">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="QueryClausesMustBeOnSeparateLinesOrAllOnOneLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="QueryClauseMustBeginOnNewLineWhenPreviousClauseSpansMultipleLines">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="QueryClausesSpanningMultipleLinesMustBeginOnOwnLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DoNotPlaceRegionsWithinElements">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="CodeMustNotContainEmptyStatements">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="CodeMustNotContainMultipleStatementsOnOneLine">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="BlockStatementsMustNotContainEmbeddedComments">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="BlockStatementsMustNotContainEmbeddedRegions">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="UseStringEmptyForEmptyStrings">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="UseBuiltInTypeAlias">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="UseShorthandForNullableTypes">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+      </Rules>
+      <AnalyzerSettings />
+    </Analyzer>
+    <Analyzer AnalyzerId="StyleCop.CSharp.SpacingRules">
+      <Rules>
+        <Rule Name="CommasMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="SemicolonsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DocumentationLinesMustBeginWithSingleSpace">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="SingleLineCommentsMustBeginWithSingleSpace">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="PreprocessorKeywordsMustNotBePrecededBySpace">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="OperatorKeywordMustBeFollowedBySpace">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="OpeningCurlyBracketsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ClosingCurlyBracketsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="OpeningGenericBracketsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ClosingGenericBracketsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="OpeningAttributeBracketsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ClosingAttributeBracketsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="NullableTypeSymbolsMustNotBePrecededBySpace">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="MemberAccessSymbolsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="IncrementDecrementSymbolsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="NegativeSignsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="PositiveSignsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DereferenceAndAccessOfSymbolsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="ColonsMustBeSpacedCorrectly">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="CodeMustNotContainMultipleWhitespaceInARow">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="CodeMustNotContainSpaceAfterNewKeywordInImplicitlyTypedArrayAllocation">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="TabsMustNotBeUsed">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+        <Rule Name="DoNotSplitNullConditionalOperators">
+          <RuleSettings>
+            <BooleanProperty Name="Enabled">False</BooleanProperty>
+          </RuleSettings>
+        </Rule>
+      </Rules>
+      <AnalyzerSettings />
+    </Analyzer>
+  </Analyzers>
+</StyleCopSettings>
\ No newline at end of file
diff --git a/TVHome/TVHome.Tizen.TV/Sniper.cs b/TVHome/TVHome.Tizen.TV/Sniper.cs
new file mode 100644 (file)
index 0000000..76017f0
--- /dev/null
@@ -0,0 +1,313 @@
+using System;
+using System.IO;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using Tizen;
+
+namespace CoreApp
+{
+       /// <summary>
+       /// Handles recent screen shot of launched applications
+       /// </summary>
+       public class Sniper
+       {
+               /// <summary>
+               /// Main window of the application
+               /// </summary>
+               private IntPtr nativeWindow;
+
+               /// <summary>
+               /// A path of storage for recent screen shot of launched application
+               /// </summary>
+               private string storagePath;
+
+               /// <summary>
+               /// A width of recent screen shot
+               /// </summary>
+               private int imageWidth;
+
+               /// <summary>
+               /// A height of recent screen shot
+               /// </summary>
+               private int imageHeight;
+
+               /// <summary>
+               /// A flag indicates whether updating recent screen shot or not
+               /// </summary>
+               public bool SkipUpdateFlag;
+
+               /// <summary>
+               /// Callbacks of sniper events
+               /// </summary>
+               private static InterOp.SniperCallback callbacks;
+
+               /// <summary>
+               /// A EventHandler handles recent screen shot update event
+               /// </summary>
+               public event EventHandler<Event> UpdatedEvent;
+
+               /// <summary>
+               /// A EventHandler handles add or remove application
+               /// </summary>
+               public event EventHandler<Event> AddRemoveEvent;
+
+               /// <summary>
+               /// A EventHandler handles skip update event
+               /// </summary>
+               public event EventHandler<Event> SkipUpdateEvent;
+
+               /// <summary>
+               /// A event argument class for app screen update notification.
+               /// </summary>
+               public class Event : EventArgs
+               {
+                       public string AppId;
+                       public string InstanceId;
+                       public string Info;
+               }
+
+               /// <summary>
+               /// A method for writing debug log
+               /// </summary>
+               /// <param name="message">A log message</param>
+               /// <param name="file">A path of caller file</param>
+               /// <param name="func">A name of caller function</param>
+               /// <param name="line">A line number of caller line</param>
+               private void WriteLog(string message, [CallerFilePath] string file = "", [CallerMemberName] string func = "", [CallerLineNumber] int line = 0)
+               {
+                       Log.Debug("sniper", message);
+               }
+
+               /// <summary>
+               /// A method for handling launched application
+               /// </summary>
+               /// <param name="appId">An ID of launched application</param>
+               /// <param name="instanceId">An instance ID of launched application</param>
+               private void AddedCallback(string appId, string instanceId)
+               {
+                       EventHandler<Event> handler = AddRemoveEvent;
+                       Event eventInfo;
+
+                       WriteLog("Added " + appId + " " + instanceId);
+
+                       if (handler == null)
+                       {
+                               return;
+                       }
+
+                       try
+                       {
+                               eventInfo = new Event();
+                       }
+                       catch (Exception e)
+                       {
+                               WriteLog("Updated Exception : " + e.Message);
+                               return;
+                       }
+
+                       eventInfo.AppId = appId;
+                       eventInfo.InstanceId = instanceId;
+                       eventInfo.Info = "Added";
+
+                       handler(this, eventInfo);
+               }
+
+               /// <summary>
+               /// A method for handling terminated application
+               /// </summary>
+               /// <param name="appId">An ID of terminated application</param>
+               /// <param name="instanceId">An instance ID of terminated application</param>
+               private void RemovedCallback(string appId, string instanceId)
+               {
+                       EventHandler<Event> handler = AddRemoveEvent;
+                       Event eventInfo;
+
+                       WriteLog("Removed " + appId + " " + instanceId);
+
+                       if (handler == null)
+                       {
+                               return;
+                       }
+
+                       try
+                       {
+                               eventInfo = new Event();
+                       }
+                       catch (Exception e)
+                       {
+                               WriteLog("Updated Exception : " + e.Message);
+                               return;
+                       }
+
+                       eventInfo.AppId = appId;
+                       eventInfo.InstanceId = instanceId;
+                       eventInfo.Info = "Removed";
+
+                       handler(this, eventInfo);
+               }
+
+               /// <summary>
+               /// A method for handling application screen is updated
+               /// </summary>
+               /// <param name="appId">An ID of application that screen is updated</param>
+               /// <param name="instanceId">An instance ID of application that screen is updated</param>
+               /// <param name="Filename">A path of application screen shot</param>
+               private void UpdatedCallback(string appId, string instanceId, string Filename)
+               {
+                       EventHandler<Event> handler = UpdatedEvent;
+                       Event eventInfo;
+
+                       WriteLog("Updated " + appId + " " + instanceId + " " + Filename);
+
+                       if (handler == null)
+                       {
+                               return;
+                       }
+
+                       try
+                       {
+                               eventInfo = new Event();
+                       }
+                       catch (Exception e)
+                       {
+                               WriteLog("Updated Exception : " + e.Message);
+                               return;
+                       }
+
+                       eventInfo.Info = Filename;
+                       eventInfo.AppId = appId;
+                       eventInfo.InstanceId = instanceId;
+
+                       handler(this, eventInfo);
+               }
+
+               /// <summary>
+               /// A method for handling screen update is skipped
+               /// </summary>
+               /// <param name="appId">An ID of application that screen update is skipped</param>
+               /// <param name="instanceId">An instance ID of application that screen update is skipped</param>
+               /// <param name="Filename">A path of application screen shot</param>
+               /// <returns>Returns finish code</returns>
+               private int SkipUpdateCallback(string appId, string instanceId, string Filename)
+               {
+                       EventHandler<Event> handler = SkipUpdateEvent;
+                       Event eventInfo;
+
+                       WriteLog("SkipUpdate" + appId + " " + instanceId + " " + Filename);
+
+                       if (handler == null)
+                       {
+                               return 0;
+                       }
+
+                       try
+                       {
+                               eventInfo = new Event();
+                       }
+                       catch (Exception e)
+                       {
+                               WriteLog("SkipUpdated Exception : " + e.Message);
+                               return 0;
+                       }
+
+                       eventInfo.Info = Filename;
+                       eventInfo.AppId = appId;
+                       eventInfo.InstanceId = instanceId;
+
+                       handler(this, eventInfo);
+
+                       if (SkipUpdateFlag)
+                       {
+                               WriteLog("Update is skipped : " + Filename);
+                               SkipUpdateFlag = false;
+                               return 1;
+                       }
+
+                       return 0;
+               }
+
+               /// <summary>
+               /// Constructor
+               /// </summary>
+               /// <param name="window">Main window of this application</param>
+               /// <param name="path">Storage path</param>
+               /// <param name="width">Screen shot width</param>
+               /// <param name="height">Screen shot height</param>
+               public Sniper(IntPtr window, string path, int width, int height)
+               {
+                       nativeWindow = window;
+                       storagePath = path;
+                       imageWidth = width;
+                       imageHeight = height;
+                       SkipUpdateFlag = false;
+               }
+
+               /// <summary>
+               /// A method for starting monitoring
+               /// Adds callbacks and initialize Sniper class
+               /// </summary>
+               public void StartMonitor()
+               {
+                       try
+                       {
+                               callbacks = new InterOp.SniperCallback();
+                               callbacks.Added = new InterOp.CallbackAddedRemoved(AddedCallback);
+                               callbacks.Removed = new InterOp.CallbackAddedRemoved(RemovedCallback);
+                               callbacks.Updated = new InterOp.CallbackUpdated(UpdatedCallback);
+                               callbacks.SkipUpdate = new InterOp.CallbackSkipUpdate(SkipUpdateCallback);
+                       }
+                       catch (Exception e)
+                       {
+                               throw new SniperException(e.Message);
+                       }
+
+                       try
+                       {
+                               InterOp.sniper_init(nativeWindow, callbacks, storagePath, imageWidth, imageHeight);
+                       }
+                       catch (DllNotFoundException e)
+                       {
+                               WriteLog("Loadable library is not found " + e.StackTrace);
+                       }
+
+                       WriteLog("Sniper starts monitoring : " + storagePath + "ImageSize : " + imageWidth + "x" + imageHeight);
+               }
+
+               /// <summary>
+               /// A method stops monitoring
+               /// </summary>
+               public void StopMonitor()
+               {
+                       try
+                       {
+                               InterOp.sniper_fini();
+                       }
+                       catch (DllNotFoundException e)
+                       {
+                               WriteLog("Loadable library is not found " + e.StackTrace);
+                       }
+
+                       WriteLog("Sniper stops monitoring : " + storagePath + "ImageSize : " + imageWidth + "x" + imageHeight);
+               }
+
+               /// <summary>
+               /// A method requests updating application screen shot
+               /// </summary>
+               /// <param name="instanceId">An instance ID of application</param>
+               public void RequestUpdate(string instanceId)
+               {
+                       try
+                       {
+                               InterOp.sniper_request_update(instanceId);
+                       }
+                       catch (DllNotFoundException e)
+                       {
+                               WriteLog("Loadable library is not found " + e.StackTrace);
+                       }
+
+                       WriteLog("Sniper requests update (" + instanceId + ") : " + storagePath + "ImageSize : " + imageWidth + "x" + imageHeight);
+               }
+       }
+}
+
+/* End of a file */
diff --git a/TVHome/TVHome.Tizen.TV/SniperException.cs b/TVHome/TVHome.Tizen.TV/SniperException.cs
new file mode 100644 (file)
index 0000000..9394ad8
--- /dev/null
@@ -0,0 +1,23 @@
+using System;
+
+namespace CoreApp
+{
+    public class SniperException : Exception
+    {
+        public SniperException()
+        {
+        }
+
+        public SniperException(string message)
+            : base(message)
+        {
+        }
+
+        public SniperException(string message, Exception inner)
+            : base(message, inner)
+        {
+        }
+    }
+}
+
+/* End of a file */
diff --git a/TVHome/TVHome.Tizen.TV/SniperInterOp.cs b/TVHome/TVHome.Tizen.TV/SniperInterOp.cs
new file mode 100644 (file)
index 0000000..d0bf60a
--- /dev/null
@@ -0,0 +1,38 @@
+using System;
+using System.Runtime.InteropServices;
+
+namespace CoreApp
+{
+    /// <summary>
+    /// Sniper InterOp class for getting application's screen-shot.
+    /// </summary>
+    internal static partial class InterOp
+    {
+        [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+        public delegate void CallbackAddedRemoved(string appId, string instanceId);
+        [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+        public delegate void CallbackUpdated(string appId, string instanceId, string filename);
+        [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+        public delegate int CallbackSkipUpdate(string appid, string instanceId, string filename);
+
+        [StructLayout(LayoutKind.Sequential)]
+        public struct SniperCallback
+        {
+            public CallbackAddedRemoved Added;
+            public CallbackAddedRemoved Removed;
+            public CallbackUpdated Updated;
+            public CallbackSkipUpdate SkipUpdate;
+        }
+
+        [DllImport("sniper", CharSet = CharSet.Ansi)]
+        internal static extern int sniper_init(IntPtr win, SniperCallback callbacks, string path, int w, int h);
+
+        [DllImport("sniper", CharSet = CharSet.Ansi)]
+        internal static extern int sniper_request_update(string instanceId);
+
+        [DllImport("sniper", CharSet = CharSet.Ansi)]
+        internal static extern int sniper_fini();
+    }
+}
+
+/* End of a file */
diff --git a/TVHome/TVHome.Tizen.TV/TVHome.Tizen.TV.csproj b/TVHome/TVHome.Tizen.TV/TVHome.Tizen.TV.csproj
new file mode 100644 (file)
index 0000000..e34c54b
--- /dev/null
@@ -0,0 +1,57 @@
+<Project>
+  <Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
+
+  <!-- Setting Tizen Extension Path -->
+  <PropertyGroup Label="Globals">
+    <TizenProjectExtensionsPath>$(MSBuildExtensionsPath)\Tizen\VisualStudio\</TizenProjectExtensionsPath>
+  </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 -->
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>netcoreapp2.0</TargetFramework>
+  </PropertyGroup>
+
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugType>portable</DebugType>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>None</DebugType>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Folder Include="lib\" />
+  </ItemGroup>
+
+  
+  <!-- If solution already has PCL project, will reference -->
+  
+
+  <!-- Include Nuget Package for Tizen Project building -->
+  <ItemGroup>
+    <PackageReference Include="Tizen.NET" Version="4.0.0-preview1-00143" />
+    <PackageReference Include="Tizen.NET.Sdk" Version="0.9.18-pre1" />
+    <PackageReference Include="Tizen.Xamarin.Forms.Extension" Version="2.4.0-v00005" />
+    <PackageReference Include="Xamarin.Forms" Version="2.4.0.266-pre1" />
+    <PackageReference Include="Xamarin.Forms.Platform.Tizen" Version="2.4.0-r266-006" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\LibCommon.Shared\LibCommon.Shared.csproj" />
+    <ProjectReference Include="..\..\LibCommon.Tizen\LibCommon.Tizen.csproj" />
+    <ProjectReference Include="..\..\TVApps\TVApps.Tizen.TV\TVApps.Tizen.TV.csproj" />
+    <ProjectReference Include="..\..\TVApps\TVApps\TVApps.csproj" />
+    <ProjectReference Include="..\TVHome\TVHome.csproj" />
+  </ItemGroup>
+
+  <Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
+  <Import Project="$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.targets" Condition="Exists('$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.targets')" />
+
+  <!-- Install Check 'Visual Studio for Tizen' for developing on Visual Studio -->
+  <Target Name="TizenVsixInstallCheck" BeforeTargets="CompileDesignTime">
+    <Warning Condition="!Exists('$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.props')" Text="$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.props is not exist.&#xA; you need to check if 'Visual Studio for Tizen' is installed" />
+    <Warning Condition="!Exists('$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.targets')" Text="$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.targets is not exist.\&#xA; you need to check if 'Visual Studio for Tizen' is installed" />
+  </Target>
+</Project>
diff --git a/TVHome/TVHome.Tizen.TV/TVHome.TizenTV.cs b/TVHome/TVHome.Tizen.TV/TVHome.TizenTV.cs
new file mode 100644 (file)
index 0000000..78845d8
--- /dev/null
@@ -0,0 +1,199 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using Tizen.Applications;
+using LibTVRefCommonPortable.Utils;
+using LibTVRefCommonTizen.Ports;
+using Tizen.Xamarin.Forms.Extension.Renderer;
+using CoreApp;
+using System;
+
+namespace TVHome.TizenTV
+{
+    /// <summary>
+    /// TV Home application main entry point
+    /// </summary>
+    class Program : global::Xamarin.Forms.Platform.Tizen.FormsApplication
+    {
+        /// <summary>
+        /// An interface for the  platform notification
+        /// </summary>
+        IPlatformNotification notification;
+        /// <summary>
+        /// A port for handling Window APIs
+        /// </summary>
+        WindowPort windowPort;
+
+        /// <summary>
+        /// A method will be called when application is created
+        /// </summary>
+        protected override void OnCreate()
+        {
+            base.OnCreate();
+
+            FileSystemPort.AppDataStroagePath = DirectoryInfo.Data;
+            FileSystemPort.AppResourceStoragePath = DirectoryInfo.Resource;
+            string platformShareStoragePath = "/opt/usr/home/owner/share/";
+            FileSystemPort.PlatformShareStroagePath = platformShareStoragePath;
+
+            var app = new App(MainWindow.ScreenSize.Width,
+                MainWindow.ScreenSize.Height,
+                MainWindow.ScreenDpi.X,
+                ElmSharp.Elementary.GetScale());
+
+            notification = app;
+
+            DbgPort.D("-----------------------------------");
+            DbgPort.D("Home application is being loaded...");
+            DbgPort.D("-----------------------------------");
+            LoadApplication(app);
+
+            PackageManagerPort.RegisterCallbacks(notification);
+
+            MainWindow.KeyUp += KeyUpListener;
+            MainWindow.Alpha = true;
+
+            windowPort = new WindowPort();
+            windowPort.MainWindow = MainWindow;
+
+            /// Grab key events
+            MainWindow.KeyGrab(ElmSharp.EvasKeyEventArgs.PlatformHomeButtonName, true);
+            MainWindow.KeyGrab(ElmSharp.EvasKeyEventArgs.PlatformMenuButtonName, true);
+            MainWindow.KeyGrab("XF86Info", true);
+            MainWindow.KeyGrab("Up", false);
+            MainWindow.KeyGrab("Down", false);
+            MainWindow.KeyGrab("Left", false);
+            MainWindow.KeyGrab("Right", false);
+            windowPort.SetKeyGrabExclusively(ElmSharp.EvasKeyEventArgs.PlatformHomeButtonName);
+
+            /// Sniper
+            try
+            {
+                Sniper sniper = new Sniper((IntPtr)MainWindow, platformShareStoragePath, 960, 540);
+                sniper.UpdatedEvent += OnScreenUpdate;
+                sniper.AddRemoveEvent += SniperAddRemoveEvent;
+                sniper.SkipUpdateEvent += SniperSkipUpdateEvent;
+                sniper.StartMonitor();
+            }
+            catch (SniperException e)
+            {
+                DbgPort.E("Failed to create sniper object : " + e.Message);
+            }
+        }
+
+        private void SniperSkipUpdateEvent(object sender, Sniper.Event e)
+        {
+            DbgPort.D(" [Sniper SkipUpdateEvent] : " + e.Info);
+            (sender as Sniper).SkipUpdateFlag = true;
+        }
+
+        private void SniperAddRemoveEvent(object sender, Sniper.Event e)
+        {
+            DbgPort.D(" [Sniper SniperAddRemoveEvent] : " + e.Info);
+        }
+
+        private void OnScreenUpdate(object sender, Sniper.Event e)
+        {
+            DbgPort.D(" [Sniper OnScreenUpdate] : " + e.Info);
+        }
+
+        /// <summary>
+        /// A method will be called when application receives KeyUp event
+        /// </summary>
+        /// <param name="sender">The source of the event</param>
+        /// <param name="e">A EvasKey event's argument</param>
+        private void KeyUpListener(object sender, ElmSharp.EvasKeyEventArgs e)
+        {
+            DbgPort.D("Key Pressed :" + e.KeyName);
+            if (e.KeyName.CompareTo(ElmSharp.EvasKeyEventArgs.PlatformHomeButtonName) == 0)
+            {
+                notification?.OnHomeKeyPressed();
+            }
+            else if (e.KeyName.CompareTo(ElmSharp.EvasKeyEventArgs.PlatformMenuButtonName) == 0 ||
+                e.KeyName.CompareTo("XF86Info") == 0)
+            {
+                notification?.OnMenuKeyPressed();
+            }
+            else if (e.KeyName.Equals("Up") || e.KeyName.Equals("Down") || e.KeyName.Equals("Left") || e.KeyName.Equals("Right"))
+            {
+                notification?.OnNavigationKeyPressed(e.KeyName);
+            }
+        }
+
+        /// <summary>
+        /// A method will be called when application is terminated
+        /// </summary>
+        protected override void OnTerminate()
+        {
+            base.OnTerminate();
+
+            notification = null;
+            PackageManagerPort.UnregisterCallbacks();
+            MainWindow.KeyUngrab(ElmSharp.EvasKeyEventArgs.PlatformHomeButtonName);
+            MainWindow.KeyUngrab(ElmSharp.EvasKeyEventArgs.PlatformMenuButtonName);
+            MainWindow.KeyUngrab("XF86Info");
+            MainWindow.KeyUngrab("Up");
+            MainWindow.KeyUngrab("Down");
+            MainWindow.KeyUngrab("Left");
+            MainWindow.KeyUngrab("Right");
+        }
+
+        /// <summary>
+        /// A method will be called when application receives app control
+        /// </summary>
+        /// <param name="e">AppControl event argument</param>
+        protected override void OnAppControlReceived(AppControlReceivedEventArgs e)
+        {
+            if (AppControlPort.AppAddedNotifyOperation.CompareTo(e.ReceivedAppControl.Operation) == 0)
+            {
+                DbgPort.D("App Added Notification");
+                string pinnedApp;
+                if (e.ReceivedAppControl.ExtraData.TryGet(AppControlPort.KeyAddedAppID, out pinnedApp))
+                {
+                    notification?.OnAppPinnedNotificationReceived(pinnedApp);
+                }
+                else
+                {
+                    notification?.OnAppPinnedNotificationReceived("");
+                }
+            }
+        }
+
+        /// <summary>
+        /// The entry point for the application
+        /// </summary>
+        /// <param name="args">A list of command line arguments</param>
+        static void Main(string[] args)
+        {
+            var app = new Program();
+
+            DbgPort.Prefix = "Home";
+
+            global::Xamarin.Forms.DependencyService.Register<DbgPort>();
+            global::Xamarin.Forms.DependencyService.Register<AppControlPort>();
+            global::Xamarin.Forms.DependencyService.Register<PackageManagerPort>();
+            global::Xamarin.Forms.DependencyService.Register<FileSystemWatcherPort>();
+            global::Xamarin.Forms.DependencyService.Register<ApplicationManagerPort>();
+            global::Xamarin.Forms.DependencyService.Register<FileSystemPort>();
+            global::Xamarin.Forms.DependencyService.Register<WindowPort>();
+            global::Xamarin.Forms.DependencyService.Register<SystemSettingsPort>();
+            global::Xamarin.Forms.DependencyService.Register<MediaContentPort>();
+            TizenFormsExtension.Init();
+            global::Xamarin.Forms.Platform.Tizen.Forms.Init(app);
+            app.Run(args);
+        }
+    }
+}
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/TVHome.Tizen.TV.deps.json b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/TVHome.Tizen.TV.deps.json
new file mode 100644 (file)
index 0000000..8a19af1
--- /dev/null
@@ -0,0 +1,259 @@
+{
+  "runtimeTarget": {
+    "name": ".NETCoreApp,Version=v2.0",
+    "signature": "7b37460e941a73f9576f52a534d76051a2c28b59"
+  },
+  "compilationOptions": {},
+  "targets": {
+    ".NETCoreApp,Version=v2.0": {
+      "TVHome.Tizen.TV/1.0.0": {
+        "dependencies": {
+          "LibCommon.Shared": "1.0.0",
+          "LibCommon.Tizen": "1.0.0",
+          "TVApps": "1.0.0",
+          "TVApps.Tizen.TV": "1.0.0",
+          "TVHome": "1.0.0",
+          "Tizen.NET": "4.0.0-preview1-00143",
+          "Tizen.NET.Sdk": "0.9.18-pre1",
+          "Tizen.Xamarin.Forms.Extension": "2.4.0-v00005",
+          "Xamarin.Forms": "2.4.0.266-pre1",
+          "Xamarin.Forms.Platform.Tizen": "2.4.0-r266-006"
+        },
+        "runtime": {
+          "TVHome.Tizen.TV.dll": {}
+        }
+      },
+      "Tizen.NET/4.0.0-preview1-00143": {
+        "runtime": {
+          "lib/netstandard1.6/ElmSharp.Wearable.dll": {},
+          "lib/netstandard1.6/ElmSharp.dll": {},
+          "lib/netstandard1.6/Tizen.Account.AccountManager.dll": {},
+          "lib/netstandard1.6/Tizen.Account.FidoClient.dll": {},
+          "lib/netstandard1.6/Tizen.Account.OAuth2.dll": {},
+          "lib/netstandard1.6/Tizen.Account.SyncManager.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.Alarm.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.AttachPanel.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.Badge.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.Common.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.DataControl.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.MessagePort.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.Notification.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.NotificationEventListener.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.PackageManager.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.Preference.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.RemoteView.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.Service.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.ToastMessage.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.UI.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.WatchApplication.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.WidgetApplication.dll": {},
+          "lib/netstandard1.6/Tizen.Applications.WidgetControl.dll": {},
+          "lib/netstandard1.6/Tizen.Content.Download.dll": {},
+          "lib/netstandard1.6/Tizen.Content.MediaContent.dll": {},
+          "lib/netstandard1.6/Tizen.Content.MimeType.dll": {},
+          "lib/netstandard1.6/Tizen.Context.dll": {},
+          "lib/netstandard1.6/Tizen.Location.Geofence.dll": {},
+          "lib/netstandard1.6/Tizen.Location.dll": {},
+          "lib/netstandard1.6/Tizen.Log.dll": {},
+          "lib/netstandard1.6/Tizen.Maps.dll": {},
+          "lib/netstandard1.6/Tizen.Messaging.Push.dll": {},
+          "lib/netstandard1.6/Tizen.Messaging.dll": {},
+          "lib/netstandard1.6/Tizen.Multimedia.AudioIO.dll": {},
+          "lib/netstandard1.6/Tizen.Multimedia.Camera.dll": {},
+          "lib/netstandard1.6/Tizen.Multimedia.MediaCodec.dll": {},
+          "lib/netstandard1.6/Tizen.Multimedia.MediaPlayer.dll": {},
+          "lib/netstandard1.6/Tizen.Multimedia.Metadata.dll": {},
+          "lib/netstandard1.6/Tizen.Multimedia.Radio.dll": {},
+          "lib/netstandard1.6/Tizen.Multimedia.Recorder.dll": {},
+          "lib/netstandard1.6/Tizen.Multimedia.Remoting.dll": {},
+          "lib/netstandard1.6/Tizen.Multimedia.StreamRecorder.dll": {},
+          "lib/netstandard1.6/Tizen.Multimedia.Util.dll": {},
+          "lib/netstandard1.6/Tizen.Multimedia.Vision.dll": {},
+          "lib/netstandard1.6/Tizen.Multimedia.dll": {},
+          "lib/netstandard1.6/Tizen.NUI.dll": {},
+          "lib/netstandard1.6/Tizen.Network.Bluetooth.dll": {},
+          "lib/netstandard1.6/Tizen.Network.Connection.dll": {},
+          "lib/netstandard1.6/Tizen.Network.IoTConnectivity.dll": {},
+          "lib/netstandard1.6/Tizen.Network.Nfc.dll": {},
+          "lib/netstandard1.6/Tizen.Network.Nsd.dll": {},
+          "lib/netstandard1.6/Tizen.Network.Smartcard.dll": {},
+          "lib/netstandard1.6/Tizen.Network.WiFi.dll": {},
+          "lib/netstandard1.6/Tizen.Network.WiFiDirect.dll": {},
+          "lib/netstandard1.6/Tizen.PhonenumberUtils.dll": {},
+          "lib/netstandard1.6/Tizen.Pims.Calendar.dll": {},
+          "lib/netstandard1.6/Tizen.Pims.Contacts.dll": {},
+          "lib/netstandard1.6/Tizen.Security.SecureRepository.dll": {},
+          "lib/netstandard1.6/Tizen.Security.TEEC.dll": {},
+          "lib/netstandard1.6/Tizen.Security.dll": {},
+          "lib/netstandard1.6/Tizen.Sensor.dll": {},
+          "lib/netstandard1.6/Tizen.System.Feedback.dll": {},
+          "lib/netstandard1.6/Tizen.System.Information.dll": {},
+          "lib/netstandard1.6/Tizen.System.MediaKey.dll": {},
+          "lib/netstandard1.6/Tizen.System.PlatformConfig.dll": {},
+          "lib/netstandard1.6/Tizen.System.Storage.dll": {},
+          "lib/netstandard1.6/Tizen.System.SystemSettings.dll": {},
+          "lib/netstandard1.6/Tizen.System.dll": {},
+          "lib/netstandard1.6/Tizen.Telephony.dll": {},
+          "lib/netstandard1.6/Tizen.Tracer.dll": {},
+          "lib/netstandard1.6/Tizen.Uix.InputMethod.dll": {},
+          "lib/netstandard1.6/Tizen.Uix.InputMethodManager.dll": {},
+          "lib/netstandard1.6/Tizen.Uix.Stt.dll": {},
+          "lib/netstandard1.6/Tizen.Uix.Tts.dll": {},
+          "lib/netstandard1.6/Tizen.Uix.VoiceControl.dll": {},
+          "lib/netstandard1.6/Tizen.WebView.dll": {},
+          "lib/netstandard1.6/Tizen.dll": {}
+        }
+      },
+      "Tizen.NET.Sdk/0.9.18-pre1": {},
+      "Tizen.Xamarin.Forms.Extension/2.4.0-v00005": {
+        "dependencies": {
+          "Xamarin.Forms": "2.4.0.266-pre1",
+          "Xamarin.Forms.Platform.Tizen": "2.4.0-r266-006"
+        },
+        "runtime": {
+          "lib/netcoreapp2.0/Tizen.Xamarin.Forms.Extension.Renderer.dll": {},
+          "lib/netcoreapp2.0/Tizen.Xamarin.Forms.Extension.dll": {}
+        }
+      },
+      "Xamarin.Forms/2.4.0.266-pre1": {
+        "runtime": {
+          "lib/netstandard1.0/Xamarin.Forms.Core.dll": {},
+          "lib/netstandard1.0/Xamarin.Forms.Platform.dll": {},
+          "lib/netstandard1.0/Xamarin.Forms.Xaml.dll": {}
+        }
+      },
+      "Xamarin.Forms.Platform.Tizen/2.4.0-r266-006": {
+        "dependencies": {
+          "Tizen.NET": "4.0.0-preview1-00143",
+          "Xamarin.Forms": "2.4.0.266-pre1"
+        },
+        "runtime": {
+          "lib/netstandard1.6/Xamarin.Forms.Platform.Tizen.dll": {}
+        }
+      },
+      "LibCommon.Shared/1.0.0": {
+        "dependencies": {
+          "Tizen.Xamarin.Forms.Extension": "2.4.0-v00005",
+          "Xamarin.Forms": "2.4.0.266-pre1"
+        },
+        "runtime": {
+          "LibCommon.Shared.dll": {}
+        }
+      },
+      "LibCommon.Tizen/1.0.0": {
+        "dependencies": {
+          "LibCommon.Shared": "1.0.0",
+          "Tizen.NET": "4.0.0-preview1-00143",
+          "Tizen.Xamarin.Forms.Extension": "2.4.0-v00005",
+          "Xamarin.Forms": "2.4.0.266-pre1",
+          "Xamarin.Forms.Platform.Tizen": "2.4.0-r266-006"
+        },
+        "runtime": {
+          "LibCommon.Tizen.dll": {}
+        }
+      },
+      "TVApps/1.0.0": {
+        "dependencies": {
+          "LibCommon.Shared": "1.0.0",
+          "Tizen.Xamarin.Forms.Extension": "2.4.0-v00005",
+          "Xamarin.Forms": "2.4.0.266-pre1"
+        },
+        "runtime": {
+          "TVApps.dll": {}
+        }
+      },
+      "TVApps.Tizen.TV/1.0.0": {
+        "dependencies": {
+          "LibCommon.Shared": "1.0.0",
+          "LibCommon.Tizen": "1.0.0",
+          "TVApps": "1.0.0",
+          "Tizen.NET": "4.0.0-preview1-00143",
+          "Tizen.NET.Sdk": "0.9.18-pre1",
+          "Tizen.Xamarin.Forms.Extension": "2.4.0-v00005",
+          "Xamarin.Forms": "2.4.0.266-pre1",
+          "Xamarin.Forms.Platform.Tizen": "2.4.0-r266-006"
+        },
+        "runtime": {
+          "TVApps.Tizen.TV.dll": {}
+        }
+      },
+      "TVHome/1.0.0": {
+        "dependencies": {
+          "LibCommon.Shared": "1.0.0",
+          "Tizen.Xamarin.Forms.Extension": "2.4.0-v00005",
+          "Xamarin.Forms": "2.4.0.266-pre1"
+        },
+        "runtime": {
+          "TVHome.dll": {}
+        }
+      }
+    }
+  },
+  "libraries": {
+    "TVHome.Tizen.TV/1.0.0": {
+      "type": "project",
+      "serviceable": false,
+      "sha512": ""
+    },
+    "Tizen.NET/4.0.0-preview1-00143": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-woW6D9FsWZD2lJRwbND2hzMIi9l7QYwUqfpCxrMT3+Mh3+8UdFM86skDdw3mAgpLIqfC1plUfbISksQ9G2Gcgg==",
+      "path": "tizen.net/4.0.0-preview1-00143",
+      "hashPath": "tizen.net.4.0.0-preview1-00143.nupkg.sha512"
+    },
+    "Tizen.NET.Sdk/0.9.18-pre1": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-lUsZ48M9YxKKwpYpE6zbd2/uw7GeJJZmKYABHW6Xdcfarxf17ncGRBLl7Gnt2rAc5ev8UkNKYfZoQQh+kQO2Hw==",
+      "path": "tizen.net.sdk/0.9.18-pre1",
+      "hashPath": "tizen.net.sdk.0.9.18-pre1.nupkg.sha512"
+    },
+    "Tizen.Xamarin.Forms.Extension/2.4.0-v00005": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-MKUamVt5XloZ/JziyOXLdbahn7T0LDQDJGUt3ynt0iSia4aLpZLOua6/iypBhnC79FgMaNfUA7APjVfjh3NLTg==",
+      "path": "tizen.xamarin.forms.extension/2.4.0-v00005",
+      "hashPath": "tizen.xamarin.forms.extension.2.4.0-v00005.nupkg.sha512"
+    },
+    "Xamarin.Forms/2.4.0.266-pre1": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-pMu+b01vdH1ul5EJo1opQjEcwisWT35DdZO6EuR9HNKfY1dWyKmAlWgRdGUtjtdbhjOAtCOQUxI7F3x4hvV8KA==",
+      "path": "xamarin.forms/2.4.0.266-pre1",
+      "hashPath": "xamarin.forms.2.4.0.266-pre1.nupkg.sha512"
+    },
+    "Xamarin.Forms.Platform.Tizen/2.4.0-r266-006": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-xDEcJnKerroXtMLLUVssB9+f2mZMB5ngulNB09OsIp0gRqP7GnpqJEyWQsISFRCk272lNVd57UhXGCUFl9/aRg==",
+      "path": "xamarin.forms.platform.tizen/2.4.0-r266-006",
+      "hashPath": "xamarin.forms.platform.tizen.2.4.0-r266-006.nupkg.sha512"
+    },
+    "LibCommon.Shared/1.0.0": {
+      "type": "project",
+      "serviceable": false,
+      "sha512": ""
+    },
+    "LibCommon.Tizen/1.0.0": {
+      "type": "project",
+      "serviceable": false,
+      "sha512": ""
+    },
+    "TVApps/1.0.0": {
+      "type": "project",
+      "serviceable": false,
+      "sha512": ""
+    },
+    "TVApps.Tizen.TV/1.0.0": {
+      "type": "project",
+      "serviceable": false,
+      "sha512": ""
+    },
+    "TVHome/1.0.0": {
+      "type": "project",
+      "serviceable": false,
+      "sha512": ""
+    }
+  }
+}
\ No newline at end of file
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/TVHome.Tizen.TV.runtimeconfig.dev.json b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/TVHome.Tizen.TV.runtimeconfig.dev.json
new file mode 100644 (file)
index 0000000..2c2f357
--- /dev/null
@@ -0,0 +1,9 @@
+{
+  "runtimeOptions": {
+    "additionalProbingPaths": [
+      "C:\\Users\\samsung\\.dotnet\\store\\|arch|\\|tfm|",
+      "C:\\Users\\samsung\\.nuget\\packages",
+      "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder"
+    ]
+  }
+}
\ No newline at end of file
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/TVHome.Tizen.TV.runtimeconfig.json b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/TVHome.Tizen.TV.runtimeconfig.json
new file mode 100644 (file)
index 0000000..7539019
--- /dev/null
@@ -0,0 +1,9 @@
+{
+  "runtimeOptions": {
+    "tfm": "netcoreapp2.0",
+    "framework": {
+      "name": "Microsoft.NETCore.App",
+      "version": "2.0.0"
+    }
+  }
+}
\ No newline at end of file
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/org.tizen.xahome-1.0.0.tpi b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/org.tizen.xahome-1.0.0.tpi
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/org.tizen.xahome-1.0.0.tpk b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/org.tizen.xahome-1.0.0.tpk
new file mode 100644 (file)
index 0000000..0a747cf
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/org.tizen.xahome-1.0.0.tpk differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/author-signature.xml b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/author-signature.xml
new file mode 100644 (file)
index 0000000..32e3995
--- /dev/null
@@ -0,0 +1,542 @@
+<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-sha256" />
+    <Reference URI="tizen-manifest.xml">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>yiowRT7BBe9PMd5KOUgJnrI8+ctp4sFJxRop8zwZ3Vg=</DigestValue>
+    </Reference>
+    <Reference URI="shared%2Fres%2FTVHome.Tizen.TV.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>/gTbhhRqVKFAMykTkZyDaEozK7OBNMSXGtsJpmRcLuE=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fscreenshot.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>rBnUv9kQBnmkHu6V7orYmoteD5eXfJfNtSk4fiES51Y=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_tizen_home_list_dimmed_recent.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>abSVmAktD3kMD8cgkHyq7+HznufbfOkkWpLoi3seSXA=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_tizen_home_list_bg_white_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>BHtl9KTXq3w+B5ABJO86u7SYoNKl0CG/h1qt2NJQHFA=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_tizen_home_list_bg_white_focused.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>ujRWeZIhIcElCoJVIw66t3hfb6sb8VK63a+jtck5EUw=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_tizen_home_list_bg_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>RttyFJoNtupluYvHReoAEiDuwNJJNeeBLw19wrGs/xE=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_tizen_home_list_bg_focused.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>hI640xq4Vqw3XeO6SinvdjSIOzaPzORFCUXbaEgResI=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_tizen_apps_list_dimmed_check.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>Ixtj64ex0/WsZi2VSM/3Qx6GSWCQAjNNkCYoshGmzOI=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_tizen_apps_list_dimmed.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>zo8V0MvRxWOPNOKHe9YiYwQQS4qKVDd4nDYXRZds0lI=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_home_recent_dimmed_option_75.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>DTpuLrVOInHOOCpLV8Ha1XJiZOGvYqu6MxPxhaEiq4w=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_home_menu_focused_bg.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>ZCsfmvO2E/db1sCfLZczGb7wtCMYoixWrfonq9V8W1Q=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_home_list_dimmed_recent_60.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>ZzXtd/0Z6EEbeYql7uzznGYLHa1O+vHoBHdS8eC+y2g=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_home_list_dimmed_apps_75.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>2MOhaSuSq7UMYrtFqZgrECcUoOoDg1/v6tZGkcSTP9k=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_home_list_dimmed_apps_60.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>urw6a9ANCmt/dzHoUG1wjSP1dQa/JxcqJimgWQFcKFA=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_apps_no_contents.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>wyV5bZt23Oukmg26jcjhBq4e3ZaoyvAEmvmf4N/H9+8=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_apps_list_stroke.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>KlC657FZBYGsby56T9TFTVgWUTtm8D7cZwaFkHmuIV0=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_apps_list_dimmed_check.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>Ixtj64ex0/WsZi2VSM/3Qx6GSWCQAjNNkCYoshGmzOI=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_apps_list_dimmed_95.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>uADDZTovkkBmW29pZm787/g+oBxOWBqpRO2dnYf/ahM=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_apps_list_dimmed_85.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>iLfG/n8nzjk0YtoNBrqqDot05l+qDLEVkUfqttNXLcs=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_apps_list_dimmed_75.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>Ixtj64ex0/WsZi2VSM/3Qx6GSWCQAjNNkCYoshGmzOI=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_tizen_option_menu_list_box_check_selected.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>oenTDUDtiAEQVBYxbv0xZtU+t5Jq5Z/p6ogv6lQJ79o=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_tizen_option_menu_list_box_check_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>u8LBn4QklWpX06MXRDp/0IE/q0lab2FDtIT0TpSVKo8=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_tizen_option_menu_list_box_check_focused.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>U/02Xv2++HNVYP9BeXqCTd43gxO3eDQ+S2d4lYOvPU8=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_tizen_option_box_more_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>TiWYMtep4pcheKi8z95wGpSRcN/wjXuRba6vY9eO4gc=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_tizen_option_box_more_dimmed.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>p5CdWOViau3ehePfQFCrQu7iZPp6QOpXALeH3QhhD5w=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_tizen_home_menu_apps_182.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>EtZD1Q3rhAzg5/lOi0t3NP1paAk7psxUZXXQesttkRI=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_tizen_home_menu_apps_138.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>4qmHCWwhYsX6Sp+5n1I0ojsto45cn3g+ERr5PNYRsEU=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_tizen_home_menu_addpin_182.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>ysMQWqhHVgFE68EDOTffZmX4x4JrjWm2F7k/1v0q9UY=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_tizen_home_menu_addpin_138.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>xZcjt6+cHOk4r2fjWQgY4PbSAlh9PL+MYjkV7tFMPEk=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_tizen_home_list_mediahub_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>Qa+jLmnpzRRkKUkfmZwHRuO6ubj00IgTuMVCbf54xtQ=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_tizen_home_list_mediahub_focused.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>Qa+jLmnpzRRkKUkfmZwHRuO6ubj00IgTuMVCbf54xtQ=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_tizen_home_list_allapps_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>jue0IfvgSHvuVbcy3urOkFi6dueU86ynfsUrImCT1Ko=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_tizen_home_list_allapps_focused.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>m/NU/yQl1g0Vr24xwU7kT2ocrtzXJKteNtRVMOrcuzk=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_tizen_home_list_addpin_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>gsvs4qLA9qYnUaS3ub73z7Ow0zIIP6B8fDDbt5fpeG0=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_tizen_home_list_addpin_focused.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>DNurC/ezAgPbsiCDPAogMWXKjlZdzPWyrWeSVmYn/ME=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_list_thumbnail_shadow_focused.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>zVDoB9YI+wsx0LiF2roSN2lmtYQgs3BTm5QvUhMX/Rw=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_list_thumbnail_gradient_normal.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>dM5tJw1dRRkH4qRjWySYUY/n7oqbQTxqxnqcWW4rTM0=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_list_thumbnail_gradient_focused.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>NzcImMy9eCGiB8txpMcGm3i5SRNjfSS363Zt4+dAPUY=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_launcher_mediahub_182.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>Qa+jLmnpzRRkKUkfmZwHRuO6ubj00IgTuMVCbf54xtQ=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_launcher_mediahub_138.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>Qa+jLmnpzRRkKUkfmZwHRuO6ubj00IgTuMVCbf54xtQ=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_settings_tint_182.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>LHkP9bSmyMZxhF7/N2BlgBHzzxhyzGey6YisfeaNqAo=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_settings_tint_138.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>iu3Z8bQsAqGGhQumVUD/Z5ekIObmzv+Hvpe8fe2cuqc=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_settings_contrast_182.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>w68yOeITQVLQatvCZI62776hf50CEwO15w0sIgxcAEo=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_settings_contrast_138.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>3TzeCHSXJsn/5jAuaW0XbBRP2/8WPohPHXHhct8w8I0=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_settings_color_182.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>IalaRXmRr6SmVFUrJc5yvKhyJqOUsQXIOI80KzeFnrk=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_settings_color_138.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>DDj3G+TOrKWpW83NhLtO090KZx6agkVOKiPFqdTDlX0=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_settings_brightness_182.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>p3a3uuxR/W4Rbi7PnqSbJCPtwu2og1/RxxOZLgxBKD4=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_settings_brightness_138.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>pSM2IFVLLRoae4fXE2MFoAEZ60eOkUcVK6TUgYtyKkc=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_settings_all_182.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>P8tFgQHn4UUit2HgVvAxxfbmyIQJmVbCcn6VEhDQ3+U=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_settings_all_138.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>h90O5s72TWwK5+fMwTSFdS7n3d3xiPWnh3XbSu9FXZg=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_menu_settings_unselected.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>qv91ECpbw5zePEsTj/3+DQo4AjUlMvomZLO6LIGT3Kg=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_menu_settings_selected.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>laMaxDSoa3/vBRg8pTTLIR7G8RutxTVjflUpMh3PEnc=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_menu_settings_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>0u4Q/RBQqTad+TlPVDRxIZh5PVFgmdbq/a+RgiUZZNQ=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_menu_settings_focused.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>YqMEOEXBipNpFdozt+arIUtVklGct1rrcRRY2a8/lLw=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_menu_recent_unselected.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>UbErFgk/s2nniMipQzfOq6sTm+9O77+nI0a9MnLKQZk=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_menu_recent_selected.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>dr1O6uUavxDuU5f6EyPYqcQ7vIiXipEFQiNIZgMOHoE=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_menu_recent_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>ynzujpdT3OJ9aqCHPhHBt5y2aSgf/hta2tJpKIPwrvM=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_menu_recent_focused.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>/AJesEfZSEA1TAZwFv16KIrV1C/VnLkqLu25gTkLcho=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_menu_apps_unselected.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>qm5PrwOIcF8PVkdnfqzRZ/GToRpHS+e9H860MMCd3YY=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_menu_apps_selected.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>C54ugONimzU/RPEUK1SSYmnnxtNpW77h9lPXvtjth7k=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_menu_apps_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>pqniyO9OrzSgN/czTbFI5eWTEiKaaPvKrMY2DWVrpkY=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_menu_apps_focused.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>4uFNuZc5bEw49qv2zNV+FnDXecySa9D2kGZcUWausS8=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_menu_apps_182.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>EtZD1Q3rhAzg5/lOi0t3NP1paAk7psxUZXXQesttkRI=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_menu_apps_138.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>4qmHCWwhYsX6Sp+5n1I0ojsto45cn3g+ERr5PNYRsEU=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_menu_addpin_182.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>ysMQWqhHVgFE68EDOTffZmX4x4JrjWm2F7k/1v0q9UY=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_menu_addpin_138.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>xZcjt6+cHOk4r2fjWQgY4PbSAlh9PL+MYjkV7tFMPEk=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_launcher_mediahub_42.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>ibFQnq6mQdHlt1McHlqbV2LZa2SIap4ml0FBGxS1VOQ=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_launcher_mediahub_168.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>wY7l6OKmJYotIpKnPhlh0hR4YDSEtpW2HZtcoi+ERs8=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_launcher_mediahub_136.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>saIbF5ChgWv4mmprVfJSvHB4PPMch6eF/wDV09tmmVI=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_apps_pinmark.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>ZahUF4DidpBuGLkIAcr0MF3VVcGQGC9JjSZztyH5aQA=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_apps_launcher_pinmark.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>EJlF00KH8rz4TpqqJK8zEUirikzig9Og98UBDNwp+jw=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_apps_launcher_mediahub_196.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>Qa+jLmnpzRRkKUkfmZwHRuO6ubj00IgTuMVCbf54xtQ=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_apps_launcher_mediahub_164.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>gX3ogKZsX26mpk+kDEAYP+Zp6S3QSrx+13BnFxCc5FM=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_apps_additional_back.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>CyVbmPv2pqcChT+Wu+ogtWAe6bJSh85sqXf6m5x4mDs=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fhome_icon_bg_08.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>NLOZX7wXlktktN4Vef4pa9gubOGJhb9HrRkQS3mudaE=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fhome_icon_bg_07.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>9P4ZzrZv0NlNaB+3No+aGsDBs/jG9NJegHpEGLHNllg=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fhome_icon_bg_06.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>kKyxysfX/d+oZ7U1WHH5dFwGJHSK4wXtq8LOVgHLa2U=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fhome_icon_bg_05.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>BZNk/tRKl/S8oSQZH4L0cwyUtNUL61gX3v8w6zunRgo=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fhome_icon_bg_04.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>/mBm1k4Z9xmw87/3iuDQUbi/6TqvIUjuy22lrXLqYpc=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fhome_icon_bg_03.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>Q4OWq9SFfY4Kc6F9aO2L1EnAgNiBHcCKdFV+MfhG8CA=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fhome_icon_bg_02.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>SnFNaOuBFWqqvBEwZfZxfNRtXOyAk1qwNaS1RynVD7k=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fhome_icon_bg_01.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>SnFNaOuBFWqqvBEwZfZxfNRtXOyAk1qwNaS1RynVD7k=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_tizen_option_menu_nocontent_bg.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>TmyxV1efSm+7IERxNOqWN6YUEy3cjHVfa8/v5D2Pojk=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_tizen_option_menu_list_box_bg.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>PjKAMWpnRVOjc4j69DiZy3Sx35Nun1rwx7BUwvSF1YA=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_tizen_option_menu_bg_selected.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>Uo7RkZXsYAHl0hNWN4+/8wwu4AkYgy+KXFT753nH9pw=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_tizen_option_menu_bg_normal.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>pTiEER6ZQHQ30R0M5LydfDBYvsBDbUcNwdlEMyK/za8=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_tizen_option_menu_bg_focused.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>iUav5rD4DUVJpp9AqRSIgiUfHJ6F7wnrAq39NCCgmls=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_tizen_dropdown_line_normal.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>Mxq8NCIXrSgByqVE4a82nxdyRNdMUFjwv3pKk3oZI8g=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_tizen_dropdown_line_dimmed.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>PKb4yMY1F5PQboqftsJYHqOxbrhYvBy2P7eKX5T9LVk=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_option_menu_nocontent_bg.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>TfE7qSi+67CvFLZZ7zgIThDKOle9Os3orYlRyvYTO1E=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_home_list_move_right.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>iTAIVO+qBnlJlQOpTPhZTTpBBMkSMSgq+rHHGa74lk4=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_home_list_move_left.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>eTTs8oyHbjR9Zijb5F1jilZ93fyLLjqGzGStTWT2WVs=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbg_home_gradient_dimmed_option.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>UXHn1krkBKC7JCRzj8h40KDdTtrYPl3QvNHMtdmuHeQ=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbg_home_gradient_dimmed.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>EEXDCMHtiPGhUsXPX12eTAh7lcQu86us5YmIw8UxqXY=</DigestValue>
+    </Reference>
+    <Reference URI="res%2FAppIcon.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>1d0oEZHqPn+QzNzGIHwj9ODby6x9ggFs9uOsav6jPNs=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FXamarin.Forms.Xaml.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>J/d/Iu+nPnrMUHbnjHtcNpI4dTAbHKyD61nelmBE8rE=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FXamarin.Forms.Platform.Tizen.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>k9quBEmTxuUA7AiVyJthoirEwrl9SgQr5J0DXi6llkk=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FXamarin.Forms.Platform.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>8FCwIup+0tvOQf5a14Lo7VQVCCG9bgxkw/sxAFAN8lM=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FXamarin.Forms.Core.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>Wnha/ZDGFuzYPiZ6JyEp1wTQYBpYv7WDYs8CHPr3Ugs=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTVHome.Tizen.TV.pdb">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>R7KeqWSqXYTrBPiLDbLq3fVCy8kZyWIHIbjgW8eASVM=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTVHome.Tizen.TV.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>b9BedGtu+zVnAvHChbiD5vPT1y0NwXiAronKQiCC08o=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTVHome.pdb">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>X4GiFeOs+/xr5OoC4PUsB04mON5fmQq3rMUw7PDrq/k=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTVHome.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>CDi0NSU/sxR5CaxZi4MTlQiccQCOzZ5bPFMBkWmR2f4=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTVApps.Tizen.TV.pdb">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>x/rqZEBQb4V2cBRByJrDHyvHUP5aIka4jiBYuVysUJg=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTVApps.Tizen.TV.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>BgawWdKNYytoW7rglBK3/WadIDO64RmYLRvqdVlKcYA=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTVApps.pdb">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>iN7qVbbwpxhN3RAqDyb3zDQuvkTlNJNM3mIo45nyMzU=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTVApps.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>nmik89SH8yehPu6zI2peM/amzyT0kunzhWjX/nKDWto=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTizen.Xamarin.Forms.Extension.Renderer.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>7oZiDFE6sc/h/5gxMoKu72pn73f48lWBD8p5W7h7j4I=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTizen.Xamarin.Forms.Extension.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>Q1voviamaw/GnkgZDXopBuyM18WxY0sxyD5g3Uyovf4=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTizen.System.PlatformConfig.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>1fLNIiGbumlNGMW1fApud98XB/+XaRzlfKtOlAaIDwQ=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTizen.Applications.WatchApplication.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>899qMfwfpHleUrl1Eyx89Y4AJxYGBwOc7bsmIIERfA4=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTizen.Applications.AttachPanel.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>Ujn3mYvFRa5GBhVgy6iMMKWOOh0Vl33ISGagcSkxC2U=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTizen.Account.SyncManager.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>vy52VSuLoSlQmeqgLYOQP2SZUL8kdr2x6Dw4WL5ia5M=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FLibCommon.Tizen.pdb">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>p9BXz7Wy961nTBtuJ6NBBlcg3d6JzxtAa2kKvTAjU0k=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FLibCommon.Tizen.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>ytXYOQFfxUo6TNaE/JC9uMkpYq28zyKWfuzKtLt1hD8=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FLibCommon.Shared.pdb">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>28yMmL3EV3MWlzVPfP3R3jC9/qQWZlIWvvKHFJz5Qs0=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FLibCommon.Shared.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>L9fmVpePV7PCT/SW8PIIBm6ekdcZSq9eG07O/R4s8pI=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FElmSharp.Wearable.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>9xk59Y9Uhmml3aT0AKL5zD8aQbN2QMedWOZxxGQ86EA=</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#sha256" />
+      <DigestValue>e2rGZ9lURQWep1IIbrRk2NYMw5EXlejQt2B0bMLUyoc=</DigestValue>
+    </Reference>
+  </SignedInfo>
+  <SignatureValue>
+a+uU90E3kJBn1Qw2vB3fyRt/8MzGBn+ZQ1HSxt3HB/pwYkI/TkHdDHmQIB7BmVu5pbqmH8KLs7i7
+chQB2tbxlSjSFn8HMxtzsrY5a5Dt2t52nVXQkJGWVSmHv0NUHCs7LcS7eueulMvttAoZIp+1kt8p
+7f5F9X3k35XItt8mWwk=
+</SignatureValue>
+  <KeyInfo>
+    <X509Data>
+      <X509Certificate>
+MIIClTCCAX2gAwIBAgIGAVYhXgiqMA0GCSqGSIb3DQEBBQUAMFYxGjAYBgNVBAoMEVRpemVuIEFz
+c29jaWF0aW9uMRowGAYDVQQLDBFUaXplbiBBc3NvY2lhdGlvbjEcMBoGA1UEAwwTVGl6ZW4gRGV2
+ZWxvcGVycyBDQTAeFw0xMjExMDEwMDAwMDBaFw0xOTAxMDEwMDAwMDBaMBExDzANBgNVBAMMBmF1
+dGhvcjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApm4Xqu2NAxOEh4Fgo0w6j+Q9MccSOPny
+mkyM3XMn0nL7mFKL4ZETxyRXlMU8DnM9l4zsEH3iS15cZknesUrCEAiuhL4fsp05ZSr6ERCYQrXs
+06WPmepipiM7n6BWzCsSmv0qNxkYWjZODWT2+15PsXfvwsK9wsrjSDIT8SuYV48CAwEAAaMyMDAw
+DAYDVR0TAQH/BAIwADALBgNVHQ8EBAMCB4AwEwYDVR0lBAwwCgYIKwYBBQUHAwMwDQYJKoZIhvcN
+AQEFBQADggEBAMqla3XZiV3xAQe3laSgVJvmtEsjl3Zfp7Nufrobsl4pxQhVbOITomeEqrJkn4e6
+zzfsjQQ6nw0yXqeo6qfP1ez8Wvr/egyfO6BrnARX37K5cXszpIn7IvO6xl4Ux/rtp4vvQXDcrDS5
+F07d9tg+5UO6MC/9cKaCNEIxSkXEhjOf5x2LGg686fq5V4WEKCO2ApkJRXn+tFRArysrT5FPEnus
+NG+XhHWJw58HgBrZFl0SOUJQvzi3xv5xVPml65qwbehmQyu+LcgWeKySO46nzF0AXlCTaC78FGYk
+nrG2yFeWO6SWXGV7uxgizufT+s851rPFg/EWYEjqX4jU/jp7Swg=
+</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/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/AppIcon.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/AppIcon.png
new file mode 100644 (file)
index 0000000..9765b1b
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/AppIcon.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/bg_home_gradient_dimmed.9.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/bg_home_gradient_dimmed.9.png
new file mode 100644 (file)
index 0000000..a64cd34
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/bg_home_gradient_dimmed.9.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/bg_home_gradient_dimmed_option.9.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/bg_home_gradient_dimmed_option.9.png
new file mode 100644 (file)
index 0000000..570ef79
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/bg_home_gradient_dimmed_option.9.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/btn_home_list_move_left.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/btn_home_list_move_left.png
new file mode 100644 (file)
index 0000000..8342f23
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/btn_home_list_move_left.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/btn_home_list_move_right.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/btn_home_list_move_right.png
new file mode 100644 (file)
index 0000000..9b73e2a
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/btn_home_list_move_right.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/btn_option_menu_nocontent_bg.9.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/btn_option_menu_nocontent_bg.9.png
new file mode 100644 (file)
index 0000000..4bdd708
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/btn_option_menu_nocontent_bg.9.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/btn_tizen_dropdown_line_dimmed.9.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/btn_tizen_dropdown_line_dimmed.9.png
new file mode 100644 (file)
index 0000000..e1f6bfe
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/btn_tizen_dropdown_line_dimmed.9.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/btn_tizen_dropdown_line_normal.9.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/btn_tizen_dropdown_line_normal.9.png
new file mode 100644 (file)
index 0000000..db442ff
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/btn_tizen_dropdown_line_normal.9.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/btn_tizen_option_menu_bg_focused.9.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/btn_tizen_option_menu_bg_focused.9.png
new file mode 100644 (file)
index 0000000..e8cc6e5
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/btn_tizen_option_menu_bg_focused.9.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/btn_tizen_option_menu_bg_normal.9.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/btn_tizen_option_menu_bg_normal.9.png
new file mode 100644 (file)
index 0000000..4f98927
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/btn_tizen_option_menu_bg_normal.9.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/btn_tizen_option_menu_bg_selected.9.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/btn_tizen_option_menu_bg_selected.9.png
new file mode 100644 (file)
index 0000000..b4230af
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/btn_tizen_option_menu_bg_selected.9.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/btn_tizen_option_menu_list_box_bg.9.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/btn_tizen_option_menu_list_box_bg.9.png
new file mode 100644 (file)
index 0000000..021f8b4
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/btn_tizen_option_menu_list_box_bg.9.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/btn_tizen_option_menu_nocontent_bg.9.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/btn_tizen_option_menu_nocontent_bg.9.png
new file mode 100644 (file)
index 0000000..a71e7f1
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/btn_tizen_option_menu_nocontent_bg.9.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/home_icon_bg_01.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/home_icon_bg_01.png
new file mode 100644 (file)
index 0000000..72dc248
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/home_icon_bg_01.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/home_icon_bg_02.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/home_icon_bg_02.png
new file mode 100644 (file)
index 0000000..72dc248
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/home_icon_bg_02.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/home_icon_bg_03.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/home_icon_bg_03.png
new file mode 100644 (file)
index 0000000..f75e5ce
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/home_icon_bg_03.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/home_icon_bg_04.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/home_icon_bg_04.png
new file mode 100644 (file)
index 0000000..dfb3498
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/home_icon_bg_04.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/home_icon_bg_05.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/home_icon_bg_05.png
new file mode 100644 (file)
index 0000000..fc5f703
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/home_icon_bg_05.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/home_icon_bg_06.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/home_icon_bg_06.png
new file mode 100644 (file)
index 0000000..442850d
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/home_icon_bg_06.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/home_icon_bg_07.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/home_icon_bg_07.png
new file mode 100644 (file)
index 0000000..a5243d0
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/home_icon_bg_07.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/home_icon_bg_08.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/home_icon_bg_08.png
new file mode 100644 (file)
index 0000000..ec8db06
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/home_icon_bg_08.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_apps_additional_back.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_apps_additional_back.png
new file mode 100644 (file)
index 0000000..861fa32
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_apps_additional_back.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_apps_launcher_mediahub_164.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_apps_launcher_mediahub_164.png
new file mode 100644 (file)
index 0000000..041c15f
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_apps_launcher_mediahub_164.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_apps_launcher_mediahub_196.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_apps_launcher_mediahub_196.png
new file mode 100644 (file)
index 0000000..f28db0f
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_apps_launcher_mediahub_196.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_apps_launcher_pinmark.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_apps_launcher_pinmark.png
new file mode 100644 (file)
index 0000000..aad639e
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_apps_launcher_pinmark.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_apps_pinmark.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_apps_pinmark.png
new file mode 100644 (file)
index 0000000..d66d3db
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_apps_pinmark.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_launcher_mediahub_136.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_launcher_mediahub_136.png
new file mode 100644 (file)
index 0000000..2025049
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_launcher_mediahub_136.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_launcher_mediahub_168.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_launcher_mediahub_168.png
new file mode 100644 (file)
index 0000000..18ce5f0
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_launcher_mediahub_168.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_launcher_mediahub_42.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_launcher_mediahub_42.png
new file mode 100644 (file)
index 0000000..52d9da5
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_launcher_mediahub_42.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_addpin_138.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_addpin_138.png
new file mode 100644 (file)
index 0000000..9eeba3e
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_addpin_138.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_addpin_182.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_addpin_182.png
new file mode 100644 (file)
index 0000000..1ffd4b6
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_addpin_182.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_apps_138.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_apps_138.png
new file mode 100644 (file)
index 0000000..a280cf3
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_apps_138.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_apps_182.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_apps_182.png
new file mode 100644 (file)
index 0000000..66c0cba
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_apps_182.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_apps_focused.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_apps_focused.png
new file mode 100644 (file)
index 0000000..62e87d0
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_apps_focused.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_apps_normal.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_apps_normal.png
new file mode 100644 (file)
index 0000000..f0070b1
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_apps_normal.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_apps_selected.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_apps_selected.png
new file mode 100644 (file)
index 0000000..d7aa3f3
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_apps_selected.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_apps_unselected.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_apps_unselected.png
new file mode 100644 (file)
index 0000000..4370b01
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_apps_unselected.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_recent_focused.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_recent_focused.png
new file mode 100644 (file)
index 0000000..d5a3229
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_recent_focused.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_recent_normal.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_recent_normal.png
new file mode 100644 (file)
index 0000000..37fc8c4
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_recent_normal.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_recent_selected.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_recent_selected.png
new file mode 100644 (file)
index 0000000..804ee13
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_recent_selected.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_recent_unselected.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_recent_unselected.png
new file mode 100644 (file)
index 0000000..afe3e23
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_recent_unselected.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_settings_focused.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_settings_focused.png
new file mode 100644 (file)
index 0000000..f0dd0d8
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_settings_focused.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_settings_normal.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_settings_normal.png
new file mode 100644 (file)
index 0000000..9c44527
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_settings_normal.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_settings_selected.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_settings_selected.png
new file mode 100644 (file)
index 0000000..b87fad3
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_settings_selected.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_settings_unselected.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_settings_unselected.png
new file mode 100644 (file)
index 0000000..865186e
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_menu_settings_unselected.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_settings_all_138.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_settings_all_138.png
new file mode 100644 (file)
index 0000000..ccc12ce
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_settings_all_138.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_settings_all_182.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_settings_all_182.png
new file mode 100644 (file)
index 0000000..c9cbbcb
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_settings_all_182.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_settings_brightness_138.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_settings_brightness_138.png
new file mode 100644 (file)
index 0000000..2d7b9b9
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_settings_brightness_138.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_settings_brightness_182.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_settings_brightness_182.png
new file mode 100644 (file)
index 0000000..c320395
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_settings_brightness_182.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_settings_color_138.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_settings_color_138.png
new file mode 100644 (file)
index 0000000..89040cc
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_settings_color_138.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_settings_color_182.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_settings_color_182.png
new file mode 100644 (file)
index 0000000..8a19652
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_settings_color_182.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_settings_contrast_138.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_settings_contrast_138.png
new file mode 100644 (file)
index 0000000..c88b18a
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_settings_contrast_138.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_settings_contrast_182.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_settings_contrast_182.png
new file mode 100644 (file)
index 0000000..e264e88
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_settings_contrast_182.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_settings_tint_138.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_settings_tint_138.png
new file mode 100644 (file)
index 0000000..7f9a87c
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_settings_tint_138.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_settings_tint_182.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_settings_tint_182.png
new file mode 100644 (file)
index 0000000..c3b9169
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_home_settings_tint_182.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_launcher_mediahub_138.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_launcher_mediahub_138.png
new file mode 100644 (file)
index 0000000..f28db0f
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_launcher_mediahub_138.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_launcher_mediahub_182.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_launcher_mediahub_182.png
new file mode 100644 (file)
index 0000000..f28db0f
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_launcher_mediahub_182.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_list_thumbnail_gradient_focused.9.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_list_thumbnail_gradient_focused.9.png
new file mode 100644 (file)
index 0000000..e6e3cee
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_list_thumbnail_gradient_focused.9.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_list_thumbnail_gradient_normal.9.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_list_thumbnail_gradient_normal.9.png
new file mode 100644 (file)
index 0000000..4be6a7c
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_list_thumbnail_gradient_normal.9.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_list_thumbnail_shadow_focused.9.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_list_thumbnail_shadow_focused.9.png
new file mode 100644 (file)
index 0000000..f066540
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_list_thumbnail_shadow_focused.9.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_home_list_addpin_focused.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_home_list_addpin_focused.png
new file mode 100644 (file)
index 0000000..a0830ef
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_home_list_addpin_focused.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_home_list_addpin_normal.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_home_list_addpin_normal.png
new file mode 100644 (file)
index 0000000..bbd4750
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_home_list_addpin_normal.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_home_list_allapps_focused.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_home_list_allapps_focused.png
new file mode 100644 (file)
index 0000000..ff932e4
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_home_list_allapps_focused.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_home_list_allapps_normal.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_home_list_allapps_normal.png
new file mode 100644 (file)
index 0000000..12517bc
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_home_list_allapps_normal.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_home_list_mediahub_focused.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_home_list_mediahub_focused.png
new file mode 100644 (file)
index 0000000..f28db0f
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_home_list_mediahub_focused.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_home_list_mediahub_normal.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_home_list_mediahub_normal.png
new file mode 100644 (file)
index 0000000..f28db0f
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_home_list_mediahub_normal.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_home_menu_addpin_138.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_home_menu_addpin_138.png
new file mode 100644 (file)
index 0000000..9eeba3e
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_home_menu_addpin_138.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_home_menu_addpin_182.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_home_menu_addpin_182.png
new file mode 100644 (file)
index 0000000..1ffd4b6
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_home_menu_addpin_182.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_home_menu_apps_138.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_home_menu_apps_138.png
new file mode 100644 (file)
index 0000000..a280cf3
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_home_menu_apps_138.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_home_menu_apps_182.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_home_menu_apps_182.png
new file mode 100644 (file)
index 0000000..66c0cba
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_home_menu_apps_182.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_option_box_more_dimmed.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_option_box_more_dimmed.png
new file mode 100644 (file)
index 0000000..e5dc084
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_option_box_more_dimmed.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_option_box_more_normal.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_option_box_more_normal.png
new file mode 100644 (file)
index 0000000..a67a971
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_option_box_more_normal.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_option_menu_list_box_check_focused.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_option_menu_list_box_check_focused.png
new file mode 100644 (file)
index 0000000..ff166af
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_option_menu_list_box_check_focused.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_option_menu_list_box_check_normal.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_option_menu_list_box_check_normal.png
new file mode 100644 (file)
index 0000000..7bff7bd
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_option_menu_list_box_check_normal.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_option_menu_list_box_check_selected.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_option_menu_list_box_check_selected.png
new file mode 100644 (file)
index 0000000..c06fd94
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/ic_tizen_option_menu_list_box_check_selected.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_apps_list_dimmed_75.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_apps_list_dimmed_75.png
new file mode 100644 (file)
index 0000000..9528728
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_apps_list_dimmed_75.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_apps_list_dimmed_85.9.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_apps_list_dimmed_85.9.png
new file mode 100644 (file)
index 0000000..872d761
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_apps_list_dimmed_85.9.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_apps_list_dimmed_95.9.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_apps_list_dimmed_95.9.png
new file mode 100644 (file)
index 0000000..2d39df9
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_apps_list_dimmed_95.9.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_apps_list_dimmed_check.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_apps_list_dimmed_check.png
new file mode 100644 (file)
index 0000000..9528728
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_apps_list_dimmed_check.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_apps_list_stroke.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_apps_list_stroke.png
new file mode 100644 (file)
index 0000000..8730c81
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_apps_list_stroke.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_apps_no_contents.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_apps_no_contents.png
new file mode 100644 (file)
index 0000000..7f4b618
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_apps_no_contents.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_home_list_dimmed_apps_60.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_home_list_dimmed_apps_60.png
new file mode 100644 (file)
index 0000000..4f5ac7c
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_home_list_dimmed_apps_60.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_home_list_dimmed_apps_75.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_home_list_dimmed_apps_75.png
new file mode 100644 (file)
index 0000000..61748ba
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_home_list_dimmed_apps_75.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_home_list_dimmed_recent_60.9.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_home_list_dimmed_recent_60.9.png
new file mode 100644 (file)
index 0000000..cf5fd53
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_home_list_dimmed_recent_60.9.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_home_menu_focused_bg.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_home_menu_focused_bg.png
new file mode 100644 (file)
index 0000000..3724af4
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_home_menu_focused_bg.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_home_recent_dimmed_option_75.9.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_home_recent_dimmed_option_75.9.png
new file mode 100644 (file)
index 0000000..74e12f4
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_home_recent_dimmed_option_75.9.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_tizen_apps_list_dimmed.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_tizen_apps_list_dimmed.png
new file mode 100644 (file)
index 0000000..e10bcc8
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_tizen_apps_list_dimmed.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_tizen_apps_list_dimmed_check.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_tizen_apps_list_dimmed_check.png
new file mode 100644 (file)
index 0000000..9528728
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_tizen_apps_list_dimmed_check.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_tizen_home_list_bg_focused.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_tizen_home_list_bg_focused.png
new file mode 100644 (file)
index 0000000..8259980
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_tizen_home_list_bg_focused.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_tizen_home_list_bg_normal.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_tizen_home_list_bg_normal.png
new file mode 100644 (file)
index 0000000..4536446
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_tizen_home_list_bg_normal.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_tizen_home_list_bg_white_focused.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_tizen_home_list_bg_white_focused.png
new file mode 100644 (file)
index 0000000..0c0753a
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_tizen_home_list_bg_white_focused.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_tizen_home_list_bg_white_normal.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_tizen_home_list_bg_white_normal.png
new file mode 100644 (file)
index 0000000..8c7cd02
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_tizen_home_list_bg_white_normal.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_tizen_home_list_dimmed_recent.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_tizen_home_list_dimmed_recent.png
new file mode 100644 (file)
index 0000000..17643cb
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/img_tizen_home_list_dimmed_recent.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/screenshot.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/screenshot.png
new file mode 100644 (file)
index 0000000..40e57db
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/res/screenshot.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/shared/res/TVHome.Tizen.TV.png b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/shared/res/TVHome.Tizen.TV.png
new file mode 100644 (file)
index 0000000..9f3cb98
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/shared/res/TVHome.Tizen.TV.png differ
diff --git a/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/signature1.xml b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/signature1.xml
new file mode 100644 (file)
index 0000000..0847c3f
--- /dev/null
@@ -0,0 +1,544 @@
+<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-sha256" />
+    <Reference URI="tizen-manifest.xml">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>yiowRT7BBe9PMd5KOUgJnrI8+ctp4sFJxRop8zwZ3Vg=</DigestValue>
+    </Reference>
+    <Reference URI="shared%2Fres%2FTVHome.Tizen.TV.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>/gTbhhRqVKFAMykTkZyDaEozK7OBNMSXGtsJpmRcLuE=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fscreenshot.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>rBnUv9kQBnmkHu6V7orYmoteD5eXfJfNtSk4fiES51Y=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_tizen_home_list_dimmed_recent.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>abSVmAktD3kMD8cgkHyq7+HznufbfOkkWpLoi3seSXA=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_tizen_home_list_bg_white_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>BHtl9KTXq3w+B5ABJO86u7SYoNKl0CG/h1qt2NJQHFA=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_tizen_home_list_bg_white_focused.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>ujRWeZIhIcElCoJVIw66t3hfb6sb8VK63a+jtck5EUw=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_tizen_home_list_bg_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>RttyFJoNtupluYvHReoAEiDuwNJJNeeBLw19wrGs/xE=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_tizen_home_list_bg_focused.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>hI640xq4Vqw3XeO6SinvdjSIOzaPzORFCUXbaEgResI=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_tizen_apps_list_dimmed_check.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>Ixtj64ex0/WsZi2VSM/3Qx6GSWCQAjNNkCYoshGmzOI=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_tizen_apps_list_dimmed.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>zo8V0MvRxWOPNOKHe9YiYwQQS4qKVDd4nDYXRZds0lI=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_home_recent_dimmed_option_75.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>DTpuLrVOInHOOCpLV8Ha1XJiZOGvYqu6MxPxhaEiq4w=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_home_menu_focused_bg.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>ZCsfmvO2E/db1sCfLZczGb7wtCMYoixWrfonq9V8W1Q=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_home_list_dimmed_recent_60.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>ZzXtd/0Z6EEbeYql7uzznGYLHa1O+vHoBHdS8eC+y2g=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_home_list_dimmed_apps_75.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>2MOhaSuSq7UMYrtFqZgrECcUoOoDg1/v6tZGkcSTP9k=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_home_list_dimmed_apps_60.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>urw6a9ANCmt/dzHoUG1wjSP1dQa/JxcqJimgWQFcKFA=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_apps_no_contents.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>wyV5bZt23Oukmg26jcjhBq4e3ZaoyvAEmvmf4N/H9+8=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_apps_list_stroke.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>KlC657FZBYGsby56T9TFTVgWUTtm8D7cZwaFkHmuIV0=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_apps_list_dimmed_check.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>Ixtj64ex0/WsZi2VSM/3Qx6GSWCQAjNNkCYoshGmzOI=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_apps_list_dimmed_95.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>uADDZTovkkBmW29pZm787/g+oBxOWBqpRO2dnYf/ahM=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_apps_list_dimmed_85.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>iLfG/n8nzjk0YtoNBrqqDot05l+qDLEVkUfqttNXLcs=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fimg_apps_list_dimmed_75.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>Ixtj64ex0/WsZi2VSM/3Qx6GSWCQAjNNkCYoshGmzOI=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_tizen_option_menu_list_box_check_selected.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>oenTDUDtiAEQVBYxbv0xZtU+t5Jq5Z/p6ogv6lQJ79o=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_tizen_option_menu_list_box_check_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>u8LBn4QklWpX06MXRDp/0IE/q0lab2FDtIT0TpSVKo8=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_tizen_option_menu_list_box_check_focused.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>U/02Xv2++HNVYP9BeXqCTd43gxO3eDQ+S2d4lYOvPU8=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_tizen_option_box_more_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>TiWYMtep4pcheKi8z95wGpSRcN/wjXuRba6vY9eO4gc=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_tizen_option_box_more_dimmed.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>p5CdWOViau3ehePfQFCrQu7iZPp6QOpXALeH3QhhD5w=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_tizen_home_menu_apps_182.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>EtZD1Q3rhAzg5/lOi0t3NP1paAk7psxUZXXQesttkRI=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_tizen_home_menu_apps_138.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>4qmHCWwhYsX6Sp+5n1I0ojsto45cn3g+ERr5PNYRsEU=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_tizen_home_menu_addpin_182.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>ysMQWqhHVgFE68EDOTffZmX4x4JrjWm2F7k/1v0q9UY=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_tizen_home_menu_addpin_138.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>xZcjt6+cHOk4r2fjWQgY4PbSAlh9PL+MYjkV7tFMPEk=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_tizen_home_list_mediahub_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>Qa+jLmnpzRRkKUkfmZwHRuO6ubj00IgTuMVCbf54xtQ=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_tizen_home_list_mediahub_focused.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>Qa+jLmnpzRRkKUkfmZwHRuO6ubj00IgTuMVCbf54xtQ=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_tizen_home_list_allapps_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>jue0IfvgSHvuVbcy3urOkFi6dueU86ynfsUrImCT1Ko=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_tizen_home_list_allapps_focused.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>m/NU/yQl1g0Vr24xwU7kT2ocrtzXJKteNtRVMOrcuzk=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_tizen_home_list_addpin_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>gsvs4qLA9qYnUaS3ub73z7Ow0zIIP6B8fDDbt5fpeG0=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_tizen_home_list_addpin_focused.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>DNurC/ezAgPbsiCDPAogMWXKjlZdzPWyrWeSVmYn/ME=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_list_thumbnail_shadow_focused.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>zVDoB9YI+wsx0LiF2roSN2lmtYQgs3BTm5QvUhMX/Rw=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_list_thumbnail_gradient_normal.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>dM5tJw1dRRkH4qRjWySYUY/n7oqbQTxqxnqcWW4rTM0=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_list_thumbnail_gradient_focused.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>NzcImMy9eCGiB8txpMcGm3i5SRNjfSS363Zt4+dAPUY=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_launcher_mediahub_182.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>Qa+jLmnpzRRkKUkfmZwHRuO6ubj00IgTuMVCbf54xtQ=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_launcher_mediahub_138.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>Qa+jLmnpzRRkKUkfmZwHRuO6ubj00IgTuMVCbf54xtQ=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_settings_tint_182.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>LHkP9bSmyMZxhF7/N2BlgBHzzxhyzGey6YisfeaNqAo=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_settings_tint_138.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>iu3Z8bQsAqGGhQumVUD/Z5ekIObmzv+Hvpe8fe2cuqc=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_settings_contrast_182.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>w68yOeITQVLQatvCZI62776hf50CEwO15w0sIgxcAEo=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_settings_contrast_138.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>3TzeCHSXJsn/5jAuaW0XbBRP2/8WPohPHXHhct8w8I0=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_settings_color_182.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>IalaRXmRr6SmVFUrJc5yvKhyJqOUsQXIOI80KzeFnrk=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_settings_color_138.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>DDj3G+TOrKWpW83NhLtO090KZx6agkVOKiPFqdTDlX0=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_settings_brightness_182.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>p3a3uuxR/W4Rbi7PnqSbJCPtwu2og1/RxxOZLgxBKD4=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_settings_brightness_138.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>pSM2IFVLLRoae4fXE2MFoAEZ60eOkUcVK6TUgYtyKkc=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_settings_all_182.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>P8tFgQHn4UUit2HgVvAxxfbmyIQJmVbCcn6VEhDQ3+U=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_settings_all_138.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>h90O5s72TWwK5+fMwTSFdS7n3d3xiPWnh3XbSu9FXZg=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_menu_settings_unselected.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>qv91ECpbw5zePEsTj/3+DQo4AjUlMvomZLO6LIGT3Kg=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_menu_settings_selected.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>laMaxDSoa3/vBRg8pTTLIR7G8RutxTVjflUpMh3PEnc=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_menu_settings_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>0u4Q/RBQqTad+TlPVDRxIZh5PVFgmdbq/a+RgiUZZNQ=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_menu_settings_focused.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>YqMEOEXBipNpFdozt+arIUtVklGct1rrcRRY2a8/lLw=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_menu_recent_unselected.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>UbErFgk/s2nniMipQzfOq6sTm+9O77+nI0a9MnLKQZk=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_menu_recent_selected.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>dr1O6uUavxDuU5f6EyPYqcQ7vIiXipEFQiNIZgMOHoE=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_menu_recent_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>ynzujpdT3OJ9aqCHPhHBt5y2aSgf/hta2tJpKIPwrvM=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_menu_recent_focused.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>/AJesEfZSEA1TAZwFv16KIrV1C/VnLkqLu25gTkLcho=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_menu_apps_unselected.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>qm5PrwOIcF8PVkdnfqzRZ/GToRpHS+e9H860MMCd3YY=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_menu_apps_selected.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>C54ugONimzU/RPEUK1SSYmnnxtNpW77h9lPXvtjth7k=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_menu_apps_normal.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>pqniyO9OrzSgN/czTbFI5eWTEiKaaPvKrMY2DWVrpkY=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_menu_apps_focused.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>4uFNuZc5bEw49qv2zNV+FnDXecySa9D2kGZcUWausS8=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_menu_apps_182.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>EtZD1Q3rhAzg5/lOi0t3NP1paAk7psxUZXXQesttkRI=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_menu_apps_138.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>4qmHCWwhYsX6Sp+5n1I0ojsto45cn3g+ERr5PNYRsEU=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_menu_addpin_182.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>ysMQWqhHVgFE68EDOTffZmX4x4JrjWm2F7k/1v0q9UY=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_menu_addpin_138.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>xZcjt6+cHOk4r2fjWQgY4PbSAlh9PL+MYjkV7tFMPEk=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_launcher_mediahub_42.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>ibFQnq6mQdHlt1McHlqbV2LZa2SIap4ml0FBGxS1VOQ=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_launcher_mediahub_168.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>wY7l6OKmJYotIpKnPhlh0hR4YDSEtpW2HZtcoi+ERs8=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_home_launcher_mediahub_136.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>saIbF5ChgWv4mmprVfJSvHB4PPMch6eF/wDV09tmmVI=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_apps_pinmark.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>ZahUF4DidpBuGLkIAcr0MF3VVcGQGC9JjSZztyH5aQA=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_apps_launcher_pinmark.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>EJlF00KH8rz4TpqqJK8zEUirikzig9Og98UBDNwp+jw=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_apps_launcher_mediahub_196.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>Qa+jLmnpzRRkKUkfmZwHRuO6ubj00IgTuMVCbf54xtQ=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_apps_launcher_mediahub_164.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>gX3ogKZsX26mpk+kDEAYP+Zp6S3QSrx+13BnFxCc5FM=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fic_apps_additional_back.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>CyVbmPv2pqcChT+Wu+ogtWAe6bJSh85sqXf6m5x4mDs=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fhome_icon_bg_08.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>NLOZX7wXlktktN4Vef4pa9gubOGJhb9HrRkQS3mudaE=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fhome_icon_bg_07.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>9P4ZzrZv0NlNaB+3No+aGsDBs/jG9NJegHpEGLHNllg=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fhome_icon_bg_06.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>kKyxysfX/d+oZ7U1WHH5dFwGJHSK4wXtq8LOVgHLa2U=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fhome_icon_bg_05.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>BZNk/tRKl/S8oSQZH4L0cwyUtNUL61gX3v8w6zunRgo=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fhome_icon_bg_04.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>/mBm1k4Z9xmw87/3iuDQUbi/6TqvIUjuy22lrXLqYpc=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fhome_icon_bg_03.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>Q4OWq9SFfY4Kc6F9aO2L1EnAgNiBHcCKdFV+MfhG8CA=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fhome_icon_bg_02.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>SnFNaOuBFWqqvBEwZfZxfNRtXOyAk1qwNaS1RynVD7k=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fhome_icon_bg_01.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>SnFNaOuBFWqqvBEwZfZxfNRtXOyAk1qwNaS1RynVD7k=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_tizen_option_menu_nocontent_bg.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>TmyxV1efSm+7IERxNOqWN6YUEy3cjHVfa8/v5D2Pojk=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_tizen_option_menu_list_box_bg.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>PjKAMWpnRVOjc4j69DiZy3Sx35Nun1rwx7BUwvSF1YA=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_tizen_option_menu_bg_selected.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>Uo7RkZXsYAHl0hNWN4+/8wwu4AkYgy+KXFT753nH9pw=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_tizen_option_menu_bg_normal.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>pTiEER6ZQHQ30R0M5LydfDBYvsBDbUcNwdlEMyK/za8=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_tizen_option_menu_bg_focused.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>iUav5rD4DUVJpp9AqRSIgiUfHJ6F7wnrAq39NCCgmls=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_tizen_dropdown_line_normal.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>Mxq8NCIXrSgByqVE4a82nxdyRNdMUFjwv3pKk3oZI8g=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_tizen_dropdown_line_dimmed.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>PKb4yMY1F5PQboqftsJYHqOxbrhYvBy2P7eKX5T9LVk=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_option_menu_nocontent_bg.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>TfE7qSi+67CvFLZZ7zgIThDKOle9Os3orYlRyvYTO1E=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_home_list_move_right.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>iTAIVO+qBnlJlQOpTPhZTTpBBMkSMSgq+rHHGa74lk4=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbtn_home_list_move_left.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>eTTs8oyHbjR9Zijb5F1jilZ93fyLLjqGzGStTWT2WVs=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbg_home_gradient_dimmed_option.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>UXHn1krkBKC7JCRzj8h40KDdTtrYPl3QvNHMtdmuHeQ=</DigestValue>
+    </Reference>
+    <Reference URI="res%2Fbg_home_gradient_dimmed.9.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>EEXDCMHtiPGhUsXPX12eTAh7lcQu86us5YmIw8UxqXY=</DigestValue>
+    </Reference>
+    <Reference URI="res%2FAppIcon.png">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>1d0oEZHqPn+QzNzGIHwj9ODby6x9ggFs9uOsav6jPNs=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FXamarin.Forms.Xaml.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>J/d/Iu+nPnrMUHbnjHtcNpI4dTAbHKyD61nelmBE8rE=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FXamarin.Forms.Platform.Tizen.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>k9quBEmTxuUA7AiVyJthoirEwrl9SgQr5J0DXi6llkk=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FXamarin.Forms.Platform.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>8FCwIup+0tvOQf5a14Lo7VQVCCG9bgxkw/sxAFAN8lM=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FXamarin.Forms.Core.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>Wnha/ZDGFuzYPiZ6JyEp1wTQYBpYv7WDYs8CHPr3Ugs=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTVHome.Tizen.TV.pdb">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>R7KeqWSqXYTrBPiLDbLq3fVCy8kZyWIHIbjgW8eASVM=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTVHome.Tizen.TV.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>b9BedGtu+zVnAvHChbiD5vPT1y0NwXiAronKQiCC08o=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTVHome.pdb">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>X4GiFeOs+/xr5OoC4PUsB04mON5fmQq3rMUw7PDrq/k=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTVHome.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>CDi0NSU/sxR5CaxZi4MTlQiccQCOzZ5bPFMBkWmR2f4=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTVApps.Tizen.TV.pdb">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>x/rqZEBQb4V2cBRByJrDHyvHUP5aIka4jiBYuVysUJg=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTVApps.Tizen.TV.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>BgawWdKNYytoW7rglBK3/WadIDO64RmYLRvqdVlKcYA=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTVApps.pdb">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>iN7qVbbwpxhN3RAqDyb3zDQuvkTlNJNM3mIo45nyMzU=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTVApps.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>nmik89SH8yehPu6zI2peM/amzyT0kunzhWjX/nKDWto=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTizen.Xamarin.Forms.Extension.Renderer.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>7oZiDFE6sc/h/5gxMoKu72pn73f48lWBD8p5W7h7j4I=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTizen.Xamarin.Forms.Extension.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>Q1voviamaw/GnkgZDXopBuyM18WxY0sxyD5g3Uyovf4=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTizen.System.PlatformConfig.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>1fLNIiGbumlNGMW1fApud98XB/+XaRzlfKtOlAaIDwQ=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTizen.Applications.WatchApplication.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>899qMfwfpHleUrl1Eyx89Y4AJxYGBwOc7bsmIIERfA4=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTizen.Applications.AttachPanel.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>Ujn3mYvFRa5GBhVgy6iMMKWOOh0Vl33ISGagcSkxC2U=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FTizen.Account.SyncManager.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>vy52VSuLoSlQmeqgLYOQP2SZUL8kdr2x6Dw4WL5ia5M=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FLibCommon.Tizen.pdb">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>p9BXz7Wy961nTBtuJ6NBBlcg3d6JzxtAa2kKvTAjU0k=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FLibCommon.Tizen.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>ytXYOQFfxUo6TNaE/JC9uMkpYq28zyKWfuzKtLt1hD8=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FLibCommon.Shared.pdb">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>28yMmL3EV3MWlzVPfP3R3jC9/qQWZlIWvvKHFJz5Qs0=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FLibCommon.Shared.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>L9fmVpePV7PCT/SW8PIIBm6ekdcZSq9eG07O/R4s8pI=</DigestValue>
+    </Reference>
+    <Reference URI="bin%2FElmSharp.Wearable.dll">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>9xk59Y9Uhmml3aT0AKL5zD8aQbN2QMedWOZxxGQ86EA=</DigestValue>
+    </Reference>
+    <Reference URI="author-signature.xml">
+      <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+      <DigestValue>8DuG+ktphW28f9BqEz5ZGHW/k9MxR8LpOO+ERJoHV60=</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#sha256" />
+      <DigestValue>abSCdQC03ZcPoEN8T0eWSILDIhDi2uNziivgdw1gmmQ=</DigestValue>
+    </Reference>
+  </SignedInfo>
+  <SignatureValue>
+mISGW6EqPcVVVotj/QLJCLBXAhKi9KGhCSeasOr57r0I7NekP0nc/KOehVtPLhvgiAriEYobrH89
+gpPJaH+FslY249e2MFAyn1lzoENr0RkxASlZ7n+p+tmDLTOyuzS9zD7YXLYPfo/zlPF74BiL4l//
+843Yl03PhQIB44ZOiyM=
+</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/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/tizen-manifest.xml b/TVHome/TVHome.Tizen.TV/bin/Debug/netcoreapp2.0/tpkroot/tizen-manifest.xml
new file mode 100644 (file)
index 0000000..589923e
--- /dev/null
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest package="org.tizen.xahome" version="1.0.0" api-version="3.0" xmlns="http://tizen.org/ns/packages">
+  <profile name="tv" />
+  <ui-application appid="org.tizen.xahome" exec="TVHome.Tizen.TV.dll" multiple="false" nodisplay="true" taskmanage="false" splash-screen-display="false" type="dotnet" launch_mode="single">
+    <icon>xahome.png</icon>
+    <label>Home</label>
+  </ui-application>
+  <ui-application appid="org.tizen.xaapps" exec="TVApps.Tizen.TV.dll" multiple="false" nodisplay="true" taskmanage="false" splash-screen-display="false" type="dotnet" launch_mode="single">
+    <icon>xaapps.png</icon>
+    <label>Apps</label>
+  </ui-application>
+  <shortcut-list />
+  <privileges>
+    <privilege>http://tizen.org/privilege/bluetooth</privilege>
+    <privilege>http://tizen.org/privilege/network.get</privilege>
+    <privilege>http://tizen.org/privilege/network.set</privilege>
+    <privilege>http://tizen.org/privilege/packagemanager.info</privilege>
+    <privilege>http://tizen.org/privilege/packagemanager.admin</privilege>
+    <privilege>http://tizen.org/privilege/appmanager.launch</privilege>
+    <privilege>http://tizen.org/privilege/externalstorage</privilege>
+    <privilege>http://tizen.org/privilege/keygrab</privilege>
+  </privileges>
+</manifest>
+
diff --git a/TVHome/TVHome.Tizen.TV/res/AppIcon.png b/TVHome/TVHome.Tizen.TV/res/AppIcon.png
new file mode 100644 (file)
index 0000000..9765b1b
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/AppIcon.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/bg_home_gradient_dimmed.9.png b/TVHome/TVHome.Tizen.TV/res/bg_home_gradient_dimmed.9.png
new file mode 100644 (file)
index 0000000..a64cd34
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/bg_home_gradient_dimmed.9.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/bg_home_gradient_dimmed_option.9.png b/TVHome/TVHome.Tizen.TV/res/bg_home_gradient_dimmed_option.9.png
new file mode 100644 (file)
index 0000000..570ef79
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/bg_home_gradient_dimmed_option.9.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/btn_home_list_move_left.png b/TVHome/TVHome.Tizen.TV/res/btn_home_list_move_left.png
new file mode 100644 (file)
index 0000000..8342f23
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/btn_home_list_move_left.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/btn_home_list_move_right.png b/TVHome/TVHome.Tizen.TV/res/btn_home_list_move_right.png
new file mode 100644 (file)
index 0000000..9b73e2a
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/btn_home_list_move_right.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/btn_option_menu_nocontent_bg.9.png b/TVHome/TVHome.Tizen.TV/res/btn_option_menu_nocontent_bg.9.png
new file mode 100644 (file)
index 0000000..4bdd708
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/btn_option_menu_nocontent_bg.9.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/btn_tizen_dropdown_line_dimmed.9.png b/TVHome/TVHome.Tizen.TV/res/btn_tizen_dropdown_line_dimmed.9.png
new file mode 100644 (file)
index 0000000..e1f6bfe
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/btn_tizen_dropdown_line_dimmed.9.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/btn_tizen_dropdown_line_normal.9.png b/TVHome/TVHome.Tizen.TV/res/btn_tizen_dropdown_line_normal.9.png
new file mode 100644 (file)
index 0000000..db442ff
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/btn_tizen_dropdown_line_normal.9.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/btn_tizen_option_menu_bg_focused.9.png b/TVHome/TVHome.Tizen.TV/res/btn_tizen_option_menu_bg_focused.9.png
new file mode 100644 (file)
index 0000000..e8cc6e5
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/btn_tizen_option_menu_bg_focused.9.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/btn_tizen_option_menu_bg_normal.9.png b/TVHome/TVHome.Tizen.TV/res/btn_tizen_option_menu_bg_normal.9.png
new file mode 100644 (file)
index 0000000..4f98927
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/btn_tizen_option_menu_bg_normal.9.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/btn_tizen_option_menu_bg_selected.9.png b/TVHome/TVHome.Tizen.TV/res/btn_tizen_option_menu_bg_selected.9.png
new file mode 100644 (file)
index 0000000..b4230af
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/btn_tizen_option_menu_bg_selected.9.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/btn_tizen_option_menu_list_box_bg.9.png b/TVHome/TVHome.Tizen.TV/res/btn_tizen_option_menu_list_box_bg.9.png
new file mode 100644 (file)
index 0000000..021f8b4
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/btn_tizen_option_menu_list_box_bg.9.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/btn_tizen_option_menu_nocontent_bg.9.png b/TVHome/TVHome.Tizen.TV/res/btn_tizen_option_menu_nocontent_bg.9.png
new file mode 100644 (file)
index 0000000..a71e7f1
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/btn_tizen_option_menu_nocontent_bg.9.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/home_icon_bg_01.png b/TVHome/TVHome.Tizen.TV/res/home_icon_bg_01.png
new file mode 100644 (file)
index 0000000..72dc248
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/home_icon_bg_01.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/home_icon_bg_02.png b/TVHome/TVHome.Tizen.TV/res/home_icon_bg_02.png
new file mode 100644 (file)
index 0000000..72dc248
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/home_icon_bg_02.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/home_icon_bg_03.png b/TVHome/TVHome.Tizen.TV/res/home_icon_bg_03.png
new file mode 100644 (file)
index 0000000..f75e5ce
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/home_icon_bg_03.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/home_icon_bg_04.png b/TVHome/TVHome.Tizen.TV/res/home_icon_bg_04.png
new file mode 100644 (file)
index 0000000..dfb3498
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/home_icon_bg_04.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/home_icon_bg_05.png b/TVHome/TVHome.Tizen.TV/res/home_icon_bg_05.png
new file mode 100644 (file)
index 0000000..fc5f703
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/home_icon_bg_05.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/home_icon_bg_06.png b/TVHome/TVHome.Tizen.TV/res/home_icon_bg_06.png
new file mode 100644 (file)
index 0000000..442850d
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/home_icon_bg_06.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/home_icon_bg_07.png b/TVHome/TVHome.Tizen.TV/res/home_icon_bg_07.png
new file mode 100644 (file)
index 0000000..a5243d0
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/home_icon_bg_07.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/home_icon_bg_08.png b/TVHome/TVHome.Tizen.TV/res/home_icon_bg_08.png
new file mode 100644 (file)
index 0000000..ec8db06
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/home_icon_bg_08.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_apps_additional_back.png b/TVHome/TVHome.Tizen.TV/res/ic_apps_additional_back.png
new file mode 100644 (file)
index 0000000..861fa32
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_apps_additional_back.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_apps_launcher_mediahub_164.png b/TVHome/TVHome.Tizen.TV/res/ic_apps_launcher_mediahub_164.png
new file mode 100644 (file)
index 0000000..041c15f
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_apps_launcher_mediahub_164.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_apps_launcher_mediahub_196.png b/TVHome/TVHome.Tizen.TV/res/ic_apps_launcher_mediahub_196.png
new file mode 100644 (file)
index 0000000..f28db0f
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_apps_launcher_mediahub_196.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_apps_launcher_pinmark.png b/TVHome/TVHome.Tizen.TV/res/ic_apps_launcher_pinmark.png
new file mode 100644 (file)
index 0000000..aad639e
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_apps_launcher_pinmark.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_apps_pinmark.png b/TVHome/TVHome.Tizen.TV/res/ic_apps_pinmark.png
new file mode 100644 (file)
index 0000000..d66d3db
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_apps_pinmark.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_home_launcher_mediahub_136.png b/TVHome/TVHome.Tizen.TV/res/ic_home_launcher_mediahub_136.png
new file mode 100644 (file)
index 0000000..2025049
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_home_launcher_mediahub_136.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_home_launcher_mediahub_168.png b/TVHome/TVHome.Tizen.TV/res/ic_home_launcher_mediahub_168.png
new file mode 100644 (file)
index 0000000..18ce5f0
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_home_launcher_mediahub_168.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_home_launcher_mediahub_42.png b/TVHome/TVHome.Tizen.TV/res/ic_home_launcher_mediahub_42.png
new file mode 100644 (file)
index 0000000..52d9da5
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_home_launcher_mediahub_42.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_home_menu_addpin_138.png b/TVHome/TVHome.Tizen.TV/res/ic_home_menu_addpin_138.png
new file mode 100644 (file)
index 0000000..9eeba3e
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_home_menu_addpin_138.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_home_menu_addpin_182.png b/TVHome/TVHome.Tizen.TV/res/ic_home_menu_addpin_182.png
new file mode 100644 (file)
index 0000000..1ffd4b6
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_home_menu_addpin_182.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_home_menu_apps_138.png b/TVHome/TVHome.Tizen.TV/res/ic_home_menu_apps_138.png
new file mode 100644 (file)
index 0000000..a280cf3
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_home_menu_apps_138.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_home_menu_apps_182.png b/TVHome/TVHome.Tizen.TV/res/ic_home_menu_apps_182.png
new file mode 100644 (file)
index 0000000..66c0cba
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_home_menu_apps_182.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_home_menu_apps_focused.png b/TVHome/TVHome.Tizen.TV/res/ic_home_menu_apps_focused.png
new file mode 100644 (file)
index 0000000..62e87d0
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_home_menu_apps_focused.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_home_menu_apps_normal.png b/TVHome/TVHome.Tizen.TV/res/ic_home_menu_apps_normal.png
new file mode 100644 (file)
index 0000000..f0070b1
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_home_menu_apps_normal.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_home_menu_apps_selected.png b/TVHome/TVHome.Tizen.TV/res/ic_home_menu_apps_selected.png
new file mode 100644 (file)
index 0000000..d7aa3f3
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_home_menu_apps_selected.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_home_menu_apps_unselected.png b/TVHome/TVHome.Tizen.TV/res/ic_home_menu_apps_unselected.png
new file mode 100644 (file)
index 0000000..4370b01
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_home_menu_apps_unselected.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_home_menu_recent_focused.png b/TVHome/TVHome.Tizen.TV/res/ic_home_menu_recent_focused.png
new file mode 100644 (file)
index 0000000..d5a3229
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_home_menu_recent_focused.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_home_menu_recent_normal.png b/TVHome/TVHome.Tizen.TV/res/ic_home_menu_recent_normal.png
new file mode 100644 (file)
index 0000000..37fc8c4
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_home_menu_recent_normal.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_home_menu_recent_selected.png b/TVHome/TVHome.Tizen.TV/res/ic_home_menu_recent_selected.png
new file mode 100644 (file)
index 0000000..804ee13
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_home_menu_recent_selected.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_home_menu_recent_unselected.png b/TVHome/TVHome.Tizen.TV/res/ic_home_menu_recent_unselected.png
new file mode 100644 (file)
index 0000000..afe3e23
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_home_menu_recent_unselected.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_home_menu_settings_focused.png b/TVHome/TVHome.Tizen.TV/res/ic_home_menu_settings_focused.png
new file mode 100644 (file)
index 0000000..f0dd0d8
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_home_menu_settings_focused.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_home_menu_settings_normal.png b/TVHome/TVHome.Tizen.TV/res/ic_home_menu_settings_normal.png
new file mode 100644 (file)
index 0000000..9c44527
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_home_menu_settings_normal.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_home_menu_settings_selected.png b/TVHome/TVHome.Tizen.TV/res/ic_home_menu_settings_selected.png
new file mode 100644 (file)
index 0000000..b87fad3
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_home_menu_settings_selected.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_home_menu_settings_unselected.png b/TVHome/TVHome.Tizen.TV/res/ic_home_menu_settings_unselected.png
new file mode 100644 (file)
index 0000000..865186e
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_home_menu_settings_unselected.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_home_settings_all_138.png b/TVHome/TVHome.Tizen.TV/res/ic_home_settings_all_138.png
new file mode 100644 (file)
index 0000000..ccc12ce
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_home_settings_all_138.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_home_settings_all_182.png b/TVHome/TVHome.Tizen.TV/res/ic_home_settings_all_182.png
new file mode 100644 (file)
index 0000000..c9cbbcb
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_home_settings_all_182.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_home_settings_brightness_138.png b/TVHome/TVHome.Tizen.TV/res/ic_home_settings_brightness_138.png
new file mode 100644 (file)
index 0000000..2d7b9b9
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_home_settings_brightness_138.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_home_settings_brightness_182.png b/TVHome/TVHome.Tizen.TV/res/ic_home_settings_brightness_182.png
new file mode 100644 (file)
index 0000000..c320395
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_home_settings_brightness_182.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_home_settings_color_138.png b/TVHome/TVHome.Tizen.TV/res/ic_home_settings_color_138.png
new file mode 100644 (file)
index 0000000..89040cc
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_home_settings_color_138.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_home_settings_color_182.png b/TVHome/TVHome.Tizen.TV/res/ic_home_settings_color_182.png
new file mode 100644 (file)
index 0000000..8a19652
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_home_settings_color_182.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_home_settings_contrast_138.png b/TVHome/TVHome.Tizen.TV/res/ic_home_settings_contrast_138.png
new file mode 100644 (file)
index 0000000..c88b18a
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_home_settings_contrast_138.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_home_settings_contrast_182.png b/TVHome/TVHome.Tizen.TV/res/ic_home_settings_contrast_182.png
new file mode 100644 (file)
index 0000000..e264e88
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_home_settings_contrast_182.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_home_settings_tint_138.png b/TVHome/TVHome.Tizen.TV/res/ic_home_settings_tint_138.png
new file mode 100644 (file)
index 0000000..7f9a87c
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_home_settings_tint_138.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_home_settings_tint_182.png b/TVHome/TVHome.Tizen.TV/res/ic_home_settings_tint_182.png
new file mode 100644 (file)
index 0000000..c3b9169
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_home_settings_tint_182.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_launcher_mediahub_138.png b/TVHome/TVHome.Tizen.TV/res/ic_launcher_mediahub_138.png
new file mode 100644 (file)
index 0000000..f28db0f
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_launcher_mediahub_138.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_launcher_mediahub_182.png b/TVHome/TVHome.Tizen.TV/res/ic_launcher_mediahub_182.png
new file mode 100644 (file)
index 0000000..f28db0f
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_launcher_mediahub_182.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_list_thumbnail_gradient_focused.9.png b/TVHome/TVHome.Tizen.TV/res/ic_list_thumbnail_gradient_focused.9.png
new file mode 100644 (file)
index 0000000..e6e3cee
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_list_thumbnail_gradient_focused.9.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_list_thumbnail_gradient_normal.9.png b/TVHome/TVHome.Tizen.TV/res/ic_list_thumbnail_gradient_normal.9.png
new file mode 100644 (file)
index 0000000..4be6a7c
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_list_thumbnail_gradient_normal.9.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_list_thumbnail_shadow_focused.9.png b/TVHome/TVHome.Tizen.TV/res/ic_list_thumbnail_shadow_focused.9.png
new file mode 100644 (file)
index 0000000..f066540
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_list_thumbnail_shadow_focused.9.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_tizen_home_list_addpin_focused.png b/TVHome/TVHome.Tizen.TV/res/ic_tizen_home_list_addpin_focused.png
new file mode 100644 (file)
index 0000000..a0830ef
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_tizen_home_list_addpin_focused.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_tizen_home_list_addpin_normal.png b/TVHome/TVHome.Tizen.TV/res/ic_tizen_home_list_addpin_normal.png
new file mode 100644 (file)
index 0000000..bbd4750
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_tizen_home_list_addpin_normal.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_tizen_home_list_allapps_focused.png b/TVHome/TVHome.Tizen.TV/res/ic_tizen_home_list_allapps_focused.png
new file mode 100644 (file)
index 0000000..ff932e4
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_tizen_home_list_allapps_focused.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_tizen_home_list_allapps_normal.png b/TVHome/TVHome.Tizen.TV/res/ic_tizen_home_list_allapps_normal.png
new file mode 100644 (file)
index 0000000..12517bc
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_tizen_home_list_allapps_normal.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_tizen_home_list_mediahub_focused.png b/TVHome/TVHome.Tizen.TV/res/ic_tizen_home_list_mediahub_focused.png
new file mode 100644 (file)
index 0000000..f28db0f
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_tizen_home_list_mediahub_focused.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_tizen_home_list_mediahub_normal.png b/TVHome/TVHome.Tizen.TV/res/ic_tizen_home_list_mediahub_normal.png
new file mode 100644 (file)
index 0000000..f28db0f
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_tizen_home_list_mediahub_normal.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_tizen_home_menu_addpin_138.png b/TVHome/TVHome.Tizen.TV/res/ic_tizen_home_menu_addpin_138.png
new file mode 100644 (file)
index 0000000..9eeba3e
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_tizen_home_menu_addpin_138.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_tizen_home_menu_addpin_182.png b/TVHome/TVHome.Tizen.TV/res/ic_tizen_home_menu_addpin_182.png
new file mode 100644 (file)
index 0000000..1ffd4b6
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_tizen_home_menu_addpin_182.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_tizen_home_menu_apps_138.png b/TVHome/TVHome.Tizen.TV/res/ic_tizen_home_menu_apps_138.png
new file mode 100644 (file)
index 0000000..a280cf3
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_tizen_home_menu_apps_138.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_tizen_home_menu_apps_182.png b/TVHome/TVHome.Tizen.TV/res/ic_tizen_home_menu_apps_182.png
new file mode 100644 (file)
index 0000000..66c0cba
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_tizen_home_menu_apps_182.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_tizen_option_box_more_dimmed.png b/TVHome/TVHome.Tizen.TV/res/ic_tizen_option_box_more_dimmed.png
new file mode 100644 (file)
index 0000000..e5dc084
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_tizen_option_box_more_dimmed.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_tizen_option_box_more_normal.png b/TVHome/TVHome.Tizen.TV/res/ic_tizen_option_box_more_normal.png
new file mode 100644 (file)
index 0000000..a67a971
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_tizen_option_box_more_normal.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_tizen_option_menu_list_box_check_focused.png b/TVHome/TVHome.Tizen.TV/res/ic_tizen_option_menu_list_box_check_focused.png
new file mode 100644 (file)
index 0000000..ff166af
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_tizen_option_menu_list_box_check_focused.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_tizen_option_menu_list_box_check_normal.png b/TVHome/TVHome.Tizen.TV/res/ic_tizen_option_menu_list_box_check_normal.png
new file mode 100644 (file)
index 0000000..7bff7bd
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_tizen_option_menu_list_box_check_normal.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/ic_tizen_option_menu_list_box_check_selected.png b/TVHome/TVHome.Tizen.TV/res/ic_tizen_option_menu_list_box_check_selected.png
new file mode 100644 (file)
index 0000000..c06fd94
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/ic_tizen_option_menu_list_box_check_selected.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/img_apps_list_dimmed_75.png b/TVHome/TVHome.Tizen.TV/res/img_apps_list_dimmed_75.png
new file mode 100644 (file)
index 0000000..9528728
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/img_apps_list_dimmed_75.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/img_apps_list_dimmed_85.9.png b/TVHome/TVHome.Tizen.TV/res/img_apps_list_dimmed_85.9.png
new file mode 100644 (file)
index 0000000..872d761
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/img_apps_list_dimmed_85.9.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/img_apps_list_dimmed_95.9.png b/TVHome/TVHome.Tizen.TV/res/img_apps_list_dimmed_95.9.png
new file mode 100644 (file)
index 0000000..2d39df9
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/img_apps_list_dimmed_95.9.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/img_apps_list_dimmed_check.png b/TVHome/TVHome.Tizen.TV/res/img_apps_list_dimmed_check.png
new file mode 100644 (file)
index 0000000..9528728
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/img_apps_list_dimmed_check.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/img_apps_list_stroke.png b/TVHome/TVHome.Tizen.TV/res/img_apps_list_stroke.png
new file mode 100644 (file)
index 0000000..8730c81
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/img_apps_list_stroke.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/img_apps_no_contents.png b/TVHome/TVHome.Tizen.TV/res/img_apps_no_contents.png
new file mode 100644 (file)
index 0000000..7f4b618
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/img_apps_no_contents.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/img_home_list_dimmed_apps_60.png b/TVHome/TVHome.Tizen.TV/res/img_home_list_dimmed_apps_60.png
new file mode 100644 (file)
index 0000000..4f5ac7c
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/img_home_list_dimmed_apps_60.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/img_home_list_dimmed_apps_75.png b/TVHome/TVHome.Tizen.TV/res/img_home_list_dimmed_apps_75.png
new file mode 100644 (file)
index 0000000..61748ba
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/img_home_list_dimmed_apps_75.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/img_home_list_dimmed_recent_60.9.png b/TVHome/TVHome.Tizen.TV/res/img_home_list_dimmed_recent_60.9.png
new file mode 100644 (file)
index 0000000..cf5fd53
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/img_home_list_dimmed_recent_60.9.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/img_home_menu_focused_bg.png b/TVHome/TVHome.Tizen.TV/res/img_home_menu_focused_bg.png
new file mode 100644 (file)
index 0000000..3724af4
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/img_home_menu_focused_bg.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/img_home_recent_dimmed_option_75.9.png b/TVHome/TVHome.Tizen.TV/res/img_home_recent_dimmed_option_75.9.png
new file mode 100644 (file)
index 0000000..74e12f4
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/img_home_recent_dimmed_option_75.9.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/img_tizen_apps_list_dimmed.png b/TVHome/TVHome.Tizen.TV/res/img_tizen_apps_list_dimmed.png
new file mode 100644 (file)
index 0000000..e10bcc8
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/img_tizen_apps_list_dimmed.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/img_tizen_apps_list_dimmed_check.png b/TVHome/TVHome.Tizen.TV/res/img_tizen_apps_list_dimmed_check.png
new file mode 100644 (file)
index 0000000..9528728
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/img_tizen_apps_list_dimmed_check.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/img_tizen_home_list_bg_focused.png b/TVHome/TVHome.Tizen.TV/res/img_tizen_home_list_bg_focused.png
new file mode 100644 (file)
index 0000000..8259980
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/img_tizen_home_list_bg_focused.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/img_tizen_home_list_bg_normal.png b/TVHome/TVHome.Tizen.TV/res/img_tizen_home_list_bg_normal.png
new file mode 100644 (file)
index 0000000..4536446
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/img_tizen_home_list_bg_normal.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/img_tizen_home_list_bg_white_focused.png b/TVHome/TVHome.Tizen.TV/res/img_tizen_home_list_bg_white_focused.png
new file mode 100644 (file)
index 0000000..0c0753a
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/img_tizen_home_list_bg_white_focused.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/img_tizen_home_list_bg_white_normal.png b/TVHome/TVHome.Tizen.TV/res/img_tizen_home_list_bg_white_normal.png
new file mode 100644 (file)
index 0000000..8c7cd02
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/img_tizen_home_list_bg_white_normal.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/img_tizen_home_list_dimmed_recent.png b/TVHome/TVHome.Tizen.TV/res/img_tizen_home_list_dimmed_recent.png
new file mode 100644 (file)
index 0000000..17643cb
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/img_tizen_home_list_dimmed_recent.png differ
diff --git a/TVHome/TVHome.Tizen.TV/res/screenshot.png b/TVHome/TVHome.Tizen.TV/res/screenshot.png
new file mode 100644 (file)
index 0000000..40e57db
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/res/screenshot.png differ
diff --git a/TVHome/TVHome.Tizen.TV/shared/res/TVHome.Tizen.TV.png b/TVHome/TVHome.Tizen.TV/shared/res/TVHome.Tizen.TV.png
new file mode 100644 (file)
index 0000000..9f3cb98
Binary files /dev/null and b/TVHome/TVHome.Tizen.TV/shared/res/TVHome.Tizen.TV.png differ
diff --git a/TVHome/TVHome.Tizen.TV/tizen-manifest.xml b/TVHome/TVHome.Tizen.TV/tizen-manifest.xml
new file mode 100644 (file)
index 0000000..589923e
--- /dev/null
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest package="org.tizen.xahome" version="1.0.0" api-version="3.0" xmlns="http://tizen.org/ns/packages">
+  <profile name="tv" />
+  <ui-application appid="org.tizen.xahome" exec="TVHome.Tizen.TV.dll" multiple="false" nodisplay="true" taskmanage="false" splash-screen-display="false" type="dotnet" launch_mode="single">
+    <icon>xahome.png</icon>
+    <label>Home</label>
+  </ui-application>
+  <ui-application appid="org.tizen.xaapps" exec="TVApps.Tizen.TV.dll" multiple="false" nodisplay="true" taskmanage="false" splash-screen-display="false" type="dotnet" launch_mode="single">
+    <icon>xaapps.png</icon>
+    <label>Apps</label>
+  </ui-application>
+  <shortcut-list />
+  <privileges>
+    <privilege>http://tizen.org/privilege/bluetooth</privilege>
+    <privilege>http://tizen.org/privilege/network.get</privilege>
+    <privilege>http://tizen.org/privilege/network.set</privilege>
+    <privilege>http://tizen.org/privilege/packagemanager.info</privilege>
+    <privilege>http://tizen.org/privilege/packagemanager.admin</privilege>
+    <privilege>http://tizen.org/privilege/appmanager.launch</privilege>
+    <privilege>http://tizen.org/privilege/externalstorage</privilege>
+    <privilege>http://tizen.org/privilege/keygrab</privilege>
+  </privileges>
+</manifest>
+
diff --git a/TVHome/TVHome.TizenTV/Properties/AssemblyInfo.cs b/TVHome/TVHome.TizenTV/Properties/AssemblyInfo.cs
deleted file mode 100644 (file)
index 41ba03f..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-using System.Reflection;\r
-using System.Runtime.CompilerServices;\r
-using System.Runtime.InteropServices;\r
-\r
-// General Information about an assembly is controlled through the following\r
-// set of attributes. Change these attribute values to modify the information\r
-// associated with an assembly.\r
-[assembly: AssemblyTitle("TVHome.TizenTV")]\r
-[assembly: AssemblyDescription("")]\r
-[assembly: AssemblyConfiguration("")]\r
-[assembly: AssemblyCompany("")]\r
-[assembly: AssemblyProduct("TVHome.TizenTV")]\r
-[assembly: AssemblyCopyright("Copyright ©  2017")]\r
-[assembly: AssemblyTrademark("")]\r
-[assembly: AssemblyCulture("")]\r
-\r
-// Setting ComVisible to false makes the types in this assembly not visible\r
-// to COM components.  If you need to access a type in this assembly from\r
-// COM, set the ComVisible attribute to true on that type.\r
-[assembly: ComVisible(false)]\r
-\r
-// The following GUID is for the ID of the typelib if this project is exposed to COM\r
-[assembly: Guid("ce03a1dc-a3e0-41dd-b06c-92c19e8d2a8f")]\r
-\r
-// Version information for an assembly consists of the following four values:\r
-//\r
-//      Major Version\r
-//      Minor Version\r
-//      Build Number\r
-//      Revision\r
-//\r
-// You can specify all the values or you can default the Build and Revision Numbers\r
-// by using the '*' as shown below:\r
-// [assembly: AssemblyVersion("1.0.*")]\r
-[assembly: AssemblyVersion("1.0.0.0")]\r
-[assembly: AssemblyFileVersion("1.0.0.0")]\r
diff --git a/TVHome/TVHome.TizenTV/Settings.StyleCop b/TVHome/TVHome.TizenTV/Settings.StyleCop
deleted file mode 100644 (file)
index 49d20d0..0000000
+++ /dev/null
@@ -1,722 +0,0 @@
-<StyleCopSettings Version="105">\r
-  <GlobalSettings>\r
-    <StringProperty Name="MergeSettingsFiles">NoMerge</StringProperty>\r
-  </GlobalSettings>\r
-  <Analyzers>\r
-    <Analyzer AnalyzerId="StyleCop.CSharp.DocumentationRules">\r
-      <Rules>\r
-        <Rule Name="ElementsMustBeDocumented">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="ElementDocumentationMustHaveSummaryText">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="EnumerationItemsMustBeDocumented">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="DocumentationMustContainValidXml">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="ElementDocumentationMustHaveSummary">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="PartialElementDocumentationMustHaveSummary">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="ElementDocumentationMustNotHaveDefaultSummary">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="VoidReturnValueMustNotBeDocumented">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="GenericTypeParametersMustBeDocumented">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="GenericTypeParametersMustBeDocumentedPartialClass">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="GenericTypeParameterDocumentationMustMatchTypeParameters">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="GenericTypeParameterDocumentationMustDeclareParameterName">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="GenericTypeParameterDocumentationMustHaveText">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="PropertySummaryDocumentationMustMatchAccessors">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="PropertySummaryDocumentationMustOmitSetAccessorWithRestrictedAccess">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="ElementDocumentationMustNotBeCopiedAndPasted">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="SingleLineCommentsMustNotUseDocumentationStyleSlashes">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="DocumentationTextMustNotBeEmpty">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="DocumentationTextMustContainWhitespace">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="DocumentationMustMeetCharacterPercentage">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="ConstructorSummaryDocumentationMustBeginWithStandardText">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="DestructorSummaryDocumentationMustBeginWithStandardText">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="DocumentationHeadersMustNotContainBlankLines">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="IncludedDocumentationXPathDoesNotExist">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="IncludeNodeDoesNotContainValidFileAndPath">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="InheritDocMustBeUsedWithInheritingClass">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="ElementDocumentationMustBeSpelledCorrectly">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="FileMustHaveHeader">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="FileHeaderMustShowCopyright">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="FileHeaderMustHaveCopyrightText">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="FileHeaderMustContainFileName">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="FileHeaderFileNameDocumentationMustMatchFileName">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="FileHeaderMustHaveValidCompanyText">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="FileHeaderFileNameDocumentationMustMatchTypeName">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-      </Rules>\r
-      <AnalyzerSettings />\r
-    </Analyzer>\r
-    <Analyzer AnalyzerId="StyleCop.CSharp.NamingRules">\r
-      <Rules>\r
-        <Rule Name="ConstFieldNamesMustBeginWithUpperCaseLetter">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="FieldNamesMustBeginWithLowerCaseLetter">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="FieldNamesMustNotContainUnderscore">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="ElementMustBeginWithLowerCaseLetter">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="NonPrivateReadonlyFieldsMustBeginWithUpperCaseLetter">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="FieldNamesMustNotUseHungarianNotation">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="AccessibleFieldsMustBeginWithUpperCaseLetter">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="VariableNamesMustNotBePrefixed">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="FieldNamesMustNotBeginWithUnderscore">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="StaticReadonlyFieldsMustBeginWithUpperCaseLetter">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-      </Rules>\r
-      <AnalyzerSettings />\r
-    </Analyzer>\r
-    <Analyzer AnalyzerId="StyleCop.CSharp.LayoutRules">\r
-      <Rules>\r
-        <Rule Name="AllAccessorsMustBeMultiLineOrSingleLine">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="OpeningCurlyBracketsMustNotBeFollowedByBlankLine">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="ElementDocumentationHeadersMustNotBeFollowedByBlankLine">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="CodeMustNotContainMultipleBlankLinesInARow">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="ClosingCurlyBracketsMustNotBePrecededByBlankLine">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="OpeningCurlyBracketsMustNotBePrecededByBlankLine">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="ChainedStatementBlocksMustNotBePrecededByBlankLine">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="WhileDoFooterMustNotBePrecededByBlankLine">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="SingleLineCommentsMustNotBeFollowedByBlankLine">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="ElementDocumentationHeaderMustBePrecededByBlankLine">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="SingleLineCommentMustBePrecededByBlankLine">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="ElementsMustBeSeparatedByBlankLine">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="CodeMustNotContainBlankLinesAtStartOfFile">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="CodeMustNotContainBlankLinesAtEndOfFile">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-      </Rules>\r
-      <AnalyzerSettings />\r
-    </Analyzer>\r
-    <Analyzer AnalyzerId="StyleCop.CSharp.MaintainabilityRules">\r
-      <Rules>\r
-        <Rule Name="AccessModifierMustBeDeclared">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="FieldsMustBePrivate">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="CodeAnalysisSuppressionMustHaveJustification">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="DebugAssertMustProvideMessageText">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="DebugFailMustProvideMessageText">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="FileMayOnlyContainASingleClass">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="FileMayOnlyContainASingleNamespace">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="StatementMustNotUseUnnecessaryParenthesis">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="ArithmeticExpressionsMustDeclarePrecedence">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="ConditionalExpressionsMustDeclarePrecedence">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="RemoveDelegateParenthesisWhenPossible">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="AttributeConstructorMustNotUseUnnecessaryParenthesis">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="RemoveUnnecessaryCode">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-      </Rules>\r
-      <AnalyzerSettings />\r
-    </Analyzer>\r
-    <Analyzer AnalyzerId="StyleCop.CSharp.OrderingRules">\r
-      <Rules>\r
-        <Rule Name="UsingDirectivesMustBePlacedWithinNamespace">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="ElementsMustAppearInTheCorrectOrder">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="ElementsMustBeOrderedByAccess">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="ConstantsMustAppearBeforeFields">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="StaticElementsMustAppearBeforeInstanceElements">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="DeclarationKeywordsMustFollowOrder">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="ProtectedMustComeBeforeInternal">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="PropertyAccessorsMustFollowOrder">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="EventAccessorsMustFollowOrder">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="StaticReadonlyElementsMustAppearBeforeStaticNonReadonlyElements">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="InstanceReadonlyElementsMustAppearBeforeInstanceNonReadonlyElements">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="NoValueFirstComparison">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="SystemUsingDirectivesMustBePlacedBeforeOtherUsingDirectives">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="UsingAliasDirectivesMustBePlacedAfterOtherUsingDirectives">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="UsingDirectivesMustBeOrderedAlphabeticallyByNamespace">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="UsingAliasDirectivesMustBeOrderedAlphabeticallyByAliasName">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="UsingStaticDirectivesMustBePlacedAfterUsingNamespaceDirectives">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-      </Rules>\r
-      <AnalyzerSettings />\r
-    </Analyzer>\r
-    <Analyzer AnalyzerId="StyleCop.CSharp.ReadabilityRules">\r
-      <Rules>\r
-        <Rule Name="CommentsMustContainText">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="DoNotPrefixCallsWithBaseUnlessLocalImplementationExists">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="PrefixLocalCallsWithThis">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="PrefixCallsCorrectly">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="OpeningParenthesisMustBeOnDeclarationLine">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="ClosingParenthesisMustBeOnLineOfLastParameter">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="ClosingParenthesisMustBeOnLineOfOpeningParenthesis">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="CommaMustBeOnSameLineAsPreviousParameter">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="ParameterListMustFollowDeclaration">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="ParameterMustFollowComma">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="SplitParametersMustStartOnLineAfterDeclaration">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="ParametersMustBeOnSameLineOrSeparateLines">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="ParameterMustNotSpanMultipleLines">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="QueryClauseMustFollowPreviousClause">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="QueryClausesMustBeOnSeparateLinesOrAllOnOneLine">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="QueryClauseMustBeginOnNewLineWhenPreviousClauseSpansMultipleLines">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="QueryClausesSpanningMultipleLinesMustBeginOnOwnLine">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="DoNotPlaceRegionsWithinElements">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="CodeMustNotContainEmptyStatements">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="CodeMustNotContainMultipleStatementsOnOneLine">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="BlockStatementsMustNotContainEmbeddedComments">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="BlockStatementsMustNotContainEmbeddedRegions">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="UseStringEmptyForEmptyStrings">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="UseBuiltInTypeAlias">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="UseShorthandForNullableTypes">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-      </Rules>\r
-      <AnalyzerSettings />\r
-    </Analyzer>\r
-    <Analyzer AnalyzerId="StyleCop.CSharp.SpacingRules">\r
-      <Rules>\r
-        <Rule Name="CommasMustBeSpacedCorrectly">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="SemicolonsMustBeSpacedCorrectly">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="DocumentationLinesMustBeginWithSingleSpace">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="SingleLineCommentsMustBeginWithSingleSpace">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="PreprocessorKeywordsMustNotBePrecededBySpace">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="OperatorKeywordMustBeFollowedBySpace">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="OpeningCurlyBracketsMustBeSpacedCorrectly">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="ClosingCurlyBracketsMustBeSpacedCorrectly">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="OpeningGenericBracketsMustBeSpacedCorrectly">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="ClosingGenericBracketsMustBeSpacedCorrectly">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="OpeningAttributeBracketsMustBeSpacedCorrectly">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="ClosingAttributeBracketsMustBeSpacedCorrectly">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="NullableTypeSymbolsMustNotBePrecededBySpace">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="MemberAccessSymbolsMustBeSpacedCorrectly">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="IncrementDecrementSymbolsMustBeSpacedCorrectly">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="NegativeSignsMustBeSpacedCorrectly">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="PositiveSignsMustBeSpacedCorrectly">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="DereferenceAndAccessOfSymbolsMustBeSpacedCorrectly">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="ColonsMustBeSpacedCorrectly">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="CodeMustNotContainMultipleWhitespaceInARow">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="CodeMustNotContainSpaceAfterNewKeywordInImplicitlyTypedArrayAllocation">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="TabsMustNotBeUsed">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-        <Rule Name="DoNotSplitNullConditionalOperators">\r
-          <RuleSettings>\r
-            <BooleanProperty Name="Enabled">False</BooleanProperty>\r
-          </RuleSettings>\r
-        </Rule>\r
-      </Rules>\r
-      <AnalyzerSettings />\r
-    </Analyzer>\r
-  </Analyzers>\r
-</StyleCopSettings>
\ No newline at end of file
diff --git a/TVHome/TVHome.TizenTV/Sniper.cs b/TVHome/TVHome.TizenTV/Sniper.cs
deleted file mode 100644 (file)
index 76017f0..0000000
+++ /dev/null
@@ -1,313 +0,0 @@
-using System;
-using System.IO;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-using Tizen;
-
-namespace CoreApp
-{
-       /// <summary>
-       /// Handles recent screen shot of launched applications
-       /// </summary>
-       public class Sniper
-       {
-               /// <summary>
-               /// Main window of the application
-               /// </summary>
-               private IntPtr nativeWindow;
-
-               /// <summary>
-               /// A path of storage for recent screen shot of launched application
-               /// </summary>
-               private string storagePath;
-
-               /// <summary>
-               /// A width of recent screen shot
-               /// </summary>
-               private int imageWidth;
-
-               /// <summary>
-               /// A height of recent screen shot
-               /// </summary>
-               private int imageHeight;
-
-               /// <summary>
-               /// A flag indicates whether updating recent screen shot or not
-               /// </summary>
-               public bool SkipUpdateFlag;
-
-               /// <summary>
-               /// Callbacks of sniper events
-               /// </summary>
-               private static InterOp.SniperCallback callbacks;
-
-               /// <summary>
-               /// A EventHandler handles recent screen shot update event
-               /// </summary>
-               public event EventHandler<Event> UpdatedEvent;
-
-               /// <summary>
-               /// A EventHandler handles add or remove application
-               /// </summary>
-               public event EventHandler<Event> AddRemoveEvent;
-
-               /// <summary>
-               /// A EventHandler handles skip update event
-               /// </summary>
-               public event EventHandler<Event> SkipUpdateEvent;
-
-               /// <summary>
-               /// A event argument class for app screen update notification.
-               /// </summary>
-               public class Event : EventArgs
-               {
-                       public string AppId;
-                       public string InstanceId;
-                       public string Info;
-               }
-
-               /// <summary>
-               /// A method for writing debug log
-               /// </summary>
-               /// <param name="message">A log message</param>
-               /// <param name="file">A path of caller file</param>
-               /// <param name="func">A name of caller function</param>
-               /// <param name="line">A line number of caller line</param>
-               private void WriteLog(string message, [CallerFilePath] string file = "", [CallerMemberName] string func = "", [CallerLineNumber] int line = 0)
-               {
-                       Log.Debug("sniper", message);
-               }
-
-               /// <summary>
-               /// A method for handling launched application
-               /// </summary>
-               /// <param name="appId">An ID of launched application</param>
-               /// <param name="instanceId">An instance ID of launched application</param>
-               private void AddedCallback(string appId, string instanceId)
-               {
-                       EventHandler<Event> handler = AddRemoveEvent;
-                       Event eventInfo;
-
-                       WriteLog("Added " + appId + " " + instanceId);
-
-                       if (handler == null)
-                       {
-                               return;
-                       }
-
-                       try
-                       {
-                               eventInfo = new Event();
-                       }
-                       catch (Exception e)
-                       {
-                               WriteLog("Updated Exception : " + e.Message);
-                               return;
-                       }
-
-                       eventInfo.AppId = appId;
-                       eventInfo.InstanceId = instanceId;
-                       eventInfo.Info = "Added";
-
-                       handler(this, eventInfo);
-               }
-
-               /// <summary>
-               /// A method for handling terminated application
-               /// </summary>
-               /// <param name="appId">An ID of terminated application</param>
-               /// <param name="instanceId">An instance ID of terminated application</param>
-               private void RemovedCallback(string appId, string instanceId)
-               {
-                       EventHandler<Event> handler = AddRemoveEvent;
-                       Event eventInfo;
-
-                       WriteLog("Removed " + appId + " " + instanceId);
-
-                       if (handler == null)
-                       {
-                               return;
-                       }
-
-                       try
-                       {
-                               eventInfo = new Event();
-                       }
-                       catch (Exception e)
-                       {
-                               WriteLog("Updated Exception : " + e.Message);
-                               return;
-                       }
-
-                       eventInfo.AppId = appId;
-                       eventInfo.InstanceId = instanceId;
-                       eventInfo.Info = "Removed";
-
-                       handler(this, eventInfo);
-               }
-
-               /// <summary>
-               /// A method for handling application screen is updated
-               /// </summary>
-               /// <param name="appId">An ID of application that screen is updated</param>
-               /// <param name="instanceId">An instance ID of application that screen is updated</param>
-               /// <param name="Filename">A path of application screen shot</param>
-               private void UpdatedCallback(string appId, string instanceId, string Filename)
-               {
-                       EventHandler<Event> handler = UpdatedEvent;
-                       Event eventInfo;
-
-                       WriteLog("Updated " + appId + " " + instanceId + " " + Filename);
-
-                       if (handler == null)
-                       {
-                               return;
-                       }
-
-                       try
-                       {
-                               eventInfo = new Event();
-                       }
-                       catch (Exception e)
-                       {
-                               WriteLog("Updated Exception : " + e.Message);
-                               return;
-                       }
-
-                       eventInfo.Info = Filename;
-                       eventInfo.AppId = appId;
-                       eventInfo.InstanceId = instanceId;
-
-                       handler(this, eventInfo);
-               }
-
-               /// <summary>
-               /// A method for handling screen update is skipped
-               /// </summary>
-               /// <param name="appId">An ID of application that screen update is skipped</param>
-               /// <param name="instanceId">An instance ID of application that screen update is skipped</param>
-               /// <param name="Filename">A path of application screen shot</param>
-               /// <returns>Returns finish code</returns>
-               private int SkipUpdateCallback(string appId, string instanceId, string Filename)
-               {
-                       EventHandler<Event> handler = SkipUpdateEvent;
-                       Event eventInfo;
-
-                       WriteLog("SkipUpdate" + appId + " " + instanceId + " " + Filename);
-
-                       if (handler == null)
-                       {
-                               return 0;
-                       }
-
-                       try
-                       {
-                               eventInfo = new Event();
-                       }
-                       catch (Exception e)
-                       {
-                               WriteLog("SkipUpdated Exception : " + e.Message);
-                               return 0;
-                       }
-
-                       eventInfo.Info = Filename;
-                       eventInfo.AppId = appId;
-                       eventInfo.InstanceId = instanceId;
-
-                       handler(this, eventInfo);
-
-                       if (SkipUpdateFlag)
-                       {
-                               WriteLog("Update is skipped : " + Filename);
-                               SkipUpdateFlag = false;
-                               return 1;
-                       }
-
-                       return 0;
-               }
-
-               /// <summary>
-               /// Constructor
-               /// </summary>
-               /// <param name="window">Main window of this application</param>
-               /// <param name="path">Storage path</param>
-               /// <param name="width">Screen shot width</param>
-               /// <param name="height">Screen shot height</param>
-               public Sniper(IntPtr window, string path, int width, int height)
-               {
-                       nativeWindow = window;
-                       storagePath = path;
-                       imageWidth = width;
-                       imageHeight = height;
-                       SkipUpdateFlag = false;
-               }
-
-               /// <summary>
-               /// A method for starting monitoring
-               /// Adds callbacks and initialize Sniper class
-               /// </summary>
-               public void StartMonitor()
-               {
-                       try
-                       {
-                               callbacks = new InterOp.SniperCallback();
-                               callbacks.Added = new InterOp.CallbackAddedRemoved(AddedCallback);
-                               callbacks.Removed = new InterOp.CallbackAddedRemoved(RemovedCallback);
-                               callbacks.Updated = new InterOp.CallbackUpdated(UpdatedCallback);
-                               callbacks.SkipUpdate = new InterOp.CallbackSkipUpdate(SkipUpdateCallback);
-                       }
-                       catch (Exception e)
-                       {
-                               throw new SniperException(e.Message);
-                       }
-
-                       try
-                       {
-                               InterOp.sniper_init(nativeWindow, callbacks, storagePath, imageWidth, imageHeight);
-                       }
-                       catch (DllNotFoundException e)
-                       {
-                               WriteLog("Loadable library is not found " + e.StackTrace);
-                       }
-
-                       WriteLog("Sniper starts monitoring : " + storagePath + "ImageSize : " + imageWidth + "x" + imageHeight);
-               }
-
-               /// <summary>
-               /// A method stops monitoring
-               /// </summary>
-               public void StopMonitor()
-               {
-                       try
-                       {
-                               InterOp.sniper_fini();
-                       }
-                       catch (DllNotFoundException e)
-                       {
-                               WriteLog("Loadable library is not found " + e.StackTrace);
-                       }
-
-                       WriteLog("Sniper stops monitoring : " + storagePath + "ImageSize : " + imageWidth + "x" + imageHeight);
-               }
-
-               /// <summary>
-               /// A method requests updating application screen shot
-               /// </summary>
-               /// <param name="instanceId">An instance ID of application</param>
-               public void RequestUpdate(string instanceId)
-               {
-                       try
-                       {
-                               InterOp.sniper_request_update(instanceId);
-                       }
-                       catch (DllNotFoundException e)
-                       {
-                               WriteLog("Loadable library is not found " + e.StackTrace);
-                       }
-
-                       WriteLog("Sniper requests update (" + instanceId + ") : " + storagePath + "ImageSize : " + imageWidth + "x" + imageHeight);
-               }
-       }
-}
-
-/* End of a file */
diff --git a/TVHome/TVHome.TizenTV/SniperException.cs b/TVHome/TVHome.TizenTV/SniperException.cs
deleted file mode 100644 (file)
index 9394ad8..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-using System;
-
-namespace CoreApp
-{
-    public class SniperException : Exception
-    {
-        public SniperException()
-        {
-        }
-
-        public SniperException(string message)
-            : base(message)
-        {
-        }
-
-        public SniperException(string message, Exception inner)
-            : base(message, inner)
-        {
-        }
-    }
-}
-
-/* End of a file */
diff --git a/TVHome/TVHome.TizenTV/SniperInterOp.cs b/TVHome/TVHome.TizenTV/SniperInterOp.cs
deleted file mode 100644 (file)
index d0bf60a..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-using System;
-using System.Runtime.InteropServices;
-
-namespace CoreApp
-{
-    /// <summary>
-    /// Sniper InterOp class for getting application's screen-shot.
-    /// </summary>
-    internal static partial class InterOp
-    {
-        [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-        public delegate void CallbackAddedRemoved(string appId, string instanceId);
-        [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-        public delegate void CallbackUpdated(string appId, string instanceId, string filename);
-        [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-        public delegate int CallbackSkipUpdate(string appid, string instanceId, string filename);
-
-        [StructLayout(LayoutKind.Sequential)]
-        public struct SniperCallback
-        {
-            public CallbackAddedRemoved Added;
-            public CallbackAddedRemoved Removed;
-            public CallbackUpdated Updated;
-            public CallbackSkipUpdate SkipUpdate;
-        }
-
-        [DllImport("sniper", CharSet = CharSet.Ansi)]
-        internal static extern int sniper_init(IntPtr win, SniperCallback callbacks, string path, int w, int h);
-
-        [DllImport("sniper", CharSet = CharSet.Ansi)]
-        internal static extern int sniper_request_update(string instanceId);
-
-        [DllImport("sniper", CharSet = CharSet.Ansi)]
-        internal static extern int sniper_fini();
-    }
-}
-
-/* End of a file */
diff --git a/TVHome/TVHome.TizenTV/TVHome.TizenTV.cs b/TVHome/TVHome.TizenTV/TVHome.TizenTV.cs
deleted file mode 100755 (executable)
index 78845d8..0000000
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using Tizen.Applications;
-using LibTVRefCommonPortable.Utils;
-using LibTVRefCommonTizen.Ports;
-using Tizen.Xamarin.Forms.Extension.Renderer;
-using CoreApp;
-using System;
-
-namespace TVHome.TizenTV
-{
-    /// <summary>
-    /// TV Home application main entry point
-    /// </summary>
-    class Program : global::Xamarin.Forms.Platform.Tizen.FormsApplication
-    {
-        /// <summary>
-        /// An interface for the  platform notification
-        /// </summary>
-        IPlatformNotification notification;
-        /// <summary>
-        /// A port for handling Window APIs
-        /// </summary>
-        WindowPort windowPort;
-
-        /// <summary>
-        /// A method will be called when application is created
-        /// </summary>
-        protected override void OnCreate()
-        {
-            base.OnCreate();
-
-            FileSystemPort.AppDataStroagePath = DirectoryInfo.Data;
-            FileSystemPort.AppResourceStoragePath = DirectoryInfo.Resource;
-            string platformShareStoragePath = "/opt/usr/home/owner/share/";
-            FileSystemPort.PlatformShareStroagePath = platformShareStoragePath;
-
-            var app = new App(MainWindow.ScreenSize.Width,
-                MainWindow.ScreenSize.Height,
-                MainWindow.ScreenDpi.X,
-                ElmSharp.Elementary.GetScale());
-
-            notification = app;
-
-            DbgPort.D("-----------------------------------");
-            DbgPort.D("Home application is being loaded...");
-            DbgPort.D("-----------------------------------");
-            LoadApplication(app);
-
-            PackageManagerPort.RegisterCallbacks(notification);
-
-            MainWindow.KeyUp += KeyUpListener;
-            MainWindow.Alpha = true;
-
-            windowPort = new WindowPort();
-            windowPort.MainWindow = MainWindow;
-
-            /// Grab key events
-            MainWindow.KeyGrab(ElmSharp.EvasKeyEventArgs.PlatformHomeButtonName, true);
-            MainWindow.KeyGrab(ElmSharp.EvasKeyEventArgs.PlatformMenuButtonName, true);
-            MainWindow.KeyGrab("XF86Info", true);
-            MainWindow.KeyGrab("Up", false);
-            MainWindow.KeyGrab("Down", false);
-            MainWindow.KeyGrab("Left", false);
-            MainWindow.KeyGrab("Right", false);
-            windowPort.SetKeyGrabExclusively(ElmSharp.EvasKeyEventArgs.PlatformHomeButtonName);
-
-            /// Sniper
-            try
-            {
-                Sniper sniper = new Sniper((IntPtr)MainWindow, platformShareStoragePath, 960, 540);
-                sniper.UpdatedEvent += OnScreenUpdate;
-                sniper.AddRemoveEvent += SniperAddRemoveEvent;
-                sniper.SkipUpdateEvent += SniperSkipUpdateEvent;
-                sniper.StartMonitor();
-            }
-            catch (SniperException e)
-            {
-                DbgPort.E("Failed to create sniper object : " + e.Message);
-            }
-        }
-
-        private void SniperSkipUpdateEvent(object sender, Sniper.Event e)
-        {
-            DbgPort.D(" [Sniper SkipUpdateEvent] : " + e.Info);
-            (sender as Sniper).SkipUpdateFlag = true;
-        }
-
-        private void SniperAddRemoveEvent(object sender, Sniper.Event e)
-        {
-            DbgPort.D(" [Sniper SniperAddRemoveEvent] : " + e.Info);
-        }
-
-        private void OnScreenUpdate(object sender, Sniper.Event e)
-        {
-            DbgPort.D(" [Sniper OnScreenUpdate] : " + e.Info);
-        }
-
-        /// <summary>
-        /// A method will be called when application receives KeyUp event
-        /// </summary>
-        /// <param name="sender">The source of the event</param>
-        /// <param name="e">A EvasKey event's argument</param>
-        private void KeyUpListener(object sender, ElmSharp.EvasKeyEventArgs e)
-        {
-            DbgPort.D("Key Pressed :" + e.KeyName);
-            if (e.KeyName.CompareTo(ElmSharp.EvasKeyEventArgs.PlatformHomeButtonName) == 0)
-            {
-                notification?.OnHomeKeyPressed();
-            }
-            else if (e.KeyName.CompareTo(ElmSharp.EvasKeyEventArgs.PlatformMenuButtonName) == 0 ||
-                e.KeyName.CompareTo("XF86Info") == 0)
-            {
-                notification?.OnMenuKeyPressed();
-            }
-            else if (e.KeyName.Equals("Up") || e.KeyName.Equals("Down") || e.KeyName.Equals("Left") || e.KeyName.Equals("Right"))
-            {
-                notification?.OnNavigationKeyPressed(e.KeyName);
-            }
-        }
-
-        /// <summary>
-        /// A method will be called when application is terminated
-        /// </summary>
-        protected override void OnTerminate()
-        {
-            base.OnTerminate();
-
-            notification = null;
-            PackageManagerPort.UnregisterCallbacks();
-            MainWindow.KeyUngrab(ElmSharp.EvasKeyEventArgs.PlatformHomeButtonName);
-            MainWindow.KeyUngrab(ElmSharp.EvasKeyEventArgs.PlatformMenuButtonName);
-            MainWindow.KeyUngrab("XF86Info");
-            MainWindow.KeyUngrab("Up");
-            MainWindow.KeyUngrab("Down");
-            MainWindow.KeyUngrab("Left");
-            MainWindow.KeyUngrab("Right");
-        }
-
-        /// <summary>
-        /// A method will be called when application receives app control
-        /// </summary>
-        /// <param name="e">AppControl event argument</param>
-        protected override void OnAppControlReceived(AppControlReceivedEventArgs e)
-        {
-            if (AppControlPort.AppAddedNotifyOperation.CompareTo(e.ReceivedAppControl.Operation) == 0)
-            {
-                DbgPort.D("App Added Notification");
-                string pinnedApp;
-                if (e.ReceivedAppControl.ExtraData.TryGet(AppControlPort.KeyAddedAppID, out pinnedApp))
-                {
-                    notification?.OnAppPinnedNotificationReceived(pinnedApp);
-                }
-                else
-                {
-                    notification?.OnAppPinnedNotificationReceived("");
-                }
-            }
-        }
-
-        /// <summary>
-        /// The entry point for the application
-        /// </summary>
-        /// <param name="args">A list of command line arguments</param>
-        static void Main(string[] args)
-        {
-            var app = new Program();
-
-            DbgPort.Prefix = "Home";
-
-            global::Xamarin.Forms.DependencyService.Register<DbgPort>();
-            global::Xamarin.Forms.DependencyService.Register<AppControlPort>();
-            global::Xamarin.Forms.DependencyService.Register<PackageManagerPort>();
-            global::Xamarin.Forms.DependencyService.Register<FileSystemWatcherPort>();
-            global::Xamarin.Forms.DependencyService.Register<ApplicationManagerPort>();
-            global::Xamarin.Forms.DependencyService.Register<FileSystemPort>();
-            global::Xamarin.Forms.DependencyService.Register<WindowPort>();
-            global::Xamarin.Forms.DependencyService.Register<SystemSettingsPort>();
-            global::Xamarin.Forms.DependencyService.Register<MediaContentPort>();
-            TizenFormsExtension.Init();
-            global::Xamarin.Forms.Platform.Tizen.Forms.Init(app);
-            app.Run(args);
-        }
-    }
-}
diff --git a/TVHome/TVHome.TizenTV/TVHome.TizenTV.csproj b/TVHome/TVHome.TizenTV/TVHome.TizenTV.csproj
deleted file mode 100755 (executable)
index d350148..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProductVersion>8.0.30703</ProductVersion>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectTypeGuids>{2F98DAC9-6F16-457B-AED7-D43CAC379341};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ProjectGuid>{CE03A1DC-A3E0-41DD-B06C-92C19E8D2A8F}</ProjectGuid>
-    <OutputType>Exe</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>TVHome.TizenTV</RootNamespace>
-    <AssemblyName>xahome</AssemblyName>
-    <FileAlignment>512</FileAlignment>
-    <DefaultLanguage>en-US</DefaultLanguage>
-  </PropertyGroup>
-  <PropertyGroup>
-    <TargetFrameworkIdentifier>DNXCore</TargetFrameworkIdentifier>
-    <TargetFrameworkVersion>v5.0</TargetFrameworkVersion>
-    <AddAdditionalExplicitAssemblyReferences>false</AddAdditionalExplicitAssemblyReferences>
-    <NuGetTargetMoniker>.NETCoreApp,Version=v1.0</NuGetTargetMoniker>
-    <NoStdLib>true</NoStdLib>
-    <NoWarn>$(NoWarn);1701</NoWarn>
-    <UseVSHostingProcess>false</UseVSHostingProcess>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>portable</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>portable</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <ItemGroup>
-    <None Include="TVHome.TizenTV.project.json" />
-    <None Include="tizen-manifest.xml">
-      <ExcludeFromStyleCop>False</ExcludeFromStyleCop>
-    </None>
-    <None Include="shared\res\xahome.png" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="Sniper.cs" />
-    <Compile Include="SniperException.cs" />
-    <Compile Include="SniperInterOp.cs">
-               <ExcludeFromStyleCop>true</ExcludeFromStyleCop>
-       </Compile>
-    <Compile Include="TVHome.TizenTV.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <Folder Include="lib\" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\..\LibTVRefCommonPortable\LibTVRefCommonPortable.csproj">
-      <Project>{67F9D3A8-F71E-4428-913F-C37AE82CDB24}</Project>
-      <Name>LibTVRefCommonPortable</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\..\LibTVRefCommonTizen\LibTVRefCommonTizen.csproj">
-      <Project>{C558D279-897E-45E1-A10A-DECD788770F4}</Project>
-      <Name>LibTVRefCommonTizen</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\..\TVApps\TVApps.TizenTV\TVApps.TizenTV.csproj">
-      <Project>{7e341bf5-b7bd-4532-9d4a-aa89537b525e}</Project>
-      <Name>TVApps.TizenTV</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\..\TVApps\TVApps\TVApps.csproj">
-      <Project>{fd8c0ef4-6cea-4421-85b7-7ac8592738c6}</Project>
-      <Name>TVApps</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\TVHome\TVHome.csproj">
-      <Project>{54dd6673-7e64-48e6-a008-4d455e19e017}</Project>
-      <Name>TVHome</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <ItemGroup>
-    <Content Include="res\AppIcon.png" />
-    <Content Include="res\bg_home_gradient_dimmed.9.png" />
-    <Content Include="res\btn_home_list_move_left.png" />
-    <Content Include="res\btn_home_list_move_right.png" />
-    <Content Include="res\btn_option_menu_nocontent_bg.9.png" />
-    <Content Include="res\btn_tizen_dropdown_line_dimmed.9.png" />
-    <Content Include="res\btn_tizen_dropdown_line_normal.9.png" />
-    <Content Include="res\btn_tizen_option_menu_bg_focused.9.png" />
-    <Content Include="res\btn_tizen_option_menu_bg_normal.9.png" />
-    <Content Include="res\btn_tizen_option_menu_bg_selected.9.png" />
-    <Content Include="res\btn_tizen_option_menu_list_box_bg.9.png" />
-    <Content Include="res\btn_tizen_option_menu_nocontent_bg.9.png" />
-    <Content Include="res\home_icon_bg_01.png" />
-    <Content Include="res\home_icon_bg_02.png" />
-    <Content Include="res\home_icon_bg_03.png" />
-    <Content Include="res\home_icon_bg_04.png" />
-    <Content Include="res\home_icon_bg_05.png" />
-    <Content Include="res\home_icon_bg_06.png" />
-    <Content Include="res\home_icon_bg_07.png" />
-    <Content Include="res\home_icon_bg_08.png" />
-    <Content Include="res\ic_apps_additional_back.png" />
-    <Content Include="res\ic_apps_launcher_pinmark.png" />
-    <Content Include="res\ic_apps_launcher_checkmark.png" />
-    <Content Include="res\ic_home_menu_addpin_138.png" />
-    <Content Include="res\ic_home_menu_addpin_182.png" />
-    <Content Include="res\ic_home_menu_apps_138.png" />
-    <Content Include="res\ic_home_menu_apps_182.png" />
-    <Content Include="res\ic_home_menu_apps_focused.png" />
-    <Content Include="res\ic_home_menu_apps_normal.png" />
-    <Content Include="res\ic_home_menu_apps_selected.png" />
-    <Content Include="res\ic_home_menu_apps_unselected.png" />
-    <Content Include="res\ic_home_menu_recent_focused.png" />
-    <Content Include="res\ic_home_menu_recent_normal.png" />
-    <Content Include="res\ic_home_menu_recent_selected.png" />
-    <Content Include="res\ic_home_menu_recent_unselected.png" />
-    <Content Include="res\ic_home_menu_settings_focused.png" />
-    <Content Include="res\ic_home_menu_settings_normal.png" />
-    <Content Include="res\ic_home_menu_settings_selected.png" />
-    <Content Include="res\ic_home_menu_settings_unselected.png" />
-    <Content Include="res\ic_home_settings_all_138.png" />
-    <Content Include="res\ic_home_settings_all_182.png" />
-    <Content Include="res\ic_home_settings_brightness_138.png" />
-    <Content Include="res\ic_home_settings_brightness_182.png" />
-    <Content Include="res\ic_home_settings_color_138.png" />
-    <Content Include="res\ic_home_settings_color_182.png" />
-    <Content Include="res\ic_home_settings_contrast_138.png" />
-    <Content Include="res\ic_home_settings_contrast_182.png" />
-    <Content Include="res\ic_home_settings_tint_138.png" />
-    <Content Include="res\ic_home_settings_tint_182.png" />
-    <Content Include="res\ic_launcher_mediahub_138.png" />
-    <Content Include="res\ic_launcher_mediahub_182.png" />
-    <Content Include="res\ic_list_thumbnail_gradient_focused.9.png" />
-    <Content Include="res\ic_list_thumbnail_gradient_normal.9.png" />
-    <Content Include="res\ic_tizen_home_list_addpin_focused.png" />
-    <Content Include="res\ic_tizen_home_list_addpin_normal.png" />
-    <Content Include="res\ic_tizen_home_list_allapps_focused.png" />
-    <Content Include="res\ic_tizen_home_list_allapps_normal.png" />
-    <Content Include="res\ic_tizen_home_list_mediahub_focused.png" />
-    <Content Include="res\ic_tizen_home_list_mediahub_normal.png" />
-    <Content Include="res\ic_tizen_home_menu_addpin_138.png" />
-    <Content Include="res\ic_tizen_home_menu_addpin_182.png" />
-    <Content Include="res\ic_tizen_home_menu_apps_138.png" />
-    <Content Include="res\ic_tizen_home_menu_apps_182.png" />
-    <Content Include="res\ic_tizen_option_box_more_dimmed.png" />
-    <Content Include="res\ic_tizen_option_box_more_normal.png" />
-    <Content Include="res\ic_tizen_option_menu_list_box_check_focused.png" />
-    <Content Include="res\ic_tizen_option_menu_list_box_check_normal.png" />
-    <Content Include="res\ic_tizen_option_menu_list_box_check_selected.png" />
-    <Content Include="res\img_apps_list_dimmed_85.9.png" />
-    <Content Include="res\img_apps_list_dimmed_95.9.png" />
-    <Content Include="res\img_apps_list_dimmed_check.png" />
-    <Content Include="res\img_apps_list_stroke.png" />
-    <Content Include="res\img_home_list_dimmed_apps_60.png" />
-    <Content Include="res\img_home_list_dimmed_apps_75.png" />
-    <Content Include="res\img_home_menu_focused_bg.png" />
-    <Content Include="res\img_tizen_apps_list_dimmed.png" />
-    <Content Include="res\img_tizen_apps_list_dimmed_check.png" />
-    <Content Include="res\img_tizen_home_list_bg_focused.png" />
-    <Content Include="res\img_tizen_home_list_bg_normal.png" />
-    <Content Include="res\img_tizen_home_list_bg_white_focused.png" />
-    <Content Include="res\img_tizen_home_list_bg_white_normal.png" />
-    <Content Include="res\img_tizen_home_list_dimmed_recent.png" />
-    <Content Include="res\screenshot.png" />
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
-               Other similar extension points exist, see Microsoft.Common.targets.
-       <Target Name="BeforeBuild">
-       </Target>
-       <Target Name="AfterBuild">
-       </Target>
-       -->
-  <PropertyGroup>
-    <!-- https://github.com/dotnet/corefxlab/tree/master/samples/NetCoreSample and
-                        https://docs.microsoft.com/en-us/dotnet/articles/core/tutorials/target-dotnetcore-with-msbuild
-               -->
-    <!-- We don't use any of MSBuild's resolution logic for resolving the framework, so just set these two
-                        properties to any folder that exists to skip the GetReferenceAssemblyPaths task (not target) and
-                        to prevent it from outputting a warning (MSB3644).
-               -->
-    <_TargetFrameworkDirectories>$(MSBuildThisFileDirectory)</_TargetFrameworkDirectories>
-    <_FullFrameworkReferenceAssemblyPaths>$(MSBuildThisFileDirectory)</_FullFrameworkReferenceAssemblyPaths>
-    <AutoUnifyAssemblyReferences>true</AutoUnifyAssemblyReferences>
-  </PropertyGroup>
-  <ProjectExtensions>
-    <VisualStudio>
-      <FlavorProperties GUID="{2F98DAC9-6F16-457B-AED7-D43CAC379341}" Configuration="Debug|Any CPU">
-        <ProjectCommonFlavorCfg>
-          <excludeXamarinForms>True</excludeXamarinForms>
-        </ProjectCommonFlavorCfg>
-      </FlavorProperties>
-      <FlavorProperties GUID="{2F98DAC9-6F16-457B-AED7-D43CAC379341}" Configuration="Release|Any CPU">
-        <ProjectCommonFlavorCfg />
-      </FlavorProperties>
-    </VisualStudio>
-  </ProjectExtensions>
-</Project>
\ No newline at end of file
diff --git a/TVHome/TVHome.TizenTV/TVHome.TizenTV.project.json b/TVHome/TVHome.TizenTV/TVHome.TizenTV.project.json
deleted file mode 100755 (executable)
index af8f2d4..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-{
-  "buildOptions": {
-    "emitEntryPoint": true,
-    "debugType": "portable",
-    "platform": "AnyCPU",
-    "preserveCompilationContext": true
-  },
-  "dependencies": {
-    "ElmSharp": "1.2.2",
-    "Microsoft.NETCore.App": "1.1.2",
-    "Tizen.Applications": "1.5.8",
-    "Tizen.Content.MediaContent": "1.0.20",
-    "Tizen.Multimedia": "1.2.0",
-    "Tizen.Multimedia.MediaPlayer": "1.0.2",
-    "Tizen.Xamarin.Forms.Extension": "2.3.5-v00015",
-    "Xamarin.Forms": "2.4.0-r266-001",
-    "Xamarin.Forms.Platform.Tizen": "2.3.5-r256-001"
-  },
-  "runtimes": {
-    "win": {},
-    "linux": {}
-  },
-  "frameworks": {
-    "netcoreapp1.0": {
-      "imports": [
-        "portable-net45+wp80+win81+wpa81",
-        "netstandard1.6"
-      ]
-    }
-  }
-}
\ No newline at end of file
diff --git a/TVHome/TVHome.TizenTV/bin/Debug/TVHome.TizenTV.tpk b/TVHome/TVHome.TizenTV/bin/Debug/TVHome.TizenTV.tpk
deleted file mode 100755 (executable)
index b155db9..0000000
Binary files a/TVHome/TVHome.TizenTV/bin/Debug/TVHome.TizenTV.tpk and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/AppIcon.png b/TVHome/TVHome.TizenTV/res/AppIcon.png
deleted file mode 100755 (executable)
index 9765b1b..0000000
Binary files a/TVHome/TVHome.TizenTV/res/AppIcon.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/bg_home_gradient_dimmed.9.png b/TVHome/TVHome.TizenTV/res/bg_home_gradient_dimmed.9.png
deleted file mode 100644 (file)
index a64cd34..0000000
Binary files a/TVHome/TVHome.TizenTV/res/bg_home_gradient_dimmed.9.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/bg_home_gradient_dimmed_option.9.png b/TVHome/TVHome.TizenTV/res/bg_home_gradient_dimmed_option.9.png
deleted file mode 100644 (file)
index 570ef79..0000000
Binary files a/TVHome/TVHome.TizenTV/res/bg_home_gradient_dimmed_option.9.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/btn_home_list_move_left.png b/TVHome/TVHome.TizenTV/res/btn_home_list_move_left.png
deleted file mode 100755 (executable)
index 8342f23..0000000
Binary files a/TVHome/TVHome.TizenTV/res/btn_home_list_move_left.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/btn_home_list_move_right.png b/TVHome/TVHome.TizenTV/res/btn_home_list_move_right.png
deleted file mode 100755 (executable)
index 9b73e2a..0000000
Binary files a/TVHome/TVHome.TizenTV/res/btn_home_list_move_right.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/btn_option_menu_nocontent_bg.9.png b/TVHome/TVHome.TizenTV/res/btn_option_menu_nocontent_bg.9.png
deleted file mode 100755 (executable)
index 4bdd708..0000000
Binary files a/TVHome/TVHome.TizenTV/res/btn_option_menu_nocontent_bg.9.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/btn_tizen_dropdown_line_dimmed.9.png b/TVHome/TVHome.TizenTV/res/btn_tizen_dropdown_line_dimmed.9.png
deleted file mode 100644 (file)
index e1f6bfe..0000000
Binary files a/TVHome/TVHome.TizenTV/res/btn_tizen_dropdown_line_dimmed.9.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/btn_tizen_dropdown_line_normal.9.png b/TVHome/TVHome.TizenTV/res/btn_tizen_dropdown_line_normal.9.png
deleted file mode 100644 (file)
index db442ff..0000000
Binary files a/TVHome/TVHome.TizenTV/res/btn_tizen_dropdown_line_normal.9.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/btn_tizen_option_menu_bg_focused.9.png b/TVHome/TVHome.TizenTV/res/btn_tizen_option_menu_bg_focused.9.png
deleted file mode 100755 (executable)
index e8cc6e5..0000000
Binary files a/TVHome/TVHome.TizenTV/res/btn_tizen_option_menu_bg_focused.9.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/btn_tizen_option_menu_bg_normal.9.png b/TVHome/TVHome.TizenTV/res/btn_tizen_option_menu_bg_normal.9.png
deleted file mode 100755 (executable)
index 4f98927..0000000
Binary files a/TVHome/TVHome.TizenTV/res/btn_tizen_option_menu_bg_normal.9.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/btn_tizen_option_menu_bg_selected.9.png b/TVHome/TVHome.TizenTV/res/btn_tizen_option_menu_bg_selected.9.png
deleted file mode 100755 (executable)
index b4230af..0000000
Binary files a/TVHome/TVHome.TizenTV/res/btn_tizen_option_menu_bg_selected.9.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/btn_tizen_option_menu_list_box_bg.9.png b/TVHome/TVHome.TizenTV/res/btn_tizen_option_menu_list_box_bg.9.png
deleted file mode 100644 (file)
index 021f8b4..0000000
Binary files a/TVHome/TVHome.TizenTV/res/btn_tizen_option_menu_list_box_bg.9.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/btn_tizen_option_menu_nocontent_bg.9.png b/TVHome/TVHome.TizenTV/res/btn_tizen_option_menu_nocontent_bg.9.png
deleted file mode 100755 (executable)
index a71e7f1..0000000
Binary files a/TVHome/TVHome.TizenTV/res/btn_tizen_option_menu_nocontent_bg.9.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/home_icon_bg_01.png b/TVHome/TVHome.TizenTV/res/home_icon_bg_01.png
deleted file mode 100644 (file)
index 72dc248..0000000
Binary files a/TVHome/TVHome.TizenTV/res/home_icon_bg_01.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/home_icon_bg_02.png b/TVHome/TVHome.TizenTV/res/home_icon_bg_02.png
deleted file mode 100644 (file)
index 72dc248..0000000
Binary files a/TVHome/TVHome.TizenTV/res/home_icon_bg_02.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/home_icon_bg_03.png b/TVHome/TVHome.TizenTV/res/home_icon_bg_03.png
deleted file mode 100644 (file)
index f75e5ce..0000000
Binary files a/TVHome/TVHome.TizenTV/res/home_icon_bg_03.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/home_icon_bg_04.png b/TVHome/TVHome.TizenTV/res/home_icon_bg_04.png
deleted file mode 100644 (file)
index dfb3498..0000000
Binary files a/TVHome/TVHome.TizenTV/res/home_icon_bg_04.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/home_icon_bg_05.png b/TVHome/TVHome.TizenTV/res/home_icon_bg_05.png
deleted file mode 100644 (file)
index fc5f703..0000000
Binary files a/TVHome/TVHome.TizenTV/res/home_icon_bg_05.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/home_icon_bg_06.png b/TVHome/TVHome.TizenTV/res/home_icon_bg_06.png
deleted file mode 100644 (file)
index 442850d..0000000
Binary files a/TVHome/TVHome.TizenTV/res/home_icon_bg_06.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/home_icon_bg_07.png b/TVHome/TVHome.TizenTV/res/home_icon_bg_07.png
deleted file mode 100644 (file)
index a5243d0..0000000
Binary files a/TVHome/TVHome.TizenTV/res/home_icon_bg_07.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/home_icon_bg_08.png b/TVHome/TVHome.TizenTV/res/home_icon_bg_08.png
deleted file mode 100644 (file)
index ec8db06..0000000
Binary files a/TVHome/TVHome.TizenTV/res/home_icon_bg_08.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_apps_additional_back.png b/TVHome/TVHome.TizenTV/res/ic_apps_additional_back.png
deleted file mode 100755 (executable)
index 861fa32..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_apps_additional_back.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_apps_launcher_mediahub_164.png b/TVHome/TVHome.TizenTV/res/ic_apps_launcher_mediahub_164.png
deleted file mode 100644 (file)
index 041c15f..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_apps_launcher_mediahub_164.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_apps_launcher_mediahub_196.png b/TVHome/TVHome.TizenTV/res/ic_apps_launcher_mediahub_196.png
deleted file mode 100644 (file)
index f28db0f..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_apps_launcher_mediahub_196.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_apps_launcher_pinmark.png b/TVHome/TVHome.TizenTV/res/ic_apps_launcher_pinmark.png
deleted file mode 100755 (executable)
index aad639e..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_apps_launcher_pinmark.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_apps_pinmark.png b/TVHome/TVHome.TizenTV/res/ic_apps_pinmark.png
deleted file mode 100644 (file)
index d66d3db..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_apps_pinmark.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_home_launcher_mediahub_136.png b/TVHome/TVHome.TizenTV/res/ic_home_launcher_mediahub_136.png
deleted file mode 100644 (file)
index 2025049..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_home_launcher_mediahub_136.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_home_launcher_mediahub_168.png b/TVHome/TVHome.TizenTV/res/ic_home_launcher_mediahub_168.png
deleted file mode 100644 (file)
index 18ce5f0..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_home_launcher_mediahub_168.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_home_launcher_mediahub_42.png b/TVHome/TVHome.TizenTV/res/ic_home_launcher_mediahub_42.png
deleted file mode 100644 (file)
index 52d9da5..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_home_launcher_mediahub_42.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_home_menu_addpin_138.png b/TVHome/TVHome.TizenTV/res/ic_home_menu_addpin_138.png
deleted file mode 100755 (executable)
index 9eeba3e..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_home_menu_addpin_138.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_home_menu_addpin_182.png b/TVHome/TVHome.TizenTV/res/ic_home_menu_addpin_182.png
deleted file mode 100755 (executable)
index 1ffd4b6..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_home_menu_addpin_182.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_home_menu_apps_138.png b/TVHome/TVHome.TizenTV/res/ic_home_menu_apps_138.png
deleted file mode 100755 (executable)
index a280cf3..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_home_menu_apps_138.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_home_menu_apps_182.png b/TVHome/TVHome.TizenTV/res/ic_home_menu_apps_182.png
deleted file mode 100755 (executable)
index 66c0cba..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_home_menu_apps_182.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_home_menu_apps_focused.png b/TVHome/TVHome.TizenTV/res/ic_home_menu_apps_focused.png
deleted file mode 100644 (file)
index 62e87d0..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_home_menu_apps_focused.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_home_menu_apps_normal.png b/TVHome/TVHome.TizenTV/res/ic_home_menu_apps_normal.png
deleted file mode 100644 (file)
index f0070b1..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_home_menu_apps_normal.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_home_menu_apps_selected.png b/TVHome/TVHome.TizenTV/res/ic_home_menu_apps_selected.png
deleted file mode 100644 (file)
index d7aa3f3..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_home_menu_apps_selected.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_home_menu_apps_unselected.png b/TVHome/TVHome.TizenTV/res/ic_home_menu_apps_unselected.png
deleted file mode 100644 (file)
index 4370b01..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_home_menu_apps_unselected.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_home_menu_recent_focused.png b/TVHome/TVHome.TizenTV/res/ic_home_menu_recent_focused.png
deleted file mode 100644 (file)
index d5a3229..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_home_menu_recent_focused.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_home_menu_recent_normal.png b/TVHome/TVHome.TizenTV/res/ic_home_menu_recent_normal.png
deleted file mode 100644 (file)
index 37fc8c4..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_home_menu_recent_normal.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_home_menu_recent_selected.png b/TVHome/TVHome.TizenTV/res/ic_home_menu_recent_selected.png
deleted file mode 100644 (file)
index 804ee13..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_home_menu_recent_selected.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_home_menu_recent_unselected.png b/TVHome/TVHome.TizenTV/res/ic_home_menu_recent_unselected.png
deleted file mode 100644 (file)
index afe3e23..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_home_menu_recent_unselected.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_home_menu_settings_focused.png b/TVHome/TVHome.TizenTV/res/ic_home_menu_settings_focused.png
deleted file mode 100644 (file)
index f0dd0d8..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_home_menu_settings_focused.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_home_menu_settings_normal.png b/TVHome/TVHome.TizenTV/res/ic_home_menu_settings_normal.png
deleted file mode 100644 (file)
index 9c44527..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_home_menu_settings_normal.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_home_menu_settings_selected.png b/TVHome/TVHome.TizenTV/res/ic_home_menu_settings_selected.png
deleted file mode 100644 (file)
index b87fad3..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_home_menu_settings_selected.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_home_menu_settings_unselected.png b/TVHome/TVHome.TizenTV/res/ic_home_menu_settings_unselected.png
deleted file mode 100644 (file)
index 865186e..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_home_menu_settings_unselected.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_home_settings_all_138.png b/TVHome/TVHome.TizenTV/res/ic_home_settings_all_138.png
deleted file mode 100644 (file)
index ccc12ce..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_home_settings_all_138.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_home_settings_all_182.png b/TVHome/TVHome.TizenTV/res/ic_home_settings_all_182.png
deleted file mode 100644 (file)
index c9cbbcb..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_home_settings_all_182.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_home_settings_brightness_138.png b/TVHome/TVHome.TizenTV/res/ic_home_settings_brightness_138.png
deleted file mode 100644 (file)
index 2d7b9b9..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_home_settings_brightness_138.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_home_settings_brightness_182.png b/TVHome/TVHome.TizenTV/res/ic_home_settings_brightness_182.png
deleted file mode 100644 (file)
index c320395..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_home_settings_brightness_182.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_home_settings_color_138.png b/TVHome/TVHome.TizenTV/res/ic_home_settings_color_138.png
deleted file mode 100644 (file)
index 89040cc..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_home_settings_color_138.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_home_settings_color_182.png b/TVHome/TVHome.TizenTV/res/ic_home_settings_color_182.png
deleted file mode 100644 (file)
index 8a19652..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_home_settings_color_182.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_home_settings_contrast_138.png b/TVHome/TVHome.TizenTV/res/ic_home_settings_contrast_138.png
deleted file mode 100644 (file)
index c88b18a..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_home_settings_contrast_138.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_home_settings_contrast_182.png b/TVHome/TVHome.TizenTV/res/ic_home_settings_contrast_182.png
deleted file mode 100644 (file)
index e264e88..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_home_settings_contrast_182.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_home_settings_tint_138.png b/TVHome/TVHome.TizenTV/res/ic_home_settings_tint_138.png
deleted file mode 100644 (file)
index 7f9a87c..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_home_settings_tint_138.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_home_settings_tint_182.png b/TVHome/TVHome.TizenTV/res/ic_home_settings_tint_182.png
deleted file mode 100644 (file)
index c3b9169..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_home_settings_tint_182.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_launcher_mediahub_138.png b/TVHome/TVHome.TizenTV/res/ic_launcher_mediahub_138.png
deleted file mode 100755 (executable)
index f28db0f..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_launcher_mediahub_138.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_launcher_mediahub_182.png b/TVHome/TVHome.TizenTV/res/ic_launcher_mediahub_182.png
deleted file mode 100755 (executable)
index f28db0f..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_launcher_mediahub_182.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_list_thumbnail_gradient_focused.9.png b/TVHome/TVHome.TizenTV/res/ic_list_thumbnail_gradient_focused.9.png
deleted file mode 100755 (executable)
index e6e3cee..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_list_thumbnail_gradient_focused.9.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_list_thumbnail_gradient_normal.9.png b/TVHome/TVHome.TizenTV/res/ic_list_thumbnail_gradient_normal.9.png
deleted file mode 100755 (executable)
index 4be6a7c..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_list_thumbnail_gradient_normal.9.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_list_thumbnail_shadow_focused.9.png b/TVHome/TVHome.TizenTV/res/ic_list_thumbnail_shadow_focused.9.png
deleted file mode 100644 (file)
index f066540..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_list_thumbnail_shadow_focused.9.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_tizen_home_list_addpin_focused.png b/TVHome/TVHome.TizenTV/res/ic_tizen_home_list_addpin_focused.png
deleted file mode 100755 (executable)
index a0830ef..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_tizen_home_list_addpin_focused.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_tizen_home_list_addpin_normal.png b/TVHome/TVHome.TizenTV/res/ic_tizen_home_list_addpin_normal.png
deleted file mode 100755 (executable)
index bbd4750..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_tizen_home_list_addpin_normal.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_tizen_home_list_allapps_focused.png b/TVHome/TVHome.TizenTV/res/ic_tizen_home_list_allapps_focused.png
deleted file mode 100755 (executable)
index ff932e4..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_tizen_home_list_allapps_focused.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_tizen_home_list_allapps_normal.png b/TVHome/TVHome.TizenTV/res/ic_tizen_home_list_allapps_normal.png
deleted file mode 100755 (executable)
index 12517bc..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_tizen_home_list_allapps_normal.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_tizen_home_list_mediahub_focused.png b/TVHome/TVHome.TizenTV/res/ic_tizen_home_list_mediahub_focused.png
deleted file mode 100755 (executable)
index f28db0f..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_tizen_home_list_mediahub_focused.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_tizen_home_list_mediahub_normal.png b/TVHome/TVHome.TizenTV/res/ic_tizen_home_list_mediahub_normal.png
deleted file mode 100755 (executable)
index f28db0f..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_tizen_home_list_mediahub_normal.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_tizen_home_menu_addpin_138.png b/TVHome/TVHome.TizenTV/res/ic_tizen_home_menu_addpin_138.png
deleted file mode 100644 (file)
index 9eeba3e..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_tizen_home_menu_addpin_138.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_tizen_home_menu_addpin_182.png b/TVHome/TVHome.TizenTV/res/ic_tizen_home_menu_addpin_182.png
deleted file mode 100644 (file)
index 1ffd4b6..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_tizen_home_menu_addpin_182.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_tizen_home_menu_apps_138.png b/TVHome/TVHome.TizenTV/res/ic_tizen_home_menu_apps_138.png
deleted file mode 100644 (file)
index a280cf3..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_tizen_home_menu_apps_138.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_tizen_home_menu_apps_182.png b/TVHome/TVHome.TizenTV/res/ic_tizen_home_menu_apps_182.png
deleted file mode 100644 (file)
index 66c0cba..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_tizen_home_menu_apps_182.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_tizen_option_box_more_dimmed.png b/TVHome/TVHome.TizenTV/res/ic_tizen_option_box_more_dimmed.png
deleted file mode 100644 (file)
index e5dc084..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_tizen_option_box_more_dimmed.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_tizen_option_box_more_normal.png b/TVHome/TVHome.TizenTV/res/ic_tizen_option_box_more_normal.png
deleted file mode 100644 (file)
index a67a971..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_tizen_option_box_more_normal.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_tizen_option_menu_list_box_check_focused.png b/TVHome/TVHome.TizenTV/res/ic_tizen_option_menu_list_box_check_focused.png
deleted file mode 100644 (file)
index ff166af..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_tizen_option_menu_list_box_check_focused.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_tizen_option_menu_list_box_check_normal.png b/TVHome/TVHome.TizenTV/res/ic_tizen_option_menu_list_box_check_normal.png
deleted file mode 100644 (file)
index 7bff7bd..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_tizen_option_menu_list_box_check_normal.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/ic_tizen_option_menu_list_box_check_selected.png b/TVHome/TVHome.TizenTV/res/ic_tizen_option_menu_list_box_check_selected.png
deleted file mode 100644 (file)
index c06fd94..0000000
Binary files a/TVHome/TVHome.TizenTV/res/ic_tizen_option_menu_list_box_check_selected.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/img_apps_list_dimmed_75.png b/TVHome/TVHome.TizenTV/res/img_apps_list_dimmed_75.png
deleted file mode 100644 (file)
index 9528728..0000000
Binary files a/TVHome/TVHome.TizenTV/res/img_apps_list_dimmed_75.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/img_apps_list_dimmed_85.9.png b/TVHome/TVHome.TizenTV/res/img_apps_list_dimmed_85.9.png
deleted file mode 100755 (executable)
index 872d761..0000000
Binary files a/TVHome/TVHome.TizenTV/res/img_apps_list_dimmed_85.9.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/img_apps_list_dimmed_95.9.png b/TVHome/TVHome.TizenTV/res/img_apps_list_dimmed_95.9.png
deleted file mode 100755 (executable)
index 2d39df9..0000000
Binary files a/TVHome/TVHome.TizenTV/res/img_apps_list_dimmed_95.9.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/img_apps_list_dimmed_check.png b/TVHome/TVHome.TizenTV/res/img_apps_list_dimmed_check.png
deleted file mode 100755 (executable)
index 9528728..0000000
Binary files a/TVHome/TVHome.TizenTV/res/img_apps_list_dimmed_check.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/img_apps_list_stroke.png b/TVHome/TVHome.TizenTV/res/img_apps_list_stroke.png
deleted file mode 100755 (executable)
index 8730c81..0000000
Binary files a/TVHome/TVHome.TizenTV/res/img_apps_list_stroke.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/img_apps_no_contents.png b/TVHome/TVHome.TizenTV/res/img_apps_no_contents.png
deleted file mode 100644 (file)
index 7f4b618..0000000
Binary files a/TVHome/TVHome.TizenTV/res/img_apps_no_contents.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/img_home_list_dimmed_apps_60.png b/TVHome/TVHome.TizenTV/res/img_home_list_dimmed_apps_60.png
deleted file mode 100755 (executable)
index 4f5ac7c..0000000
Binary files a/TVHome/TVHome.TizenTV/res/img_home_list_dimmed_apps_60.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/img_home_list_dimmed_apps_75.png b/TVHome/TVHome.TizenTV/res/img_home_list_dimmed_apps_75.png
deleted file mode 100644 (file)
index 61748ba..0000000
Binary files a/TVHome/TVHome.TizenTV/res/img_home_list_dimmed_apps_75.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/img_home_list_dimmed_recent_60.9.png b/TVHome/TVHome.TizenTV/res/img_home_list_dimmed_recent_60.9.png
deleted file mode 100644 (file)
index cf5fd53..0000000
Binary files a/TVHome/TVHome.TizenTV/res/img_home_list_dimmed_recent_60.9.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/img_home_menu_focused_bg.png b/TVHome/TVHome.TizenTV/res/img_home_menu_focused_bg.png
deleted file mode 100644 (file)
index 3724af4..0000000
Binary files a/TVHome/TVHome.TizenTV/res/img_home_menu_focused_bg.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/img_home_recent_dimmed_option_75.9.png b/TVHome/TVHome.TizenTV/res/img_home_recent_dimmed_option_75.9.png
deleted file mode 100644 (file)
index 74e12f4..0000000
Binary files a/TVHome/TVHome.TizenTV/res/img_home_recent_dimmed_option_75.9.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/img_tizen_apps_list_dimmed.png b/TVHome/TVHome.TizenTV/res/img_tizen_apps_list_dimmed.png
deleted file mode 100644 (file)
index e10bcc8..0000000
Binary files a/TVHome/TVHome.TizenTV/res/img_tizen_apps_list_dimmed.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/img_tizen_apps_list_dimmed_check.png b/TVHome/TVHome.TizenTV/res/img_tizen_apps_list_dimmed_check.png
deleted file mode 100644 (file)
index 9528728..0000000
Binary files a/TVHome/TVHome.TizenTV/res/img_tizen_apps_list_dimmed_check.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/img_tizen_home_list_bg_focused.png b/TVHome/TVHome.TizenTV/res/img_tizen_home_list_bg_focused.png
deleted file mode 100755 (executable)
index 8259980..0000000
Binary files a/TVHome/TVHome.TizenTV/res/img_tizen_home_list_bg_focused.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/img_tizen_home_list_bg_normal.png b/TVHome/TVHome.TizenTV/res/img_tizen_home_list_bg_normal.png
deleted file mode 100755 (executable)
index 4536446..0000000
Binary files a/TVHome/TVHome.TizenTV/res/img_tizen_home_list_bg_normal.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/img_tizen_home_list_bg_white_focused.png b/TVHome/TVHome.TizenTV/res/img_tizen_home_list_bg_white_focused.png
deleted file mode 100755 (executable)
index 0c0753a..0000000
Binary files a/TVHome/TVHome.TizenTV/res/img_tizen_home_list_bg_white_focused.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/img_tizen_home_list_bg_white_normal.png b/TVHome/TVHome.TizenTV/res/img_tizen_home_list_bg_white_normal.png
deleted file mode 100755 (executable)
index 8c7cd02..0000000
Binary files a/TVHome/TVHome.TizenTV/res/img_tizen_home_list_bg_white_normal.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/img_tizen_home_list_dimmed_recent.png b/TVHome/TVHome.TizenTV/res/img_tizen_home_list_dimmed_recent.png
deleted file mode 100644 (file)
index 17643cb..0000000
Binary files a/TVHome/TVHome.TizenTV/res/img_tizen_home_list_dimmed_recent.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/res/screenshot.png b/TVHome/TVHome.TizenTV/res/screenshot.png
deleted file mode 100755 (executable)
index 40e57db..0000000
Binary files a/TVHome/TVHome.TizenTV/res/screenshot.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/shared/org.tizen.home.service b/TVHome/TVHome.TizenTV/shared/org.tizen.home.service
deleted file mode 100644 (file)
index 5442151..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-[Unit]
-Description=Home-tv
-Requires=launchpad-process-pool.service
-After=launchpad-process-pool.service
-
-[Service]
-ExecStart=/bin/sh -c -l '/usr/bin/aul_test launch org.tizen.xahome'
diff --git a/TVHome/TVHome.TizenTV/shared/replace_default.home.sh b/TVHome/TVHome.TizenTV/shared/replace_default.home.sh
deleted file mode 100644 (file)
index 1996953..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-
-mount -o rw,remount /
-cp org.tizen.home.service /usr/lib/systemd/user/.
diff --git a/TVHome/TVHome.TizenTV/shared/res/xahome.png b/TVHome/TVHome.TizenTV/shared/res/xahome.png
deleted file mode 100644 (file)
index 9765b1b..0000000
Binary files a/TVHome/TVHome.TizenTV/shared/res/xahome.png and /dev/null differ
diff --git a/TVHome/TVHome.TizenTV/tizen-manifest.xml b/TVHome/TVHome.TizenTV/tizen-manifest.xml
deleted file mode 100755 (executable)
index 3df57de..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<manifest package="org.tizen.xahome" version="1.0.0" api-version="3.0" xmlns="http://tizen.org/ns/packages">
-  <profile name="tv" />
-  <ui-application appid="org.tizen.xahome" exec="xahome.exe" multiple="false" nodisplay="true" taskmanage="false" splash-screen-display="false" type="dotnet" launch_mode="single">
-    <icon>xahome.png</icon>
-    <label>Home</label>
-  </ui-application>
-  <ui-application appid="org.tizen.xaapps" exec="xaapps.exe" multiple="false" nodisplay="true" taskmanage="false" splash-screen-display="false" type="dotnet" launch_mode="single">
-    <icon>xaapps.png</icon>
-    <label>Apps</label>
-  </ui-application>
-  <shortcut-list />
-  <privileges>
-    <privilege>http://tizen.org/privilege/bluetooth</privilege>
-    <privilege>http://tizen.org/privilege/network.get</privilege>
-    <privilege>http://tizen.org/privilege/network.set</privilege>
-    <privilege>http://tizen.org/privilege/packagemanager.info</privilege>
-    <privilege>http://tizen.org/privilege/packagemanager.admin</privilege>
-    <privilege>http://tizen.org/privilege/appmanager.launch</privilege>
-    <privilege>http://tizen.org/privilege/externalstorage</privilege>
-    <privilege>http://tizen.org/privilege/keygrab</privilege>
-  </privileges>
-</manifest>
-
index 0d731aac67c1265c8f991d73556d20a068b26af2..cef0a9a5d2aee6e3917c1dec2e5f8647093944ce 100755 (executable)
@@ -17,7 +17,6 @@
 using LibTVRefCommonPortable.Utils;
 using System;
 using Xamarin.Forms;
-using Xamarin.Forms.PlatformConfiguration.TizenSpecific;
 
 namespace TVHome.Controls
 {
@@ -50,7 +49,7 @@ namespace TVHome.Controls
             WidthRequest = SizeUtils.GetWidthSize(236);
             HeightRequest = SizeUtils.GetHeightSize(260);
             ButtonTitle.FontSize = SizeUtils.GetFontSize(26);
-            ButtonTitle.On<Xamarin.Forms.PlatformConfiguration.Tizen>().SetFontWeight(FontWeight.Medium);
+            //ButtonTitle.On<Xamarin.Forms.PlatformConfiguration.Tizen>().SetFontWeight(FontWeight.Medium);
 
             PropertyChanged += MainPanelButton_PropertyChanged;
         }
index f7c08048ef0150867738d5504c7b1b5e8683c546..013c6f6f7a9a440e2fce9c705328de3a1cb2688c 100755 (executable)
  * limitations under the License.
  */
 
-using System;
 using LibTVRefCommonPortable.Utils;
+using System;
 using Xamarin.Forms;
-using Xamarin.Forms.PlatformConfiguration.TizenSpecific;
 
 namespace TVHome.Controls
 {
@@ -41,7 +40,7 @@ namespace TVHome.Controls
             WidthRequest = SizeUtils.GetWidthSize(182);
             HeightRequest = SizeUtils.GetHeightSize(230);
             ButtonTitle.FontSize = SizeUtils.GetFontSize(26);
-            ButtonTitle.On<Xamarin.Forms.PlatformConfiguration.Tizen>().SetFontWeight(FontWeight.Normal);
+            //ButtonTitle.On<Xamarin.Forms.PlatformConfiguration.Tizen>().SetFontWeight(FontWeight.Normal);
         }
 
         /// <summary>
@@ -66,7 +65,7 @@ namespace TVHome.Controls
             OnFocusedCommand?.Execute("");
 
 #pragma warning disable CS4014
-            ButtonTitle.On<Xamarin.Forms.PlatformConfiguration.Tizen>().SetFontWeight(FontWeight.Medium);
+            //ButtonTitle.On<Xamarin.Forms.PlatformConfiguration.Tizen>().SetFontWeight(FontWeight.Medium);
             ButtonTitle.FadeTo(0.99, 300);
             ButtonTitle.TranslateTo(0, selectTransitionHeight, 300);
 #pragma warning restore CS4014
@@ -82,7 +81,7 @@ namespace TVHome.Controls
         public override async void OnUnfocused(object sender, FocusEventArgs e)
         {
 #pragma warning disable CS4014
-            ButtonTitle.On<Xamarin.Forms.PlatformConfiguration.Tizen>().SetFontWeight(FontWeight.Normal);
+            //ButtonTitle.On<Xamarin.Forms.PlatformConfiguration.Tizen>().SetFontWeight(FontWeight.Normal);
             ButtonTitle.FadeTo(0.5, 300);
             ButtonTitle.TranslateTo(0, 0, 300);
 #pragma warning restore CS4014
index a94d57fc4a1664355453eb0ba632784f53e5b9ef..6c8bd8a22a794ce1ec4e1517c84df59d9ff54b6c 100755 (executable)
@@ -18,7 +18,6 @@ using System;
 using LibTVRefCommonPortable.Utils;
 using Xamarin.Forms;
 using Tizen.Xamarin.Forms.Extension;
-using Xamarin.Forms.PlatformConfiguration.TizenSpecific;
 
 namespace TVHome.Controls
 {
@@ -47,7 +46,7 @@ namespace TVHome.Controls
             WidthRequest = SizeUtils.GetWidthSize(182);
             HeightRequest = SizeUtils.GetHeightSize(230);
             ButtonTitle.FontSize = SizeUtils.GetFontSize(26);
-            ButtonTitle.On<Xamarin.Forms.PlatformConfiguration.Tizen>().SetFontWeight(FontWeight.Normal);
+            //ButtonTitle.On<Xamarin.Forms.PlatformConfiguration.Tizen>().SetFontWeight(FontWeight.Normal);
 
             // TODO : make this subscribe when it is in the move mode.
             MessagingCenter.Subscribe<App, string>(this, "NavigationKeyPressed", (sender, e) =>
@@ -73,7 +72,6 @@ namespace TVHome.Controls
             popup = new ContextPopup
             {
                 IsAutoHidingEnabled = true,
-                Orientation = ContextPopupOrientation.Vertical,
                 DirectionPriorities = new ContextPopupDirectionPriorities(ContextPopupDirection.Down, ContextPopupDirection.Up, ContextPopupDirection.Right, ContextPopupDirection.Left)
             };
 
@@ -222,7 +220,7 @@ namespace TVHome.Controls
             OnFocusedCommand?.Execute("");
 
 #pragma warning disable CS4014
-            ButtonTitle.On<Xamarin.Forms.PlatformConfiguration.Tizen>().SetFontWeight(FontWeight.Medium);
+            //ButtonTitle.On<Xamarin.Forms.PlatformConfiguration.Tizen>().SetFontWeight(FontWeight.Medium);
             ButtonTitle.FadeTo(0.8, 300);
             ButtonTitle.TranslateTo(0, selectTransitionHeight, 300);
 #pragma warning restore CS4014
@@ -248,7 +246,7 @@ namespace TVHome.Controls
             PanelButtonState = PanelButtonState.Show;
 
 #pragma warning disable CS4014
-            ButtonTitle.On<Xamarin.Forms.PlatformConfiguration.Tizen>().SetFontWeight(FontWeight.Normal);
+            //ButtonTitle.On<Xamarin.Forms.PlatformConfiguration.Tizen>().SetFontWeight(FontWeight.Normal);
             ButtonTitle.FadeTo(0.6, 300);
             ButtonTitle.TranslateTo(0, 0, 300);
 #pragma warning restore CS4014
index f5c6efffe7db4c09774cf260e0f0b93f59814661..1d25cd356dc7d6566b8461add3a43fd927ac2338 100755 (executable)
@@ -17,7 +17,6 @@
 using LibTVRefCommonPortable.Utils;
 using System;
 using Xamarin.Forms;
-using Xamarin.Forms.PlatformConfiguration.TizenSpecific;
 
 namespace TVHome.Controls
 {
@@ -41,7 +40,7 @@ namespace TVHome.Controls
             WidthRequest = SizeUtils.GetWidthSize(182);
             HeightRequest = SizeUtils.GetHeightSize(230);
             ButtonTitle.FontSize = SizeUtils.GetFontSize(26);
-            ButtonTitle.On<Xamarin.Forms.PlatformConfiguration.Tizen>().SetFontWeight(FontWeight.Normal);
+            //ButtonTitle.On<Xamarin.Forms.PlatformConfiguration.Tizen>().SetFontWeight(FontWeight.Normal);
         }
 
         /// <summary>
@@ -66,7 +65,7 @@ namespace TVHome.Controls
             OnFocusedCommand?.Execute("");
 
 #pragma warning disable CS4014
-            ButtonTitle.On<Xamarin.Forms.PlatformConfiguration.Tizen>().SetFontWeight(FontWeight.Medium);
+            //ButtonTitle.On<Xamarin.Forms.PlatformConfiguration.Tizen>().SetFontWeight(FontWeight.Medium);
             ButtonTitle.FadeTo(0.99, 300);
             ButtonTitle.TranslateTo(0, selectTransitionHeight, 300);
 #pragma warning restore CS4014
@@ -82,7 +81,7 @@ namespace TVHome.Controls
         public override async void OnUnfocused(object sender, FocusEventArgs e)
         {
 #pragma warning disable CS4014
-            ButtonTitle.On<Xamarin.Forms.PlatformConfiguration.Tizen>().SetFontWeight(FontWeight.Normal);
+            //ButtonTitle.On<Xamarin.Forms.PlatformConfiguration.Tizen>().SetFontWeight(FontWeight.Normal);
             ButtonTitle.FadeTo(0.5, 300);
             ButtonTitle.TranslateTo(0, 0, 300);
 #pragma warning restore CS4014
index e3c76e1278eb3c337d122e6fea9b1388a9a68313..88ef787c0e6abb7de1760f0d052adc998df66321 100755 (executable)
@@ -17,7 +17,6 @@ using LibTVRefCommonPortable.Utils;
 using System;
 using Tizen.Xamarin.Forms.Extension;
 using Xamarin.Forms;
-using Xamarin.Forms.PlatformConfiguration.TizenSpecific;
 
 namespace TVHome.Controls
 {
@@ -36,7 +35,7 @@ namespace TVHome.Controls
             WidthRequest = SizeUtils.GetWidthSize(320);
             HeightRequest = SizeUtils.GetHeightSize(180);
             ThumbnailTitle.FontSize = SizeUtils.GetFontSize(26);
-            ThumbnailTitle.On<Xamarin.Forms.PlatformConfiguration.Tizen>().SetFontWeight(FontWeight.Normal);
+            //ThumbnailTitle.On<Xamarin.Forms.PlatformConfiguration.Tizen>().SetFontWeight(FontWeight.Normal);
 
         }
 
@@ -67,7 +66,7 @@ namespace TVHome.Controls
 
 #pragma warning disable CS4014
             ThumbnailGradient.Source = "ic_list_thumbnail_gradient_focused.9.png";
-            ThumbnailTitle.On<Xamarin.Forms.PlatformConfiguration.Tizen>().SetFontWeight(FontWeight.Medium);
+            //ThumbnailTitle.On<Xamarin.Forms.PlatformConfiguration.Tizen>().SetFontWeight(FontWeight.Medium);
             //ThumbnailTitle.FadeTo(0.8, 300);
 #pragma warning restore CS4014
             await this.ScaleTo(1.2, 300);
@@ -90,7 +89,7 @@ namespace TVHome.Controls
 #pragma warning disable CS4014
             //ThumbnailTitle.FadeTo(0.3, 300);
             ThumbnailGradient.Source = "ic_list_thumbnail_gradient_normal.9.png";
-            ThumbnailTitle.On<Xamarin.Forms.PlatformConfiguration.Tizen>().SetFontWeight(FontWeight.Normal);
+            //ThumbnailTitle.On<Xamarin.Forms.PlatformConfiguration.Tizen>().SetFontWeight(FontWeight.Normal);
 #pragma warning restore CS4014
             await this.ScaleTo(1.0, 300);
         }
@@ -122,7 +121,6 @@ namespace TVHome.Controls
             popup = new ContextPopup
             {
                 IsAutoHidingEnabled = true,
-                Orientation = ContextPopupOrientation.Vertical,
                 DirectionPriorities = new ContextPopupDirectionPriorities(ContextPopupDirection.Down, ContextPopupDirection.Up, ContextPopupDirection.Right, ContextPopupDirection.Left)
             };
 
diff --git a/TVHome/TVHome/Properties/AssemblyInfo.cs b/TVHome/TVHome/Properties/AssemblyInfo.cs
deleted file mode 100644 (file)
index af6ea6e..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-using System.Resources;\r
-using System.Reflection;\r
-using System.Runtime.CompilerServices;\r
-using System.Runtime.InteropServices;\r
-\r
-// General Information about an assembly is controlled through the following\r
-// set of attributes. Change these attribute values to modify the information\r
-// associated with an assembly.\r
-[assembly: AssemblyTitle("TVHome")]\r
-[assembly: AssemblyDescription("")]\r
-[assembly: AssemblyConfiguration("")]\r
-[assembly: AssemblyCompany("")]\r
-[assembly: AssemblyProduct("TVHome")]\r
-[assembly: AssemblyCopyright("Copyright ©  2017")]\r
-[assembly: AssemblyTrademark("")]\r
-[assembly: AssemblyCulture("")]\r
-\r
-// Version information for an assembly consists of the following four values:\r
-//\r
-//      Major Version\r
-//      Minor Version\r
-//      Build Number\r
-//      Revision\r
-//\r
-// You can specify all the values or you can default the Build and Revision Numbers\r
-// by using the '*' as shown below:\r
-// [assembly: AssemblyVersion("1.0.*")]\r
-[assembly: AssemblyVersion("1.0.0.0")]\r
-[assembly: AssemblyFileVersion("1.0.0.0")]\r
index a6d6dc85776738a023d1c1e5251cb77cfbd5954b..0a45e6ad289f06e0084cec9b52826c8e7923d806 100755 (executable)
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project Sdk="Microsoft.NET.Sdk">
+
   <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ProjectGuid>{54DD6673-7E64-48E6-A008-4D455E19E017}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <RootNamespace>TVHome</RootNamespace>
-    <AssemblyName>TVHome</AssemblyName>
-    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
-    <TargetFrameworkProfile>Profile259</TargetFrameworkProfile>
-    <MinimumVisualStudioVersion>10.0</MinimumVisualStudioVersion>
-    <NuGetPackageImportStamp>
-    </NuGetPackageImportStamp>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>portable</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <ConsolePause>false</ConsolePause>
+    <TargetFramework>netstandard2.0</TargetFramework>
   </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>portable</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <ConsolePause>false</ConsolePause>
-  </PropertyGroup>
-  <ItemGroup>
-    <Compile Include="Controls\MainPanelButton.xaml.cs">
-      <DependentUpon>MainPanelButton.xaml</DependentUpon>
-    </Compile>
-    <Compile Include="Controls\NinePatchImage.xaml.cs">
-      <DependentUpon>NinePatchImage.xaml</DependentUpon>
-    </Compile>
-    <Compile Include="Controls\PanelButton.cs" />
-    <Compile Include="Controls\SubPanelAllAppsButton.xaml.cs">
-      <DependentUpon>SubPanelAllAppsButton.xaml</DependentUpon>
-    </Compile>
-    <Compile Include="Controls\SubPanelButton.xaml.cs">
-      <DependentUpon>SubPanelButton.xaml</DependentUpon>
-    </Compile>
-    <Compile Include="Controls\SubPanelSettingButton.xaml.cs">
-      <DependentUpon>SubPanelSettingButton.xaml</DependentUpon>
-    </Compile>
-    <Compile Include="Controls\SubPanelThumbnailButton.xaml.cs">
-      <DependentUpon>SubPanelThumbnailButton.xaml</DependentUpon>
-    </Compile>
-    <Compile Include="TVHome.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="ViewModels\MainPanelViewModel.cs" />
-    <Compile Include="ViewModels\SettingsViewModel.cs" />
-    <Compile Include="ViewModels\AppListViewModel.cs" />
-    <Compile Include="ViewModels\RecentListViewModel.cs" />
-    <Compile Include="ViewModels\MainPageViewModel.cs" />
-    <Compile Include="Views\MainPage.xaml.cs">
-      <DependentUpon>MainPage.xaml</DependentUpon>
-    </Compile>
-    <Compile Include="Views\MainPanel.xaml.cs">
-      <DependentUpon>MainPanel.xaml</DependentUpon>
-    </Compile>
-    <Compile Include="Views\Panel.cs" />
-    <Compile Include="Views\SubPanel.xaml.cs">
-      <DependentUpon>SubPanel.xaml</DependentUpon>
-    </Compile>
-    <Compile Include="Views\SubThumbnailPanel.xaml.cs">
-      <DependentUpon>SubThumbnailPanel.xaml</DependentUpon>
-    </Compile>
-  </ItemGroup>
-  <ItemGroup>
-    <EmbeddedResource Include="Views\MainPanel.xaml">
-      <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-  </ItemGroup>
-  <ItemGroup>
-    <EmbeddedResource Include="Controls\MainPanelButton.xaml">
-      <SubType>Designer</SubType>
-      <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
-    </EmbeddedResource>
-  </ItemGroup>
-  <ItemGroup>
-    <EmbeddedResource Include="Controls\SubPanelButton.xaml">
-      <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-  </ItemGroup>
-  <ItemGroup>
-    <EmbeddedResource Include="Controls\SubPanelThumbnailButton.xaml">
-      <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-  </ItemGroup>
-  <ItemGroup>
-    <EmbeddedResource Include="Views\MainPage.xaml">
-      <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-  </ItemGroup>
-  <ItemGroup>
-    <EmbeddedResource Include="Views\SubPanel.xaml">
-      <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-  </ItemGroup>
-  <ItemGroup>
-    <EmbeddedResource Include="Views\SubThumbnailPanel.xaml">
-      <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-  </ItemGroup>
-  <ItemGroup>
-    <EmbeddedResource Include="Controls\SubPanelAllAppsButton.xaml">
-      <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\..\LibTVRefCommonPortable\LibTVRefCommonPortable.csproj">
-      <Project>{67f9d3a8-f71e-4428-913f-c37ae82cdb24}</Project>
-      <Name>LibTVRefCommonPortable</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <ItemGroup>
-    <EmbeddedResource Include="Controls\SubPanelSettingButton.xaml">
-      <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-  </ItemGroup>
-  <ItemGroup>
-    <EmbeddedResource Include="Controls\NinePatchImage.xaml">
-      <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-  </ItemGroup>
+
   <ItemGroup>
-    <PackageReference Include="Tizen.Xamarin.Forms.Extension">
-      <Version>2.3.5-v00015</Version>
-    </PackageReference>
-    <PackageReference Include="Xamarin.Forms">
-      <Version>2.4.0-r266-001</Version>
-    </PackageReference>
+    <PackageReference Include="Tizen.Xamarin.Forms.Extension" Version="2.4.0-v00005" />
+    <PackageReference Include="Xamarin.Forms" Version="2.4.0.266-pre1" />
   </ItemGroup>
+
   <ItemGroup>
-    <None Include="packages.config" />
+    <ProjectReference Include="..\..\LibCommon.Shared\LibCommon.Shared.csproj" />
   </ItemGroup>
-  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" />
-  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
 
-  </Target>
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
-               Other similar extension points exist, see Microsoft.Common.targets.
-       <Target Name="BeforeBuild">
-       </Target>
-       <Target Name="AfterBuild">
-       </Target>
-       -->
-</Project>
\ No newline at end of file
+</Project>
index c65faaefd9164f4d44068011fb8fc32a0bb5d059..06683f167f3c05d3adf1fa83f3738df00153983e 100755 (executable)
@@ -18,7 +18,6 @@ using System.Collections.Generic;
 using LibTVRefCommonPortable.Utils;
 using Xamarin.Forms;
 using TVHome.ViewModels;
-using Xamarin.Forms.PlatformConfiguration.TizenSpecific;
 
 namespace TVHome.Views
 {
@@ -208,12 +207,12 @@ namespace TVHome.Views
             Button appsMainPanelButton = PageMainPanel.GetButtonToFocusing(1);
             Button settingMainPanelButton = PageMainPanel.GetButtonToFocusing(2);
 
-            recentMainPanelButton.On<Tizen>().SetNextFocusLeftView(recentMainPanelButton);
-            recentMainPanelButton.On<Tizen>().SetNextFocusRightView(appsMainPanelButton);
-            appsMainPanelButton.On<Tizen>().SetNextFocusLeftView(recentMainPanelButton);
-            appsMainPanelButton.On<Tizen>().SetNextFocusRightView(settingMainPanelButton);
-            settingMainPanelButton.On<Tizen>().SetNextFocusLeftView(appsMainPanelButton);
-            settingMainPanelButton.On<Tizen>().SetNextFocusRightView(settingMainPanelButton);
+            //recentMainPanelButton.On<Tizen>().SetNextFocusLeftView(recentMainPanelButton);
+            //recentMainPanelButton.On<Tizen>().SetNextFocusRightView(appsMainPanelButton);
+            //appsMainPanelButton.On<Tizen>().SetNextFocusLeftView(recentMainPanelButton);
+            //appsMainPanelButton.On<Tizen>().SetNextFocusRightView(settingMainPanelButton);
+            //settingMainPanelButton.On<Tizen>().SetNextFocusLeftView(appsMainPanelButton);
+            //settingMainPanelButton.On<Tizen>().SetNextFocusRightView(settingMainPanelButton);
         }
 
         /// <summary>
@@ -226,24 +225,24 @@ namespace TVHome.Views
 
             if (recentSubPanelButtons.Count > 1)
             {
-                recentMainPanelButton.On<Tizen>().SetNextFocusDownView(recentSubPanelButtons[0].FindByName<Button>("ButtonFocusArea"));
+                //recentMainPanelButton.On<Tizen>().SetNextFocusDownView(recentSubPanelButtons[0].FindByName<Button>("ButtonFocusArea"));
             }
 
             foreach (var item in recentSubPanelButtons)
             {
-                item.FindByName<Button>("ButtonFocusArea").On<Tizen>().SetNextFocusUpView(recentMainPanelButton);
+                //item.FindByName<Button>("ButtonFocusArea").On<Tizen>().SetNextFocusUpView(recentMainPanelButton);
             }
 
             for (var i = 0; i < recentSubPanelButtons.Count; i++)
             {
                 if (i != 0)
                 {
-                    recentSubPanelButtons[i].FindByName<Button>("ButtonFocusArea").On<Tizen>().SetNextFocusLeftView(recentSubPanelButtons[i - 1].FindByName<Button>("ButtonFocusArea"));
+                    //recentSubPanelButtons[i].FindByName<Button>("ButtonFocusArea").On<Tizen>().SetNextFocusLeftView(recentSubPanelButtons[i - 1].FindByName<Button>("ButtonFocusArea"));
                 }
 
                 if (i != recentSubPanelButtons.Count - 1)
                 {
-                    recentSubPanelButtons[i].FindByName<Button>("ButtonFocusArea").On<Tizen>().SetNextFocusRightView(recentSubPanelButtons[i + 1].FindByName<Button>("ButtonFocusArea"));
+                    //recentSubPanelButtons[i].FindByName<Button>("ButtonFocusArea").On<Tizen>().SetNextFocusRightView(recentSubPanelButtons[i + 1].FindByName<Button>("ButtonFocusArea"));
                 }
             }
         }
@@ -259,24 +258,24 @@ namespace TVHome.Views
 
             if (appsSubPanelButtons.Count > 2)
             {
-                appsMainPanelButton.On<Tizen>().SetNextFocusDownView(appsSubPanelButtons[1].FindByName<Button>("ButtonFocusArea"));
+                //appsMainPanelButton.On<Tizen>().SetNextFocusDownView(appsSubPanelButtons[1].FindByName<Button>("ButtonFocusArea"));
             }
 
             foreach (var item in appsSubPanelButtons)
             {
-                item.FindByName<Button>("ButtonFocusArea").On<Tizen>().SetNextFocusUpView(appsMainPanelButton);
+                //item.FindByName<Button>("ButtonFocusArea").On<Tizen>().SetNextFocusUpView(appsMainPanelButton);
             }
 
             for (var i = 0; i < appsSubPanelButtons.Count; i++)
             {
                 if (i != 0)
                 {
-                    appsSubPanelButtons[i].FindByName<Button>("ButtonFocusArea").On<Tizen>().SetNextFocusLeftView(appsSubPanelButtons[i - 1].FindByName<Button>("ButtonFocusArea"));
+                    //appsSubPanelButtons[i].FindByName<Button>("ButtonFocusArea").On<Tizen>().SetNextFocusLeftView(appsSubPanelButtons[i - 1].FindByName<Button>("ButtonFocusArea"));
                 }
 
                 if (i != appsSubPanelButtons.Count - 1)
                 {
-                    appsSubPanelButtons[i].FindByName<Button>("ButtonFocusArea").On<Tizen>().SetNextFocusRightView(appsSubPanelButtons[i + 1].FindByName<Button>("ButtonFocusArea"));
+                    //appsSubPanelButtons[i].FindByName<Button>("ButtonFocusArea").On<Tizen>().SetNextFocusRightView(appsSubPanelButtons[i + 1].FindByName<Button>("ButtonFocusArea"));
                 }
             }
         }
@@ -291,12 +290,12 @@ namespace TVHome.Views
 
             if (settingSubPanelButtons.Count > 2)
             {
-                settingMainPanelButton.On<Tizen>().SetNextFocusDownView(settingSubPanelButtons[1].FindByName<Button>("ButtonFocusArea"));
+                //settingMainPanelButton.On<Tizen>().SetNextFocusDownView(settingSubPanelButtons[1].FindByName<Button>("ButtonFocusArea"));
             }
 
             foreach (var item in settingSubPanelButtons)
             {
-                item.FindByName<Button>("ButtonFocusArea").On<Tizen>().SetNextFocusUpView(settingMainPanelButton);
+                //item.FindByName<Button>("ButtonFocusArea").On<Tizen>().SetNextFocusUpView(settingMainPanelButton);
             }
         }
 
index a3dad2131b88af11a60e6e31ea5415cd0a093439..8b5930d3724d57f72dd5bfacab06fc8e75ed3785 100755 (executable)
@@ -21,7 +21,6 @@ using Xamarin.Forms;
 using System.Threading.Tasks;
 using LibTVRefCommonPortable.Utils;
 using System.Collections.Generic;
-using Xamarin.Forms.PlatformConfiguration.TizenSpecific;
 
 namespace TVHome.Views
 {
@@ -70,7 +69,7 @@ namespace TVHome.Views
             SetPanelDisplay();
 
             PropertyChanged += OnPropertyChanged;
-            NoContentInfoText.On<Tizen>().SetFontWeight(FontWeight.Light);
+            //NoContentInfoText.On<Tizen>().SetFontWeight(FontWeight.Light);
 
             ButtonList = new List<PanelButton>();
         }
diff --git a/TVHome/TVHome/bin/Debug/netstandard2.0/TVHome.deps.json b/TVHome/TVHome/bin/Debug/netstandard2.0/TVHome.deps.json
new file mode 100644 (file)
index 0000000..fc7ab47
--- /dev/null
@@ -0,0 +1,93 @@
+{
+  "runtimeTarget": {
+    "name": ".NETStandard,Version=v2.0/",
+    "signature": "cf5149bdff09bd8db6df7773b79e5a86c601ccd4"
+  },
+  "compilationOptions": {},
+  "targets": {
+    ".NETStandard,Version=v2.0": {},
+    ".NETStandard,Version=v2.0/": {
+      "TVHome/1.0.0": {
+        "dependencies": {
+          "LibCommon.Shared": "1.0.0",
+          "NETStandard.Library": "2.0.0",
+          "Tizen.Xamarin.Forms.Extension": "2.4.0-v00005",
+          "Xamarin.Forms": "2.4.0.266-pre1"
+        },
+        "runtime": {
+          "TVHome.dll": {}
+        }
+      },
+      "Microsoft.NETCore.Platforms/1.1.0": {},
+      "NETStandard.Library/2.0.0": {
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0"
+        }
+      },
+      "Tizen.Xamarin.Forms.Extension/2.4.0-v00005": {
+        "dependencies": {
+          "Xamarin.Forms": "2.4.0.266-pre1"
+        },
+        "runtime": {
+          "lib/netstandard1.0/Tizen.Xamarin.Forms.Extension.dll": {}
+        }
+      },
+      "Xamarin.Forms/2.4.0.266-pre1": {
+        "runtime": {
+          "lib/netstandard1.0/Xamarin.Forms.Core.dll": {},
+          "lib/netstandard1.0/Xamarin.Forms.Platform.dll": {},
+          "lib/netstandard1.0/Xamarin.Forms.Xaml.dll": {}
+        }
+      },
+      "LibCommon.Shared/1.0.0": {
+        "dependencies": {
+          "Tizen.Xamarin.Forms.Extension": "2.4.0-v00005",
+          "Xamarin.Forms": "2.4.0.266-pre1"
+        },
+        "runtime": {
+          "LibCommon.Shared.dll": {}
+        }
+      }
+    }
+  },
+  "libraries": {
+    "TVHome/1.0.0": {
+      "type": "project",
+      "serviceable": false,
+      "sha512": ""
+    },
+    "Microsoft.NETCore.Platforms/1.1.0": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==",
+      "path": "microsoft.netcore.platforms/1.1.0",
+      "hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512"
+    },
+    "NETStandard.Library/2.0.0": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-7jnbRU+L08FXKMxqUflxEXtVymWvNOrS8yHgu9s6EM8Anr6T/wIX4nZ08j/u3Asz+tCufp3YVwFSEvFTPYmBPA==",
+      "path": "netstandard.library/2.0.0",
+      "hashPath": "netstandard.library.2.0.0.nupkg.sha512"
+    },
+    "Tizen.Xamarin.Forms.Extension/2.4.0-v00005": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-MKUamVt5XloZ/JziyOXLdbahn7T0LDQDJGUt3ynt0iSia4aLpZLOua6/iypBhnC79FgMaNfUA7APjVfjh3NLTg==",
+      "path": "tizen.xamarin.forms.extension/2.4.0-v00005",
+      "hashPath": "tizen.xamarin.forms.extension.2.4.0-v00005.nupkg.sha512"
+    },
+    "Xamarin.Forms/2.4.0.266-pre1": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-pMu+b01vdH1ul5EJo1opQjEcwisWT35DdZO6EuR9HNKfY1dWyKmAlWgRdGUtjtdbhjOAtCOQUxI7F3x4hvV8KA==",
+      "path": "xamarin.forms/2.4.0.266-pre1",
+      "hashPath": "xamarin.forms.2.4.0.266-pre1.nupkg.sha512"
+    },
+    "LibCommon.Shared/1.0.0": {
+      "type": "project",
+      "serviceable": false,
+      "sha512": ""
+    }
+  }
+}
\ No newline at end of file
diff --git a/TVHome/TVHome/packages.config b/TVHome/TVHome/packages.config
deleted file mode 100755 (executable)
index 6356cba..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<packages>
-  <package id="Tizen.Xamarin.Forms.Extension" version="2.3.5-v00010" targetFramework="portable45-net45+win8+wp8+wpa81" />
-  <package id="Xamarin.Forms" version="2.3.5-r233-012" targetFramework="portable45-net45+win8+wp8+wpa81" />
-</packages>
\ No newline at end of file
index 074519ac6a1c44191311e9b084848e8a222fc85e..ca14060bdd555f69dabfccf20f7df580fde272a8 100644 (file)
@@ -1,27 +1,19 @@
 
 Microsoft Visual Studio Solution File, Format Version 12.00
 # Visual Studio 15
-VisualStudioVersion = 15.0.26430.12
+VisualStudioVersion = 15.0.26730.10
 MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TVHome", "TVHome\TVHome\TVHome.csproj", "{54DD6673-7E64-48E6-A008-4D455E19E017}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TVHome.Tizen.TV", "TVHome\TVHome.Tizen.TV\TVHome.Tizen.TV.csproj", "{8838ED5F-7AEB-4449-ACE9-5DC57CA207FC}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TVHome.TizenTV", "TVHome\TVHome.TizenTV\TVHome.TizenTV.csproj", "{CE03A1DC-A3E0-41DD-B06C-92C19E8D2A8F}"
-       ProjectSection(ProjectDependencies) = postProject
-               {FD8C0EF4-6CEA-4421-85B7-7AC8592738C6} = {FD8C0EF4-6CEA-4421-85B7-7AC8592738C6}
-       EndProjectSection
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TVApps.Tizen.TV", "TVApps\TVApps.Tizen.TV\TVApps.Tizen.TV.csproj", "{81D115A5-7BD0-4697-B6FE-43AC31AE71A7}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TVApps", "TVApps\TVApps\TVApps.csproj", "{FD8C0EF4-6CEA-4421-85B7-7AC8592738C6}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibCommon.Shared", "LibCommon.Shared\LibCommon.Shared.csproj", "{32899AD0-BF4F-4C43-BD35-4A7B2DEC3ECE}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TVApps.TizenTV", "TVApps\TVApps.TizenTV\TVApps.TizenTV.csproj", "{7E341BF5-B7BD-4532-9D4A-AA89537B525E}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibCommon.Tizen", "LibCommon.Tizen\LibCommon.Tizen.csproj", "{8D3E259E-CD93-4407-B8BF-EF20C1A2C146}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibTVRefCommonPortable", "LibTVRefCommonPortable\LibTVRefCommonPortable.csproj", "{67F9D3A8-F71E-4428-913F-C37AE82CDB24}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TVHome", "TVHome\TVHome\TVHome.csproj", "{B91BC6BD-192B-46C1-880D-D6A2B913BE7A}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibTVRefCommonTizen", "LibTVRefCommonTizen\LibTVRefCommonTizen.csproj", "{C558D279-897E-45E1-A10A-DECD788770F4}"
-       ProjectSection(ProjectDependencies) = postProject
-               {67F9D3A8-F71E-4428-913F-C37AE82CDB24} = {67F9D3A8-F71E-4428-913F-C37AE82CDB24}
-       EndProjectSection
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HomeUnitTest", "HomeUnitTest\HomeUnitTest.csproj", "{1F2DB8A0-7D1E-4BA3-BF27-335D033C572C}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TVApps", "TVApps\TVApps\TVApps.csproj", "{7785D009-F49A-4519-AEE7-6CF6A3237BCB}"
 EndProject
 Global
        GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -29,36 +21,35 @@ Global
                Release|Any CPU = Release|Any CPU
        EndGlobalSection
        GlobalSection(ProjectConfigurationPlatforms) = postSolution
-               {54DD6673-7E64-48E6-A008-4D455E19E017}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-               {54DD6673-7E64-48E6-A008-4D455E19E017}.Debug|Any CPU.Build.0 = Debug|Any CPU
-               {54DD6673-7E64-48E6-A008-4D455E19E017}.Release|Any CPU.ActiveCfg = Release|Any CPU
-               {54DD6673-7E64-48E6-A008-4D455E19E017}.Release|Any CPU.Build.0 = Release|Any CPU
-               {CE03A1DC-A3E0-41DD-B06C-92C19E8D2A8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-               {CE03A1DC-A3E0-41DD-B06C-92C19E8D2A8F}.Debug|Any CPU.Build.0 = Debug|Any CPU
-               {CE03A1DC-A3E0-41DD-B06C-92C19E8D2A8F}.Release|Any CPU.ActiveCfg = Release|Any CPU
-               {CE03A1DC-A3E0-41DD-B06C-92C19E8D2A8F}.Release|Any CPU.Build.0 = Release|Any CPU
-               {FD8C0EF4-6CEA-4421-85B7-7AC8592738C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-               {FD8C0EF4-6CEA-4421-85B7-7AC8592738C6}.Debug|Any CPU.Build.0 = Debug|Any CPU
-               {FD8C0EF4-6CEA-4421-85B7-7AC8592738C6}.Release|Any CPU.ActiveCfg = Release|Any CPU
-               {FD8C0EF4-6CEA-4421-85B7-7AC8592738C6}.Release|Any CPU.Build.0 = Release|Any CPU
-               {7E341BF5-B7BD-4532-9D4A-AA89537B525E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-               {7E341BF5-B7BD-4532-9D4A-AA89537B525E}.Debug|Any CPU.Build.0 = Debug|Any CPU
-               {7E341BF5-B7BD-4532-9D4A-AA89537B525E}.Release|Any CPU.ActiveCfg = Release|Any CPU
-               {7E341BF5-B7BD-4532-9D4A-AA89537B525E}.Release|Any CPU.Build.0 = Release|Any CPU
-               {67F9D3A8-F71E-4428-913F-C37AE82CDB24}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-               {67F9D3A8-F71E-4428-913F-C37AE82CDB24}.Debug|Any CPU.Build.0 = Debug|Any CPU
-               {67F9D3A8-F71E-4428-913F-C37AE82CDB24}.Release|Any CPU.ActiveCfg = Release|Any CPU
-               {67F9D3A8-F71E-4428-913F-C37AE82CDB24}.Release|Any CPU.Build.0 = Release|Any CPU
-               {C558D279-897E-45E1-A10A-DECD788770F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-               {C558D279-897E-45E1-A10A-DECD788770F4}.Debug|Any CPU.Build.0 = Debug|Any CPU
-               {C558D279-897E-45E1-A10A-DECD788770F4}.Release|Any CPU.ActiveCfg = Release|Any CPU
-               {C558D279-897E-45E1-A10A-DECD788770F4}.Release|Any CPU.Build.0 = Release|Any CPU
-               {1F2DB8A0-7D1E-4BA3-BF27-335D033C572C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-               {1F2DB8A0-7D1E-4BA3-BF27-335D033C572C}.Debug|Any CPU.Build.0 = Debug|Any CPU
-               {1F2DB8A0-7D1E-4BA3-BF27-335D033C572C}.Release|Any CPU.ActiveCfg = Release|Any CPU
-               {1F2DB8A0-7D1E-4BA3-BF27-335D033C572C}.Release|Any CPU.Build.0 = Release|Any CPU
+               {8838ED5F-7AEB-4449-ACE9-5DC57CA207FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+               {8838ED5F-7AEB-4449-ACE9-5DC57CA207FC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {8838ED5F-7AEB-4449-ACE9-5DC57CA207FC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+               {8838ED5F-7AEB-4449-ACE9-5DC57CA207FC}.Release|Any CPU.Build.0 = Release|Any CPU
+               {81D115A5-7BD0-4697-B6FE-43AC31AE71A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+               {81D115A5-7BD0-4697-B6FE-43AC31AE71A7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {81D115A5-7BD0-4697-B6FE-43AC31AE71A7}.Release|Any CPU.ActiveCfg = Release|Any CPU
+               {81D115A5-7BD0-4697-B6FE-43AC31AE71A7}.Release|Any CPU.Build.0 = Release|Any CPU
+               {32899AD0-BF4F-4C43-BD35-4A7B2DEC3ECE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+               {32899AD0-BF4F-4C43-BD35-4A7B2DEC3ECE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {32899AD0-BF4F-4C43-BD35-4A7B2DEC3ECE}.Release|Any CPU.ActiveCfg = Release|Any CPU
+               {32899AD0-BF4F-4C43-BD35-4A7B2DEC3ECE}.Release|Any CPU.Build.0 = Release|Any CPU
+               {8D3E259E-CD93-4407-B8BF-EF20C1A2C146}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+               {8D3E259E-CD93-4407-B8BF-EF20C1A2C146}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {8D3E259E-CD93-4407-B8BF-EF20C1A2C146}.Release|Any CPU.ActiveCfg = Release|Any CPU
+               {8D3E259E-CD93-4407-B8BF-EF20C1A2C146}.Release|Any CPU.Build.0 = Release|Any CPU
+               {B91BC6BD-192B-46C1-880D-D6A2B913BE7A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+               {B91BC6BD-192B-46C1-880D-D6A2B913BE7A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {B91BC6BD-192B-46C1-880D-D6A2B913BE7A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+               {B91BC6BD-192B-46C1-880D-D6A2B913BE7A}.Release|Any CPU.Build.0 = Release|Any CPU
+               {7785D009-F49A-4519-AEE7-6CF6A3237BCB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+               {7785D009-F49A-4519-AEE7-6CF6A3237BCB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {7785D009-F49A-4519-AEE7-6CF6A3237BCB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+               {7785D009-F49A-4519-AEE7-6CF6A3237BCB}.Release|Any CPU.Build.0 = Release|Any CPU
        EndGlobalSection
        GlobalSection(SolutionProperties) = preSolution
                HideSolutionNode = FALSE
        EndGlobalSection
+       GlobalSection(ExtensibilityGlobals) = postSolution
+               SolutionGuid = {14D6283D-9E94-4FCC-9E0F-FCE8F168C9B4}
+       EndGlobalSection
 EndGlobal
diff --git a/packaging/org.tizen.xahome.path b/packaging/org.tizen.xahome.path
deleted file mode 100644 (file)
index 4d7d360..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-[Unit]
-Description=This path will tell you that home is ready to launch
-
-[Path]
-PathExists=/run/.wm_ready
diff --git a/packaging/org.tizen.xahome.service b/packaging/org.tizen.xahome.service
deleted file mode 100644 (file)
index 1cab992..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-[Unit]
-Description=TV Home
-Requires=launchpad-process-pool.service
-After=launchpad-process-pool.service
-
-[Service]
-ExecStart=/bin/sh -c -l '/usr/bin/aul_test launch org.tizen.xahome'
diff --git a/packaging/org.tizen.xahome.spec b/packaging/org.tizen.xahome.spec
deleted file mode 100644 (file)
index 1edda9c..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-Name:       org.tizen.xahome
-Summary:    TV home application
-Version:    1.0.0
-Release:    1
-Group:      Applications
-License:    Flora-1.1
-Source0:    %{name}-%{version}.tar.gz
-Source1:    %{name}.service
-Source2:    %{name}.path
-
-BuildRequires:  pkgconfig(libtzplatform-config)
-Requires(post):  /usr/bin/tpk-backend
-
-%define _sysuserdir systemd/user
-%define _servicedir systemd/user/default.target.wants
-
-%define internal_name org.tizen.xahome
-%define preload_tpk_path %{TZ_SYS_RO_APP}/.preload-tpk
-
-%define build_mode %{nil}
-
-%ifarch arm armv7l
-%define target arm
-%endif
-%ifarch aarch64
-%define target aarch64
-%endif
-%ifarch x86_64
-%define target x86_64
-%endif
-%ifarch i386 i486 i586 i686
-%define target i386
-%endif
-%description
-This is a container package which have preload TPK files
-
-%prep
-%setup -q
-
-%build
-
-%install
-rm -rf %{buildroot}
-mkdir -p %{buildroot}%{preload_tpk_path}
-install TVHome/TVHome.TizenTV/bin/Debug/TVHome.TizenTV.tpk %{buildroot}%{preload_tpk_path}/
-install --directory %{buildroot}%{_prefix}/lib/%{_servicedir}
-install -m 0644 %{SOURCE1} %{buildroot}%{_prefix}/lib/%{_sysuserdir}
-install -m 0644 %{SOURCE2} %{buildroot}%{_prefix}/lib/%{_sysuserdir}
-ln -sf ../%{name}.path %{buildroot}%{_prefix}/lib/%{_servicedir}
-
-%post
-chsmack %{_prefix}/lib/%{_sysuserdir}/%{name}.service -a "_"
-chsmack %{_prefix}/lib/%{_sysuserdir}/%{name}.path -a "_"
-chsmack %{_prefix}/lib/%{_servicedir}/%{name}.path -a "_"
-
-%files
-%defattr(-,root,root,-)
-%{preload_tpk_path}/*.tpk
-%{_prefix}/lib/%{_sysuserdir}/%{name}.service
-%{_prefix}/lib/%{_sysuserdir}/%{name}.path
-%{_prefix}/lib/%{_servicedir}/%{name}.path