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)
|
KeePassDX(4.2.3)
|
||||||
* Fix multiple Passkey selection #2253
|
* Fix multiple Passkey selection #2253
|
||||||
|
* Fix database dialog subtitle #2254
|
||||||
|
|
||||||
KeePassDX(4.2.2)
|
KeePassDX(4.2.2)
|
||||||
* Fix database merge algorithm #2223
|
* Fix database merge algorithm #2223
|
||||||
|
|||||||
@@ -95,7 +95,6 @@ abstract class DatabaseActivity : StylishActivity(), DatabaseRetrieval {
|
|||||||
finish()
|
finish()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
is DatabaseViewModel.ActionState.OnDatabaseInfoChanged -> {
|
is DatabaseViewModel.ActionState.OnDatabaseInfoChanged -> {
|
||||||
if (manageDatabaseInfo()) {
|
if (manageDatabaseInfo()) {
|
||||||
showDatabaseChangedDialog(
|
showDatabaseChangedDialog(
|
||||||
@@ -105,33 +104,28 @@ abstract class DatabaseActivity : StylishActivity(), DatabaseRetrieval {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
is DatabaseViewModel.ActionState.OnDatabaseActionRequested -> {
|
is DatabaseViewModel.ActionState.OnDatabaseActionRequested -> {
|
||||||
startDatabasePermissionService(
|
startDatabasePermissionService(
|
||||||
uiState.bundle,
|
uiState.bundle,
|
||||||
uiState.actionTask
|
uiState.actionTask
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
is DatabaseViewModel.ActionState.OnDatabaseActionStarted -> {
|
is DatabaseViewModel.ActionState.OnDatabaseActionStarted -> {
|
||||||
progressTaskViewModel.start(uiState.progressMessage)
|
progressTaskViewModel.show(uiState.progressMessage)
|
||||||
}
|
}
|
||||||
|
|
||||||
is DatabaseViewModel.ActionState.OnDatabaseActionUpdated -> {
|
is DatabaseViewModel.ActionState.OnDatabaseActionUpdated -> {
|
||||||
progressTaskViewModel.update(uiState.progressMessage)
|
progressTaskViewModel.show(uiState.progressMessage)
|
||||||
}
|
}
|
||||||
|
|
||||||
is DatabaseViewModel.ActionState.OnDatabaseActionStopped -> {
|
is DatabaseViewModel.ActionState.OnDatabaseActionStopped -> {
|
||||||
progressTaskViewModel.stop()
|
progressTaskViewModel.hide()
|
||||||
}
|
}
|
||||||
|
|
||||||
is DatabaseViewModel.ActionState.OnDatabaseActionFinished -> {
|
is DatabaseViewModel.ActionState.OnDatabaseActionFinished -> {
|
||||||
onDatabaseActionFinished(
|
onDatabaseActionFinished(
|
||||||
uiState.database,
|
uiState.database,
|
||||||
uiState.actionTask,
|
uiState.actionTask,
|
||||||
uiState.result
|
uiState.result
|
||||||
)
|
)
|
||||||
progressTaskViewModel.stop()
|
progressTaskViewModel.hide()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -142,9 +136,9 @@ abstract class DatabaseActivity : StylishActivity(), DatabaseRetrieval {
|
|||||||
repeatOnLifecycle(Lifecycle.State.RESUMED) {
|
repeatOnLifecycle(Lifecycle.State.RESUMED) {
|
||||||
progressTaskViewModel.progressTaskState.collect { state ->
|
progressTaskViewModel.progressTaskState.collect { state ->
|
||||||
when (state) {
|
when (state) {
|
||||||
ProgressTaskViewModel.ProgressTaskState.Start ->
|
is ProgressTaskViewModel.ProgressTaskState.Show ->
|
||||||
showDialog()
|
startDialog()
|
||||||
ProgressTaskViewModel.ProgressTaskState.Stop ->
|
is ProgressTaskViewModel.ProgressTaskState.Hide ->
|
||||||
stopDialog()
|
stopDialog()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -245,7 +239,7 @@ abstract class DatabaseActivity : StylishActivity(), DatabaseRetrieval {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun showDialog() {
|
private fun startDialog() {
|
||||||
lifecycleScope.launch {
|
lifecycleScope.launch {
|
||||||
if (showDatabaseDialog()) {
|
if (showDatabaseDialog()) {
|
||||||
if (progressTaskDialogFragment == null) {
|
if (progressTaskDialogFragment == null) {
|
||||||
|
|||||||
@@ -661,7 +661,9 @@ open class DatabaseTaskNotificationService : LockNotificationService(), Progress
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun updateMessage(resId: Int) {
|
private fun updateMessage(resId: Int) {
|
||||||
mProgressMessage.messageId = resId
|
mProgressMessage = mProgressMessage.copy(
|
||||||
|
messageId = resId
|
||||||
|
)
|
||||||
notifyProgressMessage()
|
notifyProgressMessage()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -70,16 +70,35 @@ open class ProgressTaskDialogFragment : DialogFragment() {
|
|||||||
|
|
||||||
lifecycleScope.launch {
|
lifecycleScope.launch {
|
||||||
repeatOnLifecycle(Lifecycle.State.STARTED) {
|
repeatOnLifecycle(Lifecycle.State.STARTED) {
|
||||||
progressTaskViewModel.progressMessageState.collect { state ->
|
progressTaskViewModel.progressTaskState.collect { state ->
|
||||||
updateView(titleView,
|
when (state) {
|
||||||
state.titleId?.let { title -> getString(title) })
|
is ProgressTaskViewModel.ProgressTaskState.Show -> {
|
||||||
updateView(messageView,
|
val value = state.value
|
||||||
state.messageId?.let { message -> getString(message) })
|
updateView(
|
||||||
updateView(warningView,
|
titleView,
|
||||||
state.warningId?.let { warning -> getString(warning) })
|
value.titleId?.let { title ->
|
||||||
cancelButton?.isVisible = state.cancelable != null
|
getString(title)
|
||||||
cancelButton?.setOnClickListener {
|
})
|
||||||
state.cancelable?.invoke()
|
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 com.kunzisoft.keepass.database.ProgressMessage
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
import kotlinx.coroutines.flow.StateFlow
|
import kotlinx.coroutines.flow.StateFlow
|
||||||
|
import kotlinx.coroutines.flow.update
|
||||||
|
|
||||||
class ProgressTaskViewModel: ViewModel() {
|
class ProgressTaskViewModel: ViewModel() {
|
||||||
|
|
||||||
private val mProgressMessageState = MutableStateFlow(ProgressMessage())
|
private val mProgressTaskState = MutableStateFlow<ProgressTaskState>(ProgressTaskState.Hide)
|
||||||
val progressMessageState: StateFlow<ProgressMessage> = mProgressMessageState
|
|
||||||
|
|
||||||
private val mProgressTaskState = MutableStateFlow<ProgressTaskState>(ProgressTaskState.Stop)
|
|
||||||
val progressTaskState: StateFlow<ProgressTaskState> = mProgressTaskState
|
val progressTaskState: StateFlow<ProgressTaskState> = mProgressTaskState
|
||||||
|
|
||||||
fun update(value: ProgressMessage) {
|
fun show(value: ProgressMessage) {
|
||||||
mProgressMessageState.value = value
|
mProgressTaskState.update { currentState ->
|
||||||
|
ProgressTaskState.Show(value)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun start(value: ProgressMessage) {
|
fun hide() {
|
||||||
mProgressTaskState.value = ProgressTaskState.Start
|
mProgressTaskState.value = ProgressTaskState.Hide
|
||||||
update(value)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun stop() {
|
|
||||||
mProgressTaskState.value = ProgressTaskState.Stop
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sealed class ProgressTaskState {
|
sealed class ProgressTaskState {
|
||||||
object Start: ProgressTaskState()
|
data class Show(val value: ProgressMessage): ProgressTaskState()
|
||||||
object Stop: ProgressTaskState()
|
object Hide: ProgressTaskState()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1 +1,2 @@
|
|||||||
* Fix multiple Passkey selection #2253
|
* Fix multiple Passkey selection #2253
|
||||||
|
* Fix database dialog subtitle #2254
|
||||||
@@ -1 +1,2 @@
|
|||||||
* Correction de la selection multiple des Passkeys #2253
|
* 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