package Ġcom . web i anks . ex pensive . ui . month _ year _ picker . picker Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . DialogInterface Ċ import Ġandroid . os . Build Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Number Picker Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġcom . web i anks . ex pensive . R Ċ import Ġcom . web i anks . ex pensive . ui . month _ year _ picker . custom _ number _ picker . Number Picker With Color Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ import Ġkotlin . math . max Ċ import Ġkotlin . math . min Ċ Ċ /** Ċ Ġ* ĠCreates Ġa Ġdialog Ġfor Ġpicking Ġthe Ġyear Ġand Ġmonth . Ċ Ġ*/ Ċ class ĠYear Month Picker Dialog ( ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠApplication 's Ġcontext . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval ĠmContext : ĠContext , ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠListener Ġfor Ġuser 's Ġdate Ġpicking . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġm On Date Set Listener : ĠOn Date Set Listener ?, ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCustom Ġuser 's Ġtheme Ġfor Ġdialog . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġm Theme : ĠInt , ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCustom Ġuser 's Ġcolor Ġfor Ġtitle Ġtext . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġm Text Title Color : ĠInt , ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet ĠInit ĠDate . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġcalendar : ĠCalendar Ċ Ċ ) Ġ: ĠDialog Interface . OnClickListener Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġbuilder Ġfor Ġour Ġdialog . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Dialog Builder : ĠAlertDialog . Builder ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠResult ing Ġdialog . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Dialog : ĠAlertDialog ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠPick ed Ġyear . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġm Year Ġ= Ġ 0 ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠPick ed Ġmonth . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġm Month Ġ= Ġ 0 ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAllow Ġuser Ġto Ġset Ġcustom Ġdate ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Year Picker : ĠNumber Picker With Color ĊĠĠĠ Ġprivate Ġvar Ġm Year Value : ĠTextView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmonth Picker : ĠNumber Picker With Color ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreates Ġa Ġnew ĠYear Month Picker Dialog Ġobject Ġthat Ġrepresents Ġthe Ġdialog Ġfor ĊĠĠĠĠ Ġ* Ġpicking Ġyear Ġand Ġmonth . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext ĠĠĠĠĠĠĠĠĠĠ ĠThe Ġapplication 's Ġcontext . ĊĠĠĠĠ Ġ* Ġ@ param Ġon Date Set Listener ĠListener Ġfor Ġuser 's Ġdate Ġpicking . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠ Ġcalendar : ĠCalendar , ĊĠĠĠĠĠĠĠ Ġon Date Set Listener : ĠOn Date Set Listener ? ĊĠĠĠ Ġ) Ġ: Ġthis ( context , Ġon Date Set Listener , Ġ- 1 , Ġ- 1 , Ġcalendar ) ĊĊĠĠĠ Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠ Ġon Date Set Listener : ĠOn Date Set Listener ?, ĊĠĠĠĠĠĠĠ Ġcalendar : ĠCalendar ĊĠĠĠ Ġ) Ġ: Ġthis ( context , Ġon Date Set Listener , Ġ- 1 , Ġ- 1 , Ġcalendar ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreates Ġa Ġnew ĠYear Month Picker Dialog Ġobject Ġthat Ġrepresents Ġthe Ġdialog Ġfor ĊĠĠĠĠ Ġ* Ġpicking Ġyear Ġand Ġmonth . ĠSpecifies Ġcustom Ġuser 's Ġtheme ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext ĠĠĠĠĠĠĠĠĠĠ ĠThe Ġapplication 's Ġcontext . ĊĠĠĠĠ Ġ* Ġ@ param Ġon Date Set Listener ĠListener Ġfor Ġuser 's Ġdate Ġpicking . ĊĠĠĠĠ Ġ* Ġ@ param Ġtheme ĠĠĠĠĠĠĠĠĠĠĠĠ ĠCustom Ġuser 's Ġtheme Ġfor Ġdialog . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠ Ġon Date Set Listener : ĠOn Date Set Listener ?, ĊĠĠĠĠĠĠĠ Ġcalendar : ĠCalendar , ĊĠĠĠĠĠĠĠ Ġtheme : ĠInt ĊĠĠĠ Ġ) Ġ: Ġthis ( context , Ġon Date Set Listener , Ġtheme , Ġ- 1 , Ġcalendar ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠList ens Ġfor Ġuser 's Ġactions . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġdialog ĠCurrent Ġinstance Ġof Ġdialog . ĊĠĠĠĠ Ġ* Ġ@ param Ġwhich Ġ ĠId Ġof Ġpressed Ġbutton . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠonClick ( dialog : ĠDialog Interface , Ġwhich : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( which ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDialog Interface . BUTTON _ POSITIVE Ġ-> Ġ Ġ// Check Ġif Ġuser Ġgave Ġus Ġa Ġlistener ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm On Date Set Listener ?. on Year Month Set ( m Year , Ġm Month ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDialog Interface . BUTTON _ NEGATIVE Ġ-> Ġ Ġ// Exit Ġthe Ġdialog ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . cancel () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreates Ġand Ġcustom izes Ġa Ġdialog . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġbuild () Ġ{ Ġ// Apply ing Ġuser 's Ġtheme ĊĠĠĠĠĠĠĠ Ġvar Ġcurrent Theme Ġ= Ġm Theme ĊĠĠĠĠĠĠĠ Ġ// If Ġthere Ġis Ġno Ġcustom Ġtheme , Ġusing Ġdefault . ĊĠĠĠĠĠĠĠ Ġif Ġ( current Theme Ġ== Ġ- 1 ) Ġcurrent Theme Ġ= ĠR . style . Month YE ar Picker Dialog Theme ĊĠĠĠĠĠĠĠ Ġ// Initializing Ġdialog Ġbuilder . ĊĠĠĠĠĠĠĠ Ġm Dialog Builder Ġ= ĠAlertDialog . Builder ( mContext , Ġcurrent Theme ) ĊĠĠĠĠĠĠĠ Ġ// Creating ĠView Ġinflater . ĊĠĠĠĠĠĠĠ Ġval Ġlayout Inflater Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠmContext . getSystem Service ( Context . LAYOUT _ IN FL ATER _ SERVICE ) Ġas ĠLayoutInflater ĊĠĠĠĠĠĠĠ Ġ// In fl ating Ġcustom Ġtitle Ġview . ĊĠĠĠĠĠĠĠ Ġval Ġtitle View Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Inflater . inflate ( R . layout . view _ dialog _ title , Ġnull , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ// In fl ating Ġcustom Ġcontent Ġview . ĊĠĠĠĠĠĠĠ Ġval Ġcontent View Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Inflater . inflate ( R . layout . view _ month _ year _ picker , Ġnull , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ// Initializing Ġyear Ġand Ġmonth Ġpick ers . ĊĠĠĠĠĠĠĠ Ġm Year Picker Ġ= Ġcontent View . findViewById ( R . id . year _ picker ) ĊĠĠĠĠĠĠĠ Ġmonth Picker Ġ= Ġcontent View . findViewById ( R . id . month _ picker ) ĊĠĠĠĠĠĠĠ Ġ// Initializing Ġtitle Ġtext Ġviews ĊĠĠĠĠĠĠĠ Ġval Ġmonth Name Ġ= Ġtitle View . findViewById < TextView >( R . id . month _ name ) ĊĠĠĠĠĠĠĠ Ġm Year Value Ġ= Ġtitle View . findViewById ( R . id . year _ name ) ĊĠĠĠĠĠĠĠ Ġ// If Ġthere Ġis Ġuser 's Ġtitle Ġcolor , ĊĠĠĠĠĠĠĠ Ġif Ġ( m Text Title Color Ġ!= Ġ- 1 ) Ġ{ Ġ// Then Ġapply Ġit . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset TextColor ( month Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset TextColor ( m Year Value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Setting Ġcustom Ġtitle Ġview Ġand Ġcontent Ġto Ġdialog . ĊĠĠĠĠĠĠĠ Ġm Dialog Builder . set Custom Title ( title View ) ĊĠĠĠĠĠĠĠ Ġm Dialog Builder . setView ( content View ) ĊĠĠĠĠĠĠĠ Ġ// Setting Ġyear 's Ġpicker Ġmin Ġand Ġmax Ġvalue ĊĠĠĠĠĠĠĠ Ġm Year Picker . min Value Ġ= ĠMIN _ YEAR ĊĠĠĠĠĠĠĠ Ġm Year Picker . max Value Ġ= ĠMAX _ YEAR ĊĊĠĠĠĠĠĠĠ Ġ// Setting Ġmonth 's Ġpicker Ġmin Ġand Ġmax Ġvalue ĊĠĠĠĠĠĠĠ Ġmonth Picker . min Value Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġmonth Picker . max Value Ġ= Ġmonths List () !!. size Ġ- Ġ 1 ĊĠĠĠĠĠĠĠ Ġ// Setting Ġmonth Ġlist . ĊĠĠĠĠĠĠĠ Ġmonth Picker . display ed Values Ġ= Ġmonths List () ĊĠĠĠĠĠĠĠ Ġ// Apply ing Ġcurrent Ġdate . ĊĠĠĠĠĠĠĠ ĠsetCurrent Date ( m Year Picker , Ġmonth Picker , Ġmonth Name , Ġm Year Value ) ĊĠĠĠĠĠĠĠ Ġ// Setting Ġall Ġlisteners . ĊĠĠĠĠĠĠĠ Ġset Listeners ( m Year Picker , Ġmonth Picker , Ġmonth Name , Ġm Year Value ) ĊĠĠĠĠĠĠĠ Ġ// Setting Ġtitles Ġand Ġlisteners Ġfor Ġdialog Ġbuttons . ĊĠĠĠĠĠĠĠ Ġm Dialog Builder . set Positive Button (" OK ", Ġthis ) ĊĠĠĠĠĠĠĠ Ġm Dialog Builder . set Negative Button (" CANCEL ", Ġthis ) ĊĠĠĠĠĠĠĠ Ġ// Creating Ġdialog . ĊĠĠĠĠĠĠĠ Ġm Dialog Ġ= Ġm Dialog Builder . create () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets Ġcolor Ġto Ġgiven ĠTextView . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġtitle View ĠGiven ĠTextView . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġset TextColor ( title View : ĠTextView ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġtitle View !!. setTextColor ( Context Compat . getColor ( mContext , Ġm Text Title Color )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets Ġcurrent Ġdate Ġfor Ġtitle Ġand Ġpick ers . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġyear Picker Ġ Ġyear Ġpicker . ĊĠĠĠĠ Ġ* Ġ@ param Ġmonth Picker Ġmonth Ġpicker . ĊĠĠĠĠ Ġ* Ġ@ param Ġmonth Name ĠĠ Ġmonth Ġname Ġin Ġthe Ġdialog Ġtitle . ĊĠĠĠĠ Ġ* Ġ@ param Ġyear Value ĠĠ Ġyear Ġvalue Ġin Ġthe Ġdialog Ġtitle . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun ĠsetCurrent Date ( ĊĠĠĠĠĠĠĠ Ġyear Picker : ĠNumber Picker With Color ?, ĊĠĠĠĠĠĠĠ Ġmonth Picker : ĠNumber Picker With Color ?, ĊĠĠĠĠĠĠĠ Ġmonth Name : ĠTextView , ĊĠĠĠĠĠĠĠ Ġyear Value : ĠTextView ? ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Getting Ġcurrent Ġdate Ġvalues Ġfrom ĠCalendar Ġinstance . ĊĠĠĠĠĠĠĠ Ġ//// Calendar Ġcalendar Ġ= ĠCalendar . getInstance (); ĊĠĠĠĠĠĠĠ Ġm Month Ġ= Ġcalendar [ Calendar . MONTH ] ĊĠĠĠĠĠĠĠ Ġm Year Ġ= Ġcalendar [ Calendar . YEAR ] ĊĠĠĠĠĠĠĠ Ġ// Setting Ġoutput Ġformat . ĊĠĠĠĠĠĠĠ Ġval Ġmonth Format Ġ= ĠSimpleDateFormat ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMON TH _ FORMAT , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠmCurrent Locale ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ// Setting Ġcurrent Ġdate Ġvalues Ġto Ġdialog Ġtitle Ġviews . ĊĠĠĠĠĠĠĠ Ġmonth Name . text Ġ= Ġmonth Format . format ( calendar . time ) ĊĠĠĠĠĠĠĠ Ġyear Value !!. text Ġ= Ġm Year . toString () ĊĠĠĠĠĠĠĠ Ġ// Setting Ġcurrent Ġdate Ġvalues Ġto Ġpick ers . ĊĠĠĠĠĠĠĠ Ġmonth Picker !!. value Ġ= Ġm Month ĊĠĠĠĠĠĠĠ Ġyear Picker !!. value Ġ= Ġm Year ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets Ġcurrent Ġdate Ġfor Ġtitle Ġand Ġpick ers . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġyear Picker Ġ Ġyear Ġpicker . ĊĠĠĠĠ Ġ* Ġ@ param Ġmonth Picker Ġmonth Ġpicker . ĊĠĠĠĠ Ġ* Ġ@ param Ġmonth Name ĠĠ Ġmonth Ġname Ġin Ġthe Ġdialog Ġtitle . ĊĠĠĠĠ Ġ* Ġ@ param Ġyear Value ĠĠ Ġyear Ġvalue Ġin Ġthe Ġdialog Ġtitle . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Suppress Lint (" SetText I 1 8 n ") ĊĠĠĠ Ġprivate Ġfun Ġset Listeners ( ĊĠĠĠĠĠĠĠ Ġyear Picker : ĠNumber Picker With Color , ĊĠĠĠĠĠĠĠ Ġmonth Picker : ĠNumber Picker With Color , ĊĠĠĠĠĠĠĠ Ġmonth Name : ĠTextView , ĊĠĠĠĠĠĠĠ Ġyear Value : ĠTextView ? ĊĠĠĠ Ġ) Ġ{ Ġ// Setting Ġlistener Ġto Ġmonth Ġname Ġview . ĊĠĠĠĠĠĠĠ Ġmonth Name . setOnClickListener Ġ{ Ġv : ĠView ? Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// If Ġthere 's Ġno Ġmonth Ġpicker Ġvisible ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( month Picker . visibility Ġ== ĠView . GONE ) Ġ{ Ġ// Set Ġit Ġvisible ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmonth Picker . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// And Ġhide Ġyear Ġpicker . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġyear Picker . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Change Ġtitle Ġviews Ġalpha Ġto Ġpicking Ġeffect . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġyear Value !!. alpha Ġ= Ġ 0 . 3 9 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmonth Name . alpha Ġ= Ġ 1 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Setting Ġlistener Ġto Ġyear Ġvalue Ġview . ĊĠĠĠĠĠĠĠ Ġyear Value !!. setOnClickListener Ġ{ Ġv : ĠView ? Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// If Ġthere 's Ġno Ġyear Ġpicker Ġvisible ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( year Picker . visibility Ġ== ĠView . GONE ) Ġ{ Ġ// Set Ġit Ġvisible ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġyear Picker . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// And Ġhide Ġyear Ġpicker . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmonth Picker . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Change Ġtitle Ġviews Ġalpha Ġto Ġpicking Ġeffect . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmonth Name . alpha Ġ= Ġ 0 . 3 9 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġyear Value . alpha Ġ= Ġ 1 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Setting Ġlistener Ġto Ġmonth Ġpicker . ĠSo Ġit Ġcan Ġchange Ġtitle Ġtext Ġvalue . ĊĠĠĠĠĠĠĠ Ġmonth Picker . setOn ValueChanged Listener Ġ{ Ġ_: ĠNumber Picker ?, Ġ_: ĠInt , ĠnewVal : ĠInt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Month Ġ= ĠnewVal ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Set Ġtitle Ġmonth Ġtext Ġto Ġpicked Ġmonth . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmonth Name . text Ġ= Ġmonths List () ! ![ new Val ] ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Setting Ġlistener Ġto Ġyear Ġpicker . ĠSo Ġit Ġcan Ġchange Ġtitle Ġtext Ġvalue . ĊĠĠĠĠĠĠĠ Ġyear Picker . setOn ValueChanged Listener Ġ{ Ġ_: ĠNumber Picker ?, Ġ_: ĠInt , ĠnewVal : ĠInt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Year Ġ= ĠnewVal ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Set Ġtitle Ġyear Ġtext Ġto Ġpicked Ġyear . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġyear Value . text Ġ= ĠnewVal . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAllows Ġuser Ġto Ġshow Ġcreated Ġdialog . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġshow () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Dialog . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets Ġmin Ġvalue Ġof Ġyear Ġpicker Ġwidget . ĊĠĠĠĠ Ġ* Ġ@ param Ġmin Year ĠThe Ġmin Ġvalue Ġinclusive . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Suppress Lint (" SetText I 1 8 n ") ĊĠĠĠ Ġfun Ġset Min Year ( min Year : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Year Picker . value Ġ< Ġmin Year ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Year Picker . value Ġ= Ġmin Year ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Year Value ?. text Ġ= Ġmin Year . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm Year Picker . min Value Ġ= Ġmin ( min Year , Ġm Year Picker . max Value ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets Ġmax Ġvalue Ġof Ġyear Ġpicker Ġwidget . ĊĠĠĠĠ Ġ* Ġ@ param Ġmax Year ĠThe Ġmax Ġvalue Ġinclusive . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Suppress Lint (" SetText I 1 8 n ") ĊĠĠĠ Ġfun Ġset Max Year ( max Year : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Year Picker . value Ġ> Ġmax Year ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Year Picker . value Ġ= Ġmax Year ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Year Value ?. text Ġ= Ġmax Year . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm Year Picker . max Value Ġ= Ġmax ( max Year , Ġm Year Picker . min Value ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠInterface Ġfor Ġimplementing Ġuser 's Ġpick Ġlistener . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinterface ĠOn Date Set Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠList ens Ġfor Ġuser 's Ġactions . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġon Year Month Set ( year : ĠInt , Ġmonth : ĠInt ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe Ġminimal Ġyear Ġvalue . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠMIN _ YEAR Ġ= Ġ 1 9 7 0 ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe Ġmaximum Ġyear Ġvalue . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠMAX _ YEAR Ġ= Ġ 2 0 9 9 ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe ĠMonth Ġformat Ġpattern . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠMON TH _ FORMAT Ġ= Ġ" MMMM " ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠArray Ġof Ġmonths . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar ĠMON TH S _ LIST : ĠArray < String ?> ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSpecific Ġlocale Ġfor Ġformat Ġdatetime . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar ĠmCurrent Locale Ġ= ĠLocale . getDefault () ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠCap ital ize Ġstring ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġcapital ize ( line : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠCharacter . toUpperCase ( line [ 0 ]). toString () Ġ+ Ġline . substring ( 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠGet Ġmonth Ġname Ġwith Ġspecified Ġlocale ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġmonths List (): ĠArray < String ?> ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( MONTH S _ LIST Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmonths Ġ= Ġint ArrayOf ( 0 , Ġ 1 , Ġ 2 , Ġ 3 , Ġ 4 , Ġ 5 , Ġ 6 , Ġ 7 , Ġ 8 , Ġ 9 , Ġ 1 0 , Ġ 1 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstring Months Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf Null s < String >( months . size ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġmonths . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcalendar Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmonth Date Ġ= ĠSimpleDateFormat ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMON TH _ FORMAT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠmCurrent Locale ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar [ Calendar . MONTH ] Ġ= Ġmonths [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmonth Name Ġ= Ġmonth Date . format ( calendar . time ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstring Months [ i ] Ġ= Ġcapital ize ( month Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMON TH S _ LIST Ġ= Ġstring Months ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠMON TH S _ LIST ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreates Ġa Ġnew ĠYear Month Picker Dialog Ġobject Ġthat Ġrepresents Ġthe Ġdialog Ġfor ĊĠĠĠĠ Ġ* Ġpicking Ġyear Ġand Ġmonth . ĠSpecifies Ġcustom Ġuser 's Ġtheme Ġand Ġtitle Ġtext Ġcolor ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext ĠĠĠĠĠĠĠĠĠĠ ĠThe Ġapplication 's Ġcontext . ĊĠĠĠĠ Ġ* Ġ@ param Ġon Date Set Listener ĠListener Ġfor Ġuser 's Ġdate Ġpicking . ĊĠĠĠĠ Ġ* Ġ@ param Ġtheme ĠĠĠĠĠĠĠĠĠĠĠĠ ĠCustom Ġuser 's Ġtheme Ġfor Ġdialog . ĊĠĠĠĠ Ġ* Ġ@ param Ġtitle TextColor ĠĠĠ ĠCustom Ġuser 's Ġcolor Ġfor Ġtitle Ġtext . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Set Ġcurrent Ġlocale Ġof Ġsystem ĊĠĠĠĠĠĠĠ ĠmCurrent Locale Ġ= Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . N ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠmContext . resources . configuration . locales [ 0 ] ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠmContext . resources . configuration . locale ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Build s Ġthe Ġdialog Ġusing Ġlisted Ġparameters . ĊĠĠĠĠĠĠĠ Ġbuild () ĊĠĠĠ Ġ} Ċ }