package Ġcom . element ary . tasks . reminder . create . fragments Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . TextUtils Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . element ary . tasks . R Ċ import Ġcom . element ary . tasks . core . data . models . Reminder Ċ import Ġcom . element ary . tasks . core . fragments . Places Map Fragment Ċ import Ġcom . element ary . tasks . core . interfaces . Map Callback Ċ import Ġcom . element ary . tasks . core . interfaces . Map Listener Ċ import Ġcom . element ary . tasks . core . utils . Permissions Ċ import Ġcom . element ary . tasks . core . utils . Time Util Ċ import Ġcom . element ary . tasks . core . utils . fadeIn Animation Ċ import Ġcom . element ary . tasks . core . utils . fadeOut Animation Ċ import Ġcom . element ary . tasks . core . utils . isVisible Ċ import Ġcom . element ary . tasks . core . utils . visible G one Ċ import Ġcom . element ary . tasks . core . views . Action View Ċ import Ġcom . element ary . tasks . databinding . Fragment Reminder Place Binding Ċ import Ġcom . google . android . gms . maps . model . LatLng Ċ import Ġtim ber . log . Tim ber Ċ Ċ class ĠPl aces Type Fragment Ġ: ĠRadius Type Fragment < Fragment Reminder Place Binding >() Ġ{ ĊĊĠ Ġprivate Ġvar Ġm Places Map : ĠPl aces Map Fragment ? Ġ= Ġnull ĊĠ Ġprivate Ġval Ġm Listener Ġ= Ġobject Ġ: ĠMap Listener Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġplace Changed ( place : ĠLat Lng , Ġaddress : ĠString ) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Zoom Click ( is Full : ĠBoolean ) Ġ{ ĊĠĠĠĠĠ Ġi Face . set FullScreen Mode ( is Full ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Click () Ġ{ ĊĠĠĠĠĠ Ġif Ġ(! is Tablet ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmap Ġ= Ġm Places Map Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġif Ġ( map . is Fullscreen ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġmap . is Fullscreen Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠ Ġi Face . set FullScreen Mode ( false ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( binding . map Container . visibility Ġ== ĠView . VISIBLE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġbinding . map Container . fadeOut Animation () ĊĠĠĠĠĠĠĠĠĠ Ġbinding . scroll View . fadeIn Animation () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġrecreate Marker () Ġ{ ĊĠĠĠ Ġm Places Map ?. re create Marker () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġprepare (): ĠRem inder ? Ġ{ ĊĠĠĠ Ġif Ġ(! Permissions . ensure Foreground ( require Activity (), ĠREQ _ FO REG ROUND )) Ġ{ ĊĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ(! Permissions . is Bg Location Allowed ( require Activity ())) Ġ{ ĊĠĠĠĠĠ Ġshow Bg Location Popup () ĊĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġreminder Ġ= Ġsuper . prepare () Ġ?: Ġreturn Ġnull ĊĠĠĠ Ġval Ġmap Ġ= Ġm Places Map Ġ?: Ġreturn Ġnull ĊĠĠĠ Ġvar Ġtype Ġ= ĠRem inder . BY _ PL ACES ĊĠĠĠ Ġval Ġplaces Ġ= Ġmap . places ĊĠĠĠ Ġif Ġ( places . isEmpty ()) Ġ{ ĊĠĠĠĠĠ Ġi Face . show Snackbar ( getString ( R . string . you _ dont _ select _ place )) ĊĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ( TextUtils . isEmpty ( reminder . summary )) Ġ{ ĊĠĠĠĠĠ Ġbinding . task Layout . error Ġ= ĠgetString ( R . string . task _ summary _ is _ empty ) ĊĠĠĠĠĠ Ġbinding . task Layout . isError Enabled Ġ= Ġtrue ĊĠĠĠĠĠ Ġmap . invoke Back () ĊĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĠĠĠ Ġvar Ġnumber Ġ= Ġ"" ĊĠĠĠ Ġif Ġ( binding . action View . has Action ()) Ġ{ ĊĠĠĠĠĠ Ġnumber Ġ= Ġbinding . action View . number ĊĠĠĠĠĠ Ġif Ġ( TextUtils . isEmpty ( number )) Ġ{ ĊĠĠĠĠĠĠĠ Ġi Face . show Snackbar ( getString ( R . string . you _ dont _ insert _ number )) ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġtype Ġ= Ġif Ġ( binding . action View . type Ġ== ĠAction View . TYPE _ CALL ) Ġ{ ĊĠĠĠĠĠĠĠ ĠRem inder . BY _ PL ACES _ CALL ĊĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ ĠRem inder . BY _ PL ACES _ SMS ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreminder . places Ġ= Ġplaces ĊĠĠĠ Ġreminder . target Ġ= Ġnumber ĊĠĠĠ Ġreminder . type Ġ= Ġtype ĊĠĠĠ Ġreminder . export To Calendar Ġ= Ġfalse ĊĠĠĠ Ġreminder . export To Tasks Ġ= Ġfalse ĊĠĠĠ Ġreminder . has Reminder Ġ= Ġbinding . attack Delay . isChecked ĊĠĠĠ Ġreminder . after Ġ= Ġ 0 L ĊĠĠĠ Ġreminder . delay Ġ= Ġ 0 ĊĠĠĠ Ġreminder . event Count Ġ= Ġ 0 ĊĠĠĠ Ġreminder . repeat Interval Ġ= Ġ 0 ĊĠĠĠ Ġif Ġ( binding . attack Delay . isChecked ) Ġ{ ĊĠĠĠĠĠ Ġval ĠstartTime Ġ= Ġbinding . date View . dateTime ĊĠĠĠĠĠ Ġreminder . startTime Ġ= ĠTime Util . get G mt From DateTime ( startTime ) ĊĠĠĠĠĠ Ġreminder . event Time Ġ= ĠTime Util . get G mt From DateTime ( startTime ) ĊĠĠĠĠĠ ĠTim ber . d (" EVENT _ TIME Ġ% s ", ĠTime Util . getFull DateTime ( startTime , Ġtrue )) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ Ġreminder . event Time Ġ= Ġ"" ĊĠĠĠĠĠ Ġreminder . startTime Ġ= Ġ"" ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġreminder ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġshow Bg Location Popup () Ġ{ ĊĠĠĠ Ġdialog ues . get Material Dialog ( require Context ()) ĊĠĠĠĠĠ Ġ. setMessage ( R . string . bg _ location _ message ) ĊĠĠĠĠĠ Ġ. set Positive Button ( R . string . allow ) Ġ{ Ġdialog , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠ ĠPermissions . ensure Background Location ( require Activity (), ĠLocation Fragment . REQ _ BG _ LOCATION ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ. set Negative Button ( R . string . do _ not _ allow ) Ġ{ Ġdialog , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ. create () ĊĠĠĠĠĠ Ġ. show () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġinf late ( ĊĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠ Ġ) Ġ= ĠFragment Reminder Place Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĊĠ Ġoverride Ġfun Ġprovide Views () Ġ{ ĊĠĠĠ Ġset Views ( ĊĠĠĠĠĠ Ġscroll View Ġ= Ġbinding . scroll View , ĊĠĠĠĠĠ Ġexpansion Layout Ġ= Ġbinding . more Layout , ĊĠĠĠĠĠ Ġled Picker View Ġ= Ġbinding . led View , ĊĠĠĠĠĠ Ġextra View Ġ= Ġbinding . tune Extra View , ĊĠĠĠĠĠ Ġme lo dy View Ġ= Ġbinding . me lo dy View , ĊĠĠĠĠĠ Ġattachment View Ġ= Ġbinding . attachment View , ĊĠĠĠĠĠ Ġgroup View Ġ= Ġbinding . group View , ĊĠĠĠĠĠ Ġsummary View Ġ= Ġbinding . task Summary , ĊĠĠĠĠĠ ĠdateTime View Ġ= Ġbinding . date View , ĊĠĠĠĠĠ Ġlo ud ness Picker View Ġ= Ġbinding . loud ness View , ĊĠĠĠĠĠ Ġpriority Picker View Ġ= Ġbinding . priority View , ĊĠĠĠĠĠ Ġwindow Type View Ġ= Ġbinding . window Type View , ĊĠĠĠĠĠ Ġaction View Ġ= Ġbinding . action View ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon New Header ( new Header : ĠString ) Ġ{ ĊĠĠĠ Ġbinding . card Summary . text Ġ= Ġnew Header ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠ Ġbinding . map Container . visible G one ( is Tablet ()) ĊĠĠĠ Ġbinding . map Button . visible G one (! is Tablet ()) ĊĊĠĠĠ Ġval Ġplaces Map Ġ= ĠPl aces Map Fragment () ĊĠĠĠ Ġplaces Map . set Listener ( m Listener ) ĊĠĠĠ Ġplaces Map . set Callback ( object Ġ: ĠMap Callback Ġ{ ĊĠĠĠĠĠ Ġoverride Ġfun Ġon Map Ready () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Places Map ?. select Markers ( i Face . reminder State . reminder . places ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) ĊĠĠĠ Ġplaces Map . marker Radius Ġ= Ġprefs . radius ĊĠĠĠ Ġplaces Map . set Marker Style ( prefs . marker Style ) ĊĠĠĠ Ġfragment Manager ?. beginTransaction () ĊĠĠĠĠĠ Ġ? . replace ( binding . map Frame . id , Ġplaces Map ) ĊĠĠĠĠĠ Ġ? . addTo Back Stack ( null ) ĊĠĠĠĠĠ Ġ? . commit () ĊĠĠĠ Ġthis . m Places Map Ġ= Ġplaces Map ĊĊĠĠĠ Ġbinding . tune Extra View . has Auto Extra Ġ= Ġfalse ĊĊĠĠĠ Ġbinding . delay Layout . visibility Ġ= ĠView . GONE ĊĠĠĠ Ġbinding . attack Delay . setOn Checked ChangeListener Ġ{ Ġ_, Ġis Checked Ġ-> ĊĠĠĠĠĠ Ġi Face . reminder State . is Delay Added Ġ= Ġis Checked ĊĠĠĠĠĠ Ġif Ġ( isChecked ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . delay Layout . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . delay Layout . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġbinding . attack Delay . isChecked Ġ= Ġi Face . reminder State . is Delay Added ĊĠĠĠ Ġbinding . map Button . setOnClickListener Ġ{ Ġtoggle Map () Ġ} ĊĠĠĠ Ġedit Reminder () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġupdate Actions () Ġ{ ĊĠĠĠ Ġif Ġ( binding . action View . has Action ()) Ġ{ ĊĠĠĠĠĠ Ġif Ġ( binding . action View . type Ġ== ĠAction View . TYPE _ MESSAGE ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . tune Extra View . has Auto Extra Ġ= Ġfalse ĊĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . tune Extra View . has Auto Extra Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġbinding . tune Extra View . hint Ġ= ĠgetString ( R . string . enable _ making _ phone _ calls _ autom atically ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ Ġbinding . tune Extra View . has Auto Extra Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġtoggle Map () Ġ{ ĊĠĠĠ Ġif Ġ(! is Tablet ()) Ġ{ ĊĠĠĠĠĠ Ġif Ġ( binding . map Container . isVisible ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . map Container . fadeOut Animation () ĊĠĠĠĠĠĠĠ Ġbinding . scroll View . fadeIn Animation () ĊĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . scroll View . fadeOut Animation () ĊĠĠĠĠĠĠĠ Ġbinding . map Container . fadeIn Animation () ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Back Pressed (): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġm Places Map Ġ== Ġnull Ġ|| Ġm Places Map !!. on Back Pressed () ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġedit Reminder () Ġ{ ĊĠĠĠ Ġval Ġreminder Ġ= Ġi Face . reminder State . reminder ĊĠĠĠ ĠTim ber . d (" edit Reminder : Ġ% s ", Ġreminder ) ĊĠĠĠ Ġif Ġ( reminder . event Time Ġ!= Ġ"" Ġ&& Ġreminder . has Reminder ) Ġ{ ĊĠĠĠĠĠ Ġbinding . date View . set DateTime ( reminder . event Time ) ĊĠĠĠĠĠ Ġbinding . attack Delay . isChecked Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġconst Ġval ĠREQ _ FO REG ROUND Ġ= Ġ 2 1 2 1 ĊĠĠĠ Ġconst Ġval ĠREQ _ BG _ LOCATION Ġ= Ġ 2 1 2 2 ĊĠ Ġ} Ċ } Ċ