{
+ @Override
+ public void write(final JsonWriter jsonWriter, final StatoEnum enumeration) throws IOException {
+ jsonWriter.value(enumeration.getValue());
+ }
+
+ @Override
+ public StatoEnum read(final JsonReader jsonReader) throws IOException {
+ jsonReader.beginObject();
+ jsonReader.nextName();
+ String value = jsonReader.nextString();
+ jsonReader.endObject();
+ return StatoEnum.fromValue(String.valueOf(value));
+ }
+ }
+ }
+
+ @SerializedName("stato")
+ private StatoEnum stato = null;
+
+ @SerializedName("statoDes")
+ private String statoDes = null;
+
+ @SerializedName("chiaveADContestualizzata")
+ private AttivitaDidatticaContestualizzata chiaveADContestualizzata = null;
+
+ @SerializedName("tipoEsaCod")
+ private String tipoEsaCod = null;
+
+ @SerializedName("tipoEsaDes")
+ private String tipoEsaDes = null;
+
+ @SerializedName("tipoInsCod")
+ private String tipoInsCod = null;
+
+ @SerializedName("tipoInsDes")
+ private String tipoInsDes = null;
+
+ @SerializedName("ricId")
+ private Integer ricId = null;
+
+ @SerializedName("peso")
+ private Float peso = null;
+
+ @SerializedName("aaFreqId")
+ private Integer aaFreqId = null;
+
+ @SerializedName("dataFreq")
+ private String dataFreq = null;
+
+ @SerializedName("freqUffFlg")
+ private Integer freqUffFlg = null;
+
+ @SerializedName("freqObbligFlg")
+ private Integer freqObbligFlg = null;
+
+ @SerializedName("dataScadIscr")
+ private String dataScadIscr = null;
+
+ @SerializedName("gruppoVotoId")
+ private Integer gruppoVotoId = null;
+
+ @SerializedName("gruppoVotoMinVoto")
+ private Integer gruppoVotoMinVoto = null;
+
+ @SerializedName("gruppoVotoMaxVoto")
+ private Integer gruppoVotoMaxVoto = null;
+
+ @SerializedName("gruppoVotoLodeFlg")
+ private Integer gruppoVotoLodeFlg = null;
+
+ @SerializedName("gruppoGiudCod")
+ private String gruppoGiudCod = null;
+
+ @SerializedName("gruppoGiudDes")
+ private String gruppoGiudDes = null;
+
+ @SerializedName("esito")
+ private Esito esito = null;
+
+ @SerializedName("sovranFlg")
+ private Integer sovranFlg = null;
+
+ @SerializedName("note")
+ private String note = null;
+
+ @SerializedName("debitoFlg")
+ private Integer debitoFlg = null;
+
+ @SerializedName("ofaFlg")
+ private Integer ofaFlg = null;
+
+ @SerializedName("annoCorsoAnticipo")
+ private Integer annoCorsoAnticipo = null;
+
+ @SerializedName("genAutoFlg")
+ private Integer genAutoFlg = null;
+
+ @SerializedName("genRicSpecFlg")
+ private Integer genRicSpecFlg = null;
+
+ @SerializedName("tipoOrigEvecar")
+ private Integer tipoOrigEvecar = null;
+
+ @SerializedName("urlSitoWeb")
+ private String urlSitoWeb = null;
+
+ @SerializedName("statoMissione")
+ private String statoMissione = null;
+
+ @SerializedName("statoMissioneDes")
+ private String statoMissioneDes = null;
+
+ @SerializedName("numAppelliPrenotabili")
+ private Integer numAppelliPrenotabili = null;
+
+ @SerializedName("superataFlg")
+ private Integer superataFlg = null;
+
+ @SerializedName("numPrenotazioni")
+ private Integer numPrenotazioni = null;
+
+
+ public RigaLibretto matId(Long matId) {
+ this.matId = matId;
+ return this;
+ }
+
+
+ public Long getIdCarriera() {
+ return matId;
+ }
+
+ /**
+ * Retrieves the sorting index of the RigaLibretto.
+ *
+ * @return Integer representing the sorting index.
+ */
+ public Integer getOrdinamento() {
+ return ord;
+ }
+
+ /**
+ * Retrieves the ID of the RigaLibretto.
+ *
+ * @return Long representing the ID of the RigaLibretto.
+ */
+ public Long getIdRigaLibretto() {
+ return adsceId;
+ }
+
+ public Long getIdStudente() {
+ return stuId;
+ }
+
+ public Long getIdPiano() {
+ return pianoId;
+ }
+
+ /**
+ * Retrieves the ID of the AttivitaDidattica associated with the RigaLibretto in a student's Libretto.
+ *
+ * @return Long representing the ID of the AttivitaDidattica.
+ */
+ public Long getIdAttivitaDidatticaPiano() {
+ return itmId;
+ }
+
+ /**
+ * Non ne ho proprio idea onestamente, citando la documentazione:
+ * se l''attività appartiene ad un raggruppamento contiene l''adsceID del padre del raggruppamento
+ */
+ public Long getRagId() {
+ return ragId;
+ }
+
+ public RaggEsaTipoEnum getRaggEsaTipo() {
+ return raggEsaTipo;
+ }
+
+ public String getCodiceAttivitaDidattica() {
+ return adCod;
+ }
+
+ public String getDescrizioneAttivitaDidattica() {
+ return adDes;
+ }
+
+ public Integer getAnnoCorso() {
+ return annoCorso;
+ }
+
+ public StatoEnum getStato() {
+ return stato;
+ }
+
+ public String getDescrizioneStato() {
+ return statoDes;
+ }
+
+ public AttivitaDidatticaContestualizzata getAttivitaDidattica() {
+ return chiaveADContestualizzata;
+ }
+
+ public String getTipoEsaCod() {
+ return tipoEsaCod;
+ }
+
+ public String getTipoEsaDes() {
+ return tipoEsaDes;
+ }
+
+ public String getTipoInsCod() {
+ return tipoInsCod;
+ }
+
+ public String getTipoInsDes() {
+ return tipoInsDes;
+ }
+
+ public Integer getRicId() {
+ return ricId;
+ }
+
+ /**
+ * Retrieves the CFU of the RigaLibretto.
+ *
+ * @return Float representing the CFU of the RigaLibretto.
+ */
+ public Float getPeso() {
+ return peso;
+ }
+
+ public Integer getAaFreqId() {
+ return aaFreqId;
+ }
+
+ public String getDataFreq() {
+ return dataFreq;
+ }
+
+ public Integer getFreqUffFlg() {
+ return freqUffFlg;
+ }
+
+ public Integer getFreqObbligFlg() {
+ return freqObbligFlg;
+ }
+
+ public boolean isFrequenzaObbligatoria() {
+ return freqObbligFlg == 1;
+ }
+
+ public boolean isFrequenzaUfficiale() {
+ return freqUffFlg == 1;
+ }
+
+ public String getDataScadIscr() {
+ return dataScadIscr;
+ }
+
+ public Integer getGruppoVotoId() {
+ return gruppoVotoId;
+ }
+
+ public Integer getGruppoVotoMinVoto() {
+ return gruppoVotoMinVoto;
+ }
+
+ public Integer getGruppoVotoMaxVoto() {
+ return gruppoVotoMaxVoto;
+ }
+
+ public Integer getGruppoVotoLodeFlg() {
+ return gruppoVotoLodeFlg;
+ }
+
+ public String getGruppoGiudCod() {
+ return gruppoGiudCod;
+ }
+
+ public String getGruppoGiudDes() {
+ return gruppoGiudDes;
+ }
+
+ public Esito getEsito() {
+ return esito;
+ }
+
+ public Integer getSovranFlg() {
+ return sovranFlg;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public Integer getDebitoFlg() {
+ return debitoFlg;
+ }
+
+ public Integer getOfaFlg() {
+ return ofaFlg;
+ }
+
+ public Integer getAnnoCorsoAnticipo() {
+ return annoCorsoAnticipo;
+ }
+
+ public Integer getGenAutoFlg() {
+ return genAutoFlg;
+ }
+
+ public Integer getGenRicSpecFlg() {
+ return genRicSpecFlg;
+ }
+
+ public Integer getTipoOrigEvecar() {
+ return tipoOrigEvecar;
+ }
+
+ public String getUrlSitoWeb() {
+ return urlSitoWeb;
+ }
+
+ public String getStatoMissione() {
+ return statoMissione;
+ }
+
+ public String getStatoMissioneDes() {
+ return statoMissioneDes;
+ }
+
+ public Integer getNumAppelliPrenotabili() {
+ return numAppelliPrenotabili;
+ }
+
+ public Integer getSuperataFlg() {
+ return superataFlg;
+ }
+
+ public Integer getNumPrenotazioni() {
+ return numPrenotazioni;
+ }
+}
diff --git a/app/src/main/java/org/epic_guys/esse4/models/ScePianoDiStudio.java b/app/src/main/java/org/epic_guys/esse4/models/ScePianoDiStudio.java
new file mode 100644
index 0000000..c7a1941
--- /dev/null
+++ b/app/src/main/java/org/epic_guys/esse4/models/ScePianoDiStudio.java
@@ -0,0 +1,242 @@
+package org.epic_guys.esse4.models;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+
+import org.epic_guys.esse4.common.EnumAdapter;
+
+import java.io.IOException;
+
+public class ScePianoDiStudio {
+ @SerializedName("stuId")
+ private Long stuId = null;
+
+ @SerializedName("pianoId")
+ private Integer pianoId = null;
+
+ @SerializedName("matId")
+ private Long matId = null;
+
+ @SerializedName("schemaId")
+ private Long schemaId = null;
+
+ @SerializedName("scePianoId")
+ private Integer scePianoId = null;
+
+ @SerializedName("sceltaId")
+ private Long sceltaId = null;
+
+ @SerializedName("ordNum")
+ private Integer ordNum = null;
+
+ @SerializedName("des")
+ private String des = null;
+
+ @SerializedName("ptSlotId")
+ private Long ptSlotId = null;
+
+ @SerializedName("ptSlotCod")
+ private String ptSlotCod = null;
+
+ @SerializedName("ptSlotDes")
+ private String ptSlotDes = null;
+
+ @SerializedName("annoCorso")
+ private Integer annoCorso = null;
+
+ @SerializedName("annoCorsoAnticipo")
+ private Integer annoCorsoAnticipo = null;
+
+ /**
+ * tipo di regola di scelta ( O => Obbligatoria; F => Da Elenco; T => Da Elenco Libero da OD; G => Gruppo; W => Gruppo Libero da OD; S => Libera da OD; V => Vincolo; D => Regola per Dottorati)
+ */
+ @JsonAdapter(TipSceEnum.Adapter.class)
+ public enum TipSceEnum {
+ O("O"),
+
+ F("F"),
+
+ T("T"),
+
+ G("G"),
+
+ W("W"),
+
+ S("S"),
+
+ V("V"),
+
+ D("D");
+
+ private String value;
+
+ TipSceEnum(String value) {
+ this.value = value;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static TipSceEnum fromValue(String text) {
+ for (TipSceEnum b : TipSceEnum.values()) {
+ if (String.valueOf(b.value).equals(text)) {
+ return b;
+ }
+ }
+ return null;
+ }
+
+ public static class Adapter extends EnumAdapter {
+ @Override
+ public Class getTClass() {
+ return TipSceEnum.class;
+ }
+ }
+ }
+
+ @SerializedName("tipSce")
+ private TipSceEnum tipSce = null;
+
+ @SerializedName("tipSceDes")
+ private String tipSceDes = null;
+
+ /**
+ * tipo di unità di misura
+ */
+ @JsonAdapter(TipUntEnum.Adapter.class)
+ public enum TipUntEnum {
+ BLK("BLK"),
+
+ CFU("CFU"),
+
+ ANN("ANN");
+
+ private String value;
+
+ TipUntEnum(String value) {
+ this.value = value;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static TipUntEnum fromValue(String text) {
+ for (TipUntEnum b : TipUntEnum.values()) {
+ if (String.valueOf(b.value).equals(text)) {
+ return b;
+ }
+ }
+ return null;
+ }
+
+ public static class Adapter extends EnumAdapter {
+ @Override
+ public Class getTClass() {
+ return TipUntEnum.class;
+ }
+ }
+ }
+
+ @SerializedName("tipUnt")
+ private TipUntEnum tipUnt = null;
+
+ @SerializedName("minUnt")
+ private Float minUnt = null;
+
+ @SerializedName("maxUnt")
+ private Float maxUnt = null;
+
+ /**
+ * modificatore del TAF della regola di scelta
+ */
+ @JsonAdapter(ModTAFEnum.Adapter.class)
+ public enum ModTAFEnum {
+ A("A"),
+
+ B("B"),
+
+ C("C"),
+
+ D("D"),
+
+ E("E"),
+
+ F("F"),
+
+ G("G"),
+
+ S("S");
+
+ private String value;
+
+ ModTAFEnum(String value) {
+ this.value = value;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static ModTAFEnum fromValue(String text) {
+ for (ModTAFEnum b : ModTAFEnum.values()) {
+ if (String.valueOf(b.value).equals(text)) {
+ return b;
+ }
+ }
+ return null;
+ }
+
+ public static class Adapter extends EnumAdapter {
+ @Override
+ public Class getTClass() {
+ return ModTAFEnum.class;
+ }
+ }
+ }
+
+ @SerializedName("modTAF")
+ private ModTAFEnum modTAF = null;
+
+ @SerializedName("opzFlg")
+ private Integer opzFlg = null;
+
+ @SerializedName("tesorettoFlg")
+ private Integer tesorettoFlg = null;
+
+ @SerializedName("sovranFlg")
+ private Integer sovranFlg = null;
+
+ @SerializedName("azzeraCfuFlg")
+ private Integer azzeraCfuFlg = null;
+
+ @SerializedName("abilFlg")
+ private Integer abilFlg = null;
+
+ @SerializedName("regolaSistemaFlg")
+ private Integer regolaSistemaFlg = null;
+
+ @SerializedName("extCod")
+ private String extCod = null;
+}
diff --git a/app/src/main/java/org/epic_guys/esse4/models/TestataPianoDiStudio.java b/app/src/main/java/org/epic_guys/esse4/models/TestataPianoDiStudio.java
new file mode 100644
index 0000000..3dd4d6b
--- /dev/null
+++ b/app/src/main/java/org/epic_guys/esse4/models/TestataPianoDiStudio.java
@@ -0,0 +1,385 @@
+package org.epic_guys.esse4.models;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+
+import org.epic_guys.esse4.common.EnumAdapter;
+
+import java.io.IOException;
+
+public class TestataPianoDiStudio {
+ @SerializedName("stuId")
+ private Long stuId = null;
+
+ @SerializedName("pianoId")
+ private Integer pianoId = null;
+
+ @SerializedName("staStuCod")
+ private String staStuCod = null;
+
+ @SerializedName("motStastuCod")
+ private String motStastuCod = null;
+
+ @SerializedName("staMatCod")
+ private String staMatCod = null;
+
+ @SerializedName("motStamatCod")
+ private String motStamatCod = null;
+
+ @SerializedName("matId")
+ private Long matId = null;
+
+ @SerializedName("regsceId")
+ private Long regsceId = null;
+
+ @SerializedName("schemaId")
+ private Long schemaId = null;
+
+ @SerializedName("finregsceId")
+ private Long finregsceId = null;
+
+ /**
+ * stato del piano (B => Bozza, P => Proposto, V => in Valutuazione, A => Approvato, R => Respinto, X => Annullato)
+ */
+ @JsonAdapter(StatoEnum.Adapter.class)
+ public enum StatoEnum {
+ B("B"),
+
+ P("P"),
+
+ V("V"),
+
+ A("A"),
+
+ R("R"),
+
+ X("X");
+
+ private String value;
+
+ StatoEnum(String value) {
+ this.value = value;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static StatoEnum fromValue(String text) {
+ for (StatoEnum b : StatoEnum.values()) {
+ if (String.valueOf(b.value).equals(text)) {
+ return b;
+ }
+ }
+ return null;
+ }
+
+ public static class Adapter extends EnumAdapter {
+ @Override
+ public Class getTClass() {
+ return StatoEnum.class;
+ }
+ }
+ }
+
+ @SerializedName("stato")
+ private StatoEnum stato = null;
+
+ @SerializedName("statoDes")
+ private String statoDes = null;
+
+ @SerializedName("dataUltimaVarStato")
+ private String dataUltimaVarStato = null;
+
+ /**
+ * tipo di piano (S => Standard, I => Individuale)
+ */
+ @JsonAdapter(TipoPianoEnum.Adapter.class)
+ public enum TipoPianoEnum {
+ S("S"),
+
+ I("I");
+
+ private String value;
+
+ TipoPianoEnum(String value) {
+ this.value = value;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static TipoPianoEnum fromValue(String text) {
+ for (TipoPianoEnum b : TipoPianoEnum.values()) {
+ if (String.valueOf(b.value).equals(text)) {
+ return b;
+ }
+ }
+ return null;
+ }
+
+ public static class Adapter extends EnumAdapter {
+ @Override
+ public Class getTClass() {
+ return TipoPianoEnum.class;
+ }
+ }
+ }
+
+ @SerializedName("tipoPiano")
+ private TipoPianoEnum tipoPiano = null;
+
+ @SerializedName("statutarioFlg")
+ private Integer statutarioFlg = null;
+
+ @SerializedName("coorte")
+ private Integer coorte = null;
+
+ @SerializedName("aaRevisioneId")
+ private Integer aaRevisioneId = null;
+
+ @SerializedName("cdsStuId")
+ private Long cdsStuId = null;
+
+ @SerializedName("cdsStuCod")
+ private String cdsStuCod = null;
+
+ @SerializedName("cdsStuDes")
+ private String cdsStuDes = null;
+
+ @SerializedName("aaOrdStuId")
+ private Long aaOrdStuId = null;
+
+ @SerializedName("pdsStuId")
+ private Long pdsStuId = null;
+
+ @SerializedName("pdsStuCod")
+ private String pdsStuCod = null;
+
+ @SerializedName("pdsDes")
+ private String pdsDes = null;
+
+ @SerializedName("pdsSceId")
+ private Long pdsSceId = null;
+
+ @SerializedName("pdsSceCod")
+ private String pdsSceCod = null;
+
+ @SerializedName("pdsSceDes")
+ private String pdsSceDes = null;
+
+ @SerializedName("aaDefId")
+ private Integer aaDefId = null;
+
+ @SerializedName("aaIscrId")
+ private Integer aaIscrId = null;
+
+ @SerializedName("aptId")
+ private Long aptId = null;
+
+ @SerializedName("aptCod")
+ private String aptCod = null;
+
+ @SerializedName("aptDes")
+ private String aptDes = null;
+
+ @SerializedName("aaUltimaAttuazioneId")
+ private Integer aaUltimaAttuazioneId = null;
+
+ @SerializedName("dataUltimaAttuazione")
+ private String dataUltimaAttuazione = null;
+
+ @SerializedName("userUltimaAttuazione")
+ private String userUltimaAttuazione = null;
+
+ @SerializedName("userControllo")
+ private String userControllo = null;
+
+ @SerializedName("notaControllo")
+ private String notaControllo = null;
+
+ @SerializedName("noteSistema")
+ private String noteSistema = null;
+
+ @SerializedName("noteUtente")
+ private String noteUtente = null;
+
+ @SerializedName("extCod")
+ private String extCod = null;
+
+ public Long getStuId() {
+ return stuId;
+ }
+
+ public Integer getPianoId() {
+ return pianoId;
+ }
+
+ public String getStaStuCod() {
+ return staStuCod;
+ }
+
+ public String getMotStastuCod() {
+ return motStastuCod;
+ }
+
+ public String getStaMatCod() {
+ return staMatCod;
+ }
+
+ public String getMotStamatCod() {
+ return motStamatCod;
+ }
+
+ public Long getMatId() {
+ return matId;
+ }
+
+ public Long getRegsceId() {
+ return regsceId;
+ }
+
+ public Long getSchemaId() {
+ return schemaId;
+ }
+
+ public Long getFinregsceId() {
+ return finregsceId;
+ }
+
+ public StatoEnum getStato() {
+ return stato;
+ }
+
+ public String getStatoDes() {
+ return statoDes;
+ }
+
+ public String getDataUltimaVarStato() {
+ return dataUltimaVarStato;
+ }
+
+ public TipoPianoEnum getTipoPiano() {
+ return tipoPiano;
+ }
+
+ public Integer getStatutarioFlg() {
+ return statutarioFlg;
+ }
+
+ public Integer getCoorte() {
+ return coorte;
+ }
+
+ public Integer getAaRevisioneId() {
+ return aaRevisioneId;
+ }
+
+ public Long getCdsStuId() {
+ return cdsStuId;
+ }
+
+ public String getCdsStuCod() {
+ return cdsStuCod;
+ }
+
+ public String getCdsStuDes() {
+ return cdsStuDes;
+ }
+
+ public Long getAaOrdStuId() {
+ return aaOrdStuId;
+ }
+
+ public Long getPdsStuId() {
+ return pdsStuId;
+ }
+
+ public String getPdsStuCod() {
+ return pdsStuCod;
+ }
+
+ public String getPdsDes() {
+ return pdsDes;
+ }
+
+ public Long getPdsSceId() {
+ return pdsSceId;
+ }
+
+ public String getPdsSceCod() {
+ return pdsSceCod;
+ }
+
+ public String getPdsSceDes() {
+ return pdsSceDes;
+ }
+
+ public Integer getAaDefId() {
+ return aaDefId;
+ }
+
+ public Integer getAaIscrId() {
+ return aaIscrId;
+ }
+
+ public Long getAptId() {
+ return aptId;
+ }
+
+ public String getAptCod() {
+ return aptCod;
+ }
+
+ public String getAptDes() {
+ return aptDes;
+ }
+
+ public Integer getAaUltimaAttuazioneId() {
+ return aaUltimaAttuazioneId;
+ }
+
+ public String getDataUltimaAttuazione() {
+ return dataUltimaAttuazione;
+ }
+
+ public String getUserUltimaAttuazione() {
+ return userUltimaAttuazione;
+ }
+
+ public String getUserControllo() {
+ return userControllo;
+ }
+
+ public String getNotaControllo() {
+ return notaControllo;
+ }
+
+ public String getNoteSistema() {
+ return noteSistema;
+ }
+
+ public String getNoteUtente() {
+ return noteUtente;
+ }
+
+ public String getExtCod() {
+ return extCod;
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/org/epic_guys/esse4/models/UDPianoDiStudio.java b/app/src/main/java/org/epic_guys/esse4/models/UDPianoDiStudio.java
new file mode 100644
index 0000000..7568486
--- /dev/null
+++ b/app/src/main/java/org/epic_guys/esse4/models/UDPianoDiStudio.java
@@ -0,0 +1,49 @@
+package org.epic_guys.esse4.models;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import java.io.IOException;
+
+public class UDPianoDiStudio {
+ @SerializedName("stuId")
+ private Long stuId = null;
+
+ @SerializedName("pianoId")
+ private Integer pianoId = null;
+
+ @SerializedName("itmId")
+ private Integer itmId = null;
+
+ @SerializedName("matId")
+ private Long matId = null;
+
+ @SerializedName("schemaId")
+ private Long schemaId = null;
+
+ @SerializedName("scePianoId")
+ private Integer scePianoId = null;
+
+ @SerializedName("sceltaId")
+ private Long sceltaId = null;
+
+ @SerializedName("sceltaAdId")
+ private Integer sceltaAdId = null;
+
+ @SerializedName("udId")
+ private Integer udId = null;
+
+ @SerializedName("udCod")
+ private String udCod = null;
+
+ @SerializedName("udDes")
+ private String udDes = null;
+
+ @SerializedName("peso")
+ private Float peso = null;
+
+}
diff --git a/app/src/main/java/org/epic_guys/esse4/views/ExamCardAdapter.java b/app/src/main/java/org/epic_guys/esse4/views/ExamCardAdapter.java
new file mode 100644
index 0000000..92e6fdb
--- /dev/null
+++ b/app/src/main/java/org/epic_guys/esse4/views/ExamCardAdapter.java
@@ -0,0 +1,93 @@
+package org.epic_guys.esse4.views;
+
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.fragment.app.FragmentManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import org.epic_guys.esse4.R;
+import org.epic_guys.esse4.fragments.ExamSubscribeDialogFragment;
+import org.epic_guys.esse4.models.Appello;
+import org.epic_guys.esse4.models.AppelloLibretto;
+
+import java.util.List;
+
+public class ExamCardAdapter extends RecyclerView.Adapter {
+
+ @NonNull
+ private List appelli;
+
+ public ExamCardAdapter(@NonNull List appelli) {
+ this.appelli = appelli;
+ }
+
+ @NonNull
+ @Override
+ public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ LayoutInflater inflater = LayoutInflater.from(parent.getContext());
+ View view = inflater.inflate(R.layout.exam_card_view, parent, false);
+ return new ExamCardAdapter.MyViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
+ AppelloLibretto appello = appelli.get(position);
+ holder.setContentView(appello);
+ }
+
+ @Override
+ public int getItemCount() {
+ return appelli.size();
+ }
+
+ public static class MyViewHolder extends RecyclerView.ViewHolder {
+
+ private TextView exam_name;
+ private TextView date_data;
+ private TextView host_data;
+ private TextView type_data;
+ private TextView sub_period_data;
+ private Button subscribe_button;
+
+
+ public MyViewHolder(@NonNull View itemView) {
+ super(itemView);
+
+ exam_name = itemView.findViewById(R.id.exam_name);
+ date_data = itemView.findViewById(R.id.date_data);
+ host_data = itemView.findViewById(R.id.host_data);
+ type_data = itemView.findViewById(R.id.type_data);
+ sub_period_data = itemView.findViewById(R.id.sub_period_data);
+ subscribe_button = itemView.findViewById(R.id.btn_subscribe);
+ }
+
+ public void setContentView(AppelloLibretto appello) {
+ exam_name.setText(appello.getDescrizioneAttivitaDidattica());
+ try{
+ date_data.setText(appello.getDataOraEsame().format(Appello.getDateTimeFormatter()));
+ }
+ catch (Exception e){
+ Log.e("ExamCardAdapter", "setContentView: ", e);
+ }
+
+ // FIXME - appello.getTipoEsame() può essere null
+ // type_data.setText(appello.getTipoEsame().getDescription());
+
+ host_data.setText(appello.getPresidenteNomeCognome());
+ sub_period_data.setText(appello.getDataInizioIscr() + " - " + appello.getDataFineIscr());
+
+
+ subscribe_button.setOnClickListener(v -> new ExamSubscribeDialogFragment(appello).show(
+ // findFragment restituisce AppelliFragment, creiamo il dialog in questo fragment
+ FragmentManager.findFragment(itemView).getChildFragmentManager(),
+ ExamSubscribeDialogFragment.TAG
+ ));
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/org/epic_guys/esse4/views/ExamCardView.java b/app/src/main/java/org/epic_guys/esse4/views/ExamCardView.java
new file mode 100644
index 0000000..fca7b2b
--- /dev/null
+++ b/app/src/main/java/org/epic_guys/esse4/views/ExamCardView.java
@@ -0,0 +1,90 @@
+package org.epic_guys.esse4.views;
+
+import android.content.Context;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.cardview.widget.CardView;
+
+public class ExamCardView extends CardView {
+
+ @NonNull
+ private String name;
+
+ @NonNull
+ private String date;
+
+ @NonNull
+ private String start_sub;
+
+ @NonNull
+ private String end_sub;
+
+ @NonNull
+ private String CFU;
+
+ @NonNull
+ private String host;
+
+ @Nullable
+ private OnClickListener appelliClickListener;
+
+ /**
+ * Constructor for the ExamCardView class.
+ *
+ * @param context The context in which the ExamCardView is being used.
+ * @param name The name of the exam.
+ * @param date The date of the exam.
+ * @param start_sub The start time of the exam.
+ * @param end_sub The end time of the exam.
+ * @param CFU The CFU of the exam.
+ * @param host The host of the exam.
+ * @param appelliClickListener The OnClickListener for the appelli button in this ExamCardView.
+ */
+ public ExamCardView(Context context, @NonNull String name, @NonNull String date, @NonNull String start_sub, @NonNull String end_sub, @NonNull String CFU,@NonNull String host, @Nullable OnClickListener appelliClickListener) {
+ super(context); // Call the superclass constructor with the provided context
+ this.name = name;
+ this.date = date;
+ this.start_sub = start_sub;
+ this.end_sub = end_sub;
+ this.CFU = CFU;
+ this.host = host;
+ this.appelliClickListener = appelliClickListener;
+ }
+
+ @Override
+ public String toString() {
+ return "ExamCardView{" +
+ "name='" + name + '\'' +
+ ", date='" + date + '\'' +
+ ", CFU='" + CFU + '\'' +
+ ", host='" + host + '\'' +
+ '}';
+ }
+
+ @NonNull
+ public String getName() {
+ return name;
+ }
+
+ @NonNull
+ public String getDate() {
+ return date;
+ }
+
+ @NonNull
+ public String getCFU() {
+ return CFU;
+ }
+
+ @NonNull
+ public String getHost() {
+ return host;
+ }
+
+ @Nullable
+ public OnClickListener getAppelliClickListener() {
+ return appelliClickListener;
+ }
+
+}
diff --git a/app/src/main/java/org/epic_guys/esse4/views/SubjectCardAdapter.java b/app/src/main/java/org/epic_guys/esse4/views/SubjectCardAdapter.java
new file mode 100644
index 0000000..d0b80a4
--- /dev/null
+++ b/app/src/main/java/org/epic_guys/esse4/views/SubjectCardAdapter.java
@@ -0,0 +1,92 @@
+package org.epic_guys.esse4.views;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import org.epic_guys.esse4.R;
+
+import java.util.List;
+
+public class SubjectCardAdapter extends RecyclerView.Adapter {
+
+ Context context;
+ List exams;
+ public SubjectCardAdapter(Context context, List exams) {
+ this.context = context;
+ this.exams = exams;
+ }
+
+ @NonNull
+ @Override
+ public SubjectCardAdapter.MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ LayoutInflater inflater = LayoutInflater.from(context);
+ View view;
+ view = inflater.inflate(R.layout.subject_card_view, parent, false);
+ return new SubjectCardAdapter.MyViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
+ holder.examNameView.setText(exams.get(position).getName());
+ holder.yearView.setText(exams.get(position).getYear());
+ holder.CFUView.setText(exams.get(position).getCFU());
+
+ if(exams.get(position).getGrade() != null) {
+ holder.passedLayout.setVisibility(View.VISIBLE);
+ holder.notPassedLayout.setVisibility(View.GONE);
+
+ holder.examNameView_passed.setText(exams.get(position).getName());
+ holder.yearView_passed.setText(exams.get(position).getYear());
+ holder.CFUView_passed.setText(exams.get(position).getCFU());
+ holder.gradeView_passed.setText(exams.get(position).getGrade());
+ } else {
+ holder.passedLayout.setVisibility(View.GONE);
+ holder.notPassedLayout.setVisibility(View.VISIBLE);
+
+ holder.examNameView.setText(exams.get(position).getName());
+ holder.yearView.setText(exams.get(position).getYear());
+ holder.CFUView.setText(exams.get(position).getCFU());
+
+ holder.appelliButton.setOnClickListener(exams.get(position).getAppelliClickListener());
+ }
+
+ }
+
+ @Override
+ public int getItemCount() {
+ return exams.size();
+ }
+
+ public static class MyViewHolder extends RecyclerView.ViewHolder {
+ LinearLayout passedLayout, notPassedLayout;
+ TextView examNameView, yearView, CFUView;
+ TextView examNameView_passed, yearView_passed, CFUView_passed, gradeView_passed;
+ Button appelliButton;
+
+ public MyViewHolder(@NonNull View itemView) {
+ super(itemView);
+
+ passedLayout = itemView.findViewById(R.id.passed);
+ notPassedLayout = itemView.findViewById(R.id.not_passed);
+
+ examNameView = itemView.findViewById(R.id.exam_name);
+ yearView = itemView.findViewById(R.id.year_data) ;
+ CFUView = itemView.findViewById(R.id.CFU_data);
+
+ examNameView_passed = itemView.findViewById(R.id.exam_name_passed);
+ yearView_passed = itemView.findViewById(R.id.year_data_passed) ;
+ CFUView_passed = itemView.findViewById(R.id.CFU_data_passed);
+ gradeView_passed = itemView.findViewById(R.id.grade_data_passed);
+
+ appelliButton = itemView.findViewById(R.id.button_appelli_round);
+ }
+ }
+}
diff --git a/app/src/main/java/org/epic_guys/esse4/views/SubjectCardView.java b/app/src/main/java/org/epic_guys/esse4/views/SubjectCardView.java
new file mode 100644
index 0000000..2d6c36f
--- /dev/null
+++ b/app/src/main/java/org/epic_guys/esse4/views/SubjectCardView.java
@@ -0,0 +1,97 @@
+package org.epic_guys.esse4.views;
+
+import android.content.Context;
+import android.view.View;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import org.epic_guys.esse4.R;
+import org.epic_guys.esse4.common.Common;
+import org.epic_guys.esse4.models.RigaLibretto;
+
+public class SubjectCardView extends View {
+
+ private long id;
+ @NonNull
+ private String name;
+ @NonNull
+ private String year;
+ @NonNull
+ private String CFU;
+ @Nullable
+ private String grade;
+
+ @Nullable
+ private OnClickListener appelliClickListener;
+
+ /**
+ * Constructor
+ * @param context The context of the application
+ * @param id The id of the subject
+ * @param name The name of the subject
+ * @param year The year of the subject
+ * @param CFU The CFU of the subject
+ * @param grade The grade of the subject (if null, the subject is not passed)
+ */
+ public SubjectCardView(Context context, long id ,String name, String year, String CFU, String grade, @Nullable OnClickListener appelliClickListener){
+ super(context);
+ this.id = id;
+ this.name = name;
+ this.year = year;
+ this.CFU = CFU;
+ this.grade = grade;
+ this.appelliClickListener = appelliClickListener;
+ }
+
+ public SubjectCardView(Context context, @NonNull RigaLibretto rigaLibretto, @Nullable OnClickListener appelliClickListener) {
+ super(context); // Call the superclass constructor with the provided context
+
+ this.id = rigaLibretto.getIdRigaLibretto();
+ this.name = rigaLibretto.getCodiceAttivitaDidattica() + " - " + rigaLibretto.getDescrizioneAttivitaDidattica();
+ this.year = rigaLibretto.getAnnoCorso().toString();
+ this.CFU = String.valueOf(rigaLibretto.getPeso().intValue());
+ this.grade = Common.stringifyGrade(rigaLibretto);
+ this.appelliClickListener = appelliClickListener; // Set the OnClickListener for the appelli button in this SubjectCardView
+ }
+
+ @Override
+ public String toString() {
+ return "SubjectCardView{" +
+ "id=" + id +
+ ", name='" + name + '\'' +
+ ", year='" + year + '\'' +
+ ", CFU='" + CFU + '\'' +
+ ", grade='" + grade + '\'' +
+ '}';
+ }
+
+ public long getCardId() {
+ return id;
+ }
+
+ @NonNull
+ public String getName() {
+ return name;
+ }
+
+ @NonNull
+ public String getYear() {
+ return year;
+ }
+
+ @NonNull
+ public String getCFU() {
+ return CFU;
+ }
+
+ @Nullable
+ public String getGrade() {
+ return grade;
+ }
+
+ @Nullable
+ public OnClickListener getAppelliClickListener() {
+ return appelliClickListener;
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/baseline_arrow_back_24.xml b/app/src/main/res/drawable/baseline_arrow_back_24.xml
new file mode 100644
index 0000000..8452791
--- /dev/null
+++ b/app/src/main/res/drawable/baseline_arrow_back_24.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/baseline_book_24.xml b/app/src/main/res/drawable/baseline_book_24.xml
new file mode 100644
index 0000000..a6f4003
--- /dev/null
+++ b/app/src/main/res/drawable/baseline_book_24.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/baseline_calendar_month_24.xml b/app/src/main/res/drawable/baseline_calendar_month_24.xml
new file mode 100644
index 0000000..ecef674
--- /dev/null
+++ b/app/src/main/res/drawable/baseline_calendar_month_24.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/baseline_edit_note_24.xml b/app/src/main/res/drawable/baseline_edit_note_24.xml
new file mode 100644
index 0000000..c041ef4
--- /dev/null
+++ b/app/src/main/res/drawable/baseline_edit_note_24.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/baseline_logout_24.xml b/app/src/main/res/drawable/baseline_logout_24.xml
new file mode 100644
index 0000000..bceb2ec
--- /dev/null
+++ b/app/src/main/res/drawable/baseline_logout_24.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/baseline_person_24.xml b/app/src/main/res/drawable/baseline_person_24.xml
new file mode 100644
index 0000000..73eb310
--- /dev/null
+++ b/app/src/main/res/drawable/baseline_person_24.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/outline_settings_24.xml b/app/src/main/res/drawable/outline_settings_24.xml
new file mode 100644
index 0000000..c624d19
--- /dev/null
+++ b/app/src/main/res/drawable/outline_settings_24.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/round_app_registration_24.xml b/app/src/main/res/drawable/round_app_registration_24.xml
new file mode 100644
index 0000000..7287952
--- /dev/null
+++ b/app/src/main/res/drawable/round_app_registration_24.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index a25c8d6..76653c7 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -1,33 +1,27 @@
+
+ xmlns:tools="http://schemas.android.com/tools"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ tools:context=".MainActivity"
+ >
-
-
-
-
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintVertical_bias="1.0"
+ app:navGraph="@navigation/nav_graph" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/exam_card_view.xml b/app/src/main/res/layout/exam_card_view.xml
new file mode 100644
index 0000000..3ea8e6a
--- /dev/null
+++ b/app/src/main/res/layout/exam_card_view.xml
@@ -0,0 +1,161 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_appelli.xml b/app/src/main/res/layout/fragment_appelli.xml
new file mode 100644
index 0000000..9f7127a
--- /dev/null
+++ b/app/src/main/res/layout/fragment_appelli.xml
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/fragment_exam_subscribe_dialog.xml b/app/src/main/res/layout/fragment_exam_subscribe_dialog.xml
new file mode 100644
index 0000000..18a460e
--- /dev/null
+++ b/app/src/main/res/layout/fragment_exam_subscribe_dialog.xml
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml
new file mode 100644
index 0000000..7cf3aab
--- /dev/null
+++ b/app/src/main/res/layout/fragment_home.xml
@@ -0,0 +1,362 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/fragment_login.xml
similarity index 96%
rename from app/src/main/res/layout/activity_login.xml
rename to app/src/main/res/layout/fragment_login.xml
index f4b85d5..26eb3c6 100644
--- a/app/src/main/res/layout/activity_login.xml
+++ b/app/src/main/res/layout/fragment_login.xml
@@ -3,7 +3,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools"
- tools:context=".activities.LoginActivity">
+ tools:context=".fragments.LoginFragment">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_study_plan.xml b/app/src/main/res/layout/fragment_study_plan.xml
new file mode 100644
index 0000000..acd44f8
--- /dev/null
+++ b/app/src/main/res/layout/fragment_study_plan.xml
@@ -0,0 +1,83 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/subject_card_view.xml b/app/src/main/res/layout/subject_card_view.xml
new file mode 100644
index 0000000..5900cee
--- /dev/null
+++ b/app/src/main/res/layout/subject_card_view.xml
@@ -0,0 +1,185 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/menu/menu_main.xml b/app/src/main/res/menu/menu_main.xml
deleted file mode 100644
index 779e36b..0000000
--- a/app/src/main/res/menu/menu_main.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
\ No newline at end of file
diff --git a/app/src/main/res/navigation/nav_graph.xml b/app/src/main/res/navigation/nav_graph.xml
index 6b39f21..39e5d02 100644
--- a/app/src/main/res/navigation/nav_graph.xml
+++ b/app/src/main/res/navigation/nav_graph.xml
@@ -3,18 +3,69 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/nav_graph"
- app:startDestination="@id/mainActivity2">
-
-
-
+ app:startDestination="@id/homeFragment">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
deleted file mode 100644
index 4160fe3..0000000
--- a/app/src/main/res/values/strings.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-
- Esse4
- Settings
-
- First Fragment
- Second Fragment
- Next
- Previous
-
-
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam in scelerisque sem. Mauris volutpat, dolor id
- interdum ullamcorper, risus dolor egestas lectus, sit amet mattis purus dui nec risus. Maecenas non sodales
- nisi, vel dictum dolor. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
- himenaeos. Suspendisse blandit eleifend diam, vel rutrum tellus vulputate quis. Aliquam eget libero aliquet,
- imperdiet nisl a, ornare ex. Sed rhoncus est ut libero porta lobortis. Fusce in dictum tellus.\n\n
- Suspendisse interdum ornare ante. Aliquam nec cursus lorem. Morbi id magna felis. Vivamus egestas, est a
- condimentum egestas, turpis nisl iaculis ipsum, in dictum tellus dolor sed neque. Morbi tellus erat, dapibus ut
- sem a, iaculis tincidunt dui. Interdum et malesuada fames ac ante ipsum primis in faucibus. Curabitur et eros
- porttitor, ultricies urna vitae, molestie nibh. Phasellus at commodo eros, non aliquet metus. Sed maximus nisl
- nec dolor bibendum, vel congue leo egestas.\n\n
- Sed interdum tortor nibh, in sagittis risus mollis quis. Curabitur mi odio, condimentum sit amet auctor at,
- mollis non turpis. Nullam pretium libero vestibulum, finibus orci vel, molestie quam. Fusce blandit tincidunt
- nulla, quis sollicitudin libero facilisis et. Integer interdum nunc ligula, et fermentum metus hendrerit id.
- Vestibulum lectus felis, dictum at lacinia sit amet, tristique id quam. Cras eu consequat dui. Suspendisse
- sodales nunc ligula, in lobortis sem porta sed. Integer id ultrices magna, in luctus elit. Sed a pellentesque
- est.\n\n
- Aenean nunc velit, lacinia sed dolor sed, ultrices viverra nulla. Etiam a venenatis nibh. Morbi laoreet, tortor
- sed facilisis varius, nibh orci rhoncus nulla, id elementum leo dui non lorem. Nam mollis ipsum quis auctor
- varius. Quisque elementum eu libero sed commodo. In eros nisl, imperdiet vel imperdiet et, scelerisque a mauris.
- Pellentesque varius ex nunc, quis imperdiet eros placerat ac. Duis finibus orci et est auctor tincidunt. Sed non
- viverra ipsum. Nunc quis augue egestas, cursus lorem at, molestie sem. Morbi a consectetur ipsum, a placerat
- diam. Etiam vulputate dignissim convallis. Integer faucibus mauris sit amet finibus convallis.\n\n
- Phasellus in aliquet mi. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis
- egestas. In volutpat arcu ut felis sagittis, in finibus massa gravida. Pellentesque id tellus orci. Integer
- dictum, lorem sed efficitur ullamcorper, libero justo consectetur ipsum, in mollis nisl ex sed nisl. Donec
- maximus ullamcorper sodales. Praesent bibendum rhoncus tellus nec feugiat. In a ornare nulla. Donec rhoncus
- libero vel nunc consequat, quis tincidunt nisl eleifend. Cras bibendum enim a justo luctus vestibulum. Fusce
- dictum libero quis erat maximus, vitae volutpat diam dignissim.
-
-
\ No newline at end of file
diff --git a/app/src/main/res/values/strings_it.xml b/app/src/main/res/values/strings_it.xml
new file mode 100644
index 0000000..5844feb
--- /dev/null
+++ b/app/src/main/res/values/strings_it.xml
@@ -0,0 +1,28 @@
+
+
+ Matricola:
+ Foto profilo
+ Impostazioni
+ Logout
+ Piano di studi
+ Libretto
+ Appelli
+ Crediti:
+ Calendario
+ Anno:
+ Part Time
+ Logo università
+ Torna indietro
+ Vedi appelli disponibili
+ Data:
+ Presidente:
+ Iscritto
+ Iscrizione:
+ Piano di Studi
+ Iscriviti
+ Annulla
+ Aula:
+ Tipo:
+ Tipo esame
+ Note per il docente
+
\ No newline at end of file
diff --git a/app/src/test/java/org/epic_guys/esse4/RetrofitTest.java b/app/src/test/java/org/epic_guys/esse4/RetrofitTest.java
index d70485b..3976d44 100644
--- a/app/src/test/java/org/epic_guys/esse4/RetrofitTest.java
+++ b/app/src/test/java/org/epic_guys/esse4/RetrofitTest.java
@@ -1,10 +1,14 @@
package org.epic_guys.esse4;
import org.epic_guys.esse4.API.services.AnagraficheService;
+import org.epic_guys.esse4.API.services.LibrettoService;
+import org.epic_guys.esse4.models.Carriera;
import org.epic_guys.esse4.models.Jwt;
import org.epic_guys.esse4.models.Persona;
import okhttp3.*;
+import org.epic_guys.esse4.models.RigaLibretto;
import org.junit.Test;
+import retrofit2.Call;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
@@ -51,4 +55,22 @@ public void testJwt() {
Jwt jwt = new Jwt("eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCIsImtpZCI6ImVzc2UzIn0.eyJzdWIiOiI4ODg4NTEiLCJwcm9maWxlIjoiU1RVREVOVEUiLCJmaXNjYWxDb2RlIjoiRlZSTFZTMDJSMDZEMzI1QyIsImlzcyI6ImVzc2UzIiwiZXhwIjoxNjk5OTgxMzQ5LCJpYXQiOjE2OTk5ODA0NDksInRlbmFudCI6IlVOSVZFIn0.skW3sEJ1CnG3fLmp8saCKKP621DOXFXX3pUymXiD4s6LP7zpl4pzVlZpTA6REP8on5zvplt03bHIOzLHYxqaejtlE8hv8IuoJn1iYP6pmsBCzCxetghYSjal6GUHMJI9iiuoLtXY1hBFCNyuuZTA6-fK1nXaP9xgHcGAzL2MuC4dMEaBjYV9wHds2z6-GsbNOaCYLX50FPlmEPQtnLfCxOeYqNy_pSTIDlZIzuWuPw5mT0vqK_5kTPwsYhFOnlqUKPVik62idPxt3uCT1NO4M0UXZLfDbFHPx88-8QLCQo7OLrvc1AWsLogHhIkMb7FmU8MzPNI3L08_WZOlt8Tk6Q");
System.out.println(jwt.getPayload().getExpirationTime());
}
+
+ @Test
+ public void testLibretto() throws Exception {
+ LibrettoService librettoService = retrofit.create(LibrettoService.class);
+ AnagraficheService anagraficheService = retrofit.create(AnagraficheService.class);
+
+ Carriera carriera = anagraficheService.getCarriere().execute().body().get(0);
+
+ System.out.println(carriera.getIdCarriera());
+
+ Call> righeCall = librettoService.righeLibretto(carriera.getIdCarriera());
+ System.out.println(righeCall.request().url());
+ List righe = righeCall.execute().body();
+
+ for (RigaLibretto riga : righe) {
+ System.out.println(riga.getDescrizioneAttivitaDidattica());
+ }
+ }
}
diff --git a/app/styles.xml b/app/styles.xml
new file mode 100644
index 0000000..e69de29
diff --git a/build.gradle b/build.gradle
index 7117073..38d2dd0 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,4 +1,14 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
+buildscript {
+ repositories {
+ google()
+ }
+ dependencies {
+ def nav_version = "2.7.5"
+ classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version"
+ }
+}
+
plugins {
-id 'com.android.application' version '8.1.0' apply false
-}
\ No newline at end of file
+ id 'com.android.application' version '8.1.0' apply false
+}