Implemened lockscreen minicontroller according to lockscreen UI 27/88527/4 submit/tizen_mobile/20160919.135129
authorbhutani.92 <bhutani.92@samsung.com>
Mon, 19 Sep 2016 12:33:32 +0000 (18:03 +0530)
committerbhutani.92 <bhutani.92@samsung.com>
Mon, 19 Sep 2016 12:40:35 +0000 (18:10 +0530)
Change-Id: I0a7dab376713db7c0558a6660b7ac2407250c7e3
Signed-off-by: bhutani.92 <bhutani.92@samsung.com>
src/common/mp-app.c
src/core/mp-player-control.c
src/include/music.h
src/widget/include/mp-lockscreenmini.h
src/widget/mp-lockscreenmini.c

index 319886d81a9d00a5a72bf4c3a09f8cf03c293f2e..2b4fbdfdfe6f144e167505a186e49108b69aace6 100755 (executable)
@@ -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};
 
index e720e8628dc5027699d37c785b03a536a87523ae..b555817c8139e551d342e18a0c83c488d61e3385 100755 (executable)
@@ -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);
index 7314cd9d17271d2301b7ef31f2b3ef57b345b9d7..e1362e1d2d8ec0409129d5c1356f072d71c2e4bd 100755 (executable)
@@ -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;
index 15eae6e9857e1ff66ec8fca33711f781d991f7e4..b40bbc16fa14d437b892de0118a3389c5578d1b1 100644 (file)
@@ -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
 
index dbdeff7bd861b9452372a0447720f019ddeb341f..aac4f1c39eaded00050cb8b36a6777866e74a64e 100755 (executable)
@@ -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);
        }
 }