package Ġcom . abs int he . lib checker . view . detail Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . core . view . margin Top Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . abs int he . lib checker . R Ċ import Ġcom . abs int he . lib checker . view . A ViewGroup Ċ import Ġcom . abs int he . lib checker . view . app . Bottom Sheet Header View Ċ import Ġcom . abs int he . lib checker . view . app . I Header View Ċ Ċ class ĠApp Info Bottom Sheet View ( context : ĠContext ) Ġ: ĠA ViewGroup ( context ), ĠI Header View Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġheader Ġ= ĠBottom Sheet Header View ( context ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġlayout Params Ġ= ĠLayout Params ( ViewGroup . LayoutParams . MATCH _ PARENT , ĠViewGroup . LayoutParams . WRAP _ CONTENT ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġlaunch Ġ= ĠApp Info Item View ( context ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġlayout Params Ġ= ĠLayout Params ( ViewGroup . LayoutParams . WRAP _ CONTENT , ĠViewGroup . LayoutParams . WRAP _ CONTENT ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . top Margin Ġ= Ġ 2 4 . dp ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġset Icon ( R . drawable . ic _ launch ) ĊĠĠĠĠĠĠĠ Ġset Icon Background Tint Color ( R . color . material _ deep _ purple _ 3 0 0 ) ĊĠĠĠĠĠĠĠ Ġset Icon Tint Color ( Color . WHITE ) ĊĠĠĠĠĠĠĠ Ġset Text ( R . string . app _ info _ launch ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġsetting Ġ= ĠApp Info Item View ( context ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġlayout Params Ġ= ĠLayout Params ( ViewGroup . LayoutParams . WRAP _ CONTENT , ĠViewGroup . LayoutParams . WRAP _ CONTENT ) ĊĠĠĠĠĠĠĠ Ġset Icon ( R . drawable . ic _ settings ) ĊĠĠĠĠĠĠĠ Ġset Icon Background Tint Color ( R . color . material _ blue _ grey _ 3 0 0 ) ĊĠĠĠĠĠĠĠ Ġset Icon Tint Color ( Color . WHITE ) ĊĠĠĠĠĠĠĠ Ġset Text ( R . string . app _ info _ settings ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġlist Ġ= ĠRecyclerView ( context ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġlayout Params Ġ= ĠLayout Params ( ViewGroup . LayoutParams . MATCH _ PARENT , ĠViewGroup . LayoutParams . WRAP _ CONTENT ) ĊĠĠĠĠĠĠĠ Ġover Scroll Mode Ġ= ĠRecyclerView . OVER _ SCROLL _ NE VER ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġset Padding ( 2 4 . dp , Ġ 1 6 . dp , Ġ 2 4 . dp , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġadd View ( header ) ĊĠĠĠĠĠĠĠ Ġadd View ( launch ) ĊĠĠĠĠĠĠĠ Ġadd View ( setting ) ĊĠĠĠĠĠĠĠ Ġadd View ( list ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Measure ( width Measure Spec : ĠInt , Ġheight Measure Spec : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Measure ( width Measure Spec , Ġheight Measure Spec ) ĊĠĠĠĠĠĠĠ Ġheader . auto Measure () ĊĠĠĠĠĠĠĠ Ġval Ġitem Width Ġ= Ġ( meas ured Width Ġ- Ġpadding Start Ġ- Ġpadding End ) Ġ/ Ġ 4 ĊĠĠĠĠĠĠĠ Ġlaunch . measure ( item Width . to Exactly Measure Spec (), Ġlaunch . default Height Measure Spec ( this )) ĊĠĠĠĠĠĠĠ Ġsetting . measure ( item Width . to Exactly Measure Spec (), Ġsetting . default Height Measure Spec ( this )) ĊĠĠĠĠĠĠĠ Ġlist . measure (( meas ured Width Ġ- Ġpadding Start Ġ- Ġpadding End ). to Exactly Measure Spec (), Ġlist . default Height Measure Spec ( this )) ĊĠĠĠĠĠĠĠ Ġset Measured Dimension ( meas ured Width , Ġpadding Top Ġ+ Ġheader . meas ured Height Ġ+ Ġlaunch . margin Top Ġ+ Ġlaunch . meas ured Height Ġ+ Ġlist . meas ured Height Ġ+ Ġpadding Bottom ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Layout ( changed : ĠBoolean , Ġl : ĠInt , Ġt : ĠInt , Ġr : ĠInt , Ġb : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġheader . layout ( 0 , Ġpadding Top ) ĊĠĠĠĠĠĠĠ Ġlaunch . layout ( padding Start , Ġheader . bottom Ġ+ Ġlaunch . margin Top ) ĊĠĠĠĠĠĠĠ Ġsetting . layout ( launch . right , Ġlaunch . top ) ĊĠĠĠĠĠĠĠ Ġlist . layout ( padding Start , Ġlaunch . bottom ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Header View (): ĠBottom Sheet Header View Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġheader ĊĠĠĠ Ġ} Ċ }