/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġandroidx . window . core Ċ Ċ import Ġandroid . graphics . Rect Ċ Ċ /** Ċ Ġ* ĠA Ġwrapper Ġfor Ġ[ Rect ] Ġto Ġhandle Ġcompatibility Ġissues Ġwith ĠAPI Ġ 1 5 . ĠIn ĠAPI Ġ 1 5 , Ġequals Ġand Ċ Ġ* ĠhashCode Ġoperate Ġon Ġthe Ġreference Ġas Ġopposed Ġto Ġthe Ġattributes . ĠThis Ġleads Ġto Ġtest Ġfailures Ċ Ġ* Ġbecause Ġthe Ġdata Ġmatches Ġbut Ġthe Ġequals Ġcheck Ġfails . Ċ Ġ* Ċ Ġ* ĠAlso Ġuseful Ġin Ġunit Ġtests Ġsince Ġyou Ġcan Ġinstantiate Ġ[ Bounds ] Ġin Ġa ĠJVM Ġtest Ġbut Ġwhen Ġyou Ċ Ġ* Ġinstantiate Ġ[ Rect ] Ġyou Ġare Ġusing Ġthe Ġclass Ġfrom Ġthe Ġmock able Ġjar Ġfile . ĠThe Ġmock able Ġjar Ġdoes Ċ Ġ* Ġnot Ġcontain Ġany Ġbehavior Ġor Ġcalculations . Ċ Ġ*/ Ċ internal Ġclass ĠBounds ( ĊĠĠĠ Ġpublic Ġval Ġleft : ĠInt , ĊĠĠĠ Ġpublic Ġval Ġtop : ĠInt , ĊĠĠĠ Ġpublic Ġval Ġright : ĠInt , ĊĠĠĠ Ġpublic Ġval Ġbottom : ĠInt Ċ ) Ġ{ ĊĠĠĠ Ġpublic Ġconstructor ( rect : ĠRect ) Ġ: Ġthis ( rect . left , Ġrect . top , Ġrect . right , Ġrect . bottom ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturn Ġthe Ġ[ Rect ] Ġrepresentation Ġof Ġthe Ġbounds ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġto Rect (): ĠRect Ġ= ĠRect ( left , Ġtop , Ġright , Ġbottom ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġwidth Ġof Ġthe Ġbounds , Ġmay Ġbe Ġnegative . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġval Ġwidth : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġright Ġ- Ġleft ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġheight Ġof Ġthe Ġbounds , Ġmay Ġbe Ġnegative . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġval Ġheight : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġbottom Ġ- Ġtop ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDetermines Ġif Ġthe Ġbounds Ġhas Ġempty Ġarea . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġval ĠisEmpty : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġheight Ġ== Ġ 0 Ġ|| Ġwidth Ġ== Ġ 0 ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ"${ Bounds :: class . java . simple Name } Ġ{ Ġ[$ left ,$ top ,$ right ,$ bottom ] Ġ}" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġother Ġas ĠBounds ĊĊĠĠĠĠĠĠĠ Ġif Ġ( left Ġ!= Ġother . left ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( top Ġ!= Ġother . top ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( right Ġ!= Ġother . right ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( bottom Ġ!= Ġother . bottom ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġleft ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġtop ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġright ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġbottom ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} Ċ }