package coolbuy360.searchhealth;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import coolbuy360.adapter.ProgramAdapter;
import coolbuy360.adapter.ProgramAdapter.ProgramFiles;
import coolbuy360.logic.NoticeStateConfig;
import coolbuy360.service.searchApp;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnLongClickListener;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.GridView;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
public class More extends Activity {
public static More iMore = null;
GridView gridview = null;
// ��ҽ��
// R.drawable.program_ico_weibodoc_img,
// R.string.program_weibodoc,
// "weibodoc",
private final Integer[] programImages = {
R.drawable.program_ico_news_img,
R.drawable.program_ico_dissertation_img,
R.drawable.program_ico_exposure_img,
R.drawable.program_ico_feedback_img,
R.drawable.program_ico_setting_img,
R.drawable.program_ico_about_img };
private final Integer[] programNames = {R.string.program_news, R.string.program_dissertation, R.string.program_exposure,
R.string.program_feedback,
R.string.program_setting, R.string.program_about };
private final String[] programTags = { "news","dissertation", "exposure", "feedback",
"setting", "about" };
private final Boolean[] programIsUseAble = { true,true, true, true, true, true };
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
// Ϊ�˳�����
searchApp.getInstance().addActivity(this);
setContentView(R.layout.more);
iMore = this;
/*// �ж�8��������Ƿ��Ѿ�������
Date nowDate = new Date();
Date meetendDate = coolbuy360.service.Util.getDateFromStr(
"2013-12-12 23:59:59", "yyyy-MM-dd HH:mm:ss");
if (nowDate.compareTo(meetendDate) < 0) {
programImages[0] = R.drawable.program_ico_dissertation_new_img;
}*/
// ��ʼ��������б�
List<Map<String, Object>> programList = new ArrayList<Map<String, Object>>();
int i = 0;
for (Integer programimage : programImages) {
Map<String, Object> programitem = new HashMap<String, Object>();
programitem.put(ProgramFiles.Image.toString(), programimage);
programitem.put(ProgramFiles.Name.toString(), programNames[i]);
programitem.put(ProgramFiles.Tag.toString(), programTags[i]);
programitem.put(ProgramFiles.IsUseAble.toString(), programIsUseAble[i]);
programList.add(programitem);
i++;
}
setDisIco(programList);
//���ר��no������
/*if (dissertation_IsVisited.equals("0")) {
programList.get(1).put(ProgramFiles.NewFunction.toString(), true);
} else {
programList.get(1).put(ProgramFiles.NewFunction.toString(), null);
String dissertation_HasNew = NoticeStateConfig.getValue(this,
NoticeStateConfig.Dissertation_HasNew);
// ���has a news message
if (dissertation_HasNew.equals("1")) {
programList.get(1).put(ProgramFiles.NewNotice.toString(), true);
} else {
programList.get(1).put(ProgramFiles.NewNotice.toString(), null);
}
}*/
// ʵ����һ��������
ProgramAdapter adapter = new ProgramAdapter(this, programList);
// ���GridViewʵ��
gridview = (GridView) findViewById(R.id.program_gridview);
// ��GridView����������������
gridview.setAdapter(adapter);
gridview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int posion,
long arg3) {
// TODO Auto-generated method stub
if (programTags[posion].equals("news")) {
// �ع���
Intent baoguangIntent = new Intent().setClass(More.this,
MoreNews.class);
startActivity(baoguangIntent);
}
if (programTags[posion].equals("exposure")) {
// �ع���
Intent baoguangIntent = new Intent().setClass(More.this,
Exposure.class);
startActivity(baoguangIntent);
} else if (programTags[posion].equals("weibodoc")) {
Intent intent = new Intent().setClass(More.this,
MoreWeiboDoctor.class);
startActivity(intent);
} else if (programTags[posion].equals("feedback")) {
Intent pageIntent = new Intent().setClass(More.this,
Feedback.class);
startActivity(pageIntent);
} else if (programTags[posion].equals("setting")) {
Intent pageIntent = new Intent().setClass(More.this,
Settings.class);
startActivity(pageIntent);
} else if (programTags[posion].equals("about")) {
startActivity(new Intent(More.this, About.class));
} else if (programTags[posion].equals("dissertation")) {
startActivity(new Intent(More.this, Dissertation.class));
}
}
});
/*Button testBtn=(Button) findViewById(R.id.testbtn);
testBtn.setLongClickable(true);
testBtn.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// TODO Auto-generated method stub
Intent testIntent=new Intent ().setClass(More.this,TestPage.class );
startActivity(testIntent);
return false;
}
});*/
}
private void setDisIco(List<Map<String, Object>> programList)
{
//����new�Ϻ�����newico
String news_IsVisited=NoticeStateConfig.getValue(this, NoticeStateConfig.News_IsVisited);
setDisNewIco(news_IsVisited,programList,0);
String dissertation_IsVisited = NoticeStateConfig.getValue(this,
NoticeStateConfig.Dissertation_IsVisited);
setDisNewIco(dissertation_IsVisited,programList,1);
}
/**
* ������ʾnew��icon
* @param isvisited
*
* @param programList
* @param postion
* index
*/
private void setDisNewIco(String isvisited,List<Map<String, Object>> programList,int postion)
{
//���ר��no������
if (isvisited.equals("0")) {
programList.get(postion).put(ProgramFiles.NewFunction.toString(), true);
} else {
programList.get(postion).put(ProgramFiles.NewFunction.toString(), null);
String HasNew="0";
switch (postion) {
case 0:
HasNew=NoticeStateConfig.getNewsAllState(this);
break;
case 1:
HasNew = NoticeStateConfig.getValue(this,
NoticeStateConfig.Dissertation_HasNew);
break;
default:
break;
}
setDisCricleIco(HasNew, programList, postion);
}
}
/**
* �����Ƿ���ʾԲ���
* @param isHasNew
* @param programList
* @param postion
*/
private void setDisCricleIco(String isHasNew,List<Map<String, Object>> programList,int postion)
{
// ���has a news message
if (isHasNew.equals("1")) {
programList.get(postion).put(ProgramFiles.NewNotice.toString(), true);
} else {
programList.get(postion).put(ProgramFiles.NewNotice.toString(), null);
}
}
public void setNewNotice(int position, Boolean value) {
ProgramAdapter pad = (ProgramAdapter)(gridview.getAdapter());
Map<String, Object> mprogram = (Map<String, Object>)(pad.getItem(position));
if(value){
mprogram.put(ProgramFiles.NewNotice.toString(), true);
} else {
mprogram.put(ProgramFiles.NewNotice.toString(), null);
}
pad.notifyDataSetChanged();
}
public void setNewFunction(int position, Boolean value) {
ProgramAdapter pad = (ProgramAdapter)(gridview.getAdapter());
Map<String, Object> mprogram = (Map<String, Object>)(pad.getItem(position));
if(value){
mprogram.put(ProgramFiles.NewFunction.toString(), true);
} else {
mprogram.put(ProgramFiles.NewFunction.toString(), null);
}
pad.notifyDataSetChanged();
}
// ����ģʽ�л�ȡΨһ��MyApplicationʵ��
public static More getInstance() {
if (iMore == null) {
return null;
}
return iMore;
}
/**
* ģ��Home������ϵͳ��������Ӧ�ý���
*/
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK
&& event.getAction() == KeyEvent.ACTION_DOWN) {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);// ע��
intent.addCategory(Intent.CATEGORY_HOME);
this.startActivity(intent);
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
protected void onResume() {
// TODO �Զ����ɵķ������
//Toast.makeText(this, "Resume", 0).show();
String isNewsHasNew=NoticeStateConfig.getNewsAllState(this);
if(isNewsHasNew.equals("0"))
{
setNewNotice(0, false);
}
String isMoreHasNew=NoticeStateConfig.getMoreAllState(this);
if(isMoreHasNew.equals("0"))
{
ConMain.mConMain.setNewNotice("����", false);
}
super.onResume() ;
}
/*private long exitTime = 0;
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK
&& event.getAction() == KeyEvent.ACTION_DOWN) {
if ((System.currentTimeMillis() - exitTime) > 2000) {
Toast.makeText(getApplicationContext(), "�ٰ�һ���˳�����",
Toast.LENGTH_SHORT).show();
exitTime = System.currentTimeMillis();
} else {
// Log.i(TAG, "�˳�");
finish();
System.exit(0);
}
return true;
}
return super.onKeyDown(keyCode, event);
}*/
}