Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a2ea9911 authored by Matthew Fritze's avatar Matthew Fritze
Browse files

Make summary text update after settings changes

The uri's being pinged when changes happened were incorrect, because
of a hard coded '/'.

Change-Id: I4d04642bc80b97c5191bf0e1e7a5e15a2c58d6c9
Merged-In: I6735c5a60dc7df6894bd17e67d7702a7ec6c07d4
Fixes: 79779837
Test: robotest
parent 666ee4fa
Loading
Loading
Loading
Loading
+11 −2
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import static com.android.settings.wifi.WifiSliceBuilder.ACTION_WIFI_SLICE_CHANG

import android.app.slice.Slice;
import android.content.BroadcastReceiver;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
@@ -151,6 +152,7 @@ public class SliceBroadcastReceiver extends BroadcastReceiver {

        sliderController.setSliderPosition(newPosition);
        logSliceValueChange(context, key, newPosition);
        updateUri(context, key, isPlatformSlice);
    }

    /**
@@ -173,8 +175,15 @@ public class SliceBroadcastReceiver extends BroadcastReceiver {
    }

    private void updateUri(Context context, String key, boolean isPlatformDefined) {
        final String path = SettingsSlicesContract.PATH_SETTING_ACTION + "/" + key;
        final Uri uri = SliceBuilderUtils.getUri(path, isPlatformDefined);
        final String authority = isPlatformDefined
                ? SettingsSlicesContract.AUTHORITY
                : SettingsSliceProvider.SLICE_AUTHORITY;
        final Uri uri = new Uri.Builder()
                .scheme(ContentResolver.SCHEME_CONTENT)
                .authority(authority)
                .appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
                .appendPath(key)
                .build();
        context.getContentResolver().notifyChange(uri, null /* observer */);
    }
}
+30 −4
Original line number Diff line number Diff line
@@ -95,8 +95,16 @@ public class SliceBroadcastReceiverTest {
    @Test
    public void onReceive_toggleChanged() {
        final String key = "key";
        final Uri uri = new Uri.Builder()
                .scheme(ContentResolver.SCHEME_CONTENT)
                .authority(SettingsSliceProvider.SLICE_AUTHORITY)
                .appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
                .appendPath(key)
                .build();
        mSearchFeatureProvider.getSearchIndexableResources().getProviderValues().clear();
        insertSpecialCase(key);
        final ContentResolver resolver = mock(ContentResolver.class);
        doReturn(resolver).when(mContext).getContentResolver();
        // Turn on toggle setting
        FakeToggleController fakeToggleController = new FakeToggleController(mContext, key);
        fakeToggleController.setChecked(true);
@@ -120,6 +128,7 @@ public class SliceBroadcastReceiverTest {
        assertThat(namePair.first).isEqualTo(MetricsEvent.FIELD_SETTINGS_PREFERENCE_CHANGE_NAME);
        assertThat(namePair.second).isEqualTo(fakeToggleController.getPreferenceKey());

        verify(resolver).notifyChange(uri, null);
        assertThat(valuePair.first)
                .isEqualTo(MetricsEvent.FIELD_SETTINGS_PREFERENCE_CHANGE_INT_VALUE);
        assertThat(valuePair.second).isEqualTo(0);
@@ -128,6 +137,14 @@ public class SliceBroadcastReceiverTest {
    @Test
    public void onReceive_sliderChanged() {
        final String key = "key";
        final Uri uri = new Uri.Builder()
                .scheme(ContentResolver.SCHEME_CONTENT)
                .authority(SettingsSliceProvider.SLICE_AUTHORITY)
                .appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
                .appendPath(key)
                .build();
        final ContentResolver resolver = mock(ContentResolver.class);
        doReturn(resolver).when(mContext).getContentResolver();
        final int position = FakeSliderController.MAX_STEPS - 1;
        final int oldPosition = FakeSliderController.MAX_STEPS;
        mSearchFeatureProvider.getSearchIndexableResources().getProviderValues().clear();
@@ -158,6 +175,7 @@ public class SliceBroadcastReceiverTest {
        assertThat(namePair.first).isEqualTo(MetricsEvent.FIELD_SETTINGS_PREFERENCE_CHANGE_NAME);
        assertThat(namePair.second).isEqualTo(key);

        verify(resolver).notifyChange(uri, null);
        assertThat(valuePair.first)
                .isEqualTo(MetricsEvent.FIELD_SETTINGS_PREFERENCE_CHANGE_INT_VALUE);
        assertThat(valuePair.second).isEqualTo(position);
@@ -231,8 +249,12 @@ public class SliceBroadcastReceiverTest {

        // Check the value is the same and the Uri has been notified.
        assertThat(fakeToggleController.isChecked()).isTrue();
        final Uri expectedUri = SliceBuilderUtils.getUri(
                SettingsSlicesContract.PATH_SETTING_ACTION + "/" + key, false);
        final Uri expectedUri = new Uri.Builder()
                .scheme(ContentResolver.SCHEME_CONTENT)
                .authority(SettingsSliceProvider.SLICE_AUTHORITY)
                .appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
                .appendPath(key)
                .build();
        verify(resolver).notifyChange(eq(expectedUri), eq(null));
    }

@@ -268,8 +290,12 @@ public class SliceBroadcastReceiverTest {

        // Check position is the same and the Uri has been notified.
        assertThat(fakeSliderController.getSliderPosition()).isEqualTo(oldPosition);
        final Uri expectedUri = SliceBuilderUtils.getUri(
                SettingsSlicesContract.PATH_SETTING_ACTION + "/" + key, false);
        final Uri expectedUri = new Uri.Builder()
                .scheme(ContentResolver.SCHEME_CONTENT)
                .authority(SettingsSliceProvider.SLICE_AUTHORITY)
                .appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
                .appendPath(key)
                .build();
        verify(resolver).notifyChange(eq(expectedUri), eq(null));
    }