Add two new callbacks for FM start/stop.
When FM is stopped, UI elements like speaker button and mute button should
be disabled and they should be enabled when FM is started.
Change-Id: I940706d3f587b38449a5f07dadbec04f68f5c9c0
diff --git a/fmapp2/src/com/caf/fmradio/FMRadio.java b/fmapp2/src/com/caf/fmradio/FMRadio.java
index 20b1133..9c44add 100644
--- a/fmapp2/src/com/caf/fmradio/FMRadio.java
+++ b/fmapp2/src/com/caf/fmradio/FMRadio.java
@@ -3197,6 +3197,16 @@
Log.d(LOGTAG, "mServiceCallbacks.onA2DPConnectionstateChanged :");
A2DPConnectionState(state);
}
+ public void onFmAudioPathStarted() {
+ Log.d(LOGTAG, "mServiceCallbacks.onFmAudioPathStarted:");
+ mSpeakerButton.setClickable(true);
+ mMuteButton.setClickable(true);
+ }
+ public void onFmAudioPathStopped() {
+ Log.d(LOGTAG, "mServiceCallbacks.onFmAudioPathStopped:");
+ mSpeakerButton.setClickable(false);
+ mMuteButton.setClickable(false);
+ }
};
private void registerFMSettingListner() {
diff --git a/fmapp2/src/com/caf/fmradio/FMRadioService.java b/fmapp2/src/com/caf/fmradio/FMRadioService.java
index 188a068..0231997 100644
--- a/fmapp2/src/com/caf/fmradio/FMRadioService.java
+++ b/fmapp2/src/com/caf/fmradio/FMRadioService.java
@@ -1012,7 +1012,7 @@
}
};
- private void startFM(){
+ private void startFM() {
Log.d(LOGTAG, "In startFM");
if(true == mAppShutdown) { // not to send intent to AudioManager in Shutdown
return;
@@ -1065,12 +1065,22 @@
}
mPlaybackInProgress = true;
configureAudioDataPath(true);
+ try {
+ mCallbacks.onFmAudioPathStarted();
+ } catch(RemoteException e) {
+ e.printStackTrace();
+ }
}
- private void stopFM(){
+ private void stopFM() {
Log.d(LOGTAG, "In stopFM");
configureAudioDataPath(false);
mPlaybackInProgress = false;
+ try {
+ mCallbacks.onFmAudioPathStopped();
+ } catch(RemoteException e) {
+ e.printStackTrace();
+ }
}
private void resetFM(){
diff --git a/fmapp2/src/com/caf/fmradio/FMStats.java b/fmapp2/src/com/caf/fmradio/FMStats.java
index 961f04b..c035475 100644
--- a/fmapp2/src/com/caf/fmradio/FMStats.java
+++ b/fmapp2/src/com/caf/fmradio/FMStats.java
@@ -2719,6 +2719,12 @@
public void onA2DPConnectionstateChanged(boolean state){
Log.d(LOGTAG, "mServiceCallbacks.onA2DPConnectionstateChanged :");
}
+ public void onFmAudioPathStarted() {
+ Log.d(LOGTAG, "mServiceCallbacks.onFmAudioPathStarted:");
+ }
+ public void onFmAudioPathStopped() {
+ Log.d(LOGTAG, "mServiceCallbacks.onFmAudioPathStopped:");
+ }
};
/* Radio Vars */
private Handler mHandler = new Handler();
diff --git a/fmapp2/src/com/caf/fmradio/IFMRadioServiceCallbacks.aidl b/fmapp2/src/com/caf/fmradio/IFMRadioServiceCallbacks.aidl
index e6fded7..24aaa70 100644
--- a/fmapp2/src/com/caf/fmradio/IFMRadioServiceCallbacks.aidl
+++ b/fmapp2/src/com/caf/fmradio/IFMRadioServiceCallbacks.aidl
@@ -48,4 +48,6 @@
void onRecordingStarted();
void onSeekNextStation();
void onA2DPConnectionstateChanged(boolean state);
+ void onFmAudioPathStarted();
+ void onFmAudioPathStopped();
}