package Ġcom . map swith me . maps . editor Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . InputType Ċ import Ġandroid . text . TextUtils Ċ import Ġandroid . util . Sparse Array Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . View Tree Observer Ċ import Ġandroid . widget . EditText Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . annotation . Call Super Ċ import Ġandroidx . annotation . Drawable Res Ċ import Ġandroidx . annotation . String Res Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroidx . appcompat . widget . Switch Compat Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġandroidx . recyclerview . widget . RecyclerView . Adapter Data Observer Ċ import Ġcom . google . android . material . text field . TextInput Layout Ċ import Ġcom . map swith me . maps . Framework Ċ import Ġcom . map swith me . maps . R Ċ import Ġcom . map swith me . maps . base . Base M wm Fragment Ċ import Ġcom . map swith me . maps . bookmarks . data . Metadata . Metadata Type Ċ import Ġcom . map swith me . maps . dialog . EditText Dialog Fragment Ċ import Ġcom . map swith me . maps . dialog . EditText Dialog Fragment . EditText DialogInterface Ċ import Ġcom . map swith me . maps . dialog . EditText Dialog Fragment . On Text Save Listener Ċ import Ġcom . map swith me . maps . editor . data . Time Format Utils Ċ import Ġcom . map swith me . util .* Ċ import Ġcom . map swith me . util . StringUtils . Simple Text Watcher Ċ import Ġorg . solo vy ev . android . views . ll m . Linear LayoutManager Ċ Ċ class ĠEditor Fragment Ġ: ĠBase M wm Fragment (), ĠView . OnClickListener , ĊĠĠĠ ĠEditText DialogInterface Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġm Category : ĠTextView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Card Name : ĠView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Card Address : ĠView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Card Metadata : ĠView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Names View : ĠRecyclerView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġm Names Observer : ĠAdapter Data Observer Ġ= Ġobject Ġ: ĠAdapter Data Observer () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonChanged () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Names Caption () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Range Changed ( position Start : ĠInt , Ġitem Count : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Names Caption () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Range Inserted ( position Start : ĠInt , Ġitem Count : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Names Caption () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Range Removed ( position Start : ĠInt , Ġitem Count : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Names Caption () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Range Moved ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom Position : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġto Position : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Count : ĠInt ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Names Caption () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġvar Ġm Names Adapter : ĠMult il anguage Adapter ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Names Caption : ĠTextView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Add Language : ĠTextView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm More Languages : ĠTextView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Street : ĠTextView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm House Number : ĠEditText ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Zip code : ĠEditText ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Block Levels : ĠView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Building Levels : ĠEditText ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Phone : ĠEditText ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Website : ĠEditText ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Email : ĠEditText ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm C uis ine : ĠTextView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Operator : ĠEditText ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Wifi : ĠSwitch Compat ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Input House Number : ĠText Input Layout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Input Building Levels : ĠText Input Layout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Input Zip code : ĠText Input Layout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Input Phone : ĠText Input Layout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Input Website : ĠText Input Layout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Input Email : ĠText Input Layout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Empty Opening Hours : ĠView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Opening Hours : ĠTextView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Edit Opening Hours : ĠView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Description : ĠEditText ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġm Meta Blocks Ġ= ĠSparse Array < View >( 7 ) ĊĠĠĠ Ġprivate Ġvar Ġm Reset : ĠTextView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Parent : ĠEditor Host Fragment ? Ġ= Ġnull ĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . fragment _ editor , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Call Super ĊĠĠĠ Ġoverride Ġfun Ġon View Created ( ĊĠĠĠĠĠĠĠ Ġview : ĠView , ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Parent Ġ= Ġparent Fragment Ġas ĠEditor Host Fragment ? ĊĠĠĠĠĠĠĠ Ġinit Views ( view ) ĊĠĠĠĠĠĠĠ Ġm Category !!. text Ġ= ĠUtils . get Localized Feature Type ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext !! , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEditor . native Get Category () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġstreet Ġ= ĠEditor . native Get Street () ĊĠĠĠĠĠĠĠ Ġm Street !!. text Ġ= Ġstreet !!. default Name ĊĠĠĠĠĠĠĠ Ġm House Number !!. setText ( Editor . native Get House Number ()) ĊĠĠĠĠĠĠĠ Ġm House Number !!. add TextChanged Listener ( object Ġ: ĠSimple Text Watcher () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon TextChanged ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs : ĠCharSequence , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbefore : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcount : ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUi Utils . setInput Error ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Input House Number !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Editor . native Is House Valid ( s . toString ())) Ġ 0 Ġelse ĠR . string . error _ enter _ correct _ house _ number ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġm Zip code !!. setText ( Editor . native Get Zip Code ()) ĊĠĠĠĠĠĠĠ Ġm Zip code !!. add TextChanged Listener ( object Ġ: ĠSimple Text Watcher () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon TextChanged ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs : ĠCharSequence , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbefore : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcount : ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUi Utils . setInput Error ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Input Zip code !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Editor . native Is Zip code Valid ( s . toString ())) Ġ 0 Ġelse ĠR . string . error _ enter _ correct _ zip _ code ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġm Building Levels !!. setText ( Editor . native Get Building Levels ()) ĊĠĠĠĠĠĠĠ Ġm Building Levels !!. add TextChanged Listener ( object Ġ: ĠSimple Text Watcher () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon TextChanged ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs : ĠCharSequence , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbefore : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcount : ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUi Utils . setInput Error ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Input Building Levels !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Editor . native Is Level Valid ( s . toString ())) Ġ 0 Ġelse ĠR . string . error _ enter _ correct _ store y _ number ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġm Phone !!. setText ( Editor . native Get Phone ()) ĊĠĠĠĠĠĠĠ Ġm Phone !!. add TextChanged Listener ( object Ġ: ĠSimple Text Watcher () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon TextChanged ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs : ĠCharSequence , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbefore : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcount : ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUi Utils . setInput Error ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Input Phone !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Editor . native Is Phone Valid ( s . toString ())) Ġ 0 Ġelse ĠR . string . error _ enter _ correct _ phone ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġm Website !!. setText ( Editor . native Get Website ()) ĊĠĠĠĠĠĠĠ Ġm Website !!. add TextChanged Listener ( object Ġ: ĠSimple Text Watcher () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon TextChanged ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs : ĠCharSequence , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbefore : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcount : ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUi Utils . setInput Error ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Input Website !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Editor . native Is Website Valid ( s . toString ())) Ġ 0 Ġelse ĠR . string . error _ enter _ correct _ web ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġm Email !!. setText ( Editor . native Get Email ()) ĊĠĠĠĠĠĠĠ Ġm Email !!. add TextChanged Listener ( object Ġ: ĠSimple Text Watcher () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon TextChanged ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs : ĠCharSequence , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbefore : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcount : ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUi Utils . setInput Error ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Input Email !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Editor . native Is Email Valid ( s . toString ())) Ġ 0 Ġelse ĠR . string . error _ enter _ correct _ email ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġm C uis ine !!. text Ġ= ĠEditor . native Get Formatted C uis ine () ĊĠĠĠĠĠĠĠ Ġm Operator !!. setText ( Editor . native Get Operator ()) ĊĠĠĠĠĠĠĠ Ġm Wifi !!. isChecked Ġ= ĠEditor . native Has Wifi () ĊĠĠĠĠĠĠĠ Ġrefresh Opening Time () ĊĠĠĠĠĠĠĠ Ġrefresh Editable Fields () ĊĠĠĠĠĠĠĠ Ġrefresh Reset Button () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Save InstanceState ( out State : ĠBundle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Save InstanceState ( out State ) ĊĠĠĠĠĠĠĠ Ġset Ed its () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Ed its (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! validate Fields ()) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ ĠEditor . native Set House Number ( m House Number !!. text . toString ()) ĊĠĠĠĠĠĠĠ ĠEditor . native Set Zip Code ( m Zip code !!. text . toString ()) ĊĠĠĠĠĠĠĠ ĠEditor . native Set Building Levels ( m Building Levels !!. text . toString ()) ĊĠĠĠĠĠĠĠ ĠEditor . native Set Phone ( m Phone !!. text . toString ()) ĊĠĠĠĠĠĠĠ ĠEditor . native Set Website ( m Website !!. text . toString ()) ĊĠĠĠĠĠĠĠ ĠEditor . native Set Email ( m Email !!. text . toString ()) ĊĠĠĠĠĠĠĠ ĠEditor . native Set Has Wifi ( m Wifi !!. isChecked ) ĊĠĠĠĠĠĠĠ ĠEditor . native Set Operator ( m Operator !!. text . toString ()) ĊĠĠĠĠĠĠĠ ĠEditor . native Set Names ( m Parent !!. names As Array ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġdescription : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġm Description !!. text . toString (). trim Ġ{ Ġit Ġ<= Ġ' Ġ' Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġvalidate Fields (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Editor . native Is Address Editable ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! Editor . native Is House Valid ( m House Number !!. text . toString ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm House Number !!. request Focus () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInput Utils . show Keyboard ( m House Number ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! Editor . native Is Level Valid ( m Building Levels !!. text . toString ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Building Levels !!. request Focus () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInput Utils . show Keyboard ( m Building Levels ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! Editor . native Is Zip code Valid ( m Zip code !!. text . toString ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Zip code !!. request Focus () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInput Utils . show Keyboard ( m Zip code ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! Editor . native Is Phone Valid ( m Phone !!. text . toString ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Phone !!. request Focus () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInput Utils . show Keyboard ( m Phone ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! Editor . native Is Website Valid ( m Website !!. text . toString ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Website !!. request Focus () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInput Utils . show Keyboard ( m Website ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! Editor . native Is Email Valid ( m Email !!. text . toString ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Email !!. request Focus () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInput Utils . show Keyboard ( m Email ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġvalidate Names () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġvalidate Names (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( pos Ġin Ġ 0 Ġuntil Ġm Names Adapter !!. item Count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlocalized Name Ġ= Ġm Names Adapter !!. getName At Pos ( pos ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Editor . native Is Name Valid ( localized Name . name )) Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname View Ġ= Ġm Names View !!. getChild At ( pos ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname View . request Focus () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInput Utils . show Keyboard ( name View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrefresh Editable Fields () Ġ{ ĊĠĠĠĠĠĠĠ ĠUi Utils . show If ( Editor . native Is Name Editable (), Ġm Card Name ) ĊĠĠĠĠĠĠĠ ĠUi Utils . show If ( Editor . native Is Address Editable (), Ġm Card Address ) ĊĠĠĠĠĠĠĠ ĠUi Utils . show If ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEditor . native Is Building () Ġ&& Ġ! Editor . native Is Point Type (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Block Levels ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġeditable Meta Ġ= ĠEditor . native Get Editable Fields () ĊĠĠĠĠĠĠĠ Ġif Ġ( editable Meta . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUi Utils . hide ( m Card Metadata !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġm Meta Blocks . size ()) ĠUi Utils . hide ( m Meta Blocks . value At ( i )) ĊĠĠĠĠĠĠĠ Ġvar Ġany Editable Meta Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġfor Ġ( type Ġin Ġeditable Meta ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmeta Block Ġ= Ġm Meta Blocks [ type ] Ġ?: Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġany Editable Meta Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUi Utils . show ( meta Block ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠUi Utils . show If ( any Editable Meta , Ġm Card Metadata ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrefresh Opening Time () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġopening Hours Ġ= ĠEditor . native Get Opening Hours () ĊĠĠĠĠĠĠĠ Ġif Ġ( TextUtils . isEmpty ( opening Hours ) Ġ|| Ġ! Opening Hours . native Is Time table String Valid ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopening Hours ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUi Utils . show ( m Empty Opening Hours ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUi Utils . hide ( m Opening Hours , Ġm Edit Opening Hours ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtime tables Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOpen ing Hours . native Time tables FromString ( opening Hours ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontent Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( time tables Ġ== Ġnull ) Ġopening Hours Ġelse ĠTime Format Utils . format Time tables ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime tables ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUi Utils . hide ( m Empty Opening Hours !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUi Utils . setText And Show ( m Opening Hours , Ġcontent ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUi Utils . show ( m Edit Opening Hours ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Names View ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Names Caption Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . findViewById < View >( R . id . show _ additional _ names ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ Ġm Names Caption !!. setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġm Add Language Ġ= Ġview . findViewById < View >( R . id . add _ langs ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ Ġm Add Language !!. setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġm More Languages Ġ= Ġview . findViewById < View >( R . id . more _ names ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ Ġm More Languages !!. setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġm Names View Ġ= Ġview . findViewById < View >( R . id . recycler ) Ġas ĠRecyclerView ĊĠĠĠĠĠĠĠ Ġm Names View !!. is Nested Scrolling Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġm Names View !!. layout Manager Ġ= ĠLinearLayoutManager ( activity ) ĊĠĠĠĠĠĠĠ Ġm Names Adapter Ġ= ĠMult il anguage Adapter ( m Parent ) ĊĠĠĠĠĠĠĠ Ġm Names View !!. adapter Ġ= Ġm Names Adapter ĊĠĠĠĠĠĠĠ Ġm Names Adapter !!. register Adapter Data Observer ( m Names Observer ) ĊĠĠĠĠĠĠĠ Ġval Ġargs Ġ= Ġarguments ĊĠĠĠĠĠĠĠ Ġif Ġ( args Ġ== Ġnull Ġ|| Ġ! args . containsKey ( LAST _ INDEX _ OF _ NAMES _ ARRAY )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Additional Names ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġshow Additional Names ( true ) ĊĊĠĠĠĠĠĠĠ ĠUi Utils . wait Layout ( m Names View !! , ĠView Tree Observer . On Global Layout Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlm Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Names View !!. layout Manager Ġas ĠLinearLayoutManager ? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġposition Ġ= Ġargs . getInt ( LAST _ INDEX _ OF _ NAMES _ ARRAY ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Item Ġ= Ġlm !!. find View By Position ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcv Name Top Ġ= Ġm Card Name !!. top ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Item Top Ġ= Ġname Item !!. top ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . scrollTo ( 0 , Ġcv Name Top Ġ+ Ġname Item Top ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO ( mg ser gio ): ĠUncomment Ġif Ġfocus Ġand Ġkeyboard Ġare Ġrequired . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO ( mg ser gio ): ĠKeyboard Ġdoesn 't Ġwant Ġto Ġhide . ĠOnly Ġpressing Ġback Ġbutton Ġworks . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠView Ġname Item Input Ġ= Ġname Item . findViewById ( R . id . input ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġname Item Input . request Focus (); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠInput Utils . show Keyboard ( name Item Input ); ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Views ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcategory Block Ġ= Ġview . findViewById < View >( R . id . category ) ĊĠĠĠĠĠĠĠ Ġcategory Block . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġ// ĠTODO Ġshow Ġicon Ġand Ġfill Ġit Ġwhen Ġcore Ġwill Ġimplement Ġthat ĊĠĠĠĠĠĠĠ ĠUi Utils . hide ( category Block . findViewById ( R . id . icon )) ĊĠĠĠĠĠĠĠ Ġm Category Ġ= Ġcategory Block . findViewById < View >( R . id . name ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ Ġm Card Name Ġ= Ġview . findViewById ( R . id . cv __ name ) ĊĠĠĠĠĠĠĠ Ġm Card Address Ġ= Ġview . findViewById ( R . id . cv __ address ) ĊĠĠĠĠĠĠĠ Ġm Card Metadata Ġ= Ġview . findViewById ( R . id . cv __ metadata ) ĊĠĠĠĠĠĠĠ Ġinit Names View ( view ) ĊĠĠĠĠĠĠĠ Ġ// ĠAddress ĊĠĠĠĠĠĠĠ Ġview . findViewById < View >( R . id . block _ street ). setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġm Street Ġ= Ġview . findViewById < View >( R . id . street ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ Ġval Ġblock House Number Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . findViewById < View >( R . id . block _ building ) ĊĠĠĠĠĠĠĠ Ġm House Number Ġ= Ġfind Input And Init Block ( block House Number , Ġ 0 , ĠR . string . house _ number ) ĊĠĠĠĠĠĠĠ Ġm Input House Number Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblock House Number . findViewById < View >( R . id . custom _ input ) Ġas ĠText Input Layout ĊĠĠĠĠĠĠĠ Ġval Ġblock Zip code Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . findViewById < View >( R . id . block _ zip code ) ĊĠĠĠĠĠĠĠ Ġm Zip code Ġ= Ġfind Input And Init Block ( block Zip code , Ġ 0 , ĠR . string . editor _ zip _ code ) ĊĠĠĠĠĠĠĠ Ġm Input Zip code Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblock Zip code . findViewById < View >( R . id . custom _ input ) Ġas ĠText Input Layout ĊĠĠĠĠĠĠĠ Ġ// ĠDetails ĊĠĠĠĠĠĠĠ Ġm Block Levels Ġ= Ġview . findViewById ( R . id . block _ levels ) ĊĠĠĠĠĠĠĠ Ġm Building Levels Ġ= Ġfind Input And Init Block ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Block Levels , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . editor _ store y _ number , Ġ 2 5 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġm Building Levels !!. input Type Ġ= ĠInput Type . TYPE _ CLASS _ NUMBER ĊĠĠĠĠĠĠĠ Ġm Input Building Levels Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Block Levels ?. findViewById < View >( R . id . custom _ input ) Ġas ĠText Input Layout ĊĠĠĠĠĠĠĠ Ġval Ġblock Phone Ġ= Ġview . findViewById < View >( R . id . block _ phone ) ĊĠĠĠĠĠĠĠ Ġm Phone Ġ= Ġfind Input And Init Block ( block Phone , ĠR . drawable . ic _ phone , ĠR . string . phone ) ĊĠĠĠĠĠĠĠ Ġm Phone !!. input Type Ġ= ĠInput Type . TYPE _ CLASS _ PHONE ĊĠĠĠĠĠĠĠ Ġm Input Phone Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblock Phone . findViewById < View >( R . id . custom _ input ) Ġas ĠText Input Layout ĊĠĠĠĠĠĠĠ Ġval Ġblock Web Ġ= Ġview . findViewById < View >( R . id . block _ website ) ĊĠĠĠĠĠĠĠ Ġm Website Ġ= Ġfind Input And Init Block ( block Web , ĠR . drawable . ic _ website , ĠR . string . website ) ĊĠĠĠĠĠĠĠ Ġm Website !!. input Type Ġ= ĠInput Type . TYPE _ CLASS _ TEXT Ġor ĠInput Type . TYPE _ TEXT _ VARI ATION _ URI ĊĠĠĠĠĠĠĠ Ġm Input Website Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblock Web . findViewById < View >( R . id . custom _ input ) Ġas ĠText Input Layout ĊĠĠĠĠĠĠĠ Ġval Ġblock Email Ġ= Ġview . findViewById < View >( R . id . block _ email ) ĊĠĠĠĠĠĠĠ Ġm Email Ġ= Ġfind Input And Init Block ( block Email , ĠR . drawable . ic _ email , ĠR . string . email ) ĊĠĠĠĠĠĠĠ Ġm Email !!. input Type Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInput Type . TYPE _ CLASS _ TEXT Ġor ĠInput Type . TYPE _ TEXT _ VARI ATION _ EMAIL _ ADDRESS ĊĠĠĠĠĠĠĠ Ġm Input Email Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblock Email . findViewById < View >( R . id . custom _ input ) Ġas ĠText Input Layout ĊĠĠĠĠĠĠĠ Ġval Ġblock C uis ine Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . findViewById < View >( R . id . block _ cu is ine ) ĊĠĠĠĠĠĠĠ Ġblock C uis ine . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġm C uis ine Ġ= Ġview . findViewById < View >( R . id . cu is ine ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ Ġval Ġblock Operator Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . findViewById < View >( R . id . block _ operator ) ĊĠĠĠĠĠĠĠ Ġm Operator Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfind Input And Init Block ( block Operator , ĠR . drawable . ic _ operator , ĠR . string . editor _ operator ) ĊĠĠĠĠĠĠĠ Ġval Ġblock Wifi Ġ= Ġview . findViewById < View >( R . id . block _ wifi ) ĊĠĠĠĠĠĠĠ Ġm Wifi Ġ= Ġview . findViewById < View >( R . id . sw __ wifi ) Ġas ĠSwitch Compat ĊĠĠĠĠĠĠĠ Ġblock Wifi . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġval Ġblock Opening Hours Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . findViewById < View >( R . id . block _ opening _ hours ) ĊĠĠĠĠĠĠĠ Ġm Edit Opening Hours Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblock Opening Hours . findViewById ( R . id . edit _ opening _ hours ) ĊĠĠĠĠĠĠĠ Ġm Edit Opening Hours ?. setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġm Empty Opening Hours Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblock Opening Hours . findViewById ( R . id . empty _ opening _ hours ) ĊĠĠĠĠĠĠĠ Ġm Empty Opening Hours ?. setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġm Opening Hours Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblock Opening Hours . findViewById < View >( R . id . opening _ hours ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ Ġm Opening Hours !!. setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġval Ġcard More Ġ= Ġview . findViewById < View >( R . id . cv __ more ) ĊĠĠĠĠĠĠĠ Ġm Description Ġ= Ġfind Input ( card More ) ĊĠĠĠĠĠĠĠ Ġcard More . findViewById < View >( R . id . about _ osm ). setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġm Reset Ġ= Ġview . findViewById < View >( R . id . reset ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ Ġm Reset !!. setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġm Meta Blocks . append ( Metadata Type . F MD _ OPEN _ HOUR S . toInt (), Ġblock Opening Hours ) ĊĠĠĠĠĠĠĠ Ġm Meta Blocks . append ( Metadata Type . F MD _ PHONE _ NUMBER . toInt (), Ġblock Phone ) ĊĠĠĠĠĠĠĠ Ġm Meta Blocks . append ( Metadata Type . F MD _ WE BS ITE . toInt (), Ġblock Web ) ĊĠĠĠĠĠĠĠ Ġm Meta Blocks . append ( Metadata Type . F MD _ EMAIL . toInt (), Ġblock Email ) ĊĠĠĠĠĠĠĠ Ġm Meta Blocks . append ( Metadata Type . F MD _ CU IS INE . toInt (), Ġblock C uis ine ) ĊĠĠĠĠĠĠĠ Ġm Meta Blocks . append ( Metadata Type . F MD _ OPERATOR . toInt (), Ġblock Operator ) ĊĠĠĠĠĠĠĠ Ġm Meta Blocks . append ( Metadata Type . F MD _ INTER NET . toInt (), Ġblock Wifi ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfind Input And Init Block ( block With Input : ĠView , Ġ@ Drawable Res Ġicon : ĠInt , Ġ@ String Res Ġhint : ĠInt ): ĠEditText Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfind Input And Init Block ( block With Input , Ġicon , ĠgetString ( hint )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( v : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( v . id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . edit _ opening _ hours , ĠR . id . empty _ opening _ hours , ĠR . id . opening _ hours Ġ-> Ġm Parent !!. edit Time table () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . block _ wifi Ġ-> Ġm Wifi !!. toggle () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . block _ street Ġ-> Ġm Parent !!. edit Street () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . block _ cu is ine Ġ-> Ġm Parent !!. edit C uis ine () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . category Ġ-> Ġm Parent !!. edit Category () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . more _ names , ĠR . id . show _ additional _ names Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(!( m Names Adapter !!. are Additional Languages Shown () Ġ&& Ġ! validate Names ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Additional Names (! m Names Adapter !!. are Additional Languages Shown ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . add _ langs Ġ-> Ġm Parent !!. add Language () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . about _ osm Ġ-> ĠstartActivity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent . ACTION _ VIEW , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUri . parse ( Constants . Url . OS M _ AB OUT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . reset Ġ-> Ġreset () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Additional Names ( show : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Names Adapter !!. show Additional Languages ( show ) ĊĠĠĠĠĠĠĠ Ġrefresh Names Caption () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrefresh Names Caption () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Names Adapter !!. names Count Ġ<= Ġm Names Adapter !!. mandatory Names Count ) Ġset Names Arrow ( 0 Ġ/* Ġarrow ResourceId Ġ*/) Ġ// Ġbind Ġarrow Ġwith Ġempty Ġresource Ġ( do Ġnot Ġdraw Ġarrow ) ĊĠĠĠĠĠĠĠ Ġelse Ġif Ġ( m Names Adapter !!. are Additional Languages Shown ()) Ġset Names Arrow ( R . drawable . ic _ expand _ less ) Ġelse Ġset Names Arrow ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . ic _ expand _ more ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġshow Add Language Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Names Adapter !!. names Count Ġ<= Ġm Names Adapter !!. mandatory Names Count Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Names Adapter !!. are Additional Languages Shown () ĊĠĠĠĠĠĠĠ ĠUi Utils . show If ( show Add Language , Ġm Add Language ) ĊĠĠĠĠĠĠĠ ĠUi Utils . show If (! show Add Language , Ġm More Languages ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠBind Ġarrow Ġin Ġthe Ġtop Ġright Ġcorner Ġof Ġnames Ġcaption Ġwith Ġneeded Ġresource . ĊĠĠĠ Ġprivate Ġfun Ġset Names Arrow (@ Drawable Res Ġarrow ResourceId : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( arrow ResourceId Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Names Caption !!. set Compound Draw ables With Intr insic Bounds ( null , Ġnull , Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm Names Caption !!. set Compound Draw ables With Intr insic Bounds ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGraphics . tint ( activity !! , Ġarrow ResourceId , ĠR . attr . icon Tint ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrefresh Reset Button () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Parent !!. adding New Object ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUi Utils . hide ( m Reset !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( Editor . native Is Map Object Uploaded ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Reset !!. setText ( R . string . editor _ place _ does nt _ exist ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwhen Ġ( Editor . native Get Map Object Status ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEditor . CREATED Ġ-> Ġm Reset !!. setText ( R . string . editor _ remove _ place _ button ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEditor . MODI FIED Ġ-> Ġm Reset !!. setText ( R . string . editor _ reset _ ed its _ button ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEditor . UN TO UCH ED Ġ-> Ġm Reset !!. setText ( R . string . editor _ place _ does nt _ exist ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEditor . DELETED Ġ-> Ġthrow ĠIllegalStateException (" Can 't Ġdelete Ġalready Ġdeleted Ġfeature .") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEditor . OB SO LETE Ġ-> Ġthrow ĠIllegalStateException (" Obsolete Ġobjects Ġcannot Ġbe Ġre verted .") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġreset () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Editor . native Is Map Object Uploaded ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplace Does nt Exist () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwhen Ġ( Editor . native Get Map Object Status ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEditor . CREATED Ġ-> Ġrollback ( Editor . CREATED ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEditor . MODI FIED Ġ-> Ġrollback ( Editor . MODI FIED ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEditor . UN TO UCH ED Ġ-> Ġplace Does nt Exist () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEditor . DELETED Ġ-> Ġthrow ĠIllegalStateException (" Can 't Ġdelete Ġalready Ġdeleted Ġfeature .") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEditor . OB SO LETE Ġ-> Ġthrow ĠIllegalStateException (" Obsolete Ġobjects Ġcannot Ġbe Ġre verted .") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrollback (@ Editor . Feature Status Ġstatus : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtitle : ĠInt ĊĠĠĠĠĠĠĠ Ġval Ġmessage : ĠInt ĊĠĠĠĠĠĠĠ Ġif Ġ( status Ġ== ĠEditor . CREATED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= ĠR . string . editor _ remove _ place _ button ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Ġ= ĠR . string . editor _ remove _ place _ message ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= ĠR . string . editor _ reset _ ed its _ button ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Ġ= ĠR . string . editor _ reset _ ed its _ message ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( activity !! ). setTitle ( message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( title ). toUpperCase () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ Ġdialog , Ġwhich Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEditor . native Rollback Map Object () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFramework . native Po ke Search In Viewport () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Parent !!. on Back Pressed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Negative Button ( getString ( R . string . cancel ). toUpperCase (), Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġplace Does nt Exist () Ġ{ ĊĠĠĠĠĠĠĠ ĠEditText Dialog Fragment . show ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . editor _ place _ does nt _ exist ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . editor _ comment _ hint ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . editor _ report _ problem _ send _ button ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . cancel ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġsave Text Listener : ĠOn Text Save Listener ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġobject Ġ: ĠOn Text Save Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Save Text ( text : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEditor . native Place DoesNotExist ( text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Parent !!. on Back Pressed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġvalidator : ĠEditText Dialog Fragment . Validator ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġobject Ġ: ĠEditText Dialog Fragment . Validator Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġvalidate ( activity : ĠActivity , Ġtext : ĠString ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ! TextUtils . isEmpty ( text ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠLAST _ INDEX _ OF _ NAMES _ ARRAY Ġ= Ġ" Last IndexOf Names Array " ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġfind Input ( block With Input : ĠView ): ĠEditText Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġblock With Input . findViewById < View >( R . id . input ) Ġas ĠEditText ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġfind Input And Init Block ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblock With Input : ĠView ?, Ġ@ Drawable Res Ġicon : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhint : ĠString ĊĠĠĠĠĠĠĠ Ġ): ĠEditText Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( block With Input !!. findViewById < View >( R . id . icon ) Ġas ĠImageView ). setImage Resource ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinput Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġblock With Input . findViewById < View >( R . id . custom _ input ) Ġas ĠText Input Layout ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput . hint Ġ= Ġhint ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġinput . findViewById < View >( R . id . input ) Ġas ĠEditText ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }