From 4a82e8eec1b45f9a1117b72f245798e37b19370f Mon Sep 17 00:00:00 2001 From: Fabian Zobrist Date: Sun, 16 Aug 2020 23:44:31 +0200 Subject: [PATCH] - Add functionality for on screen buttons. - Improve layout. --- .../me/zobrist/tichucounter/MainActivity.kt | 96 ++++++++++++++-- app/src/main/res/drawable/back.png | Bin 0 -> 3381 bytes app/src/main/res/layout/content_main.xml | 103 +++++++++++------- app/src/main/res/values/colors.xml | 6 +- 4 files changed, 151 insertions(+), 54 deletions(-) create mode 100644 app/src/main/res/drawable/back.png diff --git a/app/src/main/java/me/zobrist/tichucounter/MainActivity.kt b/app/src/main/java/me/zobrist/tichucounter/MainActivity.kt index 71b5204..c636d1b 100644 --- a/app/src/main/java/me/zobrist/tichucounter/MainActivity.kt +++ b/app/src/main/java/me/zobrist/tichucounter/MainActivity.kt @@ -1,13 +1,13 @@ package me.zobrist.tichucounter import android.os.Bundle -import androidx.appcompat.app.AppCompatActivity import android.view.Menu import android.view.MenuItem +import androidx.appcompat.app.AppCompatActivity import androidx.core.widget.doOnTextChanged import kotlinx.android.synthetic.main.content_main.* +import android.text.InputType import kotlinx.coroutines.sync.Mutex -import kotlin.Exception class MainActivity : AppCompatActivity() { @@ -26,22 +26,34 @@ class MainActivity : AppCompatActivity() { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) setSupportActionBar(findViewById(R.id.toolbar)) + inputTeamA.setRawInputType(InputType.TYPE_NULL) + inputTeamB.setRawInputType(InputType.TYPE_NULL) inputTeamA.doOnTextChanged { text, start, count, after -> if (inputTeamA.isFocused) { - inputTeamB.setText(updateNumber(text, tempCounterTeamA + tempCounterTeamB)) + if (inputTeamA.text.isNotEmpty()){ + inputTeamB.setText(updateNumber(text, tempCounterTeamA + tempCounterTeamB)) + }else{ + inputTeamA.text.clear() + inputTeamB.text.clear() + } } } inputTeamB.doOnTextChanged { text, start, count, after -> if (inputTeamB.isFocused) { - inputTeamA.setText(updateNumber(text, tempCounterTeamB + tempCounterTeamA)) + if (inputTeamB.text.isNotEmpty()){ + inputTeamA.setText(updateNumber(text, tempCounterTeamB + tempCounterTeamA)) + }else{ + inputTeamA.text.clear() + inputTeamB.text.clear() + } } } - add100.setOnClickListener { + buttonAdd100.setOnClickListener { if (inputTeamA.isFocused) { tempCounterTeamA += 100 val temp = try { @@ -63,7 +75,7 @@ class MainActivity : AppCompatActivity() { } } - sub100.setOnClickListener { + buttonSub100.setOnClickListener { if (inputTeamA.isFocused) { tempCounterTeamA -= 100 val temp = try { @@ -86,6 +98,61 @@ class MainActivity : AppCompatActivity() { } } + button0.setOnClickListener { + appedtoFocusedInput('0') + } + + button1.setOnClickListener { + appedtoFocusedInput('1') + } + + button2.setOnClickListener { + appedtoFocusedInput('2') + } + + button3.setOnClickListener { + appedtoFocusedInput('3') + } + + button4.setOnClickListener { + appedtoFocusedInput('4') + } + + button5.setOnClickListener { + appedtoFocusedInput('5') + } + + button6.setOnClickListener { + appedtoFocusedInput('6') + } + + button7.setOnClickListener { + appedtoFocusedInput('7') + } + + button8.setOnClickListener { + appedtoFocusedInput('8') + } + + button9.setOnClickListener { + appedtoFocusedInput('9') + } + + buttonBack.setOnClickListener{ + if(inputTeamA.isFocused ){ + if(inputTeamA.text.isNotEmpty()){ + var string = inputTeamA.text.toString() + inputTeamA.setText(string.substring(0, string.length -1)) + } + + }else if(inputTeamB.isFocused) { + if(inputTeamB.text.isNotEmpty()) { + var string = inputTeamB.text.toString() + inputTeamB.setText(string.substring(0, string.length - 1)) + } + } + } + add.setOnClickListener { if (inputTeamA.text.isNotEmpty() && inputTeamB.text.isNotEmpty()) { @@ -101,8 +168,8 @@ class MainActivity : AppCompatActivity() { scoreA.text = counterTeamA.toString() scoreB.text = counterTeamB.toString() - inputTeamA.setText("") - inputTeamB.setText("") + inputTeamA.text.clear() + inputTeamB.text.clear() } } } @@ -126,12 +193,21 @@ class MainActivity : AppCompatActivity() { private fun clearAll() { historyA.text = "" historyB.text = "" - inputTeamA.setText("") - inputTeamB.setText("") + inputTeamA.text.clear() + inputTeamB.text.clear() scoreA.text = "" scoreB.text = "" } + private fun appedtoFocusedInput(toAppend: Char){ + if(inputTeamA.isFocused){ + inputTeamA.text.append(toAppend) + }else if(inputTeamB.isFocused) + { + inputTeamB.text.append(toAppend) + } + } + private fun updateNumber(inputText: CharSequence?, offset: Int): String { var toSet: Int = 0 diff --git a/app/src/main/res/drawable/back.png b/app/src/main/res/drawable/back.png new file mode 100644 index 0000000000000000000000000000000000000000..72b8bd7d6e51121fd9717618c6ecf62c990189f0 GIT binary patch literal 3381 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 LNkvXXu0mjfF~lRb literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/content_main.xml b/app/src/main/res/layout/content_main.xml index e21b4ae..dff5ef9 100644 --- a/app/src/main/res/layout/content_main.xml +++ b/app/src/main/res/layout/content_main.xml @@ -14,23 +14,32 @@ app:layout_constraintTop_toTopOf="parent"> + + + android:gravity="center" /> + android:gravity="center" /> @@ -72,6 +81,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" + android:gravity="center" android:textAppearance="@style/TextAppearance.AppCompat.Body1" android:textSize="18sp" /> @@ -80,11 +90,19 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" + android:gravity="center" android:textAppearance="@style/TextAppearance.AppCompat.Body1" android:textSize="18sp" /> + + + android:inputType="numberSigned" + android:gravity="center"/> + android:inputType="numberSigned" + android:gravity="center"/>