diff --git a/app/src/main/java/de/mlte/soundboard/MainActivity.kt b/app/src/main/java/de/mlte/soundboard/MainActivity.kt index ebf977f..3d01750 100644 --- a/app/src/main/java/de/mlte/soundboard/MainActivity.kt +++ b/app/src/main/java/de/mlte/soundboard/MainActivity.kt @@ -45,8 +45,9 @@ class MainActivity : AppCompatActivity() { if (item != null) { when (item.itemId) { R.id.action_add_new -> { - val button = SoundButton(this, 0,2) + val button = SoundButton(this) addButton(button) + organizeButtons() return true } } @@ -55,13 +56,21 @@ class MainActivity : AppCompatActivity() { } private fun spawnButtons() { + for (i in 0..4) { + val soundButton = SoundButton(this) + addButton(soundButton) + } + organizeButtons() + } + + private fun organizeButtons() { val parent = findViewById(R.id.grid_layout) - parent.columnCount = 2 - for (row in 0..1) { - for (col in 0..1) { - val soundButton = SoundButton(this, col, row) - addButton(soundButton) - } + val columns = Math.min(Math.ceil(buttons.size / 4.0).toInt(), 4) + parent.columnCount = columns + buttons.forEachIndexed { index, soundButton -> + val col = index % columns + val row = index / columns + soundButton.move(col, row) } } diff --git a/app/src/main/java/de/mlte/soundboard/SoundButton.kt b/app/src/main/java/de/mlte/soundboard/SoundButton.kt index d89499a..4aff7cb 100644 --- a/app/src/main/java/de/mlte/soundboard/SoundButton.kt +++ b/app/src/main/java/de/mlte/soundboard/SoundButton.kt @@ -14,16 +14,9 @@ class SoundButton : FrameLayout { val btn: TextView val objectAnimator: ObjectAnimator - constructor(context: Context, col: Int, row: Int) : super(context) { + constructor(context: Context) : super(context) { View.inflate(context, R.layout.layout_button, this) - val params = GridLayout.LayoutParams() - params.columnSpec = GridLayout.spec(col, 1, 1.0f) - params.rowSpec = GridLayout.spec(row, 1, 1.0f) - params.width = 0 - params.height = 0 - layoutParams = params - progressBar = findViewById(R.id.progress_bar) btn = findViewById(R.id.text_view_button) @@ -36,5 +29,12 @@ class SoundButton : FrameLayout { }) } - + fun move(col: Int, row: Int) { + val params = GridLayout.LayoutParams() + params.columnSpec = GridLayout.spec(col, 1, 1.0f) + params.rowSpec = GridLayout.spec(row, 1, 1.0f) + params.width = 0 + params.height = 0 + layoutParams = params + } } \ No newline at end of file