package com.thankcreate.care.lab;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import com.markupartist.android.widget.ActionBar;
import com.markupartist.android.widget.ActionBar.Action;
import com.thankcreate.care.App;
import com.thankcreate.care.AppConstants;
import com.thankcreate.care.BaseActivity;
import com.thankcreate.care.R;
import com.thankcreate.care.R.layout;
import com.thankcreate.care.R.menu;
import com.thankcreate.care.account.AccountActivity;
import com.thankcreate.care.lab.LabSmartChatActivity.SmartChatListAdapter.ViewHolder;
import com.thankcreate.care.status.StatusAddCommentActivity;
import com.thankcreate.care.status.StatusDetailActivity;
import com.thankcreate.care.tool.misc.BlessHelper;
import com.thankcreate.care.tool.misc.StringTool;
import com.thankcreate.care.tool.misc.BlessHelper.FetchBlessItemListener;
import com.thankcreate.care.tool.misc.DateTool;
import com.thankcreate.care.viewmodel.BlessItemViewModel;
import com.thankcreate.care.viewmodel.ChatItemViewModel;
import com.umeng.analytics.MobclickAgent;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.app.AlertDialog.Builder;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
public class LabBlessActivity extends BaseActivity {
private ActionBar actionBar;
private BlessHelper blessHelper;
private ListView listView;
private BlessListAdapter adapter;
private ProgressDialog mSpinner;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lab_bless);
initActionBar();
initControl();
}
@Override
protected void onResume() {
super.onResume();
initLoad();
}
private void initActionBar() {
actionBar = (ActionBar) findViewById(R.id.actionbar);
actionBar.setTitle("祝福墙");
actionBar.addActionRight(new Action() {
@Override
public void performAction(View view) {
Intent intent = new Intent();
intent.setClass(LabBlessActivity.this, LabBlessPostActivity.class);
startActivity(intent);
}
@Override
public int getDrawable() {
return R.drawable.thumb_message_add;
}
});
addActionBarBackButton(actionBar);
}
private void initControl() {
listView = (ListView) findViewById(R.id.lab_bless_list_view);
mSpinner = new ProgressDialog(this);
mSpinner.requestWindowFeature(Window.FEATURE_NO_TITLE);
mSpinner.setMessage("Loading...");
}
private void initLoad() {
if(blessHelper == null)
blessHelper = new BlessHelper();
mSpinner.show();
blessHelper.fetchBlessItem(25, false, new FetchBlessItemListener() {
@Override
public void fetchComplete(List<BlessItemViewModel> resList) {
refreshBlessList(resList);
}
});
}
private void refreshBlessList(final List<BlessItemViewModel> modelList)
{
// 要放在ui线程里
actionBar.post(new Runnable() {
@Override
public void run() {
mSpinner.dismiss();
adapter = new BlessListAdapter(LabBlessActivity.this);
if(modelList != null)
{
// 刷新
adapter.setListModel(modelList);
listView.setAdapter(adapter);
// 弹提示
SharedPreferences pref = App.getAppContext().getSharedPreferences(
AppConstants.PREFERENCES_NAME, Context.MODE_APPEND);
String firstComeHere = pref.getString("Global_FirstLoadBlessList", "");
if(StringTool.isNullOrEmpty(firstComeHere))
{
Editor editor = pref.edit();
editor.putString("Global_FirstLoadBlessList", "whatever");
editor.commit();
Builder alertDialog = new AlertDialog.Builder(LabBlessActivity.this);
alertDialog.setTitle("^_^");
alertDialog.setMessage("发表在祝福墙上的内容,写得比较好的会显示在软件启动页上哦~");
alertDialog.setPositiveButton("寡人喻矣" , null);
alertDialog.show();
}
}
}
});
}
class BlessListAdapter extends BaseAdapter {
public List<BlessItemViewModel> listModel = new ArrayList();;
private LayoutInflater mInflater;
public BlessListAdapter(Context context) {
super();
mInflater = LayoutInflater.from(context);
}
public void refresh() {
notifyDataSetChanged();
}
public void addItem(BlessItemViewModel model) {
listModel.add(model);
notifyDataSetChanged();
}
public void setListModel(List<BlessItemViewModel> input) {
listModel = input;
notifyDataSetChanged();
}
public void clear() {
listModel.clear();
notifyDataSetChanged();
}
@Override
public int getCount() {
return listModel.size();
}
@Override
public Object getItem(int position) {
try {
return listModel.get(position);
} catch (Exception e) {
return null;
}
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
BlessItemViewModel model = listModel.get(position);
if (model == null)
return null;
int remainDer = position % 2;
if (convertView != null
&& ((ViewHolder) convertView.getTag()).type == remainDer) {
holder = (ViewHolder) convertView.getTag();
} else {
holder = new ViewHolder();
if (remainDer == 0)
convertView = mInflater.inflate(
R.layout.listview_item_lab_bless_left, null);
else
convertView = mInflater.inflate(
R.layout.listview_item_lab_bless_right, null);
holder.textTitle = (TextView) convertView
.findViewById(R.id.lab_bless_item_title);
holder.textContent = (TextView) convertView
.findViewById(R.id.lab_bless_item_content);
holder.textTime = (TextView) convertView
.findViewById(R.id.lab_bless_item_time);
holder.type = remainDer;
convertView.setTag(holder);
}
holder.textTitle.setText(model.title);
holder.textContent.setText(model.content);
holder.textTime.setText(DateTool
.convertDateToStringInShow(model.time));
return convertView;
}
public class ViewHolder {
public TextView textTitle;
public TextView textContent;
public TextView textTime;
public int type;
}
}
}