// // Copyright (c) 2014 VK.com // // Permission is hereby granted, free of charge, to any person obtaining a copy of // this software and associated documentation files (the "Software"), to deal in // the Software without restriction, including without limitation the rights to // use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // the Software, and to permit persons to whom the Software is furnished to do so, // subject to the following conditions: // // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // /** * User.java * vk-android-sdk * * Created by Babichev Vitaly on 18.01.14. * Copyright (c) 2014 VK. All rights reserved. */ package com.vk.sdk.api.model; import android.os.Parcel; import android.text.TextUtils; import org.json.JSONException; import org.json.JSONObject; /** * User object describes a user profile. */ @SuppressWarnings("unused") public class VKApiUser extends VKApiOwner implements android.os.Parcelable { /** * Field name for {@link #online} param. */ public final static String FIELD_ONLINE = "online"; /** * Field name for {@link #online_mobile} param. */ public final static String FIELD_ONLINE_MOBILE = "online_mobile"; /** * Field name for {@link #photo_50} param. */ public final static String FIELD_PHOTO_50 = "photo_50"; /** * Field name for {@link #photo_100} param. */ public final static String FIELD_PHOTO_100 = "photo_100"; /** * Field name for {@link #photo_200} param. */ public final static String FIELD_PHOTO_200 = "photo_200"; /** * All required for fill all fields. */ public final static String FIELDS_DEFAULT = TextUtils.join(",", new String[]{FIELD_ONLINE, FIELD_ONLINE_MOBILE, FIELD_PHOTO_50, FIELD_PHOTO_100, FIELD_PHOTO_200}); /** * First name of user. */ public String first_name = "DELETED"; /** * Screen name of user. */ public String screen_name = "DELETED"; /** * Last name of user. */ public String last_name = "DELETED"; /** * Information whether the user is online. */ public boolean online; /** * If user utilizes a mobile application or site mobile version, it returns online_mobile as additional. */ public boolean online_mobile; /** * URL of default square photo of the user with 50 pixels in width. */ public String photo_50 = "http://vk.com/images/camera_c.gif"; /** * URL of default square photo of the user with 100 pixels in width. */ public String photo_100 = "http://vk.com/images/camera_b.gif"; /** * URL of default square photo of the user with 200 pixels in width. */ public String photo_200 = "http://vk.com/images/camera_a.gif"; /** * {@link #photo_50}, {@link #photo_100}, {@link #photo_200} included here in Photo Sizes format. */ public VKPhotoSizes photo = new VKPhotoSizes(); public VKApiUser(JSONObject from) throws JSONException { parse(from); } /** * Fills an user object from server response. */ public VKApiUser parse( JSONObject from) { if (from!=null){ super.parse(from); first_name = from.optString("first_name", first_name); last_name = from.optString("last_name", last_name); online = ParseUtils.parseBoolean(from, FIELD_ONLINE); online_mobile = ParseUtils.parseBoolean(from, FIELD_ONLINE_MOBILE); photo_50 = from.optString(FIELD_PHOTO_50, photo_50); if(!TextUtils.isEmpty(photo_50)) { photo.add(VKApiPhotoSize.create(photo_50, 50)); } photo_100 = from.optString(FIELD_PHOTO_100, photo_100); if(!TextUtils.isEmpty(photo_100)) { photo.add(VKApiPhotoSize.create(photo_100, 100)); } photo_200 = from.optString(FIELD_PHOTO_200, null); if(!TextUtils.isEmpty(photo_200)) { photo.add(VKApiPhotoSize.create(photo_200, 200)); } photo.sort();} return this; } /** * Creates an User instance from Parcel. */ public VKApiUser(Parcel in) { super(in); this.first_name = in.readString(); this.last_name = in.readString(); this.online = in.readByte() != 0; this.online_mobile = in.readByte() != 0; this.photo_50 = in.readString(); this.photo_100 = in.readString(); this.photo_200 = in.readString(); this.photo = in.readParcelable(VKPhotoSizes.class.getClassLoader()); this.full_name = in.readString(); } /** * Creates empty User instance. */ public VKApiUser() { } private String full_name; /** * @return full user name */ @Override public String toString() { if(full_name == null) { full_name = first_name + ' ' + last_name; } return full_name; } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { super.writeToParcel(dest, flags); dest.writeString(this.first_name); dest.writeString(this.last_name); dest.writeByte(online ? (byte) 1 : (byte) 0); dest.writeByte(online_mobile ? (byte) 1 : (byte) 0); dest.writeString(this.photo_50); dest.writeString(this.photo_100); dest.writeString(this.photo_200); dest.writeParcelable(this.photo, flags); dest.writeString(this.full_name); } public static Creator<VKApiUser> CREATOR = new Creator<VKApiUser>() { public VKApiUser createFromParcel(Parcel source) { return new VKApiUser(source); } public VKApiUser[] newArray(int size) { return new VKApiUser[size]; } }; }