Add Comments TVHome, TVApps
authorHeonjae Jang <heonjae.jang@samsung.com>
Fri, 19 May 2017 06:54:30 +0000 (15:54 +0900)
committerChulSeung Kim <charles0.kim@samsung.com>
Thu, 8 Jun 2017 09:34:56 +0000 (18:34 +0900)
Change-Id: Ibc8c3daf9bd33e2a424e9b6b541a6d98c5614178
Signed-off-by: Heonjae Jang <heonjae.jang@samsung.com>
33 files changed:
LibTVRefCommonPortable/Models/ManagedApps.cs
LibTVRefCommonPortable/Models/RecentShortcutController.cs
LibTVRefCommonPortable/Utils/DebuggingUtils.cs
LibTVRefCommonPortable/Utils/IFileSystemAPIs.cs
LibTVRefCommonPortable/Utils/IMediaContentAPIs.cs
LibTVRefCommonPortable/Utils/ISystemSettings.cs
LibTVRefCommonTizen/LibTVRefCommonTizen.nuget.targets
LibTVRefCommonTizen/Ports/MediaContentPort.cs
LibTVRefCommonTizen/Ports/SystemSettingsPort.cs
TVApps/TVApps.TizenTV/TVApps.TizenTV.nuget.targets
TVApps/TVApps/Controls/AppItemCell.xaml.cs
TVApps/TVApps/Controls/AppListView.xaml.cs
TVApps/TVApps/ViewModels/AppsHolder.cs
TVApps/TVApps/ViewModels/MainPageViewModel.cs
TVApps/TVApps/Views/FooterDeleteStatus.xaml.cs
TVApps/TVApps/Views/FooterNormalStatus.xaml.cs
TVApps/TVApps/Views/FooterPinStatus.xaml.cs
TVApps/TVApps/Views/MainPage.xaml.cs
TVHome/TVHome.TizenTV/Sniper.cs
TVHome/TVHome.TizenTV/TVHome.TizenTV.nuget.targets
TVHome/TVHome.TizenTV/tizen-manifest.xml
TVHome/TVHome/Controls/MainPanelButton.xaml.cs
TVHome/TVHome/Controls/PanelButton.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/ViewModels/MainPageViewModel.cs
TVHome/TVHome/Views/MainPage.xaml.cs
TVHome/TVHome/Views/MainPanel.xaml.cs
TVHome/TVHome/Views/Panel.cs
TVHome/TVHome/Views/SubPanel.xaml.cs
TVHome/TVHome/Views/SubThumbnailPanel.xaml.cs

index 2690a55..126187c 100644 (file)
@@ -72,6 +72,11 @@ namespace LibTVRefCommonPortable.Models
             }
         }
 
+        /// <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.CompareTo(TVHomeAppID) == 0 ||
@@ -85,6 +90,11 @@ namespace LibTVRefCommonPortable.Models
             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.CompareTo(TVHomeAppID) == 0 ||
index 0e67019..c35e8fe 100755 (executable)
@@ -161,7 +161,7 @@ namespace LibTVRefCommonPortable.Models
             }
 
             IMediaContentAPIs apiSet = DependencyService.Get<IMediaContentAPIs>();
-            var recentPlayedMedia = DependencyService.Get<IMediaContentAPIs>().GetRecentlyPladyedMedia(10);
+            var recentPlayedMedia = DependencyService.Get<IMediaContentAPIs>().GetRecentlyPlayedMedia(10);
 
 
             foreach (var item in recentPlayedMedia)
index 49208b1..568659d 100644 (file)
@@ -44,11 +44,13 @@ namespace LibTVRefCommonPortable.Utils
 
         /// <summary>
         /// Default implementation of IDebuggingAPIs interface .
-        /// This is required for the unit testing of the Calculator application. </summary>
+        /// This is required for the unit testing of the Calculator application.
+        /// </summary>
         private class DefaultSM : IDebuggingAPIs
         {
             /// <summary>
-            /// A method displays a error log. </summary>
+            /// A method displays a error log.
+            /// </summary>
             /// <param name="message"> A error message.</param>
             /// <param name="file"> A file name.</param>
             /// <param name="func"> A function name.</param>
@@ -58,7 +60,8 @@ namespace LibTVRefCommonPortable.Utils
             }
 
             /// <summary>
-            /// A method displays a dialog with a given message. </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>
@@ -68,7 +71,8 @@ namespace LibTVRefCommonPortable.Utils
             }
 
             /// <summary>
-            /// A method displays a debugging log. </summary>
+            /// A method displays a debugging log.
+            /// </summary>
             /// <param name="message"> A debugging message.</param>
             public void Popup(string message)
             {
@@ -76,7 +80,8 @@ namespace LibTVRefCommonPortable.Utils
         }
 
         /// <summary>
-        /// DebuggingUtils constructor which set interface instance. </summary>
+        /// DebuggingUtils constructor which set interface instance.
+        /// </summary>
         private DebuggingUtils()
         {
             if (DependencyService.Get<IDebuggingAPIs>() != null)
@@ -90,7 +95,8 @@ namespace LibTVRefCommonPortable.Utils
         }
 
         /// <summary>
-        /// A method displays a debugging 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>
@@ -101,7 +107,8 @@ namespace LibTVRefCommonPortable.Utils
         }
 
         /// <summary>
-        /// A method displays a error message </summary>
+        /// A method displays a 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>
@@ -112,7 +119,8 @@ namespace LibTVRefCommonPortable.Utils
         }
 
         /// <summary>
-        /// A method displays a pop up  message </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)
         {
index 005577b..d3f6017 100644 (file)
@@ -41,16 +41,25 @@ namespace LibTVRefCommonPortable.Utils
     /// </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;
index 520f3fa..82d916c 100644 (file)
@@ -20,17 +20,47 @@ using System.Collections.Generic;
 
 namespace LibTVRefCommonPortable.Utils
 {
+    /// <summary>
+    /// A information of recently played media content
+    /// </summary>
     public struct RecentlyPlayedMedia
     {
+        /// <summary>
+        /// A 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>
+    /// A interface for getting recently played media contents.
+    /// </summary>
     public interface IMediaContentAPIs
     {
-        IEnumerable<RecentlyPlayedMedia> GetRecentlyPladyedMedia(int limitation);
+        /// <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);
     }
 }
index f2c26c1..fe34df8 100644 (file)
 
 namespace LibTVRefCommonPortable.Utils
 {
+    /// <summary>
+    /// A 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);
     }
 }
index 66cefbe..32bb521 100644 (file)
@@ -1,9 +1,18 @@
 ï»¿<?xml version="1.0" encoding="utf-8" standalone="no"?>
 <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup Condition="'$(NuGetPackageRoot)' == ''">
-    <NuGetPackageRoot>$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
+  <PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
+    <RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
+    <RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
+    <ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">D:\git\home\LibTVRefCommonTizen\LibTVRefCommonTizen.project.lock.json</ProjectAssetsFile>
+    <NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
+    <NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\samsung\.nuget\packages\</NuGetPackageFolders>
+    <NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">ProjectJson</NuGetProjectStyle>
+    <NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">4.2.0</NuGetToolVersion>
   </PropertyGroup>
-  <ImportGroup>
-    <Import Project="$(NuGetPackageRoot)\Xamarin.Forms\2.3.5-r233-003\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+Xamarin.iOS10+xamarinmac20\Xamarin.Forms.targets" Condition="Exists('$(NuGetPackageRoot)\Xamarin.Forms\2.3.5-r233-003\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+Xamarin.iOS10+xamarinmac20\Xamarin.Forms.targets')" />
+  <PropertyGroup>
+    <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
+  </PropertyGroup>
+  <ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
+    <Import Project="$(NuGetPackageRoot)xamarin.forms\2.3.5-r233-003\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+Xamarin.iOS10+xamarinmac20\Xamarin.Forms.targets" Condition="Exists('$(NuGetPackageRoot)xamarin.forms\2.3.5-r233-003\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+Xamarin.iOS10+xamarinmac20\Xamarin.Forms.targets')" />
   </ImportGroup>
 </Project>
\ No newline at end of file
index 41de382..dba51f5 100644 (file)
@@ -21,15 +21,27 @@ 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();
         }
 
-        public IEnumerable<RecentlyPlayedMedia> GetRecentlyPladyedMedia(int limitation)
+        /// <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();
index 9b16104..8bba7c7 100644 (file)
@@ -22,6 +22,9 @@ 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;
@@ -33,7 +36,11 @@ namespace LibTVRefCommonTizen.Ports
             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)
index 66cefbe..2d54ce4 100644 (file)
@@ -1,9 +1,18 @@
 ï»¿<?xml version="1.0" encoding="utf-8" standalone="no"?>
 <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup Condition="'$(NuGetPackageRoot)' == ''">
-    <NuGetPackageRoot>$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
+  <PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
+    <RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
+    <RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
+    <ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">D:\git\home\TVApps\TVApps.TizenTV\TVApps.TizenTV.project.lock.json</ProjectAssetsFile>
+    <NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
+    <NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\samsung\.nuget\packages\</NuGetPackageFolders>
+    <NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">ProjectJson</NuGetProjectStyle>
+    <NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">4.2.0</NuGetToolVersion>
   </PropertyGroup>
-  <ImportGroup>
-    <Import Project="$(NuGetPackageRoot)\Xamarin.Forms\2.3.5-r233-003\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+Xamarin.iOS10+xamarinmac20\Xamarin.Forms.targets" Condition="Exists('$(NuGetPackageRoot)\Xamarin.Forms\2.3.5-r233-003\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+Xamarin.iOS10+xamarinmac20\Xamarin.Forms.targets')" />
+  <PropertyGroup>
+    <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
+  </PropertyGroup>
+  <ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
+    <Import Project="$(NuGetPackageRoot)xamarin.forms\2.3.5-r233-003\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+Xamarin.iOS10+xamarinmac20\Xamarin.Forms.targets" Condition="Exists('$(NuGetPackageRoot)xamarin.forms\2.3.5-r233-003\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+Xamarin.iOS10+xamarinmac20\Xamarin.Forms.targets')" />
   </ImportGroup>
 </Project>
\ No newline at end of file
index caa3a10..b7a2167 100755 (executable)
@@ -109,15 +109,15 @@ namespace TVApps.Controls
         /// <summary>
         /// Identifies the IsFocused bindable property
         /// </summary>
-        public static readonly BindableProperty IsFocusedProperty = BindableProperty.Create("IsFocused", typeof(bool), typeof(AppItemCell), default(bool), BindingMode.TwoWay);
+        public static readonly BindableProperty IsItemFocusedProperty = BindableProperty.Create("IsFocused", typeof(bool), typeof(AppItemCell), default(bool), BindingMode.TwoWay);
 
         /// <summary>
         /// Gets or sets focus state of AppItemCell
         /// </summary>
-        public bool IsFocused
+        public bool IsItemFocused
         {
-            get { return (bool)GetValue(IsFocusedProperty); }
-            set { SetValue(IsFocusedProperty, value); }
+            get { return (bool)GetValue(IsItemFocusedProperty); }
+            set { SetValue(IsItemFocusedProperty, value); }
         }
 
         public static readonly BindableProperty PinCommandProperty = BindableProperty.Create("PinCommand", typeof(ICommand), typeof(AppItemCell));
@@ -406,7 +406,7 @@ namespace TVApps.Controls
         /// <param name="e">The event that is occurred when button is focused</param>
         private void OnFocused(object sender, EventArgs e)
         {
-            IsFocused = true;
+            IsItemFocused = true;
             OnPropertyChanged("IsFocused");
 
             OnFocusedCommand?.Execute("");
@@ -431,7 +431,7 @@ namespace TVApps.Controls
         /// <param name="e">The event that is occurred when button is unfocused</param>
         private void OnUnFocused(object sender, EventArgs e)
         {
-            IsFocused = false;
+            IsItemFocused = false;
             OnPropertyChanged("IsFocused");
             ButtonTitle.On<Tizen>().SetFontWeight(FontWeight.Normal);
 
index 94a3017..8646996 100755 (executable)
@@ -101,6 +101,9 @@ namespace TVApps.Controls
             }
         }
 
+        /// <summary>
+        /// A command will be executed if focus chain is changed
+        /// </summary>
         public ICommand OnChangeFocusChainingCommand { get; set; }
 
         /// <summary>
@@ -139,11 +142,19 @@ namespace TVApps.Controls
             }
         }
 
+        /// <summary>
+        /// A method for getting upper app list
+        /// </summary>
+        /// <returns>A list of views in upper side</returns>
         public IList<View> GetAppsUpperList()
         {
             return AppUpperList.Children;
         }
 
+        /// <summary>
+        /// A method for getting lower app list
+        /// </summary>
+        /// <returns>A list of views in lower side</returns>
         public IList<View> GetAppsLowerList()
         {
             return AppLowerList.Children;
index 2fc9ded..7461a4c 100755 (executable)
@@ -52,7 +52,14 @@ namespace TVApps.ViewModels
         /// </summary>
         public Dictionary<string, string> PinnedApps;
 
+        /// <summary>
+        /// A name of pinned application
+        /// </summary>
         public string PinnedAppName;
+
+        /// <summary>
+        /// A name of unpinned application
+        /// </summary>
         public string UnpinnedAppName;
 
         /// <summary>
@@ -235,6 +242,9 @@ namespace TVApps.ViewModels
             ViewModel.ChangeCurrentStatus(AppsStatus.Default);
         }
 
+        /// <summary>
+        /// A method for changing status of applications to Default
+        /// </summary>
         public void ChangeToDefaultStatus()
         {
             ViewModel.ChangeCurrentStatus(AppsStatus.Default);
@@ -260,10 +270,10 @@ namespace TVApps.ViewModels
         }
 
         /// <summary>
-        /// A method sends application delete request
-        /// If application is pinned, removes in PinnedApps
+        /// A method for checking the application is removable
+        /// If the application is removable, show Delete Popup
         /// </summary>
-        /// <param name="appID">The ID of application for deleting</param>
+        /// <param name="appID">The ID of application for checking</param>
         public void CheckDeleteApp(string appID)
         {
             DebuggingUtils.Dbg("check that the app( " + appID + ") can be deleted");
@@ -281,6 +291,11 @@ namespace TVApps.ViewModels
             }
         }
 
+        /// <summary>
+        /// A method sends application delete request
+        /// If application is pinned, removes in PinnedApps
+        /// </summary>
+        /// <param name="appID">The ID of application for deleting</param>
         public void DeleteApp(string appID)
         {
             // if the app to be deleted is pinned, remove the app in the pinned apps list
index 2f3c4be..84c3ea2 100755 (executable)
@@ -96,6 +96,9 @@ namespace TVApps.ViewModels
             set;
         }
 
+        /// <summary>
+        /// Gets or sets recently pinned application name
+        /// </summary>
         public string PinnedAppName
         {
             get
@@ -104,6 +107,9 @@ namespace TVApps.ViewModels
             }
         }
 
+        /// <summary>
+        /// Gets or sets recently unpinned application name
+        /// </summary>
         public string UnpinnedAppName
         {
             get
@@ -223,6 +229,7 @@ namespace TVApps.ViewModels
         public event PropertyChangedEventHandler PropertyChanged;
 
         private bool isPinAppRequested = false;
+
         /// <summary>
         /// A flag indicates whether pin app is requested or not
         /// If TV Home requests pin app to TV Apps, IsPinAppRequested will be true
index de06fdc..bf0e5bf 100755 (executable)
@@ -29,6 +29,15 @@ namespace TVApps.Views
         private Button CancelButton;
 
         /// <summary>
+        /// Gets Cancel Button
+        /// </summary>
+        /// <returns>Returns Cancel Button</returns>
+        public Button GetCancelButton()
+        {
+            return CancelButton;
+        }
+
+        /// <summary>
         /// A constructor
         /// </summary>
         public FooterDeleteStatus()
@@ -49,10 +58,5 @@ namespace TVApps.Views
                 yConstraint: Constraint.Constant(SizeUtils.GetHeightSize(662)),
                 xConstraint: Constraint.Constant(SizeUtils.GetWidthSize(96 + 1130 + 300 + 2)));
         }
-
-        public Button GetCancelButton()
-        {
-            return CancelButton;
-        }
     }
 }
index 26b0020..155aa3f 100755 (executable)
@@ -54,6 +54,9 @@ namespace TVApps.Views
             set { SetValue(DeleteAppCommandProperty, value); }
         }
 
+        /// <summary>
+        /// A command will be executed if the Sort DropdownList item is selected
+        /// </summary>
         public static readonly BindableProperty SortOptionIndexCommandProperty = BindableProperty.Create("SortOptionIndexCommand", typeof(Command), typeof(FooterNormalStatus), null);
         public ICommand SortOptionIndexCommand
         {
@@ -61,6 +64,9 @@ namespace TVApps.Views
             set { SetValue(SortOptionIndexCommandProperty, value); }
         }
 
+        /// <summary>
+        /// A command will be executed if the Context Popup is showed or dismissed
+        /// </summary>
         public ICommand ChangeBackKeyInfoCommand { get; set; }
 
         /// <summary>
@@ -74,11 +80,18 @@ namespace TVApps.Views
             CreateOptionButton();
         }
 
+        /// <summary>
+        /// Gets Sort DropdownList
+        /// </summary>
+        /// <returns>Returns Sort DropdownList</returns>
         public DropdownList GetSortDropdownList()
         {
             return SortButton;
         }
 
+        /// <summary>
+        /// Creates Option Button
+        /// </summary>
         private void CreateOptionButton()
         {
             OptionButton = new Button()
@@ -95,6 +108,9 @@ namespace TVApps.Views
                 xConstraint: Constraint.Constant(SizeUtils.GetWidthSize(96 + 1130 + 300 + 2)));
         }
 
+        /// <summary>
+        /// Creates Sort DropdownList
+        /// </summary>
         private void CreateSortButton()
         {
             List<string> SortList = new List<string> { "Newest", "A - Z", "Z - A" };
@@ -118,6 +134,11 @@ namespace TVApps.Views
                 xConstraint: Constraint.Constant(SizeUtils.GetWidthSize(96 + 1130)));
         }
 
+        /// <summary>
+        /// A method for handling Option Button is clicked
+        /// </summary>
+        /// <param name="sender">The source of the event</param>
+        /// <param name="e">The event that is occurred when OptionButton is clicked</param>
         void OnOptionsClicked(object sender, EventArgs e)
         {
             if (isPopupShowing)
index d4b8248..d192857 100755 (executable)
@@ -26,10 +26,34 @@ namespace TVApps.Views
     public partial class FooterPinStatus : RelativeLayout
     {
         private Button DoneButton;
+        /// <summary>
+        /// Gets Done Button
+        /// </summary>
+        /// <returns>Returns Done Button object</returns>
+        public Button GetDoneButton()
+        {
+            return DoneButton;
+        }
+
+        /// <summary>
+        /// A Container for additional information labels
+        /// </summary>
+        public StackLayout additionalInfo;
+
+        /// <summary>
+        /// A label for displaying pinned or unpinned application name
+        /// </summary>
         private Xamarin.Forms.Label AppNameLabel;
+
+        /// <summary>
+        /// A label for displaying pin or unpin information
+        /// </summary>
         private Xamarin.Forms.Label AfterLabel;
+
+        /// <summary>
+        /// Counts of pinned applications
+        /// </summary>
         private static int pinnedAppCount = 0;
-        public StackLayout additionalInfo;
 
         /// <summary>
         /// Identifies the SumOfCheckedApp bindable property
@@ -86,6 +110,9 @@ namespace TVApps.Views
             pinnedAppCount = SumOfCheckedApp;
         }
 
+        /// <summary>
+        /// Creates Labels and Container
+        /// </summary>
         private void CreateFooterAdditionalText()
         {
             SetBinding(FooterPinStatus.PinnedAppNameProperty, new Binding("PinnedAppName"));
@@ -131,7 +158,9 @@ namespace TVApps.Views
             PropertyChanged += FooterPinStatusPropertyChanged;
         }
 
-
+        /// <summary>
+        /// Creates Done Button
+        /// </summary>
         private void CreateDoneButton()
         {
             DoneButton = new Button()
@@ -147,13 +176,13 @@ namespace TVApps.Views
                 widthConstraint: Constraint.Constant(SizeUtils.GetWidthSize(300)),
                 yConstraint: Constraint.Constant(SizeUtils.GetHeightSize(662)),
                 xConstraint: Constraint.Constant(SizeUtils.GetWidthSize(96 + 1332 + 96)));
-       }
-
-        public Button GetDoneButton()
-        {
-            return DoneButton;
         }
 
+        /// <summary>
+        /// This method is called when the properties of FooterPinStatus is changed
+        /// </summary>
+        /// <param name="sender">The source of the event</param>
+        /// <param name="e">The event that is occurred when Property is changed</param>
         private void FooterPinStatusPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
         {
             if (e.PropertyName.Equals("SumOfCheckedApp"))
index e00d494..9764e59 100755 (executable)
@@ -36,11 +36,6 @@ namespace TVApps.Views
     /// </summary>
     public partial class MainPage : ContentPage
     {
-        private DropdownList sortList;
-        private Button doneButton;
-        private Button cancelButton;
-        private bool isShowOptions = false;
-
         /// <summary>
         /// SubPanel icon's transition height value when it focused.
         /// </summary>
@@ -116,6 +111,9 @@ namespace TVApps.Views
             set { SetValue(DeletePopupCommandProperty, value); }
         }
 
+        /// <summary>
+        /// A method for animation when application is terminated
+        /// </summary>
         private void PlayHideAnimation()
         {
             var animation = new Animation();
@@ -136,7 +134,6 @@ namespace TVApps.Views
             animation.Commit(this, "QuitAnimation", 16, 834, null, (v, s) => AppControlUtils.SelfTerminate());
         }
 
-
         /// <summary>
         /// A constructor
         /// Adds PropertyChanged event handler and MenuKey event listener
@@ -185,6 +182,10 @@ namespace TVApps.Views
             });
         }
 
+        /// <summary>
+        /// A method for customizing behavior immediately prior to the Page becoming visible
+        /// Sets focus chain and Moves focus to first App icon
+        /// </summary>
         protected override async void OnAppearing()
         {
             base.OnAppearing();
@@ -200,6 +201,9 @@ namespace TVApps.Views
             MakeFocusChaining();
         }
 
+        /// <summary>
+        /// A method for setting focus chain in list
+        /// </summary>>
         private void MakeFocusChaining()
         {
             List<View> upperList = AppList.GetAppsUpperList().ToList();
@@ -276,16 +280,24 @@ namespace TVApps.Views
             SetFocusChainingWithCurrentStatus(CurrentStatus);
         }
 
+        /// <summary>
+        /// Sets focus chain between two items
+        /// </summary>
+        /// <param name="left">A left App icon</param>
+        /// <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);
         }
 
+        /// <summary>
+        /// A method for setting focus chain list with FooterNormalStatus
+        /// </summary>
         private void SetFocusChainingUpAndDownForDefaultMode()
         {
             List<View> lowerList = AppList.GetAppsLowerList().ToList();
-            sortList = FooterNormal.GetSortDropdownList();
+            DropdownList sortList = FooterNormal.GetSortDropdownList();
 
             foreach (var item in lowerList)
             {
@@ -294,10 +306,13 @@ namespace TVApps.Views
             }
         }
 
+        /// <summary>
+        /// A method for setting focus chain list with FooterDeleteStatus
+        /// </summary>
         private void SetFocusChainingUpAndDownForDeleteMode()
         {
             List<View> lowerList = AppList.GetAppsLowerList().ToList();
-            cancelButton = FooterDelete.GetCancelButton();
+            Button cancelButton = FooterDelete.GetCancelButton();
 
             foreach (var item in lowerList)
             {
@@ -313,10 +328,13 @@ namespace TVApps.Views
             cancelButton?.On<Tizen>()?.SetNextFocusLeftView(cancelButton);
         }
 
+        /// <summary>
+        /// A method for setting focus chain list with FooterPinStatus
+        /// </summary>
         private void SetFocusChainingUpAndDownForPinMode()
         {
             List<View> lowerList = AppList.GetAppsLowerList().ToList();
-            doneButton = FooterPin.GetDoneButton();
+            Button doneButton = FooterPin.GetDoneButton();
 
             foreach (var item in lowerList)
             {
@@ -332,6 +350,10 @@ namespace TVApps.Views
             doneButton?.On<Tizen>()?.SetNextFocusLeftView(doneButton);
         }
 
+        /// <summary>
+        /// A method for changing focus chain list by Status
+        /// </summary>
+        /// <param name="status">The TVApps Application status</param>
         private void SetFocusChainingWithCurrentStatus(AppsStatus status)
         {
             switch (status)
@@ -363,15 +385,7 @@ namespace TVApps.Views
                     FooterPin.additionalInfo.IsVisible = false;
                     FooterDelete.IsVisible = false;
                     BackKeyInfo.Text = "Quit";
-                    if (isShowOptions)
-                    {
-                        isShowOptions = false;
-                    }
-                    else
-                    {
-                        AppList.InitializeFocus();
-                    }
-
+                    AppList.InitializeFocus();
                     break;
                 case AppsStatus.Pin:
                     FooterNormal.IsVisible = false;
index 0c277f6..3fc0b5e 100644 (file)
@@ -6,19 +6,59 @@ 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>
+        /// TODO : Comment this
+        /// </summary>
         public class Event : EventArgs
         {
             public string AppId;
@@ -26,11 +66,23 @@ namespace CoreApp
             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">A ID of launched application</param>
+        /// <param name="instanceId">A instance ID of launched application</param>
         private void AddedCallback(string appId, string instanceId)
         {
             EventHandler<Event> handler = AddRemoveEvent;
@@ -60,6 +112,11 @@ namespace CoreApp
             handler(this, eventInfo);
         }
 
+        /// <summary>
+        /// A method for handling terminated application
+        /// </summary>
+        /// <param name="appId">A ID of terminated application</param>
+        /// <param name="instanceId">A instance ID of terminated application</param>
         private void RemovedCallback(string appId, string instanceId)
         {
             EventHandler<Event> handler = AddRemoveEvent;
@@ -89,6 +146,12 @@ namespace CoreApp
             handler(this, eventInfo);
         }
 
+        /// <summary>
+        /// A method for handling application screen is updated
+        /// </summary>
+        /// <param name="appId">A ID of application that screen is updated</param>
+        /// <param name="instanceId">A 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;
@@ -118,6 +181,13 @@ namespace CoreApp
             handler(this, eventInfo);
         }
 
+        /// <summary>
+        /// A method for handling screen update is skipped
+        /// </summary>
+        /// <param name="appId">A ID of application that screen update is skipped</param>
+        /// <param name="instanceId">A 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;
@@ -156,15 +226,26 @@ namespace CoreApp
             return 0;
         }
 
-        public Sniper(IntPtr win, string path, int w, int h)
+        /// <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 = win;
+            nativeWindow = window;
             storagePath = path;
-            imageWidth = w;
-            imageHeight = h;
+            imageWidth = width;
+            imageHeight = height;
             SkipUpdateFlag = false;
         }
 
+        /// <summary>
+        /// A method for starting monitoring
+        /// Adds callbacks and initialize Sniper class
+        /// </summary>
         public void StartMonitor()
         {
             try
@@ -192,6 +273,9 @@ namespace CoreApp
             WriteLog("Sniper starts monitoring : " + storagePath + "ImageSize : " + imageWidth + "x" + imageHeight);
         }
 
+        /// <summary>
+        /// A method stops monitoring
+        /// </summary>
         public void StopMonitor()
         {
             try
@@ -206,6 +290,10 @@ namespace CoreApp
             WriteLog("Sniper stops monitoring : " + storagePath + "ImageSize : " + imageWidth + "x" + imageHeight);
         }
 
+        /// <summary>
+        /// A method requests updating application screen shot
+        /// </summary>
+        /// <param name="instanceId">A instance ID of application</param>
         public void RequestUpdate(string instanceId)
         {
             try
index 66cefbe..c577474 100644 (file)
@@ -1,9 +1,18 @@
 ï»¿<?xml version="1.0" encoding="utf-8" standalone="no"?>
 <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup Condition="'$(NuGetPackageRoot)' == ''">
-    <NuGetPackageRoot>$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
+  <PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
+    <RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
+    <RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
+    <ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">D:\git\home\TVHome\TVHome.TizenTV\TVHome.TizenTV.project.lock.json</ProjectAssetsFile>
+    <NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
+    <NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\samsung\.nuget\packages\</NuGetPackageFolders>
+    <NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">ProjectJson</NuGetProjectStyle>
+    <NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">4.2.0</NuGetToolVersion>
   </PropertyGroup>
-  <ImportGroup>
-    <Import Project="$(NuGetPackageRoot)\Xamarin.Forms\2.3.5-r233-003\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+Xamarin.iOS10+xamarinmac20\Xamarin.Forms.targets" Condition="Exists('$(NuGetPackageRoot)\Xamarin.Forms\2.3.5-r233-003\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+Xamarin.iOS10+xamarinmac20\Xamarin.Forms.targets')" />
+  <PropertyGroup>
+    <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
+  </PropertyGroup>
+  <ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
+    <Import Project="$(NuGetPackageRoot)xamarin.forms\2.3.5-r233-003\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+Xamarin.iOS10+xamarinmac20\Xamarin.Forms.targets" Condition="Exists('$(NuGetPackageRoot)xamarin.forms\2.3.5-r233-003\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+Xamarin.iOS10+xamarinmac20\Xamarin.Forms.targets')" />
   </ImportGroup>
 </Project>
\ No newline at end of file
index 544041f..cd899ae 100755 (executable)
@@ -5,10 +5,6 @@
     <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="true" type="dotnet" launch_mode="single">
-    <icon>xaapps.png</icon>
-    <label>Apps</label>
-  </ui-application>
   <shortcut-list />
   <privileges>
     <privilege>http://tizen.org/privilege/bluetooth</privilege>
index 4673323..77cb61b 100755 (executable)
@@ -152,6 +152,10 @@ namespace TVHome.Controls
         {
         }
 
+        /// <summary>
+        /// A method for changing context popup mode
+        /// </summary>
+        /// <param name="showOptions">Options for change context popup mode</param>
         public override void ChangeShowOptionsMode(bool showOptions)
         {
         }
index 398c7da..6c12bd3 100755 (executable)
@@ -103,6 +103,10 @@ namespace TVHome.Controls
         /// </summary>
         public abstract void ShowContextPopup();
 
-        public abstract void ChangeShowOptionsMode(bool isShowOptions);
+        /// <summary>
+        /// A method for changing context popup mode
+        /// </summary>
+        /// <param name="showOptions">Options for change context popup mode</param>
+        public abstract void ChangeShowOptionsMode(bool showOptions);
     }
 }
index 7a51c49..272a785 100755 (executable)
@@ -113,6 +113,11 @@ namespace TVHome.Controls
         {
         }
 
+
+        /// <summary>
+        /// A method for changing context popup mode
+        /// </summary>
+        /// <param name="showOptions">Options for change context popup mode</param>
         public override void ChangeShowOptionsMode(bool showOptions)
         {
         }
index 78e8fb5..8300b5a 100755 (executable)
@@ -194,6 +194,10 @@ namespace TVHome.Controls
 #pragma warning restore CS4014
         }
 
+        /// <summary>
+        /// A method for changing context popup mode
+        /// </summary>
+        /// <param name="showOptions">Options for change context popup mode</param>
         public override async void ChangeShowOptionsMode(bool showOptions)
         {
             if (showOptions)
index 83eb814..1101413 100755 (executable)
@@ -113,6 +113,10 @@ namespace TVHome.Controls
         {
         }
 
+        /// <summary>
+        /// A method for changing context popup mode
+        /// </summary>
+        /// <param name="showOptions">Options for change context popup mode</param>
         public override void ChangeShowOptionsMode(bool showOptions)
         {
         }
index 8b2689d..b5bc31b 100755 (executable)
@@ -87,11 +87,6 @@ namespace TVHome.Controls
         }
         */
 
-
-        private void AnimationInitialize(object sender, EventArgs e)
-        {
-        }
-
         /// <summary>
         /// Handles Button Clicked event
         /// </summary>
@@ -199,6 +194,10 @@ namespace TVHome.Controls
             isPopupShowing = true;
         }
 
+        /// <summary>
+        /// A method for changing context popup mode
+        /// </summary>
+        /// <param name="showOptions">Options for change context popup mode</param>
         public override void ChangeShowOptionsMode(bool showOptions)
         {
         }
index 3228473..493e011 100755 (executable)
@@ -57,14 +57,17 @@ namespace TVHome.ViewModels
         /// Gets or set MainList for MainPanel
         /// </summary>
         public IEnumerable<ShortcutInfo> MainList { get; set; }
+
         /// <summary>
         /// Gets or set RecentList for Recent SubPanel
         /// </summary>
         public IEnumerable<ShortcutInfo> RecentList { get; set; }
+
         /// <summary>
         /// Gets or set AppList for Apps SubPanel
         /// </summary>
         public IEnumerable<ShortcutInfo> AppList { get; set; }
+
         /// <summary>
         /// Gets or set SettingsList for Settings SubPanel
         /// </summary>
@@ -74,28 +77,47 @@ namespace TVHome.ViewModels
         /// A command for executing when MainPanel is focused.
         /// </summary>
         public Command MainPanelFocusedCommand { get; set; }
+
         /// <summary>
         /// A command for executing when SubPanel is focused.
         /// </summary>
         public Command SubPanelFocusedCommand { get; set; }
+
         /// <summary>
         /// A command for changing the status to Move status
         /// </summary>
         public Command SetMoveStatusCommand { get; set; }
+
         /// <summary>
         /// A command for changing the status to Unpin status
         /// </summary>
         public Command SetUnpinStatusCommand { get; set; }
 
+        /// <summary>
+        /// A command for moving item in sub panel
+        /// </summary>
         public Command OnMoveCommand { get; set; }
+
+        /// <summary>
+        /// A command for unpin item in sub panel
+        /// </summary>
         public Command OnUnpinCommand { get; set; }
+
+        /// <summary>
+        /// A command for delete a recent item
+        /// </summary>
         public Command OnClearCommand { get; set; }
+
+        /// <summary>
+        /// A command for delete all recent items
+        /// </summary>
         public Command OnClearAllCommand { get; set; }
 
         /// <summary>
         /// Gets or set CurrentStatus of HomeStatus
         /// </summary>
         public HomeStatus CurrentStatus { get; private set; }
+
         /// <summary>
         /// Gets or set SelectedMenuName of HomeMenuItem
         /// </summary>
@@ -135,7 +157,7 @@ namespace TVHome.ViewModels
         }
 
         /// <summary>
-        /// Sub panel's spacing size
+        /// Apps, Settings sub panel's spacing size
         /// </summary>
         public int SubPanelSpacing
         {
@@ -146,6 +168,9 @@ namespace TVHome.ViewModels
             }
         }
 
+        /// <summary>
+        /// Recent sub panel's spacing size
+        /// </summary>
         public double SubThumbPanelSpacing
         {
             get
@@ -599,11 +624,19 @@ namespace TVHome.ViewModels
             }
         }
 
+        /// <summary>
+        /// A method for unpin application
+        /// </summary>
+        /// <param name="appId">A application ID for unpin</param>
         private void UnpinAppShortcutInfo(string appId)
         {
             RemovePinnedApp(appId);
         }
 
+        /// <summary>
+        /// A method for updating pinned applications
+        /// </summary>
+        /// <param name="pinnedApps">A list of pinned application</param>
         private void UpdatePinnedApps(Dictionary<string, string> pinnedApps)
         {
             List<AppShortcutInfo> pinnedAppList = new List<AppShortcutInfo>();
@@ -618,6 +651,10 @@ namespace TVHome.ViewModels
             TVHomeImpl.GetInstance.AppShortcutControllerInstance.UpdatePinnedApps(pinnedAppList);
         }
 
+        /// <summary>
+        /// A method for remove pinned application
+        /// </summary>
+        /// <param name="appID">A ID of application for removing from pinned application list</param>
         private async void RemovePinnedApp(string appID)
         {
             Dictionary<string, string> PinnedApps = await TVHomeImpl.GetInstance.AppShortcutControllerInstance.GetPinnedAppsAppIDs();
@@ -629,6 +666,10 @@ namespace TVHome.ViewModels
             }
         }
 
+        /// <summary>
+        /// A method for updating reordered list
+        /// </summary>
+        /// <param name="moveList">A list of reordered views</param>
         private void MoveAppShortcutInfo(List<View> moveList)
         {
             List<AppShortcutInfo> pinnedAppList = new List<AppShortcutInfo>();
index 17d35e1..5780690 100755 (executable)
@@ -220,6 +220,10 @@ namespace TVHome.Views
             };
         }
 
+        /// <summary>
+        /// A method for customizing behavior immediately prior to the Page becoming visible
+        /// Sets focus chain and Moves focus to Apps icon in Main Panel
+        /// </summary>
         protected override void OnAppearing()
         {
             base.OnAppearing();
@@ -235,6 +239,9 @@ namespace TVHome.Views
             PageMainPanel.InitialFocusing();
         }
 
+        /// <summary>
+        /// A method for setting focus chain in Main Panel
+        /// </summary>
         private void InitializeMainPanelButtonFocusChain()
         {
             Button recentMainPanelButton = PageMainPanel.GetButtonToFocusing(0);
@@ -247,6 +254,9 @@ namespace TVHome.Views
             settingMainPanelButton.On<Tizen>().SetNextFocusLeftView(appsMainPanelButton);
         }
 
+        /// <summary>
+        /// A method for setting focus chain in Recent Sub Panel
+        /// </summary>
         private void InitializeRecentSubPanelButtonFocusChain()
         {
             List<View> recentSubPanelButtons = new List<View>(RecentSubPanel.GetSubPanelButtons());
@@ -271,6 +281,9 @@ namespace TVHome.Views
             }
         }
 
+        /// <summary>
+        /// A method for setting focus chain in Apps Sub Panel
+        /// </summary>
         private void InitializeAppsSubPanelButtonFocusChain()
         {
             List<View> appsSubPanelButtons = new List<View>(AppsSubPanel.GetSubPanelButtons());
@@ -297,6 +310,9 @@ namespace TVHome.Views
             }
         }
 
+        /// <summary>
+        /// A method for setting focus chain in Settings Sub Panel
+        /// </summary>
         private void InitializeSettingsSubPanelButtonFocusChain()
         {
             List<View> settingSubPanelButtons = new List<View>(SettingsSubPanel.GetSubPanelButtons());
index fc53ed6..1447636 100755 (executable)
@@ -31,7 +31,12 @@ namespace TVHome.Views
     public partial class MainPanel : Panel
     {
         public delegate void SelectEventHandler(HomeMenuItem item);
+
+        /// <summary>
+        /// A EventHandler for Item selected event
+        /// </summary>
         public SelectEventHandler OnItemSelectedHandler;
+
         /// <summary>
         /// MainPanel icon's transition height value when it focused.
         /// </summary>
@@ -95,6 +100,11 @@ namespace TVHome.Views
             button.FindByName<Button>("ButtonFocusArea").Focus();
         }
 
+        /// <summary>
+        /// A method for getting focusable element of Panel Button
+        /// </summary>
+        /// <param name="index">A index of panel button to get</param>
+        /// <returns>A Button element of Panel Button</returns>
         public Button GetButtonToFocusing(int index)
         {
             var button = PanelButtonGrid.Children[index];
@@ -134,20 +144,23 @@ namespace TVHome.Views
             await this.ScaleTo(1, 0);
         }
 
-        public void SetButtonFocus(int idx)
+        /// <summary>
+        /// A method for setting focus to Panel Button
+        /// </summary>
+        /// <param name="index">A index of Panel Button to set focus</param>
+        public void SetButtonFocus(int index)
         {
-            var button = PanelButtonGrid.Children[idx];
+            var button = PanelButtonGrid.Children[index];
             button.FindByName<Button>("ButtonFocusArea").Focus();
         }
 
+
         public override void MenuKeyPressed()
         {
-
         }
 
         public override void ForceHidePanel()
         {
-            throw new NotImplementedException();
         }
     }
 }
\ No newline at end of file
index 93d5274..a5cbb61 100755 (executable)
@@ -69,16 +69,28 @@ namespace TVHome.Views
             set { SetValue(OnMoveVMCommandProperty, value); }
         }
 
+        /// <summary>
+        /// Identifies the OnClearVMCommand bindable property
+        /// </summary>
         public static readonly BindableProperty OnClearVMCommandProperty = BindableProperty.Create("OnClearVMCommand", typeof(ICommand), typeof(SubThumbnailPanel));
 
+        /// <summary>
+        /// A command is executed when item remove is clicked
+        /// </summary>
         public ICommand OnClearVMCommand
         {
             get { return (ICommand)GetValue(OnClearVMCommandProperty); }
             set { SetValue(OnClearVMCommandProperty, value); }
         }
 
+        /// <summary>
+        /// Identifies the OnClearAllVMCommand bindable property
+        /// </summary>
         public static readonly BindableProperty OnClearAllVMCommandProperty = BindableProperty.Create("OnClearAllVMCommand", typeof(ICommand), typeof(SubThumbnailPanel));
 
+        /// <summary>
+        /// A command is executed when item remove all is clicked
+        /// </summary>
         public ICommand OnClearAllVMCommand
         {
             get { return (ICommand)GetValue(OnClearAllVMCommandProperty); }
@@ -148,6 +160,10 @@ namespace TVHome.Views
         /// A method for handling to hide panel
         /// </summary>
         public abstract void HidePanel();
+
+        /// <summary>
+        ///  A method for handling to hide panel without animation
+        /// </summary>
         public abstract void ForceHidePanel();
 
         /// <summary>
@@ -156,6 +172,10 @@ namespace TVHome.Views
         public abstract void ShowPanel();
 
         public delegate void ItemClickEventHandler();
+
+        /// <summary>
+        /// A EventHandler for handling Item is clicked
+        /// </summary>
         public ItemClickEventHandler OnItemClickEventHandler;
 
         /// <summary>
index af98020..145d4f4 100755 (executable)
@@ -219,6 +219,9 @@ namespace TVHome.Views
             }
         }
 
+        /// <summary>
+        /// A method for scrolling to right
+        /// </summary>
         private async void ScrollToRight()
         {
             double distance = SizeUtils.GetWidthSize((int)PanelScrollView.ScrollX) + SizeUtils.GetWidthSize(216);
@@ -226,6 +229,9 @@ namespace TVHome.Views
             await PanelScrollView.ScrollToAsync(distance, 0, true);
         }
 
+        /// <summary>
+        /// A method for scrolling to left
+        /// </summary>
         private async void ScrollToLeft()
         {
             double distance = SizeUtils.GetWidthSize((int)PanelScrollView.ScrollX) - SizeUtils.GetWidthSize(216);
@@ -458,6 +464,9 @@ namespace TVHome.Views
             ButtonViewList[prevIndex] = originItemView;
         }
 
+        /// <summary>
+        ///  A method for handling to hide panel without animation
+        /// </summary>
         public override void ForceHidePanel()
         {
             foreach (var item in PanelButtonStack.Children)
index f951f35..fc1facc 100755 (executable)
@@ -71,6 +71,9 @@ namespace TVHome.Views
             ButtonList = new List<PanelButton>();
         }
 
+        /// <summary>
+        ///
+        /// </summary>
         public override void MenuKeyPressed()
         {
             if (isFocused)
@@ -155,6 +158,9 @@ namespace TVHome.Views
             }
         }
 
+        /// <summary>
+        /// A method for scrolling to right
+        /// </summary>
         private async void ScrollToRight()
         {
             double distance = SizeUtils.GetWidthSize((int)PanelScrollView.ScrollX) + SizeUtils.GetWidthSize(320);
@@ -162,6 +168,9 @@ namespace TVHome.Views
             await PanelScrollView.ScrollToAsync(distance, 0, true);
         }
 
+        /// <summary>
+        /// A method for scrolling to left
+        /// </summary>
         private async void ScrollToLeft()
         {
             double distance = SizeUtils.GetWidthSize((int)PanelScrollView.ScrollX) - SizeUtils.GetWidthSize(320);
@@ -169,6 +178,10 @@ namespace TVHome.Views
             await PanelScrollView.ScrollToAsync(distance, 0, true);
         }
 
+        /// <summary>
+        /// A method for getting Panel Buttons
+        /// </summary>
+        /// <returns>A list of panel button views</returns>
         public IList<View> GetSubPanelButtons()
         {
             return PanelButtonStack.Children;
@@ -252,6 +265,9 @@ namespace TVHome.Views
 #pragma warning restore CS4014
         }
 
+        /// <summary>
+        ///  A method for handling to hide panel without animation
+        /// </summary>
         public override void ForceHidePanel()
         {
             foreach (var item in PanelButtonStack.Children)