diff --git a/Opus/Code/MainActivity.cs b/Opus/Code/MainActivity.cs index cc9b243..b0011dc 100644 --- a/Opus/Code/MainActivity.cs +++ b/Opus/Code/MainActivity.cs @@ -186,10 +186,17 @@ namespace Opus else if (MusicPlayer.UseCastPlayer) MusicPlayer.GetQueueFromCast(); - if (SearchableActivity.instance != null && SearchableActivity.instance.SearchQuery != null && SearchableActivity.instance.SearchQuery != "") + if (SearchableActivity.instance != null) { - if(YoutubeSearch.instances == null || SearchableActivity.instance.SearchQuery != YoutubeSearch.instances[0].querryType) //We don't want to redo the query if the user already searched for the exact same query. - SupportFragmentManager.BeginTransaction().Replace(Resource.Id.contentView, Pager.NewInstance(SearchableActivity.instance.SearchQuery, 0)).AddToBackStack("Youtube").Commit(); + IMenuItem searchItem = menu.FindItem(Resource.Id.search); + SearchView searchView = (SearchView)searchItem.ActionView; + searchView.ClearFocus(); + + if(SearchableActivity.instance.SearchQuery != null && SearchableActivity.instance.SearchQuery != "") + { + if (YoutubeSearch.instances == null || SearchableActivity.instance.SearchQuery != YoutubeSearch.instances[0].querryType) //We don't want to redo the query if the user already searched for the exact same query. + SupportFragmentManager.BeginTransaction().Replace(Resource.Id.contentView, Pager.NewInstance(SearchableActivity.instance.SearchQuery, 0)).AddToBackStack("Youtube").Commit(); + } SearchableActivity.instance = null; } diff --git a/Opus/Code/UI/Fragments/SearchableActivity.cs b/Opus/Code/UI/Fragments/SearchableActivity.cs index c4810c5..9ec71de 100644 --- a/Opus/Code/UI/Fragments/SearchableActivity.cs +++ b/Opus/Code/UI/Fragments/SearchableActivity.cs @@ -100,8 +100,10 @@ namespace Opus.Fragments searchView = searchItem.ActionView.JavaCast(); searchView.MaxWidth = int.MaxValue; searchView.QueryHint = GetString(Resource.String.youtube_search); + searchView.SetQuery(((SearchView)MainActivity.instance.menu.FindItem(Resource.Id.search).ActionView).Query, false); searchView.QueryTextChange += (s, e) => { + Console.WriteLine("&Search view query changed, newText: " + e.NewText); if (e.NewText.Length > 0) { Task.Run(() => @@ -121,7 +123,7 @@ namespace Opus.Fragments RunOnUiThread(new Java.Lang.Runnable(() => { ListView.Adapter = new SuggestionAdapter(instance, Resource.Layout.SuggestionLayout, suggestions); })); } } - catch { } + catch(Exception ex) { Console.WriteLine("&Search ex: " + ex.Message); } }); } else @@ -140,8 +142,6 @@ namespace Opus.Fragments e.Handled = true; }; searchItem.SetOnActionExpandListener(this); - SearchQuery = ((SearchView)MainActivity.instance.menu.FindItem(Resource.Id.search).ActionView).Query; - searchView.SetQuery(SearchQuery, false); return base.OnCreateOptionsMenu(menu); }