From 5e0c80be17de6afa5cbe839401fa4151bd151d4a Mon Sep 17 00:00:00 2001 From: Fabian Zobrist Date: Wed, 21 Dec 2022 22:46:07 +0100 Subject: [PATCH] Split layout in Fragments. --- app/build.gradle | 3 + app/src/main/AndroidManifest.xml | 2 +- .../{viewModel => }/MainActivity.kt | 544 +++++++++--------- .../tichucounter/fragments/HistoryList.kt | 32 ++ .../fragments/HistoryListViewModel.kt | 7 + .../tichucounter/fragments/Keyboard.kt | 35 ++ .../fragments/KeyboardViewModel.kt | 7 + app/src/main/res/layout-land/content_main.xml | 229 +------- app/src/main/res/layout/activity_main.xml | 2 +- app/src/main/res/layout/content_main.xml | 270 +-------- .../main/res/layout/fragment_history_list.xml | 47 ++ app/src/main/res/layout/fragment_keyboard.xml | 228 ++++++++ app/src/main/res/menu/menu_main.xml | 2 +- build.gradle | 1 + 14 files changed, 674 insertions(+), 735 deletions(-) rename app/src/main/java/me/zobrist/tichucounter/{viewModel => }/MainActivity.kt (61%) create mode 100644 app/src/main/java/me/zobrist/tichucounter/fragments/HistoryList.kt create mode 100644 app/src/main/java/me/zobrist/tichucounter/fragments/HistoryListViewModel.kt create mode 100644 app/src/main/java/me/zobrist/tichucounter/fragments/Keyboard.kt create mode 100644 app/src/main/java/me/zobrist/tichucounter/fragments/KeyboardViewModel.kt create mode 100644 app/src/main/res/layout/fragment_history_list.xml create mode 100644 app/src/main/res/layout/fragment_keyboard.xml diff --git a/app/build.gradle b/app/build.gradle index a6325bb..c376c14 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -77,6 +77,9 @@ dependencies { implementation 'androidx.constraintlayout:constraintlayout:2.1.4' implementation 'androidx.navigation:navigation-fragment-ktx:2.5.3' implementation 'androidx.navigation:navigation-ui-ktx:2.5.3' + implementation 'androidx.legacy:legacy-support-v4:1.0.0' + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.4.1' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.1' testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test.ext:junit:1.1.4' androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.0' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 39dcbe2..227d63e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -12,7 +12,7 @@ android:supportsRtl="true" android:theme="@style/AppTheme"> diff --git a/app/src/main/java/me/zobrist/tichucounter/viewModel/MainActivity.kt b/app/src/main/java/me/zobrist/tichucounter/MainActivity.kt similarity index 61% rename from app/src/main/java/me/zobrist/tichucounter/viewModel/MainActivity.kt rename to app/src/main/java/me/zobrist/tichucounter/MainActivity.kt index 8c5549e..0f273f1 100644 --- a/app/src/main/java/me/zobrist/tichucounter/viewModel/MainActivity.kt +++ b/app/src/main/java/me/zobrist/tichucounter/MainActivity.kt @@ -1,4 +1,4 @@ -package me.zobrist.tichucounter.viewModel +package me.zobrist.tichucounter import android.app.AlertDialog import android.content.Intent @@ -15,7 +15,6 @@ import androidx.core.os.LocaleListCompat import androidx.core.widget.doOnTextChanged import com.google.gson.Gson import dagger.hilt.android.AndroidEntryPoint -import me.zobrist.tichucounter.R import me.zobrist.tichucounter.databinding.ActivityMainBinding import me.zobrist.tichucounter.domain.History import me.zobrist.tichucounter.domain.Round @@ -44,9 +43,9 @@ class MainActivity : AppCompatActivity() { setSupportActionBar(binding.toolbar) - binding.contentMain.inputTeamA.setRawInputType(InputType.TYPE_NULL) - binding.contentMain.inputTeamB.setRawInputType(InputType.TYPE_NULL) - binding.contentMain.inputTeamA.requestFocus() + binding.contentMain.keyboard.inputTeamA.setRawInputType(InputType.TYPE_NULL) + binding.contentMain.keyboard.inputTeamB.setRawInputType(InputType.TYPE_NULL) + binding.contentMain.keyboard.inputTeamA.requestFocus() disableSubmitButton() updateTheme(this.getSharedPreferences("Settings", MODE_PRIVATE).getInt("Theme", 2)) keepScreenOn( @@ -67,258 +66,6 @@ class MainActivity : AppCompatActivity() { updateView() this.setListeners() - - - } - - private fun setListeners() { - binding.contentMain.inputTeamA.setOnFocusChangeListener { _, b -> - if (b) { - hideKeyboard() - } - } - - binding.contentMain.inputTeamB.setOnFocusChangeListener { _, b -> - if (b) { - hideKeyboard() - } - } - - binding.contentMain.inputTeamA.doOnTextChanged { text, _, _, _ -> - if (binding.contentMain.inputTeamA.isFocused) { - if (binding.contentMain.inputTeamA.text.isNotEmpty()) { - if (updateOnChange) { - currentRound = try { - Round(text.toString().toInt(), true) - - } catch (e: java.lang.Exception) { - Round(1, 1) - } - binding.contentMain.inputTeamB.setText(currentRound.scoreB.toString()) - } else { - updateOnChange = true - } - } else { - binding.contentMain.inputTeamA.text.clear() - binding.contentMain.inputTeamB.text.clear() - } - } - - if (currentRound.isValidRound() && binding.contentMain.inputTeamA.text.isNotEmpty() && binding.contentMain.inputTeamB.text.isNotEmpty()) { - enableSubmitButton() - } else { - disableSubmitButton() - } - } - - binding.contentMain.inputTeamB.doOnTextChanged { text, _, _, _ -> - if (binding.contentMain.inputTeamB.isFocused) { - if (binding.contentMain.inputTeamB.text.isNotEmpty()) { - if (updateOnChange) { - currentRound = try { - Round(text.toString().toInt(), false) - - } catch (e: java.lang.Exception) { - Round(1, 1) - } - binding.contentMain.inputTeamA.setText(currentRound.scoreA.toString()) - - } else { - updateOnChange = true - } - - } else { - binding.contentMain.inputTeamA.text.clear() - binding.contentMain.inputTeamB.text.clear() - } - } - - if (currentRound.isValidRound() && binding.contentMain.inputTeamA.text.isNotEmpty() && binding.contentMain.inputTeamB.text.isNotEmpty()) { - enableSubmitButton() - } else { - disableSubmitButton() - } - } - - binding.contentMain.buttonAdd100.setOnClickListener { - giveFocusToAIfNone() - - if (binding.contentMain.inputTeamA.isFocused) { - - currentRound.scoreA = try { - binding.contentMain.inputTeamA.text.toString().toInt() + 100 - } catch (e: Exception) { - currentRound.scoreB = 0 - binding.contentMain.inputTeamB.setText(currentRound.scoreB.toString()) - 100 - } - updateOnChange = false - binding.contentMain.inputTeamA.setText(currentRound.scoreA.toString()) - } - - if (binding.contentMain.inputTeamB.isFocused) { - currentRound.scoreB = try { - binding.contentMain.inputTeamB.text.toString().toInt() + 100 - } catch (e: Exception) { - currentRound.scoreA = 0 - binding.contentMain.inputTeamA.setText(currentRound.scoreA.toString()) - 100 - - } - updateOnChange = false - binding.contentMain.inputTeamB.setText(currentRound.scoreB.toString()) - - } - } - - binding.contentMain.buttonSub100.setOnClickListener { - giveFocusToAIfNone() - - if (binding.contentMain.inputTeamA.isFocused) { - currentRound.scoreA = try { - binding.contentMain.inputTeamA.text.toString().toInt() - 100 - } catch (e: Exception) { - currentRound.scoreB = 0 - binding.contentMain.inputTeamB.setText(currentRound.scoreB.toString()) - -100 - } - updateOnChange = false - binding.contentMain.inputTeamA.setText(currentRound.scoreA.toString()) - } - - if (binding.contentMain.inputTeamB.isFocused) { - currentRound.scoreB = try { - binding.contentMain.inputTeamB.text.toString().toInt() - 100 - } catch (e: Exception) { - currentRound.scoreA = 0 - binding.contentMain.inputTeamA.setText(currentRound.scoreA.toString()) - -100 - } - updateOnChange = false - binding.contentMain.inputTeamB.setText(currentRound.scoreB.toString()) - } - } - - binding.contentMain.button0.setOnClickListener { - giveFocusToAIfNone() - appendToFocusedInput('0') - } - - binding.contentMain.button1.setOnClickListener { - giveFocusToAIfNone() - appendToFocusedInput('1') - } - - binding.contentMain.button2.setOnClickListener { - giveFocusToAIfNone() - appendToFocusedInput('2') - } - - binding.contentMain.button3.setOnClickListener { - giveFocusToAIfNone() - appendToFocusedInput('3') - } - - binding.contentMain.button4.setOnClickListener { - giveFocusToAIfNone() - appendToFocusedInput('4') - } - - binding.contentMain.button5.setOnClickListener { - giveFocusToAIfNone() - appendToFocusedInput('5') - } - - binding.contentMain.button6.setOnClickListener { - giveFocusToAIfNone() - appendToFocusedInput('6') - } - - binding.contentMain.button7.setOnClickListener { - giveFocusToAIfNone() - appendToFocusedInput('7') - } - - binding.contentMain.button8.setOnClickListener { - giveFocusToAIfNone() - appendToFocusedInput('8') - } - - binding.contentMain.button9.setOnClickListener { - giveFocusToAIfNone() - appendToFocusedInput('9') - } - - binding.contentMain.buttonInv.setOnClickListener { - val tempInt: Int - - giveFocusToAIfNone() - - if (binding.contentMain.inputTeamA.isFocused) { - if (binding.contentMain.inputTeamA.text.toString() == "-") { - binding.contentMain.inputTeamA.text.clear() - } else if (binding.contentMain.inputTeamA.text.isNotEmpty()) { - tempInt = binding.contentMain.inputTeamA.text.toString().toInt() * -1 - binding.contentMain.inputTeamA.setText(tempInt.toString()) - } else { - updateOnChange = false - appendToFocusedInput('-') - currentRound = Round(1, 1) - } - - - } else if (binding.contentMain.inputTeamB.isFocused) { - if (binding.contentMain.inputTeamB.text.toString() == "-") { - binding.contentMain.inputTeamB.text.clear() - } else if (binding.contentMain.inputTeamB.text.isNotEmpty()) { - tempInt = binding.contentMain.inputTeamB.text.toString().toInt() * -1 - binding.contentMain.inputTeamB.setText(tempInt.toString()) - } else { - updateOnChange = false - appendToFocusedInput('-') - currentRound = Round(1, 1) - } - } - } - - binding.contentMain.buttonBack.setOnClickListener { - giveFocusToAIfNone() - - if (binding.contentMain.inputTeamA.isFocused) { - if (binding.contentMain.inputTeamA.text.isNotEmpty()) { - val string = binding.contentMain.inputTeamA.text.toString() - binding.contentMain.inputTeamA.setText(string.substring(0, string.length - 1)) - } - - } else if (binding.contentMain.inputTeamB.isFocused) { - if (binding.contentMain.inputTeamB.text.isNotEmpty()) { - val string = binding.contentMain.inputTeamB.text.toString() - binding.contentMain.inputTeamB.setText(string.substring(0, string.length - 1)) - } - } - } - - binding.contentMain.submit.setOnClickListener { - giveFocusToAIfNone() - - if (binding.contentMain.inputTeamA.text.isNotEmpty() && binding.contentMain.inputTeamB.text.isNotEmpty()) { - - history.logRound( - Round( - binding.contentMain.inputTeamA.text.toString().toInt(), - binding.contentMain.inputTeamB.text.toString().toInt() - ) - ) - - updateView() - - binding.contentMain.inputTeamA.text.clear() - binding.contentMain.inputTeamB.text.clear() - disableSubmitButton() - - binding.contentMain.scrollViewHistory.fullScroll(ScrollView.FOCUS_DOWN) - } - } } override fun onSaveInstanceState(outState: Bundle) { @@ -332,6 +79,257 @@ class MainActivity : AppCompatActivity() { } + private fun setListeners() { + binding.contentMain.keyboard.inputTeamA.setOnFocusChangeListener { _, b -> + if (b) { + hideKeyboard() + } + } + + binding.contentMain.keyboard.inputTeamB.setOnFocusChangeListener { _, b -> + if (b) { + hideKeyboard() + } + } + + binding.contentMain.keyboard.inputTeamA.doOnTextChanged { text, _, _, _ -> + if (binding.contentMain.keyboard.inputTeamA.isFocused) { + if (binding.contentMain.keyboard.inputTeamA.text.isNotEmpty()) { + if (updateOnChange) { + currentRound = try { + Round(text.toString().toInt(), true) + + } catch (e: java.lang.Exception) { + Round(1, 1) + } + binding.contentMain.keyboard.inputTeamB.setText(currentRound.scoreB.toString()) + } else { + updateOnChange = true + } + } else { + binding.contentMain.keyboard.inputTeamA.text.clear() + binding.contentMain.keyboard.inputTeamB.text.clear() + } + } + + if (currentRound.isValidRound() && binding.contentMain.keyboard.inputTeamA.text.isNotEmpty() && binding.contentMain.keyboard.inputTeamB.text.isNotEmpty()) { + enableSubmitButton() + } else { + disableSubmitButton() + } + } + + binding.contentMain.keyboard.inputTeamB.doOnTextChanged { text, _, _, _ -> + if (binding.contentMain.keyboard.inputTeamB.isFocused) { + if (binding.contentMain.keyboard.inputTeamB.text.isNotEmpty()) { + if (updateOnChange) { + currentRound = try { + Round(text.toString().toInt(), false) + + } catch (e: java.lang.Exception) { + Round(1, 1) + } + binding.contentMain.keyboard.inputTeamA.setText(currentRound.scoreA.toString()) + + } else { + updateOnChange = true + } + + } else { + binding.contentMain.keyboard.inputTeamA.text.clear() + binding.contentMain.keyboard.inputTeamB.text.clear() + } + } + + if (currentRound.isValidRound() && binding.contentMain.keyboard.inputTeamA.text.isNotEmpty() && binding.contentMain.keyboard.inputTeamB.text.isNotEmpty()) { + enableSubmitButton() + } else { + disableSubmitButton() + } + } + + binding.contentMain.keyboard.buttonAdd100.setOnClickListener { + giveFocusToAIfNone() + + if (binding.contentMain.keyboard.inputTeamA.isFocused) { + + currentRound.scoreA = try { + binding.contentMain.keyboard.inputTeamA.text.toString().toInt() + 100 + } catch (e: Exception) { + currentRound.scoreB = 0 + binding.contentMain.keyboard.inputTeamB.setText(currentRound.scoreB.toString()) + 100 + } + updateOnChange = false + binding.contentMain.keyboard.inputTeamA.setText(currentRound.scoreA.toString()) + } + + if (binding.contentMain.keyboard.inputTeamB.isFocused) { + currentRound.scoreB = try { + binding.contentMain.keyboard.inputTeamB.text.toString().toInt() + 100 + } catch (e: Exception) { + currentRound.scoreA = 0 + binding.contentMain.keyboard.inputTeamA.setText(currentRound.scoreA.toString()) + 100 + + } + updateOnChange = false + binding.contentMain.keyboard.inputTeamB.setText(currentRound.scoreB.toString()) + + } + } + + binding.contentMain.keyboard.buttonSub100.setOnClickListener { + giveFocusToAIfNone() + + if (binding.contentMain.keyboard.inputTeamA.isFocused) { + currentRound.scoreA = try { + binding.contentMain.keyboard.inputTeamA.text.toString().toInt() - 100 + } catch (e: Exception) { + currentRound.scoreB = 0 + binding.contentMain.keyboard.inputTeamB.setText(currentRound.scoreB.toString()) + -100 + } + updateOnChange = false + binding.contentMain.keyboard.inputTeamA.setText(currentRound.scoreA.toString()) + } + + if (binding.contentMain.keyboard.inputTeamB.isFocused) { + currentRound.scoreB = try { + binding.contentMain.keyboard.inputTeamB.text.toString().toInt() - 100 + } catch (e: Exception) { + currentRound.scoreA = 0 + binding.contentMain.keyboard.inputTeamA.setText(currentRound.scoreA.toString()) + -100 + } + updateOnChange = false + binding.contentMain.keyboard.inputTeamB.setText(currentRound.scoreB.toString()) + } + } + + binding.contentMain.keyboard.button0.setOnClickListener { + giveFocusToAIfNone() + appendToFocusedInput('0') + } + + binding.contentMain.keyboard.button1.setOnClickListener { + giveFocusToAIfNone() + appendToFocusedInput('1') + } + + binding.contentMain.keyboard.button2.setOnClickListener { + giveFocusToAIfNone() + appendToFocusedInput('2') + } + + binding.contentMain.keyboard.button3.setOnClickListener { + giveFocusToAIfNone() + appendToFocusedInput('3') + } + + binding.contentMain.keyboard.button4.setOnClickListener { + giveFocusToAIfNone() + appendToFocusedInput('4') + } + + binding.contentMain.keyboard.button5.setOnClickListener { + giveFocusToAIfNone() + appendToFocusedInput('5') + } + + binding.contentMain.keyboard.button6.setOnClickListener { + giveFocusToAIfNone() + appendToFocusedInput('6') + } + + binding.contentMain.keyboard.button7.setOnClickListener { + giveFocusToAIfNone() + appendToFocusedInput('7') + } + + binding.contentMain.keyboard.button8.setOnClickListener { + giveFocusToAIfNone() + appendToFocusedInput('8') + } + + binding.contentMain.keyboard.button9.setOnClickListener { + giveFocusToAIfNone() + appendToFocusedInput('9') + } + + binding.contentMain.keyboard.buttonInv.setOnClickListener { + val tempInt: Int + + giveFocusToAIfNone() + + if (binding.contentMain.keyboard.inputTeamA.isFocused) { + if (binding.contentMain.keyboard.inputTeamA.text.toString() == "-") { + binding.contentMain.keyboard.inputTeamA.text.clear() + } else if (binding.contentMain.keyboard.inputTeamA.text.isNotEmpty()) { + tempInt = binding.contentMain.keyboard.inputTeamA.text.toString().toInt() * -1 + binding.contentMain.keyboard.inputTeamA.setText(tempInt.toString()) + } else { + updateOnChange = false + appendToFocusedInput('-') + currentRound = Round(1, 1) + } + + + } else if (binding.contentMain.keyboard.inputTeamB.isFocused) { + if (binding.contentMain.keyboard.inputTeamB.text.toString() == "-") { + binding.contentMain.keyboard.inputTeamB.text.clear() + } else if (binding.contentMain.keyboard.inputTeamB.text.isNotEmpty()) { + tempInt = binding.contentMain.keyboard.inputTeamB.text.toString().toInt() * -1 + binding.contentMain.keyboard.inputTeamB.setText(tempInt.toString()) + } else { + updateOnChange = false + appendToFocusedInput('-') + currentRound = Round(1, 1) + } + } + } + + binding.contentMain.keyboard.buttonBack.setOnClickListener { + giveFocusToAIfNone() + + if (binding.contentMain.keyboard.inputTeamA.isFocused) { + if (binding.contentMain.keyboard.inputTeamA.text.isNotEmpty()) { + val string = binding.contentMain.keyboard.inputTeamA.text.toString() + binding.contentMain.keyboard.inputTeamA.setText(string.substring(0, string.length - 1)) + } + + } else if (binding.contentMain.keyboard.inputTeamB.isFocused) { + if (binding.contentMain.keyboard.inputTeamB.text.isNotEmpty()) { + val string = binding.contentMain.keyboard.inputTeamB.text.toString() + binding.contentMain.keyboard.inputTeamB.setText(string.substring(0, string.length - 1)) + } + } + } + + binding.contentMain.keyboard.submit.setOnClickListener { + giveFocusToAIfNone() + + if (binding.contentMain.keyboard.inputTeamA.text.isNotEmpty() && binding.contentMain.keyboard.inputTeamB.text.isNotEmpty()) { + + history.logRound( + Round( + binding.contentMain.keyboard.inputTeamA.text.toString().toInt(), + binding.contentMain.keyboard.inputTeamB.text.toString().toInt() + ) + ) + + updateView() + + binding.contentMain.keyboard.inputTeamA.text.clear() + binding.contentMain.keyboard.inputTeamB.text.clear() + disableSubmitButton() + + binding.contentMain.scrollHistory.scrollViewHistory.fullScroll(ScrollView.FOCUS_DOWN) + } + } + } + + override fun onCreateOptionsMenu(menu: Menu): Boolean { // Inflate the menu; this adds items to the action bar if it is present. menuInflater.inflate(R.menu.menu_main, menu) @@ -389,8 +387,8 @@ class MainActivity : AppCompatActivity() { } private fun giveFocusToAIfNone() { - if (!binding.contentMain.inputTeamA.isFocused && !binding.contentMain.inputTeamB.isFocused) { - binding.contentMain.inputTeamA.requestFocus() + if (!binding.contentMain.keyboard.inputTeamA.isFocused && !binding.contentMain.keyboard.inputTeamB.isFocused) { + binding.contentMain.keyboard.inputTeamA.requestFocus() } } @@ -403,15 +401,15 @@ class MainActivity : AppCompatActivity() { binding.contentMain.scoreA.text = history.getScoreA().toString() binding.contentMain.scoreB.text = history.getScoreB().toString() - binding.contentMain.historyA.text = history.getHistoryA() - binding.contentMain.historyB.text = history.getHistoryB() + binding.contentMain.scrollHistory.historyA?.text = history.getHistoryA() + binding.contentMain.scrollHistory.historyB?.text = history.getHistoryB() } private fun clearAll() { - binding.contentMain.historyA.text = "" - binding.contentMain.historyB.text = "" - binding.contentMain.inputTeamA.text.clear() - binding.contentMain.inputTeamB.text.clear() + binding.contentMain.scrollHistory.historyA?.text = "" + binding.contentMain.scrollHistory.historyB?.text = "" + binding.contentMain.keyboard.inputTeamA.text.clear() + binding.contentMain.keyboard.inputTeamB.text.clear() binding.contentMain.scoreA.text = "0" binding.contentMain.scoreB.text = "0" @@ -419,21 +417,21 @@ class MainActivity : AppCompatActivity() { } private fun appendToFocusedInput(toAppend: Char) { - if (binding.contentMain.inputTeamA.isFocused) { - binding.contentMain.inputTeamA.text.append(toAppend) - } else if (binding.contentMain.inputTeamB.isFocused) { - binding.contentMain.inputTeamB.text.append(toAppend) + if (binding.contentMain.keyboard.inputTeamA.isFocused) { + binding.contentMain.keyboard.inputTeamA.text.append(toAppend) + } else if (binding.contentMain.keyboard.inputTeamB.isFocused) { + binding.contentMain.keyboard.inputTeamB.text.append(toAppend) } } private fun enableSubmitButton() { - binding.contentMain.submit.imageAlpha = 255 // 0 being transparent and 255 being opaque - binding.contentMain.submit.isEnabled = true + binding.contentMain.keyboard.submit?.imageAlpha = 255 // 0 being transparent and 255 being opaque + binding.contentMain.keyboard.submit?.isEnabled = true } private fun disableSubmitButton() { - binding.contentMain.submit.imageAlpha = 60 // 0 being transparent and 255 being opaque - binding.contentMain.submit.isEnabled = false + binding.contentMain.keyboard.submit?.imageAlpha = 60 // 0 being transparent and 255 being opaque + binding.contentMain.keyboard.submit?.isEnabled = false } private fun chooseThemeDialog() { diff --git a/app/src/main/java/me/zobrist/tichucounter/fragments/HistoryList.kt b/app/src/main/java/me/zobrist/tichucounter/fragments/HistoryList.kt new file mode 100644 index 0000000..b4f91c3 --- /dev/null +++ b/app/src/main/java/me/zobrist/tichucounter/fragments/HistoryList.kt @@ -0,0 +1,32 @@ +package me.zobrist.tichucounter.fragments + +import androidx.lifecycle.ViewModelProvider +import android.os.Bundle +import androidx.fragment.app.Fragment +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import me.zobrist.tichucounter.R + +class HistoryList : Fragment() { + + companion object { + fun newInstance() = HistoryList() + } + + private lateinit var viewModel: HistoryListViewModel + + override fun onCreateView( + inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + return inflater.inflate(R.layout.fragment_history_list, container, false) + } + + override fun onActivityCreated(savedInstanceState: Bundle?) { + super.onActivityCreated(savedInstanceState) + viewModel = ViewModelProvider(this).get(HistoryListViewModel::class.java) + // TODO: Use the ViewModel + } + +} \ No newline at end of file diff --git a/app/src/main/java/me/zobrist/tichucounter/fragments/HistoryListViewModel.kt b/app/src/main/java/me/zobrist/tichucounter/fragments/HistoryListViewModel.kt new file mode 100644 index 0000000..fd98b06 --- /dev/null +++ b/app/src/main/java/me/zobrist/tichucounter/fragments/HistoryListViewModel.kt @@ -0,0 +1,7 @@ +package me.zobrist.tichucounter.fragments + +import androidx.lifecycle.ViewModel + +class HistoryListViewModel : ViewModel() { + // TODO: Implement the ViewModel +} \ No newline at end of file diff --git a/app/src/main/java/me/zobrist/tichucounter/fragments/Keyboard.kt b/app/src/main/java/me/zobrist/tichucounter/fragments/Keyboard.kt new file mode 100644 index 0000000..8348c18 --- /dev/null +++ b/app/src/main/java/me/zobrist/tichucounter/fragments/Keyboard.kt @@ -0,0 +1,35 @@ +package me.zobrist.tichucounter.fragments + +import androidx.lifecycle.ViewModelProvider +import android.os.Bundle +import androidx.fragment.app.Fragment +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ScrollView +import androidx.core.widget.doOnTextChanged +import me.zobrist.tichucounter.R +import me.zobrist.tichucounter.domain.Round + +class Keyboard : Fragment() { + + companion object { + fun newInstance() = Keyboard() + } + + private lateinit var viewModel: KeyboardViewModel + + override fun onCreateView( + inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + return inflater.inflate(R.layout.fragment_keyboard, container, false) + } + + override fun onActivityCreated(savedInstanceState: Bundle?) { + super.onActivityCreated(savedInstanceState) + viewModel = ViewModelProvider(this).get(KeyboardViewModel::class.java) + // TODO: Use the ViewModel + + } +} \ No newline at end of file diff --git a/app/src/main/java/me/zobrist/tichucounter/fragments/KeyboardViewModel.kt b/app/src/main/java/me/zobrist/tichucounter/fragments/KeyboardViewModel.kt new file mode 100644 index 0000000..debc166 --- /dev/null +++ b/app/src/main/java/me/zobrist/tichucounter/fragments/KeyboardViewModel.kt @@ -0,0 +1,7 @@ +package me.zobrist.tichucounter.fragments + +import androidx.lifecycle.ViewModel + +class KeyboardViewModel : ViewModel() { + // TODO: Implement the ViewModel +} \ No newline at end of file diff --git a/app/src/main/res/layout-land/content_main.xml b/app/src/main/res/layout-land/content_main.xml index f75351b..de2990b 100644 --- a/app/src/main/res/layout-land/content_main.xml +++ b/app/src/main/res/layout-land/content_main.xml @@ -82,35 +82,13 @@ - - - - - - - - - - - + android:clickable="false"/> - - - - - - - - - -