require the pattern for disabling password protection

This commit is contained in:
tibbi 2017-07-29 21:20:21 +02:00
parent fff519b521
commit f039afaca6
20 changed files with 56 additions and 53 deletions

View file

@ -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
}
}
}

View file

@ -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<PatternLockView.Dot>?) {
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)
}
}
}
}
}

View file

@ -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"/>
<com.andrognito.patternlockview.PatternLockView
android:id="@+id/pattern_lock_view"

View file

@ -85,7 +85,7 @@
<string name="wrong_pin">Wrong PIN</string>
<string name="repeat_pin">Repeat PIN</string>
<string name="pattern">Pattern</string>
<string name="select_pattern">Select pattern</string>
<string name="insert_pattern">Insert pattern</string>
<string name="wrong_pattern">Wrong pattern</string>
<string name="repeat_pattern">Repeat pattern</string>

View file

@ -85,7 +85,7 @@
<string name="wrong_pin">Wrong PIN</string>
<string name="repeat_pin">Repeat PIN</string>
<string name="pattern">Pattern</string>
<string name="select_pattern">Select pattern</string>
<string name="insert_pattern">Insert pattern</string>
<string name="wrong_pattern">Wrong pattern</string>
<string name="repeat_pattern">Repeat pattern</string>

View file

@ -85,7 +85,7 @@
<string name="wrong_pin">Wrong PIN</string>
<string name="repeat_pin">Repeat PIN</string>
<string name="pattern">Pattern</string>
<string name="select_pattern">Select pattern</string>
<string name="insert_pattern">Insert pattern</string>
<string name="wrong_pattern">Wrong pattern</string>
<string name="repeat_pattern">Repeat pattern</string>

View file

@ -85,7 +85,7 @@
<string name="wrong_pin">Wrong PIN</string>
<string name="repeat_pin">Repeat PIN</string>
<string name="pattern">Pattern</string>
<string name="select_pattern">Select pattern</string>
<string name="insert_pattern">Insert pattern</string>
<string name="wrong_pattern">Wrong pattern</string>
<string name="repeat_pattern">Repeat pattern</string>

View file

@ -85,7 +85,7 @@
<string name="wrong_pin">Wrong PIN</string>
<string name="repeat_pin">Repeat PIN</string>
<string name="pattern">Pattern</string>
<string name="select_pattern">Select pattern</string>
<string name="insert_pattern">Insert pattern</string>
<string name="wrong_pattern">Wrong pattern</string>
<string name="repeat_pattern">Repeat pattern</string>

View file

@ -85,7 +85,7 @@
<string name="wrong_pin">Wrong PIN</string>
<string name="repeat_pin">Repeat PIN</string>
<string name="pattern">Pattern</string>
<string name="select_pattern">Select pattern</string>
<string name="insert_pattern">Insert pattern</string>
<string name="wrong_pattern">Wrong pattern</string>
<string name="repeat_pattern">Repeat pattern</string>

View file

@ -85,7 +85,7 @@
<string name="wrong_pin">Wrong PIN</string>
<string name="repeat_pin">Repeat PIN</string>
<string name="pattern">Pattern</string>
<string name="select_pattern">Select pattern</string>
<string name="insert_pattern">Insert pattern</string>
<string name="wrong_pattern">Wrong pattern</string>
<string name="repeat_pattern">Repeat pattern</string>

View file

@ -85,7 +85,7 @@
<string name="wrong_pin">Wrong PIN</string>
<string name="repeat_pin">Repeat PIN</string>
<string name="pattern">Pattern</string>
<string name="select_pattern">Select pattern</string>
<string name="insert_pattern">Insert pattern</string>
<string name="wrong_pattern">Wrong pattern</string>
<string name="repeat_pattern">Repeat pattern</string>

View file

@ -85,7 +85,7 @@
<string name="wrong_pin">Wrong PIN</string>
<string name="repeat_pin">Repeat PIN</string>
<string name="pattern">Pattern</string>
<string name="select_pattern">Select pattern</string>
<string name="insert_pattern">Insert pattern</string>
<string name="wrong_pattern">Wrong pattern</string>
<string name="repeat_pattern">Repeat pattern</string>

View file

@ -85,7 +85,7 @@
<string name="wrong_pin">Wrong PIN</string>
<string name="repeat_pin">Repeat PIN</string>
<string name="pattern">Pattern</string>
<string name="select_pattern">Select pattern</string>
<string name="insert_pattern">Insert pattern</string>
<string name="wrong_pattern">Wrong pattern</string>
<string name="repeat_pattern">Repeat pattern</string>

View file

@ -85,7 +85,7 @@
<string name="wrong_pin">Wrong PIN</string>
<string name="repeat_pin">Repeat PIN</string>
<string name="pattern">Pattern</string>
<string name="select_pattern">Select pattern</string>
<string name="insert_pattern">Insert pattern</string>
<string name="wrong_pattern">Wrong pattern</string>
<string name="repeat_pattern">Repeat pattern</string>

View file

@ -85,7 +85,7 @@
<string name="wrong_pin">Nesprávny PIN</string>
<string name="repeat_pin">Zopakujte PIN</string>
<string name="pattern">Vzor</string>
<string name="select_pattern">Zvoľte vzor</string>
<string name="insert_pattern">Zadajte vzor</string>
<string name="wrong_pattern">Nesprávny vzor</string>
<string name="repeat_pattern">Zopakujte vzor</string>

View file

@ -85,7 +85,7 @@
<string name="wrong_pin">Wrong PIN</string>
<string name="repeat_pin">Repeat PIN</string>
<string name="pattern">Pattern</string>
<string name="select_pattern">Select pattern</string>
<string name="insert_pattern">Insert pattern</string>
<string name="wrong_pattern">Wrong pattern</string>
<string name="repeat_pattern">Repeat pattern</string>

View file

@ -85,7 +85,7 @@
<string name="wrong_pin">Wrong PIN</string>
<string name="repeat_pin">Repeat PIN</string>
<string name="pattern">Pattern</string>
<string name="select_pattern">Select pattern</string>
<string name="insert_pattern">Insert pattern</string>
<string name="wrong_pattern">Wrong pattern</string>
<string name="repeat_pattern">Repeat pattern</string>

View file

@ -85,7 +85,7 @@
<string name="wrong_pin">Wrong PIN</string>
<string name="repeat_pin">Repeat PIN</string>
<string name="pattern">Pattern</string>
<string name="select_pattern">Select pattern</string>
<string name="insert_pattern">Insert pattern</string>
<string name="wrong_pattern">Wrong pattern</string>
<string name="repeat_pattern">Repeat pattern</string>

View file

@ -85,7 +85,7 @@
<string name="wrong_pin">Wrong PIN</string>
<string name="repeat_pin">Repeat PIN</string>
<string name="pattern">Pattern</string>
<string name="select_pattern">Select pattern</string>
<string name="insert_pattern">Insert pattern</string>
<string name="wrong_pattern">Wrong pattern</string>
<string name="repeat_pattern">Repeat pattern</string>

View file

@ -85,7 +85,7 @@
<string name="wrong_pin">Wrong PIN</string>
<string name="repeat_pin">Repeat PIN</string>
<string name="pattern">Pattern</string>
<string name="select_pattern">Select pattern</string>
<string name="insert_pattern">Insert pattern</string>
<string name="wrong_pattern">Wrong pattern</string>
<string name="repeat_pattern">Repeat pattern</string>