tablet licenses on supervisor's student list

parent e15898d1
...@@ -15,6 +15,11 @@ ...@@ -15,6 +15,11 @@
<item name="darkorange" type="color">#FFFF8800</item> <item name="darkorange" type="color">#FFFF8800</item>
<item name="darkred" type="color">#cc0000</item> <item name="darkred" type="color">#cc0000</item>
<!-- Main Pictogram Web Colors -->
<item name="text_primary" type="color">#428bca</item>
<item name="text_warning" type="color">#8a6d3b</item>
<item name="text_danger" type="color">#a94442</item>
<integer-array name="androidcolors"> <integer-array name="androidcolors">
<item>@color/blue</item> <item>@color/blue</item>
<item>@color/purple</item> <item>@color/purple</item>
......
...@@ -7,6 +7,7 @@ import android.graphics.Color; ...@@ -7,6 +7,7 @@ import android.graphics.Color;
import android.graphics.Typeface; import android.graphics.Typeface;
import android.provider.ContactsContract; import android.provider.ContactsContract;
import android.support.v4.content.ContextCompat; import android.support.v4.content.ContextCompat;
import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
...@@ -64,23 +65,25 @@ public class CustomList extends ArrayAdapter<String>{ ...@@ -64,23 +65,25 @@ public class CustomList extends ArrayAdapter<String>{
// Name // Name
TextView txtTitle = (TextView) rowView.findViewById(R.id.loginStudentName); TextView txtTitle = (TextView) rowView.findViewById(R.id.loginStudentName);
// License // License, except add student view
TextView licenseView = (TextView) rowView.findViewById(R.id.loginStudentLicense); TextView licenseView = (TextView) rowView.findViewById(R.id.loginStudentLicense);
switch (licenses[position]) { if(!name_surname[position].equals(getContext().getString(R.string.addStudent))){
case "pro":
if(licenses[position].equals("pro")) {
licenseView.setText(fa_certificate); licenseView.setText(fa_certificate);
break; licenseView.setTextColor(getContext().getResources().getColor(R.color.text_primary));
case "b": }else if (licenses[position].equals("trial")) {
licenseView.setText(fa_flask); licenseView.setText(fa_flask);
break; licenseView.setTextColor(getContext().getResources().getColor(R.color.text_warning));
default: }else {
licenseView.setText(fa_exclamation_triangle); licenseView.setText(fa_exclamation_triangle);
licenseView.setTextColor(getContext().getResources().getColor(R.color.text_danger));
}
Typeface font = Typeface.createFromAsset( getContext().getAssets(), "fonts/fontawesome-webfont.ttf" );
licenseView.setTypeface(font);
} }
Typeface font = Typeface.createFromAsset( getContext().getAssets(), "fonts/fontawesome-webfont.ttf" );
licenseView.setTypeface(font);
// Image // Image
ImageView imageView = (ImageView) rowView.findViewById(R.id.loginStudentPhoto); ImageView imageView = (ImageView) rowView.findViewById(R.id.loginStudentPhoto);
txtTitle.setText(name_surname[position]); txtTitle.setText(name_surname[position]);
......
...@@ -36,11 +36,12 @@ import java.util.Vector; ...@@ -36,11 +36,12 @@ import java.util.Vector;
/** /**
* StudentFragmentGrid implements the gridview with the students * StudentFragmentGrid implements the gridview with the students
*
* @author Miguel Ángel García Cumbreras * @author Miguel Ángel García Cumbreras
* @author Fernando * @author Fernando
* @version 1.1 * @version 1.1
*/ */
public class StudentFragmentGrid extends Fragment{ public class StudentFragmentGrid extends Fragment {
final String TAG_ID = "id"; final String TAG_ID = "id";
final String TAG_USERNAME = "username"; final String TAG_USERNAME = "username";
...@@ -51,32 +52,42 @@ public class StudentFragmentGrid extends Fragment{ ...@@ -51,32 +52,42 @@ public class StudentFragmentGrid extends Fragment{
final String TAG_PIC = "pic"; final String TAG_PIC = "pic";
final String TAG_LANG = "lang"; final String TAG_LANG = "lang";
final String TAG_ATTRIBUTES = "attributes"; final String TAG_ATTRIBUTES = "attributes";
ProgressDialog progressDialog; ProgressDialog progressDialog;
Vector<Integer> idStudents; Vector<Integer> idStudents;
String nameStudents[]; String nameStudents[];
Vector<Bitmap> imageStudents; Vector<Bitmap> imageStudents;
String licenseStudents[];
private Vector<JSONObject> downloaded_students; private Vector<JSONObject> downloaded_students;
private final String LOG_TAG = this.getClass().getSimpleName(); // Or .getCanonicalName() private final String LOG_TAG = this.getClass().getSimpleName(); // Or .getCanonicalName()
GridView gridView; GridView gridView;
boolean onlineStudentsOK=false; boolean onlineStudentsOK = false;
private void showStudentsGrid(){ /**
CustomList adapter = new CustomList(getActivity(), nameStudents, imageStudents); * Show students grid
*/
private void showStudentsGrid() {
CustomList adapter = new CustomList(getActivity(), nameStudents, imageStudents, licenseStudents);
gridView.setAdapter(adapter); gridView.setAdapter(adapter);
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override @Override
public void onItemClick(AdapterView<?> arg0, View arg1, int pos, long arg3) { public void onItemClick(AdapterView<?> arg0, View arg1, int pos, long arg3) {
set_user(pos); set_user(pos);
} }
}); });
} }
/**
* Set current user
* @param i Position of student in students name array (nameStudents)
*/
private void set_user(int i) { private void set_user(int i) {
Boolean offline = getActivity().getIntent().getBooleanExtra("offline", false); Boolean offline = getActivity().getIntent().getBooleanExtra("offline", false);
if (offline) { if (offline) {
User currentUser= null; User currentUser = null;
try { try {
currentUser = PCBcontext.getDevice().findUser(idStudents.get(i),getActivity().getIntent().getIntExtra("sup_id", 0)); currentUser = PCBcontext.getDevice().findUser(idStudents.get(i), getActivity().getIntent().getIntExtra("sup_id", 0));
} catch (JSONException e) { } catch (JSONException e) {
e.printStackTrace(); e.printStackTrace();
Log.e(StudentFragmentGrid.this.getClass().getCanonicalName(), e.getMessage()); Log.e(StudentFragmentGrid.this.getClass().getCanonicalName(), e.getMessage());
...@@ -93,60 +104,74 @@ public class StudentFragmentGrid extends Fragment{ ...@@ -93,60 +104,74 @@ public class StudentFragmentGrid extends Fragment{
} }
} }
} }
private void register_student(final int sup_id) {
AlertDialog.Builder alert = new AlertDialog.Builder(this.getActivity()); /**
final EditText edittext = new EditText(this.getActivity()); * Register a new student using his license
alert.setMessage(getString(R.string.getLicenseStudent)); * @param sup_id Supervisor id
alert.setTitle(getString(R.string.addStudent)); */
private void register_student(final int sup_id) {
alert.setView(edittext); AlertDialog.Builder alert = new AlertDialog.Builder(this.getActivity());
final EditText edittext = new EditText(this.getActivity());
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() { alert.setMessage(getString(R.string.getLicenseStudent));
public void onClick(DialogInterface dialog, int whichButton) { alert.setTitle(getString(R.string.addStudent));
//What ever you want to do with the value
String license = edittext.getText().toString().replaceAll("[^a-zA-Z0-9]","").toUpperCase(); alert.setView(edittext);
RestapiWrapper wrapper = PCBcontext.getRestapiWrapper();
String operation = "stu/license/sup/" + sup_id ; alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
Hashtable<String, String> params=new Hashtable<String, String>(1); public void onClick(DialogInterface dialog, int whichButton) {
params.put("license",license); //What ever you want to do with the value
wrapper.ask(operation, params, "post", new RestapiWrapper.iRestapiListener() { String license = edittext.getText().toString().replaceAll("[^a-zA-Z0-9]", "").toUpperCase();
@Override RestapiWrapper wrapper = PCBcontext.getRestapiWrapper();
public void error(RestapiWrapper.HTTPException e) { String operation = "stu/license/sup/" + sup_id;
Log.e(this.getClass().getName(), " Server restapi error: " + e.getLocalizedMessage()); Hashtable<String, String> params = new Hashtable<String, String>(1);
String err = e.getLocalizedMessage(); params.put("license", license);
if ( err.indexOf("nvalid license") > 0) wrapper.ask(operation, params, "post", new RestapiWrapper.iRestapiListener() {
GUITools.show_alert(getActivity(),R.string.loginNoLicenseMsg); @Override
} public void error(RestapiWrapper.HTTPException e) {
@Override Log.e(this.getClass().getName(), " Server restapi error: " + e.getLocalizedMessage());
public void preExecute() { String err = e.getLocalizedMessage();
} if (err.indexOf("nvalid license") > 0)
@Override GUITools.show_alert(getActivity(), R.string.loginNoLicenseMsg);
public void result(JSONArray result) {
}
@Override
public void result(JSONObject result) {
PCBcontext.getNetService().restart_app(false);
} }
});
}
});
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { @Override
public void onClick(DialogInterface dialog, int whichButton) { public void preExecute() {
// what ever you want to do with No option. }
}
});
alert.show(); @Override
} public void result(JSONArray result) {
}
@Override
public void result(JSONObject result) {
PCBcontext.getNetService().restart_app(false);
}
});
}
});
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// what ever you want to do with No option.
}
});
alert.show();
}
/**
* Change user data, load vocabulary and goes to VOCA Activity
* @param i Position on students downloaded collection
*/
private void new_user(int i) { private void new_user(int i) {
JSONObject st = this.downloaded_students.get(i); JSONObject st = this.downloaded_students.get(i);
Intent intent = getActivity().getIntent(); Intent intent = getActivity().getIntent();
try { try {
Log.i(LOG_TAG,st.toString()); Log.i(LOG_TAG, st.toString());
PCBcontext.getPcbdb(); PCBcontext.getPcbdb();
User new_user = new User( User new_user = new User(
st.getInt(TAG_ID), st.getInt(TAG_ID),
st.getString(TAG_USERNAME), st.getString(TAG_USERNAME),
null, null,
...@@ -166,15 +191,18 @@ private void register_student(final int sup_id) { ...@@ -166,15 +191,18 @@ private void register_student(final int sup_id) {
intent.getStringExtra("gender"), intent.getStringExtra("gender"),
intent.getStringExtra("lang"), intent.getStringExtra("lang"),
"", "",
intent.getStringExtra("office")); intent.getStringExtra("office")
Log.i(this.getClass().getCanonicalName(),"Loading vocabulary for "+new_user.get_name_stu()+" office:"+intent.getStringExtra("office")); );
Log.i(this.getClass().getCanonicalName(), "Loading vocabulary for " + new_user.get_name_stu() + " office:" + intent.getStringExtra("office"));
PCBcontext.getDevice().insertUser(new_user); PCBcontext.getDevice().insertUser(new_user);
progressDialog=ProgressDialog.show(getActivity(), getString(R.string.loadingGrammar),
getString(R.string.userLoadingTxt), false, false); progressDialog = ProgressDialog.show(getActivity(), getString(R.string.loadingGrammar), getString(R.string.userLoadingTxt), false, false);
PCBcontext.set_user(new_user, intent.getStringExtra("token"), new ImgDownloader.iImgDownloaderListener() { PCBcontext.set_user(new_user, intent.getStringExtra("token"), new ImgDownloader.iImgDownloaderListener() {
@Override @Override
public void loadComplete() { public void loadComplete() {
if (progressDialog!=null && progressDialog.isShowing()) progressDialog.dismiss(); if (progressDialog != null && progressDialog.isShowing())
progressDialog.dismiss();
Intent pictogramActivity = new Intent(getActivity(), VOCA.class); Intent pictogramActivity = new Intent(getActivity(), VOCA.class);
startActivity(pictogramActivity); startActivity(pictogramActivity);
} }
...@@ -183,10 +211,11 @@ private void register_student(final int sup_id) { ...@@ -183,10 +211,11 @@ private void register_student(final int sup_id) {
public void loadImg(Img image) { public void loadImg(Img image) {
} }
public void error(Exception e) { public void error(Exception e) {
if (progressDialog.isShowing()) progressDialog.dismiss(); if (progressDialog.isShowing()) progressDialog.dismiss();
GUITools.show_alert(StudentFragmentGrid.this.getActivity(), R.string.serverError, e.getMessage()); GUITools.show_alert(StudentFragmentGrid.this.getActivity(), R.string.serverError, e.getMessage());
Log.e(this.getClass().getCanonicalName(), "Server error:"+ e.getLocalizedMessage()); Log.e(this.getClass().getCanonicalName(), "Server error:" + e.getLocalizedMessage());
} }
}); });
...@@ -195,12 +224,18 @@ private void register_student(final int sup_id) { ...@@ -195,12 +224,18 @@ private void register_student(final int sup_id) {
Log.e(StudentFragmentGrid.this.getClass().getCanonicalName(), e.getMessage()); Log.e(StudentFragmentGrid.this.getClass().getCanonicalName(), e.getMessage());
} }
} }
/**
* Process JSON into collections
*/
private void show_student_list_online() { private void show_student_list_online() {
final int listsize=downloaded_students.size()+1; final int listsize = downloaded_students.size() + 1;
final Vector<Img> imgs = new Vector<>(listsize); final Vector<Img> imgs = new Vector<>(listsize);
this.nameStudents=new String[listsize]; this.nameStudents = new String[listsize];
this.idStudents=new Vector<>(listsize); this.idStudents = new Vector<>(listsize);
this.imageStudents=new Vector<>(listsize); this.imageStudents = new Vector<>(listsize);
this.licenseStudents = new String[listsize];
for (int i = 0; i < downloaded_students.size(); i++) { for (int i = 0; i < downloaded_students.size(); i++) {
JSONObject st; JSONObject st;
...@@ -210,35 +245,46 @@ private void register_student(final int sup_id) { ...@@ -210,35 +245,46 @@ private void register_student(final int sup_id) {
String st_name = st.getString(TAG_NAME); String st_name = st.getString(TAG_NAME);
String st_pic = st.getString(TAG_PIC); String st_pic = st.getString(TAG_PIC);
nameStudents[i]=st_name; nameStudents[i] = st_name;
idStudents.add(st_id); idStudents.add(st_id);
imgs.add(new Img(st_id,st_pic,Img.STUDENT)); //it's required to download student's images imgs.add(new Img(st_id, st_pic, Img.STUDENT)); //it's required to download student's images
// Checks if license is trial or pro (not expired)
if(!st.getJSONObject("license").getBoolean("isValid"))
licenseStudents[i] = "expired";
else if(st.getJSONObject("license").getBoolean("isTrial"))
licenseStudents[i] = "trial";
else if(st.getJSONObject("license").getBoolean("isOfficial"))
licenseStudents[i] = "pro";
Log.i("Test", licenseStudents[i]);
} catch (JSONException e) { } catch (JSONException e) {
e.printStackTrace(); e.printStackTrace();
Log.e(StudentFragmentGrid.this.getClass().getCanonicalName(), e.getMessage()); Log.e(StudentFragmentGrid.this.getClass().getCanonicalName(), e.getMessage());
} }
} //for } //for
nameStudents[listsize-1]=getString(R.string.addStudent);
nameStudents[listsize - 1] = getString(R.string.addStudent);
idStudents.add(-1); idStudents.add(-1);
imgs.add(new Img(-1,null,Img.STUDENT)); //it's required to download student's images licenseStudents[listsize -1] = "pro";
imgs.add(new Img(-1, null, Img.STUDENT)); //it's required to download student's images
ImgDownloader downloader = new ImgDownloader(getActivity(), new ImgDownloader.iImgDownloaderListener() { ImgDownloader downloader = new ImgDownloader(getActivity(), new ImgDownloader.iImgDownloaderListener() {
private void loaded() { private void loaded() {
try { try {
if (downloaded_students.size() >= 1) if (downloaded_students.size() >= 1)
for (int i = 0; i < imgs.size(); i++) for (int i = 0; i < imgs.size(); i++)
imageStudents.add(imgs.get(i).get_bitmap(getActivity().getBaseContext())); imageStudents.add(imgs.get(i).get_bitmap(getActivity().getBaseContext()));
imageStudents.add(imgs.get(listsize-1).get_bitmap(getActivity().getBaseContext())); imageStudents.add(imgs.get(listsize - 1).get_bitmap(getActivity().getBaseContext()));
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
Log.e(StudentFragmentGrid.this.getClass().getCanonicalName(),e.getMessage()); Log.e(StudentFragmentGrid.this.getClass().getCanonicalName(), e.getMessage());
} }
if (StudentFragmentGrid.super.getView()!=null) if (StudentFragmentGrid.super.getView() != null)
showStudentsGrid(); showStudentsGrid();
else else
onlineStudentsOK=true; onlineStudentsOK = true;
} }
@Override @Override
public void loadComplete() { public void loadComplete() {
loaded(); loaded();
...@@ -248,10 +294,11 @@ private void register_student(final int sup_id) { ...@@ -248,10 +294,11 @@ private void register_student(final int sup_id) {
public void loadImg(Img image) { public void loadImg(Img image) {
loaded(); loaded();
} }
public void error(Exception e) { public void error(Exception e) {
if (progressDialog.isShowing()) progressDialog.dismiss(); if (progressDialog.isShowing()) progressDialog.dismiss();
GUITools.show_alert(PCBcontext.getContext(), R.string.serverError, e.getMessage()); GUITools.show_alert(PCBcontext.getContext(), R.string.serverError, e.getMessage());
Log.e(this.getClass().getCanonicalName(), "Server error:"+ e.getLocalizedMessage()); Log.e(this.getClass().getCanonicalName(), "Server error:" + e.getLocalizedMessage());
} }
}, ImgDownloader.tsource.remote); }, ImgDownloader.tsource.remote);
downloader.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, imgs); downloader.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, imgs);
...@@ -259,8 +306,9 @@ private void register_student(final int sup_id) { ...@@ -259,8 +306,9 @@ private void register_student(final int sup_id) {
/** /**
* Recupera los supervisores de un alumno * Recupera los supervisores de un alumno
* @author Germán Callejas *
* @param stu_id * @param stu_id
* @author Germán Callejas
*/ */
private void download_supervisors(final int stu_id) { private void download_supervisors(final int stu_id) {
String token = getActivity().getIntent().getExtras().getString("token"); String token = getActivity().getIntent().getExtras().getString("token");
...@@ -279,22 +327,24 @@ private void register_student(final int sup_id) { ...@@ -279,22 +327,24 @@ private void register_student(final int sup_id) {
} }
}); });
} }
@Override @Override
public void preExecute() { public void preExecute() {
} }
@Override @Override
public void result(JSONArray supervisors) { public void result(JSONArray supervisors) {
Vector<String> idSupervisoresJSON = new Vector<>(); Vector<String> idSupervisoresJSON = new Vector<>();
for (int i=0;i<supervisors.length();i++) { for (int i = 0; i < supervisors.length(); i++) {
JSONObject supervisor = null; JSONObject supervisor = null;
try { try {
supervisor = supervisors.getJSONObject(i); supervisor = supervisors.getJSONObject(i);
idSupervisoresJSON.add(supervisor.getString("email")); idSupervisoresJSON.add(supervisor.getString("email"));
if(!PCBcontext.getDevice().isSupervisorOnLocal((int) supervisor.get("id"),stu_id)) {//Para comprobar si ya existe en local if (!PCBcontext.getDevice().isSupervisorOnLocal((int) supervisor.get("id"), stu_id)) {//Para comprobar si ya existe en local
User currentUser = PCBcontext.getPcbdb().getCurrentUser(); User currentUser = PCBcontext.getPcbdb().getCurrentUser();
PCBcontext.getDevice().insertUser(new User(stu_id, currentUser.get_nickname_stu(), currentUser.get_pwd_stu() PCBcontext.getDevice().insertUser(new User(stu_id, currentUser.get_nickname_stu(), currentUser.get_pwd_stu()
, currentUser.get_name_stu(),currentUser.get_surname_stu(),currentUser.get_active_scene(), currentUser.get_url_img_stu() , currentUser.get_name_stu(), currentUser.get_surname_stu(), currentUser.get_active_scene(), currentUser.get_url_img_stu()
, currentUser.get_gender_stu(), currentUser.get_lang_stu(), currentUser.get_json_attrs(), , currentUser.get_gender_stu(), currentUser.get_lang_stu(), currentUser.get_json_attrs(),
(int) supervisor.get("id"), supervisor.get("email").toString(), "_", supervisor.get("name").toString(), supervisor.get("surname").toString(), supervisor.get("pic").toString(), (int) supervisor.get("id"), supervisor.get("email").toString(), "_", supervisor.get("name").toString(), supervisor.get("surname").toString(), supervisor.get("pic").toString(),
supervisor.get("gender").toString(), supervisor.get("lang").toString(), supervisor.get("ttsEngine").toString(), supervisor.get("office").toString())); supervisor.get("gender").toString(), supervisor.get("lang").toString(), supervisor.get("ttsEngine").toString(), supervisor.get("office").toString()));
...@@ -306,12 +356,12 @@ private void register_student(final int sup_id) { ...@@ -306,12 +356,12 @@ private void register_student(final int sup_id) {
/**Eliminar los que habia y que ya no vienen en el JSON */ /**Eliminar los que habia y que ya no vienen en el JSON */
try { try {
Hashtable<String,String> supervisorsLocal = PCBcontext.getDevice().recoverSupervisors(stu_id); Hashtable<String, String> supervisorsLocal = PCBcontext.getDevice().recoverSupervisors(stu_id);
if(supervisorsLocal != null && !supervisorsLocal.isEmpty()){ if (supervisorsLocal != null && !supervisorsLocal.isEmpty()) {
for(String email_sup: supervisorsLocal.keySet()){ for (String email_sup : supervisorsLocal.keySet()) {
if(!idSupervisoresJSON.contains(email_sup)){ if (!idSupervisoresJSON.contains(email_sup)) {
//Coge la segunda parte ya que el formato del dato es Nombre, Apellidos;id_sup //Coge la segunda parte ya que el formato del dato es Nombre, Apellidos;id_sup
PCBcontext.getDevice().deleteSupervisor(stu_id,Integer.parseInt(supervisorsLocal.get(email_sup).split(";")[1])); PCBcontext.getDevice().deleteSupervisor(stu_id, Integer.parseInt(supervisorsLocal.get(email_sup).split(";")[1]));
} }
} }
} }
...@@ -328,30 +378,38 @@ private void register_student(final int sup_id) { ...@@ -328,30 +378,38 @@ private void register_student(final int sup_id) {
}); });
} }
private void download_students(final int sup_id ) { /**
* Download students from supervisor into downloaded_students
* @param sup_id Supervisor id
*/
private void download_students(final int sup_id) {
String token = getActivity().getIntent().getExtras().getString("token"); String token = getActivity().getIntent().getExtras().getString("token");
RestapiWrapper wrapper = PCBcontext.getRestapiWrapper(); RestapiWrapper wrapper = PCBcontext.getRestapiWrapper();
wrapper.setToken(token); wrapper.setToken(token);
String operation = "sup/" + sup_id + "/students"; String operation = "sup/" + sup_id + "/students";
wrapper.ask(operation, new RestapiWrapper.iRestapiListener() { wrapper.ask(operation, new RestapiWrapper.iRestapiListener() {
@Override @Override
public void error(RestapiWrapper.HTTPException e) { public void error(RestapiWrapper.HTTPException e) {
Log.e(this.getClass().getName(), " Server restapi error: " + e.getLocalizedMessage()); Log.e(this.getClass().getName(), " Server restapi error: " + e.getLocalizedMessage());
GUITools.show_alert(getActivity(), R.string.loginErrorTxt, getString(R.string.serverError), new GUITools.iOKListener() { GUITools.show_alert(getActivity(), R.string.loginErrorTxt, getString(R.string.serverError), new GUITools.iOKListener() {
@Override @Override
public void ok() { public void ok() {
PCBcontext.getNetService().restart_app(false); PCBcontext.getNetService().restart_app(false);
} }
}); });
} }
@Override @Override
public void preExecute() { public void preExecute() {
} }
@Override @Override
public void result(JSONArray students) { public void result(JSONArray students) {
if (progressDialog!=null && progressDialog.isShowing()) progressDialog.dismiss(); if (progressDialog != null && progressDialog.isShowing()) progressDialog.dismiss();
StudentFragmentGrid.this.downloaded_students=new Vector(); StudentFragmentGrid.this.downloaded_students = new Vector();
for (int i=0;i<students.length();i++) { for (int i = 0; i < students.length(); i++) {
JSONObject student; JSONObject student;
try { try {
student = students.getJSONObject(i); student = students.getJSONObject(i);
...@@ -362,43 +420,44 @@ private void register_student(final int sup_id) { ...@@ -362,43 +420,44 @@ private void register_student(final int sup_id) {
} }
show_student_list_online(); show_student_list_online();
} }
@Override @Override
public void result(JSONObject result) { public void result(JSONObject result) {
} }
}); });
} }
@Override @Override
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setRetainInstance(true); setRetainInstance(true);
} }
@Override @Override
public void onStart() { public void onStart() {
super.onStart(); super.onStart();
Intent intent=getActivity().getIntent(); Intent intent = getActivity().getIntent();
Boolean offline = intent.getBooleanExtra("offline", false); Boolean offline = intent.getBooleanExtra("offline", false);
int sup_id=intent.getIntExtra("sup_id", 0); int sup_id = intent.getIntExtra("sup_id", 0);
if (offline) { if (offline) {
Vector<User> users; Vector<User> users;
try { try {
users = PCBcontext.getDevice().recoverStudents(sup_id); users = PCBcontext.getDevice().recoverStudents(sup_id);
Log.i(this.getClass().getCanonicalName(),"Recovering "+users.size()+" students list for "+ sup_id+" from local DB"); Log.i(this.getClass().getCanonicalName(), "Recovering " + users.size() + " students list for " + sup_id + " from local DB");
} catch (JSONException e) { } catch (JSONException e) {
e.printStackTrace(); e.printStackTrace();
users=null; users = null;
} }
int i=0; int i = 0;
this.nameStudents=new String[users.size()]; this.nameStudents = new String[users.size()];
this.idStudents=new Vector<>(users.size()); this.idStudents = new Vector<>(users.size());
this.imageStudents=new Vector<>(users.size()); this.imageStudents = new Vector<>(users.size());
for (User user: users) { for (User user : users) {
this.idStudents.add(user.get_id_stu()); this.idStudents.add(user.get_id_stu());
this.nameStudents[i++]=user.get_name_stu(); this.nameStudents[i++] = user.get_name_stu();
try { try {
this.imageStudents.add(user.get_bitmap_stu(getActivity().getBaseContext())); this.imageStudents.add(user.get_bitmap_stu(getActivity().getBaseContext()));
} catch (IOException e) { } catch (IOException e) {
...@@ -406,27 +465,25 @@ private void register_student(final int sup_id) { ...@@ -406,27 +465,25 @@ private void register_student(final int sup_id) {
Log.e(this.getClass().getName(), " Getting images error: " + e.getLocalizedMessage()); Log.e(this.getClass().getName(), " Getting images error: " + e.getLocalizedMessage());
} }
} }
} } else
else
download_students(sup_id); download_students(sup_id);
if (offline || onlineStudentsOK) showStudentsGrid(); if (offline || onlineStudentsOK) showStudentsGrid();
} }
@Override @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_new_student, container, false);
View view = inflater.inflate(R.layout.fragment_new_student, container, false); gridView = (GridView) view.findViewById(R.id.loginStudentGridView);
gridView = (GridView) view.findViewById(R.id.loginStudentGridView); return view;
return view;
} }
@Override @Override
public void onPause() { public void onPause() {
super.onPause(); super.onPause();
if ((progressDialog!= null) && progressDialog.isShowing()) if ((progressDialog != null) && progressDialog.isShowing())
progressDialog.dismiss(); progressDialog.dismiss();
progressDialog = null; progressDialog = null;
} }
......
...@@ -8,8 +8,8 @@ ...@@ -8,8 +8,8 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_marginBottom="50dp" android:layout_marginBottom="10dp"
android:layout_marginTop="50dp" android:layout_marginTop="10dp"
android:orientation="vertical"> android:orientation="vertical">
<FrameLayout <FrameLayout
...@@ -34,6 +34,7 @@ ...@@ -34,6 +34,7 @@
android:layout_centerHorizontal="false" android:layout_centerHorizontal="false"
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:layout_gravity="center" /> android:layout_gravity="center" />
</FrameLayout> </FrameLayout>
<LinearLayout <LinearLayout
...@@ -45,16 +46,16 @@ ...@@ -45,16 +46,16 @@
android:id="@+id/loginStudentLicense" android:id="@+id/loginStudentLicense"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginRight="1dp" /> android:layout_marginRight="2dp"
android:layout_marginTop="4dp"
android:textAppearance="@android:style/TextAppearance.Medium" />
<TextView <TextView
android:id="@+id/loginStudentName" android:id="@+id/loginStudentName"
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="50dp"
android:layout_below="@+id/loginStudentPhoto" android:layout_below="@+id/loginStudentPhoto"
android:layout_centerHorizontal="false"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_weight="1"
android:textAppearance="?android:attr/textAppearanceMedium" /> android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout> </LinearLayout>
......
...@@ -62,13 +62,6 @@ ...@@ -62,13 +62,6 @@
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/shaders" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src/main/shaders" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
...@@ -76,6 +69,13 @@ ...@@ -76,6 +69,13 @@
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/annotations" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/annotations" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/bundles" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/bundles" />
...@@ -121,17 +121,5 @@ ...@@ -121,17 +121,5 @@
<orderEntry type="library" exported="" name="play-services-ads-9.2.1" level="project" /> <orderEntry type="library" exported="" name="play-services-ads-9.2.1" level="project" />
<orderEntry type="library" exported="" name="play-services-ads-lite-9.2.1" level="project" /> <orderEntry type="library" exported="" name="play-services-ads-lite-9.2.1" level="project" />
<orderEntry type="module" module-name="commonlibrary" exported="" /> <orderEntry type="module" module-name="commonlibrary" exported="" />
<orderEntry type="library" exported="" name="android-android-24" level="project" />
<orderEntry type="library" exported="" name="okhttp-ws-2.3.0" level="project" />
<orderEntry type="library" exported="" name="socket.io-client-0.5.0" level="project" />
<orderEntry type="library" exported="" name="okhttp-2.3.0" level="project" />
<orderEntry type="library" exported="" name="support-annotations-23.0.0" level="project" />
<orderEntry type="library" exported="" name="okio-1.3.0" level="project" />
<orderEntry type="library" exported="" name="gson-2.3" level="project" />
<orderEntry type="library" exported="" name="engine.io-client-0.5.0" level="project" />
<orderEntry type="library" exported="" name="appcompat-v7-21.0.3" level="project" />
<orderEntry type="library" exported="" scope="TEST" name="hamcrest-core-1.3" level="project" />
<orderEntry type="library" exported="" scope="TEST" name="junit-4.12" level="project" />
<orderEntry type="library" exported="" scope="TEST" name="json-20090211" level="project" />
</component> </component>
</module> </module>
\ No newline at end of file
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