X-Git-Url: http://www.average.org/gitweb/?p=YkNeoCR.git;a=blobdiff_plain;f=src%2Forg%2Faverage%2Fnfcauthcr%2FEnroll.java;h=96fa3147b7ac79c8c8e44d0386a2c925959bd3fc;hp=4ca03a88bc4f9437cd2f837ceb12a820719f462c;hb=0c96e6ff75abc6adfa713c00963fd14f5de2f34c;hpb=604d2e2d726b0af2d9581bb3161e0de13156caba diff --git a/src/org/average/nfcauthcr/Enroll.java b/src/org/average/nfcauthcr/Enroll.java index 4ca03a8..96fa314 100644 --- a/src/org/average/nfcauthcr/Enroll.java +++ b/src/org/average/nfcauthcr/Enroll.java @@ -5,49 +5,24 @@ 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.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.nfcauthcr.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,8 +30,6 @@ 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 @@ -75,25 +48,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; @@ -110,24 +64,24 @@ public class Enroll extends Activity { public void onEnrollClicked(View view) { Log.v(TAG, "Enroll clicked"); if (slot > 0) { - runEnrollment(); + runEnrollment(slot); } else { showEnrollResult(R.string.need_slot); } } - public void runCallback(int rc, byte[] response) { - Log.v(TAG, "Got response"); + public void onActivityResult(int requestCode, int resultCode, + Intent intent) { + Log.v(TAG, "Got activity result"); waitingForResult = false; - if(swipeDialog != null) { - swipeDialog.dismiss(); - swipeDialog = null; - } - if (rc != 0) { - Log.v(TAG, "Error result code " + rc); + + if (resultCode != RESULT_OK) { + Log.v(TAG, "Error result code " + resultCode); return; } + byte[] challenge = intent.getByteArrayExtra("challenge"); Log.v(TAG, "Challenge is \"" + hex(challenge) + "\""); + byte[] response = intent.getByteArrayExtra("response"); Log.v(TAG, "Response is \"" + hex(response) + "\""); Editor editor = prefs.edit(); editor.putString("challenge", hex(challenge)); @@ -152,28 +106,15 @@ public class Enroll extends Activity { dialog.show(); } - private void runEnrollment() { + private void runEnrollment(int slot) { Random rng = new Random(); + byte[] challenge = new byte[63]; rng.nextBytes(challenge); Log.v(TAG, "Random challenge: " + hex(challenge)); + Intent crIntent = new Intent(this, QueryCrToken.class); + crIntent.putExtra("challenge", 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(); + this.startActivityForResult(crIntent, 0); } private String hex(byte[] a) {