package com.ioabsoftware.gameraven.views.rowview;
import android.app.AlertDialog;
import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TextView;
import com.ioabsoftware.gameraven.AllInOneV2;
import com.ioabsoftware.gameraven.R;
import com.ioabsoftware.gameraven.networking.NetDesc;
import com.ioabsoftware.gameraven.views.BaseRowData;
import com.ioabsoftware.gameraven.views.BaseRowView;
import com.ioabsoftware.gameraven.views.RowType;
import com.ioabsoftware.gameraven.views.rowdata.BoardRowData;
import com.ioabsoftware.gameraven.views.rowdata.BoardRowData.BoardType;
public class BoardRowView extends BaseRowView {
private TextView desc, lastPost, tpcMsgDetails, name;
private static float nameTextSize = 0;
private static float descTextSize, lpTextSize, detailsTextSize;
BoardRowData myData;
public BoardRowView(Context context) {
super(context);
}
public BoardRowView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public BoardRowView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void init(Context context) {
myType = RowType.BOARD;
LayoutInflater.from(context).inflate(R.layout.boardview, this, true);
desc = (TextView) findViewById(R.id.bvDesc);
lastPost = (TextView) findViewById(R.id.bvLastPost);
tpcMsgDetails = (TextView) findViewById(R.id.bvTpcMsgDetails);
name = (TextView) findViewById(R.id.bvName);
if (nameTextSize == 0) {
nameTextSize = name.getTextSize();
detailsTextSize = tpcMsgDetails.getTextSize();
lpTextSize = lastPost.getTextSize();
descTextSize = desc.getTextSize();
}
setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (myData.getUrl() == null) {
AlertDialog.Builder b = new AlertDialog.Builder(BoardRowView.this.getContext());
b.setTitle("Cannot Access " + myData.getName());
b.setMessage(myData.getName() +
" cannot be accessed, most likely due to user level requirements.");
b.setPositiveButton("Ok", null);
b.create().show();
} else {
if (myData.getBoardType() == BoardType.LIST) {
AllInOneV2.get().getSession().get(NetDesc.BOARD_LIST, myData.getUrl());
} else {
AllInOneV2.get().getSession().get(NetDesc.BOARD, myData.getUrl());
}
}
}
});
}
@Override
protected void retheme() {
desc.setTextSize(PX, descTextSize * myScale);
lastPost.setTextSize(PX, lpTextSize * myScale);
tpcMsgDetails.setTextSize(PX, detailsTextSize * myScale);
name.setTextSize(PX, nameTextSize * myScale);
}
@Override
public void showView(BaseRowData data) {
if (data.getRowType() != myType)
throw new IllegalArgumentException("data RowType does not match myType");
myData = (BoardRowData) data;
name.setText(myData.getName());
String descText = myData.getDesc();
if (descText != null) {
desc.setVisibility(View.VISIBLE);
desc.setText(descText);
} else
desc.setVisibility(View.INVISIBLE);
switch (myData.getBoardType()) {
case NORMAL:
tpcMsgDetails.setVisibility(View.VISIBLE);
lastPost.setText("Last Post: " + myData.getLastPost());
tpcMsgDetails.setText("Tpcs: " + myData.getTCount() + "; Msgs: " + myData.getMCount());
break;
case SPLIT:
lastPost.setText("--Split List--");
tpcMsgDetails.setVisibility(View.INVISIBLE);
break;
case LIST:
lastPost.setText("--Board List--");
tpcMsgDetails.setVisibility(View.INVISIBLE);
break;
}
}
}