Add a flashlight slice in settings.

- It retrieves the flashlight status from Settings.Secure.
- It uses the broadcast relay to update flashlight status
without action on the slice.

Test: robotests
Change-Id: Ib4d636541f5166b8634326cce76aed5665989b76
Fixes: 74913192
This commit is contained in:
Steven Wu
2018-05-24 20:29:34 -04:00
parent 6ffc5c43b2
commit 97915b15d9
6 changed files with 320 additions and 28 deletions

View File

@@ -33,10 +33,12 @@ import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.net.Uri;
import android.os.StrictMode;
import android.provider.Settings;
import android.provider.SettingsSlicesContract;
import android.util.ArraySet;
import com.android.settings.bluetooth.BluetoothSliceBuilder;
import com.android.settings.flashlight.FlashlightSliceBuilder;
import com.android.settings.location.LocationSliceBuilder;
import com.android.settings.notification.ZenModeSliceBuilder;
import com.android.settings.testutils.DatabaseTestUtils;
@@ -95,7 +97,8 @@ public class SettingsSliceProviderTest {
);
private static final List<Uri> SPECIAL_CASE_OEM_URIS = Arrays.asList(
ZenModeSliceBuilder.ZEN_MODE_URI
ZenModeSliceBuilder.ZEN_MODE_URI,
FlashlightSliceBuilder.FLASHLIGHT_URI
);
@Before
@@ -444,6 +447,16 @@ public class SettingsSliceProviderTest {
assertThat(wifiSlice.getUri()).isEqualTo(WifiSliceBuilder.WIFI_URI);
}
@Test
public void bindSlice_flashlightSlice_returnsFlashlightSlice() {
Settings.Secure.putInt(
mContext.getContentResolver(), Settings.Secure.FLASHLIGHT_AVAILABLE, 1);
final Slice flashlightSlice = mProvider.onBindSlice(FlashlightSliceBuilder.FLASHLIGHT_URI);
assertThat(flashlightSlice.getUri()).isEqualTo(FlashlightSliceBuilder.FLASHLIGHT_URI);
}
@Test
public void onSlicePinned_noIntentRegistered_specialCaseUri_doesNotCrash() {
final Uri uri = new Uri.Builder()