/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 9 ĠS yg ic Ġa . s . ĠAll Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* ĠThis Ġproject Ġis Ġlicensed Ġunder Ġthe ĠMIT ĠLicense . Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ċ Ġ* Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE Ċ Ġ* ĠSOFTWARE . Ċ Ġ*/ Ċ Ċ package Ġcom . sy g ic . maps . module . browse map . detail Ċ Ċ import Ġandroid . os . Parcel Ċ import Ġandroid . os . Parcelable Ċ import Ġcom . sy g ic . maps . module . common . detail . Details View Factory Ċ import Ġcom . sy g ic . sdk . map .` object `. Map Marker Ċ import Ġcom . sy g ic . sdk . map .` object `. Ui Object Ċ import Ġcom . sy g ic . sdk . map .` object `. View Object Ċ import Ġcom . sy g ic . sdk . map .` object `. data . Object Creator Ċ import Ġcom . sy g ic . sdk . map .` object `. data . Ui Object Data Ċ import Ġcom . sy g ic . sdk . map .` object `. data . View Object Data Ċ Ċ internal Ġclass ĠPlace Details Object Ġ: ĠUi Object Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġfactory : ĠDetails View Factory ĊĠĠĠ Ġprivate Ġval Ġview Object : ĠView Object < *> ĊĊĠĠĠ Ġprivate Ġconstructor ( data : ĠUi Object Data , Ġfactory : ĠDetails View Factory , Ġview Object : ĠView Object <* >) Ġ: Ġsuper ( data ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . factory Ġ= Ġfactory ĊĠĠĠĠĠĠĠ Ġthis . view Object Ġ= Ġview Object ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġcreate ( data : ĠView Object Data , Ġfactory : ĠDetails View Factory , Ġview Object : ĠView Object <* >) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUi Object Data . Builder ( data . position , ĠPlace Data Details Factory ( factory , Ġdata ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠObject Creator Ġ{ Ġui Data Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPlace Details Object ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġui Data , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfactory , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Object ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () Ġas ĠPlace Details Object ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Field ĊĠĠĠĠĠĠĠ Ġval ĠCRE ATOR : ĠParcel able . Creator < Place Details Object > Ġ= Ġobject Ġ: ĠParcel able . Creator < Place Details Object > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcreate From Parcel ( parcel : ĠParcel ): ĠPlace Details Object Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠPlace Details Object ( parcel ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġnew Array ( size : ĠInt ): ĠArray < Place Details Object ?> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠarrayOf Null s ( size ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Measured ( width : ĠInt , Ġheight : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Measured ( width , Ġheight ) ĊĊĠĠĠĠĠĠĠ Ġval Ġmarker Height : ĠInt Ġ= Ġif Ġ( view Object Ġis ĠMap Marker ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Object . data . bitmap Factory . get Bitmap ( view ?. context !! )?. height Ġ?: Ġ 0 Ġelse Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġ// FIX ME : Ġmodifying Ġanchor Ġafter Ġaddition Ġwe Ġbreak ĠhashCode Ġequality !!! ĊĠĠĠĠĠĠĠ Ġdata . anchor . x Ġ= Ġ 0 . 5 f Ġ- Ġ( factory . getX Offset () Ġ/ Ġwidth ) ĊĠĠĠĠĠĠĠ Ġdata . anchor . y Ġ= Ġ 1 f Ġ+ Ġ(( marker Height Ġ+ Ġfactory . getY Offset ()) Ġ/ Ġheight ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġother Ġas ĠPlace Details Object ĊĊĠĠĠĠĠĠĠ Ġif Ġ( factory Ġ!= Ġother . factory ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( view Object Ġ!= Ġother . view Object ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġif Ġ( super . equals ( other )) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġ// FIX ME : Ġsee Ġcomment Ġin Ġon Measured ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġsuper . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġfactory . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġview Object . hashCode () ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġconstructor ( parcel : ĠParcel ) Ġ: Ġsuper ( parcel ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfactory Ġ= Ġparcel . read Parcelable ( Details View Factory :: class . java . class Loader ) !! ĊĠĠĠĠĠĠĠ Ġview Object Ġ= Ġparcel . read Parcelable ( View Object :: class . java . class Loader ) !! ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠwriteTo Parcel ( dest : ĠParcel , Ġflags : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . writeTo Parcel ( dest , Ġflags ) ĊĊĠĠĠĠĠĠĠ Ġdest . write Parcelable ( factory , Ġflags ) ĊĠĠĠĠĠĠĠ Ġdest . write Parcelable ( view Object , Ġflags ) ĊĠĠĠ Ġ} Ċ }