package net.dev123.yibo;
import net.dev123.commons.Paging;
import net.dev123.mblog.entity.Trend;
import net.dev123.yibo.common.theme.ThemeUtil;
import net.dev123.yibo.service.adapter.TopicListAdapter;
import net.dev123.yibo.service.listener.GoBackClickListener;
import net.dev123.yibo.service.listener.GoHomeClickListener;
import net.dev123.yibo.service.task.UserTopicTask;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
public class UserTopicsActivity extends BaseActivity {
private YiBoApplication yibo;
private ListView lvUserTopics;
private TopicListAdapter topicsAdapter;
private View loadingView;
private Paging<Trend> paging;
private View footerList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.user_topics);
yibo = (YiBoApplication)getApplication();
initComponents();
bindEvent();
}
private void initComponents() {
LinearLayout llHeaderBase = (LinearLayout)findViewById(R.id.llHeaderBase);
lvUserTopics = (ListView) findViewById(R.id.lvUserTopics);
ThemeUtil.setSecondaryHeader(llHeaderBase);
ThemeUtil.setContentBackground(lvUserTopics);
ThemeUtil.setListViewStyle(lvUserTopics);
lvUserTopics.setFastScrollEnabled(yibo.isSliderEnabled());
showLoadingView();
topicsAdapter = new TopicListAdapter(this, yibo.getCurrentAccount());
lvUserTopics.setAdapter(topicsAdapter);
setBack2Top(lvUserTopics);
lvUserTopics.setOnItemClickListener(
new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
String trendName = (String)topicsAdapter.getItem(position);
Intent intent = new Intent();
intent.putExtra("trendName", trendName);
intent.setClass(UserTopicsActivity.this, UserTopicStatusesActivity.class);
UserTopicsActivity.this.startActivity(intent);
}
}
);
TextView tvTitle = (TextView)findViewById(R.id.tvTitle);
tvTitle.setText(R.string.label_personal_topics);
paging = new Paging<Trend>();
executeTask();
}
private void bindEvent() {
Button btnBack = (Button) this.findViewById(R.id.btnBack);
btnBack.setOnClickListener(new GoBackClickListener());
Button btnOperate = (Button) this.findViewById(R.id.btnOperate);
btnOperate.setVisibility(View.VISIBLE);
btnOperate.setText(R.string.btn_home);
btnOperate.setOnClickListener(new GoHomeClickListener());
}
public Paging<Trend> getPaging() {
return paging;
}
private void executeTask() {
new UserTopicTask(this).execute();
}
public void showLoadingView() {
removeFooterView();
if (loadingView == null) {
loadingView = getLayoutInflater().inflate(R.layout.list_item_loading, null);
ThemeUtil.setListViewLoading(loadingView);
}
loadingView.setOnClickListener(null);
lvUserTopics.addFooterView(loadingView);
}
public void removeFooterView() {
if (footerList != null) {
lvUserTopics.removeFooterView(footerList);
}
if(loadingView != null) {
lvUserTopics.removeFooterView(loadingView);
}
}
public void showMoreFooter() {
removeFooterView();
if (footerList == null) {
footerList = getLayoutInflater().inflate(R.layout.list_item_more, null);
ThemeUtil.setListViewMore(footerList);
}
footerList.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showLoadingView();
executeTask();
}
});
lvUserTopics.addFooterView(footerList);
}
public void showNoMoreFooter() {
removeFooterView();
if (footerList == null) {
footerList = getLayoutInflater().inflate(R.layout.list_item_more, null);
ThemeUtil.setListViewMore(footerList);
}
TextView tvFooter = (TextView) footerList.findViewById(R.id.tvFooter);
tvFooter.setText(R.string.label_no_more);
footerList.setOnClickListener(null);
lvUserTopics.addFooterView(footerList);
}
public TopicListAdapter getTopicsAdapter() {
return topicsAdapter;
}
}