package Ġcom . sin ase y fi . advanced card view sample Ċ Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ Ċ class ĠCalculator Button ListAdapter : ĠRecyclerView . Adapter < Circular Button ViewHolder >() Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠCircular Button ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCircular Button ViewHolder ( LayoutInflater . from ( parent . context ). inflate ( R . layout . circular _ button _ item , Ġparent , Ġfalse )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ 1 6 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠCircular Button ViewHolder , Ġposition : ĠInt ) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġval Ġlayout Params Ġ= Ġholder . button . layout Params Ċ // ĠĠĠĠĠĠĠ Ġlayout Params . height Ġ= Ġlayout Params . width Ċ // ĠĠĠĠĠĠĠ Ġholder . button . layout Params Ġ= Ġlayout Params ĊĠĠĠĠĠĠĠ Ġval Ġshadow Color Ġ= Ġget Shadow Color ( position ) ĊĠĠĠĠĠĠĠ Ġholder . button . set Shadow Outer Alpha ( 0 , Ġget Alpha ( position )) ĊĠĠĠĠĠĠĠ Ġholder . button . set Shadow Outer Color ( 0 , Ġshadow Color ) ĊĠĠĠĠĠĠĠ Ġholder . button . background _ Color Ġ= Ġget BackgroundColor ( position ) ĊĠĠĠĠĠĠĠ Ġholder . text . text Ġ= Ġget Calculator ButtonText ( position ) ĊĠĠĠĠĠĠĠ Ġholder . text . setTextColor ( getText Color ( position )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Column Num ( position : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ( position Ġ% Ġ 4 ) Ġ+ Ġ 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Row Num ( position : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ( position Ġ/ Ġ 4 ) Ġ+ Ġ 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget TextColor ( position : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcolumn Num Ġ= Ġget Column Num ( position ) ĊĠĠĠĠĠĠĠ Ġval Ġrow Num Ġ= Ġget Row Num ( position ) ĊĠĠĠĠĠĠĠ Ġreturn Ġif ( column Num Ġ== Ġ 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColor . parse Color ("# D 5 1 B 1 B ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif ( column Num Ġ== Ġ 3 Ġ&& Ġrow Num Ġ== Ġ 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColor . parse Color ("# FFFFFF ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColor . parse Color ("# 2 C 4 EB 3 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget BackgroundColor ( position : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcolumn Num Ġ= Ġget Column Num ( position ) ĊĠĠĠĠĠĠĠ Ġval Ġrow Num Ġ= Ġget Row Num ( position ) ĊĠĠĠĠĠĠĠ Ġif ( row Num Ġ== Ġ 4 Ġ&& Ġcolumn Num Ġ== Ġ 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠColor . parse Color ("# 2 C 4 EB 3 ") ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠColor . parse Color ("# F 0 F 5 F 7 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Alpha ( position : ĠInt ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcolumn Num Ġ= Ġget Column Num ( position ) ĊĠĠĠĠĠĠĠ Ġreturn Ġif ( column Num Ġ== Ġ 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 . 0 8 f ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 . 0 8 f ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Shadow Color ( position : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcolumn Num Ġ= Ġget Column Num ( position ) ĊĠĠĠĠĠĠĠ Ġreturn Ġif ( column Num Ġ== Ġ 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠColor . parse Color ("# D 5 1 B 1 B ") ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ ĠColor . parse Color ("# 2 C 4 EB 3 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Calculator ButtonText ( position : ĠInt ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcolumn Num Ġ= Ġget Column Num ( position ) ĊĠĠĠĠĠĠĠ Ġval Ġrow Num Ġ= Ġget Row Num ( position ) ĊĠĠĠĠĠĠĠ Ġif ( column Num Ġ== Ġ 4 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen ( row Num ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ" +" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġ"-" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ-> Ġ" x " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 4 Ġ-> Ġ"/" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif ( row Num Ġ== Ġ 4 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen ( column Num ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ"." ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġ" 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ-> Ġ"=" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ(( row Num Ġ- Ġ 1 ) Ġ* Ġ 3 Ġ+ Ġcolumn Num ). toString () ĊĠĠĠ Ġ} Ċ Ċ }