Search in sources :

Example 56 with Slice

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

the class WifiSliceTest method getWifiSlice_wifiOff_shouldReturnSingleRow.

@Test
public void getWifiSlice_wifiOff_shouldReturnSingleRow() {
    mWifiManager.setWifiEnabled(false);
    final Slice wifiSlice = mWifiSlice.getSlice();
    final int rows = SliceQuery.findAll(wifiSlice, FORMAT_SLICE, HINT_LIST_ITEM, null).size();
    // Title row
    assertThat(rows).isEqualTo(1);
}
Also used : Slice(androidx.slice.Slice) AccessPoint(com.android.settingslib.wifi.AccessPoint) Test(org.junit.Test)

Example 57 with Slice

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

the class WifiSliceTest method getWifiSlice_oneReachableAp_shouldNotReturnLoadingRow.

@Test
public void getWifiSlice_oneReachableAp_shouldNotReturnLoadingRow() {
    setWorkerResults(createAccessPoint(AP1_NAME, false, true));
    final Slice wifiSlice = mWifiSlice.getSlice();
    final List<SliceItem> sliceItems = wifiSlice.getItems();
    SliceTester.assertAnySliceItemContainsTitle(sliceItems, AP1_NAME);
    // No scanning text
    SliceTester.assertNoSliceItemContainsSubtitle(sliceItems, mContext.getString(R.string.wifi_empty_list_wifi_on));
}
Also used : Slice(androidx.slice.Slice) SliceItem(androidx.slice.SliceItem) Test(org.junit.Test)

Example 58 with Slice

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

the class WifiSliceTest method getWifiSlice_allReachableAps_shouldNotReturnLoadingRow.

@Test
public void getWifiSlice_allReachableAps_shouldNotReturnLoadingRow() {
    setWorkerResults(createAccessPoint(AP1_NAME, false, true), createAccessPoint(AP2_NAME, false, true));
    final Slice wifiSlice = mWifiSlice.getSlice();
    final List<SliceItem> sliceItems = wifiSlice.getItems();
    SliceTester.assertAnySliceItemContainsTitle(sliceItems, AP1_NAME);
    SliceTester.assertAnySliceItemContainsTitle(sliceItems, AP2_NAME);
    // No scanning text
    SliceTester.assertNoSliceItemContainsSubtitle(sliceItems, mContext.getString(R.string.wifi_empty_list_wifi_on));
}
Also used : Slice(androidx.slice.Slice) SliceItem(androidx.slice.SliceItem) Test(org.junit.Test)

Example 59 with Slice

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

the class EligibleCardChecker method isCardEligibleToDisplay.

@VisibleForTesting
boolean isCardEligibleToDisplay(ContextualCard card) {
    if (card.getRankingScore() < 0) {
        return false;
    }
    if (card.isCustomCard()) {
        return true;
    }
    final Uri uri = card.getSliceUri();
    if (!ContentResolver.SCHEME_CONTENT.equals(uri.getScheme())) {
        return false;
    }
    final Slice slice = bindSlice(uri);
    if (isSliceToggleable(slice)) {
        mCard = card.mutate().setHasInlineAction(true).build();
    }
    if (slice == null || slice.hasHint(HINT_ERROR)) {
        Log.w(TAG, "Failed to bind slice, not eligible for display " + uri);
        return false;
    }
    return true;
}
Also used : Slice(androidx.slice.Slice) Uri(android.net.Uri) VisibleForTesting(androidx.annotation.VisibleForTesting)

Example 60 with Slice

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

the class SliceContextualCardRenderer method bindView.

@Override
public void bindView(RecyclerView.ViewHolder holder, ContextualCard card) {
    final Uri uri = card.getSliceUri();
    if (!ContentResolver.SCHEME_CONTENT.equals(uri.getScheme())) {
        Log.w(TAG, "Invalid uri, skipping slice: " + uri);
        return;
    }
    LiveData<Slice> sliceLiveData = mSliceLiveDataMap.get(uri);
    if (sliceLiveData == null) {
        sliceLiveData = SliceLiveData.fromUri(mContext, uri);
        mSliceLiveDataMap.put(uri, sliceLiveData);
    }
    final View swipeBackground = holder.itemView.findViewById(R.id.dismissal_swipe_background);
    sliceLiveData.removeObservers(mLifecycleOwner);
    // set the background to GONE in case the holder is reused.
    if (swipeBackground != null) {
        swipeBackground.setVisibility(View.GONE);
    }
    sliceLiveData.observe(mLifecycleOwner, slice -> {
        if (slice == null) {
            Log.w(TAG, "Slice is null");
            mContext.getContentResolver().notifyChange(CardContentProvider.REFRESH_CARD_URI, null);
            return;
        }
        if (slice.hasHint(HINT_ERROR)) {
            Log.w(TAG, "Slice has HINT_ERROR, skipping rendering. uri=" + slice.getUri());
            mSliceLiveDataMap.get(slice.getUri()).removeObservers(mLifecycleOwner);
            mContext.getContentResolver().notifyChange(CardContentProvider.REFRESH_CARD_URI, null);
            return;
        }
        switch(holder.getItemViewType()) {
            case VIEW_TYPE_DEFERRED_SETUP:
                mDeferredSetupCardHelper.bindView(holder, card, slice);
                break;
            case VIEW_TYPE_HALF_WIDTH:
                mHalfCardHelper.bindView(holder, card, slice);
                break;
            default:
                mFullCardHelper.bindView(holder, card, slice);
        }
        if (swipeBackground != null) {
            swipeBackground.setVisibility(View.VISIBLE);
        }
    });
    switch(holder.getItemViewType()) {
        case VIEW_TYPE_DEFERRED_SETUP:
            // Deferred setup is never dismissible.
            break;
        case VIEW_TYPE_HALF_WIDTH:
            initDismissalActions(holder, card);
            break;
        default:
            initDismissalActions(holder, card);
    }
    if (card.isPendingDismiss()) {
        showDismissalView(holder);
        mFlippedCardSet.add(holder);
    }
}
Also used : Slice(androidx.slice.Slice) Uri(android.net.Uri) View(android.view.View) RecyclerView(androidx.recyclerview.widget.RecyclerView)

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