package Ġcom . master 8 . sh ana . data . source . t mdb Ċ Ċ import Ġandroid . net . Uri Ċ import Ġandroidx . core . text . is Digits Only Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ Ċ private Ġconst Ġval ĠBASE _ URL Ġ= Ġ" https :// api . the mov ied b . org / 3 /" Ċ Ċ private Ġconst Ġval ĠTARGET _ IMAGE _ WIDTH Ġ= Ġ" w 5 0 0 " Ċ private Ġconst Ġval ĠBASE _ IMAGE _ URL Ġ= Ġ" https :// image . t mdb . org / t / p /$ TARGET _ IMAGE _ WIDTH " Ċ Ċ private Ġconst Ġval ĠMED IA _ TYPE _ MOV IE Ġ= Ġ" movie " Ċ private Ġconst Ġval ĠMED IA _ TYPE _ TV Ġ= Ġ" tv " Ċ Ċ private Ġval Ġdate Formatter Ġby Ġlazy Ġ{ ĠSimpleDateFormat (" yyyy - MM - dd ") Ġ} Ċ Ċ fun Ġcreate T MD b ApiService (): ĠT MD b ApiService Ġ{ ĊĠĠĠ Ġreturn ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠ Ġ. baseUrl ( BASE _ URL ) ĊĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ()) ĊĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ. create ( T MD b ApiService :: class . java ) Ċ } Ċ Ċ fun Ġcreate T MD b Absolute Image Uri ( related Url : ĠString ?): ĠUri ? Ġ{ ĊĠĠĠ Ġreturn Ġrelated Url ?. let Ġ{ ĠUri . parse ( BASE _ IMAGE _ URL Ġ+ Ġit ) Ġ} Ċ } Ċ Ċ fun Ġmedia Type Is Movie ( media Type : ĠString ) Ġ= Ġmedia Type Ġ== ĠMED IA _ TYPE _ MOV IE Ċ fun Ġmedia Type Is TV ( media Type : ĠString ) Ġ= Ġmedia Type Ġ== ĠMED IA _ TYPE _ TV Ċ Ċ fun Ġget Year From T MD b Date ( date : ĠString ): ĠInt Ġ{ ĊĠĠĠ Ġif Ġ( date . isBlank ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠ Ġ. apply Ġ{ Ġtime Ġ= Ġdate Formatter . parse ( date ) Ġ} ĊĠĠĠĠĠĠĠ Ġ. get ( Calendar . YEAR ) Ċ }