Example from Android Jetpack: LiveData
MutableLiveData Example |
---|
![]() |
import org.bouncycastle.jce.provider.BouncyCastleProvider | |
import java.security.Security | |
import javax.crypto.SecretKeyFactory | |
import javax.crypto.spec.PBEKeySpec | |
import javax.crypto.spec.SecretKeySpec | |
private fun getSecretKey(salt: ByteArray): SecretKeySpec { | |
// Adicione o provedor Bouncy Castle | |
Security.addProvider(BouncyCastleProvider()) |
import android.security.keystore.KeyProperties | |
import androidx.annotation.RequiresApi | |
import co.tob.charan.constants.EncryptConstants.ENC_VALUE | |
import co.tob.charan.constants.EncryptConstants.IV_VALUE | |
import co.tob.charan.constants.EncryptConstants.SALT_VALUE | |
import co.tob.charan.utils.fromBytetoString | |
import java.security.Key | |
import java.security.SecureRandom |
import java.math.BigInteger | |
import java.security.* | |
import java.security.cert.Certificate | |
import java.security.cert.CertificateEncodingException | |
import java.security.cert.CertificateException | |
import java.security.cert.CertificateFactory | |
import java.security.cert.X509Certificate | |
import java.time.LocalDate | |
import java.time.ZoneOffset | |
import java.util.* |
@TargetApi(23) | |
fun signData(data: String, alias: String): String { | |
try { | |
//We get the Keystore instance | |
val keyStore: KeyStore = KeyStore.getInstance(ANDROID_KEYSTORE).apply { | |
load(null) | |
} | |
//Retrieves the private key from the keystore | |
val privateKey: PrivateKey = keyStore.getKey(alias, null) as PrivateKey |
fun recoveryPrivateKey(alias: String): PrivateKey { | |
val keyStore = createKeyStore() | |
val privateKey = keyStore.getKey(alias, null) as PrivateKey | |
return privateKey | |
} |
fun recoveryPublic(alias: String): PublicKey { | |
val keyStore = createKeyStore() | |
val cert: Certificate = keyStore.getCertificate(alias) | |
val publicKey: PublicKey = cert.publicKey | |
return publicKey | |
} |
list.adapter = RvAdapter { name -> | |
editText.setText(name) | |
motionLayout.transitionToEnd() | |
} |
package pl.tkadziolka.motionlayout | |
import android.view.LayoutInflater | |
import android.view.View | |
import android.view.ViewGroup | |
import androidx.recyclerview.widget.RecyclerView | |
import kotlinx.android.synthetic.main.simple_item.view.* | |
class RvAdapter(private val listener: (String) -> Unit) : RecyclerView.Adapter<SimpleItem>() { |
MutableLiveData Example |
---|
![]() |