using System;
using UnityEngine.UI;

// Token: 0x0200009A RID: 154
public class ButtonSmartNavigation : Button
{
	// Token: 0x06000E85 RID: 3717 RVA: 0x0011602B File Offset: 0x0011422B
	private bool CanReachSelectable(Selectable select)
	{
		return !select || (select.interactable && select.gameObject.activeInHierarchy);
	}

	// Token: 0x06000E86 RID: 3718 RVA: 0x0011604C File Offset: 0x0011424C
	public override Selectable FindSelectableOnLeft()
	{
		Selectable selectable = base.FindSelectableOnLeft();
		while (!this.CanReachSelectable(selectable))
		{
			selectable = selectable.FindSelectableOnLeft();
		}
		return selectable;
	}

	// Token: 0x06000E87 RID: 3719 RVA: 0x00116074 File Offset: 0x00114274
	public override Selectable FindSelectableOnRight()
	{
		Selectable selectable = base.FindSelectableOnRight();
		while (!this.CanReachSelectable(selectable))
		{
			selectable = selectable.FindSelectableOnRight();
		}
		return selectable;
	}

	// Token: 0x06000E88 RID: 3720 RVA: 0x0011609C File Offset: 0x0011429C
	public override Selectable FindSelectableOnUp()
	{
		Selectable selectable = base.FindSelectableOnUp();
		while (!this.CanReachSelectable(selectable))
		{
			selectable = selectable.FindSelectableOnUp();
		}
		return selectable;
	}

	// Token: 0x06000E89 RID: 3721 RVA: 0x001160C4 File Offset: 0x001142C4
	public override Selectable FindSelectableOnDown()
	{
		Selectable selectable = base.FindSelectableOnDown();
		while (!this.CanReachSelectable(selectable))
		{
			selectable = selectable.FindSelectableOnDown();
		}
		return selectable;
	}
}
