// Path: domain/src/main/java/com/cesarvaliente/permissionsample/domain/entity/ContactEntity.java
// public class ContactEntity {
// 
//     private String id;
//     private String name;
//     private String email;
//     private String phone;
// 
//     public ContactEntity(String id, String name, String phone) {
//         this.id = id;
//         this.name = name;
//         this.phone = phone;
//     }
// 
//     public String getId() {
//         return id;
//     }
// 
//     public void setId(String id) {
//         this.id = id;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public String getEmail() {
//         return email;
//     }
// 
//     public void setEmail(String email) {
//         this.email = email;
//     }
// 
//     public String getPhone() {
//         return phone;
//     }
// 
//     public void setPhone(String phone) {
//         this.phone = phone;
//     }
// 
//     @Override
//     public String toString() {
//         StringBuilder builder = new StringBuilder("ContactEntity --> ");
//         builder.append(name).append(" - ").append(email).append(" - ").append(phone);
//         return builder.toString();
//     }
// }
// 
// Path: app/src/main/java/com/cesarvaliente/permissionssample/presentation/model/ContactModel.java
// public class ContactModel implements Parcelable {
// 
//     private String name;
//     private String email;
//     private String phone;
//     private Uri imageUri;
// 
//     public ContactModel(String name, String phone) {
//         this.name = name;
//         this.phone = phone;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public String getEmail() {
//         return email;
//     }
// 
//     public void setEmail(String email) {
//         this.email = email;
//     }
// 
//     public String getPhone() {
//         return phone;
//     }
// 
//     public void setPhone(String phone) {
//         this.phone = phone;
//     }
// 
//     public Uri getImageUri() {
//         return imageUri;
//     }
// 
//     public void setImageUri(Uri imageUri) {
//         this.imageUri = imageUri;
//     }
// 
//     @Override
//     public String toString() {
//         StringBuilder builder = new StringBuilder("Contact --> ");
//         builder.append(name).append(" - ").append(email).append(" - ").append(phone);
//         return builder.toString();
//     }
// 
//     @Override
//     public int describeContents() {
//         return 0;
//     }
// 
//     @Override
//     public void writeToParcel(Parcel dest, int flags) {
//         dest.writeString(this.name);
//         dest.writeString(this.email);
//         dest.writeString(this.phone);
//         dest.writeParcelable(this.imageUri, 0);
//     }
// 
//     private ContactModel(Parcel in) {
//         this.name = in.readString();
//         this.email = in.readString();
//         this.phone = in.readString();
//         this.imageUri = in.readParcelable(Uri.class.getClassLoader());
//     }
// 
//     public static final Creator<ContactModel> CREATOR = new Creator<ContactModel>() {
//         public ContactModel createFromParcel(Parcel source) {
//             return new ContactModel(source);
//         }
// 
//         public ContactModel[] newArray(int size) {
//             return new ContactModel[size];
//         }
//     };
// }


import java.util.ArrayList;
import java.util.List;
import android.net.Uri;
import android.provider.ContactsContract;
import com.cesarvaliente.permissionsample.domain.entity.ContactEntity;
import com.cesarvaliente.permissionssample.presentation.model.ContactModel;
/**
 * Copyright (C) 2015 Cesar Valiente (cesar.valiente@gmail.com)
 *
 * 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 com.cesarvaliente.permissionssample.presentation.model.mapper;




/**
 * Created by Cesar on 23/09/15.
 */
public class ContactModelMapper {

    public static ContactModel transform(ContactEntity contactEntity) {
        if (contactEntity == null) {
            throw new IllegalArgumentException("Contact can not be null");
        }
        ContactModel contactModel = new ContactModel(contactEntity.getName(), contactEntity.getPhone());
        contactModel.setEmail(contactEntity.getEmail());
        Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_URI, contactEntity.getId());
// Path: domain/src/main/java/com/cesarvaliente/permissionsample/domain/entity/ContactEntity.java
// public class ContactEntity {
// 
//     private String id;
//     private String name;
//     private String email;
//     private String phone;
// 
//     public ContactEntity(String id, String name, String phone) {
//         this.id = id;
//         this.name = name;
//         this.phone = phone;
//     }
// 
//     public String getId() {
//         return id;
//     }
// 
//     public void setId(String id) {
//         this.id = id;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public String getEmail() {
//         return email;
//     }
// 
//     public void setEmail(String email) {
//         this.email = email;
//     }
// 
//     public String getPhone() {
//         return phone;
//     }
// 
//     public void setPhone(String phone) {
//         this.phone = phone;
//     }
// 
//     @Override
//     public String toString() {
//         StringBuilder builder = new StringBuilder("ContactEntity --> ");
//         builder.append(name).append(" - ").append(email).append(" - ").append(phone);
//         return builder.toString();
//     }
// }
// 
// Path: app/src/main/java/com/cesarvaliente/permissionssample/presentation/model/ContactModel.java
// public class ContactModel implements Parcelable {
// 
//     private String name;
//     private String email;
//     private String phone;
//     private Uri imageUri;
// 
//     public ContactModel(String name, String phone) {
//         this.name = name;
//         this.phone = phone;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public String getEmail() {
//         return email;
//     }
// 
//     public void setEmail(String email) {
//         this.email = email;
//     }
// 
//     public String getPhone() {
//         return phone;
//     }
// 
//     public void setPhone(String phone) {
//         this.phone = phone;
//     }
// 
//     public Uri getImageUri() {
//         return imageUri;
//     }
// 
//     public void setImageUri(Uri imageUri) {
//         this.imageUri = imageUri;
//     }
// 
//     @Override
//     public String toString() {
//         StringBuilder builder = new StringBuilder("Contact --> ");
//         builder.append(name).append(" - ").append(email).append(" - ").append(phone);
//         return builder.toString();
//     }
// 
//     @Override
//     public int describeContents() {
//         return 0;
//     }
// 
//     @Override
//     public void writeToParcel(Parcel dest, int flags) {
//         dest.writeString(this.name);
//         dest.writeString(this.email);
//         dest.writeString(this.phone);
//         dest.writeParcelable(this.imageUri, 0);
//     }
// 
//     private ContactModel(Parcel in) {
//         this.name = in.readString();
//         this.email = in.readString();
//         this.phone = in.readString();
//         this.imageUri = in.readParcelable(Uri.class.getClassLoader());
//     }
// 
//     public static final Creator<ContactModel> CREATOR = new Creator<ContactModel>() {
//         public ContactModel createFromParcel(Parcel source) {
//             return new ContactModel(source);
//         }
// 
//         public ContactModel[] newArray(int size) {
//             return new ContactModel[size];
//         }
//     };
// }


// Path: app/src/main/java/com/cesarvaliente/permissionssample/presentation/model/mapper/ContactModelMapper.java
import java.util.ArrayList;
import java.util.List;
import android.net.Uri;
import android.provider.ContactsContract;
import com.cesarvaliente.permissionsample.domain.entity.ContactEntity;
import com.cesarvaliente.permissionssample.presentation.model.ContactModel;

/**
 * Copyright (C) 2015 Cesar Valiente (cesar.valiente@gmail.com)
 *
 * 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 com.cesarvaliente.permissionssample.presentation.model.mapper;




/**
 * Created by Cesar on 23/09/15.
 */
public class ContactModelMapper {

    public static ContactModel transform(ContactEntity contactEntity) {
        if (contactEntity == null) {
            throw new IllegalArgumentException("Contact can not be null");
        }
        ContactModel contactModel = new ContactModel(contactEntity.getName(), contactEntity.getPhone());
        contactModel.setEmail(contactEntity.getEmail());
        Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_URI, contactEntity.getId());
        contactModel.setImageUri(uri);