add help page
This commit is contained in:
parent
127a31841e
commit
d3d3c9f59e
4 changed files with 64 additions and 4 deletions
|
@ -2,6 +2,8 @@
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools">
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
|
||||||
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
|
|
||||||
<application
|
<application
|
||||||
android:allowBackup="true"
|
android:allowBackup="true"
|
||||||
android:dataExtractionRules="@xml/data_extraction_rules"
|
android:dataExtractionRules="@xml/data_extraction_rules"
|
||||||
|
|
|
@ -29,6 +29,7 @@ import androidx.navigation.compose.rememberNavController
|
||||||
import eu.m724.vastapp.activity.dashboard.screen.Screen
|
import eu.m724.vastapp.activity.dashboard.screen.Screen
|
||||||
import eu.m724.vastapp.activity.dashboard.screen.BillingScreen
|
import eu.m724.vastapp.activity.dashboard.screen.BillingScreen
|
||||||
import eu.m724.vastapp.activity.dashboard.screen.DashboardScreen
|
import eu.m724.vastapp.activity.dashboard.screen.DashboardScreen
|
||||||
|
import eu.m724.vastapp.activity.dashboard.screen.HelpScreen
|
||||||
import eu.m724.vastapp.activity.dashboard.screen.InstancesScreen
|
import eu.m724.vastapp.activity.dashboard.screen.InstancesScreen
|
||||||
import eu.m724.vastapp.ui.theme.VastappTheme
|
import eu.m724.vastapp.ui.theme.VastappTheme
|
||||||
import eu.m724.vastapp.vastai.VastApi
|
import eu.m724.vastapp.vastai.VastApi
|
||||||
|
@ -54,7 +55,8 @@ class DashboardActivity : ComponentActivity() {
|
||||||
val items = listOf(
|
val items = listOf(
|
||||||
Screen.Dashboard,
|
Screen.Dashboard,
|
||||||
Screen.Instances,
|
Screen.Instances,
|
||||||
Screen.Billing
|
Screen.Billing,
|
||||||
|
Screen.Help
|
||||||
)
|
)
|
||||||
|
|
||||||
val navController = rememberNavController()
|
val navController = rememberNavController()
|
||||||
|
@ -70,6 +72,7 @@ class DashboardActivity : ComponentActivity() {
|
||||||
composable("dashboard") { DashboardScreen(dashboardViewModel) }
|
composable("dashboard") { DashboardScreen(dashboardViewModel) }
|
||||||
composable("instances") { InstancesScreen(dashboardViewModel) }
|
composable("instances") { InstancesScreen(dashboardViewModel) }
|
||||||
composable("billing") { BillingScreen(dashboardViewModel) }
|
composable("billing") { BillingScreen(dashboardViewModel) }
|
||||||
|
composable("help") { HelpScreen(dashboardViewModel) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,22 +1,24 @@
|
||||||
package eu.m724.vastapp.activity.dashboard
|
package eu.m724.vastapp.activity.dashboard
|
||||||
|
|
||||||
|
import android.content.Intent
|
||||||
|
import android.net.Uri
|
||||||
|
import androidx.compose.ui.platform.LocalContext
|
||||||
|
import androidx.core.content.ContextCompat.startActivity
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.viewModelScope
|
import androidx.lifecycle.viewModelScope
|
||||||
import eu.m724.vastapp.activity.login.LoginUiState
|
|
||||||
import eu.m724.vastapp.vastai.ApiRoute
|
import eu.m724.vastapp.vastai.ApiRoute
|
||||||
import eu.m724.vastapp.vastai.VastApi
|
import eu.m724.vastapp.vastai.VastApi
|
||||||
import eu.m724.vastapp.vastai.api.UserUrlRequestCallback
|
import eu.m724.vastapp.vastai.api.UserUrlRequestCallback
|
||||||
import eu.m724.vastapp.vastai.data.User
|
import eu.m724.vastapp.vastai.data.User
|
||||||
import kotlinx.coroutines.delay
|
|
||||||
import kotlinx.coroutines.flow.MutableSharedFlow
|
import kotlinx.coroutines.flow.MutableSharedFlow
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
import kotlinx.coroutines.flow.SharedFlow
|
import kotlinx.coroutines.flow.SharedFlow
|
||||||
import kotlinx.coroutines.flow.StateFlow
|
import kotlinx.coroutines.flow.StateFlow
|
||||||
import kotlinx.coroutines.flow.asSharedFlow
|
import kotlinx.coroutines.flow.asSharedFlow
|
||||||
import kotlinx.coroutines.flow.asStateFlow
|
import kotlinx.coroutines.flow.asStateFlow
|
||||||
import kotlinx.coroutines.isActive
|
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
|
||||||
|
|
||||||
class DashboardViewModel(private val _user: User, val vastApi: VastApi) : ViewModel() {
|
class DashboardViewModel(private val _user: User, val vastApi: VastApi) : ViewModel() {
|
||||||
private val _uiState: MutableStateFlow<DashboardUiState> =
|
private val _uiState: MutableStateFlow<DashboardUiState> =
|
||||||
MutableStateFlow(DashboardUiState(false, _user, null))
|
MutableStateFlow(DashboardUiState(false, _user, null))
|
||||||
|
|
|
@ -0,0 +1,53 @@
|
||||||
|
package eu.m724.vastapp.activity.dashboard.screen
|
||||||
|
|
||||||
|
import android.content.Intent
|
||||||
|
import android.net.Uri
|
||||||
|
import android.os.Bundle
|
||||||
|
import android.os.Parcelable
|
||||||
|
import android.view.ViewGroup
|
||||||
|
import android.webkit.WebResourceRequest
|
||||||
|
import android.webkit.WebView
|
||||||
|
import android.webkit.WebViewClient
|
||||||
|
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.material3.Button
|
||||||
|
import androidx.compose.material3.Card
|
||||||
|
import androidx.compose.material3.Text
|
||||||
|
import androidx.compose.runtime.Composable
|
||||||
|
import androidx.compose.runtime.DisposableEffect
|
||||||
|
import androidx.compose.runtime.State
|
||||||
|
import androidx.compose.runtime.getValue
|
||||||
|
import androidx.compose.runtime.mutableStateOf
|
||||||
|
import androidx.compose.runtime.remember
|
||||||
|
import androidx.compose.runtime.saveable.Saver
|
||||||
|
import androidx.compose.runtime.saveable.rememberSaveable
|
||||||
|
import androidx.compose.runtime.setValue
|
||||||
|
import androidx.compose.ui.Alignment
|
||||||
|
import androidx.compose.ui.Modifier
|
||||||
|
import androidx.compose.ui.platform.LocalContext
|
||||||
|
import androidx.compose.ui.unit.sp
|
||||||
|
import androidx.compose.ui.viewinterop.AndroidView
|
||||||
|
import androidx.core.content.ContextCompat.startActivity
|
||||||
|
import androidx.lifecycle.ViewModel
|
||||||
|
import eu.m724.vastapp.activity.dashboard.DashboardViewModel
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
fun HelpScreen(dashboardViewModel: DashboardViewModel) { // TODO make this a webview
|
||||||
|
val context = LocalContext.current
|
||||||
|
|
||||||
|
Column(
|
||||||
|
modifier = Modifier.fillMaxSize(),
|
||||||
|
horizontalAlignment = Alignment.CenterHorizontally,
|
||||||
|
verticalArrangement = Arrangement.Center
|
||||||
|
) {
|
||||||
|
Button(onClick = {
|
||||||
|
val browserIntent = Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"))
|
||||||
|
context.startActivity(browserIntent)
|
||||||
|
}) {
|
||||||
|
Text(text = "https://vast.ai/docs")
|
||||||
|
}
|
||||||
|
Text(text = "(this will be a webview)", fontSize = 12.sp)
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue