package Ġcom . gh stud ios . android . features . decor ations . detail Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroidx . lifecycle . Android ViewModel Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . Transform ations Ċ import Ġcom . gh stud ios . android . data . classes . Component Ċ import Ġcom . gh stud ios . android . data . classes . Decoration Ċ import Ġcom . gh stud ios . android . data . DataManager Ċ import Ġcom . gh stud ios . android . util . logged Thread Ċ import Ġcom . gh stud ios . android . util . toList Ċ Ċ /** Ċ Ġ* ĠInternal Ġview Ġdata Ġclass Ġto Ġencaps ulate Ġskill Ġinformation . Ċ Ġ*/ Ċ data Ġclass ĠSkill Points ( val Ġskill Id : ĠLong , Ġval Ġskill Name : ĠString , Ġval Ġpoints : ĠInt ) Ċ Ċ class ĠDecor ation Detail ViewModel ( app : ĠApplication ) Ġ: ĠAndroid ViewModel ( app ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġdata Manager Ġ= ĠData Manager . get () ĊĠĠĠ Ġval Ġdecoration Data Ġ= ĠMutable LiveData < Decoration >() ĊĠĠĠ Ġval Ġcomponent Data Ġ= ĠMutable LiveData < Map < String , ĠList < Component >> >() ĊĊĠĠĠ Ġval Ġdecoration Skill Data Ġ= ĠTransform ations . map ( decoration Data ) Ġ{ Ġdecoration Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġresults Ġ= ĠArrayList < Skill Points >() ĊĠĠĠĠĠĠĠ Ġif Ġ( decoration . skill 1 Id Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresults . add ( Skill Points ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdecoration . skill 1 Id , Ġdecoration . skill 1 Name , Ġdecoration . skill 1 Point )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( decoration . skill 2 Id Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresults . add ( Skill Points ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdecoration . skill 2 Id , Ġdecoration . skill 2 Name , Ġdecoration . skill 2 Point )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġresults ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġdecoration Id Ġ: ĠLong Ġ= Ġ- 1 ĊĊĠĠĠ Ġfun Ġset Decoration ( decoration Id Ġ: ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this . decoration Id Ġ== Ġdecoration Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġthis . decoration Id Ġ= Ġdecoration Id ĊĊĠĠĠĠĠĠĠ Ġlogged Thread ( name Ġ= Ġ" Decoration ĠLoading ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdecoration Ġ= Ġdata Manager . get Decoration ( decoration Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcomponents Ġ= Ġdata Manager . query Component Created ( decoration Id ). toList Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . component ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. groupBy Ġ{ Ġit . type Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdecoration Data . post Value ( decoration ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomponent Data . post Value ( components ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ