[DO NOT MERGE] Pre-allocate height for contextual cards.
To prevent the UI jank causing by the async card loads, we pre-allocate some space for the card to fill in. After this change, only one card can be shown at a time. More details: - When the card number configuration is set to 0, don't trigger the card loader. - The height adjusting logic is as follows. When Settings is opened, pre-allocate a space first. After the RV finish laying out, reset the RV to wrap_content. So if the card has to be expanded(eg. wifi large mode or dismissal view), then it will adjust the height accordingly. While if a card previously shown becomes unavailable(dismissed or conditions not meet), we also reset the RV so the space can be gone. Bug: 163288869 Test: robotest Change-Id: I0dcb2dae8f0533e562ad06f664b7ae7a9afecd21
This commit is contained in:
@@ -122,6 +122,10 @@ public class ContextualCardManager implements ContextualCardLoader.CardContentLo
|
||||
Log.w(TAG, "Legacy suggestion contextual card enabled, skipping contextual cards.");
|
||||
return;
|
||||
}
|
||||
if (ContextualCardLoader.getCardCount(mContext) <= 0) {
|
||||
Log.w(TAG, "Card count is zero, skipping contextual cards.");
|
||||
return;
|
||||
}
|
||||
mStartTime = System.currentTimeMillis();
|
||||
final CardContentLoaderCallbacks cardContentLoaderCallbacks =
|
||||
new CardContentLoaderCallbacks(mContext);
|
||||
|
||||
Reference in New Issue
Block a user