Skip to content

Commit

Permalink
Use FragmentManager#commit to simplify fragment replacement code
Browse files Browse the repository at this point in the history
  • Loading branch information
meikpiep committed Jan 9, 2025
1 parent bca0854 commit 32c9f31
Show file tree
Hide file tree
Showing 6 changed files with 45 additions and 50 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package org.piepmeyer.gauguin.ui

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.commit
import androidx.preference.ListPreference
import androidx.preference.PreferenceFragmentCompat
import com.google.android.material.color.DynamicColors
Expand All @@ -20,10 +21,9 @@ class SettingsActivity : AppCompatActivity() {
if (savedInstanceState == null) {
val settings = SettingsFragment()

supportFragmentManager
.beginTransaction()
.replace(R.id.settings, settings)
.commit()
supportFragmentManager.commit {
replace(R.id.settings, settings)
}
}
val actionBar = supportActionBar

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import android.view.KeyEvent
import android.view.View
import androidx.activity.viewModels
import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.commit
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
Expand Down Expand Up @@ -36,7 +37,6 @@ class MainActivity : AppCompatActivity() {
private val activityUtils: ActivityUtils by inject()

private lateinit var binding: ActivityMainBinding
private lateinit var topFragment: GameTopFragment
private lateinit var bottomAppBarService: MainBottomAppBarService

public override fun onCreate(savedInstanceState: Bundle?) {
Expand All @@ -55,13 +55,12 @@ class MainActivity : AppCompatActivity() {

binding.gridview.grid = game.grid

val ft = supportFragmentManager.beginTransaction()
topFragment = GameTopFragment()
ft.replace(R.id.keypadFrame, KeyPadFragment())
ft.replace(R.id.fastFinishingModeFrame, FastFinishingModeFragment())
ft.replace(R.id.gameSolvedFrame, GameSolvedFragment())
ft.replace(R.id.gameTopFrame, topFragment)
ft.commit()
supportFragmentManager.commit {
replace(R.id.keypadFrame, KeyPadFragment())
replace(R.id.fastFinishingModeFrame, FastFinishingModeFragment())
replace(R.id.gameSolvedFrame, GameSolvedFragment())
replace(R.id.gameTopFrame, GameTopFragment())
}

registerForContextMenu(binding.gridview)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import androidx.appcompat.view.ContextThemeWrapper
import androidx.core.view.marginStart
import androidx.core.view.updateLayoutParams
import androidx.drawerlayout.widget.DrawerLayout
import androidx.fragment.app.commit
import com.mikepenz.materialdrawer.holder.StringHolder
import com.mikepenz.materialdrawer.model.DividerDrawerItem
import com.mikepenz.materialdrawer.model.PrimaryDrawerItem
Expand Down Expand Up @@ -143,12 +144,10 @@ class MainNavigationViewService(
binding.mainNavigationView.stickyHeaderView = header
header.setBackgroundResource(0)
header.setOnClickListener {
val ft = mainActivity.supportFragmentManager.beginTransaction()

binding.mainNavigationView.drawerLayout?.close()
MainDialogs(mainActivity).openAboutDialog(binding.mainNavigationView)

ft.commit()
mainActivity.supportFragmentManager.commit {
binding.mainNavigationView.drawerLayout?.close()
MainDialogs(mainActivity).openAboutDialog(binding.mainNavigationView)
}
}

binding.mainNavigationView.onDrawerItemClickListener = createDrawerClickListener()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package org.piepmeyer.gauguin.ui.newgame

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.commit
import androidx.lifecycle.ViewModelProvider
import com.google.android.material.bottomsheet.BottomSheetBehavior
import com.google.android.material.sidesheet.SideSheetBehavior
Expand Down Expand Up @@ -29,9 +30,10 @@ class NewGameActivity : AppCompatActivity() {

viewModel = ViewModelProvider(this).get(NewGameViewModel::class.java)

val ft = supportFragmentManager.beginTransaction()
ft.replace(R.id.newGameOptions, GridCellOptionsFragment())
ft.commit()
supportFragmentManager.commit {
replace(R.id.newGameOptions, GridCellOptionsFragment())
replace(R.id.newGameGridShapeOptions, GridShapeOptionsFragment())
}

binding.sideSheet?.let {
val sideSheetBehavior = SideSheetBehavior.from(it)
Expand All @@ -42,10 +44,6 @@ class NewGameActivity : AppCompatActivity() {
val bottomSheetBehavior = BottomSheetBehavior.from(it)
bottomSheetBehavior.state = BottomSheetBehavior.STATE_EXPANDED
}

val ft2 = supportFragmentManager.beginTransaction()
ft2.replace(R.id.newGameGridShapeOptions, GridShapeOptionsFragment())
ft2.commit()
}

private fun startNewGame() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import android.os.Bundle
import android.view.View
import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.ContextCompat.getString
import androidx.fragment.app.commit
import com.google.android.material.color.MaterialColors
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.patrykandpatrick.vico.core.cartesian.CartesianChart
Expand Down Expand Up @@ -51,27 +52,24 @@ class StatisticsActivity : AppCompatActivity() {
durationDiagramFragment = StatisticsDurationDiagramFragment()
streaksDiagramFragment = StatisticsStreaksDiagramFragment()

val ft = supportFragmentManager.beginTransaction()
supportFragmentManager.commit {
if (binding.multiDiagramFrame != null) {
val fragment =
StatisticsMultiDiagramFragment(
scatterPlotDiagramFragment,
durationDiagramFragment,
)

if (binding.multiDiagramFrame != null) {
val fragment =
StatisticsMultiDiagramFragment(
scatterPlotDiagramFragment,
// difficultyDiagramFragment,
durationDiagramFragment,
)
multiDiagramFragment = fragment
replace(binding.multiDiagramFrame!!.id, fragment)
} else {
binding.scatterPlotCardView?.let { replace(it.id, scatterPlotDiagramFragment) }
binding.overallDurationCardView?.let { replace(it.id, durationDiagramFragment) }
}

multiDiagramFragment = fragment
ft.replace(binding.multiDiagramFrame!!.id, fragment)
} else {
binding.scatterPlotCardView?.let { ft.replace(it.id, scatterPlotDiagramFragment) }
binding.overallDurationCardView?.let { ft.replace(it.id, durationDiagramFragment) }
binding.overallDifficultyCardView.let { replace(it.id, difficultyDiagramFragment) }
binding.overallStreaksCardView.let { replace(it.id, streaksDiagramFragment) }
}

binding.overallDifficultyCardView.let { ft.replace(it.id, difficultyDiagramFragment) }
binding.overallStreaksCardView.let { ft.replace(it.id, streaksDiagramFragment) }

ft.commit()
}

override fun onAttachedToWindow() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.fragment.app.commit
import org.piepmeyer.gauguin.R
import org.piepmeyer.gauguin.databinding.FragmentStatisticsMultiDiagramBinding

Expand All @@ -29,14 +30,14 @@ class StatisticsMultiDiagramFragment() : Fragment(R.layout.fragment_statistics_m
): View {
binding = FragmentStatisticsMultiDiagramBinding.inflate(inflater, parent, false)

val ft = parentFragmentManager.beginTransaction()
scatterPlotDiagramFragment?.let {
ft.replace(binding.multiDiagramFrameScatterPlot.id, it)
}
durationDiagramFragment?.let {
ft.replace(binding.multiDiagramFrameDurationPlot.id, it)
parentFragmentManager.commit {
scatterPlotDiagramFragment?.let {
replace(binding.multiDiagramFrameScatterPlot.id, it)
}
durationDiagramFragment?.let {
replace(binding.multiDiagramFrameDurationPlot.id, it)
}
}
ft.commit()

binding.toggleGroupMultiDiagram.addOnButtonCheckedListener { _, checkedId, isChecked ->
if (isChecked) {
Expand Down

0 comments on commit 32c9f31

Please sign in to comment.