move showFragment to ActivityUtils

This commit is contained in:
Jannik 2021-01-20 16:10:41 +01:00
parent a740ccfee1
commit c6874d0e54
Signed by: Seil0
GPG Key ID: E8459F3723C52C24
7 changed files with 35 additions and 26 deletions

View File

@ -189,19 +189,6 @@ class MainActivity : AppCompatActivity(), BottomNavigationView.OnNavigationItemS
finish() finish()
} }
/**
* Show a fragment on top of the current fragment.
* The current fragment is replaced and the new one is added
* to the back stack.
*/
fun showFragment(fragment: Fragment) {
supportFragmentManager.commit {
replace(R.id.nav_host_fragment, fragment, fragment.javaClass.simpleName)
addToBackStack(fragment.javaClass.name)
show(fragment)
}
}
/** /**
* start the player as new activity * start the player as new activity
*/ */

View File

@ -17,6 +17,7 @@ import org.mosad.teapod.preferences.EncryptedPreferences
import org.mosad.teapod.preferences.Preferences import org.mosad.teapod.preferences.Preferences
import org.mosad.teapod.ui.components.LoginDialog import org.mosad.teapod.ui.components.LoginDialog
import org.mosad.teapod.util.DataTypes.Theme import org.mosad.teapod.util.DataTypes.Theme
import org.mosad.teapod.util.showFragment
class AccountFragment : Fragment() { class AccountFragment : Fragment() {
@ -53,7 +54,7 @@ class AccountFragment : Fragment() {
} }
binding.linearInfo.setOnClickListener { binding.linearInfo.setOnClickListener {
(activity as MainActivity).showFragment(AboutFragment()) activity?.showFragment(AboutFragment())
} }
binding.switchSecondary.setOnClickListener { binding.switchSecondary.setOnClickListener {

View File

@ -22,6 +22,7 @@ import org.mosad.teapod.util.ItemMedia
import org.mosad.teapod.util.StorageController import org.mosad.teapod.util.StorageController
import org.mosad.teapod.util.adapter.MediaItemAdapter import org.mosad.teapod.util.adapter.MediaItemAdapter
import org.mosad.teapod.util.decoration.MediaItemDecoration import org.mosad.teapod.util.decoration.MediaItemDecoration
import org.mosad.teapod.util.showFragment
class HomeFragment : Fragment() { class HomeFragment : Fragment() {
@ -79,9 +80,6 @@ class HomeFragment : Fragment() {
} }
} }
adapterMyList = MediaItemAdapter(myListMedia) adapterMyList = MediaItemAdapter(myListMedia)
adapterMyList.onItemClick = { mediaId, _ ->
(activity as MainActivity).showFragment(MediaFragment(mediaId))
}
binding.recyclerMyList.adapter = adapterMyList binding.recyclerMyList.adapter = adapterMyList
// new episodes // new episodes
@ -122,19 +120,23 @@ class HomeFragment : Fragment() {
} }
binding.textHighlightInfo.setOnClickListener { binding.textHighlightInfo.setOnClickListener {
(activity as MainActivity).showFragment(MediaFragment(highlightMedia.id)) activity?.showFragment(MediaFragment(highlightMedia.id))
}
adapterMyList.onItemClick = { mediaId, _ ->
activity?.showFragment(MediaFragment(mediaId))
} }
adapterNewEpisodes.onItemClick = { mediaId, _ -> adapterNewEpisodes.onItemClick = { mediaId, _ ->
(activity as MainActivity).showFragment(MediaFragment(mediaId)) activity?.showFragment(MediaFragment(mediaId))
} }
adapterNewSimulcasts.onItemClick = { mediaId, _ -> adapterNewSimulcasts.onItemClick = { mediaId, _ ->
(activity as MainActivity).showFragment(MediaFragment(mediaId)) activity?.showFragment(MediaFragment(mediaId))
} }
adapterNewTitles.onItemClick = { mediaId, _ -> adapterNewTitles.onItemClick = { mediaId, _ ->
(activity as MainActivity).showFragment(MediaFragment(mediaId)) activity?.showFragment(MediaFragment(mediaId))
} }
} }

View File

@ -14,6 +14,7 @@ import org.mosad.teapod.databinding.FragmentLibraryBinding
import org.mosad.teapod.parser.AoDParser import org.mosad.teapod.parser.AoDParser
import org.mosad.teapod.util.adapter.MediaItemAdapter import org.mosad.teapod.util.adapter.MediaItemAdapter
import org.mosad.teapod.util.decoration.MediaItemDecoration import org.mosad.teapod.util.decoration.MediaItemDecoration
import org.mosad.teapod.util.showFragment
class LibraryFragment : Fragment() { class LibraryFragment : Fragment() {
@ -35,7 +36,7 @@ class LibraryFragment : Fragment() {
context?.let { context?.let {
adapter = MediaItemAdapter(AoDParser.itemMediaList) adapter = MediaItemAdapter(AoDParser.itemMediaList)
adapter.onItemClick = { mediaId, _ -> adapter.onItemClick = { mediaId, _ ->
(activity as MainActivity).showFragment(MediaFragment(mediaId)) activity?.showFragment(MediaFragment(mediaId))
} }
binding.recyclerMediaLibrary.adapter = adapter binding.recyclerMediaLibrary.adapter = adapter

View File

@ -12,6 +12,7 @@ import org.mosad.teapod.databinding.FragmentSearchBinding
import org.mosad.teapod.parser.AoDParser import org.mosad.teapod.parser.AoDParser
import org.mosad.teapod.util.decoration.MediaItemDecoration import org.mosad.teapod.util.decoration.MediaItemDecoration
import org.mosad.teapod.util.adapter.MediaItemAdapter import org.mosad.teapod.util.adapter.MediaItemAdapter
import org.mosad.teapod.util.showFragment
class SearchFragment : Fragment() { class SearchFragment : Fragment() {
@ -33,7 +34,7 @@ class SearchFragment : Fragment() {
adapter = MediaItemAdapter(AoDParser.itemMediaList) adapter = MediaItemAdapter(AoDParser.itemMediaList)
adapter!!.onItemClick = { mediaId, _ -> adapter!!.onItemClick = { mediaId, _ ->
binding.searchText.clearFocus() binding.searchText.clearFocus()
(activity as MainActivity).showFragment(MediaFragment(mediaId)) activity?.showFragment(MediaFragment(mediaId))
} }
binding.recyclerMediaSearch.adapter = adapter binding.recyclerMediaSearch.adapter = adapter

View File

@ -26,9 +26,7 @@ class OnboardingActivity : AppCompatActivity() {
pagerAdapter = ScreenSlidePagerAdapter(this) pagerAdapter = ScreenSlidePagerAdapter(this)
binding.viewPager.adapter = pagerAdapter binding.viewPager.adapter = pagerAdapter
TabLayoutMediator(binding.tabLayout, binding.viewPager) { tab, position -> TabLayoutMediator(binding.tabLayout, binding.viewPager) { _, _ -> }.attach()
}.attach()
// we don't use the skip button, instead we use the start button to skip the last fragment // we don't use the skip button, instead we use the start button to skip the last fragment
binding.buttonSkip.visibility = View.GONE binding.buttonSkip.visibility = View.GONE

View File

@ -8,6 +8,25 @@ import android.os.Build
import android.view.View import android.view.View
import android.view.WindowInsets import android.view.WindowInsets
import android.view.WindowInsetsController import android.view.WindowInsetsController
import androidx.appcompat.app.AppCompatActivity
import androidx.core.app.ActivityCompat
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentActivity
import androidx.fragment.app.commit
import org.mosad.teapod.R
/**
* Show a fragment on top of the current fragment.
* The current fragment is replaced and the new one is added
* to the back stack.
*/
fun FragmentActivity.showFragment(fragment: Fragment) {
supportFragmentManager.commit {
replace(R.id.nav_host_fragment, fragment, fragment.javaClass.simpleName)
addToBackStack(fragment.javaClass.name)
show(fragment)
}
}
/** /**
* hide the status and navigation bar * hide the status and navigation bar