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