X-Git-Url: http://www.average.org/gitweb/?p=YkNeoCR.git;a=blobdiff_plain;f=src%2Forg%2Faverage%2Fnfcauthcr%2FCheck.java;h=eaf804d25a25353345e535ab5aeda8672830bae3;hp=f65ae1ba034536692c5ba0be8c216e329bac146f;hb=604d2e2d726b0af2d9581bb3161e0de13156caba;hpb=eed939e04ff795ee6e5fbfd0297c26c6996a2fd9 diff --git a/src/org/average/nfcauthcr/Check.java b/src/org/average/nfcauthcr/Check.java index f65ae1b..eaf804d 100644 --- a/src/org/average/nfcauthcr/Check.java +++ b/src/org/average/nfcauthcr/Check.java @@ -1,60 +1,68 @@ package org.average.nfcauthcr; -import android.app.Activity; -import android.app.AlertDialog; +import android.app.Service; import android.app.PendingIntent; -import android.content.DialogInterface; import android.content.Intent; import android.content.IntentFilter; +import android.content.SharedPreferences; +import android.content.SharedPreferences.Editor; import android.nfc.NfcAdapter; import android.nfc.Tag; import android.nfc.TagLostException; import android.nfc.tech.IsoDep; +import android.os.Binder; +import android.os.IBinder; +import android.preference.PreferenceManager; import android.util.Log; import android.widget.Toast; +import org.average.nfcauthcr.CheckConnector; import org.average.nfcauthcr.YkNeo; import org.average.nfcauthcr.CRException; -public class Check extends Activity { +public class Check extends Service { private final String TAG = getClass().getName(); - private AlertDialog swipeDialog; + private final CheckConnector checkConnector = new CheckConnector(); + private SharedPreferences prefs; + private int startId; private PendingIntent tagIntent; @Override - protected void onResume() { - super.onResume(); - Log.v(TAG, "Starting the work"); + public void onCreate() { + Log.v(TAG, "Created"); + prefs = PreferenceManager.getDefaultSharedPreferences(this); + } - Intent intent = getIntent(); - setResult(RESULT_CANCELED); - if (swipeDialog != null) { - swipeDialog.dismiss(); - swipeDialog = null; - } - int slot = intent.getIntExtra("slot", -1); + @Override + public int onStartCommand (Intent intent, int flags, int startId) { + Log.v(TAG, "Starting service"); + this.startId = startId; + int slot = prefs.getInt("slot_number", -1); if (slot > 0) { - swipeDialog = makeDialog(); - swipeDialog.show(); enableDispatch(slot); + } else { + stopSelf(startId); } + return START_NOT_STICKY; } @Override - protected void onPause() { - super.onPause(); - Log.v(TAG, "Finished the work"); + public IBinder onBind(Intent intent) { + Log.v(TAG, "Binding"); + checkConnector.setService(this); + return checkConnector; + } - if(swipeDialog != null) { - swipeDialog.dismiss(); - swipeDialog = null; - } + @Override + public void onDestroy() { + Log.v(TAG, "Finished the run"); disableDispatch(); } - public void onNewIntent(Intent intent) { + @Override + protected void onNewIntent(Intent intent) { Log.v(TAG, "NFC Intent arrived"); int slot = intent.getIntExtra("slot", -1); byte[] challenge = intent.getByteArrayExtra("challenge"); @@ -76,19 +84,6 @@ public class Check extends Activity { finish(); } - 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) { - finish(); - } - }); - return builder.create(); - } - private void enableDispatch(int slot) { Intent intent = getIntent(); intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);