working on gui refactorization (vii)

parent d022b4ed
......@@ -292,11 +292,31 @@ public class Device extends SQLiteOpenHelper {
public void insertUser(User user) {
SQLiteDatabase db = this.getWritableDatabase();
Log.i("FERNANDO","INSERT INTO users_detail values (" +
user.get_id_stu() + ", " +
"'" + user.get_nickname_stu() + "', " +
(user.get_pwd_stu()==null ? "null, " : ("'" + user.get_pwd_stu() + "', " +
"'")) + user.get_name_stu() + "', " +
"'" + user.get_surname_stu() + "', " +
"'" + user.get_url_img_stu() + "', " +
"'" + user.get_gender_stu() + "', " +
"'" + user.get_lang_stu() + "', " +
"'" + user.get_json_attrs() + "', " +
"'" + user.get_id_sup() + "', " +
"'" + user.get_email_sup() + "', " +
"'" + user.get_pwd_sup() + "', " +
"'" + user.get_name_sup() + "', " +
"'" + user.get_surname_sup() + "', " +
"'" + user.get_url_img_sup() + "'," +
"'" + user.get_gender_sup() + "'," +
"'" + user.get_lang_sup() + "'," +
"'" + user.get_tts_engine_sup() + "'" +
")");
db.execSQL("INSERT INTO users_detail values (" +
user.get_id_stu() + ", " +
"'" + user.get_nickname_stu() + "', " +
user.get_pwd_stu()==null ? "" : ("'" + user.get_pwd_stu() + "', " +
"'") + user.get_name_stu() + "', " +
(user.get_pwd_stu()==null ? "NULL" : ("'" + user.get_pwd_stu() + "'"))+", " +
"'" + user.get_name_stu() + "', " +
"'" + user.get_surname_stu() + "', " +
"'" + user.get_url_img_stu() + "', " +
"'" + user.get_gender_stu() + "', " +
......
......@@ -49,43 +49,6 @@ public class LoginActivity extends FragmentActivity {
protected void show_login_failed(int msg) {
AlertDialog.Builder builder = new AlertDialog.Builder(LoginActivity.this);
builder.setMessage(getString(msg))
.setCancelable(false)
.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
AlertDialog alert = builder.create();
alert.show();
}
private void manage_offline_supervisor(String username, String password) {
try {
Log.d(LOG_TAG, "username utilizado:" + username);
Log.d(LOG_TAG, "password utilizado:" + password);
Vector<User> localUsers = PCBcontext.getDevice().findUser(username, password);
// Si sólo hay 1 estudiante, cargo el st_id
if (localUsers.size() == 1){
PCBcontext.set_user(localUsers.elementAt(0), null, null);
Intent pictogramActivity = new Intent(this, PictogramActivity.class);
startActivity(pictogramActivity);
} else{
getIntent().putExtra("sup_id", localUsers.elementAt(0).get_id_sup()); //TODO: comprobar, ¿esto no está hecho ya?
setContentView(R.layout.activity_login);
}
} catch (JSONException e) {
e.printStackTrace();
} catch (LoginException e) {
show_login_failed(e.known_supervisor() ? R.string.passErrorMsg
: e.no_students() ? R.string.noStudentsError
: R.string.userErrorMsg);
}
}
/**
......@@ -95,18 +58,10 @@ public class LoginActivity extends FragmentActivity {
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
final Intent intent = getIntent();
Boolean offline = intent.getBooleanExtra("offline", false);
if (offline)
manage_offline_supervisor(intent.getStringExtra("username"), intent.getStringExtra("password"));
else {
setContentView(R.layout.activity_login);
}
}
@Override
protected void onResume() {
super.onResume();
......
......@@ -58,7 +58,7 @@ public class SerialActivity extends Activity {
private void manageSupervisorLogin(final String email, final String password, boolean online) {
final Intent loginActivity = new Intent(SerialActivity.this, LoginActivity.class);
if (online) {
final ProgressDialog progressDialog = ProgressDialog.show(SerialActivity.this, SerialActivity.this.getBaseContext().getString(R.string.userLoadingTxt),
SerialActivity.this.getBaseContext().getString(R.string.userLoadingTxt), false, false);
......@@ -96,9 +96,9 @@ public class SerialActivity extends Activity {
}
try {
Intent loginActivity = new Intent(SerialActivity.this, LoginActivity.class);
Integer su_id = user.getInt(TAG_ID);
int su_id_int = su_id.intValue();
;
loginActivity.putExtra("offline", false);
loginActivity.putExtra("sup_id", su_id_int);
......@@ -110,7 +110,6 @@ public class SerialActivity extends Activity {
loginActivity.putExtra("pic", user.getString(TAG_PIC));
loginActivity.putExtra("gender", user.getString(TAG_GENDER));
loginActivity.putExtra("lang", user.getString(TAG_LANG));
Log.i(this.getClass().getCanonicalName(),"FERNANDO arrancando loginActivity");
startActivity(loginActivity);
} catch (JSONException e) {
......@@ -125,14 +124,40 @@ public class SerialActivity extends Activity {
SerialActivity.this.error(e);
}
});
} else{
} else //offline
checkLogin_sup_offline(email, password);
}
private void checkLogin_sup_offline(String username, String password) {
try {
Log.d(LOG_TAG, "username utilizado:" + username);
Log.d(LOG_TAG, "password utilizado:" + password);
Vector<User> localUsers = PCBcontext.getDevice().findUser(username, password);
// Si sólo hay 1 estudiante, cargo el st_id
if (localUsers.size() == 1) {
PCBcontext.set_user(localUsers.elementAt(0), null, null);
Intent pictogramActivity = new Intent(this, PictogramActivity.class);
startActivity(pictogramActivity);
} else {
Intent loginActivity = new Intent(SerialActivity.this, LoginActivity.class);
loginActivity.putExtra("sup_id", localUsers.elementAt(0).get_id_sup()); //TODO: comprobar, ¿esto no está hecho ya?
loginActivity.putExtra("offline", true);
loginActivity.putExtra("username", email);
loginActivity.putExtra("password", password);
startActivity(loginActivity);
setContentView(R.layout.activity_login);
}
} catch (JSONException e) {
e.printStackTrace();
} catch (LoginException e) {
if (e.knonwn_student())
show_login_failed(R.string.passErrorMsg);
else if (e.known_supervisor())
show_login_failed(R.string.userErrorMsg);
else if (e.no_students())
show_login_failed(R.string.noStudentsError);
}
}
private void manageStudentLogin(final String username, final String password, boolean online)
{
final Intent pictogramActivity = new Intent(SerialActivity.this, PictogramActivity.class);
......@@ -208,9 +233,9 @@ public class SerialActivity extends Activity {
e.printStackTrace();
} catch (LoginException e) {
if (e.knonwn_student())
this.show_pwd_unknown();
show_login_failed(R.string.userErrorMsg);
else
this.show_user_unknown();
show_login_failed(R.string.passErrorMsg);
}
} //offline student login
......@@ -251,11 +276,10 @@ public class SerialActivity extends Activity {
error=null;
}
if (error!=null){
if (error.contains("Invalid password") || error.contains("No credentials sent"))
show_pwd_unknown();
show_login_failed(R.string.passErrorMsg);
else if (error.contains("User not found"))
show_user_unknown();
show_login_failed(R.string.userErrorMsg);
}
return error==null;
}
......@@ -273,13 +297,6 @@ public class SerialActivity extends Activity {
alert.show();
}
private void show_user_unknown() {
show_login_failed(R.string.userErrorMsg);
}
private void show_pwd_unknown() {
show_login_failed(R.string.passErrorMsg);
}
private void error(Exception e) {
Log.e(this.getClass().getName(), e.getLocalizedMessage());
......@@ -316,7 +333,8 @@ public class SerialActivity extends Activity {
// Escribo el último valor indicado de username
mSerialViewMail.setText(username);
if (username.equals("") || password.equals("")) { // No tengo aún usuario. Espero a que lo indique
if (!username.equals("") && !password.equals("")) login(username, password);
Button mEntrarButton = (Button) findViewById(R.id.entrar_button);
mEntrarButton.setOnClickListener(new OnClickListener() {
......@@ -324,17 +342,14 @@ public class SerialActivity extends Activity {
public void onClick(View view) {
String username = mSerialViewMail.getText().toString();
String password = mSerialViewPass.getText().toString();
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putString("username", username);
editor.putString("password", password);
editor.commit();
SerialActivity.this.login(username, password);
}
Log.i(this.getClass().getCanonicalName(), "FERNANDO CLICK");
login(username, password);}
});
} else
login(username, password);
}
}
}
\ No newline at end of file
......@@ -50,11 +50,11 @@ public class StudentFragmentGrid extends Fragment{
final String TAG_PIC = "pic";
final String TAG_LANG = "lang";
final String TAG_ATTRIBUTES = "attributes";
final String TAG_SUPERVISED="supervised";
final String TAG_SUPERVISION="supervision";
Vector<Integer> idStudents;
String nameStudents[];
Vector<Bitmap> imageStudents;
private JSONArray students;
private Vector<JSONObject> downloaded_students;
GridView gridView;
......@@ -87,7 +87,7 @@ public class StudentFragmentGrid extends Fragment{
}
private void new_user(int i) {
JSONObject st = this.students.optJSONObject(i);
JSONObject st = this.downloaded_students.get(i);
Intent intent = getActivity().getIntent();
try {
User new_user = new User(
......@@ -132,16 +132,15 @@ public class StudentFragmentGrid extends Fragment{
}
}
private void create_student_list_online() {
final Vector<Img> imgs = new Vector<>(students.length());
this.nameStudents=new String[students.length()];
this.idStudents=new Vector<>(students.length());
this.imageStudents=new Vector<>(students.length());
final Vector<Img> imgs = new Vector<>(downloaded_students.size());
this.nameStudents=new String[downloaded_students.size()];
this.idStudents=new Vector<>(downloaded_students.size());
this.imageStudents=new Vector<>(downloaded_students.size());
for (int i = 0; i < students.length(); i++) {
for (int i = 0; i < downloaded_students.size(); i++) {
JSONObject st;
try {
st = students.getJSONObject(i);
if (st.getInt(TAG_SUPERVISED)==0) continue;
st = downloaded_students.get(i);
Integer st_id = st.getInt(TAG_ID);
String st_name = st.getString(TAG_NAME);
String st_pic = st.getString(TAG_PIC);
......@@ -162,8 +161,8 @@ public class StudentFragmentGrid extends Fragment{
@Override
public void loadComplete() {
progressDialog.dismiss();
if (students.length() > 1) {
for (int i = 0; i < students.length(); i++)
if (downloaded_students.size() > 1) {
for (int i = 0; i < imgs.size(); i++)
try {
imageStudents.add(imgs.get(i).get_bitmap(getActivity().getBaseContext()));
} catch (IOException e) {
......@@ -208,7 +207,17 @@ public class StudentFragmentGrid extends Fragment{
@Override
public void result(JSONArray students) {
progressDialog.dismiss();
StudentFragmentGrid.this.students=students;
StudentFragmentGrid.this.downloaded_students=new Vector();
for (int i=0;i<students.length();i++) {
JSONObject student;
try {
student = students.getJSONObject(i);
if (student.getInt(TAG_SUPERVISION)>0)
StudentFragmentGrid.this.downloaded_students.add(student);
} catch (JSONException e) {
e.printStackTrace();
}
}
create_student_list_online();
switch (students.length()) {
case 0:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment