Search in sources :

Example 61 with Slice

use of androidx.slice.Slice in project Resurrection_packages_apps_Settings by ResurrectionRemix.

the class PanelFragment method loadAllSlices.

private void loadAllSlices() {
    mSliceLiveData.clear();
    final List<Uri> sliceUris = mPanel.getSlices();
    mPanelSlicesLoaderCountdownLatch = new PanelSlicesLoaderCountdownLatch(sliceUris.size());
    for (Uri uri : sliceUris) {
        final LiveData<Slice> sliceLiveData = SliceLiveData.fromUri(getActivity(), uri);
        // Add slice first to make it in order.  Will remove it later if there's an error.
        mSliceLiveData.add(sliceLiveData);
        sliceLiveData.observe(getViewLifecycleOwner(), slice -> {
            // If the Slice has already loaded, do nothing.
            if (mPanelSlicesLoaderCountdownLatch.isSliceLoaded(uri)) {
                return;
            }
            /**
             * Watching for the {@link Slice} to load.
             * <p>
             *     If the Slice comes back {@code null} or with the Error attribute, remove the
             *     Slice data from the list, and mark the Slice as loaded.
             * <p>
             *     If the Slice has come back fully loaded, then mark the Slice as loaded.  No
             *     other actions required since we already have the Slice data in the list.
             * <p>
             *     If the Slice does not match the above condition, we will still want to mark
             *     it as loaded after 250ms timeout to avoid delay showing up the panel for
             *     too long.  Since we are still having the Slice data in the list, the Slice
             *     will show up later once it is loaded.
             */
            final SliceMetadata metadata = SliceMetadata.from(getActivity(), slice);
            if (slice == null || metadata.isErrorSlice()) {
                mSliceLiveData.remove(sliceLiveData);
                mPanelSlicesLoaderCountdownLatch.markSliceLoaded(uri);
            } else if (metadata.getLoadingState() == SliceMetadata.LOADED_ALL) {
                mPanelSlicesLoaderCountdownLatch.markSliceLoaded(uri);
            } else {
                Handler handler = new Handler();
                handler.postDelayed(() -> {
                    mPanelSlicesLoaderCountdownLatch.markSliceLoaded(uri);
                    loadPanelWhenReady();
                }, DURATION_SLICE_BINDING_TIMEOUT_MS);
            }
            loadPanelWhenReady();
        });
    }
}
Also used : Slice(androidx.slice.Slice) SliceMetadata(androidx.slice.SliceMetadata) Handler(android.os.Handler) Uri(android.net.Uri)

Example 62 with Slice

use of androidx.slice.Slice in project android_packages_apps_Settings by omnirom.

the class ContextualCardLoaderTest method bindSlice_flashlightUri_shouldReturnFlashlightSlice.

@Test
public void bindSlice_flashlightUri_shouldReturnFlashlightSlice() {
    final Slice loadedSlice = mEligibleCardChecker.bindSlice(CustomSliceRegistry.FLASHLIGHT_SLICE_URI);
    assertThat(loadedSlice.getUri()).isEqualTo(CustomSliceRegistry.FLASHLIGHT_SLICE_URI);
}
Also used : Slice(androidx.slice.Slice) Test(org.junit.Test)

Example 63 with Slice

use of androidx.slice.Slice in project android_packages_apps_Settings by omnirom.

the class ProviderModelSliceTest method getSlice_haveOneConnectedWifiAndTwoDisconnectedWifiAndNoCarrier_getFiveRow.

@Test
@UiThreadTest
public void getSlice_haveOneConnectedWifiAndTwoDisconnectedWifiAndNoCarrier_getFiveRow() {
    mWifiList.clear();
    mockWifiItemCondition(mMockWifiSliceItem1, "wifi1", "wifi1", WifiEntry.CONNECTED_STATE_CONNECTED, "wifi1_key", true);
    mWifiList.add(mMockWifiSliceItem1);
    mockWifiItemCondition(mMockWifiSliceItem2, "wifi2", "wifi2", WifiEntry.CONNECTED_STATE_DISCONNECTED, "wifi2_key", true);
    mWifiList.add(mMockWifiSliceItem2);
    mockWifiItemCondition(mMockWifiSliceItem3, "wifi3", "wifi3", WifiEntry.CONNECTED_STATE_DISCONNECTED, "wifi3_key", true);
    mWifiList.add(mMockWifiSliceItem3);
    mMockNetworkProviderWorker.updateSelfResults(mWifiList);
    mockHelperCondition(false, false, false, mWifiList.get(0));
    final Slice slice = mMockProviderModelSlice.getSlice();
    assertThat(slice).isNotNull();
    verify(mListBuilder, times(5)).addRow(any(ListBuilder.RowBuilder.class));
    assertThat(mMockProviderModelSlice.hasSeeAllRow()).isTrue();
}
Also used : Slice(androidx.slice.Slice) Test(org.junit.Test) UiThreadTest(androidx.test.annotation.UiThreadTest) UiThreadTest(androidx.test.annotation.UiThreadTest)

Example 64 with Slice

use of androidx.slice.Slice in project android_packages_apps_Settings by omnirom.

the class ProviderModelSliceTest method getSlice_haveEthernetAndCarrierAndTwoDisconnectedWifi_getSixRow.

@Test
@UiThreadTest
public void getSlice_haveEthernetAndCarrierAndTwoDisconnectedWifi_getSixRow() {
    mWifiList.clear();
    mockWifiItemCondition(mMockWifiSliceItem1, "wifi1", "wifi1", WifiEntry.CONNECTED_STATE_DISCONNECTED, "wifi1_key", true);
    mWifiList.add(mMockWifiSliceItem1);
    mockWifiItemCondition(mMockWifiSliceItem2, "wifi2", "wifi2", WifiEntry.CONNECTED_STATE_DISCONNECTED, "wifi2_key", true);
    mWifiList.add(mMockWifiSliceItem2);
    mMockNetworkProviderWorker.updateSelfResults(mWifiList);
    mockHelperCondition(false, true, true, null);
    when(mMockNetworkProviderWorker.getInternetType()).thenReturn(InternetUpdater.INTERNET_ETHERNET);
    final Slice slice = mMockProviderModelSlice.getSlice();
    assertThat(slice).isNotNull();
    assertThat(mMockProviderModelSlice.hasCreateEthernetRow()).isTrue();
    verify(mListBuilder, times(1)).addRow(mMockCarrierRowBuild);
    verify(mListBuilder, times(6)).addRow(any(ListBuilder.RowBuilder.class));
    assertThat(mMockProviderModelSlice.hasSeeAllRow()).isTrue();
}
Also used : Slice(androidx.slice.Slice) Test(org.junit.Test) UiThreadTest(androidx.test.annotation.UiThreadTest) UiThreadTest(androidx.test.annotation.UiThreadTest)

Example 65 with Slice

use of androidx.slice.Slice in project android_packages_apps_Settings by omnirom.

the class ProviderModelSliceTest method getSlice_airplaneModeIsOn_oneWifiToggle.

@Test
@UiThreadTest
public void getSlice_airplaneModeIsOn_oneWifiToggle() {
    mWifiList.clear();
    mMockNetworkProviderWorker.updateSelfResults(null);
    mockHelperCondition(true, false, false, null);
    final Slice slice = mMockProviderModelSlice.getSlice();
    assertThat(slice).isNotNull();
    verify(mListBuilder, times(1)).addRow(any(ListBuilder.RowBuilder.class));
    final SliceItem sliceTitle = SliceMetadata.from(mContext, slice).getListContent().getHeader().getTitleItem();
    assertThat(sliceTitle.getText()).isEqualTo(ResourcesUtils.getResourcesString(mContext, "wifi_settings"));
}
Also used : Slice(androidx.slice.Slice) WifiSliceItem(com.android.settings.wifi.slice.WifiSliceItem) SliceItem(androidx.slice.SliceItem) Test(org.junit.Test) UiThreadTest(androidx.test.annotation.UiThreadTest) UiThreadTest(androidx.test.annotation.UiThreadTest)

Aggregations

Slice (androidx.slice.Slice)216 Test (org.junit.Test)204 SliceMetadata (androidx.slice.SliceMetadata)73 SliceAction (androidx.slice.core.SliceAction)28 SliceItem (androidx.slice.SliceItem)22 Config (org.robolectric.annotation.Config)20 Uri (android.net.Uri)17 ParceledListSlice (android.content.pm.ParceledListSlice)14 IconCompat (androidx.core.graphics.drawable.IconCompat)14 ContextualWifiSlice (com.android.settings.wifi.slice.ContextualWifiSlice)9 PrivateStorageInfo (com.android.settingslib.deviceinfo.PrivateStorageInfo)9 UiThreadTest (androidx.test.annotation.UiThreadTest)8 VisibleForTesting (androidx.annotation.VisibleForTesting)5 EmergencyInfoSlice (com.android.settings.homepage.contextualcards.deviceinfo.EmergencyInfoSlice)5 ArrayList (java.util.ArrayList)5 PendingIntent (android.app.PendingIntent)4 Intent (android.content.Intent)4 BatteryTip (com.android.settings.fuelgauge.batterytip.tips.BatteryTip)4 EarlyWarningTip (com.android.settings.fuelgauge.batterytip.tips.EarlyWarningTip)4 LowBatteryTip (com.android.settings.fuelgauge.batterytip.tips.LowBatteryTip)4