* Fix download playback tracking bug * Remove unused permission * Add overview text to downloadmetadata * Add visual indicator of whether item is downloaded * Use downloaded item when available * Fix "null" overview text in download metadata * Fix crash when playing downloaded file with mpv * Clean up Co-authored-by: jarnedemeulemeester <jarnedemeulemeester@gmail.com>
75 lines
No EOL
2.8 KiB
Kotlin
75 lines
No EOL
2.8 KiB
Kotlin
package dev.jdtech.jellyfin
|
|
|
|
import android.os.Bundle
|
|
import android.view.View
|
|
import androidx.activity.viewModels
|
|
import androidx.appcompat.app.AppCompatActivity
|
|
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
|
|
import androidx.navigation.fragment.NavHostFragment
|
|
import androidx.navigation.ui.AppBarConfiguration
|
|
import androidx.navigation.ui.setupActionBarWithNavController
|
|
import androidx.navigation.ui.setupWithNavController
|
|
import com.google.android.material.bottomnavigation.BottomNavigationView
|
|
import dagger.hilt.android.AndroidEntryPoint
|
|
import dev.jdtech.jellyfin.databinding.ActivityMainAppBinding
|
|
import dev.jdtech.jellyfin.fragments.HomeFragmentDirections
|
|
import dev.jdtech.jellyfin.utils.loadDownloadLocation
|
|
import dev.jdtech.jellyfin.viewmodels.MainViewModel
|
|
|
|
@AndroidEntryPoint
|
|
class MainActivity : AppCompatActivity() {
|
|
|
|
private lateinit var binding: ActivityMainAppBinding
|
|
private val viewModel: MainViewModel by viewModels()
|
|
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
installSplashScreen()
|
|
super.onCreate(savedInstanceState)
|
|
|
|
binding = ActivityMainAppBinding.inflate(layoutInflater)
|
|
|
|
setContentView(binding.root)
|
|
|
|
val navView: BottomNavigationView = binding.navView
|
|
|
|
val navHostFragment =
|
|
supportFragmentManager.findFragmentById(R.id.nav_host_fragment_activity_main) as NavHostFragment
|
|
|
|
setSupportActionBar(binding.mainToolbar)
|
|
|
|
val navController = navHostFragment.navController
|
|
|
|
// Passing each menu ID as a set of Ids because each
|
|
// menu should be considered as top level destinations.
|
|
val appBarConfiguration = AppBarConfiguration(
|
|
setOf(
|
|
R.id.homeFragment, R.id.mediaFragment, R.id.favoriteFragment, R.id.downloadFragment
|
|
)
|
|
)
|
|
|
|
setupActionBarWithNavController(navController, appBarConfiguration)
|
|
navView.setupWithNavController(navController)
|
|
|
|
navController.addOnDestinationChangedListener { _, destination, _ ->
|
|
binding.navView.visibility = when (destination.id) {
|
|
R.id.settingsFragment, R.id.serverSelectFragment, R.id.addServerFragment, R.id.loginFragment, R.id.about_libraries_dest -> View.GONE
|
|
else -> View.VISIBLE
|
|
}
|
|
if (destination.id == R.id.about_libraries_dest) binding.mainToolbar.title = getString(R.string.app_info)
|
|
}
|
|
|
|
loadDownloadLocation(applicationContext)
|
|
|
|
viewModel.navigateToAddServer.observe(this, {
|
|
if (it) {
|
|
navController.navigate(HomeFragmentDirections.actionHomeFragmentToAddServerFragment())
|
|
viewModel.doneNavigateToAddServer()
|
|
}
|
|
})
|
|
}
|
|
|
|
override fun onSupportNavigateUp(): Boolean {
|
|
onBackPressed()
|
|
return true
|
|
}
|
|
} |