Merge "[PK settings] Remove metrics." into main
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index 552ca3f..81c87f7 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -1425,4 +1425,14 @@
         <item>@string/battery_tips_card_dismiss_button</item>
     </string-array>
 
+    <!-- A list of not supporting Terms of Address. [DO NOT TRANSLATE] -->
+    <string-array name="terms_of_address_unsupported_locale">
+        <item>fr-CA</item> <!-- French (Canada) -->
+    </string-array>
+
+    <!-- A list of supporting Terms of Address. [DO NOT TRANSLATE] -->
+    <string-array name="terms_of_address_supported_locale">
+        <item>en-XA</item> <!-- English (Pseudo-Accents) -->
+        <item>ar-XB</item> <!-- Arabic (Pseudo-Bidi) -->
+    </string-array>
 </resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 4033c39..dbf2c4a 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -459,6 +459,8 @@
     <string name="terms_of_address_feminine">Feminine</string>
     <!-- The title of masculine of terms of address. [CHAR LIMIT=NONE] -->
     <string name="terms_of_address_masculine">Masculine</string>
+    <!-- The title of neutral of terms of address. [CHAR LIMIT=NONE] -->
+    <string name="terms_of_address_neutral">Neutral</string>
 
     <!-- The title of the confirmation dialog shown when the user selects one / several languages and tries to remove them [CHAR LIMIT=60] -->
     <string name="dlg_remove_locales_title">{count, plural,
@@ -12103,12 +12105,14 @@
 
     <!-- The title of the bluetooth audio device type selection [CHAR LIMIT=none] -->
     <string name="bluetooth_details_audio_device_types_title">Audio Device Type</string>
-    <!-- The audio device type corresponding to unknown selected [CHAR LIMIT=none] -->
+    <!-- The audio device type corresponding to unknown device type [CHAR LIMIT=none] -->
     <string name="bluetooth_details_audio_device_type_unknown">Unknown</string>
-    <!-- The audio device type corresponding to none selected [CHAR LIMIT=none] -->
-    <string name="bluetooth_details_audio_device_type_speaker">Speaker</string>
     <!-- The audio device type corresponding to speakers [CHAR LIMIT=none] -->
+    <string name="bluetooth_details_audio_device_type_speaker">Speaker</string>
+    <!-- The audio device type corresponding to headphones [CHAR LIMIT=none] -->
     <string name="bluetooth_details_audio_device_type_headphones">Headphones</string>
+    <!-- The audio device type corresponding to hearing aid [CHAR LIMIT=none] -->
+    <string name="bluetooth_details_audio_device_type_hearing_aid">Hearing Aid</string>
     <!-- The audio device type corresponding to car kit [CHAR LIMIT=none] -->
     <string name="bluetooth_details_audio_device_type_carkit">Car Kit</string>
     <!-- The audio device type corresponding to other device type [CHAR LIMIT=none] -->
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index c20529b..1ebf805 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -63,7 +63,6 @@
 import android.os.Binder;
 import android.os.Build;
 import android.os.Bundle;
-import android.os.Environment;
 import android.os.IBinder;
 import android.os.INetworkManagementService;
 import android.os.RemoteException;
@@ -1330,14 +1329,4 @@
         return dreamsSupported && (!dreamsOnlyEnabledForDockUser || canCurrentUserDream(context));
     }
 
-    /**
-     * Get private total size directly.
-     * Referred from StorageManager
-     */
-    public static long getPrimaryStorageSize() {
-        // TODO(b/288103116): remove this method once support by StorageManager.
-        return Environment.getDataDirectory().getTotalSpace()
-                + Environment.getRootDirectory().getTotalSpace();
-    }
-
 }
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollmentIntroV2Fragment.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollmentIntroV2Fragment.kt
index 88f8391..c7fcb66 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollmentIntroV2Fragment.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollmentIntroV2Fragment.kt
@@ -128,7 +128,7 @@
                 R.id.icon_link
               )
               .forEach { icon ->
-                view.findViewById<ImageView>(icon).drawable.colorFilter = colorFilter
+                view.requireViewById<ImageView>(icon).drawable.colorFilter = colorFilter
               }
 
             // Set the text for the footer text views.
@@ -139,12 +139,12 @@
                 R.id.footer_message_5 to textModel.footerMessageFive,
                 R.id.footer_message_6 to textModel.footerMessageSix,
               )
-              .forEach { pair -> view.findViewById<TextView>(pair.first).setText(pair.second) }
+              .forEach { pair -> view.requireViewById<TextView>(pair.first).setText(pair.second) }
 
             setFooterLink(view)
 
-            val iconShield: ImageView = view.findViewById(R.id.icon_shield)
-            val footerMessage6: TextView = view.findViewById(R.id.footer_message_6)
+            val iconShield: ImageView = view.requireViewById(R.id.icon_shield)
+            val footerMessage6: TextView = view.requireViewById(R.id.footer_message_6)
             when (sensorProps?.sensorType) {
               FingerprintSensorProperties.TYPE_UDFPS_ULTRASONIC,
               FingerprintSensorProperties.TYPE_UDFPS_OPTICAL -> {
@@ -157,15 +157,15 @@
               }
             }
 
-            view.findViewById<TextView?>(R.id.footer_title_1).setText(textModel.footerTitleOne)
-            view.findViewById<TextView?>(R.id.footer_title_2).setText(textModel.footerTitleOne)
+            view.requireViewById<TextView?>(R.id.footer_title_1).setText(textModel.footerTitleOne)
+            view.requireViewById<TextView?>(R.id.footer_title_2).setText(textModel.footerTitleOne)
           }
         }
     }
   }
 
   private fun setFooterLink(view: View) {
-    val footerLink: TextView = view.findViewById(R.id.footer_learn_more)
+    val footerLink: TextView = view.requireViewById(R.id.footer_learn_more)
     footerLink.movementMethod = LinkMovementMethod.getInstance()
     footerLink.text =
       Html.fromHtml(
@@ -178,13 +178,13 @@
     view: View,
   ) {
     val scrollView: ScrollView =
-      view.findViewById(com.google.android.setupdesign.R.id.sud_scroll_view)
+      view.requireViewById(com.google.android.setupdesign.R.id.sud_scroll_view)
     scrollView.importantForAccessibility = View.IMPORTANT_FOR_ACCESSIBILITY_YES
     // Next button responsible for starting the next fragment.
     val onNextButtonClick: View.OnClickListener =
       View.OnClickListener { Log.d(TAG, "OnNextClicked") }
 
-    val layout: GlifLayout = requireActivity().findViewById(R.id.setup_wizard_layout)
+    val layout: GlifLayout = requireActivity().requireViewById(R.id.setup_wizard_layout)
     footerBarMixin = layout.getMixin(FooterBarMixin::class.java)
     footerBarMixin.primaryButton =
       FooterButton.Builder(requireActivity())
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsRenameDialog.kt b/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsRenameDialog.kt
index 0ebc561..84f33ff 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsRenameDialog.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsRenameDialog.kt
@@ -106,8 +106,8 @@
         val dialog = FingerprintSettingsRenameDialog()
         val onClick =
           DialogInterface.OnClickListener { _, _ ->
-            val dialogTextField =
-              dialog.requireDialog().findViewById(R.id.fingerprint_rename_field) as ImeAwareEditText
+            val dialogTextField = dialog.requireDialog()
+                .requireViewById(R.id.fingerprint_rename_field) as ImeAwareEditText
             val newName = dialogTextField.text.toString()
             if (!TextUtils.equals(newName, fp.name)) {
               Log.d(TAG, "rename $fp.name to $newName for $dialog")
diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsAudioDeviceTypeController.java b/src/com/android/settings/bluetooth/BluetoothDetailsAudioDeviceTypeController.java
index ba5f465..fe0d141 100644
--- a/src/com/android/settings/bluetooth/BluetoothDetailsAudioDeviceTypeController.java
+++ b/src/com/android/settings/bluetooth/BluetoothDetailsAudioDeviceTypeController.java
@@ -19,6 +19,7 @@
 import static android.bluetooth.BluetoothDevice.DEVICE_TYPE_LE;
 import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_CARKIT;
 import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_HEADPHONES;
+import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_HEARING_AID;
 import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_OTHER;
 import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_SPEAKER;
 import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_UNKNOWN;
@@ -149,6 +150,7 @@
                 mContext.getString(R.string.bluetooth_details_audio_device_type_speaker),
                 mContext.getString(R.string.bluetooth_details_audio_device_type_headphones),
                 mContext.getString(R.string.bluetooth_details_audio_device_type_carkit),
+                mContext.getString(R.string.bluetooth_details_audio_device_type_hearing_aid),
                 mContext.getString(R.string.bluetooth_details_audio_device_type_other),
         });
         mAudioDeviceTypePreference.setEntryValues(new CharSequence[]{
@@ -156,6 +158,7 @@
                 Integer.toString(AUDIO_DEVICE_CATEGORY_SPEAKER),
                 Integer.toString(AUDIO_DEVICE_CATEGORY_HEADPHONES),
                 Integer.toString(AUDIO_DEVICE_CATEGORY_CARKIT),
+                Integer.toString(AUDIO_DEVICE_CATEGORY_HEARING_AID),
                 Integer.toString(AUDIO_DEVICE_CATEGORY_OTHER),
         });
 
diff --git a/src/com/android/settings/core/FeatureFlags.java b/src/com/android/settings/core/FeatureFlags.java
index 1a97ca9..fb552d7 100644
--- a/src/com/android/settings/core/FeatureFlags.java
+++ b/src/com/android/settings/core/FeatureFlags.java
@@ -30,4 +30,6 @@
     public static final String CONTEXTUAL_HOME = "settings_contextual_home";
     public static final String SETTINGS_SEARCH_ALWAYS_EXPAND =
             "settings_search_always_expand";
+    public static final String PRESS_HOLD_NAV_HANDLE_TO_SEARCH =
+            "settings_press_hold_nav_handle_to_search";
 }
diff --git a/src/com/android/settings/deviceinfo/StorageCategoryFragment.java b/src/com/android/settings/deviceinfo/StorageCategoryFragment.java
index d1d4cbe..52f453d 100644
--- a/src/com/android/settings/deviceinfo/StorageCategoryFragment.java
+++ b/src/com/android/settings/deviceinfo/StorageCategoryFragment.java
@@ -211,9 +211,7 @@
 
         setLoading(false /* loading */, false /* animate */);
 
-        // TODO(b/288103116): replace with  new API to get TotalBytes before rounding
-        //  once support by StorageManager.
-        final long privateUsedBytes = Utils.getPrimaryStorageSize() - mStorageInfo.freeBytes;
+        final long privateUsedBytes = mStorageInfo.totalBytes - mStorageInfo.freeBytes;
         mPreferenceController.setVolume(mSelectedStorageEntry.getVolumeInfo());
         mPreferenceController.setUsedSize(privateUsedBytes);
         mPreferenceController.setTotalSize(mStorageInfo.totalBytes);
diff --git a/src/com/android/settings/deviceinfo/StorageDashboardFragment.java b/src/com/android/settings/deviceinfo/StorageDashboardFragment.java
index 4138057..f31f2be 100644
--- a/src/com/android/settings/deviceinfo/StorageDashboardFragment.java
+++ b/src/com/android/settings/deviceinfo/StorageDashboardFragment.java
@@ -387,9 +387,7 @@
 
         setLoading(false /* loading */, false /* animate */);
 
-        // TODO(b/288103116): replace with  new API to get TotalBytes before rounding
-        //  once support by StorageManager.
-        final long privateUsedBytes = Utils.getPrimaryStorageSize() - mStorageInfo.freeBytes;
+        final long privateUsedBytes = mStorageInfo.totalBytes - mStorageInfo.freeBytes;
         mPreferenceController.setVolume(mSelectedStorageEntry.getVolumeInfo());
         mPreferenceController.setUsedSize(privateUsedBytes);
         mPreferenceController.setTotalSize(mStorageInfo.totalBytes);
diff --git a/src/com/android/settings/deviceinfo/TopLevelStoragePreferenceController.java b/src/com/android/settings/deviceinfo/TopLevelStoragePreferenceController.java
index 43dc9dd..ccae7e9 100644
--- a/src/com/android/settings/deviceinfo/TopLevelStoragePreferenceController.java
+++ b/src/com/android/settings/deviceinfo/TopLevelStoragePreferenceController.java
@@ -75,9 +75,7 @@
             final PrivateStorageInfo info = PrivateStorageInfo.getPrivateStorageInfo(
                     getStorageManagerVolumeProvider());
 
-            // TODO(b/288103116): replace with  new API to get TotalBytes before rounding
-            //  once support by StorageManager.
-            long usedBytes = Utils.getPrimaryStorageSize() - info.freeBytes;
+            long usedBytes = info.totalBytes - info.freeBytes;
             storageCacheHelper.cacheUsedSize(usedBytes);
             ThreadUtils.postOnMainThread(() -> {
                 preference.setSummary(
diff --git a/src/com/android/settings/deviceinfo/storage/StorageUsageProgressBarPreferenceController.java b/src/com/android/settings/deviceinfo/storage/StorageUsageProgressBarPreferenceController.java
index 23559d4..be2a64a 100644
--- a/src/com/android/settings/deviceinfo/storage/StorageUsageProgressBarPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/storage/StorageUsageProgressBarPreferenceController.java
@@ -26,7 +26,6 @@
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
-import com.android.settings.Utils;
 import com.android.settings.core.BasePreferenceController;
 import com.android.settingslib.utils.ThreadUtils;
 import com.android.settingslib.widget.UsageProgressBarPreference;
@@ -93,9 +92,7 @@
                 if (mStorageEntry.isPrivate()) {
                     // StorageStatsManager can only query private storages.
                     mTotalBytes = mStorageStatsManager.getTotalBytes(mStorageEntry.getFsUuid());
-                    // TODO(b/288103116): replace with  new API to get TotalBytes before rounding
-                    //  once support by StorageManager.
-                    mUsedBytes = Utils.getPrimaryStorageSize()
+                    mUsedBytes = mTotalBytes
                             - mStorageStatsManager.getFreeBytes(mStorageEntry.getFsUuid());
                 } else {
                     final File rootFile = mStorageEntry.getPath();
diff --git a/src/com/android/settings/gestures/SystemNavigationPreferenceController.java b/src/com/android/settings/gestures/SystemNavigationPreferenceController.java
index ab83a9d..ccdb257 100644
--- a/src/com/android/settings/gestures/SystemNavigationPreferenceController.java
+++ b/src/com/android/settings/gestures/SystemNavigationPreferenceController.java
@@ -52,7 +52,8 @@
         }
     }
 
-    static boolean isGestureAvailable(Context context) {
+    /** Returns {@code true} if gesture is available. */
+    public static boolean isGestureAvailable(Context context) {
         // Skip if the swipe up settings are not available
         if (!context.getResources().getBoolean(
                 com.android.internal.R.bool.config_swipe_up_gesture_setting_available)) {
diff --git a/src/com/android/settings/localepicker/AppLocalePickerActivity.java b/src/com/android/settings/localepicker/AppLocalePickerActivity.java
index 1d27590..491f1a4 100644
--- a/src/com/android/settings/localepicker/AppLocalePickerActivity.java
+++ b/src/com/android/settings/localepicker/AppLocalePickerActivity.java
@@ -18,7 +18,6 @@
 
 import android.app.FragmentTransaction;
 import android.app.LocaleManager;
-import android.app.settings.SettingsEnums;
 import android.content.Intent;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
@@ -43,8 +42,6 @@
 import com.android.settings.applications.AppLocaleUtil;
 import com.android.settings.applications.appinfo.AppLocaleDetails;
 import com.android.settings.core.SettingsBaseActivity;
-import com.android.settings.overlay.FeatureFactory;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
 import java.util.Locale;
 
@@ -54,16 +51,11 @@
     static final String EXTRA_APP_LOCALE = "app_locale";
     private static final String PROP_SYSTEM_LOCALE_SUGGESTION = "android.system.locale.suggestion";
     private static final boolean ENABLED = false;
-    private static final int SIM_LOCALE = 1 << 0;
-    private static final int SYSTEM_LOCALE = 1 << 1;
-    private static final int APP_LOCALE = 1 << 2;
-    private static final int IME_LOCALE = 1 << 3;
 
     private String mPackageName;
     private LocalePickerWithRegion mLocalePickerWithRegion;
     private AppLocaleDetails mAppLocaleDetails;
     private View mAppLocaleDetailContainer;
-    private MetricsFeatureProvider mMetricsFeatureProvider;
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
@@ -89,7 +81,6 @@
 
         setTitle(R.string.app_locale_picker_title);
         getActionBar().setDisplayHomeAsUpEnabled(true);
-        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
 
         mLocalePickerWithRegion = LocalePickerWithRegion.createLanguagePicker(
                 this,
@@ -118,7 +109,6 @@
         if (localeInfo == null || localeInfo.getLocale() == null || localeInfo.isSystemLocale()) {
             setAppDefaultLocale("");
         } else {
-            logLocaleSource(localeInfo);
             setAppDefaultLocale(localeInfo.getLocale().toLanguageTag());
             broadcastAppLocaleChange(localeInfo);
         }
@@ -250,32 +240,4 @@
 
         return false;
     }
-
-    private void logLocaleSource(LocaleStore.LocaleInfo localeInfo) {
-        if (!localeInfo.isSuggested() || localeInfo.isAppCurrentLocale()) {
-            return;
-        }
-        int localeSource = 0;
-        if (hasSuggestionType(localeInfo,
-                LocaleStore.LocaleInfo.SUGGESTION_TYPE_SYSTEM_AVAILABLE_LANGUAGE)) {
-            localeSource |= SYSTEM_LOCALE;
-        }
-        if (hasSuggestionType(localeInfo,
-                LocaleStore.LocaleInfo.SUGGESTION_TYPE_OTHER_APP_LANGUAGE)) {
-            localeSource |= APP_LOCALE;
-        }
-        if (hasSuggestionType(localeInfo, LocaleStore.LocaleInfo.SUGGESTION_TYPE_IME_LANGUAGE)) {
-            localeSource |= IME_LOCALE;
-        }
-        if (hasSuggestionType(localeInfo, LocaleStore.LocaleInfo.SUGGESTION_TYPE_SIM)) {
-            localeSource |= SIM_LOCALE;
-        }
-        mMetricsFeatureProvider.action(this,
-                SettingsEnums.ACTION_CHANGE_APP_LANGUAGE_FROM_SUGGESTED, localeSource);
-    }
-
-    private static boolean hasSuggestionType(LocaleStore.LocaleInfo localeInfo,
-            int suggestionType) {
-        return localeInfo.isSuggestionOfType(suggestionType);
-    }
 }
diff --git a/src/com/android/settings/localepicker/LocaleHelperPreferenceController.java b/src/com/android/settings/localepicker/LocaleHelperPreferenceController.java
index b962b9e..a639c9d 100644
--- a/src/com/android/settings/localepicker/LocaleHelperPreferenceController.java
+++ b/src/com/android/settings/localepicker/LocaleHelperPreferenceController.java
@@ -16,7 +16,6 @@
 
 package com.android.settings.localepicker;
 
-import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.content.Intent;
 import android.util.Log;
@@ -25,10 +24,8 @@
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
-import com.android.settings.overlay.FeatureFactory;
 import com.android.settingslib.HelpUtils;
 import com.android.settingslib.core.AbstractPreferenceController;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 import com.android.settingslib.widget.FooterPreference;
 
 /**
@@ -39,11 +36,8 @@
 
     private static final String KEY_FOOTER_LANGUAGE_PICKER = "footer_languages_picker";
 
-    private final MetricsFeatureProvider mMetricsFeatureProvider;
-
     public LocaleHelperPreferenceController(Context context) {
         super(context);
-        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     @Override
@@ -78,7 +72,6 @@
                 mContext.getString(R.string.link_locale_picker_footer_learn_more),
                 mContext.getClass().getName());
         if (intent != null) {
-            mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_LANGUAGES_LEARN_MORE);
             mContext.startActivity(intent);
         } else {
             Log.w(TAG, "HelpIntent is null");
diff --git a/src/com/android/settings/regionalpreferences/FirstDayOfWeekItemListController.java b/src/com/android/settings/regionalpreferences/FirstDayOfWeekItemListController.java
index d509d2e..03a59de 100644
--- a/src/com/android/settings/regionalpreferences/FirstDayOfWeekItemListController.java
+++ b/src/com/android/settings/regionalpreferences/FirstDayOfWeekItemListController.java
@@ -16,7 +16,6 @@
 
 package com.android.settings.regionalpreferences;
 
-import android.app.settings.SettingsEnums;
 import android.content.Context;
 
 import com.android.settings.R;
@@ -58,9 +57,4 @@
     protected String[] getUnitValues() {
         return mContext.getResources().getStringArray(R.array.first_day_of_week);
     }
-
-    @Override
-    protected int getMetricsActionKey() {
-        return SettingsEnums.ACTION_SET_FIRST_DAY_OF_WEEK;
-    }
 }
diff --git a/src/com/android/settings/regionalpreferences/RegionalPreferenceListBasePreferenceController.java b/src/com/android/settings/regionalpreferences/RegionalPreferenceListBasePreferenceController.java
index ac0e7ee..2f2bf76 100644
--- a/src/com/android/settings/regionalpreferences/RegionalPreferenceListBasePreferenceController.java
+++ b/src/com/android/settings/regionalpreferences/RegionalPreferenceListBasePreferenceController.java
@@ -22,20 +22,16 @@
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.core.BasePreferenceController;
-import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.widget.TickButtonPreference;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
 /** A base controller for handling all regional preferences controllers. */
 public abstract class RegionalPreferenceListBasePreferenceController extends
         BasePreferenceController {
 
-    private final MetricsFeatureProvider mMetricsFeatureProvider;
     private PreferenceCategory mPreferenceCategory;
 
     public RegionalPreferenceListBasePreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
-        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     @Override
@@ -65,8 +61,6 @@
                 RegionalPreferencesDataUtils.savePreference(mContext, getExtensionTypes(),
                         item.equals(RegionalPreferencesDataUtils.DEFAULT_VALUE)
                                 ? null : item);
-                mMetricsFeatureProvider.action(mContext, getMetricsActionKey(),
-                        getPreferenceTitle(value) + " > " +  getPreferenceTitle(item));
                 return true;
             });
             pref.setSelected(!value.isEmpty() && item.equals(value));
@@ -96,8 +90,4 @@
     protected abstract String getExtensionTypes();
 
     protected abstract String[] getUnitValues();
-
-    protected abstract int getMetricsActionKey();
-
-
 }
diff --git a/src/com/android/settings/regionalpreferences/TemperatureUnitListController.java b/src/com/android/settings/regionalpreferences/TemperatureUnitListController.java
index 91ab1a2..c51ca71 100644
--- a/src/com/android/settings/regionalpreferences/TemperatureUnitListController.java
+++ b/src/com/android/settings/regionalpreferences/TemperatureUnitListController.java
@@ -16,7 +16,6 @@
 
 package com.android.settings.regionalpreferences;
 
-import android.app.settings.SettingsEnums;
 import android.content.Context;
 
 import com.android.settings.R;
@@ -56,9 +55,4 @@
     protected String[] getUnitValues() {
         return mContext.getResources().getStringArray(R.array.temperature_units);
     }
-
-    @Override
-    protected int getMetricsActionKey() {
-        return SettingsEnums.ACTION_SET_TEMPERATURE_UNIT;
-    }
 }
diff --git a/src/com/android/settings/remoteauth/enrolling/RemoteAuthEnrollEnrolling.kt b/src/com/android/settings/remoteauth/enrolling/RemoteAuthEnrollEnrolling.kt
index 4569760..dcb81c7 100644
--- a/src/com/android/settings/remoteauth/enrolling/RemoteAuthEnrollEnrolling.kt
+++ b/src/com/android/settings/remoteauth/enrolling/RemoteAuthEnrollEnrolling.kt
@@ -42,11 +42,11 @@
     private val viewModel = RemoteAuthEnrollEnrollingViewModel()
     private val adapter = RemoteAuthEnrollEnrollingRecyclerViewAdapter()
     private val progressBar by lazy {
-        view!!.findViewById<ProgressBar>(R.id.enrolling_list_progress_bar)
+        view!!.requireViewById<ProgressBar>(R.id.enrolling_list_progress_bar)
     }
-    private val errorText by lazy { view!!.findViewById<TextView>(R.id.error_text) }
+    private val errorText by lazy { view!!.requireViewById<TextView>(R.id.error_text) }
     private val recyclerView by lazy {
-        view!!.findViewById<RecyclerView>(R.id.discovered_authenticator_list)
+        view!!.requireViewById<RecyclerView>(R.id.discovered_authenticator_list)
     }
 
     override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
@@ -124,4 +124,4 @@
             errorText.text = ""
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/com/android/settings/remoteauth/enrolling/RemoteAuthEnrollEnrollingRecyclerViewAdapter.kt b/src/com/android/settings/remoteauth/enrolling/RemoteAuthEnrollEnrollingRecyclerViewAdapter.kt
index 81b8801..323c41f 100644
--- a/src/com/android/settings/remoteauth/enrolling/RemoteAuthEnrollEnrollingRecyclerViewAdapter.kt
+++ b/src/com/android/settings/remoteauth/enrolling/RemoteAuthEnrollEnrollingRecyclerViewAdapter.kt
@@ -46,8 +46,8 @@
     override fun getItemCount() = uiStates.size
 
     class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
-        private val titleTextView: TextView = view.findViewById(R.id.discovered_authenticator_name)
-        private val selectButton: ImageView = view.findViewById(R.id.authenticator_radio_button)
+        private val titleTextView: TextView = view.requireViewById(R.id.discovered_authenticator_name)
+        private val selectButton: ImageView = view.requireViewById(R.id.authenticator_radio_button)
         private val checkedDrawable =
             view.context.getDrawable(R.drawable.ic_radio_button_checked_black_24dp)
         private val uncheckedDrawable =
@@ -63,4 +63,4 @@
             selectButton.setOnClickListener { discoveredAuthenticatorUiState.onSelect() }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/com/android/settings/remoteauth/settings/RemoteAuthSettings.kt b/src/com/android/settings/remoteauth/settings/RemoteAuthSettings.kt
index ebf13f8..93711bf 100644
--- a/src/com/android/settings/remoteauth/settings/RemoteAuthSettings.kt
+++ b/src/com/android/settings/remoteauth/settings/RemoteAuthSettings.kt
@@ -34,11 +34,11 @@
     val viewModel = RemoteAuthSettingsViewModel()
     private val adapter = RemoteAuthSettingsRecyclerViewAdapter()
     private val recyclerView by lazy {
-        view!!.findViewById<RecyclerView>(R.id.registered_authenticator_list)
+        view!!.requireViewById<RecyclerView>(R.id.registered_authenticator_list)
     }
 
     private val addAuthenticatorLayout by lazy {
-        view!!.findViewById<ConstraintLayout>(R.id.add_authenticator_layout)
+        view!!.requireViewById<ConstraintLayout>(R.id.add_authenticator_layout)
     }
 
     override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
@@ -65,4 +65,4 @@
         adapter.uiStates = uiState.registeredAuthenticatorUiStates
     }
 
-}
\ No newline at end of file
+}
diff --git a/src/com/android/settings/remoteauth/settings/RemoteAuthSettingsRecyclerViewAdapter.kt b/src/com/android/settings/remoteauth/settings/RemoteAuthSettingsRecyclerViewAdapter.kt
index f506a0b..f8038bd 100644
--- a/src/com/android/settings/remoteauth/settings/RemoteAuthSettingsRecyclerViewAdapter.kt
+++ b/src/com/android/settings/remoteauth/settings/RemoteAuthSettingsRecyclerViewAdapter.kt
@@ -46,12 +46,12 @@
     override fun getItemCount() = uiStates.size
 
     class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
-        private val titleTextView: TextView = view.findViewById(R.id.authenticator_name_text)
-        private val unregisterButton: ImageView = view.findViewById(R.id.remove_icon)
+        private val titleTextView: TextView = view.requireViewById(R.id.authenticator_name_text)
+        private val unregisterButton: ImageView = view.requireViewById(R.id.remove_icon)
 
         fun bind(authenticatorUiState: RemoteAuthAuthenticatorItemUiState) {
             titleTextView.text = authenticatorUiState.name
             unregisterButton.setOnClickListener { authenticatorUiState.unregister() }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/tests/robotests/src/com/android/settings/localepicker/AppLocalePickerActivityTest.java b/tests/robotests/src/com/android/settings/localepicker/AppLocalePickerActivityTest.java
index 8fb3a5d..48caecd 100644
--- a/tests/robotests/src/com/android/settings/localepicker/AppLocalePickerActivityTest.java
+++ b/tests/robotests/src/com/android/settings/localepicker/AppLocalePickerActivityTest.java
@@ -18,8 +18,6 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.times;
@@ -29,7 +27,6 @@
 import android.app.Activity;
 import android.app.ApplicationPackageManager;
 import android.app.LocaleConfig;
-import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.ApplicationInfo;
@@ -48,7 +45,6 @@
 import com.android.internal.app.LocaleStore;
 import com.android.settings.applications.AppInfoBase;
 import com.android.settings.applications.AppLocaleUtil;
-import com.android.settings.testutils.FakeFeatureFactory;
 
 import org.junit.After;
 import org.junit.Before;
@@ -83,7 +79,6 @@
 public class AppLocalePickerActivityTest {
     private static final String TEST_PACKAGE_NAME = "com.android.settings";
     private static final Uri TEST_PACKAGE_URI = Uri.parse("package:" + TEST_PACKAGE_NAME);
-    private FakeFeatureFactory mFeatureFactory;
 
     @Mock
     LocaleStore.LocaleInfo mLocaleInfo;
@@ -104,7 +99,6 @@
         when(mLocaleConfig.getStatus()).thenReturn(LocaleConfig.STATUS_SUCCESS);
         when(mLocaleConfig.getSupportedLocales()).thenReturn(LocaleList.forLanguageTags("en-US"));
         ReflectionHelpers.setStaticField(AppLocaleUtil.class, "sLocaleConfig", mLocaleConfig);
-        mFeatureFactory = FakeFeatureFactory.setupForTest();
     }
 
     @After
@@ -216,37 +210,6 @@
         assertThat(controller.get().isFinishing()).isTrue();
     }
 
-    @Test
-    public void onLocaleSelected_logLocaleSource() {
-        ActivityController<TestAppLocalePickerActivity> controller =
-                initActivityController(true);
-        LocaleList.setDefault(LocaleList.forLanguageTags("ja-JP,en-CA,en-US"));
-        Locale locale = new Locale("en", "US");
-        when(mLocaleInfo.getLocale()).thenReturn(locale);
-        when(mLocaleInfo.isSystemLocale()).thenReturn(false);
-        when(mLocaleInfo.isSuggested()).thenReturn(true);
-        when(mLocaleInfo.isSuggestionOfType(LocaleStore.LocaleInfo.SUGGESTION_TYPE_SIM)).thenReturn(
-                true);
-        when(mLocaleInfo.isSuggestionOfType(
-                LocaleStore.LocaleInfo.SUGGESTION_TYPE_SYSTEM_AVAILABLE_LANGUAGE)).thenReturn(
-                true);
-        when(mLocaleInfo.isSuggestionOfType(
-                LocaleStore.LocaleInfo.SUGGESTION_TYPE_OTHER_APP_LANGUAGE)).thenReturn(
-                true);
-        when(mLocaleInfo.isSuggestionOfType(
-                LocaleStore.LocaleInfo.SUGGESTION_TYPE_IME_LANGUAGE)).thenReturn(
-                true);
-
-        controller.create();
-        AppLocalePickerActivity mActivity = controller.get();
-        mActivity.onLocaleSelected(mLocaleInfo);
-
-        int localeSource = 15; // SIM_LOCALE | SYSTEM_LOCALE |IME_LOCALE|APP_LOCALE
-        verify(mFeatureFactory.metricsFeatureProvider).action(
-                any(), eq(SettingsEnums.ACTION_CHANGE_APP_LANGUAGE_FROM_SUGGESTED),
-                eq(localeSource));
-    }
-
     private ActivityController<TestAppLocalePickerActivity> initActivityController(
             boolean hasPackageName) {
         Intent data = new Intent();
diff --git a/tests/unit/src/com/android/settings/localepicker/LocaleHelperPreferenceControllerTest.java b/tests/unit/src/com/android/settings/localepicker/LocaleHelperPreferenceControllerTest.java
index 5ac367e..31b8e79 100644
--- a/tests/unit/src/com/android/settings/localepicker/LocaleHelperPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/localepicker/LocaleHelperPreferenceControllerTest.java
@@ -19,14 +19,12 @@
 import static org.mockito.Mockito.anyString;
 import static org.mockito.Mockito.verify;
 
-import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.os.Looper;
 
 import androidx.test.core.app.ApplicationProvider;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 
-import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settingslib.widget.FooterPreference;
 
 import org.junit.Before;
@@ -39,7 +37,6 @@
 public class LocaleHelperPreferenceControllerTest {
     private Context mContext;
     private LocaleHelperPreferenceController mLocaleHelperPreferenceController;
-    private FakeFeatureFactory mFeatureFactory;
 
     @Mock
     private FooterPreference mMockFooterPreference;
@@ -52,16 +49,11 @@
         }
         mContext = ApplicationProvider.getApplicationContext();
         mLocaleHelperPreferenceController = new LocaleHelperPreferenceController(mContext);
-        mFeatureFactory = FakeFeatureFactory.setupForTest();
     }
 
     @Test
     public void updateFooterPreference_setFooterPreference_hasClickAction() {
         mLocaleHelperPreferenceController.updateFooterPreference(mMockFooterPreference);
         verify(mMockFooterPreference).setLearnMoreText(anyString());
-        mMockFooterPreference.setLearnMoreAction(v -> {
-            verify(mFeatureFactory.metricsFeatureProvider).action(
-                    mContext, SettingsEnums.ACTION_LANGUAGES_LEARN_MORE);
-        });
     }
 }