mirror of
https://github.com/libre-tube/LibreTube.git
synced 2024-12-15 06:40:30 +05:30
fix search bar issues
This commit is contained in:
parent
906728f51b
commit
3c20cd32b4
@ -14,7 +14,6 @@ import android.view.View
|
|||||||
import android.view.WindowInsets
|
import android.view.WindowInsets
|
||||||
import android.view.WindowInsetsController
|
import android.view.WindowInsetsController
|
||||||
import android.view.WindowManager
|
import android.view.WindowManager
|
||||||
import android.widget.Toast
|
|
||||||
import androidx.activity.OnBackPressedCallback
|
import androidx.activity.OnBackPressedCallback
|
||||||
import androidx.appcompat.widget.SearchView
|
import androidx.appcompat.widget.SearchView
|
||||||
import androidx.core.os.bundleOf
|
import androidx.core.os.bundleOf
|
||||||
@ -35,12 +34,12 @@ import com.github.libretube.ui.models.PlayerViewModel
|
|||||||
import com.github.libretube.ui.models.SearchViewModel
|
import com.github.libretube.ui.models.SearchViewModel
|
||||||
import com.github.libretube.ui.models.SubscriptionsViewModel
|
import com.github.libretube.ui.models.SubscriptionsViewModel
|
||||||
import com.github.libretube.ui.sheets.PlayingQueueSheet
|
import com.github.libretube.ui.sheets.PlayingQueueSheet
|
||||||
|
import com.github.libretube.ui.tools.BreakReminder
|
||||||
import com.github.libretube.util.NavBarHelper
|
import com.github.libretube.util.NavBarHelper
|
||||||
import com.github.libretube.util.NetworkHelper
|
import com.github.libretube.util.NetworkHelper
|
||||||
import com.github.libretube.util.PlayingQueue
|
import com.github.libretube.util.PlayingQueue
|
||||||
import com.github.libretube.util.PreferenceHelper
|
import com.github.libretube.util.PreferenceHelper
|
||||||
import com.github.libretube.util.ThemeHelper
|
import com.github.libretube.util.ThemeHelper
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
|
||||||
import com.google.android.material.elevation.SurfaceColors
|
import com.google.android.material.elevation.SurfaceColors
|
||||||
|
|
||||||
class MainActivity : BaseActivity() {
|
class MainActivity : BaseActivity() {
|
||||||
@ -49,15 +48,14 @@ class MainActivity : BaseActivity() {
|
|||||||
|
|
||||||
lateinit var navController: NavController
|
lateinit var navController: NavController
|
||||||
private var startFragmentId = R.id.homeFragment
|
private var startFragmentId = R.id.homeFragment
|
||||||
var autoRotationEnabled = false
|
|
||||||
|
val autoRotationEnabled = PreferenceHelper.getBoolean(PreferenceKeys.AUTO_ROTATION, false)
|
||||||
|
|
||||||
lateinit var searchView: SearchView
|
lateinit var searchView: SearchView
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
|
||||||
autoRotationEnabled = PreferenceHelper.getBoolean(PreferenceKeys.AUTO_ROTATION, false)
|
|
||||||
|
|
||||||
// enable auto rotation if turned on
|
// enable auto rotation if turned on
|
||||||
requestOrientationChange()
|
requestOrientationChange()
|
||||||
|
|
||||||
@ -129,7 +127,7 @@ class MainActivity : BaseActivity() {
|
|||||||
val log = PreferenceHelper.getErrorLog()
|
val log = PreferenceHelper.getErrorLog()
|
||||||
if (log != "") ErrorDialog().show(supportFragmentManager, null)
|
if (log != "") ErrorDialog().show(supportFragmentManager, null)
|
||||||
|
|
||||||
setupBreakReminder()
|
BreakReminder.setupBreakReminder(applicationContext)
|
||||||
|
|
||||||
setupSubscriptionsBadge()
|
setupSubscriptionsBadge()
|
||||||
|
|
||||||
@ -167,49 +165,6 @@ class MainActivity : BaseActivity() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Show a break reminder when watched too long
|
|
||||||
*/
|
|
||||||
private fun setupBreakReminder() {
|
|
||||||
if (!PreferenceHelper.getBoolean(
|
|
||||||
PreferenceKeys.BREAK_REMINDER_TOGGLE,
|
|
||||||
false
|
|
||||||
)
|
|
||||||
) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
val breakReminderPref = PreferenceHelper.getString(
|
|
||||||
PreferenceKeys.BREAK_REMINDER,
|
|
||||||
"0"
|
|
||||||
)
|
|
||||||
if (!breakReminderPref.all { Character.isDigit(it) } ||
|
|
||||||
breakReminderPref == "" || breakReminderPref == "0"
|
|
||||||
) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
Handler(Looper.getMainLooper()).postDelayed(
|
|
||||||
{
|
|
||||||
try {
|
|
||||||
MaterialAlertDialogBuilder(this)
|
|
||||||
.setTitle(getString(R.string.take_a_break))
|
|
||||||
.setMessage(
|
|
||||||
getString(
|
|
||||||
R.string.already_spent_time,
|
|
||||||
breakReminderPref
|
|
||||||
)
|
|
||||||
)
|
|
||||||
.setPositiveButton(R.string.okay, null)
|
|
||||||
.show()
|
|
||||||
} catch (e: Exception) {
|
|
||||||
kotlin.runCatching {
|
|
||||||
Toast.makeText(this, R.string.take_a_break, Toast.LENGTH_LONG).show()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
breakReminderPref.toLong() * 60 * 1000
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onPrepareOptionsMenu(menu: Menu?): Boolean {
|
override fun onPrepareOptionsMenu(menu: Menu?): Boolean {
|
||||||
menu?.findItem(R.id.action_queue)?.isVisible = PlayingQueue.isNotEmpty()
|
menu?.findItem(R.id.action_queue)?.isVisible = PlayingQueue.isNotEmpty()
|
||||||
return super.onPrepareOptionsMenu(menu)
|
return super.onPrepareOptionsMenu(menu)
|
||||||
|
@ -7,9 +7,7 @@ import android.view.View
|
|||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import androidx.fragment.app.activityViewModels
|
import androidx.fragment.app.activityViewModels
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import androidx.navigation.fragment.findNavController
|
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
import com.github.libretube.R
|
|
||||||
import com.github.libretube.api.RetrofitInstance
|
import com.github.libretube.api.RetrofitInstance
|
||||||
import com.github.libretube.databinding.FragmentSearchBinding
|
import com.github.libretube.databinding.FragmentSearchBinding
|
||||||
import com.github.libretube.db.DatabaseHolder.Companion.Database
|
import com.github.libretube.db.DatabaseHolder.Companion.Database
|
||||||
@ -20,8 +18,6 @@ import com.github.libretube.ui.adapters.SearchHistoryAdapter
|
|||||||
import com.github.libretube.ui.adapters.SearchSuggestionsAdapter
|
import com.github.libretube.ui.adapters.SearchSuggestionsAdapter
|
||||||
import com.github.libretube.ui.base.BaseFragment
|
import com.github.libretube.ui.base.BaseFragment
|
||||||
import com.github.libretube.ui.models.SearchViewModel
|
import com.github.libretube.ui.models.SearchViewModel
|
||||||
import retrofit2.HttpException
|
|
||||||
import java.io.IOException
|
|
||||||
|
|
||||||
class SearchFragment : BaseFragment() {
|
class SearchFragment : BaseFragment() {
|
||||||
private lateinit var binding: FragmentSearchBinding
|
private lateinit var binding: FragmentSearchBinding
|
||||||
@ -72,12 +68,9 @@ class SearchFragment : BaseFragment() {
|
|||||||
lifecycleScope.launchWhenCreated {
|
lifecycleScope.launchWhenCreated {
|
||||||
val response = try {
|
val response = try {
|
||||||
RetrofitInstance.api.getSuggestions(query)
|
RetrofitInstance.api.getSuggestions(query)
|
||||||
} catch (e: IOException) {
|
} catch (e: Exception) {
|
||||||
println(e)
|
println(e)
|
||||||
Log.e(TAG(), "IOException, you might not have internet connection")
|
Log.e(TAG(), e.toString())
|
||||||
return@launchWhenCreated
|
|
||||||
} catch (e: HttpException) {
|
|
||||||
Log.e(TAG(), "HttpException, unexpected response")
|
|
||||||
return@launchWhenCreated
|
return@launchWhenCreated
|
||||||
}
|
}
|
||||||
// only load the suggestions if the input field didn't get cleared yet
|
// only load the suggestions if the input field didn't get cleared yet
|
||||||
@ -109,14 +102,4 @@ class SearchFragment : BaseFragment() {
|
|||||||
binding.historyEmpty.visibility = View.VISIBLE
|
binding.historyEmpty.visibility = View.VISIBLE
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onStop() {
|
|
||||||
if (findNavController().currentDestination?.id != R.id.searchResultFragment) {
|
|
||||||
// remove the search focus
|
|
||||||
(activity as MainActivity)
|
|
||||||
.binding.toolbar.menu
|
|
||||||
.findItem(R.id.action_search).collapseActionView()
|
|
||||||
}
|
|
||||||
super.onStop()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,55 @@
|
|||||||
|
package com.github.libretube.ui.tools
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
|
import android.os.Handler
|
||||||
|
import android.os.Looper
|
||||||
|
import android.widget.Toast
|
||||||
|
import com.github.libretube.R
|
||||||
|
import com.github.libretube.constants.PreferenceKeys
|
||||||
|
import com.github.libretube.util.PreferenceHelper
|
||||||
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
|
|
||||||
|
object BreakReminder {
|
||||||
|
/**
|
||||||
|
* Show a break reminder when watched too long
|
||||||
|
*/
|
||||||
|
fun setupBreakReminder(context: Context) {
|
||||||
|
if (!PreferenceHelper.getBoolean(
|
||||||
|
PreferenceKeys.BREAK_REMINDER_TOGGLE,
|
||||||
|
false
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
val breakReminderPref = PreferenceHelper.getString(
|
||||||
|
PreferenceKeys.BREAK_REMINDER,
|
||||||
|
"0"
|
||||||
|
)
|
||||||
|
if (!breakReminderPref.all { Character.isDigit(it) } ||
|
||||||
|
breakReminderPref == "" || breakReminderPref == "0"
|
||||||
|
) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
Handler(Looper.getMainLooper()).postDelayed(
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
MaterialAlertDialogBuilder(context)
|
||||||
|
.setTitle(R.string.take_a_break)
|
||||||
|
.setMessage(
|
||||||
|
context.getString(
|
||||||
|
R.string.already_spent_time,
|
||||||
|
breakReminderPref
|
||||||
|
)
|
||||||
|
)
|
||||||
|
.setPositiveButton(R.string.okay, null)
|
||||||
|
.show()
|
||||||
|
} catch (e: Exception) {
|
||||||
|
runCatching {
|
||||||
|
Toast.makeText(context, R.string.take_a_break, Toast.LENGTH_LONG).show()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
breakReminderPref.toLong() * 60 * 1000
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user