/*
* Copyright (C) 2013 Chris Lacy 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 org.tweetalib.android.model;
import org.appdotnet4j.model.AdnUser;
import org.socialnetlib.android.SocialNetConstant;
import org.tweetalib.android.TwitterManager.ProfileImageSize;
import java.util.ArrayList;
import java.util.Arrays;
import twitter4j.URLEntity;
import twitter4j.User;
public class TwitterUser {
public TwitterUser(User user) {
mId = user.getId();
mScreenName = user.getScreenName();
mName = user.getName();
mDescription = user.getDescription();
ArrayList<URLEntity> urlEntityArrayList = new ArrayList<URLEntity>();
if (user.getDescriptionURLEntities() != null) {
urlEntityArrayList = new ArrayList<URLEntity>(Arrays.asList(user.getDescriptionURLEntities()));
}
if (user.getURL() != null) {
mUrl = user.getURL();
urlEntityArrayList.add(user.getURLEntity());
}
mUrlEntities = urlEntityArrayList.toArray(new URLEntity[urlEntityArrayList.size()]);
if (user.getLocation() != null
&& !user.getLocation().equals("")) {
mLocation = user.getLocation();
}
if (user.getOriginalProfileImageURLHttps() != null) {
mProfileImageUrlOriginal = user.getOriginalProfileImageURLHttps();
}
if (user.getBiggerProfileImageURLHttps() != null) {
mProfileImageUrlBigger = user.getBiggerProfileImageURLHttps();
}
if (user.getProfileImageURLHttps() != null) {
mProfileImageUrlNormal = user.getProfileImageURLHttps();
}
if (user.getMiniProfileImageURLHttps() != null) {
mProfileImageUrlMini = user.getMiniProfileImageURLHttps();
}
mStatusesCount = user.getStatusesCount();
mFriendsCount = user.getFriendsCount();
mFollowersCount = user.getFollowersCount();
mFavoritesCount = user.getFavouritesCount();
mListedCount = user.getListedCount();
mVerified = user.isVerified();
mProtected = user.isProtected();
mSocialNetType = SocialNetConstant.Type.Twitter;
}
public TwitterUser(AdnUser user) {
mId = user.mId;
mScreenName = user.mUserName;
mName = user.mName;
mFollowersCount = user.mFollowersCount;
mFriendsCount = user.mFollowingCount;
mStatusesCount = user.mPostCount;
mCoverImageUrl = user.mCoverUrl;
mDescription = user.mDescription;
mSocialNetType = SocialNetConstant.Type.Appdotnet;
mCurrentUserFollows = user.mCurrentUserFollows;
mFollowsCurrentUser = user.mFollowsCurrentUser;
mFavoritesCount = user.mFavoritesCount;
mProfileImageUrlMini = "https://alpha-api.app.net/stream/0/users/@" + user.mUserName + "/avatar?w=32";
mProfileImageUrlNormal = "https://alpha-api.app.net/stream/0/users/@" + user.mUserName + "/avatar?w=48";
mProfileImageUrlBigger = "https://alpha-api.app.net/stream/0/users/@" + user.mUserName + "/avatar?w=73";
mProfileImageUrlOriginal = "https://alpha-api.app.net/stream/0/users/@" + user.mUserName + "/avatar";
}
public TwitterUser(TwitterUser user) {
mId = user.getId();
mScreenName = user.getScreenName();
mName = user.getName();
mDescription = user.getDescription();
mUrlEntities = user.getUrlEntities();
mLocation = user.getLocation();
mUrl = user.getUrl();
mProfileImageUrlMini = user.getProfileImageUrlMini();
mProfileImageUrlNormal = user.getProfileImageUrlNormal();
mProfileImageUrlBigger = user.getProfileImageUrlBigger();
mProfileImageUrlOriginal = user.getProfileImageUrlOriginal();
mStatusesCount = user.getStatusesCount();
mFriendsCount = user.getFriendsCount();
mFollowersCount = user.getFollowersCount();
mFavoritesCount = user.getFavoritesCount();
mListedCount = user.getListedCount();
mVerified = user.getVerified();
mProtected = user.getProtected();
mSocialNetType = user.getSocialNetType();
}
public long getId() {
return mId;
}
public String getScreenName() {
return mScreenName;
}
public String getName() {
return mName;
}
public String getDescription() {
return mDescription;
}
public String getCoverImageUrl() {
return mCoverImageUrl;
}
public String getLocation() {
return mLocation;
}
public String getUrl() {
return mUrl;
}
public String getProfileImageUrlMini() {
return mProfileImageUrlMini;
}
public String getProfileImageUrlNormal() {
return mProfileImageUrlNormal;
}
public String getProfileImageUrlBigger() {
return mProfileImageUrlBigger;
}
public String getProfileImageUrlOriginal() {
return mProfileImageUrlOriginal;
}
public int getStatusesCount() {
return mStatusesCount;
}
public int getFriendsCount() {
return mFriendsCount;
}
public int getFollowersCount() {
return mFollowersCount;
}
public int getFavoritesCount() {
return mFavoritesCount;
}
int getListedCount() {
return mListedCount;
}
public boolean getVerified() {
return mVerified;
}
public boolean getProtected() {
return mProtected;
}
public boolean getFollowsCurrentUser() {
return mFollowsCurrentUser;
}
public boolean getCurrentUserFollows() {
return mCurrentUserFollows;
}
public SocialNetConstant.Type getSocialNetType() {
return mSocialNetType;
}
public String getProfileImageUrl(ProfileImageSize size) {
switch (size) {
case MINI:
return mProfileImageUrlMini;
case NORMAL:
return mProfileImageUrlNormal;
case BIGGER:
return mProfileImageUrlBigger;
case ORIGINAL:
return mProfileImageUrlOriginal;
}
return "";
}
public URLEntity[] getUrlEntities() {
return mUrlEntities;
}
private final long mId;
private final String mScreenName;
private final String mName;
private final String mDescription;
private URLEntity[] mUrlEntities;
private String mCoverImageUrl;
private String mLocation;
private String mProfileImageUrlMini;
private String mProfileImageUrlNormal;
private String mProfileImageUrlBigger;
private String mProfileImageUrlOriginal;
private String mUrl;
private final int mStatusesCount;
private final int mFriendsCount;
private final int mFollowersCount;
private final int mFavoritesCount;
private int mListedCount;
private boolean mVerified;
private boolean mProtected;
private final SocialNetConstant.Type mSocialNetType;
private boolean mFollowsCurrentUser;
private boolean mCurrentUserFollows;
}