From 0c350c855315fe49f7e8781dbdcd6eec3607cac5 Mon Sep 17 00:00:00 2001 From: Rumperuu Date: Sat, 15 Sep 2018 16:32:24 +0100 Subject: [PATCH] Update --- .idea/misc.xml | 2 +- .idea/vcs.xml | 6 +++ .../lancaster/auditor/BallotVerifyActivity.kt | 5 +- .../uk/ac/lancaster/auditor/MainActivity.kt | 4 -- .../auditor/barcode/BarcodeScanActivity.kt | 46 ++++++++++++++++++- 5 files changed, 53 insertions(+), 10 deletions(-) create mode 100644 .idea/vcs.xml diff --git a/.idea/misc.xml b/.idea/misc.xml index 99202cc..c0f68ed 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -25,7 +25,7 @@ - + diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/java/uk/ac/lancaster/auditor/BallotVerifyActivity.kt b/app/src/main/java/uk/ac/lancaster/auditor/BallotVerifyActivity.kt index fffd08e..cf6b43c 100644 --- a/app/src/main/java/uk/ac/lancaster/auditor/BallotVerifyActivity.kt +++ b/app/src/main/java/uk/ac/lancaster/auditor/BallotVerifyActivity.kt @@ -16,9 +16,8 @@ class BallotVerifyActivity : AppCompatActivity() { val extras = intent.extras if (extras != null) { val ballotHandle = extras.getString("ballotHandle") - val myWebView: WebView = findViewById(R.id.webview) - // myWebView.loadUrl("http://127.0.0.1:8000/event/audit?handle=$ballotHandle") - myWebView.loadUrl("https://en.wikipedia.org/") + val myWebView: WebView = findViewById(R.id.webview) + myWebView.loadUrl("http://elections.lancaster.ac.uk:8000/event/audit?handle=$ballotHandle") myWebView.settings.javaScriptEnabled = true } diff --git a/app/src/main/java/uk/ac/lancaster/auditor/MainActivity.kt b/app/src/main/java/uk/ac/lancaster/auditor/MainActivity.kt index 92ca00e..74c4a2e 100644 --- a/app/src/main/java/uk/ac/lancaster/auditor/MainActivity.kt +++ b/app/src/main/java/uk/ac/lancaster/auditor/MainActivity.kt @@ -4,13 +4,9 @@ import android.content.Intent import android.os.Bundle import android.support.v7.app.AppCompatActivity import android.widget.Button -import android.widget.TextView import uk.ac.lancaster.auditor.barcode.BarcodeScanActivity class MainActivity : AppCompatActivity() { - - private lateinit var mResultTextView: TextView - override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) diff --git a/app/src/main/java/uk/ac/lancaster/auditor/barcode/BarcodeScanActivity.kt b/app/src/main/java/uk/ac/lancaster/auditor/barcode/BarcodeScanActivity.kt index d9eef74..4e7037a 100644 --- a/app/src/main/java/uk/ac/lancaster/auditor/barcode/BarcodeScanActivity.kt +++ b/app/src/main/java/uk/ac/lancaster/auditor/barcode/BarcodeScanActivity.kt @@ -2,10 +2,14 @@ package uk.ac.lancaster.auditor.barcode import android.content.Intent import android.os.Bundle +import android.os.Environment import android.support.v7.app.AppCompatActivity +import android.util.Base64 import android.util.Log import android.widget.Button import android.widget.TextView +import java.io.File +import java.io.FileWriter import com.google.android.gms.common.api.CommonStatusCodes import com.google.android.gms.vision.barcode.Barcode import uk.ac.lancaster.auditor.BallotVerifyActivity @@ -33,12 +37,50 @@ class BarcodeScanActivity : AppCompatActivity() { if (resultCode == CommonStatusCodes.SUCCESS) { if (data != null) { val barcode = data.getParcelableExtra(BarcodeCaptureActivity.BarcodeObject) - val p = barcode.cornerPoints mResultTextView.text = barcode.displayValue + val handle = barcode.displayValue.split(";")[0] + val hmac = String(Base64.decode(barcode.displayValue.split(";")[1], Base64.DEFAULT)) + + // save the ballot + if (Environment.getExternalStorageState() == Environment.MEDIA_MOUNTED) { + val dir = File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS), "ballots") + if (!dir?.mkdirs()) { + Log.e(LOG_TAG, "Directory not created") + } + + val ballotFile = File(dir, "$handle.ballot") + if (ballotFile.exists()) { + ballotFile.delete() + } + + try { + val out = FileWriter(ballotFile) + out.write(handle) + out.flush() + out.close() + } catch (e: Exception) { + e.printStackTrace() + } + + val hmacFile = File(dir, "$handle.hmac") + if (hmacFile.exists()) { + hmacFile.delete() + } + + try { + val out = FileWriter(hmacFile) + out.write(hmac) + out.flush() + out.close() + } catch (e: Exception) { + e.printStackTrace() + } + + } //if some test of the QR = ballot handle val intent = Intent(baseContext, BallotVerifyActivity::class.java) - intent.putExtra("ballotHandle", barcode.displayValue) + intent.putExtra("ballotHandle", handle) startActivity(intent) } else mResultTextView.setText(R.string.no_barcode_captured)