Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Room Park Android
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Vladislav Bogdashkin
Room Park Android
Commits
633d6223
Commit
633d6223
authored
Apr 17, 2020
by
Vladislav Bogdashkin
🎣
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
refactoring, remove logs
parent
5ee2709b
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
108 additions
and
117 deletions
+108
-117
RetrofitModule.kt
...oompark/data/repository/api/retrofit/di/RetrofitModule.kt
+1
-1
FileModule.kt
...iganto/visual/roompark/data/repository/file/FileModule.kt
+0
-1
TourDownloadService.kt
...ual/roompark/data/service/download/TourDownloadService.kt
+13
-8
DownloadUseCase.kt
...iganto/visual/roompark/domain/use_case/DownloadUseCase.kt
+2
-2
toures.kt
...ava/com/biganto/visual/roompark/domain/use_case/toures.kt
+92
-100
ScreenController.kt
...roompark/presentation/screen/settings/ScreenController.kt
+0
-5
No files found.
app/src/main/java/com/biganto/visual/roompark/data/repository/api/retrofit/di/RetrofitModule.kt
View file @
633d6223
...
...
@@ -36,7 +36,7 @@ private const val TIMEOUT_SECONDS=120L
private
const
val
WRITE_SECONDS
=
120L
private
const
val
READ_SECONDS
=
120L
val
INTERCEPT_LOG_LEVEL
=
HttpLoggingInterceptor
.
Level
.
HEADERS
val
INTERCEPT_LOG_LEVEL
=
HttpLoggingInterceptor
.
Level
.
NONE
@Module
class
RetrofitModule
{
...
...
app/src/main/java/com/biganto/visual/roompark/data/repository/file/FileModule.kt
View file @
633d6223
...
...
@@ -60,7 +60,6 @@ class FileModule @Inject constructor(val context: Application) {
fun
saveFileToDisk
(
file
:
File
,
content
:
String
){
Timber
.
d
(
"write to : $file"
)
Timber
.
d
(
"write to : ${file.name}"
)
// file.createNewFile()
file
.
parentFile
.
mkdirs
()
file
.
writeText
(
content
)
//to json array because core unity method parse data like TourData[] Estate[] etc..
...
...
app/src/main/java/com/biganto/visual/roompark/data/service/download/TourDownloadService.kt
View file @
633d6223
...
...
@@ -175,7 +175,7 @@ class DownloadManagerService @Inject constructor(
val
sink
=
Okio
.
buffer
(
Okio
.
appendingSink
(
fileStorage
))
val
buffer
=
sink
.
buffer
()
var
read
=
0L
val
step
=
4096
val
step
=
8192
val
source
=
response
.
source
()
var
timer
=
System
.
currentTimeMillis
()
var
stop
:
Boolean
=
false
...
...
@@ -194,7 +194,6 @@ class DownloadManagerService @Inject constructor(
}
}
model
.
isDownloaded
=
(
source
.
exhausted
()
&&
(
model
.
fileDownloadedSize
==
model
.
tempOverallFileSize
||
model
.
tempOverallFileSize
==
0L
))
...
...
@@ -268,9 +267,10 @@ class DownloadManagerService @Inject constructor(
mergeFiles
(
fileEntities
)
val
jlist
=
db
.
getTourFilesJunction
(
tour
.
id
).
toList
()
Timber
.
d
(
"jlist:: ${jlist?.size} start ${jlist?.firstOrNull()?.id}"
)
val
junctionList
=
fileEntities
.
map
{
file
->
val
entity
=
jlist
.
firstOrNull
{
it
.
tour
==
tour
.
id
&&
it
.
file
==
file
.
uri
}
val
entity
=
jlist
.
firstOrNull
{
it
.
tour
==
tour
.
id
&&
it
.
file
.
uri
()
==
file
.
uri
.
uri
()
}
?:
TourFileJunctionEntity
().
apply
{
setTour
(
tour
.
id
)
setFile
(
file
.
uri
)
...
...
@@ -279,8 +279,8 @@ class DownloadManagerService @Inject constructor(
totalSize
+=
file
.
totalSize
entity
}
Timber
.
w
(
"fffff $downloadedSize $totalSize"
)
Timber
.
d
(
"junctionList:: ${junctionList.size} start ${junctionList.first().id}"
)
setDownloadInfo
(
raw
.
id
.
toString
()
,
tempLoadedFiles
=
0
...
...
@@ -337,7 +337,6 @@ class DownloadManagerService @Inject constructor(
.
observeOn
(
Schedulers
.
computation
())
// .doOnNext{Timber.d("7 ${it}")}
.
flatMap
{
model
->
Timber
.
d
(
" model __ ${model}"
)
setDownloadInfo
(
model
.
tourId
,
totalSizedDiffSize
=
model
.
tempTourTotalDiff
...
...
@@ -377,10 +376,13 @@ class DownloadManagerService @Inject constructor(
private
fun
downloadTourFromQueue
():
Observable
<
String
>
=
Observable
.
fromCallable
{
activeDownloading
.
set
(
true
);
downloadQueue
.
poll
()
}
.
doOnNext
{
Timber
.
d
(
"to load tour: ${it}"
)
}
.
flatMap
{
db
.
getTourPreview
(
it
).
observable
()
}
.
filter
{
Timber
.
d
(
"to load tour: ${it.isDownloaded} ${it.id}"
)
val
forward
=
it
.
isDownloaded
!=
DownloadState
.
Downloaded
activeDownloading
.
set
(
forward
)
Timber
.
d
(
"to load tour: $forward"
)
if
(!
forward
)
notifyDownloadProgress
()
forward
...
...
@@ -519,6 +521,7 @@ class DownloadManagerService @Inject constructor(
disposable
.
add
(
toursToDownloadObserver
.
flatMap
{
db
.
getTourPreview
(
it
).
observable
()
}
.
filter
{
it
.
isDownloaded
!=
DownloadState
.
Downloaded
}
.
doOnNext
{
it
.
isDownloaded
=
DownloadState
.
Downloading
it
.
downloadedFiles
=
0
...
...
@@ -531,18 +534,20 @@ class DownloadManagerService @Inject constructor(
.
subscribeOn
(
Schedulers
.
io
())
.
doOnError
(
Timber
::
e
)
.
subscribe
{
downloadQueue
.
add
(
it
)
}
)
}
private
fun
getMeta
(
tour
:
TourPreviewEntity
):
Observable
<
String
>
=
api
.
getTourMetaAsString
(
tour
.
id
)
.
doOnNext
{
meta
->
tour
.
let
{
.
map
{
meta
->
tour
.
apply
{
val
metaUri
=
RevisionString
(
"$META_PREDICTION${tour.id}$META_FILE_TYPE"
)
it
.
setMetaFileEntityId
(
metaUri
)
setMetaFileEntityId
(
metaUri
)
fileModule
.
saveFileToDisk
(
fileModule
.
getFile
(
metaUri
.
uri
()),
meta
)
}
}
.
flatMap
{
db
.
upsertTourPreview
(
it
)
}
.
map
{
tour
.
id
}
.
onErrorReturn
{
setTourStatus
(
tour
.
id
,
DownloadState
.
Crushed
)
...
...
app/src/main/java/com/biganto/visual/roompark/domain/use_case/DownloadUseCase.kt
View file @
633d6223
...
...
@@ -63,7 +63,7 @@ class DownloadUseCase @Inject constructor(
else
Okio
.
buffer
(
Okio
.
sink
(
fileStorage
))
val
buffer
=
sink
.
buffer
()
var
read
=
0L
val
step
=
4096
val
step
=
8192
val
source
=
response
.
source
()
var
stop
:
Boolean
=
token
.
isCancelled
sink
.
use
{
...
...
@@ -161,7 +161,7 @@ class DownloadUseCase @Inject constructor(
val
jlist
=
db
.
getTourFilesJunction
(
tour
.
id
).
toList
()
val
junctionList
=
fileEntities
.
map
{
file
->
val
entity
=
jlist
.
firstOrNull
{
it
.
tour
==
tour
.
id
&&
it
.
file
==
file
.
uri
}
val
entity
=
jlist
.
firstOrNull
{
it
.
tour
==
tour
.
id
&&
it
.
file
.
uri
()
==
file
.
uri
.
uri
()
}
?:
TourFileJunctionEntity
()
entity
.
setTour
(
tour
.
id
)
entity
.
setFile
(
file
.
uri
)
...
...
app/src/main/java/com/biganto/visual/roompark/domain/use_case/toures.kt
View file @
633d6223
...
...
@@ -33,12 +33,16 @@ class TourPreviewsUseCase @Inject constructor(
,
private
val
tours
:
TourContract
)
{
fun
getTourById
(
tourId
:
String
):
Observable
<
DownloadTourByIdResult
>
{
fun
getTourById
(
tourId
:
String
):
Observable
<
DownloadTourByIdResult
>
{
val
tour
=
retrieveTour
(
tourId
)
Timber
.
d
(
"retrieveTour $tourId / $tour"
)
if
(
tour
!=
null
)
{
if
(
tour
.
downloadState
==
DownloadState
.
Downloaded
)
return
Observable
.
just
<
DownloadTourByIdResult
>(
DownloadTourByIdResult
.
ReadyToPlay
(
tour
))
return
Observable
.
just
<
DownloadTourByIdResult
>(
DownloadTourByIdResult
.
ReadyToPlay
(
tour
)
)
return
setTourState
(
tour
.
tour_id
,
DownloadState
.
DownloadQueue
)
.
map
<
DownloadTourByIdResult
>
{
DownloadTourByIdResult
.
DownloadStarted
(
tour
)
}
...
...
@@ -50,21 +54,21 @@ class TourPreviewsUseCase @Inject constructor(
}
fun
retrieveTour
(
tourId
:
String
)
=
db
.
getTourPreview
(
tourId
)
.
asSequence
()
.
map
(
::
fromEntity
)
.
firstOrNull
()
db
.
getTourPreview
(
tourId
)
.
asSequence
()
.
map
(
::
fromEntity
)
.
firstOrNull
()
private
fun
setTourState
(
tourId
:
String
,
state
:
DownloadState
):
Observable
<
Boolean
>
=
db
.
getTourPreview
(
tourId
)
.
observable
()
.
doOnNext
{
it
.
isDownloaded
=
state
}
.
flatMap
{
db
.
upsertTourPreview
(
it
).
map
{
true
}
}
private
fun
setTourState
(
tourId
:
String
,
state
:
DownloadState
):
Observable
<
Boolean
>
=
db
.
getTourPreview
(
tourId
)
.
observable
()
.
doOnNext
{
it
.
isDownloaded
=
state
}
.
flatMap
{
db
.
upsertTourPreview
(
it
).
map
{
true
}
}
private
fun
syncTour
(
tourId
:
String
,
parentId
:
Int
):
Observable
<
TourModel
>
=
syncTour
(
tourId
,
parentId
,
calcTargetResolution
())
private
fun
syncTour
(
tourId
:
String
,
parentId
:
Int
):
Observable
<
TourModel
>
=
syncTour
(
tourId
,
parentId
,
calcTargetResolution
())
private
fun
syncTour
(
tourId
:
String
,
estateId
:
Int
,
targetResolution
:
Int
)
private
fun
syncTour
(
tourId
:
String
,
estateId
:
Int
,
targetResolution
:
Int
)
:
Observable
<
TourModel
>
{
val
request
=
ToursRemoteByIdRequestModel
(
arrayListOf
(
tourId
)
...
...
@@ -76,15 +80,16 @@ class TourPreviewsUseCase @Inject constructor(
.
map
{
if
(
it
.
isNullOrEmpty
())
throw
CustomApiException
.
TourByIdNotFoundException
()
it
.
first
()
}
it
.
first
()
}
.
doOnNext
{
it
.
isDownloaded
=
DownloadState
.
DownloadQueue
}
.
flatMap
{
db
.
upsertTourPreview
(
it
)
}
.
flatMap
{
db
.
upsertTourPreview
(
it
)
}
.
map
(
::
fromEntity
)
.
doOnError
(
Timber
::
e
)
}
private
fun
calcTargetResolution
():
Int
{
private
fun
calcTargetResolution
():
Int
{
val
w
=
Resources
.
getSystem
().
displayMetrics
.
widthPixels
val
h
=
Resources
.
getSystem
().
displayMetrics
.
heightPixels
return
w
.
coerceAtLeast
(
h
)
...
...
@@ -93,10 +98,13 @@ class TourPreviewsUseCase @Inject constructor(
private
fun
forceTourUpdate
(
requestModel
:
ToursRemoteByIdRequestModel
):
Observable
<
List
<
TourPreviewEntity
>>
=
api
.
getToursPreviewById
(
requestModel
.
ids
)
.
subscribeOn
(
Schedulers
.
io
())
.
map
{
fromRaw
(
it
,
requestModel
.
estateId
,
api
.
provideHttpUrl
().
toString
()
,
requestModel
.
targetResolution
)
.
map
{
fromRaw
(
it
,
requestModel
.
estateId
,
api
.
provideHttpUrl
().
toString
()
,
requestModel
.
targetResolution
)
}
...
...
@@ -104,56 +112,60 @@ class TourPreviewsUseCase @Inject constructor(
db
.
getEstateTourPreviews
(
estateId
)
.
filter
{
!
it
.
isNullOrEmpty
()
}
private
fun
fetchApiTourList
(
multitourId
:
Int
,
estateId
:
Int
)
=
private
fun
fetchApiTourList
(
multitourId
:
Int
,
estateId
:
Int
)
=
auth
.
currentUser
()
.
doOnNext
{
Timber
.
d
(
"user on next: $it"
)
}
.
map
{
it
.
targetResolution
}
.
flatMap
{
res
->
Timber
.
d
(
"user: $res"
)
api
.
getOfferTours
(
multitourId
)
.
doOnError
{
Timber
.
e
(
it
)
}
.
map
{
mergeRaw
(
it
,
TourRemoteRequestModel
(
estateId
,
api
.
provideHttpUrl
().
toString
(),
res
api
.
getOfferTours
(
multitourId
)
.
doOnError
{
Timber
.
e
(
it
)
}
.
map
{
mergeRaw
(
it
,
TourRemoteRequestModel
(
estateId
,
api
.
provideHttpUrl
().
toString
(),
res
)
)
)
}
.
map
{
it
}
.
doOnNext
{
db
.
blockingUpsert
(
it
)
}
}
}
.
map
{
it
}
.
doOnNext
{
db
.
blockingUpsert
(
it
)
}
}
fun
fetchTourOffer
(
multitourId
:
Int
,
parent
:
Int
)
=
fun
fetchTourOffer
(
multitourId
:
Int
,
parent
:
Int
):
Observable
<
List
<
TourModel
>>
=
Observable
.
mergeDelayError
(
arrayListOf
(
fetchDbTourList
(
parent
),
fetchApiTourList
(
multitourId
,
parent
))
arrayListOf
(
fetchDbTourList
(
parent
),
fetchApiTourList
(
multitourId
,
parent
))
)
.
take
(
1
)
.
doOnError
{
Timber
.
e
(
it
)
}
.
map
(
::
fromEntity
)
.
map
(
::
fromEntity
)
.
subscribeOn
(
Schedulers
.
io
())
private
fun
mergeRaw
(
raw
:
List
<
TourPreviewRaw
>,
requestRequestModel
:
TourRemoteRequestModel
)
=
raw
.
map
{
mergeRaw
(
it
,
requestRequestModel
)
}
raw
.
map
{
mergeRaw
(
it
,
requestRequestModel
)
}
private
fun
mergeRaw
(
raw
:
TourPreviewRaw
,
requestRequestModel
:
TourRemoteRequestModel
)
:
TourPreviewEntity
{
Timber
.
d
(
"got raw: $raw"
)
val
entity
=
db
.
getTourPreview
(
raw
.
id
.
toString
()).
firstOrNull
()
?:
return
fromRaw
(
raw
?:
return
fromRaw
(
raw
,
requestRequestModel
.
estateId
,
api
.
provideHttpUrl
().
toString
()
,
requestRequestModel
.
targetResolution
)
,
requestRequestModel
.
targetResolution
)
val
fromApi
=
fromRaw
(
raw
val
fromApi
=
fromRaw
(
raw
,
requestRequestModel
.
estateId
,
api
.
provideHttpUrl
().
toString
()
,
requestRequestModel
.
targetResolution
)
,
requestRequestModel
.
targetResolution
)
if
(
fromApi
.
updated
>
entity
.
updated
&&
entity
.
isDownloaded
==
DownloadState
.
Downloaded
)
{
&&
entity
.
isDownloaded
==
DownloadState
.
Downloaded
)
{
entity
.
isDownloaded
=
DownloadState
.
NotSynced
//maxState(entity.isDownloaded, fromApi.isDownloaded)
return
entity
...
...
@@ -163,19 +175,18 @@ class TourPreviewsUseCase @Inject constructor(
// if (fromApi.estate.id!=requestRequestModel.estateId)
// entity.estate=fromApi.estate
fromApi
.
setMetaFileEntityId
(
entity
.
metaFileEntityId
)
fromApi
.
targetResolution
=
entity
.
targetResolution
fromApi
.
isDownloaded
=
entity
.
isDownloaded
fromApi
.
overallSize
=
entity
.
overallSize
fromApi
.
downloadedSize
=
entity
.
downloadedSize
fromApi
.
tempSize
=
entity
.
tempSize
fromApi
.
overallFiles
=
entity
.
overallFiles
fromApi
.
downloadedFiles
=
entity
.
downloadedFiles
fromApi
.
targetResolution
=
entity
.
targetResolution
fromApi
.
isDownloaded
=
entity
.
isDownloaded
fromApi
.
overallSize
=
entity
.
overallSize
fromApi
.
downloadedSize
=
entity
.
downloadedSize
fromApi
.
tempSize
=
entity
.
tempSize
fromApi
.
overallFiles
=
entity
.
overallFiles
fromApi
.
downloadedFiles
=
entity
.
downloadedFiles
return
fromApi
}
private
fun
getUserEstates
(
user
:
UserEntity
)
=
user
.
deals
?.
map
{
it
.
estate
}
?.
plus
(
private
fun
getUserEstates
(
user
:
UserEntity
)
=
user
.
deals
?.
map
{
it
.
estate
}
?.
plus
(
user
.
estates
?.
asSequence
()
?.
filter
{
it
.
favorite
}
...
...
@@ -185,18 +196,15 @@ class TourPreviewsUseCase @Inject constructor(
fun
fetchToursSizes
():
Observable
<
Long
>
=
auth
.
currentUser
()
.
map
(
::
getUserEstates
)
.
map
{
it
.
filter
{
estates
->
estates
.
multitourId
!=
null
}.
toList
()
}
.
map
(
::
getUserEstates
)
.
map
{
it
.
filter
{
estates
->
estates
.
multitourId
!=
null
}.
toList
()
}
.
map
{
estates
->
val
toursOffersToLoad
=
mutableListOf
<
Int
>()
estates
.
forEach
{
estates
.
forEach
{
if
(
it
.
tours
.
isNullOrEmpty
())
toursOffersToLoad
.
add
(
it
.
multitourId
!!
)
}
Timber
.
d
(
" targer estates : "
+
"${estates.map { it.tours?.size }} "
)
Timber
.
d
(
" targer toursOffersToLoad : $toursOffersToLoad "
)
Pair
(
estates
,
toursOffersToLoad
)
Pair
(
estates
,
toursOffersToLoad
)
}
.
flatMap
{
pair
->
if
(
pair
.
second
.
isNotEmpty
())
{
...
...
@@ -206,51 +214,45 @@ class TourPreviewsUseCase @Inject constructor(
fetchTourOffer
(
it
,
pair
.
first
.
first
{
estete
->
estete
.
multitourId
==
it
}.
id
).
doOnError
{
Timber
.
e
(
it
)
}
.
doOnNext
{
tours
->
loadedIds
.
addAll
(
tours
.
map
{
t
->
t
.
tour_id
})
}
.
doOnNext
{
tours
->
loadedIds
.
addAll
(
tours
.
map
{
t
->
t
.
tour_id
})
}
}
).
takeLast
(
1
)
.
doOnNext
{
db
.
refreshEntities
(
pair
.
first
)
}
.
map
{
Pair
(
pair
.
first
,
loadedIds
)}
}
else
return
@flatMap
Observable
.
just
(
Pair
(
pair
.
first
,
null
))
.
map
{
Pair
(
pair
.
first
,
loadedIds
)
}
}
else
return
@flatMap
Observable
.
just
(
Pair
(
pair
.
first
,
null
))
}
.
doOnNext
{
Timber
.
d
(
" HERER "
)
}
.
flatMap
{
pair
->
val
estates
=
pair
.
first
for
(
estate
in
estates
)
{
Timber
.
d
(
" targer estates : ${estate.user} "
)
}
val
r
=
(
estates
.
first
().
user
as
UserEntity
).
targetResolution
Timber
.
d
(
" targer R : $r "
)
var
knownSize
=
estates
.
flatMap
{
it
.
tours
?.
map
{
t
->
t
as
TourPreviewEntity
}
?.
asIterable
()
?:
arrayListOf
()
}.
filter
{
t
->
t
.
overallSize
>
0L
}
.
onEach
{
Timber
.
d
(
"it.overallSize - it.downloadedSize "
+
"${it.overallSize}/${it.downloadedSize}"
)
}
it
.
tours
?.
map
{
t
->
t
as
TourPreviewEntity
}
?.
asIterable
()
?:
arrayListOf
()
}
.
filter
{
t
->
t
.
overallSize
>
0L
}
.
sumByLong
{
it
.
overallSize
-
it
.
downloadedSize
}
Timber
.
d
(
" targer knownSize : $knownSize "
)
val
toursToLoadSize
=
estates
.
flatMap
{
it
.
tours
?.
map
{
t
->
t
as
TourPreviewEntity
}
?.
asIterable
()
?:
arrayListOf
()
}
.
filter
{
t
->
t
.
overallSize
<
1L
}
Timber
.
d
(
" targer toursToLoadSize : $toursToLoadSize "
)
val
listIds
=
toursToLoadSize
.
map
{
it
.
id
}.
toMutableList
()
pair
.
second
?.
let
{
listIds
.
addAll
(
it
)
}
Timber
.
d
(
" targer estates : ${listIds} "
)
if
(
listIds
.
isNullOrEmpty
())
return
@flatMap
Observable
.
just
(
knownSize
)
it
.
tours
?.
map
{
t
->
t
as
TourPreviewEntity
}
?.
asIterable
()
?:
arrayListOf
()
}
.
filter
{
t
->
t
.
overallSize
<
1L
}
.
map
{
it
.
id
}.
toMutableList
(
)
pair
.
second
?.
let
{
toursToLoadSize
.
addAll
(
it
)
}
if
(
toursToLoadSize
.
isNullOrEmpty
())
return
@flatMap
Observable
.
just
(
knownSize
)
else
return
@flatMap
api
.
getTourFilesSizes
(
listIds
,
r
.
toString
()
toursToLoadSize
,
r
.
toString
()
)
.
flatMapIterable
{
it
}
.
flatMap
{
rawSize
->
db
.
getTourPreview
(
rawSize
.
id
.
toString
())
.
observable
()
.
map
{
entity
->
.
map
{
entity
->
knownSize
+=
rawSize
.
total_size
entity
.
apply
{
overallSize
=
rawSize
.
total_size
...
...
@@ -258,7 +260,7 @@ class TourPreviewsUseCase @Inject constructor(
}
entity
}
.
doOnNext
{
db
.
upsert
(
it
).
blockingGet
()
}
.
doOnNext
{
db
.
upsert
(
it
).
blockingGet
()
}
}.
map
{
knownSize
}
}
.
subscribeOn
(
Schedulers
.
io
())
...
...
@@ -276,7 +278,6 @@ class TourPreviewsUseCase @Inject constructor(
auth
.
currentUser
()
.
map
{
user
->
val
estatesList
=
getUserEstates
(
user
)
estatesList
?.
asSequence
()
?.
filter
{
it
.
multitourId
!=
null
}
...
...
@@ -291,26 +292,17 @@ class TourPreviewsUseCase @Inject constructor(
)
}
}
.
doOnNext
{
Timber
.
d
(
"merged list:${it?.size}"
)
}
.
map
{
list
->
list
.
map
{
pair
->
api
.
getOfferTours
(
pair
.
first
)
.
doOnNext
{
Timber
.
d
(
" gonna merge"
)
}
.
map
{
mergeRaw
(
it
,
pair
.
second
)
mergeRaw
(
it
,
pair
.
second
)
}
.
map
{
it
}
.
doOnNext
{
Timber
.
d
(
"merged list:${it.size}"
)
}
.
blockingFirst
()
}
}
.
flatten
()
}
// .map { it.flatten() }
.
doOnNext
{
Timber
.
d
(
"merged flatten list:${it.size}"
)
}
.
flatMap
{
db
.
upsertTourPreview
(
it
)
}
.
subscribeOn
(
Schedulers
.
io
())
}
...
...
app/src/main/java/com/biganto/visual/roompark/presentation/screen/settings/ScreenController.kt
View file @
633d6223
...
...
@@ -208,11 +208,6 @@ class SettingsScreenController :
@SuppressLint
(
"SetTextI18n"
)
private
fun
render
(
viewState
:
SettingsScreenViewState
.
LoadSettingsList
){
toursDownloaderTitle
.
text
=
viewState
.
settings
.
offlineStoreData
[
0
].
title
+
"(${viewState.settings.offlineStoreData[0].amountBytes.bytesToSize()})"
flatDownloaderTitle
.
text
=
viewState
.
settings
.
offlineStoreData
[
1
].
title
+
"(${viewState.settings.offlineStoreData[1].amountBytes.bytesToSize()})"
}
private
fun
getComponent
()
=
DaggerSettingsScreenComponent
.
factory
()
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment