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

Commit 9e5ff3d1 authored by Adrian Roos's avatar Adrian Roos Committed by Android (Google) Code Review
Browse files

Merge "Add telemetry express for performHapticFeedback(KEYBOARD_*)" into main

parents 7a5e8da2 0dab1498
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -236,6 +236,7 @@ import com.android.server.policy.keyguard.KeyguardServiceDelegate.DrawnListener;
import com.android.server.policy.keyguard.KeyguardStateMonitor.StateCallback;
import com.android.server.statusbar.StatusBarManagerInternal;
import com.android.server.vibrator.HapticFeedbackVibrationProvider;
import com.android.server.vibrator.VibratorFrameworkStatsLogger;
import com.android.server.vr.VrManagerInternal;
import com.android.server.wallpaper.WallpaperManagerInternal;
import com.android.server.wm.ActivityTaskManagerInternal;
@@ -6431,6 +6432,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
        VibrationAttributes attrs =
                mHapticFeedbackVibrationProvider.getVibrationAttributesForHapticFeedback(
                        effectId, /* bypassVibrationIntensitySetting= */ always);
        VibratorFrameworkStatsLogger.logPerformHapticsFeedbackIfKeyboard(uid, effectId);
        mVibrator.vibrate(uid, packageName, effect, reason, attrs);
        return true;
    }
+19 −0
Original line number Diff line number Diff line
@@ -19,10 +19,12 @@ package com.android.server.vibrator;
import android.os.Handler;
import android.os.SystemClock;
import android.util.Slog;
import android.view.HapticFeedbackConstants;

import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.util.FrameworkStatsLog;
import com.android.modules.expresslog.Counter;

import java.util.ArrayDeque;
import java.util.Queue;
@@ -137,4 +139,21 @@ public class VibratorFrameworkStatsLogger {
                    mVibrationReportedLogIntervalMillis);
        }
    }

    /** Logs only if the haptics feedback effect is one of the KEYBOARD_ constants. */
    public static void logPerformHapticsFeedbackIfKeyboard(int uid, int hapticsFeedbackEffect) {
        boolean isKeyboard;
        switch (hapticsFeedbackEffect) {
            case HapticFeedbackConstants.KEYBOARD_TAP:
            case HapticFeedbackConstants.KEYBOARD_RELEASE:
                isKeyboard = true;
                break;
            default:
                isKeyboard = false;
                break;
        }
        if (isKeyboard) {
            Counter.logIncrementWithUid("vibrator.value_perform_haptic_feedback_keyboard", uid);
        }
    }
}
+1 −0
Original line number Diff line number Diff line
@@ -448,6 +448,7 @@ public class VibratorManagerService extends IVibratorManagerService.Stub {
        VibrationAttributes attrs =
                hapticVibrationProvider.getVibrationAttributesForHapticFeedback(
                        constant, /* bypassVibrationIntensitySetting= */ always);
        VibratorFrameworkStatsLogger.logPerformHapticsFeedbackIfKeyboard(uid, constant);
        return vibrateWithoutPermissionCheck(uid, deviceId, opPkg, combinedVibration, attrs,
                "performHapticFeedback: " + reason, token);
    }