Merge "Check for audio focus before enabling audio path" into fm.lnx.1.0-dev.1.0
diff --git a/fmapp2/src/com/caf/fmradio/FMRadio.java b/fmapp2/src/com/caf/fmradio/FMRadio.java
index c364885..b1b613b 100644
--- a/fmapp2/src/com/caf/fmradio/FMRadio.java
+++ b/fmapp2/src/com/caf/fmradio/FMRadio.java
@@ -493,42 +493,54 @@
@Override
public void onResume() {
+ Log.d(LOGTAG, "FMRadio: onResume");
+
super.onResume();
- try {
- if(mService != null) {
- mService.registerCallbacks(mServiceCallbacks);
- }
- }catch (RemoteException e) {
- e.printStackTrace();
+ if (null == mService) {
+ Log.e(LOGTAG, "FM Service is not running, returning");
+ return;
}
- if(isSleepTimerActive()) {
+
+ // TODO: We should return on exception or continue?
+ try {
+ mService.registerCallbacks(mServiceCallbacks);
+ } catch (RemoteException e) {
+ e.printStackTrace();
+ }
+
+ if (isSleepTimerActive()) {
Log.d(LOGTAG, "isSleepTimerActive is true");
try {
- if(null != mService) {
- mService.cancelDelayedStop(FMRadioService.STOP_SERVICE);
- }
+ mService.cancelDelayedStop(FMRadioService.STOP_SERVICE);
if(null != mSleepUpdateHandlerThread) {
mSleepUpdateHandlerThread.interrupt();
}
- }catch (Exception e) {
+ } catch (Exception e) {
e.printStackTrace();
}
initiateSleepThread();
}
- if(isRecording()) {
+
+ if (isRecording()) {
Log.d(LOGTAG,"isRecordTimerActive is true");
try {
- if (null != mService) {
- mService.cancelDelayedStop(FMRadioService.STOP_RECORD);
- }
- }catch (Exception e) {
- e.printStackTrace();
+ mService.cancelDelayedStop(FMRadioService.STOP_RECORD);
+ } catch (Exception e) {
+ e.printStackTrace();
}
if(isRecording()) {
initiateRecordThread();
}
}
- Log.d(LOGTAG, "FMRadio: onResume");
+
+ // we might lose audio focus between pause and restart,
+ // hence request it again
+ try {
+ mService.requestFocus();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
mStereo = FmSharedPreferences.getLastAudioMode();
mHandler.post(mUpdateProgramService);
mHandler.post(mUpdateRadioText);