FM: Update state after tune is complete when search is cancelled
If seek is cancelled at the same time when it is complete, there is
a chance that search state machine can remain in cancel search state
and subsequent searches will fail. Change search state after tune
complete event is received when search is cancelled.
CRs-fixed: 760134
Change-Id: Iff7c746aba592452552403811b6db4a7dda7c43b
diff --git a/qcom/fmradio/FmRxEventListner.java b/qcom/fmradio/FmRxEventListner.java
index 5f9a254..c5307e5 100644
--- a/qcom/fmradio/FmRxEventListner.java
+++ b/qcom/fmradio/FmRxEventListner.java
@@ -107,6 +107,10 @@
freq = FmReceiverJNI.getFreqNative(fd);
state = FmReceiver.getSearchState();
switch(state) {
+ case FmTransceiver.subSrchLevel_SrchAbort:
+ Log.v(TAG, "Current state is SRCH_ABORTED");
+ Log.v(TAG, "Aborting on-going search command...");
+ /* intentional fall through */
case FmTransceiver.subSrchLevel_SeekInPrg :
Log.v(TAG, "Current state is " + state);
FmReceiver.setSearchState(FmTransceiver.subSrchLevel_SrchComplete);
@@ -131,13 +135,6 @@
Log.v(TAG, "RxEvtList: CURRENT-STATE : Search ---> NEW-STATE : FMRxOn");
cb.FmRxEvSearchComplete(FmReceiverJNI.getFreqNative(fd));
break;
- case FmTransceiver.subSrchLevel_SrchAbort:
- Log.v(TAG, "Current state is SRCH_ABORTED");
- Log.v(TAG, "Aborting on-going search command...");
- FmReceiver.setSearchState(FmTransceiver.subSrchLevel_SrchComplete);
- Log.v(TAG, "RxEvtList: CURRENT-STATE : Search ---> NEW-STATE : FMRxOn");
- cb.FmRxEvSearchComplete(FmReceiverJNI.getFreqNative(fd));
- break;
}
break;
case 3: