Merge "Show toast when untrusted touches happen"
This commit is contained in:
committed by
Android (Google) Code Review
commit
757d319f71
@@ -2089,6 +2089,16 @@ public class InputManagerService extends IInputManager.Stub
|
||||
}
|
||||
}
|
||||
|
||||
// Native callback
|
||||
private void notifyUntrustedTouch(String packageName) {
|
||||
// TODO(b/169067926): Remove toast after gathering feedback on dogfood.
|
||||
DisplayThread.getHandler().post(() ->
|
||||
Toast.makeText(mContext,
|
||||
"Touch obscured by " + packageName
|
||||
+ " will be blocked. Check go/s-untrusted-touches",
|
||||
Toast.LENGTH_SHORT).show());
|
||||
}
|
||||
|
||||
// Native callback.
|
||||
private long notifyANR(InputApplicationHandle inputApplicationHandle, IBinder token,
|
||||
String reason) {
|
||||
|
||||
@@ -99,6 +99,7 @@ static struct {
|
||||
jmethodID notifyInputChannelBroken;
|
||||
jmethodID notifyANR;
|
||||
jmethodID notifyFocusChanged;
|
||||
jmethodID notifyUntrustedTouch;
|
||||
jmethodID filterInputEvent;
|
||||
jmethodID interceptKeyBeforeQueueing;
|
||||
jmethodID interceptMotionBeforeQueueingNonInteractive;
|
||||
@@ -256,6 +257,7 @@ public:
|
||||
const sp<IBinder>& token, const std::string& reason) override;
|
||||
void notifyInputChannelBroken(const sp<IBinder>& token) override;
|
||||
void notifyFocusChanged(const sp<IBinder>& oldToken, const sp<IBinder>& newToken) override;
|
||||
void notifyUntrustedTouch(const std::string& obscuringPackage) override;
|
||||
bool filterInputEvent(const InputEvent* inputEvent, uint32_t policyFlags) override;
|
||||
void getDispatcherConfiguration(InputDispatcherConfiguration* outConfig) override;
|
||||
void interceptKeyBeforeQueueing(const KeyEvent* keyEvent, uint32_t& policyFlags) override;
|
||||
@@ -755,6 +757,17 @@ void NativeInputManager::notifyInputChannelBroken(const sp<IBinder>& token) {
|
||||
}
|
||||
}
|
||||
|
||||
void NativeInputManager::notifyUntrustedTouch(const std::string& obscuringPackage) {
|
||||
#if DEBUG_INPUT_DISPATCHER_POLICY
|
||||
ALOGD("notifyUntrustedTouch - obscuringPackage=%s", obscuringPackage.c_str());
|
||||
#endif
|
||||
ATRACE_CALL();
|
||||
JNIEnv* env = jniEnv();
|
||||
jstring jPackage = env->NewStringUTF(obscuringPackage.c_str());
|
||||
env->CallVoidMethod(mServiceObj, gServiceClassInfo.notifyUntrustedTouch, jPackage);
|
||||
checkAndClearExceptionFromCallback(env, "notifyUntrustedTouch");
|
||||
}
|
||||
|
||||
void NativeInputManager::notifyFocusChanged(const sp<IBinder>& oldToken,
|
||||
const sp<IBinder>& newToken) {
|
||||
#if DEBUG_INPUT_DISPATCHER_POLICY
|
||||
@@ -1893,6 +1906,9 @@ int register_android_server_InputManager(JNIEnv* env) {
|
||||
GET_METHOD_ID(gServiceClassInfo.notifyFocusChanged, clazz,
|
||||
"notifyFocusChanged", "(Landroid/os/IBinder;Landroid/os/IBinder;)V");
|
||||
|
||||
GET_METHOD_ID(gServiceClassInfo.notifyUntrustedTouch, clazz, "notifyUntrustedTouch",
|
||||
"(Ljava/lang/String;)V");
|
||||
|
||||
GET_METHOD_ID(gServiceClassInfo.notifyANR, clazz,
|
||||
"notifyANR",
|
||||
"(Landroid/view/InputApplicationHandle;Landroid/os/IBinder;Ljava/lang/String;)J");
|
||||
|
||||
Reference in New Issue
Block a user