From ec15b82c25f7adc607290fb559f27dd557b7107d Mon Sep 17 00:00:00 2001 From: Nils Date: Sun, 3 Sep 2017 14:54:34 +0200 Subject: [PATCH] Add button action bar icon menu --- app/src/main/AndroidManifest.xml | 2 +- .../main/java/de/mlte/soundboard/MainActivity.kt | 115 +++++++++++++-------- app/src/main/res/drawable-hdpi/ic_add_new.png | Bin 0 -> 246 bytes app/src/main/res/drawable-mdpi/ic_add_new.png | Bin 0 -> 176 bytes app/src/main/res/drawable-xhdpi/ic_add_new.png | Bin 0 -> 220 bytes app/src/main/res/drawable-xxhdpi/ic_add_new.png | Bin 0 -> 371 bytes app/src/main/res/layout/activity_main.xml | 13 ++- app/src/main/res/menu/main.xml | 10 ++ app/src/main/res/values/strings.xml | 1 + 9 files changed, 94 insertions(+), 47 deletions(-) create mode 100644 app/src/main/res/drawable-hdpi/ic_add_new.png create mode 100644 app/src/main/res/drawable-mdpi/ic_add_new.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_add_new.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_add_new.png create mode 100644 app/src/main/res/menu/main.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 47de6e0..cbc21bf 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -8,7 +8,7 @@ android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" - android:theme="@style/AppTheme"> + android:theme="@style/Theme.AppCompat.Light.NoActionBar"> diff --git a/app/src/main/java/de/mlte/soundboard/MainActivity.kt b/app/src/main/java/de/mlte/soundboard/MainActivity.kt index c8fd101..ebf977f 100644 --- a/app/src/main/java/de/mlte/soundboard/MainActivity.kt +++ b/app/src/main/java/de/mlte/soundboard/MainActivity.kt @@ -7,9 +7,11 @@ import android.media.MediaPlayer import android.net.Uri import android.os.Bundle import android.support.v7.app.AppCompatActivity -import android.view.LayoutInflater +import android.support.v7.widget.Toolbar +import android.view.Menu +import android.view.MenuItem +import android.view.View import android.widget.GridLayout -import android.widget.TextView import java.io.BufferedInputStream import java.io.BufferedOutputStream @@ -23,69 +25,94 @@ class MainActivity : AppCompatActivity() { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) - duplicateButton() + val myToolbar = findViewById(R.id.my_toolbar) as Toolbar + setSupportActionBar(myToolbar) + + + spawnButtons() loadPreferences() } - private fun duplicateButton() { - val inflater = getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater - val parent = findViewById(R.id.grid_layout) + override fun onCreateOptionsMenu(menu: Menu?): Boolean { + val inflater = menuInflater + inflater.inflate(R.menu.main, menu) + return true + } - parent.columnCount = 2 + override fun onOptionsItemSelected(item: MenuItem?): Boolean { + if (item != null) { + when (item.itemId) { + R.id.action_add_new -> { + val button = SoundButton(this, 0,2) + addButton(button) + return true + } + } + } + return super.onOptionsItemSelected(item) + } + private fun spawnButtons() { + 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) - buttons.add(soundButton) - parent.addView(soundButton) + addButton(soundButton) } } + } - buttons.forEachIndexed { index, soundButton -> - soundButton.btn.setOnClickListener { - if (playing) { - player?.let { mp -> - if (mp.isPlaying) { - mp.stop() - } + private fun addButton(soundButton: SoundButton) { + val index = buttons.size + buttons.add(soundButton) + + val parent = findViewById(R.id.grid_layout) + parent.addView(soundButton) + + soundButton.btn.setOnClickListener { + if (playing) { + player?.let { mp -> + if (mp.isPlaying) { + mp.stop() + } + mp.reset() + mp.release() + } + for (button in buttons) { + button.objectAnimator.cancel() + button.progressBar.progress = 0 + } + playing = false + } else { + val file = getFileStreamPath("audio" + index) + if (file.exists()) { + val mp = MediaPlayer.create(this, Uri.fromFile(file)) + mp.setOnCompletionListener { + soundButton.progressBar.progress = 0 mp.reset() mp.release() + playing = false } - for (button in buttons) { - button.objectAnimator.cancel() - button.progressBar.progress = 0 - } - playing = false - } else { - val file = getFileStreamPath("audio" + index) - if (file.exists()) { - val mp = MediaPlayer.create(this, Uri.fromFile(file)) - mp.setOnCompletionListener { - soundButton.progressBar.progress = 0 - mp.reset() - mp.release() - playing = false - } - mp.start() - player = mp - playing = true + mp.start() + player = mp + playing = true - soundButton.progressBar.progress = 0 - soundButton.objectAnimator.setDuration(mp.duration.toLong()).start() - } + soundButton.progressBar.progress = 0 + soundButton.objectAnimator.setDuration(mp.duration.toLong()).start() } } + } - soundButton.btn.setOnLongClickListener { - val intent = Intent(baseContext, EditActivity::class.java) - intent.putExtra("index", index) - intent.putExtra("caption", soundButton.btn.text) - startActivityForResult(intent, 1234) + soundButton.btn.setOnLongClickListener { + val intent = Intent(baseContext, EditActivity::class.java) + intent.putExtra("index", index) + intent.putExtra("caption", soundButton.btn.text) + startActivityForResult(intent, 1234) - true - } + true } } diff --git a/app/src/main/res/drawable-hdpi/ic_add_new.png b/app/src/main/res/drawable-hdpi/ic_add_new.png new file mode 100644 index 0000000000000000000000000000000000000000..85172125ec3e2d2b559c145390254b0752e832d2 GIT binary patch literal 246 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpUty`CIR=C&P zpv&8*{GO5+E~F&jRIy}_ijrbH6C;a&0|Ss)QFvR&HM{mC>zb|4Fa3Izeti1vG{fT0 zLeK9M`{sVVttsDmZKYk&ekB7xp`|CKwbxB8T)X$nUXLki$12WFj}WUqEB(h!5Nwje pgZr$kcwN$2@knvzx5JD~4ImigP3~>Lt!FI>qb6h*~G7T zG^O=IgY|(+mx4}+@EaHzakWP>bn(?>IbO7!#SPNd@bEdqlcFZIpEV*qO@hn}Dnk8T U8}*yoflgrXboFyt=akR{03#GS3;+NC literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_add_new.png b/app/src/main/res/drawable-xhdpi/ic_add_new.png new file mode 100644 index 0000000000000000000000000000000000000000..cbe4b60000a1d1be03ca0f9b3896ef50fd594f57 GIT binary patch literal 220 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=i#=T&Ln>~)y>XDU*+8TrG2P3k zQNf~Px?j*6w!7D+&+eEW7SMd3|Gn0;V5N<(RXiuDcs>vDk}NuRxhlx(Z!$yD!SxP5 z)-6{88ifLS=RU8WY4Q8KHN*Sn>u>aHo5Ihp%oku_;AijPO<%+D-|xV6^gdaSW-r_4c-5_MrfghKm-r zcXd6Or#L~8^U3v{7CS;#+`UzQyIiq*LEr`V$yI!JJPl{?J5R|D1eyQ>1`$_E_pVv> z>g}Z?$sc8wYfj#zbN}|XyUTy>FxsuiWcj6b|Epc^jL)85+R5?JvtSvE00Se70|TRg z0|N%LVY&3(+m$7kIPWd7>}9c7=J7h_`20WjF3MJ0_n+ICIqQ8kk!+_;7x(zkADi*5P~S?)1Ks-TUVrAH?GacE+nN V&6NI_U0Mhd@O1TaS?83{1OP(sld}K- literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index b505171..5694491 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -6,12 +6,21 @@ android:layout_height="match_parent" tools:context="de.mlte.soundboard.MainActivity"> + + + android:columnCount="1"> diff --git a/app/src/main/res/menu/main.xml b/app/src/main/res/menu/main.xml new file mode 100644 index 0000000..0cedce6 --- /dev/null +++ b/app/src/main/res/menu/main.xml @@ -0,0 +1,10 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 85ebb16..2a33093 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,3 +1,4 @@ Soundboard + Add new