diff --git a/src/com/android/settings/applications/credentials/OWNERS b/src/com/android/settings/applications/credentials/OWNERS
index 55b89b4..b4d1f20 100644
--- a/src/com/android/settings/applications/credentials/OWNERS
+++ b/src/com/android/settings/applications/credentials/OWNERS
@@ -1,5 +1,4 @@
 # Default reviewers for this and subdirectories.
-beccahughes@google.com
 reemabajwa@google.com
 helenqin@google.com
 sgjerry@google.com
@@ -7,4 +6,4 @@
 akaphle@google.com
 duqinmei@google.com
 
-# Emergency approvers in case the above are not available
\ No newline at end of file
+# Emergency approvers in case the above are not available
diff --git a/src/com/android/settings/network/TetheredRepository.kt b/src/com/android/settings/network/TetheredRepository.kt
index f18bdca..29a5665 100644
--- a/src/com/android/settings/network/TetheredRepository.kt
+++ b/src/com/android/settings/network/TetheredRepository.kt
@@ -72,7 +72,7 @@
             flowOf(null), // kick an initial value
             context.broadcastReceiverFlow(IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED)),
         ).flatMapLatest {
-            if (adapter.getState() == BluetoothAdapter.STATE_ON) {
+            if (adapter?.getState() == BluetoothAdapter.STATE_ON) {
                 isBluetoothPanTetheringOnFlow()
             } else {
                 flowOf(false)
@@ -93,10 +93,10 @@
             override fun onServiceDisconnected(profile: Int) {}
         }
 
-        adapter.getProfileProxy(context, listener, BluetoothProfile.PAN)
+        adapter?.getProfileProxy(context, listener, BluetoothProfile.PAN)
 
         awaitClose {
-            connectedProxy?.let { adapter.closeProfileProxy(BluetoothProfile.PAN, it) }
+            connectedProxy?.let { adapter?.closeProfileProxy(BluetoothProfile.PAN, it) }
         }
     }.conflate().flowOn(Dispatchers.Default)
 }
diff --git a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java
index 2a355ad..87f0841 100644
--- a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java
+++ b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java
@@ -492,7 +492,9 @@
                     }
                 }
             } else if (phoneType == TelephonyManager.PHONE_TYPE_GSM) {
-                if (MobileNetworkUtils.isTdscdmaSupported(mContext, mSubId)) {
+                if (mIsGlobalCdma) {
+                    enabledNetworkType = EnabledNetworks.ENABLED_NETWORKS_CDMA_CHOICES;
+                } else if (MobileNetworkUtils.isTdscdmaSupported(mContext, mSubId)) {
                     enabledNetworkType = EnabledNetworks.ENABLED_NETWORKS_TDSCDMA_CHOICES;
                 } else if (!mDisplay2gOptions && !mDisplay3gOptions) {
                     enabledNetworkType = mShow4gForLTE
@@ -506,8 +508,6 @@
                             : EnabledNetworks.ENABLED_NETWORKS_EXCEPT_GSM_CHOICES;
                 } else if (!mLteEnabled) {
                     enabledNetworkType = EnabledNetworks.ENABLED_NETWORKS_EXCEPT_LTE_CHOICES;
-                } else if (mIsGlobalCdma) {
-                    enabledNetworkType = EnabledNetworks.ENABLED_NETWORKS_CDMA_CHOICES;
                 } else {
                     enabledNetworkType = mShow4gForLTE ? EnabledNetworks.ENABLED_NETWORKS_4G_CHOICES
                             : EnabledNetworks.ENABLED_NETWORKS_CHOICES;
diff --git a/tests/Enable16KbTests/TEST_MAPPING b/tests/Enable16KbTests/TEST_MAPPING
new file mode 100644
index 0000000..fbe6fe1
--- /dev/null
+++ b/tests/Enable16KbTests/TEST_MAPPING
@@ -0,0 +1,8 @@
+{
+  "postsubmit": [
+    {
+      "name": "Enable16KbTest"
+    }
+  ]
+}
+
