package Ġcom . native dev ps . support . custom _ views Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Build Ċ import Ġcom . google . android . material . progress indicator . Circular Progress Indicator Ċ import Ġcom . native dev ps . support . base _ class . dialog . Base Material Dialog Ċ import Ġnative dev ps . support . databinding . D ProgressBar Binding ĊĊ Ċ class ĠProgress Dialog ( context : ĠContext ) Ġ: ĊĠĠĠ ĠBase Material Dialog < D ProgressBar Binding >( context , ĠD ProgressBar Binding :: inflate ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( binding : ĠD ProgressBar Binding ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Message (" Loading .. ") ĊĠĠĠĠĠĠĠ ĠprogressBar . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Progress ( progress Bar . progress Ġ+ Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset In determinate ( boolean : ĠBoolean ): ĠProgress Dialog Ġ{ ĊĠĠĠĠĠĠĠ ĠprogressBar . isIn determinate Ġ= Ġboolean ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Message ( string : ĠString ): ĠProgress Dialog Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . message AppCompat TextView . text Ġ= Ġstring ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Progress ( int : ĠInt ): ĠProgress Dialog Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( int Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( progress Bar . isIn determinate ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar . isIn determinate Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . N ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar . set Progress ( int , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar . progress Ġ= Ġint ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbuild (): ĠProgress Dialog Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! is Showing ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval ĠprogressBar : ĠCircular Progress Indicator Ġget () Ġ= Ġbinding . progress Circular Progress Indicator Ċ }