Loading src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java +0 −2 Original line number Diff line number Diff line Loading @@ -26,7 +26,6 @@ import android.database.Cursor; import android.net.Uri; import android.os.Handler; import android.os.Looper; import android.text.format.DateUtils; import android.util.Log; import androidx.annotation.NonNull; Loading @@ -50,7 +49,6 @@ public class ContextualCardLoader extends AsyncLoaderCompat<List<ContextualCard> @VisibleForTesting static final int DEFAULT_CARD_COUNT = 4; static final int CARD_CONTENT_LOADER_ID = 1; static final long CARD_CONTENT_LOADER_TIMEOUT_MS = DateUtils.SECOND_IN_MILLIS; private static final String TAG = "ContextualCardLoader"; private static final long ELIGIBILITY_CHECKER_TIMEOUT_MS = 250; Loading src/com/android/settings/homepage/contextualcards/ContextualCardManager.java +17 −2 Original line number Diff line number Diff line Loading @@ -24,6 +24,8 @@ import static java.util.stream.Collectors.groupingBy; import android.content.Context; import android.os.Bundle; import android.provider.Settings; import android.text.format.DateUtils; import android.util.ArrayMap; import android.util.Log; import android.widget.BaseAdapter; Loading Loading @@ -62,8 +64,12 @@ import java.util.stream.Collectors; public class ContextualCardManager implements ContextualCardLoader.CardContentLoaderListener, ContextualCardUpdateListener, LifecycleObserver, OnSaveInstanceState { private static final String KEY_CONTEXTUAL_CARDS = "key_contextual_cards"; @VisibleForTesting static final long CARD_CONTENT_LOADER_TIMEOUT_MS = DateUtils.SECOND_IN_MILLIS; @VisibleForTesting static final String KEY_GLOBAL_CARD_LOADER_TIMEOUT = "global_card_loader_timeout_key"; private static final String KEY_CONTEXTUAL_CARDS = "key_contextual_cards"; private static final String TAG = "ContextualCardManager"; //The list for Settings Custom Card Loading Loading @@ -201,7 +207,8 @@ public class ContextualCardManager implements ContextualCardLoader.CardContentLo } //only log homepage display upon a fresh launch if (loadTime <= ContextualCardLoader.CARD_CONTENT_LOADER_TIMEOUT_MS) { final long timeoutLimit = getCardLoaderTimeout(mContext); if (loadTime <= timeoutLimit) { onContextualCardUpdated(cards.stream() .collect(groupingBy(ContextualCard::getCardType))); } Loading Loading @@ -239,6 +246,14 @@ public class ContextualCardManager implements ContextualCardLoader.CardContentLo return getCardsWithSuggestionViewType(result); } @VisibleForTesting long getCardLoaderTimeout(Context context) { // Return the timeout limit if Settings.Global has the KEY_GLOBAL_CARD_LOADER_TIMEOUT key, // else return default timeout. return Settings.Global.getLong(mContext.getContentResolver(), KEY_GLOBAL_CARD_LOADER_TIMEOUT, CARD_CONTENT_LOADER_TIMEOUT_MS); } private List<ContextualCard> getCardsWithSuggestionViewType(List<ContextualCard> cards) { // Shows as half cards if 2 suggestion type of cards are next to each other. // Shows as full card if 1 suggestion type of card lives alone. Loading tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardManagerTest.java +19 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import static org.mockito.Mockito.verify; import android.content.Context; import android.net.Uri; import android.provider.Settings; import android.util.ArrayMap; import com.android.settings.homepage.contextualcards.conditional.ConditionFooterContextualCard; Loading Loading @@ -125,6 +126,24 @@ public class ContextualCardManagerTest { .isEqualTo(ContextualCard.CardType.CONDITIONAL_FOOTER); } @Test public void getCardLoaderTimeout_noConfiguredTimeout_shouldReturnDefaultTimeout() { final long timeout = mManager.getCardLoaderTimeout(mContext); assertThat(timeout).isEqualTo(ContextualCardManager.CARD_CONTENT_LOADER_TIMEOUT_MS); } @Test public void getCardLoaderTimeout_hasConfiguredTimeout_shouldReturnConfiguredTimeout() { final long configuredTimeout = 5000L; Settings.Global.putLong(mContext.getContentResolver(), ContextualCardManager.KEY_GLOBAL_CARD_LOADER_TIMEOUT, configuredTimeout); final long timeout = mManager.getCardLoaderTimeout(mContext); assertThat(timeout).isEqualTo(configuredTimeout); } @Test public void onFinishCardLoading_fastLoad_shouldCallOnContextualCardUpdated() { mManager.mStartTime = System.currentTimeMillis(); Loading Loading
src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java +0 −2 Original line number Diff line number Diff line Loading @@ -26,7 +26,6 @@ import android.database.Cursor; import android.net.Uri; import android.os.Handler; import android.os.Looper; import android.text.format.DateUtils; import android.util.Log; import androidx.annotation.NonNull; Loading @@ -50,7 +49,6 @@ public class ContextualCardLoader extends AsyncLoaderCompat<List<ContextualCard> @VisibleForTesting static final int DEFAULT_CARD_COUNT = 4; static final int CARD_CONTENT_LOADER_ID = 1; static final long CARD_CONTENT_LOADER_TIMEOUT_MS = DateUtils.SECOND_IN_MILLIS; private static final String TAG = "ContextualCardLoader"; private static final long ELIGIBILITY_CHECKER_TIMEOUT_MS = 250; Loading
src/com/android/settings/homepage/contextualcards/ContextualCardManager.java +17 −2 Original line number Diff line number Diff line Loading @@ -24,6 +24,8 @@ import static java.util.stream.Collectors.groupingBy; import android.content.Context; import android.os.Bundle; import android.provider.Settings; import android.text.format.DateUtils; import android.util.ArrayMap; import android.util.Log; import android.widget.BaseAdapter; Loading Loading @@ -62,8 +64,12 @@ import java.util.stream.Collectors; public class ContextualCardManager implements ContextualCardLoader.CardContentLoaderListener, ContextualCardUpdateListener, LifecycleObserver, OnSaveInstanceState { private static final String KEY_CONTEXTUAL_CARDS = "key_contextual_cards"; @VisibleForTesting static final long CARD_CONTENT_LOADER_TIMEOUT_MS = DateUtils.SECOND_IN_MILLIS; @VisibleForTesting static final String KEY_GLOBAL_CARD_LOADER_TIMEOUT = "global_card_loader_timeout_key"; private static final String KEY_CONTEXTUAL_CARDS = "key_contextual_cards"; private static final String TAG = "ContextualCardManager"; //The list for Settings Custom Card Loading Loading @@ -201,7 +207,8 @@ public class ContextualCardManager implements ContextualCardLoader.CardContentLo } //only log homepage display upon a fresh launch if (loadTime <= ContextualCardLoader.CARD_CONTENT_LOADER_TIMEOUT_MS) { final long timeoutLimit = getCardLoaderTimeout(mContext); if (loadTime <= timeoutLimit) { onContextualCardUpdated(cards.stream() .collect(groupingBy(ContextualCard::getCardType))); } Loading Loading @@ -239,6 +246,14 @@ public class ContextualCardManager implements ContextualCardLoader.CardContentLo return getCardsWithSuggestionViewType(result); } @VisibleForTesting long getCardLoaderTimeout(Context context) { // Return the timeout limit if Settings.Global has the KEY_GLOBAL_CARD_LOADER_TIMEOUT key, // else return default timeout. return Settings.Global.getLong(mContext.getContentResolver(), KEY_GLOBAL_CARD_LOADER_TIMEOUT, CARD_CONTENT_LOADER_TIMEOUT_MS); } private List<ContextualCard> getCardsWithSuggestionViewType(List<ContextualCard> cards) { // Shows as half cards if 2 suggestion type of cards are next to each other. // Shows as full card if 1 suggestion type of card lives alone. Loading
tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardManagerTest.java +19 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import static org.mockito.Mockito.verify; import android.content.Context; import android.net.Uri; import android.provider.Settings; import android.util.ArrayMap; import com.android.settings.homepage.contextualcards.conditional.ConditionFooterContextualCard; Loading Loading @@ -125,6 +126,24 @@ public class ContextualCardManagerTest { .isEqualTo(ContextualCard.CardType.CONDITIONAL_FOOTER); } @Test public void getCardLoaderTimeout_noConfiguredTimeout_shouldReturnDefaultTimeout() { final long timeout = mManager.getCardLoaderTimeout(mContext); assertThat(timeout).isEqualTo(ContextualCardManager.CARD_CONTENT_LOADER_TIMEOUT_MS); } @Test public void getCardLoaderTimeout_hasConfiguredTimeout_shouldReturnConfiguredTimeout() { final long configuredTimeout = 5000L; Settings.Global.putLong(mContext.getContentResolver(), ContextualCardManager.KEY_GLOBAL_CARD_LOADER_TIMEOUT, configuredTimeout); final long timeout = mManager.getCardLoaderTimeout(mContext); assertThat(timeout).isEqualTo(configuredTimeout); } @Test public void onFinishCardLoading_fastLoad_shouldCallOnContextualCardUpdated() { mManager.mStartTime = System.currentTimeMillis(); Loading