/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 0 ĠBand yer ĠS . r . l . ĠAll ĠRights ĠReserved . Ċ Ġ* ĠSee ĠLICENSE . txt Ġfor Ġlicensing Ġinformation Ċ Ġ*/ Ċ package Ġcom . band yer . app _ configuration . external _ configuration . views Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . EditText Ċ import Ġandroid . widget . Frame Layout Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġcom . band yer . app _ configuration . R Ċ import Ġcom . band yer . app _ configuration . external _ configuration . model . Configuration Field ChangeListener Ċ import Ġcom . band yer . app _ configuration . external _ configuration . model . Editable Configuration Preference Ċ import Ġcom . band yer . app _ configuration . external _ configuration . utils . dp 2 px Ċ import Ġkotlinx . android . synt hetic . main . configuration _ edit text . view . configuration _ edit text _ subtitle Ċ import Ġkotlinx . android . synt hetic . main . configuration _ edit text . view . configuration _ edit text _ summary Ċ import Ġkotlinx . android . synt hetic . main . configuration _ edit text . view . configuration _ edit text _ summary _ card _ view Ċ import Ġkotlinx . android . synt hetic . main . configuration _ edit text . view . configuration _ edit text _ title Ċ Ċ class ĠConfiguration EditText Preference Ġ@ Jvm Over loads Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ? Ġ= Ġnull , Ġdef Style Attr : ĠInt Ġ= Ġ 0 ) ĊĠĠĠ Ġ: ĠLinearLayout ( context , Ġattrs , Ġdef Style Attr ), ĠEdit able Configuration Preference < String > Ġ{ ĊĊĠĠĠ Ġoverride Ġvar Ġtitle TextView : ĠTextView ? Ġ= Ġnull ĊĠĠĠ Ġoverride Ġvar Ġsubtitle TextView : ĠTextView ? Ġ= Ġnull ĊĠĠĠ Ġoverride Ġvar Ġsummary TextView : ĠTextView ? Ġ= Ġnull ĊĠĠĠ Ġoverride Ġvar Ġsummary TextView Holder : ĠView ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġvar Ġconfiguration Field ChangeListener : ĠConfiguration Field ChangeListener < String >? Ġ= Ġnull ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġorientation Ġ= ĠV ERT ICAL ĊĠĠĠĠĠĠĠ ĠLayoutInflater . from ( context ). inflate ( R . layout . configuration _ edit text , Ġthis ) ĊĊĠĠĠĠĠĠĠ Ġtitle TextView Ġ= Ġconfiguration _ edit text _ title ĊĠĠĠĠĠĠĠ Ġsubtitle TextView Ġ= Ġconfiguration _ edit text _ subtitle ĊĠĠĠĠĠĠĠ Ġsummary TextView Ġ= Ġconfiguration _ edit text _ summary ĊĠĠĠĠĠĠĠ Ġsummary TextView Holder Ġ= Ġconfiguration _ edit text _ summary _ card _ view ĊĊĠĠĠĠĠĠĠ Ġcontext . theme . obtain Styled Attributes ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattrs , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Configuration EditText Style able , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdef Style Attr , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 ). apply Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= ĠgetString ( R . style able . Configuration EditText Style able _ title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetTitle ( title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhint Text Ġ= ĠgetString ( R . style able . Configuration EditText Style able _ hint ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Subtitle ( getString ( R . style able . Configuration EditText Style able _ subtitle ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġhint Text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Summary ( getString ( R . style able . Configuration EditText Style able _ summary )) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsubtitle View Ġ= Ġconfiguration _ edit text _ subtitle ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġedit Text Ġ= ĠEditText ( context ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhint Ġ= Ġhint Text ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( subtitle View . text Ġ!= Ġnull ) Ġset Text ( subtitle View . text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcustom View Ġ= ĠFrame Layout ( context ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd View ( edit Text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpadding Ġ= Ġcontext . dp 2 px ( 1 6 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Padding ( padding , Ġpadding , Ġpadding , Ġpadding ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( context ). setTitle ( title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setView ( custom View ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button ( context . getString ( R . string . settings _ dialog _ positive _ button )) Ġ{ Ġdialog Interface , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetValue ( edit Text . text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration Field ChangeListener ?. on Configuration Field Changed ( edit Text . text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Interface . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Negative Button ( context . getString ( R . string . settings _ dialog _ negative _ button )) Ġ{ Ġdialog Interface , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Interface . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit Text . post Ġ{ Ġedit Text . request Focus () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cycle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠsetValue ( value : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Subtitle ( value ) ĊĠĠĠ Ġ} Ċ } Ċ