diff options
author | Jelena Petrovic <jelenapetrovic.7119@gmail.com> | 2022-11-25 14:20:01 +0100 |
---|---|---|
committer | Jelena Petrovic <jelenapetrovic.7119@gmail.com> | 2022-11-25 14:20:01 +0100 |
commit | 58ec6770e075ace89d3bba9bc75b0a44673c36c7 (patch) | |
tree | 916d47b0e9ddbd28bda4ab572eab577e5667a701 | |
parent | b82100be223288538c4cd1d617733ffd053a1bb8 (diff) |
Podeseno stranicenje tako da ucitava nove strane samo kada korisnik skroluje #48
3 files changed, 14 insertions, 14 deletions
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsAdapter.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsAdapter.kt index 0bd625f..216f859 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsAdapter.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsAdapter.kt @@ -2,8 +2,6 @@ package com.example.brzodolokacije.Adapters import android.app.Activity import android.content.Intent -import android.graphics.BitmapFactory -import android.os.AsyncTask import android.os.Bundle import android.view.LayoutInflater import android.view.ViewGroup @@ -13,18 +11,11 @@ import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.RecyclerView import com.bumptech.glide.Glide import com.example.brzodolokacije.Activities.ActivitySinglePost -import com.example.brzodolokacije.Activities.NavigationActivity import com.example.brzodolokacije.Interfaces.IBackendApi -import com.example.brzodolokacije.Models.LocationType import com.example.brzodolokacije.Models.PostPreview import com.example.brzodolokacije.Services.RetrofitHelper import com.example.brzodolokacije.Services.SharedPreferencesHelper import com.example.brzodolokacije.databinding.PostPreviewBinding -import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.launch -import okhttp3.ResponseBody -import retrofit2.Call -import retrofit2.Response class ShowPostsAdapter (val activity:Activity,val items : MutableList<PostPreview>?=null) diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/paging/SearchPostsPagingSource.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/paging/SearchPostsPagingSource.kt index b1c89db..cee39ce 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/paging/SearchPostsPagingSource.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/paging/SearchPostsPagingSource.kt @@ -2,9 +2,10 @@ package com.example.brzodolokacije.paging import android.app.Activity import android.util.Log +import androidx.paging.ExperimentalPagingApi import androidx.paging.PagingSource +import androidx.paging.PagingState import com.example.brzodolokacije.Interfaces.IBackendApi -import com.example.brzodolokacije.Models.PagedPosts import com.example.brzodolokacije.Models.PostPreview import com.example.brzodolokacije.Models.SearchParams import com.example.brzodolokacije.Services.SharedPreferencesHelper @@ -23,10 +24,10 @@ class SearchPostsPagingSource( val response=backend.getPagedPosts("Bearer "+token,searchParams.locationId, page,searchParams.sorttype,searchParams.filterdate ) - Log.d("main",page.toString()) + Log.d("main","stranicenje: "+page.toString()) LoadResult.Page( response.posts,prevKey=if(page==0) null else page-1, - nextKey=if(response.posts.isEmpty()) null else page+1 + nextKey=if(page==response.totalpages) null else page+1 ) }catch(exception:IOException){ return LoadResult.Error(exception) @@ -35,4 +36,12 @@ class SearchPostsPagingSource( } } + @ExperimentalPagingApi + override fun getRefreshKey(state: PagingState<Int, PostPreview>): Int? { + return state.anchorPosition?.let{ anchorPosition-> + val anchorPage=state.closestPageToPosition(anchorPosition) + anchorPage?.prevKey?.plus(1)?:anchorPage?.nextKey?.minus(1) + } + } + }
\ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/paging/SearchPostsRepository.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/paging/SearchPostsRepository.kt index 4eeb85b..f43bc31 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/paging/SearchPostsRepository.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/paging/SearchPostsRepository.kt @@ -4,7 +4,6 @@ import android.app.Activity import androidx.paging.Pager import androidx.paging.PagingConfig import androidx.paging.PagingData -import androidx.paging.cachedIn import com.example.brzodolokacije.Models.PostPreview import com.example.brzodolokacije.Models.SearchParams import com.example.brzodolokacije.Services.RetrofitHelper @@ -14,6 +13,7 @@ class SearchPostsRepository(val activity: Activity,val searchParams: SearchParam companion object{ const val DEFAULT_PAGE_SIZE=20 const val DEFAULT_PAGE_INDEX=1 + const val PREFETCH_DISTANCE=6 fun getInstance(activity: Activity,searchParams: SearchParams)=SearchPostsRepository(activity,searchParams) } @@ -26,6 +26,6 @@ class SearchPostsRepository(val activity: Activity,val searchParams: SearchParam } private fun getDefaultPageConfig(): PagingConfig { - return PagingConfig(pageSize= DEFAULT_PAGE_SIZE, enablePlaceholders = false) + return PagingConfig(pageSize= DEFAULT_PAGE_SIZE, prefetchDistance = PREFETCH_DISTANCE, enablePlaceholders = false) } }
\ No newline at end of file |