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() { private fun setupPasswordProtection() {
settings_password_protection.isChecked = config.isPasswordProtectionOn settings_password_protection.isChecked = config.isPasswordProtectionOn
settings_password_protection_holder.setOnClickListener { settings_password_protection_holder.setOnClickListener {
SecurityDialog(this, config.passwordHash) { SecurityDialog(this, config.passwordHash) { hash, type ->
val hasPasswordProtection = config.isPasswordProtectionOn val hasPasswordProtection = config.isPasswordProtectionOn
settings_password_protection.isChecked = !hasPasswordProtection settings_password_protection.isChecked = !hasPasswordProtection
config.isPasswordProtectionOn = !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 com.simplemobiletools.gallery.views.MyDialogViewPager
import kotlinx.android.synthetic.main.dialog_security.view.* 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 var dialog: AlertDialog? = null
val view = LayoutInflater.from(activity).inflate(R.layout.dialog_security, 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) { override fun receivedHash(hash: String, type: Int) {
callback(hash) callback(hash, type)
dialog!!.dismiss() dialog!!.dismiss()
} }
} }

View file

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

View file

@ -240,4 +240,8 @@ class Config(context: Context) : BaseConfig(context) {
var passwordHash: String var passwordHash: String
get() = prefs.getString(PASSWORD_HASH, "") get() = prefs.getString(PASSWORD_HASH, "")
set(passwordHash) = prefs.edit().putString(PASSWORD_HASH, passwordHash).apply() 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 REPLACE_SHARE_WITH_ROTATE = "replace_share_with_rotate"
val IS_PASSWORD_PROTECTION = "password_protection" val IS_PASSWORD_PROTECTION = "password_protection"
val PASSWORD_HASH = "password_hash" val PASSWORD_HASH = "password_hash"
val PROTECTION_TYPE = "protection_type"
val NOMEDIA = ".nomedia" val NOMEDIA = ".nomedia"
@ -64,3 +65,8 @@ val ORIENT_PORTRAIT = 0
val ORIENT_LANDSCAPE_LEFT = 1 val ORIENT_LANDSCAPE_LEFT = 1
val ORIENT_LANDSCAPE_RIGHT = 2 val ORIENT_LANDSCAPE_RIGHT = 2
val ORIENT_UPSIDE_DOWN = 3 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 package com.simplemobiletools.gallery.interfaces
interface HashListener { 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.commons.extensions.updateTextColors
import com.simplemobiletools.gallery.R import com.simplemobiletools.gallery.R
import com.simplemobiletools.gallery.extensions.config import com.simplemobiletools.gallery.extensions.config
import com.simplemobiletools.gallery.helpers.PROTECTION_PATTERN
import com.simplemobiletools.gallery.interfaces.HashListener import com.simplemobiletools.gallery.interfaces.HashListener
import com.simplemobiletools.gallery.interfaces.SecurityTab import com.simplemobiletools.gallery.interfaces.SecurityTab
import kotlinx.android.synthetic.main.tab_pattern.view.* import kotlinx.android.synthetic.main.tab_pattern.view.*
@ -56,7 +57,7 @@ class PatternTab(context: Context, attrs: AttributeSet) : RelativeLayout(context
} else if (hash == newHash) { } else if (hash == newHash) {
pattern_lock_view.setViewMode(PatternLockView.PatternViewMode.CORRECT) pattern_lock_view.setViewMode(PatternLockView.PatternViewMode.CORRECT)
Handler().postDelayed({ Handler().postDelayed({
hashListener.receivedHash(hash) hashListener.receivedHash(hash, PROTECTION_PATTERN)
}, 300) }, 300)
} else { } else {
pattern_lock_view.setViewMode(PatternLockView.PatternViewMode.WRONG) 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.toast
import com.simplemobiletools.commons.extensions.updateTextColors import com.simplemobiletools.commons.extensions.updateTextColors
import com.simplemobiletools.gallery.R import com.simplemobiletools.gallery.R
import com.simplemobiletools.gallery.helpers.PROTECTION_PIN
import com.simplemobiletools.gallery.interfaces.HashListener import com.simplemobiletools.gallery.interfaces.HashListener
import com.simplemobiletools.gallery.interfaces.SecurityTab import com.simplemobiletools.gallery.interfaces.SecurityTab
import kotlinx.android.synthetic.main.tab_pin.view.* import kotlinx.android.synthetic.main.tab_pin.view.*
@ -66,7 +67,7 @@ class PinTab(context: Context, attrs: AttributeSet) : RelativeLayout(context, at
resetPin() resetPin()
pin_lock_title.setText(R.string.repeat_pin) pin_lock_title.setText(R.string.repeat_pin)
} else if (hash == newHash) { } else if (hash == newHash) {
hashListener.receivedHash(hash) hashListener.receivedHash(hash, PROTECTION_PIN)
} else { } else {
resetPin() resetPin()
context.toast(R.string.wrong_pin) context.toast(R.string.wrong_pin)