resolved conflicts for merge of 3a223404 to honeycomb-merge

Change-Id: I0eb1f3a271797c78d9ec5b2528a221c89973a83c
This commit is contained in:
Jeff Hamilton
2011-01-27 11:27:58 -06:00
3 changed files with 94 additions and 10 deletions

View File

@@ -50,6 +50,8 @@ interface INfcAdapter
void enableForegroundDispatch(in ComponentName activity, in PendingIntent intent,
in IntentFilter[] filters);
void disableForegroundDispatch(in ComponentName activity);
void enableForegroundNdefPush(in ComponentName activity, in NdefMessage msg);
void disableForegroundNdefPush(in ComponentName activity);
// Non-public methods
// TODO: check and complete

View File

@@ -413,13 +413,6 @@ public final class NfcAdapter {
}
}
class ForegroundDispatchPausedListener implements OnActivityPausedListener {
@Override
public void onPaused(Activity activity) {
disableForegroundDispatchInternal(activity, true);
}
}
/**
* Enables foreground dispatching to the given Activity. This will force all NFC Intents that
* match the given filters to be delivered to the activity bypassing the standard dispatch
@@ -438,7 +431,7 @@ public final class NfcAdapter {
throw new NullPointerException();
}
if (!activity.isResumed()) {
throw new IllegalStateException("Foregorund dispatching can onlly be enabled " +
throw new IllegalStateException("Foregorund dispatching can only be enabled " +
"when your activity is resumed");
}
try {
@@ -452,15 +445,24 @@ public final class NfcAdapter {
/**
* Disables foreground activity dispatching setup with
* {@link #enableForegroundDispatch}. This must be called before the Activity returns from
* {@link #enableForegroundDispatch}.
*
* <p>This must be called before the Activity returns from
* it's <code>onPause()</code> or this method will throw an IllegalStateException.
*
* This method must be called from the main thread.
* <p>This method must be called from the main thread.
*/
public void disableForegroundDispatch(Activity activity) {
disableForegroundDispatchInternal(activity, false);
}
class ForegroundDispatchPausedListener implements OnActivityPausedListener {
@Override
public void onPaused(Activity activity) {
disableForegroundDispatchInternal(activity, true);
}
}
void disableForegroundDispatchInternal(Activity activity, boolean force) {
try {
sService.disableForegroundDispatch(activity.getComponentName());
@@ -473,6 +475,58 @@ public final class NfcAdapter {
}
}
/**
* Enable NDEF messages push while this Activity is in the foreground.
*/
public void enableForegroundNdefPush(Activity activity, NdefMessage msg) {
if (activity == null || msg == null) {
throw new NullPointerException();
}
if (!activity.isResumed()) {
throw new IllegalStateException("Foregorund NDEF push can only be enabled " +
"when your activity is resumed");
}
try {
ActivityThread.currentActivityThread().registerOnActivityPausedListener(activity,
new ForegroundDispatchPausedListener());
sService.enableForegroundNdefPush(activity.getComponentName(), msg);
} catch (RemoteException e) {
attemptDeadServiceRecovery(e);
}
}
/**
* Disables foreground NDEF push setup with
* {@link #enableForegroundNdefPush}.
*
* <p>This must be called before the Activity returns from
* it's <code>onPause()</code> or this method will throw an IllegalStateException.
*
* <p>This method must be called from the main thread.
*/
public void disableNdefPushDispatch(Activity activity) {
disableForegroundDispatchInternal(activity, false);
}
class ForegroundNdefPushPausedListener implements OnActivityPausedListener {
@Override
public void onPaused(Activity activity) {
disableNdefPushDispatchInternal(activity, true);
}
}
void disableNdefPushDispatchInternal(Activity activity, boolean force) {
try {
sService.disableForegroundNdefPush(activity.getComponentName());
if (!force && !activity.isResumed()) {
throw new IllegalStateException("You must disable forgeground NDEF push " +
"while your activity is still resumed");
}
} catch (RemoteException e) {
attemptDeadServiceRecovery(e);
}
}
/**
* Retrieve a TagTechnology object used to interact with a Tag that is
* in field.