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" />
+
+