From 0f13d234e44989ee7238019fc95455ac94db9d74 Mon Sep 17 00:00:00 2001 From: Satindar Dhillon Date: Tue, 9 Aug 2022 14:32:35 -0700 Subject: [PATCH] add LoginViewModel --- .../java/app/omnivore/omnivore/LoginViewModel.kt | 11 +++++++++++ .../java/app/omnivore/omnivore/MainActivity.kt | 14 +++++++++----- 2 files changed, 20 insertions(+), 5 deletions(-) create mode 100644 android/Omnivore/app/src/main/java/app/omnivore/omnivore/LoginViewModel.kt diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/LoginViewModel.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/LoginViewModel.kt new file mode 100644 index 000000000..80b0654aa --- /dev/null +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/LoginViewModel.kt @@ -0,0 +1,11 @@ +package app.omnivore.omnivore + +import android.content.ContentValues +import android.util.Log +import androidx.lifecycle.ViewModel + +class LoginViewModel: ViewModel() { + fun login(email: String, password: String) { + Log.v(ContentValues.TAG, "in view model $email / $password") + } +} diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/MainActivity.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/MainActivity.kt index 8d1c43b06..fe3209e02 100644 --- a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/MainActivity.kt +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/MainActivity.kt @@ -7,6 +7,7 @@ import android.util.Log import android.widget.Toast import androidx.activity.ComponentActivity import androidx.activity.compose.setContent +import androidx.activity.viewModels import androidx.compose.foundation.background import androidx.compose.foundation.layout.* import androidx.compose.foundation.text.KeyboardActions @@ -31,11 +32,14 @@ import androidx.compose.runtime.setValue class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + + val viewModel: LoginViewModel by viewModels() + setContent { OmnivoreTheme { // A surface container using the 'background' color from the theme Surface(modifier = Modifier.fillMaxSize(), color = MaterialTheme.colors.background) { - LoginView() + LoginView(viewModel) } } } @@ -43,7 +47,7 @@ class MainActivity : ComponentActivity() { } @Composable -fun LoginView() { +fun LoginView(viewModel: LoginViewModel = LoginViewModel()) { var email by rememberSaveable { mutableStateOf("") } var password by rememberSaveable { mutableStateOf("") } @@ -59,7 +63,7 @@ fun LoginView() { password, onEmailChange = { email = it }, onPasswordChange = { password = it }, - onLoginClick = { Log.v(TAG, "$email / $password") } + onLoginClick = { viewModel.login(email, password) } ) } } @@ -71,7 +75,7 @@ fun LoginFields( password: String, onEmailChange: (String) -> Unit, onPasswordChange: (String) -> Unit, - onLoginClick: (String) -> Unit + onLoginClick: () -> Unit ) { val context = LocalContext.current val focusManager = LocalFocusManager.current @@ -106,7 +110,7 @@ fun LoginFields( Button(onClick = { if (email.isNotBlank() && password.isNotBlank()) { - onLoginClick(email) + onLoginClick() focusManager.clearFocus() } else { Toast.makeText(