Loading src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderController.java +5 −3 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import android.graphics.drawable.Drawable; import android.net.Uri; import android.os.Handler; import android.os.Looper; import android.provider.DeviceConfig; import android.provider.MediaStore; import android.util.Log; import android.view.View; Loading @@ -38,6 +39,7 @@ import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.core.BasePreferenceController; import com.android.settings.core.SettingsUIDeviceConfig; import com.android.settings.fuelgauge.BatteryMeterView; import com.android.settingslib.bluetooth.BluetoothUtils; import com.android.settingslib.bluetooth.CachedBluetoothDevice; Loading @@ -64,7 +66,6 @@ public class AdvancedBluetoothDetailsHeaderController extends BasePreferenceCont @VisibleForTesting final Map<String, Bitmap> mIconCache; private CachedBluetoothDevice mCachedDevice; private BluetoothDevice mBluetoothDevice; @VisibleForTesting BluetoothAdapter mBluetoothAdapter; @VisibleForTesting Loading @@ -88,9 +89,11 @@ public class AdvancedBluetoothDetailsHeaderController extends BasePreferenceCont @Override public int getAvailabilityStatus() { final boolean advancedEnabled = DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_SETTINGS_UI, SettingsUIDeviceConfig.BT_ADVANCED_HEADER_ENABLED, true); final boolean untetheredHeadset = BluetoothUtils.getBooleanMetaData( mCachedDevice.getDevice(), BluetoothDevice.METADATA_IS_UNTETHERED_HEADSET); return untetheredHeadset ? AVAILABLE : CONDITIONALLY_UNAVAILABLE; return advancedEnabled && untetheredHeadset ? AVAILABLE : CONDITIONALLY_UNAVAILABLE; } @Override Loading Loading @@ -138,7 +141,6 @@ public class AdvancedBluetoothDetailsHeaderController extends BasePreferenceCont public void init(CachedBluetoothDevice cachedBluetoothDevice) { mCachedDevice = cachedBluetoothDevice; mBluetoothDevice = mCachedDevice.getDevice(); } @VisibleForTesting Loading src/com/android/settings/bluetooth/BluetoothDetailsHeaderController.java +7 −2 Original line number Diff line number Diff line Loading @@ -19,12 +19,14 @@ package com.android.settings.bluetooth; import android.bluetooth.BluetoothDevice; import android.content.Context; import android.graphics.drawable.Drawable; import android.provider.DeviceConfig; import android.util.Pair; import androidx.preference.PreferenceFragmentCompat; import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.core.SettingsUIDeviceConfig; import com.android.settings.widget.EntityHeaderController; import com.android.settingslib.bluetooth.BluetoothUtils; import com.android.settingslib.bluetooth.CachedBluetoothDevice; Loading Loading @@ -53,7 +55,10 @@ public class BluetoothDetailsHeaderController extends BluetoothDetailsController @Override public boolean isAvailable() { return !BluetoothUtils.getBooleanMetaData(mCachedDevice.getDevice(), final boolean advancedEnabled = DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_SETTINGS_UI, SettingsUIDeviceConfig.BT_ADVANCED_HEADER_ENABLED, true); return !advancedEnabled || !BluetoothUtils.getBooleanMetaData(mCachedDevice.getDevice(), BluetoothDevice.METADATA_IS_UNTETHERED_HEADSET); } Loading src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java +5 −5 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ import android.app.settings.SettingsEnums; import android.bluetooth.BluetoothDevice; import android.content.Context; import android.os.Bundle; import android.util.FeatureFlagUtils; import android.provider.DeviceConfig; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; Loading @@ -30,7 +30,7 @@ import android.view.MenuItem; import androidx.annotation.VisibleForTesting; import com.android.settings.R; import com.android.settings.core.FeatureFlags; import com.android.settings.core.SettingsUIDeviceConfig; import com.android.settings.dashboard.RestrictedDashboardFragment; import com.android.settings.overlay.FeatureFactory; import com.android.settings.slices.BlockingSlicePrefController; Loading Loading @@ -117,10 +117,10 @@ public class BluetoothDeviceDetailsFragment extends RestrictedDashboardFragment final BluetoothFeatureProvider featureProvider = FeatureFactory.getFactory( context).getBluetoothFeatureProvider(context); final boolean injectionEnabled = FeatureFlagUtils.isEnabled(context, FeatureFlags.SLICE_INJECTION); final boolean sliceEnabled = DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_SETTINGS_UI, SettingsUIDeviceConfig.BT_SLICE_SETTINGS_ENABLED, true); use(BlockingSlicePrefController.class).setSliceUri(injectionEnabled use(BlockingSlicePrefController.class).setSliceUri(sliceEnabled ? featureProvider.getBluetoothDeviceSettingsUri(mCachedDevice.getDevice()) : null); } Loading src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java +7 −2 Original line number Diff line number Diff line Loading @@ -18,11 +18,13 @@ package com.android.settings.connecteddevice; import android.app.settings.SettingsEnums; import android.content.Context; import android.net.Uri; import android.provider.DeviceConfig; import android.provider.SearchIndexableResource; import androidx.annotation.VisibleForTesting; import com.android.settings.R; import com.android.settings.core.SettingsUIDeviceConfig; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.slices.SlicePreferenceController; Loading Loading @@ -86,12 +88,15 @@ public class ConnectedDeviceDashboardFragment extends DashboardFragment { @Override public void onAttach(Context context) { super.onAttach(context); final boolean nearbyEnabled = DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_SETTINGS_UI, SettingsUIDeviceConfig.BT_NEAR_BY_SUGGESTION_ENABLED, true); use(AvailableMediaDeviceGroupController.class).init(this); use(ConnectedDeviceGroupController.class).init(this); use(PreviouslyConnectedDevicePreferenceController.class).init(this); use(DiscoverableFooterPreferenceController.class).init(this); use(SlicePreferenceController.class).setSliceUri( Uri.parse(getString(R.string.config_nearby_devices_slice_uri))); use(SlicePreferenceController.class).setSliceUri(nearbyEnabled ? Uri.parse(getString(R.string.config_nearby_devices_slice_uri)) : null); } /** Loading src/com/android/settings/core/SettingsUIDeviceConfig.java 0 → 100644 +36 −0 Original line number Diff line number Diff line /* * Copyright (C) 2019 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.settings.core; /** * Class to store keys for settings related features, which comes from * {@link android.provider.DeviceConfig} */ public class SettingsUIDeviceConfig { /** * {@code true} if slice settings is enabled in BT device detail page */ public static final String BT_SLICE_SETTINGS_ENABLED = "bt_slice_settings_enabled"; /** * {@code true} if advanced header is enabled in BT device detail page */ public static final String BT_ADVANCED_HEADER_ENABLED = "bt_advanced_header_enabled"; /** * {@code true} if near by device suggestion is enabled in connected device page */ public static final String BT_NEAR_BY_SUGGESTION_ENABLED = "bt_near_by_suggestion_enabled"; } Loading
src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderController.java +5 −3 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import android.graphics.drawable.Drawable; import android.net.Uri; import android.os.Handler; import android.os.Looper; import android.provider.DeviceConfig; import android.provider.MediaStore; import android.util.Log; import android.view.View; Loading @@ -38,6 +39,7 @@ import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.core.BasePreferenceController; import com.android.settings.core.SettingsUIDeviceConfig; import com.android.settings.fuelgauge.BatteryMeterView; import com.android.settingslib.bluetooth.BluetoothUtils; import com.android.settingslib.bluetooth.CachedBluetoothDevice; Loading @@ -64,7 +66,6 @@ public class AdvancedBluetoothDetailsHeaderController extends BasePreferenceCont @VisibleForTesting final Map<String, Bitmap> mIconCache; private CachedBluetoothDevice mCachedDevice; private BluetoothDevice mBluetoothDevice; @VisibleForTesting BluetoothAdapter mBluetoothAdapter; @VisibleForTesting Loading @@ -88,9 +89,11 @@ public class AdvancedBluetoothDetailsHeaderController extends BasePreferenceCont @Override public int getAvailabilityStatus() { final boolean advancedEnabled = DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_SETTINGS_UI, SettingsUIDeviceConfig.BT_ADVANCED_HEADER_ENABLED, true); final boolean untetheredHeadset = BluetoothUtils.getBooleanMetaData( mCachedDevice.getDevice(), BluetoothDevice.METADATA_IS_UNTETHERED_HEADSET); return untetheredHeadset ? AVAILABLE : CONDITIONALLY_UNAVAILABLE; return advancedEnabled && untetheredHeadset ? AVAILABLE : CONDITIONALLY_UNAVAILABLE; } @Override Loading Loading @@ -138,7 +141,6 @@ public class AdvancedBluetoothDetailsHeaderController extends BasePreferenceCont public void init(CachedBluetoothDevice cachedBluetoothDevice) { mCachedDevice = cachedBluetoothDevice; mBluetoothDevice = mCachedDevice.getDevice(); } @VisibleForTesting Loading
src/com/android/settings/bluetooth/BluetoothDetailsHeaderController.java +7 −2 Original line number Diff line number Diff line Loading @@ -19,12 +19,14 @@ package com.android.settings.bluetooth; import android.bluetooth.BluetoothDevice; import android.content.Context; import android.graphics.drawable.Drawable; import android.provider.DeviceConfig; import android.util.Pair; import androidx.preference.PreferenceFragmentCompat; import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.core.SettingsUIDeviceConfig; import com.android.settings.widget.EntityHeaderController; import com.android.settingslib.bluetooth.BluetoothUtils; import com.android.settingslib.bluetooth.CachedBluetoothDevice; Loading Loading @@ -53,7 +55,10 @@ public class BluetoothDetailsHeaderController extends BluetoothDetailsController @Override public boolean isAvailable() { return !BluetoothUtils.getBooleanMetaData(mCachedDevice.getDevice(), final boolean advancedEnabled = DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_SETTINGS_UI, SettingsUIDeviceConfig.BT_ADVANCED_HEADER_ENABLED, true); return !advancedEnabled || !BluetoothUtils.getBooleanMetaData(mCachedDevice.getDevice(), BluetoothDevice.METADATA_IS_UNTETHERED_HEADSET); } Loading
src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java +5 −5 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ import android.app.settings.SettingsEnums; import android.bluetooth.BluetoothDevice; import android.content.Context; import android.os.Bundle; import android.util.FeatureFlagUtils; import android.provider.DeviceConfig; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; Loading @@ -30,7 +30,7 @@ import android.view.MenuItem; import androidx.annotation.VisibleForTesting; import com.android.settings.R; import com.android.settings.core.FeatureFlags; import com.android.settings.core.SettingsUIDeviceConfig; import com.android.settings.dashboard.RestrictedDashboardFragment; import com.android.settings.overlay.FeatureFactory; import com.android.settings.slices.BlockingSlicePrefController; Loading Loading @@ -117,10 +117,10 @@ public class BluetoothDeviceDetailsFragment extends RestrictedDashboardFragment final BluetoothFeatureProvider featureProvider = FeatureFactory.getFactory( context).getBluetoothFeatureProvider(context); final boolean injectionEnabled = FeatureFlagUtils.isEnabled(context, FeatureFlags.SLICE_INJECTION); final boolean sliceEnabled = DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_SETTINGS_UI, SettingsUIDeviceConfig.BT_SLICE_SETTINGS_ENABLED, true); use(BlockingSlicePrefController.class).setSliceUri(injectionEnabled use(BlockingSlicePrefController.class).setSliceUri(sliceEnabled ? featureProvider.getBluetoothDeviceSettingsUri(mCachedDevice.getDevice()) : null); } Loading
src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java +7 −2 Original line number Diff line number Diff line Loading @@ -18,11 +18,13 @@ package com.android.settings.connecteddevice; import android.app.settings.SettingsEnums; import android.content.Context; import android.net.Uri; import android.provider.DeviceConfig; import android.provider.SearchIndexableResource; import androidx.annotation.VisibleForTesting; import com.android.settings.R; import com.android.settings.core.SettingsUIDeviceConfig; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.slices.SlicePreferenceController; Loading Loading @@ -86,12 +88,15 @@ public class ConnectedDeviceDashboardFragment extends DashboardFragment { @Override public void onAttach(Context context) { super.onAttach(context); final boolean nearbyEnabled = DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_SETTINGS_UI, SettingsUIDeviceConfig.BT_NEAR_BY_SUGGESTION_ENABLED, true); use(AvailableMediaDeviceGroupController.class).init(this); use(ConnectedDeviceGroupController.class).init(this); use(PreviouslyConnectedDevicePreferenceController.class).init(this); use(DiscoverableFooterPreferenceController.class).init(this); use(SlicePreferenceController.class).setSliceUri( Uri.parse(getString(R.string.config_nearby_devices_slice_uri))); use(SlicePreferenceController.class).setSliceUri(nearbyEnabled ? Uri.parse(getString(R.string.config_nearby_devices_slice_uri)) : null); } /** Loading
src/com/android/settings/core/SettingsUIDeviceConfig.java 0 → 100644 +36 −0 Original line number Diff line number Diff line /* * Copyright (C) 2019 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.settings.core; /** * Class to store keys for settings related features, which comes from * {@link android.provider.DeviceConfig} */ public class SettingsUIDeviceConfig { /** * {@code true} if slice settings is enabled in BT device detail page */ public static final String BT_SLICE_SETTINGS_ENABLED = "bt_slice_settings_enabled"; /** * {@code true} if advanced header is enabled in BT device detail page */ public static final String BT_ADVANCED_HEADER_ENABLED = "bt_advanced_header_enabled"; /** * {@code true} if near by device suggestion is enabled in connected device page */ public static final String BT_NEAR_BY_SUGGESTION_ENABLED = "bt_near_by_suggestion_enabled"; }