precondition = ["Platform","Graphics","Internet"]
autostart = "@PLUGIN_COBALT_AUTOSTART@"

if ("@PLUGIN_COBALT_PERSISTENTPATHPOSTFIX@"):
    persistentpathpostfix = "@PLUGIN_COBALT_PERSISTENTPATHPOSTFIX@"

configuration = JSON()

configuration.add("url", "https://www.youtube.com/tv")
configuration.add("clientidentifier", "@PLUGIN_COBALT_CLIENTIDENTIFIER@")
configuration.add("language", "@PLUGIN_COBALT_LANGUAGE@")
configuration.add("contentdir", "@PLUGIN_COBALT_CONTENT_DIR@")
configuration.add("essoscontextdestroy", "@PLUGIN_COBALT_ESSOS_CONTEXT_DESTROY@")
configuration.add("preload", "@PLUGIN_COBALT_PRELOAD@")
configuration.add("closurepolicy", "@PLUGIN_COBALT_CLOSUREPOLICY@")

advertisingid = JSON()
advertisingid.add("ifa", "@PLUGIN_COBALT_ADVERTISING_ID@")
advertisingid.add("ifa_type", "@PLUGIN_COBALT_IFA_TYPE@")
advertisingid.add("lmt", "@PLUGIN_COBALT_LIMIT_AD_TRACKING@")

if boolean("@advertisingid@"):
    configuration.add("advertisingid", advertisingid)

systemproperties = JSON()
systemproperties.add("modelname", "@PLUGIN_COBALT_PROP_MODELNAME@")
systemproperties.add("brandname", "@PLUGIN_COBALT_PROP_BRANDNAME@")
systemproperties.add("modelyear", "@PLUGIN_COBALT_PROP_MODELYEAR@")
systemproperties.add("chipsetmodelnumber", "@PLUGIN_COBALT_PROP_CHIPSETMODELNUMBER@")
systemproperties.add("firmwareversion", "@PLUGIN_COBALT_PROP_FIRMWAREVERSION@")
systemproperties.add("integratorname", "@PLUGIN_COBALT_PROP_INTEGRATORNAME@")
systemproperties.add("friendlyname", "@PLUGIN_COBALT_PROP_FRIENDLYNAME@")
systemproperties.add("devicetype", "@PLUGIN_COBALT_PROP_DEVICETYPE@")

configuration.add("systemproperties", systemproperties)

sbmainargs = []

if boolean("@PLUGIN_COBALT_EVEGREEN_LITE@"):
    sbmainargs.append("--evergreen_lite")

configuration.add("sbmainargs", sbmainargs)

root = JSON()
root.add("mode", "@PLUGIN_COBALT_MODE@")
root.add("locator", "lib@PLUGIN_COBALT_IMPLEMENTATION@.so")
root.add("user", "@PLUGIN_COBALT_USER@")
root.add("group", "@PLUGIN_COBALT_GROUP@")
configuration.add("root", root)

