package Ġcom . orbit al sonic . world time . activity Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics .* Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view .* Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . activity . result . contract . Activity Result Contracts Ċ import Ġandroidx . activity . view Models Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . recyclerview . widget . Item Touch Helper Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . orbit al sonic . world time . Main Application Ċ import Ġcom . orbit al sonic . world time . R Ċ import Ġcom . orbit al sonic . world time . adapters . Adapter World Time Ċ import Ġcom . orbit al sonic . world time . databinding . Activity Main Binding Ċ import Ġcom . orbit al sonic . world time . databinding . Dialog DateTime Binding Ċ import Ġcom . orbit al sonic . world time . datamodel . World Time Entity Ċ import Ġcom . orbit al sonic . world time . interfaces . On DateTime Listener Ċ import Ġcom . orbit al sonic . world time . interfaces . On Time ClickListener Ċ import Ġcom . orbit al sonic . world time . utils . Conversions Utils . from StringTo Object Zone Ċ import Ġcom . orbit al sonic . world time . utils . DatePicker Fragment Ċ import Ġcom . orbit al sonic . world time . utils . Screen Utils Ċ import Ġcom . orbit al sonic . world time . utils . Time Date Utils . conversion Check Ċ import Ġcom . orbit al sonic . world time . utils . Time Date Utils . getCurrent Time Ċ import Ġcom . orbit al sonic . world time . utils . Time Date Utils . m Day Ċ import Ġcom . orbit al sonic . world time . utils . Time Date Utils . m Hour Ċ import Ġcom . orbit al sonic . world time . utils . Time Date Utils . m Minute Ċ import Ġcom . orbit al sonic . world time . utils . Time Date Utils . m Month Ċ import Ġcom . orbit al sonic . world time . utils . Time Date Utils . m Year Ċ import Ġcom . orbit al sonic . world time . utils . Time Picker Fragment Ċ import Ġcom . orbit al sonic . world time . view model . World Time ViewModel Ċ import Ġorg . joda . time . DateTime Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠActivity Main Binding ĊĠĠĠ Ġprivate Ġval Ġpaint Ġ= ĠPaint () ĊĊĠĠĠ Ġprivate Ġval Ġworld Time ViewModel : ĠWorld Time ViewModel Ġ Ġby Ġview Models Ġ{ ĊĠĠĠĠĠĠĠ ĠWorld Time ViewModel . World Time ViewModel Factory (( application Ġas ĠMain Application ). repository ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Adapter : ĠAdapter World Time ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġworld Time Entity : ĠWorld Time Entity ĊĠĠĠ Ġprivate Ġvar Ġzone List : ĠList < World Time Entity > Ġ= ĠArrayList () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠData Binding Util . set ContentView ( this , ĠR . layout . activity _ main ) ĊĊĊĠĠĠĠĠĠĠ Ġini Views () ĊĠĠĠĠĠĠĠ Ġcreate RecyclerView () ĊĊĠĠĠĠĠĠĠ Ġworld Time ViewModel . all World Time List . observe ( Ġthis ) Ġ{ Ġworld Time List Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġworld Time List . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Adapter . submit List ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġzone List Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . isNotEmpty ()){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . clock Empty Text . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . clock Empty Text . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġini Views () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġbinding . add TimeZone . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopen Activity For Result ( Intent ( this , TimeZone Activity :: class . java )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate RecyclerView () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Adapter Ġ= ĠAdapter World Time () ĊĠĠĠĠĠĠĠ Ġbinding . recyclerview . adapter Ġ= Ġm Adapter ĊĠĠĠĠĠĠĠ Ġbinding . recyclerview . layout Manager Ġ= ĠLinearLayoutManager ( this ) ĊĊĠĠĠĠĠĠĠ Ġm Adapter . setOn ItemClickListener ( object Ġ: ĠOn Time ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Click ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow DateTime Dialog ( m Adapter . current List [ position ]. time Zone ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĊĊĠĠĠĠĠĠĠ ĠItem Touch Helper ( object Ġ: ĠItem Touch Helper . Simple Callback ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠItem Touch Helper . LEFT Ġor ĠItem Touch Helper . RIGHT ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Move ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView : ĠRecyclerView , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewHolder : ĠRecyclerView . ViewHolder , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget : ĠRecyclerView . ViewHolder ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Child Draw ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc : ĠCanvas , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView : ĠRecyclerView , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewHolder : ĠRecyclerView . ViewHolder , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd X : ĠFloat , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd Y : ĠFloat , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction State : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Currently Active : ĠBoolean ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġicon : ĠBitmap ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( action State Ġ== ĠItem Touch Helper . ACTION _ STATE _ SW I PE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠitemView : ĠView Ġ= ĠviewHolder . item View ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġheight Ġ= ĠitemView . bottom . toFloat () Ġ- ĠitemView . top . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwidth Ġ= Ġheight Ġ/ Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dX Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpaint . color Ġ= ĠColor . parse Color ("# fb 3 c 3 d ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbackground Ġ= ĠRect F ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . left . toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . top . toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd X , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . bottom . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc . draw Rect ( background , Ġpaint ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Ġ= ĠBitmap Factory . decode Resource ( resources , ĠR . drawable . ic _ delete ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġicon Dest Ġ= ĠRect F ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . left . toFloat () Ġ+ Ġwidth , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . top . toFloat () Ġ+ Ġwidth , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . left . toFloat () Ġ+ Ġ 2 Ġ* Ġwidth , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . bottom . toFloat () Ġ- Ġwidth ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc . draw Bitmap ( icon , Ġnull , Ġicon Dest , Ġpaint ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpaint . color Ġ= ĠColor . parse Color ("# fb 3 c 3 d ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbackground Ġ= ĠRect F ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . right . toFloat () Ġ+ Ġd X , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . top . toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . right . toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . bottom . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc . draw Rect ( background , Ġpaint ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Ġ= ĠBitmap Factory . decode Resource ( resources , ĠR . drawable . ic _ delete ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġicon Dest Ġ= ĠRect F ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . right . toFloat () Ġ- Ġ 2 Ġ* Ġwidth , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . top . toFloat () Ġ+ Ġwidth , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . right . toFloat () Ġ- Ġwidth , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . bottom . toFloat () Ġ- Ġwidth ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc . draw Bitmap ( icon , Ġnull , Ġicon Dest , Ġpaint ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Child Draw ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewHolder , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd X , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd Y , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction State , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Currently Active ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress Lint (" Notify DataSet Changed ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Sw ip ed ( view Holder : ĠRecyclerView . ViewHolder , Ġdirection : ĠInt ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( direction Ġ== ĠItem Touch Helper . LEFT Ġ|| Ġdirection Ġ== ĠItem Touch Helper . RIGHT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġworld Time Entity Ġ= Ġm Adapter . current List [ view Holder . adapter Position ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġworld Time ViewModel . delete World Time ( world Time Entity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Message (" Item ĠDeleted !") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}). attach To RecyclerView ( binding . recyclerview ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġresult Launcher Ġ= Ġregister For Activity Result ( Activity Result Contracts . Start Activity For Result ()) Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠ Ġif Ġ( result . result Code Ġ== ĠActivity . RESULT _ OK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Intent : ĠIntent ? Ġ= Ġresult . data ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Intent ?. getString Extra (" TimeZone Data ") ?. let Ġ{ Ġreply Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm TimeZone Ġ= Ġfrom StringTo Object Zone ( reply ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġzone Comparison ( m TimeZone ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġopen Activity For Result ( m Intent : ĠIntent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġresult Launcher . launch ( m Intent ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġzone Comparison ( m TimeZone : ĠWorld Time Entity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġdummy Check Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġfor Ġ( index Ġin Ġzone List . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( zone List [ index ]. city Name Ġ== Ġm TimeZone . city Name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdummy Check Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! dummy Check ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġworld Time ViewModel . insert World Time ( m TimeZone ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinflater : ĠMenu Inflater Ġ= Ġmenu Inflater ĊĠĠĠĠĠĠĠ Ġinflater . inflate ( R . menu . zone _ menu , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Notify DataSet Changed ") ĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . btn _ refresh Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconversion Check Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Adapter . notify DataSet Changed () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Suppress Lint (" Notify DataSet Changed ") ĊĠĠĠ Ġprivate Ġfun Ġshow DateTime Dialog ( zone Name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġm Dialog Ġ= ĠDialog ( this ) ĊĠĠĠĠĠĠĠ Ġval Ġdialog Binding : ĠDialog DateTime Binding Ġ= ĠData Binding Util . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( this ), ĠR . layout . dialog _ date _ time , Ġnull , Ġfalse ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġm Dialog . request Window Feature ( Window . FEATURE _ NO _ TITLE ) ĊĠĠĠĠĠĠĠ Ġm Dialog . set Cancel able ( false ) ĊĠĠĠĠĠĠĠ Ġm Dialog . set ContentView ( dialog Binding . root ) ĊĊĠĠĠĠĠĠĠ Ġdialog Binding . dialog Layout . request Layout () ĊĠĠĠĠĠĠĠ Ġdialog Binding . dialog Layout . layout Params . width Ġ= Ġ Ġ( Screen Utils . get Screen Width ( this ) Ġ* Ġ. 9 0 ). toInt () ĊĊĠĠĠĠĠĠĠ Ġval Ġdt City Ġ= ĠDateTime () ĊĊĠĠĠĠĠĠĠ Ġm Year Ġ= Ġdt City . year ĊĠĠĠĠĠĠĠ Ġm Month Ġ= Ġdt City . month OfYear ĊĠĠĠĠĠĠĠ Ġm Day Ġ= Ġdt City . day OfMonth ĊĠĠĠĠĠĠĠ Ġm Hour Ġ= Ġdt City . hour OfDay ĊĠĠĠĠĠĠĠ Ġm Minute Ġ= Ġdt City . minute Of Hour ĊĊĠĠĠĠĠĠĠ Ġdialog Binding . tv Zone Name . text Ġ= Ġzone Name ĊĊĠĠĠĠĠĠĠ Ġdialog Binding . tv Dialog Time . text Ġ= ĠgetCurrent Time ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Year , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Month , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Day , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Hour , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Minute , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġzone Name , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" hh : mm Ġa " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĊĠĠĠĠĠĠĠ Ġdialog Binding . tv Dialog Date . text Ġ= ĠgetCurrent Time ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Year , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Month , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Day , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Hour , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Minute , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġzone Name , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" EEE , ĠM MM Ġd " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġdialog Binding . btn Dialog Time . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Fragment Ġ= ĠTime Picker Fragment ( m Dialog . context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew Fragment . show ( support FragmentManager , Ġ" time Picker ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew Fragment . on ClickListener ( object Ġ: ĠOn DateTime Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Click () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Binding . tv Dialog Time . text Ġ= ĠgetCurrent Time ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Year , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Month , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Day , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Hour , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Minute , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġzone Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" hh : mm Ġa " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdialog Binding . btn Dialog Date . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Fragment Ġ= ĠDate Picker Fragment ( m Dialog . context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew Fragment . show ( support FragmentManager , Ġ" date Picker ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew Fragment . on ClickListener ( object Ġ: ĠOn DateTime Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Click () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Binding . tv Dialog Date . text Ġ= ĠgetCurrent Time ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Year , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Month , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Day , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Hour , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Minute , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġzone Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" EEE , ĠM MM Ġd " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdialog Binding . btn Cancel . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Dialog . dismiss () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdialog Binding . btn Done . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Dialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconversion Check Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Adapter . notify DataSet Changed () ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġm Dialog . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Message ( message : String ){ ĊĠĠĠĠĠĠĠ ĠToast . makeText ( this , message , Toast . LENGTH _ SHORT ). show () ĊĠĠĠ Ġ} Ċ }