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  | 
