QRCode est un objet et afficher des toasts pendant la génération

This commit is contained in:
odrling 2018-01-10 16:40:22 +01:00
parent 9828aff63a
commit 73900edd1b
5 changed files with 37 additions and 31 deletions

View file

@ -97,16 +97,22 @@ class MainActivity : BaseActivity() {
* l'application
*/
fun qrcode() {
val toast = Toast.makeText(this, getString(R.string.generating_qrcode), Toast.LENGTH_SHORT)
toast.show()
object : AsyncTask<Void, Void, Bitmap>() {
override fun doInBackground(vararg params: Void?): Bitmap? {
return QRCode.instance.generate(this@MainActivity)
return QRCode.generate(this@MainActivity)
}
override fun onPostExecute(qrcode: Bitmap?) {
super.onPostExecute(qrcode)
if (qrcode != null) {
toast.setText(R.string.qrcode_generated)
toast.show()
// création de la pop-up
val alertDialog = AlertDialog.Builder(this@MainActivity).create()
alertDialog.setTitle(R.string.action_qrcode)
@ -119,7 +125,8 @@ class MainActivity : BaseActivity() {
// afficher la pop-up
alertDialog.show()
} else {
Toast.makeText(this@MainActivity, R.string.qrcode_error, Toast.LENGTH_SHORT).show()
toast.setText(R.string.qrcode_error)
toast.show()
}
}

View file

@ -51,7 +51,7 @@ class NornMessageReceiver : BroadcastReceiver() {
}
// vérifier si le message est en rapport avec un QR code
if (QRCode.instance.message_hook(context, message))
if (QRCode.message_hook(context, message))
return
/*
@ -69,20 +69,20 @@ class NornMessageReceiver : BroadcastReceiver() {
message.setPublicKey(context)
/*
*
* Si la conversation n'est pas déjà notée comme sécurisée on envoi un message à
* l'expéditeur du message afin d'être sûr qu'il aient reçu notre clé publique.
* Les échanges s'effectuent donc ainsi:
*
* - L'application envoie la clé publique à un autre utilisateur de l'application
* - L'application de l'autre utilisateur répond en envoyant également sa clé publique
* et considère alors la conversation comme sécurisée
* - L'application reçoit la clé publique de l'autre utilisateur et considère elle
* aussi la conversation comme sécurisée, elle envoi de nouveau sa clé publique
* - L'application de l'autre utilisateur reçoit de nouveau la clé et arrête la boucle
*
* Cela permet d'échanger les clés de manière simple et sûre.
*/
*
* Si la conversation n'est pas déjà notée comme sécurisée on envoi un message à
* l'expéditeur du message afin d'être sûr qu'il aient reçu notre clé publique.
* Les échanges s'effectuent donc ainsi:
*
* - L'application envoie la clé publique à un autre utilisateur de l'application
* - L'application de l'autre utilisateur répond en envoyant également sa clé publique
* et considère alors la conversation comme sécurisée
* - L'application reçoit la clé publique de l'autre utilisateur et considère elle
* aussi la conversation comme sécurisée, elle envoi de nouveau sa clé publique
* - L'application de l'autre utilisateur reçoit de nouveau la clé et arrête la boucle
*
* Cela permet d'échanger les clés de manière simple et sûre.
*/
if (!message.conversation.secured) {
message.conversation.createSecuredConversation(context)
message.conversation.setSecured(true, context)

View file

@ -38,22 +38,17 @@ import java.util.*
* Il sera possible de reconnaitre ce SMS par la présence du token dans le message.
* L'échange de clé ainsi effectué permet d'éviter les attaques de type man-in-the-middle.
*/
class QRCode {
object QRCode {
companion object {
/**
* Taille du token présent dans les QR codes
*/
val TOKEN_SIZE = 32
/**
* Taille du token présent dans les QR codes
*/
val TOKEN_SIZE = 32
/**
* Singleton QRCode, nécessaire au fonctionnement des QR codes
*/
val instance by lazy { QRCode() }
private var preferences: SharedPreferences? = null
}
/**
* Préférences liées aux QR codes
*/
private var preferences: SharedPreferences? = null
/**
* Association des tokens à leur clé à utilisation unique

View file

@ -40,4 +40,6 @@
<string name="enter_number">Saisissez votre numéro de téléphone</string>
<string name="wrong_number">Ce numéro de téléphone ne semble pas être le votre</string>
<string name="correct_number">Numéro de téléphone correct</string>
<string name="generating_qrcode">QR code en cours de génération</string>
<string name="qrcode_generated">QR code généré</string>
</resources>

View file

@ -40,4 +40,6 @@
<string name="enter_number">Enter your phone number</string>
<string name="wrong_number">It doesn\'t seem to be your phone number</string>
<string name="correct_number">Correct phone number</string>
<string name="generating_qrcode">Generating QR code</string>
<string name="qrcode_generated">QR code generated</string>
</resources>