Fixed TSAM-9326 and TSAM-9187 38/93738/1
authorbhutani.92 <bhutani.92@samsung.com>
Tue, 25 Oct 2016 13:04:16 +0000 (18:34 +0530)
committerbhutani.92 <bhutani.92@samsung.com>
Tue, 25 Oct 2016 13:04:16 +0000 (18:34 +0530)
Change-Id: Ifddb546ef15d9f697ec231cf56e5bb87dbea1550
Signed-off-by: bhutani.92 <bhutani.92@samsung.com>
src/core/mp-player-mgr.c
src/view/mp-player-view.c
src/widget/mp-minicontroller.c

index f44bf145aa68163ded201fa787dcaa3c71abbfbc..26e965545b980ffdc97a453bb7a6bb11207ce58e 100755 (executable)
@@ -1170,7 +1170,11 @@ void mp_player_focus_callback(sound_stream_info_h stream_info, sound_stream_focu
 
                sound_manager_get_focus_reacquisition(ad->stream_info, &reacquire_state);
                DEBUG_TRACE("reason for change is %d", reason_for_change);
-               if (reason_for_change != SOUND_STREAM_FOCUS_CHANGED_BY_ALARM &&
+               if (reason_for_change == SOUND_STREAM_FOCUS_CHANGED_BY_VOIP ||
+                               reason_for_change == SOUND_STREAM_FOCUS_CHANGED_BY_CALL ||
+                               reason_for_change == SOUND_STREAM_FOCUS_CHANGED_BY_RINGTONE) {
+                       sound_manager_set_focus_reacquisition(ad->stream_info, EINA_TRUE);
+               } else if (reason_for_change != SOUND_STREAM_FOCUS_CHANGED_BY_ALARM &&
                                reason_for_change != SOUND_STREAM_FOCUS_CHANGED_BY_NOTIFICATION) {
                        if (!g_strcmp0(additional_info, "music_playing")) {
                                sound_manager_set_focus_reacquisition(ad->stream_info, EINA_FALSE);
index 4b59438ded0ce4a291f705d64c88e946bbc66f10..bccb2cee09f802877c70628bb3fb46731bbaa141 100755 (executable)
@@ -2838,6 +2838,25 @@ static void _mp_player_view_repeat_btn_clicked_cb(void *data, Evas_Object *obj,
 static void _mp_player_view_prev_btn_pressed_cb(void *data, Evas_Object *obj, void *event_info)
 {
        DEBUG_TRACE("prev button pressed");
+
+       struct appdata *ad = mp_util_get_appdata();
+       MP_CHECK(ad);
+
+       int ret = SOUND_MANAGER_ERROR_NONE;
+       int playback_flag = SOUND_BEHAVIOR_NONE;
+       char *additional_info = NULL;
+       int changed_by = SOUND_STREAM_FOCUS_CHANGED_BY_MEDIA;
+       ret = sound_manager_get_current_playback_focus(&changed_by, &playback_flag, &additional_info);
+       if (ret != SOUND_MANAGER_ERROR_NONE) {
+               ERROR_TRACE("Cannot determine current playback focus");
+       }
+
+       DEBUG_TRACE("Changed by : %d", changed_by);
+       if (changed_by == SOUND_STREAM_FOCUS_CHANGED_BY_CALL || changed_by == SOUND_STREAM_FOCUS_CHANGED_BY_VOIP || changed_by == SOUND_STREAM_FOCUS_CHANGED_BY_RINGTONE) {
+               DEBUG_TRACE("Cannot resume Music Player due to call... Changing state in paused state...");
+               ad->paused_by_user = TRUE;
+       }
+
        mp_play_control_rew(true, false, true);
 }
 
@@ -2858,6 +2877,25 @@ static void _mp_player_view_prev_btn_clicked_cb(void *data, Evas_Object *obj, vo
 static void _mp_player_view_next_btn_pressed_cb(void *data, Evas_Object *obj, void *event_info)
 {
        DEBUG_TRACE("next button pressed");
+
+       struct appdata *ad = mp_util_get_appdata();
+       MP_CHECK(ad);
+
+       int ret = SOUND_MANAGER_ERROR_NONE;
+       int playback_flag = SOUND_BEHAVIOR_NONE;
+       char *additional_info = NULL;
+       int changed_by = SOUND_STREAM_FOCUS_CHANGED_BY_MEDIA;
+       ret = sound_manager_get_current_playback_focus(&changed_by, &playback_flag, &additional_info);
+       if (ret != SOUND_MANAGER_ERROR_NONE) {
+               ERROR_TRACE("Cannot determine current playback focus");
+       }
+
+       DEBUG_TRACE("Changed by : %d", changed_by);
+       if (changed_by == SOUND_STREAM_FOCUS_CHANGED_BY_CALL || changed_by == SOUND_STREAM_FOCUS_CHANGED_BY_VOIP || changed_by == SOUND_STREAM_FOCUS_CHANGED_BY_RINGTONE) {
+               DEBUG_TRACE("Cannot resume Music Player due to call... Changing state in paused state...");
+               ad->paused_by_user = TRUE;
+       }
+
        mp_play_control_ff(true, false, true);
 
 }
index 881a45182eab7ba81ab5feeee8078c5a22e07cb3..80ff21ec254875983000c4f40be0210276505065 100755 (executable)
@@ -655,6 +655,7 @@ static int _mp_is_current_focus_available(struct appdata *ad)
                ERROR_TRACE("Cannot determine current recording focus");
        }
 
+       DEBUG_TRACE("Recorder state changed by : %d", changed_by);
        if (changed_by == SOUND_STREAM_FOCUS_CHANGED_BY_VOICE_RECOGNITION) {
                DEBUG_TRACE("Cannot resume Music Player. Speak Mode is on");
                return -1;
@@ -669,6 +670,12 @@ static int _mp_is_current_focus_available(struct appdata *ad)
                ERROR_TRACE("Cannot determine current playback focus");
        }
 
+       DEBUG_TRACE("Playback state changed by : %d", changed_by);
+       if (changed_by == SOUND_STREAM_FOCUS_CHANGED_BY_CALL || changed_by == SOUND_STREAM_FOCUS_CHANGED_BY_VOIP || changed_by == SOUND_STREAM_FOCUS_CHANGED_BY_RINGTONE) {
+               DEBUG_TRACE("Cannot resume Music Player due to call");
+               return -1;
+       }
+
        if (additional_info && changed_by == SOUND_STREAM_FOCUS_CHANGED_BY_MEDIA && !g_strcmp0(additional_info, "cam_capture")) {
                DEBUG_TRACE("Cannot resume Music Player due to state: %s", additional_info);
                return -1;