Merge "Push stylusPointerIconEnabled to native instead of pulling" into udc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
f7cc60d4ad
@@ -547,6 +547,10 @@ public class InputManagerService extends IInputManager.Stub
|
|||||||
mBatteryController.systemRunning();
|
mBatteryController.systemRunning();
|
||||||
mKeyboardBacklightController.systemRunning();
|
mKeyboardBacklightController.systemRunning();
|
||||||
mKeyRemapper.systemRunning();
|
mKeyRemapper.systemRunning();
|
||||||
|
|
||||||
|
mNative.setStylusPointerIconEnabled(
|
||||||
|
Objects.requireNonNull(mContext.getSystemService(InputManager.class))
|
||||||
|
.isStylusPointerIconEnabled());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void reloadDeviceAliases() {
|
private void reloadDeviceAliases() {
|
||||||
@@ -2749,13 +2753,6 @@ public class InputManagerService extends IInputManager.Stub
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Native callback.
|
|
||||||
@SuppressWarnings("unused")
|
|
||||||
private boolean isStylusPointerIconEnabled() {
|
|
||||||
return Objects.requireNonNull(mContext.getSystemService(InputManager.class))
|
|
||||||
.isStylusPointerIconEnabled();
|
|
||||||
}
|
|
||||||
|
|
||||||
private static class PointerDisplayIdChangedArgs {
|
private static class PointerDisplayIdChangedArgs {
|
||||||
final int mPointerDisplayId;
|
final int mPointerDisplayId;
|
||||||
final float mXPosition;
|
final float mXPosition;
|
||||||
|
|||||||
@@ -234,6 +234,9 @@ interface NativeInputManagerService {
|
|||||||
*/
|
*/
|
||||||
float[] getMouseCursorPosition();
|
float[] getMouseCursorPosition();
|
||||||
|
|
||||||
|
/** Set whether showing a pointer icon for styluses is enabled. */
|
||||||
|
void setStylusPointerIconEnabled(boolean enabled);
|
||||||
|
|
||||||
/** The native implementation of InputManagerService methods. */
|
/** The native implementation of InputManagerService methods. */
|
||||||
class NativeImpl implements NativeInputManagerService {
|
class NativeImpl implements NativeInputManagerService {
|
||||||
/** Pointer to native input manager service object, used by native code. */
|
/** Pointer to native input manager service object, used by native code. */
|
||||||
@@ -478,5 +481,8 @@ interface NativeInputManagerService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public native float[] getMouseCursorPosition();
|
public native float[] getMouseCursorPosition();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public native void setStylusPointerIconEnabled(boolean enabled);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -137,7 +137,6 @@ static struct {
|
|||||||
jmethodID notifyDropWindow;
|
jmethodID notifyDropWindow;
|
||||||
jmethodID getParentSurfaceForPointers;
|
jmethodID getParentSurfaceForPointers;
|
||||||
jmethodID isPerDisplayTouchModeEnabled;
|
jmethodID isPerDisplayTouchModeEnabled;
|
||||||
jmethodID isStylusPointerIconEnabled;
|
|
||||||
} gServiceClassInfo;
|
} gServiceClassInfo;
|
||||||
|
|
||||||
static struct {
|
static struct {
|
||||||
@@ -309,6 +308,7 @@ public:
|
|||||||
std::optional<std::string> getBluetoothAddress(int32_t deviceId);
|
std::optional<std::string> getBluetoothAddress(int32_t deviceId);
|
||||||
void setStylusButtonMotionEventsEnabled(bool enabled);
|
void setStylusButtonMotionEventsEnabled(bool enabled);
|
||||||
FloatPoint getMouseCursorPosition();
|
FloatPoint getMouseCursorPosition();
|
||||||
|
void setStylusPointerIconEnabled(bool enabled);
|
||||||
|
|
||||||
/* --- InputReaderPolicyInterface implementation --- */
|
/* --- InputReaderPolicyInterface implementation --- */
|
||||||
|
|
||||||
@@ -430,6 +430,9 @@ private:
|
|||||||
// True to enable a zone on the right-hand side of touchpads where clicks will be turned
|
// True to enable a zone on the right-hand side of touchpads where clicks will be turned
|
||||||
// into context (a.k.a. "right") clicks.
|
// into context (a.k.a. "right") clicks.
|
||||||
bool touchpadRightClickZoneEnabled{false};
|
bool touchpadRightClickZoneEnabled{false};
|
||||||
|
|
||||||
|
// True if a pointer icon should be shown for stylus pointers.
|
||||||
|
bool stylusPointerIconEnabled{false};
|
||||||
} mLocked GUARDED_BY(mLock);
|
} mLocked GUARDED_BY(mLock);
|
||||||
|
|
||||||
std::atomic<bool> mInteractive;
|
std::atomic<bool> mInteractive;
|
||||||
@@ -662,12 +665,6 @@ void NativeInputManager::getReaderConfiguration(InputReaderConfiguration* outCon
|
|||||||
outConfig->pointerGestureTapSlop = hoverTapSlop;
|
outConfig->pointerGestureTapSlop = hoverTapSlop;
|
||||||
}
|
}
|
||||||
|
|
||||||
jboolean stylusPointerIconEnabled =
|
|
||||||
env->CallBooleanMethod(mServiceObj, gServiceClassInfo.isStylusPointerIconEnabled);
|
|
||||||
if (!checkAndClearExceptionFromCallback(env, "isStylusPointerIconEnabled")) {
|
|
||||||
outConfig->stylusPointerIconEnabled = stylusPointerIconEnabled;
|
|
||||||
}
|
|
||||||
|
|
||||||
{ // acquire lock
|
{ // acquire lock
|
||||||
std::scoped_lock _l(mLock);
|
std::scoped_lock _l(mLock);
|
||||||
|
|
||||||
@@ -692,6 +689,8 @@ void NativeInputManager::getReaderConfiguration(InputReaderConfiguration* outCon
|
|||||||
outConfig->disabledDevices = mLocked.disabledInputDevices;
|
outConfig->disabledDevices = mLocked.disabledInputDevices;
|
||||||
|
|
||||||
outConfig->stylusButtonMotionEventsEnabled = mLocked.stylusButtonMotionEventsEnabled;
|
outConfig->stylusButtonMotionEventsEnabled = mLocked.stylusButtonMotionEventsEnabled;
|
||||||
|
|
||||||
|
outConfig->stylusPointerIconEnabled = mLocked.stylusPointerIconEnabled;
|
||||||
} // release lock
|
} // release lock
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1664,6 +1663,21 @@ FloatPoint NativeInputManager::getMouseCursorPosition() {
|
|||||||
return pc->getPosition();
|
return pc->getPosition();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void NativeInputManager::setStylusPointerIconEnabled(bool enabled) {
|
||||||
|
{ // acquire lock
|
||||||
|
std::scoped_lock _l(mLock);
|
||||||
|
|
||||||
|
if (mLocked.stylusPointerIconEnabled == enabled) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
mLocked.stylusPointerIconEnabled = enabled;
|
||||||
|
} // release lock
|
||||||
|
|
||||||
|
mInputManager->getReader().requestRefreshConfiguration(
|
||||||
|
InputReaderConfiguration::CHANGE_DISPLAY_INFO);
|
||||||
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
static NativeInputManager* getNativeInputManager(JNIEnv* env, jobject clazz) {
|
static NativeInputManager* getNativeInputManager(JNIEnv* env, jobject clazz) {
|
||||||
@@ -2565,6 +2579,12 @@ static jfloatArray nativeGetMouseCursorPosition(JNIEnv* env, jobject nativeImplO
|
|||||||
return outArr;
|
return outArr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void nativeSetStylusPointerIconEnabled(JNIEnv* env, jobject nativeImplObj,
|
||||||
|
jboolean enabled) {
|
||||||
|
NativeInputManager* im = getNativeInputManager(env, nativeImplObj);
|
||||||
|
im->setStylusPointerIconEnabled(enabled);
|
||||||
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
static const JNINativeMethod gInputManagerMethods[] = {
|
static const JNINativeMethod gInputManagerMethods[] = {
|
||||||
@@ -2659,6 +2679,7 @@ static const JNINativeMethod gInputManagerMethods[] = {
|
|||||||
{"setStylusButtonMotionEventsEnabled", "(Z)V",
|
{"setStylusButtonMotionEventsEnabled", "(Z)V",
|
||||||
(void*)nativeSetStylusButtonMotionEventsEnabled},
|
(void*)nativeSetStylusButtonMotionEventsEnabled},
|
||||||
{"getMouseCursorPosition", "()[F", (void*)nativeGetMouseCursorPosition},
|
{"getMouseCursorPosition", "()[F", (void*)nativeGetMouseCursorPosition},
|
||||||
|
{"setStylusPointerIconEnabled", "(Z)V", (void*)nativeSetStylusPointerIconEnabled},
|
||||||
};
|
};
|
||||||
|
|
||||||
#define FIND_CLASS(var, className) \
|
#define FIND_CLASS(var, className) \
|
||||||
@@ -2819,9 +2840,6 @@ int register_android_server_InputManager(JNIEnv* env) {
|
|||||||
GET_METHOD_ID(gServiceClassInfo.isPerDisplayTouchModeEnabled, clazz,
|
GET_METHOD_ID(gServiceClassInfo.isPerDisplayTouchModeEnabled, clazz,
|
||||||
"isPerDisplayTouchModeEnabled", "()Z");
|
"isPerDisplayTouchModeEnabled", "()Z");
|
||||||
|
|
||||||
GET_METHOD_ID(gServiceClassInfo.isStylusPointerIconEnabled, clazz, "isStylusPointerIconEnabled",
|
|
||||||
"()Z");
|
|
||||||
|
|
||||||
// InputDevice
|
// InputDevice
|
||||||
|
|
||||||
FIND_CLASS(gInputDeviceClassInfo.clazz, "android/view/InputDevice");
|
FIND_CLASS(gInputDeviceClassInfo.clazz, "android/view/InputDevice");
|
||||||
|
|||||||
Reference in New Issue
Block a user