import { isTv } from '../shared/cooInfo';
import ProtocolModule from '../coolink/ProtocolModule'
import { Util } from '..';

// 组件通讯的映射数组
var linkingMsgCallbacks : any = {};

export function addLinkingMsgCallback(key: string, cb: Function) {
    linkingMsgCallbacks[key] = cb;
}

export function deleteLinkingMsgCallback(key: string) {
    try {
        delete linkingMsgCallbacks[key];
    }
    catch (e) {
        Util.log(e);
    }
}

export function linkingMessageOnRecv(res) {
    let isTvFlag = isTv();
    let hasProcess = false;
    // 
    let msgObj : any = {};
    try {
        if (isTvFlag) {
            if (res && res?.content) {
                let obj1 = JSON.parse(res.content);
                if (obj1?.content) {
                    let obj2 = JSON.parse(obj1.content);
                    msgObj = obj2;
                }
            }
        } else {
            if (res && res?.content) {
                let obj1 = JSON.parse(res.content);
                if (obj1?.message?.content) {
                    let obj2 = JSON.parse(obj1.message.content);
                    msgObj = obj2;
                }
            }
        }
    } catch (ex) {
        //
    }
    // 寻找组件对应的回调 
    if (msgObj?.mapToLinkingWidget) {
        let key = msgObj.mapToLinkingWidget;
        if (linkingMsgCallbacks[key]) {
            hasProcess = true;
            linkingMsgCallbacks[key](msgObj, res);
        }
    }

    //
    if (!hasProcess) {
        if (ProtocolModule.msgcallback) {
            ProtocolModule.msgcallback(msgObj, res);
        }
    }
}




