diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/SettingsActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/SettingsActivity.kt index 8493c1dab..714f146fa 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/SettingsActivity.kt @@ -144,16 +144,11 @@ class SettingsActivity : SimpleActivity() { private fun setupPasswordProtection() { settings_password_protection.isChecked = config.isPasswordProtectionOn settings_password_protection_holder.setOnClickListener { - PatternDialog(this) { - if (config.isPasswordProtectionOn) { - settings_password_protection.isChecked = false - config.isPasswordProtectionOn = false - config.passwordHash = "" - } else { - settings_password_protection.isChecked = true - config.isPasswordProtectionOn = true - config.passwordHash = it - } + PatternDialog(this, config.passwordHash) { + val hasPasswordProtection = config.isPasswordProtectionOn + settings_password_protection.isChecked = !hasPasswordProtection + config.isPasswordProtectionOn = !hasPasswordProtection + config.passwordHash = if (hasPasswordProtection) "" else it } } } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/dialogs/PatternDialog.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/dialogs/PatternDialog.kt index e0f27ab7f..8a0e45296 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/dialogs/PatternDialog.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/dialogs/PatternDialog.kt @@ -13,39 +13,19 @@ import com.simplemobiletools.gallery.activities.SimpleActivity import com.simplemobiletools.gallery.extensions.config import kotlinx.android.synthetic.main.dialog_pattern.view.* -class PatternDialog(val activity: SimpleActivity, val callback: (hash: String) -> Unit) { +class PatternDialog(val activity: SimpleActivity, val requiredHash: String, val callback: (hash: String) -> Unit) { var dialog: AlertDialog? = null + val view = LayoutInflater.from(activity).inflate(R.layout.dialog_pattern, null) + + var hash = requiredHash init { - var hash = "" - val view = LayoutInflater.from(activity).inflate(R.layout.dialog_pattern, null) view.apply { pattern_lock_view.correctStateColor = activity.config.primaryColor pattern_lock_view.normalStateColor = activity.config.textColor pattern_lock_view.addPatternLockListener(object : PatternLockViewListener { override fun onComplete(pattern: MutableList?) { - if (hash.isEmpty()) { - hash = PatternLockUtils.patternToSha1(pattern_lock_view, pattern) - pattern_lock_view.clearPattern() - pattern_dialog_title.setText(R.string.repeat_pattern) - } else { - val newHash = PatternLockUtils.patternToSha1(pattern_lock_view, pattern) - if (hash == newHash) { - pattern_lock_view.setViewMode(PatternLockView.PatternViewMode.CORRECT) - Handler().postDelayed({ - callback(hash) - dialog!!.dismiss() - }, 300) - } else { - pattern_lock_view.setViewMode(PatternLockView.PatternViewMode.WRONG) - activity.toast(R.string.wrong_pattern) - Handler().postDelayed({ - hash = "" - pattern_lock_view.clearPattern() - pattern_dialog_title.setText(R.string.select_pattern) - }, 1000) - } - } + receivedHash(PatternLockUtils.patternToSha1(pattern_lock_view, pattern)) } override fun onCleared() { @@ -65,4 +45,32 @@ class PatternDialog(val activity: SimpleActivity, val callback: (hash: String) - activity.setupDialogStuff(view, this) } } + + private fun receivedHash(newHash: String) { + view.apply { + if (hash.isEmpty()) { + hash = newHash + pattern_lock_view.clearPattern() + pattern_dialog_title.setText(R.string.repeat_pattern) + } else { + if (hash == newHash) { + pattern_lock_view.setViewMode(PatternLockView.PatternViewMode.CORRECT) + Handler().postDelayed({ + callback(hash) + dialog!!.dismiss() + }, 300) + } else { + pattern_lock_view.setViewMode(PatternLockView.PatternViewMode.WRONG) + activity.toast(R.string.wrong_pattern) + Handler().postDelayed({ + pattern_lock_view.clearPattern() + if (requiredHash.isEmpty()) { + hash = "" + pattern_dialog_title.setText(R.string.insert_pattern) + } + }, 1000) + } + } + } + } } diff --git a/app/src/main/res/layout/dialog_pattern.xml b/app/src/main/res/layout/dialog_pattern.xml index 78eeb54ce..e900eb2f9 100644 --- a/app/src/main/res/layout/dialog_pattern.xml +++ b/app/src/main/res/layout/dialog_pattern.xml @@ -10,7 +10,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="@dimen/activity_margin" - android:text="@string/select_pattern"/> + android:text="@string/insert_pattern"/> Wrong PIN Repeat PIN Pattern - Select pattern + Insert pattern Wrong pattern Repeat pattern diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index a289cc3a5..01261c7dc 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -85,7 +85,7 @@ Wrong PIN Repeat PIN Pattern - Select pattern + Insert pattern Wrong pattern Repeat pattern diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 806e9932d..7dba19efd 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -85,7 +85,7 @@ Wrong PIN Repeat PIN Pattern - Select pattern + Insert pattern Wrong pattern Repeat pattern diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index f54127ab1..f1fd9704e 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -85,7 +85,7 @@ Wrong PIN Repeat PIN Pattern - Select pattern + Insert pattern Wrong pattern Repeat pattern diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 495defe16..4ac31db20 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -85,7 +85,7 @@ Wrong PIN Repeat PIN Pattern - Select pattern + Insert pattern Wrong pattern Repeat pattern diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 8dbd7f1dd..9195f6eb3 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -85,7 +85,7 @@ Wrong PIN Repeat PIN Pattern - Select pattern + Insert pattern Wrong pattern Repeat pattern diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 043c46c0f..80e7abac5 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -85,7 +85,7 @@ Wrong PIN Repeat PIN Pattern - Select pattern + Insert pattern Wrong pattern Repeat pattern diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index bca2227cf..9242085a7 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -85,7 +85,7 @@ Wrong PIN Repeat PIN Pattern - Select pattern + Insert pattern Wrong pattern Repeat pattern diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index f9aa512a7..0d504ea11 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -85,7 +85,7 @@ Wrong PIN Repeat PIN Pattern - Select pattern + Insert pattern Wrong pattern Repeat pattern diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 78e929e07..60919649b 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -85,7 +85,7 @@ Wrong PIN Repeat PIN Pattern - Select pattern + Insert pattern Wrong pattern Repeat pattern diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 60242d8a7..fde9bbde2 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -85,7 +85,7 @@ Wrong PIN Repeat PIN Pattern - Select pattern + Insert pattern Wrong pattern Repeat pattern diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index a1311d47d..23781cf9e 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -85,7 +85,7 @@ Nesprávny PIN Zopakujte PIN Vzor - Zvoľte vzor + Zadajte vzor Nesprávny vzor Zopakujte vzor diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 2dfadcbeb..d567a7964 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -85,7 +85,7 @@ Wrong PIN Repeat PIN Pattern - Select pattern + Insert pattern Wrong pattern Repeat pattern diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 93638100d..e1c255b99 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -85,7 +85,7 @@ Wrong PIN Repeat PIN Pattern - Select pattern + Insert pattern Wrong pattern Repeat pattern diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 9bd074a5f..552305e1a 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -85,7 +85,7 @@ Wrong PIN Repeat PIN Pattern - Select pattern + Insert pattern Wrong pattern Repeat pattern diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index ba3bf331e..02e71ea97 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -85,7 +85,7 @@ Wrong PIN Repeat PIN Pattern - Select pattern + Insert pattern Wrong pattern Repeat pattern diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 956c73e77..e8352b0cd 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -85,7 +85,7 @@ Wrong PIN Repeat PIN Pattern - Select pattern + Insert pattern Wrong pattern Repeat pattern