summaryrefslogtreecommitdiffstats
path: root/samples/browseable/CardReader/src/com.example.android.cardreader/CardReaderFragment.java
diff options
context:
space:
mode:
Diffstat (limited to 'samples/browseable/CardReader/src/com.example.android.cardreader/CardReaderFragment.java')
-rw-r--r--samples/browseable/CardReader/src/com.example.android.cardreader/CardReaderFragment.java109
1 files changed, 109 insertions, 0 deletions
diff --git a/samples/browseable/CardReader/src/com.example.android.cardreader/CardReaderFragment.java b/samples/browseable/CardReader/src/com.example.android.cardreader/CardReaderFragment.java
new file mode 100644
index 000000000..3f27e9b4c
--- /dev/null
+++ b/samples/browseable/CardReader/src/com.example.android.cardreader/CardReaderFragment.java
@@ -0,0 +1,109 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.example.android.cardreader;
+
+import android.app.Activity;
+import android.nfc.NfcAdapter;
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import com.example.android.common.logger.Log;
+
+/**
+ * Generic UI for sample discovery.
+ */
+public class CardReaderFragment extends Fragment implements LoyaltyCardReader.AccountCallback {
+
+ public static final String TAG = "CardReaderFragment";
+ // Recommend NfcAdapter flags for reading from other Android devices. Indicates that this
+ // activity is interested in NFC-A devices (including other Android devices), and that the
+ // system should not check for the presence of NDEF-formatted data (e.g. Android Beam).
+ public static int READER_FLAGS =
+ NfcAdapter.FLAG_READER_NFC_A | NfcAdapter.FLAG_READER_SKIP_NDEF_CHECK;
+ public LoyaltyCardReader mLoyaltyCardReader;
+ private TextView mAccountField;
+
+ /** Called when sample is created. Displays generic UI with welcome text. */
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ // Inflate the layout for this fragment
+ View v = inflater.inflate(R.layout.main_fragment, container, false);
+ if (v != null) {
+ mAccountField = (TextView) v.findViewById(R.id.card_account_field);
+ mAccountField.setText("Waiting...");
+
+ mLoyaltyCardReader = new LoyaltyCardReader(this);
+
+ // Disable Android Beam and register our card reader callback
+ enableReaderMode();
+ }
+
+ return v;
+ }
+
+ @Override
+ public void onPause() {
+ super.onPause();
+ disableReaderMode();
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ enableReaderMode();
+ }
+
+ private void enableReaderMode() {
+ Log.i(TAG, "Enabling reader mode");
+ Activity activity = getActivity();
+ NfcAdapter nfc = NfcAdapter.getDefaultAdapter(activity);
+ if (nfc != null) {
+ nfc.enableReaderMode(activity, mLoyaltyCardReader, READER_FLAGS, null);
+ }
+ }
+
+ private void disableReaderMode() {
+ Log.i(TAG, "Disabling reader mode");
+ Activity activity = getActivity();
+ NfcAdapter nfc = NfcAdapter.getDefaultAdapter(activity);
+ if (nfc != null) {
+ nfc.disableReaderMode(activity);
+ }
+ }
+
+ @Override
+ public void onAccountReceived(final String account) {
+ // This callback is run on a background thread, but updates to UI elements must be performed
+ // on the UI thread.
+ getActivity().runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ mAccountField.setText(account);
+ }
+ });
+ }
+}