package Ġcom . sp uit . ma um Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroid . content . Context Ċ import Ġcom . facebook . ste tho . St eth o Ċ import Ġcom . facebook . ste tho . okhttp 3 . St eth o Interceptor Ċ import Ġcom . k ak ao . sdk . common . K ak ao Sdk Ċ import Ġcom . sp uit . ma um . service . Di ary Ret rofit Service Ċ import Ġcom . sp uit . ma um . service . Music Ret rofit Service Ċ import Ġcom . sp uit . ma um . service . User Ret rofit Service Ċ import Ġokhttp 3 . Interceptor Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ Ċ class ĠGlobal Application Ġ: ĠApplication () Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġinstance Ġ= Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġinstance : ĠGlobal Application ĊĊĠĠĠĠĠĠĠ Ġfun ĠApplication Context (): ĠContext Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġinstance . application Context ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġlateinit Ġvar ĠuserService : ĠUser Ret rofit Service ĊĠĠĠ Ġlateinit Ġvar Ġdi ary Service : ĠDi ary Ret rofit Service ĊĠĠĠ Ġlateinit Ġvar Ġmusic Service : ĠMusic Ret rofit Service ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate () ĊĊĠĠĠĠĠĠĠ Ġ// ĠK ak ao ĠSDK Ġì ´Ī ê¸° íĻĶ ĊĠĠĠĠĠĠĠ ĠK ak ao Sdk . init ( this , Ġ" bc 2 6 8 2 1 d 1 8 c 0 0 9 5 c 1 fef 5 8 2 8 5 f 6 1 5 9 3 5 ") ĊĊĠĠĠĠĠĠĠ Ġ// ĠInit ĠSte tho ĊĠĠĠĠĠĠĠ ĠSte tho . initialize With Defaults ( this ) ĊĠĠĠĠĠĠĠ Ġcreate Ret rofit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreate Ġretrofit ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġcreate Ret rofit () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġí Ĺ ¤ ëįĶ ĠìĦ¤ìłķ ( íĨł íģ ° Ġê°Ĵ ĠëĦ £ ê¸° ) ĊĠĠĠĠĠĠĠ Ġ// ĠìĽĲ ëŀĺ ĠëĤĺ ê°Ģ ëł¤ ëį ĺ Ġrequest ĠíĨµ ìĭł ìĿĦ Ġìŀ ¡ ìķĦ ëĭ¤ ê°Ģ Ġê°ľ ì¡° ( íĹ ¤ ëįĶ ë¥¼ Ġë¶ Ļ ìŀĦ ) íķĺê³ł Ġëĭ¤ ìĭľ ĠëĤ ´ë³ ´ë Ĥ ¸ ëĭ¤ . ĊĠĠĠĠĠĠĠ Ġval Ġheader Ġ= ĠInter ceptor Ġ{ Ġ// ĠInter ceptor Ġ: Ġíķ ¸ ëĵľ íı ° ìľ¼ë¡ľ ë¶Ģ íĦ° ĠíĨµ ìĭł ìĿ´ ĠëĤĺ ê° Ī ĠëķĮ ĠíĨµ ìĭł ìĿĦ Ġê°Ģ ë¡ľ ì ± Īëĭ¤ . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoriginal Ġ= Ġit . request () Ġ// ĠìĽĲ ëŀĺ ĠëĤĺ ê°Ģ ëł¤ ëį ĺ ĠíĨµ ìĭł ìĿĦ Ġìŀ ¡ ìķĦ ë ĳ Ķ ëĭ¤ . ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġí Ĺ ¤ ëįĶ ĠìĦ¤ìłķ Ġìĭľ Ġí Ĩł íģ ° ê°Ĵ ìĿĦ ĠëĦ £ ìĸ´ ì£¼ ëĬĶ ê²Į Ġëª© íĳľ ìĿ´ ë¯ Ģë¡ľ Ġë¡ľ ê·¸ ìĿ¸ ìĿ´ ĠëĲĺ ìĹĪ ëĬĶ ì§Ģ ë¶Ģ íĦ° Ġì² ´ íģ¬ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( check Is Login ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġí Ĩł íģ ° ìĿ´ Ġnull ìĿ´ ĠìķĦ ëĭĪ ëĿ¼ ë©´ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetUser Token ()?. let Ġ{ Ġtoken Ġ-> Ġ// Ġtoken Ġ: ĠgetUser Token () ìĿĺ Ġë¦¬ íĦ´ Ġê°Ĵ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġoriginal . newBuilder () Ġ// ĠëĤĺ ê°Ģ ëł¤ ëį ĺ ĠíĨµ ìĭł ìĿĦ Ġê°ľ ì¡° íķľëĭ¤ . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" Authorization ", Ġ" token Ġ" Ġ+ Ġ 7 7 7 7 ) Ġ// Ġí Ĺ ¤ ëįĶ ë¥¼ Ġëĭ ¬ ìķĦ ì¤Ģ ëĭ¤ . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" Content - Type ", Ġ" application / json ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . proceed ( request ) Ġ// Ġê°ľ ì¡° ëĲľ Ġrequest ë¥¼ Ġëĭ¤ ìĭľ ĠëĤ ´ë³ ´ë Ĥ ¸ ëĭ¤ . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . proceed ( original ) Ġ// ĠìĽĲ ëŀĺ Ġrequest ë¥¼ ĠëĤ ´ë³ ´ë Ĥ ¸ ëĭ¤ . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġíģ´ë Ŀ¼ ìĿ´ ìĸ¸ íĬ¸ ĠìĦ¤ìłķ ĊĠĠĠĠĠĠĠ Ġ// ĠSte tho Interceptor Ġ: Ġíķ ¸ ëĵľ íı ° ìľ¼ë¡ľ Ġëĵ¤ ë Ŀ ½ ëĤ ł ë Ŀ ½ íķĺëĬĶ Ġëª¨ëĵł ĠíĨµ ìĭł ìĿĦ ĠìĿ´ ĠìĿ¸ íĦ° ìħ ī íĦ° ê°Ģ ĠëĤ ļ ìķĦ ì ± Ħ ìĦľ ĠíĻ Ķ ë©´ ìĹĲ Ġë³´ ìĹ¬ ì¤Ģ ëĭ¤ . ĊĠĠĠĠĠĠĠ Ġval Ġclient Ġ= ĠOk HttpClient . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( header ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Network Interceptor ( St eth o Interceptor ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġ// Ġretrofit Ġë§Įëĵ¤ ê¸° ĊĠĠĠĠĠĠĠ Ġval Ġuser Ret rofit Ġ= ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl (" http :// 1 0 . 0 . 2 . 2 : 8 0 9 1 / api / v 1 / user /") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl (" http :// 1 0 . 0 . 2 . 2 : 8 0 8 0 / music /") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( client ) Ġ// ĠìľĦ ìĹĲìĦľ Ġë§Į ëĵł Ġíģ´ë Ŀ¼ ìĿ´ ìĸ¸ íĬ¸ ĠëĦ £ ìĸ´ ì¤ Į ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġval Ġdi ary Ret rofit Ġ= ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl (" http :// 1 0 . 0 . 2 . 2 : 8 0 9 2 / api / v 1 / di ary /") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( client ) Ġ// ĠìľĦ ìĹĲìĦľ Ġë§Į ëĵł Ġíģ´ë Ŀ¼ ìĿ´ ìĸ¸ íĬ¸ ĠëĦ £ ìĸ´ ì¤ Į ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġval Ġmusic Ret rofit Ġ= ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl (" http :// 1 0 . 0 . 2 . 2 : 8 0 9 3 / api / v 1 / music /") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( client ) Ġ// ĠìľĦ ìĹĲìĦľ Ġë§Į ëĵł Ġíģ´ë Ŀ¼ ìĿ´ ìĸ¸ íĬ¸ ĠëĦ £ ìĸ´ ì¤ Į ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġ// ĠìĦľë¹ĦìĬ¤ Ġë§Įëĵ¤ ê¸° ĊĠĠĠĠĠĠĠ ĠuserService Ġ= Ġuser Ret rofit . create ( User Ret rofit Service :: class . java ) ĊĠĠĠĠĠĠĠ Ġdi ary Service Ġ= Ġdi ary Ret rofit . create ( Di ary Ret rofit Service :: class . java ) ĊĠĠĠĠĠĠĠ Ġmusic Service Ġ= Ġmusic Ret rofit . create ( Music Ret rofit Service :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCheck Ġlogin ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ// Ġí ļĮ ìĽĲ Ġê°Ģ ìŀħ ìĿĦ Ġíķĺ ë©´ Ġtoken ê°Ĵ ìĿĦ Ġë°Ľ ê³ł Ġê·¸ Ġí Ĩł íģ ° ê°Ĵ ìĿĦ ĠSP ìĹĲ ĠìłĢìŀ¥ íķĺëĬĶ ëį° , ĊĠĠĠ Ġ/* ĠSP ìĹĲ Ġí Ĩł íģ ° ê°Ĵ ìĿ´ ĠìĹĨ ìľ¼ ë©´ Ġë¡ľ ê·¸ ìĿ¸ ìĿ´ ĠìķĪ ëĲľ ê±° ê³ł ĠìŀĪ ìľ¼ ë©´ Ġë¡ľ ê·¸ ìĿ¸ ìĿ´ ĠëĲĺ ìĹ Īëĭ¤ ê³ł ĠíĮ Ĳ ëĭ¨ */ Ġfun Ġcheck Is Login (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsp Ġ= Ġget SharedPreferences (" login _ sp ", ĠContext . MODE _ PRIVATE ) Ġ// ĠSP Ġìĸ » ìĸ´ ìĺ¤ ê¸° ĊĠĠĠĠĠĠĠ Ġval Ġtoken Ġ= Ġsp . getString (" token ", Ġ" null ") Ġ// Ġtoken Ġìĸ » ìĸ´ ìĺ¤ ê¸° ĊĊĠĠĠĠĠĠĠ Ġif Ġ( token Ġ!= Ġ" null ") Ġreturn Ġtrue ĊĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġtoken ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠgetUser Token (): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsp Ġ= Ġget SharedPreferences (" login _ sp ", ĠContext . MODE _ PRIVATE ) Ġ// ĠSP Ġìĸ » ìĸ´ ìĺ¤ ê¸° ĊĠĠĠĠĠĠĠ Ġval Ġtoken Ġ= Ġsp . getString (" token ", Ġ" null ") Ġ// Ġtoken Ġìĸ » ìĸ´ ìĺ¤ ê¸° ĊĊĠĠĠĠĠĠĠ Ġif Ġ( token Ġ== Ġ" null ") Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġreturn Ġtoken ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġdrawable ìĿĺ Ġê° Ĳ ìłķ ĠìĿ´ë ª ¨ íĭ° ì ½ ĺ ĠìĿ´ë¯¸ ì§Ģ ĠíĮĮìĿ¼ ĠID Ġê°Ģ ìł¸ ìĺ¤ ê¸° ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġget Em ot icon Id ( emotion : ĠString ?): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( emotion ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" fe ar " Ġ-> Ġreturn ĠR . drawable . fe ar ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" sur prise " Ġ-> Ġreturn ĠR . drawable . sur prise ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" anger " Ġ-> Ġreturn ĠR . drawable . anger ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" sad ness " Ġ-> Ġreturn ĠR . drawable . sad ness ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" neutral ity " Ġ-> Ġreturn ĠR . drawable . neutral ity ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" happ iness " Ġ-> Ġreturn ĠR . drawable . happ iness ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" dis g ust " Ġ-> Ġreturn ĠR . drawable . dis g ust ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" ple asure " Ġ-> Ġreturn ĠR . drawable . ple asure ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" emb arr ass ment " Ġ-> Ġreturn ĠR . drawable . emb arr ass ment ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" un rest " Ġ-> Ġreturn ĠR . drawable . un rest ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" bru ise " Ġ-> Ġreturn ĠR . drawable . bru ise ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull Ġ-> Ġreturn ĠR . drawable . neutral ity ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġreturn ĠR . drawable . neutral ity ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ