// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.

using System.Collections.Generic;
using System.Linq;
using osu.Framework;
using osu.Framework.Allocation;
using osu.Framework.Input.Handlers;
using osu.Framework.Localisation;
using osu.Game.Configuration;
using osu.Game.Graphics.UserInterfaceV2;
using osu.Game.Localisation;

namespace osu.Game.Overlays.Settings.Sections.Input
{
    /// <summary>
    /// Touch input settings subsection common to all touch handlers (even on different platforms).
    /// </summary>
    public partial class TouchSettings : InputSubsection
    {
        protected override LocalisableString Header => TouchSettingsStrings.Touch;

        protected override bool IsToggleable => !RuntimeInfo.IsMobile;

        public TouchSettings(InputHandler handler)
            : base(handler)
        {
        }

        [BackgroundDependencyLoader]
        private void load(OsuConfigManager osuConfig)
        {
            Add(new SettingsItemV2(new FormCheckBox
            {
                Caption = TouchSettingsStrings.DisableTapsDuringGameplay,
                Current = osuConfig.GetBindable<bool>(OsuSetting.TouchDisableGameplayTaps)
            }));
        }

        public override IEnumerable<LocalisableString> FilterTerms => base.FilterTerms.Concat(new LocalisableString[] { @"touchscreen" });
    }
}
