diff --git a/res/layout/event_item.xml b/res/layout/event_item.xml
index 68dda47..5d70907 100644
--- a/res/layout/event_item.xml
+++ b/res/layout/event_item.xml
@@ -46,7 +46,7 @@
     </LinearLayout>
 
     <!-- Secondary action icon. -->
-    <com.android.car.calendar.DrawableStateImageButton
+    <android.widget.ImageButton
         android:id="@+id/primary_action_button"
         android:layout_width="@dimen/car_ui_list_item_height"
         android:layout_height="@dimen/car_ui_list_item_height"
@@ -57,7 +57,7 @@
         android:layout_gravity="center"/>
 
     <!-- Secondary action icon. -->
-    <com.android.car.calendar.DrawableStateImageButton
+    <android.widget.ImageButton
         android:id="@+id/secondary_action_button"
         android:layout_width="@dimen/car_ui_list_item_height"
         android:layout_height="@dimen/car_ui_list_item_height"
diff --git a/src/com/android/car/calendar/DrawableStateImageButton.java b/src/com/android/car/calendar/DrawableStateImageButton.java
deleted file mode 100644
index 4ebd06e..0000000
--- a/src/com/android/car/calendar/DrawableStateImageButton.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright 2020 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.car.calendar;
-
-import android.content.Context;
-import android.util.AttributeSet;
-import android.widget.ImageButton;
-
-import androidx.annotation.Nullable;
-
-import com.android.car.ui.uxr.DrawableStateView;
-
-/**
- * An {@link ImageButton} that implements {@link DrawableStateView}, for allowing additional states
- * such as ux restriction.
- *
- * @see com.android.car.ui.uxr.DrawableStateButton
- *
- * TODO(jdp) Move this to car-ui-lib.
- */
-public class DrawableStateImageButton extends ImageButton implements DrawableStateView {
-
-    private int[] mState;
-
-    public DrawableStateImageButton(Context context) {
-        super(context);
-    }
-
-    public DrawableStateImageButton(Context context, @Nullable AttributeSet attrs) {
-        super(context, attrs);
-    }
-
-    public DrawableStateImageButton(
-            Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
-        super(context, attrs, defStyleAttr);
-    }
-
-    public DrawableStateImageButton(
-            Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
-        super(context, attrs, defStyleAttr, defStyleRes);
-    }
-
-    @Override
-    public void setDrawableState(int[] state) {
-        mState = state;
-        refreshDrawableState();
-    }
-
-    @Override
-    public int[] onCreateDrawableState(int extraSpace) {
-        if (mState == null) {
-            return super.onCreateDrawableState(extraSpace);
-        } else {
-            return mergeDrawableStates(
-                    super.onCreateDrawableState(extraSpace + mState.length), mState);
-        }
-    }
-}
diff --git a/src/com/android/car/calendar/EventCalendarItem.java b/src/com/android/car/calendar/EventCalendarItem.java
index 0642baa..a7c023d 100644
--- a/src/com/android/car/calendar/EventCalendarItem.java
+++ b/src/com/android/car/calendar/EventCalendarItem.java
@@ -30,6 +30,7 @@
 import android.view.LayoutInflater;
 import android.view.View.OnClickListener;
 import android.view.ViewGroup;
+import android.widget.ImageButton;
 import android.widget.TextView;
 import android.widget.Toast;
 
@@ -171,8 +172,8 @@
 
         private final TextView mTitleView;
         private final TextView mDescriptionView;
-        private final DrawableStateImageButton mPrimaryActionButton;
-        private final DrawableStateImageButton mSecondaryActionButton;
+        private final ImageButton mPrimaryActionButton;
+        private final ImageButton mSecondaryActionButton;
         private final int mCalendarIndicatorSize;
         private final int mCalendarIndicatorPadding;
         @ColorInt private final int mTimeTextColor;
