Update deviceId from server process when activity is destroyed

When an activity is removed from WindowProcessController,
non UI Contexts, such as application context should be updated
with the default deviceId.

There were two issues in WindowProcessController preventing this
to happen:
- mTopActivityDeviceId should be updated whenever the deviceId changed
  even if it is not dispatched to the client. This way if the activity
  is later removed, we can detect a change in the topActivityDeviceId
  and report it back to the client. The only case when
  mTopActivityDeviceId is updated and not dispatched is when activity
  is started, but the deviceId is passed to the client via other
  channels.
- Getting the topActivityDeviceId should return the DEVICE_ID_DEFAULT
  if there are no activities.

Bug: 264530057
Test: atest DeviceAssociationTest
Change-Id: I712ea9a68fdc55074b61349b5c70ba12946d5f0a
1 file changed