Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
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
6c81fb51
Commit
6c81fb51
authored
Dec 24, 2019
by
Vladislav Bogdashkin
🎣
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
sets current page as actual selected
parent
d72a59a7
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
22 additions
and
44 deletions
+22
-44
ScreenController.kt
...l/roompark/presentation/screen/albums/ScreenController.kt
+2
-2
ScreenDI.kt
...to/visual/roompark/presentation/screen/albums/ScreenDI.kt
+1
-1
ScreenPresenter.kt
...al/roompark/presentation/screen/albums/ScreenPresenter.kt
+1
-1
ScreenController.kt
...al/roompark/presentation/screen/photo/ScreenController.kt
+5
-3
ScreenDI.kt
...nto/visual/roompark/presentation/screen/photo/ScreenDI.kt
+1
-1
ScreenPresenter.kt
...ual/roompark/presentation/screen/photo/ScreenPresenter.kt
+11
-35
ScreenViewState.kt
...ual/roompark/presentation/screen/photo/ScreenViewState.kt
+1
-1
No files found.
app/src/main/java/com/biganto/visual/roompark/presentation/screen/albums/ScreenController.kt
View file @
6c81fb51
...
@@ -48,7 +48,7 @@ class AlbumsScreenController :
...
@@ -48,7 +48,7 @@ class AlbumsScreenController :
constructor
(
args
:
Bundle
):
super
(
args
)
constructor
(
args
:
Bundle
):
super
(
args
)
constructor
(
id
:
Int
)
:
super
(
bundleOf
(
com
.
biganto
.
visual
.
roompark
.
presentation
.
screen
.
photo
.
SELECTED_ALBUM_INDEX_KEY
to
id
))
constructor
(
id
:
Int
)
:
super
(
bundleOf
(
SELECTED_ALBUM_INDEX_KEY
to
id
))
@BindView
(
R
.
id
.
headers_recycler_view
)
@BindView
(
R
.
id
.
headers_recycler_view
)
...
@@ -126,7 +126,7 @@ class AlbumsScreenController :
...
@@ -126,7 +126,7 @@ class AlbumsScreenController :
fun
getComponent
()
=
DaggerAlbumsScreenComponent
.
factory
()
fun
getComponent
()
=
DaggerAlbumsScreenComponent
.
factory
()
.
create
(
RoomParkApplication
.
component
.
create
(
RoomParkApplication
.
component
,
activity
as
RoomParkMainActivity
,
activity
as
RoomParkMainActivity
,
args
.
getInt
(
com
.
biganto
.
visual
.
roompark
.
presentation
.
screen
.
photo
.
SELECTED_ALBUM_INDEX_KEY
))
,
args
.
getInt
(
SELECTED_ALBUM_INDEX_KEY
))
.
inject
(
this
)
.
inject
(
this
)
// @Inject
// @Inject
...
...
app/src/main/java/com/biganto/visual/roompark/presentation/screen/albums/ScreenDI.kt
View file @
6c81fb51
...
@@ -27,7 +27,7 @@ interface AlbumsScreenComponent {
...
@@ -27,7 +27,7 @@ interface AlbumsScreenComponent {
fun
create
(
fun
create
(
appComponent
:
AppComponent
appComponent
:
AppComponent
,
@BindsInstance
activity
:
RoomParkMainActivity
,
@BindsInstance
activity
:
RoomParkMainActivity
,
@BindsInstance
@Named
(
com
.
biganto
.
visual
.
roompark
.
presentation
.
screen
.
photo
.
SELECTED_ALBUM_INDEX_KEY
)
camIndex
:
Int
,
@BindsInstance
@Named
(
SELECTED_ALBUM_INDEX_KEY
)
camIndex
:
Int
):
AlbumsScreenComponent
):
AlbumsScreenComponent
}
}
...
...
app/src/main/java/com/biganto/visual/roompark/presentation/screen/albums/ScreenPresenter.kt
View file @
6c81fb51
...
@@ -16,7 +16,7 @@ import javax.inject.Named
...
@@ -16,7 +16,7 @@ import javax.inject.Named
class
AlbumsScreenPresenter
@Inject
constructor
(
class
AlbumsScreenPresenter
@Inject
constructor
(
private
val
interactor
:
AlbumsInteractor
private
val
interactor
:
AlbumsInteractor
,
@Named
(
com
.
biganto
.
visual
.
roompark
.
presentation
.
screen
.
photo
.
SELECTED_ALBUM_INDEX_KEY
)
private
var
selectedIndex
:
Int
,
@Named
(
SELECTED_ALBUM_INDEX_KEY
)
private
var
selectedIndex
:
Int
)
)
:
BigantoBasePresenter
<
AlbumsScreen
,
AlbumsScreenViewState
>()
{
:
BigantoBasePresenter
<
AlbumsScreen
,
AlbumsScreenViewState
>()
{
...
...
app/src/main/java/com/biganto/visual/roompark/presentation/screen/photo/ScreenController.kt
View file @
6c81fb51
...
@@ -21,7 +21,7 @@ import javax.inject.Inject
...
@@ -21,7 +21,7 @@ import javax.inject.Inject
* Created by Vladislav Bogdashkin on 30.09.2019.
* Created by Vladislav Bogdashkin on 30.09.2019.
*/
*/
const
val
SELECTED_
ALBUM_INDEX_KEY
=
"SELECTED_ALBUM_INDEX
"
const
val
SELECTED_
PHOTO_KEY
=
"SELECTED_PHOTO_ID
"
class
PhotoScreenController
:
class
PhotoScreenController
:
BigantoBaseController
<
PhotoScreenViewState
BigantoBaseController
<
PhotoScreenViewState
...
@@ -31,7 +31,7 @@ class PhotoScreenController :
...
@@ -31,7 +31,7 @@ class PhotoScreenController :
constructor
(
args
:
Bundle
):
super
(
args
)
constructor
(
args
:
Bundle
):
super
(
args
)
constructor
(
id
:
Int
)
:
super
(
bundleOf
(
SELECTED_
ALBUM_INDEX
_KEY
to
id
))
constructor
(
id
:
Int
)
:
super
(
bundleOf
(
SELECTED_
PHOTO
_KEY
to
id
))
@BindView
(
R
.
id
.
photoTitle
)
@BindView
(
R
.
id
.
photoTitle
)
...
@@ -69,7 +69,7 @@ class PhotoScreenController :
...
@@ -69,7 +69,7 @@ class PhotoScreenController :
fun
getComponent
()
=
DaggerPhotoScreenComponent
.
factory
()
fun
getComponent
()
=
DaggerPhotoScreenComponent
.
factory
()
.
create
(
RoomParkApplication
.
component
.
create
(
RoomParkApplication
.
component
,
activity
as
RoomParkMainActivity
,
activity
as
RoomParkMainActivity
,
args
.
getInt
(
SELECTED_
ALBUM_INDEX
_KEY
))
,
args
.
getInt
(
SELECTED_
PHOTO
_KEY
))
.
inject
(
this
)
.
inject
(
this
)
// @Inject
// @Inject
...
@@ -104,6 +104,8 @@ class PhotoScreenController :
...
@@ -104,6 +104,8 @@ class PhotoScreenController :
(
photoViewPager
.
adapter
as
PhotoViewerAdapter
).
setItems
(
(
photoViewPager
.
adapter
as
PhotoViewerAdapter
).
setItems
(
viewState
.
list
.
asSequence
().
sortedBy
{
it
.
sort
}.
toList
()
viewState
.
list
.
asSequence
().
sortedBy
{
it
.
sort
}.
toList
()
)
)
photoViewPager
.
currentItem
=
(
photoViewPager
.
adapter
as
PhotoViewerAdapter
)
.
getItemPosition
(
viewState
.
selectedId
)
}
}
private
fun
render
(
viewState
:
PhotoScreenViewState
.
AldumFetched
)
{
private
fun
render
(
viewState
:
PhotoScreenViewState
.
AldumFetched
)
{
...
...
app/src/main/java/com/biganto/visual/roompark/presentation/screen/photo/ScreenDI.kt
View file @
6c81fb51
...
@@ -27,7 +27,7 @@ interface PhotoScreenComponent {
...
@@ -27,7 +27,7 @@ interface PhotoScreenComponent {
fun
create
(
fun
create
(
appComponent
:
AppComponent
appComponent
:
AppComponent
,
@BindsInstance
activity
:
RoomParkMainActivity
,
@BindsInstance
activity
:
RoomParkMainActivity
,
@BindsInstance
@Named
(
SELECTED_
ALBUM_INDEX
_KEY
)
camIndex
:
Int
,
@BindsInstance
@Named
(
SELECTED_
PHOTO
_KEY
)
camIndex
:
Int
):
PhotoScreenComponent
):
PhotoScreenComponent
}
}
...
...
app/src/main/java/com/biganto/visual/roompark/presentation/screen/photo/ScreenPresenter.kt
View file @
6c81fb51
...
@@ -6,7 +6,6 @@ import com.biganto.visual.roompark.util.monades.ExceptionString
...
@@ -6,7 +6,6 @@ import com.biganto.visual.roompark.util.monades.ExceptionString
import
io.reactivex.Observable
import
io.reactivex.Observable
import
io.reactivex.android.schedulers.AndroidSchedulers
import
io.reactivex.android.schedulers.AndroidSchedulers
import
io.reactivex.schedulers.Schedulers
import
io.reactivex.schedulers.Schedulers
import
timber.log.Timber
import
javax.inject.Inject
import
javax.inject.Inject
import
javax.inject.Named
import
javax.inject.Named
...
@@ -14,59 +13,36 @@ import javax.inject.Named
...
@@ -14,59 +13,36 @@ import javax.inject.Named
* Created by Vladislav Bogdashkin on 30.09.2019.
* Created by Vladislav Bogdashkin on 30.09.2019.
*/
*/
class
PhotoScreenPresenter
@Inject
constructor
(
class
PhotoScreenPresenter
@Inject
constructor
(
private
val
interactor
:
PhotoInteractor
private
val
interactor
:
PhotoInteractor
,
@Named
(
SELECTED_
ALBUM_INDEX
_KEY
)
private
var
selectedIndex
:
Int
,
@Named
(
SELECTED_
PHOTO
_KEY
)
private
var
selectedIndex
:
Int
)
)
:
BigantoBasePresenter
<
PhotoScreen
,
PhotoScreenViewState
>()
{
:
BigantoBasePresenter
<
PhotoScreen
,
PhotoScreenViewState
>()
{
override
fun
defaultErrorViewStateHandler
()
=
override
fun
defaultErrorViewStateHandler
()
=
{
e
:
ExceptionString
->
PhotoScreenViewState
.
SomeError
(
e
)
}
{
e
:
ExceptionString
->
PhotoScreenViewState
.
SomeError
(
e
)
}
override
fun
bindIntents
()
{
override
fun
bindIntents
()
{
// val fetchSelected = requestAlbum(selectedIndex)
//
//
// val headerItemSelected = intent(PhotoScreen::onAlbumSelected)
// .doOnNext { selectedIndex = it.albumId }
//
// .flatMap<PhotoScreenViewState> { model ->
// requestAlbum(model.albumId)
// }
Timber
.
d
(
"fetch photoId: $selectedIndex"
)
val
fetchAlbum
=
interactor
.
fetchPhoto
(
selectedIndex
)
val
fetchAlbum
=
interactor
.
fetchPhoto
(
selectedIndex
)
.
doOnNext
{
Timber
.
d
(
"got photo: $it"
)}
.
flatMap
{
photo
->
.
flatMap
{
photo
->
Observable
.
merge
<
PhotoScreenViewState
>(
Observable
.
merge
<
PhotoScreenViewState
>(
arrayListOf
(
arrayListOf
(
interactor
.
getAlbum
(
photo
.
albumId
)
interactor
.
getAlbum
(
photo
.
albumId
)
.
map
{
PhotoScreenViewState
.
AldumFetched
(
it
)
}
.
map
{
PhotoScreenViewState
.
AldumFetched
(
it
)
}
,
,
interactor
.
fetchPhotos
(
photo
.
albumId
)
interactor
.
fetchPhotos
(
photo
.
albumId
)
.
doOnNext
{
Timber
.
d
(
"got photos: $it"
)}
.
map
<
PhotoScreenViewState
>
{
.
map
<
PhotoScreenViewState
>
{
PhotoScreenViewState
.
PhotoListLoaded
(
it
)
}
PhotoScreenViewState
.
PhotoListLoaded
(
it
,
selectedIndex
)
.
startWith
(
Observable
.
just
(
PhotoScreenViewState
.
PhotoFetched
(
photo
)))
}
))
.
startWith
(
Observable
.
just
(
PhotoScreenViewState
.
PhotoFetched
(
photo
)))
))
}
}
val
state
=
restoreStateObservable
val
state
=
restoreStateObservable
.
mergeWith
(
fetchAlbum
)
.
mergeWith
(
fetchAlbum
)
// .mergeWith(fetchParents)
// .mergeWith(fetchSelected)
// .mergeWith(headerItemSelected)
.
subscribeOn
(
Schedulers
.
io
())
.
subscribeOn
(
Schedulers
.
io
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
subscribeViewState
(
state
.
cast
(
PhotoScreenViewState
::
class
.
java
),
PhotoScreen
::
render
)
subscribeViewState
(
state
.
cast
(
PhotoScreenViewState
::
class
.
java
),
PhotoScreen
::
render
)
}
}
}
}
\ No newline at end of file
app/src/main/java/com/biganto/visual/roompark/presentation/screen/photo/ScreenViewState.kt
View file @
6c81fb51
...
@@ -13,7 +13,7 @@ import com.biganto.visual.roompark.util.monades.ExceptionString
...
@@ -13,7 +13,7 @@ import com.biganto.visual.roompark.util.monades.ExceptionString
sealed
class
PhotoScreenViewState
:
BigantoBaseViewState
()
{
sealed
class
PhotoScreenViewState
:
BigantoBaseViewState
()
{
class
Idle
:
PhotoScreenViewState
()
class
Idle
:
PhotoScreenViewState
()
class
PhotoListLoaded
(
val
list
:
List
<
PhotoModel
>)
:
PhotoScreenViewState
()
class
PhotoListLoaded
(
val
list
:
List
<
PhotoModel
>
,
val
selectedId
:
Int
)
:
PhotoScreenViewState
()
class
PhotoFetched
(
val
model
:
PhotoModel
)
:
PhotoScreenViewState
()
class
PhotoFetched
(
val
model
:
PhotoModel
)
:
PhotoScreenViewState
()
class
PhotoSelected
(
val
model
:
PhotoResolutionModel
)
:
PhotoScreenViewState
()
class
PhotoSelected
(
val
model
:
PhotoResolutionModel
)
:
PhotoScreenViewState
()
class
SomeError
(
val
exception
:
ExceptionString
)
:
PhotoScreenViewState
()
class
SomeError
(
val
exception
:
ExceptionString
)
:
PhotoScreenViewState
()
...
...
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