diff --git a/app/src/main/java/com/kunzisoft/keepass/database/action/SaveDatabaseProgressDialogRunnable.kt b/app/src/main/java/com/kunzisoft/keepass/database/action/SaveDatabaseProgressDialogRunnable.kt
index c458aa06a..72f8c1a0d 100644
--- a/app/src/main/java/com/kunzisoft/keepass/database/action/SaveDatabaseProgressDialogRunnable.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/database/action/SaveDatabaseProgressDialogRunnable.kt
@@ -26,7 +26,7 @@ import com.kunzisoft.keepass.tasks.ActionRunnable
import com.kunzisoft.keepass.tasks.ProgressTaskDialogFragment
import com.kunzisoft.keepass.tasks.ProgressTaskUpdater
-open class SaveDatabaseProgressDialogRunnable(var contextDatabase: FragmentActivity,
+open class SaveDatabaseProgressDialogRunnable(private var contextDatabase: FragmentActivity,
database: Database,
private val actionRunnable: ((ProgressTaskUpdater)-> ActionRunnable)?,
save: Boolean):
@@ -36,7 +36,9 @@ open class SaveDatabaseProgressDialogRunnable(var contextDatabase: FragmentActiv
// Show the dialog
val progressTaskUpdater : ProgressTaskUpdater = ProgressTaskDialogFragment.start(
contextDatabase.supportFragmentManager,
- R.string.saving_database)
+ R.string.saving_database,
+ null,
+ R.string.do_not_kill_app)
// Do the action if defined
actionRunnable?.invoke(progressTaskUpdater)?.run()
diff --git a/app/src/main/java/com/kunzisoft/keepass/tasks/ProgressTaskDialogFragment.kt b/app/src/main/java/com/kunzisoft/keepass/tasks/ProgressTaskDialogFragment.kt
index d33812089..647f39622 100644
--- a/app/src/main/java/com/kunzisoft/keepass/tasks/ProgressTaskDialogFragment.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/tasks/ProgressTaskDialogFragment.kt
@@ -40,9 +40,12 @@ open class ProgressTaskDialogFragment : DialogFragment(), ProgressTaskUpdater {
private var title = UNDEFINED
@StringRes
private var message = UNDEFINED
+ @StringRes
+ private var warning = UNDEFINED
private var titleView: TextView? = null
private var messageView: TextView? = null
+ private var warningView: TextView? = null
private var progressView: ProgressBar? = null
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
@@ -60,10 +63,12 @@ open class ProgressTaskDialogFragment : DialogFragment(), ProgressTaskUpdater {
titleView = root.findViewById(R.id.progress_dialog_title)
messageView = root.findViewById(R.id.progress_dialog_message)
+ warningView = root.findViewById(R.id.progress_dialog_warning)
progressView = root.findViewById(R.id.progress_dialog_bar)
updateTitle(title)
updateMessage(message)
+ updateWarning(warning)
isCancelable = false
Util.lockScreenOrientation(it)
@@ -91,16 +96,21 @@ open class ProgressTaskDialogFragment : DialogFragment(), ProgressTaskUpdater {
}
}
- fun updateTitle(resId: Int) {
+ fun updateTitle(@StringRes resId: Int) {
this.title = resId
updateView(titleView, title)
}
- override fun updateMessage(resId: Int) {
+ override fun updateMessage(@StringRes resId: Int) {
this.message = resId
updateView(messageView, message)
}
+ fun updateWarning(@StringRes resId: Int) {
+ this.warning = resId
+ updateView(warningView, warning)
+ }
+
companion object {
private const val PROGRESS_TASK_DIALOG_TAG = "progressDialogFragment"
@@ -109,13 +119,17 @@ open class ProgressTaskDialogFragment : DialogFragment(), ProgressTaskUpdater {
fun start(fragmentManager: FragmentManager,
@StringRes titleId: Int,
- @StringRes messageId: Int? = null): ProgressTaskDialogFragment {
+ @StringRes messageId: Int? = null,
+ @StringRes warningId: Int? = null): ProgressTaskDialogFragment {
// Create an instance of the dialog fragment and show it
val dialog = ProgressTaskDialogFragment()
dialog.updateTitle(titleId)
messageId?.let {
dialog.updateMessage(it)
}
+ warningId?.let {
+ dialog.updateWarning(it)
+ }
dialog.show(fragmentManager, PROGRESS_TASK_DIALOG_TAG)
return dialog
}
diff --git a/app/src/main/java/com/kunzisoft/keepass/tasks/ProgressTaskUpdater.java b/app/src/main/java/com/kunzisoft/keepass/tasks/ProgressTaskUpdater.java
index 23188c78b..a41d0c7cc 100644
--- a/app/src/main/java/com/kunzisoft/keepass/tasks/ProgressTaskUpdater.java
+++ b/app/src/main/java/com/kunzisoft/keepass/tasks/ProgressTaskUpdater.java
@@ -19,6 +19,8 @@
*/
package com.kunzisoft.keepass.tasks;
+import android.support.annotation.StringRes;
+
public interface ProgressTaskUpdater {
- void updateMessage(int resId);
+ void updateMessage(@StringRes int resId);
}
diff --git a/app/src/main/res/layout/progress_dialog.xml b/app/src/main/res/layout/progress_dialog.xml
index 4eae38997..2898d42e4 100644
--- a/app/src/main/res/layout/progress_dialog.xml
+++ b/app/src/main/res/layout/progress_dialog.xml
@@ -26,6 +26,17 @@
android:layout_marginEnd="20dp"
style="@style/KeepassDXStyle.TextAppearance.SmallTitle"/>
+
+
Parallelism
Degree of parallelism (i.e. number of threads) used by the key derivation function.
Saving database…
+ Do not kill the app…
Space
Search
Sort