Merge "NFC: Move playSound to BeamManager"
diff --git a/src/com/android/nfc/beam/BeamManager.java b/src/com/android/nfc/beam/BeamManager.java
index ba16aa5..87ea881 100644
--- a/src/com/android/nfc/beam/BeamManager.java
+++ b/src/com/android/nfc/beam/BeamManager.java
@@ -15,6 +15,7 @@
*/
package com.android.nfc.beam;
+import com.android.nfc.NfcService;
import com.android.nfc.handover.HandoverDataParser;
import android.bluetooth.BluetoothDevice;
@@ -45,6 +46,8 @@
private boolean mBeamInProgress;
private final Handler mCallback;
+ private NfcService mNfcService;
+
private static final class Singleton {
public static final BeamManager INSTANCE = new BeamManager();
}
@@ -53,6 +56,7 @@
mLock = new Object();
mBeamInProgress = false;
mCallback = new Handler(Looper.getMainLooper(), this);
+ mNfcService = NfcService.getInstance();
}
public static BeamManager getInstance() {
@@ -118,6 +122,11 @@
synchronized (mLock) {
mBeamInProgress = false;
}
+
+ boolean success = msg.arg1 == 1;
+ if (success) {
+ mNfcService.playSound(NfcService.SOUND_END);
+ }
return true;
}
return false;
diff --git a/src/com/android/nfc/beam/BeamReceiveService.java b/src/com/android/nfc/beam/BeamReceiveService.java
index 7deb014..9d24dd0 100644
--- a/src/com/android/nfc/beam/BeamReceiveService.java
+++ b/src/com/android/nfc/beam/BeamReceiveService.java
@@ -1,15 +1,11 @@
package com.android.nfc.beam;
-import com.android.nfc.R;
-
import android.app.Service;
import android.bluetooth.BluetoothAdapter;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
-import android.media.AudioManager;
-import android.media.SoundPool;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
@@ -33,8 +29,6 @@
private BeamStatusReceiver mBeamStatusReceiver;
private boolean mBluetoothEnabledByNfc;
private int mStartId;
- private SoundPool mSoundPool;
- private int mSuccessSound;
private BeamTransferManager mTransferManager;
private Messenger mCompleteCallback;
@@ -75,7 +69,7 @@
if (DBG) Log.i(TAG, "Ready for incoming Beam transfer");
return START_STICKY;
} else {
- invokeCompleteCallback();
+ invokeCompleteCallback(false);
stopSelf(startId);
return START_NOT_STICKY;
}
@@ -86,9 +80,6 @@
public void onCreate() {
super.onCreate();
- mSoundPool = new SoundPool(1, AudioManager.STREAM_NOTIFICATION, 0);
- mSuccessSound = mSoundPool.load(this, R.raw.end, 1);
-
// register BT state receiver
IntentFilter filter = new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED);
registerReceiver(mBluetoothStateReceiver, filter);
@@ -97,10 +88,6 @@
@Override
public void onDestroy() {
super.onDestroy();
- if (mSoundPool != null) {
- mSoundPool.release();
- }
-
if (mBeamStatusReceiver != null) {
unregisterReceiver(mBeamStatusReceiver);
}
@@ -139,10 +126,12 @@
return true;
}
- private void invokeCompleteCallback() {
+ private void invokeCompleteCallback(boolean success) {
if (mCompleteCallback != null) {
try {
- mCompleteCallback.send(Message.obtain(null, BeamManager.MSG_BEAM_COMPLETE));
+ Message msg = Message.obtain(null, BeamManager.MSG_BEAM_COMPLETE);
+ msg.arg1 = success ? 1 : 0;
+ mCompleteCallback.send(msg);
} catch (RemoteException e) {
Log.e(TAG, "failed to invoke Beam complete callback", e);
}
@@ -152,9 +141,7 @@
@Override
public void onTransferComplete(BeamTransferManager transfer, boolean success) {
// Play success sound
- if (success) {
- mSoundPool.play(mSuccessSound, 1.0f, 1.0f, 0, 0, 1.0f);
- } else {
+ if (!success) {
if (DBG) Log.d(TAG, "Transfer failed, final state: " +
Integer.toString(transfer.mState));
}
@@ -164,7 +151,7 @@
mBluetoothAdapter.disable();
}
- invokeCompleteCallback();
+ invokeCompleteCallback(success);
stopSelf(mStartId);
}
diff --git a/src/com/android/nfc/beam/BeamSendService.java b/src/com/android/nfc/beam/BeamSendService.java
index 59019d5..6c013ea 100644
--- a/src/com/android/nfc/beam/BeamSendService.java
+++ b/src/com/android/nfc/beam/BeamSendService.java
@@ -16,16 +16,12 @@
package com.android.nfc.beam;
-import com.android.nfc.R;
-
import android.app.Service;
import android.bluetooth.BluetoothAdapter;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
-import android.media.AudioManager;
-import android.media.SoundPool;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
@@ -47,8 +43,6 @@
private boolean mBluetoothEnabledByNfc;
private Messenger mCompleteCallback;
private int mStartId;
- SoundPool mSoundPool;
- int mSuccessSound;
private final BluetoothAdapter mBluetoothAdapter;
private final BroadcastReceiver mBluetoothStateReceiver = new BroadcastReceiver() {
@@ -69,9 +63,6 @@
public void onCreate() {
super.onCreate();
- mSoundPool = new SoundPool(1, AudioManager.STREAM_NOTIFICATION, 0);
- mSuccessSound = mSoundPool.load(this, R.raw.end, 1);
-
// register BT state receiver
IntentFilter filter = new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED);
registerReceiver(mBluetoothStateReceiver, filter);
@@ -80,9 +71,6 @@
@Override
public void onDestroy() {
super.onDestroy();
- if (mSoundPool != null) {
- mSoundPool.release();
- }
if (mBeamStatusReceiver != null) {
unregisterReceiver(mBeamStatusReceiver);
@@ -108,7 +96,7 @@
if (DBG) Log.i(TAG, "Starting outgoing Beam transfer");
return START_STICKY;
} else {
- invokeCompleteCallback();
+ invokeCompleteCallback(false);
stopSelf(startId);
return START_NOT_STICKY;
}
@@ -170,10 +158,12 @@
}
}
- private void invokeCompleteCallback() {
+ private void invokeCompleteCallback(boolean success) {
if (mCompleteCallback != null) {
try {
- mCompleteCallback.send(Message.obtain(null, BeamManager.MSG_BEAM_COMPLETE));
+ Message msg = Message.obtain(null, BeamManager.MSG_BEAM_COMPLETE);
+ msg.arg1 = success ? 1 : 0;
+ mCompleteCallback.send(msg);
} catch (RemoteException e) {
Log.e(TAG, "failed to invoke Beam complete callback", e);
}
@@ -183,9 +173,7 @@
@Override
public void onTransferComplete(BeamTransferManager transfer, boolean success) {
// Play success sound
- if (success) {
- mSoundPool.play(mSuccessSound, 1.0f, 1.0f, 0, 0, 1.0f);
- } else {
+ if (!success) {
if (DBG) Log.d(TAG, "Transfer failed, final state: " +
Integer.toString(transfer.mState));
}
@@ -195,7 +183,7 @@
mBluetoothAdapter.disable();
}
- invokeCompleteCallback();
+ invokeCompleteCallback(success);
stopSelf(mStartId);
}