/* Ċ Ġ* ĠCopyright Ġ 2 0 2 2 . ĠExplo re Ġin ĠH MS . ĠAll Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* Ġ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 Ġcom . h ms . explo rel and marks . utils . view pager _ transform ations Ċ Ċ import Ġandroid . view . View Ċ import Ġandroidx . view pager 2 . widget . ViewPager 2 Ċ Ċ class ĠCube In Rotation Transformation Ġ: ĠView Pager 2 . Page Transformer Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġtransform Page ( page : ĠView , Ġposition : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpage . camera Distance Ġ= Ġ 2 0 0 0 0 f ĊĠĠĠĠĠĠĠ Ġif Ġ( position Ġ< Ġ- 1 ) Ġ{ Ġ// Ġ[- Infinity ,- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠThis Ġpage Ġis Ġway Ġoff - screen Ġto Ġthe Ġleft . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpage . alpha Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( position Ġ<= Ġ 0 ) Ġ{ Ġ// Ġ[- 1 , 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpage . alpha Ġ= Ġ 1 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpage . pivot X Ġ= Ġpage . width . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpage . rotation Y Ġ= Ġ 9 0 Ġ* ĠMath . abs ( position ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( position Ġ<= Ġ 1 ) Ġ{ Ġ// Ġ( 0 , 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpage . alpha Ġ= Ġ 1 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpage . pivot X Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpage . rotation Y Ġ= Ġ- 9 0 Ġ* ĠMath . abs ( position ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ġ// Ġ( 1 , + Infinity ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠThis Ġpage Ġis Ġway Ġoff - screen Ġto Ġthe Ġright . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpage . alpha Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ