Skip to content

Commit

Permalink
Merge branch 'release/2.4.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
sgrimault committed Oct 2, 2022
2 parents 15807c9 + 9d3f8a6 commit 6054018
Show file tree
Hide file tree
Showing 95 changed files with 6,801 additions and 1,739 deletions.
84 changes: 84 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,89 @@
# Changelog

## [2.4.0](https://github.com/PnX-SI/gn_mobile_occtax/releases/tag/2.4.0) (2022-10-02, release)

### 🚀 Nouveautés

* Refonte ergonomique des listes de choix des nomenclatures. Cette refonte ne concerne pour l'instant
que l'étape "Informations" lors de la saisie d'un taxon.
* Accélérer la saisie en permettant de mémoriser les dernières nomenclatures saisies (https://github.com/PnX-SI/gn_mobile_occtax/issues/169).
Cette fonctionnalité est accessible via la propriété `nomenclature/save_default_values` dans le
[fichier de paramétrage](https://github.com/PnX-SI/gn_mobile_occtax/blob/develop/README.md#nomenclature-settings).
* Amélioration sur la recherche des taxons, notamment sur la distinction des mots (avec ou sans
majuscules, avec ou sans accents) (https://github.com/PnX-SI/gn_mobile_occtax/issues/91).
* Petites améliorations sur la présentation des jeux de données, aussi bien dans la page de
sélection des jeux de données que dans l'affichage du jeu de données sélectionnée dans la saisie (https://github.com/PnX-SI/gn_mobile_occtax/issues/120).
* Petites améliorations sur la page de sélection des observateurs et sur la fonction de recherche
des observateurs (https://github.com/PnX-SI/gn_mobile_occtax/issues/142).
* Petites améliorations sur les messages d'information lors de la synchronisation des données (https://github.com/PnX-SI/gn_mobile_occtax/issues/143).
* Affichage du nom vernaculaire du taxon dans le bilan de la saisie (https://github.com/PnX-SI/gn_mobile_occtax/issues/153).
* Ajout d'une fonction de filtre sur les rangs taxonomique des taxons dans la page du bilan de la
saisie (https://github.com/PnX-SI/gn_mobile_occtax/issues/166).
* Affichage du nombre de taxon en en-tête de page (https://github.com/PnX-SI/gn_mobile_occtax/issues/167).
* Permettre de modifier la date et l'heure de fin des relevés en fin de saisie (https://github.com/PnX-SI/gn_mobile_occtax/issues/168).
* Refonte ergonomique sur l'enchaînement des écrans de la saisie. Le bilan de la saisie intervient
notamment après le pointage sur la carte si le relevé contient au moins un taxon (https://github.com/PnX-SI/gn_mobile_occtax/issues/177).

### 🐛 Corrections

* Défilement automatique du nom vernaculaire du taxon sélectionné (https://github.com/PnX-SI/gn_mobile_occtax/issues/49).
* Validation sur l'ensemble des taxons ajoutés au relevé (https://github.com/PnX-SI/gn_mobile_occtax/issues/177).
* Correction concernant la mémorisation de la sélection des observateurs lors de la saisie (https://github.com/PnX-SI/gn_mobile_occtax/issues/110).
* Validation automatique du compte utilisateur lors de l'authentification (https://github.com/PnX-SI/gn_mobile_occtax/issues/184).

### ⚠️ Notes de version

* Code de version : 3090

## [2.4.0-rc2](https://github.com/PnX-SI/gn_mobile_occtax/releases/tag/2.4.0-rc2) (2022-09-26, pre-release)

### 🚀 Nouveautés

* Refonte ergonomique des listes de choix des nomenclatures.
* Accélérer la saisie en permettant de mémoriser les dernières nomenclatures saisies (https://github.com/PnX-SI/gn_mobile_occtax/issues/169).

### ⚠️ Notes de version

* Code de version : 3083

## [2.4.0-rc1](https://github.com/PnX-SI/gn_mobile_occtax/releases/tag/2.4.0-rc1) (2022-09-10, pre-release)

### 🐛 Corrections

* Défilement automatique du nom vernaculaire du taxon sélectionné (https://github.com/PnX-SI/gn_mobile_occtax/issues/49).
* Validation sur l'ensemble des taxons ajoutés au relevé (https://github.com/PnX-SI/gn_mobile_occtax/issues/177).

### ⚠️ Notes de version

* Code de version : 3079

## [2.4.0-rc0](https://github.com/PnX-SI/gn_mobile_occtax/releases/tag/2.4.0-rc0) (2022-09-07, pre-release)

### 🚀 Nouveautés

* Amélioration sur la recherche des taxons, notamment sur la distinction des mots (avec ou sans
majuscules, avec ou sans accents) (https://github.com/PnX-SI/gn_mobile_occtax/issues/91).
* Petites améliorations sur la présentation des jeux de données, aussi bien dans la page de
sélection des jeux de données que dans l'affichage du jeu de données sélectionnée dans la saisie (https://github.com/PnX-SI/gn_mobile_occtax/issues/120).
* Petites améliorations sur la page de sélection des observateurs et sur la fonction de recherche
des observateurs (https://github.com/PnX-SI/gn_mobile_occtax/issues/142).
* Petites améliorations sur les messages d'information lors de la synchronisation des données (https://github.com/PnX-SI/gn_mobile_occtax/issues/143).
* Affichage du nom vernaculaire du taxon dans le bilan de la saisie (https://github.com/PnX-SI/gn_mobile_occtax/issues/153).
* Ajout d'une fonction de filtre sur les rangs taxonomique des taxons dans la page du bilan de la
saisie (https://github.com/PnX-SI/gn_mobile_occtax/issues/166).
* Affichage du nombre de taxon en en-tête de page (https://github.com/PnX-SI/gn_mobile_occtax/issues/167).
* Permettre de modifier la date et l'heure de fin des relevés en fin de saisie (https://github.com/PnX-SI/gn_mobile_occtax/issues/168).
* Refonte ergonomique sur l'enchaînement des écrans de la saisie. Le bilan de la saisie intervient
notamment après le pointage sur la carte si le relevé contient au moins un taxon (https://github.com/PnX-SI/gn_mobile_occtax/issues/177).

### 🐛 Corrections

* Correction concernant la mémorisation de la sélection des observateurs lors de la saisie (https://github.com/PnX-SI/gn_mobile_occtax/issues/110).

### ⚠️ Notes de version

* Code de version : 3075

## [2.3.0](https://github.com/PnX-SI/gn_mobile_occtax/releases/tag/2.3.0) (2022-07-14, release)

### 🚀 Nouveautés
Expand Down
41 changes: 23 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Based on [datasync module](https://github.com/PnX-SI/gn_mobile_core) to synchron
## Launcher icons

| Name | Flavor | Launcher icon |
| ------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|---------|-----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Default | _generic_ | ![PNX](https://raw.githubusercontent.com/PnX-SI/gn_mobile_occtax/develop/occtax/src/main/res/mipmap-xxxhdpi/ic_launcher.png) ![PNX_debug](https://raw.githubusercontent.com/PnX-SI/gn_mobile_occtax/develop/occtax/src/debug/res/mipmap-xxxhdpi/ic_launcher.png) |

## Settings
Expand Down Expand Up @@ -81,16 +81,17 @@ Example:

### Parameters description

| Parameter | UI | Description | Default value |
| --------------------------- | ------- | -------------------------------------------------------------------------------------------------- | ------------- |
| `area_observation_duration` | ☐ | Area observation duration period (in days) | 365 |
| `sync` | ☐ | Data synchronization settings (cf. https://github.com/PnX-SI/gn_mobile_core/tree/develop/datasync) | |
| `map` | ☐ | Maps settings (cf. https://github.com/PnX-SI/gn_mobile_maps/tree/develop/maps) | |
| `input` | ☐ | Input form settings | |
| `input/date` | ☐ | Date settings | |
| `nomenclature` | ☐ | Nomenclature settings | |
| `nomenclature/information` | ☐ | Information settings (as array) | |
| `nomenclature/counting` | ☐ | Counting settings (as array) | |
| Parameter | UI | Description | Default value |
|------------------------------------|---------|----------------------------------------------------------------------------------------------------|---------------|
| `area_observation_duration` | ☐ | Area observation duration period (in days) | 365 |
| `sync` | ☐ | Data synchronization settings (cf. https://github.com/PnX-SI/gn_mobile_core/tree/develop/datasync) | |
| `map` | ☐ | Maps settings (cf. https://github.com/PnX-SI/gn_mobile_maps/tree/develop/maps) | |
| `input` | ☐ | Input form settings | |
| `input/date` | ☐ | Date settings | |
| `nomenclature` | ☐ | Nomenclature settings | |
| `nomenclature/save_default_values` | ☐ | Save default nomenclature values | false |
| `nomenclature/information` | ☐ | Information settings (as array) | |
| `nomenclature/counting` | ☐ | Counting settings (as array) | |

### Input settings

Expand All @@ -101,7 +102,7 @@ Allows to configure settings related to user input.
How the user can set the start and end date of the input:

| Parameter | Description | Default value |
| ----------------- | ---------------------------------------------------------------------------- | ------------- |
|-------------------|------------------------------------------------------------------------------|---------------|
| `enable_end_date` | Whether to edit as well the end date of the input | `false` |
| `enable_hours` | Whether to edit as well the hour part of the start and end date (if enabled) | `false` |

Expand All @@ -116,15 +117,18 @@ If nothing is configured, only the start date without the hour part is editable.

### Nomenclature settings

Allows to define if fields are displayed by default and if they are editable (visible). If a field is not editable (visible),
it will use the default value set in Occtax database.
`save_default_values`: Allows to save locally and only during a session of use selected nomenclature
values as default values (default: `false`).

Allows to define if fields are displayed by default and if they are editable (visible).
If a field is not editable (visible), it will use the default value set in Occtax database.

All these settings may not be defined and the default values will then be used instead:

**Information settings**

| Nomenclature | Label | Displayed by default | Editable (visible) |
| ---------------- | -------------------- | -------------------- | ------------------ |
|------------------|----------------------|----------------------|--------------------|
| METH_OBS | Observation methods | `true` | `true` |
| ETA_BIO | Biological state | `true` | `true` |
| METH_DETERMIN | Determination method | `false` | `true` |
Expand All @@ -138,7 +142,7 @@ All these settings may not be defined and the default values will then be used i
**Counting settings**

| Nomenclature | Label | Displayed by default | Editable (visible) |
| ------------ | -------------------------- | -------------------- | ------------------ |
|--------------|----------------------------|----------------------|--------------------|
| STADE_VIE | Life stage | `true` | `true` |
| SEXE | Sex | `true` | `true` |
| OBJ_DENBR | Purpose of the enumeration | `true` | `true` |
Expand All @@ -153,6 +157,7 @@ You can override these default settings by adding a property for each nomenclatu
```json
{
"nomenclature": {
"save_default_values": false,
"information": [
"METH_OBS",
{
Expand Down Expand Up @@ -192,7 +197,7 @@ You can override these default settings by adding a property for each nomenclatu
Each property may be a simple string representing the nomenclature attribute to show or an object with the following properties:

| Property | Description | Mandatory |
| --------- | --------------------------------------------------------------------- | --------- |
|-----------|-----------------------------------------------------------------------|-----------|
| `key` | The nomenclature attribute | ☑ |
| `visible` | If this attribute is visible (thus editable) or not (default: `true`) | ☐ |
| `default` | If this attribute is shown by default (default: `true`) | ☐ |
Expand Down Expand Up @@ -275,4 +280,4 @@ A full build can be executed with the following command:

## Financial support

This application have been developped with the financial support of the [Office Français de la Biodiversité](https://www.ofb.gouv.fr/)
This application have been developed with the financial support of the [Office Français de la Biodiversité](https://www.ofb.gouv.fr).
2 changes: 1 addition & 1 deletion gn_mobile_core
Submodule gn_mobile_core updated 53 files
+6 −5 commons/build.gradle
+155 −57 commons/src/main/java/fr/geonature/commons/data/dao/NomenclatureDao.kt
+15 −2 commons/src/main/java/fr/geonature/commons/data/dao/NomenclatureTypeDao.kt
+79 −40 commons/src/main/java/fr/geonature/commons/data/entity/AbstractTaxon.kt
+143 −21 commons/src/main/java/fr/geonature/commons/data/entity/InputObserver.kt
+13 −12 commons/src/main/java/fr/geonature/commons/data/entity/Nomenclature.kt
+46 −1 commons/src/main/java/fr/geonature/commons/data/helper/EntityHelper.kt
+1 −0 commons/src/main/java/fr/geonature/commons/error/Failure.kt
+14 −0 commons/src/main/java/fr/geonature/commons/input/InputViewModel.kt
+20 −0 commons/src/main/java/fr/geonature/commons/util/KeyboardUtils.kt
+446 −0 commons/src/test/java/fr/geonature/commons/data/dao/NomenclatureDaoTest.kt
+92 −0 commons/src/test/java/fr/geonature/commons/data/dao/NomenclatureTypeDaoTest.kt
+60 −13 commons/src/test/java/fr/geonature/commons/data/entity/InputObserverTest.kt
+92 −15 commons/src/test/java/fr/geonature/commons/data/entity/TaxonTest.kt
+29 −26 commons/src/test/java/fr/geonature/commons/data/entity/TaxonWithAreaTest.kt
+14 −1 commons/src/test/java/fr/geonature/commons/data/helper/EntityHelperTest.kt
+2 −2 commons/version.properties
+2 −2 datasync/build.gradle
+4 −1 datasync/src/main/java/fr/geonature/datasync/auth/AuthFailure.kt
+4 −1 datasync/src/main/java/fr/geonature/datasync/auth/AuthLoginViewModel.kt
+8 −3 datasync/src/main/java/fr/geonature/datasync/auth/AuthManagerImpl.kt
+3 −10 datasync/src/main/java/fr/geonature/datasync/auth/io/AuthLoginJsonReader.kt
+14 −13 datasync/src/main/res/values-fr/strings.xml
+14 −13 datasync/src/main/res/values/strings.xml
+225 −179 datasync/src/test/java/fr/geonature/datasync/auth/AuthManagerTest.kt
+27 −5 datasync/src/test/java/fr/geonature/datasync/auth/io/AuthLoginJsonReaderTest.kt
+2 −2 datasync/version.properties
+13 −7 viewpager/build.gradle
+35 −0 viewpager/src/main/java/fr/geonature/viewpager/model/IPageFragment.kt
+16 −0 viewpager/src/main/java/fr/geonature/viewpager/model/IPageWithValidationFragment.kt
+98 −0 viewpager/src/main/java/fr/geonature/viewpager/model/PageFragmentViewModel.kt
+0 −104 viewpager/src/main/java/fr/geonature/viewpager/pager/Pager.kt
+0 −91 viewpager/src/main/java/fr/geonature/viewpager/pager/PagerManager.kt
+0 −100 viewpager/src/main/java/fr/geonature/viewpager/pager/io/PagerJsonReader.kt
+0 −102 viewpager/src/main/java/fr/geonature/viewpager/pager/io/PagerJsonWriter.kt
+0 −263 viewpager/src/main/java/fr/geonature/viewpager/ui/AbstractNavigationHistoryPagerFragmentActivity.kt
+169 −308 viewpager/src/main/java/fr/geonature/viewpager/ui/AbstractPagerFragmentActivity.kt
+0 −73 viewpager/src/main/java/fr/geonature/viewpager/ui/EnablePagingViewPager.kt
+13 −13 viewpager/src/main/java/fr/geonature/viewpager/ui/IPagerIndicator.kt
+0 −47 viewpager/src/main/java/fr/geonature/viewpager/ui/IValidateFragment.kt
+0 −23 viewpager/src/main/java/fr/geonature/viewpager/ui/IValidateWithNavigationControlFragment.kt
+48 −0 viewpager/src/main/java/fr/geonature/viewpager/ui/OnPageFragmentListener.kt
+0 −56 viewpager/src/main/java/fr/geonature/viewpager/ui/SimpleFragmentPagerAdapter.kt
+48 −38 viewpager/src/main/java/fr/geonature/viewpager/ui/UnderlinePagerIndicator.kt
+7 −6 viewpager/src/main/res/layout/activity_pager.xml
+1 −1 viewpager/src/main/res/values/attrs.xml
+565 −0 viewpager/src/test/java/fr/geonature/viewpager/model/PageFragmentViewModelTest.kt
+0 −120 viewpager/src/test/java/fr/geonature/viewpager/pager/PagerManagerTest.kt
+0 −45 viewpager/src/test/java/fr/geonature/viewpager/pager/PagerTest.kt
+0 −114 viewpager/src/test/java/fr/geonature/viewpager/pager/io/PagerJsonReaderTest.kt
+0 −95 viewpager/src/test/java/fr/geonature/viewpager/pager/io/PagerJsonWriterTest.kt
+0 −1 viewpager/src/test/resources/robolectric.properties
+2 −2 viewpager/version.properties
11 changes: 7 additions & 4 deletions occtax/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@ plugins {
id 'kotlin-kapt'
}

version = "2.2.0"

android {
compileSdkVersion 31

Expand All @@ -23,8 +21,8 @@ android {
applicationId "fr.geonature.occtax2"
minSdkVersion 26
targetSdkVersion 31
versionCode 3070
versionName "2.3.0"
versionCode 3090
versionName "2.4.0"
buildConfigField "String", "BUILD_DATE", "\"" + new Date().getTime() + "\""
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
archivesBaseName = project.name + "-" + versionName
Expand Down Expand Up @@ -88,6 +86,11 @@ dependencies {
runtimeOnly "org.tinylog:tinylog-impl:$tinylog_version"

// Testing dependencies
testImplementation 'androidx.arch.core:core-testing:2.1.0'
testImplementation 'androidx.test.ext:junit-ktx:1.1.3'
testImplementation 'io.mockk:mockk:1.12.3'
testImplementation 'io.mockk:mockk-agent-jvm:1.12.3'
testImplementation 'junit:junit:4.13.2'
testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.1'
testImplementation 'org.robolectric:robolectric:4.8.1'
}
1 change: 1 addition & 0 deletions occtax/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@
android:theme="@style/AppTheme.NoActionBar" />
<activity
android:name=".ui.input.InputPagerFragmentActivity"
android:label="@string/activity_input_title"
android:screenOrientation="portrait"
tools:ignore="LockedOrientationActivity" />
<activity
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
package fr.geonature.occtax.features.nomenclature

import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
import fr.geonature.commons.data.GeoNatureModuleName
import fr.geonature.commons.data.dao.NomenclatureDao
import fr.geonature.commons.data.dao.NomenclatureTypeDao
import fr.geonature.occtax.features.nomenclature.data.INomenclatureLocalDataSource
import fr.geonature.occtax.features.nomenclature.data.INomenclatureSettingsLocalDataSource
import fr.geonature.occtax.features.nomenclature.data.IPropertyValueLocalDataSource
import fr.geonature.occtax.features.nomenclature.data.InMemoryPropertyValueLocalDataSourceImpl
import fr.geonature.occtax.features.nomenclature.data.NomenclatureLocalDataSourceImpl
import fr.geonature.occtax.features.nomenclature.data.NomenclatureSettingsLocalDataSourceImpl
import fr.geonature.occtax.features.nomenclature.repository.DefaultPropertyValueRepositoryImpl
import fr.geonature.occtax.features.nomenclature.repository.IDefaultPropertyValueRepository
import fr.geonature.occtax.features.nomenclature.repository.INomenclatureRepository
import fr.geonature.occtax.features.nomenclature.repository.NomenclatureRepositoryImpl
import javax.inject.Singleton

/**
* Nomenclature module.
*
* @author S. Grimault
*/
@Module
@InstallIn(SingletonComponent::class)
object NomenclatureModule {

@Singleton
@Provides
fun provideNomenclatureLocalDataSource(
@GeoNatureModuleName moduleName: String,
nomenclatureTypeDao: NomenclatureTypeDao,
nomenclatureDao: NomenclatureDao
): INomenclatureLocalDataSource {
return NomenclatureLocalDataSourceImpl(
moduleName,
nomenclatureTypeDao,
nomenclatureDao
)
}

@Singleton
@Provides
fun provideNomenclatureSettingsLocalDataSource(): INomenclatureSettingsLocalDataSource {
return NomenclatureSettingsLocalDataSourceImpl()
}

@Singleton
@Provides
fun providePropertyValueLocalDataSource(): IPropertyValueLocalDataSource {
return InMemoryPropertyValueLocalDataSourceImpl()
}

@Singleton
@Provides
fun provideNomenclatureRepository(
nomenclatureLocalDataSource: INomenclatureLocalDataSource,
nomenclatureSettingsLocalDataSource: INomenclatureSettingsLocalDataSource
): INomenclatureRepository {
return NomenclatureRepositoryImpl(
nomenclatureLocalDataSource,
nomenclatureSettingsLocalDataSource
)
}

@Singleton
@Provides
fun provideDefaultPropertyValueRepository(
propertyValueLocalDataSource: IPropertyValueLocalDataSource,
nomenclatureLocalDataSource: INomenclatureLocalDataSource,
): IDefaultPropertyValueRepository {
return DefaultPropertyValueRepositoryImpl(
propertyValueLocalDataSource,
nomenclatureLocalDataSource
)
}
}
Loading

0 comments on commit 6054018

Please sign in to comment.