Skip to content

Commit 6b1f623

Browse files
authored
Merge pull request #116 from paulhiggs/master
Improved handling of image object
2 parents e41b689 + fb1e206 commit 6b1f623

9 files changed

Lines changed: 24 additions & 24 deletions

File tree

frontend/android/js/channel.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ Channel.prototype.init = function (init_obj, channel_index) {
7575
var span1 = document.createElement("span");
7676
span1.classList.add("chicon", "pl-1", "order-3");
7777
var img = document.createElement("img");
78-
img.src = this.getImageSrc(self.image);
78+
img.src = getImageSrc(self.image);
7979
span1.appendChild(img);
8080
newTextbox.appendChild(span1);
8181
var span = document.createElement("span");
@@ -237,7 +237,9 @@ Channel.prototype.channelSelected = function () {
237237
$("#notification").removeClass();
238238
$("#notification").addClass("noservice");
239239
if (self.out_of_service_image) {
240-
$("#notification").html('<img src="' + self.out_of_service_image.mediaUri + '" class="img-fluid position-relative"/>');
240+
$("#notification").html(
241+
'<img src="' + getImageSrc(self.out_of_service_image) + '" class="img-fluid position-relative"/>'
242+
);
241243
} else {
242244
$("#notification").text("Service not available");
243245
}
@@ -366,9 +368,7 @@ Channel.prototype.updateChannelInfo = function () {
366368
cpsInstance;
367369
var channelInfo = $("#channel_info");
368370
channelInfo.empty();
369-
channelInfo.append(
370-
'<span class="menuitem_chicon d-inline-block"><img src="' + this.getImageSrc(self.image) + '"></span>'
371-
);
371+
channelInfo.append('<span class="menuitem_chicon d-inline-block"><img src="' + getImageSrc(self.image) + '"></span>');
372372
channelInfo.append(
373373
'<span class="menuitem_chnumber d-inline-block">' +
374374
self.lcn +
@@ -477,7 +477,7 @@ Channel.prototype.showEPG = function () {
477477
var header = document.createElement("div");
478478
header.addClass("epg_chinfo align-items-center sticky-top px-2");
479479
var logo = document.createElement("img");
480-
logo.setAttribute("src", self?.image?.mediaUri || "./images/empty.png");
480+
logo.setAttribute("src", getImageSrc(self?.image));
481481
logo.setAttribute("alt", "channel icon");
482482
logo.addClass("chicon img-fluid d-block");
483483
header.appendChild(logo);

frontend/android/js/dvbi-mobile.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,7 @@ function loadServicelist(list) {
337337
function serviceListSelected() {
338338
$("#servicelist_registry").hide();
339339
$("#settings").hide();
340-
$("#list_logo").attr("src", serviceList?.image?.mediaUri || "images/logo_dvbi_sofia.png");
340+
$("#list_logo").attr("src", getImageSrc(serviceList.image, "images/logo_dvbi_sofia.png"));
341341
var channelIndex = 0;
342342
for (var i = 0; i < serviceList.services.length; i++) {
343343
var channel = new Channel();

frontend/android/js/program.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ function UseLocalisation(elems, language) {
8686

8787
Program.prototype.populateProgramInfo = function () {
8888
var i;
89-
$("#info_chicon").attr("src", this.channel?.image?.mediaUri || "./images/empty.png");
89+
$("#info_chicon").attr("src", getImageSrc(this.channel?.image));
9090
$("#info_chnumber").text(this.channel.lcn);
9191
$(".chdrm_prginfo").remove();
9292
if (this.cpsIndex) {

frontend/channel-common.js

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -32,18 +32,6 @@ Channel.prototype.getGenre = function (genre) {
3232
return null;
3333
};
3434

35-
Channel.prototype.getImageSrc = function (image, defaultImage = true) {
36-
if (image && image.mediaUri) {
37-
return image.mediaUri;
38-
} else if (image && image.mediaData64) {
39-
return "data:" + image.type + ";base64," + image.mediaData64;
40-
} else if (defaultImage) {
41-
return "./images/empty.png";
42-
} else {
43-
return null;
44-
}
45-
};
46-
4735
Channel.prototype.parseSchedule = function (data) {
4836
var newPrograms = [];
4937
var parser = new DOMParser();

frontend/dvbi-common.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1162,6 +1162,18 @@ function getMedia(element) {
11621162
}
11631163
}
11641164

1165+
function getImageSrc(image, defaultImage = "./images/empty.png") {
1166+
if (image && image.mediaUri) {
1167+
return image.mediaUri;
1168+
} else if (image && image.mediaData64) {
1169+
return "data:" + image.type + ";base64," + image.mediaData64;
1170+
} else if (defaultImage) {
1171+
return defaultImage;
1172+
} else {
1173+
return null;
1174+
}
1175+
}
1176+
11651177
getParentalRating = function (href) {
11661178
if (href == "urn:fvc:metadata:cs:ContentRatingCS:2014-07:no_parental_controls") {
11671179
return "None";

frontend/hbbtv/epg/channel.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ EPGChannel.prototype.getSchedule = function (start, end, callback, earlier) {
2121
for (var i = 0; i < programData.length; i++) {
2222
var program2 = new EPGProgram(programData[i], self.element_id + "_program_" + i, self);
2323
program2.bilingual = self.bilingual;
24-
program2.channelimage = self.getImageSrc(self.image);
24+
program2.channelimage = getImageSrc(self.image);
2525
program2.channel_streamurl = self.streamurl;
2626
newPrograms.push(program2);
2727
}

frontend/hbbtv/epg/gridepg.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,7 @@ GridEPG.prototype.populate = function (callback) {
313313
channelElement.setAttribute("id", "channel_" + i);
314314
channelElement.addClass("channel");
315315
if (img) {
316-
channelElement.innerHTML = '<img src="' + channel.getImageSrc(img).replace(/&/g, "&amp;") + '" alt="" />';
316+
channelElement.innerHTML = '<img src="' + getImageSrc(img).replace(/&/g, "&amp;") + '" alt="" />';
317317
} else {
318318
channelElement.innerHTML = "<span>" + channel.title + "</span>";
319319
}

frontend/hbbtv/launcher/channel.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ Channel.prototype.init = function (init_obj, element_id) {
246246
// Menuitem title
247247
var menuitem_title = document.createElement("div");
248248
var innerHtml = "";
249-
var src = this.getImageSrc(self.image);
249+
var src = getImageSrc(self.image);
250250
if (src) {
251251
innerHtml = '<span class="menuitem_chicon"><img src="' + src.replace(/&/g, "&amp;") + '"></img></span>';
252252
}

frontend/hbbtv/launcher/navigation.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1039,7 +1039,7 @@ function doServiceSelection() {
10391039
} catch (e) {}
10401040
}
10411041
if (selectedService.out_of_service_image) {
1042-
showInfo('<img src="' + selectedService.out_of_service_image + '"/>', 60, "noservice");
1042+
showInfo('<img src="' + getImageSrc(selectedService.out_of_service_image) + '"/>', 60, "noservice");
10431043
} else {
10441044
showInfo("Service not available", 60, "noservice");
10451045
}

0 commit comments

Comments
 (0)