Skip to content
This repository was archived by the owner on Aug 31, 2022. It is now read-only.

Commit bcd8092

Browse files
authored
Merge pull request #43 from AdrienPoupa/couvre-feu
Add new attestation
2 parents 8770280 + aa20db7 commit bcd8092

16 files changed

+75
-508
lines changed

CHANGELOG.md

+4
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
## [Non sorti]
44

5+
## [2.0.0] - 2020-10-20
6+
### Ajouté
7+
- Attestation de déplacement dérogatoire - Couvre Feu
8+
59
## [1.7.0] - 2020-05-13
610
### Ajouté
711
- Déclaration de déplacement supérieur à 100km

app/build.gradle

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ android {
88
applicationId "com.poupa.attestationdeplacement"
99
minSdkVersion 16
1010
targetSdkVersion 29
11-
versionCode 16
12-
versionName "1.7.0"
11+
versionCode 17
12+
versionName "2.0.0"
1313
multiDexEnabled true
1414
vectorDrawables.useSupportLibrary = true
1515

-175 KB
Binary file not shown.
-55.3 KB
Binary file not shown.

app/src/main/assets/attestation.pdf

-93.3 KB
Binary file not shown.

app/src/main/java/com/poupa/attestationdeplacement/CreateAttestationActivity.java

+7-108
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,8 @@
88
import android.os.Bundle;
99
import android.view.LayoutInflater;
1010
import android.view.View;
11-
import android.widget.AdapterView;
12-
import android.widget.ArrayAdapter;
1311
import android.widget.CheckBox;
1412
import android.widget.ImageView;
15-
import android.widget.LinearLayout;
16-
import android.widget.Spinner;
1713
import android.widget.TimePicker;
1814
import android.widget.Toast;
1915

@@ -24,12 +20,9 @@
2420
import androidx.constraintlayout.widget.ConstraintSet;
2521

2622
import com.google.android.material.textfield.TextInputEditText;
27-
import com.google.android.material.textfield.TextInputLayout;
2823
import com.poupa.attestationdeplacement.generator.Attestation;
2924
import com.poupa.attestationdeplacement.generator.AttestationDeplacementDerogatoireGenerator;
3025
import com.poupa.attestationdeplacement.generator.AttestationGenerator;
31-
import com.poupa.attestationdeplacement.generator.AutoAttestationTransportsGenerator;
32-
import com.poupa.attestationdeplacement.generator.DeclarationDeplacementGenerator;
3326
import com.poupa.attestationdeplacement.ui.DateTextWatcher;
3427

3528
import java.util.Calendar;
@@ -43,16 +36,10 @@ public class CreateAttestationActivity extends AppCompatActivity {
4336
private TextInputEditText birthPlaceInput;
4437
private TextInputEditText addressInput;
4538
private TextInputEditText cityInput;
46-
private TextInputEditText destinationCityInput;
47-
private TextInputEditText destinationDepartmentInput;
4839
private TextInputEditText postalCodeInput;
4940
private TextInputEditText travelDateInput;
5041
private TextInputEditText travelHourInput;
51-
private TextInputLayout travelHourLayout;
5242

53-
private TextInputLayout destinationCityLayout;
54-
private TextInputLayout destinationDepartmentLayout;
55-
private LinearLayout recurringLayout;
5643
private ConstraintLayout constraintLayout;
5744
private ConstraintSet constraintSet;
5845

@@ -62,12 +49,6 @@ public class CreateAttestationActivity extends AppCompatActivity {
6249

6350
private Attestation attestation;
6451

65-
public enum AttestationType {
66-
DECLARATION_DEPLACEMENT,
67-
AUTO_ATTESTATION_TRANSPORTS,
68-
ATTESTATION_DEPLACEMENT_DEROGATOIRE
69-
}
70-
7152
@Override
7253
protected void onCreate(Bundle savedInstanceState) {
7354
super.onCreate(savedInstanceState);
@@ -86,7 +67,8 @@ protected void onCreate(Bundle savedInstanceState) {
8667
*/
8768
private void initFields() {
8869
attestation = new Attestation();
89-
attestation.setAttestationType(AttestationType.AUTO_ATTESTATION_TRANSPORTS);
70+
71+
attestationGenerator = new AttestationDeplacementDerogatoireGenerator(this, attestation);
9072

9173
SharedPreferences userDetails = getSharedPreferences("userDetails", MODE_PRIVATE);
9274

@@ -120,14 +102,6 @@ private void initFields() {
120102

121103
postalCodeInput.setText(userDetails.getString("postalCode", ""));
122104

123-
destinationCityInput = findViewById(R.id.destination_city);
124-
125-
destinationCityInput.setText(userDetails.getString("destinationCity", ""));
126-
127-
destinationDepartmentInput = findViewById(R.id.destination_department);
128-
129-
destinationDepartmentInput.setText(userDetails.getString("destinationDepartment", ""));
130-
131105
travelDateInput = findViewById(R.id.travel_date);
132106

133107
travelHourInput = findViewById(R.id.travel_hour);
@@ -168,22 +142,12 @@ public void onClick(View v) {
168142
}
169143
});
170144

171-
travelHourLayout = findViewById(R.id.travel_hour_layout);
172-
destinationCityLayout = findViewById(R.id.destination_city_layout);
173-
destinationDepartmentLayout = findViewById(R.id.destination_department_layout);
174-
recurringLayout = findViewById(R.id.recurring_layout);
175-
constraintLayout = findViewById(R.id.constraint_layout);
176-
177145
constraintSet = new ConstraintSet();
178-
179-
Spinner spinner = findViewById(R.id.attestation_type);
180-
181-
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
182-
R.array.attestation_type, android.R.layout.simple_spinner_item);
183-
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
184-
spinner.setAdapter(adapter);
185-
186-
spinner.setOnItemSelectedListener(new SpinnerOnItemSelectedListener());
146+
constraintLayout = findViewById(R.id.constraint_layout);
147+
constraintSet.clone(constraintLayout);
148+
constraintSet.connect(R.id.reasonsTextView, ConstraintSet.TOP,
149+
R.id.travel_hour_layout, ConstraintSet.BOTTOM);
150+
constraintSet.applyTo(constraintLayout);
187151
}
188152

189153
/**
@@ -271,12 +235,6 @@ public void saveFields() {
271235
attestation.setPostalCode(postalCodeInput.getText().toString());
272236
edit.putString("postalCode", attestation.getPostalCode());
273237

274-
attestation.setDestinationCity(destinationCityInput.getText().toString());
275-
edit.putString("destinationCity", attestation.getDestinationCity());
276-
277-
attestation.setDestinationDepartment(destinationDepartmentInput.getText().toString());
278-
edit.putString("destinationDepartment", attestation.getDestinationDepartment());
279-
280238
edit.apply();
281239

282240
// Do not save this for further uses
@@ -298,9 +256,6 @@ public void saveFields() {
298256
attestation.setReason6(((CheckBox) findViewById(R.id.reason6)).isChecked());
299257
attestation.setReason7(((CheckBox) findViewById(R.id.reason7)).isChecked());
300258
attestation.setReason8(((CheckBox) findViewById(R.id.reason8)).isChecked());
301-
attestation.setReason9(((CheckBox) findViewById(R.id.reason9)).isChecked());
302-
303-
attestation.setRecurring(((CheckBox) findViewById(R.id.recurring)).isChecked());
304259
}
305260

306261
/**
@@ -342,60 +297,4 @@ private void getReasonsDialog() {
342297
builder.setPositiveButton(getString(android.R.string.ok),null);
343298
builder.show();
344299
}
345-
346-
private class SpinnerOnItemSelectedListener implements AdapterView.OnItemSelectedListener {
347-
@Override
348-
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
349-
if (position == 0) {
350-
attestation.setAttestationType(AttestationType.DECLARATION_DEPLACEMENT);
351-
352-
attestationGenerator = new DeclarationDeplacementGenerator(parent.getContext(), attestation);
353-
354-
travelHourLayout.setVisibility(View.INVISIBLE);
355-
destinationCityLayout.setVisibility(View.VISIBLE);
356-
destinationDepartmentLayout.setVisibility(View.VISIBLE);
357-
recurringLayout.setVisibility(View.VISIBLE);
358-
359-
constraintSet.clone(constraintLayout);
360-
constraintSet.connect(R.id.reasonsTextView, ConstraintSet.TOP,
361-
R.id.recurring_layout, ConstraintSet.BOTTOM);
362-
constraintSet.applyTo(constraintLayout);
363-
364-
} else if (position == 1) {
365-
attestation.setAttestationType(AttestationType.AUTO_ATTESTATION_TRANSPORTS);
366-
367-
attestationGenerator = new AutoAttestationTransportsGenerator(parent.getContext(), attestation);
368-
369-
travelHourLayout.setVisibility(View.INVISIBLE);
370-
destinationCityLayout.setVisibility(View.INVISIBLE);
371-
destinationDepartmentLayout.setVisibility(View.INVISIBLE);
372-
recurringLayout.setVisibility(View.INVISIBLE);
373-
374-
constraintSet.clone(constraintLayout);
375-
constraintSet.connect(R.id.reasonsTextView, ConstraintSet.TOP,
376-
R.id.travel_date_layout, ConstraintSet.BOTTOM);
377-
constraintSet.applyTo(constraintLayout);
378-
379-
} else {
380-
attestation.setAttestationType(AttestationType.ATTESTATION_DEPLACEMENT_DEROGATOIRE);
381-
382-
attestationGenerator = new AttestationDeplacementDerogatoireGenerator(parent.getContext(), attestation);
383-
384-
travelHourLayout.setVisibility(View.VISIBLE);
385-
destinationCityLayout.setVisibility(View.INVISIBLE);
386-
destinationDepartmentLayout.setVisibility(View.INVISIBLE);
387-
recurringLayout.setVisibility(View.INVISIBLE);
388-
389-
constraintSet.clone(constraintLayout);
390-
constraintSet.connect(R.id.reasonsTextView, ConstraintSet.TOP,
391-
R.id.travel_hour_layout, ConstraintSet.BOTTOM);
392-
constraintSet.applyTo(constraintLayout);
393-
}
394-
}
395-
396-
@Override
397-
public void onNothingSelected(AdapterView<?> parent) {
398-
399-
}
400-
}
401300
}

app/src/main/java/com/poupa/attestationdeplacement/generator/Attestation.java

-47
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,10 @@
11
package com.poupa.attestationdeplacement.generator;
22

3-
import com.poupa.attestationdeplacement.CreateAttestationActivity;
4-
53
public class Attestation {
64
private int id;
75
private String surname;
86
private String lastName;
97
private String city;
10-
private String destinationCity;
11-
private String destinationDepartment;
128
private String postalCode;
139
private String address;
1410
private String birthPlace;
@@ -22,7 +18,6 @@ public class Attestation {
2218

2319
private StringBuilder motivesQrCode;
2420
private StringBuilder motivesDatabase;
25-
private CreateAttestationActivity.AttestationType attestationType;
2621
private boolean isReason1;
2722
private boolean isReason2;
2823
private boolean isReason3;
@@ -31,8 +26,6 @@ public class Attestation {
3126
private boolean isReason6;
3227
private boolean isReason7;
3328
private boolean isReason8;
34-
private boolean isReason9;
35-
private boolean isRecurring;
3629

3730
public Attestation() {
3831
this.motivesDatabase = new StringBuilder();
@@ -86,22 +79,6 @@ public void setCity(String city) {
8679
this.city = city;
8780
}
8881

89-
public String getDestinationCity() {
90-
return destinationCity;
91-
}
92-
93-
public void setDestinationCity(String destinationCity) {
94-
this.destinationCity = destinationCity;
95-
}
96-
97-
public String getDestinationDepartment() {
98-
return destinationDepartment;
99-
}
100-
101-
public void setDestinationDepartment(String destinationDepartment) {
102-
this.destinationDepartment = destinationDepartment;
103-
}
104-
10582
public String getPostalCode() {
10683
return postalCode;
10784
}
@@ -182,14 +159,6 @@ public void setMotivesDatabase(StringBuilder motivesDatabase) {
182159
this.motivesDatabase = motivesDatabase;
183160
}
184161

185-
public CreateAttestationActivity.AttestationType getAttestationType() {
186-
return attestationType;
187-
}
188-
189-
public void setAttestationType(CreateAttestationActivity.AttestationType attestationType) {
190-
this.attestationType = attestationType;
191-
}
192-
193162
public boolean isReason1() {
194163
return isReason1;
195164
}
@@ -254,22 +223,6 @@ public void setReason8(boolean reason8) {
254223
isReason8 = reason8;
255224
}
256225

257-
public boolean isReason9() {
258-
return isReason9;
259-
}
260-
261-
public void setReason9(boolean reason9) {
262-
isReason9 = reason9;
263-
}
264-
265-
public boolean isRecurring() {
266-
return isRecurring;
267-
}
268-
269-
public void setRecurring(boolean recurring) {
270-
isRecurring = recurring;
271-
}
272-
273226
public String getCurrentDate() {
274227
return currentDate;
275228
}

app/src/main/java/com/poupa/attestationdeplacement/generator/AttestationDeplacementDerogatoireGenerator.java

+37-13
Original file line numberDiff line numberDiff line change
@@ -19,20 +19,45 @@ String getPdfFilename() {
1919
return "attestation.pdf";
2020
}
2121

22-
/**
23-
* Fill the PDF motives
24-
*/
2522
protected void fillMotives() throws IOException, DocumentException {
26-
super.fillMotives();
23+
if (attestation.isReason1()) {
24+
form.setField("travail", "Oui");
25+
attestation.addMotive("travail");
26+
}
2727

2828
if (attestation.isReason2()) {
29-
form.setField("Déplacements achats nécéssaires", "Oui");
30-
attestation.addMotive("courses");
29+
form.setField("sante", "Oui");
30+
attestation.addMotive("sante");
31+
}
32+
33+
if (attestation.isReason3()) {
34+
form.setField("famille", "Oui");
35+
attestation.addMotive("famille");
36+
}
37+
38+
if (attestation.isReason4()) {
39+
form.setField("handicap", "Oui");
40+
attestation.addMotive("handicap");
3141
}
3242

3343
if (attestation.isReason5()) {
34-
form.setField("Déplacements brefs (activité physique et animaux)", "Oui");
35-
attestation.addMotive("sport");
44+
form.setField("convocation", "Oui");
45+
attestation.addMotive("convocation");
46+
}
47+
48+
if (attestation.isReason6()) {
49+
form.setField("missions", "Oui");
50+
attestation.addMotive("missions");
51+
}
52+
53+
if (attestation.isReason7()) {
54+
form.setField("transits", "Oui");
55+
attestation.addMotive("transits");
56+
}
57+
58+
if (attestation.isReason8()) {
59+
form.setField("animaux", "Oui");
60+
attestation.addMotive("animaux");
3661
}
3762
}
3863

@@ -50,8 +75,7 @@ protected void fillForm() throws IOException, DocumentException {
5075
form.setField("Lieu de naissance", attestation.getBirthPlace());
5176
form.setField("Adresse actuelle", attestation.getFullAddress());
5277

53-
form.setField("Heure", attestation.getHour());
54-
form.setField("Minute", attestation.getMinute());
78+
form.setField("HeureMinute", attestation.getHour() + ':' + attestation.getMinute());
5579

5680
form.setField("Ville", attestation.getCity());
5781
form.setField("Date", attestation.getTravelDate());
@@ -62,8 +86,8 @@ protected void fillForm() throws IOException, DocumentException {
6286
* @return
6387
*/
6488
protected String getQrCodeText() {
65-
return "Cree le: " + attestation.getCurrentDate() + " a " + attestation.getCurrentTime() + ";Nom: " + attestation.getLastName() + ";Prenom: " + attestation.getSurname() + ";" +
66-
"Naissance: " + attestation.getBirthDate() + " a " + attestation.getBirthPlace() + ";Adresse: " + attestation.getFullAddress() + ";" +
67-
"Sortie: " + attestation.getTravelDate() + " a " + attestation.getTravelHour() + ";Motifs: " + attestation.getMotivesQrCode();
89+
return "Cree le: " + attestation.getCurrentDate() + " a " + attestation.getCurrentTime() + ";\n Nom: " + attestation.getLastName() + ";\n Prenom: " + attestation.getSurname() + ";\n " +
90+
"Naissance: " + attestation.getBirthDate() + " a " + attestation.getBirthPlace() + ";\n Adresse: " + attestation.getFullAddress() + ";\n " +
91+
"Sortie: " + attestation.getTravelDate() + " a " + attestation.getTravelHour() + ";\n Motifs: " + attestation.getMotivesQrCode();
6892
}
6993
}

0 commit comments

Comments
 (0)