package com.oc.mobilsecurity;
import java.util.StringTokenizer;
import android.content.Context;
import android.util.Log;
import com.oc.mobilsecurity.contact.Client;
import com.oc.mobilsecurity.data.UserData;
/**
*
* @author uyiqgyy ��������
*/
public class Run {
// private HardwareDao hardwareDao;
private Context context;
private UserData userData = UserData.getInstance();
public Run(Context con) {
context = con;
userData.getMoblileInformation().setContext(con);
}
/**
* ע�� ����˳��������
*
* @param uacot
* �˺�
* @param upswd
* ����
* @param ucard
* ���֤
* @param uname
* ����
* @param umobi
* �ֻ���
* @param umail
* �����
*
* @return �ɹ���ʧ��
*/
public boolean regist(String uacot, String upswd, String ucard,
String uname, String umobi, String umail) {
String message = PreferenceValue.ACTIONTYPEREGISTER + "*" + uacot + "*"
+ upswd + "*" + ucard + "*" + uname + "*" + umobi + "*" + umail;
if (!update(PreferenceValue.ACTIONTYPEREGISTER, message)) {
return false;
}
message = PreferenceValue.ACTIONTYPEUPDATEHARD + "*" + uacot + "*"
+ userData.getMoblileInformation().getUHard() + "*" + userData.getMoblileInformation().getDeviceName();
if (!update(PreferenceValue.ACTIONTYPEUPDATEHARD, message)) {
return false;
}
return true;
}
/**
* �һ� �˺����� Ҫ�����ά����Ϣ ���һ��String,��*�Ÿ���������������
*/
public boolean findcap(String qr) {
return update(PreferenceValue.ACTIONTYPEFINDCAP,
PreferenceValue.ACTIONTYPEFINDCAP + "*" + qr + "*"
+ userData.getMoblileInformation().getUHard());
}
public boolean findQR(String qr) {
return update(PreferenceValue.ACTIONTYPEFINDQR,
PreferenceValue.ACTIONTYPEFINDQR + "*" + qr + "*"
+ userData.getMoblileInformation().getUHard());
}
public boolean bindMobil(String qr) {
return update(PreferenceValue.ACTIONTYPEBINDMOBIL,
PreferenceValue.ACTIONTYPEBINDMOBIL + "*"
+ userData.getUserInformation().getId() + "*" + qr
+ "*" + userData.getMoblileInformation().getUHard()
+ "*" + userData.getMoblileInformation().getDeviceName());
}
public boolean bindPC(String qr) {
return update(PreferenceValue.ACTIONTYPEBINDPC,
PreferenceValue.ACTIONTYPEBINDPC + "*"
+ userData.getUserInformation().getId() + "*" + qr
+ "*" + userData.getMoblileInformation().getUHard());
}
public boolean unbindMobil(String name) {
return update(PreferenceValue.ACTIONTYPEUNBINDMOBIL,
PreferenceValue.ACTIONTYPEUNBINDMOBIL + "*"
+ userData.getUserInformation().getId() + "*" + name);
}
public boolean unbindPC(String name) {
return update(PreferenceValue.ACTIONTYPEUNBINDPC,
PreferenceValue.ACTIONTYPEUNBINDPC + "*"
+ userData.getUserInformation().getId() + "*" + name);
}
/**
* ���û���������
*
* @param uacot
* @param upswd
* @return
*/
public boolean changeAccount(String uacot) {
String message = PreferenceValue.ACTIONVERIFY + "*"
+ userData.getUserInformation().getId() + "*"
+ userData.getMoblileInformation().getUHard();
if (!update(PreferenceValue.ACTIONVERIFY, message)) {
return false;
}
message = PreferenceValue.MODIFYTYPEUSERNAME + "*"
+ userData.getUserInformation().getId() + "*" + uacot;
if (!update(PreferenceValue.MODIFYTYPEUSERNAME, message)) {
return false;
}
userData.getUserInformation().setUAcot(uacot);
return true;
}
public boolean changePasswd(String upswd) {
String message = PreferenceValue.ACTIONVERIFY + "*"
+ userData.getUserInformation().getId() + "*"
+ userData.getMoblileInformation().getUHard();
if (!update(PreferenceValue.ACTIONVERIFY, message)) {
return false;
}
message = PreferenceValue.MODIFYTYPEPASSWORD + "*"
+ userData.getUserInformation().getId() + "*" + upswd;
if (!update(PreferenceValue.MODIFYTYPEPASSWORD, message)) {
return false;
}
userData.getUserInformation().setUPswd(upswd);
return true;
}
public boolean changeMail(String umail) {
String message = PreferenceValue.MODIFYTYPEEMAIL + "*"
+ userData.getUserInformation().getId() + "*" + umail;
if (!update(PreferenceValue.MODIFYTYPEEMAIL, message)) {
return false;
}
userData.getUserInformation().setUMail(umail);
return true;
}
public boolean changeFile(String ufile) {
return false;
}
public boolean login(String uacot, String upswd, String ulgqr) {
return update(PreferenceValue.ACTIONTYPELOGIN,
PreferenceValue.ACTIONTYPELOGIN + "*" + uacot + "*" + upswd
+ "*" + ulgqr);
}
public String lookdaliy() {
String result = null;
return result;
}
public boolean pay() {
return update(PreferenceValue.ACTIONVERIFY,
PreferenceValue.ACTIONVERIFY + "*"
+ userData.getUserInformation().getId() + "*"
+ userData.getMoblileInformation().getUHard());
}
private boolean update(int actionType, String message) {
Client client = new Client();
client.init(context);
String result = client.process(message);
switch (actionType) {
case PreferenceValue.ACTIONTYPELOGIN: // Login
if (result.equals("null") || result.equals("error")
|| result.equals("false"))
return false;
else {
StringTokenizer st = new StringTokenizer(result, "*");
st.nextToken();
long id = Long.parseLong(st.nextToken());
String userAccount = st.nextToken();
String userPassword = st.nextToken();
String userCard = st.nextToken();
String userName = st.nextToken();
String userMobi = st.nextToken();
String userMail = st.nextToken();
int Mcount = Integer.parseInt(st.nextToken());
for (int i=0; i<Mcount; i++) {
userData.getMoblileInformation().addMobile(st.nextToken());
}
int Pcount = Integer.parseInt(st.nextToken());
for (int i=0; i<Pcount; i++) {
userData.getMoblileInformation().addPC(st.nextToken());
}
userData.getUserInformation().setAll(id, userAccount,
userPassword, userCard, userName, userMobi, userMail);
return true;
}
case PreferenceValue.ACTIONTYPEFINDCAP: // Find Account and Passwd
if (result.equals("null") || result.equals("error")
|| result.equals("false"))
return false;
else {
Log.v("TAG", result);
StringTokenizer st = new StringTokenizer(result, "*");
userData.getUserInformation().setUAcot(st.nextToken());
userData.getUserInformation().setUPswd(st.nextToken());
return true;
}
case PreferenceValue.ACTIONTYPEFINDQR:
case PreferenceValue.ACTIONTYPEREGISTER:
case PreferenceValue.ACTIONVERIFY:
case PreferenceValue.ACTIONTYPEBINDMOBIL:
case PreferenceValue.ACTIONTYPEBINDPC:
case PreferenceValue.ACTIONTYPEUNBINDMOBIL:
case PreferenceValue.ACTIONTYPEUNBINDPC:
case PreferenceValue.ACTIONTYPEUPDATEHARD:
case PreferenceValue.ACTIONTYPEUPDATESOFT:
case PreferenceValue.MODIFYTYPEUSERNAME:
case PreferenceValue.MODIFYTYPEPASSWORD:
case PreferenceValue.MODIFYTYPEEMAIL:
Log.v("TAG", result);
if (result.equals("null") || result.equals("error")
|| result.equals("false"))
return false;
else
return true;
default:
return false;
}
}
}