package ca.etsmtl.applets.etsmobile.ui.fragment;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.RelativeLayout;
import android.widget.TextView;
import ca.etsmtl.applets.etsmobile.ApplicationManager;
import ca.etsmtl.applets.etsmobile.http.DataManager.SignetMethods;
import ca.etsmtl.applets.etsmobile.model.Etudiant;
import ca.etsmtl.applets.etsmobile.model.Programme;
import ca.etsmtl.applets.etsmobile.model.listeDesProgrammes;
import ca.etsmtl.applets.etsmobile.util.ProfilManager;
import ca.etsmtl.applets.etsmobile2.R;
/**
* @author Philippe, Laurence
*/
public class ProfilFragment extends HttpFragment implements View.OnClickListener {
private static final String TAG = "ProfilFragment";
private Etudiant etudiant;
private listeDesProgrammes mlisteDesProgrammes;
private ProfilManager profilManager;
RelativeLayout profileLayout;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
ViewGroup v = (ViewGroup) inflater.inflate(R.layout.fragment_profil, container, false);
super.onCreateView(inflater, v, savedInstanceState);
profileLayout = (RelativeLayout) v.findViewById(R.id.profil_layout_info);
v.findViewById(R.id.profil_button_logout).setOnClickListener(this);
profilManager = new ProfilManager(getActivity().getApplicationContext());
return v;
}
@Override
void updateUI() {
loadingView.showLoadingView();
dataManager.getDataFromSignet(SignetMethods.INFO_ETUDIANT, ApplicationManager.userCredentials, this, "");
dataManager.getDataFromSignet(SignetMethods.LIST_PROGRAM, ApplicationManager.userCredentials, this, "");
}
@Override
public void onClick(View v) {
if (v.getId() == R.id.profil_button_logout) {
ApplicationManager.deconnexion(getActivity());
}
}
@Override
public void onRequestSuccess(Object o) {
super.onRequestSuccess(o);
if (o != null) {
if (o instanceof Etudiant) {
etudiant = (Etudiant) o;
if (etudiant.erreur != null) {
Log.d(TAG, ": onRequestSuccess: etudiant error" + etudiant.erreur);
etudiant = null;
} else {
// Save Etudiant class in DB
profilManager.updateEtudiant(etudiant);
}
} else if (o instanceof listeDesProgrammes) {
mlisteDesProgrammes = (listeDesProgrammes) o;
if (mlisteDesProgrammes.erreur != null) {
Log.d(TAG, ": onRequestSuccess: listeDesProgramme error" + mlisteDesProgrammes.erreur);
mlisteDesProgrammes = null;
}
}
refreshUi();
}
}
private void refreshUi() {
Programme tempProgram = null;
// Local query if no Network Access
if(etudiant == null)
etudiant = profilManager.getEtudiant();
if(mlisteDesProgrammes == null) {
tempProgram = profilManager.getProgramme();
} else {
for (Programme p : mlisteDesProgrammes.liste) {
if (p.statut.equals("actif") || p.statut.equals("tutuelle")) {
profilManager.updateProgramme(p);
tempProgram = p;
}
}
}
final Programme program = tempProgram;
if (etudiant != null && program != null && getActivity() != null) {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
profileLayout.startLayoutAnimation();
View v = getView();
if (v != null) {
String nom = etudiant.nom.trim();
String prenom = etudiant.prenom.trim();
((TextView) v.findViewById(R.id.profil_nom_prenom_item)).setText(nom + ", " + prenom);
((TextView) v.findViewById(R.id.profil_code_permanent_item)).setText(etudiant.codePerm);
((TextView) v.findViewById(R.id.profil_solde_item)).setText(etudiant.soldeTotal);
((TextView) v.findViewById(R.id.profil_programme_item)).setText(program.libelle);
((TextView) v.findViewById(R.id.profil_credit_reussis_item))
.setText(program.nbCreditsCompletes);
((TextView) v.findViewById(R.id.profil_cours_reussis_item)).setText(program.nbCrsReussis);
((TextView) v.findViewById(R.id.profil_credit_echoue_item)).setText(program.nbCrsEchoues);
((TextView) v.findViewById(R.id.profil_credit_inscrit_item)).setText(program.nbCreditsInscrits);
((TextView) v.findViewById(R.id.profil_cours_equivalent_item)).setText(program.nbEquivalences);
((TextView) v.findViewById(R.id.profil_credit_potentiel_item))
.setText(program.nbCreditsPotentiels);
((TextView) v.findViewById(R.id.profil_moyenne_item)).setText(program.moyenne);
}
}
});
}
}
}