[Catalyst] Introduce SettingsContract file

The new file contains all contract constants for external usages (e.g.
slice, external Get/Set API). Also reuse existing constants in
SettingsSlicesContract.

NO_IFTTT=Catalyst only

Bug: 388061003
Flag: EXEMPT refactor
Test: atest
Change-Id: I449b7b6cf82e1e102f2c96a21835191605f09943
This commit is contained in:
Jacky Wang
2025-02-04 15:39:57 +08:00
parent 1ecacd8a5a
commit 2e265d4a7a
8 changed files with 49 additions and 14 deletions

View File

@@ -25,7 +25,6 @@ import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.net.Uri; import android.net.Uri;
import android.provider.SettingsSlicesContract;
import android.util.Log; import android.util.Log;
import androidx.core.graphics.drawable.IconCompat; import androidx.core.graphics.drawable.IconCompat;
@@ -37,6 +36,7 @@ import androidx.slice.builders.SliceAction;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.SubSettings; import com.android.settings.SubSettings;
import com.android.settings.connecteddevice.BluetoothDashboardFragment; import com.android.settings.connecteddevice.BluetoothDashboardFragment;
import com.android.settings.contract.SettingsContractKt;
import com.android.settings.network.SatelliteRepository; import com.android.settings.network.SatelliteRepository;
import com.android.settings.slices.CustomSliceRegistry; import com.android.settings.slices.CustomSliceRegistry;
import com.android.settings.slices.SliceBroadcastReceiver; import com.android.settings.slices.SliceBroadcastReceiver;
@@ -118,7 +118,7 @@ public class BluetoothSliceBuilder {
public static Intent getIntent(Context context) { public static Intent getIntent(Context context) {
final String screenTitle = context.getText(R.string.bluetooth_settings_title).toString(); final String screenTitle = context.getText(R.string.bluetooth_settings_title).toString();
final Uri contentUri = new Uri.Builder().appendPath( final Uri contentUri = new Uri.Builder().appendPath(
SettingsSlicesContract.KEY_BLUETOOTH).build(); SettingsContractKt.KEY_BLUETOOTH).build();
return SliceBuilderUtils.buildSearchResultPageIntent(context, return SliceBuilderUtils.buildSearchResultPageIntent(context,
BluetoothDashboardFragment.class.getName(), null /* key */, screenTitle, BluetoothDashboardFragment.class.getName(), null /* key */, screenTitle,
SettingsEnums.SETTINGS_CONNECTED_DEVICE_CATEGORY, SettingsEnums.SETTINGS_CONNECTED_DEVICE_CATEGORY,

View File

@@ -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

View File

@@ -29,6 +29,7 @@ import android.provider.SettingsSlicesContract;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.contract.SettingsContractKt;
import com.android.settings.core.TogglePreferenceController; import com.android.settings.core.TogglePreferenceController;
import com.android.settings.fuelgauge.BatterySaverReceiver; import com.android.settings.fuelgauge.BatterySaverReceiver;
import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.LifecycleObserver;
@@ -73,7 +74,7 @@ public class BatterySaverButtonPreferenceController extends TogglePreferenceCont
.scheme(ContentResolver.SCHEME_CONTENT) .scheme(ContentResolver.SCHEME_CONTENT)
.authority(SettingsSlicesContract.AUTHORITY) .authority(SettingsSlicesContract.AUTHORITY)
.appendPath(SettingsSlicesContract.PATH_SETTING_ACTION) .appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
.appendPath(SettingsSlicesContract.KEY_BATTERY_SAVER) .appendPath(SettingsContractKt.KEY_BATTERY_SAVER)
.build(); .build();
} }

View File

@@ -17,10 +17,10 @@
package com.android.settings.location; package com.android.settings.location;
import static android.provider.SettingsSlicesContract.KEY_LOCATION;
import static androidx.slice.builders.ListBuilder.ICON_IMAGE; import static androidx.slice.builders.ListBuilder.ICON_IMAGE;
import static com.android.settings.contract.SettingsContractKt.KEY_LOCATION;
import android.annotation.ColorInt; import android.annotation.ColorInt;
import android.app.PendingIntent; import android.app.PendingIntent;
import android.app.settings.SettingsEnums; import android.app.settings.SettingsEnums;

View File

@@ -37,6 +37,7 @@ import androidx.preference.TwoStatePreference;
import com.android.settings.AirplaneModeEnabler; import com.android.settings.AirplaneModeEnabler;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settings.contract.SettingsContractKt;
import com.android.settings.core.TogglePreferenceController; import com.android.settings.core.TogglePreferenceController;
import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnDestroy; import com.android.settingslib.core.lifecycle.events.OnDestroy;
@@ -64,7 +65,7 @@ public class AirplaneModePreferenceController extends TogglePreferenceController
.scheme(ContentResolver.SCHEME_CONTENT) .scheme(ContentResolver.SCHEME_CONTENT)
.authority(SettingsSlicesContract.AUTHORITY) .authority(SettingsSlicesContract.AUTHORITY)
.appendPath(SettingsSlicesContract.PATH_SETTING_ACTION) .appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
.appendPath(SettingsSlicesContract.KEY_AIRPLANE_MODE) .appendPath(SettingsContractKt.KEY_AIRPLANE_MODE)
.build(); .build();
private Fragment mFragment; private Fragment mFragment;

View File

@@ -16,9 +16,6 @@
package com.android.settings.slices; 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.content.ContentResolver;
import android.net.Uri; import android.net.Uri;
import android.provider.SettingsSlicesContract; import android.provider.SettingsSlicesContract;
@@ -26,6 +23,7 @@ import android.util.ArrayMap;
import androidx.annotation.VisibleForTesting; import androidx.annotation.VisibleForTesting;
import com.android.settings.contract.SettingsContractKt;
import com.android.settings.display.AlwaysOnDisplaySlice; import com.android.settings.display.AlwaysOnDisplaySlice;
import com.android.settings.display.ScreenTimeoutPreferenceController; import com.android.settings.display.ScreenTimeoutPreferenceController;
import com.android.settings.flashlight.FlashlightSlice; import com.android.settings.flashlight.FlashlightSlice;
@@ -68,7 +66,7 @@ public class CustomSliceRegistry {
.scheme(ContentResolver.SCHEME_CONTENT) .scheme(ContentResolver.SCHEME_CONTENT)
.authority(SettingsSlicesContract.AUTHORITY) .authority(SettingsSlicesContract.AUTHORITY)
.appendPath(SettingsSlicesContract.PATH_SETTING_ACTION) .appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
.appendPath(SettingsSlicesContract.KEY_BLUETOOTH) .appendPath(SettingsContractKt.KEY_BLUETOOTH)
.build(); .build();
/** /**
@@ -115,7 +113,7 @@ public class CustomSliceRegistry {
.scheme(ContentResolver.SCHEME_CONTENT) .scheme(ContentResolver.SCHEME_CONTENT)
.authority(SettingsSlicesContract.AUTHORITY) .authority(SettingsSlicesContract.AUTHORITY)
.appendPath(SettingsSlicesContract.PATH_SETTING_ACTION) .appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
.appendPath(KEY_LOCATION) .appendPath(SettingsContractKt.KEY_LOCATION)
.build(); .build();
/** /**
* Backing Uri for Low storage Slice. * Backing Uri for Low storage Slice.
@@ -240,7 +238,7 @@ public class CustomSliceRegistry {
.scheme(ContentResolver.SCHEME_CONTENT) .scheme(ContentResolver.SCHEME_CONTENT)
.authority(SettingsSlicesContract.AUTHORITY) .authority(SettingsSlicesContract.AUTHORITY)
.appendPath(SettingsSlicesContract.PATH_SETTING_ACTION) .appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
.appendPath(KEY_WIFI) .appendPath(SettingsContractKt.KEY_WIFI)
.build(); .build();
/** /**

View File

@@ -17,8 +17,8 @@
package com.android.settings.wifi.slice; package com.android.settings.wifi.slice;
import static android.app.slice.Slice.EXTRA_TOGGLE_STATE; 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.settings.slices.CustomSliceRegistry.WIFI_SLICE_URI;
import static com.android.settingslib.wifi.WifiUtils.getHotspotIconResource; import static com.android.settingslib.wifi.WifiUtils.getHotspotIconResource;

View File

@@ -53,6 +53,7 @@ import androidx.slice.SliceProvider;
import androidx.slice.widget.SliceLiveData; import androidx.slice.widget.SliceLiveData;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settings.contract.SettingsContractKt;
import com.android.settings.testutils.DatabaseTestUtils; import com.android.settings.testutils.DatabaseTestUtils;
import com.android.settings.testutils.FakeToggleController; import com.android.settings.testutils.FakeToggleController;
import com.android.settings.testutils.shadow.ShadowBluetoothAdapter; import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
@@ -626,7 +627,7 @@ public class SettingsSliceProviderTest {
.scheme(ContentResolver.SCHEME_CONTENT) .scheme(ContentResolver.SCHEME_CONTENT)
.authority(SettingsSlicesContract.AUTHORITY) .authority(SettingsSlicesContract.AUTHORITY)
.appendPath(SettingsSlicesContract.PATH_SETTING_ACTION) .appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
.appendPath(SettingsSlicesContract.KEY_LOCATION) .appendPath(SettingsContractKt.KEY_LOCATION)
.build(); .build();
mProvider.onSlicePinned(uri); mProvider.onSlicePinned(uri);