Add some secret setting

Change-Id: I8f43d720c556389555128da07e8c6571afea13c3
This commit is contained in:
SpiritCroc 2021-09-11 11:16:37 +02:00
parent 8a8ad86806
commit 4f1cde6c07
5 changed files with 57 additions and 1 deletions

View File

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

View File

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

View File

@ -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<VectorSwitchPreference>("SETTINGS_RAGE_SHAKE_CATEGORY_KEY")!!.isVisible = false
}
findPreference<VectorPreference>("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
}
}
}

View File

@ -128,4 +128,8 @@
<string name="settings_troubleshoot_test_pusher_registration_success">Pusher successfully registered to HomeServer.</string>
<string name="settings_troubleshoot_test_pusher_registration_failed">Failed to register pusher to HomeServer:\n%1$s</string>
<string name="settings_apply_sc_default_settings">Do not click this setting</string>
<string name="settings_apply_sc_default_settings_dialog_title">Mess up settings</string>
<string name="settings_apply_sc_default_settings_dialog_summary">If you continue, this will mess with your app settings!</string>
</resources>

View File

@ -86,6 +86,12 @@
android:title="@string/settings_key_requests"
app:fragment="im.vector.app.features.settings.devtools.KeyRequestsFragment" />
<im.vector.app.core.preference.VectorPreference
android:key="SETTINGS_APPLY_SC_DEFAULT_SETTINGS"
android:persistent="false"
android:title="@string/settings_apply_sc_default_settings" />
</im.vector.app.core.preference.VectorPreferenceCategory>
</androidx.preference.PreferenceScreen>