Nat Strangerweather
08/05/2022, 2:35 PMNat Strangerweather
08/05/2022, 2:35 PMVerticalGrid(
columns = 7, modifier = Modifier
.background(
color = findColor(accentColor),
shape = RoundedCornerShape(8.dp)
)
.padding(start = 10.dp, end = 10.dp, top = boardPadding, bottom = boardPadding)
) {
boardLetters?.forEachIndexed { index, letter ->
MainPiece(
letter, index,
state = MainPieceComposableState(
visible =
if (savedValues != null && savedValues?.isNotEmpty() == true
&& isReloaded == false
) visible!![index] else true,
enabled = if (savedValues != null && savedValues?.isNotEmpty() == true
&& isReloaded == false
) enabled!![index] else true
)
)
}
Lukasz Kalnik
08/05/2022, 2:57 PMvisible!!
and enabled!!
come from? Look like the most likely candidates, as you access them by index
.Landry Norris
08/05/2022, 2:58 PMLandry Norris
08/05/2022, 2:59 PMNat Strangerweather
08/05/2022, 2:59 PMtrue
but when the database exists they come from there. Which is why I check if the saved values exist...Lukasz Kalnik
08/05/2022, 3:00 PMLukasz Kalnik
08/05/2022, 3:00 PMNat Strangerweather
08/05/2022, 3:00 PMLukasz Kalnik
08/05/2022, 3:01 PMboardLetters
already there.Nat Strangerweather
08/05/2022, 3:01 PMLukasz Kalnik
08/05/2022, 3:01 PMNat Strangerweather
08/05/2022, 3:02 PM**Repository**
val arr = Array(9) {
Letter("A", 1)
} + Array(2) {
Letter("B", 3)
} + Array(2) {
Letter("C", 3)
} + Array(4) {
Letter("D", 2)
} etc...
**ViewModel**
private fun shakeLetterBag(count: Int): Array<Letter> {
return repository.arr.toList()
.shuffled()
.take(count).toTypedArray()
}
var boardLetters = MutableLiveData(shakeLetterBag(28))
**GameBoard**
VerticalGrid(
columns = 7, modifier = Modifier
.background(
color = findColor(accentColor),
shape = RoundedCornerShape(8.dp)
)
.padding(start = 10.dp, end = 10.dp, top = boardPadding, bottom = boardPadding)
) {
boardLetters?.forEachIndexed { index, letter ->
MainPiece(
letter, index,
state = MainPieceComposableState(
visible =
if (savedValues != null && savedValues?.isNotEmpty() == true
&& isReloaded == false
) visible!![index] else true,
enabled = if (savedValues != null && savedValues?.isNotEmpty() == true
&& isReloaded == false
) enabled!![index] else true
)
)
}
Nat Strangerweather
08/05/2022, 3:03 PM) visible!![index] else true,
Lukasz Kalnik
08/05/2022, 3:04 PMvisible
size is smaller or equal than the index
Nat Strangerweather
08/05/2022, 3:05 PMLukasz Kalnik
08/05/2022, 3:05 PMvisible
from room database?Landry Norris
08/05/2022, 3:05 PMLandry Norris
08/05/2022, 3:06 PMLandry Norris
08/05/2022, 3:06 PMLukasz Kalnik
08/05/2022, 3:07 PMvisible =
(Boolean) is the named parameter of the MainPieceComposableState
.Nat Strangerweather
08/05/2022, 3:07 PMLukasz Kalnik
08/05/2022, 3:07 PMvisible!![index]
is an Iterable of booleansLukasz Kalnik
08/05/2022, 3:07 PMLukasz Kalnik
08/05/2022, 3:07 PMLandry Norris
08/05/2022, 3:07 PMLukasz Kalnik
08/05/2022, 3:09 PMprintln("visible size: ${visible.size})
and the same for enabled inside of your boardLetters?.forEachIndexed
Lukasz Kalnik
08/05/2022, 3:09 PMNat Strangerweather
08/05/2022, 3:09 PMLandry Norris
08/05/2022, 3:10 PMNat Strangerweather
08/05/2022, 3:11 PMLukasz Kalnik
08/05/2022, 3:11 PMLukasz Kalnik
08/05/2022, 3:12 PMLukasz Kalnik
08/05/2022, 3:12 PMNat Strangerweather
08/05/2022, 3:13 PMNat Strangerweather
08/05/2022, 3:13 PMLukasz Kalnik
08/05/2022, 3:15 PMprintln()
in LaunchedEffect, as it will run parallel to the rest of your codeLukasz Kalnik
08/05/2022, 3:15 PMvisible
Array (or List, whatever you use)Nat Strangerweather
08/05/2022, 3:17 PMLukasz Kalnik
08/05/2022, 3:17 PMnull
you gotLukasz Kalnik
08/05/2022, 3:17 PMvisible
is 1Lukasz Kalnik
08/05/2022, 3:18 PMNat Strangerweather
08/05/2022, 3:18 PMLukasz Kalnik
08/05/2022, 3:18 PMNat Strangerweather
08/05/2022, 3:20 PMval readVisible: LiveData<List<Boolean>> = savedValuesDao.readVisible()
val readEnabled: LiveData<List<Boolean>> = savedValuesDao.readEnabled()
Lukasz Kalnik
08/05/2022, 3:20 PMLukasz Kalnik
08/05/2022, 3:21 PMNat Strangerweather
08/05/2022, 3:21 PMfun saveValues(index: Int) {
if (savedValues != null) {
if (savedValues!!.isEmpty()) {
savedViewModel.addValues(
SavedValues(
index,
visible = true,
enabled = true,
boardLetters = boardLetters!![index].name,
boardLettersValue = boardLetters!![index].value,
validated = false
)
)
} else {
savedViewModel.updatePieces(
SavedPieces(
index,
boardLetters!![index].name,
boardLetters!![index].value
)
)
}
}
}
Nat Strangerweather
08/05/2022, 3:22 PMLukasz Kalnik
08/05/2022, 3:22 PMLukasz Kalnik
08/05/2022, 3:22 PMNat Strangerweather
08/05/2022, 3:22 PMLukasz Kalnik
08/05/2022, 3:23 PMLukasz Kalnik
08/05/2022, 3:24 PMNat Strangerweather
08/05/2022, 3:24 PMNat Strangerweather
08/05/2022, 3:24 PMNat Strangerweather
08/05/2022, 3:25 PMLukasz Kalnik
08/05/2022, 3:25 PMNat Strangerweather
08/05/2022, 3:25 PMNat Strangerweather
08/05/2022, 3:25 PMLukasz Kalnik
08/05/2022, 3:25 PMLukasz Kalnik
08/05/2022, 3:26 PMLukasz Kalnik
08/05/2022, 3:26 PMNat Strangerweather
08/05/2022, 3:26 PMLukasz Kalnik
08/05/2022, 3:28 PMlukaszkalnik
on GitHubNat Strangerweather
08/05/2022, 3:29 PMNat Strangerweather
08/05/2022, 3:29 PMLukasz Kalnik
08/05/2022, 3:29 PMLukasz Kalnik
08/05/2022, 3:29 PMLukasz Kalnik
08/05/2022, 3:29 PMNat Strangerweather
08/05/2022, 3:31 PMLukasz Kalnik
08/05/2022, 3:38 PMLukasz Kalnik
08/05/2022, 3:39 PMNat Strangerweather
08/05/2022, 3:40 PMLukasz Kalnik
08/05/2022, 3:40 PMif (savedValues != null && savedValues?.isNotEmpty() == true
&& isReloaded == false
) visible!![index] else true
Nat Strangerweather
08/05/2022, 3:40 PMLukasz Kalnik
08/05/2022, 3:41 PMLukasz Kalnik
08/05/2022, 3:43 PMLukasz Kalnik
08/05/2022, 3:43 PM2022-08-05 17:42:45.789 26698-26698 System.out com.strangerweather.words I visible.size: 28
2022-08-05 17:42:45.789 26698-26698 System.out com.strangerweather.words I enabled.size: 28
2022-08-05 17:42:45.790 26698-26698 System.out com.strangerweather.words I index: 25
2022-08-05 17:42:45.791 26698-26698 System.out com.strangerweather.words I visible.size: 28
2022-08-05 17:42:45.791 26698-26698 System.out com.strangerweather.words I enabled.size: 28
2022-08-05 17:42:45.792 26698-26698 System.out com.strangerweather.words I index: 26
2022-08-05 17:42:45.792 26698-26698 System.out com.strangerweather.words I visible.size: 28
2022-08-05 17:42:45.792 26698-26698 System.out com.strangerweather.words I enabled.size: 28
Lukasz Kalnik
08/05/2022, 3:43 PMLukasz Kalnik
08/05/2022, 3:43 PMNat Strangerweather
08/05/2022, 3:43 PMNat Strangerweather
08/05/2022, 3:44 PMLukasz Kalnik
08/05/2022, 3:44 PMNat Strangerweather
08/05/2022, 3:44 PMLukasz Kalnik
08/05/2022, 3:45 PMLukasz Kalnik
08/05/2022, 3:45 PMNat Strangerweather
08/05/2022, 3:46 PMLukasz Kalnik
08/05/2022, 3:46 PMNat Strangerweather
08/05/2022, 3:46 PMLukasz Kalnik
08/05/2022, 3:46 PMLukasz Kalnik
08/05/2022, 3:47 PMNat Strangerweather
08/05/2022, 3:47 PMLukasz Kalnik
08/05/2022, 3:48 PMNat Strangerweather
08/05/2022, 3:48 PMLukasz Kalnik
08/05/2022, 3:49 PMLukasz Kalnik
08/05/2022, 3:49 PMNat Strangerweather
08/05/2022, 3:49 PMLukasz Kalnik
08/05/2022, 3:49 PMNat Strangerweather
08/05/2022, 3:50 PMLukasz Kalnik
08/05/2022, 3:50 PMNat Strangerweather
08/05/2022, 3:50 PMLukasz Kalnik
08/05/2022, 3:50 PMLukasz Kalnik
08/05/2022, 3:50 PMNat Strangerweather
08/05/2022, 3:50 PMLukasz Kalnik
08/05/2022, 3:50 PMLukasz Kalnik
08/05/2022, 3:50 PMNat Strangerweather
08/05/2022, 3:51 PMLukasz Kalnik
08/05/2022, 3:51 PMLukasz Kalnik
08/05/2022, 3:51 PMNat Strangerweather
08/05/2022, 3:51 PMLukasz Kalnik
08/05/2022, 3:51 PMNat Strangerweather
08/05/2022, 3:51 PMLukasz Kalnik
08/05/2022, 3:52 PMLukasz Kalnik
08/05/2022, 3:52 PM