diff --git a/src/java/com/android/ims/rcs/uce/presence/publish/DeviceCapabilityInfo.java b/src/java/com/android/ims/rcs/uce/presence/publish/DeviceCapabilityInfo.java
index dc79433..bc3b07e 100644
--- a/src/java/com/android/ims/rcs/uce/presence/publish/DeviceCapabilityInfo.java
+++ b/src/java/com/android/ims/rcs/uce/presence/publish/DeviceCapabilityInfo.java
@@ -101,7 +101,6 @@
 
     // Whether the settings are changed or not
     private int mTtyPreferredMode;
-    private boolean mAirplaneMode;
     private boolean mMobileData;
     private boolean mVtSetting;
 
@@ -121,7 +120,6 @@
         mRcsRegistered = false;
         mRcsNetworkRegType = AccessNetworkConstants.TRANSPORT_TYPE_INVALID;
         mTtyPreferredMode = TelecomManager.TTY_MODE_OFF;
-        mAirplaneMode = false;
         mMobileData = true;
         mVtSetting = true;
         mMmTelCapabilities = new MmTelCapabilities();
@@ -373,19 +371,6 @@
     }
 
     /**
-     * Update airplane mode state.
-     * @return {@code true} if the airplane mode is changed, {@code false} otherwise.
-     */
-    public synchronized boolean updateAirplaneMode(boolean state) {
-        if (mAirplaneMode != state) {
-            logd("Airplane mode changes from " + mAirplaneMode + " to " + state);
-            mAirplaneMode = state;
-            return true;
-        }
-        return false;
-    }
-
-    /**
      * Update mobile data setting.
      * @return {@code true} if the mobile data setting is changed, {@code false} otherwise.
      */
diff --git a/src/java/com/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener.java b/src/java/com/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener.java
index cc5cadb..9070c6f 100644
--- a/src/java/com/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener.java
+++ b/src/java/com/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener.java
@@ -272,7 +272,6 @@
     private void registerReceivers() {
         logd("registerReceivers");
         IntentFilter filter = new IntentFilter();
-        filter.addAction(Intent.ACTION_AIRPLANE_MODE_CHANGED);
         filter.addAction(TelecomManager.ACTION_TTY_PREFERRED_MODE_CHANGED);
         mContext.registerReceiver(mReceiver, filter, android.Manifest.permission.MODIFY_PHONE_STATE,
                 null);
@@ -390,11 +389,6 @@
                             TelecomManager.TTY_MODE_OFF);
                     handleTtyPreferredModeChanged(preferredMode);
                     break;
-
-                case Intent.ACTION_AIRPLANE_MODE_CHANGED:
-                    boolean airplaneMode = intent.getBooleanExtra("state", false);
-                    handleAirplaneModeChanged(airplaneMode);
-                    break;
             }
         }
     };
@@ -572,15 +566,6 @@
         }
     }
 
-    private void handleAirplaneModeChanged(boolean state) {
-        boolean isChanged = mCapabilityInfo.updateAirplaneMode(state);
-        logi("Airplane mode changed: " + state + ", isChanged="+ isChanged);
-        if (isChanged) {
-            mHandler.sendTriggeringPublishMessage(
-                    PublishController.PUBLISH_TRIGGER_AIRPLANE_MODE_CHANGE);
-        }
-    }
-
     private void handleMobileDataChanged(boolean isEnabled) {
         boolean isChanged = mCapabilityInfo.updateMobileData(isEnabled);
         logi("Mobile data changed: " + isEnabled + ", isChanged=" + isChanged);
diff --git a/src/java/com/android/ims/rcs/uce/presence/publish/PublishController.java b/src/java/com/android/ims/rcs/uce/presence/publish/PublishController.java
index b20f5ce..a3d31b9 100644
--- a/src/java/com/android/ims/rcs/uce/presence/publish/PublishController.java
+++ b/src/java/com/android/ims/rcs/uce/presence/publish/PublishController.java
@@ -45,53 +45,49 @@
     /** Publish trigger type: TTY preferred changes */
     int PUBLISH_TRIGGER_TTY_PREFERRED_CHANGE = 3;
 
-    /** Publish trigger type: Airplane mode changes */
-    int PUBLISH_TRIGGER_AIRPLANE_MODE_CHANGE = 4;
-
     /** Publish trigger type: Mobile data changes */
-    int PUBLISH_TRIGGER_MOBILE_DATA_CHANGE = 5;
+    int PUBLISH_TRIGGER_MOBILE_DATA_CHANGE = 4;
 
     /** Publish trigger type: VT setting changes */
-    int PUBLISH_TRIGGER_VT_SETTING_CHANGE = 6;
+    int PUBLISH_TRIGGER_VT_SETTING_CHANGE = 5;
 
     /** Publish trigger type: MMTEL registered */
-    int PUBLISH_TRIGGER_MMTEL_REGISTERED = 7;
+    int PUBLISH_TRIGGER_MMTEL_REGISTERED = 6;
 
     /** Publish trigger type: MMTEL unregistered */
-    int PUBLISH_TRIGGER_MMTEL_UNREGISTERED = 8;
+    int PUBLISH_TRIGGER_MMTEL_UNREGISTERED = 7;
 
     /** Publish trigger type: MMTEL capability changes */
-    int PUBLISH_TRIGGER_MMTEL_CAPABILITY_CHANGE = 9;
+    int PUBLISH_TRIGGER_MMTEL_CAPABILITY_CHANGE = 8;
 
     /** Publish trigger type: MMTEL associated uri changes */
-    int PUBLISH_TRIGGER_MMTEL_URI_CHANGE = 10;
+    int PUBLISH_TRIGGER_MMTEL_URI_CHANGE = 9;
 
     /** Publish trigger type: RCS registered */
-    int PUBLISH_TRIGGER_RCS_REGISTERED = 11;
+    int PUBLISH_TRIGGER_RCS_REGISTERED = 10;
 
     /** Publish trigger type: RCS unregistered */
-    int PUBLISH_TRIGGER_RCS_UNREGISTERED = 12;
+    int PUBLISH_TRIGGER_RCS_UNREGISTERED = 11;
 
     /** Publish trigger type: RCS associated uri changes */
-    int PUBLISH_TRIGGER_RCS_URI_CHANGE = 13;
+    int PUBLISH_TRIGGER_RCS_URI_CHANGE = 12;
 
     /** Publish trigger type: provisioning changes */
-    int PUBLISH_TRIGGER_PROVISIONING_CHANGE = 14;
+    int PUBLISH_TRIGGER_PROVISIONING_CHANGE = 13;
 
     /**The caps have been overridden for a test*/
-    int PUBLISH_TRIGGER_OVERRIDE_CAPS = 15;
+    int PUBLISH_TRIGGER_OVERRIDE_CAPS = 14;
 
     /** The Carrier Config for the subscription has Changed **/
-    int PUBLISH_TRIGGER_CARRIER_CONFIG_CHANGED = 16;
+    int PUBLISH_TRIGGER_CARRIER_CONFIG_CHANGED = 15;
 
     /** MMTEL and RCS are unregistered. **/
-    int PUBLISH_TRIGGER_MMTEL_RCS_UNREGISTERED = 17;
+    int PUBLISH_TRIGGER_MMTEL_RCS_UNREGISTERED = 16;
 
     @IntDef(value = {
             PUBLISH_TRIGGER_SERVICE,
             PUBLISH_TRIGGER_RETRY,
             PUBLISH_TRIGGER_TTY_PREFERRED_CHANGE,
-            PUBLISH_TRIGGER_AIRPLANE_MODE_CHANGE,
             PUBLISH_TRIGGER_MOBILE_DATA_CHANGE,
             PUBLISH_TRIGGER_VT_SETTING_CHANGE,
             PUBLISH_TRIGGER_MMTEL_REGISTERED,
diff --git a/tests/src/com/android/ims/rcs/uce/presence/publish/DeviceCapabilityListenerTest.java b/tests/src/com/android/ims/rcs/uce/presence/publish/DeviceCapabilityListenerTest.java
index f622172..f380110 100644
--- a/tests/src/com/android/ims/rcs/uce/presence/publish/DeviceCapabilityListenerTest.java
+++ b/tests/src/com/android/ims/rcs/uce/presence/publish/DeviceCapabilityListenerTest.java
@@ -84,7 +84,6 @@
                 getProvisioningManager(anyInt());
 
         doReturn(true).when(mDeviceCapability).updateTtyPreferredMode(anyInt());
-        doReturn(true).when(mDeviceCapability).updateAirplaneMode(anyBoolean());
         doReturn(true).when(mDeviceCapability).updateMobileData(anyBoolean());
         doReturn(true).when(mDeviceCapability).updateVtSetting(anyBoolean());
         doReturn(true).when(mDeviceCapability).updateVtSetting(anyBoolean());
@@ -144,23 +143,6 @@
 
     @Test
     @SmallTest
-    public void testAirplaneModeChange() throws Exception {
-        DeviceCapabilityListener deviceCapListener = createDeviceCapabilityListener();
-        final BroadcastReceiver receiver = deviceCapListener.mReceiver;
-
-        Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
-        receiver.onReceive(mContext, intent);
-
-        Handler handler = deviceCapListener.getHandler();
-        waitForHandlerActionDelayed(handler, HANDLER_WAIT_TIMEOUT_MS, HANDLER_SENT_DELAY_MS);
-
-        verify(mDeviceCapability).updateAirplaneMode(anyBoolean());
-        verify(mCallback).requestPublishFromInternal(
-                PublishController.PUBLISH_TRIGGER_AIRPLANE_MODE_CHANGE);
-    }
-
-    @Test
-    @SmallTest
     public void testMmtelRegistration() throws Exception {
         DeviceCapabilityListener deviceCapListener = createDeviceCapabilityListener();
         deviceCapListener.setImsCallbackRegistered(true);
