299 lines
8.1 KiB
JavaScript
299 lines
8.1 KiB
JavaScript
import appinfo from "../../webos-meta/appinfo.json";
|
|
import { alertToast } from "../actions/commonActions";
|
|
import LS2Request from "./LS2Request";
|
|
|
|
export const getConnectionStatus = ({ onSuccess, onFailure, onComplete }) => {
|
|
if (process.env.REACT_APP_MODE === "DEBUG") {
|
|
console.log("LUNA SEND getConnectionStatus");
|
|
return "Some Hard Coded Mock Data";
|
|
} else {
|
|
return new LS2Request().send({
|
|
service: "luna://com.webos.service.connectionmanager",
|
|
method: "getStatus",
|
|
subscribe: true,
|
|
parameters: {},
|
|
onSuccess,
|
|
onFailure,
|
|
onComplete,
|
|
});
|
|
}
|
|
};
|
|
|
|
export const createToast = (message) => {
|
|
if (typeof window === "object" && !window.PalmSystem) {
|
|
console.log("LUNA SEND createToast message", message);
|
|
return;
|
|
}
|
|
return new LS2Request().send({
|
|
service: "luna://com.webos.notification",
|
|
method: "createToast",
|
|
parameters: {
|
|
message: message,
|
|
iconUrl: "",
|
|
noaction: true,
|
|
},
|
|
onSuccess: (res) => {
|
|
console.log("LUNA SEND createToast success", message);
|
|
},
|
|
onFailure: (err) => {
|
|
console.log("LUNA SEND createToast failed", err);
|
|
},
|
|
});
|
|
};
|
|
|
|
let httpHeaderHandler = null;
|
|
export const getHttpHeaderForServiceRequest = ({
|
|
onSuccess,
|
|
onFailure,
|
|
onComplete,
|
|
}) => {
|
|
if (
|
|
typeof window === "object" &&
|
|
window.PalmSystem &&
|
|
process.env.REACT_APP_MODE !== "DEBUG"
|
|
) {
|
|
if (httpHeaderHandler) {
|
|
httpHeaderHandler.cancel();
|
|
}
|
|
httpHeaderHandler = new LS2Request().send({
|
|
service: "luna://com.webos.service.sdx",
|
|
method: "getHttpHeaderForServiceRequest",
|
|
subscribe: true,
|
|
parameters: {},
|
|
onSuccess,
|
|
onFailure,
|
|
onComplete,
|
|
});
|
|
return httpHeaderHandler;
|
|
} else {
|
|
onSuccess({
|
|
HOST: "GB.nextlgsdp.com",
|
|
"X-User-Number": "US2210240095608",
|
|
Authorization:
|
|
"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJuZXh0bGdzZHAuY29tIiwiYXVkIjoibmV4dGxnc2RwLmNvbSIsImlhdCI6MTcwNzc4NTUyNSwiZXhwIjoxNzA3NzkyNzI1LCJtYWNBZGRyZXNzIjoiZWVkMDQ2NjdiNjUzOWU3YmQxMDA1OTljYjBkYTI5ZjRjZTgyZGZlOGZkNzIzMDAxZGVmMjg4NWRkNWZiODRmNWNiMzZlM2QwNzYzNWZjZGJjYWNjNGVjMzI5NWIwNjZjOTMwNmNmNDI1ZGQzMmQ2MDMxMjc1NWNkOTIyNjEwMzcifQ.vqPdYGnN46diesDBLzA4UhACCJVdIycLs7wZu9M55Hc",
|
|
"X-Authentication": "MkOLvUocrJ69RH/iV1ZABJhjR2g=",
|
|
"X-Device-ID":
|
|
"OemUY5qbPITZv96QKlxrtcqT6ypeX6us2qANLng3/0QCUhv2mecK1UDTMYb/hjpjey9dC/kFycc/5R8u+oK56JIWyYC4V278z64YDPKbDXIsd+eECvyf+Rdm8BneIUPM",
|
|
"X-Device-Product": "webOSTV 5.0",
|
|
"X-Device-Platform": "W20P",
|
|
"X-Device-Model": "HE_DTV_W20P_AFADATAA",
|
|
"X-Device-Eco-Info": "1",
|
|
"X-Device-Country": "GB",
|
|
"X-Device-Language": "en-GB",
|
|
"X-Device-Netcast-Platform-Version": "6.0.0",
|
|
"X-Device-Publish-Flag": "N",
|
|
"X-Device-Fck": "253",
|
|
"X-Device-Eula":
|
|
"additionalDataAllowed,takeOnAllowed,networkAllowed,generalTermsAllowed,chpAllowed,customAdAllowed,acrOnAllowed,voice2Allowed,voiceAllowed,acrAdAllowed",
|
|
});
|
|
}
|
|
};
|
|
|
|
export const getSystemSettings = (
|
|
parameters,
|
|
{ onSuccess, onFailure, onComplete }
|
|
) => {
|
|
if (
|
|
typeof window === "object" &&
|
|
window.PalmSystem &&
|
|
process.env.REACT_APP_MODE !== "DEBUG"
|
|
) {
|
|
return new LS2Request().send({
|
|
service: "luna://com.webos.settingsservice",
|
|
method: "getSystemSettings",
|
|
subscribe: true,
|
|
parameters: parameters,
|
|
onSuccess,
|
|
onFailure,
|
|
onComplete,
|
|
});
|
|
} else if (typeof window === "object") {
|
|
const language =
|
|
typeof window.navigator === "object"
|
|
? window.navigator.language || window.navigator.userLanguage
|
|
: "en-US";
|
|
const res = {
|
|
settings: {
|
|
smartServiceCountryCode2: language.split("-")[1],
|
|
captionEnable: true,
|
|
},
|
|
returnValue: true,
|
|
};
|
|
onSuccess(res);
|
|
onComplete(res);
|
|
}
|
|
};
|
|
|
|
export function checkValidCountry(ricCode, country) {
|
|
if (ricCode === "aic") {
|
|
if (country === "US") return true;
|
|
else return false;
|
|
} else if (ricCode === "eic") {
|
|
if (country === "GB" || country === "DE") return true;
|
|
else return false;
|
|
} else if (ricCode === "ruc") {
|
|
if (country === "RU") return true;
|
|
else return false;
|
|
} else {
|
|
if (country === "US") {
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
|
|
// 3.0 ~ 4.5
|
|
export const setSubtitleEnable = (
|
|
mediaId,
|
|
captionEnable,
|
|
{ onSuccess, onFailure, onComplete }
|
|
) => {
|
|
if (
|
|
typeof window === "object" &&
|
|
window.PalmSystem &&
|
|
process.env.REACT_APP_MODE !== "DEBUG"
|
|
) {
|
|
if (captionEnable) {
|
|
return new LS2Request().send({
|
|
service: "luna://com.webos.service.tv.subtitle",
|
|
method: "enableSubtitle",
|
|
parameters: { pipelineId: mediaId },
|
|
onSuccess,
|
|
onFailure,
|
|
onComplete,
|
|
});
|
|
} else {
|
|
return new LS2Request().send({
|
|
service: "luna://com.webos.service.tv.subtitle",
|
|
method: "disableSubtitle",
|
|
parameters: { pipelineId: mediaId },
|
|
onSuccess,
|
|
onFailure,
|
|
onComplete,
|
|
});
|
|
}
|
|
}
|
|
};
|
|
|
|
// 5.0
|
|
export const setSubtitleEnableOver5 = (
|
|
mediaId,
|
|
captionEnable,
|
|
{ onSuccess, onFailure, onComplete }
|
|
) => {
|
|
if (typeof window === "object" && window.PalmSystem) {
|
|
return new LS2Request().send({
|
|
service: "luna://com.webos.media",
|
|
method: "setSubtitleEnable",
|
|
parameters: { enable: captionEnable, mediaId: mediaId },
|
|
onSuccess,
|
|
onFailure,
|
|
onComplete,
|
|
});
|
|
}
|
|
};
|
|
|
|
// system Alert
|
|
export const addReservation = (data) => {
|
|
if (typeof window === "object" && !window.PalmSystem) {
|
|
console.log("LUNA SEND addReservation data", data);
|
|
return;
|
|
}
|
|
|
|
return new LS2Request().send({
|
|
service: "luna://com.webos.service.tvReservationAgent",
|
|
method: "add",
|
|
parameters: {
|
|
scheduleType: "LGShopping",
|
|
startTime: {
|
|
year: data.startTime.year,
|
|
month: data.startTime.month,
|
|
day: data.startTime.day,
|
|
hour: data.startTime.hour,
|
|
minute: data.startTime.minute,
|
|
second: data.startTime.second,
|
|
},
|
|
callback: {
|
|
method: "luna://com.webos.notification/createAlert",
|
|
params: {
|
|
message: data.params.message,
|
|
buttons: [
|
|
{
|
|
label: data.params.buttons[0].label,
|
|
onclick: "luna://com.webos.applicationManager/launch",
|
|
params: {
|
|
id: window.PalmSystem.identifier ?? appinfo.id,
|
|
params: data.params.launch,
|
|
},
|
|
},
|
|
{
|
|
label: data.params.buttons[1].label,
|
|
},
|
|
],
|
|
// todo pyh, delete, test case
|
|
autoTimeout: 60 * 5,
|
|
|
|
// autoTimeout: 30,
|
|
},
|
|
},
|
|
information: {
|
|
showId: data.params.showId,
|
|
chanId: data.params.chanId,
|
|
},
|
|
},
|
|
onSuccess: (res) => {
|
|
console.log("LUNA SEND addReservation success", res);
|
|
},
|
|
onFailure: (err) => {
|
|
console.log("LUNA SEND addReservation failed", err);
|
|
},
|
|
});
|
|
};
|
|
|
|
export const deleteReservation = (scheduleIdList) => {
|
|
if (typeof window === "object" && !window.PalmSystem) {
|
|
console.log("LUNA SEND deleteReservation scheduleIdList", scheduleIdList);
|
|
return;
|
|
}
|
|
|
|
return new LS2Request().send({
|
|
service: "luna://com.webos.service.tvReservationAgent",
|
|
method: "delete",
|
|
parameters: {
|
|
scheduleIdList: scheduleIdList,
|
|
},
|
|
onSuccess: (res) => {
|
|
console.log("LUNA SEND deleteReservation success", res);
|
|
},
|
|
onFailure: (err) => {
|
|
console.log("LUNA SEND deleteReservation failed", err);
|
|
},
|
|
});
|
|
};
|
|
|
|
export const searchReservation = (
|
|
chanId,
|
|
{ onSuccess, onFailure, onComplete }
|
|
) => {
|
|
if (typeof window === "object" && !window.PalmSystem) {
|
|
console.log("LUNA SEND searchReservation chanId", chanId);
|
|
return;
|
|
}
|
|
|
|
return new LS2Request().send({
|
|
service: "luna://com.palm.db",
|
|
method: "search",
|
|
parameters: {
|
|
query: {
|
|
from: "com.webos.service.tvReservationAgent.info:1",
|
|
orderBy: "startTime",
|
|
filter: [{ prop: "reserveType", op: "=", val: 6 }], // 6 LG Shopping 전용.
|
|
},
|
|
},
|
|
onSuccess,
|
|
onFailure,
|
|
onComplete,
|
|
});
|
|
};
|