Merge "[Settings] Add the repository for room database"
diff --git a/src/com/android/settings/datetime/DatePreferenceController.java b/src/com/android/settings/datetime/DatePreferenceController.java
index 50feca1..eef5526 100644
--- a/src/com/android/settings/datetime/DatePreferenceController.java
+++ b/src/com/android/settings/datetime/DatePreferenceController.java
@@ -154,7 +154,7 @@
     public boolean isEnabled() {
         TimeCapabilities timeZoneCapabilities =
                 mTimeManager.getTimeCapabilitiesAndConfig().getCapabilities();
-        int suggestManualTimeCapability = timeZoneCapabilities.getSuggestManualTimeCapability();
+        int suggestManualTimeCapability = timeZoneCapabilities.getSetManualTimeCapability();
         return suggestManualTimeCapability == CAPABILITY_POSSESSED;
     }
 }
diff --git a/src/com/android/settings/datetime/TimeZonePreferenceController.java b/src/com/android/settings/datetime/TimeZonePreferenceController.java
index a26c7bf..cb9c38a 100644
--- a/src/com/android/settings/datetime/TimeZonePreferenceController.java
+++ b/src/com/android/settings/datetime/TimeZonePreferenceController.java
@@ -77,7 +77,7 @@
         TimeZoneCapabilities timeZoneCapabilities =
                 mTimeManager.getTimeZoneCapabilitiesAndConfig().getCapabilities();
         int suggestManualTimeZoneCapability =
-                timeZoneCapabilities.getSuggestManualTimeZoneCapability();
+                timeZoneCapabilities.getSetManualTimeZoneCapability();
         return suggestManualTimeZoneCapability == CAPABILITY_POSSESSED;
     }
 }
diff --git a/src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceController.java b/src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceController.java
index 793b7fb..e47048a 100644
--- a/src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceController.java
+++ b/src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceController.java
@@ -102,7 +102,7 @@
         final boolean offloadDisabled =
                 SystemProperties.getBoolean(A2DP_OFFLOAD_DISABLED_PROPERTY, false);
         SystemProperties.set(A2DP_OFFLOAD_DISABLED_PROPERTY, Boolean.toString(!offloadDisabled));
-        if (offloadDisabled) {
+        if (!offloadDisabled) {
             SystemProperties.set(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY,
                     Boolean.toString(!offloadDisabled));
         }
diff --git a/src/com/android/settings/development/BluetoothLeAudioHwOffloadPreferenceController.java b/src/com/android/settings/development/BluetoothLeAudioHwOffloadPreferenceController.java
index 751ddce..904f828 100644
--- a/src/com/android/settings/development/BluetoothLeAudioHwOffloadPreferenceController.java
+++ b/src/com/android/settings/development/BluetoothLeAudioHwOffloadPreferenceController.java
@@ -16,7 +16,8 @@
 
 package com.android.settings.development;
 
-import static com.android.settings.development.BluetoothA2dpHwOffloadPreferenceController.A2DP_OFFLOAD_SUPPORTED_PROPERTY;
+import static com.android.settings.development.BluetoothA2dpHwOffloadPreferenceController.A2DP_OFFLOAD_DISABLED_PROPERTY;
+
 
 import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothManager;
@@ -79,11 +80,11 @@
 
         final boolean leAudioEnabled =
                 (mBluetoothAdapter.isLeAudioSupported() == BluetoothStatusCodes.FEATURE_SUPPORTED);
-
-        final boolean offloadSupported =
-                SystemProperties.getBoolean(A2DP_OFFLOAD_SUPPORTED_PROPERTY, false)
-                && SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_SUPPORTED_PROPERTY, false);
-        if (leAudioEnabled && offloadSupported) {
+        final boolean leAudioOffloadSupported =
+                SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_SUPPORTED_PROPERTY, false);
+        final boolean a2dpOffloadDisabled =
+                SystemProperties.getBoolean(A2DP_OFFLOAD_DISABLED_PROPERTY, false);
+        if (leAudioEnabled && leAudioOffloadSupported && !a2dpOffloadDisabled) {
             final boolean offloadDisabled =
                     SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, true);
             ((SwitchPreference) mPreference).setChecked(offloadDisabled);
@@ -102,10 +103,11 @@
 
         final boolean leAudioEnabled =
                 (mBluetoothAdapter.isLeAudioSupported() == BluetoothStatusCodes.FEATURE_SUPPORTED);
-        final boolean offloadSupported =
-                SystemProperties.getBoolean(A2DP_OFFLOAD_SUPPORTED_PROPERTY, false)
-                && SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_SUPPORTED_PROPERTY, false);
-        if (leAudioEnabled && offloadSupported) {
+        final boolean leAudioOffloadSupported =
+                SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_SUPPORTED_PROPERTY, false);
+        final boolean a2dpOffloadDisabled =
+                SystemProperties.getBoolean(A2DP_OFFLOAD_DISABLED_PROPERTY, false);
+        if (leAudioEnabled && leAudioOffloadSupported && !a2dpOffloadDisabled) {
             ((SwitchPreference) mPreference).setChecked(true);
             SystemProperties.set(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, "true");
         } else {
@@ -118,7 +120,7 @@
      */
     public boolean isDefaultValue() {
         final boolean offloadSupported =
-                SystemProperties.getBoolean(A2DP_OFFLOAD_SUPPORTED_PROPERTY, false)
+                !SystemProperties.getBoolean(A2DP_OFFLOAD_DISABLED_PROPERTY, false)
                 && SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_SUPPORTED_PROPERTY, false);
         final boolean offloadDisabled =
                     SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, false);
@@ -133,11 +135,11 @@
             return;
         }
 
-        final boolean offloadDisabled =
+        final boolean leaudioOffloadDisabled =
                 SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY,
                 false);
         SystemProperties.set(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY,
-                Boolean.toString(!offloadDisabled));
+                Boolean.toString(!leaudioOffloadDisabled));
     }
 
     /**
diff --git a/tests/robotests/src/com/android/settings/datetime/AutoTimePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/AutoTimePreferenceControllerTest.java
index 20fb871..022f5fe 100644
--- a/tests/robotests/src/com/android/settings/datetime/AutoTimePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/datetime/AutoTimePreferenceControllerTest.java
@@ -158,7 +158,7 @@
                         : Capabilities.CAPABILITY_NOT_SUPPORTED;
         TimeCapabilities capabilities = new TimeCapabilities.Builder(UserHandle.SYSTEM)
                 .setConfigureAutoDetectionEnabledCapability(configureAutoDetectionEnabledCapability)
-                .setSuggestManualTimeCapability(Capabilities.CAPABILITY_POSSESSED)
+                .setSetManualTimeCapability(Capabilities.CAPABILITY_POSSESSED)
                 .build();
         TimeConfiguration config = new TimeConfiguration.Builder()
                 .setAutoDetectionEnabled(autoEnabled)
diff --git a/tests/robotests/src/com/android/settings/datetime/AutoTimeZonePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/AutoTimeZonePreferenceControllerTest.java
index 45963a6..e6a44a8 100644
--- a/tests/robotests/src/com/android/settings/datetime/AutoTimeZonePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/datetime/AutoTimeZonePreferenceControllerTest.java
@@ -221,7 +221,7 @@
         TimeZoneCapabilities capabilities = new TimeZoneCapabilities.Builder(UserHandle.SYSTEM)
                 .setConfigureAutoDetectionEnabledCapability(configureAutoDetectionEnabledCapability)
                 .setConfigureGeoDetectionEnabledCapability(Capabilities.CAPABILITY_NOT_SUPPORTED)
-                .setSuggestManualTimeZoneCapability(Capabilities.CAPABILITY_POSSESSED)
+                .setSetManualTimeZoneCapability(Capabilities.CAPABILITY_POSSESSED)
                 .build();
         TimeZoneConfiguration config = new TimeZoneConfiguration.Builder()
                 .setAutoDetectionEnabled(autoEnabled)
diff --git a/tests/robotests/src/com/android/settings/datetime/DatePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/DatePreferenceControllerTest.java
index c7357ad..76ab289 100644
--- a/tests/robotests/src/com/android/settings/datetime/DatePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/datetime/DatePreferenceControllerTest.java
@@ -147,7 +147,7 @@
                 : Capabilities.CAPABILITY_NOT_SUPPORTED;
         TimeCapabilities capabilities = new TimeCapabilities.Builder(UserHandle.SYSTEM)
                 .setConfigureAutoDetectionEnabledCapability(Capabilities.CAPABILITY_POSSESSED)
-                .setSuggestManualTimeCapability(suggestManualCapability)
+                .setSetManualTimeCapability(suggestManualCapability)
                 .build();
         TimeConfiguration config = new TimeConfiguration.Builder()
                 .setAutoDetectionEnabled(!suggestManualAllowed)
diff --git a/tests/robotests/src/com/android/settings/datetime/LocationTimeZoneDetectionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/LocationTimeZoneDetectionPreferenceControllerTest.java
index fc62ac8..32d27a9 100644
--- a/tests/robotests/src/com/android/settings/datetime/LocationTimeZoneDetectionPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/datetime/LocationTimeZoneDetectionPreferenceControllerTest.java
@@ -176,7 +176,7 @@
         return new TimeZoneCapabilities.Builder(arbitraryUserHandle)
                 .setConfigureAutoDetectionEnabledCapability(CAPABILITY_POSSESSED)
                 .setConfigureGeoDetectionEnabledCapability(geoDetectionCapability)
-                .setSuggestManualTimeZoneCapability(CAPABILITY_NOT_APPLICABLE)
+                .setSetManualTimeZoneCapability(CAPABILITY_NOT_APPLICABLE)
                 .build();
     }
 
diff --git a/tests/robotests/src/com/android/settings/datetime/TimeZonePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/TimeZonePreferenceControllerTest.java
index 6767b4e..d07d68b 100644
--- a/tests/robotests/src/com/android/settings/datetime/TimeZonePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/datetime/TimeZonePreferenceControllerTest.java
@@ -102,7 +102,7 @@
         TimeZoneCapabilities capabilities = new TimeZoneCapabilities.Builder(UserHandle.SYSTEM)
                 .setConfigureAutoDetectionEnabledCapability(Capabilities.CAPABILITY_POSSESSED)
                 .setConfigureGeoDetectionEnabledCapability(Capabilities.CAPABILITY_NOT_SUPPORTED)
-                .setSuggestManualTimeZoneCapability(suggestManualCapability)
+                .setSetManualTimeZoneCapability(suggestManualCapability)
                 .build();
         TimeZoneConfiguration config = new TimeZoneConfiguration.Builder()
                 .setAutoDetectionEnabled(!suggestManualAllowed)
diff --git a/tests/robotests/src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceControllerTest.java
index 660c8f1..94d6f1f 100644
--- a/tests/robotests/src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceControllerTest.java
@@ -65,18 +65,18 @@
 
     @Test
     public void onA2dpHwDialogConfirmedAsA2dpOffloadDisabled_shouldChangeProperty() {
-        SystemProperties.set(A2DP_OFFLOAD_DISABLED_PROPERTY, Boolean.toString(false));
+        SystemProperties.set(A2DP_OFFLOAD_DISABLED_PROPERTY, Boolean.toString(true));
         mController.mChanged = true;
 
         mController.onRebootDialogConfirmed();
         final boolean mode = SystemProperties.getBoolean(A2DP_OFFLOAD_DISABLED_PROPERTY, false);
-        assertThat(mode).isTrue();
+        assertThat(mode).isFalse();
     }
 
     @Test
     public void onA2dpHwDialogConfirmedAsA2dpOffloadEnabled_shouldChangeProperty() {
-        SystemProperties.set(A2DP_OFFLOAD_DISABLED_PROPERTY, Boolean.toString(true));
-        SystemProperties.set(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, Boolean.toString(true));
+        SystemProperties.set(A2DP_OFFLOAD_DISABLED_PROPERTY, Boolean.toString(false));
+        SystemProperties.set(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, Boolean.toString(false));
 
         mController.mChanged = true;
 
@@ -84,8 +84,8 @@
         final boolean a2dpMode = SystemProperties.getBoolean(A2DP_OFFLOAD_DISABLED_PROPERTY, true);
         final boolean leAudioMode = SystemProperties
                 .getBoolean(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, true);
-        assertThat(a2dpMode).isFalse();
-        assertThat(leAudioMode).isFalse();
+        assertThat(a2dpMode).isTrue();
+        assertThat(leAudioMode).isTrue();
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/development/BluetoothLeAudioHwOffloadPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/BluetoothLeAudioHwOffloadPreferenceControllerTest.java
index ec64fe3..aa05f62 100644
--- a/tests/robotests/src/com/android/settings/development/BluetoothLeAudioHwOffloadPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/BluetoothLeAudioHwOffloadPreferenceControllerTest.java
@@ -16,14 +16,21 @@
 
 package com.android.settings.development;
 
+import static android.bluetooth.BluetoothStatusCodes.FEATURE_SUPPORTED;
+
+import static com.android.settings.development.BluetoothA2dpHwOffloadPreferenceController
+        .A2DP_OFFLOAD_DISABLED_PROPERTY;
 import static com.android.settings.development.BluetoothLeAudioHwOffloadPreferenceController
         .LE_AUDIO_OFFLOAD_DISABLED_PROPERTY;
+import static com.android.settings.development.BluetoothLeAudioHwOffloadPreferenceController
+        .LE_AUDIO_OFFLOAD_SUPPORTED_PROPERTY;
 
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.when;
 
+import android.bluetooth.BluetoothAdapter;
 import android.content.Context;
 import android.os.SystemProperties;
 
@@ -45,6 +52,8 @@
     private PreferenceScreen mPreferenceScreen;
     @Mock
     private DevelopmentSettingsDashboardFragment mFragment;
+    @Mock
+    private BluetoothAdapter mBluetoothAdapter;
 
     private Context mContext;
     private SwitchPreference mPreference;
@@ -59,6 +68,9 @@
         when(mPreferenceScreen.findPreference(mController.getPreferenceKey()))
             .thenReturn(mPreference);
         mController.displayPreference(mPreferenceScreen);
+        mController.mBluetoothAdapter = mBluetoothAdapter;
+        when(mBluetoothAdapter.isLeAudioSupported())
+            .thenReturn(FEATURE_SUPPORTED);
     }
 
     @Test
@@ -91,4 +103,21 @@
         final boolean mode = SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, false);
         assertThat(mode).isFalse();
     }
+
+    @Test
+    public void asA2dpOffloadDisabled_shouldNotSwitchLeAudioOffloadStatus() {
+        SystemProperties.set(LE_AUDIO_OFFLOAD_SUPPORTED_PROPERTY, Boolean.toString(true));
+        SystemProperties.set(A2DP_OFFLOAD_DISABLED_PROPERTY, Boolean.toString(true));
+
+        SystemProperties.set(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, Boolean.toString(false));
+        mController.updateState(null);
+        boolean leAueioDisabled =
+                SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, false);
+        assertThat(leAueioDisabled).isFalse();
+
+        SystemProperties.set(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, Boolean.toString(true));
+        mController.updateState(null);
+        leAueioDisabled = SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, false);
+        assertThat(leAueioDisabled).isTrue();
+    }
 }