package Ġdev . s ag ar . progress _ button _ compose Ċ Ċ import Ġandroid . content . Context . V IB R ATOR _ SERVICE Ċ import Ġandroid . os . V ibration Effect Ċ import Ġandroid . os . V ibr ator Ċ import Ġandroidx . compose . foundation . layout . Padding Values Ċ import Ġandroidx . compose . foundation . layout . size Ċ import Ġandroidx . compose . foundation . shape . Rounded Corner Shape Ċ import Ġandroidx . compose . material . Button Ċ import Ġandroidx . compose . material . Button Defaults Ċ import Ġandroidx . compose . material . Circular Progress Indicator Ċ import Ġandroidx . compose . material . Text Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . graphics . Shape Ċ import Ġandroidx . compose . ui . platform . Local Context Ċ import Ġandroidx . compose . ui . text . TextStyle Ċ import Ġandroidx . compose . ui . unit . Dp Ċ import Ġandroidx . compose . ui . unit . dp Ċ Ċ /** Ċ Ġ* Ġ@ param Ġbutton State ĠCurrent ĠState Ġof ĠButton . Ġeg . LOADING , ĠFIN ISHED Ċ Ġ* Ġ@ param Ġtext ĠText Ġshown Ġon ĠButton Ċ Ġ* Ġ@ param Ġcompleted Text ĠText Ġshown Ġwhen Ġbutton Ġstate Ġis ĠFIN ISHED Ċ Ġ* Ġ@ param Ġmodifier ĠModifier Ġto Ġmodify Ġthe Ġbutton Ċ Ġ* Ġ@ param Ġshape ĠButton ĠShape Ċ Ġ* Ġ@ param ĠprogressBar Stroke Width ĠSt roke ĠWidth Ġof Ġthe Ġprogress Ġbar Ġshown Ġin Ġthe Ġbutton Ċ Ġ* Ġ@ param Ġprogress Button Colors ĠA Ġdata Ġclass Ġwhich Ġcontains Ġthe Ġcolors Ġof Ġthe Ġbutton Ċ Ġ* Ġ@ param Ġprogress Button Elevation ĠA Ġdata Ġclass Ġwhich Ġcontains Ġthe Ġelevation Ġvalues Ġof Ġbutton Ċ Ġ* Ġ@ param Ġtext Style ĠTextStyle Ġto Ġstyle Ġthe Ġtext Ġshown Ġin Ġbutton Ċ Ġ* Ġ@ param ĠonClick Ġlambda Ġfunctions Ġwhich Ġdefines Ġthe Ġaction Ġto Ġbe Ġdone Ġon Ġbutton Ġpress Ċ Ġ*/ Ċ @ Composable Ċ fun ĠProgress Button ( ĊĠĠĠ Ġbutton State : ĠButton State , ĊĠĠĠ Ġtext : ĠString , ĊĠĠĠ Ġcompleted Text : ĠString , ĊĠĠĠ Ġmodifier : ĠModifier Ġ= ĠModifier , ĊĠĠĠ Ġshape : ĠShape Ġ= ĠRo unded Corner Shape ( 4 . dp ), ĊĠĠĠ ĠprogressBar Stroke Width : ĠD p Ġ= Ġ 3 . dp , ĊĠĠĠ Ġprogress Button Colors : ĠProgress Button Colors Ġ= ĠProgress Button Colors (), ĊĠĠĠ Ġprogress Button Elevation : ĠProgress Button Elevation Ġ= ĠProgress Button Elevation (), ĊĠĠĠ Ġtext Style : ĠTextStyle Ġ= Ġdefault TextStyle , ĊĠĠĠ ĠonClick : Ġ() Ġ-> ĠUnit Ċ ) Ġ{ ĊĊĠĠĠ Ġval Ġbtn BackgroundColor Ġ= Ġwhen Ġ( button State ) Ġ{ ĊĠĠĠĠĠĠĠ ĠButton State . LOADING Ġ-> Ġprogress Button Colors . disabled Color ĊĠĠĠĠĠĠĠ ĠButton State . ENABLED Ġ-> Ġprogress Button Colors . backgroundColor ĊĠĠĠĠĠĠĠ ĠButton State . DISABLED Ġ-> Ġprogress Button Colors . disabled Color ĊĠĠĠĠĠĠĠ ĠButton State . FINISHED Ġ-> Ġprogress Button Colors . finished Color ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġvi br ator Ġ= ĠLocal Context . current . getSystem Service ( V IB R ATOR _ SERVICE ) Ġas ĠV ibr ator ĊĠĠĠ Ġval Ġis Enabled Ġ= Ġbutton State Ġ== ĠButton State . ENABLED ĊĠĠĠ Ġval Ġbtn Color Disabled Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( button State Ġ== ĠButton State . FINISHED ) Ġprogress Button Colors . finished Color ĊĠĠĠĠĠĠĠ Ġelse Ġprogress Button Colors . disabled Color ĊĠĠĠ ĠButton ( ĊĠĠĠĠĠĠĠ ĠonClick Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonClick () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvi br ator . vi br ate ( V ibration Effect . create One Shot ( 7 0 L , ĠV ibration Effect . DEFAULT _ AMP LIT UDE )) ĊĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġmodifier , ĊĠĠĠĠĠĠĠ Ġenabled Ġ= Ġis Enabled , ĊĠĠĠĠĠĠĠ Ġshape Ġ= Ġshape , ĊĠĠĠĠĠĠĠ Ġelevation Ġ= ĠButton Defaults . elevation ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdefault Elevation Ġ= Ġprogress Button Elevation . default Elevation , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpressed Elevation Ġ= Ġprogress Button Elevation . elevation On Press ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġcontent Padding Ġ= ĠPadding Values ( 1 6 . dp ), ĊĠĠĠĠĠĠĠ Ġcolors Ġ= ĠButton Defaults . button Colors ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠbackgroundColor Ġ= Ġbtn BackgroundColor , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Color Ġ= Ġprogress Button Colors . content Color , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdisabled BackgroundColor Ġ= Ġbtn Color Disabled ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( button State ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠButton State . LOADING Ġ-> ĠCircular Progress Indicator ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= Ġprogress Button Colors . content Color , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . size ( 2 4 . dp ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstrokeWidth Ġ= ĠprogressBar Stroke Width ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠButton State . FINISHED Ġ-> ĠText ( text Ġ= Ġcompleted Text , Ġstyle Ġ= Ġtext Style ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠText ( text Ġ= Ġtext , Ġstyle Ġ= Ġtext Style ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ