summaryrefslogtreecommitdiffstats
path: root/app/src/main/java/com
diff options
context:
space:
mode:
authorLeonardo Bishop <me@leonardobishop.com>2024-11-17 00:58:27 +0000
committerLeonardo Bishop <me@leonardobishop.com>2024-11-17 01:00:11 +0000
commita5f9c86988d413fc2273c64c011cd6275e85cd71 (patch)
tree61945ed4b976817e35879f7bafe34f2a70e217b1 /app/src/main/java/com
parent8ddf8f862bb2cc97d1253c917bdda8dad0f080a9 (diff)
done
Diffstat (limited to 'app/src/main/java/com')
-rw-r--r--app/src/main/java/com/example/alcagotchi/AlcoGotchi.kt8
-rw-r--r--app/src/main/java/com/example/alcagotchi/CasinoActivity.kt51
2 files changed, 44 insertions, 15 deletions
diff --git a/app/src/main/java/com/example/alcagotchi/AlcoGotchi.kt b/app/src/main/java/com/example/alcagotchi/AlcoGotchi.kt
index bbc5a5b..e5cd130 100644
--- a/app/src/main/java/com/example/alcagotchi/AlcoGotchi.kt
+++ b/app/src/main/java/com/example/alcagotchi/AlcoGotchi.kt
@@ -1,5 +1,7 @@
package com.example.alcagotchi
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.withContext
import okhttp3.Call
import okhttp3.Callback
import okhttp3.MediaType.Companion.toMediaType
@@ -59,7 +61,7 @@ class AlcoGotchi private constructor() {
client.newCall(request).enqueue(basicCallback)
}
- fun postGamble(amount: Int) {
+ suspend fun postGamble(amount: Int) {
val body = JSONObject()
body.put("bet", amount)
@@ -68,6 +70,8 @@ class AlcoGotchi private constructor() {
.post(body.toString().toRequestBody(jsonMediaType))
.build()
- client.newCall(request).enqueue(basicCallback)
+ return withContext(Dispatchers.IO) {
+ handleStateResponse(client.newCall(request).execute())
+ }
}
}
diff --git a/app/src/main/java/com/example/alcagotchi/CasinoActivity.kt b/app/src/main/java/com/example/alcagotchi/CasinoActivity.kt
index bb97951..21ed49d 100644
--- a/app/src/main/java/com/example/alcagotchi/CasinoActivity.kt
+++ b/app/src/main/java/com/example/alcagotchi/CasinoActivity.kt
@@ -16,6 +16,8 @@
package com.example.alcagotchi
import android.app.Activity
+import android.app.AlertDialog
+import android.content.Context
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
@@ -30,6 +32,7 @@ import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
+import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableIntStateOf
import androidx.compose.runtime.mutableStateListOf
import androidx.compose.runtime.mutableStateOf
@@ -47,12 +50,15 @@ import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.lifecycle.MutableLiveData
+import androidx.lifecycle.ViewModel
+import androidx.lifecycle.viewModelScope
+import androidx.lifecycle.viewmodel.compose.viewModel
import com.example.alcagotchi.ui.theme.AlcaGotchiTheme
import com.example.alcagotchi.ui.theme.AlcaGotchiTheme
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.runBlocking
class CasinoActivity : ComponentActivity() {
- private val coin = MutableLiveData<Int>()
-
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
@@ -70,16 +76,34 @@ class CasinoActivity : ComponentActivity() {
}
}
-fun gamble(amount: Int): Int {
- val alcoGotchi = AlcoGotchi.getInstance()
- alcoGotchi.postGamble(amount)
+class CasinoViewModel : ViewModel() {
+ val coin = mutableIntStateOf(0)
+
+ fun gamble(amount: Int, context: Context) {
+ val alcoGotchi = AlcoGotchi.getInstance()
+ viewModelScope.launch {
+ runBlocking {
+ try {
+ alcoGotchi.postGamble(amount)
+ } catch (e: Exception) {
+ val alertDialog = AlertDialog.Builder(context)
- return alcoGotchi.coins
+ alertDialog.apply {
+ setTitle("no")
+ setMessage("ur broke")
+ }.create().show()
+ }
+
+ coin.intValue = alcoGotchi.coins
+ }
+ }
+ }
}
+
@Composable
-fun CasinoOptions(modifier: Modifier = Modifier) {
- val coin = remember { mutableIntStateOf(0) }
+fun CasinoOptions(viewModel: CasinoViewModel, modifier: Modifier = Modifier) {
+ val coin by viewModel.coin
Column(
verticalArrangement = Arrangement.Center,
@@ -96,20 +120,20 @@ fun CasinoOptions(modifier: Modifier = Modifier) {
.padding(end = 16.dp)
)
Text(
- text = coin.value.toString(),
+ text = coin.toString(),
fontSize = 36.sp,
color = Color(0xFF00FF00),
modifier = Modifier
.padding(top = 16.dp)
.padding(end = 16.dp)
)
- Button(onClick = { coin.intValue = gamble(10) }) {
+ Button(onClick = { viewModel.gamble(10, context) }) {
Text("Gamble 10 coins")
}
- Button(onClick = { coin.intValue = gamble(100) }) {
+ Button(onClick = { viewModel.gamble(100, context) }) {
Text("Gamble 100 coins")
}
- Button(onClick = { coin.intValue = gamble(1000) }) {
+ Button(onClick = { viewModel.gamble(1000, context) }) {
Text("Gamble 1000 coins")
}
Button(onClick = { context.finish() }) {
@@ -131,7 +155,7 @@ fun CasinoGreeting(message: String, modifier: Modifier = Modifier) {
)
- CasinoOptions()
+ CasinoOptions(viewModel = CasinoViewModel())
}
}
@@ -144,3 +168,4 @@ private fun CasinoPreview() {
)
}
}
+