teapod/app/src/main/java/org/mosad/teapod/MainActivity.kt

88 lines
2.8 KiB
Kotlin
Raw Normal View History

2020-10-08 22:20:20 +02:00
package org.mosad.teapod
import android.os.Bundle
2020-10-11 10:02:00 +02:00
import android.view.MenuItem
2020-10-08 22:20:20 +02:00
import com.google.android.material.bottomnavigation.BottomNavigationView
import androidx.appcompat.app.AppCompatActivity
2020-10-11 10:02:00 +02:00
import androidx.fragment.app.Fragment
import androidx.fragment.app.commit
import kotlinx.android.synthetic.main.activity_main.*
2020-10-08 22:20:20 +02:00
import org.mosad.teapod.parser.AoDParser
2020-10-11 10:02:00 +02:00
import org.mosad.teapod.ui.MediaFragment
import org.mosad.teapod.ui.account.AccountFragment
import org.mosad.teapod.ui.home.HomeFragment
import org.mosad.teapod.ui.library.LibraryFragment
import org.mosad.teapod.ui.search.SearchFragment
import org.mosad.teapod.util.GUIMedia
2020-10-08 22:20:20 +02:00
2020-10-11 10:02:00 +02:00
class MainActivity : AppCompatActivity(), BottomNavigationView.OnNavigationItemSelectedListener {
private var activeFragment: Fragment = HomeFragment() // the currently active fragment, home at the start
2020-10-08 22:20:20 +02:00
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val navView: BottomNavigationView = findViewById(R.id.nav_view)
2020-10-11 10:02:00 +02:00
navView.setOnNavigationItemSelectedListener(this)
2020-10-08 22:20:20 +02:00
load()
}
2020-10-11 10:02:00 +02:00
override fun onBackPressed() {
if (supportFragmentManager.backStackEntryCount > 0) {
supportFragmentManager.popBackStack()
} else {
if (activeFragment !is HomeFragment) {
nav_view.selectedItemId = R.id.navigation_home
} else {
super.onBackPressed()
}
}
}
override fun onNavigationItemSelected(item: MenuItem): Boolean {
val ret = when (item.itemId) {
R.id.navigation_home -> {
activeFragment = HomeFragment()
true
}
R.id.navigation_library -> {
activeFragment = LibraryFragment()
true
}
R.id.navigation_search -> {
activeFragment = SearchFragment()
true
}
R.id.navigation_account -> {
activeFragment = AccountFragment()
true
}
else -> false
}
supportFragmentManager.commit {
replace(R.id.nav_host_fragment, activeFragment)
}
return ret
}
2020-10-08 22:20:20 +02:00
private fun load() {
// TODO
}
2020-10-11 10:02:00 +02:00
fun showDetailFragment(media: GUIMedia) {
val streams = AoDParser().loadStreams(media.link) // load the streams for the selected media
val mediaFragment = MediaFragment(media, streams)
supportFragmentManager.commit {
add(R.id.nav_host_fragment, mediaFragment, "MediaFragment")
addToBackStack(null)
show(mediaFragment)
}
println("visible !!!: " + mediaFragment.isVisible)
println(supportFragmentManager.backStackEntryCount)
}
2020-10-08 22:20:20 +02:00
}