diff --git a/app/src/main/java/io/heckel/ntfy/db/Repository.kt b/app/src/main/java/io/heckel/ntfy/db/Repository.kt index e4ff638..ffb837b 100644 --- a/app/src/main/java/io/heckel/ntfy/db/Repository.kt +++ b/app/src/main/java/io/heckel/ntfy/db/Repository.kt @@ -293,19 +293,6 @@ class Repository(private val sharedPrefs: SharedPreferences, private val databas .apply() } - fun setUnifiedPushBaseUrl(baseUrl: String) { - if (baseUrl == "") { - sharedPrefs - .edit() - .remove(SHARED_PREFS_UNIFIED_PUSH_BASE_URL) - .apply() - } else { - sharedPrefs.edit() - .putString(SHARED_PREFS_UNIFIED_PUSH_BASE_URL, baseUrl) - .apply() - } - } - fun getDefaultBaseUrl(): String? { return sharedPrefs.getString(SHARED_PREFS_DEFAULT_BASE_URL, null) ?: sharedPrefs.getString(SHARED_PREFS_UNIFIED_PUSH_BASE_URL, null) // Fall back to UP URL, removed when default is set! @@ -439,8 +426,7 @@ class Repository(private val sharedPrefs: SharedPreferences, private val databas const val SHARED_PREFS_BROADCAST_ENABLED = "BroadcastEnabled" const val SHARED_PREFS_RECORD_LOGS_ENABLED = "RecordLogs" const val SHARED_PREFS_BATTERY_OPTIMIZATIONS_REMIND_TIME = "BatteryOptimizationsRemindTime" - const val SHARED_PREFS_UNIFIED_PUSH_ENABLED = "UnifiedPushEnabled" - const val SHARED_PREFS_UNIFIED_PUSH_BASE_URL = "UnifiedPushBaseURL" + const val SHARED_PREFS_UNIFIED_PUSH_BASE_URL = "UnifiedPushBaseURL" // Legacy key required for migration to DefaultBaseURL const val SHARED_PREFS_DEFAULT_BASE_URL = "DefaultBaseURL" const val SHARED_PREFS_LAST_TOPICS = "LastTopics" diff --git a/app/src/main/java/io/heckel/ntfy/ui/AddFragment.kt b/app/src/main/java/io/heckel/ntfy/ui/AddFragment.kt index 6ad9b0a..0099ee9 100644 --- a/app/src/main/java/io/heckel/ntfy/ui/AddFragment.kt +++ b/app/src/main/java/io/heckel/ntfy/ui/AddFragment.kt @@ -341,7 +341,9 @@ class AddFragment : DialogFragment() { } private fun validateInputLoginView() { - if (!this::positiveButton.isInitialized) return // As per crash seen in Google Play + if (!this::positiveButton.isInitialized || !this::loginUsernameText.isInitialized || !this::loginPasswordText.isInitialized) { + return // As per crash seen in Google Play + } if (loginUsernameText.visibility == View.GONE) { positiveButton.isEnabled = true } else { diff --git a/app/src/main/java/io/heckel/ntfy/ui/SettingsActivity.kt b/app/src/main/java/io/heckel/ntfy/ui/SettingsActivity.kt index 5afca96..63e510f 100644 --- a/app/src/main/java/io/heckel/ntfy/ui/SettingsActivity.kt +++ b/app/src/main/java/io/heckel/ntfy/ui/SettingsActivity.kt @@ -260,7 +260,7 @@ class SettingsActivity : AppCompatActivity(), PreferenceFragmentCompat.OnPrefere } // Dark mode - val darkModePrefId = context?.getString(R.string.settings_appearance_dark_mode_key) ?: return + val darkModePrefId = context?.getString(R.string.settings_general_dark_mode_key) ?: return val darkMode: ListPreference? = findPreference(darkModePrefId) darkMode?.value = repository.getDarkMode().toString() darkMode?.preferenceDataStore = object : PreferenceDataStore() { @@ -277,15 +277,15 @@ class SettingsActivity : AppCompatActivity(), PreferenceFragmentCompat.OnPrefere darkMode?.summaryProvider = Preference.SummaryProvider { pref -> val darkModeValue = pref.value.toIntOrNull() ?: repository.getDarkMode() when (darkModeValue) { - AppCompatDelegate.MODE_NIGHT_NO -> getString(R.string.settings_appearance_dark_mode_summary_light) - AppCompatDelegate.MODE_NIGHT_YES -> getString(R.string.settings_appearance_dark_mode_summary_dark) - else -> getString(R.string.settings_appearance_dark_mode_summary_system) + AppCompatDelegate.MODE_NIGHT_NO -> getString(R.string.settings_general_dark_mode_summary_light) + AppCompatDelegate.MODE_NIGHT_YES -> getString(R.string.settings_general_dark_mode_summary_dark) + else -> getString(R.string.settings_general_dark_mode_summary_system) } } // Default Base URL val appBaseUrl = getString(R.string.app_base_url) - val defaultBaseUrlPrefId = context?.getString(R.string.settings_advanced_default_base_url_key) ?: return + val defaultBaseUrlPrefId = context?.getString(R.string.settings_general_default_base_url_key) ?: return val defaultBaseUrl: EditTextPreference? = findPreference(defaultBaseUrlPrefId) defaultBaseUrl?.text = repository.getDefaultBaseUrl() ?: "" defaultBaseUrl?.preferenceDataStore = object : PreferenceDataStore() { @@ -299,7 +299,7 @@ class SettingsActivity : AppCompatActivity(), PreferenceFragmentCompat.OnPrefere } defaultBaseUrl?.summaryProvider = Preference.SummaryProvider { pref -> if (TextUtils.isEmpty(pref.text)) { - getString(R.string.settings_advanced_default_base_url_default_summary, appBaseUrl) + getString(R.string.settings_general_default_base_url_default_summary, appBaseUrl) } else { pref.text } @@ -586,11 +586,11 @@ class SettingsActivity : AppCompatActivity(), PreferenceFragmentCompat.OnPrefere val preference = Preference(preferenceScreen.context) preference.title = user.user.username preference.summary = if (user.topics.isEmpty()) { - getString(R.string.settings_users_prefs_user_not_used) + getString(R.string.settings_general_users_prefs_user_not_used) } else if (user.topics.size == 1) { - getString(R.string.settings_users_prefs_user_used_by_one, user.topics[0]) + getString(R.string.settings_general_users_prefs_user_used_by_one, user.topics[0]) } else { - getString(R.string.settings_users_prefs_user_used_by_many, user.topics.joinToString(", ")) + getString(R.string.settings_general_users_prefs_user_used_by_many, user.topics.joinToString(", ")) } preference.onPreferenceClickListener = OnPreferenceClickListener { _ -> activity?.let { @@ -606,12 +606,12 @@ class SettingsActivity : AppCompatActivity(), PreferenceFragmentCompat.OnPrefere // Add user val userAddCategory = PreferenceCategory(preferenceScreen.context) - userAddCategory.title = getString(R.string.settings_users_prefs_user_add) + userAddCategory.title = getString(R.string.settings_general_users_prefs_user_add) preferenceScreen.addPreference(userAddCategory) val userAddPref = Preference(preferenceScreen.context) - userAddPref.title = getString(R.string.settings_users_prefs_user_add_title) - userAddPref.summary = getString(R.string.settings_users_prefs_user_add_summary) + userAddPref.title = getString(R.string.settings_general_users_prefs_user_add_title) + userAddPref.summary = getString(R.string.settings_general_users_prefs_user_add_summary) userAddPref.onPreferenceClickListener = OnPreferenceClickListener { _ -> activity?.let { UserFragment diff --git a/app/src/main/java/io/heckel/ntfy/ui/ShareActivity.kt b/app/src/main/java/io/heckel/ntfy/ui/ShareActivity.kt index 3f6dd2c..04f698a 100644 --- a/app/src/main/java/io/heckel/ntfy/ui/ShareActivity.kt +++ b/app/src/main/java/io/heckel/ntfy/ui/ShareActivity.kt @@ -317,7 +317,9 @@ class ShareActivity : AppCompatActivity() { } private fun validateInput() { - if (!this::sendItem.isInitialized) return // Initialized late in onCreateOptionsMenu + if (!this::sendItem.isInitialized || !this::useAnotherServerCheckbox.isInitialized || !this::contentText.isInitialized || !this::topicText.isInitialized) { + return // sendItem is initialized late in onCreateOptionsMenu + } val enabled = if (useAnotherServerCheckbox.isChecked) { contentText.text.isNotEmpty() && validTopic(topicText.text.toString()) && validUrl(baseUrlText.text.toString()) } else { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 0a3ff2d..d97c198 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -217,7 +217,6 @@ Settings - General Notifications MutedUntil Pause notifications @@ -261,31 +260,30 @@ After one week After one month After 3 months - Appearance - DarkMode - Dark mode - Use the system default - Light mode is enabled - Dark mode is enabled. Are you a vampire? - Use system default - Light mode - Dark mode - Users - ManageUsers - Manage users - Add/remove users for protected topics - Users - Not used by any topics - Used by topic %1$s - Used by topics %1$s - Add users - Add new user - Create a new user for a new server + General + DefaultBaseURL + Default server + To use your own server as a default when subscribing to new topics and/or sharing to topics, enter the server base URL. + %1$s (default) + ManageUsers + Manage users + Add/remove users for protected topics + Users + Not used by any topics + Used by topic %1$s + Used by topics %1$s + Add users + Add new user + Create a new user for a new server + DarkMode + Dark mode + Use the system default + Light mode is enabled + Dark mode is enabled. Are you a vampire? + Use system default + Light mode + Dark mode Advanced - DefaultBaseURL - Default server - To use your own server as a default when subscribing to new topics and/or sharing to topics, enter the server base URL. - %1$s (default) BroadcastEnabled Broadcast messages Apps can receive incoming notifications as broadcasts diff --git a/app/src/main/res/values/values.xml b/app/src/main/res/values/values.xml index 6519f7e..696b711 100644 --- a/app/src/main/res/values/values.xml +++ b/app/src/main/res/values/values.xml @@ -89,12 +89,12 @@ upload_original upload_scrubbed - - @string/settings_appearance_dark_mode_entry_system - @string/settings_appearance_dark_mode_entry_light - @string/settings_appearance_dark_mode_entry_dark + + @string/settings_general_dark_mode_entry_system + @string/settings_general_dark_mode_entry_light + @string/settings_general_dark_mode_entry_dark - + -1 1 diff --git a/app/src/main/res/xml/main_preferences.xml b/app/src/main/res/xml/main_preferences.xml index 9065c4b..c2e98f6 100644 --- a/app/src/main/res/xml/main_preferences.xml +++ b/app/src/main/res/xml/main_preferences.xml @@ -28,20 +28,20 @@ + app:dialogMessage="@string/settings_general_default_base_url_message"/> diff --git a/app/src/main/res/xml/user_preferences.xml b/app/src/main/res/xml/user_preferences.xml index 0031a14..fbb9d44 100644 --- a/app/src/main/res/xml/user_preferences.xml +++ b/app/src/main/res/xml/user_preferences.xml @@ -1,3 +1,3 @@ + app:title="@string/settings_general_users_prefs_title">