package org.carelife.creader.ui.activity;
import java.util.ArrayList;
import java.util.List;
import org.carelife.creader.bean.BookBasicBean;
import org.carelife.creader.db.BookDao;
import org.carelife.creader.service.PushService;
import org.carelife.creader.ui.adapter.AutoUpdateAapter;
import org.carelife.creader.util.ToastUtil;
import org.carelife.creader.R;
import android.app.ActionBar;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Pair;
import android.view.Gravity;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.Switch;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ListView;
public class AutoUpdate extends Activity {
private CheckBox selectAll;
private ListView bookList;
private Button commitButton;
private Button cancelButton;
private List<Boolean> isCheckedList;
private List<Pair<String, String>> bookNameList;
private List<BookBasicBean> basic_list;
private BookDao bd;
private boolean cheak_flag = true;
private ToastUtil toast;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
View title = getLayoutInflater().inflate(R.layout.switch_action_layout,
null);
Switch switchBtn = (Switch) title.findViewById(R.id.switchBtn);
getActionBar().setCustomView(title,
new ActionBar.LayoutParams(Gravity.RIGHT));
getActionBar().setDisplayShowCustomEnabled(true);
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setTitle("�Զ���");
switchBtn.setChecked(true);
switchBtn
.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
// TODO ....
}
});
setContentView(R.layout.autoupdate);
toast = ToastUtil.getInstance(this);
selectAll = (CheckBox) findViewById(R.id.checkall);
bookList = (ListView) findViewById(R.id.autoupdate_list);
commitButton = (Button) findViewById(R.id.autoupdate_button_commit);
cancelButton = (Button) findViewById(R.id.autoupdate_button_cancer);
initData();
AutoUpdateAapter auAd = new AutoUpdateAapter(AutoUpdate.this,
bookNameList, isCheckedList);
bookList.setAdapter(auAd);
selectAll.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
if (cheak_flag) {
for (int i = 0; i < isCheckedList.size(); i++) {
isCheckedList.set(i, isChecked);
AutoUpdateAapter auAd = new AutoUpdateAapter(
AutoUpdate.this, bookNameList, isCheckedList);
bookList.setAdapter(auAd);
}
} else {
cheak_flag = true;
}
}
});
bookList.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
if (arg2 < isCheckedList.size() && arg2 >= 0) {
isCheckedList.set(arg2, !isCheckedList.get(arg2));
boolean temp_b = cheak_all(isCheckedList);
if (!temp_b && selectAll.isChecked() || temp_b
&& !selectAll.isChecked()) {
cheak_flag = false;
}
selectAll.setChecked(temp_b);
AutoUpdateAapter auAd = new AutoUpdateAapter(
AutoUpdate.this, bookNameList, isCheckedList);
bookList.setAdapter(auAd);
}
}
});
commitButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO д�����ݿ�
for (int i = 0; i < isCheckedList.size(); i++) {
if (isCheckedList.get(i) == true) {
bd.set_book_needupdate_force(basic_list.get(i));
} else {
bd.del_needupdate(basic_list.get(i));
}
}
toast.setText("���óɹ�");
Intent intentservice = new Intent()
.setAction(PushService.ACTION);
startService(intentservice);
AutoUpdate.this.finish();
}
});
cancelButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
toast.setText("��ȡ��");
AutoUpdate.this.finish();
}
});
}
private boolean cheak_all(List<Boolean> list) {
for (boolean item : list) {
if (!item) {
return false;
}
}
return true;
}
private void initData() {
// TODO
bookNameList = new ArrayList<Pair<String, String>>();
isCheckedList = new ArrayList<Boolean>();
bd = BookDao.getInstance(AutoUpdate.this);
basic_list = bd.getBook_list();
if (basic_list != null) {
for (BookBasicBean book : basic_list) {
bookNameList.add(new Pair<String, String>(book.getBook_name(),
book.getAuthor_name()));
if (book.getNeed_post() == 1)
isCheckedList.add(true);
else
isCheckedList.add(false);
}
}
selectAll.setChecked(cheak_all(isCheckedList));
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
AutoUpdate.this.finish();
break;
case R.id.menu_search:
Intent intent = new Intent(AutoUpdate.this, SearchPage.class);
AutoUpdate.this.startActivity(intent);
break;
default:
return super.onOptionsItemSelected(item);
}
return true;
}
}