Remove error slice from Settings in rendering time

We filter error slice in EligibleCardChecker but not filter it in
SliceContextualCardRenderer, these two part should use the same
logic.

Fixes:128687331
Test: manual
Change-Id: I217bc6b578ceb36b0a67b44dc8a08ecd02771d82
This commit is contained in:
Raff Tsai
2019-04-15 17:33:55 +08:00
parent 96b534951c
commit 000ba3fabe

View File

@@ -16,6 +16,8 @@
package com.android.settings.homepage.contextualcards.slices; package com.android.settings.homepage.contextualcards.slices;
import static android.app.slice.Slice.HINT_ERROR;
import android.content.ContentResolver; import android.content.ContentResolver;
import android.content.Context; import android.content.Context;
import android.net.Uri; import android.net.Uri;
@@ -117,6 +119,14 @@ public class SliceContextualCardRenderer implements ContextualCardRenderer, Life
return; 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()) { switch (holder.getItemViewType()) {
case VIEW_TYPE_DEFERRED_SETUP: case VIEW_TYPE_DEFERRED_SETUP:
mDeferredSetupCardHelper.bindView(holder, card, slice); mDeferredSetupCardHelper.bindView(holder, card, slice);