From 0a5f8a49fbf73e7073b9b88720ed19cee9019bf8 Mon Sep 17 00:00:00 2001 From: Tomasz Marciniak Date: Tue, 20 Sep 2016 14:21:23 +0200 Subject: [PATCH] [FMRadio] Check radio state before scan. [Verification] Code compiles. TCT pass rate 100% This change makes web api less dependent on native api returned value. Change-Id: Id51451fd0fdf80c3ed34b03da8fb530b2a592c20 Signed-off-by: Tomasz Marciniak --- src/radio/radio_manager.cc | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/radio/radio_manager.cc b/src/radio/radio_manager.cc index 84931ed2..a6871a84 100755 --- a/src/radio/radio_manager.cc +++ b/src/radio/radio_manager.cc @@ -436,10 +436,25 @@ void FMRadioManager::SeekDown(double callback_id) { void FMRadioManager::ScanStart(double callback_id) { LoggerD("Enter"); + radio_state_e state; + auto err = radio_get_state(radio_instance_, &state); + if (RADIO_ERROR_NONE != err) { + LoggerE("radio_get_state() failed: %d", err); + PostResultFailure(callback_id, GetPlatformResult("radio_get_state", err)); + return; + } + + if (RADIO_STATE_READY != state) { + LoggerE("Incorrect radio state"); + PostResultFailure(callback_id, + GetPlatformResult("Incorrect radio state", RADIO_ERROR_INVALID_STATE)); + return; + } + RadioScanData* user_data = new RadioScanData(*this); user_data->callback_id_ = callback_id; - auto err = radio_set_scan_completed_cb(radio_instance_, ScanCompleteCallback, + err = radio_set_scan_completed_cb(radio_instance_, ScanCompleteCallback, user_data); if (RADIO_ERROR_NONE != err) { PostResultFailure(callback_id, -- 2.34.1