diff --git a/app/src/main/java/com/github/libretube/SearchFragment.kt b/app/src/main/java/com/github/libretube/SearchFragment.kt index 6163d9faf..e97d7d44d 100644 --- a/app/src/main/java/com/github/libretube/SearchFragment.kt +++ b/app/src/main/java/com/github/libretube/SearchFragment.kt @@ -15,7 +15,6 @@ import android.view.inputmethod.InputMethodManager import android.widget.* import android.widget.TextView.* import androidx.appcompat.app.AlertDialog -import androidx.core.content.ContentProviderCompat.requireContext import androidx.fragment.app.Fragment import androidx.lifecycle.lifecycleScope import androidx.preference.PreferenceManager @@ -68,10 +67,20 @@ class SearchFragment : Fragment() { var tempSelectedItem = 0 filterImageView.setOnClickListener { - val options = arrayOf(getString(R.string.all), getString(R.string.videos), getString(R.string.channels), getString(R.string.playlists)) + val filterOptions = arrayOf( + getString(R.string.all), + getString(R.string.videos), + getString(R.string.channels), + getString(R.string.playlists), + getString(R.string.music_songs), + getString(R.string.music_videos), + getString(R.string.music_albums), + getString(R.string.music_playlists) + ) + AlertDialog.Builder(view.context) .setTitle(getString(R.string.choose_filter)) - .setSingleChoiceItems(options, selectedFilter, DialogInterface.OnClickListener { + .setSingleChoiceItems(filterOptions, selectedFilter, DialogInterface.OnClickListener { _, id -> tempSelectedItem = id }) .setPositiveButton(getString(R.string.okay), DialogInterface.OnClickListener { _, _ -> @@ -81,6 +90,10 @@ class SearchFragment : Fragment() { 1 -> "videos" 2 -> "channels" 3 -> "playlists" + 4 -> "music_songs" + 5 -> "music_videos" + 6 -> "music_albums" + 7 -> "music_playlists" else -> "all" } fetchSearch(autoTextView.text.toString()) @@ -98,7 +111,7 @@ class SearchFragment : Fragment() { historyRecycler.layoutManager = LinearLayoutManager(view.context) var historylist = getHistory() - if (historylist.size != 0) { + if (historylist.isNotEmpty()) { historyRecycler.adapter = SearchHistoryAdapter(requireContext(), historylist, autoTextView) } @@ -107,7 +120,7 @@ class SearchFragment : Fragment() { autoTextView.requestFocus() val imm = requireContext().getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager - imm!!.showSoftInput(autoTextView, InputMethodManager.SHOW_IMPLICIT) + imm.showSoftInput(autoTextView, InputMethodManager.SHOW_IMPLICIT) autoTextView.addTextChangedListener(object : TextWatcher { override fun beforeTextChanged( s: CharSequence?, @@ -147,7 +160,7 @@ class SearchFragment : Fragment() { searchRecView.visibility = GONE historyRecycler.visibility = VISIBLE var historylist = getHistory() - if (historylist.size != 0) { + if (historylist.isNotEmpty()) { historyRecycler.adapter = SearchHistoryAdapter(requireContext(), historylist, autoTextView) } @@ -157,8 +170,8 @@ class SearchFragment : Fragment() { }) autoTextView.setOnEditorActionListener(OnEditorActionListener { _, actionId, _ -> if (actionId == EditorInfo.IME_ACTION_SEARCH) { - hideKeyboard(); - autoTextView.dismissDropDown(); + hideKeyboard() + autoTextView.dismissDropDown() return@OnEditorActionListener true } false @@ -212,11 +225,7 @@ class SearchFragment : Fragment() { if (!isLoading) { isLoading = true val response = try { - RetrofitInstance.api.getSearchResultsNextPage( - query!!, - apiSearchFilter!!, - nextPage!! - ) + RetrofitInstance.api.getSearchResultsNextPage(query,apiSearchFilter,nextPage!!) } catch (e: IOException) { println(e) Log.e(TAG, "IOException, you might not have internet connection") diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 6e7281ea0..ec277ead3 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -80,4 +80,8 @@ History Search History Clear History + Music Songs + Music Videos + Music Albums + Music Playlists