package Ġdev . kotlin . utils . size Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . annotation . Dim en Res Ċ import Ġdev . Dev Utils Ċ import Ġdev . base . Dev Variable Ext Ċ import Ġdev . utils . app . Resource Utils Ċ import Ġdev . utils . app . Size Utils Ċ import Ġdev . utils . app . assist . Resource Ass ist Ċ Ċ // Ġ åħ¨å±Ģ ĠApp Ġ éĢĤ éħį åĢ¼ è½¬æį¢ å¿« æį · ç±» Ċ val ĠGLOBAL _ APP _ AUTO _ SIZE Ġ= ĠApp AutoSize () Ċ Ċ /** Ċ Ġ* Ġdetail : ĠApp Ġ éĢĤ éħį åĢ¼ è½¬æį¢ å¿« æį · ç±» Ċ Ġ* Ġ@ author ĠT tt Ċ Ġ* Ġ è¯¥ ç±» ä¸»è¦ģ çĶ¨äºİ åĨħéĥ¨ ç¼ĵåŃĺ éĢĤ éħį åĢ¼ , Ġ ä¾¿ äºİ ç¬¬äºĮ æ¬¡ çĽ´æİ¥ ä»İ ç¼ĵåŃĺ ä¸Ń è¯»åıĸ Ċ Ġ* Ġ ä¹Ł åı¯ ä½¿çĶ¨ Ċ Ġ* ĠSize Utils . dp 2 px ( context , Ġvalue ). toFloat () Ċ Ġ* ĠAuto Size Utils . dp 2 px ( context , Ġvalue ). toFloat () Ċ Ġ*/ Ċ class ĠApp AutoSize Ġ{ ĊĊĠĠĠ Ġ// Ġ= ============ ĊĠĠĠ Ġ// Ġ= Ġå¯¹ å¤ĸ åħ¬ å¼Ģ æĸ¹æ³ķ Ġ= ĊĠĠĠ Ġ// Ġ= ============ ĊĊĠĠĠ Ġval ĠCON VERT Ġ= ĠConvert () ĊĊĠĠĠ Ġ// Ġ= ============ ĊĠĠĠ Ġ// Ġ= Ġ æĹł ĠContext Ġ= ĊĠĠĠ Ġ// Ġ= ============ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġdp Ġ è½¬ Ġpx ĊĠĠĠĠ Ġ* Ġ@ param Ġvalue Ġ å¾ħ è½¬æį¢ åĢ¼ ĊĠĠĠĠ Ġ* Ġ@ return Ġ è½¬æį¢ åĲİ çļĦåĢ¼ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdp 2 px ( value : ĠFloat ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdp 2 px ( null , Ġvalue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġdp Ġ è½¬ Ġpx Ġ( Ġfloat Ġ) ĊĠĠĠĠ Ġ* Ġ@ param Ġvalue Ġ å¾ħ è½¬æį¢ åĢ¼ ĊĠĠĠĠ Ġ* Ġ@ return Ġ è½¬æį¢ åĲİ çļĦåĢ¼ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdp 2 px f ( value : ĠFloat ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdp 2 px f ( null , Ġvalue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġpx Ġ è½¬ Ġdp ĊĠĠĠĠ Ġ* Ġ@ param Ġvalue Ġ å¾ħ è½¬æį¢ åĢ¼ ĊĠĠĠĠ Ġ* Ġ@ return Ġ è½¬æį¢ åĲİ çļĦåĢ¼ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġpx 2 dp ( value : ĠFloat ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġpx 2 dp ( null , Ġvalue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġpx Ġ è½¬ Ġdp Ġ( Ġfloat Ġ) ĊĠĠĠĠ Ġ* Ġ@ param Ġvalue Ġ å¾ħ è½¬æį¢ åĢ¼ ĊĠĠĠĠ Ġ* Ġ@ return Ġ è½¬æį¢ åĲİ çļĦåĢ¼ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġpx 2 dp f ( value : ĠFloat ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġpx 2 dp f ( null , Ġvalue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġsp Ġ è½¬ Ġpx ĊĠĠĠĠ Ġ* Ġ@ param Ġvalue Ġ å¾ħ è½¬æį¢ åĢ¼ ĊĠĠĠĠ Ġ* Ġ@ return Ġ è½¬æį¢ åĲİ çļĦåĢ¼ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġsp 2 px ( value : ĠFloat ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsp 2 px ( null , Ġvalue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġsp Ġ è½¬ Ġpx Ġ( Ġfloat Ġ) ĊĠĠĠĠ Ġ* Ġ@ param Ġvalue Ġ å¾ħ è½¬æį¢ åĢ¼ ĊĠĠĠĠ Ġ* Ġ@ return Ġ è½¬æį¢ åĲİ çļĦåĢ¼ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġsp 2 px f ( value : ĠFloat ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsp 2 px f ( null , Ġvalue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġpx Ġ è½¬ Ġsp ĊĠĠĠĠ Ġ* Ġ@ param Ġvalue Ġ å¾ħ è½¬æį¢ åĢ¼ ĊĠĠĠĠ Ġ* Ġ@ return Ġ è½¬æį¢ åĲİ çļĦåĢ¼ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġpx 2 sp ( value : ĠFloat ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġpx 2 sp ( null , Ġvalue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġpx Ġ è½¬ Ġsp Ġ( Ġfloat Ġ) ĊĠĠĠĠ Ġ* Ġ@ param Ġvalue Ġ å¾ħ è½¬æį¢ åĢ¼ ĊĠĠĠĠ Ġ* Ġ@ return Ġ è½¬æį¢ åĲİ çļĦåĢ¼ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġpx 2 spf ( value : ĠFloat ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġpx 2 spf ( null , Ġvalue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ ĠDimension ĊĠĠĠĠ Ġ* Ġ@ param Ġid Ġresource Ġidentifier ĊĠĠĠĠ Ġ* Ġ@ return ĠDimension ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Dimension (@ Dim en Res Ġid : ĠInt ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Dimension ( null , Ġid ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ ĠDimension ĊĠĠĠĠ Ġ* Ġ@ param Ġid Ġresource Ġidentifier ĊĠĠĠĠ Ġ* Ġ@ return ĠDimension ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Dimension Int (@ Dim en Res Ġid : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Dimension Int ( null , Ġid ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ ĠDimension ĊĠĠĠĠ Ġ* Ġ@ param Ġres Name Ġresource Ġname ĊĠĠĠĠ Ġ* Ġ@ return ĠDimension ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Dimension ( res Name : ĠString ?): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Dimension ( null , Ġres Name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ ĠDimension ĊĠĠĠĠ Ġ* Ġ@ param Ġres Name Ġresource Ġname ĊĠĠĠĠ Ġ* Ġ@ return ĠDimension ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Dimension Int ( res Name : ĠString ?): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Dimension Int ( null , Ġres Name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġ= ========== ĊĠĠĠ Ġ// Ġ= ĠContext Ġ= ĊĠĠĠ Ġ// Ġ= ========== ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġdp Ġ è½¬ Ġpx ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext ĠContext ĊĠĠĠĠ Ġ* Ġ@ param Ġvalue Ġ å¾ħ è½¬æį¢ åĢ¼ ĊĠĠĠĠ Ġ* Ġ@ return Ġ è½¬æį¢ åĲİ çļĦåĢ¼ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdp 2 px ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext ?, ĊĠĠĠĠĠĠĠ Ġvalue : ĠFloat ĊĠĠĠ Ġ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdp 2 px f ( context , Ġvalue ). toInt () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġdp Ġ è½¬ Ġpx Ġ( Ġfloat Ġ) ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext ĠContext ĊĠĠĠĠ Ġ* Ġ@ param Ġvalue Ġ å¾ħ è½¬æį¢ åĢ¼ ĊĠĠĠĠ Ġ* Ġ@ return Ġ è½¬æį¢ åĲİ çļĦåĢ¼ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdp 2 px f ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext ?, ĊĠĠĠĠĠĠĠ Ġvalue : ĠFloat ĊĠĠĠ Ġ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCON VERT . inner Convert ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĠType . dp 2 px , Ġvalue ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġpx Ġ è½¬ Ġdp ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext ĠContext ĊĠĠĠĠ Ġ* Ġ@ param Ġvalue Ġ å¾ħ è½¬æį¢ åĢ¼ ĊĠĠĠĠ Ġ* Ġ@ return Ġ è½¬æį¢ åĲİ çļĦåĢ¼ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġpx 2 dp ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext ?, ĊĠĠĠĠĠĠĠ Ġvalue : ĠFloat ĊĠĠĠ Ġ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġpx 2 dp f ( context , Ġvalue ). toInt () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġpx Ġ è½¬ Ġdp Ġ( Ġfloat Ġ) ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext ĠContext ĊĠĠĠĠ Ġ* Ġ@ param Ġvalue Ġ å¾ħ è½¬æį¢ åĢ¼ ĊĠĠĠĠ Ġ* Ġ@ return Ġ è½¬æį¢ åĲİ çļĦåĢ¼ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġpx 2 dp f ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext ?, ĊĠĠĠĠĠĠĠ Ġvalue : ĠFloat ĊĠĠĠ Ġ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCON VERT . inner Convert ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĠType . px 2 dp , Ġvalue ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġsp Ġ è½¬ Ġpx ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext ĠContext ĊĠĠĠĠ Ġ* Ġ@ param Ġvalue Ġ å¾ħ è½¬æį¢ åĢ¼ ĊĠĠĠĠ Ġ* Ġ@ return Ġ è½¬æį¢ åĲİ çļĦåĢ¼ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġsp 2 px ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext ?, ĊĠĠĠĠĠĠĠ Ġvalue : ĠFloat ĊĠĠĠ Ġ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsp 2 px f ( context , Ġvalue ). toInt () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġsp Ġ è½¬ Ġpx Ġ( Ġfloat Ġ) ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext ĠContext ĊĠĠĠĠ Ġ* Ġ@ param Ġvalue Ġ å¾ħ è½¬æį¢ åĢ¼ ĊĠĠĠĠ Ġ* Ġ@ return Ġ è½¬æį¢ åĲİ çļĦåĢ¼ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġsp 2 px f ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext ?, ĊĠĠĠĠĠĠĠ Ġvalue : ĠFloat ĊĠĠĠ Ġ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCON VERT . inner Convert ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĠType . sp 2 px , Ġvalue ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġpx Ġ è½¬ Ġsp ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext ĠContext ĊĠĠĠĠ Ġ* Ġ@ param Ġvalue Ġ å¾ħ è½¬æį¢ åĢ¼ ĊĠĠĠĠ Ġ* Ġ@ return Ġ è½¬æį¢ åĲİ çļĦåĢ¼ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġpx 2 sp ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext ?, ĊĠĠĠĠĠĠĠ Ġvalue : ĠFloat ĊĠĠĠ Ġ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġpx 2 spf ( context , Ġvalue ). toInt () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġpx Ġ è½¬ Ġsp Ġ( Ġfloat Ġ) ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext ĠContext ĊĠĠĠĠ Ġ* Ġ@ param Ġvalue Ġ å¾ħ è½¬æį¢ åĢ¼ ĊĠĠĠĠ Ġ* Ġ@ return Ġ è½¬æį¢ åĲİ çļĦåĢ¼ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġpx 2 spf ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext ?, ĊĠĠĠĠĠĠĠ Ġvalue : ĠFloat ĊĠĠĠ Ġ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCON VERT . inner Convert ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĠType . px 2 sp , Ġvalue ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ ĠDimension ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext ĠContext ĊĠĠĠĠ Ġ* Ġ@ param Ġid Ġresource Ġidentifier ĊĠĠĠĠ Ġ* Ġ@ return ĠDimension ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Dimension ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext ?, ĊĠĠĠĠĠĠĠ Ġ@ Dim en Res Ġid : ĠInt ĊĠĠĠ Ġ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalue : ĠFloat Ġ= ĠCON VERT . DIM EN _ ID . get Variable Value ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid , Ġcontext ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġif Ġ( value Ġ== Ġ 0 F ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCON VERT . DIM EN _ ID . variable . remove Variable ( id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġvalue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ ĠDimension ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext ĠContext ĊĠĠĠĠ Ġ* Ġ@ param Ġid Ġresource Ġidentifier ĊĠĠĠĠ Ġ* Ġ@ return ĠDimension ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Dimension Int ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext ?, ĊĠĠĠĠĠĠĠ Ġ@ Dim en Res Ġid : ĠInt ĊĠĠĠ Ġ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Dimension ( context , Ġid ). toInt () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ ĠDimension ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext ĠContext ĊĠĠĠĠ Ġ* Ġ@ param Ġres Name Ġresource Ġname ĊĠĠĠĠ Ġ* Ġ@ return ĠDimension ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Dimension ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext ?, ĊĠĠĠĠĠĠĠ Ġres Name : ĠString ? ĊĠĠĠ Ġ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalue : ĠFloat Ġ= ĠCON VERT . DIM EN _ NAME . get Variable Value ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġres Name , Ġcontext ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġif Ġ( value Ġ== Ġ 0 F ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCON VERT . DIM EN _ NAME . variable . remove Variable ( res Name ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġvalue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ ĠDimension ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext ĠContext ĊĠĠĠĠ Ġ* Ġ@ param Ġres Name Ġresource Ġname ĊĠĠĠĠ Ġ* Ġ@ return ĠDimension ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Dimension Int ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext ?, ĊĠĠĠĠĠĠĠ Ġres Name : ĠString ? ĊĠĠĠ Ġ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Dimension ( context , Ġres Name ). toInt () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġ= ============ ĊĠĠĠ Ġ// Ġ= Ġ åħ·ä½ĵ å®ŀçİ° ä»£çłģ Ġ= ĊĠĠĠ Ġ// Ġ= ============ ĊĊĠĠĠ Ġ// Ġ= ============ ĊĠĠĠ Ġ// Ġ= Ġ åĨħéĥ¨ è½¬æį¢ åŃĺåĤ¨ Ġ= ĊĠĠĠ Ġ// Ġ= ============ ĊĊĠĠĠ Ġinternal Ġenum Ġclass ĠType Ġ{ ĊĊĠĠĠĠĠĠĠ Ġdp 2 px , ĊĊĠĠĠĠĠĠĠ Ġpx 2 dp , ĊĊĠĠĠĠĠĠĠ Ġsp 2 px , ĊĊĠĠĠĠĠĠĠ Ġpx 2 sp ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġdetail : Ġ è½¬æį¢ éĢĤ éħį åĢ¼ å°ģè£ħ ĊĠĠĠĠ Ġ* Ġ@ author ĠT tt ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġclass ĠConvert Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// Ġdp Ġ è½¬ Ġpx Ġ( Ġfloat Ġ) ĊĠĠĠĠĠĠĠ Ġval ĠDP _ 2 _ PX : ĠDev Variable Ext < Float , ĠFloat , ĠContext ?> Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDev Variable Ext < Float , ĠFloat , ĠContext ?> Ġ{ Ġkey , Ġcontext Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinner Creator ( context , ĠType . dp 2 px , Ġkey ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġpx Ġ è½¬ Ġdp Ġ( Ġfloat Ġ) ĊĠĠĠĠĠĠĠ Ġval ĠP X _ 2 _ DP : ĠDev Variable Ext < Float , ĠFloat , ĠContext ?> Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDev Variable Ext < Float , ĠFloat , ĠContext ?> Ġ{ Ġkey , Ġcontext Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinner Creator ( context , ĠType . px 2 dp , Ġkey ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġsp Ġ è½¬ Ġpx Ġ( Ġfloat Ġ) ĊĠĠĠĠĠĠĠ Ġval ĠSP _ 2 _ PX : ĠDev Variable Ext < Float , ĠFloat , ĠContext ?> Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDev Variable Ext < Float , ĠFloat , ĠContext ?> Ġ{ Ġkey , Ġcontext Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinner Creator ( context , ĠType . sp 2 px , Ġkey ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġpx Ġ è½¬ Ġsp Ġ( Ġfloat Ġ) ĊĠĠĠĠĠĠĠ Ġval ĠP X _ 2 _ SP : ĠDev Variable Ext < Float , ĠFloat , ĠContext ?> Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDev Variable Ext < Float , ĠFloat , ĠContext ?> Ġ{ Ġkey , Ġcontext Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinner Creator ( context , ĠType . px 2 sp , Ġkey ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġdim en Ġid Ġ åĢ¼ èİ·åıĸ Ġ( Ġfloat Ġ) ĊĠĠĠĠĠĠĠ Ġval ĠDIM EN _ ID : ĠDev Variable Ext < Int , ĠFloat , ĠContext ?> Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDev Variable Ext < Int , ĠFloat , ĠContext ?> Ġ{ Ġkey , Ġcontext Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġctx Ġ= Ġcontext Ġ?: ĠDev Utils . get Top Activity () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResource Utils . get Dimension ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResource Ass ist . get ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDev Utils . getContext ( ctx ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), Ġkey ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġdim en Ġid ĠName Ġ åĢ¼ èİ·åıĸ Ġ( Ġfloat Ġ) ĊĠĠĠĠĠĠĠ Ġval ĠDIM EN _ NAME : ĠDev Variable Ext < String ?, ĠFloat , ĠContext ?> Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDev Variable Ext < String ?, ĠFloat , ĠContext ?> Ġ{ Ġkey , Ġcontext Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġctx Ġ= Ġcontext Ġ?: ĠDev Utils . get Top Activity () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResource Utils . get Dimension ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResource Ass ist . get ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDev Utils . getContext ( ctx ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), Ġkey ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġ= ============== ĊĠĠĠĠĠĠĠ Ġ// Ġ= ĠType Ġ è½¬æį¢ å¤ĦçĲĨ Ġ= ĊĠĠĠĠĠĠĠ Ġ// Ġ= ============== ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ éĢĤ éħį åĢ¼ åĨħéĥ¨ åĪĽå»º å®ŀçİ° ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġcontext ĠContext ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġtype ĠType ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġkey ĠFloat ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠFloat ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġinner Creator ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext : ĠContext ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype : ĠType , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey : ĠFloat ĊĠĠĠĠĠĠĠ Ġ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġctx Ġ= Ġcontext Ġ?: ĠDev Utils . get Top Activity () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠType . dp 2 px Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSize Utils . dp 2 px f ( Dev Utils . getContext ( ctx ), Ġkey ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠType . px 2 dp Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSize Utils . px 2 dp f ( Dev Utils . getContext ( ctx ), Ġkey ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠType . sp 2 px Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSize Utils . sp 2 px f ( Dev Utils . getContext ( ctx ), Ġkey ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠType . px 2 sp Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSize Utils . px 2 spf ( Dev Utils . getContext ( ctx ), Ġkey ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ éĢĤ éħį åĢ¼ åĨħéĥ¨ è½¬æį¢ ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġcontext ĠContext ? ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġtype ĠType ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġkey ĠFloat ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠFloat ĊĠĠĠĠĠĠĠĠ Ġ* Ġ è¯¥ æĸ¹æ³ķ ä¸»è¦ģ è§£åĨ³ åĩºçİ° è½¬æį¢ å¤±è´¥ è¿ĶåĽŀ Ġ 0 ĠçļĦ æĥħåĨµ ĊĠĠĠĠĠĠĠĠ Ġ* Ġ å¯¼èĩ´ åĲİ ç»Ń èİ·åıĸ ç¼ĵåŃĺ åĢ¼ä¸º Ġ 0 Ġ çĽ´æİ¥ è¿ĶåĽŀ ä½¿çĶ¨ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġinner Convert ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext : ĠContext ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype : ĠType , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey : ĠFloat ĊĠĠĠĠĠĠĠ Ġ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠType . dp 2 px Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue : ĠFloat Ġ= ĠDP _ 2 _ PX . get Variable Value ( key , Ġcontext ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value Ġ== Ġ 0 F ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDP _ 2 _ PX . variable . remove Variable ( key ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠType . px 2 dp Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue : ĠFloat Ġ= ĠP X _ 2 _ DP . get Variable Value ( key , Ġcontext ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value Ġ== Ġ 0 F ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠP X _ 2 _ DP . variable . remove Variable ( key ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠType . sp 2 px Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue : ĠFloat Ġ= ĠSP _ 2 _ PX . get Variable Value ( key , Ġcontext ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value Ġ== Ġ 0 F ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSP _ 2 _ PX . variable . remove Variable ( key ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠType . px 2 sp Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue : ĠFloat Ġ= ĠP X _ 2 _ SP . get Variable Value ( key , Ġcontext ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value Ġ== Ġ 0 F ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠP X _ 2 _ SP . variable . remove Variable ( key ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }