package com.hyrt.cei.ui.phonestudy;
import java.util.ArrayList;
import java.util.List;
import com.hyrt.cei.R;
import com.hyrt.cei.adapter.PhoneStudySelcoAdapter;
import com.hyrt.cei.application.CeiApplication;
import com.hyrt.cei.db.DataHelper;
import com.hyrt.cei.dzb.ui.HomePageDZB;
import com.hyrt.cei.util.XmlUtil;
import com.hyrt.cei.vo.Courseware;
import com.hyrt.cei.vo.Preload;
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 SelfSelectCourseActivity extends Activity implements
OnClickListener {
// 自选课列表控件
private ListView lv;
// 自选课列表
private List<Courseware> selfselCourseware = new ArrayList<Courseware>();
// 当前页索引
private int index = 0;
// 该搜索下所有的课件列表
private List<Courseware> courses = new ArrayList<Courseware>();
// 自选课适配器
private PhoneStudySelcoAdapter phoneStudyKindsAdapter;
// 数据库查询类
private DataHelper dataHelper;
// 当先显示的列表种类0代表全部,1代表下载的
private int currentLookKind = 0;
// 当前显示全部的课件列表数据
private List<Courseware> currentTotalCourseware = new ArrayList<Courseware>();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.phone_study_selfcourse);
overridePendingTransition(R.anim.push_in, R.anim.push_out);
initBottom();
initLvData();
for (int i = 0; i < HomePageActivity.phoneStudyContainer.size(); i++) {
try {
SelfSelectCourseActivity isSelfSelectCourseActivity = (SelfSelectCourseActivity) (HomePageActivity.phoneStudyContainer
.get(i));
isSelfSelectCourseActivity.finish();
} catch (Exception e) {
}
}
HomePageActivity.phoneStudyContainer.add(this);
findViewById(R.id.back_btn).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
SelfSelectCourseActivity.this.finish();
}
});
findViewById(R.id.phone_study_search_btn).setOnClickListener(
new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(
SelfSelectCourseActivity.this,
SearchCourseActivity.class);
startActivity(intent);
}
});
findViewById(R.id.phone_study_refresh).setOnClickListener(this);
findViewById(R.id.phone_study_downmanager).setOnClickListener(this);
}
Handler handler = new Handler() {
@Override
public void dispatchMessage(Message msg) {
findViewById(R.id.phone_study_progressLl).setVisibility(View.GONE);
for (int i = index * 888; i < (index + 1) * 888 && i < courses.size(); i++) {
if (i == courses.size() - 1) {
footer.setVisibility(View.GONE);
} else {
if (footer.getVisibility() == View.GONE)
footer.setVisibility(View.VISIBLE);
}
selfselCourseware.add(courses.get(i));
}
if(selfselCourseware.size() == 0)
footer.setVisibility(View.GONE);
phoneStudyKindsAdapter = new PhoneStudySelcoAdapter(
SelfSelectCourseActivity.this,
R.layout.phone_study_selfcourse_listview_item,
selfselCourseware, lv,currentTotalCourseware);
lv.setAdapter(phoneStudyKindsAdapter);
super.dispatchMessage(msg);
}
};
private int[][] drawables = new int[2][2];
private LinearLayout footer;
private void initLvData() {
dataHelper = ((CeiApplication) getApplication()).dataHelper;
final LinearLayout labelParent = (LinearLayout) findViewById(R.id.phone_study_labelParent);
drawables[0][1] = R.drawable.phone_study_selfallmenu;
drawables[0][0] = R.drawable.phone_study_selfallmenu_select;
drawables[1][1] = R.drawable.phone_study_selfdownmenu;
drawables[1][0] = R.drawable.phone_study_selfdownmenu_select;
for (int i = 0; i < labelParent.getChildCount(); i++) {
final int j = i;
labelParent.getChildAt(i).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
switch (j) {
case 0:
if (currentLookKind == 0)
return;
currentLookKind = 0;
selfselCourseware.clear();
selfselCourseware.addAll(currentTotalCourseware);
phoneStudyKindsAdapter.notifyDataSetChanged();
break;
case 1:
if (currentLookKind == 1)
return;
currentLookKind = 1;
currentTotalCourseware.clear();
currentTotalCourseware.addAll(selfselCourseware);
List<Preload> preloadCourseware = dataHelper.getPreloadList();
//已下载自选课集合
List<Courseware> alDownCourseware = new ArrayList<Courseware>();
for(int x=0;x<preloadCourseware.size();x++){
if(preloadCourseware.get(x).getLoadFinish() == 1){
for(int y=0;y<selfselCourseware.size();y++){
if(selfselCourseware.get(y).getClassId().equals(preloadCourseware.get(x).getLoadPlayId())){
alDownCourseware.add(selfselCourseware.get(y));
}
}
}
}
selfselCourseware.clear();
selfselCourseware.addAll(alDownCourseware);
phoneStudyKindsAdapter.notifyDataSetChanged();
break;
}
for (int i = 0; i < labelParent.getChildCount(); i++) {
ImageView labelIv = (ImageView) labelParent
.getChildAt(i);
if (i == j) {
labelIv.setImageResource(drawables[i][1]);
} else {
labelIv.setImageResource(drawables[i][0]);
}
}
}
});
}
lv = (ListView) findViewById(R.id.phone_study_selfcourse_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 < courses.size(); i++) {
if (i == courses.size() - 1)
footer.setVisibility(View.GONE);
selfselCourseware.add(courses.get(i));
}
phoneStudyKindsAdapter.notifyDataSetChanged();
}
});
lv.addFooterView(footer);
findViewById(R.id.phone_study_progressLl).setVisibility(View.VISIBLE);
new Thread(new Runnable() {
@Override
public void run() {
if (((CeiApplication) getApplication()).isNet()) {
String result = Service
.queryCourse(((CeiApplication) (getApplication())).columnEntry
.getUserId());
XmlUtil.parseErrorCoursewares(result, courses);
for (int i = 0; i < courses.size(); i++) {
courses.get(i).setSelfCourse(true);
((CeiApplication) (getApplication())).dataHelper
.saveCourseware(courses.get(i));
}
} else {
Courseware couseware = new Courseware();
couseware.setSelfCourse(true);
courses = ((CeiApplication) (getApplication())).dataHelper
.getCoursewares(couseware);
}
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_refresh:
intent = new Intent(this, SelfSelectCourseActivity.class);
startActivity(intent);
break;
case R.id.phone_study_study:
intent = new Intent(this, PlayRecordCourseActivity.class);
startActivity(intent);
break;
case R.id.phone_study_say:
intent = new Intent(this, SayGroupListActivity.class);
startActivity(intent);
break;
}
}
}