package com.hyrt.cei.ui.phonestudy;
import java.util.ArrayList;
import java.util.List;
import com.hyrt.cei.R;
import com.hyrt.cei.adapter.PhoneStudyRecordAdapter;
import com.hyrt.cei.application.CeiApplication;
import com.hyrt.cei.dzb.ui.HomePageDZB;
import com.hyrt.cei.util.XmlUtil;
import com.hyrt.cei.vo.Courseware;
import com.hyrt.cei.webservice.service.Service;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
public class PlayRecordCourseActivity extends Activity implements
OnClickListener {
private ListView lv;
// 标签集合的父级元素
private LinearLayout labelParent;
// 标签菜单图片集合
private int[][] drawables = new int[5][2];
// 当前显示课程列表集合
private List<Courseware> coursewares = new ArrayList<Courseware>();
// 所有课程列表集合
public List<Courseware> courses = new ArrayList<Courseware>();
// 当前需要看的操作集合
public List<Courseware> currentCoursewares = new ArrayList<Courseware>();
// 当前页码
private int index = 0;
// 数据列表适配器
private PhoneStudyRecordAdapter phoneStudyRecordAdapter;
// 底部更多按钮
private LinearLayout footer;
// 4个操作标志位
private final static int ALL_INDEX = 0;
private final static int NOSTUDY_INDEX = 1;
private final static int NOUPLOAD_INDEX = 2;
private final static int UPLOAD_INDEX = 3;
private final static int STUDY_INDEX = 4;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.phone_study_playrecord);
overridePendingTransition(R.anim.push_in, R.anim.push_out);
initBottom();
drawables[0][1] = R.drawable.phone_study_playrecord_m1;
drawables[0][0] = R.drawable.phone_study_playrecord_m1_select;
drawables[1][1] = R.drawable.phone_study_playrecord_m3;
drawables[1][0] = R.drawable.phone_study_playrecord_m3_select;
drawables[2][1] = R.drawable.phone_study_playrecord_m2;
drawables[2][0] = R.drawable.phone_study_playrecord_m2_select;
drawables[3][1] = R.drawable.phone_study_playrecord_m4;
drawables[3][0] = R.drawable.phone_study_playrecord_m4_select;
drawables[4][1] = R.drawable.phone_study_playrecord_m5;
drawables[4][0] = R.drawable.phone_study_playrecord_m5_select;
for (int i = 0; i < HomePageActivity.phoneStudyContainer.size(); i++) {
try {
PlayRecordCourseActivity isPlayRecordCourseActivity = (PlayRecordCourseActivity) (HomePageActivity.phoneStudyContainer
.get(i));
isPlayRecordCourseActivity.finish();
} catch (Exception e) {
}
}
HomePageActivity.phoneStudyContainer.add(this);
findViewById(R.id.back_btn).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
PlayRecordCourseActivity.this.finish();
}
});
findViewById(R.id.phone_study_search_btn).setOnClickListener(
new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(
PlayRecordCourseActivity.this,
SearchCourseActivity.class);
startActivity(intent);
}
});
findViewById(R.id.phone_study_downmanager).setOnClickListener(this);
findViewById(R.id.phone_study_refresh).setOnClickListener(this);
}
protected void onResume() {
courses.clear();
coursewares.clear();
currentCoursewares.clear();
initLvData();
super.onResume();
};
Handler handler = new Handler() {
@Override
public void dispatchMessage(Message msg) {
coursewares.clear();
for (int i = index * 888; i < (index + 1) * 888
&& i < currentCoursewares.size(); i++) {
if (i == currentCoursewares.size() - 1) {
footer.setVisibility(View.GONE);
} else {
if (footer.getVisibility() == View.GONE)
footer.setVisibility(View.VISIBLE);
}
coursewares.add(currentCoursewares.get(i));
}
findViewById(R.id.phone_study_progressLl).setVisibility(View.GONE);
phoneStudyRecordAdapter = new PhoneStudyRecordAdapter(
PlayRecordCourseActivity.this,
R.layout.phone_study_playrecord_listview_item, coursewares,
lv);
lv.setAdapter(phoneStudyRecordAdapter);
}
};
private void initLvData() {
labelParent = (LinearLayout) findViewById(R.id.phone_study_labelParent);
for (int i = 0; i < labelParent.getChildCount(); i++) {
final int x = i;
ImageView iv = (ImageView) labelParent.getChildAt(i);
iv.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
try {
switch (x) {
case ALL_INDEX:
currentCoursewares.clear();
currentCoursewares.addAll(courses);
handler.sendMessage(handler.obtainMessage());
break;
case NOUPLOAD_INDEX:
currentCoursewares.clear();
for (int j = 0; j < courses.size(); j++) {
if (!"1".equals(courses.get(j).getIscompleted()) && courses.get(j).getUploadTime() != 0) {
currentCoursewares.add(courses.get(j));
}
}
handler.sendMessage(handler.obtainMessage());
break;
case NOSTUDY_INDEX:
currentCoursewares.clear();
for (int j = 0; j < courses.size(); j++) {
if (!"1".equals(courses.get(j).getIscompleted())) {
currentCoursewares.add(courses.get(j));
}
}
handler.sendMessage(handler.obtainMessage());
break;
case UPLOAD_INDEX:
currentCoursewares.clear();
currentCoursewares.clear();
for (int j = 0; j < courses.size(); j++) {
if ("1".equals(courses.get(j).getIscompleted()) || courses.get(j).getUploadTime() == 0) {
currentCoursewares.add(courses.get(j));
}
}
handler.sendMessage(handler.obtainMessage());
break;
case STUDY_INDEX:
currentCoursewares.clear();
for (int j = 0; j < courses.size(); j++) {
if ("1".equals(courses.get(j).getIscompleted())) {
currentCoursewares.add(courses.get(j));
}
}
handler.sendMessage(handler.obtainMessage());
break;
}
for (int i = 0; i < labelParent.getChildCount(); i++) {
ImageView iv = (ImageView) labelParent
.getChildAt(i);
if (i == x) {
iv.setImageResource(drawables[i][1]);
} else {
iv.setImageResource(drawables[i][0]);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
lv = (ListView) findViewById(R.id.phone_study_playrecord_listview);
footer = (LinearLayout) LayoutInflater.from(this).inflate(
R.layout.phone_study_listview_bottom, null);
footer.findViewById(R.id.phone_study_morebtn).setOnClickListener(
new OnClickListener() {
@Override
public void onClick(View v) {
// 翻页增加数据
index++;
for (int i = index * 888; i < (index + 1) * 888
&& i < currentCoursewares.size(); i++) {
if (i == currentCoursewares.size() - 1)
footer.setVisibility(View.GONE);
coursewares.add(currentCoursewares.get(i));
}
phoneStudyRecordAdapter.notifyDataSetChanged();
}
});
lv.addFooterView(footer);
findViewById(R.id.phone_study_progressLl).setVisibility(View.VISIBLE);
new Thread(new Runnable() {
public void run() {
CeiApplication ceiApplication = (CeiApplication) (PlayRecordCourseActivity.this
.getApplication());
String userId = ((CeiApplication) (PlayRecordCourseActivity.this
.getApplication())).columnEntry.getUserId();
if (userId == null || userId.equals(""))
return;
if (((CeiApplication) getApplication()).isNet()) {
String result = Service.queryUserClassTime(userId);
XmlUtil.parseCoursewareTimes(result, courses);
ceiApplication.dataHelper.savePlayRecords(courses);
List<Courseware> beforeCoursewares = new ArrayList<Courseware>();
beforeCoursewares.addAll(courses);
courses.clear();
List<Courseware> coursewares = ceiApplication.dataHelper
.getStudyRecord();
courses.addAll(coursewares);
for (int i = 0; i < courses.size(); i++) {
for (int j = 0; j < beforeCoursewares.size(); j++) {
if (courses
.get(i)
.getClassId()
.equals(beforeCoursewares.get(j)
.getClassId())) {
courses.get(i).setDownPath(
beforeCoursewares.get(j).getDownPath());
courses.get(i).setLookPath(
beforeCoursewares.get(j).getLookPath());
courses.get(i).setPath(
beforeCoursewares.get(j).getPath());
courses.get(i).setKey(beforeCoursewares.get(j)
.getKey());
}
}
courses.get(i).setFree(true);
}
} else {
List<Courseware> cws = ceiApplication.dataHelper
.getStudyRecord();
if (cws != null)
courses = cws;
}
currentCoursewares.addAll(courses);
handler.sendMessage(handler.obtainMessage());
}
}).start();
}
@Override
protected void onDestroy() {
HomePageActivity.phoneStudyContainer.remove(this);
super.onDestroy();
}
private void initBottom() {
ImageView headIv = (ImageView) findViewById(R.id.phone_study);
ImageView newIv = (ImageView) findViewById(R.id.phone_study_new);
ImageView nominateIv = (ImageView) findViewById(R.id.phone_study_nominate);
ImageView freeIv = (ImageView) findViewById(R.id.phone_study_free);
ImageView kindIv = (ImageView) findViewById(R.id.phone_study_kind);
ImageView selfIv = (ImageView) findViewById(R.id.phone_study_self);
ImageView studyIv = (ImageView) findViewById(R.id.phone_study_study);
ImageView sayIv = (ImageView) findViewById(R.id.phone_study_say);
headIv.setOnClickListener(this);
newIv.setOnClickListener(this);
nominateIv.setOnClickListener(this);
freeIv.setOnClickListener(this);
kindIv.setOnClickListener(this);
selfIv.setOnClickListener(this);
studyIv.setOnClickListener(this);
sayIv.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Intent intent = null;
switch (v.getId()) {
case R.id.phone_study:
intent = new Intent(this, HomePageDZB.class);
startActivity(intent);
break;
case R.id.phone_study_downmanager:
intent = new Intent(this, PreloadActivity.class);
startActivity(intent);
break;
case R.id.phone_study_new:
intent = new Intent(this, HomePageActivity.class);
startActivity(intent);
break;
case R.id.phone_study_nominate:
intent = new Intent(this, NominateActivity.class);
startActivity(intent);
break;
case R.id.phone_study_free:
intent = new Intent(this, FreeActivity.class);
startActivity(intent);
break;
case R.id.phone_study_kind:
intent = new Intent(this, KindsActivity.class);
startActivity(intent);
break;
case R.id.phone_study_self:
intent = new Intent(this, SelfSelectCourseActivity.class);
startActivity(intent);
break;
case R.id.phone_study_refresh:
intent = new Intent(this, PlayRecordCourseActivity.class);
startActivity(intent);
break;
case R.id.phone_study_say:
intent = new Intent(this, SayGroupListActivity.class);
startActivity(intent);
break;
}
}
}