1 package expo.modules.devmenu
2 
3 import com.facebook.react.bridge.Arguments
4 import com.facebook.react.bridge.ReadableMap
5 import com.facebook.react.bridge.WritableMap
6 import expo.interfaces.devmenu.DevMenuPreferencesInterface
7 
8 open class DevMenuDefaultPreferences : DevMenuPreferencesInterface {
methodUnavailablenull9   private fun methodUnavailable() {
10     throw NoSuchMethodError("You cannot change the default settings. Export `DevMenuSettings` module if you want to change the settings.")
11   }
12 
13   override var motionGestureEnabled: Boolean
14     get() = true
15     set(_) = methodUnavailable()
16 
17   override var touchGestureEnabled: Boolean
18     get() = true
19     set(_) = methodUnavailable()
20 
21   override var keyCommandsEnabled: Boolean
22     get() = true
23     set(_) = methodUnavailable()
24 
25   override var showsAtLaunch: Boolean
26     get() = false
27     set(_) = methodUnavailable()
28 
29   override var isOnboardingFinished: Boolean
30     get() = true
31     set(_) = methodUnavailable()
32 
serializenull33   override fun serialize(): WritableMap =
34     Arguments
35       .createMap()
36       .apply {
37         putBoolean("motionGestureEnabled", motionGestureEnabled)
38         putBoolean("touchGestureEnabled", touchGestureEnabled)
39         putBoolean("keyCommandsEnabled", keyCommandsEnabled)
40         putBoolean("showsAtLaunch", showsAtLaunch)
41         putBoolean("isOnboardingFinished", isOnboardingFinished)
42       }
43 
setPreferencesnull44   override fun setPreferences(settings: ReadableMap) {
45     methodUnavailable()
46   }
47 }
48