package Ġcom . example . pass generator čĊč Ċ import Ġandroid . content . Clip Data č Ċ import Ġandroid . content . Clipboard Manager č Ċ import Ġandroid . content . Context č Ċ import Ġandroid . graphics . Color č Ċ import Ġandroid . os . Bundle č Ċ import Ġandroid . util . Typed Value č Ċ import Ġandroid . widget . Toast č Ċ import Ġandroidx . annotation . Attr Res č Ċ import Ġandroidx . annotation . Color Int č Ċ import Ġandroidx . appcompat . app . AppCompatActivity č Ċ import Ġandroidx . appcompat . app . AppCompat Delegate č Ċ import Ġandroidx . core . content . Context Compat č Ċ import Ġcom . example . pass generator . databinding . Activity Main Binding č Ċ import Ġcom . google . android . material . color . Material Colors č Ċ import Ġcom . google . android . material . sn ackbar . Snackbar čĊčĊč Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ čĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠActivity Main Binding čĊčĊĠĠĠ Ġprivate Ġvar Ġchecked Theme Global Ġ= Ġfalse čĊčĊĠĠĠ Ġprivate Ġvar Ġlength Ġ= Ġ 1 0 čĊčĊĠĠĠ Ġprivate Ġvar Ġchecked Upper Ġ= Ġtrue čĊĠĠĠ Ġprivate Ġvar Ġchecked Lower Ġ= Ġtrue čĊĠĠĠ Ġprivate Ġvar Ġchecked Digits Ġ= Ġtrue čĊĠĠĠ Ġprivate Ġvar Ġchecked Special Ġ= Ġtrue čĊĠĠĠ Ġprivate Ġvar Ġchecked Min Length Ġ= Ġtrue čĊčĊĠĠĠ Ġprivate Ġvar Ġmin Length Ġ= Ġ 8 čĊčĊĠĠĠ Ġprivate Ġvar Ġcharacters Ġ= Ġ"~ ! @ # \$ %^ & ; * +- / ., \\ {} [] (); :| ? =\" `" čĊčĊĠĠĠ Ġprivate Ġvar Ġstrong Ġ= Ġtrue čĊĠĠĠ Ġprivate Ġvar Ġclean Ġ= Ġtrue čĊčĊčĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ čĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) čĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠActivity Main Binding . inflate ( layout Inflater ) čĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġbinding . root čĊĠĠĠĠĠĠĠ ĠsetContentView ( view ) čĊčĊĠĠĠĠĠĠĠ Ġval Ġpref Ġ= Ġget SharedPreferences ( čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" dev . g ust av od ah ora . pass _ generator ", ĠContext . MODE _ PRIVATE čĊĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠ Ġpref . apply Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchecked Ġ= Ġget Boolean (" checked ", Ġfalse ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġchecked Theme Global Ġ= Ġchecked čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġbinding . switch Upper . isChecked Ġ= Ġtrue čĊĠĠĠĠĠĠĠ Ġbinding . switch Lower . isChecked Ġ= Ġtrue čĊĠĠĠĠĠĠĠ Ġbinding . switch Digits . isChecked Ġ= Ġtrue čĊĠĠĠĠĠĠĠ Ġbinding . switch Special . isChecked Ġ= Ġtrue čĊčĊĠĠĠĠĠĠĠ Ġbinding . special . setText ( characters ) čĊčĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġthem Ġon Ġstartup čĊĠĠĠĠĠĠĠ Ġset Theme () čĊĠĠĠĠĠĠĠ Ġset Strong () čĊĠĠĠĠĠĠĠ Ġbinding . force Use . isChecked Ġ= Ġtrue čĊĠĠĠĠĠĠĠ Ġbinding . force Use Label . setTextColor ( čĊĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Context , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . color . yellow čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠ Ġ) čĊčĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġthe Ġonclick Ġfunction čĊĠĠĠĠĠĠĠ Ġbinding . btn Generate . setOnClickListener Ġ{ Ġrandom Pass () Ġ} čĊĠĠĠĠĠĠĠ Ġbinding . switch Theme . setOnClickListener Ġ{ Ġtheme () Ġ} čĊĠĠĠĠĠĠĠ Ġbinding . btn Copy . setOnClickListener Ġ{ Ġcopy () Ġ} čĊĠĠĠĠĠĠĠ Ġbinding . btn Clear . setOnClickListener Ġ{ Ġclear () Ġ} čĊĠĠĠĠĠĠĠ Ġbinding . switch Upper . setOnClickListener Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġstrong Password () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Label Change () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsn ack Remove () čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġbinding . switch Digits . setOnClickListener Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġstrong Password () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Label Change () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsn ack Remove () čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġbinding . switch Special . setOnClickListener Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġstrong Password () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Label Change () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsn ack Remove () čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġbinding . switch Lower . setOnClickListener Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġstrong Password () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Label Change () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsn ack Remove () čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġbinding . force Use . setOnClickListener Ġ{ Ġstrong Password () Ġ} čĊĠĠĠĠĠĠĠ Ġbinding . restore Special . setOnClickListener Ġ{ Ġreset Special Characters () Ġ} čĊčĊĠĠĠ Ġ} čĊčĊčĊĠĠĠ Ġprivate Ġfun Ġtheme () Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġpref Ġ= Ġget SharedPreferences ( čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" dev . g ust av od ah ora . pass _ generator ", ĠContext . MODE _ PRIVATE čĊĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠ Ġval Ġeditor Ġ= Ġpref . edit () čĊĠĠĠĠĠĠĠ Ġval Ġchecked Ġ= Ġbinding . switch Theme . isChecked čĊĠĠĠĠĠĠĠ Ġeditor . put Boolean (" checked ", Ġchecked ). apply () čĊĠĠĠĠĠĠĠ Ġchecked Theme Global Ġ= Ġchecked čĊĠĠĠĠĠĠĠ Ġset Theme () čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ// ĠSet Ġtheme čĊĠĠĠ Ġprivate Ġfun Ġset Theme () Ġ{ čĊĠĠĠĠĠĠĠ Ġbinding . switch Theme . isChecked Ġ= Ġchecked Theme Global čĊĠĠĠĠĠĠĠ Ġif Ġ( checked Theme Global ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ ĠAppCompat Delegate . setDefault Night Mode ( AppCompat Delegate . MODE _ N IGHT _ YES ) čĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ ĠAppCompat Delegate . setDefault Night Mode ( AppCompat Delegate . MODE _ N IGHT _ NO ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġrandom Pass () Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġpass Length Ġ= Ġbinding . pass Length . text čĊčĊĠĠĠĠĠĠĠ Ġif Ġ( pass Length . isBlank () Ġ|| Ġpass Length . isEmpty ()) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsn ackbar Ġ= ĠSn ackbar . make ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfindViewById ( R . id . scr _ view ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . length _ is _ empty ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSn ackbar . LENGTH _ LONG čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsn ackbar . setBackground Tint ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Context , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . color . black čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsn ackbar . setTextColor ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Context , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . color . white čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsn ackbar . show () čĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġstrong Password () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġset All Parameters () čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpass Value Ġ= ĠgetRandom String () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Pass Text Value ( pass Value ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun ĠgetRandom Value ( allowed Chars : ĠString ): ĠString Ġ{ čĊĠĠĠĠĠĠĠ Ġclean Ġ= Ġfalse čĊĠĠĠĠĠĠĠ Ġreturn Ġ( 1 .. length ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġallowed Chars . random () Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ToString ("") čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġset Pass Text Value ( pass : ĠString ) Ġ{ čĊĠĠĠĠĠĠĠ Ġ// Ġ 1 Ġle tra Ġmai us cul a Ġe Ġminus cul a čĊĠĠĠĠĠĠĠ Ġ// Ġ 1 Ġdig ito čĊĠĠĠĠĠĠĠ Ġ// Ġ 2 Ġcaracteres Ġespec ia is čĊčĊĠĠĠĠĠĠĠ Ġif Ġ( characters Ġ!= Ġ"~ ! @ # \$ %^ & ; * +- / ., \\ {} [] (); :| ? =\" ` ") Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġstrong Ġ= Ġfalse čĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Strong False () čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġif Ġ( strong ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġpass Upper Ġ= Ġfalse čĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġpass Lower Ġ= Ġfalse čĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġpass Digits Ġ= Ġfalse čĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġpass Characters Ġ= Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠ Ġpass . forEach Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . is UpperCase ()) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpass Upper Ġ= Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . is LowerCase ()) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpass Lower Ġ= Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . is Digit ()) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpass Digits Ġ= Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġch ama Ġ= Ġ"~ ! @ # \$ %^ & ; * +- / ., \\ {} [] (); :| ? =\" `" čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġch ama ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i Ġ== Ġit ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpass Characters Ġ= Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( pass Upper Ġ&& Ġpass Lower Ġ&& Ġpass Digits Ġ&& Ġpass Characters ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . password Text . text Ġ= Ġconvert Pass L enght ( pass ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpass Value Ġ= ĠgetRandom String () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Pass Text Value ( pass Value ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . password Text . text Ġ= Ġconvert Pass L enght ( pass ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġconvert Pass L enght ( pass : ĠString ): ĠString Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( pass . length Ġ> Ġ 1 0 ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ pass . substring ( 0 , Ġ 1 0 )} ..." čĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġpass čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġset All Parameters () Ġ{ čĊĠĠĠĠĠĠĠ Ġlength Ġ= Ġbinding . pass Length . text . toString (). toInt () čĊĠĠĠĠĠĠĠ Ġchecked Upper Ġ= Ġbinding . switch Upper . isChecked čĊĠĠĠĠĠĠĠ Ġchecked Lower Ġ= Ġbinding . switch Lower . isChecked čĊĠĠĠĠĠĠĠ Ġchecked Digits Ġ= Ġbinding . switch Digits . isChecked čĊĠĠĠĠĠĠĠ Ġchecked Special Ġ= Ġbinding . switch Special . isChecked čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġget Special Character () Ġ{ čĊĠĠĠĠĠĠĠ Ġcharacters Ġ= Ġbinding . special . text . toString () čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġreset Special Characters () Ġ{ čĊĠĠĠĠĠĠĠ Ġif Ġ( characters Ġ!= Ġ"~ ! @ # \$ %^ & ; * +- / ., \\ {} [] (); :| ? =\" ` ") Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġcharacters Ġ= Ġ"~ ! @ # \$ %^ & ; * +- / ., \\ {} [] (); :| ? =\" `" čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġbinding . special . setText ( characters ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġstrong Password () Ġ{ čĊĠĠĠĠĠĠĠ Ġset Strong () čĊĠĠĠĠĠĠĠ Ġvar Ġlength Actual Ġ= ĠInteger . parseInt ( binding . pass Length . text . toString ()) čĊčĊĠĠĠĠĠĠĠ Ġchecked Min Length Ġ= Ġlength Actual Ġ>= Ġmin Length čĊčĊĠĠĠĠĠĠĠ Ġval Ġall Checked Ġ= Ġchecked Upper Ġ&& Ġchecked Lower Ġ&& Ġchecked Digits Ġ&& Ġchecked Special Ġ&& Ġchecked Min Length čĊčĊĠĠĠĠĠĠĠ Ġif Ġ(! all Checked ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Strong False () čĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Color Strong () čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġset Strong () Ġ{ čĊĠĠĠĠĠĠĠ Ġstrong Ġ= Ġbinding . force Use . isChecked čĊčĊĠĠĠĠĠĠĠ Ġif Ġ( strong ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . switch Upper . isChecked Ġ= Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . switch Lower . isChecked Ġ= Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . switch Digits . isChecked Ġ= Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . switch Special . isChecked Ġ= Ġtrue čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġchecked Upper Ġ= Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠ Ġchecked Lower Ġ= Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠ Ġchecked Digits Ġ= Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠ Ġchecked Special Ġ= Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . force Use Label . setTextColor ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Context , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . color . yellow čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Label Change () čĊčĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . force Use Label . setTextColor ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Context , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . color . gray čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Label Change () čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġitem Label Change () Ġ{ čĊĠĠĠĠĠĠĠ Ġchecked Upper Ġ= Ġbinding . switch Upper . isChecked čĊĠĠĠĠĠĠĠ Ġchecked Lower Ġ= Ġbinding . switch Lower . isChecked čĊĠĠĠĠĠĠĠ Ġchecked Digits Ġ= Ġbinding . switch Digits . isChecked čĊĠĠĠĠĠĠĠ Ġchecked Special Ġ= Ġbinding . switch Special . isChecked čĊĠĠĠĠĠĠĠ Ġif Ġ(! checked Upper ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . switch Upper case Label . setTextColor ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Context , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . color . gray čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . switch Upper case Label . setTextColor ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMaterial Colors . getColor ( binding . switch Upper case Label , ĠR . attr . color On Secondary ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġif Ġ(! checked Lower ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . letters Lower case Label . setTextColor ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Context , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . color . gray čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . letters Lower case Label . setTextColor ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMaterial Colors . getColor ( binding . switch Upper case Label , ĠR . attr . color On Secondary ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġif Ġ(! checked Digits ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . digits Label . setTextColor ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Context , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . color . gray čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . digits Label . setTextColor ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMaterial Colors . getColor ( binding . switch Upper case Label , ĠR . attr . color On Secondary ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġif Ġ(! checked Special ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . special . setTextColor ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Context , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . color . gray čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . special . setTextColor ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMaterial Colors . getColor ( binding . switch Upper case Label , ĠR . attr . color On Secondary ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġset Strong False () Ġ{ čĊĠĠĠĠĠĠĠ Ġbinding . force Use . isChecked Ġ= Ġfalse čĊčĊĠĠĠĠĠĠĠ Ġbinding . force Use Label . setTextColor ( čĊĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Context , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . color . gray čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠ Ġ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġcopy () Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġtext Field Ġ= Ġbinding . password Text . text . toString () čĊĠĠĠĠĠĠĠ Ġif Ġ( textField Ġ!= Ġ" Press Ġ>> ") Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclipboard Manager Ġ= Ġget System Service ( Context . CLIP BOARD _ SERVICE ) Ġas ĠClip board Manager čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclip Ġ= ĠClip Data . new Plain Text (" label ", Ġtext Field ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġclipboard Manager . set Primary Clip ( clip ) čĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Context , Ġ"$ textField Ġ" Ġ+ ĠgetString ( R . string . copy _ to _ clipboard ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ SHORT čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). show () čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġclear () Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġclipboard Manager Ġ= Ġget System Service ( Context . CLIP BOARD _ SERVICE ) Ġas ĠClip board Manager čĊĠĠĠĠĠĠĠ Ġval Ġclip Ġ= ĠClip Data . new Plain Text (" clear ", Ġ" Ġ") čĊĠĠĠĠĠĠĠ Ġclipboard Manager . set Primary Clip ( clip ) čĊčĊĠĠĠĠĠĠĠ Ġif Ġ( clean ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsn ackbar Ġ= ĠSn ackbar . make ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfindViewById ( R . id . scr _ view ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . already _ is _ clean ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSn ackbar . LENGTH _ LONG čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsn ackbar . setBackground Tint ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Context , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . color . black čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsn ackbar . setTextColor ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Context , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . color . white čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsn ackbar . show () čĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsn ackbar Ġ= ĠSn ackbar . make ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfindViewById ( R . id . scr _ view ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . cleaned ), ĠSn ackbar . LENGTH _ LONG čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsn ackbar . setBackground Tint ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Context , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . color . black čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsn ackbar . setTextColor ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Context , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . color . white čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsn ackbar . show () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . password Text . text Ġ= ĠgetString ( R . string . pass Temporary ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġclean Ġ= Ġtrue čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun ĠgetRandom String (): ĠString Ġ{ čĊĠĠĠĠĠĠĠ Ġcharacters Ġ= Ġ"" čĊčĊĠĠĠĠĠĠĠ Ġval Ġupper Case : ĠString Ġ= Ġif Ġ( checked Upper ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" ABCDEF GH IJ KL MN OP Q RST UV XZ " čĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"" čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġval Ġlower Case : ĠString Ġ= Ġif Ġ( checked Lower ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" abcdefgh ijkl mnopqrst uv xz " čĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"" čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġval Ġdigits : ĠString Ġ= Ġif Ġ( checked Digits ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 1 2 3 4 5 6 7 8 9 " čĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"" čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġif Ġ( checked Special ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Special Character () čĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġcharacters Ġ= Ġ"" čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġval Ġfinal Characters Ġ= Ġupper Case Ġ+ Ġlower Case Ġ+ Ġdigits Ġ+ Ġcharacters čĊčĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( final Characters Ġ!= Ġ"") Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetRandom Value ( final Characters ) čĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" ..." čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġset Color Strong () Ġ{ čĊĠĠĠĠĠĠĠ Ġbinding . force Use Label . setTextColor ( čĊĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Context , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . color . yellow čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠ Ġbinding . force Use . isChecked Ġ= Ġtrue čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġsn ack Remove () Ġ{ čĊĠĠĠĠĠĠĠ Ġstrong Ġ= Ġbinding . force Use . isChecked čĊčĊĠĠĠĠĠĠĠ Ġif Ġ( strong ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsn ackbar Ġ= ĠSn ackbar . make ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfindViewById ( R . id . scr _ view ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . remove _ strong _ to _ continue ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSn ackbar . LENGTH _ LONG čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsn ackbar . setBackground Tint ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Context , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . color . black čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsn ackbar . setTextColor ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Context , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . color . white čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsn ackbar . show () čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} č Ċ } čĊčĊ