package Ġcom . example . android . de ss er tp ush er . domain Ċ Ċ import Ġandroid . os . Parcelable Ċ import Ġkotlinx . android . parcel . Parcel ize Ċ Ċ @ Parcel ize Ċ class ĠD ess ert Shop Ġ: ĠParcel able { ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠIt Ġwould Ġbe Ġmore Ġcorrect Ġif Ġthese Ġcouldn 't Ġbe Ġset Ġpublicly , Ġbut Ġwe Ġneed Ġthis Ġin Ġorder Ġto ĊĠĠĠĠ Ġ* Ġset Ġthe Ġcurrent Ġstate Ġafter Ġa Ġconfig Ġchange . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġre venue Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġde ssert s S old Ġ= Ġ 0 ĊĊĠĠĠ Ġprivate Ġval Ġde ssert Repository Ġ= ĠD ess ert Repository () ĊĊĠĠĠ Ġvar Ġcurrent D ess ert Ġ= Ġde ssert Repository . de ssert s . first () ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġfun Ġon D ess ert S old () Ġ{ ĊĠĠĠĠĠĠĠ Ġre venue Ġ+= Ġcurrent D ess ert . price ĊĠĠĠĠĠĠĠ Ġde ssert s S old ++ ĊĠĠĠĠĠĠĠ Ġdetermine Current D ess ert () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdetermine Current D ess ert () Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġnew D ess ert Ġ= Ġde ssert Repository . de ssert s . first () ĊĠĠĠĠĠĠĠ Ġfor Ġ( de ssert Ġin Ġde ssert Repository . de ssert s ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( de ssert s S old Ġ>= Ġde ssert . start Production Amount ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew D ess ert Ġ= Ġde ssert ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠThe Ġlist Ġof Ġde ssert s Ġis Ġsorted Ġby Ġstart Production Amount . ĠAs Ġyou Ġsell Ġmore Ġde ssert s , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġyou 'll Ġstart Ġproducing Ġmore Ġexpensive Ġde ssert s Ġas Ġdetermined Ġby Ġstart Production Amount ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠWe Ġknow Ġto Ġbreak Ġas Ġsoon Ġas Ġwe Ġsee Ġa Ġde ssert Ġwho 's Ġ" start Production Amount " Ġis Ġgreater ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthan Ġthe Ġamount Ġsold . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġbreak ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠIf Ġthe Ġnew Ġde ssert Ġis Ġactually Ġdifferent Ġthan Ġthe Ġcurrent Ġde ssert , Ġupdate Ġthe Ġimage ĊĠĠĠĠĠĠĠ Ġif Ġ( new D ess ert Ġ!= Ġcurrent D ess ert ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent D ess ert Ġ= Ġnew D ess ert ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }