Skip to content
This repository was archived by the owner on May 6, 2024. It is now read-only.

Commit 1d7f15d

Browse files
authored
fix: Handle fallback video format on CourseUnitNavigationActivity (#1835)
- Show fallback video in case course doesn't have any video quality available fixes: LEARNER-9658
1 parent f9eaf0c commit 1d7f15d

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed

OpenEdXMobile/src/main/java/org/edx/mobile/model/course/VideoBlockModel.java

+5-3
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,11 @@ public void setData(VideoData data) {
7777
* @return The size of the video if available, <code>-1</code> otherwise.
7878
*/
7979
public long getPreferredVideoEncodingSize(VideoQuality preferredVideoQuality) {
80-
if (data != null && data.encodedVideos != null
81-
&& data.encodedVideos.getPreferredVideoInfoForDownloading(preferredVideoQuality) != null) {
82-
return data.encodedVideos.getPreferredVideoInfoForDownloading(preferredVideoQuality).fileSize;
80+
if (data != null && data.encodedVideos != null) {
81+
VideoInfo videoInfo = data.encodedVideos.getPreferredVideoInfoForDownloading(preferredVideoQuality);
82+
if (videoInfo != null && videoInfo.fileSize > 0) {
83+
return videoInfo.fileSize;
84+
}
8385
}
8486
return -1;
8587
}

OpenEdXMobile/src/main/java/org/edx/mobile/module/db/DatabaseModelFactory.java

+8-2
Original file line numberDiff line numberDiff line change
@@ -103,9 +103,15 @@ public static VideoModel getModel(VideoData vrm, VideoBlockModel block, VideoQua
103103
e.eid = root.getCourseId();
104104
e.duration = vrm.duration;
105105
final VideoInfo preferredVideoInfo = vrm.encodedVideos.getPreferredVideoInfoForDownloading(videoQuality);
106-
e.size = preferredVideoInfo.fileSize;
106+
final VideoInfo videoInfo = vrm.encodedVideos.getPreferredNativeVideoInfo();
107+
if (preferredVideoInfo != null) {
108+
e.size = preferredVideoInfo.fileSize;
109+
e.url = preferredVideoInfo.url;
110+
} else if (videoInfo != null) {
111+
e.size = videoInfo.fileSize;
112+
e.url = videoInfo.url;
113+
}
107114
e.title = block.getDisplayName();
108-
e.url = preferredVideoInfo.url;
109115
e.url_hls = getVideoNetworkUrlOrNull(vrm.encodedVideos.getHls());
110116
e.url_high_quality = getVideoNetworkUrlOrNull(vrm.encodedVideos.getMobileHigh());
111117
e.url_low_quality = getVideoNetworkUrlOrNull(vrm.encodedVideos.getMobileLow());

0 commit comments

Comments
 (0)