package com.heyzap.sdk;
import java.text.DecimalFormat;
import org.json.JSONObject;
import android.content.Context;
import android.text.Html;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
public class LeaderboardLevelFeedlette extends Feedlette {
public static LeaderboardLevelFeedlette selectedFeedlette = null;
public static View selectedIcon = null;
String levelName;
String everyoneRank;
String friendsRank;
int everyoneCount;
int friendsCount;
String displayScore;
String levelId;
boolean selected = false;
LeaderboardLevelSelectListener levelSelectListener;
private String everyoneCountText;
public interface LeaderboardLevelSelectListener {
public void onSelect(String levelId, String levelName, String everyoneRank, String friendsRank, String displayScore);
}
public LeaderboardLevelFeedlette(JSONObject jobj) {
super(Rzap.layout("leaderboard_level_feedlette"));
this.levelName = jobj.optString("name", "");
this.everyoneRank = jobj.optString("everyone_rank", "");
this.everyoneCount = jobj.optInt("everyone_count", 0);
DecimalFormat formatter = new DecimalFormat("#,###");
this.everyoneCountText = formatter.format((double) everyoneCount);
this.friendsRank = jobj.optString("friends_rank", "");
this.friendsCount = jobj.optInt("friends_count", 0);
this.displayScore = jobj.optString("display_score", "");
this.levelId = jobj.optString("id", "");
}
public View render(View convertView, Context context, FeedView webFeedView) {
final ViewHolder holder;
if (convertView == null) {
convertView = getInflater(context).inflate(layout, null);
holder = new ViewHolder();
holder.wrapper = (FrameLayout) convertView.findViewById(Rzap.id("wrapper"));
holder.container = (RelativeLayout) convertView.findViewById(Rzap.id("container"));
holder.levelName = (TextView) convertView.findViewById(Rzap.id("level_name"));
holder.scoreText = (TextView) convertView.findViewById(Rzap.id("score_text"));
holder.selectedIcon = (ImageView) convertView.findViewById(Rzap.id("icon"));
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.levelName.setText(levelName);
if (selected) {
holder.selectedIcon.setVisibility(View.VISIBLE);
selectedIcon = holder.selectedIcon;
} else {
holder.selectedIcon.setVisibility(View.GONE);
}
if (this.displayScore != null && !this.displayScore.equals("")) {
if (friendsCount > 1) {
holder.scoreText
.setText(Html
.fromHtml("<font color='#55a406'>" + displayScore + "</font>" + "<font color='#808080'>" + " - #" + friendsRank + " of " + friendsCount + " friends" + "</font>"));
} else {
holder.scoreText.setText(Html.fromHtml("<font color='#55a406'>" + displayScore + "</font>"));
}
} else if (everyoneCount > 0) {
String plural = everyoneCount == 1 ? "player" : "players";
holder.scoreText.setText(Html.fromHtml("<font color='#808080'>" + everyoneCountText + " " + plural + "</font>"));
} else {
holder.scoreText.setText(Html.fromHtml("<font color='#808080'>No scores</font>"));
}
convertView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (selectedIcon != null) {
selectedIcon.setVisibility(View.GONE);
}
selectedIcon = (ImageView) v.findViewById(Rzap.id("icon"));
selectedIcon.setVisibility(View.VISIBLE);
if (selectedFeedlette != null) {
selectedFeedlette.selected = false;
}
selectedFeedlette = LeaderboardLevelFeedlette.this;
selectedFeedlette.selected = true;
v.postDelayed(new Runnable() {
@Override
public void run() {
LeaderboardLevelFeedlette.this.onLevelSelect();
}
}, 150);
}
});
return convertView;
}
protected void onLevelSelect() {
if (levelSelectListener != null) {
levelSelectListener.onSelect(levelId, (levelName + " Leaderboard"), everyoneRank, friendsRank, displayScore);
}
}
static class ViewHolder {
FrameLayout wrapper;
RelativeLayout container;
TextView levelName;
TextView scoreText;
ImageView selectedIcon;
}
public LeaderboardLevelSelectListener getLevelSelectListener() {
return levelSelectListener;
}
public void setLevelSelectListener(LeaderboardLevelSelectListener levelSelectListener) {
this.levelSelectListener = levelSelectListener;
}
public boolean isSelected() {
return selected;
}
public void setSelected(boolean selected) {
this.selected = selected;
if (selected) {
selectedFeedlette = this;
}
}
}