diff --git a/android/app/src/main/java/com/metallic/chiaki/common/Preferences.kt b/android/app/src/main/java/com/metallic/chiaki/common/Preferences.kt index d779c5a..2456fcf 100644 --- a/android/app/src/main/java/com/metallic/chiaki/common/Preferences.kt +++ b/android/app/src/main/java/com/metallic/chiaki/common/Preferences.kt @@ -78,6 +78,11 @@ class Preferences(context: Context) get() = sharedPreferences.getBoolean(rumbleEnabledKey, true) set(value) { sharedPreferences.edit().putBoolean(rumbleEnabledKey, value).apply() } + val motionEnabledKey get() = resources.getString(R.string.preferences_motion_enabled_key) + var motionEnabled + get() = sharedPreferences.getBoolean(motionEnabledKey, true) + set(value) { sharedPreferences.edit().putBoolean(motionEnabledKey, value).apply() } + val logVerboseKey get() = resources.getString(R.string.preferences_log_verbose_key) var logVerbose get() = sharedPreferences.getBoolean(logVerboseKey, false) diff --git a/android/app/src/main/java/com/metallic/chiaki/session/StreamInput.kt b/android/app/src/main/java/com/metallic/chiaki/session/StreamInput.kt index 6fbfc31..822fe76 100644 --- a/android/app/src/main/java/com/metallic/chiaki/session/StreamInput.kt +++ b/android/app/src/main/java/com/metallic/chiaki/session/StreamInput.kt @@ -86,7 +86,7 @@ class StreamInput(val context: Context, val preferences: Preferences) override fun onAccuracyChanged(sensor: Sensor, accuracy: Int) {} } - private val lifecycleObserver = object: LifecycleObserver { + private val motionLifecycleObserver = object: LifecycleObserver { @OnLifecycleEvent(Lifecycle.Event.ON_RESUME) fun onResume() { @@ -111,7 +111,8 @@ class StreamInput(val context: Context, val preferences: Preferences) fun observe(lifecycleOwner: LifecycleOwner) { - lifecycleOwner.lifecycle.addObserver(lifecycleObserver) + if(preferences.motionEnabled) + lifecycleOwner.lifecycle.addObserver(motionLifecycleObserver) } private fun controllerStateUpdated() diff --git a/android/app/src/main/java/com/metallic/chiaki/settings/SettingsFragment.kt b/android/app/src/main/java/com/metallic/chiaki/settings/SettingsFragment.kt index 957d1d5..222d130 100644 --- a/android/app/src/main/java/com/metallic/chiaki/settings/SettingsFragment.kt +++ b/android/app/src/main/java/com/metallic/chiaki/settings/SettingsFragment.kt @@ -26,6 +26,7 @@ class DataStore(val preferences: Preferences): PreferenceDataStore() preferences.logVerboseKey -> preferences.logVerbose preferences.swapCrossMoonKey -> preferences.swapCrossMoon preferences.rumbleEnabledKey -> preferences.rumbleEnabled + preferences.motionEnabledKey -> preferences.motionEnabled else -> defValue } @@ -36,6 +37,7 @@ class DataStore(val preferences: Preferences): PreferenceDataStore() preferences.logVerboseKey -> preferences.logVerbose = value preferences.swapCrossMoonKey -> preferences.swapCrossMoon = value preferences.rumbleEnabledKey -> preferences.rumbleEnabled = value + preferences.motionEnabledKey -> preferences.motionEnabled = value } } diff --git a/android/app/src/main/res/drawable/ic_motion.xml b/android/app/src/main/res/drawable/ic_motion.xml new file mode 100644 index 0000000..c5a4ea1 --- /dev/null +++ b/android/app/src/main/res/drawable/ic_motion.xml @@ -0,0 +1,9 @@ + + + diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml index 0f7161d..84a1a59 100644 --- a/android/app/src/main/res/values/strings.xml +++ b/android/app/src/main/res/values/strings.xml @@ -90,6 +90,8 @@ Swap face buttons if default mapping is incorrect (e.g. for 8BitDo controllers) Rumble Use phone vibration motor for rumble + Motion + Use device\'s motion sensors for controller motion Are you sure you want to delete the registered console %s with ID %s? Are you sure you want to delete the console entry for %s? Keep @@ -105,6 +107,7 @@ on_screen_controls_enabled touchpad_only_enabled rumble_enabled + motion_enabled log_verbose import_settings export_settings diff --git a/android/app/src/main/res/xml/preferences.xml b/android/app/src/main/res/xml/preferences.xml index e87afdb..0ec2c0d 100644 --- a/android/app/src/main/res/xml/preferences.xml +++ b/android/app/src/main/res/xml/preferences.xml @@ -25,6 +25,12 @@ app:summary="@string/preferences_rumble_enabled_summary" app:icon="@drawable/ic_rumble" /> + +