aboutsummaryrefslogtreecommitdiff
path: root/Client
diff options
context:
space:
mode:
authorJelena Petrovic <jelenapetrovic.7119@gmail.com>2022-11-25 14:20:01 +0100
committerJelena Petrovic <jelenapetrovic.7119@gmail.com>2022-11-25 14:20:01 +0100
commit58ec6770e075ace89d3bba9bc75b0a44673c36c7 (patch)
tree916d47b0e9ddbd28bda4ab572eab577e5667a701 /Client
parentb82100be223288538c4cd1d617733ffd053a1bb8 (diff)
Podeseno stranicenje tako da ucitava nove strane samo kada korisnik skroluje #48
Diffstat (limited to 'Client')
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsAdapter.kt9
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/paging/SearchPostsPagingSource.kt15
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/paging/SearchPostsRepository.kt4
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