1*1b3f573fSAndroid Build Coastguard Workerimport 'dart:io'; 2*1b3f573fSAndroid Build Coastguard Worker 3*1b3f573fSAndroid Build Coastguard Workerimport 'dart_tutorial/addressbook.pb.dart'; 4*1b3f573fSAndroid Build Coastguard Workerimport 'dart_tutorial/addressbook.pbenum.dart'; 5*1b3f573fSAndroid Build Coastguard Worker 6*1b3f573fSAndroid Build Coastguard Worker/// Iterates though all people in the AddressBook and prints info about them. 7*1b3f573fSAndroid Build Coastguard Workervoid printAddressBook(AddressBook addressBook) { 8*1b3f573fSAndroid Build Coastguard Worker for (var person in addressBook.people) { 9*1b3f573fSAndroid Build Coastguard Worker print('Person ID: ${person.id}'); 10*1b3f573fSAndroid Build Coastguard Worker print(' Name: ${person.name}'); 11*1b3f573fSAndroid Build Coastguard Worker if (person.hasEmail()) { 12*1b3f573fSAndroid Build Coastguard Worker print(' E-mail address:${person.email}'); 13*1b3f573fSAndroid Build Coastguard Worker } 14*1b3f573fSAndroid Build Coastguard Worker 15*1b3f573fSAndroid Build Coastguard Worker for (var phoneNumber in person.phones) { 16*1b3f573fSAndroid Build Coastguard Worker switch (phoneNumber.type) { 17*1b3f573fSAndroid Build Coastguard Worker case Person_PhoneType.MOBILE: 18*1b3f573fSAndroid Build Coastguard Worker print(' Mobile phone #: '); 19*1b3f573fSAndroid Build Coastguard Worker break; 20*1b3f573fSAndroid Build Coastguard Worker case Person_PhoneType.HOME: 21*1b3f573fSAndroid Build Coastguard Worker print(' Home phone #: '); 22*1b3f573fSAndroid Build Coastguard Worker break; 23*1b3f573fSAndroid Build Coastguard Worker case Person_PhoneType.WORK: 24*1b3f573fSAndroid Build Coastguard Worker print(' Work phone #: '); 25*1b3f573fSAndroid Build Coastguard Worker break; 26*1b3f573fSAndroid Build Coastguard Worker default: 27*1b3f573fSAndroid Build Coastguard Worker print(' Unknown phone #: '); 28*1b3f573fSAndroid Build Coastguard Worker break; 29*1b3f573fSAndroid Build Coastguard Worker } 30*1b3f573fSAndroid Build Coastguard Worker print(phoneNumber.number); 31*1b3f573fSAndroid Build Coastguard Worker } 32*1b3f573fSAndroid Build Coastguard Worker } 33*1b3f573fSAndroid Build Coastguard Worker} 34*1b3f573fSAndroid Build Coastguard Worker 35*1b3f573fSAndroid Build Coastguard Worker/// Reads the entire address book from a file and prints all 36*1b3f573fSAndroid Build Coastguard Worker/// the information inside. 37*1b3f573fSAndroid Build Coastguard Workervoid main(List<String> arguments) { 38*1b3f573fSAndroid Build Coastguard Worker if (arguments.length != 1) { 39*1b3f573fSAndroid Build Coastguard Worker print('Usage: list_person ADDRESS_BOOK_FILE'); 40*1b3f573fSAndroid Build Coastguard Worker exit(-1); 41*1b3f573fSAndroid Build Coastguard Worker } 42*1b3f573fSAndroid Build Coastguard Worker 43*1b3f573fSAndroid Build Coastguard Worker // Read the existing address book. 44*1b3f573fSAndroid Build Coastguard Worker final file = new File(arguments.first); 45*1b3f573fSAndroid Build Coastguard Worker final addressBook = new AddressBook.fromBuffer(file.readAsBytesSync()); 46*1b3f573fSAndroid Build Coastguard Worker printAddressBook(addressBook); 47*1b3f573fSAndroid Build Coastguard Worker} 48