package Ġinfo . dv kr . screen stream . ui Ċ Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . Point Ċ import Ġandroid . graphics . drawable . Color Drawable Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . annotation . Drawable Res Ċ import Ġandroid . support . annotation . String Res Ċ import Ġandroid . support . v 7 . app . AlertDialog Ċ import Ġandroid . text . Editable Ċ import Ġandroid . text . Input Filter Ċ import Ġandroid . text . Text Watcher Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . WindowManager Ċ import Ġandroid . widget . EditText Ċ import Ġandroid . widget . TextView Ċ import Ġcom . jr ummy apps . android . color picker . Color Picker Dialog Ċ import Ġcom . jr ummy apps . android . color picker . Color Picker Dialog Listener Ċ import Ġcom . tap ad oo . aler ter . A ler ter Ċ import Ġinfo . dv kr . screen stream . R Ċ import Ġinfo . dv kr . screen stream . data . presenter . Base View Ċ import Ġinfo . dv kr . screen stream . data . presenter . settings . Settings Presenter Ċ import Ġinfo . dv kr . screen stream . data . presenter . settings . Settings View Ċ import Ġinfo . dv kr . screen stream . domain . utils . Utils Ċ import Ġkotlinx . android . synt hetic . main . activity _ settings .* Ċ import Ġkotlinx . android . synt hetic . main . settings _ edit text _ dialog . view .* Ċ import Ġorg . k oin . android . architecture . ext . get ViewModel Ċ import Ġtim ber . log . Tim ber ĊĊ Ċ class ĠSettings Activity Ġ: ĠBase Activity (), ĊĠĠĠĠĠĠĠ ĠSettings View , ĊĠĠĠĠĠĠĠ ĠColor Picker Dialog Listener , ĊĠĠĠĠĠĠĠ ĠBase Dialog . Dialog Callback Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDIALOG _ RE SIZE _ FACTOR _ TAG Ġ= Ġ" DIALOG _ RE SIZE _ FACTOR _ TAG " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDIALOG _ JPEG _ QUAL ITY _ TAG Ġ= Ġ" DIALOG _ JPEG _ QUAL ITY _ TAG " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDIALOG _ SET _ PIN _ TAG Ġ= Ġ" DIALOG _ SET _ PIN _ TAG " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDIALOG _ SERVER _ PORT _ TAG Ġ= Ġ" DIALOG _ SERVER _ PORT _ TAG " ĊĊĊĠĠĠĠĠĠĠ Ġfun Ġget Start Intent ( context : ĠContext ): ĠIntent Ġ= ĠIntent ( context , ĠSettings Activity :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġpresenter : ĠSettings Presenter Ġby Ġlazy Ġ{ Ġget ViewModel < Settings Presenter >() Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġhtml BackColor : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġresize Factor : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġoverride Ġfun Ġto Event ( to Event : ĠBase View . Base To Event ) Ġ= Ġrun On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠ ĠTim ber . d ("[ ${ Utils . getLog Prefix ( this )} ] Ġto Event : Ġ${ to Event . java Class . simple Name }") ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( to Event ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSettings View . To Event . Min imize On Stream Ġ-> ĠcheckBox Min imize On Stream . isChecked Ġ= Ġto Event . value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSettings View . To Event . Stop On Sleep Ġ-> ĠcheckBox Stop On Sleep . isChecked Ġ= Ġto Event . value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSettings View . To Event . Start On Boot Ġ-> ĠcheckBox Start On Boot . isChecked Ġ= Ġto Event . value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSettings View . To Event . Disable M jpeg Check Ġ-> ĠcheckBox M jpeg Check . isChecked Ġ= Ġto Event . value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSettings View . To Event . Html BackColor Ġ-> Ġview Html BackColor . set BackgroundColor ( to Event . value ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSettings View . To Event . Resize Factor Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresize Factor Ġ= Ġto Event . value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView Resize Image Value . text Ġ= Ġ"$ resize Factor %" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSettings View . To Event . J peg Quality Ġ-> ĠtextView J peg Quality Value . text Ġ= ĠInteger . toString ( to Event . value ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSettings View . To Event . Enable Pin Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠcheckBox Enable Pin . isChecked Ġ= Ġto Event . value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenable Disable View ( cl Hide Pin On Start , Ġto Event . value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenable Disable View ( cl New Pin On App Start , Ġto Event . value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenable Disable View ( cl Auto Change Pin , Ġto Event . value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenable Disable View ( cl Set Pin , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠcheckBox Enable Pin . isChecked Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! checkBox New Pin On App Start . isChecked Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! checkBox Auto Change Pin . isChecked ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSettings View . To Event . Hide Pin On Start Ġ-> ĠcheckBox Hide Pin On Start . isChecked Ġ= Ġto Event . value ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSettings View . To Event . New Pin On App Start Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠcheckBox New Pin On App Start . isChecked Ġ= Ġto Event . value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenable Disable View ( cl Set Pin , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠcheckBox Enable Pin . isChecked Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! checkBox New Pin On App Start . isChecked Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! checkBox Auto Change Pin . isChecked ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSettings View . To Event . Auto Change Pin Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠcheckBox Auto Change Pin . isChecked Ġ= Ġto Event . value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenable Disable View ( cl Set Pin , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠcheckBox Enable Pin . isChecked Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! checkBox New Pin On App Start . isChecked Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! checkBox Auto Change Pin . isChecked ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSettings View . To Event . Set Pin Ġ-> ĠtextView Set Pin Value . text Ġ= Ġto Event . value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSettings View . To Event . Use WiFi Only Ġ-> ĠcheckBox Use Wifi Only . isChecked Ġ= Ġto Event . value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSettings View . To Event . Server Port Ġ-> ĠtextView Server Port Value . text Ġ= ĠInteger . toString ( to Event . value ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠSettings View . To Event . Error Server Port Busy Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA ler ter . create ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle ( R . string . pref _ alert _ error _ title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setText ( R . string . pref _ alert _ error _ message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set BackgroundColor Res ( R . color . color Accent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Duration ( 5 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. enable Progress ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. enable Swipe To Dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ settings ) ĊĊĠĠĠĠĠĠĠ Ġpresenter . attach ( this ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠInterface Ġ- ĠMin imize Ġon Ġstream ĊĠĠĠĠĠĠĠ Ġcl Min imize On Stream . setOnClickListener Ġ{ Ġ_ Ġ-> ĠcheckBox Min imize On Stream . perform Click () Ġ} ĊĠĠĠĠĠĠĠ ĠcheckBox Min imize On Stream . setOnClickListener Ġ{ Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . offer ( Settings View . From Event . Min imize On Stream ( checkBox Min imize On Stream . isChecked )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠInterface Ġ- ĠStop Ġon Ġsleep ĊĠĠĠĠĠĠĠ Ġcl Stop On Sleep . setOnClickListener Ġ{ Ġ_ Ġ-> ĠcheckBox Stop On Sleep . perform Click () Ġ} ĊĠĠĠĠĠĠĠ ĠcheckBox Stop On Sleep . setOnClickListener Ġ{ Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . offer ( Settings View . From Event . Stop On Sleep ( checkBox Stop On Sleep . isChecked )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠInterface Ġ- ĠStart Service Ġon Ġboot ĊĠĠĠĠĠĠĠ Ġcl Start On Boot . setOnClickListener Ġ{ Ġ_ Ġ-> ĠcheckBox Start On Boot . perform Click () Ġ} ĊĠĠĠĠĠĠĠ ĠcheckBox Start On Boot . setOnClickListener Ġ{ Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . offer ( Settings View . From Event . Start On Boot ( checkBox Start On Boot . isChecked )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠInterface Ġ- ĠHTML ĠM JPEG Ġcheck ĊĠĠĠĠĠĠĠ Ġcl M jpeg Check . setOnClickListener Ġ{ Ġ_ Ġ-> ĠcheckBox M jpeg Check . perform Click () Ġ} ĊĠĠĠĠĠĠĠ ĠcheckBox M jpeg Check . setOnClickListener Ġ{ Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . offer ( Settings View . From Event . Disable M jpeg Check ( checkBox M jpeg Check . isChecked )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠInterface Ġ- ĠHTML ĠBack Ġcolor ĊĠĠĠĠĠĠĠ Ġcl Html BackColor . setOnClickListener Ġ{ Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhtml BackColor Ġ= Ġ( view Html BackColor . background Ġas ĠColor Drawable ). color ĊĠĠĠĠĠĠĠĠĠĠĠ ĠColor Picker Dialog . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setColor ( html BackColor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Dialog Title ( R . string . pref _ html _ back _ color _ title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Show Alpha Slider ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show ( this @ Settings Activity ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠImage Ġ- ĠResize Ġfactor ĊĠĠĠĠĠĠĠ Ġcl Resize Image . setOnClickListener Ġ{ Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEditText Dialog . newInstance ( this @ Settings Activity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDIALOG _ RE SIZE _ FACTOR _ TAG , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . pref _ resize , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . ic _ pref _ resize _ black _ 2 4 dp , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . pref _ resize _ dialog _ text , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 , Ġ 3 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 0 , Ġ 1 5 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInteger . toString ( resize Factor ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . pref _ resize _ dialog _ result ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). show ( fragment Manager , ĠDIALOG _ RE SIZE _ FACTOR _ TAG ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠImage Ġ- ĠJ peg ĠQuality ĊĠĠĠĠĠĠĠ Ġcl J peg Quality . setOnClickListener Ġ{ Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEditText Dialog . newInstance ( this @ Settings Activity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDIALOG _ JPEG _ QUAL ITY _ TAG , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . pref _ jpeg _ quality , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . ic _ pref _ high _ quality _ black _ 2 4 dp , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . pref _ jpeg _ quality _ dialog , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 , Ġ 3 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 0 , Ġ 1 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView J peg Quality Value . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). show ( fragment Manager , ĠDIALOG _ JPEG _ QUAL ITY _ TAG ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠSecurity Ġ- ĠEnable Ġpin ĊĠĠĠĠĠĠĠ Ġcl Enable Pin . setOnClickListener Ġ{ Ġ_ Ġ-> ĠcheckBox Enable Pin . perform Click () Ġ} ĊĠĠĠĠĠĠĠ ĠcheckBox Enable Pin . setOnClickListener Ġ{ Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchecked Ġ= ĠcheckBox Enable Pin . isChecked ĊĠĠĠĠĠĠĠĠĠĠĠ Ġenable Disable View ( cl Hide Pin On Start , Ġchecked ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġenable Disable View ( cl New Pin On App Start , Ġchecked ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġenable Disable View ( cl Auto Change Pin , Ġchecked ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġenable Disable View ( cl Set Pin , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠcheckBox Enable Pin . isChecked Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! checkBox New Pin On App Start . isChecked Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! checkBox Auto Change Pin . isChecked ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . offer ( Settings View . From Event . Enable Pin ( checked )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠSecurity Ġ- ĠHide Ġpin Ġon Ġstart ĊĠĠĠĠĠĠĠ Ġcl Hide Pin On Start . setOnClickListener Ġ{ Ġ_ Ġ-> ĠcheckBox Hide Pin On Start . perform Click () Ġ} ĊĠĠĠĠĠĠĠ ĠcheckBox Hide Pin On Start . setOnClickListener Ġ{ Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . offer ( Settings View . From Event . Hide Pin On Start ( checkBox Hide Pin On Start . isChecked )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠSecurity Ġ- ĠNew Ġpin Ġon Ġapp Ġstart ĊĠĠĠĠĠĠĠ Ġcl New Pin On App Start . setOnClickListener Ġ{ Ġ_ Ġ-> ĠcheckBox New Pin On App Start . perform Click () Ġ} ĊĠĠĠĠĠĠĠ ĠcheckBox New Pin On App Start . setOnClickListener Ġ{ Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġenable Disable View ( cl Set Pin , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠcheckBox Enable Pin . isChecked Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! checkBox New Pin On App Start . isChecked Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! checkBox Auto Change Pin . isChecked ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . offer ( Settings View . From Event . New Pin On App Start ( checkBox New Pin On App Start . isChecked )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠSecurity Ġ- ĠAuto Ġchange Ġpin ĊĠĠĠĠĠĠĠ Ġcl Auto Change Pin . setOnClickListener Ġ{ Ġ_ Ġ-> ĠcheckBox Auto Change Pin . perform Click () Ġ} ĊĠĠĠĠĠĠĠ ĠcheckBox Auto Change Pin . setOnClickListener Ġ{ Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġenable Disable View ( cl Set Pin , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠcheckBox Enable Pin . isChecked Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! checkBox New Pin On App Start . isChecked Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! checkBox Auto Change Pin . isChecked ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . offer ( Settings View . From Event . Auto Change Pin ( checkBox Auto Change Pin . isChecked )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠSecurity Ġ- ĠSet Ġpin ĊĠĠĠĠĠĠĠ ĠclSet Pin . setOnClickListener Ġ{ Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEditText Dialog . newInstance ( this @ Settings Activity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDIALOG _ SET _ PIN _ TAG , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . pref _ set _ pin , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . ic _ pref _ key _ black _ 2 4 dp , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . pref _ set _ pin _ dialog , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 4 , Ġ 4 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 , Ġ 9 9 9 9 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView Set Pin Value . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). show ( fragment Manager , ĠDIALOG _ SET _ PIN _ TAG ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠAdvanced Ġ- ĠUse ĠWiFi ĠOnly ĊĠĠĠĠĠĠĠ Ġcl Use Wifi Only . setOnClickListener Ġ{ Ġ_ Ġ-> ĠcheckBox Use Wifi Only . perform Click () Ġ} ĊĠĠĠĠĠĠĠ ĠcheckBox Use Wifi Only . setOnClickListener Ġ{ Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . offer ( Settings View . From Event . Use WiFi Only ( checkBox Use Wifi Only . isChecked )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠAdvanced Ġ- ĠServer Ġport ĊĠĠĠĠĠĠĠ Ġcl Server Port . setOnClickListener Ġ{ Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEditText Dialog . newInstance ( this @ Settings Activity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDIALOG _ SERVER _ PORT _ TAG , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . pref _ server _ port , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . ic _ pref _ http _ black _ 2 4 dp , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . pref _ server _ port _ dialog , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 4 , Ġ 6 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 0 2 5 , Ġ 6 5 5 3 5 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView Server Port Value . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). show ( fragment Manager , ĠDIALOG _ SERVER _ PORT _ TAG ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Dialog Result ( result : ĠBase Dialog . Dialog Callback . Result ) Ġ{ ĊĠĠĠĠĠĠĠ Ġresult Ġas ĠBase Dialog . Dialog Callback . Result . Positive ĊĠĠĠĠĠĠĠ Ġwhen Ġ( result . dialog Tag ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDIALOG _ RE SIZE _ FACTOR _ TAG Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . offer ( Settings View . From Event . Resize Factor ( Integer . parseInt ( result . data ))) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠDIALOG _ JPEG _ QUAL ITY _ TAG Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . offer ( Settings View . From Event . J peg Quality ( Integer . parseInt ( result . data ))) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠDIALOG _ SET _ PIN _ TAG Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . offer ( Settings View . From Event . Set Pin ( result . data )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠDIALOG _ SERVER _ PORT _ TAG Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . offer ( Settings View . From Event . Server Port ( Integer . parseInt ( result . data ))) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠUnit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġpresenter . detach () ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Color Selected ( dialog Id : ĠInt , Ġcolor : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( html BackColor Ġ== Ġcolor ) Ġreturn ĊĠĠĠĠĠĠĠ Ġview Html BackColor . set BackgroundColor ( color ) ĊĠĠĠĠĠĠĠ Ġpresenter . offer ( Settings View . From Event . Html BackColor ( color )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Dialog Dis missed ( dialog Id : ĠInt ) Ġ{} ĊĊĠĠĠ Ġprivate Ġfun Ġenable Disable View ( view : ĠView , Ġenabled : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview . isEnabled Ġ= Ġenabled ĊĠĠĠĠĠĠĠ Ġview . alpha Ġ= Ġif Ġ( enabled ) Ġ 1 f Ġelse Ġ. 5 f ĊĠĠĠĠĠĠĠ Ġif Ġ( view Ġis ĠViewGroup ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( idx Ġin Ġ 0 Ġuntil Ġview . child Count ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenable Disable View ( view . getChild At ( idx ), Ġenabled ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠEditText Dialog Ġ: ĠBase Dialog () Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġinternal Ġconst Ġval ĠTITLE _ ICON Ġ= Ġ" TITLE _ ICON " ĊĠĠĠĠĠĠĠ Ġinternal Ġconst Ġval ĠMIN _ LENGTH Ġ= Ġ" MIN _ LENGTH " ĊĠĠĠĠĠĠĠ Ġinternal Ġconst Ġval ĠMAX _ LENGTH Ġ= Ġ" MAX _ LENGTH " ĊĠĠĠĠĠĠĠ Ġinternal Ġconst Ġval ĠMIN _ VALUE Ġ= Ġ" MIN _ VALUE " ĊĠĠĠĠĠĠĠ Ġinternal Ġconst Ġval ĠMAX _ VALUE Ġ= Ġ" MAX _ VALUE " ĊĠĠĠĠĠĠĠ Ġinternal Ġconst Ġval ĠCURRENT _ VALUE Ġ= Ġ" CURRENT _ VALUE " ĊĠĠĠĠĠĠĠ Ġinternal Ġconst Ġval ĠRES IZE _ IMAGE _ DIALOG Ġ= Ġ" RE SIZE _ IMAGE _ DIALOG " ĊĠĠĠĠĠĠĠ Ġinternal Ġconst Ġval ĠRES IZE _ IMAGE _ TEXT Ġ= Ġ" RE SIZE _ IMAGE _ TEXT " ĊĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( context : ĠContext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Tag : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ String Res Ġtitle Res Id : ĠInt Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Drawable Res Ġtitle Icon Res Id : ĠInt Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ String Res Ġmessage Res Id : ĠInt Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmin Length : ĠInt , ĠmaxLength : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmin Value : ĠInt , ĠmaxValue : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Value : ĠString Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresize Image Dialog : ĠBoolean Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ String Res Ġresize Image Result Text Res Id : ĠInt Ġ= Ġ 0 ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Instance ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Tag Ġ= Ġdialog Tag , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Text Ġ= Ġif Ġ( title Res Id Ġ> Ġ 0 ) Ġcontext . getString ( title Res Id ) Ġelse Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Icon Res Id Ġ= Ġif Ġ( title Icon Res Id Ġ> Ġ 0 ) Ġtitle Icon Res Id Ġelse Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Text Ġ= Ġif Ġ( message Res Id Ġ> Ġ 0 ) Ġcontext . getString ( message Res Id ) Ġelse Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmin Length Ġ= Ġif Ġ( min Length Ġ> Ġ 0 ) Ġmin Length Ġelse Ġ- 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠmaxLength Ġ= Ġif Ġ( maxLength Ġ> Ġ 0 ) ĠmaxLength Ġelse Ġ- 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmin Value Ġ= Ġif Ġ( min Value Ġ>= Ġ 0 ) Ġmin Value Ġelse Ġ- 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠmaxValue Ġ= Ġif Ġ( max Value Ġ> Ġ 0 ) ĠmaxValue Ġelse Ġ- 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Value Ġ= Ġif Ġ( current Value . isNotBlank ()) Ġcurrent Value Ġelse Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresize Image Dialog Ġ= Ġresize Image Dialog , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresize Image Result Text Ġ= Ġif Ġ( resize Image Result Text Res Id Ġ> Ġ 0 ) Ġcontext . getString ( resize Image Result Text Res Id ) Ġelse Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġnew Instance ( dialog Tag : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Text : ĠString Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Icon Res Id : ĠInt Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Text : ĠString Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmin Length : ĠInt , ĠmaxLength : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmin Value : ĠInt , ĠmaxValue : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Value : ĠString Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresize Image Dialog : ĠBoolean Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresize Image Result Text : ĠString Ġ= Ġ"") Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEditText Dialog (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ= ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( DIALOG _ TAG , Ġdialog Tag ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( TITLE _ TEXT , Ġtitle Text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Int ( TITLE _ ICON , Ġtitle Icon Res Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( MESSAGE _ TEXT , Ġmessage Text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Int ( MIN _ LENGTH , Ġmin Length ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Int ( MAX _ LENGTH , ĠmaxLength ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Int ( MIN _ VALUE , Ġmin Value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Int ( MAX _ VALUE , ĠmaxValue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( CURRENT _ VALUE , Ġcurrent Value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Boolean ( RE SIZE _ IMAGE _ DIALOG , Ġresize Image Dialog ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( RE SIZE _ IMAGE _ TEXT , Ġresize Image Result Text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġval Ġscreen Size : ĠPoint Ġ Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscreen Size Ġ= ĠPoint () ĊĠĠĠĠĠĠĠ Ġval Ġwindow Manager Ġ= Ġactivity ?. getSystem Service ( Context . WINDOW _ SERVICE ) Ġas ĠWindow Manager ĊĠĠĠĠĠĠĠ Ġwindow Manager . default Display . apply Ġ{ Ġget Real Size ( screen Size ) Ġ} ĊĠĠĠĠĠĠĠ Ġscreen Size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĠĠĠĠĠĠĠ Ġval Ġpositive Button Ġ= Ġ( dialog Ġas ĠAlertDialog ). get Button ( Dialog . BUTTON _ POSITIVE ) ĊĠĠĠĠĠĠĠ Ġval Ġedit Text Value Ġ= Ġdialog . findViewById < EditText >( R . id . edit Text Settings EditText Value ) ĊĠĠĠĠĠĠĠ Ġval ĠtextView Result Ġ= Ġdialog . findViewById < TextView >( R . id . textView Settings EditText Result ) ĊĊĠĠĠĠĠĠĠ Ġarguments ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpositive Button . isEnabled Ġ= Ġedit Text Value . text . length Ġin Ġget Int ( MIN _ LENGTH ) .. getInt ( MAX _ LENGTH ) Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInteger . parseInt ( edit Text Value . text . toString ()) Ġin Ġget Int ( MIN _ VALUE ) .. getInt ( MAX _ VALUE ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( getBoolean ( RE SIZE _ IMAGE _ DIALOG )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Resize Factor Ġ= Ġif Ġ( positive Button . isEnabled ) ĠInteger . parseInt ( edit Text Value . text . toString ()) Ġ/ Ġ 1 0 0 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĠInteger . parseInt ( getString ( CURRENT _ VALUE )) Ġ/ Ġ 1 0 0 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( RE SIZE _ IMAGE _ TEXT )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView Result . text Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. format (( screen Size . x Ġ* Ġnew Resize Factor ). toInt (), Ġ( screen Size . y Ġ* Ġnew Resize Factor ). toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit Text Value ?. add TextChanged Listener ( Simple Text Watcher Ġ{ Ġs Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpositive Button . isEnabled Ġ= Ġs . length Ġin Ġget Int ( MIN _ LENGTH ) .. getInt ( MAX _ LENGTH ) Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInteger . parseInt ( s . toString ()) Ġin Ġget Int ( MIN _ VALUE ) .. getInt ( MAX _ VALUE ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( getBoolean ( RE SIZE _ IMAGE _ DIALOG )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Resize Factor Ġ= Ġif Ġ( positive Button . isEnabled ) ĠInteger . parseInt ( s . toString ()) Ġ/ Ġ 1 0 0 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĠInteger . parseInt ( getString ( CURRENT _ VALUE )) Ġ/ Ġ 1 0 0 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( RE SIZE _ IMAGE _ TEXT )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView Result . text Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. format (( screen Size . x Ġ* Ġnew Resize Factor ). toInt (), Ġ( screen Size . y Ġ* Ġnew Resize Factor ). toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Dialog ( savedInstanceState : ĠBundle ?): ĠDialog Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠAlertDialog . Builder ( activity Ġ?: Ġthrow ĠIllegalStateException (" Activity Ġis Ġnull ")). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġarguments ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Cancel able Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog Tag Ġ= ĠgetString ( DIALOG _ TAG ) Ġ?: Ġthrow ĠIllegalStateException (" Tag Ġnot Ġset ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmin Length Ġ= Ġget Int ( MIN _ LENGTH ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( min Length Ġ<= Ġ 0 ) Ġthrow ĠIllegalStateException (" min Length Ġ<= Ġ 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠmaxLength Ġ= Ġget Int ( MAX _ LENGTH ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ("> >>>> ", ĠmaxLength . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( maxLength Ġ<= Ġ 0 ) Ġthrow ĠIllegalStateException (" maxLength Ġ<= Ġ 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmin Value Ġ= Ġget Int ( MIN _ VALUE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( min Value Ġ< Ġ 0 ) Ġthrow ĠIllegalStateException (" min Value Ġ< Ġ 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠmaxValue Ġ= Ġget Int ( MAX _ VALUE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( max Value Ġ<= Ġ 0 ) Ġthrow ĠIllegalStateException (" max Value Ġ<= Ġ 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent Value Ġ= ĠgetString ( CURRENT _ VALUE ) Ġ?: Ġ"" ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( TITLE _ TEXT )?. let Ġ{ ĠsetTitle ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Int ( TITLE _ ICON ). let Ġ{ Ġif Ġ( it Ġ> Ġ 0 ) Ġset Icon ( it ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog View Ġ= ĠLayoutInflater . from ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . settings _ edit text _ dialog , Ġnull , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( dialog View ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( getBoolean ( RE SIZE _ IMAGE _ DIALOG )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( MESSAGE _ TEXT )?. let Ġ{ ĠtextView Settings EditText Content . text Ġ= Ġit . format ( screen Size . x , Ġscreen Size . y ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( MESSAGE _ TEXT )?. let Ġ{ ĠtextView Settings EditText Content . text Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView Settings EditText Result . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit Text Settings EditText Value . setText ( current Value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit Text Settings EditText Value . setSelection ( current Value . length ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit Text Settings EditText Value . filters Ġ= ĠarrayOf < Input Filter >( Input Filter . Length Filter ( maxLength )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset View ( dialog View ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Positive Button ( android . R . string . ok , Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew StringValue Ġ= Ġdialog View . edit Text Settings EditText Value . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new StringValue . length Ġin Ġmin Length .. maxLength Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Value Ġ!= Ġnew StringValue Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInteger . parseInt ( new StringValue ) Ġin Ġmin Value .. max Value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsend Dialog Result ( Dialog Callback . Result . Positive ( dialog Tag , Ġnew StringValue )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Negative Button ( android . R . string . cancel , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. create (). apply Ġ{ Ġset Canceled On Touch Outside ( false ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠSimple Text Watcher ( private Ġval Ġafter TextChanged Block : Ġ( s : ĠEdit able ) Ġ-> ĠUnit ) Ġ: ĠText Watcher Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġafter TextChanged ( s : ĠEdit able ?) Ġ= Ġs ?. let Ġ{ Ġafter TextChanged Block ( it ) Ġ} Ġas ĠUnit ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbefore TextChanged ( p 0 : ĠCharSequence ?, Ġp 1 : ĠInt , Ġp 2 : ĠInt , Ġp 3 : ĠInt ) Ġ= ĠUnit ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon TextChanged ( p 0 : ĠCharSequence ?, Ġp 1 : ĠInt , Ġp 2 : ĠInt , Ġp 3 : ĠInt ) Ġ= ĠUnit ĊĠĠĠ Ġ} Ċ }