diff options
Diffstat (limited to 'fmapp2/src/com')
-rw-r--r-- | fmapp2/src/com/caf/fmradio/FMRadio.java | 47 |
1 files changed, 30 insertions, 17 deletions
diff --git a/fmapp2/src/com/caf/fmradio/FMRadio.java b/fmapp2/src/com/caf/fmradio/FMRadio.java index 5a9920a..e331aef 100644 --- a/fmapp2/src/com/caf/fmradio/FMRadio.java +++ b/fmapp2/src/com/caf/fmradio/FMRadio.java @@ -528,43 +528,56 @@ public class FMRadio extends Activity @Override public void onResume() { + Log.d(LOGTAG, "FMRadio: onResume"); + super.onResume(); + if (null == mService) { + Log.e(LOGTAG, "FM Service is not running, returning"); + return; + } + syncScanState(); + + // TODO: We should return on exception or continue? try { - if(mService != null) { - mService.registerCallbacks(mServiceCallbacks); - } - }catch (RemoteException e) { - e.printStackTrace(); + mService.registerCallbacks(mServiceCallbacks); + } catch (RemoteException e) { + e.printStackTrace(); } - if(isSleepTimerActive()) { + + 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); |