package Ġcom . github . n az 0 1 3 . task er . home Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . lifecycle . ViewModel Providers Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . St agger ed Grid LayoutManager Ċ import Ġcom . github . n az 0 1 3 . task er . R Ċ import Ġcom . github . n az 0 1 3 . task er . arch . Base Fragment Ċ import Ġcom . github . n az 0 1 3 . task er . data . Task Group Ċ import Ġcom . mc xiao ke . ko i . ext . onClick Ċ import Ġkotlinx . android . synt hetic . main . fragment _ home .* Ċ Ċ /** Ċ Ġ* ĠCopyright Ġ 2 0 1 8 ĠN azar ĠS uh ov ich Ċ Ġ* Ġ< p /> Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ġ< p /> Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ġ< p /> Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ class ĠHome Fragment Ġ: ĠBase Fragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġm Adapter : ĠGroups ListAdapter Ġ= ĠGroups ListAdapter () ĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠviewModel : ĠHome ViewModel ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . fragment _ home , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġfab . onClick Ġ{ Ġopen Settings () Ġ} ĊĊĠĠĠĠĠĠĠ Ġm Adapter . callback Ġ= Ġ{ Ġposition , Ġaction Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġperform Action ( position , Ġaction ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( is Tablet () Ġ&& Ġis Horizontal ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtasks List . layout Manager Ġ= ĠSt agger ed Grid LayoutManager ( 2 , ĠSt agger ed Grid LayoutManager . VERTICAL ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtasks List . layout Manager Ġ= ĠLinearLayoutManager ( context ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtasks List . adapter Ġ= Ġm Adapter ĊĠĠĠĠĠĠĠ Ġupdate Empty () ĊĊĠĠĠĠĠĠĠ Ġinit ViewModel () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġperform Action ( group : ĠTask Group , Ġaction : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( action ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGroups ListAdapter . OPEN Ġ-> Ġopen Group ( group ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGroups ListAdapter . ADD Ġ-> Ġopen Add Screen ( group ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġopen Add Screen ( group : ĠTask Group ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdirection Ġ= ĠHome Fragment Directions . action Home Fragment ToAdd Task Fragment () ĊĠĠĠĠĠĠĠ Ġdirection . arg Id Ġ= Ġgroup . id ĊĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( direction ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġopen Group ( group : ĠTask Group ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdirection Ġ= ĠHome Fragment Directions . action Home Fragment To ViewGroup Fragment () ĊĠĠĠĠĠĠĠ Ġdirection . arg Id Ġ= Ġgroup . id ĊĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( direction ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit ViewModel () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Ġ= ĠViewModel Providers . of ( this ). get ( Home ViewModel :: class . java ) ĊĠĠĠĠĠĠĠ ĠviewModel . data . observe ( this , ĠObserver Ġ{ Ġdata Ġ-> Ġif Ġ( data Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Adapter . setData ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Empty () ĊĠĠĠĠĠĠĠ Ġ} Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Empty () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Adapter . item Count Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġempty View . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġempty View . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġopen Settings () Ġ{ ĊĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( Home Fragment Directions . action Home Fragment To Settings Fragment ()) ĊĠĠĠ Ġ} Ċ }