package Ġio . z la . reactions . sample Ċ Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . drawable . Color Drawable Ċ import Ġandroid . util . Typed Value Ċ import Ġandroid . view . Gravity Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . Toast Ċ import Ġio . z la . reactions . Reaction Popup Ċ import Ġio . z la . reactions . dsl . reaction Config Ċ import Ġio . z la . reactions . dsl . reaction Popup Ċ import Ġio . z la . reactions . dsl . reactions Ċ Ċ fun ĠMainActivity . setup () Ġ{ ĊĠĠĠ Ġval Ġsize Ġ= Ġresources . get Dimension Pixel Size ( R . dim en . crypto _ item _ size ) ĊĠĠĠ Ġval Ġmargin Ġ= Ġresources . get Dimension Pixel Size ( R . dim en . crypto _ item _ margin ) ĊĊĠĠĠ Ġ// ĠPopup ĠDSL Ġ+ Ġlistener Ġvia Ġfunction ĊĠĠĠ Ġval Ġpopup 1 Ġ= Ġreaction Popup ( this , Ġ:: on Reaction Selected ) Ġ{ ĊĠĠĠĠĠĠĠ Ġre actions Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġres Id ĠĠĠ Ġ{ ĠR . drawable . ic _ crypto _ btc Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġres Id ĠĠĠ Ġ{ ĠR . drawable . ic _ crypto _ eth Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġres Id ĠĠĠ Ġ{ ĠR . drawable . ic _ crypto _ lt c Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreaction Ġ{ ĠR . drawable . ic _ crypto _ dash Ġscale ĠImageView . Scale Type . FIT _ CENTER Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreaction Ġ{ ĠR . drawable . ic _ crypto _ x rp Ġscale ĠImageView . Scale Type . FIT _ CENTER Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdrawable Ġ{ Ġget Drawable ( R . drawable . ic _ crypto _ x mr ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdrawable Ġ{ Ġget Drawable ( R . drawable . ic _ crypto _ do ge ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreaction Ġ{ Ġget Drawable ( R . drawable . ic _ crypto _ ste em ) Ġscale ĠImageView . Scale Type . FIT _ CENTER Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreaction Ġ{ Ġget Drawable ( R . drawable . ic _ crypto _ k md ) Ġscale ĠImageView . Scale Type . FIT _ CENTER Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdrawable Ġ{ Ġget Drawable ( R . drawable . ic _ crypto _ z ec ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreaction Texts Ġ= ĠR . array . crypto _ symbols ĊĠĠĠĠĠĠĠ Ġpopup Color Ġ= ĠColor . LT GRAY ĊĠĠĠĠĠĠĠ Ġreaction Size Ġ= Ġsize ĊĠĠĠĠĠĠĠ Ġhorizontal Margin Ġ= Ġmargin ĊĠĠĠĠĠĠĠ Ġvertical Margin Ġ= Ġhorizontal Margin Ġ/ Ġ 2 ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// ĠSetter Ġalso Ġavailable ĊĠĠĠ Ġpopup 1 . reaction Selected Listener Ġ= Ġ{ Ġposition Ġ-> ĊĠĠĠĠĠĠĠ Ġtoast ("$ position Ġselected ") ĊĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠ Ġ} ĊĠĠĠ ĠfindViewById < View >( R . id . top _ right _ btn ). setOn Touch Listener ( popup 1 ) ĊĊĠĠĠ Ġ// ĠConfig ĠDSL Ġ+ Ġlistener Ġin Ġpopup Ġconstructor ĊĠĠĠ Ġval Ġconfig Ġ= Ġreaction Config ( this ) Ġ{ ĊĠĠĠĠĠĠĠ Ġre actions Ids Ġ= Ġint ArrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . ic _ crypto _ btc , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . ic _ crypto _ eth , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . ic _ crypto _ lt c , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . ic _ crypto _ dash , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . ic _ crypto _ x rp , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . ic _ crypto _ x mr , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . ic _ crypto _ do ge , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . ic _ crypto _ ste em , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . ic _ crypto _ k md , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . ic _ crypto _ z ec ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreaction Text Provider Ġ= Ġ{ Ġposition Ġ-> Ġ" Item Ġ$ position " Ġ} ĊĠĠĠĠĠĠĠ Ġtext Background Ġ= ĠColor Drawable ( Color . TRANSP ARENT ) ĊĠĠĠĠĠĠĠ ĠtextColor Ġ= ĠColor . BLACK ĊĠĠĠĠĠĠĠ Ġtext Horizontal Padding Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġtext Vertical Padding Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġtext Size Ġ= ĠTyped Value . apply Dimension ( Typed Value . COMPLEX _ UNIT _ SP , Ġ 1 4 f , Ġresources . display Metrics ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġpopup 2 Ġ= ĠRe action Popup ( this , Ġconfig ) Ġ{ Ġposition Ġ-> Ġtrue . also Ġ{ ĊĠĠĠĠĠĠĠ Ġtoast ("$ position Ġselected ") ĊĠĠĠ Ġ} Ġ} ĊĠĠĠ ĠfindViewById < View >( R . id . right _ btn ). setOn Touch Listener ( popup 2 ) Ċ } Ċ Ċ fun ĠMainActivity . on Reaction Selected ( position : ĠInt ) Ġ= Ġtrue . also Ġ{ ĊĠĠĠ Ġtoast ("$ position Ġselected ") Ċ } Ċ Ċ fun ĠMainActivity . toast ( text : ĠString ) Ġ{ ĊĠĠĠ ĠToast . makeText ( this , Ġtext , ĠToast . LENGTH _ SHORT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ Ġset Gravity ( Gravity . CENTER , Ġ 0 , Ġ 3 0 0 ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () Ċ } Ċ