package com.lovamimi;
import android.util.Log;
import com.androidhive.jsonparsing.JSONParser;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
public class Secret implements Serializable {
private static final long serialVersionUID = 0x12345678L;
private static final String TAG = "Secret";
String sid;
String body;
String datetime;
String iconName;
int numComments;
int numLikes;
List<Secret> comments;
public Secret(String sid, String body, String datetime, String iconName, int numComments, int numLikes) {
this.sid = sid;
this.body = body;
this.datetime = datetime;
this.iconName = iconName;
this.numComments = numComments;
this.numLikes = numLikes;
}
@Override
public String toString() {
return "Secret{" +
"sid='" + sid + '\'' +
", body='" + body + '\'' +
", datetime='" + datetime + '\'' +
", iconName='" + iconName + '\'' +
", numComments=" + numComments +
", numLikes=" + numLikes +
", comments=" + comments +
'}';
}
public String getCid() {
// For comment.cid, we use numComments field
return Integer.toString(this.numComments);
}
public int getIconResource() {
if (iconName.equals("0.jpg")) {
return R.drawable.lovamimi_0;
} else if (iconName.equals("1.jpg")) {
return R.drawable.lovamimi_1;
} else if (iconName.equals("2.jpg")) {
return R.drawable.lovamimi_2;
} else if (iconName.equals("2.jpg")) {
return R.drawable.lovamimi_2;
} else if (iconName.equals("3.jpg")) {
return R.drawable.lovamimi_3;
} else if (iconName.equals("4.jpg")) {
return R.drawable.lovamimi_4;
} else if (iconName.equals("5.jpg")) {
return R.drawable.lovamimi_5;
} else if (iconName.equals("6.jpg")) {
return R.drawable.lovamimi_6;
} else if (iconName.equals("7.jpg")) {
return R.drawable.lovamimi_7;
} else if (iconName.equals("8.jpg")) {
return R.drawable.lovamimi_8;
} else if (iconName.equals("9.jpg")) {
return R.drawable.lovamimi_9;
} else {
return R.drawable.lovamimi_0;
}
}
public static List<Secret> getSecrets() {
JSONParser parser = new JSONParser();
JSONObject obj = parser.getJSONFromUrl("http://lovamimi.com/ja?json=1");
ArrayList<Secret> results = new ArrayList<Secret>();
try {
JSONArray secrets = obj.getJSONArray("secrets");
Secret.extractSecrets(results, secrets);
return results;
} catch (JSONException e) {
Log.d("getSecrets", e.toString());
}
return null;
}
public boolean postLike(String sessionId) {
return HttpHelper.postLovamimi(sessionId, new BasicNameValuePair("like_sid", sid));
}
public boolean postCommentLike(String sessionId) {
return HttpHelper.postLovamimi(sessionId,
new BasicNameValuePair("like_sid", sid),
new BasicNameValuePair("like_cid", getCid()));
}
public static boolean post(String sessionId, String text) {
return HttpHelper.postLovamimi(sessionId, new BasicNameValuePair("text", text));
}
public static boolean postComment(String sessionId, String sid, String body) {
return HttpHelper.postLovamimi(sessionId,
new BasicNameValuePair("body", body),
new BasicNameValuePair("sid", sid));
}
private static void extractSecrets(ArrayList<Secret> results, JSONArray secrets) throws JSONException {
for (int i = 0; i < secrets.length(); i++) {
JSONObject secret = secrets.getJSONObject(i);
JSONArray commentsArray = secret.has("comments") ? secret.getJSONArray("comments") : null;
ArrayList<Secret> comments;
if (commentsArray == null) {
comments = new ArrayList<Secret>(0);
} else {
comments = new ArrayList<Secret>(commentsArray.length());
extractSecrets(comments, commentsArray);
}
Secret s = new Secret(secret.getString("sid"), secret.getString("body"), secret.getString("datetime"), secret.getString("icon"),
secret.getInt("num_comments"), secret.getInt("num_likes"));
s.comments = comments;
results.add(s);
}
}
}