feat: make key import update key list
This commit is contained in:
parent
84b9839635
commit
11f192532f
3 changed files with 19 additions and 6 deletions
|
@ -73,6 +73,7 @@ class PGPKeyImportActivity : AppCompatActivity() {
|
|||
is Ok<PGPKey?> -> {
|
||||
val key = result.value
|
||||
if (key == null) {
|
||||
setResult(RESULT_CANCELED)
|
||||
finish()
|
||||
// This return convinces Kotlin that the control flow for `key == null` definitely
|
||||
// terminates here and allows for a smart cast below.
|
||||
|
@ -81,7 +82,10 @@ class PGPKeyImportActivity : AppCompatActivity() {
|
|||
MaterialAlertDialogBuilder(this)
|
||||
.setTitle(getString(R.string.pgp_key_import_succeeded))
|
||||
.setMessage(getString(R.string.pgp_key_import_succeeded_message, tryGetId(key)))
|
||||
.setPositiveButton(android.R.string.ok) { _, _ -> finish() }
|
||||
.setPositiveButton(android.R.string.ok) { _, _ ->
|
||||
setResult(RESULT_OK)
|
||||
finish()
|
||||
}
|
||||
.setCancelable(false)
|
||||
.show()
|
||||
}
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
package app.passwordstore.ui.pgp
|
||||
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import androidx.activity.ComponentActivity
|
||||
import androidx.activity.compose.setContent
|
||||
import androidx.activity.result.contract.ActivityResultContracts.StartActivityForResult
|
||||
import androidx.activity.viewModels
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
|
@ -19,7 +21,6 @@ import app.passwordstore.R
|
|||
import app.passwordstore.ui.APSAppBar
|
||||
import app.passwordstore.ui.compose.theme.APSTheme
|
||||
import app.passwordstore.ui.compose.theme.decideColorScheme
|
||||
import app.passwordstore.util.extensions.launchActivity
|
||||
import app.passwordstore.util.viewmodel.PGPKeyListViewModel
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
|
||||
|
@ -28,6 +29,12 @@ import dagger.hilt.android.AndroidEntryPoint
|
|||
class PGPKeyListActivity : ComponentActivity() {
|
||||
|
||||
private val viewModel: PGPKeyListViewModel by viewModels()
|
||||
private val keyImportAction =
|
||||
registerForActivityResult(StartActivityForResult()) {
|
||||
if (it.resultCode == RESULT_OK) {
|
||||
viewModel.updateKeySet()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
@ -44,7 +51,9 @@ class PGPKeyListActivity : ComponentActivity() {
|
|||
)
|
||||
},
|
||||
floatingActionButton = {
|
||||
FloatingActionButton(onClick = { launchActivity(PGPKeyImportActivity::class.java) }) {
|
||||
FloatingActionButton(
|
||||
onClick = { keyImportAction.launch(Intent(this, PGPKeyImportActivity::class.java)) }
|
||||
) {
|
||||
Icon(
|
||||
painter = painterResource(R.drawable.ic_add_48dp),
|
||||
stringResource(R.string.pref_import_pgp_key_title)
|
||||
|
|
|
@ -20,10 +20,10 @@ class PGPKeyListViewModel @Inject constructor(private val keyManager: PGPKeyMana
|
|||
var keys: List<GpgIdentifier> by mutableStateOf(emptyList())
|
||||
|
||||
init {
|
||||
getKeys()
|
||||
updateKeySet()
|
||||
}
|
||||
|
||||
private fun getKeys() {
|
||||
fun updateKeySet() {
|
||||
viewModelScope.launch {
|
||||
when (
|
||||
val result =
|
||||
|
@ -40,7 +40,7 @@ class PGPKeyListViewModel @Inject constructor(private val keyManager: PGPKeyMana
|
|||
fun deleteKey(identifier: GpgIdentifier) {
|
||||
viewModelScope.launch {
|
||||
keyManager.removeKey(identifier)
|
||||
getKeys()
|
||||
updateKeySet()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue