Reenable pre-N style hard keyboard layout settings

This CL logically reverts Settings app changes for Bug 25752812, which
aimed to improve UX by tightly integrating physical keyboard layout
with input method subtype.

What went wrong is that the concept of input method subtype is not
widely accepted by the ecosystem actually.  Until we figoure out any
other better way here, let's revert back to the good old way that
enables users to specify multiple keyboard layouts per physical
keyboard device, not one layout per one input method subtype.

Note that we cannot simply revert the CL that originally introduced
the new flow [1] because it was indeed a huge CL that also touched IME
settings, which we want to continue using.  In that sense, this CL is
a kind of re-implementation of the previous style on top of the recent
language settings flow.

Note also that a fix [2] fox Bug 25062009 was also ported from
previous InputMethodAndLanguageSetting to
KeyboardLayoutPickerFragment.

 [1]: I728d7ee185827ed328c16cb7abce244557a26518
      976bb3f459
 [2]: I4483dfc89afc8d148b2cfa7c6a5f66d2a02f712a
      17b6319884

Fix: 66498367
Test: make -j RunSettingsRoboTests
Test: Manually done with two Bluetooth keyboards
Change-Id: I7a2ed6dd39dcd8207d3d94e12cd01d5d67ba4bb5
This commit is contained in:
Yohei Yukawa
2018-03-08 13:47:56 -08:00
parent 799c2545c0
commit 7129b374bb
5 changed files with 167 additions and 363 deletions

View File

@@ -55,7 +55,7 @@ public class PhysicalKeyboardPreferenceControllerTest {
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
when(mContext.getSystemService(Context.INPUT_SERVICE)).thenReturn(mIm);
when(mContext.getSystemService(InputManager.class)).thenReturn(mIm);
mController = new PhysicalKeyboardPreferenceController(mContext, null /* lifecycle */);
}