summaryrefslogtreecommitdiffstats
path: root/app/src/main/java/com/example
diff options
context:
space:
mode:
authorLeightonGinty <lxg184@student.bham.ac.uk>2024-11-17 02:43:54 +0000
committerLeightonGinty <lxg184@student.bham.ac.uk>2024-11-17 02:43:54 +0000
commit2362ad958a1bfc0d7a0aab173bd85e197e538ea1 (patch)
treea7a39e77e1f9ebdb6f3311ce746c89e25b1f4006 /app/src/main/java/com/example
parent9293ee3d1a19b107f5f79d65828db714c8a1a0e7 (diff)
Add driving
Diffstat (limited to 'app/src/main/java/com/example')
-rw-r--r--app/src/main/java/com/example/alcagotchi/AlcoGotchi.kt13
-rw-r--r--app/src/main/java/com/example/alcagotchi/DrinkingActivity.kt20
-rw-r--r--app/src/main/java/com/example/alcagotchi/DrivingActivity.kt149
-rw-r--r--app/src/main/java/com/example/alcagotchi/MainActivity.kt6
4 files changed, 187 insertions, 1 deletions
diff --git a/app/src/main/java/com/example/alcagotchi/AlcoGotchi.kt b/app/src/main/java/com/example/alcagotchi/AlcoGotchi.kt
index 349eac9..ef20954 100644
--- a/app/src/main/java/com/example/alcagotchi/AlcoGotchi.kt
+++ b/app/src/main/java/com/example/alcagotchi/AlcoGotchi.kt
@@ -106,4 +106,17 @@ class AlcoGotchi private constructor() {
handleStateResponse(client.newCall(request).execute())
}
}
+ suspend fun postDrive() {
+ val body = JSONObject()
+// body.put("drive", drink)
+
+ val request = Request.Builder()
+ .url(buildUrl("drive"))
+ .get()
+ .build()
+
+ return withContext(Dispatchers.IO) {
+ handleStateResponse(client.newCall(request).execute())
+ }
+ }
}
diff --git a/app/src/main/java/com/example/alcagotchi/DrinkingActivity.kt b/app/src/main/java/com/example/alcagotchi/DrinkingActivity.kt
index eac8aa1..2274cfa 100644
--- a/app/src/main/java/com/example/alcagotchi/DrinkingActivity.kt
+++ b/app/src/main/java/com/example/alcagotchi/DrinkingActivity.kt
@@ -34,6 +34,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.ui.Alignment
import androidx.compose.ui.Modifier
@@ -137,12 +138,29 @@ class DrinkingViewModel : ViewModel() {
@Composable
fun DrinkingOptions(viewModel: DrinkingViewModel, modifier: Modifier = Modifier) {
+ val drunk by viewModel.drunk
+
Column(
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
val context = LocalContext.current as Activity
-
+ Text(
+ text = "Number of units drank:",
+ fontSize = 36.sp,
+ color = Color(0xFF00FF00),
+ modifier = Modifier
+ .padding(top = 16.dp)
+ .padding(end = 16.dp)
+ )
+ Text(
+ text = drunk.toString(),
+ fontSize = 36.sp,
+ color = Color(0xFF00FF00),
+ modifier = Modifier
+ .padding(top = 16.dp)
+ .padding(end = 16.dp)
+ )
Text(
text = "What would you like to drink?",
fontSize = 36.sp,
diff --git a/app/src/main/java/com/example/alcagotchi/DrivingActivity.kt b/app/src/main/java/com/example/alcagotchi/DrivingActivity.kt
index 9fb0cb6..0d7cec9 100644
--- a/app/src/main/java/com/example/alcagotchi/DrivingActivity.kt
+++ b/app/src/main/java/com/example/alcagotchi/DrivingActivity.kt
@@ -1,2 +1,151 @@
package com.example.alcagotchi
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+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
+import androidx.compose.foundation.Image
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.foundation.layout.padding
+import androidx.compose.material3.Button
+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.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.layout.ContentScale
+import androidx.compose.ui.platform.LocalContext
+import androidx.compose.ui.res.painterResource
+import androidx.compose.ui.res.stringResource
+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 com.example.alcagotchi.ui.theme.AlcaGotchiTheme
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.runBlocking
+
+class DrivingActivity : ComponentActivity() {
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContent {
+ AlcaGotchiTheme {
+ Surface(
+ modifier = Modifier.fillMaxSize(),
+ color = MaterialTheme.colorScheme.background
+ ) {
+ DrivingGreeting(
+ stringResource(R.string.welcome_to_casino),
+ )
+ }
+ }
+ }
+ }
+}
+
+class DrivingViewModel : ViewModel() {
+ val coin = mutableIntStateOf(0)
+
+ fun drive(context: Context) {
+ val alcoGotchi = AlcoGotchi.getInstance()
+ viewModelScope.launch {
+ runBlocking {
+ try {
+ alcoGotchi.postDrive()
+ } catch (e: Exception) {
+ val alertDialog = AlertDialog.Builder(context)
+
+ alertDialog.apply {
+ setTitle("no")
+ setMessage(e.toString())
+
+ }.create().show()
+ }
+
+ coin.intValue = alcoGotchi.coins
+ }
+ }
+ }
+}
+
+
+@Composable
+fun DrivingOptions(viewModel: DrivingViewModel, modifier: Modifier = Modifier) {
+ val coin by viewModel.coin
+
+ Column(
+ verticalArrangement = Arrangement.Center,
+ horizontalAlignment = Alignment.CenterHorizontally
+ ) {
+ val context = LocalContext.current as Activity
+
+ Text(
+ text = "Would you like to drive?",
+ fontSize = 36.sp,
+ color = Color(0xFF00FF00),
+ modifier = Modifier
+ .padding(top = 16.dp)
+ .padding(end = 16.dp)
+ )
+ Button(onClick = { viewModel.drive(context) }) {
+ Text("Yes please")
+ }
+ Button(onClick = { context.finish() }) {
+ Text("No I'm a wimp")
+ }
+ }
+}
+
+@Composable
+fun DrivingGreeting(message: String, modifier: Modifier = Modifier) {
+ // Create a box to overlap image and texts
+ Box(modifier) {
+ Image(
+ painter = painterResource(id = R.drawable.driving),
+ contentDescription = null,
+ contentScale = ContentScale.Crop,
+ alpha = 1F,
+ modifier = Modifier.fillMaxSize()
+
+
+ )
+ DrivingOptions(viewModel = DrivingViewModel())
+ }
+}
+
+@Preview(showBackground = false)
+@Composable
+private fun DrivingPreview() {
+ AlcaGotchiTheme {
+ DrivingGreeting(
+ stringResource(R.string.welcome_to_casino),
+ )
+ }
+}
+
diff --git a/app/src/main/java/com/example/alcagotchi/MainActivity.kt b/app/src/main/java/com/example/alcagotchi/MainActivity.kt
index 45a751c..8f87af0 100644
--- a/app/src/main/java/com/example/alcagotchi/MainActivity.kt
+++ b/app/src/main/java/com/example/alcagotchi/MainActivity.kt
@@ -161,6 +161,12 @@ fun GreetingText(viewModel: MainViewModel, message: String, from: String, modifi
}) {
Text("Go to shop")
}
+ Button(onClick = {
+ val intent = Intent(context, DrivingActivity::class.java)
+ context.startActivity(intent)
+ }) {
+ Text("Start Driving")
+ }
} else {
Text(
text = "connecting... plz wait",