Revert^2 "Fix SHOW_IMPLICIT and SHOW_EXPLICIT handling"

cf811952ad8c693ef49081ed491b5615d34b9e9d

Re-submitting original CL as the issue has been fixed by setting the
correct (SHOW_EXPLICIT) flag for the InputMethodStressTest suite.

Original CL:

Fix SHOW_IMPLICIT and SHOW_EXPLICIT handling

This fixes a bug introduced in the refactor from [1], where
SHOW_IMPLICIT and SHOW_EXPLICIT requests would not be handled correctly,
as they represent the same underlying bit flag value.

IntDefs were added to help understand which set of flags to use
based on call site. Requests originating from InputMethodManager
(and a few from InputMethodService) must utilise InputMethodManager
flags (i.e SHOW_IMPLICIT). When reaching the ImeVisibilityStateComputer,
these are translated to InputMethodService flags (i.e. SHOW_EXPLICIT).

Additonally, this documents and tests that `ImeVisibilityStateComputer`
keeps the strongest state set until a hide request (i.e. an implicit
show request just after a forced / explicit show request, without
any hide requests in between, will still have the
forced / explicit state set).

[1]: Id1115ceb951e4bb0361a32b824d966cc70b7d132

Bug: 289188559
Test: atest DefaultImeVisibilityApplierTest
  DefaultImeVisibilityTest
  ImeVisibilityStateComputerTest
  com.android.inputmethodservice.InputMethodServiceTest

Change-Id: I2117053c5a45253b9537f903a1ac6b3c8bef69af
23 files changed