Encapsulate savedState updates in ActivityRecord

ActivityRecord#icicle and ActivityRecord#haveState values should
always be in sync. Since they were package-private, this creates an
opportunity for making error by updating one without the other.

This CL adds getters and a setter (for updates from package) that
always updates both values simultaneously, and makes the fields
private. It also hides ActivityRecord#persistentState and exposes a
package-private getter instead.

Test: ActivityRecordTests
Change-Id: Ie6cf248bf58f8d447ab321bb4348a4a69d547b19
6 files changed