diff options
author | Venkateshwarlu Domakonda <vdomak@codeaurora.org> | 2015-09-15 13:06:58 +0530 |
---|---|---|
committer | Venkateshwarlu Domakonda <vdomak@codeaurora.org> | 2015-09-15 13:24:17 +0530 |
commit | 9c555961c3e9eaf997c6ade0c10bdd2974eb1e1c (patch) | |
tree | 0d03017c2ee4d33abba770543e470227db096d84 /fmapp2/src/com | |
parent | e481331151df7c8002852de7dff9f69eea483dbd (diff) | |
download | android_hardware_qcom_fm-9c555961c3e9eaf997c6ade0c10bdd2974eb1e1c.tar.gz android_hardware_qcom_fm-9c555961c3e9eaf997c6ade0c10bdd2974eb1e1c.tar.bz2 android_hardware_qcom_fm-9c555961c3e9eaf997c6ade0c10bdd2974eb1e1c.zip |
FM: Disable speaker option when A2DP connected
As the audio framework not supported to set the speaker option,
disabling the device switch option when A2DP is connected.
Change-Id: I0e3d61aefa400b8df3338af81b1417338880a786
CRs-Fixed: 892109
Diffstat (limited to 'fmapp2/src/com')
-rw-r--r-- | fmapp2/src/com/caf/fmradio/FMRadio.java | 31 | ||||
-rw-r--r-- | fmapp2/src/com/caf/fmradio/FMRadioService.java | 14 | ||||
-rw-r--r-- | fmapp2/src/com/caf/fmradio/FMStats.java | 3 | ||||
-rw-r--r-- | fmapp2/src/com/caf/fmradio/IFMRadioService.aidl | 1 | ||||
-rw-r--r-- | fmapp2/src/com/caf/fmradio/IFMRadioServiceCallbacks.aidl | 1 |
5 files changed, 50 insertions, 0 deletions
diff --git a/fmapp2/src/com/caf/fmradio/FMRadio.java b/fmapp2/src/com/caf/fmradio/FMRadio.java index 12693cf..20270e3 100644 --- a/fmapp2/src/com/caf/fmradio/FMRadio.java +++ b/fmapp2/src/com/caf/fmradio/FMRadio.java @@ -1858,6 +1858,19 @@ public class FMRadio extends Activity return(mRtPlusSupported); } + private boolean isA2DPConnected() { + boolean A2DPConnected = false; + if (mService != null) { + try { + A2DPConnected = mService.isA2DPConnected(); + } catch (RemoteException e) { + e.printStackTrace(); + } + } + Log.d(LOGTAG, "A2DPConnected: " + A2DPConnected); + return(A2DPConnected); + } + private boolean isSpeakerEnabled() { boolean speakerEnabled = false; if (mService != null) { @@ -2047,6 +2060,10 @@ public class FMRadio extends Activity }else{ mSpeakerButton.setImageResource(R.drawable.btn_earphone); } + if (isA2DPConnected()) + mSpeakerButton.setClickable(false); + else + mSpeakerButton.setClickable(true); } } @@ -2225,6 +2242,16 @@ public class FMRadio extends Activity updateSearchProgress(); } + private void A2DPConnectionState(boolean state) { + Log.d(LOGTAG, "A2DPConnectionState with:" +state); + if (state) { + Log.d(LOGTAG, "make speaker button disable"); + mSpeakerButton.setClickable(false); + } else { + Log.d(LOGTAG, "make speaker button enable"); + mSpeakerButton.setClickable(true); + } + } /** Scan related */ private void initiateSearch(int pty) { synchronized (this) { @@ -3144,6 +3171,10 @@ public class FMRadio extends Activity Log.d(LOGTAG, "mServiceCallbacks.onSeekNextStation:"); SeekNextStation(); } + public void onA2DPConnectionstateChanged(boolean state){ + Log.d(LOGTAG, "mServiceCallbacks.onA2DPConnectionstateChanged :"); + A2DPConnectionState(state); + } }; private void registerFMSettingListner() { diff --git a/fmapp2/src/com/caf/fmradio/FMRadioService.java b/fmapp2/src/com/caf/fmradio/FMRadioService.java index 4918680..6cebdb3 100644 --- a/fmapp2/src/com/caf/fmradio/FMRadioService.java +++ b/fmapp2/src/com/caf/fmradio/FMRadioService.java @@ -557,6 +557,12 @@ public class FMRadioService extends Service boolean bA2dpConnected = mA2dpDeviceState.isConnected(intent); Log.d(LOGTAG, "bA2dpConnected:" +bA2dpConnected); + try { + if ((mServiceInUse) && (mCallbacks != null)) + mCallbacks.onA2DPConnectionstateChanged(bA2dpConnected); + } catch (RemoteException e) { + e.printStackTrace(); + } if (!bA2dpConnected) { Log.d(LOGTAG, "A2DP device is dis-connected!"); mA2dpDisconnected = true; @@ -1982,6 +1988,11 @@ public class FMRadioService extends Service { return(mService.get().isSSRInProgress()); } + + public boolean isA2DPConnected() + { + return(mService.get().isA2DPConnected()); + } } private final IBinder mBinder = new ServiceStub(this); @@ -2220,6 +2231,9 @@ public class FMRadioService extends Service return mIsSSRInProgress; } + public boolean isA2DPConnected() { + return (mA2dpConnected); + } /* Returns whether FM hardware is ON. * * @return true if FM was tuned, searching. (at the end of diff --git a/fmapp2/src/com/caf/fmradio/FMStats.java b/fmapp2/src/com/caf/fmradio/FMStats.java index ddefd89..961f04b 100644 --- a/fmapp2/src/com/caf/fmradio/FMStats.java +++ b/fmapp2/src/com/caf/fmradio/FMStats.java @@ -2716,6 +2716,9 @@ public class FMStats extends Activity { public void onSeekNextStation() { Log.d(LOGTAG, "mServiceCallbacks.onSeekNextStation:"); } + public void onA2DPConnectionstateChanged(boolean state){ + Log.d(LOGTAG, "mServiceCallbacks.onA2DPConnectionstateChanged :"); + } }; /* Radio Vars */ private Handler mHandler = new Handler(); diff --git a/fmapp2/src/com/caf/fmradio/IFMRadioService.aidl b/fmapp2/src/com/caf/fmradio/IFMRadioService.aidl index 6140f0d..a02c593 100644 --- a/fmapp2/src/com/caf/fmradio/IFMRadioService.aidl +++ b/fmapp2/src/com/caf/fmradio/IFMRadioService.aidl @@ -74,5 +74,6 @@ interface IFMRadioService boolean isSleepTimerActive(); boolean isSSRInProgress(); boolean isRtPlusSupported(); + boolean isA2DPConnected(); } diff --git a/fmapp2/src/com/caf/fmradio/IFMRadioServiceCallbacks.aidl b/fmapp2/src/com/caf/fmradio/IFMRadioServiceCallbacks.aidl index 6a8deb5..e6fded7 100644 --- a/fmapp2/src/com/caf/fmradio/IFMRadioServiceCallbacks.aidl +++ b/fmapp2/src/com/caf/fmradio/IFMRadioServiceCallbacks.aidl @@ -47,4 +47,5 @@ interface IFMRadioServiceCallbacks void onExtenRadioTextChanged(); void onRecordingStarted(); void onSeekNextStation(); + void onA2DPConnectionstateChanged(boolean state); } |