M app/src/main/java/com/github/nacabaro/vbhelper/components/CharacterEntry.kt => app/src/main/java/com/github/nacabaro/vbhelper/components/CharacterEntry.kt +1 -1
@@ 169,7 169,7 @@ fun SpecialMissionsEntry(
Card(
modifier = modifier,
shape = androidx.compose.material.MaterialTheme.shapes.small,
- onClick = if (specialMission.status == SpecialMission.Status.COMPLETED) {
+ onClick = if (specialMission.status == SpecialMission.Status.COMPLETED || specialMission.status == SpecialMission.Status.FAILED) {
onClickCard
} else {
{ }
M app/src/main/java/com/github/nacabaro/vbhelper/screens/homeScreens/HomeScreenController.kt => app/src/main/java/com/github/nacabaro/vbhelper/screens/homeScreens/HomeScreenController.kt +2 -1
@@ 1,8 1,9 @@
package com.github.nacabaro.vbhelper.screens.homeScreens
+import com.github.cfogrady.vbnfc.vb.SpecialMission
import com.github.nacabaro.vbhelper.dtos.ItemDtos
interface HomeScreenController {
fun didAdventureMissionsFinish(onCompletion: (Boolean) -> Unit)
- fun clearSpecialMission(missionId: Long, onCleared: (ItemDtos.PurchasedItem) -> Unit)
+ fun clearSpecialMission(missionId: Long, missionCompletion: SpecialMission.Status, onCleared: (ItemDtos.PurchasedItem?) -> Unit)
}=
\ No newline at end of file
M app/src/main/java/com/github/nacabaro/vbhelper/screens/homeScreens/HomeScreenControllerImpl.kt => app/src/main/java/com/github/nacabaro/vbhelper/screens/homeScreens/HomeScreenControllerImpl.kt +26 -20
@@ 2,6 2,7 @@ package com.github.nacabaro.vbhelper.screens.homeScreens
import androidx.activity.ComponentActivity
import androidx.lifecycle.lifecycleScope
+import com.github.cfogrady.vbnfc.vb.SpecialMission
import com.github.nacabaro.vbhelper.di.VBHelper
import com.github.nacabaro.vbhelper.dtos.ItemDtos
import kotlinx.coroutines.launch
@@ 30,37 31,42 @@ class HomeScreenControllerImpl(
}
}
- override fun clearSpecialMission(missionId: Long, onCleared: (ItemDtos.PurchasedItem) -> Unit) {
+ override fun clearSpecialMission(missionId: Long, missionCompletion: SpecialMission.Status, onCleared: (ItemDtos.PurchasedItem?) -> Unit) {
componentActivity.lifecycleScope.launch {
database
.specialMissionDao()
.clearSpecialMission(missionId)
- val randomItem = database
- .itemDao()
- .getAllItems()
- .random()
+ if (missionCompletion == SpecialMission.Status.COMPLETED) {
+ val randomItem = database
+ .itemDao()
+ .getAllItems()
+ .random()
- val randomItemAmount = (Random.nextFloat() * 5).roundToInt()
+ val randomItemAmount = (Random.nextFloat() * 5).roundToInt()
- database
- .itemDao()
- .purchaseItem(
+ database
+ .itemDao()
+ .purchaseItem(
+ itemId = randomItem.id,
+ itemAmount = randomItemAmount
+ )
+
+ val purchasedItem = ItemDtos.PurchasedItem(
itemId = randomItem.id,
- itemAmount = randomItemAmount
+ itemName = randomItem.name,
+ itemDescription = randomItem.description,
+ itemIcon = randomItem.itemIcon,
+ itemLength = randomItem.itemLength,
+ itemAmount = randomItemAmount,
+ itemType = randomItem.itemType
)
- val purchasedItem = ItemDtos.PurchasedItem(
- itemId = randomItem.id,
- itemName = randomItem.name,
- itemDescription = randomItem.description,
- itemIcon = randomItem.itemIcon,
- itemLength = randomItem.itemLength,
- itemAmount = randomItemAmount,
- itemType = randomItem.itemType
- )
+ onCleared(purchasedItem)
+ } else {
+ onCleared(null)
+ }
- onCleared(purchasedItem)
}
}
}=
\ No newline at end of file
M app/src/main/java/com/github/nacabaro/vbhelper/screens/homeScreens/screens/VBDiMHomeScreen.kt => app/src/main/java/com/github/nacabaro/vbhelper/screens/homeScreens/screens/VBDiMHomeScreen.kt +2 -2
@@ 34,7 34,7 @@ fun VBDiMHomeScreen(
homeScreenController: HomeScreenControllerImpl,
transformationHistory: List<CharacterDtos.TransformationHistory>,
contentPadding: PaddingValues,
- onClickCollect: (ItemDtos.PurchasedItem) -> Unit
+ onClickCollect: (ItemDtos.PurchasedItem?) -> Unit
) {
Column(
modifier = Modifier
@@ 181,7 181,7 @@ fun VBDiMHomeScreen(
.padding(8.dp),
) {
homeScreenController
- .clearSpecialMission(mission.id, onClickCollect)
+ .clearSpecialMission(mission.id, mission.status, onClickCollect)
}
}
}