package coolbuy360.searchhealth;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.baidu.mapapi.utils.e;
import coolbuy360.adapter.ProgramAdapter;
import coolbuy360.adapter.ProgramAdapter.ProgramFiles;
import coolbuy360.control.ScoreChangePopup;
import coolbuy360.logic.NoticeStateConfig;
import coolbuy360.logic.Score;
import coolbuy360.logic.User;
import android.R.integer;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.GridView;
import android.widget.TextView;
import android.widget.Toast;
public class Member extends Activity {
public static Member iMember = null;
TextView txtname = null;
TextView member_txt_score = null;
Button btn_login = null;
TextView txtpermission = null;
GridView gridview;
private static int loginReqCode = 1;
private static int changPwdCode = 2;
private static int memberinfoCode = 3;
private static int checkPwdCode = 4;
/*private final Integer[] programImages = {
R.drawable.program_ico_drugfav_img,
R.drawable.program_ico_drugstorefav_img,
R.drawable.program_ico_purchasehistory_img,
R.drawable.program_ico_historyofmedicine_img,
R.drawable.program_ico_purchasehistory_img,
R.drawable.program_ico_historyofmedicine_img,
R.drawable.program_ico_changepwd_img,
R.drawable.program_ico_vipcards_img };
private final Integer[] programNames = { R.string.program_drugfav,
R.string.program_drugstorefav, R.string.program_memberinfo,
R.string.program_healthdossier, R.string.program_purchasehistory,
R.string.program_historyofmedicine, R.string.program_changepwd,
R.string.program_vipcards };
private final String[] programTags = { "drugfav", "drugstorefav", "memberinfo",
"healthdossier", "purchasehistory", "historyofmedicine", "changepwd", "vipcards" };
private final Boolean[] programIsUseAble = { true, true, true, true, false, false,
true, false };*/
private final Integer[] programImages = {
R.drawable.program_ico_purchasehistory_img,
R.drawable.program_ico_historyofmedicine_img,
R.drawable.program_ico_drugfav_img,
R.drawable.program_ico_drugstorefav_img,
R.drawable.program_ico_changepwd_img,
R.drawable.program_ico_noticecenter_img,
R.drawable.program_ico_healthtrack_img,
R.drawable.program_ico_score_img };
private final Integer[] programNames = { R.string.program_memberinfo,
R.string.program_healthdossier, R.string.program_drugfav,
R.string.program_drugstorefav, R.string.program_changepwd,
R.string.program_noticecenter, R.string.program_healthtrack,
R.string.program_healthscore};
private final String[] programTags = { "memberinfo",
"healthreport", "drugfav", "drugstorefav", "changepwd",
"noticecenter", "healthtrack","healthscore" };
private final Boolean[] programIsUseAble = { true, true, true, true, true, true, true ,true};
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
//����ӵ�¼��ת����
if (requestCode == loginReqCode) {
checkIsAutoLogin(User.IsLogged);
if (User.IsLogged) {
Bundle backBundle = data.getExtras();
if (backBundle != null) {
runProgram(backBundle.getString("backprogram"), true);
}
}
}
// ��������֤��ת����
else if (requestCode == checkPwdCode) {
if (User.IsLogged) {
Bundle backBundle = data.getExtras();
if (backBundle != null) {
runProgram(backBundle.getString("backprogram"), true);
}
}
}
// �Ļ�Ա��Ϣ���ص�ֵ
else if (requestCode == memberinfoCode) {
Bundle bundle = data.getExtras();
String memberName = bundle.getString("membername");
txtname.setText(memberName);
int addscore = bundle.getInt("addscore");
if (addscore != 0) {
User.updateScore(this, addscore + "");
showScoreChange(R.id.member_name, addscore);
}
}
// ����Ǵ������봰����ת������
else if (requestCode == changPwdCode) {
logout();
}
}
}
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.member);
iMember = this;
txtpermission = (TextView) this.findViewById(R.id.member_permission);
txtname = (TextView) this.findViewById(R.id.member_name);
member_txt_score = (TextView) this.findViewById(R.id.member_txt_score);
member_txt_score.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
memberHealthOnClick();
}
});
btn_login = (Button) this.findViewById(R.id.btn_login);
checkIsAutoLogin(User.IsLogged);
// ��ʼ����Ա�����б�
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++;
}
/*// ���ý��������¹���ͼ��
String healthReport_IsVisited = NoticeStateConfig.getValue(this,
NoticeStateConfig.HealthReport_IsVisited);
if (healthReport_IsVisited.equals("0")) {
programList.get(1).put(ProgramFiles.NewFunction.toString(), true);
}*/
// ʵ����һ��������
ProgramAdapter adapter = new ProgramAdapter(this, programList);
// ���GridViewʵ��
gridview = (GridView) findViewById(R.id.program_gridview);
// ��GridView����������������
// gridview.setSelector(new ColorDrawable(Color.TRANSPARENT));
gridview.setAdapter(adapter);
gridview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int posion,
long arg3) {
// TODO Auto-generated method stub
runProgram(programTags[posion], false);
}
});
}
/**
* ������Ӧ����
* @param programname
*/
private void runProgram(String programname, Boolean ischecked) {
if (programname != null) {
if (programname.equals("drugfav")) {
drugFavOnClick();
} else if (programname.equals("drugstorefav")) {
storeFavOnClick();
} else if (programname.equals("changepwd")) {
changePwdOnClick();
} else if (programname.equals("memberinfo")) {
memberInfoOnClick();
} else if (programname.equals("noticecenter")) {
noticeCenterOnClick();
} else if (programname.equals("healthtrack")) {
healthTrackOnClick(ischecked);
} else if (programname.equals("healthreport")) {
healthReportOnClick(ischecked);
} else if (programname.equals("healthscore")) {
memberHealthOnClick();
} else if (programname.equals("")) {
} else {
tempOnClick();
}
}
}
/**
* ҩ���ղص���¼�����
*/
public void storeFavOnClick() {
Intent drugIntent = new Intent().setClass(Member.this,
MemberDrugStoreCollect.class);
startActivity(drugIntent);
}
/**
* ҩƷ�ղص���¼�����
*/
private void drugFavOnClick() {
Intent drugIntent = new Intent().setClass(Member.this,
MemberDrugCollect.class);
startActivity(drugIntent);
}
/* (non-Javadoc)
* @see android.app.Activity#onNewIntent(android.content.Intent)
*/
@Override
protected void onNewIntent(Intent intent) {
// TODO Auto-generated method stub
super.onNewIntent(intent);
Toast.makeText(Member.this, "�¼���,����¼�¼�", 1).show();
checkIsAutoLogin(User.IsLogged);
//Log.i("chenlinwei", "-----onNewIntent");
}
/* (non-Javadoc)
* @see android.app.Activity#onRestart()
*/
@Override
protected void onRestart() {
// TODO Auto-generated method stub
super.onRestart();
checkIsAutoLogin(User.IsLogged);
//Log.i("chenlinwei", "-----onrestart");
}
/* (non-Javadoc)
* @see android.app.Activity#onResume()
*/
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
if (User.IsLogged) {
refreshScore();
}
}
/**
* �������ϵ���¼�����
*/
public void memberInfoOnClick() {
if (User.IsLogged) {
Intent memberInfoIntent = new Intent().setClass(Member.this,
MemberInfo.class);
Bundle bundle = new Bundle();
bundle.putString("memberid", User.getMemberID());
memberInfoIntent.putExtras(bundle);
startActivityForResult(memberInfoIntent,memberinfoCode);
} else {
Intent loginIntent = new Intent().setClass(Member.this,
MemberLogin.class);
loginIntent.putExtra("backprogram", "memberinfo");
startActivityForResult(loginIntent, loginReqCode);
}
}
/**
* ������������������¼�����
*/
public void healthReportOnClick(Boolean ischecked) {
if (User.IsLogged) {
if (ischecked) {
Intent memberHealthReportIntent = new Intent().setClass(Member.this,
MemberHealthReport.class);
this.startActivity(memberHealthReportIntent);
} else {
Intent checkIntent = new Intent().setClass(Member.this,
MemberCheckPwd.class);
checkIntent.putExtra("backprogram", "healthreport");
startActivityForResult(checkIntent, checkPwdCode);
}
} else {
Intent loginIntent = new Intent().setClass(Member.this,
MemberLogin.class);
loginIntent.putExtra("backprogram", "healthreport");
startActivityForResult(loginIntent, loginReqCode);
}
}
/**
* �����켣����¼�����
*/
public void healthTrackOnClick(Boolean ischecked) {
if (User.IsLogged) {
if (ischecked) {
Intent healthDossierIntent = new Intent().setClass(Member.this,
HealthDossier.class);
this.startActivity(healthDossierIntent);
} else {
Intent checkIntent = new Intent().setClass(Member.this,
MemberCheckPwd.class);
checkIntent.putExtra("backprogram", "healthtrack");
startActivityForResult(checkIntent, checkPwdCode);
}
} else {
Intent loginIntent = new Intent().setClass(Member.this,
MemberLogin.class);
loginIntent.putExtra("backprogram", "healthtrack");
startActivityForResult(loginIntent, loginReqCode);
}
}
/**
* ������
*/
public void changePwdOnClick() {
if (User.IsLogged) {
Intent changPwdIntent = new Intent().setClass(Member.this,
MemberPwdChange.class);
startActivityForResult(changPwdIntent,changPwdCode);
} else {
Intent loginIntent = new Intent().setClass(Member.this,
MemberLogin.class);
loginIntent.putExtra("backprogram", "changepwd");
startActivityForResult(loginIntent, loginReqCode);
}
}
/**
* ��Ϣ����
*/
public void noticeCenterOnClick() {
if (User.IsLogged) {
Intent noticeCenterIntent = new Intent().setClass(Member.this,
NoticeCenter.class);
this.startActivity(noticeCenterIntent);
} else {
Intent loginIntent = new Intent().setClass(Member.this,
MemberLogin.class);
loginIntent.putExtra("backprogram", "noticecenter");
startActivityForResult(loginIntent, loginReqCode);
}
}
/**
* ��ʱ�¼�
*/
private void tempOnClick() {
Toast.makeText(Member.this, "�������ڿ�����", Toast.LENGTH_SHORT).show();
}
/**
* ��¼�¼�
*
* @author chenlw
*
*/
public class loginOnClick implements OnClickListener {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent loginIntent = new Intent().setClass(Member.this,
MemberLogin.class);
startActivityForResult(loginIntent,loginReqCode);
}
}
/**
* ����ֵ����¼�����
*/
public void memberHealthOnClick() {
if (User.IsLogged) {
Intent memberInfoIntent = new Intent().setClass(Member.this,
MemberHealthScore.class);
Bundle bundle = new Bundle();
bundle.putString("memberid", User.getMemberID());
memberInfoIntent.putExtras(bundle);
startActivityForResult(memberInfoIntent,memberinfoCode);
} else {
Intent loginIntent = new Intent().setClass(Member.this,
MemberLogin.class);
loginIntent.putExtra("backprogram", "healthscore");
startActivityForResult(loginIntent, loginReqCode);
}
}
/**
* ע���¼�
*
* @author chenlw
*
*/
public class logoutOnClick implements OnClickListener {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
/*
* Intent loginIntent=new Intent().setClass(Member.this,
* MemberLogin.class); startActivityForResult(loginIntent,0);
*/
logout();
}
}
/**
* ע������ز���
*
*/
private void logout() {
User user = new User(getBaseContext());
Boolean logoutStat = user.logout();
if (!logoutStat) {
checkIsAutoLogin(User.IsLogged);
}
}
/**
* ����Ƿ��Ѿ����ڵ�¼״̬
*
* @param islogin
* �����ļ��е�״ֵ̬ --true�������Ѿ���¼����֮û�е�¼
*/
public void checkIsAutoLogin(Boolean islogin) {
if (islogin)// ����Ѿ��Զ���¼
{
btn_login.setText("ע��");
txtname.setText(User.getMemberName(getBaseContext()));
refreshScore();
btn_login.setOnClickListener(new logoutOnClick());
String drugStoreName = User.getValue(getBaseContext(),
"DrugStoreName");
String drugStoreID = User.getValue(getBaseContext(), "DrugStoreID");
String specialIDs = "6204,6205,6206,6207,";
if (drugStoreName != null && !drugStoreName.equals("")) {
if (drugStoreID != null && !drugStoreID.equals("")
&& specialIDs.contains(drugStoreID)) {
txtpermission.setText("����" + drugStoreName + "�Ļ�Ա��");
} else {
txtpermission.setText("����" + drugStoreName
+ "�Ļ�Ա���������ܸ�ҩ�����ػ�Ա�Ż�");
}
} else {
txtpermission.setText("��ӭʹ�ý���100��Ա����");
}
} else {
txtname.setText("δ��¼");
member_txt_score.setText("0");
btn_login.setText("��¼");
btn_login.setOnClickListener(new loginOnClick());
txtpermission.setText(R.string.member_txt_nopermission);
}
}
/**
* ˢ�½���ֵ
*/
private void refreshScore() {
String score = User.getScore(getBaseContext());
if (score == null || score.equals("")) {
member_txt_score.setText("0");
} else {
member_txt_score.setText(score);
}
}
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();
}
/**
* ��ʾ���ֱ仯����
* @param parentViewID
* @param value
*/
private void showScoreChange(int parentViewID, int value) {
ScoreChangePopup popupWindow = new ScoreChangePopup(this, value);
popupWindow.showAtLocation(findViewById(parentViewID),
Gravity.CENTER, 0, 0);
popupWindow.delayedDismiss();
}
// ����ģʽ�л�ȡΨһ��MyApplicationʵ��
public static Member getInstance() {
if (iMember == null) {
return null;
}
return iMember;
}
/**
* ģ��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);
}
/*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);
}*/
}