diff --git a/app/src/main/java/com/lukas/music/MainActivity.kt b/app/src/main/java/com/lukas/music/MainActivity.kt index 8f4fbe7..22042e9 100644 --- a/app/src/main/java/com/lukas/music/MainActivity.kt +++ b/app/src/main/java/com/lukas/music/MainActivity.kt @@ -13,9 +13,10 @@ class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding + private val playFragment = PlayFragment() private val tabFragments = listOf( - PlayFragment(), - SongFragment(), + playFragment, + SongFragment(playFragment), InstrumentListFragment(), CreditsFragment(), ) diff --git a/app/src/main/java/com/lukas/music/MainActivity.kt b/app/src/main/java/com/lukas/music/MainActivity.kt index 8f4fbe7..22042e9 100644 --- a/app/src/main/java/com/lukas/music/MainActivity.kt +++ b/app/src/main/java/com/lukas/music/MainActivity.kt @@ -13,9 +13,10 @@ class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding + private val playFragment = PlayFragment() private val tabFragments = listOf( - PlayFragment(), - SongFragment(), + playFragment, + SongFragment(playFragment), InstrumentListFragment(), CreditsFragment(), ) diff --git a/app/src/main/java/com/lukas/music/ui/fragments/PlayFragment.kt b/app/src/main/java/com/lukas/music/ui/fragments/PlayFragment.kt index ba3d0b1..fe25848 100644 --- a/app/src/main/java/com/lukas/music/ui/fragments/PlayFragment.kt +++ b/app/src/main/java/com/lukas/music/ui/fragments/PlayFragment.kt @@ -64,7 +64,7 @@ } } Song.currentSong.chordProgression.stepCallback += { - Handler(Looper.getMainLooper()).post { putChords() } + Handler(Looper.getMainLooper()).post { updateChords() } } Song.currentSong.chordProgression.miniStepCallback += { Handler(Looper.getMainLooper()).post { updateChordView() } @@ -95,7 +95,8 @@ private fun updateChordView() { if (chordDisplays.isEmpty()) { - putChords() + updateChords() + return } chordDisplays[Song.currentSong.chordProgression.currentItem!!.index].setCardBackgroundColor( ContextCompat.getColor(binding.root.context, R.color.purple_700) @@ -132,7 +133,7 @@ slider.progress = initialProgress } - private fun putChords() { + fun updateChords() { binding.phraseDisplay.removeAllViews() chordDisplays.clear() for (chord in Song.currentSong.chordProgression.currentItem ?: return) { @@ -152,6 +153,7 @@ binding.phraseTable.isStretchAllColumns = true binding.nextChordText.text = Song.currentSong.chordProgression.lookahead(1)[0].toString(true, Song.currentSong.root) + updateChordView() } private external fun setMasterVolume(volume: Double) diff --git a/app/src/main/java/com/lukas/music/MainActivity.kt b/app/src/main/java/com/lukas/music/MainActivity.kt index 8f4fbe7..22042e9 100644 --- a/app/src/main/java/com/lukas/music/MainActivity.kt +++ b/app/src/main/java/com/lukas/music/MainActivity.kt @@ -13,9 +13,10 @@ class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding + private val playFragment = PlayFragment() private val tabFragments = listOf( - PlayFragment(), - SongFragment(), + playFragment, + SongFragment(playFragment), InstrumentListFragment(), CreditsFragment(), ) diff --git a/app/src/main/java/com/lukas/music/ui/fragments/PlayFragment.kt b/app/src/main/java/com/lukas/music/ui/fragments/PlayFragment.kt index ba3d0b1..fe25848 100644 --- a/app/src/main/java/com/lukas/music/ui/fragments/PlayFragment.kt +++ b/app/src/main/java/com/lukas/music/ui/fragments/PlayFragment.kt @@ -64,7 +64,7 @@ } } Song.currentSong.chordProgression.stepCallback += { - Handler(Looper.getMainLooper()).post { putChords() } + Handler(Looper.getMainLooper()).post { updateChords() } } Song.currentSong.chordProgression.miniStepCallback += { Handler(Looper.getMainLooper()).post { updateChordView() } @@ -95,7 +95,8 @@ private fun updateChordView() { if (chordDisplays.isEmpty()) { - putChords() + updateChords() + return } chordDisplays[Song.currentSong.chordProgression.currentItem!!.index].setCardBackgroundColor( ContextCompat.getColor(binding.root.context, R.color.purple_700) @@ -132,7 +133,7 @@ slider.progress = initialProgress } - private fun putChords() { + fun updateChords() { binding.phraseDisplay.removeAllViews() chordDisplays.clear() for (chord in Song.currentSong.chordProgression.currentItem ?: return) { @@ -152,6 +153,7 @@ binding.phraseTable.isStretchAllColumns = true binding.nextChordText.text = Song.currentSong.chordProgression.lookahead(1)[0].toString(true, Song.currentSong.root) + updateChordView() } private external fun setMasterVolume(volume: Double) diff --git a/app/src/main/java/com/lukas/music/ui/fragments/SongFragment.kt b/app/src/main/java/com/lukas/music/ui/fragments/SongFragment.kt index 78104e6..c9daa9e 100644 --- a/app/src/main/java/com/lukas/music/ui/fragments/SongFragment.kt +++ b/app/src/main/java/com/lukas/music/ui/fragments/SongFragment.kt @@ -15,7 +15,8 @@ import com.lukas.music.song.note.NoteName -class SongFragment : Fragment(), AdapterView.OnItemSelectedListener { +class SongFragment(val playFragment: PlayFragment) : Fragment(), + AdapterView.OnItemSelectedListener { private lateinit var binding: FragmentSongBinding var displayChordNames = true @@ -74,6 +75,7 @@ row.addView(button) binding.chords.addView(row) } + playFragment.updateChords() } companion object {