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

Commit 45ee7c2a authored by Yi-Ling Chuang's avatar Yi-Ling Chuang
Browse files

Dynamically return the uri of WifiSlice.

WifiSlice is used by both ContextualWifiSlice and WifiSlice itself.
In contextual homepage, we provide contextual_wifi slice for the
homepage. So in our slice pre-check, contextual_wifi slice will gets
pinned and bound. But when it comes to the state where wifi is on but
not connected, it actually returns wifi slice instead of contextual_wifi
slice, which will hit slice not pinned exception as wifi slice never
gets pinned.

Thus, we have to dynamically return the corresponding uri to  avoid this.

Fixes: 124627340
Test: robotests
Change-Id: I54ba255871628bb8eb814442f990a5d1149461e0
parent 5f321d79
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -93,8 +93,7 @@ public class WifiSlice implements CustomSliceable {
        final SliceAction toggleSliceAction = SliceAction.createToggle(toggleAction,
                null /* actionTitle */, isWifiEnabled);

        final ListBuilder listBuilder = new ListBuilder(mContext, WIFI_SLICE_URI,
                ListBuilder.INFINITY)
        final ListBuilder listBuilder = new ListBuilder(mContext, getUri(), ListBuilder.INFINITY)
                .setAccentColor(color)
                .addRow(new ListBuilder.RowBuilder()
                        .setTitle(title)
+10 −0
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ import androidx.slice.core.SliceAction;
import androidx.slice.widget.SliceLiveData;

import com.android.settings.R;
import com.android.settings.slices.CustomSliceRegistry;

import org.junit.Before;
import org.junit.Test;
@@ -97,4 +98,13 @@ public class ContextualWifiSliceTest {
                R.drawable.ic_settings_wireless);
        assertThat(primaryAction.getIcon().toString()).isEqualTo(expectedToggleIcon.toString());
    }

    @Test
    public void getWifiSlice_contextualWifiSlice_shouldReturnContextualWifiSliceUri() {
        mWifiSlice.mPreviouslyDisplayed = true;

        final Slice wifiSlice = mWifiSlice.getSlice();

        assertThat(wifiSlice.getUri()).isEqualTo(CustomSliceRegistry.CONTEXTUAL_WIFI_SLICE_URI);
    }
}