/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 Ġ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 . ui . core . pointer input Ċ Ċ import Ġandroid . view . Motion Event Ċ import Ġandroid . view . Motion Event . ACTION _ POINTER _ UP Ċ import Ġandroid . view . Motion Event . ACTION _ UP Ċ import Ġandroidx . ui . core . Pointer InputData Ċ import Ġandroidx . ui . core . Px Position Ċ import Ġandroidx . ui . core . Timestamp Ċ import Ġandroidx . ui . core . milliseconds To Timestamp Ċ import Ġandroidx . ui . core . px Ċ Ċ /** Ċ Ġ* ĠConverts ĠAndroid Ġframework Ġ[ Motion Event ] s Ġinto Ġ[ Pointer Input Event ] s . Ċ Ġ*/ Ċ internal Ġfun ĠMotion Event . to Pointer Input Event (): ĠPointer Input Event Ġ{ ĊĊĠĠĠ Ġval Ġup Index Ġ= Ġwhen Ġ( this . action Mask ed ) Ġ{ ĊĠĠĠĠĠĠĠ ĠACTION _ POINTER _ UP Ġ-> Ġthis . action Index ĊĠĠĠĠĠĠĠ ĠACTION _ UP Ġ-> Ġ 0 ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġpointers : ĠMutable List < Pointer Input EventData > Ġ= Ġmutable ListOf () ĊĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġthis . pointer Count ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpointers . add ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPointer Input EventData ( this , Ġi , Ġup Index ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn ĠPointer Input Event ( event Time . milliseconds To Timestamp (), Ġpointers ) Ċ } Ċ Ċ /** Ċ Ġ* ĠCreates Ġa Ġnew ĠPointer . Ċ Ġ*/ Ċ private Ġfun ĠPointer Input EventData ( ĊĠĠĠ Ġmotion Event : ĠMotion Event , ĊĠĠĠ Ġindex : ĠInt , ĊĠĠĠ Ġup Index : ĠInt ? Ċ ): ĠPointer Input EventData Ġ{ ĊĠĠĠ Ġreturn ĠPointer Input EventData ( ĊĠĠĠĠĠĠĠ Ġmotion Event . get Pointer Id ( index ), ĊĠĠĠĠĠĠĠ ĠPointer InputData ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmotion Event . event Time . milliseconds To Timestamp (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmotion Event , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġup Index ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) Ċ } Ċ Ċ /** Ċ Ġ* ĠCreates Ġa Ġnew ĠPointer Data . Ċ Ġ*/ Ċ private Ġfun ĠPointer InputData ( ĊĠĠĠ Ġtimestamp : ĠTimestamp , ĊĠĠĠ Ġmotion Event : ĠMotion Event , ĊĠĠĠ Ġindex : ĠInt , ĊĠĠĠ Ġup Index : ĠInt ? Ċ ): ĠPointer InputData Ġ{ ĊĠĠĠ Ġval Ġpointer Coords Ġ= ĠMotion Event . Pointer Coords () ĊĠĠĠ Ġmotion Event . get Pointer Coords ( index , Ġpointer Coords ) ĊĠĠĠ Ġval Ġoffset Ġ= ĠPx Position ( pointer Coords . x . px , Ġpointer Coords . y . px ) ĊĊĠĠĠ Ġreturn ĠPointer InputData ( ĊĠĠĠĠĠĠĠ Ġtimestamp , ĊĠĠĠĠĠĠĠ Ġoffset , ĊĠĠĠĠĠĠĠ Ġindex Ġ!= Ġup Index ĊĠĠĠ Ġ) Ċ }