Fixed TSAM-10415 and TSAM-10412 Unexpected SD Card Removal Crash 77/100477/2
authorbhutani.92 <bhutani.92@samsung.com>
Mon, 28 Nov 2016 09:03:18 +0000 (14:33 +0530)
committerbhutani.92 <bhutani.92@samsung.com>
Mon, 28 Nov 2016 09:05:58 +0000 (14:35 +0530)
Change-Id: Ic99e5e87a4387ee9fd3f94fdbabeb0b505c6fd6c
Signed-off-by: bhutani.92 <bhutani.92@samsung.com>
src/core/mp-playlist-mgr.c
src/include/music.h
src/view/include/mp-add-track-view.h
src/view/include/mp-view.h
src/view/mp-add-track-view.c
src/view/mp-all-view.c
src/view/mp-playlist-detail-view.c
src/widget/include/mp-list.h
src/widget/mp-lockscreenmini.c
src/widget/mp-track-list.c
widget/src/mp-widget-create.c

index 3261c99..13c585f 100755 (executable)
@@ -943,7 +943,7 @@ void mp_playlist_mgr_check_existance_and_refresh(mp_plst_mgr *playlist_mgr, bool
                                SECURE_DEBUG("uri = %s", item->uri);
                                char *temp_uri = g_strdup(item->uri);
                                mp_to_lower(temp_uri);
-                               if (!mp_file_exists(item->uri) || (mmc_removed && strstr(temp_uri, "sdcard") == item->uri)) {
+                               if (!mp_file_exists(item->uri) || (temp_uri && mmc_removed && strstr(temp_uri, "sdcard") == item->uri)) {
                                        SECURE_DEBUG("removed uri = %s", item->uri);
                                        mp_playlist_mgr_item_remove_item(playlist_mgr, item);
                                        if (current_removed && cur == item) {
index d0de0d5..eeda39e 100755 (executable)
@@ -250,6 +250,7 @@ struct appdata
        char *lockscreen_wallpaper;
 
        void *xwin;
+       void *popup_data;
 
 #ifdef MP_FEATURE_EXIT_ON_BACK
        Ecore_Event_Handler *callerWinEventHandler;
@@ -340,12 +341,12 @@ struct appdata
 #endif
        Evas_Object *win_minicon;
        Evas_Object *minicontroller_layout;
-        Evas_Object *progress_box;
-        Evas_Object *progress_layout;
-        Evas_Object *progress_bar;
+       Evas_Object *progress_box;
+       Evas_Object *progress_layout;
+       Evas_Object *progress_bar;
        Evas_Object *minicon_icon;
        Ecore_Timer *minicon_progress_timer;
-        Ecore_Timer *minicon_button_timer;
+       Ecore_Timer *minicon_button_timer;
        bool b_minicontroller_show;
        bool minicon_visible;
        int quickpanel_angle;
index a7db119..b153099 100644 (file)
@@ -56,9 +56,9 @@ typedef struct
 
        /* controlbar tab item */
        Elm_Object_Item *ctltab_songs;
-        #ifdef MP_FEATURE_ADD_TO_INCLUDE_PLAYLIST_TAB
+#ifdef MP_FEATURE_ADD_TO_INCLUDE_PLAYLIST_TAB
        Elm_Object_Item *ctltab_plist;
-        #endif
+#endif
        Elm_Object_Item *ctltab_album;
        Elm_Object_Item *ctltab_artist;
        Elm_Object_Item *ctltab_folders;
index 745b61b..731302a 100644 (file)
@@ -76,7 +76,7 @@ typedef enum{
        MP_ADD_TO_PLAYLIST_DONE,
        MP_DELETE_DONE,
        MP_POPUP_DELETE_DONE,
-        MP_UPDATE_PLAYING_LIST,
+       MP_UPDATE_PLAYING_LIST,
        MP_SETTING_PLAYLIST_CHANGED,
        MP_PLAY_TIME_COUNT_UPDATED,
        MP_ROUTE_CHANGED,
index 14f3130..0c3bcdb 100755 (executable)
@@ -219,6 +219,21 @@ _mp_add_track_view_on_event(void *thiz, MpViewEvent_e event)
        }
 }
 
+int _mp_add_track_view_update(void *thiz) {
+       MpAddTrackView_t* view = thiz;
+
+       mp_list_update(view->content_to_show);
+       if (view->content_tab == MP_ADD_TRACK_VIEW_TAB_SONGS && mp_list_get_editable_count((MpList_t *)view->content_to_show, mp_list_get_edit_type(view->content_to_show))) {
+               mp_list_show_fast_scroll(view->content_to_show);
+       }
+
+       if (view->content_tab == MP_ADD_TRACK_VIEW_TAB_SONGS && mp_list_get_editable_count((MpList_t *)view->content_to_show, mp_list_get_edit_type(view->content_to_show)) == 0) {
+               mp_list_hide_fast_scroll(view->content_to_show);
+       }
+
+       return 0;
+}
+
 static int
 _mp_add_track_view_init(Evas_Object *parent, MpAddTrackView_t *view)
 {
@@ -227,7 +242,7 @@ _mp_add_track_view_init(Evas_Object *parent, MpAddTrackView_t *view)
        ret =  mp_list_view_init(parent, (MpListView_t *)view, MP_VIEW_ADD_TRACK);
        MP_CHECK_VAL(ret == 0, -1);
 
-       view->update = NULL;
+       view->update = _mp_add_track_view_update;
        view->update_options = _mp_add_track_view_update_option;
        view->update_options_edit = _mp_add_track_view_update_option;
        view->view_destroy_cb = _mp_add_track_view_destory_cb;
index 1b02296..41c8770 100755 (executable)
@@ -592,6 +592,9 @@ _mp_all_view_on_event(void *thiz, MpViewEvent_e event)
        DEBUG_TRACE("event; %d", event);
        MpAllView_t *view = thiz;
 
+       struct appdata *ad = mp_util_get_appdata();
+       MP_CHECK(ad);
+
        MpList_t *list = view->content_to_show;
        int index = _mp_all_view_tab_index_get(view);
 
@@ -643,6 +646,11 @@ _mp_all_view_on_event(void *thiz, MpViewEvent_e event)
                break;
        case MP_PLAYLIST_MGR_ITEM_CHANGED:
                mp_view_update_nowplaying((MpView_t *)view, true);
+               if (ad->popup_data) {
+                       Mp_Playlist_Data *mp_playlist_data = (Mp_Playlist_Data *)ad->popup_data;
+                       mp_evas_object_del(mp_playlist_data->popup);
+                       free(ad->popup_data);
+               }
                break;
        case MP_PLAYLIST_CREATED:
                _mp_all_view_playlist_update(view);
index a06c58b..35bf18e 100755 (executable)
@@ -65,6 +65,9 @@ _mp_playlist_detail_rename_cb(void *data, Evas_Object *obj, void *event_info)
 {
        eventfunc;
 
+       struct appdata *ad = mp_util_get_appdata();
+       MP_CHECK(ad);
+
        MpPlaylistDetailView_t *view = (MpPlaylistDetailView_t *)data;
        MP_CHECK(view);
 
@@ -72,6 +75,9 @@ _mp_playlist_detail_rename_cb(void *data, Evas_Object *obj, void *event_info)
 
        Mp_Playlist_Data *mp_playlist_data = mp_edit_playlist_create(MP_PLST_RENAME);
        MP_CHECK(mp_playlist_data);
+
+       ad->popup_data = (Mp_Playlist_Data *)mp_playlist_data;
+
        MpTrackList_t *track_list = (MpTrackList_t *)view->content_to_show;
        if (track_list != NULL) {
                mp_playlist_data->playlist_handle = track_list->playlist_handle;
index b9f56f0..f901bc4 100755 (executable)
@@ -109,8 +109,8 @@ typedef enum {
        Evas_Object *fast_scroll;\
        Elm_Object_Item *bottom_counter_item; \
        char *(*bottom_counter_text_get_cb)(void *thiz); \
-        mp_popup_t popup_type;\
-        Ecore_Timer *pop_delay_timer;\
+       mp_popup_t popup_type;\
+       Ecore_Timer *pop_delay_timer;\
        int edit_mode;\
        MpListEditType_e edit_type;\
        int reorderable;\
index 00c0882..f6fb397 100755 (executable)
@@ -551,6 +551,7 @@ static void _mp_lockscreenmini_update_btn(struct appdata *ad)
        startfunc;
        mp_retm_if(ad == NULL, "appdata is NULL");
        MP_CHECK(ad->win_lockmini);
+       MP_CHECK(ad->lockmini_layout);
        MP_CHECK(!ad->is_lcd_off);
 
        if (ad->player_state == PLAY_STATE_PLAYING) {
index 03eb720..303443e 100644 (file)
@@ -778,10 +778,9 @@ static void _mp_track_list_load_list(void *thiz, int count)
        mp_media_info_list_create(&svc_handle, list->track_type, list->type_str, list->type_str2, list->filter_str, list->playlist_id, 0, count);
        PROFILE_OUT("mp_media_info_list_create");
 
-       mp_track_list_show_shuffle(list, true);
-
-//     if ((!list->reorderable) && ((list->track_type != MP_TRACK_ALL) || (count <= INITIAL_LOAD_COUNT)))
-//                     mp_list_bottom_counter_item_append((MpList_t *)list);
+       if (!list->edit_mode) {
+               mp_track_list_show_shuffle(list, true);
+       }
 
        PROFILE_IN("_mp_track_list_append_item");
        _mp_track_list_append_item(list, svc_handle, count);
index 98af1d0..c818b39 100644 (file)
@@ -558,7 +558,7 @@ static bool telephony_is_call_connected(void)
 
        ret_sim2 = telephony_call_get_call_list(tel_list.handle[1], &count_sim2, &call_list_sim2);
        if (ret_sim2 != TELEPHONY_ERROR_NONE) {
-               ERROR_TRACE("Cannot get call list information for secondey sim");
+               ERROR_TRACE("Cannot get call list information for secondary sim");
        }
 
        telephony_call_release_call_list(count_sim1, &call_list_sim1);