package com.hyrt.cei.ui.phonestudy;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import com.hyrt.cei.R;
import com.hyrt.cei.adapter.PhoneStudySearchAdapter;
import com.hyrt.cei.application.CeiApplication;
import com.hyrt.cei.ui.information.InfoSearchActivity;
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.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.opengl.Visibility;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
import android.view.View.OnClickListener;
import android.view.View.OnKeyListener;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.Toast;
public class SearchCourseActivity extends Activity {
private ExecutorService executorService = Executors.newFixedThreadPool(1);
private ListView lv;
private List<Courseware> coursewares = new ArrayList<Courseware>();
private EditText searchContent;
// 当前页索引
private int index = 0;
// 该搜索下所有的课件列表
private List<Courseware> courses = new ArrayList<Courseware>();
// 上一次的查询内容
private String oldSearchText = "";
// 此次的查询内容
private String currentSearchText;
// 课件列表适配器
private PhoneStudySearchAdapter phoneStudySearchAdapter;
//更多按钮
private LinearLayout footer;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.phone_study_searchcourse);
overridePendingTransition(R.anim.push_in, R.anim.push_out);
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
lv = (ListView) findViewById(R.id.phone_study_searchcourse_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));
}
phoneStudySearchAdapter.notifyDataSetChanged();
}
});
lv.addFooterView(footer);
for (int i = 0; i < HomePageActivity.phoneStudyContainer.size(); i++) {
try {
SearchCourseActivity isSearchCourseActivity = (SearchCourseActivity) (HomePageActivity.phoneStudyContainer
.get(i));
isSearchCourseActivity.finish();
} catch (Exception e) {
}
}
HomePageActivity.phoneStudyContainer.add(this);
findViewById(R.id.back_btn).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
SearchCourseActivity.this.finish();
}
});
searchContent = (EditText) findViewById(R.id.phone_study_search_edit);
final SharedPreferences settings = getSharedPreferences("search_result",Activity.MODE_PRIVATE);
String historyStr = settings.getString("history", "");
searchContent.setText(historyStr);
findViewById(R.id.phone_study_search_ss).setOnClickListener(
new OnClickListener() {
@Override
public void onClick(View v) {
if (!(searchContent.getText() != null && searchContent
.getText().toString().trim().equals(""))) {
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
//得到InputMethodManager的实例
if (imm.isActive()) {
//如果开启
}
imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, InputMethodManager.HIDE_NOT_ALWAYS);
currentSearchText = searchContent.getText().toString().trim();
if (oldSearchText.equals(currentSearchText))
return;
oldSearchText = currentSearchText;
Editor editor = settings.edit();
editor.putString("history", currentSearchText);
editor.commit();
initLvData();
}else{
MyTools.exitShow(SearchCourseActivity.this, ((Activity)SearchCourseActivity.this).getWindow().getDecorView(), "搜索内容不能为空");
}
}
});
findViewById(R.id.phone_study_downmanager).setOnClickListener(
new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(SearchCourseActivity.this,
PreloadActivity.class);
startActivity(intent);
}
});
findViewById(R.id.phone_study_refresh).setOnClickListener(
new OnClickListener() {
@Override
public void onClick(View v) {
SearchCourseActivity.this.finish();
Intent intent = new Intent(SearchCourseActivity.this,
SearchCourseActivity.class);
startActivity(intent);
}
});
searchContent.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (KeyEvent.KEYCODE_ENTER == keyCode
&& event.getAction() == KeyEvent.ACTION_DOWN) {
if (!(searchContent.getText() != null && searchContent
.getText().toString().trim().equals("")))
initLvData();
return true;
}
return false;
}
});
}
Handler handler = new Handler() {
@Override
public void dispatchMessage(Message msg) {
((ProgressBar) findViewById(R.id.phone_study_searchcourse_progress)).setVisibility(View.GONE);
if(courses.size() == 0){
MyTools.exitShow(SearchCourseActivity.this, SearchCourseActivity.this.getWindow().getDecorView(), "没有查到您需要的信息!");
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));
}
phoneStudySearchAdapter = new PhoneStudySearchAdapter(
SearchCourseActivity.this,
R.layout.phone_study_searchcourse_listview_item,
coursewares, lv);
lv.setAdapter(phoneStudySearchAdapter);
}
};
private void initLvData() {
((ProgressBar) findViewById(R.id.phone_study_searchcourse_progress)).setVisibility(View.VISIBLE);
executorService.submit(new Runnable() {
private StringBuilder functionIds;
List<Courseware> selfselCoursewares;
// 初始化请求数据
private void initSendData() {
ColumnEntry columnEntry = ((CeiApplication) (SearchCourseActivity.this
.getApplication())).columnEntry;
ColumnEntry phoneStudyCol = columnEntry
.getColByName(HomePageActivity.MODEL_NAME);
functionIds = new StringBuilder(phoneStudyCol.getId());
selfselCoursewares = new ArrayList<Courseware>();
for (int i = 0; i < columnEntry.getColumnEntryChilds().size(); i++) {
ColumnEntry entryChild = columnEntry.getColumnEntryChilds()
.get(i);
if (entryChild.getPath() != null
&& entryChild.getPath().contains(
phoneStudyCol.getId())) {
functionIds.append("," + entryChild.getId());
}
}
coursewares.clear();
courses.clear();
}
public void run() {
initSendData();
if (((CeiApplication) getApplication()).isNet()) {
String result = Service.queryClassName(searchContent.getText().toString().trim(),functionIds.toString());
XmlUtil.parseCoursewares(result, courses);
result = Service.queryCourse(((CeiApplication) (getApplication())).columnEntry.getUserId());
XmlUtil.parseCoursewares(result, selfselCoursewares);
for (int i = 0; i < courses.size(); i++) {
for (int j = 0; j < selfselCoursewares.size(); j++) {
if (courses.get(i).getClassId().equals(selfselCoursewares.get(j).getClassId())) {
courses.get(i).setSelfCourse(true);
}
}
((CeiApplication) getApplication()).dataHelper.saveCourseware(courses.get(i));
}
} else {
Courseware courseware = new Courseware();
courseware.setName(searchContent.getText().toString()
.trim());
courses = ((CeiApplication) getApplication()).dataHelper
.getCoursewares(courseware);
}
handler.sendMessage(handler.obtainMessage());
}
});
}
@Override
protected void onDestroy() {
HomePageActivity.phoneStudyContainer.remove(this);
super.onDestroy();
}
}