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
a1899c07
Commit
a1899c07
authored
Dec 03, 2019
by
Vladislav Bogdashkin
🎣
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fetch and map webacms
parent
eb714450
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
67 additions
and
51 deletions
+67
-51
AlbumsRepository.kt
...to/visual/roompark/data/data_provider/AlbumsRepository.kt
+8
-29
response.kt
...ual/roompark/data/repository/api/retrofit/raw/response.kt
+1
-1
feeds.kt
...va/com/biganto/visual/roompark/domain/interactor/feeds.kt
+11
-5
webCamList.kt
...va/com/biganto/visual/roompark/domain/model/webCamList.kt
+32
-2
ScreenPresenter.kt
...ual/roompark/presentation/screen/feeds/ScreenPresenter.kt
+1
-1
ScreenViewState.kt
...ual/roompark/presentation/screen/feeds/ScreenViewState.kt
+1
-1
CamsLIstAdapter.kt
...ompark/presentation/screen/feeds/utils/CamsLIstAdapter.kt
+7
-4
cam_button_viewholder.xml
app/src/main/res/layout/cam_button_viewholder.xml
+3
-5
splash_screen.xml
app/src/main/res/layout/splash_screen.xml
+3
-3
No files found.
app/src/main/java/com/biganto/visual/roompark/data/data_provider/AlbumsRepository.kt
View file @
a1899c07
...
...
@@ -31,12 +31,11 @@ class AlbumsContractModule @Inject constructor(
TODO
(
"not implemented"
)
//To change body of created functions use File | Settings | File Templates.
}
override
fun
getWebCamsList
():
Observable
<
WebCamListModel
>
{
TODO
(
"not implemented"
)
//To change body of created functions use File | Settings | File Templates.
}
override
fun
getWebCamsList
():
Observable
<
WebCamListModel
>
=
fetchWebCams
()
override
fun
getWebCamStream
(
camId
:
Int
):
Observable
<
WebCamModel
>
{
TODO
(
"
not implemented"
)
//To change body of created functions use File | Settings | File Templates.
TODO
(
"
at current sight indeed function"
)
}
...
...
@@ -102,34 +101,14 @@ class AlbumsContractModule @Inject constructor(
//region cams
private
fun
fetchWebCamsApi
()
=
api
.
get
()
private
val
fetchWebCamsApi
=
api
.
get
WebCamsList
()
.
doOnNext
{
Timber
.
d
(
"raw0 $it"
)
}
.
map
{
fromRawList
(
it
,
::
fromRaw
)
}
.
doOnNext
(
db
::
blockingUpsert
)
.
doOnNext
{
it
.
asSequence
().
map
{
album
->
if
(
db
.
checkIfExistsAlbumJunction
(
album
.
id
,
parentAlbumId
)
!=
null
)
{
return
@map
null
}
val
entity
=
ImageAlbumJunctionEntity
()
entity
.
setAlbumId
(
album
.
id
)
entity
.
setParentId
(
parentAlbumId
)
entity
}.
filterNotNull
().
toList
().
also
{
junctions
->
db
.
blockingUpsert
(
junctions
)
}
}
.
map
{
fromRawList
(
it
)}
.
doOnNext
{
Timber
.
d
(
"mapped raw0 $it"
)
}
.
subscribeOn
(
Schedulers
.
io
())
private
fun
fetchAlbumsDb
(
parentAlbumId
:
Int
)
=
db
.
getChildAlbums
(
parentAlbumId
)
.
toList
()
.
toObservable
()
.
subscribeOn
(
Schedulers
.
io
())
private
fun
fetchAlbums
(
parentId
:
Int
):
Observable
<
List
<
AlbumPreviewModel
>>
=
Observable
.
mergeDelayError
(
arrayListOf
(
fetchAlbumsApi
(
parentId
),
fetchAlbumsDb
(
parentId
))
).
map
{
fromEntity
(
it
,
::
fromEntity
)
}
private
fun
fetchWebCams
():
Observable
<
WebCamListModel
>
=
fetchWebCamsApi
//endregion
}
...
...
app/src/main/java/com/biganto/visual/roompark/data/repository/api/retrofit/raw/response.kt
View file @
a1899c07
...
...
@@ -162,7 +162,7 @@ data class AppVersionRaw(
data class
WebCamRaw
(
val
id
:
Int
,
val
title
:
String
,
val
S
treams
:
List
<
StreamRaw
>
val
s
treams
:
List
<
StreamRaw
>
)
data class
StreamRaw
(
...
...
app/src/main/java/com/biganto/visual/roompark/domain/interactor/feeds.kt
View file @
a1899c07
...
...
@@ -2,6 +2,7 @@ package com.biganto.visual.roompark.domain.interactor
import
com.biganto.visual.roompark.domain.model.*
import
com.biganto.visual.roompark.domain.use_case.AlbumsUseCase
import
com.biganto.visual.roompark.domain.use_case.CamsUseCase
import
com.biganto.visual.roompark.domain.use_case.FeedUseCase
import
io.reactivex.Observable
import
java.util.*
...
...
@@ -13,7 +14,8 @@ import javax.inject.Inject
class
FeedsInteractor
@Inject
constructor
(
private
val
feedsUseCase
:
FeedUseCase
,
private
val
albumsUseCase
:
AlbumsUseCase
private
val
albumsUseCase
:
AlbumsUseCase
,
private
val
camsUseCase
:
CamsUseCase
)
{
fun
fetchTopFeeds
():
Observable
<
FeedsHeaderModel
>
=
...
...
@@ -36,7 +38,8 @@ class FeedsInteractor @Inject constructor(
fun
fetchAlbums
():
Observable
<
List
<
AlbumPreviewModel
>>
=
albumsUseCase
.
getProgressAlbums
()
fun
fetchCams
():
Observable
<
WebCamListModel
>
=
Observable
.
just
(
camsList
)
fun
fetchCams
():
Observable
<
WebCamListModel
>
=
camsUseCase
.
getWebCams
()
//Observable.just(camsList)
companion
object
{
...
...
@@ -178,17 +181,20 @@ class FeedsInteractor @Inject constructor(
WebCamModel
(
"Камера Дом №1"
,
1
,
"blob:https://room-park.ru/fd579683-4bda-4f87-8663-dfe6c02af2f1"
arrayListOf
()
// "blob:https://room-park.ru/fd579683-4bda-4f87-8663-dfe6c02af2f1"
),
WebCamModel
(
"Камера Дом №2"
,
2
,
"blob:https://room-park.ru/58956693-f36d-4f8a-bc89-9bded955dfdd"
arrayListOf
()
// "blob:https://room-park.ru/58956693-f36d-4f8a-bc89-9bded955dfdd"
),
WebCamModel
(
"Камера Дом №3"
,
3
,
"blob:https://room-park.ru/19d41d5a-565b-4fc9-a72f-06fbe87e8fb6"
arrayListOf
()
// "blob:https://room-park.ru/19d41d5a-565b-4fc9-a72f-06fbe87e8fb6"
)
))
}
...
...
app/src/main/java/com/biganto/visual/roompark/domain/model/webCamList.kt
View file @
a1899c07
package
com.biganto.visual.roompark.domain.model
import
com.biganto.visual.roompark.data.repository.api.retrofit.raw.StreamRaw
import
com.biganto.visual.roompark.data.repository.api.retrofit.raw.WebCamRaw
/**
* Created by Vladislav Bogdashkin on 23.09.2019.
*/
...
...
@@ -7,7 +10,34 @@ package com.biganto.visual.roompark.domain.model
data class
WebCamModel
(
val
title
:
String
,
val
index
:
Int
,
val
streamUrl
:
String
val
streams
:
List
<
StreamModel
>
)
data class
StreamModel
(
val
res_name
:
String
,
val
hls
:
String
,
val
rtmp
:
String
)
data class
WebCamListModel
(
val
items
:
List
<
WebCamModel
>)
fun
fromRaw
(
raw
:
StreamRaw
)
=
StreamModel
(
raw
.
res_name
,
raw
.
hls
,
raw
.
rtmp
)
fun
fromRaw
(
raw
:
WebCamRaw
)
=
WebCamModel
(
raw
.
title
,
raw
.
id
,
List
(
raw
.
streams
.
size
){
i
->
fromRaw
(
raw
.
streams
[
i
])
}
)
data class
WebCamListModel
(
val
items
:
List
<
WebCamModel
>)
\ No newline at end of file
fun
fromRawList
(
raw
:
List
<
WebCamRaw
>)
=
WebCamListModel
(
List
(
raw
.
size
){
i
->
fromRaw
(
raw
[
i
])
})
app/src/main/java/com/biganto/visual/roompark/presentation/screen/feeds/ScreenPresenter.kt
View file @
a1899c07
...
...
@@ -76,7 +76,7 @@ class FeedsScreenPresenter @Inject constructor(
val
selectCamera
=
intent
(
FeedsScreen
::
onCameraSelected
)
.
map
<
FeedsScreenViewState
>
{
FeedsScreenViewState
.
ToWebCam
(
it
.
index
,
it
.
streamUrl
)
FeedsScreenViewState
.
ToWebCam
(
it
.
index
)
}
val
selectArticle
=
intent
(
FeedsScreen
::
onArticleSelected
)
...
...
app/src/main/java/com/biganto/visual/roompark/presentation/screen/feeds/ScreenViewState.kt
View file @
a1899c07
...
...
@@ -31,7 +31,7 @@ sealed class FeedsScreenViewState : BigantoBaseViewState() {
class
ToAlbum
(
val
albumId
:
Int
)
:
FeedsScreenViewState
()
class
ToWebCam
(
val
camId
:
Int
,
val
camUrl
:
String
)
:
FeedsScreenViewState
()
class
ToWebCam
(
val
camId
:
Int
)
:
FeedsScreenViewState
()
}
data class
RestoreModel
(
...
...
app/src/main/java/com/biganto/visual/roompark/presentation/screen/feeds/utils/CamsLIstAdapter.kt
View file @
a1899c07
package
com.biganto.visual.roompark.presentation.screen.feeds.utils
import
android.view.View
import
android.widget.
Text
View
import
android.widget.
Image
View
import
butterknife.BindView
import
com.biganto.visual.roompark.R
import
com.biganto.visual.roompark.domain.model.WebCamModel
import
com.biganto.visual.roompark.presentation.screen.settings.util.CommonRecyclerAdapter
import
com.biganto.visual.roompark.presentation.screen.settings.util.CommonViewHolder
import
com.google.android.material.textview.MaterialTextView
/**
...
...
@@ -18,13 +19,15 @@ class CamsListAdapter : CommonRecyclerAdapter<CamListViewHolder,WebCamModel>() {
override
fun
getVhLayout
():
Int
=
R
.
layout
.
cam_button_viewholder
}
class
CamListViewHolder
(
itemView
:
View
)
:
CommonViewHolder
<
WebCamModel
>(
itemView
)
{
@BindView
(
R
.
id
.
camTitle
)
lateinit
var
camTitle
:
TextView
@BindView
(
R
.
id
.
camStatus
)
lateinit
var
camStatus
:
View
@BindView
(
R
.
id
.
camTitle
)
lateinit
var
camTitle
:
MaterialTextView
@BindView
(
R
.
id
.
camStatus
)
lateinit
var
camStatus
:
MaterialTextView
@BindView
(
R
.
id
.
camStatusIcon
)
lateinit
var
camStatusIcon
:
ImageView
override
fun
onViewBound
(
model
:
WebCamModel
)
{
camTitle
.
text
=
model
.
title
camStatus
.
text
=
if
(
model
.
streams
.
isNullOrEmpty
())
"ОФФЛАЙН"
else
"ОНЛАЙН"
camStatusIcon
.
visibility
=
if
(
model
.
streams
.
isNullOrEmpty
())
View
.
GONE
else
View
.
VISIBLE
}
}
app/src/main/res/layout/cam_button_viewholder.xml
View file @
a1899c07
...
...
@@ -33,11 +33,10 @@
android:layout_marginLeft=
"16dp"
android:layout_weight=
"1"
android:gravity=
"center_vertical|fill_vertical"
android:text=
"TextView"
android:textAlignment=
"viewStart"
/>
android:text=
"TextView"
/>
<ImageView
android:id=
"@+id/
imageView3
"
android:id=
"@+id/
camStatusIcon
"
android:layout_width=
"8dp"
android:layout_height=
"8dp"
android:layout_gravity=
"start|center_vertical"
...
...
@@ -55,7 +54,6 @@
android:layout_marginEnd=
"16dp"
android:layout_weight=
"0"
android:gravity=
"center_vertical|fill_vertical"
android:text=
"ОНЛАЙН"
android:textAlignment=
"viewStart"
/>
android:text=
"ОНЛАЙН"
/>
</LinearLayout>
</LinearLayout>
\ No newline at end of file
app/src/main/res/layout/splash_screen.xml
View file @
a1899c07
...
...
@@ -14,7 +14,7 @@
<ImageView
android:layout_width=
"32dp"
android:layout_height=
"wrap_content"
app:srcCompat=
"@drawable/ic_onlyr"
android:id=
"@+id/
imageView3
"
android:id=
"@+id/
camStatusIcon
"
app:layout_constraintEnd_toEndOf=
"@+id/splashBackground"
app:layout_constraintStart_toStartOf=
"@+id/splashBackground"
app:layout_constraintBottom_toBottomOf=
"parent"
android:layout_marginTop=
"8dp"
app:layout_constraintTop_toTopOf=
"@+id/splashBackground"
...
...
@@ -25,7 +25,7 @@
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:id=
"@+id/logo_header"
android:layout_marginBottom=
"8dp"
app:layout_constraintBottom_toBottomOf=
"parent"
android:layout_marginTop=
"8dp"
app:layout_constraintTop_toBottomOf=
"@+id/
imageView3
"
app:layout_constraintStart_toStartOf=
"@+id/
imageView3"
app:layout_constraintEnd_toEndOf=
"@+id/imageView3
"
app:layout_constraintTop_toBottomOf=
"@+id/
camStatusIcon
"
app:layout_constraintStart_toStartOf=
"@+id/
camStatusIcon"
app:layout_constraintEnd_toEndOf=
"@+id/camStatusIcon
"
app:layout_constraintVertical_bias=
"0.0"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
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