From: bhutani.92 Date: Mon, 19 Sep 2016 12:33:32 +0000 (+0530) Subject: Implemened lockscreen minicontroller according to lockscreen UI X-Git-Tag: submit/tizen_mobile/20160919.135129^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ea05123e1dcd47e18f70da0f822dab6857c96050;p=profile%2Fmobile%2Fapps%2Fnative%2Fmusic-player.git Implemened lockscreen minicontroller according to lockscreen UI Change-Id: I0a7dab376713db7c0558a6660b7ac2407250c7e3 Signed-off-by: bhutani.92 --- diff --git a/src/common/mp-app.c b/src/common/mp-app.c index 319886d..2b4fbdf 100755 --- a/src/common/mp-app.c +++ b/src/common/mp-app.c @@ -223,6 +223,28 @@ void _mp_app_system_settings_changed_cb(system_settings_key_e key, void *user_data) { EVENT_TRACE(""); + DEBUG_TRACE("System Settings changed cb. Key is : %d", key); + struct appdata *ad = user_data; + mp_retm_if(ad == NULL, "appdata is NULL"); + + int lock_state = SYSTEM_SETTINGS_LOCK_STATE_UNLOCK; + + if (key == SYSTEM_SETTINGS_KEY_LOCK_STATE) { + system_settings_get_value_int(key, &lock_state); + if (lock_state == SYSTEM_SETTINGS_LOCK_STATE_UNLOCK && ad->player_state == PLAY_STATE_PAUSED) { + /* Hide Lock Screen Handle */ + ad->idle_unlocked = true; + mp_ecore_timer_del(ad->lockmini_idle_timer); + if (ad->b_lockmini_show) { + mp_lockscreenmini_hide(ad); + } + } else if (lock_state == SYSTEM_SETTINGS_LOCK_STATE_LOCK && ad->player_state == PLAY_STATE_PAUSED) { + /* Starting Timer */ + ad->idle_unlocked = false; + mp_ecore_timer_del(ad->lockmini_idle_timer); + ad->lockmini_idle_timer = ecore_timer_add((2 * 60), _mp_lockscreenmini_hide_music_controller, ad); + } + } } #ifdef MP_FEATURE_PERSONAL_PAGE @@ -556,13 +578,19 @@ mp_app_noti_init(void *data) storage_state_e state; storage_get_state(ad->externalStorageId, &state); } - + ad->idle_unlocked = false; bool res = TRUE; retcode = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_SOUND_SILENT_MODE, _mp_app_system_settings_changed_cb, ad); if (retcode != SYSTEM_SETTINGS_ERROR_NONE) { - ERROR_TRACE("Fail to register KEY_MUSIC_MENU_CHANGE key callback [%d]", retcode); + ERROR_TRACE("Fail to register SYSTEM_SETTINGS_KEY_SOUND_SILENT_MODE key callback [%d]", retcode); + res = FALSE; + } + retcode = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_LOCK_STATE, _mp_app_system_settings_changed_cb, ad); + if (retcode != SYSTEM_SETTINGS_ERROR_NONE) { + ERROR_TRACE("Fail to register SYSTEM_SETTINGS_KEY_LOCK_STATE key callback [%d]", retcode); res = FALSE; } + char *path = app_get_data_path(); char now_playing_id[1024] = {0}; diff --git a/src/core/mp-player-control.c b/src/core/mp-player-control.c index e720e86..b555817 100755 --- a/src/core/mp-player-control.c +++ b/src/core/mp-player-control.c @@ -519,6 +519,7 @@ mp_play_control_play_pause(struct appdata *ad, bool play) if (play) { ad->paused_by_user = FALSE; + ad->idle_unlocked = false; if (ad->player_state == PLAY_STATE_PAUSED) { int error = mp_player_mgr_resume(ad); diff --git a/src/include/music.h b/src/include/music.h index 7314cd9..e1362e1 100755 --- a/src/include/music.h +++ b/src/include/music.h @@ -330,6 +330,8 @@ struct appdata Evas_Object *lockmini_progress_bar; Ecore_Timer *lockmini_progress_timer; Ecore_Timer *lockmini_button_timer; + Ecore_Timer *lockmini_idle_timer; + bool idle_unlocked; bool lockmini_visible; bool b_lockmini_show; bool progress_dragging; diff --git a/src/widget/include/mp-lockscreenmini.h b/src/widget/include/mp-lockscreenmini.h index 15eae6e..b40bbc1 100644 --- a/src/widget/include/mp-lockscreenmini.h +++ b/src/widget/include/mp-lockscreenmini.h @@ -40,6 +40,7 @@ void mp_lockscreenmini_visible_set(struct appdata *ad, bool visible); bool mp_lockscreenmini_visible_get(struct appdata *ad); void mp_lockscreenmini_on_lcd_event(struct appdata *ad, bool lcd_on); void mp_lockscreenmini_update_progressbar(struct appdata *ad); +Eina_Bool _mp_lockscreenmini_hide_music_controller(void *data); #endif diff --git a/src/widget/mp-lockscreenmini.c b/src/widget/mp-lockscreenmini.c index dbdeff7..aac4f1c 100755 --- a/src/widget/mp-lockscreenmini.c +++ b/src/widget/mp-lockscreenmini.c @@ -584,6 +584,7 @@ mp_lockscreenmini_show(struct appdata *ad) MP_CHECK_VAL(!ad->is_lcd_off, -1); /* Not show minicontrol when current track not exsit */ MP_CHECK_VAL(ad->current_track_info, -1); + MP_CHECK_VAL(ad->idle_unlocked, -1); ad->b_lockmini_show = TRUE; mp_lockscreenmini_update(ad); @@ -682,18 +683,41 @@ mp_lockscreenmini_update_shuffle_and_repeat_btn(struct appdata *ad) _mp_lockscreenmini_set_repeate_image((void *)ad, repeat_state); } - #endif + +Eina_Bool _mp_lockscreenmini_hide_music_controller(void *data) +{ + struct appdata *ad = data; + MP_CHECK_FALSE(ad); + + if (ad->b_lockmini_show) { + mp_lockscreenmini_hide(ad); + } + ad->lockmini_idle_timer = NULL; + return EINA_FALSE; +} + static void _mp_lockscreenmini_play_pause_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info) { DEBUG_TRACE("play/pause button clicked"); struct appdata *ad = mp_util_get_appdata(); MP_CHECK(ad); + int lock_state = SYSTEM_SETTINGS_LOCK_STATE_UNLOCK; if (ad->player_state == PLAY_STATE_PLAYING) { + ad->idle_unlocked = true; + system_settings_get_value_int(SYSTEM_SETTINGS_KEY_LOCK_STATE, &lock_state); + DEBUG_TRACE("lock state : %d", lock_state); + if (lock_state == SYSTEM_SETTINGS_LOCK_STATE_LOCK) { + ad->lockmini_idle_timer = ecore_timer_add((10), _mp_lockscreenmini_hide_music_controller, ad); + } mp_play_control_play_pause(ad, false); } else { + ad->idle_unlocked = false; + if (ad->lockmini_idle_timer) { + mp_ecore_timer_del(ad->lockmini_idle_timer); + } mp_play_control_play_pause(ad, true); } }