From: Eugene Crosser Date: Sat, 4 May 2013 06:11:12 +0000 (+0400) Subject: Merge branch 'master' of ssh://git.average.org/~/NFCAuthCR X-Git-Url: http://www.average.org/gitweb/?p=YkNeoCR.git;a=commitdiff_plain;h=7382b20863e60aad30b9320f133773b71205f2d7;hp=-c Merge branch 'master' of ssh://git.average.org/~/NFCAuthCR --- 7382b20863e60aad30b9320f133773b71205f2d7 diff --combined src/org/average/nfcauthcr/Check.java index 36f3b1d,eaf804d..27a3d71 --- a/src/org/average/nfcauthcr/Check.java +++ b/src/org/average/nfcauthcr/Check.java @@@ -1,60 -1,68 +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,40 -84,6 +84,40 @@@ 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(); + } + +/* + + + + + + + + + + + + android.nfc.tech.IsoDep + + + +*/ + private void enableDispatch(int slot) { Intent intent = getIntent(); intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);