a SharedPreferences replacement for Android with multiprocess support
tray__authority
is now deprecated. You'll see a big error in logcat when your are still using it. Instead the <applicationId>.tray
will be used as authority.
If you rely on a specific authority of the ContentProvider
(and you really don't) you can change it. Read the wiki for more information.
dependencies {
compile 'net.grandcentrix.tray:tray:0.12.0'
}
clearBut(TrayPreference)
-> clearBut(AbstractTrayPreference)
#89dependencies {
compile 'net.grandcentrix.tray:tray:0.11.1'
}
07.09.16
boolean
indicating the success of i.e. put
, remove
. They will never again throw an error. #69contains()
method #74Version 1.0.0 preview - postponed until the memory cache is ready
1.0.0-rc3
05.11.15
- hotfix for listener on Android 6.0 which has caused a infinity loop #55
- the sample project includes now a way to test the multi process support compared to the
SharedPreferences
- removed unnecessary write operation for every version check #54
1.0.0-rc2
24.09.15
- added logging for all data changing methods. Enable via
adb shell setprop log.tag.Tray VERBOSE
1.0.0-rc1
21.09.15
- Android M Auto Backup feature support (see the Documentation)
- split up database for user and device specific data (device specific data can now be excluded from the auto backup)
TrayPreferences
has now an optional 3. constructor parameterTrayStorage.Type
,USER
orDEVICE
indicating the internal database (required for Android M Auto Backup). Default isUSER
- New methods and changes
PreferenceAccessor#wipe()
clears the preference data and it's internal data (version)TrayPreferences#annexModule(String name)
imports a module by name and wipes it afterwards. This allows renaming of preferences without losing dataAbstractTrayPreference#annex(ModularizedStorage<TrayItem>)
allows a storage to import another storage, wipes the imported afterwardsPreference
#onCreate(...)
and#onUpgrade(...)
aren't abstract anymore because they don't require an implementation- Deprecations (will be removed soon)
TrayAppPreferences
is now deprecated. UseAppPreferences
instead (renaming)TrayModulePreferences
is now deprecated. UseTrayPreferences
instead to extend from for your own Preferences- Internal structure
- new package structure. merged packages
accessor
,migration
andstorage
intocore
- package
provider
contains aTrayStorage
implementation with aContentProvider
. Is easy exchangeable with anotherTrayStorage
implementationModularizedTrayPreference
is now calledAbstractTrayPreference
ModularizedStorage
was renamed toTrayStorage
compile 'net.grandcentrix.tray:tray:1.0.0-rc1'
TrayPreferences
has now an optional 3. constructor parameter TrayStorage.Type
, USER
or DEVICE
indicating the internal database (required for Android M Auto Backup). Default is USER
PreferenceAccessor#wipe()
clears the preference data and it's internal data (version)TrayPreferences#annexModule(String name)
imports a module by name and wipes it afterwards. This allows renaming of preferences without losing dataAbstractTrayPreference#annex(ModularizedStorage<TrayItem>)
allows a storage to import another storage, wipes the imported afterwardsPreference
#onCreate(...)
and #onUpgrade(...)
aren't abstract anymore because they don't require an implementationTrayAppPreferences
is now deprecated. Use AppPreferences
instead (renaming)TrayModulePreferences
is now deprecated. Use TrayPreferences
instead to extend from for your own Preferencesaccessor
, migration
and storage
into core
provider
contains a TrayStorage
implementation with a ContentProvider
. Is easy exchangeable with another TrayStorage
implementationModularizedTrayPreference
is now called AbstractTrayPreference
ModularizedStorage
was renamed to TrayStorage
getContext()
is working in TrayModulePreference#onCreate
null
with mPref.put(KEY, null)
works nowmPref.getString(KEY);
instead of mPref.getString(KEY, "defaultValue");
10.1f
) -> String works, String ("10.1"
) -> Float works, String ("test"
) -> Float throws!first public release