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