androidx.paging.PositionalDataSource Java Examples
The following examples show how to use
androidx.paging.PositionalDataSource.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: TransactionArchComponentDataSourceTest.java From Gander with Apache License 2.0 | 6 votes |
@Test public void whenTransactionsExist_onLoadInitialCall_shouldReturnDataInOrderThatMatchFilter() { HttpTransaction transaction1 = getHttpTransactionWithIndex(0); HttpTransaction transaction2 = getHttpTransactionWithIndex(1); HttpTransaction transaction3 = getHttpTransactionWithIndex(2); HttpTransaction transaction4 = getHttpTransactionWithIndex(3); when(transactionDataStore.getDataList()).thenReturn(Arrays.asList(new HttpTransaction[]{transaction1, transaction2, transaction3, transaction4})); when(filter.apply(any(HttpTransaction.class))).thenAnswer(new Answer<Boolean>() { @Override public Boolean answer(InvocationOnMock invocation) { HttpTransaction httpTransaction = invocation.getArgument(0); return httpTransaction.getId() % 2 == 0; } }); setUpDataSource(); PositionalDataSource.LoadInitialParams params = new PositionalDataSource.LoadInitialParams(0, 10, 5, false); httpTransactionDataSource.loadInitial(params, loadInitialCallback); verify(loadInitialCallback).onResult(dataCapture.capture(), eq(0), eq(2)); assertThat(dataCapture.getValue()).containsExactlyInAnyOrder(transaction1, transaction3); }
Example #2
Source File: TransactionArchComponentDataSourceTest.java From Gander with Apache License 2.0 | 5 votes |
@Test public void whenNoTransactions_onLoadInitialCall_shouldReturnNoData() { when(filter.apply(any(HttpTransaction.class))).thenReturn(true); when(transactionDataStore.getDataList()).thenReturn(Collections.<HttpTransaction>emptyList()); setUpDataSource(); PositionalDataSource.LoadInitialParams params = new PositionalDataSource.LoadInitialParams(0, 10, 5, false); httpTransactionDataSource.loadInitial(params, loadInitialCallback); verify(loadInitialCallback).onResult(dataCapture.capture(), eq(0), eq(0)); assertThat(dataCapture.getValue()).isEmpty(); }
Example #3
Source File: TransactionArchComponentDataSourceTest.java From Gander with Apache License 2.0 | 5 votes |
private void setUpDataSource() { // This is how recycler views does it casting to PositionalDataSource. need to change to better api httpTransactionDataSource = (PositionalDataSource<HttpTransaction>) new TransactionArchComponentProvider() .getDataSourceFactory(transactionDataStore, filter) .create(); httpTransactionDataSource.addInvalidatedCallback(invalidatedCallback); }
Example #4
Source File: TransactionArchComponentDataSourceTest.java From Gander with Apache License 2.0 | 5 votes |
@Test public void whenNoTransactionsMatchFilter_onLoadInitialCall_shouldReturnNoData() { when(filter.apply(any(HttpTransaction.class))).thenReturn(false); when(transactionDataStore.getDataList()).thenReturn(Arrays.asList(getHttpTransactionsWithIndices(0, 1, 2, 3))); setUpDataSource(); PositionalDataSource.LoadInitialParams params = new PositionalDataSource.LoadInitialParams(0, 10, 5, false); httpTransactionDataSource.loadInitial(params, loadInitialCallback); verify(loadInitialCallback).onResult(dataCapture.capture(), eq(0), eq(0)); assertThat(dataCapture.getValue()).isEmpty(); }
Example #5
Source File: TransactionArchComponentDataSourceTest.java From Gander with Apache License 2.0 | 5 votes |
@Test public void whenTransactionsExist_onLoadRange_shouldReturnDataThatMatchFilterInOrderInSpecifiedRange() { HttpTransaction transaction1 = getHttpTransactionWithIndex(0); HttpTransaction transaction2 = getHttpTransactionWithIndex(1); HttpTransaction transaction3 = getHttpTransactionWithIndex(2); HttpTransaction transaction4 = getHttpTransactionWithIndex(3); HttpTransaction transaction5 = getHttpTransactionWithIndex(4); HttpTransaction transaction6 = getHttpTransactionWithIndex(5); HttpTransaction transaction7 = getHttpTransactionWithIndex(6); HttpTransaction transaction8 = getHttpTransactionWithIndex(7); HttpTransaction transaction9 = getHttpTransactionWithIndex(8); when(transactionDataStore.getDataList()).thenReturn(Arrays.asList(new HttpTransaction[]{transaction1, transaction2, transaction3, transaction4, transaction5, transaction6, transaction7, transaction8, transaction9})); when(filter.apply(any(HttpTransaction.class))).thenAnswer(new Answer<Boolean>() { @Override public Boolean answer(InvocationOnMock invocation) { HttpTransaction httpTransaction = invocation.getArgument(0); return httpTransaction.getId() % 2 == 0; } }); setUpDataSource(); PositionalDataSource.LoadRangeParams params = new PositionalDataSource.LoadRangeParams(1, 3); httpTransactionDataSource.loadRange(params, loadRangeCallback); verify(loadRangeCallback).onResult(dataCapture.capture()); assertThat(dataCapture.getValue()).containsExactlyInAnyOrder(transaction3, transaction5, transaction7); }
Example #6
Source File: ObjectBoxRandomDataSource.java From Hentoid with Apache License 2.0 | 5 votes |
public void loadInitial(@NonNull PositionalDataSource.LoadInitialParams params, @NonNull PositionalDataSource.LoadInitialCallback<T> callback) { int totalCount = (int) this.query.count(); if (totalCount == 0) { callback.onResult(Collections.emptyList(), 0, 0); } else { int position = computeInitialLoadPosition(params, totalCount); int loadSize = computeInitialLoadSize(params, position, totalCount); List<T> list = this.loadRange(position, loadSize); if (list.size() == loadSize) { callback.onResult(list, position, totalCount); } else { this.invalidate(); } } }
Example #7
Source File: ObjectBoxRandomDataSource.java From Hentoid with Apache License 2.0 | 4 votes |
public void loadRange(@NonNull PositionalDataSource.LoadRangeParams params, @NonNull PositionalDataSource.LoadRangeCallback<T> callback) { callback.onResult(this.loadRange(params.startPosition, params.loadSize)); }