:plugins:configuration cleanup

This commit is contained in:
Milos Kozak 2023-09-21 18:59:20 +02:00
parent 7c7879e0b0
commit 7b07580881
66 changed files with 267 additions and 298 deletions

View file

@ -29,6 +29,9 @@ import androidx.core.view.GravityCompat
import androidx.core.view.MenuCompat
import androidx.core.view.MenuProvider
import androidx.viewpager2.widget.ViewPager2
import app.aaps.configuration.activities.DaggerAppCompatActivityWithResult
import app.aaps.configuration.activities.SingleFragmentActivity
import app.aaps.configuration.setupwizard.SetupWizardActivity
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.google.android.material.tabs.TabLayoutMediator
import com.google.firebase.crashlytics.FirebaseCrashlytics
@ -37,9 +40,6 @@ import com.joanzapata.iconify.fonts.FontAwesomeModule
import info.nightscout.androidaps.activities.HistoryBrowseActivity
import info.nightscout.androidaps.activities.PreferencesActivity
import info.nightscout.androidaps.databinding.ActivityMainBinding
import info.nightscout.configuration.activities.DaggerAppCompatActivityWithResult
import info.nightscout.configuration.activities.SingleFragmentActivity
import info.nightscout.configuration.setupwizard.SetupWizardActivity
import info.nightscout.core.ui.UIRunnable
import info.nightscout.core.ui.dialogs.OKDialog
import info.nightscout.core.ui.locale.LocaleHelper
@ -207,8 +207,8 @@ class MainActivity : DaggerAppCompatActivityWithResult() {
R.id.nav_about -> {
var message = "Build: ${BuildConfig.BUILDVERSION}\n"
message += "Flavor: ${BuildConfig.FLAVOR}${BuildConfig.BUILD_TYPE}\n"
message += "${rh.gs(info.nightscout.configuration.R.string.configbuilder_nightscoutversion_label)} ${activePlugin.activeNsClient?.detectedNsVersion() ?: rh.gs(info.nightscout.plugins.R.string.not_available_full)}"
if (config.isEngineeringMode()) message += "\n${rh.gs(info.nightscout.configuration.R.string.engineering_mode_enabled)}"
message += "${rh.gs(app.aaps.configuration.R.string.configbuilder_nightscoutversion_label)} ${activePlugin.activeNsClient?.detectedNsVersion() ?: rh.gs(info.nightscout.plugins.R.string.not_available_full)}"
if (config.isEngineeringMode()) message += "\n${rh.gs(app.aaps.configuration.R.string.engineering_mode_enabled)}"
if (config.isUnfinishedMode()) message += "\nUnfinished mode enabled"
if (!fabricPrivacy.fabricEnabled()) message += "\n${rh.gs(info.nightscout.core.ui.R.string.fabric_upload_disabled)}"
message += rh.gs(info.nightscout.core.ui.R.string.about_link_urls)
@ -307,7 +307,7 @@ class MainActivity : DaggerAppCompatActivityWithResult() {
}
private fun startWizard(): Boolean =
!sp.getBoolean(info.nightscout.configuration.R.string.key_setupwizard_processed, false)
!sp.getBoolean(app.aaps.configuration.R.string.key_setupwizard_processed, false)
override fun onPostCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) {
super.onPostCreate(savedInstanceState, persistentState)

View file

@ -223,8 +223,8 @@ class MainApp : DaggerApplication() {
}
if (!sp.contains(info.nightscout.plugins.sync.R.string.key_ns_log_app_started_event))
sp.putBoolean(info.nightscout.plugins.sync.R.string.key_ns_log_app_started_event, config.APS)
if (sp.getString(info.nightscout.configuration.R.string.key_maintenance_logs_email, "") == "logs@androidaps.org")
sp.putString(info.nightscout.configuration.R.string.key_maintenance_logs_email, "logs@aaps.app")
if (sp.getString(app.aaps.configuration.R.string.key_maintenance_logs_email, "") == "logs@androidaps.org")
sp.putString(app.aaps.configuration.R.string.key_maintenance_logs_email, "logs@aaps.app")
// fix values for theme switching
sp.putString(info.nightscout.plugins.R.string.value_dark_theme, "dark")
sp.putString(info.nightscout.plugins.R.string.value_light_theme, "light")

View file

@ -15,6 +15,7 @@ import androidx.preference.PreferenceGroup
import androidx.preference.PreferenceManager
import androidx.preference.PreferenceScreen
import androidx.preference.size
import app.aaps.configuration.maintenance.MaintenancePlugin
import dagger.android.support.AndroidSupportInjection
import info.nightscout.androidaps.R
import info.nightscout.androidaps.danaRKorean.DanaRKoreanPlugin
@ -24,7 +25,6 @@ import info.nightscout.androidaps.plugins.pump.eopatch.EopatchPumpPlugin
import info.nightscout.androidaps.plugins.pump.insight.LocalInsightPlugin
import info.nightscout.androidaps.plugins.pump.medtronic.MedtronicPumpPlugin
import info.nightscout.automation.AutomationPlugin
import info.nightscout.configuration.maintenance.MaintenancePlugin
import info.nightscout.core.ui.dialogs.OKDialog
import info.nightscout.implementation.plugin.PluginStore
import info.nightscout.insulin.InsulinOrefFreePeakPlugin
@ -226,7 +226,7 @@ class MyPreferenceFragment : PreferenceFragmentCompat(), OnSharedPreferenceChang
addPreferencesFromResourceIfEnabled(wearPlugin, rootKey)
addPreferencesFromResourceIfEnabled(statusLinePlugin, rootKey)
addPreferencesFromResource(R.xml.pref_alerts, rootKey)
addPreferencesFromResource(info.nightscout.configuration.R.xml.pref_datachoices, rootKey)
addPreferencesFromResource(app.aaps.configuration.R.xml.pref_datachoices, rootKey)
addPreferencesFromResourceIfEnabled(maintenancePlugin, rootKey)
addPreferencesFromResourceIfEnabled(openHumansUploaderPlugin, rootKey)
}
@ -251,7 +251,7 @@ class MyPreferenceFragment : PreferenceFragmentCompat(), OnSharedPreferenceChang
}
if (key == rh.gs(info.nightscout.plugins.aps.R.string.key_openapsama_use_autosens) && sp.getBoolean(info.nightscout.plugins.aps.R.string.key_openapsama_use_autosens, false)) {
activity?.let {
OKDialog.show(it, rh.gs(info.nightscout.configuration.R.string.configbuilder_sensitivity), rh.gs(R.string.sensitivity_warning))
OKDialog.show(it, rh.gs(app.aaps.configuration.R.string.configbuilder_sensitivity), rh.gs(R.string.sensitivity_warning))
}
}
checkForBiometricFallback(key)
@ -276,7 +276,8 @@ class MyPreferenceFragment : PreferenceFragmentCompat(), OnSharedPreferenceChang
) {
activity?.let {
val title = rh.gs(info.nightscout.core.ui.R.string.unsecure_fallback_biometric)
val message = rh.gs(info.nightscout.configuration.R.string.master_password_missing, rh.gs(info.nightscout.configuration.R.string.configbuilder_general), rh.gs(info.nightscout.configuration.R.string.protection))
val message =
rh.gs(app.aaps.configuration.R.string.master_password_missing, rh.gs(app.aaps.configuration.R.string.configbuilder_general), rh.gs(app.aaps.configuration.R.string.protection))
OKDialog.show(it, title = title, message = message)
}
}
@ -441,7 +442,7 @@ class MyPreferenceFragment : PreferenceFragmentCompat(), OnSharedPreferenceChang
override fun onPreferenceTreeClick(preference: Preference): Boolean {
context?.let { context ->
if (preference.key == rh.gs(info.nightscout.core.utils.R.string.key_master_password)) {
passwordCheck.queryPassword(context, info.nightscout.configuration.R.string.current_master_password, info.nightscout.core.utils.R.string.key_master_password, {
passwordCheck.queryPassword(context, app.aaps.configuration.R.string.current_master_password, info.nightscout.core.utils.R.string.key_master_password, {
passwordCheck.setPassword(context, info.nightscout.core.ui.R.string.master_password, info.nightscout.core.utils.R.string.key_master_password)
})
return true

View file

@ -8,9 +8,9 @@ import androidx.appcompat.widget.SearchView
import androidx.core.view.MenuProvider
import androidx.preference.PreferenceFragmentCompat
import androidx.preference.PreferenceScreen
import app.aaps.configuration.activities.DaggerAppCompatActivityWithResult
import info.nightscout.androidaps.R
import info.nightscout.androidaps.databinding.ActivityPreferencesBinding
import info.nightscout.configuration.activities.DaggerAppCompatActivityWithResult
class PreferencesActivity : DaggerAppCompatActivityWithResult(), PreferenceFragmentCompat.OnPreferenceStartScreenCallback {
@ -25,7 +25,7 @@ class PreferencesActivity : DaggerAppCompatActivityWithResult(), PreferenceFragm
binding = ActivityPreferencesBinding.inflate(layoutInflater)
setContentView(binding.root)
title = rh.gs(info.nightscout.configuration.R.string.nav_preferences)
title = rh.gs(app.aaps.configuration.R.string.nav_preferences)
supportActionBar?.setDisplayHomeAsUpEnabled(true)
supportActionBar?.setDisplayShowHomeEnabled(true)
myPreferenceFragment = MyPreferenceFragment()

View file

@ -1,5 +1,6 @@
package info.nightscout.androidaps.di
import app.aaps.configuration.di.ConfigurationModule
import app.aaps.shared.impl.di.SharedImplModule
import dagger.BindsInstance
import dagger.Component
@ -15,7 +16,6 @@ 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.eros.di.OmnipodErosModule
import info.nightscout.automation.di.AutomationModule
import info.nightscout.configuration.di.ConfigurationModule
import info.nightscout.core.di.CoreModule
import info.nightscout.core.validators.di.ValidatorsModule
import info.nightscout.database.impl.DatabaseModule

View file

@ -1,5 +1,7 @@
package info.nightscout.androidaps.di
import app.aaps.configuration.configBuilder.ConfigBuilderPlugin
import app.aaps.configuration.maintenance.MaintenancePlugin
import dagger.Binds
import dagger.Module
import dagger.multibindings.IntKey
@ -7,15 +9,12 @@ import dagger.multibindings.IntoMap
import info.nightscout.androidaps.danaRKorean.DanaRKoreanPlugin
import info.nightscout.androidaps.danaRv2.DanaRv2Plugin
import info.nightscout.androidaps.danar.DanaRPlugin
import info.nightscout.plugins.sync.openhumans.OpenHumansUploaderPlugin
import info.nightscout.androidaps.plugins.pump.eopatch.EopatchPumpPlugin
import info.nightscout.androidaps.plugins.pump.insight.LocalInsightPlugin
import info.nightscout.androidaps.plugins.pump.medtronic.MedtronicPumpPlugin
import info.nightscout.androidaps.plugins.pump.omnipod.dash.OmnipodDashPumpPlugin
import info.nightscout.androidaps.plugins.pump.omnipod.eros.OmnipodErosPumpPlugin
import info.nightscout.automation.AutomationPlugin
import info.nightscout.configuration.configBuilder.ConfigBuilderPlugin
import info.nightscout.configuration.maintenance.MaintenancePlugin
import info.nightscout.insulin.InsulinLyumjevPlugin
import info.nightscout.insulin.InsulinOrefFreePeakPlugin
import info.nightscout.insulin.InsulinOrefRapidActingPlugin
@ -42,12 +41,13 @@ import info.nightscout.plugins.profile.ProfilePlugin
import info.nightscout.plugins.sync.dataBroadcaster.DataBroadcastPlugin
import info.nightscout.plugins.sync.nsclient.NSClientPlugin
import info.nightscout.plugins.sync.nsclientV3.NSClientV3Plugin
import info.nightscout.plugins.sync.openhumans.OpenHumansUploaderPlugin
import info.nightscout.plugins.sync.tidepool.TidepoolPlugin
import info.nightscout.plugins.sync.xdrip.XdripPlugin
import info.nightscout.pump.combo.ComboPlugin
import info.nightscout.pump.combov2.ComboV2Plugin
import info.nightscout.pump.medtrum.MedtrumPlugin
import info.nightscout.pump.diaconn.DiaconnG8Plugin
import info.nightscout.pump.medtrum.MedtrumPlugin
import info.nightscout.pump.virtual.VirtualPumpPlugin
import info.nightscout.sensitivity.SensitivityAAPSPlugin
import info.nightscout.sensitivity.SensitivityOref1Plugin

View file

@ -6,13 +6,13 @@ import android.os.Bundle
import androidx.annotation.RawRes
import androidx.annotation.StringRes
import androidx.fragment.app.FragmentManager
import app.aaps.configuration.activities.SingleFragmentActivity
import dagger.android.HasAndroidInjector
import info.nightscout.androidaps.MainActivity
import info.nightscout.androidaps.R
import info.nightscout.androidaps.activities.HistoryBrowseActivity
import info.nightscout.androidaps.activities.MyPreferenceFragment
import info.nightscout.androidaps.activities.PreferencesActivity
import info.nightscout.configuration.activities.SingleFragmentActivity
import info.nightscout.core.events.EventNewNotification
import info.nightscout.core.ui.toast.ToastUtils
import info.nightscout.interfaces.notifications.Notification
@ -160,6 +160,7 @@ class UiInteractionImpl @Inject constructor(
}
.show(fragmentManager, "CareDialog")
}
override fun runBolusProgressDialog(fragmentManager: FragmentManager, insulin: Double, id: Long) {
BolusProgressDialog().also {
it.setInsulin(insulin)

View file

@ -9,9 +9,9 @@ import androidx.work.WorkManager
import androidx.work.WorkQuery
import androidx.work.WorkerParameters
import androidx.work.workDataOf
import app.aaps.configuration.maintenance.MaintenancePlugin
import com.google.common.util.concurrent.ListenableFuture
import info.nightscout.androidaps.R
import info.nightscout.configuration.maintenance.MaintenancePlugin
import info.nightscout.core.profile.ProfileSealed
import info.nightscout.core.utils.worker.LoggingWorker
import info.nightscout.database.impl.AppRepository

View file

@ -1,9 +1,9 @@
package info.nightscout.plugins.configBuilder
import app.aaps.configuration.configBuilder.ConfigBuilderPlugin
import app.aaps.shared.tests.TestBase
import dagger.android.AndroidInjector
import dagger.android.HasAndroidInjector
import info.nightscout.configuration.configBuilder.ConfigBuilderPlugin
import info.nightscout.interfaces.logging.UserEntryLogger
import info.nightscout.interfaces.plugin.ActivePlugin
import info.nightscout.interfaces.protection.ProtectionCheck

View file

@ -1,10 +1,10 @@
package info.nightscout.plugins.general.maintenance
import android.content.Context
import app.aaps.configuration.maintenance.MaintenancePlugin
import app.aaps.shared.tests.TestBase
import com.google.common.truth.Truth.assertThat
import dagger.android.HasAndroidInjector
import info.nightscout.configuration.maintenance.MaintenancePlugin
import info.nightscout.interfaces.Config
import info.nightscout.interfaces.logging.LoggerUtils
import info.nightscout.interfaces.maintenance.PrefFileListProvider

View file

@ -12,7 +12,7 @@ apply from: "${project.rootDir}/core/main/allopen_dependencies.gradle"
apply from: "${project.rootDir}/core/main/test_dependencies.gradle"
apply from: "${project.rootDir}/core/main/jacoco_global.gradle"
android {
namespace 'info.nightscout.configuration'
namespace 'app.aaps.configuration'
}

View file

@ -22,7 +22,7 @@
android:exported="false"
android:theme="@style/AppTheme" />
<activity
android:name="info.nightscout.configuration.activities.SingleFragmentActivity"
android:name=".activities.SingleFragmentActivity"
android:exported="false"
android:theme="@style/AppTheme" />

View file

@ -1,6 +0,0 @@
package info.nightscout.configuration.setupwizard;
// keep in java, it's easier
public interface SWIntNumberValidator {
boolean isValid(int value);
}

View file

@ -1,6 +0,0 @@
package info.nightscout.configuration.setupwizard;
// keep in java, it's easier
public interface SWNumberValidator {
boolean isValid(double value);
}

View file

@ -1,6 +0,0 @@
package info.nightscout.configuration.setupwizard;
// keep in java, it's easier
public interface SWTextValidator {
boolean isValid(String text);
}

View file

@ -1,6 +0,0 @@
package info.nightscout.configuration.setupwizard;
// keep in java, it's easier
public interface SWValidator {
boolean isValid();
}

View file

@ -1,4 +1,4 @@
package info.nightscout.configuration
package app.aaps.configuration
import android.Manifest
import android.annotation.SuppressLint
@ -13,7 +13,7 @@ import android.os.PowerManager
import android.provider.Settings
import androidx.core.content.ContextCompat
import androidx.fragment.app.FragmentActivity
import info.nightscout.configuration.activities.DaggerAppCompatActivityWithResult
import app.aaps.configuration.activities.DaggerAppCompatActivityWithResult
import info.nightscout.core.ui.dialogs.OKDialog
import info.nightscout.core.ui.toast.ToastUtils
import info.nightscout.interfaces.AndroidPermission

View file

@ -1,4 +1,4 @@
package info.nightscout.configuration.activities
package app.aaps.configuration.activities
import android.Manifest
import android.content.Context
@ -6,10 +6,10 @@ import android.content.pm.PackageManager
import android.os.Bundle
import androidx.activity.result.contract.ActivityResultContracts
import androidx.core.app.ActivityCompat
import app.aaps.configuration.R
import app.aaps.configuration.maintenance.CustomWatchfaceFileContract
import app.aaps.configuration.maintenance.PrefsFileContract
import dagger.android.support.DaggerAppCompatActivity
import info.nightscout.configuration.R
import info.nightscout.configuration.maintenance.CustomWatchfaceFileContract
import info.nightscout.configuration.maintenance.PrefsFileContract
import info.nightscout.core.ui.dialogs.OKDialog
import info.nightscout.core.ui.locale.LocaleHelper
import info.nightscout.interfaces.maintenance.ImportExportPrefs

View file

@ -1,4 +1,4 @@
package info.nightscout.configuration.activities
package app.aaps.configuration.activities
import android.content.Context
import android.content.Intent

View file

@ -1,4 +1,4 @@
package info.nightscout.configuration.activities
package app.aaps.configuration.activities
import android.content.Intent
import android.os.Bundle
@ -6,7 +6,7 @@ import android.view.Menu
import android.view.MenuInflater
import android.view.MenuItem
import androidx.core.view.MenuProvider
import info.nightscout.configuration.R
import app.aaps.configuration.R
import info.nightscout.interfaces.plugin.ActivePlugin
import info.nightscout.interfaces.plugin.PluginBase
import info.nightscout.interfaces.protection.ProtectionCheck
@ -52,7 +52,7 @@ class SingleFragmentActivity : DaggerAppCompatActivityWithResult() {
R.id.nav_plugin_preferences -> {
protectionCheck.queryProtection(this@SingleFragmentActivity, ProtectionCheck.Protection.PREFERENCES, {
val i = Intent(this@SingleFragmentActivity, uiInteraction.preferencesActivity)
.setAction("info.nightscout.configuration.activities.SingleFragmentActivity")
.setAction("app.aaps.configuration.activities.SingleFragmentActivity")
.putExtra("id", plugin?.preferencesId)
startActivity(i)
}, null)

View file

@ -1,13 +1,13 @@
package info.nightscout.configuration.configBuilder
package app.aaps.configuration.configBuilder
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import app.aaps.configuration.R
import app.aaps.configuration.configBuilder.events.EventConfigBuilderUpdateGui
import app.aaps.configuration.databinding.ConfigbuilderFragmentBinding
import dagger.android.support.DaggerFragment
import info.nightscout.configuration.R
import info.nightscout.configuration.configBuilder.events.EventConfigBuilderUpdateGui
import info.nightscout.configuration.databinding.ConfigbuilderFragmentBinding
import info.nightscout.core.utils.fabric.FabricPrivacy
import info.nightscout.interfaces.Config
import info.nightscout.interfaces.ConfigBuilder

View file

@ -1,4 +1,4 @@
package info.nightscout.configuration.configBuilder
package app.aaps.configuration.configBuilder
import android.content.Intent
import android.view.LayoutInflater
@ -13,9 +13,9 @@ import androidx.annotation.StringRes
import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentActivity
import app.aaps.configuration.R
import app.aaps.configuration.configBuilder.events.EventConfigBuilderUpdateGui
import dagger.android.HasAndroidInjector
import info.nightscout.configuration.R
import info.nightscout.configuration.configBuilder.events.EventConfigBuilderUpdateGui
import info.nightscout.core.ui.dialogs.OKDialog
import info.nightscout.database.entities.UserEntry.Action
import info.nightscout.database.entities.UserEntry.Sources

View file

@ -1,10 +1,9 @@
package info.nightscout.configuration.configBuilder
package app.aaps.configuration.configBuilder
import info.nightscout.configuration.R
import app.aaps.configuration.R
import info.nightscout.interfaces.Config
import info.nightscout.interfaces.ConfigBuilder
import info.nightscout.interfaces.aps.Sensitivity
import info.nightscout.sdk.interfaces.RunningConfiguration
import info.nightscout.interfaces.insulin.Insulin
import info.nightscout.interfaces.notifications.Notification
import info.nightscout.interfaces.plugin.ActivePlugin
@ -17,6 +16,7 @@ import info.nightscout.rx.bus.RxBus
import info.nightscout.rx.events.EventNSClientNewLog
import info.nightscout.rx.logging.AAPSLogger
import info.nightscout.rx.logging.LTag
import info.nightscout.sdk.interfaces.RunningConfiguration
import info.nightscout.sdk.localmodel.devicestatus.NSDeviceStatus
import info.nightscout.shared.interfaces.ResourceHelper
import info.nightscout.shared.sharedPreferences.SP

View file

@ -1,4 +1,4 @@
package info.nightscout.configuration.configBuilder.events
package app.aaps.configuration.configBuilder.events
import info.nightscout.rx.events.EventUpdateGui

View file

@ -1,25 +1,25 @@
package info.nightscout.configuration.di
package app.aaps.configuration.di
import app.aaps.configuration.AndroidPermissionImpl
import app.aaps.configuration.activities.SingleFragmentActivity
import app.aaps.configuration.configBuilder.ConfigBuilderFragment
import app.aaps.configuration.configBuilder.ConfigBuilderPlugin
import app.aaps.configuration.configBuilder.RunningConfigurationImpl
import app.aaps.configuration.maintenance.ImportExportPrefsImpl
import app.aaps.configuration.maintenance.MaintenanceFragment
import app.aaps.configuration.maintenance.PrefFileListProviderImpl
import app.aaps.configuration.maintenance.activities.CustomWatchfaceImportListActivity
import app.aaps.configuration.maintenance.activities.LogSettingActivity
import app.aaps.configuration.maintenance.activities.PrefImportListActivity
import app.aaps.configuration.maintenance.formats.EncryptedPrefsFormat
import dagger.Binds
import dagger.Module
import dagger.android.ContributesAndroidInjector
import info.nightscout.configuration.AndroidPermissionImpl
import info.nightscout.configuration.activities.SingleFragmentActivity
import info.nightscout.configuration.configBuilder.ConfigBuilderFragment
import info.nightscout.configuration.configBuilder.ConfigBuilderPlugin
import info.nightscout.configuration.configBuilder.RunningConfigurationImpl
import info.nightscout.configuration.maintenance.ImportExportPrefsImpl
import info.nightscout.configuration.maintenance.MaintenanceFragment
import info.nightscout.configuration.maintenance.PrefFileListProviderImpl
import info.nightscout.configuration.maintenance.activities.CustomWatchfaceImportListActivity
import info.nightscout.configuration.maintenance.activities.LogSettingActivity
import info.nightscout.configuration.maintenance.activities.PrefImportListActivity
import info.nightscout.configuration.maintenance.formats.EncryptedPrefsFormat
import info.nightscout.interfaces.AndroidPermission
import info.nightscout.interfaces.ConfigBuilder
import info.nightscout.sdk.interfaces.RunningConfiguration
import info.nightscout.interfaces.maintenance.ImportExportPrefs
import info.nightscout.interfaces.maintenance.PrefFileListProvider
import info.nightscout.sdk.interfaces.RunningConfiguration
@Module(
includes = [

View file

@ -1,25 +1,25 @@
package info.nightscout.configuration.di
package app.aaps.configuration.di
import app.aaps.configuration.setupwizard.SWEventListener
import app.aaps.configuration.setupwizard.SWScreen
import app.aaps.configuration.setupwizard.SetupWizardActivity
import app.aaps.configuration.setupwizard.elements.SWBreak
import app.aaps.configuration.setupwizard.elements.SWButton
import app.aaps.configuration.setupwizard.elements.SWEditEncryptedPassword
import app.aaps.configuration.setupwizard.elements.SWEditIntNumber
import app.aaps.configuration.setupwizard.elements.SWEditNumber
import app.aaps.configuration.setupwizard.elements.SWEditNumberWithUnits
import app.aaps.configuration.setupwizard.elements.SWEditString
import app.aaps.configuration.setupwizard.elements.SWEditUrl
import app.aaps.configuration.setupwizard.elements.SWFragment
import app.aaps.configuration.setupwizard.elements.SWHtmlLink
import app.aaps.configuration.setupwizard.elements.SWInfoText
import app.aaps.configuration.setupwizard.elements.SWItem
import app.aaps.configuration.setupwizard.elements.SWPlugin
import app.aaps.configuration.setupwizard.elements.SWPreference
import app.aaps.configuration.setupwizard.elements.SWRadioButton
import dagger.Module
import dagger.android.ContributesAndroidInjector
import info.nightscout.configuration.setupwizard.SWEventListener
import info.nightscout.configuration.setupwizard.SWScreen
import info.nightscout.configuration.setupwizard.SetupWizardActivity
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.SWEditUrl
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.SWItem
import info.nightscout.configuration.setupwizard.elements.SWPlugin
import info.nightscout.configuration.setupwizard.elements.SWPreference
import info.nightscout.configuration.setupwizard.elements.SWRadioButton
@Module
@Suppress("unused")

View file

@ -1,4 +1,4 @@
package info.nightscout.configuration.maintenance
package app.aaps.configuration.maintenance
import android.content.Context
import android.content.Intent
@ -8,6 +8,7 @@ import androidx.fragment.app.FragmentActivity
class CustomWatchfaceFileContract : ActivityResultContract<Void?, Unit?>() {
companion object {
const val OUTPUT_PARAM = "custom_file"
}
@ -19,6 +20,6 @@ class CustomWatchfaceFileContract: ActivityResultContract<Void?, Unit?>() {
}
override fun createIntent(context: Context, input: Void?): Intent {
return Intent(context, info.nightscout.configuration.maintenance.activities.CustomWatchfaceImportListActivity::class.java)
return Intent(context, app.aaps.configuration.maintenance.activities.CustomWatchfaceImportListActivity::class.java)
}
}

View file

@ -1,4 +1,4 @@
package info.nightscout.configuration.maintenance
package app.aaps.configuration.maintenance
import android.Manifest
import android.bluetooth.BluetoothManager
@ -18,11 +18,16 @@ import androidx.work.OneTimeWorkRequest
import androidx.work.WorkManager
import androidx.work.WorkerParameters
import androidx.work.workDataOf
import app.aaps.configuration.R
import app.aaps.configuration.activities.DaggerAppCompatActivityWithResult
import app.aaps.configuration.maintenance.data.PrefFileNotFoundError
import app.aaps.configuration.maintenance.data.PrefIOError
import app.aaps.configuration.maintenance.data.Prefs
import app.aaps.configuration.maintenance.data.PrefsFormat
import app.aaps.configuration.maintenance.data.PrefsStatusImpl
import app.aaps.configuration.maintenance.dialogs.PrefImportSummaryDialog
import app.aaps.configuration.maintenance.formats.EncryptedPrefsFormat
import dagger.android.HasAndroidInjector
import info.nightscout.configuration.R
import info.nightscout.configuration.activities.DaggerAppCompatActivityWithResult
import info.nightscout.configuration.maintenance.dialogs.PrefImportSummaryDialog
import info.nightscout.configuration.maintenance.formats.EncryptedPrefsFormat
import info.nightscout.core.ui.dialogs.OKDialog
import info.nightscout.core.ui.dialogs.TwoMessagesAlertDialog
import info.nightscout.core.ui.dialogs.WarningDialog
@ -37,14 +42,9 @@ import info.nightscout.interfaces.db.PersistenceLayer
import info.nightscout.interfaces.logging.UserEntryLogger
import info.nightscout.interfaces.maintenance.ImportExportPrefs
import info.nightscout.interfaces.maintenance.PrefFileListProvider
import info.nightscout.interfaces.maintenance.PrefFileNotFoundError
import info.nightscout.interfaces.maintenance.PrefIOError
import info.nightscout.interfaces.maintenance.PrefMetadata
import info.nightscout.interfaces.maintenance.Prefs
import info.nightscout.interfaces.maintenance.PrefsFile
import info.nightscout.interfaces.maintenance.PrefsFormat
import info.nightscout.interfaces.maintenance.PrefsMetadataKey
import info.nightscout.interfaces.maintenance.PrefsStatusImpl
import info.nightscout.interfaces.protection.PasswordCheck
import info.nightscout.interfaces.storage.Storage
import info.nightscout.interfaces.ui.UiInteraction

View file

@ -1,4 +1,4 @@
package info.nightscout.configuration.maintenance
package app.aaps.configuration.maintenance
import android.content.Intent
import android.os.Bundle
@ -6,10 +6,10 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.core.text.toSpanned
import app.aaps.configuration.R
import app.aaps.configuration.databinding.MaintenanceFragmentBinding
import app.aaps.configuration.maintenance.activities.LogSettingActivity
import dagger.android.support.DaggerFragment
import info.nightscout.configuration.R
import info.nightscout.configuration.databinding.MaintenanceFragmentBinding
import info.nightscout.configuration.maintenance.activities.LogSettingActivity
import info.nightscout.core.graph.OverviewData
import info.nightscout.core.ui.dialogs.OKDialog
import info.nightscout.core.utils.HtmlHelper

View file

@ -1,11 +1,11 @@
package info.nightscout.configuration.maintenance
package app.aaps.configuration.maintenance
import android.content.Context
import android.content.Intent
import android.net.Uri
import androidx.core.content.FileProvider
import app.aaps.configuration.R
import dagger.android.HasAndroidInjector
import info.nightscout.configuration.R
import info.nightscout.interfaces.Config
import info.nightscout.interfaces.logging.LoggerUtils
import info.nightscout.interfaces.maintenance.PrefFileListProvider

View file

@ -1,20 +1,20 @@
package info.nightscout.configuration.maintenance
package app.aaps.configuration.maintenance
import android.content.Context
import android.os.Environment
import app.aaps.configuration.R
import app.aaps.configuration.maintenance.data.PrefMetadataMap
import app.aaps.configuration.maintenance.data.PrefsStatusImpl
import app.aaps.configuration.maintenance.formats.EncryptedPrefsFormat
import dagger.Lazy
import dagger.Reusable
import info.nightscout.annotations.OpenForTesting
import info.nightscout.configuration.R
import info.nightscout.configuration.maintenance.formats.EncryptedPrefsFormat
import info.nightscout.interfaces.Config
import info.nightscout.interfaces.maintenance.PrefFileListProvider
import info.nightscout.interfaces.maintenance.PrefMetadata
import info.nightscout.interfaces.maintenance.PrefMetadataMap
import info.nightscout.interfaces.maintenance.PrefsFile
import info.nightscout.interfaces.maintenance.PrefsImportDir
import info.nightscout.interfaces.maintenance.PrefsMetadataKey
import info.nightscout.interfaces.maintenance.PrefsStatusImpl
import info.nightscout.interfaces.storage.Storage
import info.nightscout.interfaces.versionChecker.VersionCheckerUtils
import info.nightscout.rx.bus.RxBus

View file

@ -1,10 +1,10 @@
package info.nightscout.configuration.maintenance
package app.aaps.configuration.maintenance
import android.content.Context
import android.content.Intent
import androidx.activity.result.contract.ActivityResultContract
import androidx.fragment.app.FragmentActivity
import info.nightscout.configuration.maintenance.activities.PrefImportListActivity
import app.aaps.configuration.maintenance.activities.PrefImportListActivity
import info.nightscout.core.utils.extensions.safeGetParcelableExtra
import info.nightscout.interfaces.maintenance.PrefsFile

View file

@ -1,10 +1,10 @@
package info.nightscout.configuration.maintenance
package app.aaps.configuration.maintenance
import android.content.Context
import androidx.annotation.DrawableRes
import androidx.annotation.StringRes
import info.nightscout.configuration.R
import info.nightscout.interfaces.maintenance.PrefsFormat
import app.aaps.configuration.R
import app.aaps.configuration.maintenance.data.PrefsFormat
import info.nightscout.interfaces.maintenance.PrefsMetadataKey
enum class PrefsMetadataKeyImpl(override val key: String, @DrawableRes override val icon: Int, @StringRes override val label: Int) : PrefsMetadataKey {

View file

@ -1,4 +1,4 @@
package info.nightscout.configuration.maintenance.activities
package app.aaps.configuration.maintenance.activities
import android.content.Intent
import android.os.Bundle
@ -7,9 +7,9 @@ import android.view.ViewGroup
import androidx.fragment.app.FragmentActivity
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import info.nightscout.configuration.R
import info.nightscout.configuration.databinding.CustomWatchfaceImportListActivityBinding
import info.nightscout.configuration.databinding.CustomWatchfaceImportListItemBinding
import app.aaps.configuration.R
import app.aaps.configuration.databinding.CustomWatchfaceImportListActivityBinding
import app.aaps.configuration.databinding.CustomWatchfaceImportListItemBinding
import info.nightscout.core.ui.activities.TranslatedDaggerAppCompatActivity
import info.nightscout.interfaces.maintenance.PrefFileListProvider
import info.nightscout.interfaces.versionChecker.VersionCheckerUtils
@ -18,7 +18,6 @@ import info.nightscout.rx.events.EventMobileDataToWear
import info.nightscout.rx.logging.AAPSLogger
import info.nightscout.rx.weardata.CUSTOM_VERSION
import info.nightscout.rx.weardata.CwfData
import info.nightscout.rx.weardata.ResFileMap
import info.nightscout.rx.weardata.CwfMetadataKey.CWF_AUTHOR
import info.nightscout.rx.weardata.CwfMetadataKey.CWF_AUTHOR_VERSION
import info.nightscout.rx.weardata.CwfMetadataKey.CWF_CREATED_AT
@ -27,6 +26,7 @@ import info.nightscout.rx.weardata.CwfMetadataKey.CWF_NAME
import info.nightscout.rx.weardata.CwfMetadataKey.CWF_VERSION
import info.nightscout.rx.weardata.CwfMetadataMap
import info.nightscout.rx.weardata.EventData
import info.nightscout.rx.weardata.ResFileMap
import info.nightscout.rx.weardata.ZipWatchfaceFormat
import info.nightscout.shared.extensions.toVisibility
import info.nightscout.shared.interfaces.ResourceHelper

View file

@ -1,12 +1,12 @@
package info.nightscout.configuration.maintenance.activities
package app.aaps.configuration.maintenance.activities
import android.os.Bundle
import android.view.View
import android.widget.CheckBox
import android.widget.LinearLayout
import android.widget.TextView
import info.nightscout.configuration.R
import info.nightscout.configuration.databinding.ActivityLogsettingBinding
import app.aaps.configuration.R
import app.aaps.configuration.databinding.ActivityLogsettingBinding
import info.nightscout.core.ui.activities.TranslatedDaggerAppCompatActivity
import info.nightscout.rx.interfaces.L
import info.nightscout.rx.interfaces.LogElement

View file

@ -1,4 +1,4 @@
package info.nightscout.configuration.maintenance.activities
package app.aaps.configuration.maintenance.activities
import android.content.Intent
import android.os.Bundle
@ -8,15 +8,15 @@ import android.view.ViewGroup
import androidx.fragment.app.FragmentActivity
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import info.nightscout.configuration.R
import info.nightscout.configuration.databinding.MaintenanceImportListActivityBinding
import info.nightscout.configuration.databinding.MaintenanceImportListItemBinding
import info.nightscout.configuration.maintenance.PrefsFileContract
import info.nightscout.configuration.maintenance.PrefsMetadataKeyImpl
import app.aaps.configuration.R
import app.aaps.configuration.databinding.MaintenanceImportListActivityBinding
import app.aaps.configuration.databinding.MaintenanceImportListItemBinding
import app.aaps.configuration.maintenance.PrefsFileContract
import app.aaps.configuration.maintenance.PrefsMetadataKeyImpl
import app.aaps.configuration.maintenance.data.PrefsStatusImpl
import info.nightscout.core.ui.activities.TranslatedDaggerAppCompatActivity
import info.nightscout.interfaces.maintenance.PrefFileListProvider
import info.nightscout.interfaces.maintenance.PrefsFile
import info.nightscout.interfaces.maintenance.PrefsStatusImpl
import info.nightscout.shared.interfaces.ResourceHelper
import javax.inject.Inject

View file

@ -1,7 +1,10 @@
package info.nightscout.interfaces.maintenance
package app.aaps.configuration.maintenance.data
import androidx.annotation.DrawableRes
import info.nightscout.configuration.R
import app.aaps.configuration.R
import info.nightscout.interfaces.maintenance.PrefMetadata
import info.nightscout.interfaces.maintenance.PrefsMetadataKey
import info.nightscout.interfaces.maintenance.PrefsStatus
import kotlinx.parcelize.Parcelize
import java.io.File

View file

@ -1,4 +1,4 @@
package info.nightscout.configuration.maintenance.dialogs
package app.aaps.configuration.maintenance.dialogs
import android.annotation.SuppressLint
import android.content.Context
@ -16,11 +16,11 @@ import androidx.annotation.DrawableRes
import androidx.annotation.StringRes
import androidx.annotation.StyleRes
import androidx.appcompat.view.ContextThemeWrapper
import app.aaps.configuration.R
import app.aaps.configuration.maintenance.data.Prefs
import app.aaps.configuration.maintenance.data.PrefsStatusImpl
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import info.nightscout.configuration.R
import info.nightscout.core.ui.toast.ToastUtils
import info.nightscout.interfaces.maintenance.Prefs
import info.nightscout.interfaces.maintenance.PrefsStatusImpl
import info.nightscout.shared.extensions.runOnUiThread
import java.util.LinkedList

View file

@ -1,20 +1,20 @@
package info.nightscout.configuration.maintenance.formats
package app.aaps.configuration.maintenance.formats
import info.nightscout.configuration.R
import info.nightscout.configuration.maintenance.PrefsMetadataKeyImpl
import app.aaps.configuration.R
import app.aaps.configuration.maintenance.PrefsMetadataKeyImpl
import app.aaps.configuration.maintenance.data.PrefFileNotFoundError
import app.aaps.configuration.maintenance.data.PrefFormatError
import app.aaps.configuration.maintenance.data.PrefIOError
import app.aaps.configuration.maintenance.data.PrefMetadataMap
import app.aaps.configuration.maintenance.data.Prefs
import app.aaps.configuration.maintenance.data.PrefsFormat
import app.aaps.configuration.maintenance.data.PrefsStatusImpl
import info.nightscout.core.utils.CryptoUtil
import info.nightscout.core.utils.hexStringToByteArray
import info.nightscout.core.utils.toHex
import info.nightscout.interfaces.maintenance.PrefFileNotFoundError
import info.nightscout.interfaces.maintenance.PrefFormatError
import info.nightscout.interfaces.maintenance.PrefIOError
import info.nightscout.interfaces.maintenance.PrefMetadata
import info.nightscout.interfaces.maintenance.PrefMetadataMap
import info.nightscout.interfaces.maintenance.Prefs
import info.nightscout.interfaces.maintenance.PrefsFormat
import info.nightscout.interfaces.maintenance.PrefsMetadataKey
import info.nightscout.interfaces.maintenance.PrefsStatus
import info.nightscout.interfaces.maintenance.PrefsStatusImpl
import info.nightscout.interfaces.storage.Storage
import info.nightscout.shared.interfaces.ResourceHelper
import org.json.JSONException

View file

@ -1,4 +1,4 @@
package info.nightscout.configuration.setupwizard
package app.aaps.configuration.setupwizard
import android.Manifest
import android.content.Context
@ -6,21 +6,21 @@ import android.content.Intent
import android.net.Uri
import android.provider.Settings
import androidx.appcompat.app.AppCompatActivity
import app.aaps.configuration.R
import app.aaps.configuration.setupwizard.elements.SWBreak
import app.aaps.configuration.setupwizard.elements.SWButton
import app.aaps.configuration.setupwizard.elements.SWEditEncryptedPassword
import app.aaps.configuration.setupwizard.elements.SWEditIntNumber
import app.aaps.configuration.setupwizard.elements.SWEditNumber
import app.aaps.configuration.setupwizard.elements.SWEditNumberWithUnits
import app.aaps.configuration.setupwizard.elements.SWEditString
import app.aaps.configuration.setupwizard.elements.SWFragment
import app.aaps.configuration.setupwizard.elements.SWHtmlLink
import app.aaps.configuration.setupwizard.elements.SWInfoText
import app.aaps.configuration.setupwizard.elements.SWPlugin
import app.aaps.configuration.setupwizard.elements.SWPreference
import app.aaps.configuration.setupwizard.elements.SWRadioButton
import dagger.android.HasAndroidInjector
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.core.profile.ProfileSealed
import info.nightscout.core.utils.CryptoUtil
import info.nightscout.core.utils.isRunningTest
@ -207,7 +207,7 @@ class SWDefinition @Inject constructor(
get() = SWScreen(injector, R.string.patient_name)
.skippable(true)
.add(SWInfoText(injector).label(R.string.patient_name_summary))
.add(SWEditString(injector).validator(SWTextValidator(String::isNotEmpty)).preferenceId(info.nightscout.core.utils.R.string.key_patient_name))
.add(SWEditString(injector).validator(String::isNotEmpty).preferenceId(info.nightscout.core.utils.R.string.key_patient_name))
private val privacy
get() = SWScreen(injector, R.string.privacy_settings)
@ -308,10 +308,8 @@ class SWDefinition @Inject constructor(
.add( // Omnipod Eros only
SWInfoText(injector)
.label(R.string.setupwizard_pump_waiting_for_riley_link_connection)
.visibility {
val activePump = activePlugin.activePump
activePump is OmnipodEros && !activePump.isRileyLinkReady()
})
.visibility { activePlugin.activePump.let { it is OmnipodEros && !it.isRileyLinkReady() } }
)
.add( // Omnipod Eros only
SWEventListener(injector, EventSWRLStatus::class.java)
.label(R.string.setupwizard_pump_riley_link_status)

View file

@ -1,18 +1,19 @@
package info.nightscout.configuration.setupwizard
package app.aaps.configuration.setupwizard
import android.annotation.SuppressLint
import android.content.Context
import android.view.View
import android.widget.LinearLayout
import android.widget.TextView
import app.aaps.configuration.setupwizard.elements.SWItem
import dagger.android.HasAndroidInjector
import info.nightscout.configuration.setupwizard.elements.SWItem
import info.nightscout.rx.AapsSchedulers
import info.nightscout.rx.events.EventStatus
import io.reactivex.rxjava3.disposables.CompositeDisposable
import io.reactivex.rxjava3.kotlin.plusAssign
import javax.inject.Inject
class SWEventListener constructor(
class SWEventListener(
injector: HasAndroidInjector,
clazz: Class<out EventStatus>
) : SWItem(injector, Type.LISTENER) {
@ -21,14 +22,14 @@ class SWEventListener constructor(
private var textLabel = 0
private var status = ""
private var textView: TextView? = null
private var visibilityValidator: SWValidator? = null
private var visibilityValidator: (() -> Boolean)? = null
@Inject lateinit var aapsSchedulers: AapsSchedulers
@Inject lateinit var context: Context
// TODO: Adrian how to clear disposable in this case?
init {
disposable.add(rxBus
disposable += rxBus
.toObservable(clazz)
.observeOn(aapsSchedulers.main)
.subscribe { event: Any ->
@ -36,7 +37,6 @@ class SWEventListener constructor(
@SuppressLint("SetTextI18n")
textView?.text = (if (textLabel != 0) rh.gs(textLabel) else "") + " " + status
}
)
}
override fun label(label: Int): SWEventListener {
@ -49,7 +49,7 @@ class SWEventListener constructor(
return this
}
fun visibility(visibilityValidator: SWValidator): SWEventListener {
fun visibility(visibilityValidator: () -> Boolean): SWEventListener {
this.visibilityValidator = visibilityValidator
return this
}
@ -64,6 +64,6 @@ class SWEventListener constructor(
}
override fun processVisibility() {
if (visibilityValidator != null && !visibilityValidator!!.isValid) textView?.visibility = View.GONE else textView?.visibility = View.VISIBLE
if (visibilityValidator?.invoke() == false) textView?.visibility = View.GONE else textView?.visibility = View.VISIBLE
}
}

View file

@ -1,7 +1,7 @@
package info.nightscout.configuration.setupwizard
package app.aaps.configuration.setupwizard
import app.aaps.configuration.setupwizard.elements.SWItem
import dagger.android.HasAndroidInjector
import info.nightscout.configuration.setupwizard.elements.SWItem
import info.nightscout.shared.interfaces.ResourceHelper
import javax.inject.Inject
@ -10,8 +10,8 @@ class SWScreen(val injector: HasAndroidInjector, private var header: Int) {
@Inject lateinit var rh: ResourceHelper
var items: MutableList<SWItem> = ArrayList()
var validator: SWValidator? = null
var visibility: SWValidator? = null
var validator: (() -> Boolean)? = null
var visibility: (() -> Boolean)? = null
var skippable = false
init {
@ -32,12 +32,12 @@ class SWScreen(val injector: HasAndroidInjector, private var header: Int) {
return this
}
fun validator(validator: SWValidator): SWScreen {
fun validator(validator: () -> Boolean): SWScreen {
this.validator = validator
return this
}
fun visibility(visibility: SWValidator): SWScreen {
fun visibility(visibility: () -> Boolean): SWScreen {
this.visibility = visibility
return this
}

View file

@ -1,4 +1,4 @@
package info.nightscout.configuration.setupwizard
package app.aaps.configuration.setupwizard
import android.content.Intent
import android.os.Bundle
@ -9,11 +9,11 @@ import android.view.View
import android.widget.TextView
import androidx.activity.OnBackPressedCallback
import androidx.core.view.MenuProvider
import app.aaps.configuration.R
import app.aaps.configuration.activities.DaggerAppCompatActivityWithResult
import app.aaps.configuration.databinding.ActivitySetupwizardBinding
import app.aaps.configuration.setupwizard.elements.SWItem
import dagger.android.HasAndroidInjector
import info.nightscout.configuration.R
import info.nightscout.configuration.activities.DaggerAppCompatActivityWithResult
import info.nightscout.configuration.databinding.ActivitySetupwizardBinding
import info.nightscout.configuration.setupwizard.elements.SWItem
import info.nightscout.core.ui.dialogs.OKDialog
import info.nightscout.core.ui.locale.LocaleHelper.update
import info.nightscout.core.utils.fabric.FabricPrivacy
@ -146,7 +146,7 @@ class SetupWizardActivity : DaggerAppCompatActivityWithResult() {
override fun updateButtons() {
runOnUiThread {
val currentScreen = screens[currentWizardPage]
if (currentScreen.validator == null || currentScreen.validator?.isValid == true || currentScreen.skippable) {
if (currentScreen.validator == null || currentScreen.validator?.invoke() == true || currentScreen.skippable) {
if (currentWizardPage == nextPage(null)) {
findViewById<View>(R.id.finish_button).visibility = View.VISIBLE
findViewById<View>(R.id.next_button).visibility = View.GONE
@ -166,7 +166,7 @@ class SetupWizardActivity : DaggerAppCompatActivityWithResult() {
@Suppress("UNUSED_PARAMETER")
fun showNextPage(view: View?) {
finish()
val intent = Intent(this, SetupWizardActivity::class.java).setAction("info.nightscout.configuration.setupwizard.SetupWizardActivity")
val intent = Intent(this, SetupWizardActivity::class.java).setAction("app.aaps.configuration.setupwizard.SetupWizardActivity")
intent.putExtra(intentMessage, nextPage(null))
startActivity(intent)
}
@ -174,7 +174,7 @@ class SetupWizardActivity : DaggerAppCompatActivityWithResult() {
@Suppress("UNUSED_PARAMETER")
fun showPreviousPage(view: View?) {
finish()
val intent = Intent(this, SetupWizardActivity::class.java).setAction("info.nightscout.configuration.setupwizard.SetupWizardActivity")
val intent = Intent(this, SetupWizardActivity::class.java).setAction("app.aaps.configuration.setupwizard.SetupWizardActivity")
intent.putExtra(intentMessage, previousPage(null))
startActivity(intent)
}
@ -183,7 +183,7 @@ class SetupWizardActivity : DaggerAppCompatActivityWithResult() {
@Suppress("UNUSED_PARAMETER")
fun finishSetupWizard(view: View?) {
sp.putBoolean(R.string.key_setupwizard_processed, true)
val intent = Intent(this, uiInteraction.mainActivity).setAction("info.nightscout.configuration.setupwizard.SetupWizardActivity")
val intent = Intent(this, uiInteraction.mainActivity).setAction("app.aaps.configuration.setupwizard.SetupWizardActivity")
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
startActivity(intent)
finish()
@ -193,7 +193,7 @@ class SetupWizardActivity : DaggerAppCompatActivityWithResult() {
private fun nextPage(view: View?): Int {
var page = currentWizardPage + 1
while (page < screens.size) {
if (screens[page].visibility == null || screens[page].visibility?.isValid == true) return page
if (screens[page].visibility == null || screens[page].visibility?.invoke() == true) return page
page++
}
return min(currentWizardPage, screens.size - 1)
@ -203,7 +203,7 @@ class SetupWizardActivity : DaggerAppCompatActivityWithResult() {
private fun previousPage(view: View?): Int {
var page = currentWizardPage - 1
while (page >= 0) {
if (screens[page].visibility == null || screens[page].visibility?.isValid == true) return page
if (screens[page].visibility == null || screens[page].visibility?.invoke() == true) return page
page--
}
return max(currentWizardPage, 0)

View file

@ -1,16 +1,16 @@
package info.nightscout.configuration.setupwizard.elements
package app.aaps.configuration.setupwizard.elements
import android.view.View
import android.widget.LinearLayout
import android.widget.TextView
import dagger.android.HasAndroidInjector
import info.nightscout.configuration.setupwizard.SWValidator
class SWBreak(injector: HasAndroidInjector) : SWItem(injector, Type.BREAK) {
private var l: TextView? = null
private var visibilityValidator: SWValidator? = null
fun visibility(visibilityValidator: SWValidator): SWBreak {
private var l: TextView? = null
private var visibilityValidator: (() -> Boolean)? = null
fun visibility(visibilityValidator: () -> Boolean): SWBreak {
this.visibilityValidator = visibilityValidator
return this
}
@ -24,8 +24,7 @@ class SWBreak(injector: HasAndroidInjector) : SWItem(injector, Type.BREAK) {
}
override fun processVisibility() {
if (visibilityValidator != null && !visibilityValidator!!.isValid)
l?.visibility = View.GONE
if (visibilityValidator?.invoke() == false) l?.visibility = View.GONE
else l?.visibility = View.VISIBLE
}
}

View file

@ -1,15 +1,15 @@
package info.nightscout.configuration.setupwizard.elements
package app.aaps.configuration.setupwizard.elements
import android.view.View
import android.widget.Button
import android.widget.LinearLayout
import dagger.android.HasAndroidInjector
import info.nightscout.configuration.setupwizard.SWValidator
class SWButton(injector: HasAndroidInjector) : SWItem(injector, Type.BUTTON) {
private var buttonRunnable: Runnable? = null
private var buttonText = 0
private var buttonValidator: SWValidator? = null
private var buttonValidator: (() -> Boolean)? = { false }
private var button: Button? = null
fun text(buttonText: Int): SWButton {
@ -22,7 +22,7 @@ class SWButton(injector: HasAndroidInjector) : SWItem(injector, Type.BUTTON) {
return this
}
fun visibility(buttonValidator: SWValidator): SWButton {
fun visibility(buttonValidator: () -> Boolean): SWButton {
this.buttonValidator = buttonValidator
return this
}
@ -38,8 +38,7 @@ class SWButton(injector: HasAndroidInjector) : SWItem(injector, Type.BUTTON) {
}
override fun processVisibility() {
if (buttonValidator != null && !buttonValidator!!.isValid)
button!!.visibility = View.GONE
else button!!.visibility = View.VISIBLE
if (buttonValidator?.invoke() == false) button?.visibility = View.GONE
else button?.visibility = View.VISIBLE
}
}

View file

@ -1,4 +1,4 @@
package info.nightscout.configuration.setupwizard.elements
package app.aaps.configuration.setupwizard.elements
import android.graphics.Typeface
import android.text.Editable
@ -10,14 +10,12 @@ import android.widget.EditText
import android.widget.LinearLayout
import android.widget.TextView
import dagger.android.HasAndroidInjector
import info.nightscout.configuration.setupwizard.SWTextValidator
import info.nightscout.core.utils.CryptoUtil
import info.nightscout.shared.extensions.toVisibility
class SWEditEncryptedPassword(injector: HasAndroidInjector, private val cryptoUtil: CryptoUtil) : SWItem(injector, Type.STRING) {
private var validator: SWTextValidator =
SWTextValidator(String::isNotEmpty)
private var validator: (String) -> Boolean = String::isNotEmpty
private var updateDelay = 0L
private var button: Button? = null
private var editText: EditText? = null
@ -92,7 +90,7 @@ class SWEditEncryptedPassword(injector: HasAndroidInjector, private val cryptoUt
override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {
sp.remove(preferenceId)
scheduleChange(updateDelay)
if (validator.isValid(editText?.text.toString()) && validator.isValid(editText2?.text.toString()) && editText?.text.toString() == editText2?.text.toString())
if (validator.invoke(editText?.text.toString()) && validator.invoke(editText2?.text.toString()) && editText?.text.toString() == editText2?.text.toString())
save(s.toString(), updateDelay)
}
@ -107,7 +105,7 @@ class SWEditEncryptedPassword(injector: HasAndroidInjector, private val cryptoUt
return this
}
fun validator(validator: SWTextValidator): SWEditEncryptedPassword {
fun validator(validator: (String) -> Boolean): SWEditEncryptedPassword {
this.validator = validator
return this
}

View file

@ -1,4 +1,4 @@
package info.nightscout.configuration.setupwizard.elements
package app.aaps.configuration.setupwizard.elements
import android.graphics.Typeface
import android.text.Editable
@ -7,15 +7,13 @@ import android.view.View
import android.widget.LinearLayout
import android.widget.TextView
import dagger.android.HasAndroidInjector
import info.nightscout.configuration.setupwizard.SWIntNumberValidator
import info.nightscout.core.ui.elements.NumberPicker
import info.nightscout.shared.SafeParse
import java.text.DecimalFormat
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: (Int) -> Boolean = { value -> value in min..max }
private var updateDelay = 0
override fun generateDialog(layout: LinearLayout) {
@ -23,7 +21,7 @@ class SWEditIntNumber(injector: HasAndroidInjector, private val init: Int, priva
val watcher: TextWatcher = object : TextWatcher {
override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {}
override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {
if (validator.isValid(SafeParse.stringToInt(s.toString())))
if (validator.invoke(SafeParse.stringToInt(s.toString())))
save(s.toString(), updateDelay.toLong())
}

View file

@ -1,4 +1,4 @@
package info.nightscout.configuration.setupwizard.elements
package app.aaps.configuration.setupwizard.elements
import android.graphics.Typeface
import android.text.Editable
@ -7,15 +7,13 @@ import android.view.View
import android.widget.LinearLayout
import android.widget.TextView
import dagger.android.HasAndroidInjector
import info.nightscout.configuration.setupwizard.SWNumberValidator
import info.nightscout.core.ui.elements.NumberPicker
import info.nightscout.shared.SafeParse
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) {
private val validator: SWNumberValidator =
SWNumberValidator { value -> value in min..max }
private val validator: (Double) -> Boolean = { value -> value in min..max }
private var updateDelay = 0
override fun generateDialog(layout: LinearLayout) {
@ -23,7 +21,7 @@ class SWEditNumber(injector: HasAndroidInjector, private val init: Double, priva
val watcher: TextWatcher = object : TextWatcher {
override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {}
override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {
if (validator.isValid(SafeParse.stringToDouble(s.toString())))
if (validator.invoke(SafeParse.stringToDouble(s.toString())))
save(s.toString(), updateDelay.toLong())
}

View file

@ -1,4 +1,4 @@
package info.nightscout.configuration.setupwizard.elements
package app.aaps.configuration.setupwizard.elements
import android.graphics.Typeface
import android.text.Editable
@ -7,7 +7,6 @@ import android.view.View
import android.widget.LinearLayout
import android.widget.TextView
import dagger.android.HasAndroidInjector
import info.nightscout.configuration.setupwizard.SWNumberValidator
import info.nightscout.core.ui.elements.NumberPicker
import info.nightscout.interfaces.Constants
import info.nightscout.interfaces.GlucoseUnit
@ -20,11 +19,9 @@ class SWEditNumberWithUnits(injector: HasAndroidInjector, private val init: Doub
@Inject lateinit var profileUtil: ProfileUtil
private val validator: SWNumberValidator =
if (profileUtil.units == GlucoseUnit.MMOL)
SWNumberValidator { value -> value in minMmol..maxMmol }
else
SWNumberValidator { value -> value in minMmol * Constants.MMOLL_TO_MGDL..maxMmol * Constants.MMOLL_TO_MGDL }
private val validator: (Double) -> Boolean =
if (profileUtil.units == GlucoseUnit.MMOL) { value -> value in minMmol..maxMmol }
else { value -> value in minMmol * Constants.MMOLL_TO_MGDL..maxMmol * Constants.MMOLL_TO_MGDL }
private var updateDelay = 0
override fun generateDialog(layout: LinearLayout) {
@ -32,7 +29,7 @@ class SWEditNumberWithUnits(injector: HasAndroidInjector, private val init: Doub
val watcher: TextWatcher = object : TextWatcher {
override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {}
override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {
if (validator.isValid(SafeParse.stringToDouble(s.toString())))
if (validator.invoke(SafeParse.stringToDouble(s.toString())))
save(s.toString(), updateDelay.toLong())
}

View file

@ -1,4 +1,4 @@
package info.nightscout.configuration.setupwizard.elements
package app.aaps.configuration.setupwizard.elements
import android.graphics.Typeface
import android.text.Editable
@ -9,11 +9,10 @@ import android.widget.EditText
import android.widget.LinearLayout
import android.widget.TextView
import dagger.android.HasAndroidInjector
import info.nightscout.configuration.setupwizard.SWTextValidator
class SWEditString(injector: HasAndroidInjector) : SWItem(injector, Type.STRING) {
private var validator: SWTextValidator? = null
private var validator: ((string: String) -> Boolean)? = null
private var updateDelay = 0L
override fun generateDialog(layout: LinearLayout) {
@ -38,7 +37,7 @@ class SWEditString(injector: HasAndroidInjector) : SWItem(injector, Type.STRING)
editText.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {}
override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {
if (validator != null && validator!!.isValid(s.toString())) save(s.toString(), updateDelay)
if (validator?.invoke(s.toString()) == true) save(s.toString(), updateDelay)
}
override fun afterTextChanged(s: Editable) {}
@ -50,7 +49,7 @@ class SWEditString(injector: HasAndroidInjector) : SWItem(injector, Type.STRING)
return this
}
fun validator(validator: SWTextValidator): SWEditString {
fun validator(validator: (string: String) -> Boolean): SWEditString {
this.validator = validator
return this
}

View file

@ -1,4 +1,4 @@
package info.nightscout.configuration.setupwizard.elements
package app.aaps.configuration.setupwizard.elements
import android.graphics.Typeface
import android.text.Editable
@ -9,10 +9,11 @@ import android.view.View
import android.widget.EditText
import android.widget.LinearLayout
import android.widget.TextView
import app.aaps.configuration.setupwizard.events.EventSWLabel
import dagger.android.HasAndroidInjector
import info.nightscout.configuration.setupwizard.events.EventSWLabel
class SWEditUrl(injector: HasAndroidInjector) : SWItem(injector, Type.URL) {
private var updateDelay = 0L
override fun generateDialog(layout: LinearLayout) {

View file

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

View file

@ -1,4 +1,4 @@
package info.nightscout.configuration.setupwizard.elements
package app.aaps.configuration.setupwizard.elements
import android.text.util.Linkify
import android.view.View
@ -6,13 +6,12 @@ import android.widget.LinearLayout
import android.widget.TextView
import androidx.annotation.StringRes
import dagger.android.HasAndroidInjector
import info.nightscout.configuration.setupwizard.SWValidator
class SWHtmlLink(injector: HasAndroidInjector) : SWItem(injector, Type.HTML_LINK) {
private var textLabel: String? = null
private var l: TextView? = null
private var visibilityValidator: SWValidator? = null
private var visibilityValidator: (() -> Boolean)? = null
override fun label(@StringRes label: Int): SWHtmlLink {
this.label = label
@ -24,7 +23,7 @@ class SWHtmlLink(injector: HasAndroidInjector) : SWItem(injector, Type.HTML_LINK
return this
}
fun visibility(visibilityValidator: SWValidator): SWHtmlLink {
fun visibility(visibilityValidator: () -> Boolean): SWHtmlLink {
this.visibilityValidator = visibilityValidator
return this
}
@ -39,6 +38,6 @@ class SWHtmlLink(injector: HasAndroidInjector) : SWItem(injector, Type.HTML_LINK
}
override fun processVisibility() {
if (visibilityValidator != null && !visibilityValidator!!.isValid) l?.visibility = View.GONE else l?.visibility = View.VISIBLE
if (visibilityValidator?.invoke() == false) l?.visibility = View.GONE else l?.visibility = View.VISIBLE
}
}

View file

@ -1,15 +1,15 @@
package info.nightscout.configuration.setupwizard.elements
package app.aaps.configuration.setupwizard.elements
import android.view.View
import android.widget.LinearLayout
import android.widget.TextView
import dagger.android.HasAndroidInjector
import info.nightscout.configuration.setupwizard.SWValidator
class SWInfoText(injector: HasAndroidInjector) : SWItem(injector, Type.TEXT) {
private var textLabel: String? = null
private var l: TextView? = null
private var visibilityValidator: SWValidator? = null
private var visibilityValidator: (() -> Boolean)? = null
override fun label(label: Int): SWInfoText {
this.label = label
@ -21,7 +21,7 @@ class SWInfoText(injector: HasAndroidInjector) : SWItem(injector, Type.TEXT) {
return this
}
fun visibility(visibilityValidator: SWValidator): SWInfoText {
fun visibility(visibilityValidator: () -> Boolean): SWInfoText {
this.visibilityValidator = visibilityValidator
return this
}
@ -35,6 +35,6 @@ class SWInfoText(injector: HasAndroidInjector) : SWItem(injector, Type.TEXT) {
}
override fun processVisibility() {
if (visibilityValidator != null && !visibilityValidator!!.isValid) l?.visibility = View.GONE else l?.visibility = View.VISIBLE
if (visibilityValidator?.invoke() == false) l?.visibility = View.GONE else l?.visibility = View.VISIBLE
}
}

View file

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

View file

@ -1,10 +1,10 @@
package info.nightscout.configuration.setupwizard.elements
package app.aaps.configuration.setupwizard.elements
import android.widget.LinearLayout
import androidx.annotation.StringRes
import app.aaps.configuration.configBuilder.events.EventConfigBuilderUpdateGui
import app.aaps.configuration.setupwizard.SWDefinition
import dagger.android.HasAndroidInjector
import info.nightscout.configuration.configBuilder.events.EventConfigBuilderUpdateGui
import info.nightscout.configuration.setupwizard.SWDefinition
import info.nightscout.core.utils.fabric.FabricPrivacy
import info.nightscout.interfaces.ConfigBuilder
import info.nightscout.interfaces.plugin.ActivePlugin

View file

@ -1,10 +1,10 @@
package info.nightscout.configuration.setupwizard.elements
package app.aaps.configuration.setupwizard.elements
import android.os.Bundle
import android.widget.LinearLayout
import androidx.fragment.app.Fragment
import app.aaps.configuration.setupwizard.SWDefinition
import dagger.android.HasAndroidInjector
import info.nightscout.configuration.setupwizard.SWDefinition
import info.nightscout.interfaces.ui.UiInteraction
import javax.inject.Inject

View file

@ -1,4 +1,4 @@
package info.nightscout.configuration.setupwizard.elements
package app.aaps.configuration.setupwizard.elements
import android.view.View
import android.view.ViewGroup
@ -9,6 +9,7 @@ import android.widget.TextView
import dagger.android.HasAndroidInjector
class SWRadioButton(injector: HasAndroidInjector) : SWItem(injector, Type.RADIOBUTTON) {
private var labelsArray = 0
private var valuesArray = 0
private var radioGroup: RadioGroup? = null

View file

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

View file

@ -5,7 +5,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="info.nightscout.configuration.maintenance.activities.LogSettingActivity">
tools:context=".maintenance.activities.LogSettingActivity">
<LinearLayout
android:layout_width="match_parent"

View file

@ -4,7 +4,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="info.nightscout.configuration.setupwizard.SetupWizardActivity">
tools:context=".setupwizard.SetupWizardActivity">
<TextView
android:id="@+id/sw_content"

View file

@ -4,7 +4,7 @@
android:layout_height="match_parent"
android:layout_marginTop="4dp"
android:orientation="vertical"
tools:context="info.nightscout.configuration.maintenance.activities.CustomWatchfaceImportListActivity">
tools:context=".maintenance.activities.CustomWatchfaceImportListActivity">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerview"

View file

@ -1,11 +1,10 @@
<androidx.core.widget.NestedScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="2dp"
tools:context="info.nightscout.configuration.maintenance.MaintenanceFragment">
tools:context=".maintenance.MaintenanceFragment">
<LinearLayout
android:layout_width="match_parent"

View file

@ -4,7 +4,7 @@
android:layout_height="match_parent"
android:layout_marginTop="4dp"
android:orientation="vertical"
tools:context="info.nightscout.configuration.maintenance.activities.PrefImportListActivity">
tools:context=".maintenance.activities.PrefImportListActivity">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerview"

View file

@ -1,14 +1,14 @@
package info.nightscout.configuration.maintenance.formats
package app.aaps.configuration.maintenance.formats
import app.aaps.configuration.maintenance.PrefsMetadataKeyImpl
import app.aaps.configuration.maintenance.data.PrefFormatError
import app.aaps.configuration.maintenance.data.Prefs
import app.aaps.configuration.maintenance.data.PrefsFormat
import app.aaps.configuration.maintenance.data.PrefsStatusImpl
import app.aaps.shared.tests.TestBase
import com.google.common.truth.TruthJUnit.assume
import info.nightscout.configuration.maintenance.PrefsMetadataKeyImpl
import info.nightscout.core.utils.CryptoUtil
import info.nightscout.interfaces.maintenance.PrefFormatError
import info.nightscout.interfaces.maintenance.PrefMetadata
import info.nightscout.interfaces.maintenance.Prefs
import info.nightscout.interfaces.maintenance.PrefsFormat
import info.nightscout.interfaces.maintenance.PrefsStatusImpl
import info.nightscout.shared.interfaces.ResourceHelper
import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.BeforeEach

View file

@ -1,4 +1,4 @@
package info.nightscout.configuration.maintenance.formats
package app.aaps.configuration.maintenance.formats
import info.nightscout.interfaces.storage.Storage
import java.io.File