Merge branch 'ms/issue-18/change_new_attestation' into beta

This commit is contained in:
Mathieu Sanchez 2020-11-28 03:52:44 +01:00
commit 3811723df6
7 changed files with 23 additions and 23 deletions

Binary file not shown.

View File

@ -14,7 +14,7 @@ data class Attestation(
val reasons: List<Int> val reasons: List<Int>
) { ) {
override fun toString(): String { override fun toString(): String {
return "Cree le: ${getDate(createAt)}; $profile; Sortie: ${getExitDateFormatted()}; Motifs: ${getMotifsText()}" return "Cree le: ${getDate(createAt)};\n$profile;\nSortie: ${getExitDateFormatted()};\nMotifs: ${getMotifsText()}"
} }
fun getNameFormatted(): String = "${profile.firstName} ${profile.lastName}" fun getNameFormatted(): String = "${profile.firstName} ${profile.lastName}"
@ -28,8 +28,8 @@ data class Attestation(
private fun getMotifsText(): String { private fun getMotifsText(): String {
val motifs = StringBuilder() val motifs = StringBuilder()
reasons.forEach { motifs.append(getMotifText(it), "-") } reasons.forEach { motifs.append(getMotifText(it), ", ") }
return motifs.toString().dropLast(1) return motifs.toString().dropLast(2)
} }
private fun getDate(dateTime: Long): String = SimpleDateFormat(PATTERN, Locale.FRANCE).format(Date(dateTime)) private fun getDate(dateTime: Long): String = SimpleDateFormat(PATTERN, Locale.FRANCE).format(Date(dateTime))
@ -37,7 +37,7 @@ data class Attestation(
fun getMotifText(i: Int): String { fun getMotifText(i: Int): String {
return when (i) { return when (i) {
1 -> "travail" 1 -> "travail"
2 -> "achats" 2 -> "achats_culturel_culturel"
3 -> "sante" 3 -> "sante"
4 -> "famille" 4 -> "famille"
5 -> "handicap" 5 -> "handicap"

View File

@ -14,6 +14,6 @@ data class Profile(
// var id: Int = CURRENT_PROFILE_ID // var id: Int = CURRENT_PROFILE_ID
override fun toString(): String { override fun toString(): String {
return "Nom: $lastName; Prenom: $firstName; Naissance: $birthday a $birthPlace; Adresse: $address $postalCode $city" return "Nom: $lastName;\nPrenom: $firstName;\nNaissance: $birthday a $birthPlace;\nAdresse: $address $postalCode $city"
} }
} }

View File

@ -20,6 +20,7 @@ class InfoFragment : Fragment() {
): View? { ): View? {
val root = inflater.inflate(R.layout.fragment_info, container, false) val root = inflater.inflate(R.layout.fragment_info, container, false)
root.explication_4.movementMethod = LinkMovementMethod.getInstance()
root.credits_1.movementMethod = LinkMovementMethod.getInstance() root.credits_1.movementMethod = LinkMovementMethod.getInstance()
root.credits_2.movementMethod = LinkMovementMethod.getInstance() root.credits_2.movementMethod = LinkMovementMethod.getInstance()
root.credits_3.movementMethod = LinkMovementMethod.getInstance() root.credits_3.movementMethod = LinkMovementMethod.getInstance()

View File

@ -34,7 +34,7 @@ class PdfUtils private constructor(
// Adding data // Adding data
if (setFieldsData(acroForm, attestation)) { if (setFieldsData(acroForm, attestation)) {
setCheckboxFields(acroForm, attestation) // setCheckboxFields(acroForm, attestation)
addPageWithQrCode(document, attestation) addPageWithQrCode(document, attestation)
Log.v("PdfUtils", "Save File to ${getPath(attestation.createAt)}") Log.v("PdfUtils", "Save File to ${getPath(attestation.createAt)}")
@ -54,7 +54,7 @@ class PdfUtils private constructor(
private fun addPageWithQrCode(document: PDDocument, attestation: Attestation) { private fun addPageWithQrCode(document: PDDocument, attestation: Attestation) {
val size = 360 val size = 360
val margin = 40f val margin = 25f
// Add QRCode on the first page // Add QRCode on the first page
val page1: PDPage = document.pages.first() val page1: PDPage = document.pages.first()
@ -64,8 +64,8 @@ class PdfUtils private constructor(
page1, page1,
attestation, attestation,
size / 3, size / 3,
page1.mediaBox.upperRightX - margin - size / 3 - 30, page1.mediaBox.upperRightX - margin - size / 3,
99f 25f
) )
// Add QRCode on a new page // Add QRCode on a new page
@ -122,7 +122,7 @@ class PdfUtils private constructor(
private fun setCheckboxFields(acroForm: PDAcroForm, attestation: Attestation) { private fun setCheckboxFields(acroForm: PDAcroForm, attestation: Attestation) {
attestation.reasons.forEach { attestation.reasons.forEach {
(acroForm.getField(attestation.getMotifText(it)) as PDCheckbox).check() (acroForm.getField("distinction Motif $it") as PDCheckbox).check()
} }
} }

View File

@ -23,22 +23,22 @@
<string name="generate_attestation_button">Générer l\'attestation</string> <string name="generate_attestation_button">Générer l\'attestation</string>
<!-- Reasons for leaving house --> <!-- Reasons for leaving house -->
<string name="reason">Je certifie que mon déplacement est lié au(x) motif(s) suivant (cocher la case) autorisé en application des mesures générales nécessaires pour faire face à l\'épidémie de Covid19 dans le cadre de l\'état d\'urgence sanitaire :</string> <string name="reason">Je certifie que mon déplacement est lié au(x) motif(s) suivant (cocher la case) autorisé en application des mesures générales nécessaires pour faire face à lépidémie de Covid19 dans le cadre de létat durgence sanitaire :</string>
<string name="reason_1">Déplacements entre le domicile et le lieu d\'exercice de l\'activité professionnelle ou les déplacements professionnels ne pouvant être différés.</string> <string name="reason_1">1. Déplacements entre le domicile et le lieu dexercice de lactivité professionnelle ou un établissement denseignement ou de formation ; déplacements professionnels ne pouvant être différés ; déplacements pour un concours ou un examen.</string>
<string name="reason_2">Déplacements pour effectuer des achats de fournitures nécessaires à l\'activité professionnelle, des achats de première nécessité dans des établissements dont les activités demeurent autorisées (liste sur gouvernement.fr) et les livraisons à domicile.</string> <string name="reason_2">2. Déplacements pour se rendre dans un établissement culturel autorisé ou un lieu de culte ; déplacements pour effectuer des achats de biens, pour des services dont la fourniture est autorisée, pour les retraits de commandes et les livraisons à domicile.</string>
<string name="reason_3">Consultations et soins ne pouvant être assurés à distance et ne pouvant être différés et lachat de médicaments.</string> <string name="reason_3">3. Consultations, examens et soins ne pouvant être assurés à distance et lachat de médicaments.</string>
<string name="reason_4">Déplacements pour motif familial impérieux, pour l\'assistance aux personnes vulnérables et précaires ou la garde d\'enfants.</string> <string name="reason_4">4. Déplacements pour motif familial impérieux, pour lassistance aux personnes vulnérables et précaires ou la garde denfants.</string>
<string name="reason_5">Déplacements des personnes en situation de handicap et de leur accompagnant.</string> <string name="reason_5">5. Déplacements des personnes en situation de handicap et leur accompagnant.</string>
<string name="reason_6">Déplacements brefs, dans la limite d\'une heure quotidienne et dans un rayon maximal d\'un kilomètre autour du domicile, liés soit à l\'activité physique individuelle des personnes, à l\'exclusion de toute pratique sportive collective et de toute proximité avec d\'autres personnes, soit à la promenade avec les seules personnes regroupées dans un même domicile, soit aux besoins des animaux de compagnie.</string> <string name="reason_6">6. Déplacements en plein air ou vers un lieu de plein air, sans changement du lieu de résidence, dans la limite de trois heures quotidiennes et dans un rayon maximal de vingt kilomètres autour du domicile, liés soit à lactivité physique ou aux loisirs individuels, à lexclusion de toute pratique sportive collective et de toute proximité avec dautres personnes, soit à la promenade avec les seules personnes regroupées dans un même domicile, soit aux besoins des animaux de compagnie.</string>
<string name="reason_7">Convocation judiciaire ou administrative et rendez-vous dans un service public.</string> <string name="reason_7">7. Convocations judiciaires ou administratives et déplacements pour se rendre dans un service public.</string>
<string name="reason_8">Participation à des missions d\'intérêt général sur demande de l\'autorité administrative.</string> <string name="reason_8">8. Participation à des missions dintérêt général sur demande de lautorité administrative.</string>
<string name="reason_9">Déplacement pour chercher les enfants à lécole et à loccasion de leurs activités périscolaires.</string> <string name="reason_9">9. Déplacement pour chercher les enfants à lécole et à loccasion de leurs activités périscolaires.</string>
<!-- Info Fragment --> <!-- Info Fragment -->
<string name="explication_1">- Cette application n\'aura jamais de publicité.</string> <string name="explication_1">- Cette application n\'aura jamais de publicité.</string>
<string name="explication_2">- Toutes les données sont stockées uniquement sur votre téléphone, utilisable hors ligne.</string> <string name="explication_2">- Toutes les données sont stockées uniquement sur votre téléphone, utilisable hors ligne.</string>
<string name="explication_3">- Application non gouvernementale ni officielle, développée par un jeune diplômé.</string> <string name="explication_3">- Application non gouvernementale ni officielle, développée par un jeune diplômé.</string>
<string name="explication_4">- Si vous souhaitez m\'offrir une bière ou un café, c\'est <a href="https://buymeacoff.ee/sanchezm/">ici</a>.</string> <string name="explication_4">- Si vous souhaitez m\'offrir une bière ou un café, c\'est <a href="https://buymeacoff.ee/sanchezm/">ici</a> ou vous pouvez me suivre sur <a href="https://www.twitch.tv/mathdieu">twitch</a>.</string>
<string name="credits_title">Petit remerciement pour l\'aide apportée au développement de l\'application :</string> <string name="credits_title">Petit remerciement pour l\'aide apportée au développement de l\'application :</string>
<string name="credits_1">TomRoush: <a href="https://github.com/TomRoush/PdfBox-Android">PdfBox-Android</a></string> <string name="credits_1">TomRoush: <a href="https://github.com/TomRoush/PdfBox-Android">PdfBox-Android</a></string>
<string name="credits_2">Barteksc: <a href="https://github.com/barteksc/AndroidPdfViewer">AndroidPdfViewer</a></string> <string name="credits_2">Barteksc: <a href="https://github.com/barteksc/AndroidPdfViewer">AndroidPdfViewer</a></string>

View File

@ -39,7 +39,7 @@
<item name="android:layout_height">wrap_content</item> <item name="android:layout_height">wrap_content</item>
<item name="android:layout_marginTop">@dimen/margin5dp</item> <item name="android:layout_marginTop">@dimen/margin5dp</item>
<item name="android:textColor">@color/colorPrimary</item> <item name="android:textColor">@color/colorPrimary</item>
<item name="android:textSize">@dimen/textSize16sp</item> <item name="android:textSize">@dimen/textSize14sp</item>
</style> </style>
<style name="TextViewCredits" parent="TextView"> <style name="TextViewCredits" parent="TextView">
@ -48,7 +48,6 @@
</style> </style>
<dimen name="textSize18sp">18sp</dimen> <dimen name="textSize18sp">18sp</dimen>
<dimen name="textSize16sp">16sp</dimen>
<dimen name="textSize14sp">14sp</dimen> <dimen name="textSize14sp">14sp</dimen>
<dimen name="textInputCornerRadius">20dp</dimen> <dimen name="textInputCornerRadius">20dp</dimen>
<dimen name="margin15dp">15dp</dimen> <dimen name="margin15dp">15dp</dimen>