X-Git-Url: http://www.average.org/gitweb/?p=YkNeoCR.git;a=blobdiff_plain;f=src%2Forg%2Faverage%2Fnfcauthcr%2FEnroll.java;h=3e012d29de524df8834ae1b129c2a025245592a6;hp=4ca03a88bc4f9437cd2f837ceb12a820719f462c;hb=edfc8d9f2aad0bd7c0810d9f67a67e3db4b266c0;hpb=604d2e2d726b0af2d9581bb3161e0de13156caba diff --git a/src/org/average/nfcauthcr/Enroll.java b/src/org/average/nfcauthcr/Enroll.java index 4ca03a8..3e012d2 100644 --- a/src/org/average/nfcauthcr/Enroll.java +++ b/src/org/average/nfcauthcr/Enroll.java @@ -1,53 +1,30 @@ -package org.average.nfcauthcr; +package org.average.ykneocr; import java.util.Random; import android.os.Bundle; import android.app.Activity; import android.app.AlertDialog; -import android.content.Context; -import android.content.ComponentName; +import android.preference.PreferenceManager; import android.content.Intent; -import android.content.ServiceConnection; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.content.DialogInterface; -import android.preference.PreferenceManager; +import android.text.Html; import android.util.Log; import android.view.View; import android.widget.TextView; import android.widget.RadioButton; -import org.average.nfcauthcr.Check; -import org.average.nfcauthcr.CheckConnector; +import org.average.ykneocr.QueryCrToken; public class Enroll extends Activity { private final String TAG = getClass().getName(); - private Enroll thisActivity = this; private static boolean waitingForResult = false; private static SharedPreferences prefs; private static int slot; - private AlertDialog swipeDialog; - private CheckConnector checkConnector; - private boolean mBound = false; - private byte[] challenge = new byte[63]; - - private ServiceConnection mConnection = new ServiceConnection() { - @Override - public void onServiceConnected(ComponentName className, - IBinder service) { - checkConnector = (CheckConnector) service; - checkConnector.setCaller(activity); - mBound = true; - } - - @Override - public void onServiceDisconnected(ComponentName arg0) { - mBound = false; - } - }; @Override protected void onCreate(Bundle savedInstanceState) @@ -55,14 +32,14 @@ public class Enroll extends Activity { super.onCreate(savedInstanceState); Log.v(TAG, "Starting"); prefs = PreferenceManager.getDefaultSharedPreferences(this); - Intent intent = new Intent(this, Check.class); - bindService(intent, mConnection, Context.BIND_AUTO_CREATE); } @Override protected void onResume() { super.onResume(); setContentView(R.layout.main); + TextView tv = (TextView)findViewById(R.id.info); + tv.setText(Html.fromHtml(getString(R.string.info))); slot = prefs.getInt("slot_number", -1); Log.v(TAG, "found saved slot value " + slot); RadioButton btn = null; @@ -75,25 +52,6 @@ public class Enroll extends Activity { if (btn != null) btn.setChecked(true); } - @Override - protected void onPause() { - super.onPause(); - Log.v(TAG, "Going inactive, try to stop"); - if (!waitingForResult) { - finish(); - } - } - - @Override - protected void onStop() { - super.onStop(); - Log.v(TAG, "Stop requested"); - if (mBound) { - unbindService(mConnection); - mBound = false; - } - } - public void onSlotSelectionClicked(View view) { Log.v(TAG, "Radio Button selected"); if (! ((RadioButton) view).isChecked()) return; @@ -106,80 +64,4 @@ public class Enroll extends Activity { editor.commit(); Log.v(TAG, "stored slot number " + slot); } - - public void onEnrollClicked(View view) { - Log.v(TAG, "Enroll clicked"); - if (slot > 0) { - runEnrollment(); - } else { - showEnrollResult(R.string.need_slot); - } - } - - public void runCallback(int rc, byte[] response) { - Log.v(TAG, "Got response"); - waitingForResult = false; - if(swipeDialog != null) { - swipeDialog.dismiss(); - swipeDialog = null; - } - if (rc != 0) { - Log.v(TAG, "Error result code " + rc); - return; - } - Log.v(TAG, "Challenge is \"" + hex(challenge) + "\""); - Log.v(TAG, "Response is \"" + hex(response) + "\""); - Editor editor = prefs.edit(); - editor.putString("challenge", hex(challenge)); - editor.putString("response", hex(response)); - editor.commit(); - showEnrollResult(R.string.enroll_success); - Log.v(TAG, "stored new challenge and response"); - } - - private void showEnrollResult(int messageid) { - AlertDialog.Builder builder = new AlertDialog.Builder(this); - builder.setTitle(R.string.enrollresult); - builder.setMessage(messageid); - builder.setPositiveButton(android.R.string.ok, - new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - if (!waitingForResult) { finish(); } - } - }); - AlertDialog dialog = builder.create(); - dialog.show(); - } - - private void runEnrollment() { - Random rng = new Random(); - rng.nextBytes(challenge); - Log.v(TAG, "Random challenge: " + hex(challenge)); - waitingForResult = true; - checkConnector.runEnroll(slot, challenge); - if (swipeDialog != null) swipeDialog.dismiss(); - swipeDialog = makeDialog(); - swipeDialog.show(); - } - - private AlertDialog makeDialog() { - AlertDialog.Builder builder = new AlertDialog.Builder(this); - builder.setTitle(R.string.challenging); - builder.setMessage(R.string.swipe); - builder.setOnCancelListener( - new DialogInterface.OnCancelListener() { - public void onCancel(DialogInterface dialog) { - Log.v(TAG, "unbind service FIXME"); - } - }); - return builder.create(); - } - - private String hex(byte[] a) { - StringBuilder sb = new StringBuilder(); - if (a == null) return ""; - for (byte b: a) sb.append(String.format("%02x", b&0xff)); - return sb.toString(); - } }