From f1f73b65f7ad7aaaee2796a0547f9c80cc2d17df Mon Sep 17 00:00:00 2001 From: Moritz Warning Date: Sun, 14 Sep 2025 16:25:35 +0200 Subject: [PATCH] add setting to disable breastfeeding buttons Some women do not breastfeed. Hide the buttons in order to have more space for log messages. --- .../lunatracker/MainActivity.kt | 6 ++ .../lunatracker/SettingsActivity.kt | 9 +++ .../repository/LocalSettingsRepository.kt | 10 +++ app/src/main/res/layout/activity_main.xml | 3 +- app/src/main/res/layout/activity_settings.xml | 79 ++++++++++++------- app/src/main/res/values-de/strings.xml | 2 + app/src/main/res/values/strings.xml | 2 + 7 files changed, 82 insertions(+), 29 deletions(-) diff --git a/app/src/main/java/it/danieleverducci/lunatracker/MainActivity.kt b/app/src/main/java/it/danieleverducci/lunatracker/MainActivity.kt index 1cb89dc..665412f 100644 --- a/app/src/main/java/it/danieleverducci/lunatracker/MainActivity.kt +++ b/app/src/main/java/it/danieleverducci/lunatracker/MainActivity.kt @@ -168,6 +168,12 @@ class MainActivity : AppCompatActivity() { logbookRepo = FileLogbookRepository() } + val noBreastfeeding = settingsRepository.loadNoBreastfeeding() + findViewById(R.id.layout_nipples).visibility = when (noBreastfeeding) { + true -> View.GONE + false -> View.VISIBLE + } + // Update list dates recyclerView.adapter?.notifyDataSetChanged() diff --git a/app/src/main/java/it/danieleverducci/lunatracker/SettingsActivity.kt b/app/src/main/java/it/danieleverducci/lunatracker/SettingsActivity.kt index 13d2440..a0731f9 100644 --- a/app/src/main/java/it/danieleverducci/lunatracker/SettingsActivity.kt +++ b/app/src/main/java/it/danieleverducci/lunatracker/SettingsActivity.kt @@ -7,6 +7,7 @@ import android.widget.TextView import android.widget.Toast import androidx.appcompat.app.AppCompatActivity import com.google.android.material.progressindicator.LinearProgressIndicator +import com.google.android.material.switchmaterial.SwitchMaterial import com.thegrizzlylabs.sardineandroid.impl.SardineException import it.danieleverducci.lunatracker.repository.FileLogbookRepository import it.danieleverducci.lunatracker.repository.LocalSettingsRepository @@ -24,6 +25,7 @@ open class SettingsActivity : AppCompatActivity() { protected lateinit var textViewWebDAVUser: TextView protected lateinit var textViewWebDAVPass: TextView protected lateinit var progressIndicator: LinearProgressIndicator + protected lateinit var switchNoBreastfeeding: SwitchMaterial override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -35,6 +37,8 @@ open class SettingsActivity : AppCompatActivity() { textViewWebDAVUser = findViewById(R.id.settings_data_webdav_user) textViewWebDAVPass = findViewById(R.id.settings_data_webdav_pass) progressIndicator = findViewById(R.id.progress_indicator) + switchNoBreastfeeding = findViewById(R.id.switch_no_breastfeeding) + findViewById(R.id.settings_save).setOnClickListener({ validateAndSave() }) @@ -49,11 +53,15 @@ open class SettingsActivity : AppCompatActivity() { fun loadSettings() { val dataRepo = settingsRepository.loadDataRepository() val webDavCredentials = settingsRepository.loadWebdavCredentials() + val noBreastfeeding = settingsRepository.loadNoBreastfeeding() when (dataRepo) { LocalSettingsRepository.DATA_REPO.LOCAL_FILE -> radioDataLocal.isChecked = true LocalSettingsRepository.DATA_REPO.WEBDAV -> radioDataWebDAV.isChecked = true } + + switchNoBreastfeeding.isChecked = noBreastfeeding + if (webDavCredentials != null) { textViewWebDAVUrl.setText(webDavCredentials[0]) textViewWebDAVUser.setText(webDavCredentials[1]) @@ -149,6 +157,7 @@ open class SettingsActivity : AppCompatActivity() { if (radioDataWebDAV.isChecked) LocalSettingsRepository.DATA_REPO.WEBDAV else LocalSettingsRepository.DATA_REPO.LOCAL_FILE ) + settingsRepository.saveNoBreastfeeding(switchNoBreastfeeding.isChecked) settingsRepository.saveWebdavCredentials( textViewWebDAVUrl.text.toString(), textViewWebDAVUser.text.toString(), diff --git a/app/src/main/java/it/danieleverducci/lunatracker/repository/LocalSettingsRepository.kt b/app/src/main/java/it/danieleverducci/lunatracker/repository/LocalSettingsRepository.kt index b48608c..ede0b93 100644 --- a/app/src/main/java/it/danieleverducci/lunatracker/repository/LocalSettingsRepository.kt +++ b/app/src/main/java/it/danieleverducci/lunatracker/repository/LocalSettingsRepository.kt @@ -3,6 +3,7 @@ package it.danieleverducci.lunatracker.repository import android.content.Context import android.content.Context.MODE_PRIVATE import android.content.SharedPreferences +import androidx.core.content.edit class LocalSettingsRepository(val context: Context) { companion object { @@ -12,6 +13,7 @@ class LocalSettingsRepository(val context: Context) { val SHARED_PREFS_DAV_URL = "webdav_url" val SHARED_PREFS_DAV_USER = "webdav_user" val SHARED_PREFS_DAV_PASS = "webdav_password" + val SHARED_PREFS_NO_BREASTFEEDING = "no_breastfeeding" } enum class DATA_REPO {LOCAL_FILE, WEBDAV} val sharedPreferences: SharedPreferences @@ -28,6 +30,14 @@ class LocalSettingsRepository(val context: Context) { return sharedPreferences.getInt(SHARED_PREFS_BB_CONTENT, 1) } + fun saveNoBreastfeeding(content: Boolean) { + sharedPreferences.edit().putBoolean(SHARED_PREFS_NO_BREASTFEEDING, content).apply() + } + + fun loadNoBreastfeeding(): Boolean { + return sharedPreferences.getBoolean(SHARED_PREFS_NO_BREASTFEEDING, false) + } + fun saveDataRepository(repo: DATA_REPO) { val spe = sharedPreferences.edit() spe.putString( diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 0409368..992052f 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -122,7 +122,8 @@ + android:layout_height="wrap_content" + android:id="@+id/layout_nipples"> - - - -