/* Ċ Ġ* ĠCopyright Ġ 2 0 1 8 ĠNew ĠVector ĠLtd Ċ Ġ* Ċ Ġ* Ġ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 Ġim . vector . activity Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġcom . google . gson . Gson Ċ import Ġim . vector . R Ċ import Ġim . vector . activity . util . INTEGR ATION _ MANAGER _ ACTIVITY _ REQUEST _ CODE Ċ import Ġim . vector . types . Json Dict Ċ import Ġim . vector . util . Theme Utils Ċ import Ġorg . matrix . android sdk . util . Log Ċ import Ġjava . net . URL Encoder Ċ Ċ class ĠSt icker Picker Activity Ġ: ĠAbstract Widget Activity () Ġ{ ĊĊĠĠĠ Ġ/* Ġ================================================================= ================ ========= ĊĠĠĠĠ Ġ* ĠDATA ĊĠĠĠĠ Ġ* Ġ================================================================= ================ ========= Ġ*/ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Widget Url : ĠString ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Widget Id : ĠString ĊĊĠĠĠ Ġ/* Ġ================================================================= ================ ========= ĊĠĠĠĠ Ġ* ĠIMP LEMENT ĠMETHO DS ĊĠĠĠĠ Ġ* Ġ================================================================= ================ ========= Ġ*/ ĊĊĠĠĠ Ġoverride Ġfun Ġget Other Themes () Ġ= ĠPair ( R . style . App Theme _ No ActionBar _ Dark , ĠR . style . App Theme _ No ActionBar _ Black ) ĊĊĠĠĠ Ġoverride Ġfun Ġget Layout Res () Ġ= ĠR . layout . activity _ choose _ st icker ĊĊĠĠĠ Ġoverride Ġfun Ġget Title Res () Ġ= ĠR . string . title _ activity _ choose _ st icker ĊĊĠĠĠ Ġoverride Ġfun Ġinit Ui And Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Widget Url Ġ= Ġintent . getString Extra ( EXTRA _ WIDGET _ URL ) ĊĠĠĠĠĠĠĠ Ġm Widget Id Ġ= Ġintent . getString Extra ( EXTRA _ WIDGET _ ID ) ĊĊĠĠĠĠĠĠĠ Ġconfigure Toolbar () ĊĊĠĠĠĠĠĠĠ Ġsuper . init Ui And Data () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCompute Ġthe ĠURL ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġthe ĠURL ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġbuild Interface Url ( scalar Token : ĠString ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġm Widget Url Ġ+ Ġ" ?" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" scalar _ token =" Ġ+ ĠURL Encoder . encode ( scalar Token , Ġ" utf - 8 ") Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"& room _ id =" Ġ+ ĠURL Encoder . encode ( m Room !!. roomId , Ġ" utf - 8 ") Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"& widget Id =" Ġ+ ĠURL Encoder . encode ( m Widget Id , Ġ" utf - 8 ") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( LOG _ TAG , Ġ" ## Ġbuild Interface Url () Ġfailed Ġ" Ġ+ Ġe . message , Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠA ĠWidget Ġmessage Ġhas Ġbeen Ġreceived , Ġdeals Ġwith Ġit Ġand Ġsend Ġthe Ġresponse ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġdeals With Widget Request ( event Data : ĠJson Dict < Any >): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġaction Ġ= Ġevent Data [" action "] Ġas ĠString ? ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( action ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" m . st icker " Ġ-> Ġsend St icker ( event Data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. also Ġ{ Ġreturn Ġtrue Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . de als With Widget Request ( event Data ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* Ġ================================================================= ================ ========= ĊĠĠĠĠ Ġ* ĠLife Ġcycle ĊĠĠĠĠ Ġ* Ġ================================================================= ================ ========= Ġ*/ ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( request Code ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠRe load Ġthe Ġpage , Ġuser Ġmay Ġhave Ġadd / remove Ġst icker Ġpack ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIN TEGR ATION _ MANAGER _ ACTIVITY _ REQUEST _ CODE Ġ-> Ġm WebView . reload () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* Ġ================================================================= ================ ========= ĊĠĠĠĠ Ġ* ĠMENU ĊĠĠĠĠ Ġ* Ġ================================================================= ================ ========= Ġ*/ ĊĊĠĠĠ Ġoverride Ġfun Ġget Menu Res () Ġ= ĠR . menu . vector _ choose _ st icker ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . menu _ settings Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen Integration Manager ( m Widget Id , Ġ" type _$ WIDGET _ NAME ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* Ġ================================================================= ================ ========= ĊĠĠĠĠ Ġ* ĠPrivate Ġmethods ĊĠĠĠĠ Ġ* Ġ================================================================= ================ ========= Ġ*/ ĊĊĠĠĠ Ġprivate Ġfun Ġsend St icker ( event Data : ĠJson Dict < Any >) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( LOG _ TAG , Ġ" Received Ġrequest Ġsend Ġst icker ") ĊĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġevent Data [" data "] ĊĊĠĠĠĠĠĠĠ Ġif Ġ( data Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend Error ( getString ( R . string . widget _ integration _ missing _ parameter ), Ġevent Data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġcontent Ġ= Ġ( data Ġas ĠJson Dict < Any >) [" content "] ĊĊĠĠĠĠĠĠĠ Ġif Ġ( content Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend Error ( getString ( R . string . widget _ integration _ missing _ parameter ), Ġevent Data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= ĠGson (). toJson ( content ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠSend Ġthe Ġresponse Ġto Ġbe Ġpol ite Ġ( since Ġthe ĠActivity Ġwill Ġbe Ġfinished ) ĊĠĠĠĠĠĠĠ Ġsend Success ( event Data ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠOk Ġsend Ġthe Ġresult Ġback Ġto Ġthe Ġcalling ĠActivity ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSerialize Ġthe ĠJSON Ġobject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( EXTRA _ OUT _ CONTENT , Ġjson ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġset Result ( Activity . RESULT _ OK , Ġintent ) ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* Ġ================================================================= ================ ========= ĊĠĠĠĠ Ġ* Ġcompanion ĊĠĠĠĠ Ġ* Ġ================================================================= ================ ========= Ġ*/ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠLOG _ TAG Ġ= ĠSt icker Picker Activity :: class . java . simple Name ĊĊĠĠĠĠĠĠĠ Ġ/* Ġ================================================================= ================ ========= ĊĠĠĠĠĠĠĠĠ Ġ* ĠConst ĊĠĠĠĠĠĠĠĠ Ġ* Ġ================================================================= ================ ========= Ġ*/ ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠW ID GET _ NAME Ġ= Ġ" m . st icker picker " ĊĊĠĠĠĠĠĠĠ Ġ/* Ġ================================================================= ================ ========= ĊĠĠĠĠĠĠĠĠ Ġ* ĠParameters ĊĠĠĠĠĠĠĠĠ Ġ* Ġ================================================================= ================ ========= Ġ*/ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠEX TRA _ WIDGET _ URL Ġ= Ġ" EXTRA _ WIDGET _ URL " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠEX TRA _ WIDGET _ ID Ġ= Ġ" EXTRA _ WIDGET _ ID " ĊĊĠĠĠĠĠĠĠ Ġfun Ġget Intent ( context : ĠContext , Ġmatrix Id : ĠString , Ġroom Id : ĠString , Ġwidget Url : ĠString , Ġwidget Id : ĠString ): ĠIntent Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠIntent ( context , ĠSt icker Picker Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( EXTRA _ MATRIX _ ID , Ġmatrix Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( EXTRA _ ROOM _ ID , Ġroom Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( EXTRA _ WIDGET _ URL , Ġwidget Url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( EXTRA _ WIDGET _ ID , Ġwidget Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/* Ġ================================================================= ================ ========= ĊĠĠĠĠĠĠĠĠ Ġ* ĠResult ĊĠĠĠĠĠĠĠĠ Ġ* Ġ================================================================= ================ ========= Ġ*/ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠEX TRA _ OUT _ CONTENT Ġ= Ġ" EXTRA _ OUT _ CONTENT " ĊĊĠĠĠĠĠĠĠ Ġfun Ġget Result Content ( intent : ĠIntent ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġintent . getString Extra ( EXTRA _ OUT _ CONTENT ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }