From 1e428e854eaa60569e4819e534914b5421b747b9 Mon Sep 17 00:00:00 2001 From: Fabian Zobrist Date: Fri, 6 Jan 2023 11:09:06 +0100 Subject: [PATCH] Move all fragments to ui package. Store created and modified date to game. --- app/build.gradle | 14 ++-- app/src/main/AndroidManifest.xml | 3 +- .../me/zobrist/tichucounter/BaseActivity.kt | 2 +- .../zobrist/tichucounter/data/AppDatabase.kt | 2 + .../tichucounter/data/DateConverter.kt | 2 + .../java/me/zobrist/tichucounter/data/Game.kt | 3 + .../me/zobrist/tichucounter/data/GameDao.kt | 5 +- .../me/zobrist/tichucounter/data/RoundDao.kt | 7 -- .../tichucounter/repository/GameRepository.kt | 66 ++++++++++--------- .../{fragments => ui}/FragmentBase.kt | 2 +- .../ui/counter/CounterFragment.kt | 8 +-- .../{fragments => ui/counter}/HistoryList.kt | 3 +- .../counter}/HistoryListViewModel.kt | 4 +- .../{fragments => ui/counter}/Keyboard.kt | 3 +- .../counter}/KeyboardViewModel.kt | 2 +- .../{fragments => ui/counter}/TeamNames.kt | 3 +- .../counter}/TeamNamesViewModel.kt | 13 ++-- .../{fragments => ui/counter}/TeamScores.kt | 3 +- .../counter}/TeamScoresViewModel.kt | 4 +- .../ui/slideshow/SlideshowFragment.kt | 5 +- .../main/res/layout-land/fragment_counter.xml | 8 +-- app/src/main/res/layout/fragment_counter.xml | 8 +-- .../main/res/layout/fragment_history_list.xml | 4 +- app/src/main/res/layout/fragment_keyboard.xml | 2 +- .../main/res/layout/fragment_team_names.xml | 2 +- .../main/res/layout/fragment_team_scores.xml | 2 +- .../main/res/xml/data_extraction_rules.xml | 6 ++ .../me/zobrist/tichucounter/TichuUnitTest.kt | 2 +- build.gradle | 2 +- 29 files changed, 99 insertions(+), 91 deletions(-) rename app/src/main/java/me/zobrist/tichucounter/{fragments => ui}/FragmentBase.kt (95%) rename app/src/main/java/me/zobrist/tichucounter/{fragments => ui/counter}/HistoryList.kt (92%) rename app/src/main/java/me/zobrist/tichucounter/{fragments => ui/counter}/HistoryListViewModel.kt (93%) rename app/src/main/java/me/zobrist/tichucounter/{fragments => ui/counter}/Keyboard.kt (98%) rename app/src/main/java/me/zobrist/tichucounter/{fragments => ui/counter}/KeyboardViewModel.kt (97%) rename app/src/main/java/me/zobrist/tichucounter/{fragments => ui/counter}/TeamNames.kt (93%) rename app/src/main/java/me/zobrist/tichucounter/{fragments => ui/counter}/TeamNamesViewModel.kt (78%) rename app/src/main/java/me/zobrist/tichucounter/{fragments => ui/counter}/TeamScores.kt (91%) rename app/src/main/java/me/zobrist/tichucounter/{fragments => ui/counter}/TeamScoresViewModel.kt (91%) create mode 100644 app/src/main/res/xml/data_extraction_rules.xml diff --git a/app/build.gradle b/app/build.gradle index dd03c35..e085085 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -78,13 +78,13 @@ dependencies { 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' - implementation 'androidx.fragment:fragment:1.4.1' - implementation 'androidx.preference:preference:1.1.1' - testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test.ext:junit:1.1.4' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.0' + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.5.1' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1' + implementation 'androidx.fragment:fragment-ktx:1.5.5' + implementation 'androidx.preference:preference-ktx:1.2.0' + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.ext:junit:1.1.5' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' implementation "com.google.dagger:hilt-android:2.44" kapt "com.google.dagger:hilt-compiler:2.44" implementation("androidx.room:room-runtime:2.4.3") diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 17ca58d..f56589c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -10,7 +10,8 @@ android:localeConfig="@xml/locales_config" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" - android:theme="@style/AppTheme"> + android:theme="@style/AppTheme" + android:dataExtractionRules="@xml/data_extraction_rules"> setLanguage(sharedPreferences.getString(key, null)) "screen_on" -> keepScreenOn(sharedPreferences.getBoolean(key, false)) "theme" -> updateTheme(sharedPreferences.getString(key, null)) diff --git a/app/src/main/java/me/zobrist/tichucounter/data/AppDatabase.kt b/app/src/main/java/me/zobrist/tichucounter/data/AppDatabase.kt index 1fcc51a..431437d 100644 --- a/app/src/main/java/me/zobrist/tichucounter/data/AppDatabase.kt +++ b/app/src/main/java/me/zobrist/tichucounter/data/AppDatabase.kt @@ -2,8 +2,10 @@ package me.zobrist.tichucounter.data import androidx.room.Database import androidx.room.RoomDatabase +import androidx.room.TypeConverters @Database(entities = [Round::class, Game::class], version = 1) +@TypeConverters(DateConverter::class) abstract class AppDatabase : RoomDatabase() { abstract fun roundDao(): RoundDao abstract fun gameDao(): GameDao diff --git a/app/src/main/java/me/zobrist/tichucounter/data/DateConverter.kt b/app/src/main/java/me/zobrist/tichucounter/data/DateConverter.kt index 9bda853..be2a9db 100644 --- a/app/src/main/java/me/zobrist/tichucounter/data/DateConverter.kt +++ b/app/src/main/java/me/zobrist/tichucounter/data/DateConverter.kt @@ -1,8 +1,10 @@ package me.zobrist.tichucounter.data +import androidx.room.ProvidedTypeConverter import androidx.room.TypeConverter import java.util.* +@ProvidedTypeConverter object DateConverter { @TypeConverter fun toDate(dateLong: Long?): Date? { diff --git a/app/src/main/java/me/zobrist/tichucounter/data/Game.kt b/app/src/main/java/me/zobrist/tichucounter/data/Game.kt index 87e1eea..d6fc7b4 100644 --- a/app/src/main/java/me/zobrist/tichucounter/data/Game.kt +++ b/app/src/main/java/me/zobrist/tichucounter/data/Game.kt @@ -2,11 +2,14 @@ package me.zobrist.tichucounter.data import androidx.room.Entity import androidx.room.PrimaryKey +import java.util.* @Entity data class Game( val active: Boolean, var nameA: String, var nameB: String, + val created: Date, + var modified: Date, @PrimaryKey(autoGenerate = true) val uid: Long? = null ) \ No newline at end of file diff --git a/app/src/main/java/me/zobrist/tichucounter/data/GameDao.kt b/app/src/main/java/me/zobrist/tichucounter/data/GameDao.kt index 66e19e7..7f46de7 100644 --- a/app/src/main/java/me/zobrist/tichucounter/data/GameDao.kt +++ b/app/src/main/java/me/zobrist/tichucounter/data/GameDao.kt @@ -7,14 +7,11 @@ import kotlinx.coroutines.flow.Flow @Dao interface GameDao : DaoBase { - @Query("SELECT * FROM game") - fun getAll(): Flow> - @Query("SELECT * FROM game WHERE uid is :gameId") fun getGameById(gameId: Long): Flow @Query("SELECT * FROM game WHERE active is 1") - fun getActive(): Game + fun getActive(): Flow @Query("UPDATE game SET active = 1 WHERE uid is :gameId;") fun setActive(gameId: Long) diff --git a/app/src/main/java/me/zobrist/tichucounter/data/RoundDao.kt b/app/src/main/java/me/zobrist/tichucounter/data/RoundDao.kt index 407f8ac..600dde1 100644 --- a/app/src/main/java/me/zobrist/tichucounter/data/RoundDao.kt +++ b/app/src/main/java/me/zobrist/tichucounter/data/RoundDao.kt @@ -6,9 +6,6 @@ import kotlinx.coroutines.flow.Flow @Dao interface RoundDao : DaoBase { - @Query("SELECT * FROM round") - fun getAll(): Flow> - @Query("SELECT * FROM round WHERE gameId is :gameId") fun getAllForGame(gameId: Long?): List @@ -19,8 +16,4 @@ interface RoundDao : DaoBase { "WHERE game.active == 1" ) fun getForActiveGame(): Flow> - - @Insert - fun insertAll(vararg rounds: Round) - } \ No newline at end of file diff --git a/app/src/main/java/me/zobrist/tichucounter/repository/GameRepository.kt b/app/src/main/java/me/zobrist/tichucounter/repository/GameRepository.kt index ab1c6a7..148cfd6 100644 --- a/app/src/main/java/me/zobrist/tichucounter/repository/GameRepository.kt +++ b/app/src/main/java/me/zobrist/tichucounter/repository/GameRepository.kt @@ -1,11 +1,14 @@ package me.zobrist.tichucounter.repository +import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import me.zobrist.tichucounter.data.Game import me.zobrist.tichucounter.data.GameDao import me.zobrist.tichucounter.data.Round import me.zobrist.tichucounter.data.RoundDao +import java.util.* import javax.inject.Inject class GameRepository @Inject constructor( @@ -13,32 +16,40 @@ class GameRepository @Inject constructor( private val roundDao: RoundDao ) { - suspend fun newGame(): Game { - return withContext(Dispatchers.IO) { - val currentGame = gameDao.getActive() - val game = if (currentGame == null) { - Game(true, "TeamA", "TeamB") - } else { - Game(true, currentGame.nameA, currentGame.nameB) + private var _activeGame: Game? = null + + val activeGame: Game + get() { + return _activeGame!! + } + + init { + CoroutineScope(Dispatchers.IO).launch { + gameDao.getActive().collect { + if (it == null) { + gameDao.insert(Game(true, "TeamA", "TeamB", Date(), Date())) + } else { + _activeGame = it + } } - val id = gameDao.insert(game) + } + } + + suspend fun newGame() { + withContext(Dispatchers.IO) { + val id = + gameDao.insert(Game(true, activeGame.nameA, activeGame.nameB, Date(), Date())) setActive(id) - return@withContext gameDao.getActive() } } suspend fun updateGame(game: Game) { + game.modified = Date() withContext(Dispatchers.IO) { gameDao.update(game) } } - suspend fun getActiveGame(): Game { - return withContext(Dispatchers.IO) { - return@withContext gameDao.getActive() - } - } - private suspend fun setActive(id: Long) { withContext(Dispatchers.IO) { gameDao.setActive(id) @@ -46,28 +57,23 @@ class GameRepository @Inject constructor( } } - suspend fun getActiveRoundHistory(): List { - return withContext(Dispatchers.IO) { - val active = getActiveGame() - if (active?.uid != null) { - return@withContext roundDao.getAllForGame(active.uid) - } else { - return@withContext listOf() - } - } - } - - suspend fun removeRoundFromHistory(round: Round) { + suspend fun revertLastRound() { withContext(Dispatchers.IO) { - roundDao.delete(round) + try { + val lastRound = roundDao.getAllForGame(activeGame.uid).last() + roundDao.delete(lastRound) + } catch (_: NoSuchElementException) { + } } } suspend fun addRoundToActiveGame(scoreA: Int, scoreB: Int) { withContext(Dispatchers.IO) { - val active = getActiveGame() + val active = activeGame + active.modified = Date() val round = Round(active.uid!!, scoreA, scoreB) - roundDao.insertAll(round) + roundDao.insert(round) + gameDao.update(active) } } } \ No newline at end of file diff --git a/app/src/main/java/me/zobrist/tichucounter/fragments/FragmentBase.kt b/app/src/main/java/me/zobrist/tichucounter/ui/FragmentBase.kt similarity index 95% rename from app/src/main/java/me/zobrist/tichucounter/fragments/FragmentBase.kt rename to app/src/main/java/me/zobrist/tichucounter/ui/FragmentBase.kt index f1f619e..64055b7 100644 --- a/app/src/main/java/me/zobrist/tichucounter/fragments/FragmentBase.kt +++ b/app/src/main/java/me/zobrist/tichucounter/ui/FragmentBase.kt @@ -1,4 +1,4 @@ -package me.zobrist.tichucounter.fragments +package me.zobrist.tichucounter.ui import android.os.Bundle import android.view.LayoutInflater diff --git a/app/src/main/java/me/zobrist/tichucounter/ui/counter/CounterFragment.kt b/app/src/main/java/me/zobrist/tichucounter/ui/counter/CounterFragment.kt index 0a11e37..5bf44cd 100644 --- a/app/src/main/java/me/zobrist/tichucounter/ui/counter/CounterFragment.kt +++ b/app/src/main/java/me/zobrist/tichucounter/ui/counter/CounterFragment.kt @@ -15,9 +15,8 @@ import me.zobrist.tichucounter.data.Round import me.zobrist.tichucounter.databinding.FragmentCounterBinding import me.zobrist.tichucounter.domain.Tichu import me.zobrist.tichucounter.domain.getAbsoluteDifference -import me.zobrist.tichucounter.fragments.FragmentBase -import me.zobrist.tichucounter.fragments.KeyboardViewModel import me.zobrist.tichucounter.repository.GameRepository +import me.zobrist.tichucounter.ui.FragmentBase import javax.inject.Inject @AndroidEntryPoint @@ -107,10 +106,7 @@ class CounterFragment : FragmentBase(), MenuProvider { } R.id.action_undo -> { viewLifecycleOwner.lifecycleScope.launch { - val history = gameRepository.getActiveRoundHistory() - if (history.isNotEmpty()) { - gameRepository.removeRoundFromHistory(history.last()) - } + gameRepository.revertLastRound() } true } diff --git a/app/src/main/java/me/zobrist/tichucounter/fragments/HistoryList.kt b/app/src/main/java/me/zobrist/tichucounter/ui/counter/HistoryList.kt similarity index 92% rename from app/src/main/java/me/zobrist/tichucounter/fragments/HistoryList.kt rename to app/src/main/java/me/zobrist/tichucounter/ui/counter/HistoryList.kt index ebaf1f5..f8dba9a 100644 --- a/app/src/main/java/me/zobrist/tichucounter/fragments/HistoryList.kt +++ b/app/src/main/java/me/zobrist/tichucounter/ui/counter/HistoryList.kt @@ -1,4 +1,4 @@ -package me.zobrist.tichucounter.fragments +package me.zobrist.tichucounter.ui.counter import android.os.Bundle import android.view.LayoutInflater @@ -7,6 +7,7 @@ import android.view.ViewGroup import androidx.fragment.app.activityViewModels import dagger.hilt.android.AndroidEntryPoint import me.zobrist.tichucounter.databinding.FragmentHistoryListBinding +import me.zobrist.tichucounter.ui.FragmentBase @AndroidEntryPoint class HistoryList : FragmentBase() { diff --git a/app/src/main/java/me/zobrist/tichucounter/fragments/HistoryListViewModel.kt b/app/src/main/java/me/zobrist/tichucounter/ui/counter/HistoryListViewModel.kt similarity index 93% rename from app/src/main/java/me/zobrist/tichucounter/fragments/HistoryListViewModel.kt rename to app/src/main/java/me/zobrist/tichucounter/ui/counter/HistoryListViewModel.kt index 2294e86..2816c24 100644 --- a/app/src/main/java/me/zobrist/tichucounter/fragments/HistoryListViewModel.kt +++ b/app/src/main/java/me/zobrist/tichucounter/ui/counter/HistoryListViewModel.kt @@ -1,4 +1,4 @@ -package me.zobrist.tichucounter.fragments +package me.zobrist.tichucounter.ui.counter import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData @@ -20,7 +20,7 @@ class HistoryListViewModel @Inject constructor(private val roundDao: RoundDao) : init { viewModelScope.launch { - roundDao.getForActiveGame().collect() { scores -> + roundDao.getForActiveGame().collect { scores -> update(scores) } } diff --git a/app/src/main/java/me/zobrist/tichucounter/fragments/Keyboard.kt b/app/src/main/java/me/zobrist/tichucounter/ui/counter/Keyboard.kt similarity index 98% rename from app/src/main/java/me/zobrist/tichucounter/fragments/Keyboard.kt rename to app/src/main/java/me/zobrist/tichucounter/ui/counter/Keyboard.kt index ab916ac..59dcc16 100644 --- a/app/src/main/java/me/zobrist/tichucounter/fragments/Keyboard.kt +++ b/app/src/main/java/me/zobrist/tichucounter/ui/counter/Keyboard.kt @@ -1,4 +1,4 @@ -package me.zobrist.tichucounter.fragments +package me.zobrist.tichucounter.ui.counter import android.content.Context import android.os.Bundle @@ -11,6 +11,7 @@ import android.widget.EditText import androidx.fragment.app.activityViewModels import dagger.hilt.android.AndroidEntryPoint import me.zobrist.tichucounter.databinding.FragmentKeyboardBinding +import me.zobrist.tichucounter.ui.FragmentBase @AndroidEntryPoint class Keyboard : FragmentBase() { diff --git a/app/src/main/java/me/zobrist/tichucounter/fragments/KeyboardViewModel.kt b/app/src/main/java/me/zobrist/tichucounter/ui/counter/KeyboardViewModel.kt similarity index 97% rename from app/src/main/java/me/zobrist/tichucounter/fragments/KeyboardViewModel.kt rename to app/src/main/java/me/zobrist/tichucounter/ui/counter/KeyboardViewModel.kt index d2328a7..9a755fd 100644 --- a/app/src/main/java/me/zobrist/tichucounter/fragments/KeyboardViewModel.kt +++ b/app/src/main/java/me/zobrist/tichucounter/ui/counter/KeyboardViewModel.kt @@ -1,4 +1,4 @@ -package me.zobrist.tichucounter.fragments +package me.zobrist.tichucounter.ui.counter import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData diff --git a/app/src/main/java/me/zobrist/tichucounter/fragments/TeamNames.kt b/app/src/main/java/me/zobrist/tichucounter/ui/counter/TeamNames.kt similarity index 93% rename from app/src/main/java/me/zobrist/tichucounter/fragments/TeamNames.kt rename to app/src/main/java/me/zobrist/tichucounter/ui/counter/TeamNames.kt index 0e96063..59281d5 100644 --- a/app/src/main/java/me/zobrist/tichucounter/fragments/TeamNames.kt +++ b/app/src/main/java/me/zobrist/tichucounter/ui/counter/TeamNames.kt @@ -1,4 +1,4 @@ -package me.zobrist.tichucounter.fragments +package me.zobrist.tichucounter.ui.counter import android.os.Bundle import android.view.LayoutInflater @@ -8,6 +8,7 @@ import androidx.core.widget.doAfterTextChanged import androidx.fragment.app.activityViewModels import dagger.hilt.android.AndroidEntryPoint import me.zobrist.tichucounter.databinding.FragmentTeamNamesBinding +import me.zobrist.tichucounter.ui.FragmentBase @AndroidEntryPoint class TeamNames : FragmentBase() { diff --git a/app/src/main/java/me/zobrist/tichucounter/fragments/TeamNamesViewModel.kt b/app/src/main/java/me/zobrist/tichucounter/ui/counter/TeamNamesViewModel.kt similarity index 78% rename from app/src/main/java/me/zobrist/tichucounter/fragments/TeamNamesViewModel.kt rename to app/src/main/java/me/zobrist/tichucounter/ui/counter/TeamNamesViewModel.kt index f62e457..d095d66 100644 --- a/app/src/main/java/me/zobrist/tichucounter/fragments/TeamNamesViewModel.kt +++ b/app/src/main/java/me/zobrist/tichucounter/ui/counter/TeamNamesViewModel.kt @@ -1,4 +1,4 @@ -package me.zobrist.tichucounter.fragments +package me.zobrist.tichucounter.ui.counter import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData @@ -32,17 +32,16 @@ class TeamNamesViewModel @Inject constructor( init { viewModelScope.launch { - gameDao.getAll().collect() { - val game = gameRepository.getActiveGame() - _nameA.value = game.nameA - _nameB.value = game.nameB + gameDao.getActive().collect { + _nameA.value = it?.nameA + _nameB.value = it?.nameB } } } fun setNameA(name: String) { viewModelScope.launch { - val game = gameRepository.getActiveGame() + val game = gameRepository.activeGame game.nameA = name gameRepository.updateGame(game) } @@ -50,7 +49,7 @@ class TeamNamesViewModel @Inject constructor( fun setNameB(name: String) { viewModelScope.launch { - val game = gameRepository.getActiveGame() + val game = gameRepository.activeGame game.nameB = name gameRepository.updateGame(game) } diff --git a/app/src/main/java/me/zobrist/tichucounter/fragments/TeamScores.kt b/app/src/main/java/me/zobrist/tichucounter/ui/counter/TeamScores.kt similarity index 91% rename from app/src/main/java/me/zobrist/tichucounter/fragments/TeamScores.kt rename to app/src/main/java/me/zobrist/tichucounter/ui/counter/TeamScores.kt index 4c5f5c3..cf6ccb1 100644 --- a/app/src/main/java/me/zobrist/tichucounter/fragments/TeamScores.kt +++ b/app/src/main/java/me/zobrist/tichucounter/ui/counter/TeamScores.kt @@ -1,4 +1,4 @@ -package me.zobrist.tichucounter.fragments +package me.zobrist.tichucounter.ui.counter import android.os.Bundle import android.view.LayoutInflater @@ -7,6 +7,7 @@ import android.view.ViewGroup import androidx.fragment.app.activityViewModels import dagger.hilt.android.AndroidEntryPoint import me.zobrist.tichucounter.databinding.FragmentTeamScoresBinding +import me.zobrist.tichucounter.ui.FragmentBase @AndroidEntryPoint class TeamScores : FragmentBase() { diff --git a/app/src/main/java/me/zobrist/tichucounter/fragments/TeamScoresViewModel.kt b/app/src/main/java/me/zobrist/tichucounter/ui/counter/TeamScoresViewModel.kt similarity index 91% rename from app/src/main/java/me/zobrist/tichucounter/fragments/TeamScoresViewModel.kt rename to app/src/main/java/me/zobrist/tichucounter/ui/counter/TeamScoresViewModel.kt index 93ea77c..dfd10d5 100644 --- a/app/src/main/java/me/zobrist/tichucounter/fragments/TeamScoresViewModel.kt +++ b/app/src/main/java/me/zobrist/tichucounter/ui/counter/TeamScoresViewModel.kt @@ -1,4 +1,4 @@ -package me.zobrist.tichucounter.fragments +package me.zobrist.tichucounter.ui.counter import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData @@ -18,7 +18,7 @@ class TeamScoresViewModel @Inject constructor(private val roundDao: RoundDao) : init { viewModelScope.launch { - roundDao.getForActiveGame().collect() { scores -> + roundDao.getForActiveGame().collect { scores -> update(scores) } } diff --git a/app/src/main/java/me/zobrist/tichucounter/ui/slideshow/SlideshowFragment.kt b/app/src/main/java/me/zobrist/tichucounter/ui/slideshow/SlideshowFragment.kt index 55e6f59..471c95e 100644 --- a/app/src/main/java/me/zobrist/tichucounter/ui/slideshow/SlideshowFragment.kt +++ b/app/src/main/java/me/zobrist/tichucounter/ui/slideshow/SlideshowFragment.kt @@ -22,12 +22,11 @@ class SlideshowFragment : Fragment() { savedInstanceState: Bundle? ): View { val slideshowViewModel = - ViewModelProvider(this).get(SlideshowViewModel::class.java) + ViewModelProvider(this)[SlideshowViewModel::class.java] _binding = FragmentSlideshowBinding.inflate(inflater, container, false) - val root: View = binding.root - return root + return binding.root } override fun onDestroyView() { diff --git a/app/src/main/res/layout-land/fragment_counter.xml b/app/src/main/res/layout-land/fragment_counter.xml index beb18cd..d376cd8 100644 --- a/app/src/main/res/layout-land/fragment_counter.xml +++ b/app/src/main/res/layout-land/fragment_counter.xml @@ -19,7 +19,7 @@ + tools:context=".ui.counter.HistoryList"> + tools:context=".ui.counter.Keyboard"> + tools:context=".ui.counter.TeamNames"> + tools:context=".ui.counter.TeamScores"> + + + + + \ No newline at end of file diff --git a/app/src/test/java/me/zobrist/tichucounter/TichuUnitTest.kt b/app/src/test/java/me/zobrist/tichucounter/TichuUnitTest.kt index 3e76bde..9b6c11b 100644 --- a/app/src/test/java/me/zobrist/tichucounter/TichuUnitTest.kt +++ b/app/src/test/java/me/zobrist/tichucounter/TichuUnitTest.kt @@ -17,7 +17,7 @@ class TichuUnitTest { var inputScoreA = 125 var inputScoreB = -25 - val tichu: Tichu = Tichu() + val tichu = Tichu() // Normal round range -25 to 125 as input while (inputScoreB <= 125) { diff --git a/build.gradle b/build.gradle index 03ebbe8..f7490fa 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,6 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = "1.7.0" + ext.kotlin_version = "1.7.20" repositories { google() mavenCentral()