Settings¶
Nastavení se stáhne při každé synchronizaci metadat. Existují různé druhy nastavení:
d2.settingModule()
- System settings: system-wide properties such as
flagorkeyCustomColorMobile(note:stylehas been deprecated in favour ofkeyCustomColorMobile). - Uživatelská nastavení: uživatelská nastavení, například
keyDbLocalenebokeyUiLocale. - Aplikace Nastavení: tato nastavení nabízejí další kontrolu nad chováním aplikace. Více o tom v následující části.
Aplikace Nastavení¶
Instance DHIS2 může zahrnovat webovou aplikaci nazvanou „Nastavení systému Android“, která umožňuje dálkové ovládání určitých parametrů v aplikaci. Instalace a konfigurace této aplikace je volitelná.
Tato sada SDK stáhne tuto konfiguraci při každé synchronizaci metadat a uchová ji v databázi. Některé z těchto parametrů jsou automaticky spotřebovávány sadou SDK (jsou níže označeny tučně), i když většinu z nich může aplikace přepsat.
Obecná nastavení¶
d2.settingModule().generalSetting()
Poskytuje další informace o nastavení aplikace:
- Šifrovat databázi: zda má nebo nemá být šifrována místní databáze.
- Rezervované hodnoty: počet hodnot atributů k rezervaci. Může být přepsán aplikací.
- Bypass DHIS2 version: if true, the SDK will try to connect to the instance no matter the DHIS2 version installed.
- Mobilní konfigurace: číslo brány, číslo odesílatele výsledku. Musí být spotřebovány aplikací a použity ke konfiguraci modulu SMS v SDK.
- Konfigurace Matomo: pokud máte vlastní instanci Matomo, můžete tyto informace vystavit aplikaci, abyste mohli nakonfigurovat jejího klienta Matomo.
- AllowScreenCapture: parametr určující, zda má aplikace povolit snímání obrazovky nebo ne.
- MessageOfTheDay: zpráva, která se zobrazí uživatelům.
- ExperimentalFeatures: list of experimental features enabled.
Nastavení synchronizace¶
d2.settingModule().synchronizationSettings()
If nabízí další parametry pro řízení synchronizace metadat/dat.
- MetadataSync, DataSync: tyto dva parametry definují periodicitu synchronizace metadat/dat. Musí je používat aplikace k vytváření naplánovaných úloh.
- 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). - Nastavení programu: tato sekce ovládá parametry synchronizace dat programu. Má sekci pro definování globálních nebo výchozích parametrů, které se mají použít při synchronizaci všech programů. Navíc umožňuje nastavit specifická nastavení pro konkrétní programy. Všechny tyto parametry spotřebovává SDK a používá je v procesu synchronizace.
- DataSetsSettings: tato sekce řídí parametry synchronizace agregovaných dat. Má sekci pro definování globálních nebo výchozích parametrů, které se mají použít při synchronizaci všech datových sad. Navíc umožňuje nastavit specifické nastavení pro jednotlivé datové sady. Všechny tyto parametry spotřebovává SDK a používá je v procesu synchronizace.
Nastavení vzhledu¶
d2.settingModule().appearanceSettings()
These settings give control over the appearance of the data entry form.
- FilterSorting: definuje filtry, které musí být povoleny v různých nabídkách aplikace.
- ProgramConfiguration: definuje dvě vlastnosti pro programy.
- CompletionSpinner: zobrazení/skrytí číselníku dokončení.
- OptionalSearch: definuje, zda je vyhledávání povinné nebo ne před vytvořením dat.
- 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.
Analytická nastavení¶
d2.settingModule().analyticsSetting()
d2.settingModule().analyticsSetting().teis()
d2.settingModule().analyticsSetting().dhisVisualizations()
Nastavení Analytiky definují analytické prvky (grafy, tabulky,...), které musí být zobrazeny uživateli.
- sbírka teis: definují analytické prvky odkazované na kontext jednoho TEI. Tyto prvky jsou určeny k zobrazení na ovládacím panelu TEI.
- dhisVisualizations: jsou organizovány do tří sekcí (domov, program, dataSet) a každá sekce se skládá ze seznamu skupin. Každá skupina obsahuje seznam vizualizací. O sekcích:
- 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.
Tato nastavení se vztahují k vizuálním komponentám, takže je musí aplikace využívat.
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);