From 9ef29b0c9948322bfd60a788ac5e18a85a7b3f3f Mon Sep 17 00:00:00 2001 From: "bhutani.92" Date: Mon, 28 Nov 2016 14:33:18 +0530 Subject: [PATCH] Fixed TSAM-10415 and TSAM-10412 Unexpected SD Card Removal Crash Change-Id: Ic99e5e87a4387ee9fd3f94fdbabeb0b505c6fd6c Signed-off-by: bhutani.92 --- src/core/mp-playlist-mgr.c | 2 +- src/include/music.h | 9 +++++---- src/view/include/mp-add-track-view.h | 4 ++-- src/view/include/mp-view.h | 2 +- src/view/mp-add-track-view.c | 17 ++++++++++++++++- src/view/mp-all-view.c | 8 ++++++++ src/view/mp-playlist-detail-view.c | 6 ++++++ src/widget/include/mp-list.h | 4 ++-- src/widget/mp-lockscreenmini.c | 1 + src/widget/mp-track-list.c | 7 +++---- widget/src/mp-widget-create.c | 2 +- 11 files changed, 46 insertions(+), 16 deletions(-) diff --git a/src/core/mp-playlist-mgr.c b/src/core/mp-playlist-mgr.c index 3261c99..13c585f 100755 --- a/src/core/mp-playlist-mgr.c +++ b/src/core/mp-playlist-mgr.c @@ -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) { diff --git a/src/include/music.h b/src/include/music.h index d0de0d5..eeda39e 100755 --- a/src/include/music.h +++ b/src/include/music.h @@ -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; diff --git a/src/view/include/mp-add-track-view.h b/src/view/include/mp-add-track-view.h index a7db119..b153099 100644 --- a/src/view/include/mp-add-track-view.h +++ b/src/view/include/mp-add-track-view.h @@ -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; diff --git a/src/view/include/mp-view.h b/src/view/include/mp-view.h index 745b61b..731302a 100644 --- a/src/view/include/mp-view.h +++ b/src/view/include/mp-view.h @@ -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, diff --git a/src/view/mp-add-track-view.c b/src/view/mp-add-track-view.c index 14f3130..0c3bcdb 100755 --- a/src/view/mp-add-track-view.c +++ b/src/view/mp-add-track-view.c @@ -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; diff --git a/src/view/mp-all-view.c b/src/view/mp-all-view.c index 1b02296..41c8770 100755 --- a/src/view/mp-all-view.c +++ b/src/view/mp-all-view.c @@ -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); diff --git a/src/view/mp-playlist-detail-view.c b/src/view/mp-playlist-detail-view.c index a06c58b..35bf18e 100755 --- a/src/view/mp-playlist-detail-view.c +++ b/src/view/mp-playlist-detail-view.c @@ -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; diff --git a/src/widget/include/mp-list.h b/src/widget/include/mp-list.h index b9f56f0..f901bc4 100755 --- a/src/widget/include/mp-list.h +++ b/src/widget/include/mp-list.h @@ -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;\ diff --git a/src/widget/mp-lockscreenmini.c b/src/widget/mp-lockscreenmini.c index 00c0882..f6fb397 100755 --- a/src/widget/mp-lockscreenmini.c +++ b/src/widget/mp-lockscreenmini.c @@ -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) { diff --git a/src/widget/mp-track-list.c b/src/widget/mp-track-list.c index 03eb720..303443e 100644 --- a/src/widget/mp-track-list.c +++ b/src/widget/mp-track-list.c @@ -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); diff --git a/widget/src/mp-widget-create.c b/widget/src/mp-widget-create.c index 98af1d0..c818b39 100644 --- a/widget/src/mp-widget-create.c +++ b/widget/src/mp-widget-create.c @@ -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); -- 2.7.4