store the protection type too, pattern/pin

This commit is contained in:
tibbi 2017-08-02 22:14:05 +02:00
parent f0ace2f57d
commit 51f07c9fa6
8 changed files with 22 additions and 9 deletions

View file

@ -155,11 +155,12 @@ class SettingsActivity : SimpleActivity() {
private fun setupPasswordProtection() {
settings_password_protection.isChecked = config.isPasswordProtectionOn
settings_password_protection_holder.setOnClickListener {
SecurityDialog(this, config.passwordHash) {
SecurityDialog(this, config.passwordHash) { hash, type ->
val hasPasswordProtection = config.isPasswordProtectionOn
settings_password_protection.isChecked = !hasPasswordProtection
config.isPasswordProtectionOn = !hasPasswordProtection
config.passwordHash = if (hasPasswordProtection) "" else it
config.passwordHash = if (hasPasswordProtection) "" else hash
config.protectionType = PROTECTION_PATTERN
}
}
}

View file

@ -13,7 +13,7 @@ import com.simplemobiletools.gallery.interfaces.HashListener
import com.simplemobiletools.gallery.views.MyDialogViewPager
import kotlinx.android.synthetic.main.dialog_security.view.*
class SecurityDialog(val activity: SimpleActivity, val requiredHash: String, val callback: (hash: String) -> Unit) : HashListener {
class SecurityDialog(val activity: SimpleActivity, val requiredHash: String, val callback: (hash: String, type: Int) -> Unit) : HashListener {
var dialog: AlertDialog? = null
val view = LayoutInflater.from(activity).inflate(R.layout.dialog_security, null)
@ -60,8 +60,8 @@ class SecurityDialog(val activity: SimpleActivity, val requiredHash: String, val
}
}
override fun receivedHash(hash: String) {
callback(hash)
override fun receivedHash(hash: String, type: Int) {
callback(hash, type)
dialog!!.dismiss()
}
}

View file

@ -335,7 +335,7 @@ fun Activity.loadStaticGif(path: String, target: MySquareImageView) {
fun SimpleActivity.handleHiddenFolderPasswordProtection(callback: () -> Unit) {
if (config.isPasswordProtectionOn) {
SecurityDialog(this, config.passwordHash) {
SecurityDialog(this, config.passwordHash) { hash, type ->
callback()
}
} else {

View file

@ -240,4 +240,8 @@ class Config(context: Context) : BaseConfig(context) {
var passwordHash: String
get() = prefs.getString(PASSWORD_HASH, "")
set(passwordHash) = prefs.edit().putString(PASSWORD_HASH, passwordHash).apply()
var protectionType: Int
get() = prefs.getInt(PROTECTION_TYPE, PROTECTION_PATTERN)
set(protectionType) = prefs.edit().putInt(PROTECTION_TYPE, protectionType).apply()
}

View file

@ -35,6 +35,7 @@ val HIDE_SYSTEM_UI = "hide_system_ui"
val REPLACE_SHARE_WITH_ROTATE = "replace_share_with_rotate"
val IS_PASSWORD_PROTECTION = "password_protection"
val PASSWORD_HASH = "password_hash"
val PROTECTION_TYPE = "protection_type"
val NOMEDIA = ".nomedia"
@ -64,3 +65,8 @@ val ORIENT_PORTRAIT = 0
val ORIENT_LANDSCAPE_LEFT = 1
val ORIENT_LANDSCAPE_RIGHT = 2
val ORIENT_UPSIDE_DOWN = 3
// security
val PROTECTION_PATTERN = 1
val PROTECTION_PIN = 2
val PROTECTION_FINGERPRINT = 3

View file

@ -1,5 +1,5 @@
package com.simplemobiletools.gallery.interfaces
interface HashListener {
fun receivedHash(hash: String)
fun receivedHash(hash: String, type: Int)
}

View file

@ -11,6 +11,7 @@ import com.simplemobiletools.commons.extensions.toast
import com.simplemobiletools.commons.extensions.updateTextColors
import com.simplemobiletools.gallery.R
import com.simplemobiletools.gallery.extensions.config
import com.simplemobiletools.gallery.helpers.PROTECTION_PATTERN
import com.simplemobiletools.gallery.interfaces.HashListener
import com.simplemobiletools.gallery.interfaces.SecurityTab
import kotlinx.android.synthetic.main.tab_pattern.view.*
@ -56,7 +57,7 @@ class PatternTab(context: Context, attrs: AttributeSet) : RelativeLayout(context
} else if (hash == newHash) {
pattern_lock_view.setViewMode(PatternLockView.PatternViewMode.CORRECT)
Handler().postDelayed({
hashListener.receivedHash(hash)
hashListener.receivedHash(hash, PROTECTION_PATTERN)
}, 300)
} else {
pattern_lock_view.setViewMode(PatternLockView.PatternViewMode.WRONG)

View file

@ -6,6 +6,7 @@ import android.widget.RelativeLayout
import com.simplemobiletools.commons.extensions.toast
import com.simplemobiletools.commons.extensions.updateTextColors
import com.simplemobiletools.gallery.R
import com.simplemobiletools.gallery.helpers.PROTECTION_PIN
import com.simplemobiletools.gallery.interfaces.HashListener
import com.simplemobiletools.gallery.interfaces.SecurityTab
import kotlinx.android.synthetic.main.tab_pin.view.*
@ -66,7 +67,7 @@ class PinTab(context: Context, attrs: AttributeSet) : RelativeLayout(context, at
resetPin()
pin_lock_title.setText(R.string.repeat_pin)
} else if (hash == newHash) {
hashListener.receivedHash(hash)
hashListener.receivedHash(hash, PROTECTION_PIN)
} else {
resetPin()
context.toast(R.string.wrong_pin)