Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b083cdd3 authored by Josh Yang's avatar Josh Yang Committed by Android (Google) Code Review
Browse files

Merge "Add telemetry express log when the stem primary key is handled by app." into main

parents 25512fb6 106acd81
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -235,6 +235,7 @@ import com.android.internal.policy.PhoneFallbackEventHandler;
import com.android.internal.view.BaseSurfaceHolder;
import com.android.internal.view.RootViewSurfaceTaker;
import com.android.internal.view.SurfaceCallbackHelper;
import com.android.modules.expresslog.Counter;
import com.android.window.flags.Flags;

import java.io.IOException;
@@ -9704,6 +9705,9 @@ public final class ViewRootImpl implements ViewParent,
            } else {
                q.mReceiver.finishInputEvent(q.mEvent, handled);
            }
            if (q.mEvent instanceof KeyEvent) {
                logHandledSystemKey((KeyEvent) q.mEvent, handled);
            }
        } else {
            q.mEvent.recycleIfNeededAfterDispatch();
        }
@@ -9711,6 +9715,19 @@ public final class ViewRootImpl implements ViewParent,
        recycleQueuedInputEvent(q);
    }

    private void logHandledSystemKey(KeyEvent event, boolean handled) {
        final int keyCode = event.getKeyCode();
        if (keyCode != KeyEvent.KEYCODE_STEM_PRIMARY) {
            return;
        }
        if (event.isDown() && event.getRepeatCount() == 0 && handled) {
            // Initial DOWN event is handled. Log the stem primary key press.
            Counter.logIncrementWithUid(
                    "input.value_app_handled_stem_primary_key_gestures_count",
                    Process.myUid());
        }
    }

    static boolean isTerminalInputEvent(InputEvent event) {
        if (event instanceof KeyEvent) {
            final KeyEvent keyEvent = (KeyEvent)event;