diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardRootViewBinder.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardRootViewBinder.kt
index 7899971..5bb7b64 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardRootViewBinder.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardRootViewBinder.kt
@@ -22,7 +22,6 @@
 import android.annotation.SuppressLint
 import android.graphics.Point
 import android.graphics.Rect
-import android.os.VibrationAttributes
 import android.util.Log
 import android.view.HapticFeedbackConstants
 import android.view.View
@@ -41,6 +40,7 @@
 import com.android.app.tracing.coroutines.launch
 import com.android.internal.jank.InteractionJankMonitor
 import com.android.internal.jank.InteractionJankMonitor.CUJ_SCREEN_OFF_SHOW_AOD
+import com.android.keyguard.AuthInteractionProperties
 import com.android.systemui.Flags.msdlFeedback
 import com.android.systemui.Flags.newAodTransition
 import com.android.systemui.common.shared.model.Icon
@@ -82,7 +82,6 @@
 import com.android.systemui.util.ui.stopAnimating
 import com.android.systemui.util.ui.value
 import com.google.android.msdl.data.model.MSDLToken
-import com.google.android.msdl.domain.InteractionProperties
 import com.google.android.msdl.domain.MSDLPlayer
 import kotlin.math.min
 import kotlinx.coroutines.CoroutineDispatcher
@@ -358,14 +357,10 @@
                         launch {
                             deviceEntryHapticsInteractor.playSuccessHaptic.collect {
                                 if (msdlFeedback()) {
-                                    val properties =
-                                        object : InteractionProperties {
-                                            override val vibrationAttributes: VibrationAttributes =
-                                                VibrationAttributes.createForUsage(
-                                                    VibrationAttributes.USAGE_HARDWARE_FEEDBACK
-                                                )
-                                        }
-                                    msdlPlayer?.playToken(MSDLToken.UNLOCK, properties)
+                                    msdlPlayer?.playToken(
+                                        MSDLToken.UNLOCK,
+                                        authInteractionProperties
+                                    )
                                 } else {
                                     vibratorHelper.performHapticFeedback(
                                         view,
@@ -378,14 +373,10 @@
                         launch {
                             deviceEntryHapticsInteractor.playErrorHaptic.collect {
                                 if (msdlFeedback()) {
-                                    val properties =
-                                        object : InteractionProperties {
-                                            override val vibrationAttributes: VibrationAttributes =
-                                                VibrationAttributes.createForUsage(
-                                                    VibrationAttributes.USAGE_HARDWARE_FEEDBACK
-                                                )
-                                        }
-                                    msdlPlayer?.playToken(MSDLToken.FAILURE, properties)
+                                    msdlPlayer?.playToken(
+                                        MSDLToken.FAILURE,
+                                        authInteractionProperties
+                                    )
                                 } else {
                                     vibratorHelper.performHapticFeedback(
                                         view,
@@ -660,6 +651,7 @@
     private val lockIcon = R.id.lock_icon_view
     private val deviceEntryIcon = R.id.device_entry_icon_view
     private val nsslPlaceholderId = R.id.nssl_placeholder
+    private val authInteractionProperties = AuthInteractionProperties()
 
     private const val ID = "occluding_app_device_entry_unlock_msg"
     private const val AOD_ICONS_APPEAR_DURATION: Long = 200
