diff options
Diffstat (limited to 'app/src')
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 = ) |
