Skip to content

Commit 061f31d

Browse files
in app file uploading status enhanced
rebase
1 parent a5fa502 commit 061f31d

File tree

13 files changed

+76
-136
lines changed

13 files changed

+76
-136
lines changed

app/src/main/java/com/github/code/gambit/backgroundtask/FileUploadWorker.kt

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ import androidx.work.WorkerParameters
1616
import androidx.work.workDataOf
1717
import com.github.code.gambit.R
1818
import com.github.code.gambit.data.entity.chache.FileCacheEntity
19-
import com.github.code.gambit.data.entity.chache.FileMetaDataCacheEntity
2019
import com.github.code.gambit.data.entity.network.FileNetworkEntity
2120
import com.github.code.gambit.data.local.Database
2221
import com.github.code.gambit.data.mapper.cache.FileCacheMapper
@@ -36,7 +35,6 @@ import retrofit2.converter.gson.GsonConverterFactory
3635
import timber.log.Timber
3736
import java.io.File
3837
import java.lang.Exception
39-
import java.util.Calendar
4038
import kotlin.math.pow
4139

4240
class FileUploadWorker(ctx: Context, params: WorkerParameters) : CoroutineWorker(ctx, params) {
@@ -62,19 +60,6 @@ class FileUploadWorker(ctx: Context, params: WorkerParameters) : CoroutineWorker
6260
val fmd = FileMetaData.fromString(fileMetaDataString)
6361
val uid = System.currentTimeMillis().toInt()
6462
val size = String.format("%.2f", fmd.size.div(10.0.pow(6.0)))
65-
try {
66-
val data = FileMetaDataCacheEntity(
67-
id.toString(),
68-
Calendar.getInstance().timeInMillis,
69-
fmd.path,
70-
fmd.name,
71-
fmd.size
72-
)
73-
fileMetaDataDao.insertFileMetaData(data)
74-
Timber.tag("worker").i("added file in db")
75-
} catch (err: Exception) {
76-
Timber.tag("worker").i(err.localizedMessage)
77-
}
7863
setForeground(
7964
makeStatusNotification(
8065
uid,
@@ -94,7 +79,6 @@ class FileUploadWorker(ctx: Context, params: WorkerParameters) : CoroutineWorker
9479
}*/
9580
val file = File(fmd.path)
9681
val res = InfuraIPFS().add.file(file, fmd.name, fmd.name).Hash
97-
val fileDao = fileDao
9882
val fileService = getFileService()
9983
val fne = FileNetworkEntity("", "", res, fmd.name, fmd.size, fmd.name.split(".")[1])
10084
val task = fileService.uploadFile(fne)

app/src/main/java/com/github/code/gambit/data/local/CacheDataSource.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@ interface CacheDataSource {
1212
suspend fun deleteFiles(): Int
1313
suspend fun insertUrls(urls: List<Url>): Long
1414
suspend fun getUrls(fileId: String): List<Url>
15-
suspend fun insertFileMetaData(fileMetaData: FileMetaData, uuid: String)
16-
suspend fun getFileMetaData(uuid: String): FileMetaData
15+
suspend fun insertFileMetaData(fileMetaData: FileMetaData): Long
1716
suspend fun getAllFileMetaData(): List<FileMetaData>
1817
suspend fun deleteFileMetaData(uuid: String)
1918
suspend fun clearAllFileMetaData()

app/src/main/java/com/github/code/gambit/data/local/CacheDataSourceImpl.kt

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import com.github.code.gambit.data.mapper.cache.UrlCacheMapper
77
import com.github.code.gambit.data.model.File
88
import com.github.code.gambit.data.model.FileMetaData
99
import com.github.code.gambit.data.model.Url
10-
import java.util.Calendar
1110

1211
class CacheDataSourceImpl
1312
constructor(
@@ -50,17 +49,11 @@ constructor(
5049
return urlCacheMapper.mapFromEntityList(urls)
5150
}
5251

53-
override suspend fun insertFileMetaData(fileMetaData: FileMetaData, uuid: String) {
52+
override suspend fun insertFileMetaData(fileMetaData: FileMetaData): Long {
5453
val data: FileMetaDataCacheEntity = fileMetaDataMapper.mapToEntity(fileMetaData)
55-
data.timestamp = Calendar.getInstance().timeInMillis
5654
return fileWorkerDao.insertFileMetaData(data)
5755
}
5856

59-
override suspend fun getFileMetaData(uuid: String): FileMetaData {
60-
val res = fileWorkerDao.getFileMetaData(uuid)[0]
61-
return FileMetaData(res.path, res.name, res.size)
62-
}
63-
6457
override suspend fun getAllFileMetaData(): List<FileMetaData> {
6558
return fileMetaDataMapper.mapFromEntityList(fileWorkerDao.getAllFileMetaData())
6659
}

app/src/main/java/com/github/code/gambit/data/local/Database.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import com.github.code.gambit.data.entity.chache.FileCacheEntity
66
import com.github.code.gambit.data.entity.chache.FileMetaDataCacheEntity
77
import com.github.code.gambit.data.entity.chache.UrlCacheEntity
88

9-
@Database(entities = [FileCacheEntity::class, UrlCacheEntity::class, FileMetaDataCacheEntity::class], version = 2)
9+
@Database(entities = [FileCacheEntity::class, UrlCacheEntity::class, FileMetaDataCacheEntity::class], version = 4)
1010
abstract class Database : RoomDatabase() {
1111

1212
abstract fun fileDao(): FileDao

app/src/main/java/com/github/code/gambit/data/local/FileMetaDataDao.kt

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,7 @@ import com.github.code.gambit.data.entity.chache.FileMetaDataCacheEntity
1010
interface FileMetaDataDao {
1111

1212
@Insert(onConflict = OnConflictStrategy.REPLACE)
13-
suspend fun insertFileMetaData(fileMetaDataCacheEntity: FileMetaDataCacheEntity)
14-
15-
@Query("SELECT * FROM fileMetaData WHERE uuid = :uuid")
16-
suspend fun getFileMetaData(uuid: String): List<FileMetaDataCacheEntity>
13+
suspend fun insertFileMetaData(fileMetaDataCacheEntity: FileMetaDataCacheEntity): Long
1714

1815
@Query("SELECT * FROM fileMetaData ORDER BY timestamp DESC")
1916
suspend fun getAllFileMetaData(): List<FileMetaDataCacheEntity>

app/src/main/java/com/github/code/gambit/data/mapper/cache/FileMetaDataMapper.kt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,13 @@ class FileMetaDataMapper
1010
constructor() : EntityMapper<FileMetaDataCacheEntity, FileMetaData> {
1111

1212
override fun mapFromEntity(entity: FileMetaDataCacheEntity): FileMetaData {
13-
return FileMetaData(entity.path, entity.name, entity.size, entity.uuid)
13+
return FileMetaData(entity.path, entity.name, entity.size, entity.timestamp, entity.uuid)
1414
}
1515

1616
override fun mapToEntity(domainModel: FileMetaData): FileMetaDataCacheEntity {
17-
val uuid = domainModel.uuid?.let { domainModel.uuid } ?: ""
1817
return FileMetaDataCacheEntity(
19-
uuid,
20-
0L,
18+
domainModel.uuid,
19+
domainModel.timestamp,
2120
domainModel.path,
2221
domainModel.name,
2322
domainModel.size

app/src/main/java/com/github/code/gambit/data/model/FileMetaData.kt

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,19 @@ package com.github.code.gambit.data.model
22

33
import java.lang.IndexOutOfBoundsException
44

5-
class FileMetaData(val path: String, val name: String, val size: Int, var uuid: String? = null) {
5+
class FileMetaData(val path: String, val name: String, val size: Int, val timestamp: Long, var uuid: String) {
66

77
companion object {
88
fun fromString(string: String): FileMetaData {
99
val arr = string.split("\n")
10-
if (arr.size < 3) {
10+
if (arr.size < 5) {
1111
throw throw IndexOutOfBoundsException("Invalid string")
1212
}
13-
if (arr.size == 4) {
14-
return FileMetaData(arr[0], arr[1], arr[2].toInt(), arr[3])
15-
}
16-
return FileMetaData(arr[0], arr[1], arr[2].toInt())
13+
return FileMetaData(arr[0], arr[1], arr[2].toInt(), arr[3].toLong(), arr[4])
1714
}
1815
}
1916

2017
override fun toString(): String {
21-
if (uuid != null) {
22-
return "$path\n$name\n$size\n$uuid"
23-
}
24-
return "$path\n$name\n$size"
18+
return "$path\n$name\n$size\n$timestamp\n$uuid"
2519
}
2620
}

app/src/main/java/com/github/code/gambit/helper/file/FileUploadState.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import com.github.code.gambit.data.entity.network.FileNetworkEntity
55
import com.github.code.gambit.data.model.FileUploadStatus
66

77
sealed class FileUploadState {
8+
data class Error(val message: String) : FileUploadState()
89
data class UploadStarted(val fileName: String) : FileUploadState()
910
data class UploadSuccess(val file: FileNetworkEntity) : FileUploadState()
1011
data class UpdateFileState(val uuid: String, val newState: WorkInfo.State) : FileUploadState()

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

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,10 @@ package com.github.code.gambit.repositories.fileupload
22

33
import com.github.code.gambit.data.model.FileMetaData
44
import com.github.code.gambit.helper.ServiceResult
5-
import java.util.UUID
65

76
interface FileUploadRepository {
87

9-
suspend fun getFileMetaData(uuid: String): ServiceResult<FileMetaData>
8+
suspend fun getAllFileMetaData(): ServiceResult<List<FileMetaData>>
109

11-
suspend fun getFilesMetaData(uuids: List<String>): ServiceResult<List<FileMetaData>>
12-
13-
suspend fun insertFileUploadInfo(fileMetaData: FileMetaData, uuid: UUID): ServiceResult<Unit>
14-
15-
suspend fun deleteFileMetaData(uuid: UUID): ServiceResult<Unit>
10+
suspend fun insertFileMetaData(fileMetaData: FileMetaData): ServiceResult<Unit>
1611
}

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

Lines changed: 7 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -3,50 +3,26 @@ package com.github.code.gambit.repositories.fileupload
33
import com.github.code.gambit.data.local.CacheDataSource
44
import com.github.code.gambit.data.model.FileMetaData
55
import com.github.code.gambit.helper.ServiceResult
6+
import timber.log.Timber
67
import java.lang.Exception
7-
import java.util.UUID
88

99
class FileUploadRepositoryImpl(
1010
private val cacheDataSource: CacheDataSource
1111
) : FileUploadRepository {
1212

13-
override suspend fun getFileMetaData(uuid: String): ServiceResult<FileMetaData> {
13+
override suspend fun getAllFileMetaData(): ServiceResult<List<FileMetaData>> {
1414
return try {
15-
val res = cacheDataSource.getFileMetaData(uuid)
16-
ServiceResult.Success(res)
15+
val data = cacheDataSource.getAllFileMetaData()
16+
ServiceResult.Success(data)
1717
} catch (err: Exception) {
1818
ServiceResult.Error(err)
1919
}
2020
}
2121

22-
override suspend fun getFilesMetaData(uuids: List<String>): ServiceResult<List<FileMetaData>> {
22+
override suspend fun insertFileMetaData(fileMetaData: FileMetaData): ServiceResult<Unit> {
2323
return try {
24-
val res = mutableListOf<FileMetaData>()
25-
uuids.forEach {
26-
val dt = cacheDataSource.getFileMetaData(it)
27-
res.add(dt)
28-
}
29-
ServiceResult.Success(res)
30-
} catch (err: Exception) {
31-
ServiceResult.Error(err)
32-
}
33-
}
34-
35-
override suspend fun insertFileUploadInfo(
36-
fileMetaData: FileMetaData,
37-
uuid: UUID
38-
): ServiceResult<Unit> {
39-
return try {
40-
cacheDataSource.insertFileMetaData(fileMetaData, uuid.toString())
41-
ServiceResult.Success(Unit)
42-
} catch (err: Exception) {
43-
ServiceResult.Error(err)
44-
}
45-
}
46-
47-
override suspend fun deleteFileMetaData(uuid: UUID): ServiceResult<Unit> {
48-
return try {
49-
cacheDataSource.deleteFileMetaData(uuid.toString())
24+
val res = cacheDataSource.insertFileMetaData(fileMetaData)
25+
Timber.tag("work").i("inserted $res")
5026
ServiceResult.Success(Unit)
5127
} catch (err: Exception) {
5228
ServiceResult.Error(err)

0 commit comments

Comments
 (0)