mirror of
https://github.com/libre-tube/LibreTube.git
synced 2025-04-29 16:30:31 +05:30
Use ViewModel extension in the main activity
This commit is contained in:
parent
5ca10ace18
commit
06714c8e45
@ -11,12 +11,12 @@ import android.view.View
|
|||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.widget.ScrollView
|
import android.widget.ScrollView
|
||||||
import androidx.activity.addCallback
|
import androidx.activity.addCallback
|
||||||
|
import androidx.activity.viewModels
|
||||||
import androidx.appcompat.widget.SearchView
|
import androidx.appcompat.widget.SearchView
|
||||||
import androidx.core.content.pm.ShortcutManagerCompat
|
import androidx.core.content.pm.ShortcutManagerCompat
|
||||||
import androidx.core.os.bundleOf
|
import androidx.core.os.bundleOf
|
||||||
import androidx.core.view.children
|
import androidx.core.view.children
|
||||||
import androidx.core.widget.NestedScrollView
|
import androidx.core.widget.NestedScrollView
|
||||||
import androidx.lifecycle.ViewModelProvider
|
|
||||||
import androidx.navigation.NavController
|
import androidx.navigation.NavController
|
||||||
import androidx.navigation.findNavController
|
import androidx.navigation.findNavController
|
||||||
import androidx.navigation.fragment.NavHostFragment
|
import androidx.navigation.fragment.NavHostFragment
|
||||||
@ -47,12 +47,17 @@ import com.github.libretube.ui.tools.SleepTimer
|
|||||||
import com.google.android.material.elevation.SurfaceColors
|
import com.google.android.material.elevation.SurfaceColors
|
||||||
|
|
||||||
class MainActivity : BaseActivity() {
|
class MainActivity : BaseActivity() {
|
||||||
|
|
||||||
lateinit var binding: ActivityMainBinding
|
lateinit var binding: ActivityMainBinding
|
||||||
|
|
||||||
lateinit var navController: NavController
|
lateinit var navController: NavController
|
||||||
|
lateinit var searchView: SearchView
|
||||||
|
private lateinit var searchItem: MenuItem
|
||||||
|
|
||||||
private var startFragmentId = R.id.homeFragment
|
private var startFragmentId = R.id.homeFragment
|
||||||
|
|
||||||
|
private val playerViewModel: PlayerViewModel by viewModels()
|
||||||
|
private val searchViewModel: SearchViewModel by viewModels()
|
||||||
|
private val subscriptionsViewModel: SubscriptionsViewModel by viewModels()
|
||||||
|
|
||||||
val autoRotationEnabled: Boolean by lazy {
|
val autoRotationEnabled: Boolean by lazy {
|
||||||
PreferenceHelper.getBoolean(
|
PreferenceHelper.getBoolean(
|
||||||
PreferenceKeys.AUTO_ROTATION,
|
PreferenceKeys.AUTO_ROTATION,
|
||||||
@ -60,9 +65,6 @@ class MainActivity : BaseActivity() {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
lateinit var searchView: SearchView
|
|
||||||
private lateinit var searchItem: MenuItem
|
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
|
||||||
@ -153,8 +155,6 @@ class MainActivity : BaseActivity() {
|
|||||||
|
|
||||||
setupSubscriptionsBadge()
|
setupSubscriptionsBadge()
|
||||||
|
|
||||||
val playerViewModel = ViewModelProvider(this)[PlayerViewModel::class.java]
|
|
||||||
|
|
||||||
// new way of handling back presses
|
// new way of handling back presses
|
||||||
onBackPressedDispatcher.addCallback {
|
onBackPressedDispatcher.addCallback {
|
||||||
if (playerViewModel.isFullscreen.value == true) {
|
if (playerViewModel.isFullscreen.value == true) {
|
||||||
@ -251,14 +251,11 @@ class MainActivity : BaseActivity() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
val subscriptionsViewModel = ViewModelProvider(this)[SubscriptionsViewModel::class.java]
|
|
||||||
subscriptionsViewModel.fetchSubscriptions()
|
subscriptionsViewModel.fetchSubscriptions()
|
||||||
|
|
||||||
subscriptionsViewModel.videoFeed.observe(this) {
|
subscriptionsViewModel.videoFeed.observe(this) { feed ->
|
||||||
val lastSeenVideoId = PreferenceHelper.getLastSeenVideoId()
|
val lastSeenVideoIndex = feed.orEmpty()
|
||||||
val lastSeenVideoIndex = subscriptionsViewModel.videoFeed.value?.indexOfFirst {
|
.indexOfFirst { PreferenceHelper.getLastSeenVideoId() == it.url?.toID() }
|
||||||
lastSeenVideoId == it.url?.toID()
|
|
||||||
} ?: return@observe
|
|
||||||
if (lastSeenVideoIndex < 1) return@observe
|
if (lastSeenVideoIndex < 1) return@observe
|
||||||
binding.bottomNav.getOrCreateBadge(R.id.subscriptionsFragment).apply {
|
binding.bottomNav.getOrCreateBadge(R.id.subscriptionsFragment).apply {
|
||||||
number = lastSeenVideoIndex
|
number = lastSeenVideoIndex
|
||||||
@ -310,8 +307,6 @@ class MainActivity : BaseActivity() {
|
|||||||
this.searchItem = searchItem
|
this.searchItem = searchItem
|
||||||
searchView = searchItem.actionView as SearchView
|
searchView = searchItem.actionView as SearchView
|
||||||
|
|
||||||
val searchViewModel = ViewModelProvider(this)[SearchViewModel::class.java]
|
|
||||||
|
|
||||||
searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
|
searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
|
||||||
override fun onQueryTextSubmit(query: String?): Boolean {
|
override fun onQueryTextSubmit(query: String?): Boolean {
|
||||||
navController.navigate(R.id.searchResultFragment, bundleOf("query" to query))
|
navController.navigate(R.id.searchResultFragment, bundleOf("query" to query))
|
||||||
@ -486,7 +481,6 @@ class MainActivity : BaseActivity() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val playerViewModel = ViewModelProvider(this)[PlayerViewModel::class.java]
|
|
||||||
playerViewModel.isFullscreen.value = false
|
playerViewModel.isFullscreen.value = false
|
||||||
requestedOrientation = if (autoRotationEnabled) {
|
requestedOrientation = if (autoRotationEnabled) {
|
||||||
ActivityInfo.SCREEN_ORIENTATION_USER
|
ActivityInfo.SCREEN_ORIENTATION_USER
|
||||||
|
Loading…
x
Reference in New Issue
Block a user