Skip to content

Commit 631efd7

Browse files
authored
time series filtering
time series filtering implemented
2 parents d69b6bc + ce38364 commit 631efd7

33 files changed

+813
-136
lines changed

app/src/main/java/com/github/code/gambit/data/remote/NetworkDataSource.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import com.github.code.gambit.data.model.User
77
interface NetworkDataSource {
88
suspend fun getFiles(): List<File>
99
suspend fun searchFiles(searchParam: String): List<File>
10+
suspend fun filterFiles(start: String, end: String): List<File>
1011
suspend fun uploadFile(file: File): File
1112
suspend fun deleteFile(fileId: String): File
1213

app/src/main/java/com/github/code/gambit/data/remote/NetworkDataSourceImpl.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@ class NetworkDataSourceImpl(
2323
return fileNetworkMapper.mapFromEntityList(fileService.getFiles())
2424
}
2525

26+
override suspend fun filterFiles(start: String, end: String): List<File> {
27+
return fileNetworkMapper.mapFromEntityList(fileService.filterFiles(start, end))
28+
}
29+
2630
override suspend fun searchFiles(searchParam: String): List<File> {
2731
return fileNetworkMapper.mapFromEntityList(fileService.searchFile(searchParam))
2832
}

app/src/main/java/com/github/code/gambit/data/remote/services/ApiService.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,14 @@ interface ApiService {
3232
@Query(AppConstant.API_QUERY.FILE_SEARCH) searchParam: String?
3333
): ListResponse<FileNetworkEntity>
3434

35+
@GET("user/{${AppConstant.API_PATH.USER_ID}}/file")
36+
suspend fun filterFiles(
37+
@Path("userId") userId: String,
38+
@Query(AppConstant.API_QUERY.FILE_LEK) lastEvalKey: String?,
39+
@Query(AppConstant.API_QUERY.FILTER_START) start: String?,
40+
@Query(AppConstant.API_QUERY.FILTER_END) end: String?
41+
): ListResponse<FileNetworkEntity>
42+
3543
@GET("user/{${AppConstant.API_PATH.USER_ID}}/file")
3644
suspend fun getFiles(@Path("userId") userId: String): ListResponse<FileNetworkEntity>
3745

app/src/main/java/com/github/code/gambit/data/remote/services/file/FileService.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ interface FileService {
66

77
suspend fun getFiles(): List<FileNetworkEntity>
88
suspend fun searchFile(searchParam: String): List<FileNetworkEntity>
9+
suspend fun filterFiles(start: String, end: String): List<FileNetworkEntity>
910
suspend fun uploadFile(fileNetworkEntity: FileNetworkEntity): FileNetworkEntity
1011
suspend fun deleteFile(fileId: String): FileNetworkEntity
1112
}

app/src/main/java/com/github/code/gambit/data/remote/services/file/FileServiceImpl.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,11 @@ class FileServiceImpl(
2626
return listResponse.body.items
2727
}
2828

29+
override suspend fun filterFiles(start: String, end: String): List<FileNetworkEntity> {
30+
val response = apiService.filterFiles(userId, null, start, end)
31+
return response.body.items
32+
}
33+
2934
override suspend fun searchFile(searchParam: String): List<FileNetworkEntity> {
3035
val response = apiService.getFiles(userId, null, searchParam)
3136
return response.body.items

app/src/main/java/com/github/code/gambit/repositories/HomeRepository.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@ package com.github.code.gambit.repositories
33
import com.github.code.gambit.data.model.File
44
import com.github.code.gambit.data.model.Url
55
import com.github.code.gambit.helper.ServiceResult
6+
import com.github.code.gambit.ui.fragment.home.filtercomponent.Filter
67
import kotlinx.coroutines.flow.Flow
78

89
interface HomeRepository {
910

1011
suspend fun getFiles(): Flow<ServiceResult<List<File>>>
1112
suspend fun searchFile(searchString: String): Flow<ServiceResult<List<File>>>
13+
suspend fun searchFileByFilter(filter: Filter): Flow<ServiceResult<List<File>>>
1214
suspend fun generateUrl(file: File): Flow<ServiceResult<Url>>
1315
suspend fun getUrls(fileId: String): Flow<ServiceResult<List<Url>>>
1416
}

app/src/main/java/com/github/code/gambit/repositories/HomeRepositoryImpl.kt

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,14 @@ import com.github.code.gambit.data.model.File
55
import com.github.code.gambit.data.model.Url
66
import com.github.code.gambit.data.remote.NetworkDataSource
77
import com.github.code.gambit.helper.ServiceResult
8+
import com.github.code.gambit.ui.fragment.home.filtercomponent.Filter
9+
import com.github.code.gambit.utility.AppConstant
810
import com.github.code.gambit.utility.NoInternetException
911
import kotlinx.coroutines.flow.Flow
1012
import kotlinx.coroutines.flow.flow
1113
import java.lang.Exception
14+
import java.text.SimpleDateFormat
15+
import java.util.Locale
1216

1317
class HomeRepositoryImpl
1418
constructor(
@@ -33,6 +37,22 @@ constructor(
3337
}
3438
}
3539

40+
override suspend fun searchFileByFilter(filter: Filter): Flow<ServiceResult<List<File>>> {
41+
val sdf = SimpleDateFormat(AppConstant.FILTER_DATE_TEMPLATE, Locale.getDefault())
42+
val start = sdf.format(filter.start)
43+
val end = sdf.format(filter.end)
44+
return flow {
45+
try {
46+
val data = networkDataSource.filterFiles(start, end)
47+
emit(ServiceResult.Success(data))
48+
} catch (internet: NoInternetException) {
49+
emit(ServiceResult.Error(internet))
50+
} catch (exception: Exception) {
51+
emit(ServiceResult.Error(exception))
52+
}
53+
}
54+
}
55+
3656
override suspend fun searchFile(searchString: String): Flow<ServiceResult<List<File>>> {
3757
return flow {
3858
try {

app/src/main/java/com/github/code/gambit/ui/BaseAdapter.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import androidx.viewbinding.ViewBinding
1010

1111
/**
1212
* Use as a base class for all the adapters in this project
13-
* @author Danish Jamal <https://github.com/danishjamal104>
13+
* @author Danish Jamal [https://github.com/danishjamal104]
1414
* @param [T] It describes the model class
1515
* @param [B] It describes the view binding class
1616
* @param [LS] It describes the listener class

app/src/main/java/com/github/code/gambit/ui/activity/main/MainActivity.kt

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,12 @@ import com.github.code.gambit.R
2020
import com.github.code.gambit.databinding.ActivityMainBinding
2121
import com.github.code.gambit.helper.file.FileUploadState
2222
import com.github.code.gambit.ui.fragment.BottomNavController
23-
import com.github.code.gambit.ui.fragment.home.HomeFragment
23+
import com.github.code.gambit.ui.fragment.home.main.HomeFragment
2424
import com.github.code.gambit.utility.SystemManager
2525
import com.github.code.gambit.utility.extention.bottomNavHide
2626
import com.github.code.gambit.utility.extention.bottomNavShow
27+
import com.github.code.gambit.utility.extention.hide
28+
import com.github.code.gambit.utility.extention.show
2729
import com.github.code.gambit.utility.extention.snackbar
2830
import com.github.code.gambit.utility.extention.toggleVisibility
2931
import com.github.code.gambit.utility.sharedpreference.UserManager
@@ -162,9 +164,6 @@ class MainActivity : AppCompatActivity(), BottomNavController {
162164
fragment.isSearchEnable() -> {
163165
fragment.closeSearch()
164166
}
165-
fragment.isFileUrlEnable() -> {
166-
fragment.closeFileUrl()
167-
}
168167
else -> {
169168
finish()
170169
}
@@ -183,6 +182,11 @@ class MainActivity : AppCompatActivity(), BottomNavController {
183182

184183
override fun animateBottomNav(offset: Float) {
185184
if (this::_binding.isInitialized && offset.isFinite()) {
185+
if (offset == 0f) {
186+
binding.bottomLayout.hide()
187+
} else {
188+
binding.bottomLayout.show()
189+
}
186190
binding.bottomLayout.animate().alpha(offset).scaleX(offset).scaleY(offset)
187191
.setDuration(0).start()
188192
}

app/src/main/java/com/github/code/gambit/ui/fragment/home/FileSearchComponent.kt

Lines changed: 0 additions & 11 deletions
This file was deleted.

0 commit comments

Comments
 (0)