move SetupWizard

This commit is contained in:
Milos Kozak 2022-11-21 16:48:45 +01:00
parent 0d960c2b44
commit 7725812e4a
86 changed files with 549 additions and 418 deletions

View file

@ -196,6 +196,7 @@ dependencies {
implementation project(':plugins:automation') implementation project(':plugins:automation')
implementation project(':plugins:main') implementation project(':plugins:main')
implementation project(':plugins:openhumans') implementation project(':plugins:openhumans')
implementation project(':plugins:configuration')
implementation project(':implementation') implementation project(':implementation')
implementation project(':database:entities') implementation project(':database:entities')
implementation project(':database:impl') implementation project(':database:impl')

View file

@ -176,13 +176,6 @@
<service android:name=".plugins.general.persistentNotification.DummyService" /> <service android:name=".plugins.general.persistentNotification.DummyService" />
<activity
android:name=".setupwizard.SetupWizardActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:exported="false"
android:label="@string/title_activity_setup_wizard"
android:theme="@style/AppTheme" />
<activity <activity
android:name=".activities.SingleFragmentActivity" android:name=".activities.SingleFragmentActivity"
android:exported="false" android:exported="false"

View file

@ -37,10 +37,10 @@ import info.nightscout.androidaps.activities.SingleFragmentActivity
import info.nightscout.androidaps.databinding.ActivityMainBinding import info.nightscout.androidaps.databinding.ActivityMainBinding
import info.nightscout.androidaps.logging.UserEntryLogger import info.nightscout.androidaps.logging.UserEntryLogger
import info.nightscout.androidaps.plugins.constraints.versionChecker.VersionCheckerUtils import info.nightscout.androidaps.plugins.constraints.versionChecker.VersionCheckerUtils
import info.nightscout.androidaps.setupwizard.SetupWizardActivity
import info.nightscout.androidaps.utils.extensions.isRunningRealPumpTest import info.nightscout.androidaps.utils.extensions.isRunningRealPumpTest
import info.nightscout.androidaps.utils.protection.PasswordCheck import info.nightscout.androidaps.utils.protection.PasswordCheck
import info.nightscout.androidaps.utils.protection.ProtectionCheck import info.nightscout.androidaps.utils.protection.ProtectionCheck
import info.nightscout.configuration.setupwizard.SetupWizardActivity
import info.nightscout.core.fabric.FabricPrivacy import info.nightscout.core.fabric.FabricPrivacy
import info.nightscout.core.ui.UIRunnable import info.nightscout.core.ui.UIRunnable
import info.nightscout.core.ui.dialogs.OKDialog import info.nightscout.core.ui.dialogs.OKDialog

View file

@ -8,7 +8,6 @@ import info.nightscout.androidaps.activities.PreferencesActivity
import info.nightscout.androidaps.activities.SingleFragmentActivity import info.nightscout.androidaps.activities.SingleFragmentActivity
import info.nightscout.androidaps.plugins.general.maintenance.activities.LogSettingActivity import info.nightscout.androidaps.plugins.general.maintenance.activities.LogSettingActivity
import info.nightscout.androidaps.plugins.general.overview.activities.QuickWizardListActivity import info.nightscout.androidaps.plugins.general.overview.activities.QuickWizardListActivity
import info.nightscout.androidaps.setupwizard.SetupWizardActivity
@Module @Module
@Suppress("unused") @Suppress("unused")
@ -19,7 +18,6 @@ abstract class ActivitiesModule {
@ContributesAndroidInjector abstract fun contributeMainActivity(): MainActivity @ContributesAndroidInjector abstract fun contributeMainActivity(): MainActivity
@ContributesAndroidInjector abstract fun contributesPreferencesActivity(): PreferencesActivity @ContributesAndroidInjector abstract fun contributesPreferencesActivity(): PreferencesActivity
@ContributesAndroidInjector abstract fun contributesQuickWizardListActivity(): QuickWizardListActivity @ContributesAndroidInjector abstract fun contributesQuickWizardListActivity(): QuickWizardListActivity
@ContributesAndroidInjector abstract fun contributesSetupWizardActivity(): SetupWizardActivity
@ContributesAndroidInjector abstract fun contributesSingleFragmentActivity(): SingleFragmentActivity @ContributesAndroidInjector abstract fun contributesSingleFragmentActivity(): SingleFragmentActivity
} }

View file

@ -21,6 +21,7 @@ import info.nightscout.androidaps.plugins.pump.medtronic.di.MedtronicModule
import info.nightscout.androidaps.plugins.pump.omnipod.dash.di.OmnipodDashModule import info.nightscout.androidaps.plugins.pump.omnipod.dash.di.OmnipodDashModule
import info.nightscout.androidaps.plugins.pump.omnipod.eros.di.OmnipodErosModule import info.nightscout.androidaps.plugins.pump.omnipod.eros.di.OmnipodErosModule
import info.nightscout.automation.di.AutomationModule import info.nightscout.automation.di.AutomationModule
import info.nightscout.configuration.di.ConfigurationModule
import info.nightscout.core.di.CoreModule import info.nightscout.core.di.CoreModule
import info.nightscout.database.impl.DatabaseModule import info.nightscout.database.impl.DatabaseModule
import info.nightscout.implementation.di.ImplementationModule import info.nightscout.implementation.di.ImplementationModule
@ -42,22 +43,22 @@ import javax.inject.Singleton
FragmentsModule::class, FragmentsModule::class,
ReceiversModule::class, ReceiversModule::class,
ServicesModule::class, ServicesModule::class,
WizardModule::class,
ApsModule::class,
WorkflowModule::class, WorkflowModule::class,
OverviewModule::class, OverviewModule::class,
WorkersModule::class, WorkersModule::class,
// Gradle modules // Gradle modules
AutomationModule::class, AutomationModule::class,
ApsModule::class,
ConfigurationModule::class,
CoreModule::class, CoreModule::class,
DatabaseModule::class, DatabaseModule::class,
ImplementationModule::class, ImplementationModule::class,
OpenHumansModule::class,
PluginsModule::class, PluginsModule::class,
RxModule::class, RxModule::class,
SharedModule::class, SharedModule::class,
SharedImplModule::class, SharedImplModule::class,
OpenHumansModule::class,
UiModule::class, UiModule::class,
// pumps // pumps

View file

@ -8,6 +8,7 @@ import androidx.annotation.StringRes
import androidx.fragment.app.FragmentManager import androidx.fragment.app.FragmentManager
import info.nightscout.androidaps.MainActivity import info.nightscout.androidaps.MainActivity
import info.nightscout.androidaps.activities.HistoryBrowseActivity import info.nightscout.androidaps.activities.HistoryBrowseActivity
import info.nightscout.androidaps.activities.MyPreferenceFragment
import info.nightscout.androidaps.activities.SingleFragmentActivity import info.nightscout.androidaps.activities.SingleFragmentActivity
import info.nightscout.androidaps.services.AlarmSoundService import info.nightscout.androidaps.services.AlarmSoundService
import info.nightscout.interfaces.ui.ActivityNames import info.nightscout.interfaces.ui.ActivityNames
@ -32,6 +33,7 @@ class ActivityNamesImpl @Inject constructor() : ActivityNames {
override val errorHelperActivity: Class<*> = ErrorHelperActivity::class.java override val errorHelperActivity: Class<*> = ErrorHelperActivity::class.java
override val bolusProgressHelperActivity: Class<*> = BolusProgressHelperActivity::class.java override val bolusProgressHelperActivity: Class<*> = BolusProgressHelperActivity::class.java
override val singleFragmentActivity: Class<*> = SingleFragmentActivity::class.java override val singleFragmentActivity: Class<*> = SingleFragmentActivity::class.java
override val myPreferenceFragment: Class<*> = MyPreferenceFragment::class.java
override fun runAlarm(ctx: Context, status: String, title: String, @RawRes soundId: Int) { override fun runAlarm(ctx: Context, status: String, title: String, @RawRes soundId: Int) {
val i = Intent(ctx, errorHelperActivity) val i = Intent(ctx, errorHelperActivity)

View file

@ -190,7 +190,7 @@ class ConfigBuilderPlugin @Inject constructor(
logPluginStatus() logPluginStatus()
} }
fun processOnEnabledCategoryChanged(changedPlugin: PluginBase, type: PluginType) { override fun processOnEnabledCategoryChanged(changedPlugin: PluginBase, type: PluginType) {
var pluginsInCategory: ArrayList<PluginBase>? = null var pluginsInCategory: ArrayList<PluginBase>? = null
when (type) { when (type) {
PluginType.INSULIN -> pluginsInCategory = activePlugin.getSpecificPluginsListByInterface(Insulin::class.java) PluginType.INSULIN -> pluginsInCategory = activePlugin.getSpecificPluginsListByInterface(Insulin::class.java)

View file

@ -46,7 +46,7 @@ class PluginStore @Inject constructor(
throw IllegalStateException("Default plugin not found") throw IllegalStateException("Default plugin not found")
} }
fun getSpecificPluginsList(type: PluginType): ArrayList<PluginBase> { override fun getSpecificPluginsList(type: PluginType): ArrayList<PluginBase> {
val newList = ArrayList<PluginBase>() val newList = ArrayList<PluginBase>()
for (p in plugins) { for (p in plugins) {
if (p.getType() == type) newList.add(p) if (p.getType() == type) newList.add(p)

View file

@ -1,12 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M16.495,12.092l-4.921,-4.92l-1.444,1.444l2.468,2.467l-9.765,0l0,2.042l9.765,0l-2.468,2.467l1.444,1.444l4.921,-4.92l-0.012,-0.012z"
android:fillColor="?attr/defaultTextColor"/>
<path
android:pathData="M18.682,2.975H5.152c-1.272,0 -2.307,1.035 -2.307,2.307v3.801h2.126V5.282c0,-0.1 0.081,-0.181 0.181,-0.181h13.53c0.1,0 0.181,0.081 0.181,0.181v13.436c0,0.1 -0.081,0.181 -0.181,0.181H5.152c-0.1,0 -0.181,-0.081 -0.181,-0.181v-3.593H2.845v3.593c0,1.272 1.035,2.307 2.307,2.307h13.53c1.272,0 2.308,-1.034 2.308,-2.307V5.282C20.989,4.01 19.954,2.975 18.682,2.975z"
android:fillColor="?attr/defaultTextColor"/>
</vector>

View file

@ -1,15 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string-array name="unitsArray">
<item>mg/dL</item>
<item>mmol/L</item>
</string-array>
<string-array name="unitsValues" translatable="false">
<item>mg/dl</item>
<item>mmol</item>
</string-array>
<string-array name="languagesArray"> <string-array name="languagesArray">
<item>@string/default_lang</item> <item>@string/default_lang</item>
<item>@string/en_lang</item> <item>@string/en_lang</item>

View file

@ -28,7 +28,6 @@
<string name="es_lang" translatable="false">Spanish</string> <string name="es_lang" translatable="false">Spanish</string>
<string name="sv_lang" translatable="false">Swedish</string> <string name="sv_lang" translatable="false">Swedish</string>
<string name="tr_lang" translatable="false">Turkish</string> <string name="tr_lang" translatable="false">Turkish</string>
<string name="key_email_for_crash_report" translatable="false">email_for_crash_report</string>
<string name="key_smscommunicator_settings" translatable="false">smscommunicator</string> <string name="key_smscommunicator_settings" translatable="false">smscommunicator</string>
<string name="key_protection_settings" translatable="false">protection</string> <string name="key_protection_settings" translatable="false">protection</string>
<string name="key_absorption_category_settings" translatable="false">absorption_category_settings</string> <string name="key_absorption_category_settings" translatable="false">absorption_category_settings</string>
@ -51,23 +50,8 @@
<string name="configbuilder">Config Builder</string> <string name="configbuilder">Config Builder</string>
<string name="overview">Overview</string> <string name="overview">Overview</string>
<string name="treatments">Treatments</string> <string name="treatments">Treatments</string>
<string name="configbuilder_pump">Pump</string>
<string name="configbuilder_pump_description">Which pump would you like to use with AAPS?</string>
<string name="configbuilder_profile">Profile</string>
<string name="configbuilder_profile_description">Which profile should AAPS use?</string>
<string name="configbuilder_aps">APS</string>
<string name="configbuilder_aps_description">Which APS algorithm should make therapy adjustments?</string>
<string name="configbuilder_general">General</string>
<string name="configbuilder_general_description">These are some general plugins you might find useful.</string>
<string name="configbuilder_sync">Synchronization</string>
<string name="configbuilder_sync_description">Data upload and synchronization plugins.</string>
<string name="configbuilder_constraints_description">Which constraints are applied?</string>
<string name="configbuilder_loop">Loop</string>
<string name="configbuilder_loop_description">Use this to activate AAPS\' loop integration.</string>
<string name="constraints_violation">Constraints violation</string> <string name="constraints_violation">Constraints violation</string>
<string name="changeyourinput">Change your input!</string> <string name="changeyourinput">Change your input!</string>
<string name="configbuilder_bgsource">BG Source</string>
<string name="configbuilder_bgsource_description">Where should AAPS gain it\'s data from?</string>
<string name="profile_label">Profile</string> <string name="profile_label">Profile</string>
<string name="configbuilder_nightscoutversion_label">Nightscout version:</string> <string name="configbuilder_nightscoutversion_label">Nightscout version:</string>
<string name="exported">Preferences exported</string> <string name="exported">Preferences exported</string>
@ -86,9 +70,6 @@
<string name="old_master_password">Old Master Password</string> <string name="old_master_password">Old Master Password</string>
<string name="different_password_used">This file was exported and encrypted with different master password. Provide old master password to decrypt file.</string> <string name="different_password_used">This file was exported and encrypted with different master password. Provide old master password to decrypt file.</string>
<string name="master_password_will_be_replaced">As a result of successful import current master password WILL BE REPLACED with that old master password!</string> <string name="master_password_will_be_replaced">As a result of successful import current master password WILL BE REPLACED with that old master password!</string>
<string name="end_user_license_agreement">End User License Agreement</string>
<string name="end_user_license_agreement_text">MUST NOT BE USED TO MAKE MEDICAL DECISIONS. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.</string>
<string name="end_user_license_agreement_i_understand">I UNDERSTAND AND AGREE</string>
<string name="save">Save</string> <string name="save">Save</string>
<string name="reloadprofile">Reload profile</string> <string name="reloadprofile">Reload profile</string>
<string name="quickwizardsettings">QuickWizard settings</string> <string name="quickwizardsettings">QuickWizard settings</string>
@ -100,7 +81,6 @@
<string name="correctionbous">Corr</string> <string name="correctionbous">Corr</string>
<string name="ns_upload_only">(DANGEROUS TO DISABLE) NS upload only</string> <string name="ns_upload_only">(DANGEROUS TO DISABLE) NS upload only</string>
<string name="ns_upload_only_summary">NS upload only (disabled sync). Not effective on SGV unless a local source like xDrip+ is selected. Not effective on Profiles while NS-Profiles is used.\n!!! WARNING !!! Disabling this option may cause malfunctions and insulin overdose if any of your component (AAPS, NS, xDrip+) is wrong configured. Carefully watch if data displayed by AAPS match the pump state!</string> <string name="ns_upload_only_summary">NS upload only (disabled sync). Not effective on SGV unless a local source like xDrip+ is selected. Not effective on Profiles while NS-Profiles is used.\n!!! WARNING !!! Disabling this option may cause malfunctions and insulin overdose if any of your component (AAPS, NS, xDrip+) is wrong configured. Carefully watch if data displayed by AAPS match the pump state!</string>
<string name="units">Units</string>
<string name="prefs_range_title">Range for Visualization</string> <string name="prefs_range_title">Range for Visualization</string>
<string name="prefs_range_summary">High and low mark for the charts in Overview and Smartwatch</string> <string name="prefs_range_summary">High and low mark for the charts in Overview and Smartwatch</string>
<string name="low_mark">LOW mark</string> <string name="low_mark">LOW mark</string>
@ -117,11 +97,7 @@
<string name="short_tabtitles">Shorten tab titles</string> <string name="short_tabtitles">Shorten tab titles</string>
<string name="wear_settings">Wear settings</string> <string name="wear_settings">Wear settings</string>
<string name="nosuccess">not successful - please check phone</string> <string name="nosuccess">not successful - please check phone</string>
<string name="patient_name">Patient name</string>
<string name="patient_name_summary">Please provide patient name or nickname to differentiate among multiple setups</string>
<string name="key_i_understand" translatable="false">I_understand</string>
<string name="restartingapp">Exiting application to apply settings.</string> <string name="restartingapp">Exiting application to apply settings.</string>
<string name="configbuilder_insulin_description">Which type of insulin are you using?</string>
<string name="enablesuperbolus">Enable superbolus in wizard</string> <string name="enablesuperbolus">Enable superbolus in wizard</string>
<string name="enablesuperbolus_summary">Enable superbolus functionality in wizard. Do not enable until you learn what it really does. IT MAY CAUSE INSULIN OVERDOSE IF USED BLINDLY!</string> <string name="enablesuperbolus_summary">Enable superbolus functionality in wizard. Do not enable until you learn what it really does. IT MAY CAUSE INSULIN OVERDOSE IF USED BLINDLY!</string>
<string name="prediction_shortname">PRED</string> <string name="prediction_shortname">PRED</string>
@ -133,7 +109,6 @@
<string name="devslope_shortname">DEVSLOPE</string> <string name="devslope_shortname">DEVSLOPE</string>
<string name="nav_about">About</string> <string name="nav_about">About</string>
<string name="smscommunicator_missingphonestatepermission">Missing phone state permission</string> <string name="smscommunicator_missingphonestatepermission">Missing phone state permission</string>
<string name="doprofileswitch">Do Profile Switch</string>
<string name="ns_alarm_options">Alarm options</string> <string name="ns_alarm_options">Alarm options</string>
<string name="key_ns_announcements" translatable="false">ns_announcements</string> <string name="key_ns_announcements" translatable="false">ns_announcements</string>
<string name="key_ns_alarms" translatable="false">ns_alarms</string> <string name="key_ns_alarms" translatable="false">ns_alarms</string>
@ -148,8 +123,6 @@
<string name="key_openapsama_autosens_period" translatable="false">openapsama_autosens_period</string> <string name="key_openapsama_autosens_period" translatable="false">openapsama_autosens_period</string>
<string name="openaps">OpenAPS</string> <string name="openaps">OpenAPS</string>
<string name="uploader">Uploader</string> <string name="uploader">Uploader</string>
<string name="configbuilder_sensitivity">Sensitivity detection</string>
<string name="configbuilder_sensitivity_description">Which sensitivity algorithm should be used?</string>
<string name="sensitivity_shortname">SENS</string> <string name="sensitivity_shortname">SENS</string>
<string name="sensitivityoref1">Sensitivity Oref1</string> <string name="sensitivityoref1">Sensitivity Oref1</string>
<string name="sensitivityaaps">Sensitivity AAPS</string> <string name="sensitivityaaps">Sensitivity AAPS</string>
@ -206,9 +179,6 @@
<string name="wear_notifysmb_summary">Show SMB on the watch like a standard bolus.</string> <string name="wear_notifysmb_summary">Show SMB on the watch like a standard bolus.</string>
<string name="wear_predictions_summary">Show the predictions on the watchface.</string> <string name="wear_predictions_summary">Show the predictions on the watchface.</string>
<string name="wear_predictions_title">Predictions</string> <string name="wear_predictions_title">Predictions</string>
<string name="data_choices">Data Choices</string>
<string name="fabric_upload">Fabric Upload</string>
<string name="allow_automated_crash_reporting">Allow automated crash reporting and feature usage data to be sent to the developers via the fabric.io service.</string>
<string name="g5appnotdetected">Please update your Dexcom app to supported version</string> <string name="g5appnotdetected">Please update your Dexcom app to supported version</string>
<string name="dexcom_app_not_installed">Dexcom app is not installed.</string> <string name="dexcom_app_not_installed">Dexcom app is not installed.</string>
<string name="overview_show_activity">Activity</string> <string name="overview_show_activity">Activity</string>
@ -223,11 +193,6 @@
<string name="absorption_cutoff_title">Meal max absorption time [h]</string> <string name="absorption_cutoff_title">Meal max absorption time [h]</string>
<string name="absorption_cutoff_summary">Time at which any meal is considered absorbed. Remaining carbs will be cut off.</string> <string name="absorption_cutoff_summary">Time at which any meal is considered absorbed. Remaining carbs will be cut off.</string>
<string name="overview_show_notes_field_in_dialogs_title">Show notes field in treatment dialogs</string> <string name="overview_show_notes_field_in_dialogs_title">Show notes field in treatment dialogs</string>
<string name="title_activity_setup_wizard" translatable="false">SetupWizardActivity</string>
<string name="next_button">Next</string>
<string name="previous_button">Prev</string>
<string name="nav_setupwizard">Setup Wizard</string>
<string name="setupwizard_finish">FINISH</string>
<string name="firstinsulinincrement">First insulin increment</string> <string name="firstinsulinincrement">First insulin increment</string>
<string name="secondinsulinincrement">Second insulin increment</string> <string name="secondinsulinincrement">Second insulin increment</string>
<string name="thirdinsulinincrement">Third insulin increment</string> <string name="thirdinsulinincrement">Third insulin increment</string>
@ -245,27 +210,12 @@
<string name="wear_wizard_settings_summary">Calculations included in the Wizard result:</string> <string name="wear_wizard_settings_summary">Calculations included in the Wizard result:</string>
<string name="wear_display_settings">Display Settings</string> <string name="wear_display_settings">Display Settings</string>
<string name="wear_general_settings">General Settings</string> <string name="wear_general_settings">General Settings</string>
<string name="welcometosetupwizard">Welcome to setup wizard. It will guide you through the setup process\n</string>
<string name="readstatus">Read status</string>
<string name="exitwizard">Skip setup wizard</string>
<string name="setupwizard_loop_description">Press the button below to enable AAPS to suggest/make basal changes</string>
<string name="key_setupwizard_processed" translatable="false">startupwizard_processed</string>
<string name="setupwizard_sensitivity_description">Sensitivity plugin is used for sensitivity detection and COB calculation. For more info visit:</string>
<string name="setupwizard_sensitivity_url">https://androidaps.readthedocs.io/en/latest/Configuration/Sensitivity-detection-and-COB.html</string>
<string name="syncinfotext">Synchronize data to the cloud. You can skip this part now but you will not be able to pass objectives until you set it up.</string>
<string name="diawarning">Please remember: new insulin profiles require DIA at least 5h. DIA 56h on new profile is equal to DIA 3h on old insulin profiles.</string>
<string name="setupwizard_aps_description">Select one from availables algorithms. They are sorted from oldest to newest. Newer algorithm is usually more powerful and more aggressive. Thus if you are new looper you may probably start with AMA and not with latest one. Do not forget to read the OpenAPS documentation and configure it before use.</string>
<string name="setupwizard_pump_waiting_for_riley_link_connection">Please configure your RileyLink below. After selecting a RileyLink, it will be possible to continue setup once the RileyLink status is \"Connected\". This might take a minute.\n</string>
<string name="setupwizard_pump_pump_not_initialized"><b>Note:</b> You can continue setup once the pump has been set up.\n</string>
<string name="startobjective">Start your first objective</string>
<string name="askforpermission">Ask for permission</string>
<string name="open_navigation">Open navigation</string> <string name="open_navigation">Open navigation</string>
<string name="close_navigation">Close navigation</string> <string name="close_navigation">Close navigation</string>
<string name="nav_plugin_preferences">Plugin preferences</string> <string name="nav_plugin_preferences">Plugin preferences</string>
<string name="key_keep_screen_on" translatable="false">keep_screen_on</string> <string name="key_keep_screen_on" translatable="false">keep_screen_on</string>
<string name="remove_items">Remove items</string> <string name="remove_items">Remove items</string>
<string name="sort_items">Sort items</string> <string name="sort_items">Sort items</string>
<string name="storedsettingsfound">Stored settings found</string>
<string name="allow_hardware_pump_text">Attention: If you activate and connect to a hardware pump, AAPS will copy the basal settings from the profile to the pump, overwriting the existing basal rate stored on the pump. Make sure you have the correct basal setting in AAPS. If you are not sure or don\'t want to overwrite the basal settings on your pump, press cancel and repeat switching to the pump at a later time.</string> <string name="allow_hardware_pump_text">Attention: If you activate and connect to a hardware pump, AAPS will copy the basal settings from the profile to the pump, overwriting the existing basal rate stored on the pump. Make sure you have the correct basal setting in AAPS. If you are not sure or don\'t want to overwrite the basal settings on your pump, press cancel and repeat switching to the pump at a later time.</string>
<string name="error_adding_treatment_title">Treatment data incomplete</string> <string name="error_adding_treatment_title">Treatment data incomplete</string>
<string name="maintenance_settings">Maintenance Settings</string> <string name="maintenance_settings">Maintenance Settings</string>
@ -285,17 +235,13 @@
<string name="miscellaneous">Miscellaneous</string> <string name="miscellaneous">Miscellaneous</string>
<string name="nav_logsettings">Log settings</string> <string name="nav_logsettings">Log settings</string>
<string name="resettodefaults">Reset to defaults</string> <string name="resettodefaults">Reset to defaults</string>
<string name="setupwizard_preferred_aps_mode">Preferred APS mode</string>
<string name="sendlogfiles">Send today\'s log files to developers along with this time. Unexpected situation.</string> <string name="sendlogfiles">Send today\'s log files to developers along with this time. Unexpected situation.</string>
<string name="key_short_tabtitles" translatable="false">short_tabtitles</string> <string name="key_short_tabtitles" translatable="false">short_tabtitles</string>
<string name="profile_total">== ∑ %1$s U</string> <string name="profile_total">== ∑ %1$s U</string>
<string name="deliverpartofboluswizard">Bolus wizard performs calculation but only this part of calculated insulin is delivered. Useful with SMB algorithm.</string> <string name="deliverpartofboluswizard">Bolus wizard performs calculation but only this part of calculated insulin is delivered. Useful with SMB algorithm.</string>
<string name="unitsnosemicolon">Units</string> <string name="unitsnosemicolon">Units</string>
<string name="setupwizard_units_prompt">Select units you want to display values in</string>
<string name="key_wear_detailediob" translatable="false">wear_detailediob</string> <string name="key_wear_detailediob" translatable="false">wear_detailediob</string>
<string name="key_wear_showbgi" translatable="false">wear_showbgi</string> <string name="key_wear_showbgi" translatable="false">wear_showbgi</string>
<string name="low_mark_comment">Lower value of in range area (display only)</string>
<string name="high_mark_comment">Higher value of in range area (display only)</string>
<string name="show_removed">Show removed</string> <string name="show_removed">Show removed</string>
<string name="clearqueueconfirm">Clear queue? All data in queue will be lost!</string> <string name="clearqueueconfirm">Clear queue? All data in queue will be lost!</string>
<string name="key_wear_detailed_delta" translatable="false">wear_detailed_delta</string> <string name="key_wear_detailed_delta" translatable="false">wear_detailed_delta</string>
@ -306,9 +252,6 @@
<string name="key_graphconfig" translatable="false">graphconfig</string> <string name="key_graphconfig" translatable="false">graphconfig</string>
<string name="authorizationfailed">Authorization failed</string> <string name="authorizationfailed">Authorization failed</string>
<string name="overview_show_absinsulin">Absolute insulin</string> <string name="overview_show_absinsulin">Absolute insulin</string>
<string name="master_password_summary">Master password is used for backup encryption and to override security in application. Remember it or store on a safe place.</string>
<string name="current_master_password">Current master password</string>
<string name="setupwizard_pump_riley_link_status">RileyLink status:</string>
<string name="copytolocalprofile_invalid">Unable to create profile. Profile is invalid.</string> <string name="copytolocalprofile_invalid">Unable to create profile. Profile is invalid.</string>
<string name="cta_dont_kill_my_app_info">Don\'t kill my app?</string> <string name="cta_dont_kill_my_app_info">Don\'t kill my app?</string>
<string name="time_to_eat">Time to eat!\nRun Bolus wizard and do calculation again.</string> <string name="time_to_eat">Time to eat!\nRun Bolus wizard and do calculation again.</string>
@ -318,14 +261,9 @@
<string name="graph_menu_divider_header">Graph</string> <string name="graph_menu_divider_header">Graph</string>
<string name="clear_filter">Clear filter</string> <string name="clear_filter">Clear filter</string>
<string name="cannula">Cannula</string> <string name="cannula">Cannula</string>
<string name="common_values">Use values of your largest food you usually eat\n</string>
<string name="summary_email_for_crash_report">This identification will attached to crash reports so we can contact you in urgent cases. It\'s optional.</string>
<string name="email_address">Email address</string> <string name="email_address">Email address</string>
<string name="privacy_settings">Privacy setting</string>
<string name="privacy_summary">You can provide optional email address if you want to be notified about app crashes. This is not an automated service. You will be contacted by developers in dangerous situations.</string>
<string name="data_status">BG data status</string> <string name="data_status">BG data status</string>
<string name="remove_bg_readings">Remove BG readings</string> <string name="remove_bg_readings">Remove BG readings</string>
<string name="identification">Identification (email, FB or Discord nick etc)</string>
<string name="identification_not_set">Identification not set in dev mode</string> <string name="identification_not_set">Identification not set in dev mode</string>
<string name="a11y_dialog">dialog</string> <string name="a11y_dialog">dialog</string>
<string name="not_available_full">Not available</string> <string name="not_available_full">Not available</string>

View file

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="ageArray">
<item>@string/child</item>
<item>@string/teenage</item>
<item>@string/adult</item>
<item>@string/resistant_adult</item>
<item>@string/pregnant</item>
</string-array>
<string-array name="ageValues" translatable="false">
<item>@string/key_child</item>
<item>@string/key_teenage</item>
<item>@string/key_adult</item>
<item>@string/key_resistantadult</item>
<item>@string/key_pregnant</item>
</string-array>
<string-array name="aps_modeArray">
<item>@string/closedloop</item>
<item>@string/openloop</item>
<item>@string/lowglucosesuspend</item>
</string-array>
<string-array name="aps_modeValues" translatable="false">
<item>closed</item>
<item>open</item>
<item>lgs</item>
</string-array>
</resources>

View file

@ -98,6 +98,10 @@
<string name="key_aps_mode" translatable="false">aps_mode</string> <string name="key_aps_mode" translatable="false">aps_mode</string>
<string name="key_boluswizard_percentage" translatable="false">boluswizard_percentage</string> <string name="key_boluswizard_percentage" translatable="false">boluswizard_percentage</string>
<string name="key_usesuperbolus" translatable="false">key_usersuperbolus</string> <string name="key_usesuperbolus" translatable="false">key_usersuperbolus</string>
<string name="key_treatmentssafety_maxbolus" translatable="false">treatmentssafety_maxbolus</string>
<string name="key_patient_name" translatable="false">patient_name</string>
<string name="key_email_for_crash_report" translatable="false">email_for_crash_report</string>
<!-- General--> <!-- General-->
<string name="refresh">Refresh</string> <string name="refresh">Refresh</string>
@ -680,6 +684,18 @@
<string name="wizard_explain_tt_to">%1$s to %2$s</string> <string name="wizard_explain_tt_to">%1$s to %2$s</string>
<string name="wizard_pump_not_available">No pump available!</string> <string name="wizard_pump_not_available">No pump available!</string>
<!-- Preferences-->
<string name="child">Child</string>
<string name="teenage">Teenage</string>
<string name="adult">Adult</string>
<string name="resistant_adult">Insulin resistant adult</string>
<string name="pregnant">Pregnancy</string>
<string name="patient_age_summary">Please select patient type to setup safety limits</string>
<string name="max_bolus_title">Max allowed bolus [U]</string>
<string name="max_carbs_title">Max allowed carbs [g]</string>
<string name="patient_type">Patient type</string>
<plurals name="days"> <plurals name="days">
<item quantity="one">%1$d day</item> <item quantity="one">%1$d day</item>
<item quantity="other">%1$d days</item> <item quantity="other">%1$d days</item>

View file

@ -15,6 +15,8 @@ files:
translation: /plugins/automation/src/main/res/values-%android_code%/strings.xml translation: /plugins/automation/src/main/res/values-%android_code%/strings.xml
- source: /plugins/openhumans/src/main/res/values/strings.xml - source: /plugins/openhumans/src/main/res/values/strings.xml
translation: /plugins/openhumans/src/main/res/values-%android_code%/strings.xml translation: /plugins/openhumans/src/main/res/values-%android_code%/strings.xml
- source: /plugins/configuration/src/main/res/values/strings.xml
translation: /plugins/configuration/src/main/res/values-%android_code%/strings.xml
- source: /core/core-main/src/main/res/values/protection.xml - source: /core/core-main/src/main/res/values/protection.xml
translation: /core/core-main/src/main/res/values-%android_code%/protection.xml translation: /core/core-main/src/main/res/values-%android_code%/protection.xml
- source: /core/core-main/src/main/res/values/validator.xml - source: /core/core-main/src/main/res/values/validator.xml

View file

@ -14,12 +14,11 @@
<string name="basal_value_below_minimum">Basal value below minimum. Profile not set!</string> <string name="basal_value_below_minimum">Basal value below minimum. Profile not set!</string>
<string name="request">Request</string> <string name="request">Request</string>
<string name="permission">Permission</string> <string name="permission">Permission</string>
<string name="need_whitelisting">%1$s needs battery optimization whitelisting for proper performance</string>
<string name="need_system_window_permission">Application needs system window permission for notifications</string>
<string name="need_location_permission">Application needs location permission for BT scan and WiFi identification</string>
<string name="need_storage_permission">Application needs storage permission to be able store log files and export settings</string>
<string name="error_asking_for_permissions">Error asking for permissions</string> <string name="error_asking_for_permissions">Error asking for permissions</string>
<string name="alert_dialog_permission_battery_optimization_failed">This device does not appear to support battery optimization whitelisting - you may experience performance issues.</string> <string name="alert_dialog_permission_battery_optimization_failed">This device does not appear to support battery optimization whitelisting - you may experience performance issues.</string>
<string name="need_whitelisting">%1$s needs battery optimization whitelisting for proper performance</string>
<string name="need_location_permission">Application needs location permission for BT scan and WiFi identification</string>
<string name="need_storage_permission">Application needs storage permission to be able store log files and export settings</string>
<!-- Stats --> <!-- Stats -->
<string name="veryLow" comment="below 3.1">Very low</string> <string name="veryLow" comment="below 3.1">Very low</string>

View file

@ -4,7 +4,13 @@ import info.nightscout.interfaces.plugin.PluginBase
import info.nightscout.interfaces.plugin.PluginType import info.nightscout.interfaces.plugin.PluginType
interface ConfigBuilder { interface ConfigBuilder {
fun initialize() fun initialize()
fun storeSettings(from: String) fun storeSettings(from: String)
fun performPluginSwitch(changedPlugin: PluginBase, enabled: Boolean, type: PluginType) fun performPluginSwitch(changedPlugin: PluginBase, enabled: Boolean, type: PluginType)
/**
* Make sure plugins configuration is valid after enabling/disabling plugin
*/
fun processOnEnabledCategoryChanged(changedPlugin: PluginBase, type: PluginType)
} }

View file

@ -105,4 +105,9 @@ interface ActivePlugin {
* Pre-process all plugin types and validate active plugins (ie. only only one plugin for type is selected) * Pre-process all plugin types and validate active plugins (ie. only only one plugin for type is selected)
*/ */
fun verifySelectionInCategories() fun verifySelectionInCategories()
/**
* List of all plugins of type
*/
fun getSpecificPluginsList(type: PluginType): ArrayList<PluginBase>
} }

View file

@ -17,6 +17,7 @@ interface ActivityNames {
val errorHelperActivity: Class<*> val errorHelperActivity: Class<*>
val bolusProgressHelperActivity: Class<*> val bolusProgressHelperActivity: Class<*>
val singleFragmentActivity: Class<*> val singleFragmentActivity: Class<*>
val myPreferenceFragment: Class<*>
/** /**
* Show ErrorHelperActivity and start alarm * Show ErrorHelperActivity and start alarm

1
plugins/configuration/.gitignore vendored Normal file
View file

@ -0,0 +1 @@
/build

View file

@ -0,0 +1,27 @@
plugins {
id 'com.android.library'
id 'kotlin-android'
id 'kotlin-kapt'
id 'kotlin-allopen'
id 'com.hiya.jacoco-android'
}
apply from: "${project.rootDir}/core/core-main/android_dependencies.gradle"
apply from: "${project.rootDir}/core/core-main/android_module_dependencies.gradle"
apply from: "${project.rootDir}/core/core-main/allopen_dependencies.gradle"
apply from: "${project.rootDir}/core/core-main/test_dependencies.gradle"
apply from: "${project.rootDir}/core/core-main/jacoco_global.gradle"
android {
namespace 'info.nightscout.configuration'
}
dependencies {
implementation project(':interfaces')
implementation project(':app-wear-shared:rx')
implementation project(':app-wear-shared:shared')
implementation project(':database:entities')
implementation project(':core:core-main')
implementation project(':core:fabric')
implementation project(':core:ui')
}

View file

View file

@ -0,0 +1,21 @@
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

View file

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<application>
<activity
android:name=".setupwizard.SetupWizardActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:exported="false"
android:label="@string/title_activity_setup_wizard"
android:theme="@style/AppTheme" />
</application>
</manifest>

View file

@ -0,0 +1,10 @@
package info.nightscout.configuration.di
import dagger.Module
@Module(
includes = [
SetupWizardModule::class
]
)
open class ConfigurationModule

View file

@ -1,28 +1,31 @@
package info.nightscout.androidaps.di package info.nightscout.configuration.di
import dagger.Module import dagger.Module
import dagger.android.ContributesAndroidInjector import dagger.android.ContributesAndroidInjector
import info.nightscout.androidaps.setupwizard.SWEventListener import info.nightscout.configuration.setupwizard.SWEventListener
import info.nightscout.androidaps.setupwizard.SWScreen import info.nightscout.configuration.setupwizard.SWScreen
import info.nightscout.androidaps.setupwizard.elements.SWBreak import info.nightscout.configuration.setupwizard.SetupWizardActivity
import info.nightscout.androidaps.setupwizard.elements.SWButton import info.nightscout.configuration.setupwizard.elements.SWBreak
import info.nightscout.androidaps.setupwizard.elements.SWEditEncryptedPassword import info.nightscout.configuration.setupwizard.elements.SWButton
import info.nightscout.androidaps.setupwizard.elements.SWEditIntNumber import info.nightscout.configuration.setupwizard.elements.SWEditEncryptedPassword
import info.nightscout.androidaps.setupwizard.elements.SWEditNumber import info.nightscout.configuration.setupwizard.elements.SWEditIntNumber
import info.nightscout.androidaps.setupwizard.elements.SWEditNumberWithUnits import info.nightscout.configuration.setupwizard.elements.SWEditNumber
import info.nightscout.androidaps.setupwizard.elements.SWEditString import info.nightscout.configuration.setupwizard.elements.SWEditNumberWithUnits
import info.nightscout.androidaps.setupwizard.elements.SWEditUrl import info.nightscout.configuration.setupwizard.elements.SWEditString
import info.nightscout.androidaps.setupwizard.elements.SWFragment import info.nightscout.configuration.setupwizard.elements.SWEditUrl
import info.nightscout.androidaps.setupwizard.elements.SWHtmlLink import info.nightscout.configuration.setupwizard.elements.SWFragment
import info.nightscout.androidaps.setupwizard.elements.SWInfoText import info.nightscout.configuration.setupwizard.elements.SWHtmlLink
import info.nightscout.androidaps.setupwizard.elements.SWItem import info.nightscout.configuration.setupwizard.elements.SWInfoText
import info.nightscout.androidaps.setupwizard.elements.SWPlugin import info.nightscout.configuration.setupwizard.elements.SWItem
import info.nightscout.androidaps.setupwizard.elements.SWPreference import info.nightscout.configuration.setupwizard.elements.SWPlugin
import info.nightscout.androidaps.setupwizard.elements.SWRadioButton import info.nightscout.configuration.setupwizard.elements.SWPreference
import info.nightscout.configuration.setupwizard.elements.SWRadioButton
@Module @Module
@Suppress("unused") @Suppress("unused")
abstract class WizardModule { abstract class SetupWizardModule {
@ContributesAndroidInjector abstract fun contributesSetupWizardActivity(): SetupWizardActivity
@ContributesAndroidInjector abstract fun swBreakInjector(): SWBreak @ContributesAndroidInjector abstract fun swBreakInjector(): SWBreak
@ContributesAndroidInjector abstract fun swButtonInjector(): SWButton @ContributesAndroidInjector abstract fun swButtonInjector(): SWButton

View file

@ -1,4 +1,4 @@
package info.nightscout.androidaps.setupwizard package info.nightscout.configuration.setupwizard
import android.Manifest import android.Manifest
import android.content.Context import android.content.Context
@ -7,23 +7,23 @@ import android.net.Uri
import android.provider.Settings import android.provider.Settings
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import dagger.android.HasAndroidInjector import dagger.android.HasAndroidInjector
import info.nightscout.androidaps.R
import info.nightscout.androidaps.data.ProfileSealed import info.nightscout.androidaps.data.ProfileSealed
import info.nightscout.androidaps.setupwizard.elements.SWBreak
import info.nightscout.androidaps.setupwizard.elements.SWButton
import info.nightscout.androidaps.setupwizard.elements.SWEditEncryptedPassword
import info.nightscout.androidaps.setupwizard.elements.SWEditIntNumber
import info.nightscout.androidaps.setupwizard.elements.SWEditNumber
import info.nightscout.androidaps.setupwizard.elements.SWEditNumberWithUnits
import info.nightscout.androidaps.setupwizard.elements.SWEditString
import info.nightscout.androidaps.setupwizard.elements.SWFragment
import info.nightscout.androidaps.setupwizard.elements.SWHtmlLink
import info.nightscout.androidaps.setupwizard.elements.SWInfoText
import info.nightscout.androidaps.setupwizard.elements.SWPlugin
import info.nightscout.androidaps.setupwizard.elements.SWPreference
import info.nightscout.androidaps.setupwizard.elements.SWRadioButton
import info.nightscout.androidaps.utils.CryptoUtil import info.nightscout.androidaps.utils.CryptoUtil
import info.nightscout.androidaps.utils.extensions.isRunningTest import info.nightscout.androidaps.utils.extensions.isRunningTest
import info.nightscout.configuration.R
import info.nightscout.configuration.setupwizard.elements.SWBreak
import info.nightscout.configuration.setupwizard.elements.SWButton
import info.nightscout.configuration.setupwizard.elements.SWEditEncryptedPassword
import info.nightscout.configuration.setupwizard.elements.SWEditIntNumber
import info.nightscout.configuration.setupwizard.elements.SWEditNumber
import info.nightscout.configuration.setupwizard.elements.SWEditNumberWithUnits
import info.nightscout.configuration.setupwizard.elements.SWEditString
import info.nightscout.configuration.setupwizard.elements.SWFragment
import info.nightscout.configuration.setupwizard.elements.SWHtmlLink
import info.nightscout.configuration.setupwizard.elements.SWInfoText
import info.nightscout.configuration.setupwizard.elements.SWPlugin
import info.nightscout.configuration.setupwizard.elements.SWPreference
import info.nightscout.configuration.setupwizard.elements.SWRadioButton
import info.nightscout.interfaces.AndroidPermission import info.nightscout.interfaces.AndroidPermission
import info.nightscout.interfaces.Config import info.nightscout.interfaces.Config
import info.nightscout.interfaces.ConfigBuilder import info.nightscout.interfaces.ConfigBuilder
@ -99,47 +99,51 @@ class SWDefinition @Inject constructor(
.label(R.string.end_user_license_agreement_text) .label(R.string.end_user_license_agreement_text)
) )
.add(SWBreak(injector)) .add(SWBreak(injector))
.add(SWButton(injector) .add(
.text(R.string.end_user_license_agreement_i_understand) SWButton(injector)
.visibility { !sp.getBoolean(R.string.key_i_understand, false) } .text(R.string.end_user_license_agreement_i_understand)
.action { .visibility { !sp.getBoolean(R.string.key_i_understand, false) }
sp.putBoolean(R.string.key_i_understand, true) .action {
rxBus.send(EventSWUpdate(false)) sp.putBoolean(R.string.key_i_understand, true)
}) rxBus.send(EventSWUpdate(false))
})
.visibility { !sp.getBoolean(R.string.key_i_understand, false) } .visibility { !sp.getBoolean(R.string.key_i_understand, false) }
.validator { sp.getBoolean(R.string.key_i_understand, false) } .validator { sp.getBoolean(R.string.key_i_understand, false) }
private val screenUnits get() = SWScreen(injector, R.string.units) private val screenUnits
.skippable(false) get() = SWScreen(injector, R.string.units)
.add( .skippable(false)
SWRadioButton(injector) .add(
.option(R.array.unitsArray, R.array.unitsValues) SWRadioButton(injector)
.preferenceId(R.string.key_units).label(R.string.units) .option(R.array.unitsArray, R.array.unitsValues)
.comment(R.string.setupwizard_units_prompt) .preferenceId(R.string.key_units).label(R.string.units)
) .comment(R.string.setupwizard_units_prompt)
.validator { sp.contains(R.string.key_units) } )
.validator { sp.contains(R.string.key_units) }
private val displaySettings get() = SWScreen(injector, R.string.wear_display_settings) private val displaySettings
.skippable(false) get() = SWScreen(injector, R.string.display_settings)
.add( .skippable(false)
SWEditNumberWithUnits(injector, Constants.LOW_MARK * Constants.MGDL_TO_MMOLL, 3.0, 8.0) .add(
.preferenceId(R.string.key_low_mark) SWEditNumberWithUnits(injector, Constants.LOW_MARK * Constants.MGDL_TO_MMOLL, 3.0, 8.0)
.updateDelay(5) .preferenceId(R.string.key_low_mark)
.label(R.string.low_mark) .updateDelay(5)
.comment(R.string.low_mark_comment) .label(R.string.low_mark)
) .comment(R.string.low_mark_comment)
.add(SWBreak(injector)) )
.add( .add(SWBreak(injector))
SWEditNumberWithUnits(injector, Constants.HIGH_MARK * Constants.MGDL_TO_MMOLL, 5.0, 20.0) .add(
.preferenceId(R.string.key_high_mark) SWEditNumberWithUnits(injector, Constants.HIGH_MARK * Constants.MGDL_TO_MMOLL, 5.0, 20.0)
.updateDelay(5) .preferenceId(R.string.key_high_mark)
.label(R.string.high_mark) .updateDelay(5)
.comment(R.string.high_mark_comment) .label(R.string.high_mark)
) .comment(R.string.high_mark_comment)
)
private val screenPermissionWindow get() = SWScreen(injector, R.string.permission) private val screenPermissionWindow
.skippable(false) get() = SWScreen(injector, R.string.permission)
.add( .skippable(false)
.add(
SWInfoText(injector) SWInfoText(injector)
.label(rh.gs(R.string.need_system_window_permission)) .label(rh.gs(R.string.need_system_window_permission))
) )
@ -155,7 +159,7 @@ class SWDefinition @Inject constructor(
.skippable(false) .skippable(false)
.add( .add(
SWInfoText(injector) SWInfoText(injector)
.label(rh.gs(R.string.need_whitelisting, rh.gs(R.string.app_name))) .label(rh.gs(R.string.need_whitelisting, rh.gs(config.appName)))
) )
.add(SWBreak(injector)) .add(SWBreak(injector))
.add(SWButton(injector) .add(SWButton(injector)
@ -265,29 +269,29 @@ class SWDefinition @Inject constructor(
) )
.validator { !cryptoUtil.checkPassword("", sp.getString(R.string.key_master_password, "")) } .validator { !cryptoUtil.checkPassword("", sp.getString(R.string.key_master_password, "")) }
private val screenAge get() = SWScreen(injector, R.string.patientage) private val screenAge get() = SWScreen(injector, R.string.patient_type)
.skippable(false) .skippable(false)
.add(SWBreak(injector)) .add(SWBreak(injector))
.add( .add(
SWRadioButton(injector) SWRadioButton(injector)
.option(R.array.ageArray, R.array.ageValues) .option(R.array.ageArray, R.array.ageValues)
.preferenceId(R.string.key_age) .preferenceId(R.string.key_age)
.label(R.string.patientage) .label(R.string.patient_type)
.comment(R.string.patientage_summary) .comment(R.string.patient_age_summary)
) )
.add(SWBreak(injector)) .add(SWBreak(injector))
.add( .add(
SWEditNumber(injector, 3.0, 0.1, 25.0) SWEditNumber(injector, 3.0, 0.1, 25.0)
.preferenceId(R.string.key_treatmentssafety_maxbolus) .preferenceId(R.string.key_treatmentssafety_maxbolus)
.updateDelay(5) .updateDelay(5)
.label(R.string.treatmentssafety_maxbolus_title) .label(R.string.max_bolus_title)
.comment(R.string.common_values) .comment(R.string.common_values)
) )
.add( .add(
SWEditIntNumber(injector, 48, 1, 100) SWEditIntNumber(injector, 48, 1, 100)
.preferenceId(R.string.key_treatmentssafety_maxcarbs) .preferenceId(R.string.key_treatmentssafety_maxcarbs)
.updateDelay(5) .updateDelay(5)
.label(R.string.treatmentssafety_maxcarbs_title) .label(R.string.max_carbs_title)
.comment(R.string.common_values) .comment(R.string.common_values)
) )
.validator { .validator {
@ -310,29 +314,38 @@ class SWDefinition @Inject constructor(
.label(R.string.diawarning) .label(R.string.diawarning)
) )
private val screenBgSource get() = SWScreen(injector, R.string.configbuilder_bgsource) private val screenBgSource
.skippable(false) get() = SWScreen(injector, R.string.configbuilder_bgsource)
.add( .skippable(false)
SWPlugin(injector, this) .add(
.option(PluginType.BGSOURCE, R.string.configbuilder_bgsource_description) SWPlugin(injector, this)
.label(R.string.configbuilder_bgsource) .option(PluginType.BGSOURCE, R.string.configbuilder_bgsource_description)
) .label(R.string.configbuilder_bgsource)
.add(SWBreak(injector)) )
.add(SWBreak(injector))
private val screenLocalProfile get() = SWScreen(injector, R.string.localprofile) private val screenLocalProfile
.skippable(false) get() = SWScreen(injector, R.string.profile)
.add( .skippable(false)
SWFragment(injector, this) .add(
.add(activity.supportFragmentManager.fragmentFactory.instantiate(ClassLoader.getSystemClassLoader(), (activePlugin.activeProfileSource as PluginBase).pluginDescription.fragmentClass!!)) SWFragment(injector, this)
.add(
activity.supportFragmentManager.fragmentFactory.instantiate(
ClassLoader.getSystemClassLoader(),
(activePlugin.activeProfileSource as PluginBase).pluginDescription.fragmentClass!!
)
)
//.add(ProfileFragment()) //.add(ProfileFragment())
) )
.validator { .validator {
activePlugin.activeProfileSource.profile?.getDefaultProfile()?.let { ProfileSealed.Pure(it).isValid("StartupWizard", activePlugin.activePump, config, rh, rxBus, hardLimits, false).isValid } activePlugin.activeProfileSource.profile?.getDefaultProfile()
?: false ?.let { ProfileSealed.Pure(it).isValid("StartupWizard", activePlugin.activePump, config, rh, rxBus, hardLimits, false).isValid }
} ?: false
.visibility { (activePlugin.activeProfileSource as PluginBase).isEnabled() } }
.visibility { (activePlugin.activeProfileSource as PluginBase).isEnabled() }
private val screenProfileSwitch get() = SWScreen(injector, R.string.careportal_profileswitch) private val screenProfileSwitch
get() = SWScreen(injector, R.string.careportal_profileswitch)
.skippable(false) .skippable(false)
.add( .add(
SWInfoText(injector) SWInfoText(injector)
@ -404,7 +417,7 @@ class SWDefinition @Inject constructor(
.add(SWBreak(injector)) .add(SWBreak(injector))
.add( .add(
SWHtmlLink(injector) SWHtmlLink(injector)
.label("https://openaps.readthedocs.io/en/latest/") .label("https://wiki.aaps.app")
) )
.add(SWBreak(injector)) .add(SWBreak(injector))

View file

@ -1,4 +1,4 @@
package info.nightscout.androidaps.setupwizard package info.nightscout.configuration.setupwizard
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.Context import android.content.Context
@ -6,7 +6,7 @@ import android.view.View
import android.widget.LinearLayout import android.widget.LinearLayout
import android.widget.TextView import android.widget.TextView
import dagger.android.HasAndroidInjector import dagger.android.HasAndroidInjector
import info.nightscout.androidaps.setupwizard.elements.SWItem import info.nightscout.configuration.setupwizard.elements.SWItem
import info.nightscout.rx.AapsSchedulers import info.nightscout.rx.AapsSchedulers
import info.nightscout.rx.events.EventStatus import info.nightscout.rx.events.EventStatus
import io.reactivex.rxjava3.disposables.CompositeDisposable import io.reactivex.rxjava3.disposables.CompositeDisposable

View file

@ -1,4 +1,4 @@
package info.nightscout.androidaps.setupwizard; package info.nightscout.configuration.setupwizard;
// keep in java, it's easier // keep in java, it's easier
public interface SWIntNumberValidator { public interface SWIntNumberValidator {

View file

@ -1,4 +1,4 @@
package info.nightscout.androidaps.setupwizard; package info.nightscout.configuration.setupwizard;
// keep in java, it's easier // keep in java, it's easier
public interface SWNumberValidator { public interface SWNumberValidator {

View file

@ -1,9 +1,8 @@
package info.nightscout.androidaps.setupwizard package info.nightscout.configuration.setupwizard
import dagger.android.HasAndroidInjector import dagger.android.HasAndroidInjector
import info.nightscout.androidaps.setupwizard.elements.SWItem import info.nightscout.configuration.setupwizard.elements.SWItem
import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.interfaces.ResourceHelper
import java.util.*
import javax.inject.Inject import javax.inject.Inject
class SWScreen(val injector: HasAndroidInjector, private var header: Int) { class SWScreen(val injector: HasAndroidInjector, private var header: Int) {

View file

@ -1,4 +1,4 @@
package info.nightscout.androidaps.setupwizard; package info.nightscout.configuration.setupwizard;
// keep in java, it's easier // keep in java, it's easier
public interface SWTextValidator { public interface SWTextValidator {

View file

@ -1,4 +1,4 @@
package info.nightscout.androidaps.setupwizard; package info.nightscout.configuration.setupwizard;
// keep in java, it's easier // keep in java, it's easier
public interface SWValidator { public interface SWValidator {

View file

@ -1,18 +1,18 @@
package info.nightscout.androidaps.setupwizard package info.nightscout.configuration.setupwizard
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import android.widget.TextView import android.widget.TextView
import dagger.android.HasAndroidInjector import dagger.android.HasAndroidInjector
import info.nightscout.androidaps.MainActivity
import info.nightscout.androidaps.R
import info.nightscout.androidaps.activities.NoSplashAppCompatActivity import info.nightscout.androidaps.activities.NoSplashAppCompatActivity
import info.nightscout.androidaps.databinding.ActivitySetupwizardBinding import info.nightscout.configuration.R
import info.nightscout.androidaps.setupwizard.elements.SWItem import info.nightscout.configuration.databinding.ActivitySetupwizardBinding
import info.nightscout.configuration.setupwizard.elements.SWItem
import info.nightscout.core.fabric.FabricPrivacy import info.nightscout.core.fabric.FabricPrivacy
import info.nightscout.core.ui.dialogs.OKDialog import info.nightscout.core.ui.dialogs.OKDialog
import info.nightscout.interfaces.locale.LocaleHelper.update import info.nightscout.interfaces.locale.LocaleHelper.update
import info.nightscout.interfaces.ui.ActivityNames
import info.nightscout.rx.AapsSchedulers import info.nightscout.rx.AapsSchedulers
import info.nightscout.rx.events.EventProfileStoreChanged import info.nightscout.rx.events.EventProfileStoreChanged
import info.nightscout.rx.events.EventProfileSwitchChanged import info.nightscout.rx.events.EventProfileSwitchChanged
@ -34,6 +34,7 @@ class SetupWizardActivity : NoSplashAppCompatActivity() {
@Inject lateinit var sp: SP @Inject lateinit var sp: SP
@Inject lateinit var fabricPrivacy: FabricPrivacy @Inject lateinit var fabricPrivacy: FabricPrivacy
@Inject lateinit var aapsSchedulers: AapsSchedulers @Inject lateinit var aapsSchedulers: AapsSchedulers
@Inject lateinit var activityNames: ActivityNames
private val disposable = CompositeDisposable() private val disposable = CompositeDisposable()
private lateinit var screens: List<SWScreen> private lateinit var screens: List<SWScreen>
@ -163,7 +164,7 @@ class SetupWizardActivity : NoSplashAppCompatActivity() {
@Suppress("UNUSED_PARAMETER") @Suppress("UNUSED_PARAMETER")
fun finishSetupWizard(view: View?) { fun finishSetupWizard(view: View?) {
sp.putBoolean(R.string.key_setupwizard_processed, true) sp.putBoolean(R.string.key_setupwizard_processed, true)
val intent = Intent(this, MainActivity::class.java) val intent = Intent(this, activityNames.mainActivity)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
startActivity(intent) startActivity(intent)
finish() finish()

View file

@ -1,10 +1,10 @@
package info.nightscout.androidaps.setupwizard.elements package info.nightscout.configuration.setupwizard.elements
import android.view.View import android.view.View
import android.widget.LinearLayout import android.widget.LinearLayout
import android.widget.TextView import android.widget.TextView
import dagger.android.HasAndroidInjector import dagger.android.HasAndroidInjector
import info.nightscout.androidaps.setupwizard.SWValidator import info.nightscout.configuration.setupwizard.SWValidator
class SWBreak(injector: HasAndroidInjector) : SWItem(injector, Type.BREAK) { class SWBreak(injector: HasAndroidInjector) : SWItem(injector, Type.BREAK) {
private var l: TextView? = null private var l: TextView? = null

View file

@ -1,10 +1,10 @@
package info.nightscout.androidaps.setupwizard.elements package info.nightscout.configuration.setupwizard.elements
import android.view.View import android.view.View
import android.widget.Button import android.widget.Button
import android.widget.LinearLayout import android.widget.LinearLayout
import dagger.android.HasAndroidInjector import dagger.android.HasAndroidInjector
import info.nightscout.androidaps.setupwizard.SWValidator import info.nightscout.configuration.setupwizard.SWValidator
class SWButton(injector: HasAndroidInjector) : SWItem(injector, Type.BUTTON) { class SWButton(injector: HasAndroidInjector) : SWItem(injector, Type.BUTTON) {
private var buttonRunnable: Runnable? = null private var buttonRunnable: Runnable? = null

View file

@ -1,4 +1,4 @@
package info.nightscout.androidaps.setupwizard.elements package info.nightscout.configuration.setupwizard.elements
import android.graphics.Typeface import android.graphics.Typeface
import android.text.Editable import android.text.Editable
@ -10,14 +10,15 @@ import android.widget.EditText
import android.widget.LinearLayout import android.widget.LinearLayout
import android.widget.TextView import android.widget.TextView
import dagger.android.HasAndroidInjector import dagger.android.HasAndroidInjector
import info.nightscout.androidaps.R
import info.nightscout.shared.extensions.toVisibility
import info.nightscout.androidaps.setupwizard.SWTextValidator
import info.nightscout.androidaps.utils.CryptoUtil import info.nightscout.androidaps.utils.CryptoUtil
import info.nightscout.configuration.R
import info.nightscout.configuration.setupwizard.SWTextValidator
import info.nightscout.shared.extensions.toVisibility
class SWEditEncryptedPassword(injector: HasAndroidInjector, private val cryptoUtil: CryptoUtil) : SWItem(injector, Type.STRING) { class SWEditEncryptedPassword(injector: HasAndroidInjector, private val cryptoUtil: CryptoUtil) : SWItem(injector, Type.STRING) {
private var validator: SWTextValidator = SWTextValidator(String::isNotEmpty) private var validator: SWTextValidator =
SWTextValidator(String::isNotEmpty)
private var updateDelay = 0L private var updateDelay = 0L
private var button: Button? = null private var button: Button? = null
private var editText: EditText? = null private var editText: EditText? = null

View file

@ -1,4 +1,4 @@
package info.nightscout.androidaps.setupwizard.elements package info.nightscout.configuration.setupwizard.elements
import android.graphics.Typeface import android.graphics.Typeface
import android.text.Editable import android.text.Editable
@ -7,14 +7,15 @@ import android.view.View
import android.widget.LinearLayout import android.widget.LinearLayout
import android.widget.TextView import android.widget.TextView
import dagger.android.HasAndroidInjector import dagger.android.HasAndroidInjector
import info.nightscout.androidaps.setupwizard.SWIntNumberValidator import info.nightscout.configuration.setupwizard.SWIntNumberValidator
import info.nightscout.core.ui.elements.NumberPicker import info.nightscout.core.ui.elements.NumberPicker
import info.nightscout.shared.SafeParse import info.nightscout.shared.SafeParse
import java.text.DecimalFormat import java.text.DecimalFormat
class SWEditIntNumber(injector: HasAndroidInjector, private val init: Int, private val min: Int, private val max: Int) : SWItem(injector, Type.NUMBER) { class SWEditIntNumber(injector: HasAndroidInjector, private val init: Int, private val min: Int, private val max: Int) : SWItem(injector, Type.NUMBER) {
private val validator: SWIntNumberValidator = SWIntNumberValidator { value -> value in min..max } private val validator: SWIntNumberValidator =
SWIntNumberValidator { value -> value in min..max }
private var updateDelay = 0 private var updateDelay = 0
override fun generateDialog(layout: LinearLayout) { override fun generateDialog(layout: LinearLayout) {

View file

@ -1,4 +1,4 @@
package info.nightscout.androidaps.setupwizard.elements package info.nightscout.configuration.setupwizard.elements
import android.graphics.Typeface import android.graphics.Typeface
import android.text.Editable import android.text.Editable
@ -7,14 +7,15 @@ import android.view.View
import android.widget.LinearLayout import android.widget.LinearLayout
import android.widget.TextView import android.widget.TextView
import dagger.android.HasAndroidInjector import dagger.android.HasAndroidInjector
import info.nightscout.androidaps.setupwizard.SWNumberValidator import info.nightscout.configuration.setupwizard.SWNumberValidator
import info.nightscout.core.ui.elements.NumberPicker import info.nightscout.core.ui.elements.NumberPicker
import info.nightscout.shared.SafeParse import info.nightscout.shared.SafeParse
import java.text.DecimalFormat import java.text.DecimalFormat
class SWEditNumber(injector: HasAndroidInjector, private val init: Double, private val min: Double, private val max: Double) : SWItem(injector, Type.DECIMAL_NUMBER) { class SWEditNumber(injector: HasAndroidInjector, private val init: Double, private val min: Double, private val max: Double) : SWItem(injector, Type.DECIMAL_NUMBER) {
private val validator: SWNumberValidator = SWNumberValidator { value -> value in min..max } private val validator: SWNumberValidator =
SWNumberValidator { value -> value in min..max }
private var updateDelay = 0 private var updateDelay = 0
override fun generateDialog(layout: LinearLayout) { override fun generateDialog(layout: LinearLayout) {

View file

@ -1,4 +1,4 @@
package info.nightscout.androidaps.setupwizard.elements package info.nightscout.configuration.setupwizard.elements
import android.graphics.Typeface import android.graphics.Typeface
import android.text.Editable import android.text.Editable
@ -7,7 +7,7 @@ import android.view.View
import android.widget.LinearLayout import android.widget.LinearLayout
import android.widget.TextView import android.widget.TextView
import dagger.android.HasAndroidInjector import dagger.android.HasAndroidInjector
import info.nightscout.androidaps.setupwizard.SWNumberValidator import info.nightscout.configuration.setupwizard.SWNumberValidator
import info.nightscout.core.profile.toCurrentUnits import info.nightscout.core.profile.toCurrentUnits
import info.nightscout.core.ui.elements.NumberPicker import info.nightscout.core.ui.elements.NumberPicker
import info.nightscout.interfaces.GlucoseUnit import info.nightscout.interfaces.GlucoseUnit
@ -21,7 +21,8 @@ class SWEditNumberWithUnits(injector: HasAndroidInjector, private val init: Doub
@Inject lateinit var profileFunction: ProfileFunction @Inject lateinit var profileFunction: ProfileFunction
private val validator: SWNumberValidator = SWNumberValidator { value -> value in min..max } private val validator: SWNumberValidator =
SWNumberValidator { value -> value in min..max }
private var updateDelay = 0 private var updateDelay = 0
override fun generateDialog(layout: LinearLayout) { override fun generateDialog(layout: LinearLayout) {

View file

@ -1,4 +1,4 @@
package info.nightscout.androidaps.setupwizard.elements package info.nightscout.configuration.setupwizard.elements
import android.graphics.Typeface import android.graphics.Typeface
import android.text.Editable import android.text.Editable
@ -9,7 +9,7 @@ import android.widget.EditText
import android.widget.LinearLayout import android.widget.LinearLayout
import android.widget.TextView import android.widget.TextView
import dagger.android.HasAndroidInjector import dagger.android.HasAndroidInjector
import info.nightscout.androidaps.setupwizard.SWTextValidator import info.nightscout.configuration.setupwizard.SWTextValidator
class SWEditString(injector: HasAndroidInjector) : SWItem(injector, Type.STRING) { class SWEditString(injector: HasAndroidInjector) : SWItem(injector, Type.STRING) {

View file

@ -1,4 +1,4 @@
package info.nightscout.androidaps.setupwizard.elements package info.nightscout.configuration.setupwizard.elements
import android.graphics.Typeface import android.graphics.Typeface
import android.text.Editable import android.text.Editable
@ -10,8 +10,8 @@ import android.widget.EditText
import android.widget.LinearLayout import android.widget.LinearLayout
import android.widget.TextView import android.widget.TextView
import dagger.android.HasAndroidInjector import dagger.android.HasAndroidInjector
import info.nightscout.androidaps.R import info.nightscout.configuration.R
import info.nightscout.androidaps.setupwizard.events.EventSWLabel import info.nightscout.configuration.setupwizard.events.EventSWLabel
class SWEditUrl(injector: HasAndroidInjector) : SWItem(injector, Type.URL) { class SWEditUrl(injector: HasAndroidInjector) : SWItem(injector, Type.URL) {
private var updateDelay = 0L private var updateDelay = 0L

View file

@ -1,9 +1,9 @@
package info.nightscout.androidaps.setupwizard.elements package info.nightscout.configuration.setupwizard.elements
import android.widget.LinearLayout import android.widget.LinearLayout
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import dagger.android.HasAndroidInjector import dagger.android.HasAndroidInjector
import info.nightscout.androidaps.setupwizard.SWDefinition import info.nightscout.configuration.setupwizard.SWDefinition
class SWFragment(injector:HasAndroidInjector, private var definition: SWDefinition) : SWItem(injector, Type.FRAGMENT) { class SWFragment(injector:HasAndroidInjector, private var definition: SWDefinition) : SWItem(injector, Type.FRAGMENT) {
lateinit var fragment: Fragment lateinit var fragment: Fragment

View file

@ -1,4 +1,4 @@
package info.nightscout.androidaps.setupwizard.elements package info.nightscout.configuration.setupwizard.elements
import android.text.util.Linkify import android.text.util.Linkify
import android.view.View import android.view.View
@ -6,7 +6,7 @@ import android.widget.LinearLayout
import android.widget.TextView import android.widget.TextView
import androidx.annotation.StringRes import androidx.annotation.StringRes
import dagger.android.HasAndroidInjector import dagger.android.HasAndroidInjector
import info.nightscout.androidaps.setupwizard.SWValidator import info.nightscout.configuration.setupwizard.SWValidator
class SWHtmlLink(injector: HasAndroidInjector) : SWItem(injector, Type.HTML_LINK) { class SWHtmlLink(injector: HasAndroidInjector) : SWItem(injector, Type.HTML_LINK) {

View file

@ -1,10 +1,10 @@
package info.nightscout.androidaps.setupwizard.elements package info.nightscout.configuration.setupwizard.elements
import android.view.View import android.view.View
import android.widget.LinearLayout import android.widget.LinearLayout
import android.widget.TextView import android.widget.TextView
import dagger.android.HasAndroidInjector import dagger.android.HasAndroidInjector
import info.nightscout.androidaps.setupwizard.SWValidator import info.nightscout.configuration.setupwizard.SWValidator
class SWInfoText(injector: HasAndroidInjector) : SWItem(injector, Type.TEXT) { class SWInfoText(injector: HasAndroidInjector) : SWItem(injector, Type.TEXT) {
private var textLabel: String? = null private var textLabel: String? = null

View file

@ -1,4 +1,4 @@
package info.nightscout.androidaps.setupwizard.elements package info.nightscout.configuration.setupwizard.elements
import android.content.Context import android.content.Context
import android.content.ContextWrapper import android.content.ContextWrapper

View file

@ -1,4 +1,4 @@
package info.nightscout.androidaps.setupwizard.elements package info.nightscout.configuration.setupwizard.elements
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
@ -7,28 +7,30 @@ import android.widget.LinearLayout
import android.widget.RadioButton import android.widget.RadioButton
import android.widget.RadioGroup import android.widget.RadioGroup
import android.widget.TextView import android.widget.TextView
import androidx.fragment.app.Fragment
import dagger.android.HasAndroidInjector import dagger.android.HasAndroidInjector
import info.nightscout.androidaps.activities.MyPreferenceFragment import info.nightscout.configuration.setupwizard.SWDefinition
import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin import info.nightscout.interfaces.ConfigBuilder
import info.nightscout.androidaps.plugins.configBuilder.PluginStore import info.nightscout.interfaces.plugin.ActivePlugin
import info.nightscout.androidaps.setupwizard.SWDefinition
import info.nightscout.rx.events.EventSWUpdate
import info.nightscout.interfaces.plugin.PluginBase import info.nightscout.interfaces.plugin.PluginBase
import info.nightscout.interfaces.plugin.PluginType import info.nightscout.interfaces.plugin.PluginType
import info.nightscout.interfaces.ui.ActivityNames
import info.nightscout.rx.events.EventConfigBuilderChange import info.nightscout.rx.events.EventConfigBuilderChange
import info.nightscout.rx.events.EventSWUpdate
import javax.inject.Inject import javax.inject.Inject
class SWPlugin(injector: HasAndroidInjector, private val definition: SWDefinition) : SWItem(injector, Type.PLUGIN) { class SWPlugin(injector: HasAndroidInjector, private val definition: SWDefinition) : SWItem(injector, Type.PLUGIN) {
@Inject lateinit var pluginStore: PluginStore @Inject lateinit var activePlugin: ActivePlugin
@Inject lateinit var configBuilderPlugin: ConfigBuilderPlugin @Inject lateinit var configBuilder: ConfigBuilder
@Inject lateinit var activityNames: ActivityNames
private var pType: PluginType? = null private var pType: PluginType? = null
private var radioGroup: RadioGroup? = null private var radioGroup: RadioGroup? = null
private var pluginDescription = 0 private var pluginDescription = 0
private var makeVisible = true private var makeVisible = true
private var fragment: MyPreferenceFragment? = null private var fragment: Fragment? = null
fun option(pType: PluginType, pluginDescription: Int): SWPlugin { fun option(pType: PluginType, pluginDescription: Int): SWPlugin {
this.pType = pType this.pType = pType
@ -46,7 +48,7 @@ class SWPlugin(injector: HasAndroidInjector, private val definition: SWDefinitio
val context = layout.context val context = layout.context
radioGroup = RadioGroup(context) radioGroup = RadioGroup(context)
radioGroup?.clearCheck() radioGroup?.clearCheck()
val pluginsInCategory = pluginStore.getSpecificPluginsList(pType!!) val pluginsInCategory = activePlugin.getSpecificPluginsList(pType!!)
radioGroup?.orientation = LinearLayout.VERTICAL radioGroup?.orientation = LinearLayout.VERTICAL
radioGroup?.visibility = View.VISIBLE radioGroup?.visibility = View.VISIBLE
val pDesc = TextView(context) val pDesc = TextView(context)
@ -78,8 +80,8 @@ class SWPlugin(injector: HasAndroidInjector, private val definition: SWDefinitio
val plugin = rb.tag as PluginBase val plugin = rb.tag as PluginBase
plugin.setPluginEnabled(pType!!, rb.isChecked) plugin.setPluginEnabled(pType!!, rb.isChecked)
plugin.setFragmentVisible(pType!!, rb.isChecked && makeVisible) plugin.setFragmentVisible(pType!!, rb.isChecked && makeVisible)
configBuilderPlugin.processOnEnabledCategoryChanged(plugin, pType!!) configBuilder.processOnEnabledCategoryChanged(plugin, pType!!)
configBuilderPlugin.storeSettings("SetupWizard") configBuilder.storeSettings("SetupWizard")
rxBus.send(EventConfigBuilderChange()) rxBus.send(EventConfigBuilderChange())
rxBus.send(EventSWUpdate(false)) rxBus.send(EventSWUpdate(false))
addConfiguration(layout, plugin) addConfiguration(layout, plugin)
@ -91,15 +93,17 @@ class SWPlugin(injector: HasAndroidInjector, private val definition: SWDefinitio
private fun addConfiguration(layout: LinearLayout, plugin: PluginBase) { private fun addConfiguration(layout: LinearLayout, plugin: PluginBase) {
if (plugin.preferencesId != -1) { if (plugin.preferencesId != -1) {
fragment = MyPreferenceFragment() fragment = Class.forName(activityNames.myPreferenceFragment.name).newInstance() as Fragment //MyPreferenceFragment()
fragment?.arguments = Bundle().also { it.putInt("id", plugin.preferencesId) } fragment?.let {
definition.activity.supportFragmentManager.beginTransaction().run { it.arguments = Bundle().also { it.putInt("id", plugin.preferencesId) }
replace(layout.id, fragment!!) definition.activity.supportFragmentManager.beginTransaction().run {
commit() replace(layout.id, it)
commit()
}
} }
} else { } else {
definition.activity.supportFragmentManager.beginTransaction().run { definition.activity.supportFragmentManager.beginTransaction().run {
if (fragment != null) remove(fragment!!) fragment?.let { remove(it) }
fragment = null fragment = null
commit() commit()
} }

View file

@ -1,18 +1,16 @@
package info.nightscout.androidaps.setupwizard.elements package info.nightscout.configuration.setupwizard.elements
import android.os.Bundle import android.os.Bundle
import android.widget.LinearLayout import android.widget.LinearLayout
import androidx.fragment.app.Fragment
import dagger.android.HasAndroidInjector import dagger.android.HasAndroidInjector
import info.nightscout.androidaps.activities.MyPreferenceFragment import info.nightscout.configuration.setupwizard.SWDefinition
import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin import info.nightscout.interfaces.ui.ActivityNames
import info.nightscout.androidaps.plugins.configBuilder.PluginStore
import info.nightscout.androidaps.setupwizard.SWDefinition
import javax.inject.Inject import javax.inject.Inject
class SWPreference(injector: HasAndroidInjector, private val definition: SWDefinition) : SWItem(injector, Type.PREFERENCE) { class SWPreference(injector: HasAndroidInjector, private val definition: SWDefinition) : SWItem(injector, Type.PREFERENCE) {
@Inject lateinit var pluginStore: PluginStore @Inject lateinit var activityNames: ActivityNames
@Inject lateinit var configBuilderPlugin: ConfigBuilderPlugin
private var xml: Int = -1 private var xml: Int = -1
@ -27,7 +25,7 @@ class SWPreference(injector: HasAndroidInjector, private val definition: SWDefin
} }
private fun addConfiguration(layout: LinearLayout, xml: Int) { private fun addConfiguration(layout: LinearLayout, xml: Int) {
MyPreferenceFragment().also { fragment -> (Class.forName(activityNames.myPreferenceFragment.name).newInstance() as Fragment).also { fragment ->
fragment.arguments = Bundle().also { it.putInt("id", xml) } fragment.arguments = Bundle().also { it.putInt("id", xml) }
definition.activity.supportFragmentManager.beginTransaction().run { definition.activity.supportFragmentManager.beginTransaction().run {
replace(layout.id, fragment) replace(layout.id, fragment)

View file

@ -1,4 +1,4 @@
package info.nightscout.androidaps.setupwizard.elements package info.nightscout.configuration.setupwizard.elements
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
@ -23,7 +23,7 @@ class SWRadioButton(injector: HasAndroidInjector) : SWItem(injector, Type.RADIOB
return rh.gsa(labelsArray) return rh.gsa(labelsArray)
} }
fun values(): Array<String> { private fun values(): Array<String> {
return rh.gsa(valuesArray) return rh.gsa(valuesArray)
} }

View file

@ -1,4 +1,4 @@
package info.nightscout.androidaps.setupwizard.events package info.nightscout.configuration.setupwizard.events
import info.nightscout.rx.events.Event import info.nightscout.rx.events.Event

View file

@ -0,0 +1,12 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M16.495,12.092l-4.921,-4.92l-1.444,1.444l2.468,2.467l-9.765,0l0,2.042l9.765,0l-2.468,2.467l1.444,1.444l4.921,-4.92l-0.012,-0.012z"
android:fillColor="?attr/defaultTextColor" />
<path
android:pathData="M18.682,2.975H5.152c-1.272,0 -2.307,1.035 -2.307,2.307v3.801h2.126V5.282c0,-0.1 0.081,-0.181 0.181,-0.181h13.53c0.1,0 0.181,0.081 0.181,0.181v13.436c0,0.1 -0.081,0.181 -0.181,0.181H5.152c-0.1,0 -0.181,-0.081 -0.181,-0.181v-3.593H2.845v3.593c0,1.272 1.035,2.307 2.307,2.307h13.53c1.272,0 2.308,-1.034 2.308,-2.307V5.282C20.989,4.01 19.954,2.975 18.682,2.975z"
android:fillColor="?attr/defaultTextColor" />
</vector>

View file

@ -5,7 +5,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical" android:orientation="vertical"
tools:context=".setupwizard.SetupWizardActivity"> tools:context="info.nightscout.configuration.setupwizard.SetupWizardActivity">
<LinearLayout <LinearLayout
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -50,6 +50,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_weight="1"> android:layout_weight="1">
<LinearLayout <LinearLayout
android:id="@+id/sw_content_fields" android:id="@+id/sw_content_fields"
android:layout_width="match_parent" android:layout_width="match_parent"

View file

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="unitsArray">
<item>mg/dL</item>
<item>mmol/L</item>
</string-array>
<string-array name="unitsValues" translatable="false">
<item>mg/dl</item>
<item>mmol</item>
</string-array>
</resources>

View file

@ -0,0 +1,79 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="key_i_understand" translatable="false">I_understand</string>
<string name="units">Units</string>
<string name="setupwizard_units_prompt">Select units you want to display values in</string>
<string name="title_activity_setup_wizard" translatable="false">SetupWizardActivity</string>
<string name="next_button">Next</string>
<string name="previous_button">Prev</string>
<string name="nav_setupwizard">Setup Wizard</string>
<string name="setupwizard_finish">FINISH</string>
<string name="welcometosetupwizard">Welcome to setup wizard. It will guide you through the setup process\n</string>
<string name="end_user_license_agreement">End User License Agreement</string>
<string name="end_user_license_agreement_text">MUST NOT BE USED TO MAKE MEDICAL DECISIONS. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.</string>
<string name="end_user_license_agreement_i_understand">I UNDERSTAND AND AGREE</string>
<string name="display_settings">Display Settings</string>
<string name="low_mark">LOW mark</string>
<string name="high_mark">HIGH mark</string>
<string name="low_mark_comment">Lower value of in range area (display only)</string>
<string name="high_mark_comment">Higher value of in range area (display only)</string>
<string name="permission">Permission</string>
<string name="need_system_window_permission">Application needs system window permission for notifications</string>
<string name="need_location_permission">Application needs location permission for BT scan and WiFi identification</string>
<string name="need_storage_permission">Application needs storage permission to be able store log files and export settings</string>
<string name="askforpermission">Ask for permission</string>
<string name="need_whitelisting">%1$s needs battery optimization whitelisting for proper performance</string>
<string name="import_setting">Import settings</string>
<string name="storedsettingsfound">Stored settings found</string>
<string name="master_password_summary">Master password is used for backup encryption and to override security in application. Remember it or store on a safe place.</string>
<string name="current_master_password">Current master password</string>
<string name="common_values">Use values of your largest food you usually eat\n</string>
<string name="syncinfotext">Synchronize data to the cloud. You can skip this part now but you will not be able to pass objectives until you set it up.</string>
<string name="status">Status:</string>
<string name="patient_name">Patient name</string>
<string name="patient_name_summary">Please provide patient name or nickname to differentiate among multiple setups</string>
<string name="privacy_settings">Privacy setting</string>
<string name="privacy_summary">You can provide optional email address if you want to be notified about app crashes. This is not an automated service. You will be contacted by developers in dangerous situations.</string>
<string name="diawarning">Please remember: new insulin profiles require DIA at least 5h. DIA 56h on new profile is equal to DIA 3h on old insulin profiles.</string>
<string name="profile">Profile</string>
<string name="doprofileswitch">Do Profile Switch</string>
<string name="exitwizard">Skip setup wizard</string>
<string name="setupwizard_loop_description">Press the button below to enable AAPS to suggest/make basal changes</string>
<string name="key_setupwizard_processed" translatable="false">startupwizard_processed</string>
<string name="setupwizard_sensitivity_description">Sensitivity plugin is used for sensitivity detection and COB calculation. For more info visit:</string>
<string name="setupwizard_sensitivity_url">https://androidaps.readthedocs.io/en/latest/Configuration/Sensitivity-detection-and-COB.html</string>
<string name="setupwizard_aps_description">Select one from availables algorithms. They are sorted from oldest to newest. Newer algorithm is usually more powerful and more aggressive. Thus if you are new looper you may probably start with AMA and not with latest one. Do not forget to read the OpenAPS documentation and configure it before use.</string>
<string name="setupwizard_pump_waiting_for_riley_link_connection">Please configure your RileyLink below. After selecting a RileyLink, it will be possible to continue setup once the RileyLink status is \"Connected\". This might take a minute.\n</string>
<string name="setupwizard_pump_pump_not_initialized"><b>Note:</b> You can continue setup once the pump has been set up.\n</string>
<string name="startobjective">Start your first objective</string>
<string name="setupwizard_pump_riley_link_status">RileyLink status:</string>
<string name="readstatus">Read status</string>
<string name="data_choices">Data Choices</string>
<string name="fabric_upload">Fabric Upload</string>
<string name="allow_automated_crash_reporting">Allow automated crash reporting and feature usage data to be sent to the developers via the fabric.io service.</string>
<string name="summary_email_for_crash_report">This identification will attached to crash reports so we can contact you in urgent cases. It\'s optional.</string>
<string name="identification">Identification (email, FB or Discord nick etc)</string>
<string name="configbuilder_pump">Pump</string>
<string name="configbuilder_pump_description">Which pump would you like to use with AAPS?</string>
<string name="configbuilder_profile">Profile</string>
<string name="configbuilder_profile_description">Which profile should AAPS use?</string>
<string name="configbuilder_aps">APS</string>
<string name="configbuilder_aps_description">Which APS algorithm should make therapy adjustments?</string>
<string name="configbuilder_general">General</string>
<string name="configbuilder_general_description">These are some general plugins you might find useful.</string>
<string name="configbuilder_sync">Synchronization</string>
<string name="configbuilder_sync_description">Data upload and synchronization plugins.</string>
<string name="configbuilder_constraints_description">Which constraints are applied?</string>
<string name="configbuilder_loop">Loop</string>
<string name="configbuilder_loop_description">Use this to activate AAPS\' loop integration.</string>
<string name="configbuilder_insulin_description">Which type of insulin are you using?</string>
<string name="configbuilder_bgsource">BG Source</string>
<string name="configbuilder_bgsource_description">Where should AAPS gain it\'s data from?</string>
<string name="apsmode_title">APS Mode</string>
<string name="setupwizard_preferred_aps_mode">Preferred APS mode</string>
<string name="configbuilder_sensitivity">Sensitivity detection</string>
<string name="configbuilder_sensitivity_description">Which sensitivity algorithm should be used?</string>
</resources>

View file

@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" <androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto">
xmlns:validate="http://schemas.android.com/apk/res-auto">
<PreferenceCategory <PreferenceCategory
android:key="@string/key_data_choices_settings" android:key="@string/key_data_choices_settings"

View file

@ -51,8 +51,8 @@
<string name="teenage">Tiener</string> <string name="teenage">Tiener</string>
<string name="adult">Volwassene</string> <string name="adult">Volwassene</string>
<string name="resistantadult">Insulien weerstandige volwasse</string> <string name="resistantadult">Insulien weerstandige volwasse</string>
<string name="treatmentssafety_maxbolus_title">Maks toelaatbare Bolus [U]</string> <string name="max_bolus_title">Maks toelaatbare Bolus [U]</string>
<string name="treatmentssafety_maxcarbs_title">Maks Toelaatbare karbs [g]</string> <string name="max_carbs_title">Maks Toelaatbare karbs [g]</string>
<!-- Overview --> <!-- Overview -->
<string name="snooze">Sluimer</string> <string name="snooze">Sluimer</string>
<string name="show_statuslights">Wys status vlae op tuisskerm</string> <string name="show_statuslights">Wys status vlae op tuisskerm</string>

View file

@ -52,15 +52,15 @@
<string name="maxvalueinpreferences">макс. стойност в настройките</string> <string name="maxvalueinpreferences">макс. стойност в настройките</string>
<string name="hardlimit">твърд лимит</string> <string name="hardlimit">твърд лимит</string>
<string name="treatmentssafety_title">Настройки на сигурността</string> <string name="treatmentssafety_title">Настройки на сигурността</string>
<string name="patientage_summary">Моля, изберете тип на пациента за настройка на границите за безопастност</string> <string name="patient_age_summary">Моля, изберете тип на пациента за настройка на границите за безопастност</string>
<string name="child">Дете</string> <string name="child">Дете</string>
<string name="teenage">Тийнейджър</string> <string name="teenage">Тийнейджър</string>
<string name="adult">Възрастен</string> <string name="adult">Възрастен</string>
<string name="resistantadult">Възрастни с голяма инсулинова резистентност</string> <string name="resistantadult">Възрастни с голяма инсулинова резистентност</string>
<string name="pregnant">Бременност</string> <string name="pregnant">Бременност</string>
<string name="treatmentssafety_maxbolus_title">Максимален инсулин при болус [единици]</string> <string name="max_bolus_title">Максимален инсулин при болус [единици]</string>
<string name="treatmentssafety_maxcarbs_title">Максимални въглехидрати [гр]</string> <string name="max_carbs_title">Максимални въглехидрати [гр]</string>
<string name="patientage">Тип пациент</string> <string name="patient_type">Тип пациент</string>
<!-- Overview --> <!-- Overview -->
<string name="snooze">Отложи</string> <string name="snooze">Отложи</string>
<string name="show_statuslights">Покажи статус светлини на началния екран</string> <string name="show_statuslights">Покажи статус светлини на началния екран</string>

View file

@ -58,15 +58,15 @@
<string name="maxvalueinpreferences">valor màxim a la configuració</string> <string name="maxvalueinpreferences">valor màxim a la configuració</string>
<string name="hardlimit">límit estricte</string> <string name="hardlimit">límit estricte</string>
<string name="treatmentssafety_title">Seguretat tractaments</string> <string name="treatmentssafety_title">Seguretat tractaments</string>
<string name="patientage_summary">Si us plau, seleccioneu el tipus de pacient per configurar els límits de seguretat</string> <string name="patient_age_summary">Si us plau, seleccioneu el tipus de pacient per configurar els límits de seguretat</string>
<string name="child">Nen</string> <string name="child">Nen</string>
<string name="teenage">Adolescent</string> <string name="teenage">Adolescent</string>
<string name="adult">Adult</string> <string name="adult">Adult</string>
<string name="resistantadult">Adult resistent a l\'insulina</string> <string name="resistantadult">Adult resistent a l\'insulina</string>
<string name="pregnant">Embaraç</string> <string name="pregnant">Embaraç</string>
<string name="treatmentssafety_maxbolus_title">Max bolus permès [U]</string> <string name="max_bolus_title">Max bolus permès [U]</string>
<string name="treatmentssafety_maxcarbs_title">Max carbs permesos [g]</string> <string name="max_carbs_title">Max carbs permesos [g]</string>
<string name="patientage">Tipus de pacient</string> <string name="patient_type">Tipus de pacient</string>
<!-- Overview --> <!-- Overview -->
<string name="snooze">Postposar</string> <string name="snooze">Postposar</string>
<string name="show_statuslights">Mostrar indicadors d\'estat a la pantalla d\'inici</string> <string name="show_statuslights">Mostrar indicadors d\'estat a la pantalla d\'inici</string>

View file

@ -240,15 +240,15 @@
<string name="maxvalueinpreferences">maximální hodnota v nastavení</string> <string name="maxvalueinpreferences">maximální hodnota v nastavení</string>
<string name="hardlimit">pevný limit</string> <string name="hardlimit">pevný limit</string>
<string name="treatmentssafety_title">Bezpečnost zadání ošetřeni</string> <string name="treatmentssafety_title">Bezpečnost zadání ošetřeni</string>
<string name="patientage_summary">Prosím vyberte typ pacienta pro nastavení bezpečnostních limitů</string> <string name="patient_age_summary">Prosím vyberte typ pacienta pro nastavení bezpečnostních limitů</string>
<string name="child">Dítě</string> <string name="child">Dítě</string>
<string name="teenage">Dospívající</string> <string name="teenage">Dospívající</string>
<string name="adult">Dospělý</string> <string name="adult">Dospělý</string>
<string name="resistantadult">Dospělý s nízkou citlivostí</string> <string name="resistantadult">Dospělý s nízkou citlivostí</string>
<string name="pregnant">Těhotenství</string> <string name="pregnant">Těhotenství</string>
<string name="treatmentssafety_maxbolus_title">Maximální povolený bolus [U]</string> <string name="max_bolus_title">Maximální povolený bolus [U]</string>
<string name="treatmentssafety_maxcarbs_title">Maximální počet sacharidů [g]</string> <string name="max_carbs_title">Maximální počet sacharidů [g]</string>
<string name="patientage">Typ pacienta</string> <string name="patient_type">Typ pacienta</string>
<!-- Overview --> <!-- Overview -->
<string name="snooze">Odložit</string> <string name="snooze">Odložit</string>
<string name="copy_existing_values">Zkopírovat nastavení NS (existuje-li)?</string> <string name="copy_existing_values">Zkopírovat nastavení NS (existuje-li)?</string>

View file

@ -63,15 +63,15 @@
<string name="maxvalueinpreferences">max værdi i præferencer</string> <string name="maxvalueinpreferences">max værdi i præferencer</string>
<string name="hardlimit">hård grænse</string> <string name="hardlimit">hård grænse</string>
<string name="treatmentssafety_title">Behandlings sikkerhed</string> <string name="treatmentssafety_title">Behandlings sikkerhed</string>
<string name="patientage_summary">Vælg venligst patienttype til opsætning af sikkerhedsgrænser</string> <string name="patient_age_summary">Vælg venligst patienttype til opsætning af sikkerhedsgrænser</string>
<string name="child">Barn</string> <string name="child">Barn</string>
<string name="teenage">Teeanger</string> <string name="teenage">Teeanger</string>
<string name="adult">Voksen</string> <string name="adult">Voksen</string>
<string name="resistantadult">Insulinresistent voksen</string> <string name="resistantadult">Insulinresistent voksen</string>
<string name="pregnant">Graviditet</string> <string name="pregnant">Graviditet</string>
<string name="treatmentssafety_maxbolus_title">Maks tilladt bolus [IE]</string> <string name="max_bolus_title">Maks tilladt bolus [IE]</string>
<string name="treatmentssafety_maxcarbs_title">Maks tilladte kulhydrater [g]</string> <string name="max_carbs_title">Maks tilladte kulhydrater [g]</string>
<string name="patientage">Patienttype</string> <string name="patient_type">Patienttype</string>
<!-- Overview --> <!-- Overview -->
<string name="snooze">Udsæt</string> <string name="snooze">Udsæt</string>
<string name="show_statuslights">Vis statuslys på startskærm</string> <string name="show_statuslights">Vis statuslys på startskærm</string>

View file

@ -64,15 +64,15 @@
<string name="maxvalueinpreferences">Max. Wert in den Einstellungen</string> <string name="maxvalueinpreferences">Max. Wert in den Einstellungen</string>
<string name="hardlimit">festem Grenzwert</string> <string name="hardlimit">festem Grenzwert</string>
<string name="treatmentssafety_title">Sicherheitseinstellungen der Behandlungen</string> <string name="treatmentssafety_title">Sicherheitseinstellungen der Behandlungen</string>
<string name="patientage_summary">Bitte wähle den Patiententyp, um die Sicherheits-Limits festzulegen</string> <string name="patient_age_summary">Bitte wähle den Patiententyp, um die Sicherheits-Limits festzulegen</string>
<string name="child">Kind</string> <string name="child">Kind</string>
<string name="teenage">Teenager</string> <string name="teenage">Teenager</string>
<string name="adult">Erwachsener</string> <string name="adult">Erwachsener</string>
<string name="resistantadult">Insulinresistenter Erwachsener</string> <string name="resistantadult">Insulinresistenter Erwachsener</string>
<string name="pregnant">Schwangerschaft</string> <string name="pregnant">Schwangerschaft</string>
<string name="treatmentssafety_maxbolus_title">Max. erlaubter Bolus [IE]</string> <string name="max_bolus_title">Max. erlaubter Bolus [IE]</string>
<string name="treatmentssafety_maxcarbs_title">Max. erlaubte Kohlenhydrate [g]</string> <string name="max_carbs_title">Max. erlaubte Kohlenhydrate [g]</string>
<string name="patientage">Patiententyp</string> <string name="patient_type">Patiententyp</string>
<!-- Overview --> <!-- Overview -->
<string name="snooze">Schlummern</string> <string name="snooze">Schlummern</string>
<string name="show_statuslights">Statusanzeige auf Homescreen</string> <string name="show_statuslights">Statusanzeige auf Homescreen</string>

View file

@ -46,15 +46,15 @@
<string name="maxvalueinpreferences">μέγιστη τιμή στις Επιλογές</string> <string name="maxvalueinpreferences">μέγιστη τιμή στις Επιλογές</string>
<string name="hardlimit">σταθερό όριο</string> <string name="hardlimit">σταθερό όριο</string>
<string name="treatmentssafety_title">Ασφάλεια Θεραπειών</string> <string name="treatmentssafety_title">Ασφάλεια Θεραπειών</string>
<string name="patientage_summary">Παρακαλώ επιλέξτε τύπο ασθενούς για να ορισθούν όρια ασφαλείας</string> <string name="patient_age_summary">Παρακαλώ επιλέξτε τύπο ασθενούς για να ορισθούν όρια ασφαλείας</string>
<string name="child">Παιδί</string> <string name="child">Παιδί</string>
<string name="teenage">Έφηβος</string> <string name="teenage">Έφηβος</string>
<string name="adult">Ενήλικας</string> <string name="adult">Ενήλικας</string>
<string name="resistantadult">Αντίσταση ινσουλίνης ενηλίκων</string> <string name="resistantadult">Αντίσταση ινσουλίνης ενηλίκων</string>
<string name="pregnant">Κύηση</string> <string name="pregnant">Κύηση</string>
<string name="treatmentssafety_maxbolus_title">Μέγιστο Επιτρεπτό bolus[U]</string> <string name="max_bolus_title">Μέγιστο Επιτρεπτό bolus[U]</string>
<string name="treatmentssafety_maxcarbs_title">Μέγιστο Επιτρεπτό υδατανθράκων [g]</string> <string name="max_carbs_title">Μέγιστο Επιτρεπτό υδατανθράκων [g]</string>
<string name="patientage">Τύπος ασθενή</string> <string name="patient_type">Τύπος ασθενή</string>
<!-- Overview --> <!-- Overview -->
<string name="snooze">Αναβολή</string> <string name="snooze">Αναβολή</string>
<string name="show_statuslights">Εμφάνιση του φωτισμού κατάστασης στην αρχική οθόνη</string> <string name="show_statuslights">Εμφάνιση του φωτισμού κατάστασης στην αρχική οθόνη</string>

View file

@ -240,15 +240,15 @@
<string name="maxvalueinpreferences">valor máximo en preferencias</string> <string name="maxvalueinpreferences">valor máximo en preferencias</string>
<string name="hardlimit">límite estricto</string> <string name="hardlimit">límite estricto</string>
<string name="treatmentssafety_title">Seguridad de tratamientos</string> <string name="treatmentssafety_title">Seguridad de tratamientos</string>
<string name="patientage_summary">Por favor, selecciona el tipo de paciente para establecer los límites de seguridad</string> <string name="patient_age_summary">Por favor, selecciona el tipo de paciente para establecer los límites de seguridad</string>
<string name="child">Niño</string> <string name="child">Niño</string>
<string name="teenage">Adolescente</string> <string name="teenage">Adolescente</string>
<string name="adult">Adulto</string> <string name="adult">Adulto</string>
<string name="resistantadult">Adulto resistente a la insulina</string> <string name="resistantadult">Adulto resistente a la insulina</string>
<string name="pregnant">Embarazada</string> <string name="pregnant">Embarazada</string>
<string name="treatmentssafety_maxbolus_title">Máximo bolo permitido [U]</string> <string name="max_bolus_title">Máximo bolo permitido [U]</string>
<string name="treatmentssafety_maxcarbs_title">Máximos carbohidratos permitidos [g]</string> <string name="max_carbs_title">Máximos carbohidratos permitidos [g]</string>
<string name="patientage">Tipo de paciente</string> <string name="patient_type">Tipo de paciente</string>
<!-- Overview --> <!-- Overview -->
<string name="snooze">Silenciar</string> <string name="snooze">Silenciar</string>
<string name="copy_existing_values">¿Deseas copiar los ajustes desde Nightscout, si existen?</string> <string name="copy_existing_values">¿Deseas copiar los ajustes desde Nightscout, si existen?</string>

View file

@ -240,15 +240,15 @@
<string name="maxvalueinpreferences">valeur Max dans les préférences</string> <string name="maxvalueinpreferences">valeur Max dans les préférences</string>
<string name="hardlimit">limite fixée</string> <string name="hardlimit">limite fixée</string>
<string name="treatmentssafety_title">Traitements de sécurité</string> <string name="treatmentssafety_title">Traitements de sécurité</string>
<string name="patientage_summary">Veuillez sélectionner le type de patient pour définir les limites de sécurité</string> <string name="patient_age_summary">Veuillez sélectionner le type de patient pour définir les limites de sécurité</string>
<string name="child"> Enfant</string> <string name="child"> Enfant</string>
<string name="teenage">Adolescent</string> <string name="teenage">Adolescent</string>
<string name="adult">Adulte</string> <string name="adult">Adulte</string>
<string name="resistantadult">Adulte résistant à l\'insuline</string> <string name="resistantadult">Adulte résistant à l\'insuline</string>
<string name="pregnant">Grossesse</string> <string name="pregnant">Grossesse</string>
<string name="treatmentssafety_maxbolus_title">Maximum Bolus autorisé [U]</string> <string name="max_bolus_title">Maximum Bolus autorisé [U]</string>
<string name="treatmentssafety_maxcarbs_title">Maximum de Glucides autorisé [g]</string> <string name="max_carbs_title">Maximum de Glucides autorisé [g]</string>
<string name="patientage">Type de patient</string> <string name="patient_type">Type de patient</string>
<!-- Overview --> <!-- Overview -->
<string name="snooze">Masquer</string> <string name="snooze">Masquer</string>
<string name="copy_existing_values">Copier les paramètres NS (s\'ils existent)?</string> <string name="copy_existing_values">Copier les paramètres NS (s\'ils existent)?</string>

View file

@ -29,7 +29,7 @@
<string name="child">Páiste</string> <string name="child">Páiste</string>
<string name="teenage">Déagóirí</string> <string name="teenage">Déagóirí</string>
<string name="adult">Duine fásta</string> <string name="adult">Duine fásta</string>
<string name="patientage">Othar cineál</string> <string name="patient_type">Othar cineál</string>
<!-- Overview --> <!-- Overview -->
<string name="apsmode_title">APS mód</string> <string name="apsmode_title">APS mód</string>
<string name="overview_cgm">CGM</string> <string name="overview_cgm">CGM</string>

View file

@ -136,8 +136,8 @@
<string name="description_actions">Nekoliko izbora za brzi pristup uobičajenim funkcijama</string> <string name="description_actions">Nekoliko izbora za brzi pristup uobičajenim funkcijama</string>
<!-- Safety --> <!-- Safety -->
<string name="treatmentssafety_title">Sigurnosne postavke medikacije</string> <string name="treatmentssafety_title">Sigurnosne postavke medikacije</string>
<string name="treatmentssafety_maxbolus_title">Max dozvoljen bolus [U]</string> <string name="max_bolus_title">Max dozvoljen bolus [U]</string>
<string name="treatmentssafety_maxcarbs_title">Max dozvoljeni Uh [g]</string> <string name="max_carbs_title">Max dozvoljeni Uh [g]</string>
<!-- Overview --> <!-- Overview -->
<!-- NSClient --> <!-- NSClient -->
<string name="ns_upload_summary">Profili, bolusi, ugljikohidrati, privremeni bazali učitavaju se u NS</string> <string name="ns_upload_summary">Profili, bolusi, ugljikohidrati, privremeni bazali učitavaju se u NS</string>

View file

@ -26,7 +26,7 @@
<string name="adult">Felnőtt</string> <string name="adult">Felnőtt</string>
<string name="resistantadult">Inzulinrezisztens felnőtt</string> <string name="resistantadult">Inzulinrezisztens felnőtt</string>
<string name="pregnant">Várandós</string> <string name="pregnant">Várandós</string>
<string name="patientage">Betegkategória</string> <string name="patient_type">Betegkategória</string>
<!-- Overview --> <!-- Overview -->
<string name="snooze">Szundi</string> <string name="snooze">Szundi</string>
<string name="overview_cgm">CGM</string> <string name="overview_cgm">CGM</string>

View file

@ -152,15 +152,15 @@
<string name="maxvalueinpreferences">valore max nelle preferenze</string> <string name="maxvalueinpreferences">valore max nelle preferenze</string>
<string name="hardlimit">limite fisso</string> <string name="hardlimit">limite fisso</string>
<string name="treatmentssafety_title">Sicurezza trattamenti</string> <string name="treatmentssafety_title">Sicurezza trattamenti</string>
<string name="patientage_summary">Seleziona il tipo di paziente per configurare i limiti di sicurezza</string> <string name="patient_age_summary">Seleziona il tipo di paziente per configurare i limiti di sicurezza</string>
<string name="child">Bambino</string> <string name="child">Bambino</string>
<string name="teenage">Adolescente</string> <string name="teenage">Adolescente</string>
<string name="adult">Adulto</string> <string name="adult">Adulto</string>
<string name="resistantadult">Adulto insulino-resistente</string> <string name="resistantadult">Adulto insulino-resistente</string>
<string name="pregnant">Gravidanza</string> <string name="pregnant">Gravidanza</string>
<string name="treatmentssafety_maxbolus_title">Max bolo consentito [U]</string> <string name="max_bolus_title">Max bolo consentito [U]</string>
<string name="treatmentssafety_maxcarbs_title">Max CHO consentiti [g]</string> <string name="max_carbs_title">Max CHO consentiti [g]</string>
<string name="patientage">Tipo paziente</string> <string name="patient_type">Tipo paziente</string>
<!-- Overview --> <!-- Overview -->
<string name="snooze">Posticipa</string> <string name="snooze">Posticipa</string>
<string name="copy_existing_values">Copiare impostazioni NS (se esiste)?</string> <string name="copy_existing_values">Copiare impostazioni NS (se esiste)?</string>

View file

@ -55,15 +55,15 @@
<string name="maxvalueinpreferences">ערך מקסימלי בהעדפות</string> <string name="maxvalueinpreferences">ערך מקסימלי בהעדפות</string>
<string name="hardlimit">מגבלה קשיחה</string> <string name="hardlimit">מגבלה קשיחה</string>
<string name="treatmentssafety_title">בטיחות טיפולים</string> <string name="treatmentssafety_title">בטיחות טיפולים</string>
<string name="patientage_summary">נא לבחור את גיל המטופל\\ת להתאמת מגבלות בטיחות</string> <string name="patient_age_summary">נא לבחור את גיל המטופל\\ת להתאמת מגבלות בטיחות</string>
<string name="child">ילד\\ה</string> <string name="child">ילד\\ה</string>
<string name="teenage">מתבגר\\ת</string> <string name="teenage">מתבגר\\ת</string>
<string name="adult">מבוגר\\ת</string> <string name="adult">מבוגר\\ת</string>
<string name="resistantadult">מבוגר\\ת עם תנגודת אינסולין גבוהה</string> <string name="resistantadult">מבוגר\\ת עם תנגודת אינסולין גבוהה</string>
<string name="pregnant">הריון</string> <string name="pregnant">הריון</string>
<string name="treatmentssafety_maxbolus_title">בולוס מקסימלי מותר [U]</string> <string name="max_bolus_title">בולוס מקסימלי מותר [U]</string>
<string name="treatmentssafety_maxcarbs_title">מקסימום פחמימות מותר [g]</string> <string name="max_carbs_title">מקסימום פחמימות מותר [g]</string>
<string name="patientage">סוג המטופל\\ת</string> <string name="patient_type">סוג המטופל\\ת</string>
<!-- Overview --> <!-- Overview -->
<string name="snooze">נודניק</string> <string name="snooze">נודניק</string>
<string name="show_statuslights">הצגת אורות חיווי במסך הבית</string> <string name="show_statuslights">הצגת אורות חיווי במסך הבית</string>

View file

@ -59,15 +59,15 @@
<string name="maxvalueinpreferences">설정에서의 최대값</string> <string name="maxvalueinpreferences">설정에서의 최대값</string>
<string name="hardlimit">하드한계</string> <string name="hardlimit">하드한계</string>
<string name="treatmentssafety_title">관리 안전설정</string> <string name="treatmentssafety_title">관리 안전설정</string>
<string name="patientage_summary">안전 제한 설정을 위해 환자 유형을 선택하십시오.</string> <string name="patient_age_summary">안전 제한 설정을 위해 환자 유형을 선택하십시오.</string>
<string name="child">어린이</string> <string name="child">어린이</string>
<string name="teenage">청소년</string> <string name="teenage">청소년</string>
<string name="adult">성인</string> <string name="adult">성인</string>
<string name="resistantadult">인슐린 저항성 높은 성인</string> <string name="resistantadult">인슐린 저항성 높은 성인</string>
<string name="pregnant">임신 중</string> <string name="pregnant">임신 중</string>
<string name="treatmentssafety_maxbolus_title">최대 허용 Bolus [U]</string> <string name="max_bolus_title">최대 허용 Bolus [U]</string>
<string name="treatmentssafety_maxcarbs_title">최대 허용 탄수화물 [g]</string> <string name="max_carbs_title">최대 허용 탄수화물 [g]</string>
<string name="patientage">환자 유형</string> <string name="patient_type">환자 유형</string>
<!-- Overview --> <!-- Overview -->
<string name="snooze">스누즈</string> <string name="snooze">스누즈</string>
<string name="show_statuslights">홈화면에 상태 표시등 보여주기</string> <string name="show_statuslights">홈화면에 상태 표시등 보여주기</string>

View file

@ -75,15 +75,15 @@
<string name="maxvalueinpreferences">Maksimali reikšmė nustatymuose</string> <string name="maxvalueinpreferences">Maksimali reikšmė nustatymuose</string>
<string name="hardlimit">Nekeičiama riba</string> <string name="hardlimit">Nekeičiama riba</string>
<string name="treatmentssafety_title">Terapijos saugumas</string> <string name="treatmentssafety_title">Terapijos saugumas</string>
<string name="patientage_summary">Pasirinkite paciento tipą saugumo riboms nustatyti</string> <string name="patient_age_summary">Pasirinkite paciento tipą saugumo riboms nustatyti</string>
<string name="child">Vaikas</string> <string name="child">Vaikas</string>
<string name="teenage">Paauglys</string> <string name="teenage">Paauglys</string>
<string name="adult">Suaugęs</string> <string name="adult">Suaugęs</string>
<string name="resistantadult">Insulinui rezistentiškas suaugęs</string> <string name="resistantadult">Insulinui rezistentiškas suaugęs</string>
<string name="pregnant">Nėštumas</string> <string name="pregnant">Nėštumas</string>
<string name="treatmentssafety_maxbolus_title">Maksimalus leistinas bolusas [U]</string> <string name="max_bolus_title">Maksimalus leistinas bolusas [U]</string>
<string name="treatmentssafety_maxcarbs_title">Maks. leistini angliavandeniai [g]</string> <string name="max_carbs_title">Maks. leistini angliavandeniai [g]</string>
<string name="patientage">Paciento tipas</string> <string name="patient_type">Paciento tipas</string>
<!-- Overview --> <!-- Overview -->
<string name="snooze">Snausti</string> <string name="snooze">Snausti</string>
<string name="show_statuslights">Pradžios ekrane rodyti spalvotus indikatorius</string> <string name="show_statuslights">Pradžios ekrane rodyti spalvotus indikatorius</string>

View file

@ -124,15 +124,15 @@
<string name="maxvalueinpreferences">Maximum waarde in instellingen</string> <string name="maxvalueinpreferences">Maximum waarde in instellingen</string>
<string name="hardlimit">max limiet (SC)</string> <string name="hardlimit">max limiet (SC)</string>
<string name="treatmentssafety_title">Behandelingen veiligheid</string> <string name="treatmentssafety_title">Behandelingen veiligheid</string>
<string name="patientage_summary">Selecteer het type patiënt om de veiligheidslimieten in te stellen</string> <string name="patient_age_summary">Selecteer het type patiënt om de veiligheidslimieten in te stellen</string>
<string name="child">Kind</string> <string name="child">Kind</string>
<string name="teenage">Tiener</string> <string name="teenage">Tiener</string>
<string name="adult">Volwassene</string> <string name="adult">Volwassene</string>
<string name="resistantadult">insuline resistente volwassene</string> <string name="resistantadult">insuline resistente volwassene</string>
<string name="pregnant">Zwangerschap</string> <string name="pregnant">Zwangerschap</string>
<string name="treatmentssafety_maxbolus_title">Max toegestane bolus [E]</string> <string name="max_bolus_title">Max toegestane bolus [E]</string>
<string name="treatmentssafety_maxcarbs_title">Max toegestane koolhydraten [g]</string> <string name="max_carbs_title">Max toegestane koolhydraten [g]</string>
<string name="patientage">Type patiënt</string> <string name="patient_type">Type patiënt</string>
<!-- Overview --> <!-- Overview -->
<string name="copy_existing_values">NS instellingen kopiëren (indien aanwezig)?</string> <string name="copy_existing_values">NS instellingen kopiëren (indien aanwezig)?</string>
<string name="show_statuslights">Toon statusindicatoren op startscherm</string> <string name="show_statuslights">Toon statusindicatoren op startscherm</string>

View file

@ -239,15 +239,15 @@
<string name="maxvalueinpreferences">maks verdi i innstillingene</string> <string name="maxvalueinpreferences">maks verdi i innstillingene</string>
<string name="hardlimit">hard begrensning</string> <string name="hardlimit">hard begrensning</string>
<string name="treatmentssafety_title">Sikkerhet ved behandlinger</string> <string name="treatmentssafety_title">Sikkerhet ved behandlinger</string>
<string name="patientage_summary">Velg pasienttype for oppsett av sikkerhetsgrenser</string> <string name="patient_age_summary">Velg pasienttype for oppsett av sikkerhetsgrenser</string>
<string name="child">Barn</string> <string name="child">Barn</string>
<string name="teenage">Tenåring</string> <string name="teenage">Tenåring</string>
<string name="adult">Voksen</string> <string name="adult">Voksen</string>
<string name="resistantadult">Insulinresistent voksen</string> <string name="resistantadult">Insulinresistent voksen</string>
<string name="pregnant">Graviditet</string> <string name="pregnant">Graviditet</string>
<string name="treatmentssafety_maxbolus_title">Maks tillat bolus [U]</string> <string name="max_bolus_title">Maks tillat bolus [U]</string>
<string name="treatmentssafety_maxcarbs_title">Maks tillat karbo [g]</string> <string name="max_carbs_title">Maks tillat karbo [g]</string>
<string name="patientage">Pasienttype</string> <string name="patient_type">Pasienttype</string>
<!-- Overview --> <!-- Overview -->
<string name="snooze">Slumre</string> <string name="snooze">Slumre</string>
<string name="copy_existing_values">Kopiere NS innstillinger (hvis de eksisterer)?</string> <string name="copy_existing_values">Kopiere NS innstillinger (hvis de eksisterer)?</string>

View file

@ -57,15 +57,15 @@
<string name="maxvalueinpreferences">maks. wartość w ustawieniach</string> <string name="maxvalueinpreferences">maks. wartość w ustawieniach</string>
<string name="hardlimit">twarde ograniczenie</string> <string name="hardlimit">twarde ograniczenie</string>
<string name="treatmentssafety_title">Bezpieczeństwo terapii</string> <string name="treatmentssafety_title">Bezpieczeństwo terapii</string>
<string name="patientage_summary">Wybierz typ pacjenta, aby ustawić limity bezpieczeństwa</string> <string name="patient_age_summary">Wybierz typ pacjenta, aby ustawić limity bezpieczeństwa</string>
<string name="child">Dziecko</string> <string name="child">Dziecko</string>
<string name="teenage">Nastolatek</string> <string name="teenage">Nastolatek</string>
<string name="adult">Osoba dorosła</string> <string name="adult">Osoba dorosła</string>
<string name="resistantadult">Osoba dorosła insulinooporna</string> <string name="resistantadult">Osoba dorosła insulinooporna</string>
<string name="pregnant">Ciąża</string> <string name="pregnant">Ciąża</string>
<string name="treatmentssafety_maxbolus_title">Maks. dopuszczalny bolus [U]</string> <string name="max_bolus_title">Maks. dopuszczalny bolus [U]</string>
<string name="treatmentssafety_maxcarbs_title">Maks. dopuszczalne węglowodany [g]</string> <string name="max_carbs_title">Maks. dopuszczalne węglowodany [g]</string>
<string name="patientage">Typ pacjenta</string> <string name="patient_type">Typ pacjenta</string>
<!-- Overview --> <!-- Overview -->
<string name="snooze">Wycisz</string> <string name="snooze">Wycisz</string>
<string name="show_statuslights">Pokaż diody stanu na ekranie głównym</string> <string name="show_statuslights">Pokaż diody stanu na ekranie głównym</string>

View file

@ -59,15 +59,15 @@
<string name="maxvalueinpreferences">valor máx nas preferências</string> <string name="maxvalueinpreferences">valor máx nas preferências</string>
<string name="hardlimit">limite rígido</string> <string name="hardlimit">limite rígido</string>
<string name="treatmentssafety_title">Segurança do Tratamento</string> <string name="treatmentssafety_title">Segurança do Tratamento</string>
<string name="patientage_summary">Selecione o tipo de paciente para configurar os limites de segurança</string> <string name="patient_age_summary">Selecione o tipo de paciente para configurar os limites de segurança</string>
<string name="child">Criança</string> <string name="child">Criança</string>
<string name="teenage">Adolescente</string> <string name="teenage">Adolescente</string>
<string name="adult">Adulto</string> <string name="adult">Adulto</string>
<string name="resistantadult">Adulto resistente à insulina</string> <string name="resistantadult">Adulto resistente à insulina</string>
<string name="pregnant">Grávida</string> <string name="pregnant">Grávida</string>
<string name="treatmentssafety_maxbolus_title">Máximo bolus permitido [U]</string> <string name="max_bolus_title">Máximo bolus permitido [U]</string>
<string name="treatmentssafety_maxcarbs_title">Máximo de carbs permitidos [g]</string> <string name="max_carbs_title">Máximo de carbs permitidos [g]</string>
<string name="patientage">Tipo de paciente</string> <string name="patient_type">Tipo de paciente</string>
<!-- Overview --> <!-- Overview -->
<string name="snooze">Silenciar</string> <string name="snooze">Silenciar</string>
<string name="show_statuslights">Mostrar luzes de estado no ecrã principal</string> <string name="show_statuslights">Mostrar luzes de estado no ecrã principal</string>

View file

@ -55,15 +55,15 @@
<string name="maxvalueinpreferences">valor máx nas preferências</string> <string name="maxvalueinpreferences">valor máx nas preferências</string>
<string name="hardlimit">limite rígido</string> <string name="hardlimit">limite rígido</string>
<string name="treatmentssafety_title">Segurança de Tratamentos</string> <string name="treatmentssafety_title">Segurança de Tratamentos</string>
<string name="patientage_summary">Por favor seleccione o tipo de paciente para configurar limites de segurança</string> <string name="patient_age_summary">Por favor seleccione o tipo de paciente para configurar limites de segurança</string>
<string name="child">Criança</string> <string name="child">Criança</string>
<string name="teenage">Adolescente</string> <string name="teenage">Adolescente</string>
<string name="adult">Adulto</string> <string name="adult">Adulto</string>
<string name="resistantadult">Adulto resistente insulina</string> <string name="resistantadult">Adulto resistente insulina</string>
<string name="pregnant">Gravidez</string> <string name="pregnant">Gravidez</string>
<string name="treatmentssafety_maxbolus_title">Máx bólus permitido [U]</string> <string name="max_bolus_title">Máx bólus permitido [U]</string>
<string name="treatmentssafety_maxcarbs_title">Máx hidratos permitidos [g]</string> <string name="max_carbs_title">Máx hidratos permitidos [g]</string>
<string name="patientage">Tipo de Paciente</string> <string name="patient_type">Tipo de Paciente</string>
<!-- Overview --> <!-- Overview -->
<string name="snooze">Silenciar</string> <string name="snooze">Silenciar</string>
<string name="show_statuslights">Mostrar luzes de estado no ecrã principal</string> <string name="show_statuslights">Mostrar luzes de estado no ecrã principal</string>

View file

@ -54,15 +54,15 @@
<string name="maxvalueinpreferences">valoare maximă în preferințe</string> <string name="maxvalueinpreferences">valoare maximă în preferințe</string>
<string name="hardlimit">limită fizică</string> <string name="hardlimit">limită fizică</string>
<string name="treatmentssafety_title">Setări siguranță tratament</string> <string name="treatmentssafety_title">Setări siguranță tratament</string>
<string name="patientage_summary">Te rog confirmă tipul de pacient pentru a stabilii limitele de siguranță</string> <string name="patient_age_summary">Te rog confirmă tipul de pacient pentru a stabilii limitele de siguranță</string>
<string name="child">Copil</string> <string name="child">Copil</string>
<string name="teenage">Adolescent</string> <string name="teenage">Adolescent</string>
<string name="adult">Adult</string> <string name="adult">Adult</string>
<string name="resistantadult">Adult rezistent la insulină</string> <string name="resistantadult">Adult rezistent la insulină</string>
<string name="pregnant">Sarcină</string> <string name="pregnant">Sarcină</string>
<string name="treatmentssafety_maxbolus_title">Bolus maxim admis [U]</string> <string name="max_bolus_title">Bolus maxim admis [U]</string>
<string name="treatmentssafety_maxcarbs_title">Carbohidrați admiși maxim [g]</string> <string name="max_carbs_title">Carbohidrați admiși maxim [g]</string>
<string name="patientage">Tip de pacient</string> <string name="patient_type">Tip de pacient</string>
<!-- Overview --> <!-- Overview -->
<string name="snooze">Amână</string> <string name="snooze">Amână</string>
<string name="show_statuslights">Afișați indicatorii luminoși ai pompei pe ecranul de start</string> <string name="show_statuslights">Afișați indicatorii luminoși ai pompei pe ecranul de start</string>

View file

@ -79,15 +79,15 @@
<string name="maxvalueinpreferences">максимальное значение в настройках</string> <string name="maxvalueinpreferences">максимальное значение в настройках</string>
<string name="hardlimit">жесткий предел</string> <string name="hardlimit">жесткий предел</string>
<string name="treatmentssafety_title">Безопасность терапии</string> <string name="treatmentssafety_title">Безопасность терапии</string>
<string name="patientage_summary">Выберите возраст пациента для установки ограничителей безопасности</string> <string name="patient_age_summary">Выберите возраст пациента для установки ограничителей безопасности</string>
<string name="child">Ребенок</string> <string name="child">Ребенок</string>
<string name="teenage">Подросток</string> <string name="teenage">Подросток</string>
<string name="adult">Взрослый</string> <string name="adult">Взрослый</string>
<string name="resistantadult">Инсулинорезистентный взрослый</string> <string name="resistantadult">Инсулинорезистентный взрослый</string>
<string name="pregnant">Беременность</string> <string name="pregnant">Беременность</string>
<string name="treatmentssafety_maxbolus_title">Макс разрешенный болюс [U]</string> <string name="max_bolus_title">Макс разрешенный болюс [U]</string>
<string name="treatmentssafety_maxcarbs_title">Макс разрешенные углеводы [g]</string> <string name="max_carbs_title">Макс разрешенные углеводы [g]</string>
<string name="patientage">Тип пациента</string> <string name="patient_type">Тип пациента</string>
<!-- Overview --> <!-- Overview -->
<string name="snooze">Отложить</string> <string name="snooze">Отложить</string>
<string name="show_statuslights">Показать индикаторы состояния на главном экране</string> <string name="show_statuslights">Показать индикаторы состояния на главном экране</string>

View file

@ -116,15 +116,15 @@
<string name="maxvalueinpreferences">maximálna hodnota v nastaveniach</string> <string name="maxvalueinpreferences">maximálna hodnota v nastaveniach</string>
<string name="hardlimit">pevný limit</string> <string name="hardlimit">pevný limit</string>
<string name="treatmentssafety_title">Bezpečnosť zadania ošetrenia</string> <string name="treatmentssafety_title">Bezpečnosť zadania ošetrenia</string>
<string name="patientage_summary">Prosím vyberte typ pacienta pre nastavenie bezpečnostných limitov</string> <string name="patient_age_summary">Prosím vyberte typ pacienta pre nastavenie bezpečnostných limitov</string>
<string name="child">Dieťa</string> <string name="child">Dieťa</string>
<string name="teenage">Dospievajúci</string> <string name="teenage">Dospievajúci</string>
<string name="adult">Dospelý</string> <string name="adult">Dospelý</string>
<string name="resistantadult">Dospelý s nízkou citlivosťou</string> <string name="resistantadult">Dospelý s nízkou citlivosťou</string>
<string name="pregnant">Tehotenstvo</string> <string name="pregnant">Tehotenstvo</string>
<string name="treatmentssafety_maxbolus_title">Maximálny povolený bolus [JI]</string> <string name="max_bolus_title">Maximálny povolený bolus [JI]</string>
<string name="treatmentssafety_maxcarbs_title">Max. povolené množstvo sacharidov [g]</string> <string name="max_carbs_title">Max. povolené množstvo sacharidov [g]</string>
<string name="patientage">Typ pacienta</string> <string name="patient_type">Typ pacienta</string>
<!-- Overview --> <!-- Overview -->
<string name="copy_existing_values">Skopírovať nastavenia NS (ak existujú)?</string> <string name="copy_existing_values">Skopírovať nastavenia NS (ak existujú)?</string>
<string name="show_statuslights">Zobraziť indikátory stavu na domovskej obrazovke</string> <string name="show_statuslights">Zobraziť indikátory stavu na domovskej obrazovke</string>

View file

@ -24,8 +24,8 @@
<string name="description_actions">Neke tipke za brzi pristup uobičajenim funkcijama</string> <string name="description_actions">Neke tipke za brzi pristup uobičajenim funkcijama</string>
<!-- Safety --> <!-- Safety -->
<string name="treatmentssafety_title">Sigurnost tretmana</string> <string name="treatmentssafety_title">Sigurnost tretmana</string>
<string name="treatmentssafety_maxbolus_title">Maks. dozvoljen bolus [U]</string> <string name="max_bolus_title">Maks. dozvoljen bolus [U]</string>
<string name="treatmentssafety_maxcarbs_title">Maks. dozvoljeni ugljeni hidrati [g]</string> <string name="max_carbs_title">Maks. dozvoljeni ugljeni hidrati [g]</string>
<!-- Overview --> <!-- Overview -->
<string name="apsmode_title">APS režim</string> <string name="apsmode_title">APS režim</string>
<string name="setbasalquestion">Prihvatite novi privremeni bazal:</string> <string name="setbasalquestion">Prihvatite novi privremeni bazal:</string>

View file

@ -62,15 +62,15 @@
<string name="maxvalueinpreferences">maxvärde i Inställningar</string> <string name="maxvalueinpreferences">maxvärde i Inställningar</string>
<string name="hardlimit">hård begränsning</string> <string name="hardlimit">hård begränsning</string>
<string name="treatmentssafety_title">Säkerhetsbegränsningar</string> <string name="treatmentssafety_title">Säkerhetsbegränsningar</string>
<string name="patientage_summary">Välj en patienttyp för att ställa in säkerhetsgränser</string> <string name="patient_age_summary">Välj en patienttyp för att ställa in säkerhetsgränser</string>
<string name="child">Barn</string> <string name="child">Barn</string>
<string name="teenage">Tonåring</string> <string name="teenage">Tonåring</string>
<string name="adult">Vuxen</string> <string name="adult">Vuxen</string>
<string name="resistantadult">Insulinresistent vuxen</string> <string name="resistantadult">Insulinresistent vuxen</string>
<string name="pregnant">Gravid</string> <string name="pregnant">Gravid</string>
<string name="treatmentssafety_maxbolus_title">Max tillåten bolus [U]</string> <string name="max_bolus_title">Max tillåten bolus [U]</string>
<string name="treatmentssafety_maxcarbs_title">Max tillåtna KH [g]</string> <string name="max_carbs_title">Max tillåtna KH [g]</string>
<string name="patientage">Patienttyp</string> <string name="patient_type">Patienttyp</string>
<!-- Overview --> <!-- Overview -->
<string name="snooze">Snooze</string> <string name="snooze">Snooze</string>
<string name="show_statuslights">Visa \"statuslampor\" på hemskärmen</string> <string name="show_statuslights">Visa \"statuslampor\" på hemskärmen</string>

View file

@ -72,15 +72,15 @@
<string name="maxvalueinpreferences">tercihlerde maksimum değer</string> <string name="maxvalueinpreferences">tercihlerde maksimum değer</string>
<string name="hardlimit">sert sınır</string> <string name="hardlimit">sert sınır</string>
<string name="treatmentssafety_title">Tedavi güvenliği</string> <string name="treatmentssafety_title">Tedavi güvenliği</string>
<string name="patientage_summary">Güvenlik limitlerini ayarlamak için lütfen hasta tipini seçin</string> <string name="patient_age_summary">Güvenlik limitlerini ayarlamak için lütfen hasta tipini seçin</string>
<string name="child">Çocuk</string> <string name="child">Çocuk</string>
<string name="teenage">Ergen</string> <string name="teenage">Ergen</string>
<string name="adult">Yetişkin</string> <string name="adult">Yetişkin</string>
<string name="resistantadult">Yetişkin İnsülin direnci</string> <string name="resistantadult">Yetişkin İnsülin direnci</string>
<string name="pregnant">Hamile</string> <string name="pregnant">Hamile</string>
<string name="treatmentssafety_maxbolus_title">Maks izin verilen bolus [U]</string> <string name="max_bolus_title">Maks izin verilen bolus [U]</string>
<string name="treatmentssafety_maxcarbs_title">Maks izin verilen karbonhidrat [g]</string> <string name="max_carbs_title">Maks izin verilen karbonhidrat [g]</string>
<string name="patientage">Hasta tipi</string> <string name="patient_type">Hasta tipi</string>
<!-- Overview --> <!-- Overview -->
<string name="snooze">Ertele</string> <string name="snooze">Ertele</string>
<string name="show_statuslights">Ana ekranda durum ışıklarını göster</string> <string name="show_statuslights">Ana ekranda durum ışıklarını göster</string>

View file

@ -54,15 +54,15 @@
<string name="maxvalueinpreferences">在参数选项里的最大值</string> <string name="maxvalueinpreferences">在参数选项里的最大值</string>
<string name="hardlimit">硬限制</string> <string name="hardlimit">硬限制</string>
<string name="treatmentssafety_title">治疗安全</string> <string name="treatmentssafety_title">治疗安全</string>
<string name="patientage_summary">请选择患者类型,以设置安全限制</string> <string name="patient_age_summary">请选择患者类型,以设置安全限制</string>
<string name="child">儿童</string> <string name="child">儿童</string>
<string name="teenage">青少年</string> <string name="teenage">青少年</string>
<string name="adult">成人</string> <string name="adult">成人</string>
<string name="resistantadult">胰岛素抵抗成人</string> <string name="resistantadult">胰岛素抵抗成人</string>
<string name="pregnant">孕妇</string> <string name="pregnant">孕妇</string>
<string name="treatmentssafety_maxbolus_title">允许的最大大剂量值[U]</string> <string name="max_bolus_title">允许的最大大剂量值[U]</string>
<string name="treatmentssafety_maxcarbs_title">最大允许碳水化合物 [g]</string> <string name="max_carbs_title">最大允许碳水化合物 [g]</string>
<string name="patientage">患者类型</string> <string name="patient_type">患者类型</string>
<!-- Overview --> <!-- Overview -->
<string name="snooze">稍后再响</string> <string name="snooze">稍后再响</string>
<string name="show_statuslights">在主屏幕上显示状态指示灯</string> <string name="show_statuslights">在主屏幕上显示状态指示灯</string>

View file

@ -44,30 +44,4 @@
<item>YpsoPump</item> <item>YpsoPump</item>
</string-array> </string-array>
<string-array name="ageArray">
<item>@string/child</item>
<item>@string/teenage</item>
<item>@string/adult</item>
<item>@string/resistantadult</item>
<item>@string/pregnant</item>
</string-array>
<string-array name="ageValues" translatable="false">
<item>@string/key_child</item>
<item>@string/key_teenage</item>
<item>@string/key_adult</item>
<item>@string/key_resistantadult</item>
<item>@string/key_pregnant</item>
</string-array>
<string-array name="aps_modeArray">
<item>@string/closedloop</item>
<item>@string/openloop</item>
<item>@string/lowglucosesuspend</item>
</string-array>
<string-array name="aps_modeValues" translatable="false">
<item>closed</item>
<item>open</item>
<item>lgs</item>
</string-array>
</resources> </resources>

View file

@ -4,7 +4,6 @@
<!-- SMS Communicator & OTP Authenticator --> <!-- SMS Communicator & OTP Authenticator -->
<string name="key_smscommunicator_otp_password" translatable="false">smscommunicator_otp_password</string> <string name="key_smscommunicator_otp_password" translatable="false">smscommunicator_otp_password</string>
<string name="key_smscommunicator_otp_secret" translatable="false">smscommunicator_otp_secret</string> <string name="key_smscommunicator_otp_secret" translatable="false">smscommunicator_otp_secret</string>
<string name="key_patient_name" translatable="false">patient_name</string>
<string name="key_smscommunicator_remote_bolus_min_distance" translatable="false">smscommunicator_remotebolusmindistance</string> <string name="key_smscommunicator_remote_bolus_min_distance" translatable="false">smscommunicator_remotebolusmindistance</string>
<string name="key_smscommunicator_allowednumbers" translatable="false">smscommunicator_allowednumbers</string> <string name="key_smscommunicator_allowednumbers" translatable="false">smscommunicator_allowednumbers</string>
<string name="key_smscommunicator_remote_commands_allowed" translatable="false">smscommunicator_remotecommandsallowed</string> <string name="key_smscommunicator_remote_commands_allowed" translatable="false">smscommunicator_remotecommandsallowed</string>
@ -272,8 +271,6 @@
<string name="patch_pump">Patch pump</string> <string name="patch_pump">Patch pump</string>
<!-- Safety --> <!-- Safety -->
<string name="key_treatmentssafety_maxbolus" translatable="false">treatmentssafety_maxbolus</string>
<string name="limitingextendedbolus">Limiting extended bolus to %1$.1f U because of %2$s</string> <string name="limitingextendedbolus">Limiting extended bolus to %1$.1f U because of %2$s</string>
<string name="limitingcarbs">Limiting carbs to %1$d g because of %2$s</string> <string name="limitingcarbs">Limiting carbs to %1$d g because of %2$s</string>
<string name="limitingiob">Limiting IOB to %1$.1f U because of %2$s</string> <string name="limitingiob">Limiting IOB to %1$.1f U because of %2$s</string>
@ -289,15 +286,6 @@
<string name="maxvalueinpreferences">max value in preferences</string> <string name="maxvalueinpreferences">max value in preferences</string>
<string name="hardlimit">hard limit</string> <string name="hardlimit">hard limit</string>
<string name="treatmentssafety_title">Treatments safety</string> <string name="treatmentssafety_title">Treatments safety</string>
<string name="patientage_summary">Please select patient type to setup safety limits</string>
<string name="child">Child</string>
<string name="teenage">Teenage</string>
<string name="adult">Adult</string>
<string name="resistantadult">Insulin resistant adult</string>
<string name="pregnant">Pregnancy</string>
<string name="treatmentssafety_maxbolus_title">Max allowed bolus [U]</string>
<string name="treatmentssafety_maxcarbs_title">Max allowed carbs [g]</string>
<string name="patientage">Patient type</string>
<!-- Overview --> <!-- Overview -->
<string name="key_statuslights_copy_ns" translatable="false">statuslights_copy_ns</string> <string name="key_statuslights_copy_ns" translatable="false">statuslights_copy_ns</string>

View file

@ -13,14 +13,14 @@
android:entries="@array/ageArray" android:entries="@array/ageArray"
android:entryValues="@array/ageValues" android:entryValues="@array/ageValues"
android:key="@string/key_age" android:key="@string/key_age"
android:summary="@string/patientage_summary" android:summary="@string/patient_age_summary"
android:title="@string/patientage" /> android:title="@string/patient_type" />
<info.nightscout.androidaps.utils.textValidator.ValidatingEditTextPreference <info.nightscout.androidaps.utils.textValidator.ValidatingEditTextPreference
android:defaultValue="3" android:defaultValue="3"
android:inputType="numberDecimal" android:inputType="numberDecimal"
android:key="@string/key_treatmentssafety_maxbolus" android:key="@string/key_treatmentssafety_maxbolus"
android:title="@string/treatmentssafety_maxbolus_title" android:title="@string/max_bolus_title"
validate:floatmaxNumber="25.0" validate:floatmaxNumber="25.0"
validate:floatminNumber="0.1" validate:floatminNumber="0.1"
validate:testType="floatNumericRange" /> validate:testType="floatNumericRange" />
@ -29,7 +29,7 @@
android:defaultValue="48" android:defaultValue="48"
android:inputType="number" android:inputType="number"
android:key="@string/key_treatmentssafety_maxcarbs" android:key="@string/key_treatmentssafety_maxcarbs"
android:title="@string/treatmentssafety_maxcarbs_title" android:title="@string/max_carbs_title"
validate:floatmaxNumber="200" validate:floatmaxNumber="200"
validate:floatminNumber="1" validate:floatminNumber="1"
validate:testType="numericRange" /> validate:testType="numericRange" />

View file

@ -18,6 +18,7 @@ include ':plugins:aps'
include ':plugins:automation' include ':plugins:automation'
include ':plugins:main' include ':plugins:main'
include ':plugins:openhumans' include ':plugins:openhumans'
include ':plugins:configuration'
include ':pump:combo' include ':pump:combo'
include ':pump:dana' include ':pump:dana'
include ':pump:danar' include ':pump:danar'