• Home
  • History
  • Annotate
  • only in /packages/apps/Nfc/src/com/
History log of /packages/apps/Nfc/src/com/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
5443a8f5b786bfc03633ea5821d95dffc856e3e8 20-Oct-2014 Martijn Coenen <maco@google.com> Don't scale Beam screenshot.

Bug: 18054535
Change-Id: I622ff02142c2f0dbab72d3569dad2a29267426a8
ndroid/nfc/SendUi.java
672cb7036e219e260ba97f025c70e59728e261d6 15-Oct-2014 Andres Morales <anmorales@google.com> Merge "Changes for Beam memory" into lmp-dev
7130de731c333f58172fe2cc5f9223b7d1757c28 15-Oct-2014 Andres Morales <anmorales@google.com> Merge "Revert "Do Beam UI outside NFC persistent process"" into lmp-dev
0e9443859a375021c1e15dbd861ae9db1266db74 14-Oct-2014 Andres Morales <anmorales@google.com> Changes for Beam memory

1) Enable foreground trimming
2) Reduce screenshot resolution

Change-Id: I2ac6a6ae04e2c254d84c830624f2ab46d6f60d3a
ndroid/nfc/NfcApplication.java
ndroid/nfc/SendUi.java
65ba8d0d2adb1d1994a0c40d11e28d9ca85f50d9 14-Oct-2014 Andres Morales <anmorales@google.com> Revert "Do Beam UI outside NFC persistent process"

This reverts commit 018e05b5f55cd444835e8dd751b30eaaccd2c9ff.

Change-Id: Iec6610b7b08d003c81adbfd0ec368bd245e10330
ndroid/nfc/FireflyRenderer.java
ndroid/nfc/P2pEventManager.java
ndroid/nfc/SendUi.java
ndroid/nfc/SendUiService.java
b58a7494a893c957a8c04397eb28a4bf2fe1db54 10-Oct-2014 Martijn Coenen <maco@google.com> Disable service cache debug.

Bug: 17938118
Change-Id: I28ea3ad4b6f1b317493b3e67117b80952a04f478
ndroid/nfc/cardemulation/RegisteredServicesCache.java
1ed9fb37431002d39d9e34c6a73b3d0397827ef5 08-Oct-2014 Andres Morales <anmorales@google.com> Disable polling after KB pairing debounce timeout

KB requires presence checking for 300ms in order to enable
pairing mode. Currently, presence checking is immediately
disabled due to a previous patch that disables polling to prevent
retriggering the NFC tag in the keyboard.

Add a 300ms delay to pause pairing

Bug: 17875925
Change-Id: I583ec8ad9a96b17a83ee71bde18cf83b38df5a92
ndroid/nfc/handover/HandoverService.java
c54a22dc8e56e8bb9ba80b03292ddb48a917152e 07-Oct-2014 Andres Morales <anmorales@google.com> Remove dead code from NfcDispatcher

Bug:17883273
Change-Id: I260003cdadeb61fc1a7058303d0e3a1ac0cc9364
ndroid/nfc/NfcDispatcher.java
2e1b401f763d13b81f9a31e036706c6b54761026 26-Sep-2014 Martijn Coenen <maco@google.com> Merge "Fix bugs in AID prefix conflict resolution." into lmp-dev
0ad654d57bf17d73f2a7de5c44c9d69b7b450962 26-Sep-2014 Martijn Coenen <maco@google.com> Fix bugs in AID prefix conflict resolution.

- Should peek() the queue, not poll(), which
would remove an element from it - which is
not always the correct decision.

- Fixes an issue where we don't detect
a conflict between an app asking foreground
preference for an exact AID which conflicts
with a prefix AID of the payment default
(it would only detect exact AID conflicts).

- Fixes not assigning the resolved category
in a few scenarios.

Bug: 16517161
Change-Id: I3fae502a7c39a6e9e5bb056465653f08e73e754f
ndroid/nfc/cardemulation/CardEmulationManager.java
ndroid/nfc/cardemulation/PreferredServices.java
ndroid/nfc/cardemulation/RegisteredAidCache.java
00a2b5eb1aec50a69153e79c2f626ecc9cf7a60d 26-Sep-2014 Andres Morales <anmorales@google.com> Merge "Catch any exception from remote in unlock handler" into lmp-dev
4117349ab3a3f68b61706c30c0302e16bdd47661 24-Sep-2014 Andres Morales <anmorales@google.com> Catch any exception from remote in unlock handler

Bug:17643813
Change-Id: Iebbcde92489b4f5a232d7de5f35c93e47e8f8cb6
ndroid/nfc/NfcUnlockManager.java
3b6797c0d5fdd9449e956e4f74832241f30a98dd 24-Sep-2014 Andres Morales <anmorales@google.com> Change polling timeout to 35s from 20s

Change-Id: Iaea3ba70fdd388c107c89f2ac894c55f15e9e66c
ndroid/nfc/handover/HandoverService.java
5aa56b3a13bcf88758809b209cdfc57fbcb8be9c 23-Sep-2014 Andres Morales <anmorales@google.com> Merge "Do Beam UI outside NFC persistent process" into lmp-dev
bb6da4601c6e106f00b6525d2241ad785dd6019b 19-Sep-2014 Martijn Coenen <maco@google.com> Merge "Remove DBG logging." into lmp-dev
34b08809c9b186a5b02320d88a6a8305934f37e5 19-Sep-2014 Andres Morales <anmorales@google.com> Merge "Allow Wi-Fi tags in SetupWizard" into lmp-dev
018e05b5f55cd444835e8dd751b30eaaccd2c9ff 18-Sep-2014 Andres Morales <anmorales@google.com> Do Beam UI outside NFC persistent process

Saves ~100MB of memory

Bug:17490126
Change-Id: I1449b2cbf20ef1750f3d1f49826d02899bfbf9c8
ndroid/nfc/FireflyRenderer.java
ndroid/nfc/P2pEventManager.java
ndroid/nfc/SendUi.java
ndroid/nfc/SendUiService.java
410f4b955283be0187cd2933bdea07c66e101639 19-Sep-2014 Martijn Coenen <maco@google.com> Remove DBG logging.

Bug: 16517161
Change-Id: Idcf53bb7c6e2f68793467b1d4d25bb04068fa5c0
ndroid/nfc/NfceeAccessControl.java
ndroid/nfc/cardemulation/AidRoutingManager.java
ndroid/nfc/cardemulation/CardEmulationManager.java
ndroid/nfc/cardemulation/RegisteredAidCache.java
54a729ffe3ed13abc92cf143a751aeced7c6d8df 18-Sep-2014 Andres Morales <anmorales@google.com> Allow Wi-Fi tags in SetupWizard

Bug:17510608
Change-Id: I521b7734695cea96bbf2670d348ada610eda8a33
ndroid/nfc/NfcDispatcher.java
dbcee970ef57927e73c269f573d06e2f133a34c1 17-Sep-2014 Martijn Coenen <maco@google.com> Prefix registration fixes.

- If only one service for a prefix exists, make it default,
even if it's not the default app.
- Upper-case all incoming AIDs.
- Add @Override and missing break statements.

Bug: 16517161
Change-Id: I3e93ef740b39ae7c32ef6708df647f23f7a5b8bf
ndroid/nfc/NfcService.java
ndroid/nfc/cardemulation/RegisteredAidCache.java
b3ac715d78fd5c18a121447eced959438234dd25 16-Sep-2014 Martijn Coenen <maco@google.com> Merge "Support for AID prefix registration." into lmp-dev
31208d3ee36f583fd998c89508a3e93bb550cb29 30-Jul-2014 Martijn Coenen <maco@google.com> Support for AID prefix registration.

Bug: 16517161
Change-Id: I8bc58ac0e9fb6684a7ee22d712dbbd91279d4c30
ndroid/nfc/cardemulation/AidRoutingManager.java
ndroid/nfc/cardemulation/CardEmulationManager.java
ndroid/nfc/cardemulation/HostEmulationManager.java
ndroid/nfc/cardemulation/PreferredServices.java
ndroid/nfc/cardemulation/RegisteredAidCache.java
ndroid/nfc/cardemulation/RegisteredServicesCache.java
e276d3323d755d8bdaccd59a551332c064970215 15-Sep-2014 Andres Morales <anmorales@google.com> Fix build

typo after doing a rebase

Change-Id: If13cc4c1ab5f66f66b51dc8e464b35f6bb30239c
ndroid/nfc/NfcService.java
42c0f35783e2849de525cdbe743c95c197fdcf50 09-Sep-2014 Andres Morales <anmorales@google.com> Pause polling while pairing to peripheral.

Attempt at working around the NFC KB resetting itself
due to NFC discovery.

This prevents the tag from being picked up repeated times.
However, since it re-enables polling once it's done, it will
definitely end up disconnecting the KB if the device remains on it
after pairing has ended. This is because tapping an NFC handover
sticker for a paired device disconnects the device.

Leaving a timeout after paring succeeds before re-enabling
polling as a hacky bandaid solution.

Bug: 17401266
Change-Id: I981a4b2ad7ebf99ba8aa5106cc44f8ac7d899132
ndroid/nfc/NfcService.java
ndroid/nfc/handover/BluetoothPeripheralHandover.java
ndroid/nfc/handover/HandoverService.java
4db692d187951b1e9b92d5609509ad2fb85b8fa5 11-Sep-2014 Andres Morales <anmorales@google.com> Merge "Don't allow Beam for devices with DISALLOW_OUTGOING_BEAM" into lmp-dev
4fe7c276d3404559e97982a0a4e1ebf4bac815c6 10-Sep-2014 Martijn Coenen <maco@google.com> Merge "Reinstate RF field events." into lmp-dev
b42756d47f39774a07654f68af27bf3cc2c41511 04-Sep-2014 Andres Morales <anmorales@google.com> Don't allow Beam for devices with DISALLOW_OUTGOING_BEAM

Bug:17387303
Change-Id: Idb892839627315d08f010a705506d8668d8eb5dc
ndroid/nfc/NfcService.java
ndroid/nfc/P2pLinkManager.java
c19c065b6d0e1a088780c4dca27a1404d5926765 09-Sep-2014 Martijn Coenen <maco@google.com> Reinstate RF field events.

These are generic enough to maintain in AOSP,
and can still be protected by nfcee_access.xml
like they used to be.

Bug: 16653617
Change-Id: Id604fcc45d4263b24fea2f16ca6a24e25f8580c3
ndroid/nfc/DeviceHost.java
ndroid/nfc/NfcService.java
ndroid/nfc/NfceeAccessControl.java
cf76dfbf36ab621b9372527ddc8ca605e00d7784 05-Sep-2014 Andres Morales <anmorales@google.com> Allow BLE keyboard to be paired via NFC in SW

Bug:17397066
Change-Id: Id8a51e1c8285b263b74dce72c11b79b9f196a957
ndroid/nfc/NfcDispatcher.java
ndroid/nfc/NfcService.java
ndroid/nfc/handover/BluetoothPeripheralHandover.java
97c433e213ed7ccdbac300da7577fbb9dd6cd1fc 03-Sep-2014 Andres Morales <anmorales@google.com> Make Beam notifications public

This will prevent them from showing up as
'Nfc Service' at the lockscreen.

Bug: 17363401
Change-Id: I677bc4687d3850f023675ee1f839106d9a369558
ndroid/nfc/handover/HandoverTransfer.java
524777046191da324fc08881a103d0567cf91519 27-Aug-2014 Selim Cinek <cinek@google.com> Colored notifications

Bug: 17128331
Change-Id: If617221af122ac397bac4d00f0c9379af0b611ed
ndroid/nfc/handover/HandoverTransfer.java
bdd6b46cf24eb1da94262d4d1637d9c6fcf7bcd9 27-Aug-2014 Andres Morales <anmorales@google.com> Merge "Remove "woosh" SOUND_START on lockscreen" into lmp-dev
8c5388958a276c5934a5d31c4f413ba15d89e893 27-Aug-2014 Andres Morales <anmorales@google.com> Merge "Disable Beam for managed profiles" into lmp-dev
5c452dad7b24f28223414ce5e953bfcab782570e 21-Aug-2014 Andres Morales <anmorales@google.com> Disable Beam for managed profiles

Bug:17009804
Change-Id: I57e82216f8d54bc71b318c648c045378ccdbf5bb
ndroid/nfc/NfcService.java
ndroid/nfc/P2pLinkManager.java
1874eb9efb479641b9a52f78ecab3a8684016657 21-Aug-2014 Andres Morales <anmorales@google.com> Merge "Fix ConcurrentModificationException in NFC Unlock" into lmp-dev
bb62389c1a5003547e752ac030cfab373cb3d06f 21-Aug-2014 Andres Morales <anmorales@google.com> Merge "Fix crash in keyboard disconnection" into lmp-dev
9a5a6a76b1f05591b750f38006bf786f7b4207cc 21-Aug-2014 Andres Morales <anmorales@google.com> Merge "Remove old NFC unlock API" into lmp-dev
2101f59f6805c61e025e8a2d8486d0fd9f669670 21-Aug-2014 Andres Morales <anmorales@google.com> Merge "Fix issue where Beam is not cancelled" into lmp-dev
3e8b9a06407baa7c17e6f4c6bac20e0a3deaef31 21-Aug-2014 Andres Morales <anmorales@google.com> Remove "woosh" SOUND_START on lockscreen

Bug: 17178281
Change-Id: I76f010e66fa43d15ddbdc551d99e4bf3ab20f7b7
ndroid/nfc/NfcService.java
ndroid/nfc/ScreenStateHelper.java
c3f07b9b901e99f559fbd1f59eb54233cd889056 20-Aug-2014 Andres Morales <anmorales@google.com> Fix ConcurrentModificationException in NFC Unlock

Bug: 17161262
Change-Id: Ie2a065f0e69e7902a07d65d93542a95c3438ccb1
ndroid/nfc/NfcUnlockManager.java
2d5c0337f6f2e58b6d1b1d6a35c670c736eb0bd3 20-Aug-2014 Andres Morales <anmorales@google.com> Fix crash in keyboard disconnection

Bug:17157975
Change-Id: Icda30b73155a5ef7df6024c3de3f0974293777da
ndroid/nfc/handover/BluetoothPeripheralHandover.java
731fd8a52cec0dbe8d6ec6a4c7aa36ff52812112 19-Aug-2014 Andres Morales <anmorales@google.com> Remove old NFC unlock API

Bug: 16401635
Change-Id: I7ada54d46993aa381a89652e6d3eee77a42744c2
ndroid/nfc/NfcDispatcher.java
ndroid/nfc/NfcService.java
7aaafa209be6c1b01081cfb5ed1e9530082c7d8c 13-Aug-2014 Andres Morales <anmorales@google.com> BLE parser

Adds a parser for BLE devices and updates BT Handover
stack to support this mode.

Bug: 16007503
Change-Id: I153b1b65f9d27f5d1c5a645c445b339ef5f73157
ndroid/nfc/handover/BluetoothHeadsetHandover.java
ndroid/nfc/handover/BluetoothPeripheralHandover.java
ndroid/nfc/handover/ConfirmConnectActivity.java
ndroid/nfc/handover/HandoverManager.java
ndroid/nfc/handover/HandoverService.java
3ee12128efdf8f96d7921429b4b9e20b55943eb6 18-Aug-2014 Andres Morales <anmorales@google.com> Fix issue where Beam is not cancelled

Bug: 16388447
Change-Id: I47636376390de62a2e93cd91132df047610a05b9
ndroid/nfc/handover/HandoverService.java
ndroid/nfc/handover/HandoverTransfer.java
4a4d00190f82c3a7b7d5096bada7813ad423a80c 15-Aug-2014 Martijn Coenen <maco@google.com> Merge "Remove deprecated event logging." into lmp-dev
af05d4f78bca45a13f54444a67c1da09bdd599a3 15-Aug-2014 Andres Morales <anmorales@google.com> Fix bug where unlock handlers are not properly removed

Previously thought the casted INfcUnlockHandler
would be equivalent to the IBinder instance but
that was not the case.

Bug: 17054331
Change-Id: I6c441659b6e2b05e76495aa5d1d903e4159beec6
ndroid/nfc/NfcService.java
ndroid/nfc/NfcUnlockManager.java
73fa3d8e3d049718947ad26d339a85f566a90bf8 14-Aug-2014 Martijn Coenen <maco@google.com> Remove deprecated event logging.

Bug: 17033091
Change-Id: I3a096699339f4c150e14af5fdf34835653a571c3
ndroid/nfc/EventLogTags.logtags
ndroid/nfc/P2pLinkManager.java
0a71933181e4c45e85d0d88be54ea2c474a6f913 13-Aug-2014 Andres Morales <anmorales@google.com> Merge "Remove WFD Beam" into lmp-dev
24fc77fd89872c91bfd0c331645f0513ea05d99d 12-Aug-2014 Andres Morales <anmorales@google.com> Remove WFD Beam

Bug: 16687666
Change-Id: I60c64f003436416efc8622fcb7e40c4a7661d7c3
ndroid/nfc/handover/BluetoothHeadsetHandover.java
ndroid/nfc/handover/HandoverManager.java
ndroid/nfc/handover/HandoverSendFileInfo.java
ndroid/nfc/handover/HandoverService.java
ndroid/nfc/handover/wifi/GoogleRawFileTransferProtocol.java
ndroid/nfc/handover/wifi/ProgressReporter.java
ndroid/nfc/handover/wifi/WifiDirectReceiveHandler.java
ndroid/nfc/handover/wifi/WifiDirectSendHandler.java
ndroid/nfc/handover/wifi/WifiHandoverTransferProcessor.java
32cdfbf250f2611bb7624c13cfd7d111a847676e 12-Aug-2014 Andres Morales <anmorales@google.com> Don't play success sound after NFC unlock

Bug: 16896337
Change-Id: I846b17a0a89cd27e56163240655ac3d79c0cb5f7
ndroid/nfc/NfcDispatcher.java
ndroid/nfc/NfcService.java
876024ecfcbd702cfd4087addbfb2620c6ef2f5b 11-Aug-2014 Martijn Coenen <maco@google.com> Merge "Switch to Theme Material." into lmp-dev
a23c1d8ce8acb0d196ebb306dbda4aee4bcdee05 08-Aug-2014 Martijn Coenen <maco@google.com> Switch to Theme Material.

Bug: 15907600
Change-Id: I876b9e334a8cf3c7d886419507d17235e905d9e5
ndroid/nfc/ConfirmConnectToWifiNetworkActivity.java
ndroid/nfc/handover/ConfirmConnectActivity.java
34cfff42771acf6d889dd0e5fedc2c2313d9784a 04-Aug-2014 Andres Morales <anmorales@google.com> Only allow NDEF dispatch at lockscreen

Also add logging of lockscreen poll mask for debugging

Bug: 16547456
Change-Id: Ia6ba345d7d0bcd4ea108e32bcdfa86e87a574721
ndroid/nfc/NfcDispatcher.java
ndroid/nfc/NfcService.java
99bff0eda4fd066ddcad5f481cbd46bcbbd8c01f 31-Jul-2014 Andres Morales <anmorales@google.com> Merge "NFC Unlock api changes" into lmp-dev
16ee2fe0e0f6d2f811bd06c37cbd53c8b395e6d6 23-Jul-2014 Andres Morales <anmorales@google.com> NFC Unlock api changes

Add NfcUnlockHandler interface

Bug: 16401635
Change-Id: I6c31c67771c1b74d7100df56fa4d253f171a17a2
ndroid/nfc/NfcDispatcher.java
ndroid/nfc/NfcService.java
ndroid/nfc/NfcUnlockManager.java
ndroid/nfc/ScreenStateHelper.java
f5c979220fadb2c3ac0bca09e16d0d281ed20eb2 25-Jul-2014 Martijn Coenen <maco@google.com> Support for configuring SE listen technologies.

If the config file specified an SE to use, configure
its listen technologies correctly.

Also, fix commitRouting() to actually commit the
configuration.

Bug: 16517161
Change-Id: I1283fcb3f855c89a8b238be857bd56f06a14138f
ndroid/nfc/DeviceHost.java
ndroid/nfc/NfcService.java
6ac9196b397a5f3554fe1c416bc005bcef9ac520 24-Jul-2014 Andres Morales <anmorales@google.com> Don't make sad sound when unlocking device

Change-Id: Id9c6ac26abe63b50d5a4ef5ee0af0c71077aee18
ndroid/nfc/NfcDispatcher.java
555fe8532f5e177ded56dc2067e5e8ec4c418c24 29-Jul-2014 Martijn Coenen <maco@google.com> Merge "Fix Beam cancel." into lmp-dev
592b638032586300bd848df0bc4fdc2843b44a56 29-Jul-2014 Martijn Coenen <maco@google.com> Fix Beam cancel.

Bug: 16388447
Change-Id: Ie7f952ab6c7778c3cd380aed76282815e58a918f
ndroid/nfc/handover/HandoverTransfer.java
d4da55b9d4203ceff9d6747988a7b6a57dbde258 23-Jul-2014 Martijn Coenen <maco@google.com> Merge "Don't show Beam in share menu if turned off." into lmp-dev
90761aebea4faacb55a49aa31295fe8c19b2df9b 23-Jul-2014 Martijn Coenen <maco@google.com> Merge "Fix ForegroundUtils ignoring PID." into lmp-dev
c4ff3393f54403064b237349277cbf65f3277285 23-Jul-2014 Martijn Coenen <maco@google.com> Fix ForegroundUtils ignoring PID.

ForegroundUtils just kept track of UIDs and
ignored PIDs. However, some apps may have multiple
processes running with the same UID, causing transitions
like:

UID 10010 PID 1234 -> Foreground = true
UID 10010 PID 5678 -> Foreground = false

In this order this would cause us to remove UID 10010
from the foreground list, whereas it still has a PID
in the foreground.

Fixed this by keeping track of the foreground PIDs
per UID, and a UID is only considered to go to the background
if it doesn't have any PIDs left in the foreground.

Bug: 16514707
Change-Id: I160e4403a21d150497b88c336401dd8ddcb87082
ndroid/nfc/ForegroundUtils.java
ndroid/nfc/P2pLinkManager.java
a7a09dbc3e681de3054d61b544753cbb8406c649 21-Jul-2014 Martijn Coenen <maco@google.com> Don't show Beam in share menu if turned off.

Bug: 16381088
Change-Id: I4a52f1a2c8f1510816390e1dfe770a629c0ea045
ndroid/nfc/BeamShareActivity.java
ndroid/nfc/NfcService.java
ffeeef8e8d6d5f7c15f9f041d691cd9b64ddc58b 21-Jul-2014 Martijn Coenen <maco@google.com> Don't restart discovery if NFC was turned off.

disableInternal() didn't update the discovery state,
so when NFC was power cycled, it would try to restart
discovery instead of starting from scratch.

Also get rid of mDiscoveryEnabled, its state was already
captured in mCurrentDiscoveryParameters.

Bug: 16285426
Change-Id: If3d36dca3566993dc852abb233a1041cc1aff124
ndroid/nfc/NfcDiscoveryParameters.java
ndroid/nfc/NfcService.java
7b3dd2df9b43ee013f24f7a64ec2e257b8200742 10-Jul-2014 Andres Morales <anmorales@google.com> Fix rogue printfs

Change-Id: I7d16c9bee4426612a4f45b04e4727b7938a1f28a
ndroid/nfc/handover/HandoverService.java
6c9c4cb63ae9ea8d614b0f23a6b1f0d664e730c3 03-Jul-2014 Martijn Coenen <maco@google.com> Merge "Clean up dynamic AID XML parsing."
f12b6d0b08563211ad7c5903330f454bdd1970bb 02-Jul-2014 Martijn Coenen <maco@google.com> Clean up dynamic AID XML parsing.

Change-Id: I20f953a893082d72099fd4624f1012769370fb25
ndroid/nfc/cardemulation/RegisteredServicesCache.java
bb02d46705215b9ed44fd19584c8a9b8f6f6268c 02-Jul-2014 Martijn Coenen <maco@google.com> Validate AIDs on incoming Binder calls.

In case direct callers try to input malformed
AIDs.

Change-Id: Ic3d3ee374f25b5b675a218680c0ed450f7f93f2c
ndroid/nfc/cardemulation/RegisteredServicesCache.java
7713ef16cce6989d21a8a8e4746837e291485526 02-Jul-2014 Martijn Coenen <maco@google.com> Merge "Validate AIDs on incoming Binder calls."
b9f73b675b067817a0a5c93cda14fe37e3ddb323 02-Jul-2014 Martijn Coenen <maco@google.com> Merge "Prevent foreground app from grabbing AIDs."
ec320fcdca13ec061a95f7df1a494917865d03e4 02-Jul-2014 Martijn Coenen <maco@google.com> Merge "Obtain default and off-host destination routes from JNI."
ea8f37ee5376e296c3b67f57946b73e48ad88c5c 26-Jun-2014 Evan Chu <evanchu@broadcom.com> Obtain default and off-host destination routes from JNI.

The NFC service obtains default and off-host destination routes from
JNI, which in turn obtains them from the device configuration file.

Change-Id: I29f16d982e5675b12a86acb8b7cb99e234fbe222
ndroid/nfc/cardemulation/AidRoutingManager.java
4a3b0d475942690861d41e7d3ef88efd59335bcd 02-Jul-2014 Martijn Coenen <maco@google.com> Merge "Fix invoking Beam from share menu for multi-user."
34322b73c1e09907cb007e86bae77c744b338cd7 01-Jul-2014 Martijn Coenen <maco@google.com> Fix invoking Beam from share menu for multi-user.

Don't call into NfcService from Binder, but instead
through a newly added IPC call.

Also, get rid of deprecated ActivityManager calls
to determine foreground task, and use new
ForegroundUtils for that instead,

Bug: 15939863

Change-Id: If5a4b64de337abc36b1f1df30b4f612946e8496f
ndroid/nfc/BeamShareActivity.java
ndroid/nfc/ForegroundUtils.java
ndroid/nfc/NfcService.java
ndroid/nfc/P2pLinkManager.java
6384cc8d9aee9faea86346bc4514940840f99097 01-Jul-2014 Andres Morales <anmorales@google.com> Merge "Respect DISALLOW_CONFIG_WIFI in NFC-Wifi setup"
25ddbccd2704e05188005b614738bf8f0fafbb93 01-Jul-2014 Andres Morales <anmorales@google.com> Respect DISALLOW_CONFIG_WIFI in NFC-Wifi setup

Prevent users disallowed from configuring a network from
adding one via NFC+Wi-Fi setup.

Change-Id: Ib7767da80d0a6f8baec0fdfaa7db81389e4150b8
Bug: 15983110
ndroid/nfc/NfcWifiProtectedSetup.java
304a6342ee7e5620d3b50d988755c035f1686dc2 28-Jun-2014 Martijn Coenen <maco@google.com> Don't conditionally enable snooze.

We keep our devices in snooze by default now.

Change-Id: Ia84635031d60221da054448b8c81c5c48f1f821d
ndroid/nfc/DeviceHost.java
ndroid/nfc/NfcService.java
ea8bbf3e6a41b4ace768f0b2c74bdcf21e2aee64 27-Jun-2014 Martijn Coenen <maco@google.com> Prevent foreground app from grabbing AIDs.

With the new foreground / dynamic AID registration APIs,
the following scenario could happen:

1) User has configured device to not allow payment apps
to be overriden by foreground apps.
2) App X doesn't register any payment AIDs, and asks the
OS to receive foreground preference.
3) The OS grants this, because there are no payment AIDs
requested.
4) App X then calls the dynamic AID registration API to
register payment AIDs that conflict with the default
payment app.
5) The OS assigns the AIDs, recomputes the routing table,
and now routes these AIDs to APP X, ignoring user
preferences.

Bug: 15933251
Change-Id: I803794fac8d086d809a0bafa0b2eedfb91cce77a
ndroid/nfc/cardemulation/CardEmulationManager.java
ndroid/nfc/cardemulation/PreferredServices.java
ndroid/nfc/cardemulation/RegisteredServicesCache.java
43ee55848421c8af173f2887bddb9031d655fb12 26-Jun-2014 Martijn Coenen <maco@google.com> Merge "Refactoring NfcService routing logic."
c88f485b2756485673f29632d37648ab196e4a10 26-Jun-2014 Andres Morales <anmorales@google.com> Handover Cl fixes

-AOSP header
-remove debug output

Change-Id: Iedb40caf32fe95efe270cc21016b71901da06eb7
ndroid/nfc/handover/HandoverSendFileInfo.java
ndroid/nfc/handover/HandoverService.java
0799bcbe2469aa6a88c6cbdf0cdee5b50e1994f0 18-Dec-2013 Andres Morales <anmorales@google.com> Refactoring NfcService routing logic.

Currently, routing logic contains a lot of nested conditionals
and causes unnecessary work to occur, particularly in enabling
reader mode. This CL moves this logic to a state object that contains
all necessary information to transfer from one routing state to another,
leading to fewer calls to the NFCC, eliminating duplicate work, and
making the code more readable.

Change-Id: I6a8758e61cc0cbb015d618575da35386eadf7d3a
ndroid/nfc/DeviceHost.java
ndroid/nfc/NfcDiscoveryParameters.java
ndroid/nfc/NfcService.java
fbd59bd47482eb0784077ee3faf498d531497304 13-Feb-2014 Andres Morales <anmorales@google.com> Wifi-Direct connection handover for Beam.

Enables usage of a Wi-Fi direct channel for large
file transfer via Android Beam. Leaves BT as
default until b/15721122 is resolved.

Change-Id: I9b5e00b79b893d4d0208033241e4b1604bdc4d11
ndroid/nfc/NfcDispatcher.java
ndroid/nfc/handover/BluetoothOppHandover.java
ndroid/nfc/handover/HandoverManager.java
ndroid/nfc/handover/HandoverSendFileInfo.java
ndroid/nfc/handover/HandoverService.java
ndroid/nfc/handover/HandoverTransfer.java
ndroid/nfc/handover/MimeTypeUtil.java
ndroid/nfc/handover/PendingHandoverTransfer.java
ndroid/nfc/handover/wifi/GoogleRawFileTransferProtocol.java
ndroid/nfc/handover/wifi/ProgressReporter.java
ndroid/nfc/handover/wifi/WifiDirectReceiveHandler.java
ndroid/nfc/handover/wifi/WifiDirectSendHandler.java
ndroid/nfc/handover/wifi/WifiHandoverTransferProcessor.java
a30388eb7ddeabe1c9b85d49a65b82aac6a845ca 12-Apr-2014 Andres Morales <anmorales@google.com> Fix duplicate tag dispatch after NFC triggered unlock

Since we allowed the tag to continue dispatch after unlock
as well as reenable discovery when the phone is unlocked
the tag used for unlock gets processed twice.

This patch adds logic to ensure the tag gets processed only
once.

Change-Id: Ie42bffb5ec302b68013e6bf1c1104db01e96e79f
ndroid/nfc/DeviceHost.java
ndroid/nfc/NfcService.java
b93696df22fa393e051b4668195482cfca9a2319 20-Jun-2014 Andres Morales <anmorales@google.com> Merge "Adding NFC Trustlet"
28a49f0de26c4cc6f0b8c30dc67bebcb1a3110b6 20-May-2014 Andres Morales <anmorales@google.com> Adding NFC Trustlet

Exposing calls to register a lockscreen dispatch service.

Change-Id: I7feaeef3b6b9abd090d8c5e905c32ec7bff8063a
ndroid/nfc/NfcDispatcher.java
ndroid/nfc/NfcService.java
5f46ed88ca42cbe7a8930421775d4b8d69f4aaf6 19-Jun-2014 RoboErik <epastern@google.com> Fix build break

switch NFC over to the correct APIs instead of hidden apis.

Change-Id: Id8f99b93aad023f1f99e39ff66275c11e79c1535
ndroid/nfc/handover/BluetoothHeadsetHandover.java
61d3ac07ae9be54f1437f96c9aba612fd11b46ff 19-Jun-2014 Andres Morales <anmorales@google.com> Merge "Only unregister onDestroy, not onStop"
662808792fad65e777a91dfaf79c87f062677033 19-Jun-2014 Andres Morales <anmorales@google.com> Only unregister onDestroy, not onStop

Fixes issue when Wi-Fi tags are used in
the lockscreeen.

Change-Id: I56b828f054ffdadc67a3edcbe6bdabba7e2747e4
ndroid/nfc/ConfirmConnectToWifiNetworkActivity.java
77c513146427bc51db8245b89022057520a55ceb 12-Jun-2014 Martijn Coenen <maco@google.com> Correct SNEP REQUEST REJECT constant.

The constant was never used on the receiving side,
so existing devices shouldn't have any issues with
this change.

Reported by Evan Chu <evanchu@broadcom.com>

Change-Id: I652f752ec8722a1aaeaad9f483d7ee2f890aa26b
ndroid/nfc/snep/SnepMessage.java
08b1547d4b59c8c8fdf215bea870d20608fa71cf 15-Jan-2014 Evan Chu <evanchu@broadcom.com> Close the TapAgainDialog during off-host HCE transaction.

The TapAgainDialog shall be closed when an off-host HCE transaction
occurs.

Change-Id: Id066824fe4186088828ebace2d5a39f574e1f237
ndroid/nfc/cardemulation/HostEmulationManager.java
27382be352460d4d73fffcebe364e71a4a6e4e75 31-May-2014 Martijn Coenen <maco@google.com> Allow volume keys to complete Beam.

Change-Id: Ie167978a0cb77c967c18576458795ab87175309b
ndroid/nfc/SendUi.java
a4b6c330b3b947fbdfbd1314e33356aa6020e8a1 29-May-2014 Martijn Coenen <maco@google.com> am 73054848: Merge "Disable HCE debug logging." into lmp-preview-dev

* commit '73054848eade2364a4b87fcfd11635440f875471':
Disable HCE debug logging.
2a4a7a41a817932569d2052116b8a8c2e5a368f5 29-May-2014 Martijn Coenen <maco@google.com> am 8069265a: Initialize polling mode correctly.

* commit '8069265a99f0bf35bc305254cdf8eebf91708395':
Initialize polling mode correctly.
73054848eade2364a4b87fcfd11635440f875471 29-May-2014 Martijn Coenen <maco@google.com> Merge "Disable HCE debug logging." into lmp-preview-dev
e6f2dc6731bccc8ea01c8d9d03dd7e90f2c00312 28-May-2014 Martijn Coenen <maco@google.com> Disable HCE debug logging.

Bug: 15194292
Change-Id: Iae790a801cd0676fb14c07ff05e6a3dd49f652d6
ndroid/nfc/cardemulation/CardEmulationManager.java
ndroid/nfc/cardemulation/RegisteredAidCache.java
8069265a99f0bf35bc305254cdf8eebf91708395 28-May-2014 Martijn Coenen <maco@google.com> Initialize polling mode correctly.

Bug: 15259858
Change-Id: I154fcdc05d2a110038d677c6b6da00a30e1c51b3
ndroid/nfc/NfcService.java
5d907866a0985b4e98449837783207d4d8d1a584 28-May-2014 Martijn Coenen <maco@google.com> am 2f07e3e2: Re-compute preferred services on unregister.

* commit '2f07e3e221cb157918c198e4cd58d8242e897b68':
Re-compute preferred services on unregister.
2f07e3e221cb157918c198e4cd58d8242e897b68 24-May-2014 Martijn Coenen <maco@google.com> Re-compute preferred services on unregister.

Bug: 15195300
Change-Id: Ica093e0626545ff5d975f5327779c57bc948431a
ndroid/nfc/cardemulation/PreferredServices.java
f354330f2dfbc3baddea2b9162bebd8df8573fd5 23-May-2014 Martijn Coenen <maco@google.com> Merge "Goodbye secure element."
766d24ccb639ed3bf23f7fe918290df6d372e611 20-May-2014 Andres Morales <anmorales@google.com> Reverting NFC Unlock from Nfc application.

Will be re-added through TrustAgent.

Change-Id: Ic5c6c19a5c9227476af5b85eab64b1d7c7ad9cc4
ndroid/nfc/NfcDispatcher.java
ndroid/nfc/NfcService.java
ndroid/nfc/NfcUnlockManager.java
ndroid/nfc/NfcUnlockSettingsService.java
c8768e4b2ab114d227bd8af441d81525837f78cb 25-Mar-2014 Martijn Coenen <maco@google.com> Goodbye secure element.

I really liked you,
but everybody else wanted you too.
Maybe some day you'll be back,
connected to the host CPU.

Change-Id: If78bce7c7178a77919b8b1b64334909f4ff7e037
ndroid/nfc/DeviceHost.java
ndroid/nfc/NfcService.java
ndroid/nfc/NfceeAccessControl.java
da772582c17e3f5ffe36e4cab3e1ede3cba32060 26-Apr-2014 Martijn Coenen <maco@google.com> HCE/SE foreground support.

- Allow apps to specify a service they'd like to execute while in foreground.
- Refactored code that determines priority into PreferredServices
- Made a generic ForegroundUtils class that use IProcessObserver
to monitor foreground/background state transitions.
- Simplified logic in RegisteredAidCache that determines where an AID goes. Order is:
1) Foreground (if allowed to override)
2) Payment default app
3) Other.
- Added dump() to classes for easier debugging

Change-Id: Idf871ea91d10102b82b170a45b519be98adc9edf
ndroid/nfc/ForegroundUtils.java
ndroid/nfc/NfcPermissions.java
ndroid/nfc/cardemulation/AppChooserActivity.java
ndroid/nfc/cardemulation/CardEmulationManager.java
ndroid/nfc/cardemulation/DefaultRemovedActivity.java
ndroid/nfc/cardemulation/HostEmulationManager.java
ndroid/nfc/cardemulation/PreferredServices.java
ndroid/nfc/cardemulation/RegisteredAidCache.java
a2772e9423cc84c1ba6ad37abd9c4fe929c976ae 06-May-2014 Jeff Brown <jeffbrown@google.com> Fix build failure due to removal of onWindowDismissed().

Change-Id: Ie462dbfd50bba2b945a2814cd111df94f6d4b934
ndroid/nfc/SendUi.java
35b004b876ba3d10a8f204beeaa282289ad9b13b 24-Apr-2014 Martijn Coenen <maco@google.com> Fix NPE in case device doesn't support HCE.

Bug: 14294802
Change-Id: Ib17e13a51f29b87a74bb8015cad7d21fbe611ceb
ndroid/nfc/NfcService.java
c287fe46c9267e7ca2b3664b56def03cb006de57 23-Apr-2014 Martijn Coenen <maco@google.com> Merge "Support for dynamic AID registration."
e2cc1606e5334d24fd1107826decd43e91118be9 21-Apr-2014 Andres Morales <anmorales@google.com> Fix NPE in NFC wifi tag setup code

Change-Id: I5058f4111080e933bb6d28969f5015234dc7f75e
Bug-Id: 14163915
ndroid/nfc/NfcWifiProtectedSetup.java
af3e301d7820bc0a2447db8af16ab5335e6bd520 10-Apr-2014 Martijn Coenen <maco@google.com> Support for dynamic AID registration.

Change-Id: Iac786c395e2f46e54f74e6c643cd0b9414af333b
ndroid/nfc/NfcPermissions.java
ndroid/nfc/NfcService.java
ndroid/nfc/cardemulation/AidRoutingManager.java
ndroid/nfc/cardemulation/CardEmulationManager.java
ndroid/nfc/cardemulation/HostEmulationManager.java
ndroid/nfc/cardemulation/RegisteredAidCache.java
ndroid/nfc/cardemulation/RegisteredServicesCache.java
1ff4d6bceafb7c1c380c04d82e1c95843ae4dfb0 31-Jan-2014 Andres Morales <anmorales@google.com> Handle NFC Wifi configuration tags

Adds a hook in NfcDispatcher to attempt to configure
a network if the appropriate mime type is found on a tag.

Change-Id: Id53bc3124f54186115f4ed9f85eae4d289db1434
ndroid/nfc/ConfirmConnectToWifiNetworkActivity.java
ndroid/nfc/NfcDispatcher.java
ndroid/nfc/NfcWifiProtectedSetup.java
ndroid/nfc/cardemulation/TapAgainDialog.java
8b0c6cb5e7e05320058a8b9092d265f434a00091 05-Mar-2014 Will Haldean Brown <haldean@google.com> Add missing method to Window.Callback to fix build.

Change-Id: Ifed4fbee1aa39708f75a942f927425faeb73637e
ndroid/nfc/SendUi.java
9340b42304a512cb8fe9f4c068ba1b908876fb10 07-Jan-2014 Martijn Coenen <maco@google.com> Android Beam direct invoke / share menu invoking.

This change allows Android Beam to be invoked
directly from an application.

Additionally, it adds handling for the ACTION_SEND
intent that is launched by various apps when using the
share menu. This will cause Android Beam to be shown
as an option in share menus. There's some logic needed
that translates the data in an ACTION_SEND intent to
either NDEF message or an Uri that can be shared using
handover.

Finally, the Beam UI code has been modified to instantiate
a proper window, in order for us to catch the back key
event to be able to back out of the Beam animation
(this wasn't possible previously).

Bug: 5134061
Change-Id: I9cbfc50109bb497973bae177c67d920f6f990789
ndroid/nfc/BeamShareActivity.java
ndroid/nfc/NfcService.java
ndroid/nfc/P2pEventManager.java
ndroid/nfc/P2pLinkManager.java
ndroid/nfc/SendUi.java
ndroid/nfc/handover/BluetoothOppHandover.java
a1e95d30dbe8dad0a8bb333b4ca17c009fc34e2f 04-Feb-2014 Andres Morales <anmorales@google.com> Revert "Refactoring NfcService routing logic."

This reverts commit 80e61a46c0541471ef01a9d3c91570139336bcff.

Change-Id: I0b4fc471a3dae22c4d732b1c002f51a412c2c121
ndroid/nfc/DeviceHost.java
ndroid/nfc/NfcDiscoveryParameters.java
ndroid/nfc/NfcService.java
ndroid/nfc/NfcUnlockManager.java
80e61a46c0541471ef01a9d3c91570139336bcff 18-Dec-2013 Andres Morales <anmorales@google.com> Refactoring NfcService routing logic.

Currently, routing logic contains a lot of nested conditionals
and causes unnecessary work to occur, particularly in enabling
reader mode. This CL moves this logic to a state object that contains
all necessary information to transfer from one routing state to another,
leading to fewer calls to the NFCC, eliminating duplicate work, and
making the code more readable.

Change-Id: I4c451cb96ed27954fe2e6e7e7704643f3f3456a6
ndroid/nfc/DeviceHost.java
ndroid/nfc/NfcDiscoveryParameters.java
ndroid/nfc/NfcService.java
ndroid/nfc/NfcUnlockManager.java
27ee85a3b0f4aaefad5df7d1f183d0edb0aac1e2 10-Jan-2014 Martijn Coenen <maco@google.com> am 29704177: am 83ed31f9: am cefd8667: am 856ea96f: Merge "HCE: Stop routing AIDs for non-default payment services."

* commit '297041772fc814238015af3e0ba830425637f074':
HCE: Stop routing AIDs for non-default payment services.
aead72765abe07bb353817750edffac987b7aa64 09-Jan-2014 Martijn Coenen <maco@google.com> HCE: Stop routing AIDs for non-default payment services.

The logic implemented in KitKat would still route AIDs
for non-default payment services:
1) If there was no AID overlap at all, it would route
AIDs and not ask for any confirmation.
2) If there was AID overlap, it would route AID but
ask the user to confirm to deviate from the default.

In practice this logic is tricky in the transition
scenario we're in, where existing secure-element
based apps may not register their AIDs. This would
cause the conflict-detection mechanism to fail, and
inconsistent behavior to occur.

With this change, only the AIDs of the default selected
payment service are routed. All non-default payment
services won't have their AIDs routed, independent of whether
they are conflicting with the default or not.

Change-Id: Ibc588d7c81f0478a71021064bd63f5f6c91bd2fe
ndroid/nfc/cardemulation/RegisteredAidCache.java
9c2511dcb49d1b6eddd8896e0ad63bb31ed60455 08-Jan-2014 Martijn Coenen <maco@google.com> am 2c84e6a2: am 490580fa: am 1627abcb: am e852b28f: Merge "Fix NPE in RegisteredAidCache"

* commit '2c84e6a2288eb9897c21787a1e98d6f2a72e4011':
Fix NPE in RegisteredAidCache
64470276dd9fbd2676bb6a9fcf554e202a2e1c07 26-Dec-2013 Yuka Anami <yuka.x.anami@sonymobile.com> Fix NPE in RegisteredAidCache

If the specified AID is not matched to any of mAidCache's keys,
the HashMap returns null and then NullPointerException occurs.

Change-Id: I0d97aab0e47a6c6e7cbdb2426173038f4194c457
ndroid/nfc/cardemulation/RegisteredAidCache.java
e5ad3d5247c17adbc07eebfd8b46b9076e8aa2c2 16-Dec-2013 Andres Morales <anmorales@google.com> Merge "Expose snooze mode config and polling modes in java layer"
d2604c0544f7bc26e5b2407f0215cccfffedae2c 11-Dec-2013 Andres Morales <anmorales@google.com> Expose snooze mode config and polling modes in java layer

Change-Id: I3a604fb4260a1e99e6aa40189e999996d5947ed4
ndroid/nfc/DeviceHost.java
ndroid/nfc/NfcService.java
ndroid/nfc/NfcUnlockManager.java
ndroid/nfc/NfcUnlockSettingsService.java
ndroid/nfc/P2pLinkManager.java
1a0e18c0ba2236275fdc53a01adcf8d09b185c19 13-Dec-2013 Martijn Coenen <maco@google.com> Fix Beam notification flashing.

Bug: 8085104
Change-Id: Ia147bb827d2b17a64d716f2ae1252971b55ee851
ndroid/nfc/handover/HandoverTransfer.java
d89216c9b1f9271edb00a5d96756557e4faf3fb4 13-Dec-2013 Martijn Coenen <maco@google.com> Fix SNEP wrongly sending CONTINUE.

Our SNEP server implementation fetches a first
blob of data of size MIU. If that first blob size
is smaller than the total data size, we send a
SNEP CONTINUE command, to indicate to the remote
it can continue.

The bug is though that instead of using the local
MIU (which is really how many bytes we could read),
we use the remote MIU. This causes us to wrongly
send CONTINUE for large payloads that actually
fit in the local MIU but not in the remote MIU.

Bug: 9323533
Change-Id: I12d6b4706995306a326a0d5fec415ee06726dae6
ndroid/nfc/snep/SnepServer.java
4309f9c7c0097bdd95cf791eef78700b106dec21 15-Nov-2013 Andres Morales <anmorales@google.com> Add NFC unlock to NFC Service

Change-Id: Ie065742a6f2ffe8ddcfe141a56bea16b40486124

Fix imports

Change-Id: I389d8ecba447d1eb0bd15a74709dc6c7eae99a2c
ndroid/nfc/NfcDispatcher.java
ndroid/nfc/NfcPermissions.java
ndroid/nfc/NfcService.java
ndroid/nfc/NfcUnlockManager.java
ndroid/nfc/NfcUnlockSettingsService.java
ndroid/nfc/ScreenStateHelper.java
dba891595bc0bbcb8f0810b4d014e935aa1955c5 23-Oct-2013 Martijn Coenen <maco@google.com> HCE: Fix potential crash and handle Android AID.

For new "default route" CTS test. Also, fix
a potential crash for starting off-host services
and check that HCE services have declared the
NFC permission.

Bug: 10681671
Change-Id: If86d9820d6eef5a0661be92be67168d5f81ddc64
ndroid/nfc/cardemulation/HostEmulationManager.java
ndroid/nfc/cardemulation/RegisteredServicesCache.java
341b2c02da8b4d2a681f3fbcc5657921ad421e32 07-Oct-2013 Martijn Coenen <maco@google.com> Disable HCE debug logging.

But add some code to dump information about the
HCE service/AID cache in bugreports.

Bug: 11142134
Change-Id: I7387748bcf93e92ab2f25bc307941cdeccaca4ef
ndroid/nfc/NfcService.java
ndroid/nfc/cardemulation/AidRoutingManager.java
ndroid/nfc/cardemulation/RegisteredAidCache.java
ndroid/nfc/cardemulation/RegisteredServicesCache.java
43dc7d3d2160c5fbd063e27c2810b87f4626e75f 07-Oct-2013 Martijn Coenen <maco@google.com> Fix NPE in NfcService.

Bug: 11104960
Change-Id: Ie068d2bbbed92165abd6afc685727c9fc4aabd12
ndroid/nfc/NfcService.java
8d154680537afa5242edeb98c8f414d6186558cf 04-Oct-2013 Martijn Coenen <maco@google.com> Increase reader mode pull duration.

Also fixed a bug where gActivated is not
properly reset (scenario: turn NFC off
while doing P2P/reader) and moved some
logs to DBG. Will flick the DBG switch
later.

Bug: 10852675
Change-Id: If115ab162ddc4a080166f00cdf5e95ed4da70642
ndroid/nfc/cardemulation/RegisteredAidCache.java
5b60927762b8512622e5a1d53b93a4b3b49acba2 01-Oct-2013 Martijn Coenen <maco@google.com> Notify NfcService on NFA_DEACTIVATED_EVT.

This event comes when the remote puts us to sleep;
we should notify NfcService in this scenario as well,
so that NfcService in turn can notify HCE applications.

Bug: 10681671
Change-Id: Ice7f33c3385d40793df6f2c5c900ff6d4e7640f3
ndroid/nfc/cardemulation/RegisteredAidCache.java
efb7a3df560585994cebd40fcf5ffbc864f8c358 01-Oct-2013 Martijn Coenen <maco@google.com> Make CardEmulation APIs work even if NFC is off.

Previously we wouldn't index HCE services at all
if NFC was off. This created some weird dependency
that apps would have to check whether NFC was enabled
before being able to trust the APIs, and that could
result in tricky race conditions as well.

Bug: 11023618
Change-Id: I3cbcfcf43fe26d0d878fac75ece51c9e81f7220d
ndroid/nfc/NfcService.java
ndroid/nfc/cardemulation/RegisteredAidCache.java
06645f1a5dc19e01f61895797f7b4c2204ae7b62 27-Sep-2013 Martijn Coenen <maco@google.com> HCE: invalidate cache if passed in service unknown.

To fix a specific scenario where a service is enabled
using PackageManager.setComponentEnabledSetting(): in this
case, the ACTION_PACKAGE_CHANGED broadcast is delayed by
10 seconds, causing NfcService not to know about enabled
services until then.

This in turn could cause our "isDefault" APIs to return
incorrect results in the first 10 seconds after changing
the component state, because we do not know about the
newly enabled service yet.

Fix by invalidating the cache if we don't know about a
service passed in from API calls.

Bug: 10633674
Change-Id: I4c236002afc79464e0b41f3c6919541915020ba4
ndroid/nfc/NfcService.java
ndroid/nfc/cardemulation/RegisteredAidCache.java
a3b2c7944266cbd02afc08ce48ce8259d8a65019 25-Sep-2013 Martijn Coenen <maco@google.com> Latest HCE UX.

Use service description whenever we can.

Bug: 10862185
Bug: 10859925
Change-Id: I1e6f668bec0d2d2e4f96f803ba24ba58088836a3
ndroid/nfc/cardemulation/AppChooserActivity.java
ndroid/nfc/cardemulation/DefaultRemovedActivity.java
ndroid/nfc/cardemulation/HostEmulationManager.java
ndroid/nfc/cardemulation/RegisteredAidCache.java
ndroid/nfc/cardemulation/TapAgainDialog.java
f9366de7b3ad1ce90859d4194dacf13c0066926b 18-Sep-2013 Martijn Coenen <maco@google.com> Reject invalid AIDs.

Also, notify currently active service if an AID
has been selected on an off-host secure selement.
Clean up some TODO items as well.

Bug: 10817001
Change-Id: Ia6c0bb746d88add94464ed8c4339aa4aaf9d6c35
ndroid/nfc/NfcService.java
ndroid/nfc/cardemulation/HostEmulationManager.java
6a707e75739696dde62201047158913411e8cd81 12-Sep-2013 Martijn Coenen <maco@google.com> Fix NFCEE access on NCI devices.

Bug: 10690065
Change-Id: I4df41e3197ce8fe0b2fc3f017e78f66968d2692f
ndroid/nfc/cardemulation/AidRoutingManager.java
ndroid/nfc/cardemulation/RegisteredAidCache.java
dc304dadda013e383fdd1348b2a24bc6b3c9acac 06-Sep-2013 Martijn Coenen <maco@google.com> HCE: Latest UX designs, strings.

Also, close dialogs on screen off.

Bug: 10262585
Change-Id: Ida69636cc54a7575cc109c908992cf47fe95cb76
ndroid/nfc/cardemulation/AppChooserActivity.java
ndroid/nfc/cardemulation/HostEmulationManager.java
ndroid/nfc/cardemulation/TapAgainDialog.java
cb3427d06608e9827c164e662ffa360b9aa48579 10-Sep-2013 Martijn Coenen <maco@google.com> Merge "Remove support for legacy APIs." into klp-dev
8d57f1f5bd4ab7fba3c401d7e02fb46a54d3b931 04-Sep-2013 Martijn Coenen <maco@google.com> Remove support for legacy APIs.

Bug: 10550349
Change-Id: Ifa5c9893373a69b1561dfa72fbd5f9c268f8f66e
ndroid/nfc/cardemulation/HostEmulationManager.java
ndroid/nfc/cardemulation/RegisteredServicesCache.java
4f0baadcf2e85c0f50794517c19fc3f0d05dce08 04-Sep-2013 Martijn Coenen <maco@google.com> Fix BT headset pairing crash.

Ignore new pairing requests until the outstanding
one is done.

Bug: 10265451
Bug: 10265164
Change-Id: I5f3766c21f5be81371593161f9684ea9324ea317
ndroid/nfc/handover/HandoverService.java
3dd24ecefb71ce4f585faa002ba1054a0c6dbd06 04-Sep-2013 Martijn Coenen <maco@google.com> Implement reader mode API for NXP chipsets.

Bug: 10360259
Change-Id: I1339840ed900b73d3f9ae43e1a01b59c7e679f9e
ndroid/nfc/NfcService.java
31f39aee25964dad1038b7a9cc335d5a386113c8 03-Sep-2013 Martijn Coenen <maco@google.com> Changes for callback model of reader mode APIs.

Bug: 10360259
Change-Id: I41c47ce84aa18bce01f6fb1ebe280fac0ed79070
ndroid/nfc/DeviceHost.java
ndroid/nfc/NfcService.java
ndroid/nfc/P2pLinkManager.java
f5cd84c3a7ffb66196ab3c0745569da937d7533b 30-Aug-2013 Martijn Coenen <maco@google.com> Upgrade to new API changes.

Following API review. Also:
- Added support for pause/resume P2P in reader mode
- Fixed bug where we tried to route even when NFC was off,
causing lockups.

Bug: 10550349
Bug: 10552589
-

Change-Id: I48f6834386bd542bdf1b7f1a8b1072d8981b0915
ndroid/nfc/NfcService.java
ndroid/nfc/cardemulation/AppChooserActivity.java
ndroid/nfc/cardemulation/HostEmulationManager.java
ndroid/nfc/cardemulation/RegisteredAidCache.java
ndroid/nfc/cardemulation/RegisteredServicesCache.java
ndroid/nfc/cardemulation/TapAgainDialog.java
451ba48faa87d78bfbec0597ff06af1747cf6acb 29-Aug-2013 Martijn Coenen <maco@google.com> HCE: API updates, default handling, lock-screen.

- Use new selection mode APIs
- Fixed up default handling
- Check if service requires device unlock before dispatching
- Fixed isDefaultServiceForAid()
- Fixed a bug where we created two routing managers

Change-Id: Iba4a3ce7f599974ccedbf8d301cc46ff1e99c94e
ndroid/nfc/NfcService.java
ndroid/nfc/cardemulation/AidRoutingManager.java
ndroid/nfc/cardemulation/AppChooserActivity.java
ndroid/nfc/cardemulation/DefaultRemovedActivity.java
ndroid/nfc/cardemulation/HostEmulationManager.java
ndroid/nfc/cardemulation/RegisteredAidCache.java
ndroid/nfc/cardemulation/RegisteredServicesCache.java
ndroid/nfc/cardemulation/TapAgainDialog.java
c4e4277a71c70e96198cb760676ad3b40f9e0e3d 27-Aug-2013 Martijn Coenen <maco@google.com> Implement reader mode APIs.

Disable p2p/listen modes on request. Currently only
for NCI platforms, NXP will follow later.

Also, fixed some compiler warnings and a mem leak.

Bug: 10360259
Change-Id: Id13db24914adc43db62e055b66e0989e9cde2482
ndroid/nfc/DeviceHost.java
ndroid/nfc/NfcService.java
78976de08ad5d5f9d5fcba28f3ea82350907a782 15-Aug-2013 Martijn Coenen <maco@google.com> HCE UX: Display dialog on service failure indication.

Also:
- Refactor AID handling to separate class.
- Implement unHandled() call from service.
- Verify the service's identify by checking replyTo param
- Return 6F00 in case we can't parse an APDU for whatever reason.

Bug: 10262585
Change-Id: I1a3ccb9ae57107d68cf5923c3cf05bd224f93e4e
ndroid/nfc/NfcService.java
ndroid/nfc/cardemulation/AppChooserActivity.java
ndroid/nfc/cardemulation/HostEmulationManager.java
ndroid/nfc/cardemulation/RegisteredAidCache.java
ndroid/nfc/cardemulation/RegisteredServicesCache.java
a8aa07142ea0078d3ae4ae486e094e2f2f4ff732 27-Mar-2013 Evan Chu <evanchu@broadcom.com> Sync up with Broadcom JNI changes.

Patches contributed by Evan Chu<evanchu@broadcom.com>
and Paul Chaisson<pchaisson@broadcom.com>.

Bug: 10360038
Change-Id: I1402191406b08e097680f8c7f587f393f749184e
ndroid/nfc/P2pLinkManager.java
4358172f18871d58d5bc2050e4d9d0bf9bc2d5e5 10-Aug-2013 Martijn Coenen <maco@google.com> HCE: dialog when default app is removed

Plus some other stuff:
- Fix locking in AidRoutingManager
- Simplify default handling

Change-Id: I46ed2e645cdef9c2778ac7ae263f698391e3e22b
ndroid/nfc/NfcService.java
ndroid/nfc/cardemulation/AidRoutingManager.java
ndroid/nfc/cardemulation/DefaultRemovedActivity.java
ndroid/nfc/cardemulation/RegisteredServicesCache.java
ndroid/nfc/cardemulation/TapAgainDialog.java
ac91fe83c263fea3a3e38cf7fee54697259999f8 08-Aug-2013 Martijn Coenen <maco@google.com> Queue SELECT APDU in case a service was already bound.

Change-Id: I01bfe49d718767ae1087a58f310b683ffe7807d1
ndroid/nfc/cardemulation/HostEmulationManager.java
89c893312d524f50c47b0d32071f3de8631197f3 08-Aug-2013 Martijn Coenen <maco@google.com> HCE: permissions, OffHost services, payment service.

- Added permission and userId checks for all new
incoming binder calls.
- Started enumerating OffHostApduServies correctly,
dealing with the routing as we go.
- Fixed up HostEmulationManager logic to work with the
correct service; check if service is already bound.
- Persistently bind to payment service if one has been
selected as default by the user.
- Return 6A82 for AIDs that are not found.

Change-Id: I7b8121bec54b815d94b49747bc4f2bb00de26b36
ndroid/nfc/NfcService.java
ndroid/nfc/cardemulation/AidRoutingManager.java
ndroid/nfc/cardemulation/HostEmulationManager.java
ndroid/nfc/cardemulation/RegisteredServicesCache.java
62372fdecd77cc07db475e79e366e6864b44b956 07-Aug-2013 Martijn Coenen <maco@google.com> Invalidate HCE service cache upon user switch.

Change-Id: I022c15485798b164c6278e2abc9407da5d101e50
ndroid/nfc/NfcService.java
ndroid/nfc/cardemulation/RegisteredServicesCache.java
75f63db568f953e935e62cb3046d167b881979c8 07-Aug-2013 Martijn Coenen <maco@google.com> HCE: 1-time tap overrides, chooser/tap again.

- Added two dialogs for dealing with app selection
and asking the user to "Tap Again" once an app
has been selected.
- Logic for dealing with 1-time tap overrides and
defaults.

UX still to be finalized.

Change-Id: I10f9fed6ef8aa6255a88f6a518af9875068ddac4
ndroid/nfc/NfcService.java
ndroid/nfc/cardemulation/AppChooserActivity.java
ndroid/nfc/cardemulation/HostEmulationManager.java
ndroid/nfc/cardemulation/RegisteredServicesCache.java
ndroid/nfc/cardemulation/TapAgainDialog.java
f5a9550725ea1882b9e03d2e5f92c995d09cd84b 30-Jul-2013 Martijn Coenen <maco@google.com> Don't bind to handover service persistently.

Bug: 8870470
Change-Id: I084bdfb68452530ac8a8c124d1d703902c09847e
ndroid/nfc/handover/HandoverManager.java
ndroid/nfc/handover/HandoverService.java
ndroid/nfc/handover/HandoverTransfer.java
a0b908c58b5ab0d242ccc545d14573901774bd29 31-Jul-2013 Martijn Coenen <maco@google.com> More HCE work.

- Factor our helper class containing information about
(Off)HostApduServices to ApduServiceInfo.
- New BIND_NFC_SERVICE permission to protect implementing
services from other apps binding.
- Implement INfcCardEmulationService interface from
the framework APIs.
- Observe changes in settings for default apps in a
category.
- Single algorithm that resolves AIDs to a list of eligible
services, taking into account defaults as well. Result of
that algorithm feeds directly into the routing decisions.
- Removed old persisting code, everything is in Settings.Secure now.

Change-Id: I1840710f19435b079d20a4a41642b79fd03d1c76
ndroid/nfc/NfcService.java
ndroid/nfc/cardemulation/HostEmulationManager.java
ndroid/nfc/cardemulation/RegisteredServicesCache.java
a66225494f9c4b56acb8ad9f60f61e828283e5a2 26-Jul-2013 Martijn Coenen <maco@google.com> Merge "Update to use latest XML-grammar in framework."
717a8bdc43aa9328899df86cb523430466cf5baa 26-Jul-2013 Martijn Coenen <maco@google.com> Update to use latest XML-grammar in framework.

Also clean up a bit and get rid of some nasty dependencies.

Change-Id: I8fe5a787830a583f3e85e9ead1b002feed8de223
ndroid/nfc/cardemulation/HostEmulationManager.java
ndroid/nfc/cardemulation/RegisteredServicesCache.java
953c3dd151419d497205246d4bfa8a818d39d00a 25-Jul-2013 Martijn Coenen <maco@google.com> Fix NPE on turning off NFC.

Bug: 9998605
Change-Id: Iccc85ade4354308e34ef78250e0cad2ca18bafb3
ndroid/nfc/NfcService.java
695b6c1c8d7d36897017eb505f5f5e3b2b994b13 24-Jul-2013 Martijn Coenen <maco@google.com> Merge "HCE: Update XML grammar to reflect framework."
de5b2c60ecc66079f4122d2d5c9c6f952933cff7 24-Jul-2013 Martijn Coenen <maco@google.com> am 3b5a46f8: Fix license header on some files.

* commit '3b5a46f86f97d1624d82fa4c56ef175308e7dc65':
Fix license header on some files.
3b5a46f86f97d1624d82fa4c56ef175308e7dc65 23-Jul-2013 Martijn Coenen <maco@google.com> Fix license header on some files.

Change-Id: I65c18bbfdbdbffd2beb83ee645bfe2cfeec909ed
ndroid/nfc/NfcApplication.java
ndroid/nfc/handover/HandoverService.java
ndroid/nfc/handover/HandoverTransfer.java
ndroid/nfc/handover/PendingHandoverTransfer.java
a56a84a384db51809101e149d83bf41b5e198ca0 23-Jul-2013 Martijn Coenen <maco@google.com> HCE: Update XML grammar to reflect framework.

Also, keep sending SE broadcasts for now.

Change-Id: Ic960066f2374e7ecba1df89468dfc35f97d3ce2c
ndroid/nfc/NfcService.java
ndroid/nfc/cardemulation/RegisteredServicesCache.java
0a9487f8aad77ed5f1a8f142b690396446858247 23-Jul-2013 Martijn Coenen <maco@google.com> HCE: stop sending SE broadcasts on HCE-capable devices.

Change-Id: I5ac57adf20f09f97f18e8514167c6677cab8ff81
ndroid/nfc/NfcService.java
6493859b424f65af79e3e13835f7dfed38495c00 20-Jul-2013 Martijn Coenen <maco@google.com> HCE: use new platform APIs.

The service interface is now defined in the platform.

Change-Id: I6dbffed4d8185f437880912179f69b91e1a51cd9
ndroid/nfc/NfcService.java
ndroid/nfc/cardemulation/AidRoutingManager.java
ndroid/nfc/cardemulation/HostEmulationManager.java
ndroid/nfc/cardemulation/RegisteredAidCache.java
ndroid/nfc/cardemulation/RegisteredServicesCache.java
d53c2b599c73f7404b5a604be4d9a5449cafdd72 16-Jul-2013 Martijn Coenen <maco@google.com> HCE: Support dynamic routing changes.

- Routing table will now be dynamically updated as
HCE services are installed/removed/modified
- Layering and arch:
- RegisteredAidCache knows about which services want
which AIDs, and on what route.
- AidRoutingManager maintains the current state of the
AID routing table in the NFCC.
- HostEmulationManager is responsible for incoming
HCE transactions and resolving them to the correct
service.
- Fixed various bugs

Change-Id: I16327dfca96a9bd3fb5633c2e6b4247fe35ab8d6
ndroid/nfc/NfcService.java
ndroid/nfc/cardemulation/AidRoutingManager.java
ndroid/nfc/cardemulation/HostEmulationManager.java
ndroid/nfc/cardemulation/RegisteredAidCache.java
71ea8f23e1383f849293c3793ff7146e69459e9b 01-Jul-2013 Elliott Hughes <enh@google.com> am 9015ccfc: am 65468cb5: am 844501b2: Merge "Switch NFC over to the public StandardCharsets."

* commit '9015ccfcae497ab14dfac0ad8e1c1de3ee7acaa1':
Switch NFC over to the public StandardCharsets.
9015ccfcae497ab14dfac0ad8e1c1de3ee7acaa1 01-Jul-2013 Elliott Hughes <enh@google.com> am 65468cb5: am 844501b2: Merge "Switch NFC over to the public StandardCharsets."

* commit '65468cb547f654afbdb00182f3a9f3f509b0d08c':
Switch NFC over to the public StandardCharsets.
65468cb547f654afbdb00182f3a9f3f509b0d08c 01-Jul-2013 Elliott Hughes <enh@google.com> am 844501b2: Merge "Switch NFC over to the public StandardCharsets."

* commit '844501b273a9848da220910a5db5f535e42c167f':
Switch NFC over to the public StandardCharsets.
893bc90a71883f8d2bfc82818abbf21c9745efda 29-Jun-2013 Elliott Hughes <enh@google.com> Switch NFC over to the public StandardCharsets.

Change-Id: I9704a7a8e6b8e6e4c52f60e2704d69993ee8aa41
ndroid/nfc/NfcDispatcher.java
ndroid/nfc/P2pLinkManager.java
01e25fc622000e56425d27cbee32ee4f4f092edd 17-Jun-2013 Martijn Coenen <maco@google.com> Merge "Host-based card emulation."
825f3b96bd360f42158a25e5d6b09fc6f046ab10 12-Jun-2013 Martijn Coenen <maco@google.com> Properly dispatch "play key" into the system.

When pairing a Bluetooth headset, directly dispatch
Play KeyEvents to AudioService, to ensure that the
current active stack of registered MediaButtonReceivers
is honored.

Bug: 9389201
Change-Id: Idce1d28d684134cd8f69e2fb2304747c7b6b8fe8
ndroid/nfc/handover/BluetoothHeadsetHandover.java
9f8f6cf9c58405ecafe2d425801e6c14088db8c7 30-Apr-2013 Martijn Coenen <maco@google.com> Host-based card emulation.

Initial check-in that allows to build basic HCE apps:
- Introduced new RoutingManager, taking care of programming
the routing table to the NFCC.
- Added DeviceHost interfaces for adding/removing aids to
the routing table, and sending raw frames.
- On devices that have an eSE, the eSE is the default route.
- Removed routing code from SecureElement class.
- HostEmulationManager resolves and dispatches AIDs
routed to the host to an application service.
- Simple Messenger service interface for exchanging APDUs.
- RegisteredAidCache keeps a cache of AIDs that are registered
by Android applications, as well as their route.

TODO:
- Dynamic registration of AIDs.
- Dynamic updates of the routing table.
- AID conflict resolution.
- Allow apps to indicate AIDs present "off-host".
- Implement base-class HCE service in framework.
- Switch default route to host.

Change-Id: I7d7643770fcc848699810ec5443d0d9b81d85669
ndroid/nfc/DeviceHost.java
ndroid/nfc/NfcService.java
ndroid/nfc/cardemulation/HostEmulationManager.java
ndroid/nfc/cardemulation/RegisteredAidCache.java
2b4dc11f4508cdb662a8069cccf9f2273004a4c8 31-May-2013 Martijn Coenen <maco@google.com> Check for proper SE open return values on wipe.

Bug: 9227578
Change-Id: Iff9e9512ac4d8e25a287ce40fba7c2717b4419fa
ndroid/nfc/NfcService.java
2f61bcadb10697036a5ce5ad893607f5dcdcda9d 22-May-2013 Martijn Coenen <maco@google.com> Use top activity when determining foreground package.

If you have an activity stack where the base activity
belongs to a different package, NfcService would use
the wrong package for determining whether the current
foreground app is allowed to have an ndef message (callback) set.
This could cause Activity stacks like Settings -> Storage ->
Pictures & Videos -> Gallery to fail sending pictures.

Use the top activity instead.

Bug: 9072009
Change-Id: I32fbbea1423333117d2a0522eced98ecf9a758e7
ndroid/nfc/P2pLinkManager.java
5cb16e95ac80d931280d786f73ca4aebb3e8d743 21-May-2013 Martijn Coenen <maco@google.com> Merge "Broadcast LLCP events in debug builds." into jb-mr2-dev
96e8f30552ad5b420cc89b97ffdc486962701afa 21-May-2013 Martijn Coenen <maco@google.com> Broadcast LLCP events in debug builds.

Bug: 8839848
Change-Id: I01a18b3409da66ab1394c2c196a06a8749b9c72c
ndroid/nfc/NfcService.java
70fed93e7a684818495c6e27ab43fc05f7342926 11-May-2013 Martijn Coenen <maco@google.com> Use the right icon when sending pictures with Beam.

Bug: 8912227
Change-Id: I9731de68019a90a683b87582536ba7df2a351e49
ndroid/nfc/handover/HandoverTransfer.java
476ee8a64404b7ee042ba1a70400bcb1dd5ace10 26-Apr-2013 Martijn Coenen <maco@google.com> Fix more race conditions.

In the old NXP JNI:
- We can be in the process of discovering a tag/p2p target
when we try to configure discovery. In case ConfigureDiscovery
returns BUSY, don't immediately call abort(), but retry a few
times.
- Completely disable Tag/P2P discovery *before* opening a pipe
to the SMX. This avoids nasty races with opening the SMX
while a P2P/Tag device enters the field.

Bug: 8552749
Change-Id: I433a40c918373c661abda3bc40dd36db7b233245
ndroid/nfc/NfcService.java
7a499e775021bafefbe890d079e2a43f4a54482c 24-Apr-2013 Martijn Coenen <maco@google.com> Avoid P2P/SMX race conditions in NXP stack.

Google Wallet can trigger off field P2P field events
and initiate communication with the SMX. The NXP stack
appears to contain some tricky race conditions around
opening/closing the SMX close to P2P interactions. For now,
do not allow NFCEE access while a P2P link is still active.

Bug: 8552749
Change-Id: I7acae39bc22cebb5d79a484990dcd3fc5f3dad23
ndroid/nfc/NfcService.java
ndroid/nfc/P2pLinkManager.java
3e38dca2bc7c7629d7159663d597a1e886d85527 19-Apr-2013 Martijn Coenen <maco@google.com> Don't close the NFC-EE pipe immediately on disable.

The combination of an outstanding APDU request together
with a "warm-reset" HCI command that we send on NFC disable
sometimes cause a complete NFC controller lockup (depending
on the order and timing).

To prevent this, delay closing the NFC-EE pipe for a while on
NFC disable to give processes a chance to finish their outstanding
APDU request.

Bug: 8660403
Change-Id: I40d5f33fc41453aa3592a50721b8bef793e0af5d
ndroid/nfc/NfcService.java
d72b205b870f4bccb33d466a0b4f704aca8d060a 15-Apr-2013 Martijn Coenen <maco@google.com> Remain compatible with 4.1 handover-over-SNEP devices.

Android Jelly Bean 4.1 shipped with a handover implementation
that (erroneously) used the SNEP server for exchanging handover
messages. This was corrected in future releases, however to maintain
compatibility with the 4.1 devices, continue connecting to SNEP
in case a connection to the handover service fails.

Bug: 8508568
Change-Id: I49ee98ef9c4569bdbff8aab4ee3f45264e019f3f
ndroid/nfc/P2pLinkManager.java
595ab7e9788f61125fa14d1ff2768f995ac7b7e7 10-Apr-2013 Martijn Coenen <maco@google.com> Fix Beam animation deadlock.

There was a path possible where finish() was
being called while a screenshot was still
captured on another thread. When the thread
finished, it would throw up the animation
and never exit.

This fix stores the request to finish() in the
state, waits for the screenshot thread to complete,
and moves to the IDLE state in case.

Also made the entire view touchable for initiating
the Beam.

Bug: 8576613
Bug: 8578026
Change-Id: I0d0158fb95918e23e32dc22c6537f5dac2aa46b1
ndroid/nfc/SendUi.java
f1ca42a07636d17e7eae14bb994e7208d4d80f9a 09-Apr-2013 Martijn Coenen <maco@google.com> Merge "Properly reset field / listen mode flags in SE object." into jb-mr2-dev
b408fc371821c397b47c8722c339c6b4359e062f 09-Apr-2013 Martijn Coenen <maco@google.com> Properly reset field / listen mode flags in SE object.

On NFC disable, the SE object is "finalized" but not
destroyed. It is reused on the next NFC enable, but
the listen mode / field status flags were not cleared
then.

Bug: 8574917
Bug: 8489820
Change-Id: I8e11c60eda47762404a5d5020a0c2e6ff95ead2a
ndroid/nfc/P2pLinkManager.java
6afaf97c8449f18cb0e219c558b41849ba0b529c 09-Apr-2013 Martijn Coenen <maco@google.com> Merge "Improve Kovio reading reliability." into jb-mr2-dev
89baa7140bbc7899e8c2735bcfd69021a1240487 09-Apr-2013 Martijn Coenen <maco@google.com> Improve Kovio reading reliability.

NfcBarcode tags such as Kovio are only activated very briefly,
just to spit out the uid. Consequent NDEF and reconnect() calls
by the NfcService will often fail, causing the tag to not be
reported properly to the upper layers.

For now, don't perform NDEF checking on these tags, and just
dispatch them when we see them.

Bug: 8576348
Change-Id: If011f6e99d85a61d19d9cea15719fab90cffad43
ndroid/nfc/NfcService.java
f36089a293850babe57d2dfd48a22e8d1daf0fc0 08-Apr-2013 Martijn Coenen <maco@google.com> Fix Android Beam animation.

SendUi.showStartSend() was being called twice.

Change-Id: I3893c138b1de94d87e556c438bffcf0039b2a086
ndroid/nfc/P2pEventManager.java
ndroid/nfc/P2pLinkManager.java
cf4ef456bbf2c10f674b291ef7960af8b6bf6efa 07-Apr-2013 Emily Bernier <ember@google.com> Fixing NFC bug when confirm screen isn't required.

Change-Id: I198235ec91d454dabe34187bb51870cf1b0d4fb5
ndroid/nfc/P2pLinkManager.java
57a44d07a3de327e8cdbbcd622118aa517313dbe 28-Mar-2013 Martijn Coenen <maco@google.com> Deal with pre-MR2 PN544 NXP stack LLCP bugs.

In MR2 we started connecting LLCP on link
activation instead of when the send was confirmed. Pre-MR2
NXP-stack devices have a bug that causes them to only
send the first SYMM after 750 ms (in case they are the
initiator). There is another bug that causes that same stack
to crash if two threads try to send a packet at the same
time.

Unfortunately, this combination of factors creates the
following race:

1) pre-MR2 PN544-initiator initiates p2p link with MR2 device
2) pre-MR2 PN544-initiator starts Touch to Beam animation
3) pre-MR2 PN544 doesn't have data to send, but delays SYMM for 750ms
4) MR2 device finally gets SYMM after 750ms, and sends CONNECT PDU
5) pre-MR2 PN544-initiator device responds to CONNECT PDU with CC on Thread 1
6) Within a ~50 ms window, the user on the pre-MR2 PN544-initiator touches
the screen to confirm the send. This causes Thread 2 to try to send
something, which fails.

As a result, the Beam transaction fails. Unfortunately
this is quite easy to reproduce, since the Beam animation takes
about 750ms, just the same amount of time it takes for the SYMM
to get sent.

To prevent such a race condition, we should make sure that we do
not create multi-threaded access on the remote device. The best way
to do that is to not connect the LLCP services automatically when
talking to a pre-MR2 PN544-initiator.

Long story short, when we don't receive a first packet of data
after 200 ms, we consider the remote device to be a buggy
implementation, and delay the connect until the time the user
decides to send something (in which case it's fine - it's unlikely
the user at the other side tries to send something at exactly the
same time).

Also fixed RF field notifications to be more robust; whenever
p2p is activated, we disable field events, and always treat the
field as being on.

Bug: 8508568
Change-Id: I41b427afb24c7f8d228adc91d258cca553539588
ndroid/nfc/DeviceHost.java
ndroid/nfc/NfcService.java
ndroid/nfc/P2pLinkManager.java
ndroid/nfc/SendUi.java
cbe27470ef7e67324b9e8cbc32c25088d82e2a86 27-Mar-2013 Martijn Coenen <maco@google.com> Update to new IPC API for getting data to share.

It's now a single IPC call to retrieve potential NdefMessage,
Uris and flags to be shared over Beam. Since we do IPC calls
only when entering p2p range, limiting the amount of calls
reduces the amount of time the devices will need to be held
together.

Bug: 5134061
Change-Id: Id64748ff7994cfa792e97a8753d7b8e1cabb034b
ndroid/nfc/P2pLinkManager.java
ec8c79f7ef07cc5e882df1a548f6ee4b33c58e54 08-Mar-2013 Martijn Coenen <maco@google.com> Merge "Allow incoming provisioning intents while in setup wizard." into jb-mr2-dev
7d8987f233985a5ff29226890e11012275d325f5 07-Mar-2013 Martijn Coenen <maco@google.com> Allow incoming provisioning intents while in setup wizard.

When the device is in setup wizard, the keyguard state
registers as locked, hence in this state NFC was not
enabled.

This change adds some resource settings to enable
NFC in setup wizard, and allow a set of mime-types
to be received while in that mode.

Bug: 8275527
Change-Id: Iab6cd8438fa77764b0cc9c96cbf1a36e95d79524
ndroid/nfc/NfcDispatcher.java
ndroid/nfc/NfcService.java
ndroid/nfc/handover/HandoverManager.java
1a158c7f354d1e1b031fba88928dbaa022e0d0df 12-Dec-2012 Martijn Coenen <maco@google.com> Make Beam more forgiving.

- Increased debounce time when nobody has pressed send
yet to 3 seconds - this gives users significantly
more time to press send, even when the link is down.
The only downside is that we stick in the Beam-animation
a bit longer, but in 99% of cases users actually intent
to send something, so this should be no problem.
- When the user does touch to send, if the link is down,
an even more forgiving debounce timer is started -
given the user 5 seconds to get the devices back
together. When they do get back together, the send
completes automatically.
- Also show a UI hint to get the devices back together whenever
the user has touched to send, but the link is broken.

Bug: 7124631
Change-Id: I0b0260f4eb92b11bf6bea8e571b43b38759c2bcc
ndroid/nfc/P2pEventManager.java
ndroid/nfc/P2pLinkManager.java
ndroid/nfc/SendUi.java
696652d7f9faaffd198073cb75eb86156f7d9af4 01-Mar-2013 Martijn Coenen <maco@google.com> Merge "Immediately connect to LLCP services." into jb-mr2-dev
3329e45c618c5896cb662f686930a75eb2ee5bbc 26-Feb-2013 Martijn Coenen <maco@google.com> Immediately connect to LLCP services.

When we discover a remote LLCP target, look at what
services the current foreground app has requested,
and immediately connect them.

This should increase our overall chance of success
of completing the transaction, as we no longer
need to setup the connection when the user taps
the screen to confirm the send.

It should also improve RIM interop; RIM devices
break the LLCP link if there are no service connections
within a certain time limit. Connecting the services
immediately prevents this.

Bug: 5155356
Change-Id: Ie4a578c1da31e3d5eb3b392b8236c681b45f9271
ndroid/nfc/P2pLinkManager.java
ndroid/nfc/handover/HandoverClient.java
ndroid/nfc/ndefpush/NdefPushClient.java
ndroid/nfc/snep/SnepClient.java
d72546a022862a277e43499849e275e4e5ea209a 21-Feb-2013 Martijn Coenen <maco@google.com> Add Beam progress indicator.

Now that the Bluetooth stack supports pushing
the count over OPP, we can more reliably indicate
transfer progress.

Also added a notification on the outgoing side
to show progress.

Change-Id: Id0c5e1750a732910d6a5895ab3d318fdfe752a30
ndroid/nfc/handover/HandoverService.java
ndroid/nfc/handover/HandoverTransfer.java
f2e4b930bb0a081742fa41fa5540a9a448915073 14-Feb-2013 Mathias Agopian <mathias@google.com> Merge "Split Surface/SurfaceControl fallout"
f4ff8352fac6a1b265d1e295e74f4ef9854365c8 14-Feb-2013 Martijn Coenen <maco@google.com> Merge "Catch all exceptions when doing remote Binder calls."
5bacd361e693472b7d54d31fe0d23b9d22851988 14-Feb-2013 Martijn Coenen <maco@google.com> Catch all exceptions when doing remote Binder calls.

When doing application callbacks for retrieving NDEF
data or notifying the application that an NDEF push
was completed, we should catch all exceptions, not
just RemoteExceptions.

Bug: 8179249
Change-Id: I35d30d52322f05b7998ef2e10f8da9d856a4b0d6
ndroid/nfc/P2pLinkManager.java
82792d9a73138f209d1f46f156604c4c65f69c0b 14-Feb-2013 Mathias Agopian <mathias@google.com> Split Surface/SurfaceControl fallout

Change-Id: I7293782504fe594f364403fa4c3f99d0aa4cd572
ndroid/nfc/SendUi.java
c3981b9a0b39faed474480bc3dbd3e33bbd50b99 11-Feb-2013 Martijn Coenen <maco@google.com> Return more accurate errors for NfcEe.open.

There are a number of different conditions under
which access to the SE is not possible. Since some
of these require user intervention to resolve (ie
external field present), return a more accurate
reason for NfcEe.open failure.

Bug: 4304698
Change-Id: Ie947c29be12d554a02d9246264a9f0e026a37af8
ndroid/nfc/NfcService.java
97fe497ede803f09d45253ee5fba51bf03cb724a 18-Jan-2013 Martijn Coenen <maco@google.com> Add a bit more logging for Bluetooth Beam.

This allows easily ruling out wrong Mac addresses
etc.

Bug: 7903517
Change-Id: I6864527fe547347890d5ad319d1535a3f8ddf4d0
ndroid/nfc/handover/BluetoothOppHandover.java
ndroid/nfc/handover/HandoverManager.java
ndroid/nfc/handover/HandoverService.java
ndroid/nfc/handover/HandoverTransfer.java
d54fb08755f4ffa9c148484187bd2a7cd4df0b57 16-Jan-2013 Amith Yamasani <yamasani@google.com> Use bindServiceAsUser() to follow API change.

Change-Id: If99f32a43c0e4c13e0d2390142dc1dc7679a02f3
ndroid/nfc/handover/HandoverManager.java
3859c5cccb202c20882fb3887cfa87babb1d85a3 08-Jan-2013 Martijn Coenen <maco@google.com> Enforce foreground NDEF push.

Store the calling UID along with the NDEF callback,
to make sure the registered callback is running in
the foreground.

Bug: 5199662
Change-Id: Ia6eb4457309445909629878f3371805a503fc82f
ndroid/nfc/NfcService.java
ndroid/nfc/P2pLinkManager.java
a1af766ba0b1fc5a016b796f76c29f56519dec15 14-Dec-2012 The Android Open Source Project <initial-contribution@android.com> Snapshot 81cfc41a448a57d0b3e16b817dc074e91ae94188

Change-Id: Ia1661589783f7d51557ff902c3260c341958c310
ndroid/nfc/NfcService.java
116dfa0107cdc7ab098ed95828280542bf6b0a1e 14-Dec-2012 The Android Open Source Project <initial-contribution@android.com> Snapshot 80117eda51c64366f7a11652956325999b98e433

Change-Id: Ibfbba2f092dd005167d10b07890bf8203602f2cc
be1939b4b6003ac7a65fcb95a3912f5e1ce8e75f 14-Dec-2012 The Android Open Source Project <initial-contribution@android.com> Snapshot b80adb2c263702442cf2f2d771168400e6ceb9f8

Change-Id: I391d8e1be1a61e68b01f0db371dbb4ed3e5b5933
ndroid/nfc/NfcApplication.java
ndroid/nfc/RegisteredComponentCache.java
ndroid/nfc/handover/BluetoothHeadsetHandover.java
ndroid/nfc/handover/BluetoothOppHandover.java
ndroid/nfc/handover/HandoverManager.java
ndroid/nfc/handover/HandoverServer.java
ndroid/nfc/handover/HandoverService.java
ndroid/nfc/handover/HandoverTransfer.java
ndroid/nfc/handover/PendingHandoverTransfer.java
b6b8e0edacf8cd0f1b619dc419143483ff47a48f 03-Oct-2012 Johan Redestig <johan.redestig@sonymobile.com> Make locale safe paths

generateMultiplePath was using SimpleDateFormat with
the default locale to create paths. In some locales
this resulted in characters that are not safe to use
on all file systems. Explicitly use Locale.US to
be locale safe.

Change-Id: Ic1cc0b83d04a81ab4791b90e34365896c9ca27fc
ndroid/nfc/handover/HandoverManager.java
525c260303268a83da4c3413b953d13c9084e834 14-Dec-2012 The Android Open Source Project <initial-contribution@android.com> Snapshot 1a6bcf3cca90fedfbad33c1cdd6d05af5774fc01

Change-Id: I3ccb25bf7cde2c22f52260cae0e9957517e6bb5f
ndroid/nfc/DeviceHost.java
ndroid/nfc/FireflyRenderer.java
ndroid/nfc/NfcApplication.java
ndroid/nfc/NfcDispatcher.java
ndroid/nfc/NfcRootActivity.java
ndroid/nfc/NfcService.java
ndroid/nfc/P2pLinkManager.java
ndroid/nfc/RegisteredComponentCache.java
ndroid/nfc/SendUi.java
ndroid/nfc/handover/BluetoothHeadsetHandover.java
ndroid/nfc/handover/HandoverManager.java
ndroid/nfc/ndefpush/NdefPushServer.java
ndroid/nfc/snep/SnepClient.java
ndroid/nfc/snep/SnepServer.java
4bbd47e5507d4c47a4d722216606307e45195a0a 25-Jul-2012 Martijn Coenen <maco@google.com> Move NXP JNI and DeviceHost implementation into separate dir.

Preparation for the new NCI stack. The idea is to
build either the NXP or the NCI stack, triggered
by a makefile switch. To that end, move the
DeviceHost and JNI implementations in their own
directory, so we can build them only if needed.

Change-Id: I8579ec30ceb1908e4cd180cfbd10224aa4bddb8d
ndroid/nfc/NfcService.java
ndroid/nfc/nxp/NativeLlcpConnectionlessSocket.java
ndroid/nfc/nxp/NativeLlcpServiceSocket.java
ndroid/nfc/nxp/NativeLlcpSocket.java
ndroid/nfc/nxp/NativeNfcManager.java
ndroid/nfc/nxp/NativeNfcSecureElement.java
ndroid/nfc/nxp/NativeNfcTag.java
ndroid/nfc/nxp/NativeP2pDevice.java
ff94ceff4c2715134c85a84c75d47a5835f1a598 25-Jul-2012 Martijn Coenen <maco@google.com> Revert "Move NXP JNI and DeviceHost implementation into separate dir."

This reverts commit 26f6049196acaa9768ba6bdef343216ea878a4c1.
ndroid/nfc/NfcService.java
ndroid/nfc/nxp/NativeLlcpConnectionlessSocket.java
ndroid/nfc/nxp/NativeLlcpServiceSocket.java
ndroid/nfc/nxp/NativeLlcpSocket.java
ndroid/nfc/nxp/NativeNfcManager.java
ndroid/nfc/nxp/NativeNfcSecureElement.java
ndroid/nfc/nxp/NativeNfcTag.java
ndroid/nfc/nxp/NativeP2pDevice.java
26f6049196acaa9768ba6bdef343216ea878a4c1 20-Jul-2012 Martijn Coenen <maco@google.com> Move NXP JNI and DeviceHost implementation into separate dir.

Preparation for the new NCI stack. The idea is to
build either the NXP or the NCI stack, triggered
by a makefile switch. To that end, move the
DeviceHost and JNI implementations in their own
directory, so we can build them only if needed.

Change-Id: Ibb6aeb11f0bb887e153fd457860b1ad0e39e7933
ndroid/nfc/NfcService.java
ndroid/nfc/nxp/NativeLlcpConnectionlessSocket.java
ndroid/nfc/nxp/NativeLlcpServiceSocket.java
ndroid/nfc/nxp/NativeLlcpSocket.java
ndroid/nfc/nxp/NativeNfcManager.java
ndroid/nfc/nxp/NativeNfcSecureElement.java
ndroid/nfc/nxp/NativeNfcTag.java
ndroid/nfc/nxp/NativeP2pDevice.java
63cccc4b5096fd9cbcb08410e69f7932375b4bc6 23-Jul-2012 Martijn Coenen <maco@google.com> Fix type of collision resolution record.

Bug: 6759842
Change-Id: I0fe1e6859d8792b959a1306404bd239ab33dd3b4
ndroid/nfc/handover/HandoverManager.java
f5a196b643c654c7ea98a5e2935e3bff6683399b 11-Jul-2012 Martijn Coenen <maco@google.com> Implement connection handover LLCP service.

The Connection Handover specification dictates that we should
exchange Hr/Hs records over a dedicated LLCP service. This adds
the service, and starts using it by default. It will fall back
to the SNEP GET method to remain compatible with Android 4.1
devices. SNEP GET on these devices will return "Not Implemented",
also per the SNEP spec.

Also fixed a bug in endianness of the OOB record.

Bug: 6759842
Change-Id: Iafe67ab119e933df5dfa0a5645a95bc59badd8ae
ndroid/nfc/P2pLinkManager.java
ndroid/nfc/handover/BluetoothOppHandover.java
ndroid/nfc/handover/ConfirmConnectActivity.java
ndroid/nfc/handover/HandoverClient.java
ndroid/nfc/handover/HandoverManager.java
ndroid/nfc/handover/HandoverServer.java
23e3346d150311a9c1843a6c542b7de564d12485 07-Jun-2012 Martijn Coenen <maco@google.com> am fef4b82c: am 59b6bb0b: Merge "Don\'t assume Bluetooth is present." into jb-dev

* commit 'fef4b82cb6f95a9a7dbb510e31d6316883857c26':
Don't assume Bluetooth is present.
0015304ebb1fda453f8b2ef660c39bf4f11dc771 06-Jun-2012 Martijn Coenen <maco@google.com> Don't assume Bluetooth is present.

Bug: 6620788
Change-Id: I39f7b106885b1bb932353c47c3b0f7370c56e8c4
ndroid/nfc/P2pLinkManager.java
ndroid/nfc/handover/HandoverManager.java
db4c5aeb1b467525549e5e29136b61455d94c0ba 01-Jun-2012 Martijn Coenen <maco@google.com> am d560e24e: am f4392711: Add watchdog to applyRouting().

* commit 'd560e24e8edf8251a3756400ce5f75bcfdd51b9a':
Add watchdog to applyRouting().
f439271150e4548f116919e0254d57655421581c 01-Jun-2012 Martijn Coenen <maco@google.com> Add watchdog to applyRouting().

We've seen some devices hang in doSelectSecureElement,
probably waiting for a response from the HW. Root cause
is unknown, may be due to a different access pattern
of Wallet or OTAProxy. Until we can reproduce better
and find the root cause, watchdog this method. Added
advantage is that we can have the relevant context in the logs
when the crash occurs.

Bug: 6585958
Change-Id: Ic797ea479869a68173fcd42049cc4ba8d009d2e0
ndroid/nfc/NfcService.java
fadd67f16ce9baafc23e8aa521530e7d59f53543 26-May-2012 Martijn Coenen <maco@google.com> am 62a89973: am d0387061: Merge "Use new handover intent actions." into jb-dev

* commit '62a8997361a059183f2547365a6055db3d45e9c9':
Use new handover intent actions.
f2509ed17251d2707e6c3b803df3b37ff76174f4 25-May-2012 Martijn Coenen <maco@google.com> am abf67e1b: am 423cc45a: Merge "Fall back to NDEF push if handover SNEP get fails." into jb-dev

* commit 'abf67e1baa0a4b313d9338e69261db47c33725be':
Fall back to NDEF push if handover SNEP get fails.
4fe787c0237d00e96018ac2185961451c6d4851d 24-May-2012 Martijn Coenen <maco@google.com> Use new handover intent actions.

Use the new handover intent actions that allow us
to select any mime-type.

Also, add unique filename counter before extension
instead of after it.

Bug: 6561169

Change-Id: I04b83460099b42ba6220d7eb4dcff7a095022304
ndroid/nfc/handover/BluetoothOppHandover.java
ndroid/nfc/handover/HandoverManager.java
a3715d12aeba988c1104726e935462ea4f39eca7 24-May-2012 Martijn Coenen <maco@google.com> Fall back to NDEF push if handover SNEP get fails.

This allows applications to be able to set both
a Uri (for handover) and an NDEF message, which
will only be sent if the handover request does
not work (as will be the case on pre-J devices).

Also, show a toast if the remote device does
not support connection handover.

Bug: 6561174
Change-Id: I9ffdcfdf0cded319fbb4ab646ae1da5382fcb74a
ndroid/nfc/P2pEventManager.java
ndroid/nfc/P2pLinkManager.java
ndroid/nfc/SendUi.java
d5b8a6f40c03bd3452083ccae4d9077a70e479da 23-May-2012 Martijn Coenen <maco@google.com> am 7d44aa52: am befa3d6d: Show time in NFC handover notifications.

* commit '7d44aa52f36e8b0a08fcbb7fdf3af207cd54a97b':
Show time in NFC handover notifications.
befa3d6d8bca86f28968069128d6f454b39ed9a8 22-May-2012 Martijn Coenen <maco@google.com> Show time in NFC handover notifications.

Notification sorting is coupled to the time associated
with the notifications, and there's no way to hide the
time in the notification without setting the time to zero.

Since we prefer a proper sorting over hiding the time,
just show the time again.

Change-Id: I3188a80f8d7b7fcac54ffa790df58faa53241557
ndroid/nfc/handover/HandoverManager.java
2598c1600b004d8fd71f8aec72bc7c9346d335a3 21-May-2012 Martijn Coenen <maco@google.com> am beb7b1b4: am 0de27370: Bluetooth Beam: generate unique filenames.

* commit 'beb7b1b4b95b1762b507eb2a9c6380e24c8b7a62':
Bluetooth Beam: generate unique filenames.
d47de4a5de519ffd56aefb04c37537a9c1fc2275 21-May-2012 Martijn Coenen <maco@google.com> am 91ebf1e2: am 0f2b555f: Don\'t use NPP for connection handover.

* commit '91ebf1e2e815034504265f1f7472780bcbd30123':
Don't use NPP for connection handover.
4e7293861f218e617c17d5af02ae9c797fc4a48c 21-May-2012 Martijn Coenen <maco@google.com> am e769540a: am 1179ee22: Merge "Close NFCEE when NFC is being shut down." into jb-dev

* commit 'e769540a26900bb809c210c976eaca3ac6cf2605':
Close NFCEE when NFC is being shut down.
5bc9a1d4952980dce4ebd4ceb42ecae8f1c6660b 21-May-2012 Martijn Coenen <maco@google.com> am 0b610930: am 2aa9b461: Merge "Allow cancelling of Bluetooth Beam transfers." into jb-dev

* commit '0b61093016daae3df331e1a6780757254c06859a':
Allow cancelling of Bluetooth Beam transfers.
2f207c37a8d907db738761b528a83f5cbafa1cff 21-May-2012 Craig Mautner <cmautner@google.com> am c9f617a9: am b0f96e9d: Merge "Eliminate obsolete flag." into jb-dev

* commit 'c9f617a9c99f579e753a09387629f3ddac8e9ca7':
Eliminate obsolete flag.
0de2737031fd18aeeadcbc8f46cd0ebcb18ee730 18-May-2012 Martijn Coenen <maco@google.com> Bluetooth Beam: generate unique filenames.

When moving files to beam/, make sure the destination
file is unique.

Also, give the transfer a little more time to be initiated;
OPP can take quite some time to startup, especially with
debug logging.

Change-Id: I304c297587e3ad2f339438201bb0b53152084af4
ndroid/nfc/handover/HandoverManager.java
0f2b555fe51f3d8a828cf61d269b8be6eecbf68b 18-May-2012 Martijn Coenen <maco@google.com> Don't use NPP for connection handover.

Handover will only work with SNEP; if SNEP fails,
don't try with NPP.

Change-Id: Ib92c90cb588b99e177fa1c70b89753ef8d0e16ea
ndroid/nfc/P2pLinkManager.java
1179ee22543abdd350f0a60b887e2fb7cf95d6a6 18-May-2012 Martijn Coenen <maco@google.com> Merge "Close NFCEE when NFC is being shut down." into jb-dev
8a704e7cfd941feb40b2ba62035943c3d389c13e 18-May-2012 Martijn Coenen <maco@google.com> am 8baa9162: am 05d74c94: Merge "Bluetooth Beam handover: deal with multi-file transfers." into jb-dev

* commit '8baa9162ad3593b248fb6801b8feb30ad581467b':
Bluetooth Beam handover: deal with multi-file transfers.
2aa9b461d148f49ab9c63858f1c8f87c0b40b824 18-May-2012 Martijn Coenen <maco@google.com> Merge "Allow cancelling of Bluetooth Beam transfers." into jb-dev
4ac28aa73f8bc7b501912fb8e96877a7b9a1f4f2 18-May-2012 Martijn Coenen <maco@google.com> Close NFCEE when NFC is being shut down.

Bug: 6501921
Change-Id: Ib76fd3a436632ddad0da7c73f7972018990f37c0
ndroid/nfc/NfcService.java
b0f96e9d93e2c96caa95186164f655009a8e8f60 17-May-2012 Craig Mautner <cmautner@google.com> Merge "Eliminate obsolete flag." into jb-dev
d5517553782b29d8e2e5069631e9b443caac97cd 17-May-2012 Craig Mautner <cmautner@google.com> Eliminate obsolete flag.

The FLAG_KEEP_SURFACE_WHILE_ANIMATING has been removed.

Change-Id: Ia9623fb1fd5a124145bbb827acfb77767b05f636
ndroid/nfc/SendUi.java
6c6de7bffe437d756f9eebf86bd80dd76429930e 17-May-2012 Justin Koh <justinkoh@google.com> resolved conflicts for merge of c989f25d to master

Change-Id: I6d9df6e420cb4047f06848d4c0d94d30a6cc575a
c989f25d17aca3e8001092c42684244222940330 17-May-2012 Justin Koh <justinkoh@google.com> Don't instantiate sendUi in Nfc if we are in appliance mode.

Don't initiate sendUi in Nfc if we are in appliance mode. This saves 20MB of
memory.

Bug: 6470917

TESTED = runs on Tungsten.

Change-Id: I41df65a67cd0f3af3e73469c1679d707c98cc3f8
ndroid/nfc/P2pEventManager.java
3bf04bd4f04b217768b3799dadb4a775b5a31f1a 17-May-2012 Martijn Coenen <maco@google.com> Allow cancelling of Bluetooth Beam transfers.

Add an action to the notification entry that allows
cancelling Beam transfers.

Also, each transfer now has a generic timer that
marks the transfer as failed, in case no updates
happen on the transfer at all for 10 seconds.

Change-Id: I9670e4e782e5c1b846a07f7e490a2f317a45fb70
ndroid/nfc/handover/BluetoothOppHandover.java
ndroid/nfc/handover/HandoverManager.java
402da07068333f9393fd960a4c90df39b34bf668 14-May-2012 Martijn Coenen <maco@google.com> Bluetooth Beam handover: deal with multi-file transfers.

A handover transfer object no longer represents a single file,
but all the files associated with the handover. This association
is based on the source address of the transfer and a timer;
if a new file transfer from the same source is started within
this timer, it is considered to be part of the same handover
transfer.

Received files are stored in beam/. If multiple files are
transferred, they are stored in their own subdirectory of beam.

We now use the mediaScanner for mime-types that the
platform can deal with by default. The advantage of this
is that the mediaScanner can already gather meta-data for
these files, and (platform) apps can query for and populate
views with such data.

3rd party applications can also query the mediaScanner
for meta-data on the received files.

A handover transfer object has a single notification
associated with it; upon launching the notification,
a single ACTION_VIEW intent is launched. If multiple files
were transferred as part of this handover, ACTION_VIEW is
launched on the first file in the set.

Change-Id: I00c23e58736f6dbe96726a1ec56fbc8c984a215d
ndroid/nfc/handover/BluetoothOppHandover.java
ndroid/nfc/handover/HandoverManager.java
78705adb33530d58f6b25bd3976ef36df196af55 09-May-2012 Martijn Coenen <maco@google.com> UI confirmation for pairing a BT device through NFC.

If we find a BT device to pair through NFC and we haven't
seen it device before, request confirmation before pairing it.

Bug: 6092058
Change-Id: I34fc638fbdb152a48e90644f9a34cc1a0b942de2
ndroid/nfc/handover/BluetoothHeadsetHandover.java
ndroid/nfc/handover/ConfirmConnectActivity.java
d82d9db81f30ccecd29a0531e6db9b49c9c2cd95 08-May-2012 Martijn Coenen <maco@google.com> Bluetooth Beam bug fixes, UX and i18n.

- Implemented handover select with carrier power state
- Delay OPP send if remote carrier is activating
- I18n for all handover components
- Cleanup old handover transfers

Bug: 6411485
Change-Id: I84aac3a7c7e703a1fcb423b6016cd9fa3d33d9b1
ndroid/nfc/P2pEventManager.java
ndroid/nfc/P2pLinkManager.java
ndroid/nfc/handover/BluetoothHeadsetHandover.java
ndroid/nfc/handover/BluetoothOppHandover.java
ndroid/nfc/handover/HandoverManager.java
0af2f3baa4b58419f6d4268fb83d9a2952dceba0 27-Apr-2012 Martijn Coenen <maco@google.com> Call right Bluetooth enable API.

Change-Id: Iff926bce1d3b00fe301195b6e3d341631c58fe29
ndroid/nfc/handover/HandoverManager.java
68bd18ee08c057b72b94f467d440766e70bec3e6 24-Apr-2012 Martijn Coenen <maco@google.com> Merge "Latest changes for Bluetooth Beam."
37058bf7b59def2f9a565ae5b16aae54e80e9e95 11-Apr-2012 Sunil Jogi <sunil.jogi@nxp.com> Added shared prefs for SE wired mode

When SE is in wired mode shared prefs sets the se_wired to true,
when SE is no more in wired mode shared prefs sets se_wired to
false. Default value for se_wired is false. se_wired shared pref
is set during the NFC initialization.

Change-Id: I9a3565c23035802895c8e99c671483c808312e0e
ndroid/nfc/NfcService.java
ndroid/nfc/nxp/NativeNfcManager.java
ndroid/nfc/nxp/NativeNfcSecureElement.java
290a6967a04f49dc3969dced9f82c1636a7e7902 10-Apr-2012 Sunil Jogi <sunil.jogi@nxp.com> Updated disable method

Updated disable method so it can be used for phone shutdown and
also can retain the state of NFC Adapter.

Change-Id: I216e68b1d08d3e6d97cb82ad13cd3366c480d757
ndroid/nfc/NfcService.java
226307d8c2952c42855005d7c0107b42b066bc9a 12-Apr-2012 Martijn Coenen <maco@google.com> Latest changes for Bluetooth Beam.

- Receive transfer notifications and status info from Bluetooth, to show
progress using Notifications.
- Added power manager, to keep track of BT power state, and turn BT off
if possible.

TODO:
- UI for failed operations (ie transfer failed, Bluetooth enable failed).
- Cleanup of transfer list
- Make sure BT doesn't connect to other peripherals or isn't connectable.

Change-Id: I31450f589bbaeb72ee8c450c5019f00f0190b7aa
ndroid/nfc/handover/BluetoothHeadsetHandover.java
ndroid/nfc/handover/BluetoothOppHandover.java
ndroid/nfc/handover/HandoverManager.java
83558889207858d7ce8500f9fce8a707a86b495e 13-Apr-2012 Martijn Coenen <maco@google.com> Support for the new Uri[] Beam push API.

Support multiple URIs, move query for the mime type to NFC service.

Change-Id: Ib055efca843b41f6d29cda7d67b23f4b9946113c
ndroid/nfc/P2pLinkManager.java
ndroid/nfc/handover/BluetoothOppHandover.java
ndroid/nfc/handover/HandoverManager.java
6529e5060773d0cba2a87d4161bf10b1b95470aa 05-Apr-2012 Martijn Coenen <maco@google.com> Force bluetooth OPP to handle ACTION_SEND.

Change-Id: Ib9520b53d699a79d9a7c09cdb3eb27c4e001d7fd
ndroid/nfc/handover/BluetoothOppHandover.java
ff07dc2bb156d62f447bc3613d6df339fa09794c 02-Apr-2012 Martijn Coenen <maco@google.com> Add support for making Mifare Classic readonly.

Change-Id: I7572274dd74d8f9c3f0c80bdccf3d30707c91c3f
ndroid/nfc/nxp/NativeNfcManager.java
ndroid/nfc/nxp/NativeNfcTag.java
43f2fa7ad4c72ef4849f2d2b78a963c1925c63a3 04-Apr-2012 Nick Pelly <npelly@google.com> First cut at Bluetooth Beam

Change-Id: I616fd57b7822d703280ec960b84cf8c5ced6719d
ndroid/nfc/NfcDispatcher.java
ndroid/nfc/NfcService.java
ndroid/nfc/P2pLinkManager.java
ndroid/nfc/handover/BluetoothOppHandover.java
ndroid/nfc/handover/HandoverManager.java
a2fba9e5417d628e46c7ef918f3467d9b6c30ff2 04-Apr-2012 Martijn Coenen <maco@google.com> Merge "Support for querying extended length APDU support."
eec585407f2cfc47814f572a1e2a0f7d56b41451 02-Apr-2012 Martijn Coenen <maco@google.com> Allow applications to disable default Beam behavior.

By adding a meta-data entry to the application section of
the applications manifest:

<meta-data android:name="android.nfc.disable_beam_default"
android:value="true" />

Bug: 6257668
Change-Id: I73c27d8c642acd85f678fb42b4379f6bc21189b9
ndroid/nfc/P2pLinkManager.java
ba15143ff54f5078f9b2cef5804525d387c52c72 03-Apr-2012 Martijn Coenen <maco@google.com> Support for querying extended length APDU support.

Bug: 5813943
Change-Id: I1274e3c47203e30cedefb57049738f97122de4b1
ndroid/nfc/DeviceHost.java
ndroid/nfc/NfcService.java
ndroid/nfc/nxp/NativeNfcManager.java
3322eb8bf21f95ec1564dff145d16e34e12ddfd5 31-Mar-2012 Martijn Coenen <maco@google.com> Merge "Let connect() fail with an I/O exception if tag has left the field."
4f5627f090c497cc6f628120a5b182891da73f5d 30-Mar-2012 Martijn Coenen <maco@google.com> Merge "Remove permissions check from the TagService."
cd7f018ec0cff0fcdcfe1399aa2398b809f2e35e 30-Mar-2012 Martijn Coenen <maco@google.com> Let connect() fail with an I/O exception if tag has left the field.

Because connect() can sometimes be implemented without any I/O,
(usually between transitions to/from the NDEF technology),
it does not always notice when a tag has left the field. Since
we promise in the API docs that it does, fix it by checking
(cached) presence.

Change-Id: Ie6ad1b5dec3621051e395d3be0d0e09615e53ebc
ndroid/nfc/NfcService.java
182152b054d555fc4ac5d5c2cd2367cb8c205782 30-Mar-2012 Martijn Coenen <maco@google.com> Remove permissions check from the TagService.

This will allow apps to call getNfcAdapter() and check if NFC
is enabled without having the NFC permission.

Added a permission check inside the TagService methods itself,
and removed obsolete method.

Bug: 5928657
Change-Id: I27c510ab7c3cbbda8e58e486100ede83312ce0dd
ndroid/nfc/NfcService.java
020b17588c85e9a55539ccbb20081754272c724b 29-Mar-2012 Martijn Coenen <maco@google.com> Merge "Fix NPE when there's NDEF data we can't dispatch."
788afc415ce874e47a696e572565761c8ec0b7f5 29-Mar-2012 Martijn Coenen <maco@google.com> Merge "Get rid of getLastError()."
0ec8bb7e59bad813e1423bff0c756fafe85b011c 29-Mar-2012 Martijn Coenen <maco@google.com> Get rid of getLastError().

Was only used for one call into the service, and it wasn't even correct
in that case.

Change-Id: I6c7d9d137783fde9341e119402e6823776c711b7
ndroid/nfc/DeviceHost.java
ndroid/nfc/NfcService.java
ndroid/nfc/nxp/NativeNfcManager.java
2b8c4b2f4bc578f76b6dc0da33ef3aab70f3ba64 29-Mar-2012 Martijn Coenen <maco@google.com> Merge "Don't crash on passing invalid data to NfcService."
28d3d2df015a44b293e648036ebfd609363158aa 29-Mar-2012 Nick Pelly <npelly@google.com> Merge "Keep static NDEF in application rather than NFC Service."
950030f3ec899dc201bf22be62e2c590a79e7685 29-Mar-2012 Martijn Coenen <maco@google.com> Merge "Dejank Android Beam animation."
791ab7ad5b2fafaa4587d9ba7fb0fe39a815f278 29-Mar-2012 Martijn Coenen <maco@google.com> Don't crash on passing invalid data to NfcService.

Change-Id: Ibec1e2adb13a1f60bad1a573c9bf1f93d5cd4bc6
ndroid/nfc/NfcService.java
f570dca6b0fa0ce883f5c950815e43acae4f51b2 28-Mar-2012 Martijn Coenen <maco@google.com> Dejank Android Beam animation.

After profiling, it turns out the Beam animation was mostly janky
because of the initial buffer allocations that take place in the
graphics driver. Modified both the animation and firefly
renderers to swap the buffers three times before drawing anything,
thereby making sure the buffers are allocated.

Do not scale the screenshot while rendering fireflies,
as that can cause jank as well.

Also modified the FireflyRenderer to keep most of its state alive
between subsequent Beams, causing it to come up faster.

Cleaned up some old code and added documentation.

Change-Id: Ica231861dd7ede178ad2ec1ab09aa00d1c876624
ndroid/nfc/FireflyRenderThread.java
ndroid/nfc/FireflyRenderer.java
ndroid/nfc/P2pEventManager.java
ndroid/nfc/SendUi.java
c96f982f8c0fa061701143a27395acf3b24dfb54 28-Mar-2012 Nick Pelly <npelly@google.com> Keep static NDEF in application rather than NFC Service.

This means we make an IPC callback during Beam for static NDEF, instead
of an IPC every time the static NDEF changes. This results in less IPC,
and the latency increase during Beam is not measurable.

This fixes a bug where a crashed application still leaves its
static NDEF message inside NFC service.

Bug: 5199662
Change-Id: Id4879356b2b2b0d65ce3183d7a1bda9cde455f2c
ndroid/nfc/NfcService.java
ndroid/nfc/P2pLinkManager.java
e3728e6676eff6c1c77ad89153d8814d94c79fbc 15-Mar-2012 Nick Pelly <npelly@google.com> Update URL from Market to Play. Add feature parameter.

Change-Id: Ie8d0f65f7055e8bdca1e2f3b322a5b9a280ea2d2
ndroid/nfc/P2pLinkManager.java
bfaee054834ade31c52002f00553c63701f1c0b0 08-Mar-2012 Martijn Coenen <maco@google.com> Fix NPE when there's NDEF data we can't dispatch.

Bug: 6135087
Change-Id: Ib2161c6125b6592db8ca2d89a1959e20f54455eb
ndroid/nfc/NfcDispatcher.java
6925544a389f1fa2e62a6f718f09db7aa4e6ee43 06-Mar-2012 Nick Pelly <npelly@google.com> Merge "Perform default Beam behavior from system apps."
6e5a69a21f2a29e5e1d415bb788bbc1f576363f0 06-Mar-2012 Nick Pelly <npelly@google.com> Perform default Beam behavior from system apps.

1) Launch the app if its installed on the other device.
2) Lanch market with a search for the app if it is not installed.

Bug: 6091238
Change-Id: Ifc593f1f2ad120ef1b3b2e90ac157f99c0df5b16
ndroid/nfc/P2pLinkManager.java
a3b7cb40d243019ebe93ed3369722669e651045c 06-Mar-2012 Nick Pelly <npelly@google.com> Merge "Change threading/locking model of BluetoothHeadsetHandover"
49913d6a0ed709ff6edde40bb040605997b561f3 02-Mar-2012 Nick Pelly <npelly@google.com> Change threading/locking model of BluetoothHeadsetHandover

All work is now done on the main thread. No locks needed.

Change-Id: I59f8d925e2465c697b6f3521c9fa6204b52d6802
ndroid/nfc/handover/BluetoothHeadsetHandover.java
32c52031a4c594035a64d8770019ac4af60ab546 02-Mar-2012 Nick Pelly <npelly@google.com> Merge "Implement NFC-BT handover for Bluetooth headsets, such as Nokia BH-505."
a2908a164eec02c34efc39db2e3ee0e38ebbfdb1 01-Mar-2012 Nick Pelly <npelly@google.com> Implement NFC-BT handover for Bluetooth headsets, such as Nokia BH-505.

Touch once to turn BT on, pair, connect HFP and A2DP, and start the music.
Touch again to disconnect HFP and A2DP.

Change-Id: Icfe120606aae5e80b04cc4aba3b03331a1213676
TODO: enable Bluetooth without causing auto-connection to *other* devices
TOOD: disable Bluetooth when disconnecting if it was enabled for this device
TODO: il8n / UI review
TODO: check security issues around auto-on BT and auto-pair
ndroid/nfc/NfcDispatcher.java
ndroid/nfc/handover/BluetoothHeadsetHandover.java
ndroid/nfc/handover/HandoverManager.java
0c39284106d29e8852197d163dcc95c01da29f0d 01-Feb-2012 Martijn Coenen <maco@google.com> Support for setting p2p modes from javaland and some cleanup.

Removed code-duplication, fixed some warnings.

Change-Id: I5b7a2986e3836d6689b677bf80cb93421bfa821e
ndroid/nfc/DeviceHost.java
ndroid/nfc/NfcService.java
ndroid/nfc/nxp/NativeNfcManager.java
9a93cf5cf4b845c7983f202fe0e03615f31f6db0 27-Feb-2012 Martijn Coenen <maco@google.com> Fix crash when disabling NFC with target in field.

Change-Id: I6c8d85278bc1379d40d83ec4d3df5797e4643e10
ndroid/nfc/NfcService.java
e288a8c852ad826efcb2ef5a318394974918209d 13-Feb-2012 Martijn Coenen <maco@google.com> Cache installed packages for sending SE broadcasts.

Getting the list of installed packages takes some time
on a phone with lots of packages (seen >500ms). Since
we did this for every SE broadcast (including field on / field off),
I've seen the NFC service event queue fill up, which has
a bad effect on latency-critical events such as the events
for llcp link establishment.

This caches the list of installed packages.

Bug: 5963061
Change-Id: Ia9f02c9ce58dae5c81949f7317425e5ee415ee92
ndroid/nfc/NfcService.java
bd0b6c38ba56bf787a3903f258776b185fdd7daa 15-Dec-2011 Joe Onorato <joeo@google.com> Use the new "appliance" ui mode configuration to determine whether to show nfc confirmation ui.

Change-Id: I7ad5d6ad684c6079b9d48ef28b9d77edf8abdf0c
ndroid/nfc/P2pEventManager.java
fb42b9f2d905015730f2e12772ed9a2a610a3957 10-Feb-2012 Isaac Levy <ilevy@google.com> Allow apps to selectively disable beam

if apps register a callback but return 'null', do not create the
default message.

Fixes b/5943350

Change-Id: I247bb7d508c15777904599c3a211c30e81351f15
ndroid/nfc/P2pLinkManager.java
2a576dd16a5688b6172d9951a4572d31c1345ad5 27-Jan-2012 Martijn Coenen <maco@google.com> Merge "LLCP 1.1 support."
3b82eef50f734cab061330f55de8b8bf5396f24b 27-Jan-2012 Martijn Coenen <maco@google.com> LLCP 1.1 support.

- Allow servicename for connectionless sockets;
- Pass in servicename in Bind() for both types;
- EchoServer: allow MIU=128 again since ATR_RES
fix was merged in libnfc-nxp
- EchoServer: fix reading from incorrect offset.

Change-Id: Ie77fe5b46e7a17435e6261c8b7400dcca4d3784a
ndroid/nfc/DeviceHost.java
ndroid/nfc/NfcService.java
ndroid/nfc/echoserver/EchoServer.java
ndroid/nfc/nxp/NativeNfcManager.java
ea78e5beebff19ece23870b4ff5e5fd69d61aaa1 24-Jan-2012 Nick Pelly <npelly@google.com> Don't need to pass the NdefMessage in dispatch().

Change-Id: Ib1463aa51b1ce48cf7217866cb7c11ab8caa4e06
ndroid/nfc/NfcDispatcher.java
ndroid/nfc/NfcService.java
550ef7b998f4185eaea992066e72409022ef096b 26-Jan-2012 Martijn Coenen <maco@google.com> Merge "LLCP echo server implementation."
391cfe2479eca2080c14d1832599ad51cafae918 05-Jan-2012 Nick Pelly <npelly@google.com> Rewrite NDEF dispatch path. It was getting pretty messy.

The dispatch sequence is identical, but the hierarchy of functions has been
collapsed. The flow now is:

dipsatchTag() ->
tryOverrides() ->
*** NDEF override ***
*** TECH override ***
*** TAG override ***
tryNdef() ->
*** AAR to NDEF ***
*** AAR to application launch ***
*** AAR to market launch ***
*** regular NDEF ***
tryTech() ->
*** TECH ***
*** TAG ***

o Fix bug where cancelling a pending intent would disable further foreground dispatch.
o Fix bug where a foreground process dying would not cancel override
o Assume one NdefMessage per tag in implementation methods

Change-Id: Iaf7a0a83076e4f540a5e55c9e628490570116b01
ndroid/nfc/DeviceHost.java
ndroid/nfc/NfcDispatcher.java
ndroid/nfc/NfcService.java
ndroid/nfc/nxp/NativeNfcTag.java
6f0e3b8e1de5137077127bf3144effa2016c27c6 17-Jan-2012 Martijn Coenen <maco@google.com> LLCP echo server implementation.

Can be used to test the Android LLCP stack with nfcpy. Disabled
by default.

Also fixed unnecessary JNI release call causing warnings in the
logs.

Change-Id: Iaed159e23dadc1601be2df2aadbe1d9c54c50615
ndroid/nfc/P2pLinkManager.java
ndroid/nfc/echoserver/EchoServer.java
1a037ff469a506d8918cac51d52c77ac789884f8 18-Jan-2012 Martijn Coenen <maco@google.com> Merge "Bring LLCP connectionless sockets back to life."
e008eba3b51c5303d52bf3e9e989dfd03b18435a 13-Jan-2012 Martijn Coenen <maco@google.com> Bring LLCP connectionless sockets back to life.

Useful for testing the connectionless part of the LLCP stack.

Change-Id: I76a7962526ec1e6ff463c938431229f89c545824
ndroid/nfc/DeviceHost.java
ndroid/nfc/LlcpPacket.java
ndroid/nfc/NfcService.java
ndroid/nfc/nxp/NativeLlcpConnectionlessSocket.java
ndroid/nfc/nxp/NativeNfcManager.java
1668f533e6a2f041703919bafa4c3ceee62dbc38 10-Jan-2012 Martijn Coenen <maco@google.com> Make airplane override for NFC persistent.

Make behavior identical to wifi/bluetooth.

Bug: 5455123
Change-Id: I8c10888b7d3129723c6520dc0e81fa1793ae542c
ndroid/nfc/NfcService.java
a262bb2acccd3687856eb2c171d976de98bb892f 15-Dec-2011 Joe Onorato <joeo@google.com> Use the new "appliance" ui mode configuration to determine whether to show nfc confirmation ui.

Change-Id: Iebad3ee6a40341b963ecf118f8d46f08b6478a25
ndroid/nfc/P2pEventManager.java
c9342fef947c49e247495b83f94f16d43cd3562c 13-Dec-2011 mike wakerly <mikey@google.com> NfcService: some trivial cleanups.

I noticed these while looking at something else.

- Removes unused imports; unthrown exceptions on some non-visible methods; dead
code.
- Tags a few stray interface implementations that lacked @Override.
- Removes unnecessary semicolons in a few place.
- Fixes one instance of ArrayList being used as a raw type.

Change-Id: I860921a3a4d003fd6d6fc1381c0813599f3caf26
ndroid/nfc/NfcService.java
ndroid/nfc/NfceeAccessControl.java
ndroid/nfc/P2pEventManager.java
ndroid/nfc/RegisteredComponentCache.java
ndroid/nfc/ndefpush/NdefPushServer.java
ndroid/nfc/nxp/NativeLlcpConnectionlessSocket.java
ndroid/nfc/nxp/NativeNfcManager.java
ndroid/nfc/nxp/NativeP2pDevice.java
ndroid/nfc/snep/SnepClient.java
a76d8ec1ab27f0955daed9e7a03fd3eb4c4092c7 01-Dec-2011 Nick Pelly <npelly@google.com> resolved conflicts for merge of 92250f5c to master

Change-Id: Ibad338d19e8b8c54ce02a0e347d1965dcf7b7008
92250f5cc5e34549985c31a053feff85b21c60c0 18-Nov-2011 Nick Pelly <npelly@google.com> Fix mismatched link()/unlink() causing NFC-EE to be stuck open.

The fix is to keep a strong reference to the IBinder (actually
a BinderProxy) from the caller while the NFC-EE is open.

The bug occurs when a GC occurs in NfcService while the NFC-EE
is open. The BinderProxy is destroyed before it has been unlinked.

Bug: 5684874
ndroid/nfc/NfcService.java
2a3f6f141fdaf746a81ce850a8ab0ef251041966 29-Nov-2011 mike wakerly <mikey@google.com> Fix two incorrect synchronized statements.

(credit: robtsai)

Change-Id: Ic628bd0c156cd88e0f18db46212c8ebdf4eaedf5
Bug: 5631907
ndroid/nfc/NfcService.java
a29693de1ad61da1cd01db18447157ac0573e5b4 28-Nov-2011 Martijn Coenen <maco@google.com> am 3a675100: Merge "Fix NdefFormatable not showing up for NfcA technologies." into ics-mr1

* commit '3a6751007b70265fc69019f59f308246cad76157':
Fix NdefFormatable not showing up for NfcA technologies.
3a6751007b70265fc69019f59f308246cad76157 28-Nov-2011 Martijn Coenen <maco@google.com> Merge "Fix NdefFormatable not showing up for NfcA technologies." into ics-mr1
841409b8ad298d34de24e584f3c152f023c3d2f4 28-Nov-2011 Martijn Coenen <maco@google.com> Fix NdefFormatable not showing up for NfcA technologies.

Regression from a patch applied long ago: the NfcA technology
used to have its higher-level type (Mifare / 4A) associated with it,
and the code that determined formatable used this. The patch
associated NfcA technology only with the 3A libnfc type, causing the
format check to return false for all of these types.

Change-Id: Idc02873de447b6d8121bff02af795a6a7f5058cf
ndroid/nfc/nxp/NativeNfcTag.java
772130a3db390936a4ad448c56780f167eaa401f 22-Nov-2011 Nick Pelly <npelly@google.com> am e1cadb0c: Merge "Replace vendor specific NfcGoogle.apk with generic Nfc.apk" into ics-mr1

* commit 'e1cadb0cb6d6741a8b0a94456a5324c6f4a6f64d':
Replace vendor specific NfcGoogle.apk with generic Nfc.apk
e1cadb0cb6d6741a8b0a94456a5324c6f4a6f64d 22-Nov-2011 Nick Pelly <npelly@google.com> Merge "Replace vendor specific NfcGoogle.apk with generic Nfc.apk" into ics-mr1
37bb7b23886d7c058f7e9589ee5522b4a467b1b0 21-Nov-2011 Nick Pelly <npelly@google.com> Replace vendor specific NfcGoogle.apk with generic Nfc.apk

The access control changes allow us to just use Nfc.apk with
the regular platform certificate, instead of the custom signed
NfcGoogle.apk. So we can compeltely get rid of vendor/google/apps/NfcGoogle
and just build it out of packages/apps/Nfc now.

The package name is also reverted from com.android.nfc3 to com.android.nfc

The NFC uid needs to get bumped (25 to 27) to allow the cert change.

Bug: 5608249
Change-Id: I4437dff96f2529f0b9e7d8e65c21359c3eeccd0b
ndroid/nfc/NfcService.java
ndroid/nfc/P2pEventManager.java
ndroid/nfc/SendUi.java
c171c42ca5de4b63f0a5b4f2de152d57fc0581ac 18-Nov-2011 Martijn Coenen <maco@google.com> am 806a7827: Merge "Also send NFCEE broadcasts to dynamically registered receivers." into ics-mr1

* commit '806a78272a812f274309bd902b319590a254a896':
Also send NFCEE broadcasts to dynamically registered receivers.
483f3065021c878468ab0921140aa9a2c89b4246 17-Nov-2011 Martijn Coenen <maco@google.com> Also send NFCEE broadcasts to dynamically registered receivers.

Bug: 5630129
Change-Id: I050283b6a8be0f564b34da0f8c08c6bb708f2501
ndroid/nfc/NfcService.java
b5ca7e7f3f4ec2bfad07bb9d7b6edb8d6bee7943 16-Nov-2011 Nick Pelly <npelly@google.com> am 2b093e93: Merge "Enable NFC-EE immediately when screen is on but locked." into ics-mr1

* commit '2b093e93f56f008413665e876a6189921a4a57b3':
Enable NFC-EE immediately when screen is on but locked.
2b093e93f56f008413665e876a6189921a4a57b3 16-Nov-2011 Nick Pelly <npelly@google.com> Merge "Enable NFC-EE immediately when screen is on but locked." into ics-mr1
fc87b4294aa0a2c85c2332a4c5229161a83961d8 29-Sep-2011 mike wakerly <mikey@google.com> Enable NFC-EE immediately when screen is on but locked.

Bug: 5375005
Change-Id: I072dfbca1fa8cdd25cf9232f2f0c82080aec767b
ndroid/nfc/NfcService.java
574f2781e70873388760adb43214c88a49c1f063 15-Nov-2011 Nick Pelly <npelly@google.com> am f4226b69: Merge "Add null check to aovid NPE on un-matched close()." into ics-mr1

* commit 'f4226b69c9e19d0329069b39d8ae2774fcbf88d1':
Add null check to aovid NPE on un-matched close().
f4226b69c9e19d0329069b39d8ae2774fcbf88d1 15-Nov-2011 Nick Pelly <npelly@google.com> Merge "Add null check to aovid NPE on un-matched close()." into ics-mr1
0571ce53451baf7d363703b6e3ac10bc885fc5bc 14-Nov-2011 Nick Pelly <npelly@google.com> Add null check to aovid NPE on un-matched close().

Also finish removing NFCEE permission, and fix a couple of style mistakes.

Change-Id: I4ec22469990de6661365c281db2e8cfd7ae413b0
ndroid/nfc/NfcService.java
0d00a83fcea7bf96e118d0271ed807a3f39f0bc4 11-Nov-2011 Nick Pelly <npelly@google.com> resolved conflicts for merge of ebf4b36e to master

Change-Id: I73a3025a35da21db6600b6e82c99836641e9bee7
1d9c95c9d31f71519d72b60e5af9cd64822ed87b 11-Nov-2011 Martijn Coenen <maco@google.com> am d9203771: Optimize soundpool use.

* commit 'd92037714c289cffb9ed1e6e6df36cd3b7292a21':
Optimize soundpool use.
ebf4b36e17dd0a63f293a618a6d1bcea98a69bd3 11-Nov-2011 Nick Pelly <npelly@google.com> Merge "Implement static white-list access control for NFC-EE." into ics-mr1
d92037714c289cffb9ed1e6e6df36cd3b7292a21 11-Nov-2011 Martijn Coenen <maco@google.com> Optimize soundpool use.

Share a single soundpool and release it when NFC is disabled.

Bug: 5590478
Change-Id: I858c9520bf6880e7d7c5920c12966d86108dd125
ndroid/nfc/NfcService.java
ndroid/nfc/P2pEventManager.java
c05387ef4e6d6d024b03254e7e2ea5ad001cf2d2 25-Oct-2011 Jeff Hamilton <jham@android.com> Implement static white-list access control for NFC-EE.

NFC service now has a build time array of package signatures and package names
that are allowed access to the NFCEE, removing the shared certificate
requirement.

See sample_nfcee_access.xml for the XML format.

Bug: 4515759
Change-Id: Ibf03e259137f2f4247ec5d31fb88b1090b013d32
ndroid/nfc/NfcService.java
ndroid/nfc/NfceeAccessControl.java
c9a17f611b2fb3ce84fb62f6df1ae78557dd0b19 07-Nov-2011 Martijn Coenen <maco@google.com> am f7a151e2: Merge "Remove static background image from Beam when no hw-acceleration." into ics-mr1

* commit 'f7a151e2fe02af5026d6aad37447f13bff60c56a':
Remove static background image from Beam when no hw-acceleration.
f7a151e2fe02af5026d6aad37447f13bff60c56a 07-Nov-2011 Martijn Coenen <maco@google.com> Merge "Remove static background image from Beam when no hw-acceleration." into ics-mr1
5c5ecd9d29a8598df2deaee1862e5f0eb23971f1 05-Nov-2011 Martijn Coenen <maco@google.com> am a2181682: Merge "Check for navigation bar when cropping Beam screenshot." into ics-mr1

* commit 'a21816821f6e1ff024cf93662150f8819bc5e3c9':
Check for navigation bar when cropping Beam screenshot.
9390cc0d7838d585f23b1d701a594394600495dd 05-Nov-2011 Martijn Coenen <maco@google.com> am 304a7304: Merge "Don\'t finish Beam animation again." into ics-mr1

* commit '304a7304fe4aeab2b915024a531238f1c3f246a8':
Don't finish Beam animation again.
a21816821f6e1ff024cf93662150f8819bc5e3c9 04-Nov-2011 Martijn Coenen <maco@google.com> Merge "Check for navigation bar when cropping Beam screenshot." into ics-mr1
d59b331655f0113dc0454aa5d000b269d7cf8b49 04-Nov-2011 Martijn Coenen <maco@google.com> Remove static background image from Beam when no hw-acceleration.

The Beam scale down animation on is really jerky on devices where
we can't use hardware acceleration. This seems to be due the fact
that we have a static background over which we scale. Removing it
makes the scaling nice and smooth.

Bug: 5567020
Change-Id: Id04bae45713eaa368d03001e5352271f47d26603
ndroid/nfc/SendUi.java
e3cfbec7045220294c172d55122daf55ab6cb058 04-Nov-2011 Martijn Coenen <maco@google.com> Check for navigation bar when cropping Beam screenshot.

This fixes the Beam animation on crespo.
Change-Id: I1bc374dc532a4e83622c62b31ee5b4de2b5fa3ba
ndroid/nfc/SendUi.java
4e0ab3174beafb4915388d8c11286a48e362ed7c 04-Nov-2011 Martijn Coenen <maco@google.com> Don't finish Beam animation again.

Bug: 5553836
Change-Id: I1bfd7e0aa3a1420decea7d793e851f44cb433cf2
ndroid/nfc/P2pEventManager.java
ndroid/nfc/SendUi.java
9993a5a96a862cea4512509b413d0de6cacb7c14 31-Oct-2011 Nick Pelly <npelly@google.com> Changes semantics of isNdefPushEnabled() - require NFC to be enabled.

Change-Id: I065411644c19e30f01ce93560fc7e37efe817fe0
ndroid/nfc/NfcService.java
f5c40bdbcabbe81fdf43a24cd82be919ffb5de04 11-Aug-2011 Jeff Hamilton <jham@android.com> Add event logs for NFC events. DO NOT MERGE

Bug: 5128799
Change-Id: I5607abe5d28ef9682afa084651c50aa651655b60
ndroid/nfc/EventLogTags.logtags
ndroid/nfc/NfcService.java
ndroid/nfc/P2pLinkManager.java
416e2fc507d696486a127f932105b3b95519d0cb 11-Aug-2011 Jeff Hamilton <jham@android.com> Add event logs for NFC events.

Change-Id: I5607abe5d28ef9682afa084651c50aa651655b60
ndroid/nfc/EventLogTags.logtags
ndroid/nfc/NfcService.java
ndroid/nfc/P2pLinkManager.java
94dc4266b48f757d39ed0396bf0af86cea7c206a 22-Oct-2011 Martijn Coenen <maco@google.com> Merge "NFC: Enable guard host timeout." into ics-mr0
56f2a7bc39a14487f01cbf2d131ba3cde4126f2d 20-Oct-2011 Martijn Coenen <maco@google.com> NFC: Enable guard host timeout.

Set to 255 ms, increase number of retries to 64.
Add dump() interface to native library

Change-Id: Ib3a32f70453f7f8b79ff89394410f56b4b9dd7a2
ndroid/nfc/DeviceHost.java
ndroid/nfc/NfcService.java
ndroid/nfc/nxp/NativeNfcManager.java
51c44537dd9c3fef019f031cc220ca225a360ef0 21-Oct-2011 Martijn Coenen <maco@google.com> Merge "Start all NFC activities from a dedicated root task." into ics-mr0
7bbabb2deebbc498c635f690c5283201da549247 19-Oct-2011 Martijn Coenen <maco@google.com> Fix crash when turning screen off and NFC is off.

Bug: 5480404
Change-Id: I52add3c89fc535bfc37bc8c12ed0f8f905cbe304
ndroid/nfc/NfcService.java
f955ec07aefda9d15b9a64afabedd8d927e0aff7 13-Oct-2011 Martijn Coenen <maco@google.com> Start all NFC activities from a dedicated root task.

Instead of launching NFC into existing tasks, always launch
into a clean task that is owned and controlled by the NFC process.

Bug: 5122560
Change-Id: Iea6022bb754bcc46e7ab3adb1b9ccc7fe20797e3
ndroid/nfc/NfcDispatcher.java
ndroid/nfc/NfcRootActivity.java
e0b5fcb7e6422d1a788c48dd8f2936832ab8b397 15-Oct-2011 Jeff Hamilton <jham@android.com> Make the crash on screen off less frequent.

The LLCP stack is still using globals without
holding the concurrency lock. When turning the
screen off we were previously disabling the
NFCEE routing before disconnecting the active
target. The routing code would grab the lock
and then touch the globals, which the LLCP
was using illegally, causing a crash when the
LLCP triggered callbacks are delivered.

This change reorders the shutdown at screen
off to disconnect the remote target before
issuing the change to the NFCEE routing in
an attempt to stop the ongoing LLCP
transactions, thereby avoiding the crash.
Since the callbacks are asynchronous the
race is still there, but it's hit more like
10% of the time instead of 100% of the time.

Bug: 5366024
Change-Id: I31230166c1c5bf116195db350ac6605feb90e87f
ndroid/nfc/NfcService.java
4dd3c020b434aec0ccca030afeb57a861bc9a2f3 14-Oct-2011 Martijn Coenen <maco@google.com> Final NFC animation tweaks.

Bug: 5318512
Change-Id: Iae150be1210bf25c1fc58b41ec24dc301547cf7f
ndroid/nfc/SendUi.java
90e1b000b385d7fa11481ddca4d61d6b425d7579 12-Oct-2011 Martijn Coenen <maco@google.com> NFC: Remove statusbar/navbar from animated screenshot.

This just crops the status bar and the navbar from the screenshot we take.
This makes the animation look right in all cases, except for when we are full screen:
in that scenario we're cropping away too much.

Also removed the clone view (was no longer used) and cleaned FireflyRenderer
a bit.

Bug: 5318512
Change-Id: I37189a576f19937c2cae4ec368f26ac0725a1b62
ndroid/nfc/FireflyRenderThread.java
ndroid/nfc/SendUi.java
707b268c2956836bf5c1136dc2fe6fba7045dcf4 10-Oct-2011 Brandon Keely <lbk@google.com> Merge "NFC screenshot animation adjustments: - eliminate discontinuous jump when starting failure animation (mScaleUpAnimator) - simplify success animation: fade live app in at scale=1, rather than scaling it back up - minor timing and motion curve tweaks"
674cd01fd74b403a4625efbfd2743e179c3d9eca 08-Oct-2011 Brandon Keely <lbk@google.com> NFC screenshot animation adjustments:
- eliminate discontinuous jump when starting failure animation (mScaleUpAnimator)
- simplify success animation: fade live app in at scale=1, rather than scaling it back up
- minor timing and motion curve tweaks

Change-Id: I1fd5989a6e58e493087653d3a865f774cfc2b32d
ndroid/nfc/SendUi.java
ff427045fbcdb1cc8c0fd4e286336a62e5a874e8 08-Oct-2011 Brandon Keely <lbk@google.com> Updated FireflyRenderThread to be more subtle and depthy.

Change-Id: I833c466e867b1c1c787654b0b3a42ebca27b7c14
ndroid/nfc/FireflyRenderThread.java
50effe4645b6ea57a1dc90777995f41dd9624e55 30-Sep-2011 Kenny Root <kroot@google.com> Add DUMP permissions check

Bug: 5389201
Change-Id: I8ddb60ebe63bcc01e0695868286ad4c7da4afa69
ndroid/nfc/NfcService.java
8e85fe445d229fba5d101b4f95fe0dfa34a8601e 28-Sep-2011 mike wakerly <mikey@google.com> NfcService: call enableAppSwitches for additional events.

This addresses the responsiveness issue identified in b/5140941

Change-Id: I8fad061be2e3f1006e4e2910db84c0a3360e2a0a
ndroid/nfc/NfcDispatcher.java
ndroid/nfc/NfcService.java
36a1e42f1811692fb734bc5f015e294eab0bed4c 26-Sep-2011 Jeff Hamilton <jham@android.com> Fix NFC to only be enabled when the lockscreen is dismissed.

Bug: 5300713
Change-Id: I93f0d75d159b3456e6fa8fc376d10493f25e3233
ndroid/nfc/NfcService.java
e31749eae9b242d5019eb5cf5f09069d60df9f71 22-Sep-2011 Nick Pelly <npelly@google.com> Show NFC call-to-action text immediately.

Pull out all the code the track success/failure for the hint.

Doing this as a standalone commit so we can easily revert if we want it back.

Bug: 5350022
Change-Id: Ieb70af10ebaabdf82421c128d72ed1fc374130d2
ndroid/nfc/P2pEventManager.java
ndroid/nfc/SendUi.java
90da9ab0f84df63e5cd1a2981645d649fd0303c5 22-Sep-2011 Martijn Coenen <maco@google.com> Fix fireflies on prime.

mStartTime was not initialized, which would cause a very large
positive value in mTimeRemaining, because it was only an int
and it wrapped. This caused the scale to be all wrong.

Fixed both issues.

Bug: 5350022
Change-Id: I49c987fb905c90998f5b9083b9c7590225b751c7
ndroid/nfc/FireflyRenderThread.java
ad60b90517cc8e21538ff35075fec7c151a3d8b9 14-Sep-2011 Martijn Coenen <maco@google.com> Remove first-share notification.

Bug: 5296866
Change-Id: I90ccb7127b61aa2242fdb5252cdacccc049d5081
ndroid/nfc/P2pEventManager.java
0fe7049a3224aa7b29cc980be07387e17607b0de 13-Sep-2011 Jeff Hamilton <jham@android.com> Manually port d77e05f7 from gingerbread:

Patch to perform a download at NfcService boot time

This patch permit, when NFC is off, to perform a download if the PN544
is not up to date

Change-Id: Iaa01e218ccd1e4cb18ef77d58c18348823135b1e
ndroid/nfc/DeviceHost.java
ndroid/nfc/NfcService.java
ndroid/nfc/nxp/NativeNfcManager.java
14a4b124592b50dcec47d9b07232fff0188a4e02 07-Sep-2011 Jeff Hamilton <jham@android.com> Include stopped apps when broadcasting SE events.

Bug: 5249686
Change-Id: I5b3f2708ef28de58655ac2901f85f0575210f01c
ndroid/nfc/NfcService.java
8745d0aefb801df1789bc70c5765b4b288b1e159 03-Sep-2011 Martijn Coenen <maco@google.com> Move receive animation back to scale up.

Change-Id: I00382a2cd085aa4c65eba33e9eab51c57882b838
ndroid/nfc/P2pEventManager.java
217edd31f93c3917a8bb02420366b88d27c431c2 02-Sep-2011 Martijn Coenen <maco@google.com> Render fireflies with OpenGL.

- Show a static (scaling in) background in case we're not hw-accelerated.
- Modify the cloning animation a bit.

Change-Id: I808238fb515c2c8d7832a4ab8bc70a37e1198de5
ndroid/nfc/FireflyRenderThread.java
ndroid/nfc/SendUi.java
f7966d1dadff2d78f01bbdb134e8252b53343179 03-Sep-2011 Dianne Hackborn <hackbod@google.com> Remove this unneeded (and gone) flag.

Change-Id: I5f6840359502ee1982ff84e9905b95f4c0ad094c
ndroid/nfc/SendUi.java
0c4fce176e6acb1a1a74e9248cf83eb0314490aa 01-Sep-2011 Martijn Coenen <maco@google.com> Latest zeroclick animations.

- Only hw-accelerate when we have the resources for it;
- Disallow status bar interaction;
- Remove background;
- On failure, gradually scale back up;
- On receive, slide out to the right.

TODO:
- OpenGL fireflies

Change-Id: I1deae65f24f40a226c8a575130ca22b72ff9e05e
ndroid/nfc/P2pEventManager.java
ndroid/nfc/SendUi.java
af9a4d3feabb5e785f8b5de8db60a343396617ef 27-Aug-2011 Nick Pelly <npelly@google.com> Merge "NFC service updates for moving NDEF push to a fragment."
bf6e5d1655d5ad524a8ec007413c7011ed969df8 19-Aug-2011 Martijn Coenen <maco@google.com> Support for getMaxTransceiveLength() API.

Maximum transceive length is enforced in calls to transceive.
Change-Id: I94a4f16283e5fd5df9143b02e52c16f868b1c3ab
ndroid/nfc/DeviceHost.java
ndroid/nfc/NfcService.java
ndroid/nfc/nxp/NativeNfcManager.java
ndroid/nfc/nxp/NativeNfcTag.java
0b3b8ab69835cb66c96691dae3ba9b75705980a5 24-Aug-2011 Nick Pelly <npelly@google.com> NFC service updates for moving NDEF push to a fragment.

enable()/disable() -> set()
ZeroClick -> NdefPush

Change-Id: I21806665b8fd29e4580bd2e3200858d834605f6f
ndroid/nfc/NfcDispatcher.java
ndroid/nfc/NfcService.java
ndroid/nfc/P2pLinkManager.java
be7d37a1c6622c8907869fd30e9e6da73fd77290 25-Aug-2011 Martijn Coenen <maco@google.com> Touch to send hint for NdefPush.

Show hint when:
- First time sharing (until successful again).
- 3 share failures (until successful again).
- 3 seconds in p2p range and no confirmation (fade in).

Change-Id: I413d45b76ee8588d4aa99351e34212ecc38d8f8e
ndroid/nfc/P2pEventManager.java
ndroid/nfc/SendUi.java
69ca6627125c91c44b9e0d8bfa5df83281c2ebe1 22-Aug-2011 Martijn Coenen <maco@google.com> NdefPush animations.

- Sound + vibration whenever devices enter range.
- Rebuilt old send animation - clone off in the background.
- Scale back up for receive, then call startActivity().
- Slowed down animations
- Split sending in two parts: first part is slow and played during
the actual send. When the send is done, the animation is accelerated
and finished. This has as an advantage that there is an immediate
response to the touch (instead of waiting till the send is done).
- Lock rotation.

TODO:
- Integrate firefly background.
- Touch to send hint.
- Tweak debounce time - somehow it still happens a lot
that the link is tore down, the debounce comes in, and
the link comes back up again just after 750ms, causing
flapping anyway.
- After a lot of tapping things seem to become very slow; I'm not
sure yet if this is due to NFC or other ICS code.
- See if we can really do without TYPE_SYSTEM_OVERLAY window params.

Change-Id: I93d472ed566b8201b65e9eee049467995f66e683
ndroid/nfc/P2pEventManager.java
ndroid/nfc/P2pLinkManager.java
ndroid/nfc/SendUi.java
3714e3430e3f44578d7799d163809ad0a77f7460 19-Aug-2011 Martijn Coenen <maco@google.com> Fix GB<->ICS sharing.

Should throw an IOException() whenever recv() failed. Also
changed recv error return value to be -1, to be more in line with
common sockets.

Change-Id: If65fe9e22c76f0a4558a9a6dedc0662bac038ee8
ndroid/nfc/nxp/NativeLlcpSocket.java
b2112cff553c3b6658440bf06060c7a08f82df5c 19-Aug-2011 Nick Pelly <npelly@google.com> First cut at reverting to tap-to-share.

A lot more polish to go, but this gest the basic tap-to-share
behavior working again.

Change-Id: Ic1f1df4200c9a1424018df7602fe5cb278cdc1e6
ndroid/nfc/HoldingItWrongUi.java
ndroid/nfc/P2pEventManager.java
ndroid/nfc/SendUi.java
8baa0db2201efa2d2d708eb82bf66acbf6974123 18-Aug-2011 Nick Pelly <npelly@google.com> Initialize LPF with first value, so that we have a better
chance of immediately triggering after 10 samples

Change-Id: I7884204c7e3aeaf6191f5bb05f60153f07b800c7
ndroid/nfc/P2pEventManager.java
d2a536159030a932486e6dfd93999f9e43f3566f 18-Aug-2011 Martijn Coenen <maco@google.com> Latest ShareTap UI: low-pass filter and animations.

Change-Id: If0c04284e1e6f1126f85a8bb58014ce553f4e52b
ndroid/nfc/HoldingItWrongUi.java
ndroid/nfc/P2pEventManager.java
ndroid/nfc/P2pLinkManager.java
5438ab0e17064e20870ac893a2dd2b9e1219eef1 18-Aug-2011 Nick Pelly <npelly@google.com> 0-click UI update

o New start sound
o Vibrate only when
- starting send
- send success
- receive success
o Play sound only when
- starting send
- send success
- send failure (out of range before complete)
- receive success
o Introduce HoldingItWrongUi with the new image
o P2pAnimationActivity -> SendUi, and a huge cleanup of it
- no longer an activity. It took 350ms to inflate the views on
first onCreate() as an activity, but we can cache this ahead
of time as a window.
- Use ObjectAnimator instead of ViewAnimator, much less code
o Use ACCELEROMETER instead of GRAVITY to get faster tilt detection.

TODO (in order of priority)
o LLCP has started crashing a lot again. About 1/10 times I come into
P2P range the stack crashes now on my Nexus S TMO.
At first I thought it was because I was doing animations during LLCP
send, which might affect timing to pn544 due to CPU load. So I changed
my first implementation (one animation) to split it into a pre-send
and post-send, so we don't do any work during the actual send. Still
seems to crash though. We really need to make it solid again.
o Change notification text and settings text+image as per Rachel's email
o Do some simple low-pass filter on ACCELEROMETER so we don't get caught
out when the user shakes the phone
o Plumb through a starting receive callback, and play sound + vibrate
o Prevent touch during send animations. Not a big deal right now because
we complete it so fast.
o Prevent notification shade from being pulled during HoldingItWrongUi
and SendUi
o Prevent orientation change during SendUi

Change-Id: Ieec1efb741244c68270e34a712c15c58621b1446
ndroid/nfc/DeviceHost.java
ndroid/nfc/HoldingItWrongUi.java
ndroid/nfc/P2pAnimationActivity.java
ndroid/nfc/P2pEventManager.java
ndroid/nfc/SendUi.java
0ea442671a5b3c178f522214c8d854b8021c7606 16-Aug-2011 Martijn Coenen <maco@google.com> Prevent NFC task transition animations.

This fixes the "black flashes" when starting/finishing
the NFC animation activity.

TODO:
- The status bar is "animated in" still, causing a brief white
rectangle where the status bar is.

Change-Id: Id99f3ecfe8695edcb6c02caa611731fa6e58a560
ndroid/nfc/P2pAnimationActivity.java
fb8d1457e8467d50f253cf88cc47fd88d02ea704 15-Aug-2011 Martijn Coenen <maco@google.com> Prevent rotation in animation activity.

Turns out setting configChanges="orientation" does not
actually prevent the orientation change - it just prevents
the activity from being restarted with a new intent. Restored
old code for locking orientation.

Change-Id: I136888f6424d3caf5081dd0a55087e263ccc88e4
ndroid/nfc/P2pAnimationActivity.java
ndroid/nfc/P2pEventManager.java
8a558ba19be56e71e6c2015dea862d150e6d07cb 13-Aug-2011 Nick Pelly <npelly@google.com> Implement Tap-to-Share and Tilt-to-Share (DropShare).

o Text says "Tap to Share", but tilting (the phone on top sends) also works.
o Move text to top. Remove arrows.
o First Accelerometer value takes ~700ms :(
o Only call onP2pSendComplete on success. If the send failed, we retry quietly.
This improves perceived reliability.
o Reduce debounce from 1000ms to 750ms.

TODO
o Never do orientation change while in the animation activity
o Get rid of black transition when entering/leaivng activity
o Figure out why it takes 700ms to get first accelerometer value
o Improve launch time of animation activity (sometimes it takes 3+ seconds)
o Consider going back to a window overlay?
o Make it snappy snappy snappy

Change-Id: Idbc8e4bb744051b7b69d234a51a3ce69e23b699f
ndroid/nfc/P2pAnimationActivity.java
ndroid/nfc/P2pEventManager.java
ndroid/nfc/P2pLinkManager.java
024ce7511607e332742ce7bc8eec65c5bcb674da 11-Aug-2011 Nick Pelly <npelly@google.com> Tweak arrow rotation.

Longer path, faster.

Change-Id: I09facd4a439c145f495e03c7145f7005c9e8a08a
ndroid/nfc/P2pAnimationActivity.java
3a596230af0e497ef5980441818fb1a20bacc74c 11-Aug-2011 Martijn Coenen <maco@google.com> Latest UX animations and cleanup of P2pAnimationActivity.

Change-Id: Ib24ea71f46087b6415204b222213fc9c8348f5fb
ndroid/nfc/P2pAnimationActivity.java
ndroid/nfc/P2pEventManager.java
77d0b56bfa6a4e4e1449c476a1141a7486f34ad9 11-Aug-2011 Nick Pelly <npelly@google.com> Decouple P2P link management from P2P UX management.

The goal is to make it easier to track the state of the P2P transfer, and
to make it easier to fine-tune UX (sound, vibration, animation) for P2P
transfer.

NdefP2pManager -> P2pLinkManager
It now only handles LLCP and NDEF logic (and no UX). It has a state machine to
track the state of the LLCP link, send and receive. It does debouncing on the
LLCP link. Events are surfaced to P2pEventManager through the P2pEventListener
interface.

P2pEventManager
Handles all UX (sound, vibration, animation) and send confirmation.
The current implementation uses Rotation to confirm send, and
P2pAnimationActivity to animate the send.

Change-Id: Ie498219857afe69403e90f09c77f4d6d1b24ffeb
ndroid/nfc/NdefP2pManager.java
ndroid/nfc/NfcDispatcher.java
ndroid/nfc/NfcService.java
ndroid/nfc/P2pAnimationActivity.java
ndroid/nfc/P2pEventManager.java
ndroid/nfc/P2pLinkManager.java
ndroid/nfc/ndefpush/NdefPushServer.java
ndroid/nfc/snep/SnepServer.java
d1936808c5f37f97fdb876836194ecbfe1cdfff5 10-Aug-2011 Nick Pelly <npelly@google.com> Address code review comments for "Increase priority of EnableDisableTask..."

Restore THREAD_PRIORITY_BACKGROUND.

Change-Id: Id33b3c9d38e04fd61a758b81e46d26ec22a1aae0
ndroid/nfc/NfcService.java
e5b26d522885ed1cc30c0820ca59ed7c44707987 09-Aug-2011 Martijn Coenen <maco@google.com> Move 0-click animations to activity.

- Start activity instead of window overlay;
- Implement "the real twist": need to twist back to share;
- Implement receive animation (slide out);
- General cleanup.

Change-Id: I3f6a015c2a73f309892a8c5c3b1ea1b133b54d42
ndroid/nfc/NdefP2pManager.java
ndroid/nfc/P2pAnimationActivity.java
ndroid/nfc/ScreenshotWindowAnimator.java
ndroid/nfc/ndefpush/NdefPushServer.java
ndroid/nfc/snep/SnepServer.java
4467dca5650a170af5020c10a8ccb25f86f1007f 10-Aug-2011 Nick Pelly <npelly@google.com> Increase priority of EnableDisableTask thread to fix FW download failures.

AsyncTask uses THREAD_PRIORITY_BACKGROUND, which is not responsive enough to
execute software I2C firmware download with the NXP PN544. Use
THREAD_PRIORITY_DEFAULT instead.

Software I2C uses the host processor to manually toggle the transport line
to indicate each bit. With THREAD_PRIORITY_BACKGROUND there might be high
latency between bits. The observed result is that we do not receive the
expected "00 00 00" response to a firmware write command - we hang and
timeout.

Change-Id: I525759837d26009c01304f60a420b5213443d959
ndroid/nfc/NfcService.java
ca7e72aaac66ce856c32aaffb8fd2163d7bb486a 10-Aug-2011 Nick Pelly <npelly@google.com> Fix bug where NfcAdapterExtras.get() always fails.

And improve some logging while we're at it.

Change-Id: Ia1f5c1a451690bfcf5b9af75e855c09164460561
ndroid/nfc/NfcService.java
31949217328bf2357ff044f0d18677fe588c790c 09-Aug-2011 Nick Pelly <npelly@google.com> A bunch of NfcService improvements.

o Make enable/disable async, notify with NfcAdapter.ACTION_ADAPTER_STATE_CHANGED
o Make NFC enabled/disabled a 4-state machine, managed in EnableDisableTask
o Airplane mode support: automatic disable/enable without persisting preference
o Rename SE reset to EE wipe for consistency, remove some dead code
o Allow EE wipe during airplane mode
o Fix thread-safety issues on mObjectMap and a few others
o Improve power on/off state machine in prepration for airplane mode support.
o Implement dump(): executed by "adb shell dumpsys nfc"

Change-Id: I408c38eae8fa1b55c3752cb3bdc1d22a49b5a1e6
ndroid/nfc/NdefP2pManager.java
ndroid/nfc/NfcService.java
57f4a1659a3b65e93081bb43ae2aefcda7ba00d8 08-Aug-2011 Nick Pelly <npelly@google.com> Merge "Turn on polling if NFC service restarts with screen on."
12585b616cb0f9cd176704a0d199c8aeb797a3df 08-Aug-2011 Martijn Coenen <maco@google.com> 0-click animations: "tap to send" and "tilt to send".

Change-Id: I771b97bc090ebce07eeb46807c8fb337be703513
ndroid/nfc/NdefP2pManager.java
ndroid/nfc/ScreenshotWindowAnimator.java
7de0a268571d786c492e7013d5485fafcc59afbd 07-Aug-2011 Nick Pelly <npelly@google.com> Turn on polling if NFC service restarts with screen on.

There was a bug where mScreenUnlocked is initialized incorrectly
when the screen is on.

Change-Id: Id1bc813f6927d23cc317c0f0da074c0cee160fe3
ndroid/nfc/NfcService.java
0840c4c1be3dc6edd285a6a38020b0f4eb1fdcba 05-Aug-2011 Martijn Coenen <maco@google.com> Merge "Launch application if already installed."
2429c20351e7a660b1fcb0b6c3d2558c05f6f5de 04-Aug-2011 Martijn Coenen <maco@google.com> New NFC animations.

Change-Id: If62df6f07d1282fe39a6f3ac3a67c7a264e2be77
ndroid/nfc/NdefP2pManager.java
ndroid/nfc/ScreenshotWindowAnimator.java
ndroid/nfc/ndefpush/NdefPushServer.java
222b8c18c4a9cf800f2dd615ef116f796ef7942c 03-Aug-2011 Martijn Coenen <maco@google.com> Launch application if already installed.

If app doesn't have a foreground NDEF message, both a Market URL
and an Android App NdefRecord will now be sent instead.
On the receiving side, if the app is already
installed, try to launch the apps main activity. If not possible,
go to market instead.

Change-Id: Iac1d27151d2cae8c561090c92177bca7bb5daa92
ndroid/nfc/NdefP2pManager.java
ndroid/nfc/NfcDispatcher.java
889e0c765c9f1581fca5b8e4f5a9d0005dcf4680 03-Aug-2011 Nick Pelly <npelly@google.com> Merge "Allow NDEF swap."
f2500d4518ac7c8b41a0f2ab5d0926196fbae6e1 03-Aug-2011 Nick Pelly <npelly@google.com> Allow NDEF swap.

Try normal NDEF dispatch even if the foreground activity pushed NDEF.

Change-Id: I6fd17ae14ff3e15b43ffdc9b0304c374ca981c51
ndroid/nfc/NdefP2pManager.java
ndroid/nfc/NfcDispatcher.java
9a900be8c4645f0c3c374b5e43fb313a26218503 02-Aug-2011 Jeff Hamilton <jham@android.com> Merge "Remove the binder interface for LLCP."
84b7f15e1a51c3ddd801aaf35bd5c7033e976d61 02-Aug-2011 Martijn Coenen <maco@google.com> Animations for 0-click send success / failure.

This implements the following behavior:
- The first part of the animation (the screen scaling down)
is always played and finished.
- Depending on the result, the following animation will either
pop the screen back to front (failure), or "clone and swap"
(success). Both animations will be fully played, except
if there is a new start() request, in which case they are ended
immediately.

The main reason to fully play both animations is that the LLCP
transfer typically completes very quickly, and with me profile
removed, none of the animations would ever be visible. I think
the animations are short enough not to be annoying, but we can
tweak depending on user feedback.
Change-Id: Iecd883fec43fad3eeb35f03b6076562b36a10fef
ndroid/nfc/NdefP2pManager.java
ndroid/nfc/ScreenshotWindowAnimator.java
4a61d3b45e81c0070538f94747a70a49c78f12fa 30-Jun-2011 Jeff Hamilton <jham@android.com> Remove the binder interface for LLCP.

Change-Id: I8d5fd546ecb07f005322eb5f173975dff7820439
ndroid/nfc/DeviceHost.java
ndroid/nfc/LlcpException.java
ndroid/nfc/NfcService.java
ndroid/nfc/ndefpush/NdefPushClient.java
ndroid/nfc/ndefpush/NdefPushServer.java
ndroid/nfc/nxp/NativeLlcpServiceSocket.java
ndroid/nfc/nxp/NativeLlcpSocket.java
ndroid/nfc/nxp/NativeNfcManager.java
ndroid/nfc/snep/SnepClient.java
ndroid/nfc/snep/SnepMessenger.java
ndroid/nfc/snep/SnepServer.java
5ce39aec169a275e814286372256277819593829 01-Aug-2011 Nick Pelly <npelly@google.com> Turn off ME Profile sharing & BT Dropbox.

Seems like it won't make the cut.

Change-Id: Iac7aa00debfe0d8118b28e8651abc200ce41d8ef
ndroid/nfc/BluetoothDropbox.java
ndroid/nfc/BluetoothMeProfileReceiver.java
ndroid/nfc/NdefP2pManager.java
ndroid/nfc/NfcService.java
209282e9b744f3b9390154ebb69ad5587ccc2688 01-Aug-2011 Nick Pelly <npelly@google.com> Minor cleanup: change private members to package.

- remove explicit /* package */ comments
- Change some Log.e to Log.w

Change-Id: Ibcebcc63cd5e14f3a3d9d1f2482295115667814c
ndroid/nfc/NdefP2pManager.java
ndroid/nfc/NfcService.java
f39dd4cf73e846cdc9523f70df5c12984930751f 01-Aug-2011 Nick Pelly <npelly@google.com> Fix bug: use foreground dispatch when ndef push is enabled via callback.

The previous code only checked for a static message, not the callback.

Change-Id: Ib0f2db42423ca8b11ece7f4b20adb7969911c8ba
ndroid/nfc/NdefP2pManager.java
ndroid/nfc/NfcDispatcher.java
d7722304dea9d7e8fd47ec8964773953622da8f8 29-Jul-2011 Jeff Hamilton <jham@android.com> Merge "Fix crash when screenshot fails."
a4509244d61c9fbe68aaaed5ebe6ab4738a52b59 29-Jul-2011 Jeff Hamilton <jham@android.com> Fix crash when screenshot fails.

Bug: 5094030
Change-Id: I8eebf6faa2937becd5277b97c71fccdf8bb8816b
ndroid/nfc/ScreenshotWindowAnimator.java
d11251b2d1fed7b7325c4fcb0616b2d1c654320f 28-Jul-2011 Martijn Coenen <maco@google.com> Pop up notification on first succesful Tap to Share.

Change-Id: Id2ddeea908af1159e5738e52a92f7f9818496761
ndroid/nfc/NfcService.java
0429f95d2f5502b3660bd4e3bd68bd5755960640 27-Jul-2011 Jeff Hamilton <jham@android.com> Merge "Play an animation for outbound NFC P2P."
70bbea61637e3f9eb7202efd243b9d2f9516a06a 26-Jul-2011 Nick Pelly <npelly@google.com> resolved conflicts for merge of 5057a591 to master

While I was there, rework of NativeNfcTag.findAndReadNdef()

Change-Id: I971403d880f281c8f64d2f9ed60756f6e692e9ae
d2d5dddf17ac2008547172cd72faa034a89d569b 22-Jul-2011 Jeff Hamilton <jham@android.com> Play an animation for outbound NFC P2P.

Clean up NFC service sound playing.

Cancel P2P tasks when the LLCP link is broken.

Bug: 4941390
Change-Id: I0710bc7dd9d09ed47a540cb4739890bcc3a4f905
ndroid/nfc/NdefP2pManager.java
ndroid/nfc/NfcService.java
ndroid/nfc/ScreenshotWindowAnimator.java
ndroid/nfc/ndefpush/NdefPushClient.java
5057a59181dc0e814a219fe18fc356b7c72772cc 26-Jul-2011 Daniel Tomas <dtomas.nxp@gmail.com> am 2c3f9be8: Patch to manage TARGET_LOST status in case of Multiple protocol tag

* commit '2c3f9be8111dd454e430ffb327c051ff9d2bba21':
Patch to manage TARGET_LOST status in case of Multiple protocol tag
2c3f9be8111dd454e430ffb327c051ff9d2bba21 15-Jul-2011 Daniel Tomas <dtomas.nxp@gmail.com> Patch to manage TARGET_LOST status in case of Multiple protocol tag

Plumb status codes up through the stack.

Change-Id: Id30e69fff3bb56082ab29d42f166cb12c3061857
ndroid/nfc/NativeNfcTag.java
ndroid/nfc/NfcService.java
c453ec5c13669ebb8cbaa3f205f2db61671b1bab 21-Jul-2011 Nick Pelly <npelly@google.com> Do foreground 0-click before preparing Bluetooth for dropbox.

This makes 0-click fast when Bluetooth is off.

Change-Id: I3ced104ddbf54abe9dd072b88871d2ca8a94919e
ndroid/nfc/NdefP2pManager.java
e063132e40dc788f0b471ed3832f5fbaebd7e463 21-Jul-2011 Martijn Coenen <maco@google.com> Fix synchronisation for 0-click setting.

Change-Id: I25fa9ff4430267dd5822f226d1ac8f19fb9a4c05
ndroid/nfc/NfcService.java
d9567994fefe21743131adc7390acdb97f81ed67 21-Jul-2011 Martijn Coenen <maco@google.com> Support for enabling/disabling zero-click sharing.

Change-Id: Ibf05dca23174952e412afdd2c90ca9efad31d3a0
ndroid/nfc/NfcService.java
bb685417895d440e1e3a5f19bbbe36139db3fd9a 21-Jul-2011 Martijn Coenen <maco@google.com> Merge "Support for getTimeout() (NFC service)."
df55e2912aed6fc81b19958f1b825e7d693d5cf3 21-Jul-2011 Jeff Hamilton <jham@android.com> Remove the My Tag handling.

Bug: 5048185
Change-Id: Ic25091ee4975d1c601e0f56abda5ae25c09a62f8
ndroid/nfc/NfcService.java
8d6a8dce6706c6c6b3158101f2f3e94a1e0ad946 01-Jul-2011 Ben Dodson <bjdodson@google.com> Bluetooth dropbox for out-of-band transfers

Use dropbox for ME profile.

Transiently turn on Bluetooth.

Change-Id: I81556a67872e7e0ac7c66c0376549adc5f0c168d
ndroid/nfc/BluetoothDropbox.java
ndroid/nfc/BluetoothMeProfileReceiver.java
ndroid/nfc/NdefP2pManager.java
ndroid/nfc/NfcService.java
358d8b6ad611aba11e69a3b1dd9d132dbc9a7605 20-Jul-2011 Martijn Coenen <maco@google.com> Support for getTimeout() (NFC service).

Bug: 4492175
Change-Id: I289e40d1527e7b570e8fd46f9968094b92a31902
ndroid/nfc/DeviceHost.java
ndroid/nfc/NfcService.java
ndroid/nfc/nxp/NativeNfcManager.java
a39fb7629fdaafbf728cc484facac6d64d2f2170 15-Jul-2011 Nick Pelly <npelly@google.com> am 9e6b5d1f: am b3d770c4: Merge "- Properly initialize NfcService.mEeRoutingState to ROUTE_OFF . This allows NfcAdapterExtras.getCardEmulationRoute() to properly return ROUTE_OFF when the service restarts." into gingerbread

* commit '9e6b5d1f092fab35e497f81035586afae529cda6':
- Properly initialize NfcService.mEeRoutingState to ROUTE_OFF . This allows NfcAdapterExtras.getCardEmulationRoute() to properly return ROUTE_OFF when the service restarts.
9e6b5d1f092fab35e497f81035586afae529cda6 15-Jul-2011 Nick Pelly <npelly@google.com> am b3d770c4: Merge "- Properly initialize NfcService.mEeRoutingState to ROUTE_OFF . This allows NfcAdapterExtras.getCardEmulationRoute() to properly return ROUTE_OFF when the service restarts." into gingerbread

* commit 'b3d770c4ff05992f81f2d172e6d2c514443674a5':
- Properly initialize NfcService.mEeRoutingState to ROUTE_OFF . This allows NfcAdapterExtras.getCardEmulationRoute() to properly return ROUTE_OFF when the service restarts.
eab09ad7204fe1f0feaca33efccf75c1bb388708 13-Jul-2011 Robert Tsai <robtsai@google.com> - Properly initialize NfcService.mEeRoutingState to ROUTE_OFF . This allows
NfcAdapterExtras.getCardEmulationRoute() to properly return ROUTE_OFF when
the service restarts.

Change-Id: I833bb2afae06778a0e4bdd5f5d25374636885f42
ndroid/nfc/NfcService.java
ea9898eb8041802bca345b59de9e0e9302e8232b 13-Jul-2011 Ben Dodson <bjdodson@google.com> Launch ACTION_MAIN intents that don't support CATEGORY_DEFAULT.

Change-Id: Ie191aaff29d11fe9f65038f8ed5a5c13b3c54ed1
ndroid/nfc/NfcDispatcher.java
4f7fd877ad07949ded0d4e9e126852ad84daab92 12-Jul-2011 Nick Pelly <npelly@google.com> Merge "Allow dispatch to a specific package"
b442e5fc49f235c228d3989c73e333d58caa2ade 06-Jul-2011 Ben Dodson <bjdodson@google.com> Allow dispatch to a specific package

Change-Id: I511dd319dd1568ef7b59621b30a2ff144978e69c
ndroid/nfc/NfcDispatcher.java
6ec87aa54aad2c340c4ea0247ba4a8e0d9f10573 08-Jul-2011 Nick Pelly <npelly@google.com> Fix issue: NFC polling does not start on screen on with unlocked keyguard

The logic at ACTION_SCREEN_ON was wrong.

Change-Id: I992ec9ac851ce4f803b7c17b6ee3488a8b94aa92
ndroid/nfc/NfcService.java
1299bfa9e16265e34f7e70066831c8a1fcb26479 01-Jul-2011 Jeff Hamilton <jham@android.com> Merge "Add the NDEF tech for tags coming in over P2P."
aca0d055a82da850c27f6872405602ad5f3fee7b 01-Jul-2011 Jeff Hamilton <jham@android.com> Add the NDEF tech for tags coming in over P2P.

Change-Id: I56a51cf9dbf2b0be7f4e1391188cb8e73fc61be4
ndroid/nfc/NfcService.java
e941fed258e3b66494238cf75b8baaa2d877e2c5 30-Jun-2011 Nick Pelly <npelly@google.com> resolved conflicts for merge of 23cb1387 to master

Change-Id: Id0fbebca8ace7425a28bd34b5689b3724ccf69fa
23cb1387feb20ac89f08dc2d84840013fe33bb56 29-Jun-2011 Nick Pelly <npelly@google.com> am e7a398f2: Do not change NFC on/off preference while executing SE reset.

* commit 'e7a398f2f0256a4a80a4ee08b70d48dbfd8da6d2':
Do not change NFC on/off preference while executing SE reset.
e7a398f2f0256a4a80a4ee08b70d48dbfd8da6d2 29-Jun-2011 Nick Pelly <npelly@google.com> Do not change NFC on/off preference while executing SE reset.

Bug: 4967769
Change-Id: I7a72cbe831d4b3f44bed7feeea8abaf468cdc19b
Signed-off-by: Nick Pelly <npelly@google.com>
ndroid/nfc/NfcService.java
442cad40a205a63ea8797fbccaee99b2e8ab89ab 29-Jun-2011 Nick Pelly <npelly@google.com> Properly merge b5165e13 to master.

Change-Id: I3b7019e94346046d4e0834531651c372c754e0a3
ndroid/nfc/DeviceHost.java
ndroid/nfc/NfcService.java
ndroid/nfc/nxp/NativeNfcManager.java
bcda16f34e26f6458241b7d8452f71206a7b18df 29-Jun-2011 Nick Pelly <npelly@google.com> resolved conflicts for merge of b5165e13 to master

Change-Id: Ie4f9f57b7969979a4db2ddcb795aed9fc3cd592b
b5165e13f6cd0b9857793c243f1659ec0a671ba2 29-Jun-2011 Daniel Tomas <dtomas.nxp@gmail.com> am 2c37e6a8: Patch to support New PN544 firmware events in the NfcService

* commit '2c37e6a839cecf5638911af357a2ea7aec6093a5':
Patch to support New PN544 firmware events in the NfcService
2c37e6a839cecf5638911af357a2ea7aec6093a5 21-Jun-2011 Daniel Tomas <dtomas.nxp@gmail.com> Patch to support New PN544 firmware events in the NfcService

Change-Id: I4fe95c6cff9c50eef64bd99de415e66e7174b46a
ndroid/nfc/NativeNfcManager.java
ndroid/nfc/NfcService.java
3ce24c1ee901cd3884aa1353fe4cb7d78e19c42a 24-Jun-2011 Dave Santoro <dsantoro@google.com> Remove unnecessary param from profile vcard URI.

The profile/vcard URI already restricts itself to the user's
"me" profile. The extra parameter is only necessary if the
caller is asking for the profile contact to be allowed to be
returned in a list of contacts.

Change-Id: I286e94dffb853f87230a398a75c06ad7039f4e86
ndroid/nfc/NdefP2pManager.java
ce77cf9b062cc749f488994cefd958e23994d60e 23-Jun-2011 Nick Pelly <npelly@google.com> Properly merge SE reset timeout fix.

Change-Id: Id429b51625a4ce19851629b82cbc80f00a8ddd98
ndroid/nfc/NfcService.java
51d1cb0d642b1ea52d181c8e3f7ef9853c07e2ec 23-Jun-2011 Nick Pelly <npelly@google.com> resolved conflicts for merge of d15714ce to master

Change-Id: Ifd4087685f8ba170af54e0d9c67ae7ae1f49260c
157d22b8be7cd29f10ab324c1b37c7a8714be2fc 23-Jun-2011 Ben Dodson <bjdodson@google.com> Hack to fix broken build

Change-Id: I8337c21e02c9e45365f929b20d1ceb9ef6aebb14
ndroid/nfc/NfcService.java
7ee8775d5af5851664771e1dcde376b4814f7e2f 23-Jun-2011 Daniel Tomas <dtomas.nxp@gmail.com> am 10577281: am 85a8366a: Set the transceive timeout to 10s when executeSeReset() is called

* commit '1057728122c5fda8988ef39bdbad83d7fda7c0d6':
Set the transceive timeout to 10s when executeSeReset() is called
32cdff503e206b6753c6cf020c545163a43bcaa1 21-Jun-2011 Martijn Coenen <maco@google.com> Exchange me profile over NFC using android SNEP service.

This is Ben's patch with some small modifications:
- Added code to retrieve the me profile and transmit/receive it;
- Moved local SAP definitions for more clarity.
- Removed sending of my tag.

Change-Id: Ica85b4491206526e89bc34c23479f9d4489ed1cf
ndroid/nfc/NdefP2pManager.java
ndroid/nfc/NfcService.java
ndroid/nfc/ndefpush/NdefPushServer.java
d15714ceaaae6e67b674afac66593683574fd403 21-Jun-2011 Nick Pelly <npelly@google.com> am 5a8844da: NfcService updates for NfcAdapterExtras API change.

* commit '5a8844da9bc569aa7289426bf7b96e7eef90abf5':
NfcService updates for NfcAdapterExtras API change.
1057728122c5fda8988ef39bdbad83d7fda7c0d6 21-Jun-2011 Daniel Tomas <dtomas.nxp@gmail.com> am 85a8366a: Set the transceive timeout to 10s when executeSeReset() is called

* commit '85a8366a75041491a22928f65357c69d112c9925':
Set the transceive timeout to 10s when executeSeReset() is called
5a8844da9bc569aa7289426bf7b96e7eef90abf5 17-Jun-2011 Nick Pelly <npelly@google.com> NfcService updates for NfcAdapterExtras API change.

(removing registerTearDownApdus(), adding authenticate())

Change-Id: Ie1b0f7f088317ff3e52721158b0e588dfda14ce4
ndroid/nfc/NfcService.java
85a8366a75041491a22928f65357c69d112c9925 17-Jun-2011 Daniel Tomas <dtomas.nxp@gmail.com> Set the transceive timeout to 10s when executeSeReset() is called

Change-Id: Id89207194a87e918aee2493c8c0fa93a97a1ff4a
ndroid/nfc/NfcService.java
7afc1ad4fcc31020e20a006ce88ad5a28b38e56b 20-Jun-2011 Ben Dodson <bjdodson@google.com> Merge "Close SNEP socket on IOException."
9e52520889fa9ee7d045180504faadf0e3c70264 20-Jun-2011 Jason parks <jparks@google.com> Merge commit '52eadbdd' into nfc

Conflicts:
src/com/android/nfc/NfcService.java

Change-Id: I0cd15dbdc3540cb469d6fc13550006e1ab43b90f
0a0a2428190767616e00435930a566d7cb76888f 20-Jun-2011 Martijn Coenen <maco@google.com> Close SNEP socket on IOException.

Change-Id: I94b155f80bcb70204d2b15b1bf11a6ec9df6236d
ndroid/nfc/snep/SnepClient.java
79414359cbf9be51a97963ddbee3fd29dcdeb009 18-Jun-2011 Ben Dodson <bjdodson@google.com> Merge "Close sockets on failure"
d704c298a5a1e783c71db6f39b2eef0a909b0e88 17-Jun-2011 Jeff Hamilton <jham@android.com> Play sounds for start, end, and error.

This needs some cleanup to handle the
error states better, but works ok for now.

Change-Id: I803c339de593acfe5bb7f1007a965f203e0e1a30
ndroid/nfc/NfcDispatcher.java
ndroid/nfc/NfcService.java
d1246caeb5eb22aeb7e411e357e89ec945be1d87 17-Jun-2011 Ben Dodson <bjdodson@google.com> Close sockets on failure

Change-Id: I66ec6b12ba6847948e6a69857ea2d9e3c5ee2e17
ndroid/nfc/NdefP2pManager.java
ndroid/nfc/snep/SnepClient.java
52eadbdda8fd2c8fe6f2f6327e5268e3b2b9f3cf 17-Jun-2011 Jason parks <jparks@google.com> am 84e1e0ad: Reset the SE when a package that accessed it is uninstalled.

* commit '84e1e0adc2516afd35ebab029a52e764e0490559':
Reset the SE when a package that accessed it is uninstalled.
84e1e0adc2516afd35ebab029a52e764e0490559 17-Jun-2011 Jason parks <jparks@google.com> Reset the SE when a package that accessed it is uninstalled.

Bug: 4487211
Change-Id: Iad5c641926eb0e121d630d16f8ce02b8b9713cd3
ndroid/nfc/NfcService.java
f10df01e4ab7ba48556aed137a8f33d79a398a87 17-Jun-2011 Ben Dodson <bjdodson@google.com> Merge "Updates for SnepServer thread safety"
7e5d9e8a0d68930074d1090d8403a7cc61bfa84f 17-Jun-2011 Ben Dodson <bjdodson@google.com> Updates for SnepServer thread safety

Change-Id: Iea481089edf1a59f738367ec7e6a57c6403d96fd
ndroid/nfc/snep/SnepServer.java
9582ec8978fadc48ac78d9b1daafb481f0a787da 17-Jun-2011 Ben Dodson <bjdodson@google.com> Merge "automatically share packages of user apps that don't support nfc"
ece57f1277161ca58b978e3f49310ce440151a41 16-Jun-2011 Ben Dodson <bjdodson@google.com> automatically share packages of user apps that don't support nfc

Change-Id: I531d8cb50a334a93f0e44f90cbab4ebc1f70d4b2
ndroid/nfc/NdefP2pManager.java
ndroid/nfc/NfcService.java
51263896cc43b13d52140d25cced000f7bf6bd2f 16-Jun-2011 Ben Dodson <bjdodson@google.com> Merge "Finer-grained synchronization"
154fcb2b2bca5dfb27bb251efee8f13f1ebe56f8 16-Jun-2011 Ben Dodson <bjdodson@google.com> Finer-grained synchronization

Change-Id: Ia69d2500c160fc7cacfbf8729d4e717b3676fcf2
ndroid/nfc/snep/SnepClient.java
ndroid/nfc/snep/SnepMessenger.java
2083287b83a587d8f6e9ad829ea18041dc17d842 16-Jun-2011 Nick Pelly <npelly@google.com> resolved conflicts for merge of 8bda4f3e to master

Change-Id: I558cc850a3d799271c733807ca63a66487db2839
8bda4f3eb1e87aa967caed38e21274c6deb40ee6 16-Jun-2011 Nick Pelly <npelly@google.com> am 2edb3ee5: Fix NFC service wake-lock, again.

* commit '2edb3ee5e28ab719a3bb17b8d76b2b588405be9a':
Fix NFC service wake-lock, again.
2ef360deaff9f17aa72d5749ceee283cc80897af 15-Jun-2011 Ben Dodson <bjdodson@google.com> Merge snep p2p to master

Change-Id: Ic629c9a2ad348c1f352f39d7fc2be04edcf627e7
ndroid/nfc/NdefP2pManager.java
ndroid/nfc/NfcDispatcher.java
ndroid/nfc/NfcService.java
ndroid/nfc/ndefpush/NdefPushClient.java
ndroid/nfc/snep/SnepClient.java
ndroid/nfc/snep/SnepException.java
ndroid/nfc/snep/SnepMessage.java
ndroid/nfc/snep/SnepMessenger.java
ndroid/nfc/snep/SnepServer.java
f6c56a2191d58e3f9f68e3e7d94908b04b9b66ff 14-Jun-2011 Jeff Hamilton <jham@android.com> First pass at an abstraction of the NFC stack.

This moves some of the stack functionality
behind interfaces that the NFC service uses.

Change-Id: Ia377b8d0b9f57a25ac72a5f650fd25c35df72de0
ndroid/nfc/DeviceHost.java
ndroid/nfc/NfcService.java
ndroid/nfc/nxp/NativeNfcManager.java
ndroid/nfc/nxp/NativeNfcTag.java
ndroid/nfc/nxp/NativeP2pDevice.java
81c476dd93f059d4082c15369894d5d16fbea05d 14-Jun-2011 Jeff Hamilton <jham@android.com> Relocate the libnfc-nxp Java bridge sources.

Change-Id: I0b743245d60bf9c47ce84ec0ab7fd8c5b6202ec9
ndroid/nfc/NativeLlcpConnectionlessSocket.java
ndroid/nfc/NativeLlcpServiceSocket.java
ndroid/nfc/NativeLlcpSocket.java
ndroid/nfc/NativeNfcManager.java
ndroid/nfc/NativeNfcSecureElement.java
ndroid/nfc/NativeNfcTag.java
ndroid/nfc/NativeP2pDevice.java
ndroid/nfc/NfcService.java
ndroid/nfc/nxp/NativeLlcpConnectionlessSocket.java
ndroid/nfc/nxp/NativeLlcpServiceSocket.java
ndroid/nfc/nxp/NativeLlcpSocket.java
ndroid/nfc/nxp/NativeNfcManager.java
ndroid/nfc/nxp/NativeNfcSecureElement.java
ndroid/nfc/nxp/NativeNfcTag.java
ndroid/nfc/nxp/NativeP2pDevice.java
fbd90779b1525b254726eb58d07883ca74e1b21c 09-Jun-2011 Martijn Coenen <maco@google.com> Support for setting the NfcA transceive timeout (NFC Service).

Change-Id: Iec7b949f487f3b9cdd4729ce99c3a4b2718b9b6a
ndroid/nfc/NativeNfcManager.java
ndroid/nfc/NfcService.java
2edb3ee5e28ab719a3bb17b8d76b2b588405be9a 13-Jun-2011 Nick Pelly <npelly@google.com> Fix NFC service wake-lock, again.

1) Put a watchdog on the NFC Service disable path.
All the bug-reports show we were stuck in _disable(), watch-dog
this path (10 seconds).

2) Only attempt a SE reset once, even if it fails the first time.
All the bugs reports should the _disable() was due to SE reset
on first boot.

3) Grab the NFC service lock before the wake-lock.
So even if someone has NFC service lock, at least we don't
hold a wake-lock waiting for it.

Bug: 4581084
Change-Id: Ic9829dddde8d0c67cf0e8e4912357fa2902faa11
ndroid/nfc/NativeNfcManager.java
ndroid/nfc/NfcService.java
7efbf69a37134ccbd86a1f6b4121f16b4a80eaae 09-Jun-2011 Nick Pelly <npelly@google.com> Moar NfcService cleanup.

- Pulled polling loop configuration out of NfcService, to NativeNfcManager.cpp
- Removed lots of dead code

Change-Id: Id8d3b590feb24e6065d4afa34f004d9afbacbe5a
ndroid/nfc/NativeLlcpConnectionlessSocket.java
ndroid/nfc/NativeLlcpServiceSocket.java
ndroid/nfc/NativeLlcpSocket.java
ndroid/nfc/NativeNfcManager.java
ndroid/nfc/NativeNfcSecureElement.java
ndroid/nfc/NfcService.java
c8288824e2f5513dfe59b78d5f3af7757a1945b4 09-Jun-2011 Nick Pelly <npelly@google.com> resolved conflicts for merge of 8b3098bd to master

Change-Id: I37daa2d765857c007b7b310510afc621a2aa0699
361e9868d0dd529c95b35536c2749bfaf4df34cb 09-Jun-2011 Martijn Coenen <maco@google.com> Merge "Added support for rediscovering a Tag."
8586b104c1cf07c52c739c0afab0ded1bf151859 09-Jun-2011 Nick Pelly <npelly@google.com> resolved conflicts for merge of fe817189 to master

Change-Id: I42b37768e9f66e959b5487e4e5409e517202d63a
e332f38f8a2e419cc1e09316668e436790fa99bf 08-Jun-2011 Nick Pelly <npelly@google.com> Merge "Slay the NfcService beast, part one."
76a412f47ff57ce05d84fd51adbf8e72fd37a448 08-Jun-2011 Nick Pelly <npelly@google.com> Slay the NfcService beast, part one.

Split out dispatch code into NfcDispatcher.java. It can be pulled out
cleanly.

Move URI field construction into framework.

Change-Id: Ia70c06c5f469b370c532905e1c02f71149cb9ecc
ndroid/nfc/NfcDispatcher.java
ndroid/nfc/NfcService.java
dfebdbf803bf01404255f964e571056aa84173ca 18-Jan-2011 Martijn Coenen <martijn.coenen@nxp.com> Implement Felica timeout handling (NFC service).

NFC service interface to set the Felica timeout from the API.
Refactored timeout resets to single method - assuming access
to the SE in wired mode is exclusive with normal tag access,
this should be no problem.

Change-Id: I4a4d1c2c6db12582e5ff6cca325fd14fcf286282
ndroid/nfc/NativeNfcManager.java
ndroid/nfc/NfcService.java
3fb14d0868594c78a777e805545209636814e223 02-Jun-2011 Martijn Coenen <maco@google.com> Added support for rediscovering a Tag.

This adds basic support for rediscovering the currently connected tag.
At the moment rediscovering the same tag is not well supported by libnfc.
The real usecase for rediscover is actually run-time adding and/or
removing the Ndef and NdefFormatable technologes, and since we detect
these in the upper layers of the stack anyway this makes the
implementation a lot simpler.

This change also required a cleaner split between connected technologies
and connected handles. Connected technologies are something that only
the Java part of the API is concerned with. Each technology is mapped
to a handle, which is how libnfc refers to a tag. Previously we used
the connected technology to derive the connected libnfc handle, but
since this change allows run-time removal of technologies *without*
disconnecting from a handle we need to keep track of them separately.

Bug: 3378764
Change-Id: If4725fa266eb37aa17aa67b31491f4bd77b1ee68
ndroid/nfc/NativeNfcTag.java
ndroid/nfc/NfcService.java
8b3098bd06dd781785c33f5bf73318c44181c89c 08-Jun-2011 Nick Pelly <npelly@google.com> am dfac80d2: Fix regression in NFC-EE close() cleanup path for dead applications.

* commit 'dfac80d25dd2816ad5af74cc4131b74134cc81b7':
Fix regression in NFC-EE close() cleanup path for dead applications.
fe817189a246e2b3c4a90d1d84c023e89030e1f2 07-Jun-2011 Nick Pelly <npelly@google.com> am aa122139: Make sure NFC stack is initialized before attempting SE reset.

* commit 'aa122139d77645149c09c9815fd45e7b87ce7170':
Make sure NFC stack is initialized before attempting SE reset.
bad4dcc454a064f0c062f097d567a57633d1cb30 07-Jun-2011 Jeff Hamilton <jham@android.com> am 30f997de: am b8318ada: Merge "Fix a bug with absolute URI processing." into gingerbread

* commit '30f997de5f25657e583eda87de8b56638ec49884':
Fix a bug with absolute URI processing.
74e93e30798ab9b2110f54755bc98423b43a56f5 07-Jun-2011 Nick Pelly <npelly@google.com> resolved conflicts for merge of f9283b76 to master

Change-Id: I49fe4e5c1d331c5b2fb1aa41b13a625e95e8c45a
afd2f415bfe17c572718c28a27e5dcd1cef8f3a8 06-Jun-2011 Martijn Coenen <maco@google.com> Merge "Throw unsupported exception when connecting to NfcB."
c639df04b45232109d7112642fa17c3510b763b6 06-Jun-2011 Jeff Hamilton <jham@android.com> am 389c8d8a: am 21ee4b2e: Add support for TNF_EXTERNAL in NDEF_DISCOVERED intents.

* commit '389c8d8ae8d4fbb8c61ff5b6d29fc17481601d58':
Add support for TNF_EXTERNAL in NDEF_DISCOVERED intents.
30f997de5f25657e583eda87de8b56638ec49884 06-Jun-2011 Jeff Hamilton <jham@android.com> am b8318ada: Merge "Fix a bug with absolute URI processing." into gingerbread

* commit 'b8318ada928026f1d118ec918260796106b83dd2':
Fix a bug with absolute URI processing.
f9283b76369100d9aa1af47d4ab8945950f52465 06-Jun-2011 Nick Pelly <npelly@google.com> am d30c5d61: Merge "Use a hardcoded SE reset script." into gingerbread

* commit 'd30c5d615023201735d251ae14324105b220fe04':
Use a hardcoded SE reset script.
389c8d8ae8d4fbb8c61ff5b6d29fc17481601d58 06-Jun-2011 Jeff Hamilton <jham@android.com> am 21ee4b2e: Add support for TNF_EXTERNAL in NDEF_DISCOVERED intents.

* commit '21ee4b2e782188cbc8e8b7752dd992844a904615':
Add support for TNF_EXTERNAL in NDEF_DISCOVERED intents.
1b1e68327701225b728d43226049ad7a5dee4bcd 06-Jun-2011 Martijn Coenen <maco@google.com> Throw unsupported exception when connecting to NfcB.

Connecting to the NfcB technology is currently not supported.

Also removed ErrorCodes.java, which is obsolete here.

Change-Id: I612dd267b48f0c89479e895edfba3f757fd4bd4c
ndroid/nfc/ErrorCodes.java
ndroid/nfc/NfcService.java
dfac80d25dd2816ad5af74cc4131b74134cc81b7 02-Jun-2011 Nick Pelly <npelly@google.com> Fix regression in NFC-EE close() cleanup path for dead applications.

The regression occured when we switched to certificate based checking
for NFC-EE access control (this switch was only fully completed a few days
ago).

Change-Id: I43d7adfad020446af8e863e876c59caf3b852920
ndroid/nfc/NfcService.java
88e4efa8598bd0cac2d4a33c14206143022da20a 01-Jun-2011 Jason parks <jparks@google.com> Merge "Enable NFC after the device is unlocked."
aa122139d77645149c09c9815fd45e7b87ce7170 01-Jun-2011 Nick Pelly <npelly@google.com> Make sure NFC stack is initialized before attempting SE reset.

This fixes a regression at about GRJ46 where phones that had NFC
turned off would fail to perform SE reset on first boot of GRJ46
and later. This would prevent NFC from being turned on, and caused
NFC service to eat battery.

Change-Id: I4714f06e8a3c92a5974851dd1be90b797e3058ac
Bug: 4504474
ndroid/nfc/NfcService.java
160b03be2e1ce574d228a2564d21c5f13f8c7b53 22-Mar-2011 Martijn Coenen <maco@google.com> Check whether an activity is enabled before adding to the chooser.

The RegisteredComponentCache is updated on asynchronous messages
from the PackageManager, which may be delayed for several seconds.
So if an application disables an activity, the activity may still show
up in the activity chooser. Selecting this activity will cause the
NFC service to crash. Prevent this by actually checking whether
an activity is enabled before adding it to the list.

Change-Id: Ibe28b58dd110d93431508cbf728a89743c8fc53b
ndroid/nfc/NfcService.java
225ae2587712b06a354b4ad4625aadc780fa4e80 31-May-2011 Martijn Coenen <maco@google.com> Backup NFC preferences.

Backs up all NFC shared preferences. Note this only works when doing a
full system restore. Doing just a runtime restore won't trigger the NFC
service to restart and reload the setting.

Bug: 3139537
Change-Id: I40d3e5c5cd39482a292e634a941af6093f639ece
ndroid/nfc/NfcBackupAgent.java
ndroid/nfc/NfcService.java
d8ee1a5825fb595b6b66441764a371bd696d04dc 28-May-2011 Martijn Coenen <maco@google.com> Implement Mifare Ultralight-C detection.

Bug: 3398465
Change-Id: Ia335c3c07aef98d05ba68ea84e908b0375d4adcc
ndroid/nfc/NativeNfcTag.java
275fd2b59ae8a9e3eb6e77e8663aea9ca08f1159 26-May-2011 Jason parks <jparks@google.com> Enable NFC after the device is unlocked.

The current behavior is to enable it on screen on.

Change-Id: Ia9e7a839ee3365ed94494eeb154aadd7bf8f1b9c
ndroid/nfc/NfcService.java
b8318ada928026f1d118ec918260796106b83dd2 25-May-2011 Jeff Hamilton <jham@android.com> Merge "Fix a bug with absolute URI processing." into gingerbread
5223d6aafa38c8dbbe684f1f8611ee0f46e7ef02 25-May-2011 Jeff Hamilton <jham@android.com> Fix a bug with absolute URI processing.

Change-Id: Ic9dc3f981e6abe52d7732eab35d6cc2c535a2dad
ndroid/nfc/NfcService.java
d30c5d615023201735d251ae14324105b220fe04 25-May-2011 Nick Pelly <npelly@google.com> Merge "Use a hardcoded SE reset script." into gingerbread
a8b7cca914e4a17f5c432f7bbeed0f1b236c55b4 25-May-2011 Nick Pelly <npelly@google.com> Use a hardcoded SE reset script.

Remove per-package support for tear-down. It just complicates things.

Change-Id: I9ab413df339b2d5407084b2b83c0c2a8feabc0e4
ndroid/nfc/NfcService.java
21ee4b2e782188cbc8e8b7752dd992844a904615 24-May-2011 Jeff Hamilton <jham@android.com> Add support for TNF_EXTERNAL in NDEF_DISCOVERED intents.

The URN is converted to a URL in the form:

vnd.android.nfc://ext/<domain_name>:<service_name>

so that it can be processed by IntentFilter. For example to
catch all TNF_EXTERNAL entries for example.com you would use
the following in your manifest:

<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="vnd.android.nfc"
android:host="ext"
android:pathPrefix="/example.com:" />
</intent-filter>

Change-Id: I5f5b121aa217364611923113985261a5c9a2171e
ndroid/nfc/NfcService.java
2094515fca0cfa0ac87e9cc260d3953d416afe3e 22-Apr-2011 Jason parks <jparks@google.com> Implement callback interface for Ndef push.

Change-Id: I829c95436b69f41bc473f8085f18247fedac48c5
ndroid/nfc/NfcService.java
ndroid/nfc/ndefpush/NdefPushClient.java
15758e6071881e747019267535ac4ead21b7d0c8 27-Apr-2011 Jeff Hamilton <jham@android.com> am 7a7f8f8f: Only execute the teardown APDUs when a package is being fully removed.

* commit '7a7f8f8fd82936f0ee005ccfa7ac5c36760ed902':
Only execute the teardown APDUs when a package is being fully removed.
7a7f8f8fd82936f0ee005ccfa7ac5c36760ed902 20-Apr-2011 Jeff Hamilton <jham@android.com> Only execute the teardown APDUs when a package is being fully removed.

Bug: 4316508
Change-Id: I498eb09cfb48b3b14268c649936186000f360c16
ndroid/nfc/NfcService.java
686ea37164e5595578ae0623c0bb2622fb579d47 11-Apr-2011 Jeff Hamilton <jham@android.com> am 5e7b58d9: Don\'t crash when an unregistered package is removed.

* commit '5e7b58d9c95a9074a42c3e4820e2467dfa85af10':
Don't crash when an unregistered package is removed.
3ea1c986d689549b41d6e9c7fdc9c8cadfba63e0 11-Apr-2011 Jason parks <jparks@google.com> Merge commit '613fcd91' into manualmerge

Conflicts:
src/com/android/nfc/NfcService.java

Change-Id: I554e33d89fda1f74fd976263a8c4dc0549303eda
ad3d60fa4d74d20e1abc4ec5d529022b441bde4c 08-Apr-2011 Jeff Hamilton <jham@android.com> am 8afd14d3: Make the NFC UID forward compatible.

* commit '8afd14d3b23d3124c48ee275ba2845aede6542a1':
Make the NFC UID forward compatible.
9d6ad3551038e82a2ff563f0813e64f2e5a19efe 05-Apr-2011 Nick Pelly <npelly@google.com> am 37179222: Merge "Increase wired mode timeout to 10 seconds." into gingerbread

* commit '37179222029075f316d43db89555699c978c79f8':
Increase wired mode timeout to 10 seconds.
5e7b58d9c95a9074a42c3e4820e2467dfa85af10 04-Apr-2011 Jeff Hamilton <jham@android.com> Don't crash when an unregistered package is removed.

Bug: 4205311
Change-Id: I116e7c2e12c7e160d81154d22589b1bdefe93e44
ndroid/nfc/NfcService.java
613fcd914b6ff4fc50ccb9500db952d2fab5ff88 01-Apr-2011 Jason parks <jparks@google.com> Merge "Implement tear down scripts." into gingerbread
bcd6a9954c5abafc6b14aabcc7768d0f03cc956c 31-Mar-2011 Jason parks <jparks@google.com> Implement tear down scripts.

Change-Id: Ie6d491b4bf1a735d4119f78f252aa14a95536149
ndroid/nfc/NfcService.java
8afd14d3b23d3124c48ee275ba2845aede6542a1 01-Apr-2011 Jeff Hamilton <jham@android.com> Make the NFC UID forward compatible.

Change-Id: Idebe263500839a0238fd5b0cf732e5ecc477698e
ndroid/nfc/NfcService.java
1124dc4b6697eb8ddd49511c07b75fe0db54f51e 31-Mar-2011 Jeff Hamilton <jham@android.com> am 93d8a69c: Add com.android.nfc.permission.NFCEE_ADMIN.

* commit '93d8a69ccadfa01b0a5ec3d7edeb921a1da4bce8':
Add com.android.nfc.permission.NFCEE_ADMIN.
37179222029075f316d43db89555699c978c79f8 30-Mar-2011 Nick Pelly <npelly@google.com> Merge "Increase wired mode timeout to 10 seconds." into gingerbread
ba6401757f8017faeb77423f2d08fd51be1d1051 30-Mar-2011 Nick Pelly <npelly@google.com> Increase wired mode timeout to 10 seconds.

Change-Id: I496a74f2fbad55cb8f04a434a386d6d86e7d3636
ndroid/nfc/NfcService.java
6c4df906af9c9fdd5c8c896f55b581cf73e0d84c 30-Mar-2011 Jeff Hamilton <jham@android.com> am cd46a585: Change the package name to allow using a new cert.

* commit 'cd46a585f77bdfca3e04f61957fe292cf2b40d63':
Change the package name to allow using a new cert.
93d8a69ccadfa01b0a5ec3d7edeb921a1da4bce8 25-Mar-2011 Jeff Hamilton <jham@android.com> Add com.android.nfc.permission.NFCEE_ADMIN.

It controls permissions for NFCEE administration
and is checked based on the signature of Nfc.apk
and the caller.

The NFCEE admin permission checking is currently
set to check the stock NFC permission.

Change-Id: I164511d8f6850034ca0fc1f6f7f75c5ef212fbc2
ndroid/nfc/NfcService.java
cd46a585f77bdfca3e04f61957fe292cf2b40d63 24-Mar-2011 Jeff Hamilton <jham@android.com> Change the package name to allow using a new cert.

Change-Id: I89243027b25a3904df0e50414b64387d172c181b
ndroid/nfc/NfcService.java
23514f9e16137364df3282b33c8b5838c0a3aa8b 12-Mar-2011 Nick Pelly <npelly@google.com> am 49d53329: Implement new NFC-EE API\'s (Nfc.apk).

* commit '49d53329a0c720a7e430220d77805bc1763545b1':
Implement new NFC-EE API's (Nfc.apk).
49d53329a0c720a7e430220d77805bc1763545b1 08-Mar-2011 Nick Pelly <npelly@google.com> Implement new NFC-EE API's (Nfc.apk).

Change-Id: Id16b91a9cde25a4f4a746492921250c0834199f1
ndroid/nfc/NfcService.java
4b948e2c2635db35627e306b3ec2f49c471eee35 25-Feb-2011 Martijn Coenen <martijn.coenen@nxp.com> am 73cc851d: Support formatting / makeReadOnly() of NDEF on ICODE (NFC Service).

* commit '73cc851dcb7d026015f6f91ab9336e5c042b8ac1':
Support formatting / makeReadOnly() of NDEF on ICODE (NFC Service).
73cc851dcb7d026015f6f91ab9336e5c042b8ac1 20-Jan-2011 Martijn Coenen <martijn.coenen@nxp.com> Support formatting / makeReadOnly() of NDEF on ICODE (NFC Service).

Throw NdefFormatable only when ICODE tag.

Change-Id: I6cc54f5f076cfd1a223d0daaac0951d5d56007a3
ndroid/nfc/NativeNfcTag.java
aeed632776f2741cd74ef987720caa7d943622ee 22-Feb-2011 Martijn Coenen <martijn.coenen@nxp.com> am 6a7ba70e: Fix isConnected() implementation.

* commit '6a7ba70ead03befb3d9387c4f7c5413f51fbecf2':
Fix isConnected() implementation.
0a0749107462ffe7255cd604a758dd00d781bfe7 22-Feb-2011 Martijn Coenen <martijn.coenen@nxp.com> am 10389c11: Fix race in NFC tag registry/dispatch.

* commit '10389c11abdae4c794082f6c51f11b28b422eddb':
Fix race in NFC tag registry/dispatch.
6a7ba70ead03befb3d9387c4f7c5413f51fbecf2 13-Feb-2011 Martijn Coenen <martijn.coenen@nxp.com> Fix isConnected() implementation.

The NFC API's isConnected() is mapped to isPresent on a NativeNfcTag
object, which in turn uses a cached value. This value was however not
updated properly when the internal presence check loop detected the
tag to be gone. The cases where isConnected() does work properly
are screen off and explicit disconnect.

Change-Id: Ieac76ceb1f161ead772ce9fd2acf273b23caca37
ndroid/nfc/NativeNfcTag.java
10389c11abdae4c794082f6c51f11b28b422eddb 03-Feb-2011 Martijn Coenen <martijn.coenen@nxp.com> Fix race in NFC tag registry/dispatch.

The tag handle was only registered after the dispatch; with the "normal"
dispatch the activity would take a while to start and this problem would not be
seen. With foreground dispatch however, if you'd immediately try to connect to a tag,
sometimes the tag handle is not registered yet, causing the connect() to fail.

Change-Id: I92b5e36a5d8f08e410a656d364e88bce2d25c854
ndroid/nfc/NfcService.java
eeacab3ce12d1b78b068ccf8fe18a9feafc48667 16-Feb-2011 daniel_tomas <dtomas.nxp@gmail.com> am 221b4d6e: Patch to manage the Screen ON/OFF during the wired mode

* commit '221b4d6ee301fbfe19402798f7d3c11e6878c888':
Patch to manage the Screen ON/OFF during the wired mode
b9d444273a3eb0c1be6e8c27e3ce2e2be5813881 16-Feb-2011 daniel_tomas <dtomas.nxp@gmail.com> am 99a1a5cd: Patch to support CE On/Off with Screen On/Off

* commit '99a1a5cd0824585da3b3fa4a3f43a7491342a99e':
Patch to support CE On/Off with Screen On/Off
221b4d6ee301fbfe19402798f7d3c11e6878c888 15-Feb-2011 daniel_tomas <dtomas.nxp@gmail.com> Patch to manage the Screen ON/OFF during the wired mode

Change-Id: I019ad3fc62f49280031320c2c32532e64097d3f9
ndroid/nfc/NfcService.java
99a1a5cd0824585da3b3fa4a3f43a7491342a99e 15-Feb-2011 daniel_tomas <dtomas.nxp@gmail.com> Patch to support CE On/Off with Screen On/Off

Change-Id: Ic7046ea686b1cf3eb232f6125122dea5d919ac2d
ndroid/nfc/NfcService.java
30735d1bdacbe0d05e925d8a5065b60124d21ee7 10-Feb-2011 Nick Pelly <npelly@google.com> am bd555ee6: Fix SE permissions.

* commit 'bd555ee64250126b60b24814120a2049943920ca':
Fix SE permissions.
bd555ee64250126b60b24814120a2049943920ca 09-Feb-2011 Nick Pelly <npelly@google.com> Fix SE permissions.

Change-Id: I83f79bc7a5f3227ef4a8222dc879beda53a8ab31
ndroid/nfc/NfcService.java
75a060ef1ed27bde485a091de49dfafe4aebb356 01-Feb-2011 Nick Pelly <npelly@google.com> am 8d69f520: Update Nfc.apk for final GB MR API changes.

* commit '8d69f5205e3c4a7c2eb869bbf4983d3d9fe45ab0':
Update Nfc.apk for final GB MR API changes.
8d69f5205e3c4a7c2eb869bbf4983d3d9fe45ab0 01-Feb-2011 Nick Pelly <npelly@google.com> Update Nfc.apk for final GB MR API changes.

Change-Id: I0b709084992e8022deacd67e1b8c24f33e8d73fc
ndroid/nfc/NfcService.java
9dc61c58004f73ca1cee7107492b1a58d5bbf311 29-Jan-2011 Martijn Coenen <martijn.coenen@nxp.com> am ab2b44b9: INfcTag isPresent() should not block and not cause RF activity.

* commit 'ab2b44b97936d2c5dbf6eda1245ca793e840713f':
INfcTag isPresent() should not block and not cause RF activity.
905a6795d1dcdf1e68d7a2b8343b6a2f7224d652 29-Jan-2011 Martijn Coenen <martijn.coenen@nxp.com> am 6b3ccb6e: Fixed connect() failure from technology->ndef->technology.

* commit '6b3ccb6ec19bd9d1e022b9d76b8acd859fe28408':
Fixed connect() failure from technology->ndef->technology.
ab2b44b97936d2c5dbf6eda1245ca793e840713f 28-Jan-2011 Martijn Coenen <martijn.coenen@nxp.com> INfcTag isPresent() should not block and not cause RF activity.

Use a cached value instead, which is based on the presence check that is running
anyway.

Change-Id: Ifa50ff38e884fa865bb7ba95dde45da39bebf7e8
ndroid/nfc/NativeNfcTag.java
ndroid/nfc/NfcService.java
6b3ccb6ec19bd9d1e022b9d76b8acd859fe28408 28-Jan-2011 Martijn Coenen <martijn.coenen@nxp.com> Fixed connect() failure from technology->ndef->technology.

Suppose you have a MifareClassic tag with NDEF; the following scenario failed
MifareClassic.connect()/close() -> Ndef.connect()/close() -> MifareClassic.connect() .

This last connect fails because the service refuses to connect any technology
on the same handle, except for NDEF. This check was too strict - it was only
intended to catch connecting to a NfcA technology on an IsoDep tag, as libNFC does not
support this. This change always allows connecting a tech on the same handle, except
when you want to connect a non-IsoDep technology on a tag that does have the IsoDep
technology on the same handle - in which case it refuses. This
matches exactly what libnfc supports.

Change-Id: I64d552b3cd51beb36712676492f36d182c605748
ndroid/nfc/NativeNfcTag.java
75a3f8c13fddfdea835e91eaf37b6bbdcd2aacf8 27-Jan-2011 Jeff Hamilton <jham@android.com> am 3ca2b3f9: Don\'t show the same activity multiple times.

* commit '3ca2b3f925d434559300ee2fb10bfcdd365a0fb6':
Don't show the same activity multiple times.
3ca2b3f925d434559300ee2fb10bfcdd365a0fb6 27-Jan-2011 Jeff Hamilton <jham@android.com> Don't show the same activity multiple times.

Bug: 3398076
Change-Id: Ib1a0ac03299f713b00bc93de2e8bb7a3b531711c
ndroid/nfc/NfcService.java
5f6be630a52605ba957d590813d8645a87d49047 26-Jan-2011 Arnaud Ferir <arnaud.ferir@trusted-logic.com> am e260fc52: Stop tag watchdog before disabling NFC.

* commit 'e260fc52ed2b4e6e1b7394d6f841d01c98888327':
Stop tag watchdog before disabling NFC.
3c40cbf10cefe014d41558ddba891623cc5174a0 26-Jan-2011 Sylvain Fonteneau <sylvain.fonteneau@trusted-logic.com> am 663c0153: Ensure disconnection from remote peer before sleeping, in P2P mode.

* commit '663c0153d74ddbe8e8ec1f9f55780beafa2543fa':
Ensure disconnection from remote peer before sleeping, in P2P mode.
4ec8f123c0c037830859ff608dda6611e8b40fea 26-Jan-2011 Martijn Coenen <martijn.coenen@nxp.com> am 434bb344: Reconnect() after checking for NdefFormatable().

* commit '434bb34457422a9cad664b73ed0d425db4a3093d':
Reconnect() after checking for NdefFormatable().
e260fc52ed2b4e6e1b7394d6f841d01c98888327 25-Jan-2011 Arnaud Ferir <arnaud.ferir@trusted-logic.com> Stop tag watchdog before disabling NFC.

Change-Id: I0a62d1ee539aa6bf9147bed56055a460b9804aea
ndroid/nfc/NfcService.java
663c0153d74ddbe8e8ec1f9f55780beafa2543fa 25-Jan-2011 Sylvain Fonteneau <sylvain.fonteneau@trusted-logic.com> Ensure disconnection from remote peer before sleeping, in P2P mode.

Change-Id: I0d8fce569f2e6431fe62a299278a0106c86cda9a
ndroid/nfc/NfcService.java
434bb34457422a9cad664b73ed0d425db4a3093d 25-Jan-2011 Martijn Coenen <martijn.coenen@nxp.com> Reconnect() after checking for NdefFormatable().

Some tags may be left in an inconsistent or "non-responding" state after we
do NdefFormatable checks. For example, tags that identify as DESfire
but don't support the getVersion() command. To make sure the stack can continue
to work with them, we reconnect().

Change-Id: I2890d3c70cc7cf7d15fb98090a031686d434168d
ndroid/nfc/NfcService.java
ce119070c30c3dc916f0dde0387656cef738b4d2 25-Jan-2011 Jeff Hamilton <jham@android.com> am 24dbea55: Stop using URIs for ACTION_TECHNOLOGY_DISCOVERED

* commit '24dbea55709219e42aa3b6b6578f29ffd447a786':
Stop using URIs for ACTION_TECHNOLOGY_DISCOVERED
24dbea55709219e42aa3b6b6578f29ffd447a786 24-Jan-2011 Jeff Hamilton <jham@android.com> Stop using URIs for ACTION_TECHNOLOGY_DISCOVERED

The pattern matching wasn't sufficient with the
move to identifying technologies with their class
names so now we use a custom dispatching mechanism.

Change-Id: I3e6379d454458bbb65730ade32cdaa1680c5e339
ndroid/nfc/NfcService.java
ndroid/nfc/RegisteredComponentCache.java
ndroid/nfc/TechListChooserActivity.java
8e1568d6362eae6d91689cb92825a02e14aeba31 25-Jan-2011 Arnaud Ferir <arnaud.ferir@trusted-logic.com> am 7f5487be: Do not disconnect P2P target if connect failed.

* commit '7f5487be0414b1f92b41cc5f7b0b7db846d9b1c9':
Do not disconnect P2P target if connect failed.
37a1e9048d0cf2d48b619e2714f1a98f18d85b24 25-Jan-2011 Arnaud Ferir <arnaud.ferir@trusted-logic.com> am 2436ffe9: Fix tag disconnect.

* commit '2436ffe91853535fad87b7a8e03d8883bae20f20':
Fix tag disconnect.
cee3e95c091ac699566b65c002dcc3f9887a4c30 25-Jan-2011 Martijn Coenen <martijn.coenen@nxp.com> am e08c8939: Don\'t throw NdefFormattable technology when Ndef found.

* commit 'e08c8939be916c393a62b995b2dee438cb8cec2f':
Don't throw NdefFormattable technology when Ndef found.
021a5e4d3c5439caddbebf1c90426914e3b166b6 25-Jan-2011 Jeff Hamilton <jham@android.com> am adb527a9: Make the NDEF intent creation more robust.

* commit 'adb527a9ce286d019d766a3b207a2251dea89bd1':
Make the NDEF intent creation more robust.
695e9199326542edd0898af51abe9aeeb361856a 25-Jan-2011 Jeff Hamilton <jham@android.com> am a1935861: Tweak dispatching a bit.

* commit 'a1935861ea244b45e29b0ec9b6f263de3c08a2d6':
Tweak dispatching a bit.
2b08e833a33e20c730995a20d023b1452b80c3c6 24-Jan-2011 Jeff Hamilton <jham@android.com> am 0c322dc2: Update to the new APIs.

* commit '0c322dc2d942285bfcd9fe5c0bba1a5f36a967f5':
Update to the new APIs.
7f5487be0414b1f92b41cc5f7b0b7db846d9b1c9 19-Jan-2011 Arnaud Ferir <arnaud.ferir@trusted-logic.com> Do not disconnect P2P target if connect failed.

If the P2P target connect failed, the P2P target disconnect cannot be done.
However the polling loop must be restarted. This is already done in JNI layer
by the failing connect itself.

Change-Id: I1c3323e4c038c8133e7b6e16b3a238c050427cfc
ndroid/nfc/NfcService.java
2436ffe91853535fad87b7a8e03d8883bae20f20 24-Jan-2011 Arnaud Ferir <arnaud.ferir@trusted-logic.com> Fix tag disconnect.

This patch fixes the tag disconnect sequence in 2 cases:

1.
When the NFC service disconnects a tag because it is not needed anymore, the
disconnection should be effective immediately and not delayed until the tag is
removed from the field. The NFC service is responsible for discovering again
the same tag if the polling loop is restarted.
The looping "presence check" in native code is then removed.

2.
Before the screen is turned off, the polling loop configuration and - if any
tag is present - the tag disconnection must be done accordingly to the "normal"
tag management. In particular the watchdog must be stopped properly.

Change-Id: I58ee27cede110c419052b4eef07f1e4bd35ae208
ndroid/nfc/NativeNfcTag.java
ndroid/nfc/NfcService.java
e08c8939be916c393a62b995b2dee438cb8cec2f 24-Jan-2011 Martijn Coenen <martijn.coenen@nxp.com> Don't throw NdefFormattable technology when Ndef found.

libNFC doesn't support formatting tags that are already NDEF formatted. This
needs to be fixed in libNFC, but as a temporary work-around we will only
throw the NdefFormattable technology if no NDEF has been found on the tag.

Change-Id: I487b875de5fd66fdfec2d1b9c30fa886d8ca1477
ndroid/nfc/NfcService.java
adb527a9ce286d019d766a3b207a2251dea89bd1 24-Jan-2011 Jeff Hamilton <jham@android.com> Make the NDEF intent creation more robust.

There are lots of ways things could go
wrong when faced with invalid NDEF data
so just got for the catch-all and handle
it properly.

Change-Id: Ia762c8e337aef8fed867beab8159e6ed05bbacea
ndroid/nfc/NfcService.java
a1935861ea244b45e29b0ec9b6f263de3c08a2d6 23-Jan-2011 Jeff Hamilton <jham@android.com> Tweak dispatching a bit.

Foreground dispatch overrides now interpret
null for the filters as "catch all".

Foreground NDEF push disables standard dispatch
and only honors foreground dispatching so that
two NDEF push apps don't end up just swapping
between each other when the push happens.

Change-Id: Ic305d4a3a593fff732b8d88ae72e09b4a03d6286
ndroid/nfc/NfcService.java
ndroid/nfc/ndefpush/NdefPushClient.java
674c9cf34f06fc678f5e17277029efef2d3bc27b 23-Jan-2011 Nick Pelly <npelly@google.com> am 33eb941f: Merge "Fix 4 second latency starting Tag application when recently using home." into gingerbread

* commit '33eb941f83d64ff14cbf6fa0a0fbe8f48eead2f4':
Fix 4 second latency starting Tag application when recently using home.
2e330813c7870e853021115c37ad7813333dc5f1 22-Jan-2011 Sylvain Fonteneau <sylvain.fonteneau@trusted-logic.com> am a5ebe913: Fixed misuse of Arrays.copyOfRange() method.

* commit 'a5ebe913725dacc57627dd29937c272b34cc1eab':
Fixed misuse of Arrays.copyOfRange() method.
a3c8f740d9ab043f63f6a3c01639c9d857d4de37 22-Jan-2011 Martijn Coenen <martijn.coenen@nxp.com> am 9d5511f2: Support for TagLostException (NFC service).

* commit '9d5511f2640903a79d24578a12a93e50a96f0c0e':
Support for TagLostException (NFC service).
094b435ea854961fbf707d0ed3e3e32c88067804 22-Jan-2011 Nick Pelly <npelly@google.com> am bfb74ec4: Don\'t catch ClassCastException and NullPointerException.

* commit 'bfb74ec41fe9d2d1ce72467888432f0b3296425f':
Don't catch ClassCastException and NullPointerException.
b2a981013e65d4b5214b4e923ebea4530cdb023a 22-Jan-2011 Sylvain Fonteneau <sylvain.fonteneau@trusted-logic.com> am 73a6ef05: Set LLCP MIU parameter to optimal value.

* commit '73a6ef05557f78d20e291ef34aec013770644da0':
Set LLCP MIU parameter to optimal value.
b4f72e7d27ce85624f1b3db1a922cc93b80d9ede 22-Jan-2011 Sylvain Fonteneau <sylvain.fonteneau@trusted-logic.com> am f5d6f325: Handle error when accessing a closed socket handle.

* commit 'f5d6f3253dca74631ba78c715f224cfa80e61d29':
Handle error when accessing a closed socket handle.
fb3c24ae679ca6f3518602fa87d9e55e1cba3a78 22-Jan-2011 Sylvain Fonteneau <sylvain.fonteneau@trusted-logic.com> am 6efda9f3: Moved LLCP link parameters configuration to NFC service initialization.

* commit '6efda9f3970382554437be037aed863be9889499':
Moved LLCP link parameters configuration to NFC service initialization.
d96af6025ada6862d46997ee6dfa76c3bee453c4 22-Jan-2011 Sylvain Fonteneau <sylvain.fonteneau@trusted-logic.com> am 1878c7b6: Removed workaround for native socket creation limitation.

* commit '1878c7b6e2cef1e52138ee3a5588913cc165faa5':
Removed workaround for native socket creation limitation.
28f988ad89aa2ef40101c04ac747c21fe3a55a74 21-Jan-2011 Nick Pelly <npelly@google.com> am 0c8bb6d5: Merge "Implement IsoDep timeout handling (NFC service)." into gingerbread

* commit '0c8bb6d59be8f44c53c02febcbfe570a891f33a4':
Implement IsoDep timeout handling (NFC service).
0c322dc2d942285bfcd9fe5c0bba1a5f36a967f5 21-Jan-2011 Jeff Hamilton <jham@android.com> Update to the new APIs.

Change-Id: Ic30625a81e1e0a8f01955cd82b2e75ac2571c6d0
ndroid/nfc/NativeNfcTag.java
ndroid/nfc/NfcService.java
33eb941f83d64ff14cbf6fa0a0fbe8f48eead2f4 21-Jan-2011 Nick Pelly <npelly@google.com> Merge "Fix 4 second latency starting Tag application when recently using home." into gingerbread
1a9eca5f84036d7dd3e28000290caa2f641856de 21-Jan-2011 Nick Pelly <npelly@google.com> Fix 4 second latency starting Tag application when recently using home.

The home screen and other system apps call stopAppSwitches() to prevent
malicious applications from starting their activity again when the user exits.
The startActivity() call is delayed by 4 seconds.

We can override this in NFC service because we are a system service, using
resumeAppSwitches(). If a tag comes into the field we really want to show it
immediately. It feels really laggy otherwise.

Change-Id: I5394647f352e3f49f821b5346cd4c9af103137ca
ndroid/nfc/NfcService.java
a5ebe913725dacc57627dd29937c272b34cc1eab 19-Jan-2011 Sylvain Fonteneau <sylvain.fonteneau@trusted-logic.com> Fixed misuse of Arrays.copyOfRange() method.

This method takes the buffer, the start offset and the end offset as
parameters.

Change-Id: I52e33d7083a26bea57e0f3c819c40c8daa4e3816
ndroid/nfc/ndefpush/NdefPushClient.java
9d5511f2640903a79d24578a12a93e50a96f0c0e 17-Jan-2011 Martijn Coenen <martijn.coenen@nxp.com> Support for TagLostException (NFC service).

libNFC has a distinct return code indicating it can no longer communicate
with the tag - usually because it is no longer in the RF field.
Propagating this to the API allows applications to react to this
specific event and provide more detailed feedback to the user.

Change-Id: I9d82c749f56c5aee8e5baef84c17d28e326842f4
ndroid/nfc/NativeNfcTag.java
ndroid/nfc/NfcService.java
bfb74ec41fe9d2d1ce72467888432f0b3296425f 19-Jan-2011 Nick Pelly <npelly@google.com> Don't catch ClassCastException and NullPointerException.

Change-Id: I2ae2884d78af8268852c8812a4ff7cfbece6c53a
ndroid/nfc/NfcService.java
73a6ef05557f78d20e291ef34aec013770644da0 14-Jan-2011 Sylvain Fonteneau <sylvain.fonteneau@trusted-logic.com> Set LLCP MIU parameter to optimal value.

At the NFCIP-1 level, the LLCP frames are splitted in 251-bytes
packets. Knowing that NFCIP-1 packets have a 3-bytes header, the
optimal size for a LLCP packet is 248-bytes.

With the previous value (256), each LLCP frame was splitted in
two NFCIP-1 packets, one 248+3 bytes and another one of 8+3 bytes.
This was leading to less-than-optimal performances.

Change-Id: Ide31b1ee24efc910c71d690a8ae100331b62ccf8
ndroid/nfc/ndefpush/NdefPushServer.java
f5d6f3253dca74631ba78c715f224cfa80e61d29 05-Jan-2011 Sylvain Fonteneau <sylvain.fonteneau@trusted-logic.com> Handle error when accessing a closed socket handle.

When an application tries to access a closed socket, the NFC
service will fail to find it in its internal socket table,
returning a null object which is impossible to cast to a
LLCP socket class, generating a ClassCastException.

This patch handle the exception catching, avoiding a service
crash.

Change-Id: I236652b83a51b78fcfe8258402888a74f3144a7f
ndroid/nfc/NfcService.java
6efda9f3970382554437be037aed863be9889499 21-Dec-2010 Sylvain Fonteneau <sylvain.fonteneau@trusted-logic.com> Moved LLCP link parameters configuration to NFC service initialization.

With the latest libnfc-nxp library, the LLCP socket internals are
initialized when configuring the LLCP link parameters because it
must be the first LLCP function called.

Due to this, these parameters are now set only once at the NFC
service startup instead of each peer discovery.

As a consequence, the NFC Manager initialization now use the
application properties (which contains link parameters) so these
properties are loaded before initialization.

Change-Id: I8e04c3135646a12a48c392d47cb47d09cd234ea1
ndroid/nfc/NfcService.java
1878c7b6e2cef1e52138ee3a5588913cc165faa5 17-Dec-2010 Sylvain Fonteneau <sylvain.fonteneau@trusted-logic.com> Removed workaround for native socket creation limitation.

Until now, the NFC native library (libnfc-nxp) had some limitations
on the socket life cycle that made impossible to ensure the local server
socket was listening before the remote client was trying to connect.

The RegisteredSocket class was created to workaround this by enabling
socket creation at the Java layer prior to link establishment. This
solution was not fully satisfactory since there were still some race
conditions.

A fix for these limitations has been submitted in the library project
in a commit named "Allow LLCP socket creation before link establishment"
and this patch takes advantage of it to remove the RegisteredSocket
class and all the associated code.

As a consequence, the socket creation methods have been simplified, the
link activation processes is lighter (no need to recreate native sockets
on link activation).

This patch also includes some cleaning (removed unused variables).

Change-Id: I643509d620105ae7d3ba24ea68eae37f05bc6ef3
ndroid/nfc/NfcService.java
0c8bb6d59be8f44c53c02febcbfe570a891f33a4 18-Jan-2011 Nick Pelly <npelly@google.com> Merge "Implement IsoDep timeout handling (NFC service)." into gingerbread
ea74287b5b97ca87cbe9179f0bedf49c594d2c2c 18-Jan-2011 Jeff Hamilton <jham@android.com> am ca1a86ec: NDEF Push Protocol implementation.

* commit 'ca1a86ecb8edce740a232c3439355e8d5b706e7a':
NDEF Push Protocol implementation.
1b61f1dee91101e249b9be65d95366fa745b3b78 12-Jan-2011 Martijn Coenen <martijn.coenen@nxp.com> Implement IsoDep timeout handling (NFC service).

Added interface to the NFC service for (re-)setting the IsoDep transaction
timeout. Internally, this is mapped to both the ISO XCHG timer and
the HCI watchdog timer in libnfc (see comments in code).

The timers are reset when the application closes the IsoDep technology.
But they must also be reset if the application crashes (and cannot close
the technology). To cover these cases, whenever discovery is (re)started or
whenever a tag is disconnected, the timeouts are reset to the default values.

Change-Id: I596ef311c3c3b21666b487d16a08642e8a6fc4af
ndroid/nfc/NativeNfcManager.java
ndroid/nfc/NfcService.java
ca1a86ecb8edce740a232c3439355e8d5b706e7a 11-Dec-2010 Jeff Hamilton <jham@android.com> NDEF Push Protocol implementation.

The protocol allows pushing NDEF messages
over LLCP in order to simulate a card read
wihtout having to use card emulation. This
also allows for 2 way transfer of meesages.

The protocol allows for a single immediate
message, to be dispatched upon arrival as if
it were read from a tag, and any number of
deferred dispatch messages. The handling of
deferred dispatch messages is up to the
receiver and not implemented in this patch.

Change-Id: Ib99e4fc01532cc741debab370a417f94669b62ac
ndroid/nfc/NfcService.java
ndroid/nfc/mytag/MyTagClient.java
ndroid/nfc/mytag/MyTagServer.java
ndroid/nfc/ndefpush/NdefPushClient.java
ndroid/nfc/ndefpush/NdefPushProtocol.java
ndroid/nfc/ndefpush/NdefPushServer.java
27c07397f28da30826d405b3b2fb90ba62b0c3da 15-Jan-2011 Martijn Coenen <martijn.coenen@nxp.com> am eb488e0b: Improved accuracy of NDEF_FORMATABLE technology detection.

* commit 'eb488e0b323ec2d4fe03528e2b9f3a73e66ae17d':
Improved accuracy of NDEF_FORMATABLE technology detection.
eb488e0b323ec2d4fe03528e2b9f3a73e66ae17d 10-Jan-2011 Martijn Coenen <martijn.coenen@nxp.com> Improved accuracy of NDEF_FORMATABLE technology detection.

Previously, any ISO14443-4 tag would get the NDEF_FORMATABLE technology,
indicating that a format on these tags is possible. In fact libNFC only
supports formatting the DESFire subset of -4, and MF UL / Classic. These
changes do a check for DESFire before adding the FORMATABLE technology.

Change-Id: Ife15a0bd42e1b024bf262788859c88e4ac1dcabe
ndroid/nfc/NativeNfcTag.java
ndroid/nfc/NfcService.java
1128ce43f48ffa9c9e8f87b524cb9dfc07e75e7d 15-Jan-2011 Martijn Coenen <martijn.coenen@nxp.com> am 98eb4249: Fixed presence checking in watchdog.

* commit '98eb4249dcec63009b1839c005f0cf9048e1f7be':
Fixed presence checking in watchdog.
98eb4249dcec63009b1839c005f0cf9048e1f7be 07-Jan-2011 Martijn Coenen <martijn.coenen@nxp.com> Fixed presence checking in watchdog.

The presence check timer is not supposed to run during "other" operations
such as transceive. Previously, the presence check timer was simply reset.
If an operation would take longer than the presence check time to complete,
the presence check would run immediately after the operation has released
the concurrency lock. This is undesirable and not necessary - the app may
want to do a long series of transceives, in which case the presence check
gets in the way and delays the app.

This fix will pause() the watchdog completely, and only resume() when the
presence checking is done.

Change-Id: I06b1ab10c015861415cd91d6d5536d27145a885f
ndroid/nfc/NativeNfcTag.java
ndroid/nfc/NfcService.java
d1674be5269269c60236c65fe7d233c218af8a63 13-Jan-2011 Jeff Hamilton <jham@android.com> am 05973d55: Implementation of foreground dispatch overriding.

* commit '05973d55daf68a286c932ee4e7ffbd6bb53789e0':
Implementation of foreground dispatch overriding.
05973d55daf68a286c932ee4e7ffbd6bb53789e0 09-Jan-2011 Jeff Hamilton <jham@android.com> Implementation of foreground dispatch overriding.

Change-Id: I1f20036dd45cd6af8f0e2a5199427f403272ee8a
ndroid/nfc/NfcService.java
a28073ae2688444302e6fa15b016487ec4c17423 13-Jan-2011 daniel_tomas <daniel.tomas@nxp.com> am c9a2ae7c: RF 0N/OFF events management added in the NFC Service

* commit 'c9a2ae7cb238e4c72818d084cba0b05e76cba1ef':
RF 0N/OFF events management added in the NFC Service
c9a2ae7cb238e4c72818d084cba0b05e76cba1ef 07-Jan-2011 daniel_tomas <daniel.tomas@nxp.com> RF 0N/OFF events management added in the NFC Service

Change-Id: Ie32d36949c3520f9ece9bcb3c6f7bab2f9b24023
ndroid/nfc/NativeNfcManager.java
ndroid/nfc/NfcService.java
92d40f1b4be3c7c39ed39a70f527063a27827da9 05-Jan-2011 Martijn Coenen <martijn.coenen@nxp.com> am 3cfe63f0: Fix technology extra naming for IsoDep and NfcB (NFC service part).

* commit '3cfe63f0c61dda601c9c538a9987df2679f02e3d':
Fix technology extra naming for IsoDep and NfcB (NFC service part).
3cfe63f0c61dda601c9c538a9987df2679f02e3d 21-Dec-2010 Martijn Coenen <martijn.coenen@nxp.com> Fix technology extra naming for IsoDep and NfcB (NFC service part).

Change-Id: Id712405901b7dbf0c2834e8dc13d79dbfd056e2c
ndroid/nfc/NativeNfcTag.java
6349bf286ef1ab00d9247f175197a0d9e6087454 04-Jan-2011 Martijn Coenen <martijn.coenen@nxp.com> am 78b1d67d: Reduce presence check timer to 250ms.

* commit '78b1d67dae6e7401fc7b8af2c41b68da9e23226b':
Reduce presence check timer to 250ms.
2d50e011c6aa31628f77603e589f9398deec66fd 04-Jan-2011 Martijn Coenen <martijn.coenen@nxp.com> am a91ec51b: Added response flags and DSFID extras for NfcV technology (NFC service part).

* commit 'a91ec51bb9a01ff1e6cb699b53799a59492de2dc':
Added response flags and DSFID extras for NfcV technology (NFC service part).
78b1d67dae6e7401fc7b8af2c41b68da9e23226b 03-Jan-2011 Martijn Coenen <martijn.coenen@nxp.com> Reduce presence check timer to 250ms.

This will improve the responsiveness of apps a lot when scanning tags
in rapid succession. The consequence is of course more frequent access to the tag,
but only when it is in the field.

Change-Id: Ic7410d86c3a3af76a3c400fef67b44ae0c26571e
ndroid/nfc/NativeNfcTag.java
c2a2e969027699f301b4d1282f875f7bc8a516bb 04-Jan-2011 Martijn Coenen <martijn.coenen@nxp.com> am f34ea550: Added getType() to NDEF technology class (NFC service part).

* commit 'f34ea55002a5f7fbe8486c6ab6f4a17481a9558f':
Added getType() to NDEF technology class (NFC service part).
a91ec51bb9a01ff1e6cb699b53799a59492de2dc 03-Jan-2011 Martijn Coenen <martijn.coenen@nxp.com> Added response flags and DSFID extras for NfcV technology (NFC service part).

Change-Id: Ib05f25a80cab1e97d6c3d34a6fcd44043240337d
ndroid/nfc/NativeNfcTag.java
f34ea55002a5f7fbe8486c6ab6f4a17481a9558f 22-Dec-2010 Martijn Coenen <martijn.coenen@nxp.com> Added getType() to NDEF technology class (NFC service part).

Change-Id: I2ac67f2a947704722328e7b2e576b8561e726fa2
ndroid/nfc/NativeNfcTag.java
ndroid/nfc/NfcService.java
8cebda2fad59508841d49db5b4c5064e72b08aa1 04-Jan-2011 Martijn Coenen <martijn.coenen@nxp.com> am 809fdd1f: Don\'t call disconnect() twice to avoid emergency recovery.

* commit '809fdd1fce70e8ec65601a2910fd11a4dde7268d':
Don't call disconnect() twice to avoid emergency recovery.
809fdd1fce70e8ec65601a2910fd11a4dde7268d 21-Dec-2010 Martijn Coenen <martijn.coenen@nxp.com> Don't call disconnect() twice to avoid emergency recovery.

When a tag is disconnected, first the watchdog is stopped, then disconnect
is called. However, the watchdog stop also did a disconnect() itself.
Now that is only done if the watchdog itself concludes the tag is gone.
Also made sure we catch an early return when the handle is -1;
in that case, just restart the discovery.

Also removed some old code.

Change-Id: Ib851115eecaea65d88cffc7771e273258a404f87
ndroid/nfc/NativeNfcTag.java
32e135d9f82fa0051132e16d2bcf37e28624785e 20-Dec-2010 Martijn Coenen <martijn.coenen@nxp.com> am 03ee488a: Implement NDEF makeReadonly().

* commit '03ee488afaa982ce934c5de399db9f9fa88c7d1e':
Implement NDEF makeReadonly().
03ee488afaa982ce934c5de399db9f9fa88c7d1e 16-Dec-2010 Martijn Coenen <martijn.coenen@nxp.com> Implement NDEF makeReadonly().

Change-Id: I2681d7408bfc5b5388eb22dd620ba24a5e26c286
ndroid/nfc/NativeNfcTag.java
ndroid/nfc/NfcService.java
def1a2b7c4eceda04f9c7ceba7ddb1f59b3968de 17-Dec-2010 Martijn Coenen <martijn.coenen@nxp.com> am 78d140e3: Support for multi-protocol connect on different handles.

* commit '78d140e347337074b38dea417d10beb58948106b':
Support for multi-protocol connect on different handles.
62d9da77239a48eba0120c98f65d19a02d9d353b 17-Dec-2010 Martijn Coenen <martijn.coenen@nxp.com> am 0a58617a: Store the libnfc tag type inside the tag object.

* commit '0a58617a63e32d2f43e3aabc705fb7b9de464482':
Store the libnfc tag type inside the tag object.
479fc2466205e4c8ece030baebc8d0cbe92423b2 17-Dec-2010 Martijn Coenen <martijn.coenen@nxp.com> am ae7d8d80: Multi-tag and multi-protocol clean-up and fixes.

* commit 'ae7d8d800ba73502d21e54d1deef16be0f061866':
Multi-tag and multi-protocol clean-up and fixes.
3141a8863038a2a577084d245f9bd474c0a2d1e6 17-Dec-2010 Martijn Coenen <martijn.coenen@nxp.com> am 232eabb7: Check ndef on both protocols of multi-proto if needed.

* commit '232eabb7c6f04506dbf272e06b115178311a57b9':
Check ndef on both protocols of multi-proto if needed.
78d140e347337074b38dea417d10beb58948106b 16-Dec-2010 Martijn Coenen <martijn.coenen@nxp.com> Support for multi-protocol connect on different handles.

(Depends on libnfc change!)

Change-Id: I946f2a7e7d75322da568b499b5129a4072012803
ndroid/nfc/NativeNfcTag.java
0a58617a63e32d2f43e3aabc705fb7b9de464482 15-Dec-2010 Martijn Coenen <martijn.coenen@nxp.com> Store the libnfc tag type inside the tag object.

Some functionality in libnfc is different for some technologies
(e.g. reconnect(), transceive()). For these cases, we'll use the libnfc
tag type to deal with them. We don't want to distinguish these cases based on the
Java API technology types, since they may be changed and even mapped to different
libnfc types. Ideally libnfc should abstract this away for us, but that is not
the case now.

Change-Id: I33ea04ca48d16ccf186e3f0882cafdd38a8adb34
ndroid/nfc/NativeNfcTag.java
ndroid/nfc/NfcService.java
ae7d8d800ba73502d21e54d1deef16be0f061866 15-Dec-2010 Martijn Coenen <martijn.coenen@nxp.com> Multi-tag and multi-protocol clean-up and fixes.

- The MULTIPLE_TAGS return value from libnfc is now handled:
in case of multiple tags, we just pick and report the first.
- Removed all obsolete calls to nfc_jni_get_nfc_tag_handle;
- Added some safety to CRC checking;
- NfcService interface now allows connecting to a (different) technology;

Still todo:
- Get rid of global reference to connected handle;
- Remove dependency on tech list ordering.

Change-Id: I7176c3c0edf369a8f33f64280dace1c7b1f2b598
ndroid/nfc/NativeNfcTag.java
ndroid/nfc/NfcService.java
232eabb7c6f04506dbf272e06b115178311a57b9 13-Dec-2010 Martijn Coenen <martijn.coenen@nxp.com> Check ndef on both protocols of multi-proto if needed.

Change-Id: I04d01ce0c597baaa14d30bb022890e69722e1c87
ndroid/nfc/NativeNfcTag.java
ndroid/nfc/NfcService.java
08518847541b789ffcb076ef7e89844b3cd70405 13-Dec-2010 Sylvain Fonteneau <sylvain.fonteneau@trusted-logic.com> am 2aac1a02: Use 256-bytes packets in MyTag for better performances.

* commit '2aac1a02813208e1669176a0fe1e65d93c028801':
Use 256-bytes packets in MyTag for better performances.
5c0b3fc720cd40ec80994e6236d94c19397bdab3 13-Dec-2010 Sylvain Fonteneau <sylvain.fonteneau@trusted-logic.com> am 1b147b40: Mark link as deactivated before doing anything else.

* commit '1b147b40e00cb6224d07f9185b19e6262c387ed6':
Mark link as deactivated before doing anything else.
f6c56dd92374c62f043aa940777b4036ee08607f 13-Dec-2010 Martijn Coenen <martijn.coenen@nxp.com> am bb78d374: Added support for (re)-connecting to tag technologies.

* commit 'bb78d3749bd0cc3801fdd9d5df06b0f6ee7a400f':
Added support for (re)-connecting to tag technologies.
d298dc7be44f4d8479724060116d11a24acbd059 13-Dec-2010 Jeff Hamilton <jham@android.com> am 3fb30ae5: First pass at advanced NFC tag dispatching APIs and other cleanup.

* commit '3fb30ae5bf51d9ffe6271a345d55905dade8040d':
First pass at advanced NFC tag dispatching APIs and other cleanup.
2fe2ef1c7aed7b3e4f0be51e65631d0a27d2f45a 13-Dec-2010 Martijn Coenen <martijn.coenen@nxp.com> am aae42714: Implemented interface to reconnect to the same tag handle.

* commit 'aae427142dc22e7e419c146bc7748d9daff518e8':
Implemented interface to reconnect to the same tag handle.
af365d3f1af906a581bf0ec92469493ede88b058 13-Dec-2010 Martijn Coenen <martijn.coenen@nxp.com> am 97c6942c: Implemented API and calls into libnfc for raw transceive.

* commit '97c6942c7c7f9df3bb8dbcc01cf7bb6e2e090005':
Implemented API and calls into libnfc for raw transceive.
c68027c1aee4bbb459372f245fd7dfd425359441 13-Dec-2010 Martijn Coenen <martijn.coenen@nxp.com> am 3ba3b108: Store NDEF r/w flags from the capability container in NDEF extras.

* commit '3ba3b10867c36bff57b72ff99c7b56d63d418f3f':
Store NDEF r/w flags from the capability container in NDEF extras.
e65b4ae00a75931377b4e6b7d8e53ab137bae909 13-Dec-2010 Martijn Coenen <martijn.coenen@nxp.com> am 4f2715ad: Initial work for supporting multi-protocol tags properly.

* commit '4f2715ade09afdd18463eb92f15215a43af41d63':
Initial work for supporting multi-protocol tags properly.
38810c98082f0509601a40fb46489352a024c8e3 13-Dec-2010 Nick Pelly <npelly@google.com> am 9b2b14e4: Update Nfc.apk for NfcAdapter.getDefaultAdapter() API change

* commit '9b2b14e4caa1fd341cdecbf0a45f3256f98e6494':
Update Nfc.apk for NfcAdapter.getDefaultAdapter() API change
2aac1a02813208e1669176a0fe1e65d93c028801 07-Dec-2010 Sylvain Fonteneau <sylvain.fonteneau@trusted-logic.com> Use 256-bytes packets in MyTag for better performances.

Also fixed the way the MIU is used. The MIU is the maximum payload
a local socket can receive in a single packet. The MIU may be
different for each side of a socket connection.

When sending data, the application have to make sure the payload
size does NOT exceed the MIU announced by the remote peer for the
current socket.

Change-Id: I3bed94b3042a9383088290de49a81d7ac855c92c
ndroid/nfc/mytag/MyTagClient.java
ndroid/nfc/mytag/MyTagServer.java
1b147b40e00cb6224d07f9185b19e6262c387ed6 13-Dec-2010 Sylvain Fonteneau <sylvain.fonteneau@trusted-logic.com> Mark link as deactivated before doing anything else.

Change-Id: I27a2b8742726b7ea49129270afe264248626af55
ndroid/nfc/NfcService.java
bb78d3749bd0cc3801fdd9d5df06b0f6ee7a400f 13-Dec-2010 Martijn Coenen <martijn.coenen@nxp.com> Added support for (re)-connecting to tag technologies.

- Connect() now takes a technology as an argument.
- NativeNfcTag now knows to which technology it is connected.

The default connected handle is for now always the first in the
tech list; also, NDEF is only checked on the first tech.

Still to be done:
- Check ndef on other techs if not found on first
- Expose the connect(technology) API to the framework
- Fix some calls that still use nfc_jni_get_tag_handle and need to work
on the selected technology instead.
- Get rid of mHandle and the globals for keeping tag handles

Change-Id: If76d4d458565ab0be7ca986c080a59ed8fd0668f
ndroid/nfc/NativeNfcTag.java
ndroid/nfc/NfcService.java
3fb30ae5bf51d9ffe6271a345d55905dade8040d 02-Dec-2010 Jeff Hamilton <jham@android.com> First pass at advanced NFC tag dispatching APIs and other cleanup.

Change-Id: I8469af074325fc8731aace1c9681bbddfa55dc89
ndroid/nfc/NfcService.java
ndroid/nfc/mytag/MyTagServer.java
aae427142dc22e7e419c146bc7748d9daff518e8 10-Dec-2010 Martijn Coenen <martijn.coenen@nxp.com> Implemented interface to reconnect to the same tag handle.

This allows applications to reset the "tag" state when they call close().

Change-Id: Iae78d5d0b714b53d52db9a0c21ad084d7a2010ba
ndroid/nfc/NativeNfcTag.java
ndroid/nfc/NfcService.java
97c6942c7c7f9df3bb8dbcc01cf7bb6e2e090005 10-Dec-2010 Martijn Coenen <martijn.coenen@nxp.com> Implemented API and calls into libnfc for raw transceive.

Change-Id: Iefd7ddfe2a9e2d32fe48a4c7fc03f2b48fb4b928
ndroid/nfc/NativeNfcTag.java
ndroid/nfc/NfcService.java
3ba3b10867c36bff57b72ff99c7b56d63d418f3f 09-Dec-2010 Martijn Coenen <martijn.coenen@nxp.com> Store NDEF r/w flags from the capability container in NDEF extras.

Change-Id: Ib0e16961b376a1d796dc8dc394be80b967119ff2
ndroid/nfc/NativeNfcTag.java
ndroid/nfc/NfcService.java
4f2715ade09afdd18463eb92f15215a43af41d63 08-Dec-2010 Martijn Coenen <martijn.coenen@nxp.com> Initial work for supporting multi-protocol tags properly.

- Tech tree properly does multi-protocol
- Implemented a handle list, where we can link each tech to a libnfc handle

Change-Id: Id9522d505cb158f5163e866b686758c269390cde
ndroid/nfc/NativeNfcTag.java
9b2b14e4caa1fd341cdecbf0a45f3256f98e6494 10-Dec-2010 Nick Pelly <npelly@google.com> Update Nfc.apk for NfcAdapter.getDefaultAdapter() API change

Change-Id: Idc938d32a8afbc4b93f1f3eea2abe8d056eec4e4
ndroid/nfc/mytag/MyTagClient.java
0d5587c2c5b697d92ac20e0dd7356e23c76ad433 08-Dec-2010 Martijn Coenen <martijn.coenen@nxp.com> am 41368d81: Piped through max supported ndef size in NDEF technology extra\'s.

* commit '41368d81f3076ac903693951f1d5cdba756f33fc':
Piped through max supported ndef size in NDEF technology extra's.
41368d81f3076ac903693951f1d5cdba756f33fc 07-Dec-2010 Martijn Coenen <martijn.coenen@nxp.com> Piped through max supported ndef size in NDEF technology extra's.

Change-Id: I74d3197754c7eb769992285e0c9e520c009386a0
ndroid/nfc/NativeNfcTag.java
ndroid/nfc/NfcService.java
402a33f3ce18d4f498b183c9a114e7f22c741cc7 08-Dec-2010 Martijn Coenen <martijn.coenen@nxp.com> am 0aac9419: Support for NDEF formatting in the JNI.

* commit '0aac9419555e69512a886a6b7fa6ce2d1947c72f':
Support for NDEF formatting in the JNI.
0aac9419555e69512a886a6b7fa6ce2d1947c72f 08-Dec-2010 Martijn Coenen <martijn.coenen@nxp.com> Support for NDEF formatting in the JNI.

Change-Id: I96ef383d18392dccd2fc765bc48941a43eea4420
ndroid/nfc/NativeNfcTag.java
ndroid/nfc/NfcService.java
235b6feb2386a060dc83e0236ac0bcd9f708c7f0 08-Dec-2010 Martijn Coenen <martijn.coenen@nxp.com> am bea54e32: Add collapsed ndef technology to the techlist.

* commit 'bea54e32a10b917cf0589f1bf413c21e8a4ad57e':
Add collapsed ndef technology to the techlist.
bea54e32a10b917cf0589f1bf413c21e8a4ad57e 07-Dec-2010 Martijn Coenen <martijn.coenen@nxp.com> Add collapsed ndef technology to the techlist.

Store the ndef message read in the tech extras. This can be
easily extended to support multiple ndef entries in the techlist.

Change-Id: I6d9a25d1d69e6c90296075b7ed50b40e37d7fd40
ndroid/nfc/NativeNfcTag.java
ndroid/nfc/NfcService.java
1e5fe1dd2f4fefa2ac148d02dbcde302e06dd12c 06-Dec-2010 Nick Pelly <npelly@google.com> am f7c313ae: Merge branch gingerbread-nfc into gingerbread.

* commit 'f7c313ae5eb35d68f4d480721c44aa30fa167279': (34 commits)
Fixed error reporting in LLCP receive method.
Fixed error case where dynamic semaphore was not released.
Restart MyTag server if LLCP accept() fails.
Handle errors in LLCP accept() method.
Added traces in JNI list utility.
Revert "Deliver tag in clean state to user app"
Fix to have poll/activation bytes only returned after a connect.
Make traces in MyTagClient/Server more readable.
Close the LLCP socket in any situation in MyTagClient.
Deliver tag in clean state to user app
Fix to manage the disconnect call in P2P Target mode
Fix exception thrown for Jewel/Topaz on activation bytes.
Added Felica Technology extra's.
Initial support for technology tree based on libnfc return type.
Fixed TAG name in NFC service JNI layer.
Fixed packet size in MyTagClient.
Fix in P2P disconnect and in GetStackCapabilities
Fix trace in llcp_transport_listen_socket_callback
Fix to restart the polling loop when a connect failed in P2P
Fixed context management in CheckLlcp and link status callbacks.
...
28f72bd9880d0b00c486603489d3862733eb638f 30-Nov-2010 Sylvain Fonteneau <sylvain.fonteneau@trusted-logic.com> Fixed error reporting in LLCP receive method.

In this method, reporting that zero bytes have been read means
that an error occured. There is no need for error codes.

Change-Id: I14912effe74375a4bda73c20fa8a42cef7c3ef07
ndroid/nfc/NfcService.java
89c67765e6df5925a7799176a18b17171cbf9e03 29-Nov-2010 Sylvain Fonteneau <sylvain.fonteneau@trusted-logic.com> Restart MyTag server if LLCP accept() fails.

If the server socket is in error, restart the server instead of
stopping it.

Change-Id: Icfc27713d4b4d1403e1f4404f37c78775c0d03cf
ndroid/nfc/mytag/MyTagServer.java
206090d29789d1232bb706408ce71e75b68d587d 30-Nov-2010 Martijn Coenen <martijn.coenen@nxp.com> Revert "Deliver tag in clean state to user app"

This fix has some unexpected side effects; reconnecting to ISO15693 tags fails,
and on NfcA tags the first present check after the second connect fails. Until
those issues are fixed, revert this change.
This reverts commit 75e511b45b7c236d32cbb8179ae1ccb7a21e3d21.
ndroid/nfc/NfcService.java
319fc851b61dd975e2309219ed13e21d3e167bdd 29-Nov-2010 Martijn Coenen <martijn.coenen@nxp.com> Fix to have poll/activation bytes only returned after a connect.

The poll/activation bytes were read from libnfc in the discovery callback.
This solution was not working 100%, because some bytes (ie ATS history,
attrib response) are only set by libnfc once a connect is attempted. This
fix moves the setting of the poll/activation bytes until after the connect.

Change-Id: I8c9cec52beeac005956924969b967a75173ce733
ndroid/nfc/NativeNfcTag.java
dfa09181ab86a7eefccc8af45e9df53998ff97c2 29-Nov-2010 Sylvain Fonteneau <sylvain.fonteneau@trusted-logic.com> Merge "Make traces in MyTagClient/Server more readable." into gingerbread-nfc
1f6cc72ed7592cf7191cf69064ab4088f67d3d54 29-Nov-2010 Sylvain Fonteneau <sylvain.fonteneau@trusted-logic.com> Merge "Close the LLCP socket in any situation in MyTagClient." into gingerbread-nfc
e9848c7a0ab1162e7355683f0cc12e2455d7c939 29-Nov-2010 Sylvain Fonteneau <sylvain.fonteneau@trusted-logic.com> Make traces in MyTagClient/Server more readable.

Change-Id: I7b831728b7c1b1744c1b7ed76fa77bbef2df5723
ndroid/nfc/mytag/MyTagClient.java
ndroid/nfc/mytag/MyTagServer.java
0cb987045e09237cdf73996319499b70603a8d46 29-Nov-2010 Sylvain Fonteneau <sylvain.fonteneau@trusted-logic.com> Close the LLCP socket in any situation in MyTagClient.

Change-Id: I652f4cc017cfe9a4d80fc1d445eca2e67e86c3d0
ndroid/nfc/mytag/MyTagClient.java
75e511b45b7c236d32cbb8179ae1ccb7a21e3d21 24-Nov-2010 Jan Brands <jan.r.brands@nxp.com> Deliver tag in clean state to user app

Don't leave behind any selected AIDs and files on ISO7816-4 tags, authenticated
sectors on MIFARE tags, etc.

Change-Id: I18c93a4b50213fc9ed6798a18fa93ab1c7dba042
ndroid/nfc/NfcService.java
28709e4c8f42e4209cc775dcebdd5d95a8c330d1 25-Nov-2010 Martijn Coenen <martijn.coenen@nxp.com> Fix exception thrown for Jewel/Topaz on activation bytes.

Jewel doesn't do anti-collission, hence SAK is not available.

Change-Id: I40ad1cb1776cea739f58152b0773648ffe2211a2
ndroid/nfc/NativeNfcTag.java
3117e51723f039c395de9fc6a8903251c1345963 25-Nov-2010 Martijn Coenen <martijn.coenen@nxp.com> Added Felica Technology extra's.

Change-Id: I72e1c6aee91530e7129087530d86dd3c83c680d7
ndroid/nfc/NativeNfcTag.java
0eceb58573a80da61c41b360fb9b205c37af89b3 24-Nov-2010 Sylvain Fonteneau <sylvain.fonteneau@trusted-logic.com> Fixed packet size in MyTagClient.

The packet was always sized to MIU instead of actual buffer size.

Change-Id: Iaf2fbd1cddf07a95e95a8dd69323d62dca8e6a2c
ndroid/nfc/mytag/MyTagClient.java
78fe74b1207f1afe88e6df4fe5b629c41c667b6b 24-Nov-2010 Sylvain Fonteneau <sylvain.fonteneau@trusted-logic.com> Merge "Enabled sending of large messages in MyTagClient." into gingerbread-nfc
2be7931d6e3be031a3e046d445b52e379ba1a1d5 24-Nov-2010 Sylvain Fonteneau <sylvain.fonteneau@trusted-logic.com> Merge "Renamed MyTagServer tag to a more readable value." into gingerbread-nfc
4c631cd2aa3ab422d4f9f3404d6f1fabce7bdf4d 19-Nov-2010 daniel_Tomas <daniel.tomas@trusted-logic.com> Fix to restart the polling loop when a connect failed in P2P

Change-Id: Icaeb2ed76d87da64c88b496ba76295aadeb12a7e
ndroid/nfc/NfcService.java
1bda2054589824819a6c2b87f7a3780063bc2844 22-Nov-2010 Sylvain Fonteneau <sylvain.fonteneau@trusted-logic.com> Renamed MyTagServer tag to a more readable value.

Change-Id: Ic5c321c3dbf3ca1f7f4e0697791522dd53dccf3e
ndroid/nfc/mytag/MyTagServer.java
bcccb386fe1dc20401b88ab0b0e493a8dbe7615c 23-Nov-2010 Sylvain Fonteneau <sylvain.fonteneau@trusted-logic.com> Enabled sending of large messages in MyTagClient.

If the message is to large to fit in a single packet (its size is
defined by MIU), then it need to be splited in multiple packets.

Change-Id: I69eafac0b250b0f32901795b2ab80bad173ae35a
ndroid/nfc/mytag/MyTagClient.java
e18f86dad5a54eb4ed1c347a8b832f3fb24ed3b7 17-Nov-2010 Sylvain Fonteneau <sylvain.fonteneau@trusted-logic.com> Removed dead code.

Change-Id: Ia543f55135701154d2c639639b2183bfa07c9fd9
ndroid/nfc/NativeNfcManager.java
0bd11735e8a28db1692f28abcc3e065abae0e8dd 17-Nov-2010 Daniel Tomas <daniel.tomas@trusted-logic.com> Secure Element Access implementation

Change-Id: Ia1c006c52aaf312408ef2fba96715b1b6c382ea9
ndroid/nfc/NativeNfcSecureElement.java
ndroid/nfc/NfcService.java
d4c32dbf41b379b6c7102d5b53a09bc5ce9760e4 20-Nov-2010 Jeff Hamilton <jham@android.com> Fix a few things.

One file got left out of my last commit,
and fix some logging around My Tag.

Change-Id: Iafb47dd5a3f6ed8e337b1f951875d010fc328002
ndroid/nfc/NativeNfcTag.java
ndroid/nfc/mytag/MyTagClient.java
ndroid/nfc/mytag/MyTagServer.java
b74200f40f9d4f536b8782974d444f1f9178076f 10-Nov-2010 Jeff Hamilton <jham@android.com> Update to API changes.

Change-Id: I8f52bf20f493581aef80201b4b112af28cf3b5fa
ndroid/nfc/NativeNfcManager.java
ndroid/nfc/NativeNfcTag.java
ndroid/nfc/NfcService.java
ndroid/nfc/TagTarget.java
09f28764768ce0236cc3faf3dba17b1bbd6c8fdf 18-Nov-2010 Kenny Root <kroot@google.com> Use Boolean's static values instead of new Boolean

Since Boolean can only have two values, there are static versions at
Boolean.TRUE and Boolean.FALSE. They can be acquired through
Boolean.valueOf(...) as well. Use those instead of creating our own
instances.

Change-Id: I38bd356836754ae02df5a622b368cbb8ec7a6fa2
ndroid/nfc/NfcService.java
b40b1d6ff2b05f8629d0cf62e987658f6c1e4731 03-Nov-2010 Jeff Hamilton <jham@android.com> Make sure to close the communication socket.

Change-Id: Ie13294a978b46d5e75128b2d0fdd4c2f7a70f2e2
ndroid/nfc/mytag/MyTagServer.java
a989351c7383aa6b3a6086b10f32c39c1d28fa5d 18-Nov-2010 Jeff Hamilton <jham@android.com> Revert "Fix to disable P2P feature in the NFC Service and JNI"

This reverts commit ae66f8e306a46a24e4121b72b30d8beb5e1c08f9.
ndroid/nfc/NfcService.java
57d376f1ee1a3939977b95759525585abb9601fb 18-Nov-2010 Jeff Hamilton <jham@android.com> Revert "Remove My Tag support."

This reverts commit 825f01522a1d68cadb634c88101e96f842478926.

Change-Id: I75e027c066ba7bddaab87f910083707d8eb380b0
ndroid/nfc/NfcService.java
ndroid/nfc/mytag/MyTagClient.java
ndroid/nfc/mytag/MyTagServer.java
5df484a6c94aebd8b79a0c3ec96da372063aeffd 10-Nov-2010 Jeff Hamilton <jham@android.com> Remove dead code.

NativeNfcTag contains the NDEF
read/write and NativeNdefTag is
not used anywhere.

Change-Id: Ic3f7c3c792419468ea9c02f3d08df2761627137e
ndroid/nfc/NativeNdefTag.java
d65348455ae09a467f288d65dbf924fc60c8d290 11-Nov-2010 Jeff Hamilton <jham@android.com> Revert "Remove the My Tag feature."

This reverts commit 1fc06b8d4dfd7e92c43cbd4c5aacf8fa66d181d1.
ndroid/nfc/NfcService.java
ef92efa7fd86d75cc35465b84e8740f941ff0f0a 04-Nov-2010 Jeff Hamilton <jham@android.com> Quiet most logs in NFC by default.

Bug: 3124915
Change-Id: If5a3e6b21fe43d9ce2ff82ee65751baaa1c0e0a2
Signed-off-by: Nick Pelly <npelly@google.com>
ndroid/nfc/NativeNfcTag.java
ndroid/nfc/NfcService.java
52028e699e43e6322021098bbefd761fe6596747 04-Nov-2010 Nick Pelly <npelly@google.com> Don't turn on polling loop at NFC service init if screen is off.

NFC service can be restarted with screen off, and we will be put in
polling loop, or worse constant RF, if this happens with a card in field.

Change-Id: I0b8d2ba04f3af47908586cccf7210d9a7abb5d54
Signed-off-by: Nick Pelly <npelly@google.com>
ndroid/nfc/NfcService.java
ae66f8e306a46a24e4121b72b30d8beb5e1c08f9 04-Nov-2010 Daniel Tomas <daniel.tomas@trusted-logic.com> Fix to disable P2P feature in the NFC Service and JNI

Change-Id: Ie288273526d9e947545dde134ac1d23399a716c4
Signed-off-by: Nick Pelly <npelly@google.com>
ndroid/nfc/NfcService.java
533043d1003de2f6a20a29201100d94c3c7bc9ca 04-Nov-2010 Nick Pelly <npelly@google.com> Add wakelock around the disable discovery path during SCREEN_OFF.

We're about to also disconnect from tags during SCREEN_OFF, which can take
some time, so we need to make sure to hold the CPU on.

Change-Id: Ie551c028cecfb49faddc95a45ecd8eac07671968
Signed-off-by: Nick Pelly <npelly@google.com>
ndroid/nfc/NfcService.java
1fc06b8d4dfd7e92c43cbd4c5aacf8fa66d181d1 03-Nov-2010 Jeff Hamilton <jham@android.com> Remove the My Tag feature.

Change-Id: I4f839d20d2be8c816fffedc9f64292008751a7c1
ndroid/nfc/NfcService.java
363e40d2df0d838076a68370467c0e3b9a68d4bf 03-Nov-2010 Martijn Coenen <martijn.coenen@nxp.com> Implementation of poll bytes / activation bytes API

Change-Id: I92776225eafd39e0c4dad15b46d5e0ce63f7a991
Signed-off-by: Nick Pelly <npelly@google.com>
ndroid/nfc/NativeNfcTag.java
ndroid/nfc/NfcService.java
825f01522a1d68cadb634c88101e96f842478926 03-Nov-2010 Jeff Hamilton <jham@android.com> Remove My Tag support.

Change-Id: Ic8f962879dc8c226b0ac10d2a1d4e41ede5d9326
ndroid/nfc/NfcService.java
ndroid/nfc/mytag/MyTagClient.java
ndroid/nfc/mytag/MyTagServer.java
73c77aa23abd50752e450a4cf09a867c2571fbe8 03-Nov-2010 Jason parks <jparks@google.com> Don't show the icon if nfc is disabled and someone sets a tag.

Change-Id: I613e5755dea46e6920ab98621d0f8ffb2feeb358
ndroid/nfc/NfcService.java
e1fac398523a97e3bcf513393a91478d79a8763f 03-Nov-2010 Sylvain Fonteneau <sylvain.fonteneau@trusted-logic.com> Changed LLCP symmetry timeout back to 1.5s (LTO=150).

The LTO was previously set to 250 as a workaround for performance
issues. This is not needed any more with the current RF speed.

Change-Id: Id236b142d3150203781d00434b93387d925abda5
ndroid/nfc/NfcService.java
8a16166fdec082ab162bf539be0e3163d4e23af0 03-Nov-2010 Jason parks <jparks@google.com> Hide/show the MyTag icon when NFC is enabled/disabled.

Change-Id: I3ca5e6f90d85fdef262874bd9223ca5f49468af4
ndroid/nfc/NfcService.java
f63da5f0887eba86d877faaee41dc5dfb8fccd50 03-Nov-2010 Jeff Hamilton <jham@android.com> Don't unregister service sockets when they're created.

This allows services to accept multiple times in
a row.

Change-Id: Ifef474cd753d0481f3a9befce91d2fec869d34ad
ndroid/nfc/NfcService.java
7fa45a3567dabab6125279ea4566780f04d57a4f 02-Nov-2010 Jeff Hamilton <jham@android.com> Enable My Tag server.

Change-Id: I597e4be9051cc30c4432f90bd8399ae4bdd84b83
ndroid/nfc/NfcService.java
cdab1112486288ee6ccc9eb5c55456f9618f6b9c 03-Nov-2010 Jeff Hamilton <jham@android.com> Don't disconnect when the peer is the initiator.

Change-Id: Ie56036441ea41d9290d33915e3616e9379f6ea98
ndroid/nfc/NfcService.java
88f552a4ac37af91db1e0c848df347267fcfb26a 03-Nov-2010 Jason parks <jparks@google.com> Log a warning if the bytes to mytag is 0.

Change-Id: I5cddb343bf0cad13768fb4d6d3d00f82f4205afa
ndroid/nfc/NfcService.java
15151d5453f9b9b3680cb254ccea42458cc51f33 02-Nov-2010 Jeff Hamilton <jham@android.com> Fixes for My Tag server.

- Record the socket parameters for registered
LLCP service sockets since they're used when
accept() is called before a connection is
active.

- Add a missing break when handling mock NDEF
messages to avoid a crash when a My Tag is
scanned.

- Fix up the accept and read loops in My Tag
server.

Change-Id: Ia994c9dacb5e6770ac5c0f1b5b9e0156eea6e5cb
ndroid/nfc/NativeLlcpServiceSocket.java
ndroid/nfc/NfcService.java
ndroid/nfc/mytag/MyTagServer.java
93915e1c6fe6d5d16fcebeda610782bf5812c9b4 02-Nov-2010 Nick Pelly <npelly@google.com> Remove timeout support - it was guaranteed to cause deadlock.

sem_timedwait() was unbalanced.

Also remove more dead code, and reduce watchdog timeout from 10 to 5 seconds.

Change-Id: Ica776e4a27905071c1453b2db02f9ffadf6f9461
Signed-off-by: Nick Pelly <npelly@google.com>
ndroid/nfc/NativeLlcpServiceSocket.java
ndroid/nfc/NativeLlcpSocket.java
ndroid/nfc/NfcService.java
48819102064977c3e37e18fd6db9a6022c01300c 02-Nov-2010 Daniel Tomas <daniel.tomas@trusted-logic.com> Patch for semaphore managnement with wrong return code from the Libnfc

Change-Id: I909b2623f66ca0f3f0370617e2df4b1075614c44
ndroid/nfc/NativeNfcManager.java
d3c57c0c2419d595b8de940254814b5935932b28 01-Nov-2010 Martijn Coenen <martijn.coenen@nxp.com> Fix empty or incorrect ndef message not sending Intent.

Will now send an intent with an empty NDEF message array attached

Change-Id: I58d86c9b5cfff127581824ca6af410a503059cbb
Signed-off-by: Nick Pelly <npelly@google.com>
ndroid/nfc/NfcService.java
21545af22f9b913ec9cb124287aab2fcb0cf2b3b 02-Nov-2010 Nick Pelly <npelly@google.com> CONCURRENCY_LOCK() cleanup.

Rename functions that need to be called with lock held to _locked().
Remove dead code.
Replace asyncDisconnect() with disconnect() - its broken.

Change-Id: I04feb449394750954e202223366a0fa5ea425924
Signed-off-by: Nick Pelly <npelly@google.com>
ndroid/nfc/NativeNfcManager.java
ndroid/nfc/NativeNfcTag.java
ndroid/nfc/NfcService.java
fa746bcc16d57ff12d373b9139558f5bc7164b30 01-Nov-2010 Jason parks <jparks@google.com> Persist mytag in the service.

Change-Id: Ibd553a01f8790d1f38673bd08f90e3c1a847f727
ndroid/nfc/NfcService.java
2407a9d01fdc8e48f778d2ef070e75a74d3863c4 28-Oct-2010 Nick Pelly <npelly@google.com> Update NFC for modified API's.

Change-Id: Ibd50e30c7f340eed7c84785d2060a8a237f9cd5b
Signed-off-by: Nick Pelly <npelly@google.com>
ndroid/nfc/NfcService.java
6f7fd8dbda9092e36e58273e843ae3e4a200e2ff 28-Oct-2010 Jeff Hamilton <jham@android.com> Add more logging of LLCP socket actions.

Change-Id: Ib6e8c642a97abab6592200023c1bb0993d0bfdc0
ndroid/nfc/NfcService.java
ndroid/nfc/mytag/MyTagClient.java
ndroid/nfc/mytag/MyTagServer.java
b3cdb6612a057373a61521171d99ce4f24b84e1f 28-Oct-2010 Jeff Hamilton <jham@android.com> Track the LLCP link state as it changes.

Change-Id: I6d7756739489b240e2e27c91a1afd8c5bd534342
ndroid/nfc/NfcService.java
eead88c5e2bdd34eb33fdf2c76717f9edb9e0396 27-Oct-2010 Jeff Hamilton <jham@android.com> Patch from NXP. Avoid overrun when setting timer.

Change-Id: I9f46908d99d05804cd325024fc60da762f5beb1d
ndroid/nfc/NativeNfcManager.java
ndroid/nfc/NfcService.java
4acf84356e35861f7df6d07a2b9ff84842a9f221 27-Oct-2010 Nick Pelly <npelly@google.com> Force NFC service to abort() during emergency_recovery().

emergency_recovery() was not able to kill libnfc threads blocked in mutex,
and was just wedging everything. So instead kill the entire NFC service
process. The framework will immediately restart it, and the NFC API's will
rebind to the new service handle.

Also I cleaned up the code to handle boot complete. This is necessary to clean
up because during recovery restart we do not receive a boot complete event.
It turns out we can use FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT on intent
broadcasts, and avoid having to track boot complete at all.

Change-Id: I41c885b441128fd447d6b8c63bb50a13a1d4cdfd
Signed-off-by: Nick Pelly <npelly@google.com>
ndroid/nfc/NfcService.java
161f84b5487ce4c1ebef9fe24ba4de00f6f756ea 27-Oct-2010 Nick Pelly <npelly@google.com> Another attempt to mitigate loads-of-ANR-when-NFC-wedges.

Do not even take a mutex in SCREEN_ON/OFF receiver. Just schedule the thread.

Bug: 3131975
Change-Id: Ic8763315c815aff63299f77590e61d668d13031b
Signed-off-by: Nick Pelly <npelly@google.com>
ndroid/nfc/NfcService.java
ac20278176be20d9d86e3362b2b05ef7e6205fcb 26-Oct-2010 Jeff Hamilton <jham@android.com> Move the My Tag client to its own thread.

Change-Id: Ie7340a34ecd1e0a81d9589f8c8e130b761a221b5
ndroid/nfc/mytag/MyTagClient.java
1be4eb6d61c4b6e02c5a5cb7ac3b3a68cae7d7a2 26-Oct-2010 Jeff Hamilton <jham@android.com> More work on My Tag.

Change-Id: Iba652af8efdec58d04d5e8e5ecc6af8281f57279
ndroid/nfc/NfcService.java
ndroid/nfc/mytag/MyTagClient.java
ndroid/nfc/mytag/MyTagServer.java
db7d865e53c4db049bab20a0bcc7cb596e450d9a 26-Oct-2010 Sylvain Fonteneau <sylvain.fonteneau@trusted-logic.com> Fix bug preventing RawTagConnection and NdefTagConnection clases from working.

Added missing native tag registration in NFC service.

Change-Id: Id470fc93fc83a4b9bde6d0bd78500f50635efb48
Signed-off-by: Nick Pelly <npelly@google.com>
ndroid/nfc/NfcService.java
df4e65b5dacb313e7d68bad797a843a175febbed 26-Oct-2010 Nick Pelly <npelly@google.com> Fix bug in async-screen-on-off.

Use a boxed boolean, not a primitive boolean.
Use the correct array index.

Change-Id: Id3cd16c8d21b9dacd6d167b0458b6583d7fba89f
Signed-off-by: Nick Pelly <npelly@google.com>
ndroid/nfc/NfcService.java
d2e00e6e0bef1a4b7b0c63d9ed4cf4150fff6414 26-Oct-2010 Nick Pelly <npelly@google.com> Do not call mWatchdog if it has not been assigned.

mWatchdog is only assigned during a successful connect(), but other NativeTag
methods were calling methods on it without a null check.

Bug: 3133259
Change-Id: Ia28a6cad7bbf8e029e876f902474f6b4af380e02
Signed-off-by: Nick Pelly <npelly@google.com>
ndroid/nfc/NativeNfcTag.java
7c034a7fe7d36b1ab039af2c44717812ea02657e 26-Oct-2010 Nick Pelly <npelly@google.com> Move NFC adapter configuration off the main thread during SCREEN_ON/OFF events.

These should be safe on the main thread, because they involve configuration of
the local NFC adapter, so it should be very quick. However the NFC stack is
currently wedging frequently, and the resulting ANR's during screen on/screen
off are very disruptive.

Bug: 3131975
Change-Id: I06d3ee17a991a95676666300942054797c6adf00
Signed-off-by: Nick Pelly <npelly@google.com>
ndroid/nfc/NfcService.java
d0ec3981792e38afd119fc1c995f111f6182f6c8 26-Oct-2010 Jeff Hamilton <jham@android.com> Checkpoint work on My Tag.

The tag server has some problems when being
stopped and the client never gets notified
about the LLCP connection.

Change-Id: Ifdfc60d48ed85a9916f8abb085afcf01dd5a0155
ndroid/nfc/NfcService.java
ndroid/nfc/mytag/MyTagClient.java
ndroid/nfc/mytag/MyTagServer.java
3ca6ffff72f4599e80f85de5ae8e7f55012f38d6 25-Oct-2010 Jeff Hamilton <jham@android.com> Show an icon in the status bar when the NfcAdapter is in card emulation mode.

Change-Id: Ia54094291726fa4fac152a49b1b182d73ff9958f
ndroid/nfc/NfcService.java
65945ad77cadb7a3bdf171497877d2325b23def5 25-Oct-2010 Nick Pelly <npelly@google.com> Turn NFC discovery off when screen is off.

Change-Id: Ib122c9a952f7f41798f7e6b2b8e9884b53e67723
Signed-off-by: Nick Pelly <npelly@google.com>
ndroid/nfc/NfcService.java
2f8ac1e6cdeb32569bc6477d53a2d0d5608758b1 23-Oct-2010 Nick Pelly <npelly@google.com> Start NFC service at Application load time.

- starting at app onCreate() is about 6 seconds before BOOT_COMPLETE
- enable hardware immediately, but do not send any intents until
BOOT_COMPLETE (using mBootComplete to guard).
- add mutex's around some fields that needed it

The fields that are still not thread-safe were non-trivial to fix.

Change-Id: Id1c2bf535610ac594a33d84fe9a32d01d698a321
Signed-off-by: Nick Pelly <npelly@google.com>
ndroid/nfc/NfcReceiver.java
ndroid/nfc/NfcService.java
f348bf5b21c5c39d7b3627327db1e61007d07539 23-Oct-2010 Nick Pelly <npelly@google.com> Don't catch generic Exception.

The diff might look huge but it's just re-tabbing.

Change-Id: I5a69a2410e7cd29b3e274896eec28f2e1824ebc6
Signed-off-by: Nick Pelly <npelly@google.com>
ndroid/nfc/NfcService.java
1cf8ba9546ba5204af08b8de2c542b6a1bf8f8a0 22-Oct-2010 Nick Pelly <npelly@google.com> Push Tag/NdefTag implementation details into the service.

Tag/NdefTag objects should just be simple data objects. Push the mapping of
internal tag type to public rawTarget/ndefTarget into Nfc Service.

Change-Id: Ic20da465fb22a4250aa28c4bc14636ccb8d82889
Signed-off-by: Nick Pelly <npelly@google.com>
ndroid/nfc/NfcService.java
ndroid/nfc/TagTarget.java
d6fdd3fbb880f1503d56616608e6823b51320dc3 22-Oct-2010 Nick Pelly <npelly@google.com> Don't derefence null pointers.

Also added a comment as per feedback on my TBR last night with jham.

Change-Id: I9472f23acc8e8405c59d095cc17db585711f47ef
Signed-off-by: Nick Pelly <npelly@google.com>
ndroid/nfc/NfcService.java
2f386c612159a48933c12dbcaf6735bd9ad1c660 21-Oct-2010 Brad Fitzpatrick <bradfitz@android.com> NFC: commit -> apply for shared prefs.

Change-Id: I0c559c584a832cfcbda3d89d61b3622f48b26176
ndroid/nfc/NfcService.java
f5280191c0e422a730504eebeced4acbcfc1bd9f 21-Oct-2010 Nick Pelly <npelly@google.com> Fix regression where TAG discovery always fails.

I forgot to apply the preferences to the Native Manager.

Change-Id: Idaa09758af45df0b6253d8ad185e29445fbc9e96
Signed-off-by: Nick Pelly <npelly@google.com>
ndroid/nfc/NfcService.java
b230214bcb557184cb54174889cbede53b92d54f 20-Oct-2010 Sylvain Fonteneau <sylvain.fonteneau@trusted-logic.com> Enable NFC tag presence checking and implement background presence checking.

The background presence checking enables to restart the polling loop if
the application do not release the tag (e.g.: coding or runtime error).
The tag presence will be checked if there is no activity on it during 1s.

The message handler has been moved to the NfcService.java file. It was
previously located in NativeNfcManager,java file for historical reasons.

Change-Id: I3ab5c15c75eb81d2814187b47729859064cf011a
Signed-off-by: Nick Pelly <npelly@google.com>
ndroid/nfc/NativeNfcManager.java
ndroid/nfc/NativeNfcTag.java
ndroid/nfc/NfcService.java
0e6a0a0f50132e14d5ecad61c46e07c67fbb26fb 21-Oct-2010 Nick Pelly <npelly@google.com> NFC Settings cleanup.

Move all NFC settings into shared preferences in NFC service.

Service / Binder / BroadcastReceiver cleanup. Re-enable receivers
for internal intents.

misc cleanup.

Change-Id: I73480faea496f6bede2dfdb6fc682c7e84360326
Signed-off-by: Nick Pelly <npelly@google.com>
ndroid/nfc/NfcReceiver.java
ndroid/nfc/NfcService.java
ba1ce2f1cac75db3d8af14138f0876f2b77a4a67 19-Oct-2010 Jeff Hamilton <jham@android.com> Close the tag connection after firing the tag detected Intent.

Change-Id: I85a1748f7cb72af5e5c5bd17145970bce5da370f
ndroid/nfc/NativeNfcManager.java
74180bda362a8bc9d2f701d2c17bec0f63c20bbf 18-Oct-2010 Brad Fitzpatrick <bradfitz@android.com> NFC: send a broadcast on adapater state change

Depends on constants in Ie5dc05e3

This change is necessary for the improved Settings UI, in

Bug: 3097279
Change-Id: Iec9596a6f8c8c6551ea8b5a70ec300c9b50789c5
ndroid/nfc/NfcService.java
bebaa6cc1a1eb2ce0656e17b0e09ed4747878d8e 18-Oct-2010 Nick Pelly <npelly@google.com> Enforce NFC permission model.

Requires no permissions:
- Viewing UID, type of discovered tags and cards.
- Viewing the NDEF message contents of NDEF formatted tags and cards.

Requires android.permission.NFC
- Get/Set the local tag "MyTag"
- Creating or using a RawTagConnection (transceive())
- Creating or using a NdefTagConnection (write()/read())

Change-Id: I31f2336a81a7151063969f9019da9aaf08092d65
Signed-off-by: Nick Pelly <npelly@google.com>
ndroid/nfc/NativeNfcManager.java
ndroid/nfc/NfcService.java
c2fdb614879c601b5162d5d93d705b05c7b1e072 18-Oct-2010 Nick Pelly <npelly@google.com> Rename com_trustedlogic_trustednfc -> com_android_nfc.

Change-Id: I7299115be35b4a598ad9bfc068d6161a01d1a834
Signed-off-by: Nick Pelly <npelly@google.com>
ndroid/nfc/NativeNfcManager.java
16fade071b801dc3632b387bc9aaece1afa28120 16-Oct-2010 Sylvain Fonteneau <sylvain.fonteneau@trusted-logic.com> Update Tag object generation in NFC service to match draft #5 API reauirements.

Change-Id: I7b697c146a47b4314c969bde6902497163473c1a
Signed-off-by: Nick Pelly <npelly@google.com>
ndroid/nfc/NativeNfcManager.java
13d8819d9d716c8f0ba03288d058f0bd462d70a7 14-Oct-2010 Nick Pelly <npelly@google.com> Enable NFC service as an application service.

Uses ServiceManager.addService() to register the service.

Uses BOOT_COMPLETE to start the service.

Uses sharedUserId com.android.nfc so that it has a fixed uid.

Uses android:persistant so that the process is not killed.

Change-Id: If4264baf5dc457ee0a3ad5788c5945e84173b1ea
Signed-off-by: Nick Pelly <npelly@google.com>
ndroid/nfc/NfcReceiver.java
ndroid/nfc/NfcService.java
f067256d9556b1e01143f9ae2fd824fa5dc03138 14-Oct-2010 Nick Pelly <npelly@google.com> NFC application.

NFC application contains the NFC service code that implements NFC API and
talks to NFC hardware.

This is the first cut at moving NFC service code out of frameworks/base into
application service. Android.mk are renamed to Android.mk.hide at this commit
because it does not work yet.

Signed-off-by: Nick Pelly <npelly@google.com>
ndroid/nfc/ErrorCodes.java
ndroid/nfc/NativeLlcpConnectionlessSocket.java
ndroid/nfc/NativeLlcpServiceSocket.java
ndroid/nfc/NativeLlcpSocket.java
ndroid/nfc/NativeNdefTag.java
ndroid/nfc/NativeNfcManager.java
ndroid/nfc/NativeNfcTag.java
ndroid/nfc/NativeP2pDevice.java
ndroid/nfc/NfcService.java