~cytrogen/vbhelper

af2c852bac0ca477a8d44de6cf58c2bc164889fe — nacabaro 7 months ago aac05a3 + 8dc5bbb
Merge pull request #38 from nacabaro/vb/special_missions

Small fix related to special missions
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)
                }
            }
        }