summaryrefslogtreecommitdiffstats
path: root/app/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main')
-rw-r--r--app/src/main/java/com/example/alcagotchi/AlcoGotchi.kt6
-rw-r--r--app/src/main/java/com/example/alcagotchi/CasinoActivity.kt6
-rw-r--r--app/src/main/java/com/example/alcagotchi/DrinkingActivity.kt7
-rw-r--r--app/src/main/java/com/example/alcagotchi/MainActivity.kt110
4 files changed, 89 insertions, 40 deletions
diff --git a/app/src/main/java/com/example/alcagotchi/AlcoGotchi.kt b/app/src/main/java/com/example/alcagotchi/AlcoGotchi.kt
index 0d498b0..0b7dbff 100644
--- a/app/src/main/java/com/example/alcagotchi/AlcoGotchi.kt
+++ b/app/src/main/java/com/example/alcagotchi/AlcoGotchi.kt
@@ -55,12 +55,14 @@ class AlcoGotchi private constructor() {
drunk = json.getJSONObject("data").getInt("drunk")
}
- fun getState() {
+ suspend fun getState() {
val request = Request.Builder()
.url(buildUrl(""))
.build()
- client.newCall(request).enqueue(basicCallback)
+ return withContext(Dispatchers.IO) {
+ handleStateResponse(client.newCall(request).execute())
+ }
}
suspend fun postGamble(amount: Int) {
diff --git a/app/src/main/java/com/example/alcagotchi/CasinoActivity.kt b/app/src/main/java/com/example/alcagotchi/CasinoActivity.kt
index 21ed49d..b9467ca 100644
--- a/app/src/main/java/com/example/alcagotchi/CasinoActivity.kt
+++ b/app/src/main/java/com/example/alcagotchi/CasinoActivity.kt
@@ -77,12 +77,12 @@ class CasinoActivity : ComponentActivity() {
}
class CasinoViewModel : ViewModel() {
- val coin = mutableIntStateOf(0)
+ private val alcoGotchi = AlcoGotchi.getInstance()
+ val coin = mutableIntStateOf(alcoGotchi.coins)
fun gamble(amount: Int, context: Context) {
- val alcoGotchi = AlcoGotchi.getInstance()
viewModelScope.launch {
- runBlocking {
+ run {
try {
alcoGotchi.postGamble(amount)
} catch (e: Exception) {
diff --git a/app/src/main/java/com/example/alcagotchi/DrinkingActivity.kt b/app/src/main/java/com/example/alcagotchi/DrinkingActivity.kt
index f59a264..eac8aa1 100644
--- a/app/src/main/java/com/example/alcagotchi/DrinkingActivity.kt
+++ b/app/src/main/java/com/example/alcagotchi/DrinkingActivity.kt
@@ -189,7 +189,7 @@ fun DrinkingOptions(viewModel: DrinkingViewModel, modifier: Modifier = Modifier)
@Composable
fun DrinkingGreeting(message: String, modifier: Modifier = Modifier) {
// Create a box to overlap image and texts
- val context = LocalContext.current
+ val context = LocalContext.current as Activity
Box(modifier) {
Image(
@@ -201,10 +201,7 @@ fun DrinkingGreeting(message: String, modifier: Modifier = Modifier) {
)
- Button(onClick = {
- val intent = Intent(context, MainActivity::class.java)
- context.startActivity(intent)
- }) {
+ Button(onClick = { context.finish() }) {
Text("Go back")
}
DrinkingOptions(viewModel = DrinkingViewModel())
diff --git a/app/src/main/java/com/example/alcagotchi/MainActivity.kt b/app/src/main/java/com/example/alcagotchi/MainActivity.kt
index 1f3f7c0..f36d49a 100644
--- a/app/src/main/java/com/example/alcagotchi/MainActivity.kt
+++ b/app/src/main/java/com/example/alcagotchi/MainActivity.kt
@@ -15,6 +15,8 @@
*/
package com.example.alcagotchi
+import android.app.AlertDialog
+import android.content.Context
import android.content.Intent
import android.os.Bundle
import androidx.activity.ComponentActivity
@@ -40,6 +42,9 @@ import androidx.compose.material3.TopAppBar
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
+import androidx.compose.runtime.mutableIntStateOf
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
@@ -51,16 +56,19 @@ import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
+import androidx.lifecycle.ViewModel
+import androidx.lifecycle.viewModelScope
import androidx.navigation.NavHostController
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.compose.currentBackStackEntryAsState
import androidx.navigation.compose.rememberNavController
import com.example.alcagotchi.ui.theme.AlcaGotchiTheme
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.runBlocking
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
- AlcoGotchi.getInstance().getState()
super.onCreate(savedInstanceState)
setContent {
AlcaGotchiTheme {
@@ -79,44 +87,85 @@ class MainActivity : ComponentActivity() {
}
}
+class MainViewModel : ViewModel() {
+ private val alcoGotchi = AlcoGotchi.getInstance()
+ val connecting = mutableStateOf(true)
+
+ fun connect(context: Context) {
+ viewModelScope.launch {
+ run {
+ try {
+ alcoGotchi.getState()
+
+ connecting.value = false
+ } catch (e: Exception) {
+ val alertDialog = AlertDialog.Builder(context)
+
+ alertDialog.apply {
+ setTitle("rip")
+ setMessage("can't connect: ${e.message}")
+ }.create().show()
+ }
+ }
+ }
+ }
+}
+
+
@Composable
-fun GreetingText(message: String, from: String, modifier: Modifier = Modifier) {
+fun GreetingText(viewModel: MainViewModel, message: String, from: String, modifier: Modifier = Modifier) {
// Create a column so that texts don't overlap
Column(
verticalArrangement = Arrangement.Center,
modifier = modifier
) {
val context = LocalContext.current
+ val connecting by remember { viewModel.connecting }
- Text(
- text = message,
- fontSize = 100.sp,
- lineHeight = 116.sp,
- textAlign = TextAlign.Center,
- color = Color(0xFF00FF00),
- modifier = Modifier.padding(top = 16.dp)
- )
- Text(
- text = from,
- fontSize = 36.sp,
- color = Color(0xFF00FF00),
- modifier = Modifier
- .padding(top = 16.dp)
- .padding(end = 16.dp)
- .align(alignment = Alignment.End)
+ viewModel.connect(context)
- )
- Button(onClick = {
- val intent = Intent(context, CasinoActivity::class.java)
- context.startActivity(intent)
- }) {
- Text("Casino")
- }
- Button(onClick = {
- val intent = Intent(context, DrinkingActivity::class.java)
- context.startActivity(intent)
- }) {
- Text("Drinking")
+ if (!connecting) {
+ Text(
+ text = message,
+ fontSize = 100.sp,
+ lineHeight = 116.sp,
+ textAlign = TextAlign.Center,
+ color = Color(0xFF00FF00),
+ modifier = Modifier.padding(top = 16.dp)
+ )
+ Text(
+ text = from,
+ fontSize = 36.sp,
+ color = Color(0xFF00FF00),
+ modifier = Modifier
+ .padding(top = 16.dp)
+ .padding(end = 16.dp)
+ .align(alignment = Alignment.End)
+
+ )
+ Button(onClick = {
+ val intent = Intent(context, CasinoActivity::class.java)
+ context.startActivity(intent)
+ }) {
+ Text("Casino")
+ }
+ Button(onClick = {
+ val intent = Intent(context, DrinkingActivity::class.java)
+ context.startActivity(intent)
+ }) {
+ Text("Drinking")
+ }
+ } else {
+ Text(
+ text = "connecting... plz wait",
+ fontSize = 36.sp,
+ color = Color(0xFF00FF00),
+ modifier = Modifier
+ .padding(top = 16.dp)
+ .padding(end = 16.dp)
+ .align(alignment = Alignment.End)
+
+ )
}
Button(onClick = {
val intent = Intent(context, ShopActivity::class.java)
@@ -144,6 +193,7 @@ fun GreetingImage(message: String, from: String, modifier: Modifier = Modifier,
)
GreetingText(
+ viewModel = MainViewModel(),
message = message,
from = from,
// colorResource(id = )