I currently do this to make my custom password circle:
val pinIcon0 = "◇ ◇ ◇ ◇"
val pinIcon1 = "◆ ◇ ◇ ◇"
val pinIcon2 = "◆ ◆ ◇ ◇"
val pinIcon3 = "◆ ◆ ◆ ◇"
val pinIcon4 = "◆ ◆ ◆ ◆"
And then do this:
listOf(num0,num1,num2,num3,num4,num5,num6,num7,num8,num9)
.withIndex()
.forEach { (index, view) ->
view.setOnClickListener {
pinCount++
pinCodeNew.append("$index")
if(pinCount == 0){ newPinCircle.text = pinIcon0 }
if(pinCount == 1 || pinCount == 5){ newPinCircle.text = pinIcon1 }
if(pinCount == 2 || pinCount == 6){ newPinCircle.text = pinIcon2 }
if(pinCount == 3 || pinCount == 7){ newPinCircle.text = pinIcon3 }
if(pinCount == 4 || pinCount == 8){ newPinCircle.text = pinIcon4 }
if(pinCount == 8){
savePin()
newPinTxt.text = "NEW PIN"
newPinCircle.text = pinIcon0
}
if(pinCount == 9){
pinCount = 0
newPinCircle.text = pinIcon0
}
if(pinCount == 4){
if(pinCodeNew.text.toString() == "1234"){
Toast.makeText(this,"PIN cannot be 1234", Toast.LENGTH_SHORT).show()
pinCodeNew.text?.clear()
pinCount = 0
newPinCircle.text = pinIcon0
}else {
if(pinCodeNew.text.toString() == getEncryptedSharedPrefs().getString("pinSettingsLogin", "")){
Toast.makeText(this,"PIN cannot be current PIN", Toast.LENGTH_SHORT).show()
pinCodeNew.text?.clear()
pinCount = 0
newPinCircle.text = pinIcon0
}else{
getEncryptedSharedPrefs().edit()
.putString("pinSettingsNew", pinCodeNew.text.toString())
.apply()
pinCodeNew.text?.clear()
newPinTxt.text = "CONFIRM PIN"
newPinCircle.text = pinIcon0
}
}
}
}
}
}
This is the current code I use to make my stuff happen good, but not optimal. The part that needs some work is the 5 "if" statements to change my pinIcon.
