/* Ċ Ġ* ĠThis ĠSource ĠCode ĠForm Ġis Ġsubject Ġto Ġthe Ġterms Ġof Ġthe ĠMozilla ĠPublic Ċ Ġ* ĠLicense , Ġv . Ġ 2 . 0 . ĠIf Ġa Ġcopy Ġof Ġthe ĠM PL Ġwas Ġnot Ġdistributed Ġwith Ġthis Ċ Ġ* Ġfile , ĠYou Ġcan Ġobtain Ġone Ġat Ġhttps :// mozilla . org / MPL / 2 . 0 /. Ċ Ġ*/ Ċ Ċ @ file : Opt In ( K ord Preview :: class ) Ċ Ċ package Ġcom . kot l ind is cord . k ord . extensions . pagination Ċ Ċ import Ġcom . kot l ind is cord . k ord . extensions . pagination . builders . Paginator Builder Ċ import Ġcom . kot l ind is cord . k ord . extensions . pagination . pages . Pages Ċ import Ġdev . k ord . common . annotation . K ord Preview Ċ import Ġdev . k ord . core . behavior . User Behavior Ċ import Ġdev . k ord . core . behavior . interaction . Interaction Response Behavior Ċ import Ġdev . k ord . core . behavior . interaction . edit Ċ import Ġdev . k ord . core . behavior . interaction . follow Up Ċ import Ġdev . k ord . core . entity . Reaction Emoji Ċ import Ġdev . k ord . core . entity . interaction . Public Follow up Message Ċ import Ġdev . k ord . rest . builder . message . create . embed Ċ import Ġdev . k ord . rest . builder . message . modify . embed Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠClass Ġrepresenting Ġa Ġbutton - based Ġpag inator Ġthat Ġoper ates Ġby Ġcreating Ġand Ġediting Ġa Ġfollow - up Ġmessage Ġfor Ġthe Ċ Ġ* Ġgiven Ġpublic Ġinteraction Ġresponse . Ċ Ġ* Ċ Ġ* Ġ@ param Ġinteraction ĠInteraction Ġresponse Ġbehaviour Ġto Ġwork Ġwith . Ċ Ġ*/ Ċ public Ġclass ĠPublic Follow Up Paginator ( ĊĠĠĠ Ġpages : ĠPages , ĊĠĠĠ Ġowner : ĠUser Behavior ? Ġ= Ġnull , ĊĠĠĠ Ġtimeout Seconds : ĠLong ? Ġ= Ġnull , ĊĠĠĠ Ġkeep Embed : ĠBoolean Ġ= Ġtrue , ĊĠĠĠ Ġswitch Emoji : ĠRe action Emoji Ġ= Ġif Ġ( pages . groups . size Ġ== Ġ 2 ) ĠEXP AND _ E MO JI Ġelse ĠSW ITCH _ E MO JI , ĊĠĠĠ Ġbundle : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġlocale : ĠLocale ? Ġ= Ġnull , ĊĊĠĠĠ Ġpublic Ġval Ġinteraction : ĠInteraction Response Behavior , Ċ ) Ġ: ĠBase Button Paginator ( pages , Ġowner , Ġtimeout Seconds , Ġkeep Embed , Ġswitch Emoji , Ġbundle , Ġlocale ) Ġ{ ĊĠĠĠ Ġ/** ĠFollow - up Ġinteraction Ġto Ġuse Ġfor Ġthis Ġpag inator 's Ġembed s . ĠWill Ġbe Ġcreated Ġby Ġ[ send ]. Ġ**/ ĊĠĠĠ Ġpublic Ġvar Ġembed Interaction : ĠPublic Follow up Message ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġsend () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( embed Interaction Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsetup () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġembed Interaction Ġ= Ġinteraction . follow Up Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġembed Ġ{ Ġapply Page () Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( this @ Public Follow Up Paginator . components ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ follow Up . apply To Message () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Buttons () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġembed Interaction !!. edit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġembed Ġ{ Ġapply Page () Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( this @ Public Follow Up Paginator . components ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ edit . apply To Message () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġdestroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! active ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġactive Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! keep Embed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġembed Interaction ?. delete () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġembed Interaction ?. edit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġembed Ġ{ Ġapply Page () Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . components Ġ= Ġmutable ListOf () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsuper . destroy () ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** ĠConvenience Ġfunction Ġfor Ġcreating Ġan Ġinteraction Ġbutton Ġpag inator Ġfrom Ġa Ġpag inator Ġbuilder . Ġ**/ Ċ @ Suppress (" Function Naming ") Ġ Ġ// ĠFactory Ġfunction Ċ public Ġfun ĠPublic Follow Up Paginator ( ĊĠĠĠ Ġbuilder : ĠPag inator Builder , ĊĠĠĠ Ġinteraction : ĠInteraction Response Behavior Ċ ): ĠPublic Follow Up Paginator Ġ= ĠPublic Follow Up Paginator ( ĊĠĠĠ Ġpages Ġ= Ġbuilder . pages , ĊĠĠĠ Ġowner Ġ= Ġbuilder . owner , ĊĠĠĠ Ġtimeout Seconds Ġ= Ġbuilder . timeout Seconds , ĊĠĠĠ Ġkeep Embed Ġ= Ġbuilder . keep Embed , ĊĠĠĠ Ġbundle Ġ= Ġbuilder . bundle , ĊĠĠĠ Ġlocale Ġ= Ġbuilder . locale , ĊĠĠĠ Ġinteraction Ġ= Ġinteraction , ĊĊĠĠĠ Ġswitch Emoji Ġ= Ġbuilder . switch Emoji Ġ?: Ġif Ġ( builder . pages . groups . size Ġ== Ġ 2 ) ĠEXP AND _ E MO JI Ġelse ĠSW ITCH _ E MO JI , Ċ ) Ċ