package com.hyrt.cei.ui.phonestudy;
import java.util.ArrayList;
import java.util.List;
import com.hyrt.cei.R;
import com.hyrt.cei.application.CeiApplication;
import com.hyrt.cei.dzb.ui.HomePageDZB;
import com.hyrt.cei.ui.phonestudy.adapter.PhoneStudyAdapter;
import com.hyrt.cei.util.MyTools;
import com.hyrt.cei.util.XmlUtil;
import com.hyrt.cei.vo.ColumnEntry;
import com.hyrt.cei.vo.Courseware;
import com.hyrt.cei.webservice.service.Service;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.Environment;
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 FreeActivity extends Activity implements OnClickListener {
// 课件集合
private List<Courseware> coursewares = new ArrayList<Courseware>();
// 业务集合
private static final int LVDATA_KEY = 1;
private static final int NO_NET = 2;
private ListView lv;
private PhoneStudyAdapter phoneStudyAdapter;
// 当前页码
private int index = 0;
// 更多数据按钮
private LinearLayout footer;
// 用户名
private String loginName;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.phone_study_free);
SharedPreferences settings = getSharedPreferences("loginInfo",Activity.MODE_PRIVATE);
loginName = settings.getString("LOGINNAME", "");
overridePendingTransition(R.anim.push_in, R.anim.push_out);
initBottom();
for (int i = 0; i < HomePageActivity.phoneStudyContainer.size(); i++) {
try {
FreeActivity isFreeActivity = (FreeActivity) (HomePageActivity.phoneStudyContainer
.get(i));
isFreeActivity.finish();
} catch (Exception e) {
}
}
HomePageActivity.phoneStudyContainer.add(this);
registEvent();
loadData();
}
@Override
protected void onDestroy() {
HomePageActivity.phoneStudyContainer.remove(this);
super.onDestroy();
}
private void loadData() {
ColumnEntry columnEntry = ((CeiApplication) (getApplication())).columnEntry;
if(columnEntry.getColByName(HomePageActivity.FREE_NAME,columnEntry.getColByName(HomePageActivity.MODEL_NAME).getId())
== null)
return;
loadDataForView(columnEntry.getColByName(HomePageActivity.FREE_NAME,columnEntry.getColByName(HomePageActivity.MODEL_NAME).getId())
.getId());
lv = (ListView) findViewById(R.id.phone_study_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 * 20; i < (index + 1) * 20
&& i < courses.size(); i++) {
if (i == courses.size() - 1)
footer.setVisibility(View.GONE);
coursewares.add(courses.get(i));
}
phoneStudyAdapter.notifyDataSetChanged();
}
});
lv.addFooterView(footer);
findViewById(R.id.phone_study_progressLl).setVisibility(View.VISIBLE);
}
private List<Courseware> courses = new ArrayList<Courseware>();
Handler dataHandler = new Handler() {
@Override
public void dispatchMessage(Message msg) {
findViewById(R.id.phone_study_progressLl).setVisibility(View.GONE);
switch (msg.arg1) {
case LVDATA_KEY:
if(courses.size() == 0)
footer.setVisibility(View.GONE);
for (int i = index * 20; i < (index + 1) * 20
&& i < courses.size(); i++) {
if (i == courses.size() - 1) {
footer.setVisibility(View.GONE);
} else {
if (footer.getVisibility() == View.GONE)
footer.setVisibility(View.VISIBLE);
}
coursewares.add(courses.get(i));
}
phoneStudyAdapter = new PhoneStudyAdapter(FreeActivity.this,
R.layout.phone_study_listview_nocontroitem,
coursewares, lv,false);
lv.setAdapter(phoneStudyAdapter);
break;
case NO_NET:
MyTools.exitShow(FreeActivity.this, ((Activity)FreeActivity.this).getWindow().getDecorView(), "网络有问题!");
break;
}
}
};
/**
* 获取某一业务下的课件列表
*
* @param functionId
*/
private void loadDataForView(final String functionId) {
// 检查sd卡是否存在不存在的话,则退出
if (!Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)) {
MyTools.exitShow(FreeActivity.this, ((Activity)FreeActivity.this).getWindow().getDecorView(), "sd卡不存在!");
return;
}
new Thread(new Runnable() {
@Override
public void run() {
// 获取数据
if (((CeiApplication) getApplication()).isNet()) {
String result = Service.queryPhoneFunctionTree(functionId,"kj", "androidpad");
if (XmlUtil.parseReturnCode(result).equals("")) {
XmlUtil.parseCoursewares(result, courses);
Message message = dataHandler.obtainMessage();
for (int i = 0; i < courses.size(); i++) {
Courseware courseware = courses.get(i);
courseware.setParentId(functionId);
courses.get(i).setFree(true);
((CeiApplication) (FreeActivity.this
.getApplication())).dataHelper
.saveCourseware(courseware);
}
message.arg1 = LVDATA_KEY;
dataHandler.sendMessage(message);
} else {
Message message = dataHandler.obtainMessage();
message.arg1 = NO_NET;
dataHandler.sendMessage(message);
}
} else {
Courseware courseware = new Courseware();
courseware.setParentId(functionId);
courses = ((CeiApplication) (FreeActivity.this
.getApplication())).dataHelper
.getCoursewares(courseware);
Message message = dataHandler.obtainMessage();
message.arg1 = LVDATA_KEY;
dataHandler.sendMessage(message);
}
}
}).start();
}
private void registEvent() {
findViewById(R.id.back_btn).setOnClickListener(this);
findViewById(R.id.phone_study_search_btn).setOnClickListener(this);
findViewById(R.id.phone_study_refresh).setOnClickListener(this);
findViewById(R.id.phone_study_downmanager).setOnClickListener(this);
}
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.back_btn:
this.finish();
break;
case R.id.phone_study_search_btn:
intent = new Intent(this, SearchCourseActivity.class);
startActivity(intent);
break;
case R.id.phone_study_downmanager:
intent = new Intent(this, PreloadActivity.class);
startActivity(intent);
break;
case R.id.phone_study:
intent = new Intent(this, HomePageDZB.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);
if (!loginName.equals(""))
startActivity(intent);
else
MyTools.exitShow(FreeActivity.this, ((Activity)FreeActivity.this).getWindow().getDecorView(), "请登陆后查看!");
break;
case R.id.phone_study_study:
intent = new Intent(this, PlayRecordCourseActivity.class);
if (!loginName.equals(""))
startActivity(intent);
else
MyTools.exitShow(FreeActivity.this, ((Activity)FreeActivity.this).getWindow().getDecorView(), "请登陆后查看!");
break;
case R.id.phone_study_say:
intent = new Intent(this, SayGroupListActivity.class);
if (!loginName.equals(""))
startActivity(intent);
else
MyTools.exitShow(FreeActivity.this, ((Activity)FreeActivity.this).getWindow().getDecorView(), "请登陆后查看!");
break;
case R.id.phone_study_refresh:
intent = new Intent(this, FreeActivity.class);
startActivity(intent);
break;
}
}
}