Enable InsetsState to store sources with discontinuous IDs
This CL uses a SparseArray to store the sources instead of a fixed-
length array. In this way, the amount of the sources in the state won't
be limited by the amount of the pre-defined IDs (InternalInsetsType).
Also, the IDs can be discontinuous integers now.
This is a step to remove InternalInsetsType.
This CL also fixes the misuses of InsetsState#getSource. In most of
cases, they should use peekSource instead. To prevent the caller
from creating the source unexpectedly, this CL renames getSource to
getOrCreateSource.
Bug: 234093736
Test: atest InsetsAnimationControlImplTest InsetsControllerTest
InsetsStateTest SurfaceControlViewHostInsetsTest
ActivityRecordTests DisplayContentTests
DisplayPolicyLayoutTests InsetsPolicyTest
InsetsStateControllerTest TaskLaunchParamsModifierTests
WindowLayoutTests WindowStateTests
Change-Id: I41729a973fbf7f2765b51f4d696cb9be9981fbed
30 files changed