Make IMMS#mImeDrawsImeNavBarRes multi-user aware
This CL reworks how a dynamic resource overlay
com.android.internal.R.bool.config_imeDrawsImeNavBar
is being accessed and monitord in IMMS [1][2][3][4].
Overall the observable behavior should remain unchanged, but from the
implementation viewpoint there are many improvements in this CL.
* takes advantage of UserData object.
* no longer depends on SystemServerInitThreadPool
and ConcurrentUtils.waitForFutureNoInterrupt().
* registers the broadcast receiver only once.
[1]: I3e7e1f83554444131e2765dc159617bb9e2337c7
ff7b453ca8e23b4ef75ba2c3f5becaf511cb07d3
[2]: Id0cfa44cce5de515dc5d28254e1d41bdfc01e201
177e4aafdb33ec0e4b9172a16a07a34dc6420e36
[3]: Id3d6a71d8ba1bfa49131350b68aa8d3424eca381
f93769b1ae390d4dc38bccb01627f5f7189cd075
[4]: I20f6be5d676b9e61ea3077aeaa2eadc5dbbdcd0c
53706a2899887c1a08876d54ae230e1ceff20980
Bug: 305849394
Bug: 343601565
Fix: 225366708
Fix: 345519864
Test: presubmit
Flag: EXEMPT refactor
Change-Id: Icf49020eda790629dd871b9f7365e7015dd6931b
6 files changed