New Settings API
Based on discussions from last week and comments on the design doc,
this api begins to implement the following:
1. Adds a "Scope" variable to api, which tells the SettingsManager
whether the setting can be stored globally (so that it is visible
to all parts of the app), or per-camera, or per-module, or per-
custom scope that the api user provides.
2. Separates keys and default values from SettingsManager,
to make it easy to add new settings/defaults from third party
modules.
3. Stores all settings as strings, to avoid upgrade errors, and
handles casting to type requested. Only String, Integer, and
boolean are supported.
4. Opens SharedPreferences files on demand, depending on scope
argument.
5. Creates a "DefaultsStore" to hold the defaults and possible
values of a setting. Then a user can request the default or
possible values of a setting at any time.
Change-Id: I03e0e1dd0955c519f54112e89716014aa963a425
24 files changed