Add a new persistent FUSE flag in Settings

New system property settings_fuse enables user to switch persist.sys.fuse
flag on/off from Settings UI. New system property is added as the
Settings UI sets system property with a fixed prefix
(persist.sys.fflag.override.) for persistent properties and for
consistency we do not want to rename persist.sys.fuse.

The user needs to restart the device after toggling the flag from
Settings UI. When the device restarts for the first time,
persist.sys.fuse is set from settings_fuse when the
StorageManagerService starts. If the value of persist.sys.fuse is
modified, then the device reboots for it to take effect.

The 2 reboots take almost the same time as 1 reboot and the difference is
not noticeable to the user as the lock screen does not show up in
between the 2 reboots.

This change would also mean that the newly added flag
(persist.sys.fflag.override.settings_fuse) will always override
persist.sys.fuse (as it is always checked on reboot), which implies that
`adb shell setprop persist.sys.fuse [true/false] && adb reboot` will
have no effect.

Bug:144419848
Test: * Enable developer options in Settings.
      * Go to Settings->System->Advanced->Developer Options->Feature Flags.
      * Turn on (off by default) settings_fuse toggle button and
        restart.
      * After reboot run `adb shell getprop persist.sys.fuse` shows
        true.
      * Turn off settings_fuse from Settings UI and reboot
      * After reboot run `adb shell getprop persist.sys.fuse` shows
        false.
Test: Using adb command to change the fuse system property.
      * `adb shell setprop persist.sys.fflag.override.settings_fuse
         true && adb reboot`
      * After reboot run `adb shell getprop persist.sys.fuse` shows true
      * Similarly for false case.
Change-Id: I0093d2b020a9d8ffeec7fca31a44ef2e65b4dfb4
3 files changed