diff options
| author | LeightonGinty <lxg184@student.bham.ac.uk> | 2024-11-17 02:43:54 +0000 |
|---|---|---|
| committer | LeightonGinty <lxg184@student.bham.ac.uk> | 2024-11-17 02:43:54 +0000 |
| commit | 2362ad958a1bfc0d7a0aab173bd85e197e538ea1 (patch) | |
| tree | a7a39e77e1f9ebdb6f3311ce746c89e25b1f4006 | |
| parent | 9293ee3d1a19b107f5f79d65828db714c8a1a0e7 (diff) | |
Add driving
5 files changed, 198 insertions, 1 deletions
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e135506..72a9b6e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -68,6 +68,17 @@ <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> + <activity + android:name=".DrivingActivity" + android:exported="true" + android:label="@string/app_name" + android:theme="@style/Theme.AlcaGotchi"> + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + + <category android:name="android.intent.category.LAUNCHER" /> + </intent-filter> + </activity> </application> </manifest>
\ No newline at end of file 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", |
