Allow developer options for multiple users

Developer options will now be enabled/disabled globally for all admin
users. This means when one admin user enables/disables developer
options, it will have the same status for all other admin users.

Bug: 155680883
Test: manual
Change-Id: Ic1431232c6e72800ab79c2274f1c75a1433c7552
diff --git a/src/com/android/car/settings/system/DeveloperOptionsEntryPreferenceController.java b/src/com/android/car/settings/system/DeveloperOptionsEntryPreferenceController.java
index ef112ec..07bdf46 100644
--- a/src/com/android/car/settings/system/DeveloperOptionsEntryPreferenceController.java
+++ b/src/com/android/car/settings/system/DeveloperOptionsEntryPreferenceController.java
@@ -18,18 +18,19 @@
 
 import android.car.drivingstate.CarUxRestrictions;
 import android.content.Context;
-import android.os.Build;
 import android.os.UserManager;
 
 import androidx.preference.Preference;
 
 import com.android.car.settings.common.FragmentController;
+import com.android.car.settings.common.Logger;
 import com.android.car.settings.common.PreferenceController;
 import com.android.car.settings.development.DevelopmentSettingsUtil;
 
 /** Controls the visibility of the developer options setting. */
 public class DeveloperOptionsEntryPreferenceController extends PreferenceController<Preference> {
 
+    private static final Logger LOG = new Logger(DeveloperOptionsEntryPreferenceController.class);
     private UserManager mUserManager;
 
     public DeveloperOptionsEntryPreferenceController(Context context, String preferenceKey,
@@ -51,17 +52,16 @@
 
     @Override
     protected boolean handlePreferenceClicked(Preference preference) {
-        // Needed to allow developer options to be enabled by default on eng builds
-        // On first launch, the developer options module is disabled while the setting is enabled,
-        // so we need to enable the module
+        // We need to make sure the developer options module is enabled for the following reasons:
+        //  - To enable developer options by default on eng builds
+        //  - To enable developer options for all admin users when any admin user enables it
+        // This is because on first launch per user, the developer options module may be disabled
+        // while the setting is enabled, so we need to enable the module
         if (!DevelopmentSettingsUtil.isDeveloperOptionsModuleEnabled(getContext())) {
-            if (Build.IS_ENG) {
-                DevelopmentSettingsUtil.setDevelopmentSettingsEnabled(getContext(), /* enable= */
-                        true);
-            } else {
-                throw new IllegalStateException("Inconsistent state: developer options enabled, but"
-                        + " developer options module disabled.");
-            }
+            LOG.i("Inconsistent state: developer options enabled, but developer options module "
+                    + "disabled. Enabling module...");
+            DevelopmentSettingsUtil.setDevelopmentSettingsEnabled(getContext(), /* enable= */
+                    true);
         }
         getContext().startActivity(preference.getIntent());
         return true;