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 ImeVisibilityStateComputerTest com.android.inputmethodservice.InputMethodServiceTest Change-Id: I0fde7ea4cec99e739eb4541cc206daa191661689
Loading
Please register or sign in to comment