diff --git a/src/com/android/settings/bluetooth/BluetoothSliceBuilder.java b/src/com/android/settings/bluetooth/BluetoothSliceBuilder.java index f4060d62dfd..2a854ec26d4 100644 --- a/src/com/android/settings/bluetooth/BluetoothSliceBuilder.java +++ b/src/com/android/settings/bluetooth/BluetoothSliceBuilder.java @@ -25,7 +25,6 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.net.Uri; -import android.provider.SettingsSlicesContract; import android.util.Log; import androidx.core.graphics.drawable.IconCompat; @@ -37,6 +36,7 @@ import androidx.slice.builders.SliceAction; import com.android.settings.R; import com.android.settings.SubSettings; import com.android.settings.connecteddevice.BluetoothDashboardFragment; +import com.android.settings.contract.SettingsContractKt; import com.android.settings.network.SatelliteRepository; import com.android.settings.slices.CustomSliceRegistry; import com.android.settings.slices.SliceBroadcastReceiver; @@ -118,7 +118,7 @@ public class BluetoothSliceBuilder { public static Intent getIntent(Context context) { final String screenTitle = context.getText(R.string.bluetooth_settings_title).toString(); final Uri contentUri = new Uri.Builder().appendPath( - SettingsSlicesContract.KEY_BLUETOOTH).build(); + SettingsContractKt.KEY_BLUETOOTH).build(); return SliceBuilderUtils.buildSearchResultPageIntent(context, BluetoothDashboardFragment.class.getName(), null /* key */, screenTitle, SettingsEnums.SETTINGS_CONNECTED_DEVICE_CATEGORY, diff --git a/src/com/android/settings/contract/SettingsContract.kt b/src/com/android/settings/contract/SettingsContract.kt new file mode 100644 index 00000000000..8191948d4fa --- /dev/null +++ b/src/com/android/settings/contract/SettingsContract.kt @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2025 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.contract + +import android.provider.SettingsSlicesContract + +/** Contract key for the "Airplane Mode" setting. */ +const val KEY_AIRPLANE_MODE = SettingsSlicesContract.KEY_AIRPLANE_MODE + +/** Contract key for the "Battery Saver" setting. */ +const val KEY_BATTERY_SAVER = SettingsSlicesContract.KEY_BATTERY_SAVER + +/** Contract key for the "Bluetooth" setting. */ +const val KEY_BLUETOOTH = SettingsSlicesContract.KEY_BLUETOOTH + +/** Contract key for the "Location" setting. */ +const val KEY_LOCATION = SettingsSlicesContract.KEY_LOCATION + +/** Contract key for the "Wi-fi" setting. */ +const val KEY_WIFI = SettingsSlicesContract.KEY_WIFI diff --git a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java index a8720e50d2c..dc7ef741fe6 100644 --- a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java +++ b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java @@ -29,6 +29,7 @@ import android.provider.SettingsSlicesContract; import androidx.preference.PreferenceScreen; import com.android.settings.R; +import com.android.settings.contract.SettingsContractKt; import com.android.settings.core.TogglePreferenceController; import com.android.settings.fuelgauge.BatterySaverReceiver; import com.android.settingslib.core.lifecycle.LifecycleObserver; @@ -73,7 +74,7 @@ public class BatterySaverButtonPreferenceController extends TogglePreferenceCont .scheme(ContentResolver.SCHEME_CONTENT) .authority(SettingsSlicesContract.AUTHORITY) .appendPath(SettingsSlicesContract.PATH_SETTING_ACTION) - .appendPath(SettingsSlicesContract.KEY_BATTERY_SAVER) + .appendPath(SettingsContractKt.KEY_BATTERY_SAVER) .build(); } diff --git a/src/com/android/settings/location/LocationSlice.java b/src/com/android/settings/location/LocationSlice.java index 291e5e455e8..7b56d81ad7b 100644 --- a/src/com/android/settings/location/LocationSlice.java +++ b/src/com/android/settings/location/LocationSlice.java @@ -17,10 +17,10 @@ package com.android.settings.location; -import static android.provider.SettingsSlicesContract.KEY_LOCATION; - import static androidx.slice.builders.ListBuilder.ICON_IMAGE; +import static com.android.settings.contract.SettingsContractKt.KEY_LOCATION; + import android.annotation.ColorInt; import android.app.PendingIntent; import android.app.settings.SettingsEnums; diff --git a/src/com/android/settings/network/AirplaneModePreferenceController.java b/src/com/android/settings/network/AirplaneModePreferenceController.java index ca8595f7781..d5ad622e2be 100644 --- a/src/com/android/settings/network/AirplaneModePreferenceController.java +++ b/src/com/android/settings/network/AirplaneModePreferenceController.java @@ -37,6 +37,7 @@ import androidx.preference.TwoStatePreference; import com.android.settings.AirplaneModeEnabler; import com.android.settings.R; import com.android.settings.Utils; +import com.android.settings.contract.SettingsContractKt; import com.android.settings.core.TogglePreferenceController; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnDestroy; @@ -64,7 +65,7 @@ public class AirplaneModePreferenceController extends TogglePreferenceController .scheme(ContentResolver.SCHEME_CONTENT) .authority(SettingsSlicesContract.AUTHORITY) .appendPath(SettingsSlicesContract.PATH_SETTING_ACTION) - .appendPath(SettingsSlicesContract.KEY_AIRPLANE_MODE) + .appendPath(SettingsContractKt.KEY_AIRPLANE_MODE) .build(); private Fragment mFragment; diff --git a/src/com/android/settings/slices/CustomSliceRegistry.java b/src/com/android/settings/slices/CustomSliceRegistry.java index 8f301066e4a..4e8d312e544 100644 --- a/src/com/android/settings/slices/CustomSliceRegistry.java +++ b/src/com/android/settings/slices/CustomSliceRegistry.java @@ -16,9 +16,6 @@ package com.android.settings.slices; -import static android.provider.SettingsSlicesContract.KEY_LOCATION; -import static android.provider.SettingsSlicesContract.KEY_WIFI; - import android.content.ContentResolver; import android.net.Uri; import android.provider.SettingsSlicesContract; @@ -26,6 +23,7 @@ import android.util.ArrayMap; import androidx.annotation.VisibleForTesting; +import com.android.settings.contract.SettingsContractKt; import com.android.settings.display.AlwaysOnDisplaySlice; import com.android.settings.display.ScreenTimeoutPreferenceController; import com.android.settings.flashlight.FlashlightSlice; @@ -68,7 +66,7 @@ public class CustomSliceRegistry { .scheme(ContentResolver.SCHEME_CONTENT) .authority(SettingsSlicesContract.AUTHORITY) .appendPath(SettingsSlicesContract.PATH_SETTING_ACTION) - .appendPath(SettingsSlicesContract.KEY_BLUETOOTH) + .appendPath(SettingsContractKt.KEY_BLUETOOTH) .build(); /** @@ -115,7 +113,7 @@ public class CustomSliceRegistry { .scheme(ContentResolver.SCHEME_CONTENT) .authority(SettingsSlicesContract.AUTHORITY) .appendPath(SettingsSlicesContract.PATH_SETTING_ACTION) - .appendPath(KEY_LOCATION) + .appendPath(SettingsContractKt.KEY_LOCATION) .build(); /** * Backing Uri for Low storage Slice. @@ -240,7 +238,7 @@ public class CustomSliceRegistry { .scheme(ContentResolver.SCHEME_CONTENT) .authority(SettingsSlicesContract.AUTHORITY) .appendPath(SettingsSlicesContract.PATH_SETTING_ACTION) - .appendPath(KEY_WIFI) + .appendPath(SettingsContractKt.KEY_WIFI) .build(); /** diff --git a/src/com/android/settings/wifi/slice/WifiSlice.java b/src/com/android/settings/wifi/slice/WifiSlice.java index 3bb50d35817..03401988008 100644 --- a/src/com/android/settings/wifi/slice/WifiSlice.java +++ b/src/com/android/settings/wifi/slice/WifiSlice.java @@ -17,8 +17,8 @@ package com.android.settings.wifi.slice; import static android.app.slice.Slice.EXTRA_TOGGLE_STATE; -import static android.provider.SettingsSlicesContract.KEY_WIFI; +import static com.android.settings.contract.SettingsContractKt.KEY_WIFI; import static com.android.settings.slices.CustomSliceRegistry.WIFI_SLICE_URI; import static com.android.settingslib.wifi.WifiUtils.getHotspotIconResource; diff --git a/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java b/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java index edb310e7800..ed2359a1df2 100644 --- a/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java +++ b/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java @@ -53,6 +53,7 @@ import androidx.slice.SliceProvider; import androidx.slice.widget.SliceLiveData; import com.android.settings.Utils; +import com.android.settings.contract.SettingsContractKt; import com.android.settings.testutils.DatabaseTestUtils; import com.android.settings.testutils.FakeToggleController; import com.android.settings.testutils.shadow.ShadowBluetoothAdapter; @@ -626,7 +627,7 @@ public class SettingsSliceProviderTest { .scheme(ContentResolver.SCHEME_CONTENT) .authority(SettingsSlicesContract.AUTHORITY) .appendPath(SettingsSlicesContract.PATH_SETTING_ACTION) - .appendPath(SettingsSlicesContract.KEY_LOCATION) + .appendPath(SettingsContractKt.KEY_LOCATION) .build(); mProvider.onSlicePinned(uri);