Change a bit of plugins' definition (mainly generify and remove unneeded methods) && Add HeadsetEventPlugin
&& Code clean up
- Add
DataFactory
(and subclasses) to be used as a wrapper ofStorageData
(and subclasses) - Generify
PluginDef
,PluginViewFragment
,DataFactory
(and subclasses) to use their relatedStorageData
as the type parameter (so that there is no need to do lots of manual type casting and checking)- Fix classes using them to satisfy generics
- Add
HeadsetEventPlugin
to listen to headset plug in and plug out - Remove redundant wrapper (
OperationLoader.load()
) - Add
ValidData
annotation to describe that the data is "valid"