diff --git a/java/com/android/dialer/compat/android/support/design/bottomsheet/BottomSheetStateCompat.java b/java/com/android/dialer/compat/android/support/design/bottomsheet/BottomSheetStateCompat.java
new file mode 100644
index 0000000..d7079d4
--- /dev/null
+++ b/java/com/android/dialer/compat/android/support/design/bottomsheet/BottomSheetStateCompat.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.compat.android.support.design.bottomsheet;
+
+import android.support.design.widget.BottomSheetBehavior;
+
+/** Provides access to bottom sheet states. */
+public final class BottomSheetStateCompat {
+
+  /** The bottom sheet is dragging. */
+  public static final int STATE_DRAGGING = BottomSheetBehavior.STATE_DRAGGING;
+
+  /** The bottom sheet is settling. */
+  public static final int STATE_SETTLING = BottomSheetBehavior.STATE_SETTLING;
+
+  /** The bottom sheet is expanded. */
+  public static final int STATE_EXPANDED = BottomSheetBehavior.STATE_EXPANDED;
+
+  /** The bottom sheet is collapsed. */
+  public static final int STATE_COLLAPSED = BottomSheetBehavior.STATE_COLLAPSED;
+
+  /** The bottom sheet is hidden. */
+  public static final int STATE_HIDDEN = BottomSheetBehavior.STATE_HIDDEN;
+
+  /** The bottom sheet is half-expanded (not public yet). */
+  public static final int STATE_HALF_EXPANDED = 6;
+
+  private BottomSheetStateCompat() {}
+}
diff --git a/java/com/android/dialer/historyitemactions/HistoryItemActionBottomSheet.java b/java/com/android/dialer/historyitemactions/HistoryItemActionBottomSheet.java
index 9653f55..9bc6570 100644
--- a/java/com/android/dialer/historyitemactions/HistoryItemActionBottomSheet.java
+++ b/java/com/android/dialer/historyitemactions/HistoryItemActionBottomSheet.java
@@ -35,6 +35,7 @@
 import android.widget.LinearLayout;
 import android.widget.TextView;
 import com.android.dialer.common.Assert;
+import com.android.dialer.compat.android.support.design.bottomsheet.BottomSheetStateCompat;
 import com.android.dialer.theme.base.ThemeComponent;
 import com.android.dialer.widget.ContactPhotoView;
 import com.google.common.collect.ImmutableSet;
@@ -77,7 +78,7 @@
         // *can* be expanded to full screen.
         contactLayout.setElevation(
             background.getHeight() == bottomSheet.getHeight()
-                    && behavior.getState() == BottomSheetBehavior.STATE_EXPANDED
+                    && behavior.getState() == BottomSheetStateCompat.STATE_EXPANDED
                 ? getContext()
                     .getResources()
                     .getDimensionPixelSize(R.dimen.contact_actions_header_elevation)
@@ -146,7 +147,7 @@
     if (isTouchExplorationEnabled()) {
       BottomSheetBehavior<View> behavior =
           BottomSheetBehavior.from(findViewById(android.support.design.R.id.design_bottom_sheet));
-      behavior.setState(BottomSheetBehavior.STATE_EXPANDED);
+      behavior.setState(BottomSheetStateCompat.STATE_EXPANDED);
     }
   }
 
@@ -171,10 +172,10 @@
             ImmutableSet<Integer> statesToCancelBottomSheet =
                 isTouchExplorationEnabled()
                     ? ImmutableSet.of(
-                        BottomSheetBehavior.STATE_COLLAPSED,
-                        BottomSheetBehavior.STATE_HIDDEN,
-                        BottomSheetBehavior.STATE_HALF_EXPANDED)
-                    : ImmutableSet.of(BottomSheetBehavior.STATE_HIDDEN);
+                        BottomSheetStateCompat.STATE_COLLAPSED,
+                        BottomSheetStateCompat.STATE_HIDDEN,
+                        BottomSheetStateCompat.STATE_HALF_EXPANDED)
+                    : ImmutableSet.of(BottomSheetStateCompat.STATE_HIDDEN);
 
             if (statesToCancelBottomSheet.contains(newState)) {
               cancel();
