private async Task loadSelectedItemDetailsAsync() { if (selectedMediaItem == null) { return; } try { IsDetailsLoading = true; ContentItemEx details = null; if (selectedMediaItem.Expired) { await renewItemID(selectedMediaItem); } try { details = await ContentClient.GetDetails(selectedMediaItem.ID); if ((details == null) && await renewItemID(selectedMediaItem)) { details = await ContentClient.GetDetails(selectedMediaItem.ID); } } catch (SessionExpiredException) { if (await renewItemID(selectedMediaItem)) { markAllExpired(); details = await ContentClient.GetDetails(selectedMediaItem.ID); } } if ((details != null) && (selectedMediaItem is ContentItemEx)) { (selectedMediaItem as ContentItemEx).UpdateFromDetails(details); } } catch (Exception ex) { //XXX : Handle error LoggerService.Instance.Log("ERROR: MediaContent.loadSelectedItemDetailsAsync: " + ex); } finally { IsDetailsLoading = false; } }