package Ġcom . alf resco . auth . fragments Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . pm . Activity Info Ċ import Ġandroid . os . Bundle Ċ 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 Ġandroidx . appcompat . app . AppCompat Dialog Fragment Ċ import Ġandroidx . fragment . app . Dialog Fragment Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġcom . alf resco . android . aim s . R Ċ import Ġcom . alf resco . ui . Bottom Sheet Dialog Fragment Ċ Ċ /** Ċ Ġ* ĠHelper Ġclass Ġto Ġcreate Ġscreen - depend ant Ġdialog Ċ Ġ*/ Ċ class ĠSigned Out Fragment Ġprivate Ġconstructor () Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġval ĠTAG : ĠString Ġ= ĠSigned Out Bottom Sheet :: class . java . name ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġwith ( context : ĠContext , Ġadapter : ĠSigned Out Adapter ): ĠDialog Fragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( context . resources . getBoolean ( R . bool . is Tablet )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSigned Out Dialog ( adapter ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSigned Out Bottom Sheet ( adapter ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġaccount View With ( fr : ĠFragment , Ġcontainer : ĠViewGroup , Ġtitle : ĠString , Ġsubtitle : ĠString ): ĠView Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġfr . layout Inflater . inflate ( R . layout . layout _ auth _ account _ row , Ġcontainer , Ġfalse ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . findViewById < TextView >( R . id . title ). text Ġ= Ġtitle ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . findViewById < TextView >( R . id . subtitle ). text Ġ= Ġsubtitle ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . findViewById < ImageView >( R . id . icon ). setImage Resource ( R . drawable . ic _ person ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ interface ĠSigned Out Adapter Ġ{ ĊĠĠĠ Ġfun Ġon SignIn Button Clicked ( fragment : ĠDialog Fragment , Ġview : ĠView ) ĊĠĠĠ Ġfun Ġon Add Account Button Clicked ( fragment : ĠDialog Fragment , Ġview : ĠView ) ĊĠĠĠ Ġfun ĠnumberOf Accounts (): ĠInt ĊĠĠĠ Ġfun Ġview For Account ( fragment : ĠDialog Fragment , Ġcontainer : ĠViewGroup , Ġindex : ĠInt ): ĠView Ċ } Ċ Ċ class ĠSigned Out Bottom Sheet () Ġ: ĠBottom Sheet Dialog Fragment () Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġadapter : ĠSigned Out Adapter ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠSigned Out Fragment ViewModel Ġby Ġview Models () ĊĠĠĠ Ġprivate Ġvar Ġactivity Orientation : ĠInt Ġ= ĠActivity Info . SCREEN _ OR IENTATION _ UNSPECIFIED ĊĊĠĠĠ Ġconstructor ( adapter : ĠSigned Out Adapter ) Ġ: Ġthis () Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . adapter Ġ= Ġadapter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . fragment _ auth _ signed _ out , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( adapter Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . adapter Ġ= Ġadapter !! ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= ĠviewModel . adapter ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġon View Created ( this , Ġview , ĠviewModel . adapter ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Source Locked Orientation Activity ") ĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĊĠĠĠĠĠĠĠ Ġactivity ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity Orientation Ġ= Ġit . requested Orientation ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . requested Orientation Ġ= ĠActivity Info . SCREEN _ OR IENTATION _ POR TRA IT ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĊĠĠĠĠĠĠĠ Ġactivity ?. requested Orientation Ġ= Ġactivity Orientation ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwith ( adapter : ĠSigned Out Adapter ): ĠSigned Out Bottom Sheet Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠSigned Out Dialog () Ġ: ĠAppCompat Dialog Fragment () Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġadapter : ĠSigned Out Adapter ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠSigned Out Fragment ViewModel Ġby Ġview Models () ĊĊĠĠĠ Ġconstructor ( adapter : ĠSigned Out Adapter ) Ġ: Ġthis () Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . adapter Ġ= Ġadapter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . fragment _ auth _ signed _ out , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( adapter Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . adapter Ġ= Ġadapter !! ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= ĠviewModel . adapter ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġon View Created ( this , Ġview , ĠviewModel . adapter ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĊĠĠĠĠĠĠĠ Ġdialog ?. window ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . setLayout ( resources . get Dimension ( R . dim en . auth _ dialog _ max _ width ). toInt (), Ġit . attributes . height ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠUsed Ġas Ġa Ġlife - cycle Ġaware Ġholder Ġfor Ġthe Ġadapter Ċ Ġ*/ Ċ class ĠSigned Out Fragment ViewModel Ġ: ĠViewModel () Ġ{ ĊĠĠĠ Ġlateinit Ġvar Ġadapter : ĠSigned Out Adapter Ċ } Ċ Ċ private Ġfun Ġon View Created ( self : ĠAppCompat Dialog Fragment , Ġview : ĠView , Ġadapter : ĠSigned Out Adapter ) Ġ{ ĊĊĠĠĠ Ġ// ĠDisable Ġdis missing Ġthe Ġdialog ĊĠĠĠ Ġself . is Cancel able Ġ= Ġfalse ĊĊĠĠĠ Ġ// ĠAdd Ġbutton Ġinteraction ĊĠĠĠ Ġval Ġsign In Button Ġ= Ġview . findViewById < Button >( R . id . sign _ in _ button ) ĊĠĠĠ Ġsign In Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġadapter . on SignIn Button Clicked ( self , Ġit ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġadd Account Button Ġ= Ġview . findViewById < ViewGroup >( R . id . add _ account _ button ) ĊĠĠĠ Ġadd Account Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġadapter . on Add Account Button Clicked ( self , Ġit ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠBuild Ġitem Ġlist ĊĠĠĠ Ġval Ġcontainer Ġ= Ġview . findViewById < LinearLayout >( R . id . accounts _ container ) ĊĠĠĠ Ġval Ġsection Ġ= Ġview . findViewById < LinearLayout >( R . id . accounts _ section ) ĊĠĠĠ Ġval Ġcount Ġ= Ġadapter . numberOf Accounts () ĊĊĠĠĠ Ġif Ġ( count Ġ<= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsection . visibility Ġ= ĠView . GONE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġcount ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontainer . addView ( adapter . view For Account ( self , Ġcontainer , Ġi )) ĊĠĠĠ Ġ} Ċ } Ċ