From 4f1cde6c07a14dcef7e0147c7ff3f79c82b5d8e9 Mon Sep 17 00:00:00 2001 From: SpiritCroc Date: Sat, 11 Sep 2021 11:16:37 +0200 Subject: [PATCH] Add some secret setting Change-Id: I8f43d720c556389555128da07e8c6571afea13c3 --- .../im/vector/app/core/di/FragmentModule.kt | 6 +++++ .../features/settings/VectorPreferences.kt | 23 +++++++++++++++++++ .../VectorSettingsAdvancedSettingsFragment.kt | 19 ++++++++++++++- vector/src/main/res/values/strings_sc.xml | 4 ++++ .../xml/vector_settings_advanced_settings.xml | 6 +++++ 5 files changed, 57 insertions(+), 1 deletion(-) diff --git a/vector/src/main/java/im/vector/app/core/di/FragmentModule.kt b/vector/src/main/java/im/vector/app/core/di/FragmentModule.kt index 6b42f1e428..e741357a00 100644 --- a/vector/src/main/java/im/vector/app/core/di/FragmentModule.kt +++ b/vector/src/main/java/im/vector/app/core/di/FragmentModule.kt @@ -114,6 +114,7 @@ import im.vector.app.features.roomprofile.settings.joinrule.RoomJoinRuleFragment import im.vector.app.features.roomprofile.uploads.RoomUploadsFragment import im.vector.app.features.roomprofile.uploads.files.RoomUploadsFilesFragment import im.vector.app.features.roomprofile.uploads.media.RoomUploadsMediaFragment +import im.vector.app.features.settings.VectorSettingsAdvancedSettingsFragment import im.vector.app.features.settings.notifications.VectorSettingsAdvancedNotificationPreferenceFragment import im.vector.app.features.settings.VectorSettingsGeneralFragment import im.vector.app.features.settings.VectorSettingsHelpAboutFragment @@ -453,6 +454,11 @@ interface FragmentModule { @FragmentKey(VectorSettingsDevicesFragment::class) fun bindVectorSettingsDevicesFragment(fragment: VectorSettingsDevicesFragment): Fragment + @Binds + @IntoMap + @FragmentKey(VectorSettingsAdvancedSettingsFragment::class) + fun bindVectorSettingsAdvancedSettingsFragment(fragment: VectorSettingsAdvancedSettingsFragment): Fragment + @Binds @IntoMap @FragmentKey(ThreePidsSettingsFragment::class) diff --git a/vector/src/main/java/im/vector/app/features/settings/VectorPreferences.kt b/vector/src/main/java/im/vector/app/features/settings/VectorPreferences.kt index c04c45395b..d3487a4100 100755 --- a/vector/src/main/java/im/vector/app/features/settings/VectorPreferences.kt +++ b/vector/src/main/java/im/vector/app/features/settings/VectorPreferences.kt @@ -1021,6 +1021,29 @@ class VectorPreferences @Inject constructor(private val context: Context) { return Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP && defaultPrefs.getBoolean(SETTINGS_VOICE_MESSAGE, true) } + /** + * I likely do more fresh installs of the app than anyone else, so a shortcut to change some of the default settings to + * my preferred values can safe me some time + */ + fun applyScDefaultValues() { + defaultPrefs.edit() + .putBoolean(SETTINGS_SIMPLIFIED_MODE, false) + .putString(SETTINGS_USER_COLOR_MODE_PUBLIC_ROOM, MatrixItemColorProvider.USER_COLORING_FROM_PL) + .putString(SETTINGS_USER_COLOR_MODE_DEFAULT, MatrixItemColorProvider.USER_COLORING_FROM_PL) + .putString(SETTINGS_USER_COLOR_MODE_DM, MatrixItemColorProvider.USER_COLORING_UNIFORM) + .putString(SETTINGS_ROOM_UNREAD_KIND_DM, RoomSummary.UNREAD_KIND_ORIGINAL_CONTENT.toString()) + .putString(SETTINGS_ROOM_UNREAD_KIND_GROUP, RoomSummary.UNREAD_KIND_ORIGINAL_CONTENT.toString()) + .putBoolean(SETTINGS_UNIMPORTANT_COUNTER_BADGE, true) + .putBoolean(SETTINGS_PREF_SPACE_SHOW_ALL_ROOM_IN_HOME, true) + .putBoolean(SETTINGS_OPEN_CHATS_AT_FIRST_UNREAD, true) + .putBoolean(SETTINGS_ALLOW_URL_PREVIEW_IN_ENCRYPTED_ROOM_KEY, true) + .putBoolean(SETTINGS_LABS_ALLOW_MARK_UNREAD, true) + .putBoolean(SETTINGS_LABS_ENABLE_SWIPE_TO_REPLY, false) + .putBoolean(SETTINGS_VOICE_MESSAGE, false) + .putBoolean(SETTINGS_USE_RAGE_SHAKE_KEY, true) + .apply() + } + /** * The user enable protecting app access with pin code. * Currently we use the pin code store to know if the pin is enabled, so this is not used diff --git a/vector/src/main/java/im/vector/app/features/settings/VectorSettingsAdvancedSettingsFragment.kt b/vector/src/main/java/im/vector/app/features/settings/VectorSettingsAdvancedSettingsFragment.kt index 80c8dfa77d..e37a47093f 100644 --- a/vector/src/main/java/im/vector/app/features/settings/VectorSettingsAdvancedSettingsFragment.kt +++ b/vector/src/main/java/im/vector/app/features/settings/VectorSettingsAdvancedSettingsFragment.kt @@ -18,12 +18,17 @@ package im.vector.app.features.settings import androidx.preference.Preference import androidx.preference.SeekBarPreference +import com.google.android.material.dialog.MaterialAlertDialogBuilder import im.vector.app.R import im.vector.app.core.platform.VectorBaseActivity +import im.vector.app.core.preference.VectorPreference import im.vector.app.core.preference.VectorSwitchPreference import im.vector.app.features.rageshake.RageShake +import javax.inject.Inject -class VectorSettingsAdvancedSettingsFragment : VectorSettingsBaseFragment() { +class VectorSettingsAdvancedSettingsFragment @Inject constructor( + private val vectorPreferences: VectorPreferences +): VectorSettingsBaseFragment() { override var titleRes = R.string.settings_advanced_settings override val preferenceXmlRes = R.xml.vector_settings_advanced_settings @@ -74,5 +79,17 @@ class VectorSettingsAdvancedSettingsFragment : VectorSettingsBaseFragment() { } else { findPreference("SETTINGS_RAGE_SHAKE_CATEGORY_KEY")!!.isVisible = false } + + findPreference("SETTINGS_APPLY_SC_DEFAULT_SETTINGS")?.onPreferenceClickListener = Preference.OnPreferenceClickListener { + MaterialAlertDialogBuilder(requireContext()) + .setTitle(R.string.settings_apply_sc_default_settings_dialog_title) + .setMessage(R.string.settings_apply_sc_default_settings_dialog_summary) + .setPositiveButton(R.string._continue) { _, _ -> + vectorPreferences.applyScDefaultValues() + } + .setNegativeButton(R.string.cancel) { _, _ -> /* Just close dialog */ } + .show() + true + } } } diff --git a/vector/src/main/res/values/strings_sc.xml b/vector/src/main/res/values/strings_sc.xml index b879a8e6e7..408f04823f 100644 --- a/vector/src/main/res/values/strings_sc.xml +++ b/vector/src/main/res/values/strings_sc.xml @@ -128,4 +128,8 @@ Pusher successfully registered to HomeServer. Failed to register pusher to HomeServer:\n%1$s + Do not click this setting + Mess up settings + If you continue, this will mess with your app settings! + diff --git a/vector/src/main/res/xml/vector_settings_advanced_settings.xml b/vector/src/main/res/xml/vector_settings_advanced_settings.xml index 5151982101..9c9a25c7ed 100644 --- a/vector/src/main/res/xml/vector_settings_advanced_settings.xml +++ b/vector/src/main/res/xml/vector_settings_advanced_settings.xml @@ -86,6 +86,12 @@ android:title="@string/settings_key_requests" app:fragment="im.vector.app.features.settings.devtools.KeyRequestsFragment" /> + + +