package Ġcom . pl uto . plugins . rooms . db . internal . ui Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . fragment . app . activity ViewModels Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġcom . google . android . material . bottom sheet . Bottom Sheet Behavior Ċ import Ġcom . google . android . material . bottom sheet . Bottom Sheet Dialog Ċ import Ġcom . google . android . material . bottom sheet . Bottom Sheet Dialog Fragment Ċ import Ġcom . pl uto . plugin . utilities . device . Device Ċ import Ġcom . pl uto . plugin . utilities . extensions . set List Ċ import Ġcom . pl uto . plugin . utilities . list . Custom Item Decorator Ċ import Ġcom . pl uto . plugin . utilities . set De bounce ClickListener Ċ import Ġcom . pl uto . plugin . utilities . sharing . Content Share ViewModel Ċ import Ġcom . pl uto . plugin . utilities . sharing . Share able Ċ import Ġcom . pl uto . plugin . utilities . sharing . lazy Content Sh arer Ċ import Ġcom . pl uto . plugin . utilities . view Binding Ċ import Ġcom . pl uto . plugins . rooms . db . R Ċ import Ġcom . pl uto . plugins . rooms . db . databinding . Pl uto Rooms Fragment Table Schema Binding Ċ import Ġcom . pl uto . plugins . rooms . db . internal . Column Model Ċ import Ġcom . pl uto . plugins . rooms . db . internal . Content ViewModel Ċ import Ġcom . pl uto . plugins . rooms . db . internal . Processed Table Contents Ċ import Ġcom . pl uto . plugins . rooms . db . internal . ui . list . column . Column ListAdapter Ċ Ċ class ĠTable Schema Fragment Ġ: ĠBottom Sheet Dialog Fragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġbinding Ġby Ġview Binding ( Pl uto Rooms Fragment Table Schema Binding :: bind ) ĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠContent ViewModel Ġby Ġactivity ViewModels () ĊĠĠĠ Ġprivate Ġval Ġsh arer : ĠContent Share ViewModel Ġby Ġlazy Content Sh arer () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView Ġ= ĊĠĠĠĠĠĠĠ Ġinflater . inflate ( R . layout . pl uto _ rooms ___ fragment _ table _ schema , Ġcontainer , Ġfalse ) ĊĊĠĠĠ Ġoverride Ġfun Ġget Theme (): ĠInt Ġ= ĠR . style . Pl uto Rooms DB Bottom Sheet Dialog ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġdialog ?. setOn Show Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= Ġit Ġas ĠBottom Sheet Dialog ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbottom Sheet Ġ= Ġdialog . findViewById < View >( com . google . android . material . R . id . design _ bottom _ sheet ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . behavior . peek Height Ġ= ĠDevice ( require Context ()). screen . height Px ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . behavior . state Ġ= ĠBottom Sheet Behavior . STATE _ EXP AN DED ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . list . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= ĠColumn ListAdapter () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Item Decoration ( Custom Item Decorator ( require Context ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . share . set De bounce ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . processed Table Content . value ?. first ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsh arer . share ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠShare able ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" Share ĠRow ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġit . to Share Text () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠviewModel . processed Table Content . remove Observer ( table Content Observer ) ĊĠĠĠĠĠĠĠ ĠviewModel . processed Table Content . observe ( view Lifecycle Owner , Ġtable Content Observer ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġtable Content Observer Ġ= ĠObserver < Processed Table Contents > Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . list . set List ( it . first ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun ĠList < Column Model >. to Share Text (): ĠString Ġ{ ĊĠĠĠ Ġval Ġtext Ġ= ĠStringBuilder () ĊĠĠĠ Ġtext . append (" Table ĠSchema \ n ") ĊĠĠĠ ĠforEach Ġ{ ĊĠĠĠĠĠĠĠ Ġtext . append ("${ it . name }: Ġ{\ n ") ĊĠĠĠĠĠĠĠ Ġtext . append ("\ tp ri mary _ key : Ġ${ it . is PrimaryKey }\ n Ġ") ĊĠĠĠĠĠĠĠ Ġtext . append ("\ t type : Ġ${ it . type }, Ġ") ĊĠĠĠĠĠĠĠ Ġif Ġ( it . isNotNull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext . append (" NOT _ NULL \ n ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext . append (" NULL \ n ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġit . defaultValue ?. let Ġ{ Ġdef Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext . append ("\ t default _ value : Ġ$ def \ n ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtext . append (" }\ n ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġtext . toString () Ċ } Ċ