private async void searchTimer_Tick(object sender, EventArgs e)
        {
            searchTimer.Stop();
            var query = vm.query;

            if (String.IsNullOrEmpty(query))
            {
                vm.subtitles      = new List <Subtitle>();
                vm.lastSearchType = SearchType.ST_NONE;
                vm.isWorking      = false;
                return;
            }

            vm.isWorking = true;
            if (debug)
            {
                await Task.Run(() => Thread.Sleep(3000));

                vm.subtitles = new List <Subtitle>
                {
                    new Subtitle
                    {
                        fileName     = "Doctor.Who.2005.S10E02.720p.HDTV.x264-FoV[eztv]",
                        rating       = "0",
                        languageName = "English"
                    },
                    new Subtitle
                    {
                        fileName     = "Doctor.Who.2005.S10E02.1080p.HEVC.x265-MeGusta",
                        rating       = "10.0",
                        languageName = "English"
                    }
                };
            }
            else
            {
                vm.lastSearchType = SearchType.ST_QUERY;
                try
                {
                    vm.subtitles = await service.searchSubtitlesFromQueryAsync(vm.selectedLanguage.service_id, query);
                }
                catch
                {
                    this.ShowMessageAsync("Error", "An error happened while fetching subtitles, please try again.");
                }
            }
            vm.isWorking = false;
        }