package Ġcom . viz t ush ar . whats app st icker api Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Activity NotFoundException Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Build Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . Gravity Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . annotation . NonNull Ċ import Ġandroidx . annotation . Requires Api Ċ import Ġcom . fx n . stash . St ash Ċ import Ġcom . viz t ush ar . whats app st icker api . St icker Pack Activity . create Intent ToAdd St icker Pack Ċ import Ġcom . viz t ush ar . whats app st icker api . mode . St icker Ċ import Ġcom . viz t ush ar . whats app st icker api . mode . St icker Pack Ċ import Ġio . flutter . embedding . engine . plugins . Flutter Plugin Ċ import Ġio . flutter . embedding . engine . plugins . Flutter Plugin . Flutter Plugin Binding Ċ import Ġio . flutter . embedding . engine . plugins . activity . Activity Aware Ċ import Ġio . flutter . embedding . engine . plugins . activity . Activity Plugin Binding Ċ import Ġio . flutter . plugin . common . Binary Messenger Ċ import Ġio . flutter . plugin . common . MethodCall Ċ import Ġio . flutter . plugin . common . Method Channel Ċ import Ġio . flutter . plugin . common . Method Channel . MethodCall Handler Ċ import Ġio . flutter . plugin . common . Method Channel . Result Ċ import Ġio . flutter . plugin . common . Plugin Registry . Registrar Ċ import Ġjava . util .* Ċ import Ġkotlin . collections . ArrayList Ċ Ċ /** ĠWh ats app st icker Api Plugin Ġ*/ Ċ class ĠWh ats app st icker Api Plugin () Ġ: ĠFlutter Plugin , ĠMethod Call Handler , ĠActivity Aware Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġmethod Channel : ĠMethod Channel ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcontext : ĠContext ĊĠĠĠ Ġprivate Ġvar Ġactivity : ĠActivity ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġresult : ĠResult ĊĠĠĠ Ġprivate Ġvar Ġst icker Pack s Ġ= ĠArrayList < St icker Pack >() ĊĠĠĠ Ġprivate Ġval ĠTAG Ġ= ĠWh ats app st icker Api Plugin :: class . java . simple Name ĊĠĠĠ Ġprivate Ġvar Ġplugin Binding : ĠFlutter Plugin Binding ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġactivity Binding : ĠActivity Plugin Binding ? Ġ= Ġnull ĊĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġregister With ( regist rar : ĠRegist rar ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( regist rar . activity () Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIf Ġa Ġbackground Ġflutter Ġview Ġtries Ġto Ġregister Ġthe Ġplugin , Ġthere Ġwill Ġbe Ġno Ġactivity Ġfrom Ġthe Ġregist rar , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwe Ġstop Ġthe Ġregistering Ġprocess Ġimmediately Ġbecause Ġthe ĠImage Picker Ġrequires Ġan Ġactivity . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplugin Ġ= ĠWh ats app st icker Api Plugin () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplugin . activity Ġ= Ġregist rar . activity () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplugin . setup Channels ( regist rar . messenger (), Ġregist rar . context ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMethod Channel ( regist rar . messenger (), Ġ" com . viz t ush ar . whats app st icker api . whats app st icker api / whats app st icker api "). set MethodCall Handler ( plugin ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠEX TRA _ STICK ER _ PACK _ ID Ġ= Ġ" st icker _ pack _ id " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠEX TRA _ STICK ER _ PACK _ AUTH ORITY Ġ= Ġ" st icker _ pack _ authority " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠEX TRA _ STICK ER _ PACK _ NAME Ġ= Ġ" st icker _ pack _ name " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠADD _ PACK Ġ= Ġ 2 0 0 ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun ĠgetContent Provider Authority ( context : ĠContext ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcontext . packageName Ġ+ Ġ". st icker content provider " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ // ĠĠĠ Ġprivate Ġfun Ġsetup ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġmess enger : ĠBinary Messenger , Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġactivity : ĠActivity , Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġregist rar : ĠRegist rar ?, Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġactivity Binding : ĠActivity Plugin Binding ?) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġthis . activity Ġ= Ġactivity Ċ // ĠĠĠĠĠĠĠ Ġcontext Ġ= Ġregist rar ?. context () !! Ċ // ĠĠĠĠ Ġmethod Channel Ġ= ĠMethod Channel ( messenger , Ġ" com . viz t ush ar . whats app st icker api . whats app st icker api / whats app st icker api ") Ċ // ĠĠĠĠĠ Ġmethod Channel !!. set MethodCall Handler ( this ); Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( regist rar Ġ!= Ġnull ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠV 1 Ġembedding Ġsetup Ġfor Ġactivity Ġlisteners . Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġregist rar . add Activity Result Listener ( this ) Ċ // ĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠV 2 Ġembedding Ġsetup Ġfor Ġactivity Ġlisteners . Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġactivity Binding ?. add Activity Result Listener ( this ) Ċ // ĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Channels ( messenger : ĠBinary Messenger , Ġcontext : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . context Ġ= Ġcontext ĊĠĠĠĠĠĠĠ Ġmethod Channel Ġ= ĠMethod Channel ( messenger , Ġ" com . viz t ush ar . whats app st icker api . whats app st icker api / whats app st icker api ") ĊĠĠĠĠĠĠĠ Ġmethod Channel ?. set MethodCall Handler ( this ) ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Requires Api ( Build . VERSION _ CODES . KIT K AT ) ĊĠĠĠ Ġoverride Ġfun Ġon MethodCall (@ NonNull Ġcall : ĠMethod Call , Ġ@ NonNull Ġresult : ĠResult ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . result Ġ= Ġresult ĊĠĠĠĠĠĠĠ Ġwhen Ġ( call . method ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" add TO Json " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ToJson ( call . argument (" ident i F ier "), Ġcall . argument (" name "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall . argument (" publisher "), Ġcall . argument (" tray image file "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall . argument (" publisher email "), Ġcall . argument (" publisher website "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall . argument (" priv ac yp olicy website "), Ġcall . argument (" license agreement website "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠObjects . requireNonNull ( call . argument (" st icker _ image ")), Objects . requireNonNull ( call . argument (" image _ data _ version ")), Objects . requireNonNull ( call . argument (" avoid _ cache ")), Ġresult ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" add St icker Pack To Wh ats App " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd St icker Pack To Wh ats App ( call . argument (" identifier "), Ġcall . argument (" name ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . not Implemented () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊ Ċ // ĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?): ĠBoolean Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ== ĠADD _ PACK ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġ== ĠActivity . RESULT _ C ANCE LED Ġ&& Ġdata Ġ!= Ġnull ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalidation Error Ġ= Ġdata . getString Extra (" validation _ error ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( validation Error Ġ!= Ġnull ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġ!= Ġnull ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . error (" 1 0 0 ", Ġ" failed ", Ġvalidation Error ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" Validation Ġfailed :$ validation Error ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( request Code Ġ== ĠActivity . RESULT _ OK Ġ&& Ġdata Ġ!= Ġnull ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbundle : ĠBundle Ġ= Ġdata . extras Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( bundle . containsKey (" add _ successful ")) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . success (" 1 0 1 ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( bundle . containsKey (" already _ added ")) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . success (" 1 0 2 ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . success (" 1 0 5 ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġreturn Ġtrue Ċ // ĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd ToJson ( identifier : ĠString ?, Ġname : ĠString ?, Ġpublisher : ĠString ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtr ay _ image _ file : ĠString ?, Ġpublisher _ email : ĠString ?, Ġpublisher _ website : ĠString ?, Ġprivacy _ policy _ website : ĠString ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlicense _ agreement _ website : ĠString ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġst icker : ĠArrayList <* >, image data version : ĠString ?, avoid cache : ĠBoolean , Ġ@ NonNull Ġresult : ĠResult ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" addTo Json : Ġ$ tray _ image _ file ") ĊĠĠĠĠĠĠĠ Ġval Ġstick ers Ġ= ĠArrayList < St icker >() ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġst icker . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstick ers . add ( St icker ( st icker [ i ]. toString (), ĠArrays . asList (* " ðŁ Ļ Ĥ , ðŁ Ļ Ĥ ". split ("," . to Regex ()). to Typed Array ()))) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġst icker Pack Ġ= ĠSt icker Pack ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġidentifier , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublisher , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtr ay _ image _ file , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublisher _ email , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublisher _ website , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivacy _ policy _ website , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlicense _ agreement _ website , Ġimage data version , Ġavoid cache ) ĊĠĠĠĠĠĠĠ Ġst icker Pack . set Android Play Store Link (" https :// play . google . com / store / apps / details ? id =" Ġ+ Ġcontext . packageName . toString ()) ĊĠĠĠĠĠĠĠ Ġst icker Pack . set I os App Store Link ("") ĊĠĠĠĠĠĠĠ Ġst icker Pack . set Stick ers ( stick ers ) ĊĠĠĠĠĠĠĠ Ġst icker Pack s . add ( st icker Pack ) ĊĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" addTo Json : Ġ" Ġ+ Ġst icker Pack s . get ( 0 ). stick ers Ġ+ Ġ" Ġ" Ġ+ Ġst icker . size ) ĊĠĠĠĠĠĠĠ ĠSt ash . put (" st icker _ pack ", Ġst icker Pack s ) ĊĠĠĠĠĠĠĠ Ġif Ġ( st icker . size Ġ== Ġ 3 Ġ|| Ġst icker . size Ġ> Ġ 3 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . action Ġ= Ġ" com . whats app . intent . action . ENABLE _ STICK ER _ PACK " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( EXTRA _ STICK ER _ PACK _ ID , Ġidentifier ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( EXTRA _ STICK ER _ PACK _ AUTH ORITY , ĠgetContent Provider Authority ( context )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( EXTRA _ STICK ER _ PACK _ NAME , Ġname ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// activity Binding ?. activity ?. startActivity For Result ( intent , ĠADD _ PACK ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġt Ġ= ĠSt icker Pack Activity ( result , Ġcontext ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity Binding ?. add Activity Result Listener ( t ); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. startActivity For Result ( intent , ĠADD _ PACK ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . success (" success ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : Ġjava . lang . Exception ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" addTo Json : Ġerror " Ġ+ Ġe . message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠerrorMessage Ġ= Ġ" St icker Ġpack Ġnot Ġadded . ĠIf Ġyou 'd Ġlike Ġto Ġadd Ġit , Ġmake Ġsure Ġyou Ġupdate Ġto Ġthe Ġlatest Ġversion Ġof ĠWh ats App ." ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . error ( errorMessage , Ġ" failed ", Ġe ) ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" addTo Json : Ġerror ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtoast Ġ= ĠToast . makeText ( context , Ġ" You Ġneed Ġ 3 Ġor Ġmore Ġst icker Ġper Ġpack ", ĠToast . LENGTH _ LONG ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoast . set Gravity ( Gravity . CENTER , Ġ 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoast . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . error (" need 3 st icker orm ore ", Ġ" need Ġ 3 Ġor Ġmore Ġst icker ", Ġ" You Ġneed Ġ 3 Ġor Ġmore Ġst icker Ġper Ġpack ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd St icker Pack To Wh ats App ( identifier : ĠString ?, Ġst icker Pack Name : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// if Ġneither ĠWh ats App ĠConsumer Ġor ĠWh ats App ĠBusiness Ġis Ġinstalled , Ġthen Ġtell Ġuser Ġto Ġinstall Ġthe Ġapps . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġp Ġ= Ġactivity ?. package Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. package Manager ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! Whitelist Check . is Wh ats App Consumer App Installed ( it ) Ġ&& ĠWh itelist Check . is Wh ats App S mb App Installed ( it )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context , Ġ" St icker Ġpack Ġnot Ġadded . ĠIf Ġyou \\ ' d Ġlike Ġto Ġadd Ġit , Ġmake Ġsure Ġyou Ġupdate Ġto Ġthe Ġlatest Ġversion Ġof ĠWh ats App .", ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġst icker Pack Wh itelisted In Wh ats App Consumer Ġ= ĠWh itelist Check . is St icker Pack Wh itelisted In Wh ats App Consumer ( context , Ġidentifier !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġst icker Pack Wh itelisted In Wh ats App S mb Ġ= ĠWh itelist Check . is St icker Pack Wh itelisted In Wh ats App S mb ( context , Ġidentifier ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! st icker Pack Wh itelisted In Wh ats App Consumer Ġ&& Ġ! st icker Pack Wh itelisted In Wh ats App S mb ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ask Ġusers Ġwhich Ġapp Ġto Ġadd Ġthe Ġpack Ġto . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch Intent ToAdd Pack To Chooser ( identifier , Ġst icker Pack Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ(! st icker Pack Wh itelisted In Wh ats App Consumer ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch Intent ToAdd Pack To Specific Package ( identifier , Ġst icker Pack Name , ĠWh itelist Check . CON SUM ER _ WH ATS APP _ PACKAGE _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ(! st icker Pack Wh itelisted In Wh ats App S mb ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch Intent ToAdd Pack To Specific Package ( identifier , Ġst icker Pack Name , ĠWh itelist Check . SMB _ WH ATS APP _ PACKAGE _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context , Ġ" St icker Ġpack Ġnot Ġadded . ĠIf Ġyou \\ ' d Ġlike Ġto Ġadd Ġit , Ġmake Ġsure Ġyou Ġupdate Ġto Ġthe Ġlatest Ġversion Ġof ĠWh ats App .", ĠToast . LENGTH _ LONG ). show () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( Whitelist Check . is Wh itelisted ( context , identifier )){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch Intent ToAdd Pack To Specific Package ( identifier , Ġst icker Pack Name , ĠWh itelist Check . CON SUM ER _ WH ATS APP _ PACKAGE _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" error Ġadding Ġst icker Ġpack Ġto ĠWh ats App ", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context , Ġ" St icker Ġpack Ġnot Ġadded . ĠIf Ġyou \\ ' d Ġlike Ġto Ġadd Ġit , Ġmake Ġsure Ġyou Ġupdate Ġto Ġthe Ġlatest Ġversion Ġof ĠWh ats App .", ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġlaunch Intent ToAdd Pack To Specific Package ( identifier : ĠString ?, Ġst icker Pack Name : ĠString ?, Ġwh ats app PackageName : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= Ġcreate Intent ToAdd St icker Pack ( getContent Provider Authority ( context ), identifier , Ġst icker Pack Name ) ĊĠĠĠĠĠĠĠ Ġintent . set Package ( whats app PackageName ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ Ġval Ġt Ġ= ĠSt icker Pack Activity ( result , Ġcontext ) ĊĠĠĠĠĠĠĠĠĠ Ġactivity Binding ?. add Activity Result Listener ( t ); ĊĠĠĠĠĠĠĠĠĠ Ġactivity ?. startActivity For Result ( intent , ĠADD _ PACK ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠActivity NotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context , Ġ" St icker Ġpack Ġnot Ġadded . ĠIf Ġyou \\ ' d Ġlike Ġto Ġadd Ġit , Ġmake Ġsure Ġyou Ġupdate Ġto Ġthe Ġlatest Ġversion Ġof ĠWh ats App .", ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Handle Ġcases Ġeither Ġof ĠWh ats App Ġare Ġset Ġas Ġdefault Ġapp Ġto Ġhandle Ġthis Ġintent . ĠWe Ġstill Ġwant Ġusers Ġto Ġsee Ġboth Ġoptions . ĊĠĠĠ Ġprivate Ġfun Ġlaunch Intent ToAdd Pack To Chooser ( identifier : ĠString ?, Ġst icker Pack Name : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= Ġcreate Intent ToAdd St icker Pack ( ĠgetContent Provider Authority ( context ), identifier , Ġst icker Pack Name ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġval Ġt Ġ= ĠSt icker Pack Activity ( result , Ġcontext ) ĊĠĠĠĠĠĠĠĠĠ Ġactivity Binding ?. add Activity Result Listener ( t ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. startActivity For Result ( Intent . create Chooser ( intent , Ġ" Add Ġto ĠWh ats App "), ĠADD _ PACK ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠActivity NotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context , Ġ" St icker Ġpack Ġnot Ġadded . ĠIf Ġyou \\ ' d Ġlike Ġto Ġadd Ġit , Ġmake Ġsure Ġyou Ġupdate Ġto Ġthe Ġlatest Ġversion Ġof ĠWh ats App .", ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĊĊĠĠĠ Ġoverride Ġfun Ġon Attached To Engine (@ NonNull Ġflutter Plugin Binding : ĠFlutter Plugin . Flutter Plugin Binding ) Ġ{ ĊĠĠĠĠĠĠĠ Ġplugin Binding Ġ= Ġflutter Plugin Binding ĊĊĠĠĠĠĠĠĠ Ġsetup Channels ( flutter Plugin Binding . binary Messenger , Ġflutter Plugin Binding . application Context ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Detached From Engine (@ NonNull Ġbinding : ĠFlutter Plugin . Flutter Plugin Binding ) Ġ{ ĊĠĠĠĠĠĠĠ Ġplugin Binding Ġ= Ġnull ĊĠĠĠĠĠ ĠtearDown () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Detached From Activity () Ġ{ ĊĠĠĠĠĠĠĠ ĠtearDown () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Re attached To Activity For Config Changes ( binding : ĠActivity Plugin Binding ) Ġ{ ĊĠĠĠĠĠĠĠ Ġon Attached To Activity ( binding ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Attached To Activity ( binding : ĠActivity Plugin Binding ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity Ġ= Ġbinding . activity ĊĠĠĠĠĠĠĠ Ġcontext Ġ= Ġbinding . activity . application Context ĊĠĠĠĠĠ Ġactivity Binding Ġ= Ġbinding ĊĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Detached From Activity For Config Changes () Ġ{ ĊĠĠĠĠĠĠĠ Ġon Detached From Activity () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠtearDown () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġactivity Binding Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġmethod Channel ?. set MethodCall Handler ( null ) ĊĠĠĠĠĠĠĠ Ġmethod Channel Ġ= Ġnull ĊĠĠĠ Ġ} Ċ Ċ } Ċ