/* Ċ Ġ* ĠĠĠ ĠCopyright Ġ 2 0 1 9 ĠMa arten Ġde ĠGo ede Ċ Ġ* Ċ Ġ* ĠĠĠ Ġ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 Ċ Ġ* Ċ Ġ* ĠĠĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠĠĠ Ġ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 . Ċ Ġ*/ Ċ Ċ package Ġeu . insert code . portfolio . ui . project Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . navigation . fragment . nav Args Ċ import Ġdev . icer ock . mo ko . mv vm . Mv vm Fragment Ċ import Ġdev . icer ock . mo ko . mv vm . create ViewModel Factory Ċ import Ġdev . icer ock . mo ko . mv vm . dispatcher . events Dispatcher On Main Ċ import Ġeu . insert code . portfolio . BR Ċ import Ġeu . insert code . portfolio . R Ċ import Ġeu . insert code . portfolio . databinding . Fragment Project Binding Ċ import Ġeu . insert code . portfolio . databinding . Item Tag Binding Ċ import Ġeu . insert code . portfolio . main . view models . project . Project ViewModel Ċ import Ġeu . insert code . portfolio . main . view models . project . Project ViewState Ċ import Ġeu . insert code . portfolio . ui . anim . Project Collapse Ċ import Ġeu . insert code . portfolio . ui . anim . Project Expand Ċ import Ġeu . insert code . portfolio . util . start Url Intent Ċ import Ġkotlinx . android . synt hetic . main . fragment _ project . view .* ĊĊ Ċ /** Ċ Ġ* ĠCreated Ġby Ġma art ende go ede Ġon Ġ 1 1 / 0 9 / 2 0 1 8 . Ċ Ġ* ĠCopyright ĠÂ© Ġ 2 0 1 8 ĠMa arten Ġde ĠGo ede . ĠAll Ġrights Ġreserved . Ċ Ġ*/ Ċ class ĠProject Fragment Ġ: ĠM v vm Fragment < Fragment Project Binding , ĠProject ViewModel >(), ĠProject ViewModel . Events Listener Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġlayout Id Ġ= ĠR . layout . fragment _ project ĊĠĠĠ Ġoverride Ġval ĠviewModel Class Ġ= ĠProject ViewModel :: class . java ĊĠĠĠ Ġoverride Ġval ĠviewModel Variable Id Ġ= ĠBR . viewModel ĊĊĠĠĠ Ġoverride Ġfun ĠviewModel Factory () Ġ= Ġcreate ViewModel Factory Ġ{ ĠProject ViewModel ( events Dispatcher On Main ()) Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġargs : ĠProject Fragment Args Ġby Ġnav Args () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġsuper . onCreate View ( in flater , Ġcontainer , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ ĠviewModel . events Dispatcher . bind ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlifecycle Owner Ġ= Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener Ġ= Ġthis ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval ĠprojectId Ġ= Ġargs . projectId ĊĠĠĠĠĠĠĠ ĠviewModel . configure ( projectId ) ĊĊĠĠĠĠĠĠĠ ĠviewModel . view State . add Observer Ġ{ Ġbind Tags ( it Ġ?: Ġreturn @ add Observer ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġshared Element Enter Transition Ġ= ĠProject Expand () ĊĠĠĠĠĠĠĠ Ġshared Element Return Transition Ġ= ĠProject Collapse () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbind Tags ( view State : ĠProject ViewState ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtags Layout Ġ= Ġbinding . root . project _ tags _ layout ĊĠĠĠĠĠĠĠ Ġtags Layout . removeAll Views () ĊĊĠĠĠĠĠĠĠ Ġview State . tag View States . forEach Ġ{ Ġview State Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtag View Ġ= ĠItem Tag Binding . inflate ( LayoutInflater . from ( tags Layout . context ), Ġtags Layout , Ġfalse ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlifecycle Owner Ġ= Ġbinding . lifecycle Owner ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtag View . view State Ġ= Ġview State ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtag View . execute Pending Bindings () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtags Layout . addView ( tag View . root ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġnavigate To Image Gallery ( image Index : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠTODO (" not Ġimplemented ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġopen Url ( url : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire Activity (). start Url Intent ( url ) ĊĠĠĠ Ġ} Ċ }