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
e560e3bb
Commit
e560e3bb
authored
Jan 21, 2020
by
Vladislav Bogdashkin
🎣
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
deal card toolbar dynamic header
parent
b9a650c5
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
212 additions
and
100 deletions
+212
-100
build.gradle
app/build.gradle
+1
-0
RoomParkMainActivity.kt
.../com/biganto/visual/roompark/base/RoomParkMainActivity.kt
+4
-4
TopBar.kt
app/src/main/java/com/biganto/visual/roompark/base/TopBar.kt
+4
-2
deal.kt
...ava/com/biganto/visual/roompark/domain/interactor/deal.kt
+28
-28
deals.kt
...va/com/biganto/visual/roompark/domain/interactor/deals.kt
+28
-28
favorites.kt
...om/biganto/visual/roompark/domain/interactor/favorites.kt
+17
-17
ScreenController.kt
.../roompark/presentation/screen/article/ScreenController.kt
+1
-1
ScreenController.kt
...ual/roompark/presentation/screen/deal/ScreenController.kt
+46
-0
ScreenController.kt
...l/roompark/presentation/screen/estate/ScreenController.kt
+55
-10
deal_screen.xml
app/src/main/res/layout/deal_screen.xml
+1
-0
flat_full_card_screen.xml
app/src/main/res/layout/flat_full_card_screen.xml
+18
-2
status_layout_toolbar.xml
app/src/main/res/layout/status_layout_toolbar.xml
+6
-3
switch_toolbar.xml
app/src/main/res/layout/switch_toolbar.xml
+3
-5
No files found.
app/build.gradle
View file @
e560e3bb
...
...
@@ -111,6 +111,7 @@ dependencies {
//Rx Relay
implementation
"com.jakewharton.rxrelay2:rxrelay:$rxRelayVersion"
implementation
"com.jakewharton.rxrelay2:rxrelay:$rxRelayVersion"
//Assist Injected
compileOnly
'com.squareup.inject:assisted-inject-annotations-dagger2:0.5.0'
...
...
app/src/main/java/com/biganto/visual/roompark/base/RoomParkMainActivity.kt
View file @
e560e3bb
...
...
@@ -102,17 +102,17 @@ class RoomParkMainActivity(
statusToolbar
.
status_title
.
setGone
(
it
.
state
==
null
)
it
.
state
?.
let
{
state
->
statusToolbar
.
status_icon
.
isEnabled
=
when
(
state
){
StatusState
.
AVA
LI
ABLE
->
true
StatusState
.
AVA
IL
ABLE
->
true
else
->
false
}
statusToolbar
.
status_title
.
text
=
when
(
state
){
StatusState
.
AVA
LI
ABLE
->
resources
.
getString
(
R
.
string
.
estate_avalibale
)
StatusState
.
AVA
IL
ABLE
->
resources
.
getString
(
R
.
string
.
estate_avalibale
)
StatusState
.
SOLD_OUT
->
resources
.
getString
(
R
.
string
.
estate_sold_out
)
}
}
statusToolbar
.
status_title
.
setGone
(
it
.
t
itle
==
null
)
it
.
title
?.
let
{
title
->
statusToolbar
.
status
_title
.
text
=
title
}
statusToolbar
.
mean_title
.
setGone
(
it
.
meanT
itle
==
null
)
it
.
meanTitle
?.
let
{
title
->
statusToolbar
.
mean
_title
.
text
=
title
}
}
headerToolbar
.
requestLayout
()
statusToolbar
.
requestLayout
()
...
...
app/src/main/java/com/biganto/visual/roompark/base/TopBar.kt
View file @
e560e3bb
...
...
@@ -45,6 +45,8 @@ data class HeaderToolbarModel(
,
val
title
:
String
?
,
val
switcher
:
Boolean
?
=
null
)
data class
StatusToolbarModel
(
val
state
:
StatusState
?,
val
title
:
String
?)
data class
StatusToolbarModel
(
val
state
:
StatusState
?
=
null
,
val
stateTitle
:
String
?
=
null
,
val
meanTitle
:
String
?
=
null
)
enum
class
StatusState
{
AVALIABLE
,
SOLD_OUT
}
\ No newline at end of file
enum
class
StatusState
{
AVAILABLE
,
SOLD_OUT
}
\ No newline at end of file
app/src/main/java/com/biganto/visual/roompark/domain/interactor/deal.kt
View file @
e560e3bb
...
...
@@ -116,35 +116,35 @@ class DealInteractor @Inject constructor(
// ExplicationModel(
// area = 16.9f,
// living = true,
//
t
itle = "\u0413\u043e\u0441\u0442\u0438\u043d\u0430\u044f"
//
stateT
itle = "\u0413\u043e\u0441\u0442\u0438\u043d\u0430\u044f"
// ),ExplicationModel(
// area = 14.6f,
// living = true,
//
t
itle = "\u0421\u043f\u0430\u043b\u044c\u043d\u044f"
//
stateT
itle = "\u0421\u043f\u0430\u043b\u044c\u043d\u044f"
// ),ExplicationModel(
// area = 10.8f,
// living = false,
//
t
itle = "\u041a\u0443\u0445\u043d\u044f"
//
stateT
itle = "\u041a\u0443\u0445\u043d\u044f"
// ),ExplicationModel(
// area = 3.6f,
// living = false,
//
t
itle = "\u041a\u043e\u0440\u0438\u0434\u043e\u0440"
//
stateT
itle = "\u041a\u043e\u0440\u0438\u0434\u043e\u0440"
// ),ExplicationModel(
// area = 3.4f,
// living = false,
//
t
itle = "\u0421\u0430\u043d\u0443\u0437\u0435\u043b"
//
stateT
itle = "\u0421\u0430\u043d\u0443\u0437\u0435\u043b"
// ),ExplicationModel(
// area = 2.8f,
// living = false,
//
t
itle = "\u041f\u0440\u0438\u0445\u043e\u0436\u0430\u044f"
//
stateT
itle = "\u041f\u0440\u0438\u0445\u043e\u0436\u0430\u044f"
// ),ExplicationModel(
// area = 1.9f,
// living = false,
//
t
itle = "\u0421\u0430\u043d\u0443\u0437\u0435\u043b"
//
stateT
itle = "\u0421\u0430\u043d\u0443\u0437\u0435\u043b"
// ),ExplicationModel(
// area = 1.4f,
// living = false,
//
t
itle = "\u041b\u043e\u0434\u0436\u0438\u044f"
//
stateT
itle = "\u041b\u043e\u0434\u0436\u0438\u044f"
// )
// ),
// planId = 0
...
...
@@ -154,35 +154,35 @@ class DealInteractor @Inject constructor(
// ExplicationModel(
// area = 16.2f,
// living = true,
//
t
itle = "\u0413\u043e\u0441\u0442\u0438\u043d\u0430\u044f"
//
stateT
itle = "\u0413\u043e\u0441\u0442\u0438\u043d\u0430\u044f"
// ),ExplicationModel(
// area = 13.7f,
// living = true,
//
t
itle = "\u0421\u043f\u0430\u043b\u044c\u043d\u044f"
//
stateT
itle = "\u0421\u043f\u0430\u043b\u044c\u043d\u044f"
// ),ExplicationModel(
// area = 10.2f,
// living = false,
//
t
itle = "\u041a\u0443\u0445\u043d\u044f"
//
stateT
itle = "\u041a\u0443\u0445\u043d\u044f"
// ),ExplicationModel(
// area = 4.3f,
// living = false,
//
t
itle = "\u041a\u043e\u0440\u0438\u0434\u043e\u0440"
//
stateT
itle = "\u041a\u043e\u0440\u0438\u0434\u043e\u0440"
// ),ExplicationModel(
// area = 4.2f,
// living = false,
//
t
itle = "\u041f\u0440\u0438\u0445\u043e\u0436\u0430\u044f"
//
stateT
itle = "\u041f\u0440\u0438\u0445\u043e\u0436\u0430\u044f"
// ),ExplicationModel(
// area = 4.1f,
// living = false,
//
t
itle = "\u0421\u0430\u043d\u0443\u0437\u0435\u043b"
//
stateT
itle = "\u0421\u0430\u043d\u0443\u0437\u0435\u043b"
// ),ExplicationModel(
// area = 1.4f,
// living = false,
//
t
itle = "\u041b\u043e\u0434\u0436\u0438\u044f"
//
stateT
itle = "\u041b\u043e\u0434\u0436\u0438\u044f"
// ),ExplicationModel(
// area = 1.3f,
// living = false,
//
t
itle = "\u0421\u0430\u043d\u0443\u0437\u0435\u043b"
//
stateT
itle = "\u0421\u0430\u043d\u0443\u0437\u0435\u043b"
// )
// ),
// planId = 1
...
...
@@ -241,27 +241,27 @@ class DealInteractor @Inject constructor(
// ExplicationModel(
// area = 15.8f,
// living = true,
//
t
itle = "Гостиная"
//
stateT
itle = "Гостиная"
// ),ExplicationModel(
// area = 14.5f,
// living = true,
//
t
itle = "Спальня"
//
stateT
itle = "Спальня"
// ),ExplicationModel(
// area = 20.2f,
// living = false,
//
t
itle = "Кухня"
//
stateT
itle = "Кухня"
// ),ExplicationModel(
// area = 5.0f,
// living = false,
//
t
itle = "Прихожая"
//
stateT
itle = "Прихожая"
// ),ExplicationModel(
// area = 4.1f,
// living = false,
//
t
itle = "Санузел"
//
stateT
itle = "Санузел"
// ),ExplicationModel(
// area = 1.6f,
// living = false,
//
t
itle = "Лоджия"
//
stateT
itle = "Лоджия"
// )
// ),
// planId = 0
...
...
@@ -271,27 +271,27 @@ class DealInteractor @Inject constructor(
// ExplicationModel(
// area = 15.5f,
// living = true,
//
t
itle = "Спальня"
//
stateT
itle = "Спальня"
// ),ExplicationModel(
// area = 14.5f,
// living = true,
//
t
itle = "Спальня"
//
stateT
itle = "Спальня"
// ),ExplicationModel(
// area = 20.2f,
// living = false,
//
t
itle = "Кухня-гостиная"
//
stateT
itle = "Кухня-гостиная"
// ),ExplicationModel(
// area = 5.3f,
// living = false,
//
t
itle = "Прихожая"
//
stateT
itle = "Прихожая"
// ),ExplicationModel(
// area = 4.1f,
// living = false,
//
t
itle = "Санузел"
//
stateT
itle = "Санузел"
// ),ExplicationModel(
// area = 1.6f,
// living = false,
//
t
itle = "Лоджия"
//
stateT
itle = "Лоджия"
// )
// ),
// planId = 1
...
...
app/src/main/java/com/biganto/visual/roompark/domain/interactor/deals.kt
View file @
e560e3bb
...
...
@@ -107,35 +107,35 @@ class DealsInteractor @Inject constructor(
// ExplicationModel(
// area = 16.9f,
// living = true,
//
t
itle = "\u0413\u043e\u0441\u0442\u0438\u043d\u0430\u044f"
//
stateT
itle = "\u0413\u043e\u0441\u0442\u0438\u043d\u0430\u044f"
// ),ExplicationModel(
// area = 14.6f,
// living = true,
//
t
itle = "\u0421\u043f\u0430\u043b\u044c\u043d\u044f"
//
stateT
itle = "\u0421\u043f\u0430\u043b\u044c\u043d\u044f"
// ),ExplicationModel(
// area = 10.8f,
// living = false,
//
t
itle = "\u041a\u0443\u0445\u043d\u044f"
//
stateT
itle = "\u041a\u0443\u0445\u043d\u044f"
// ),ExplicationModel(
// area = 3.6f,
// living = false,
//
t
itle = "\u041a\u043e\u0440\u0438\u0434\u043e\u0440"
//
stateT
itle = "\u041a\u043e\u0440\u0438\u0434\u043e\u0440"
// ),ExplicationModel(
// area = 3.4f,
// living = false,
//
t
itle = "\u0421\u0430\u043d\u0443\u0437\u0435\u043b"
//
stateT
itle = "\u0421\u0430\u043d\u0443\u0437\u0435\u043b"
// ),ExplicationModel(
// area = 2.8f,
// living = false,
//
t
itle = "\u041f\u0440\u0438\u0445\u043e\u0436\u0430\u044f"
//
stateT
itle = "\u041f\u0440\u0438\u0445\u043e\u0436\u0430\u044f"
// ),ExplicationModel(
// area = 1.9f,
// living = false,
//
t
itle = "\u0421\u0430\u043d\u0443\u0437\u0435\u043b"
//
stateT
itle = "\u0421\u0430\u043d\u0443\u0437\u0435\u043b"
// ),ExplicationModel(
// area = 1.4f,
// living = false,
//
t
itle = "\u041b\u043e\u0434\u0436\u0438\u044f"
//
stateT
itle = "\u041b\u043e\u0434\u0436\u0438\u044f"
// )
// ),
// planId = 0
...
...
@@ -145,35 +145,35 @@ class DealsInteractor @Inject constructor(
// ExplicationModel(
// area = 16.2f,
// living = true,
//
t
itle = "\u0413\u043e\u0441\u0442\u0438\u043d\u0430\u044f"
//
stateT
itle = "\u0413\u043e\u0441\u0442\u0438\u043d\u0430\u044f"
// ),ExplicationModel(
// area = 13.7f,
// living = true,
//
t
itle = "\u0421\u043f\u0430\u043b\u044c\u043d\u044f"
//
stateT
itle = "\u0421\u043f\u0430\u043b\u044c\u043d\u044f"
// ),ExplicationModel(
// area = 10.2f,
// living = false,
//
t
itle = "\u041a\u0443\u0445\u043d\u044f"
//
stateT
itle = "\u041a\u0443\u0445\u043d\u044f"
// ),ExplicationModel(
// area = 4.3f,
// living = false,
//
t
itle = "\u041a\u043e\u0440\u0438\u0434\u043e\u0440"
//
stateT
itle = "\u041a\u043e\u0440\u0438\u0434\u043e\u0440"
// ),ExplicationModel(
// area = 4.2f,
// living = false,
//
t
itle = "\u041f\u0440\u0438\u0445\u043e\u0436\u0430\u044f"
//
stateT
itle = "\u041f\u0440\u0438\u0445\u043e\u0436\u0430\u044f"
// ),ExplicationModel(
// area = 4.1f,
// living = false,
//
t
itle = "\u0421\u0430\u043d\u0443\u0437\u0435\u043b"
//
stateT
itle = "\u0421\u0430\u043d\u0443\u0437\u0435\u043b"
// ),ExplicationModel(
// area = 1.4f,
// living = false,
//
t
itle = "\u041b\u043e\u0434\u0436\u0438\u044f"
//
stateT
itle = "\u041b\u043e\u0434\u0436\u0438\u044f"
// ),ExplicationModel(
// area = 1.3f,
// living = false,
//
t
itle = "\u0421\u0430\u043d\u0443\u0437\u0435\u043b"
//
stateT
itle = "\u0421\u0430\u043d\u0443\u0437\u0435\u043b"
// )
// ),
// planId = 1
...
...
@@ -232,27 +232,27 @@ class DealsInteractor @Inject constructor(
// ExplicationModel(
// area = 15.8f,
// living = true,
//
t
itle = "Гостиная"
//
stateT
itle = "Гостиная"
// ),ExplicationModel(
// area = 14.5f,
// living = true,
//
t
itle = "Спальня"
//
stateT
itle = "Спальня"
// ),ExplicationModel(
// area = 20.2f,
// living = false,
//
t
itle = "Кухня"
//
stateT
itle = "Кухня"
// ),ExplicationModel(
// area = 5.0f,
// living = false,
//
t
itle = "Прихожая"
//
stateT
itle = "Прихожая"
// ),ExplicationModel(
// area = 4.1f,
// living = false,
//
t
itle = "Санузел"
//
stateT
itle = "Санузел"
// ),ExplicationModel(
// area = 1.6f,
// living = false,
//
t
itle = "Лоджия"
//
stateT
itle = "Лоджия"
// )
// ),
// planId = 0
...
...
@@ -262,27 +262,27 @@ class DealsInteractor @Inject constructor(
// ExplicationModel(
// area = 15.5f,
// living = true,
//
t
itle = "Спальня"
//
stateT
itle = "Спальня"
// ),ExplicationModel(
// area = 14.5f,
// living = true,
//
t
itle = "Спальня"
//
stateT
itle = "Спальня"
// ),ExplicationModel(
// area = 20.2f,
// living = false,
//
t
itle = "Кухня-гостиная"
//
stateT
itle = "Кухня-гостиная"
// ),ExplicationModel(
// area = 5.3f,
// living = false,
//
t
itle = "Прихожая"
//
stateT
itle = "Прихожая"
// ),ExplicationModel(
// area = 4.1f,
// living = false,
//
t
itle = "Санузел"
//
stateT
itle = "Санузел"
// ),ExplicationModel(
// area = 1.6f,
// living = false,
//
t
itle = "Лоджия"
//
stateT
itle = "Лоджия"
// )
// ),
// planId = 1
...
...
app/src/main/java/com/biganto/visual/roompark/domain/interactor/favorites.kt
View file @
e560e3bb
...
...
@@ -124,32 +124,32 @@ class FavoritesInteractor @Inject constructor(
// ExplicationModel(
// living = true,
// area = 16.30f,
//
t
itle = "Спальня"
//
stateT
itle = "Спальня"
// ),
// ExplicationModel(
// living = false,
// area = 11.40f,
//
t
itle = "Кухня"
//
stateT
itle = "Кухня"
// ),
// ExplicationModel(
// living = false,
// area = 1.90f,
//
t
itle = "Прихожая"
//
stateT
itle = "Прихожая"
// ),
// ExplicationModel(
// living = false,
// area = 5.20f,
//
t
itle = "Коридор"
//
stateT
itle = "Коридор"
// ),
// ExplicationModel(
// living = false,
// area = 1.70f,
//
t
itle = "Лоджия"
//
stateT
itle = "Лоджия"
// ),
// ExplicationModel(
// living = false,
// area = 3.50f,
//
t
itle = "Санузел"
//
stateT
itle = "Санузел"
// )
// )
// ), ExplicationListModel(
...
...
@@ -158,32 +158,32 @@ class FavoritesInteractor @Inject constructor(
// ExplicationModel(
// living = true,
// area = 16.30f,
//
t
itle = "Спальня"
//
stateT
itle = "Спальня"
// ),
// ExplicationModel(
// living = false,
// area = 11.40f,
//
t
itle = "Кухня"
//
stateT
itle = "Кухня"
// ),
// ExplicationModel(
// living = false,
// area = 5.20f,
//
t
itle = "Коридор"
//
stateT
itle = "Коридор"
// ),
// ExplicationModel(
// living = false,
// area = 1.90f,
//
t
itle = "Прихожая"
//
stateT
itle = "Прихожая"
// ),
// ExplicationModel(
// living = false,
// area = 3.50f,
//
t
itle = "Санузел"
//
stateT
itle = "Санузел"
// ),
// ExplicationModel(
// living = false,
// area = 1.70f,
//
t
itle = "Лоджия"
//
stateT
itle = "Лоджия"
// )
// )
// ), ExplicationListModel(
...
...
@@ -192,27 +192,27 @@ class FavoritesInteractor @Inject constructor(
// ExplicationModel(
// living = false,
// area = 1.00f,
//
t
itle = "Кухня-гостиная"
//
stateT
itle = "Кухня-гостиная"
// ),
// ExplicationModel(
// living = false,
// area = 2.00f,
//
t
itle = "Коридор"
//
stateT
itle = "Коридор"
// ),
// ExplicationModel(
// living = false,
// area = 3.00f,
//
t
itle = "Прихожая"
//
stateT
itle = "Прихожая"
// ),
// ExplicationModel(
// living = false,
// area = 4.00f,
//
t
itle = "Санузел"
//
stateT
itle = "Санузел"
// ),
// ExplicationModel(
// living = false,
// area = 5.00f,
//
t
itle = "Лоджия"
//
stateT
itle = "Лоджия"
// )
// )
// )
...
...
app/src/main/java/com/biganto/visual/roompark/presentation/screen/article/ScreenController.kt
View file @
e560e3bb
...
...
@@ -86,7 +86,7 @@ class ArticleScreenController :
private
fun
setToolbar
(){
toolBar
.
hideAll
()
toolBar
.
appBar
.
setExpanded
(
false
,
false
)
// toolBar.collapsingToolbarLayout.
t
itle = "ИЗБРАННОЕ"
// toolBar.collapsingToolbarLayout.
stateT
itle = "ИЗБРАННОЕ"
// toolBar.appBar.liftOnScrollTargetViewId = R.id.Article_cards_recycler_view
toolBar
.
appBar
.
setLiftable
(
false
)
toolBar
.
appBarScrollable
(
false
)
...
...
app/src/main/java/com/biganto/visual/roompark/presentation/screen/deal/ScreenController.kt
View file @
e560e3bb
...
...
@@ -5,16 +5,21 @@ import android.view.LayoutInflater
import
android.view.View
import
android.widget.LinearLayout
import
androidx.core.os.bundleOf
import
androidx.core.widget.NestedScrollView
import
butterknife.BindView
import
com.biganto.visual.roompark.R
import
com.biganto.visual.roompark.base.HeaderToolbarModel
import
com.biganto.visual.roompark.base.RoomParkApplication
import
com.biganto.visual.roompark.base.RoomParkMainActivity
import
com.biganto.visual.roompark.conductor.BigantoBaseController
import
com.biganto.visual.roompark.domain.model.DealModel
import
com.biganto.visual.roompark.domain.model.typeShortString
import
com.biganto.visual.roompark.util.extensions.toRubly
import
com.biganto.visual.roompark.util.view_utils.status_progress_view.StatusProgressAnimationState
import
com.biganto.visual.roompark.util.view_utils.status_progress_view.StatusProgressCeil
import
com.google.android.material.textview.MaterialTextView
import
com.jakewharton.rxbinding3.view.scrollChangeEvents
import
io.reactivex.android.schedulers.AndroidSchedulers
import
timber.log.Timber
import
javax.inject.Inject
...
...
@@ -47,6 +52,10 @@ class DealScreenController :
lateinit
var
dealTitle
:
MaterialTextView
@BindView
(
R
.
id
.
deal_nestedScrollView
)
lateinit
var
dealContainer
:
NestedScrollView
@BindView
(
R
.
id
.
statusContainer
)
lateinit
var
statusContainer
:
LinearLayout
...
...
@@ -81,6 +90,39 @@ class DealScreenController :
,
null
,
null
)
)
detachDisposable
.
add
(
dealContainer
.
scrollChangeEvents
()
.
subscribeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
{
if
(
it
.
scrollY
>
dealTitle
.
measuredHeight
)
dealModel
?.
let
{
deal
->
toolBar
.
setToolbar
(
HeaderToolbarModel
(
true
,
resources
?.
getString
(
R
.
string
.
deal_back_chevron_title
)
,
resources
?.
getString
(
deal
.
estate
.
typeShortString
()
,
deal
.
estate
.
number
)
,
true
)
)
}
else
toolBar
.
setToolbar
(
HeaderToolbarModel
(
true
,
resources
?.
getString
(
R
.
string
.
deal_back_chevron_title
)
,
null
,
true
)
)
}
)
}
private
fun
bindRecycler
()
{
...
...
@@ -114,6 +156,8 @@ class DealScreenController :
private
val
View
.
text
get
()
=
this
.
findViewById
<
MaterialTextView
>(
R
.
id
.
info_ceil_content
)
private
var
dealModel
:
DealModel
?
=
null
private
fun
render
(
viewState
:
DealScreenViewState
.
LoadDeal
)
{
info1
.
title
.
text
=
resources
?.
getString
(
R
.
string
.
building
)
...
...
@@ -134,6 +178,8 @@ class DealScreenController :
dealPayed
.
text
=
viewState
.
estate
.
paymentSum
.
toRubly
()
dealSumToPay
.
text
=
viewState
.
estate
.
amount_pay_sum
.
toRubly
()
dealModel
=
viewState
.
estate
toolBar
.
setToolbar
(
HeaderToolbarModel
(
true
,
resources
?.
getString
(
R
.
string
.
deal_back_chevron_title
)
...
...
app/src/main/java/com/biganto/visual/roompark/presentation/screen/estate/ScreenController.kt
View file @
e560e3bb
...
...
@@ -8,14 +8,17 @@ import android.webkit.WebView
import
android.widget.LinearLayout
import
androidx.core.os.bundleOf
import
androidx.core.view.isNotEmpty
import
androidx.core.widget.NestedScrollView
import
androidx.recyclerview.widget.LinearLayoutManager
import
androidx.recyclerview.widget.RecyclerView
import
butterknife.BindView
import
com.biganto.visual.roompark.R
import
com.biganto.visual.roompark.base.HeaderToolbarModel
import
com.biganto.visual.roompark.base.RoomParkApplication
import
com.biganto.visual.roompark.base.RoomParkMainActivity
import
com.biganto.visual.roompark.base.StatusState
import
com.biganto.visual.roompark.base.StatusToolbarModel
import
com.biganto.visual.roompark.conductor.BigantoBaseController
import
com.biganto.visual.roompark.domain.model.EstateModel
import
com.biganto.visual.roompark.domain.model.FeatureModel
import
com.biganto.visual.roompark.domain.model.PlanPresetModel
import
com.biganto.visual.roompark.domain.model.typeShortString
...
...
@@ -25,6 +28,7 @@ import com.google.android.material.tabs.TabLayout
import
com.google.android.material.textview.MaterialTextView
import
com.jakewharton.rxbinding3.material.selections
import
com.jakewharton.rxbinding3.view.clicks
import
com.jakewharton.rxbinding3.view.scrollChangeEvents
import
com.jakewharton.rxbinding3.widget.checkedChanges
import
io.reactivex.Observable
import
io.reactivex.android.schedulers.AndroidSchedulers
...
...
@@ -111,9 +115,14 @@ class EstateScreenController :
@BindView
(
R
.
id
.
flat_plan_webview
)
lateinit
var
planWebView
:
WebView
@BindView
(
R
.
id
.
flat_nested_scroll
)
lateinit
var
flatScroll
:
NestedScrollView
@BindView
(
R
.
id
.
flat_content_recycler_view
)
lateinit
var
flatInfoRecyclerView
:
RecyclerView
@BindView
(
R
.
id
.
flat_title
)
lateinit
var
flatTitle
:
MaterialTextView
@BindView
(
R
.
id
.
sizes_switch_container
)
lateinit
var
sizesContainer
:
LinearLayout
...
...
@@ -159,9 +168,46 @@ class EstateScreenController :
toolBar
.
appBar
.
setLiftable
(
true
)
toolBar
.
appBarScrollable
(
false
)
toolBar
.
setToolbar
(
HeaderToolbarModel
(
true
,
null
,
null
,
null
)
null
,
StatusToolbarModel
()
)
detachDisposable
.
add
(
flatScroll
.
scrollChangeEvents
()
// .debounce (25,TimeUnit.MILLISECONDS)
.
doOnNext
{
Timber
.
d
(
"Scrolling.. ${it.scrollY}"
)
Timber
.
d
(
"Scrolling.. ${flatTitle.isShown}"
)
}
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
{
Timber
.
d
(
"clicked slf;jzalk"
)
activity
?.
runOnUiThread
{
if
(
it
.
scrollY
>
flatTitle
.
measuredHeight
)
{
val
status
=
estateModel
?.
to
(
StatusToolbarModel
(
StatusState
.
AVAILABLE
,
null
,
resources
?.
getString
(
estateModel
?.
typeShortString
()
?:
-
1
,
estateModel
?.
number
)
)
)
toolBar
.
setToolbar
(
null
,
status
=
status
?.
second
)
}
else
toolBar
.
setToolbar
(
null
,
StatusToolbarModel
(
StatusState
.
AVAILABLE
,
null
,
null
)
)
}
}
)
...
...
@@ -203,16 +249,15 @@ class EstateScreenController :
private
fun
render
(
viewState
:
EstateScreenViewState
.
SomeError
)
=
showError
(
viewState
.
exception
)
private
var
estateModel
:
EstateModel
?
=
null
private
fun
render
(
viewState
:
EstateScreenViewState
.
LoadEstate
)
{
estateModel
=
viewState
.
estate
toolBar
.
setToolbar
(
HeaderToolbarModel
(
true
,
null
,
resources
?.
getString
(
viewState
.
estate
.
typeShortString
(),
viewState
.
estate
.
number
)
,
null
)
null
,
StatusToolbarModel
(
StatusState
.
AVAILABLE
,
null
,
null
)
)
flatTitle
.
text
=
resources
?.
getString
(
viewState
.
estate
.
typeShortString
()
,
viewState
.
estate
.
number
)
}
private
fun
render
(
viewState
:
EstateScreenViewState
.
ShowEstateInfo
)
{
...
...
app/src/main/res/layout/deal_screen.xml
View file @
e560e3bb
...
...
@@ -2,6 +2,7 @@
<androidx.core.widget.NestedScrollView
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:id=
"@+id/deal_nestedScrollView"
android:layout_marginBottom=
"8dp"
android:background=
"@color/colorPrimary"
android:orientation=
"vertical"
>
...
...
app/src/main/res/layout/flat_full_card_screen.xml
View file @
e560e3bb
<?xml version="1.0" encoding="utf-8"?>
<androidx.core.widget.NestedScrollView
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
android:id=
"@+id/flat_nested_scroll"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:fillViewport=
"true"
...
...
@@ -12,15 +13,30 @@
android:layout_height=
"match_parent"
android:orientation=
"vertical"
>
<com.google.android.material.textview.MaterialTextView
android:id=
"@+id/flat_title"
style=
"@style/Header_TextView.Main_Header"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"16dp"
android:layout_marginTop=
"4dp"
android:layout_marginEnd=
"16dp"
android:text=
"Кв..."
android:textAlignment=
"viewStart"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<com.google.android.material.tabs.TabLayout
android:id=
"@+id/planTypesTabs"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"
32
dp"
android:layout_marginTop=
"
16
dp"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_to
TopOf=
"parent
"
app:layout_constraintTop_to
BottomOf=
"@+id/flat_title
"
app:tabMaxWidth=
"@dimen/tab_max_width"
app:tabMode=
"scrollable"
/>
...
...
app/src/main/res/layout/status_layout_toolbar.xml
View file @
e560e3bb
...
...
@@ -37,14 +37,17 @@
<com.google.android.material.textview.MaterialTextView
android:id=
"@+id/mean_title"
android:fitsSystemWindows=
"true"
style=
"@style/Accent_Minor_TextView"
android:layout_width=
"
wrap_content
"
android:layout_width=
"
0dp
"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"8dp"
android:ellipsize=
"end"
android:fitsSystemWindows=
"true"
android:text=
"СВОБОДНА"
app:layout_constraintBottom_toBottomOf=
"@+id/status_icon"
app:layout_constraintStart_toEndOf=
"@+id/status_icon"
app:layout_constraintEnd_toStartOf=
"@+id/back_cross"
app:layout_constraintHorizontal_bias=
"0.0"
app:layout_constraintStart_toEndOf=
"@+id/status_title"
app:layout_constraintTop_toTopOf=
"@+id/status_icon"
/>
<ImageView
...
...
app/src/main/res/layout/switch_toolbar.xml
View file @
e560e3bb
...
...
@@ -26,16 +26,16 @@
<com.google.android.material.textview.MaterialTextView
android:id=
"@+id/toolbar_title"
style=
"@style/Header_TextView.Main_Header"
android:layout_width=
"
wrap_content
"
android:layout_width=
"
0dp
"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"16dp"
android:ellipsize=
"end"
android:fitsSystemWindows=
"true"
android:gravity=
"start|center_vertical"
android:text=
"НОВОСТИ\nИРКУТСКА"
android:textAlignment=
"gravity"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintHorizontal_bias=
"0.0"
app:layout_constraintEnd_toStartOf=
"@+id/include13"
app:layout_constraintStart_toEndOf=
"@id/back_button_chevron"
app:layout_constraintTop_toTopOf=
"parent"
/>
...
...
@@ -50,8 +50,6 @@
android:gravity=
"right|center_vertical"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintHorizontal_bias=
"1.0"
app:layout_constraintStart_toEndOf=
"@+id/toolbar_title"
app:layout_constraintTop_toTopOf=
"parent"
/>
...
...
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