namespace TVHome.Views
{
+ using System.Runtime.CompilerServices;
using Tizen = Xamarin.Forms.PlatformConfiguration.Tizen;
/// <summary>
/// A custom view for displaying main page of TV Home
{
base.OnAppearing();
+ AppsSubPanel.ItemSourceChanged += (s, e)=>
+ {
+ InitializeAppsSubPanelButtonFocusChain();
+ };
+
InitializeMainPanelButtonFocusChain();
- InitializeSubPanelButtonFocusChain();
+ InitializeAppsSubPanelButtonFocusChain();
+ InitializeSettingsSubPanelButtonFocusChain();
PageMainPanel.InitialFocusing();
}
}
}
- private void InitializeSubPanelButtonFocusChain()
+ private void InitializeAppsSubPanelButtonFocusChain()
{
List<View> appsSubPanelButtons = new List<View>(AppsSubPanel.GetSubPanelButtons());
- List<View> settingSubPanelButtons = new List<View>(SettingsSubPanel.GetSubPanelButtons());
-
Button appsMainPanelButton = PageMainPanel.GetButtonToFocusing(1);
- Button settingMainPanelButton = PageMainPanel.GetButtonToFocusing(2);
foreach (var item in appsSubPanelButtons)
{
item.FindByName<Button>("ButtonFocusArea").On<Tizen>().SetNextFocusUpView(appsMainPanelButton);
}
+ }
+
+ private void InitializeSettingsSubPanelButtonFocusChain()
+ {
+ List<View> settingSubPanelButtons = new List<View>(SettingsSubPanel.GetSubPanelButtons());
+ Button settingMainPanelButton = PageMainPanel.GetButtonToFocusing(2);
foreach (var item in settingSubPanelButtons)
{
using System.Windows.Input;
using LibTVRefCommonPortable.DataModels;
using Xamarin.Forms;
+using System;
namespace TVHome.Views
{
}
/// <summary>
+ /// A Event Handler to notify if itemSource is changed.
+ /// </summary>
+ public event EventHandler ItemSourceChanged;
+
+ /// <summary>
+ /// A Event Handler invoker method.
+ /// </summary>
+ /// <param name="e">A event argument. But this is always EventArgs.Empty</param>
+ protected virtual void OnItemSourceChanged(EventArgs e)
+ {
+ EventHandler handler = ItemSourceChanged;
+ handler?.Invoke(this, e);
+ }
+
+ /// <summary>
/// Identifies the ItemTemplate bindable property
/// </summary>
public static readonly BindableProperty ItemTemplateProperty = BindableProperty.Create("ItemTemplate", typeof(DataTemplate), typeof(SubPanel));
using System.Windows.Input;
using System.Collections.Generic;
using LibTVRefCommonPortable.Utils;
+using System;
namespace TVHome.Views
{
ButtonViewList.Add(button.View);
}
+ OnItemSourceChanged(EventArgs.Empty);
+
if (!isFocused)
{
ShowPanel();