From aedfc33f5f0b92693463c8398748cad4150b35ac Mon Sep 17 00:00:00 2001 From: Satindar Dhillon Date: Fri, 12 Aug 2022 06:57:34 -0700 Subject: [PATCH] access auth token in save activity --- .../omnivore/omnivore/DatastoreRepository.kt | 2 ++ .../app/omnivore/omnivore/LoginViewModel.kt | 1 + .../app/omnivore/omnivore/MainActivity.kt | 1 - .../app/omnivore/omnivore/SaveActivity.kt | 35 +++++++++++++++---- .../app/omnivore/omnivore/SaveViewModel.kt | 15 ++++++++ 5 files changed, 47 insertions(+), 7 deletions(-) create mode 100644 android/Omnivore/app/src/main/java/app/omnivore/omnivore/SaveViewModel.kt diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/DatastoreRepository.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/DatastoreRepository.kt index 77fa5ec96..2638abb49 100644 --- a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/DatastoreRepository.kt +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/DatastoreRepository.kt @@ -7,7 +7,9 @@ import androidx.datastore.preferences.core.edit import androidx.datastore.preferences.core.intPreferencesKey import androidx.datastore.preferences.core.stringPreferencesKey import androidx.datastore.preferences.preferencesDataStore +import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.first +import kotlinx.coroutines.flow.map import javax.inject.Inject private val Context.dataStore: DataStore by preferencesDataStore( 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 index be10d9920..3496034c6 100644 --- a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/LoginViewModel.kt +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/LoginViewModel.kt @@ -2,6 +2,7 @@ package app.omnivore.omnivore import android.content.ContentValues import android.util.Log +import androidx.activity.viewModels import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import dagger.hilt.android.lifecycle.HiltViewModel 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 3b8804963..1502200ff 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 @@ -19,7 +19,6 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalFocusManager import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.text.input.PasswordVisualTransformation -import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import app.omnivore.omnivore.ui.theme.OmnivoreTheme import androidx.compose.runtime.getValue diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/SaveActivity.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/SaveActivity.kt index 3222d15d5..a1f21cee5 100644 --- a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/SaveActivity.kt +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/SaveActivity.kt @@ -4,24 +4,38 @@ import android.content.Intent import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent -import androidx.compose.foundation.layout.fillMaxSize +import androidx.activity.viewModels +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.* import androidx.compose.material.MaterialTheme import androidx.compose.material.Surface import androidx.compose.material.Text +import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp import app.omnivore.omnivore.ui.theme.OmnivoreTheme +import dagger.hilt.android.AndroidEntryPoint +@AndroidEntryPoint class SaveActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - var text: String? = null + val viewModel: SaveViewModel by viewModels() + var extractedText: String? = null + val authToken = viewModel.getAuthToken() when (intent?.action) { Intent.ACTION_SEND -> { - if (intent.type?.startsWith("text/") == true) { + if (intent.type?.startsWith("text/plain") == true) { intent.getStringExtra(Intent.EXTRA_TEXT)?.let { - text = it + extractedText = it + } + } + + if (intent.type?.startsWith("text/html") == true) { + intent.getStringExtra(Intent.EXTRA_HTML_TEXT)?.let { + extractedText = it } } } @@ -32,9 +46,18 @@ class SaveActivity : ComponentActivity() { setContent { OmnivoreTheme { - // A surface container using the 'background' color from the theme Surface(modifier = Modifier.fillMaxSize(), color = MaterialTheme.colors.background) { - Text(text = text ?: "no text extracted") + Column( + verticalArrangement = Arrangement.Center, + horizontalAlignment = Alignment.CenterHorizontally, + modifier = Modifier + .background(MaterialTheme.colors.background) + .fillMaxSize() + ) { + Text(text = extractedText ?: "no text extracted") + Spacer(modifier = Modifier.height(16.dp)) + Text(text = authToken ?: "no auth token") + } } } } diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/SaveViewModel.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/SaveViewModel.kt new file mode 100644 index 000000000..bf86668d6 --- /dev/null +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/SaveViewModel.kt @@ -0,0 +1,15 @@ +package app.omnivore.omnivore + +import androidx.lifecycle.ViewModel +import dagger.hilt.android.lifecycle.HiltViewModel +import kotlinx.coroutines.runBlocking +import javax.inject.Inject + +@HiltViewModel +class SaveViewModel @Inject constructor( + private val datastoreRepo: DatastoreRepository +): ViewModel() { + fun getAuthToken(): String? = runBlocking { + datastoreRepo.getString(DatastoreKeys.omnivoreAuthToken) + } +}