package Ġcom . my ku y ade mo . utils Ċ Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . databinding . Binding Adapter Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . my ku y ade mo . R Ċ import Ġcom . my ku y ade mo . enums . Main Tab Ċ import Ġcom . my ku y ade mo . utils . extension . getParent Activity Ċ import Ġjava . lang . Exception ĊĊ Ċ @ Binding Adapter (" tab Selected ", Ġ" tab ID ") Ċ fun Ġmain Tab Selected ( ĊĠĠĠ Ġimg : ĠImageView , ĊĠĠĠ Ġtab Selected : ĠMutable LiveData < Main Tab >, ĊĠĠĠ Ġtab ID : ĠMutable LiveData < Main Tab >, Ċ ) Ġ{ ĊĠĠĠ Ġval Ġparent Activity : ĠAppCompatActivity ? Ġ= Ġimg . getParent Activity () ĊĊĠĠĠ Ġif Ġ( parent Activity Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtab Selected . observe ( parent Activity , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( tab ID . value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMain Tab . HOME Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tab ID . value Ġ== Ġtab Selected . value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimg . setImage Resource ( R . drawable . ic _ menu _ home _ active ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimg . setImage Resource ( R . drawable . ic _ menu _ home ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMain Tab . MY _ JOB Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tab ID . value Ġ== Ġtab Selected . value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimg . setImage Resource ( R . drawable . ic _ menu _ my job _ active ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimg . setImage Resource ( R . drawable . ic _ menu _ my job ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMain Tab . SUPPORT Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tab ID . value Ġ== Ġtab Selected . value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimg . setImage Resource ( R . drawable . ic _ menu _ support _ active ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimg . setImage Resource ( R . drawable . ic _ menu _ support ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMain Tab . NE WS Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tab ID . value Ġ== Ġtab Selected . value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimg . setImage Resource ( R . drawable . ic _ menu _ inbox _ active ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimg . setImage Resource ( R . drawable . ic _ menu _ inbox ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tab ID . value Ġ== Ġtab Selected . value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimg . setImage Resource ( R . drawable . ic _ menu _ account _ active ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimg . setImage Resource ( R . drawable . ic _ menu _ account ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ } Ċ @ Binding Adapter (" tab Text Selected ", Ġ" tab Text ID ") Ċ fun Ġmain Tab Selected Text ( ĊĠĠĠ Ġtv : ĠTextView , ĊĠĠĠ Ġtab Text Selected : ĠMutable LiveData < Main Tab >, ĊĠĠĠ Ġtab Text ID : ĠMutable LiveData < Main Tab >, Ċ ) Ġ{ ĊĠĠĠ Ġval Ġparent Activity : ĠAppCompatActivity ? Ġ= Ġtv . getParent Activity () ĊĊĠĠĠ Ġif Ġ( parent Activity Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtab Text Selected . observe ( parent Activity , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tab Text ID . value Ġ== Ġtab Text Selected . value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv . setTextColor ( Context Compat . getColor ( tv . context , ĠR . color . tab _ selected _ color )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv . setTextColor ( Context Compat . getColor ( tv . context , ĠR . color . tab _ color )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Binding Adapter (" adapter ") Ċ fun Ġset Adapter ( view : ĠRecyclerView , Ġadapter : ĠRecyclerView . Adapter <* >) Ġ{ ĊĠĠĠ Ġview . adapter Ġ= Ġadapter Ċ }