package Ġco . com . l af em me app . l af em me app . presentation . utils Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . content . Context Compat Ċ import Ġandroid . text . TextUtils Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroid . widget . TextView Ċ import Ġco . com . l af em me app . core . domain . entities . Appointment Ċ import Ġco . com . l af em me app . l af em me app . App Module Constants Ċ import Ġco . com . l af em me app . l af em me app . R Ċ import Ġco . com . l af em me app . l af em me app . application . La Fem me Application Ċ import Ġco . com . l af em me app . l af em me app . events . On Appointment R ated Event Ċ import Ġco . com . l af em me app . l af em me app . presentation . Base Fragment Ċ import Ġco . com . l af em me app . util module . presentation . view _ interfaces . IF ragment Callbacks Ċ import Ġcom . squareup . pic asso . Memory Policy Ċ import Ġcom . squareup . pic asso . Pic asso Ċ import Ġme . zhang hai . android . material rating bar . Material Rating Bar Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġosc arg all on Ġon Ġ 4 / 2 3 / 1 7 . Ċ Ġ*/ Ċ Ċ class ĠRate Appointment Dialog Fragment Ġ: ĠBase Fragment (), ĠI Rate Appointment Dialog Fragment View Ġ{ ĊĊĠĠĠ Ġvar Ġm TV Rate Status : ĠTextView ? Ġ= Ġnull ĊĊĠĠĠ Ġvar Ġm RB App o it ment Rate : ĠMaterial Rating Bar ? Ġ= Ġnull ĊĊĠĠĠ Ġvar Ġm Rate Appointment Dialog Fragment Presenter : ĠI Rate Appointment Dialog Fragment Presenter ? Ġ= Ġnull ĊĊĠĠĠ Ġvar Ġm LY Options Container : ĠLinearLayout ? Ġ= Ġnull ĊĊĠĠĠ Ġvar Ġm TV Option 1 : ĠTextView ? Ġ= Ġnull ĊĊĠĠĠ Ġvar Ġm TV Option 2 : ĠTextView ? Ġ= Ġnull ĊĊĠĠĠ Ġvar Ġm TV Option 3 : ĠTextView ? Ġ= Ġnull ĊĊĠĠĠ Ġvar Ġm TV Option 4 : ĠTextView ? Ġ= Ġnull ĊĊĠĠĠ Ġvar Ġm BT NS end Rate : ĠButton ? Ġ= Ġnull ĊĊĠĠĠ Ġvar Ġm IV Avatar : ĠImageView ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġm Rate Appointment Dialog Fragment Presenter ?. onCreate ( arguments ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ?): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater !!. inflate ( R . layout . fragment _ full _ screen _ dialog , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView ?, ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġview ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Rate Appointment Dialog Fragment Presenter ?. onCreate View ( view ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( activity : ĠActivity ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( activity ) ĊĠĠĠĠĠĠĠ Ġm Rate Appointment Dialog Fragment Presenter Ġ= ĠRate Appointment Dialog Fragment Presenter ( this , Ġactivity !! ) ĊĠĠĠĠĠĠĠ Ġm Rate Appointment Dialog Fragment Presenter ?. on Attach ( activity Ġas ĠIF ragment Callbacks ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠĠĠĠĠ Ġm Rate Appointment Dialog Fragment Presenter Ġ= ĠRate Appointment Dialog Fragment Presenter ( this , Ġcontext !! ) ĊĠĠĠĠĠĠĠ Ġm Rate Appointment Dialog Fragment Presenter ?. on Attach ( context Ġas ĠIF ragment Callbacks ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit View Components ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm TV Rate Status Ġ= Ġview . findViewById ( R . id . tv _ rate _ status ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ Ġm RB App o it ment Rate Ġ= Ġview . findViewById ( R . id . rb _ appointment _ rate ) Ġas ĠMaterial Rating Bar ĊĠĠĠĠĠĠĠ Ġm LY Options Container Ġ= Ġview . findViewById ( R . id . ly _ option _ buttons _ container ) Ġas ĠLinearLayout ĊĠĠĠĠĠĠĠ Ġm BT NS end Rate Ġ= Ġview . findViewById ( R . id . btn _ send _ rate ) Ġas ĠButton ĊĠĠĠĠĠĠĠ Ġm TV Option 1 Ġ= Ġview . findViewById ( R . id . tv _ option _ 1 ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ Ġm TV Option 2 Ġ= Ġview . findViewById ( R . id . tv _ option _ 2 ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ Ġm TV Option 3 Ġ= Ġview . findViewById ( R . id . tv _ option _ 3 ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ Ġm TV Option 4 Ġ= Ġview . findViewById ( R . id . tv _ option _ 4 ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ Ġm IV Avatar Ġ= Ġview . findViewById ( R . id . iv _ avatar ) Ġas ĠImageView ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Hide Options Buttons ( visibility : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm LY Options Container ?. visibility Ġ= Ġvisibility ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Components () Ġ{ ĊĠĠĠĠĠĠĠ Ġm RB App o it ment Rate . let Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Rate Appointment Dialog Fragment Presenter ?. subscribe To Rating Bar Changes ( m RB App o it ment Rate !! ) ĊĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġm TV Option 1 ?. setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġm TV Option 2 ?. setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġm TV Option 3 ?. setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġm TV Option 4 ?. setOnClickListener ( this ) ĊĊĠĠĠĠĠĠĠ Ġm BT NS end Rate ?. setOnClickListener Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m RB App o it ment Rate Ġ!== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġoptions : ĠString ? Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m TV Option 1 Ġ!== Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġm TV Option 1 !!. tag Ġ!== Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġm TV Option 1 !!. tag Ġas ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions Ġ+= Ġm TV Option 1 !!. text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m TV Option 2 Ġ!== Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġm TV Option 2 !!. tag Ġ!== Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġm TV Option 2 !!. tag Ġas ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions Ġ+= Ġif Ġ( TextUtils . isEmpty ( options )) Ġm TV Option 2 !!. text . toString () Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", Ġ${ m TV Option 2 !!. text }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m TV Option 3 Ġ!== Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġm TV Option 3 !!. tag Ġ!== Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġm TV Option 3 !!. tag Ġas ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions Ġ+= Ġif Ġ( TextUtils . isEmpty ( options )) Ġm TV Option 3 !!. text . toString () Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", Ġ${ m TV Option 3 !!. text }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m TV Option 4 Ġ!== Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġm TV Option 4 !!. tag Ġ!== Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġm TV Option 4 !!. tag Ġas ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions Ġ+= Ġif Ġ( TextUtils . isEmpty ( options )) Ġm TV Option 4 !!. text . toString () Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", Ġ${ m TV Option 4 !!. text }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Rate Appointment Dialog Fragment Presenter ?. send Rate ( options , Ġm RB App o it ment Rate !!. rating ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( view : ĠView ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġif Ġ(( view Ġas ĠTextView ). current TextColor Ġ== Ġresources . getColor ( R . color . color Accent )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . setTextColor ( resources . getColor ( R . color . color Primary )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . background Ġ= Ġresources . get Drawable ( R . drawable . button _ border _ primary _ white _ background ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . tag Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . setTextColor ( Context Compat . getColor ( activity , ĠR . color . color Accent )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . background Ġ= Ġresources . get Drawable ( R . drawable . ter ti ary _ button _ rounded _ background ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . tag Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġchange Status ( status : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm TV Rate Status ?. text Ġ= Ġstatus ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Appointment R ated ( appointment : ĠAppointment ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLa Fem me Application ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get m Bus () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. post ( On Appointment R ated Event ( appointment )) ĊĠĠĠĠĠĠĠ Ġactivity . on Back Pressed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Message ( title : ĠString , Ġdescription : ĠString , Ġaction : ĠString , Ġshow Both Buttons : ĠBoolean ) Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpopulate View () Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Progress Dialog () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . show Progress Dialog () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhide Progress Dialog () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . hide Progress Dialog () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Special ist Avatar ( url : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm IV Avatar ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPic asso . with ( m IV Avatar !!. context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. transform ( Bitmap Transform ( 2 0 0 , Ġ 2 0 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. memory Policy ( Memory Policy . NO _ STORE , ĠMemory Policy . NO _ CACHE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. resize ( 2 0 0 , Ġ 2 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( m IV Avatar !! ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( appointment : ĠAppointment ): ĠRate Appointment Dialog Fragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= ĠRate Appointment Dialog Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= ĠBundle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . put Parcelable ( App Module Constants . VIEW _ HISTORY _ DETAIL , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappointment ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment . arguments Ġ= Ġbundle ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfragment ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ