mirror of
https://github.com/Kunzisoft/KeePassDX.git
synced 2025-12-04 15:49:33 +01:00
fix: database dialog subtitle #2254
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
KeePassDX(4.2.3)
|
||||
* Fix multiple Passkey selection #2253
|
||||
* Fix database dialog subtitle #2254
|
||||
|
||||
KeePassDX(4.2.2)
|
||||
* Fix database merge algorithm #2223
|
||||
|
||||
@@ -95,7 +95,6 @@ abstract class DatabaseActivity : StylishActivity(), DatabaseRetrieval {
|
||||
finish()
|
||||
}
|
||||
}
|
||||
|
||||
is DatabaseViewModel.ActionState.OnDatabaseInfoChanged -> {
|
||||
if (manageDatabaseInfo()) {
|
||||
showDatabaseChangedDialog(
|
||||
@@ -105,33 +104,28 @@ abstract class DatabaseActivity : StylishActivity(), DatabaseRetrieval {
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
is DatabaseViewModel.ActionState.OnDatabaseActionRequested -> {
|
||||
startDatabasePermissionService(
|
||||
uiState.bundle,
|
||||
uiState.actionTask
|
||||
)
|
||||
}
|
||||
|
||||
is DatabaseViewModel.ActionState.OnDatabaseActionStarted -> {
|
||||
progressTaskViewModel.start(uiState.progressMessage)
|
||||
progressTaskViewModel.show(uiState.progressMessage)
|
||||
}
|
||||
|
||||
is DatabaseViewModel.ActionState.OnDatabaseActionUpdated -> {
|
||||
progressTaskViewModel.update(uiState.progressMessage)
|
||||
progressTaskViewModel.show(uiState.progressMessage)
|
||||
}
|
||||
|
||||
is DatabaseViewModel.ActionState.OnDatabaseActionStopped -> {
|
||||
progressTaskViewModel.stop()
|
||||
progressTaskViewModel.hide()
|
||||
}
|
||||
|
||||
is DatabaseViewModel.ActionState.OnDatabaseActionFinished -> {
|
||||
onDatabaseActionFinished(
|
||||
uiState.database,
|
||||
uiState.actionTask,
|
||||
uiState.result
|
||||
)
|
||||
progressTaskViewModel.stop()
|
||||
progressTaskViewModel.hide()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -142,9 +136,9 @@ abstract class DatabaseActivity : StylishActivity(), DatabaseRetrieval {
|
||||
repeatOnLifecycle(Lifecycle.State.RESUMED) {
|
||||
progressTaskViewModel.progressTaskState.collect { state ->
|
||||
when (state) {
|
||||
ProgressTaskViewModel.ProgressTaskState.Start ->
|
||||
showDialog()
|
||||
ProgressTaskViewModel.ProgressTaskState.Stop ->
|
||||
is ProgressTaskViewModel.ProgressTaskState.Show ->
|
||||
startDialog()
|
||||
is ProgressTaskViewModel.ProgressTaskState.Hide ->
|
||||
stopDialog()
|
||||
}
|
||||
}
|
||||
@@ -245,7 +239,7 @@ abstract class DatabaseActivity : StylishActivity(), DatabaseRetrieval {
|
||||
}
|
||||
}
|
||||
|
||||
private fun showDialog() {
|
||||
private fun startDialog() {
|
||||
lifecycleScope.launch {
|
||||
if (showDatabaseDialog()) {
|
||||
if (progressTaskDialogFragment == null) {
|
||||
|
||||
@@ -661,7 +661,9 @@ open class DatabaseTaskNotificationService : LockNotificationService(), Progress
|
||||
}
|
||||
|
||||
private fun updateMessage(resId: Int) {
|
||||
mProgressMessage.messageId = resId
|
||||
mProgressMessage = mProgressMessage.copy(
|
||||
messageId = resId
|
||||
)
|
||||
notifyProgressMessage()
|
||||
}
|
||||
|
||||
|
||||
@@ -70,16 +70,35 @@ open class ProgressTaskDialogFragment : DialogFragment() {
|
||||
|
||||
lifecycleScope.launch {
|
||||
repeatOnLifecycle(Lifecycle.State.STARTED) {
|
||||
progressTaskViewModel.progressMessageState.collect { state ->
|
||||
updateView(titleView,
|
||||
state.titleId?.let { title -> getString(title) })
|
||||
updateView(messageView,
|
||||
state.messageId?.let { message -> getString(message) })
|
||||
updateView(warningView,
|
||||
state.warningId?.let { warning -> getString(warning) })
|
||||
cancelButton?.isVisible = state.cancelable != null
|
||||
cancelButton?.setOnClickListener {
|
||||
state.cancelable?.invoke()
|
||||
progressTaskViewModel.progressTaskState.collect { state ->
|
||||
when (state) {
|
||||
is ProgressTaskViewModel.ProgressTaskState.Show -> {
|
||||
val value = state.value
|
||||
updateView(
|
||||
titleView,
|
||||
value.titleId?.let { title ->
|
||||
getString(title)
|
||||
})
|
||||
updateView(
|
||||
messageView,
|
||||
value.messageId?.let { message ->
|
||||
getString(message)
|
||||
})
|
||||
updateView(
|
||||
warningView,
|
||||
value.warningId?.let { warning ->
|
||||
getString(warning)
|
||||
})
|
||||
cancelButton?.apply {
|
||||
isVisible = value.cancelable != null
|
||||
setOnClickListener {
|
||||
value.cancelable?.invoke()
|
||||
}
|
||||
}
|
||||
}
|
||||
else -> {
|
||||
// Nothing here, this fragment is stopped externally
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,30 +4,25 @@ import androidx.lifecycle.ViewModel
|
||||
import com.kunzisoft.keepass.database.ProgressMessage
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.StateFlow
|
||||
import kotlinx.coroutines.flow.update
|
||||
|
||||
class ProgressTaskViewModel: ViewModel() {
|
||||
|
||||
private val mProgressMessageState = MutableStateFlow(ProgressMessage())
|
||||
val progressMessageState: StateFlow<ProgressMessage> = mProgressMessageState
|
||||
|
||||
private val mProgressTaskState = MutableStateFlow<ProgressTaskState>(ProgressTaskState.Stop)
|
||||
private val mProgressTaskState = MutableStateFlow<ProgressTaskState>(ProgressTaskState.Hide)
|
||||
val progressTaskState: StateFlow<ProgressTaskState> = mProgressTaskState
|
||||
|
||||
fun update(value: ProgressMessage) {
|
||||
mProgressMessageState.value = value
|
||||
fun show(value: ProgressMessage) {
|
||||
mProgressTaskState.update { currentState ->
|
||||
ProgressTaskState.Show(value)
|
||||
}
|
||||
}
|
||||
|
||||
fun start(value: ProgressMessage) {
|
||||
mProgressTaskState.value = ProgressTaskState.Start
|
||||
update(value)
|
||||
}
|
||||
|
||||
fun stop() {
|
||||
mProgressTaskState.value = ProgressTaskState.Stop
|
||||
fun hide() {
|
||||
mProgressTaskState.value = ProgressTaskState.Hide
|
||||
}
|
||||
|
||||
sealed class ProgressTaskState {
|
||||
object Start: ProgressTaskState()
|
||||
object Stop: ProgressTaskState()
|
||||
data class Show(val value: ProgressMessage): ProgressTaskState()
|
||||
object Hide: ProgressTaskState()
|
||||
}
|
||||
}
|
||||
@@ -1 +1,2 @@
|
||||
* Fix multiple Passkey selection #2253
|
||||
* Fix database dialog subtitle #2254
|
||||
@@ -1 +1,2 @@
|
||||
* Correction de la selection multiple des Passkeys #2253
|
||||
* Correction du sous-titre du dialogue de la base de données #2254
|
||||
Reference in New Issue
Block a user