package com.myqsc.mobile2.login.uti;
import java.util.ArrayList;
import java.util.List;
import com.myqsc.mobile2.support.database.structure.UserIDStructure;
import com.myqsc.mobile2.uti.BroadcastHelper;
import com.myqsc.mobile2.uti.Utility;
import android.content.Context;
import android.content.Intent;
import org.json.JSONArray;
import org.json.JSONException;
public class PersonalDataHelper {
Context context = null;
List<UserIDStructure> list = new ArrayList<UserIDStructure>();
public PersonalDataHelper(Context context){
this.context = context;
String result = context.getSharedPreferences(Utility.PREFERENCE, 0)
.getString(UserIDStructure.PREFERENCE, null);
if (result != null) {
try {
JSONArray jsonArray = new JSONArray(result);
for (int i = 0; i != jsonArray.length(); ++i) {
list.add(new UserIDStructure(jsonArray.optJSONObject(i)));
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}
public List<UserIDStructure> allUser() {
return list;
}
public void save() {
JSONArray jsonArray = new JSONArray();
for(UserIDStructure structure : list) {
jsonArray.put(structure.toJsonObject());
}
context.getSharedPreferences(Utility.PREFERENCE, 0)
.edit()
.putString(UserIDStructure.PREFERENCE, jsonArray.toString())
.commit();
}
public void add(UserIDStructure userIDStructure) {
for (int i = 0; i < list.size(); ++i)
if (list.get(i).uid.compareTo(userIDStructure.uid) == 0)
list.remove(i);
list.add(userIDStructure);
setDefault(userIDStructure.uid);
save();
}
public void setDefault(String uid) {
for(UserIDStructure structure : list) {
if (structure.uid.compareTo(uid) == 0)
structure.select = true;
else
structure.select = false;
}
save();
context.sendBroadcast(new Intent(BroadcastHelper.BROADCAST_USER_CHANGED));
}
public UserIDStructure getCurrentUser() {
for (UserIDStructure structure : list) {
if (structure.select)
return structure;
}
return null;
}
public int deleteDefault() {
for (int i = 0; i < list.size(); ++i)
if (list.get(i).select)
list.remove(i);
save();
if (list.size() > 0) {
setDefault(list.get(0).uid);
save();
return 0;
} else
return -1;
}
}