private Estabelecimento(Parcel source) { id = source.ReadInt(); nome = source.ReadString(); contactoTel = source.ReadString(); coords = (Location)source.ReadParcelable(new Location("").Class.ClassLoader); horario = source.ReadString(); tipo = source.ReadString(); descricao = source.ReadString(); // Leitura dos Nullable<bool> aceitaReservas = source.CreateBooleanArray()?[0]; temMb = source.CreateBooleanArray()?[0]; temTakeaway = source.CreateBooleanArray()?[0]; temServMesa = source.CreateBooleanArray()?[0]; temEsplanada = source.CreateBooleanArray()?[0]; temParqueEstac = source.CreateBooleanArray()?[0]; temTv = source.CreateBooleanArray()?[0]; temWifi = source.CreateBooleanArray()?[0]; temZonaFum = source.CreateBooleanArray()?[0]; permanFechado = source.CreateBooleanArray()?[0]; // Leitura dos restantes campos. morada = source.ReadString(); // Escrita dos restantes campos int nAlimentos = source.ReadInt(); ClassLoader alimentoClassLoader = new Alimento().Class.ClassLoader; alimentos = new Dictionary <int, Alimento>(nAlimentos); for (int i = 0; i < nAlimentos; ++i) { int id = source.ReadInt(); alimentos[id] = (Alimento)source.ReadParcelable(alimentoClassLoader); } int nClassificacoes = source.ReadInt(); ClassLoader classificacaoClassLoader = new Classificacao().Class.ClassLoader; classificacoes = new List <Classificacao>(nClassificacoes); for (int i = 0; i < nClassificacoes; ++i) { classificacoes[i] = (Classificacao)source.ReadParcelable(classificacaoClassLoader); } foto = source.CreateByteArray(); classificacaoMedia = source.ReadFloat(); }