Skip to content
Commit fed109a5 authored by Cosmin Băieș's avatar Cosmin Băieș
Browse files

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
parent e6ac1838
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment