Polishing

This commit is contained in:
Philipp Heckel 2022-02-16 13:46:35 -05:00
parent 8f1167b54d
commit 3ec1208edd
8 changed files with 58 additions and 70 deletions

View file

@ -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"

View file

@ -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 {

View file

@ -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<ListPreference> { 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<EditTextPreference> { 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

View file

@ -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 {

View file

@ -217,7 +217,6 @@
<!-- Settings -->
<string name="settings_title">Settings</string>
<string name="settings_general_header">General</string>
<string name="settings_notifications_header">Notifications</string>
<string name="settings_notifications_muted_until_key">MutedUntil</string>
<string name="settings_notifications_muted_until_title">Pause notifications</string>
@ -261,31 +260,30 @@
<string name="settings_notifications_auto_delete_one_week">After one week</string>
<string name="settings_notifications_auto_delete_one_month">After one month</string>
<string name="settings_notifications_auto_delete_three_months">After 3 months</string>
<string name="settings_appearance_header">Appearance</string>
<string name="settings_appearance_dark_mode_key">DarkMode</string>
<string name="settings_appearance_dark_mode_title">Dark mode</string>
<string name="settings_appearance_dark_mode_summary_system">Use the system default</string>
<string name="settings_appearance_dark_mode_summary_light">Light mode is enabled</string>
<string name="settings_appearance_dark_mode_summary_dark">Dark mode is enabled. Are you a vampire?</string>
<string name="settings_appearance_dark_mode_entry_system">Use system default</string>
<string name="settings_appearance_dark_mode_entry_light">Light mode</string>
<string name="settings_appearance_dark_mode_entry_dark">Dark mode</string>
<string name="settings_users_header">Users</string>
<string name="settings_users_key">ManageUsers</string>
<string name="settings_users_title">Manage users</string>
<string name="settings_users_summary">Add/remove users for protected topics</string>
<string name="settings_users_prefs_title">Users</string>
<string name="settings_users_prefs_user_not_used">Not used by any topics</string>
<string name="settings_users_prefs_user_used_by_one">Used by topic %1$s</string>
<string name="settings_users_prefs_user_used_by_many">Used by topics %1$s</string>
<string name="settings_users_prefs_user_add">Add users</string>
<string name="settings_users_prefs_user_add_title">Add new user</string>
<string name="settings_users_prefs_user_add_summary">Create a new user for a new server</string>
<string name="settings_general_header">General</string>
<string name="settings_general_default_base_url_key">DefaultBaseURL</string>
<string name="settings_general_default_base_url_title">Default server</string>
<string name="settings_general_default_base_url_message">To use your own server as a default when subscribing to new topics and/or sharing to topics, enter the server base URL.</string>
<string name="settings_general_default_base_url_default_summary">%1$s (default)</string>
<string name="settings_general_users_key">ManageUsers</string>
<string name="settings_general_users_title">Manage users</string>
<string name="settings_general_users_summary">Add/remove users for protected topics</string>
<string name="settings_general_users_prefs_title">Users</string>
<string name="settings_general_users_prefs_user_not_used">Not used by any topics</string>
<string name="settings_general_users_prefs_user_used_by_one">Used by topic %1$s</string>
<string name="settings_general_users_prefs_user_used_by_many">Used by topics %1$s</string>
<string name="settings_general_users_prefs_user_add">Add users</string>
<string name="settings_general_users_prefs_user_add_title">Add new user</string>
<string name="settings_general_users_prefs_user_add_summary">Create a new user for a new server</string>
<string name="settings_general_dark_mode_key">DarkMode</string>
<string name="settings_general_dark_mode_title">Dark mode</string>
<string name="settings_general_dark_mode_summary_system">Use the system default</string>
<string name="settings_general_dark_mode_summary_light">Light mode is enabled</string>
<string name="settings_general_dark_mode_summary_dark">Dark mode is enabled. Are you a vampire?</string>
<string name="settings_general_dark_mode_entry_system">Use system default</string>
<string name="settings_general_dark_mode_entry_light">Light mode</string>
<string name="settings_general_dark_mode_entry_dark">Dark mode</string>
<string name="settings_advanced_header">Advanced</string>
<string name="settings_advanced_default_base_url_key">DefaultBaseURL</string>
<string name="settings_advanced_default_base_url_title">Default server</string>
<string name="settings_advanced_default_base_url_message">To use your own server as a default when subscribing to new topics and/or sharing to topics, enter the server base URL.</string>
<string name="settings_advanced_default_base_url_default_summary">%1$s (default)</string>
<string name="settings_advanced_broadcast_key">BroadcastEnabled</string>
<string name="settings_advanced_broadcast_title">Broadcast messages</string>
<string name="settings_advanced_broadcast_summary_enabled">Apps can receive incoming notifications as broadcasts</string>

View file

@ -89,12 +89,12 @@
<item>upload_original</item>
<item>upload_scrubbed</item>
</string-array>
<string-array name="settings_appearance_dark_mode_entries">
<item>@string/settings_appearance_dark_mode_entry_system</item>
<item>@string/settings_appearance_dark_mode_entry_light</item>
<item>@string/settings_appearance_dark_mode_entry_dark</item>
<string-array name="settings_general_dark_mode_entries">
<item>@string/settings_general_dark_mode_entry_system</item>
<item>@string/settings_general_dark_mode_entry_light</item>
<item>@string/settings_general_dark_mode_entry_dark</item>
</string-array>
<string-array name="settings_appearance_dark_mode_values">
<string-array name="settings_general_dark_mode_values">
<!-- Must match values in AppCompatDelegate -->
<item>-1</item>
<item>1</item>

View file

@ -28,20 +28,20 @@
</PreferenceCategory>
<PreferenceCategory app:title="@string/settings_general_header">
<EditTextPreference
app:key="@string/settings_advanced_default_base_url_key"
app:title="@string/settings_advanced_default_base_url_title"
app:key="@string/settings_general_default_base_url_key"
app:title="@string/settings_general_default_base_url_title"
app:dialogLayout="@layout/preference_dialog_edittext_edited"
app:dialogMessage="@string/settings_advanced_default_base_url_message"/>
app:dialogMessage="@string/settings_general_default_base_url_message"/>
<Preference
app:key="@string/settings_users_key"
app:title="@string/settings_users_title"
app:summary="@string/settings_users_summary"
app:key="@string/settings_general_users_key"
app:title="@string/settings_general_users_title"
app:summary="@string/settings_general_users_summary"
app:fragment="io.heckel.ntfy.ui.SettingsActivity$UserSettingsFragment"/>
<ListPreference
app:key="@string/settings_appearance_dark_mode_key"
app:title="@string/settings_appearance_dark_mode_title"
app:entries="@array/settings_appearance_dark_mode_entries"
app:entryValues="@array/settings_appearance_dark_mode_values"
app:key="@string/settings_general_dark_mode_key"
app:title="@string/settings_general_dark_mode_title"
app:entries="@array/settings_general_dark_mode_entries"
app:entryValues="@array/settings_general_dark_mode_values"
app:defaultValue="-1"/>
</PreferenceCategory>
<PreferenceCategory app:title="@string/settings_advanced_header">

View file

@ -1,3 +1,3 @@
<PreferenceScreen xmlns:app="http://schemas.android.com/apk/res-auto"
app:title="@string/settings_users_prefs_title">
app:title="@string/settings_general_users_prefs_title">
</PreferenceScreen>