Settings¶
La configuración se descarga en cada sincronización de metadatos. Hay diferentes tipos de configuraciones:
d2.settingModule()
- System settings: system-wide properties such as
flagorkeyCustomColorMobile(note:stylehas been deprecated in favour ofkeyCustomColorMobile). - Configuración de usuario: configuración específica de usuario como
keyDbLocaleokeyUiLocale. - Aplicación Configuraciones: estas configuraciones ofrecen un control adicional sobre el comportamiento de la aplicación. Más sobre esto en la siguiente sección.
Aplicación Configuraciones¶
La instancia de DHIS2 podría incluir una aplicación web llamada "Configuración de Android" que permite tener control remoto sobre ciertos parámetros de la aplicación. La instalación y configuración de esta aplicación es opcional.
Este SDK descarga esta configuración en cada sincronización de metadatos y la mantiene en la base de datos. Algunos de estos parámetros son consumidos automáticamente por el SDK (están marcados en negrita a continuación), aunque la mayoría de ellos pueden ser anulados por la aplicación.
Configuración general¶
d2.settingModule().generalSetting()
Proporciona información adicional sobre la aplicación configuración:
- Encriptar base de datos: encriptar o no la base de datos local.
- Valores reservados: número de valores de atributo para reservar. Podría ser anulado por la aplicación.
- Bypass DHIS2 version: if true, the SDK will try to connect to the instance no matter the DHIS2 version installed.
- Configuración móvil: número de gateway, número de remitente del resultado. Deben ser consumidos por la aplicación y utilizados para configurar el módulo SMS en el SDK.
- Configuración de Matomo: si tiene su propia instancia de Matomo, puede exponer esta información a la aplicación para configurar su cliente Matomo.
- AllowScreenCapture: parámetro para determinar si la aplicación debe permitir la captura de pantalla o no.
- MessageOfTheDay: a message to show to the users.
- ExperimentalFeatures: list of experimental features enabled.
Configuración de sincronización¶
d2.settingModule().synchronizationSettings()
Ofrece parámetros adicionales para controlar la sincronización de metadatos/datos
- MetadataSync, DataSync: estos dos parámetros definen la periodicidad de la sincronización de metadatos/datos. Deben ser utilizados por la aplicación para crear trabajos programados.
- TrackerImporterVersion: version of the tracker importer: V1 refers to the legacy tracker importer (
/api/trackedEntityInstancesendpoint); V2 refers to the importer introduced in 2.37 (/api/trackerendpoint). - ProgramSettings: esta sección controla los parámetros de sincronización de datos del programa. Tiene una sección para definir los parámetros globales o por defecto a utilizar en la sincronización de todos los programas. Además, permite establecer configuraciones específicas para programas particulares. Todos estos parámetros son consumidos por el SDK y utilizados en el proceso de sincronización.
- DataSetsSettings: esta sección controla los parámetros de sincronización de datos agregados. Tiene una sección para definir los parámetros globales o predeterminados que se utilizarán en la sincronización de todos los Set de datos. Además, permite establecer configuraciones específicas para Set de datos particulares. Todos estos parámetros son consumidos por el SDK y utilizados en el proceso de sincronización.
Configuración de apariencia¶
d2.settingModule().appearanceSettings()
These settings give control over the appearance of the data entry form.
- FilterSorting: define los filtros que se deben habilitar en los diferentes menús de la aplicación.
- ProgramConfiguration: it defines two properties for programs.
- CompletionSpinner: show/hide the completion spinner.
- OptionalSearch: it defines if searching is mandatory or not before creating data.
- DisableReferrals: whether referrals must be enabled or not for this program.
- DisableCollapsibleSections: whether the sections must be collapsible or not for this program.
- ItemHeader: it defines the element (programIndicator) to be used to generate a header for the TEI. This property is automatically consumed by the SDK when using the
TrackedEntitySearchCollectionRepository. - MinimumLocationAccuracy: it determines the precision when capturing coordinates.
- DisableManualLocation: whether the coordinates can be captured manually.
Most of the settings refer to visual components so they are usually consumed by the app.
Configuración de analíticas¶
d2.settingModule().analyticsSetting()
d2.settingModule().analyticsSetting().teis()
d2.settingModule().analyticsSetting().dhisVisualizations()
La configuración de analíticas define los elementos analíticos (gráficos, tablas, ...) que deben mostrarse al usuario.
- colección teis: definen elementos analíticos referidos al contexto de un único TEI. Estos elementos deben mostrarse en un tablero de TEI.
- dhisVisualizaciones: están organizadas en tres secciones (inicio, programa, set de datos) y cada sección está compuesta por una lista de grupos. Cada grupo contiene una lista de visualizaciones. Sobre las secciones:
- home: those visualizations that must be displayed in the home screen.
- program: map of objects with the key being a programId. These visualizations are intended to be displayed in the context of a particular program.
- dataSet: map of objects with the key being a dataSetId. These visualizations are intended to be displayed in the context of a particular dataSet.
Esta configuración se refiere a componentes visuales, por lo que la aplicación debe consumirlos.
Custom intents¶
d2.settingModule().customIntents()
d2.settingModule().customIntentService()
Custom intents allow the Android Settings app to configure external integrations that can be triggered from within the app. These intents are downloaded during metadata synchronization and can be used to launch external applications or services with context-specific data.
Each custom intent configuration includes: - Trigger: Defines when and where the intent should be available (e.g., in TEI dashboard, enrollment, event, dataSet). - Action: The type of action to perform (e.g., launch activity, send broadcast). - Package name: The target application package. - Request: Configuration for data to send to the external app, with key-value arguments that can use expression-based values. - Response: Configuration for data to receive back from the external app.
The SDK provides a CustomIntentService to evaluate request parameters based on the current context:
// Get custom intents
List<CustomIntent> intents = d2.settingModule().customIntents()
.blockingGet();
// Evaluate parameters for a specific context (optionally with orgunit)
CustomIntentContext context = new CustomIntentContext("orgunitUid");
Map<String, Object> params = d2.settingModule().customIntentService()
.blockingEvaluateRequestParams(customIntent, context);