package Ġcom . stream _ suite . link . view Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . res . Color State List Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . EditText Ċ import Ġandroid . widget . Frame Layout Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . google . android . material . floating action button . Floating ActionButton Ċ import Ġcom . stream _ suite . link . R Ċ import Ġcom . stream _ suite . link . adapter . Template Adapter Ċ import Ġcom . stream _ suite . link . shared . data . DataSource Ċ import Ġcom . stream _ suite . link . shared . data . model . Template Ċ import Ġcom . stream _ suite . link . shared . util . listener . Template ClickListener Ċ import Ġcom . stream _ suite . link . shared . util . listener . Text Selected Listener Ċ Ċ @ Suppress Lint (" View Constructor ") Ċ class ĠTemplate Manager View ( context : ĠContext , Ġcolor Accent : ĠInt , Ġprivate Ġval Ġlistener : ĠText Selected Listener ) ĊĠĠĠ Ġ: ĠFrame Layout ( context ), ĠTemplate ClickListener Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinflater Ġ= ĠLayoutInflater . from ( context ) ĊĠĠĠĠĠĠĠ Ġinflater . inflate ( R . layout . view _ template _ manager , Ġthis , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġval Ġcreate Template Ġ= ĠfindViewById < Floating ActionButton >( R . id . create _ template ) ĊĊĠĠĠĠĠĠĠ Ġcreate Template . background Tint List Ġ= ĠColor State List . valueOf ( color Accent ) ĊĠĠĠĠĠĠĠ Ġcreate Template . setOnClickListener Ġ{ Ġcreate Template () Ġ} ĊĊĠĠĠĠĠĠĠ Ġload Templates () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Template () Ġ{ ĊĠĠĠĠĠĠĠ Ġshow Template Dialog Ġ{ Ġtext Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtemplate Ġ= ĠTemplate () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemplate . text Ġ= Ġtext ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDataSource . insert Template ( context , Ġtemplate ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Templates () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Template Dialog ( current Text : ĠString Ġ= Ġ"", Ġcallback : Ġ( value : ĠString ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlayout Ġ= ĠLayoutInflater . from ( context ). inflate ( R . layout . dialog _ edit _ text , Ġnull , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġval Ġedit Text Ġ= Ġlayout . findViewById < EditText >( R . id . edit _ text ) ĊĊĠĠĠĠĠĠĠ Ġedit Text . set Hint ( R . string . type _ template _ text ) ĊĠĠĠĠĠĠĠ Ġedit Text . setText ( current Text ) ĊĊĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setView ( layout ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Negative Button ( android . R . string . cancel ) Ġ{ Ġ_, Ġ_ Ġ-> Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button ( android . R . string . ok ) Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtext Ġ= Ġedit Text . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ( text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Templates () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtemplate List Ġ= ĠfindViewById < RecyclerView >( R . id . recycler _ view ) ĊĠĠĠĠĠĠĠ Ġval Ġplaceholder Ġ= ĠfindViewById < View >( R . id . placeholder ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtemplates Ġ= ĠDataSource . get Templates As List ( context ) ĊĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĠTemplate Adapter ( templates , Ġthis ) ĊĊĠĠĠĠĠĠĠ Ġtemplate List . layout Manager Ġ= ĠLinearLayoutManager ( context ) ĊĠĠĠĠĠĠĠ Ġtemplate List . adapter Ġ= Ġadapter ĊĊĠĠĠĠĠĠĠ Ġif Ġ( templates . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemplate List . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplaceholder . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemplate List . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplaceholder . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( template : ĠTemplate ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlistener . on Text Selected ( template . text !! ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Long Click ( template : ĠTemplate ) Ġ{ ĊĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMessage ( R . string . delete _ template ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Negative Button ( R . string . delete ) Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDataSource . delete Template ( context , Ġtemplate . id , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Templates () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. set Positive Button ( R . string . edit ) Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Template Dialog ( template . text !! ) Ġ{ Ġtext Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemplate . text Ġ= Ġtext ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDataSource . update Template ( context , Ġtemplate ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Templates () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. show () ĊĠĠĠ Ġ} Ċ } Ċ