diff --git a/CHANGES.md b/CHANGES.md
index 67b430e79b..adbba84260 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -10,6 +10,7 @@ Improvements 🙌:
- Fix autocompletion issues and add support for rooms and groups
- Introduce developer mode in the settings (#796)
- Improve devices list screen
+ - Add settings for rageshake sensibility
Other changes:
-
diff --git a/vector/src/main/AndroidManifest.xml b/vector/src/main/AndroidManifest.xml
index 124763916b..308ca60094 100644
--- a/vector/src/main/AndroidManifest.xml
+++ b/vector/src/main/AndroidManifest.xml
@@ -6,6 +6,7 @@
+
= Build.VERSION_CODES.O) {
+ vibrator.vibrate(VibrationEffect.createOneShot(durationMillis, VibrationEffect.DEFAULT_AMPLITUDE))
+ } else {
+ @Suppress("DEPRECATION")
+ vibrator.vibrate(durationMillis)
+ }
+}
diff --git a/vector/src/main/java/im/vector/riotx/features/navigation/DefaultNavigator.kt b/vector/src/main/java/im/vector/riotx/features/navigation/DefaultNavigator.kt
index 08ff11217d..48422056b4 100644
--- a/vector/src/main/java/im/vector/riotx/features/navigation/DefaultNavigator.kt
+++ b/vector/src/main/java/im/vector/riotx/features/navigation/DefaultNavigator.kt
@@ -120,8 +120,8 @@ class DefaultNavigator @Inject constructor(
context.startActivity(intent)
}
- override fun openSettings(context: Context) {
- val intent = VectorSettingsActivity.getIntent(context)
+ override fun openSettings(context: Context, directAccess: Int) {
+ val intent = VectorSettingsActivity.getIntent(context, directAccess)
context.startActivity(intent)
}
diff --git a/vector/src/main/java/im/vector/riotx/features/navigation/Navigator.kt b/vector/src/main/java/im/vector/riotx/features/navigation/Navigator.kt
index 278c8fdba0..60045984c3 100644
--- a/vector/src/main/java/im/vector/riotx/features/navigation/Navigator.kt
+++ b/vector/src/main/java/im/vector/riotx/features/navigation/Navigator.kt
@@ -19,6 +19,7 @@ package im.vector.riotx.features.navigation
import android.app.Activity
import android.content.Context
import im.vector.matrix.android.api.session.room.model.roomdirectory.PublicRoom
+import im.vector.riotx.features.settings.VectorSettingsActivity
import im.vector.riotx.features.share.SharedData
interface Navigator {
@@ -39,7 +40,7 @@ interface Navigator {
fun openRoomsFiltering(context: Context)
- fun openSettings(context: Context)
+ fun openSettings(context: Context, directAccess: Int = VectorSettingsActivity.EXTRA_DIRECT_ACCESS_ROOT)
fun openDebug(context: Context)
diff --git a/vector/src/main/java/im/vector/riotx/features/rageshake/RageShake.kt b/vector/src/main/java/im/vector/riotx/features/rageshake/RageShake.kt
index bbd1090d98..6d5c780202 100644
--- a/vector/src/main/java/im/vector/riotx/features/rageshake/RageShake.kt
+++ b/vector/src/main/java/im/vector/riotx/features/rageshake/RageShake.kt
@@ -23,11 +23,15 @@ import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity
import com.squareup.seismic.ShakeDetector
import im.vector.riotx.R
+import im.vector.riotx.core.hardware.vibrate
+import im.vector.riotx.features.navigation.Navigator
import im.vector.riotx.features.settings.VectorPreferences
+import im.vector.riotx.features.settings.VectorSettingsActivity
import javax.inject.Inject
class RageShake @Inject constructor(private val activity: AppCompatActivity,
private val bugReporter: BugReporter,
+ private val navigator: Navigator,
private val vectorPreferences: VectorPreferences) : ShakeDetector.Listener {
private var shakeDetector: ShakeDetector? = null
@@ -56,6 +60,7 @@ class RageShake @Inject constructor(private val activity: AppCompatActivity,
override fun hearShake() {
val i = interceptor
if (i != null) {
+ vibrate(activity)
i.invoke()
} else {
if (dialogDisplayed) {
@@ -63,6 +68,7 @@ class RageShake @Inject constructor(private val activity: AppCompatActivity,
return
}
+ vibrate(activity)
dialogDisplayed = true
AlertDialog.Builder(activity)
@@ -80,7 +86,7 @@ class RageShake @Inject constructor(private val activity: AppCompatActivity,
}
private fun openSettings() {
- // TODO
+ navigator.openSettings(activity, VectorSettingsActivity.EXTRA_DIRECT_ACCESS_DEVELOPER)
}
companion object {
diff --git a/vector/src/main/java/im/vector/riotx/features/settings/VectorSettingsActivity.kt b/vector/src/main/java/im/vector/riotx/features/settings/VectorSettingsActivity.kt
index 16484224af..810547f610 100755
--- a/vector/src/main/java/im/vector/riotx/features/settings/VectorSettingsActivity.kt
+++ b/vector/src/main/java/im/vector/riotx/features/settings/VectorSettingsActivity.kt
@@ -54,7 +54,12 @@ class VectorSettingsActivity : VectorBaseActivity(),
if (isFirstCreation()) {
// display the fragment
- replaceFragment(R.id.vector_settings_page, VectorSettingsRootFragment::class.java, null, FRAGMENT_TAG)
+ when (intent.getIntExtra(EXTRA_DIRECT_ACCESS, EXTRA_DIRECT_ACCESS_ROOT)) {
+ EXTRA_DIRECT_ACCESS_DEVELOPER ->
+ replaceFragment(R.id.vector_settings_page, VectorSettingsDeveloperModeFragment::class.java, null, FRAGMENT_TAG)
+ else ->
+ replaceFragment(R.id.vector_settings_page, VectorSettingsRootFragment::class.java, null, FRAGMENT_TAG)
+ }
}
supportFragmentManager.addOnBackStackChangedListener(this)
@@ -111,7 +116,13 @@ class VectorSettingsActivity : VectorBaseActivity(),
}
companion object {
- fun getIntent(context: Context) = Intent(context, VectorSettingsActivity::class.java)
+ fun getIntent(context: Context, directAccess: Int) = Intent(context, VectorSettingsActivity::class.java)
+ .apply { putExtra(EXTRA_DIRECT_ACCESS, directAccess) }
+
+ private const val EXTRA_DIRECT_ACCESS = "EXTRA_DIRECT_ACCESS"
+
+ const val EXTRA_DIRECT_ACCESS_ROOT = 0
+ const val EXTRA_DIRECT_ACCESS_DEVELOPER = 1
private const val FRAGMENT_TAG = "VectorSettingsPreferencesFragment"
}
diff --git a/vector/src/main/res/xml/vector_settings_developer_mode.xml b/vector/src/main/res/xml/vector_settings_developer_mode.xml
index 6cae5fad06..d3f960b31b 100644
--- a/vector/src/main/res/xml/vector_settings_developer_mode.xml
+++ b/vector/src/main/res/xml/vector_settings_developer_mode.xml
@@ -14,10 +14,10 @@
android:defaultValue="13"
android:dependency="SETTINGS_USE_RAGE_SHAKE_KEY"
android:key="SETTINGS_RAGE_SHAKE_DETECTION_THRESHOLD_KEY"
- android:max="17"
+ android:max="15"
android:summary="@string/settings_rageshake_detection_threshold_summary"
android:title="@string/settings_rageshake_detection_threshold"
- app:min="9" />
+ app:min="11" />