Show touchpad entry when input device is detected as touchpad.

1. Remove the redundant part about active ime.
2. Add a NPE detector to fix bug.
3. Check if input device is detected as touchpad.

Bug: 247080509
Bug: 267092726
Test: manual
Change-Id: I40640e42abd471efde6d1f9166b8999243499c62
This commit is contained in:
danielwbhuang
2023-02-04 23:16:16 +08:00
parent ecd670bac4
commit cfd02f52a6
4 changed files with 80 additions and 22 deletions

View File

@@ -27,13 +27,13 @@ import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.inputmethod.PhysicalKeyboardFragment.HardKeyboardDeviceInfo;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnPause;
import com.android.settingslib.core.lifecycle.events.OnResume;
import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop;
import java.util.List;
public class KeyboardPreferenceController extends BasePreferenceController
implements PreferenceControllerMixin, LifecycleObserver, OnResume, OnPause,
implements PreferenceControllerMixin, LifecycleObserver, OnStart, OnStop,
InputManager.InputDeviceListener {
private final InputManager mIm;
@@ -61,13 +61,13 @@ public class KeyboardPreferenceController extends BasePreferenceController
}
@Override
public void onPause() {
mIm.unregisterInputDeviceListener(this);
public void onStart() {
mIm.registerInputDeviceListener(this, null);
}
@Override
public void onResume() {
mIm.registerInputDeviceListener(this, null);
public void onStop() {
mIm.unregisterInputDeviceListener(this);
}
@Override
@@ -84,6 +84,9 @@ public class KeyboardPreferenceController extends BasePreferenceController
}
private void updateSummary() {
if (mPreference == null) {
return;
}
final List<HardKeyboardDeviceInfo> keyboards =
PhysicalKeyboardFragment.getHardKeyboards(mContext);
if (keyboards.isEmpty()) {