/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 9 ĠNam ĠN gu yen , Ġnam @ ene . im Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġk oh ii . v 1 . experiments Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . Fragment Activity Ċ import Ġandroidx . lifecycle . Default Lifecycle Observer Ċ import Ġk oh ii . v 1 . core . Engine Ċ import Ġk oh ii . v 1 . core . Manager Ċ import Ġk oh ii . v 1 . core . Master Ċ import Ġk oh ii . v 1 . experiments . internal . Official YouTube Player Play able Creator Ċ import Ġk oh ii . v 1 . experiments . internal . Official YouTube Player Renderer Provider Ċ import Ġk oh ii . v 1 . utils . Singleton Holder Ċ Ċ class ĠOffic ial YouTube Player Engine Ġprivate Ġconstructor ( ĊĠ Ġmaster : ĠMaster Ċ ) Ġ: ĠEngine < YouTube Player Fragment >( master , ĊĠĠĠ ĠOffic ial YouTube Player Play able Creator ( master ) Ċ ), ĊĠĠĠ ĠDefault Lifecycle Observer Ġ{ ĊĊĠ Ġprivate Ġconstructor ( context : ĠContext ) Ġ: Ġthis ( Master [ context ]) ĊĊĠ Ġcompanion Ġobject Ġ: ĠSingleton Holder < Official YouTube Player Engine , ĠContext >( ĊĠĠĠĠĠ Ġ:: Official YouTube Player Engine ĊĠ Ġ) Ġ{ ĊĊĠĠĠ Ġ@ Jvm Static Ġ// Ġconvenient Ġstatic Ġcall Ġfor ĠJava ĊĠĠĠ Ġoperator Ġfun Ġget ( context : ĠContext ) Ġ= Ġsuper . getInstance ( context ) ĊĊĠĠĠ Ġ@ Jvm Static Ġ// Ġconvenient Ġstatic Ġcall Ġfor ĠJava ĊĠĠĠ Ġoperator Ġfun Ġget ( fragment : ĠFragment ) Ġ= Ġget ( fragment . require Context ()) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġprepare ( manager : ĠManager ) Ġ{ ĊĠĠĠ Ġval Ġfragment Manager Ġ= ĊĠĠĠĠĠ Ġwhen Ġ( val Ġhost Ġ= Ġmanager . host ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠFragment Activity Ġ-> Ġhost . support FragmentManager ĊĠĠĠĠĠĠĠ Ġis ĠFragment Ġ-> Ġhost . child FragmentManager ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalArgumentException ("${ host . java Class } Ġis Ġnot Ġsupported .") ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġprovider Ġ= ĊĠĠĠĠĠ ĠOffic ial YouTube Player Renderer Provider ( fragment Manager ) ĊĠĠĠ Ġmanager . register Renderer Provider ( YouTube Player Fragment :: class . java , Ġprovider ) ĊĠ Ġ} Ċ } Ċ