Loading src/com/android/settings/inputmethod/KeyboardPreferenceController.java +10 −7 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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 Loading @@ -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()) { Loading src/com/android/settings/inputmethod/NewKeyboardSettingsUtils.java +11 −10 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ package com.android.settings.inputmethod; import android.content.Context; import android.provider.Settings; import android.view.InputDevice; import android.view.inputmethod.InputMethodInfo; import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.InputMethodSubtype; Loading @@ -38,17 +38,18 @@ public class NewKeyboardSettingsUtils { static final String EXTRA_INPUT_METHOD_INFO = "input_method_info"; static final String EXTRA_INPUT_METHOD_SUBTYPE = "input_method_subtype"; static InputMethodInfo getActiveIme(Context context, InputMethodManager imm) { InputMethodInfo activeIme = null; List<InputMethodInfo> infoList = imm.getEnabledInputMethodList(); String imeId = Settings.Secure.getStringForUser(context.getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD, context.getUserId()); for (InputMethodInfo method : infoList) { if (method.getId().equals(imeId)) { activeIme = method; static boolean isTouchpad() { for (int deviceId : InputDevice.getDeviceIds()) { final InputDevice device = InputDevice.getDevice(deviceId); if (device == null) { continue; } if ((device.getSources() & InputDevice.SOURCE_TOUCHPAD) == InputDevice.SOURCE_TOUCHPAD) { return true; } return activeIme; } return false; } static List<String> getSuitableImeLabels(Context context, InputMethodManager imm, int userId) { Loading src/com/android/settings/inputmethod/TouchGesturesButtonPreferenceController.java +3 −1 Original line number Diff line number Diff line Loading @@ -63,7 +63,9 @@ public class TouchGesturesButtonPreferenceController extends BasePreferenceContr @Override public int getAvailabilityStatus() { return AVAILABLE; boolean touchGestureDeveloperMode = FeatureFlagUtils .isEnabled(mContext, FeatureFlagUtils.SETTINGS_NEW_KEYBOARD_TRACKPAD_GESTURE); return touchGestureDeveloperMode ? AVAILABLE : CONDITIONALLY_UNAVAILABLE; } private void showTouchpadGestureEducation() { Loading src/com/android/settings/inputmethod/TrackpadSettingsController.java +55 −3 Original line number Diff line number Diff line Loading @@ -17,21 +17,73 @@ package com.android.settings.inputmethod; import android.content.Context; import android.hardware.input.InputManager; import android.util.FeatureFlagUtils; import androidx.preference.Preference; import com.android.settings.core.BasePreferenceController; import com.android.settings.core.PreferenceControllerMixin; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnStart; import com.android.settingslib.core.lifecycle.events.OnStop; public class TrackpadSettingsController extends BasePreferenceController implements PreferenceControllerMixin, LifecycleObserver, OnStart, OnStop, InputManager.InputDeviceListener { private final InputManager mIm; public class TrackpadSettingsController extends BasePreferenceController { private Preference mPreference; public TrackpadSettingsController(Context context, String key) { super(context, key); mIm = context.getSystemService(InputManager.class); } @Override public void onInputDeviceAdded(int deviceId) { updateEntry(); } @Override public void onInputDeviceRemoved(int deviceId) { updateEntry(); } @Override public void onInputDeviceChanged(int deviceId) { updateEntry(); } @Override public void onStart() { mIm.registerInputDeviceListener(this, null); } @Override public void onStop() { mIm.unregisterInputDeviceListener(this); } @Override public void updateState(Preference preference) { mPreference = preference; updateEntry(); } private void updateEntry() { if (mPreference == null) { return; } mPreference.setVisible(isAvailable()); } @Override public int getAvailabilityStatus() { // TODO: Need to detect if trackpad is connected with device. boolean isFeatureOn = FeatureFlagUtils .isEnabled(mContext, FeatureFlagUtils.SETTINGS_NEW_KEYBOARD_TRACKPAD); return isFeatureOn ? AVAILABLE : CONDITIONALLY_UNAVAILABLE; boolean isTouchpad = NewKeyboardSettingsUtils.isTouchpad(); return (isFeatureOn && isTouchpad) ? AVAILABLE : CONDITIONALLY_UNAVAILABLE; } } Loading
src/com/android/settings/inputmethod/KeyboardPreferenceController.java +10 −7 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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 Loading @@ -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()) { Loading
src/com/android/settings/inputmethod/NewKeyboardSettingsUtils.java +11 −10 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ package com.android.settings.inputmethod; import android.content.Context; import android.provider.Settings; import android.view.InputDevice; import android.view.inputmethod.InputMethodInfo; import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.InputMethodSubtype; Loading @@ -38,17 +38,18 @@ public class NewKeyboardSettingsUtils { static final String EXTRA_INPUT_METHOD_INFO = "input_method_info"; static final String EXTRA_INPUT_METHOD_SUBTYPE = "input_method_subtype"; static InputMethodInfo getActiveIme(Context context, InputMethodManager imm) { InputMethodInfo activeIme = null; List<InputMethodInfo> infoList = imm.getEnabledInputMethodList(); String imeId = Settings.Secure.getStringForUser(context.getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD, context.getUserId()); for (InputMethodInfo method : infoList) { if (method.getId().equals(imeId)) { activeIme = method; static boolean isTouchpad() { for (int deviceId : InputDevice.getDeviceIds()) { final InputDevice device = InputDevice.getDevice(deviceId); if (device == null) { continue; } if ((device.getSources() & InputDevice.SOURCE_TOUCHPAD) == InputDevice.SOURCE_TOUCHPAD) { return true; } return activeIme; } return false; } static List<String> getSuitableImeLabels(Context context, InputMethodManager imm, int userId) { Loading
src/com/android/settings/inputmethod/TouchGesturesButtonPreferenceController.java +3 −1 Original line number Diff line number Diff line Loading @@ -63,7 +63,9 @@ public class TouchGesturesButtonPreferenceController extends BasePreferenceContr @Override public int getAvailabilityStatus() { return AVAILABLE; boolean touchGestureDeveloperMode = FeatureFlagUtils .isEnabled(mContext, FeatureFlagUtils.SETTINGS_NEW_KEYBOARD_TRACKPAD_GESTURE); return touchGestureDeveloperMode ? AVAILABLE : CONDITIONALLY_UNAVAILABLE; } private void showTouchpadGestureEducation() { Loading
src/com/android/settings/inputmethod/TrackpadSettingsController.java +55 −3 Original line number Diff line number Diff line Loading @@ -17,21 +17,73 @@ package com.android.settings.inputmethod; import android.content.Context; import android.hardware.input.InputManager; import android.util.FeatureFlagUtils; import androidx.preference.Preference; import com.android.settings.core.BasePreferenceController; import com.android.settings.core.PreferenceControllerMixin; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnStart; import com.android.settingslib.core.lifecycle.events.OnStop; public class TrackpadSettingsController extends BasePreferenceController implements PreferenceControllerMixin, LifecycleObserver, OnStart, OnStop, InputManager.InputDeviceListener { private final InputManager mIm; public class TrackpadSettingsController extends BasePreferenceController { private Preference mPreference; public TrackpadSettingsController(Context context, String key) { super(context, key); mIm = context.getSystemService(InputManager.class); } @Override public void onInputDeviceAdded(int deviceId) { updateEntry(); } @Override public void onInputDeviceRemoved(int deviceId) { updateEntry(); } @Override public void onInputDeviceChanged(int deviceId) { updateEntry(); } @Override public void onStart() { mIm.registerInputDeviceListener(this, null); } @Override public void onStop() { mIm.unregisterInputDeviceListener(this); } @Override public void updateState(Preference preference) { mPreference = preference; updateEntry(); } private void updateEntry() { if (mPreference == null) { return; } mPreference.setVisible(isAvailable()); } @Override public int getAvailabilityStatus() { // TODO: Need to detect if trackpad is connected with device. boolean isFeatureOn = FeatureFlagUtils .isEnabled(mContext, FeatureFlagUtils.SETTINGS_NEW_KEYBOARD_TRACKPAD); return isFeatureOn ? AVAILABLE : CONDITIONALLY_UNAVAILABLE; boolean isTouchpad = NewKeyboardSettingsUtils.isTouchpad(); return (isFeatureOn && isTouchpad) ? AVAILABLE : CONDITIONALLY_UNAVAILABLE; } }