/* * Copyright 2015 Hippo Seven * * 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.hippo.nimingban.client.ac.data; import android.graphics.Color; import android.os.Parcel; import android.text.Spannable; import android.text.SpannableString; import android.text.Spanned; import android.text.TextUtils; import android.text.style.ForegroundColorSpan; import com.hippo.nimingban.client.data.ACSite; import com.hippo.nimingban.client.data.Reply; import com.hippo.nimingban.client.data.Site; import com.hippo.text.Html; public class ACReply extends Reply { public String id = ""; public String img = ""; public String ext = ""; public String now = ""; public String userid = ""; public String name = ""; public String email = ""; public String title = ""; public String content = ""; public String sage = ""; public String admin = ""; private Site mSite; String mPostId; private long mTime; private CharSequence mUser; private CharSequence mContent; private String mThumbKey; private String mImageKey; private String mThumbUrl; private String mImageUrl; @Override public String toString() { return "id = " + id + ", img = " + img + ", ext = " + ext + ", now = " + now + ", userid = " + userid + ", name = " + name + ", email = " + email + ", title = " + title + ", content = " + content + ", admin = " + admin; } @Override public void generate(Site site) { mSite = site; mTime = ACPost.parseTime(now); if ("1".equals(admin)) { Spannable spannable = new SpannableString(userid); spannable.setSpan(new ForegroundColorSpan(Color.RED), 0, userid.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); mUser = spannable; } else { mUser = ACItemUtils.handleUser(Html.fromHtml(userid), getNMBPostId(), getNMBId()); } mContent = ACItemUtils.generateContent(content, sage, title, name, email); if (!TextUtils.isEmpty(img)) { String ext2 = ext; if (".jpe".equals(ext2)) { ext2 = ".jpeg"; } String key = img + ext2; mThumbKey = "thumb/" + key; mImageKey = "image/" + key; ACSite acSite = ACSite.getInstance(); mThumbUrl = acSite.getPictureUrl(mThumbKey); mImageUrl = acSite.getPictureUrl(mImageKey); } } @Override public Site getNMBSite() { return mSite; } @Override public String getNMBId() { return id; } @Override public String getNMBPostId() { return mPostId; } @Override public long getNMBTime() { return mTime; } @Override public CharSequence getNMBDisplayUsername() { return mUser; } @Override public CharSequence getNMBDisplayContent() { return mContent; } @Override public String getNMBThumbKey() { return mThumbKey; } @Override public String getNMBImageKey() { return mImageKey; } @Override public String getNMBThumbUrl() { return mThumbUrl; } @Override public String getNMBImageUrl() { return mImageUrl; } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(this.id); dest.writeString(this.img); dest.writeString(this.ext); dest.writeString(this.now); dest.writeString(this.userid); dest.writeString(this.name); dest.writeString(this.email); dest.writeString(this.title); dest.writeString(this.content); dest.writeString(this.admin); dest.writeInt(this.mSite.getId()); } public ACReply() { } protected ACReply(Parcel in) { this.id = in.readString(); this.img = in.readString(); this.ext = in.readString(); this.now = in.readString(); this.userid = in.readString(); this.name = in.readString(); this.email = in.readString(); this.title = in.readString(); this.content = in.readString(); this.admin = in.readString(); this.mSite = Site.fromId(in.readInt()); } public static final Creator<ACReply> CREATOR = new Creator<ACReply>() { @Override public ACReply createFromParcel(Parcel source) { return new ACReply(source); } @Override public ACReply[] newArray(int size) { return new ACReply[size]; } }; }