package com.metis.base.module;
import android.os.Parcel;
import android.os.Parcelable;
import android.text.TextUtils;
import com.metis.base.utils.Log;
import java.io.Serializable;
import java.lang.reflect.Field;
/**
* Created by Beak on 2015/7/9.
*/
public class User implements Serializable, Parcelable{
private static final String TAG = User.class.getSimpleName();
public static final int
USER_ROLE_STUDENT = 1,
USER_ROLE_TEACHER = 2,
USER_ROLE_STUDIO = 3,
USER_ROLE_PARENTS = 4,
USER_ROLE_FANS = 5;
private long id;
public long userId;
public String name;
public String remarkName;
public String avatar;
public String userAvatar;
private String gender;
public String grade;
public int identity;
public int relation;
public String account;
//public String rongCloud;
public String location;
public int userRole; //1,teacher 2,student 3,studio 4,parents
public String message;
public String requestInfo;
public String province;
public Province provinceEntity;
public int fansNum;
public int focusNum;
private String cookie;
public User () {}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeLong(userId);
dest.writeString(name);
dest.writeString(remarkName);
dest.writeString(avatar);
dest.writeString(userAvatar);
dest.writeString(gender);
dest.writeString(grade);
dest.writeInt(identity);
dest.writeInt(relation);
dest.writeString(account);
dest.writeString(location);
dest.writeInt(userRole);
dest.writeString(message);
dest.writeString(requestInfo);
dest.writeString(cookie);
}
public static final Parcelable.Creator<User> CREATOR
= new Parcelable.Creator<User>() {
public User createFromParcel(Parcel in) {
return new User(in);
}
public User[] newArray(int size) {
return new User[size];
}
};
private User(Parcel in) {
userId = in.readLong();
name = in.readString();
remarkName = in.readString();
avatar = in.readString();
userAvatar = in.readString();
gender = in.readString();
grade = in.readString();
identity = in.readInt();
relation = in.readInt();
account = in.readString();
location = in.readString();
userRole = in.readInt();
message = in.readString();
requestInfo = in.readString();
cookie = in.readString();
}
public String getAvailableAvatar () {
Log.v(TAG, "getAvailableAvatar avatar=" + avatar + " userAvatar=" + userAvatar);
String result = avatar;
if (TextUtils.isEmpty(result)) {
result = userAvatar;
}
if (result != null && result.startsWith("http:/") && !result.startsWith("http://")) {
result = result.replace("http:/", "http://");
}
if (result == null) {
result = "";
}
return result;
/*if (!TextUtils.isEmpty(avatar)) {
return avatar;
}
if (!TextUtils.isEmpty(userAvatar)) {
return userAvatar;
}
return "";*/
}
public String getCookie() {
return cookie;
}
public void setUserAvatar (String avatar) {
userAvatar = avatar;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
@Override
public boolean equals(Object o) {
if (o == null || !(o instanceof User)) {
return false;
}
return userId == ((User) o).userId;
}
public void mergeFrom (User user) {
if (user == null) {
return;
}
if (this.userId != user.userId) {
return;
}
Field[] fields = getClass().getFields();
final int length = fields.length;
for (int i = 0; i < length; i++) {
Field field = fields[i];
try {
Object value = field.get(user);
if (value != null) {
Log.v(TAG, "mergeFrom key=" + field.getName() + " value=" + value);
field.set(this, value);
}
} catch (IllegalAccessException e) {
e.printStackTrace();
continue;
}
}
}
}