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
ea5ca6cf
Commit
ea5ca6cf
authored
Jan 21, 2020
by
Vladislav Bogdashkin
🎣
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
expanded toolbar methods and incapsulate logic
parent
3cf70f8e
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
94 additions
and
22 deletions
+94
-22
RoomParkMainActivity.kt
.../com/biganto/visual/roompark/base/RoomParkMainActivity.kt
+49
-3
TopBar.kt
app/src/main/java/com/biganto/visual/roompark/base/TopBar.kt
+14
-0
ScreenController.kt
...ual/roompark/presentation/screen/deal/ScreenController.kt
+4
-16
ScreenController.kt
...al/roompark/presentation/screen/deals/ScreenController.kt
+8
-1
ScreenController.kt
...al/roompark/presentation/screen/feeds/ScreenController.kt
+3
-1
ext.kt
...n/java/com/biganto/visual/roompark/util/extensions/ext.kt
+0
-1
bell_switch_view.xml
app/src/main/res/layout/bell_switch_view.xml
+1
-0
status_layout_toolbar.xml
app/src/main/res/layout/status_layout_toolbar.xml
+13
-0
strings.xml
app/src/main/res/values/strings.xml
+2
-0
No files found.
app/src/main/java/com/biganto/visual/roompark/base/RoomParkMainActivity.kt
View file @
ea5ca6cf
...
@@ -6,11 +6,13 @@ import android.view.ViewGroup
...
@@ -6,11 +6,13 @@ import android.view.ViewGroup
import
android.widget.LinearLayout
import
android.widget.LinearLayout
import
androidx.appcompat.widget.Toolbar
import
androidx.appcompat.widget.Toolbar
import
androidx.coordinatorlayout.widget.CoordinatorLayout
import
androidx.coordinatorlayout.widget.CoordinatorLayout
import
androidx.core.view.isGone
import
butterknife.BindView
import
butterknife.BindView
import
butterknife.ButterKnife
import
butterknife.ButterKnife
import
com.biganto.visual.roompark.BuildConfig
import
com.biganto.visual.roompark.BuildConfig
import
com.biganto.visual.roompark.R
import
com.biganto.visual.roompark.R
import
com.biganto.visual.roompark.presentation.screen.splash.SplashScreenController
import
com.biganto.visual.roompark.presentation.screen.splash.SplashScreenController
import
com.biganto.visual.roompark.util.extensions.setGone
import
com.biganto.visual.roompark.util.view_utils.app_bar.DragControlAppBarLayoutBehaviour
import
com.biganto.visual.roompark.util.view_utils.app_bar.DragControlAppBarLayoutBehaviour
import
com.bluelinelabs.conductor.Conductor
import
com.bluelinelabs.conductor.Conductor
import
com.bluelinelabs.conductor.Router
import
com.bluelinelabs.conductor.Router
...
@@ -18,8 +20,10 @@ import com.bluelinelabs.conductor.RouterTransaction
...
@@ -18,8 +20,10 @@ import com.bluelinelabs.conductor.RouterTransaction
import
com.crashlytics.android.Crashlytics
import
com.crashlytics.android.Crashlytics
import
com.google.android.material.appbar.AppBarLayout
import
com.google.android.material.appbar.AppBarLayout
import
com.google.android.material.bottomnavigation.BottomNavigationView
import
com.google.android.material.bottomnavigation.BottomNavigationView
import
com.google.android.material.textview.MaterialTextView
import
io.fabric.sdk.android.Fabric
import
io.fabric.sdk.android.Fabric
import
kotlinx.android.synthetic.main.activity_main.*
import
kotlinx.android.synthetic.main.activity_main.*
import
kotlinx.android.synthetic.main.status_layout_toolbar.view.*
import
timber.log.Timber
import
timber.log.Timber
class
RoomParkMainActivity
(
class
RoomParkMainActivity
(
...
@@ -74,12 +78,53 @@ class RoomParkMainActivity(
...
@@ -74,12 +78,53 @@ class RoomParkMainActivity(
conductor_container
.
requestLayout
()
conductor_container
.
requestLayout
()
}
}
override
val
statusToolbar
:
ViewGroup
override
val
statusToolbar
:
ViewGroup
get
()
=
tbContainer
.
findViewById
<
ViewGroup
>
(
R
.
id
.
status_toolbar_container
)
get
()
=
tbContainer
.
findViewById
(
R
.
id
.
status_toolbar_container
)
override
val
headerToolbar
:
ViewGroup
override
val
headerToolbar
:
ViewGroup
get
()
=
tbContainer
.
findViewById
<
ViewGroup
>(
R
.
id
.
switch_toolbar_container
)
get
()
=
tbContainer
.
findViewById
(
R
.
id
.
switch_toolbar_container
)
override
val
headerToolbarBack
get
()
=
headerToolbar
.
findViewById
<
MaterialTextView
>(
R
.
id
.
back_button_chevron
)
override
fun
setToolbar
(
header
:
HeaderToolbarModel
?,
status
:
StatusToolbarModel
?){
headerToolbar
.
setGone
(
header
==
null
)
statusToolbar
.
setGone
(
status
==
null
)
header
?.
let
{
headerToolbarBack
.
setGone
(
it
.
backButton
)
headerToolbarBack
.
text
=
it
.
backTitle
?:
""
headerToolbar
.
findViewById
<
MaterialTextView
>(
R
.
id
.
toolbar_title
).
text
=
it
.
title
?:
""
headerToolbar
.
findViewById
<
ViewGroup
>(
R
.
id
.
bell_container
).
setGone
(
it
.
switcher
?:
false
)
}
status
?.
let
{
statusToolbar
.
status_icon
.
setGone
(
it
.
state
==
null
)
statusToolbar
.
status_title
.
setGone
(
it
.
state
==
null
)
it
.
state
?.
let
{
state
->
statusToolbar
.
status_icon
.
isEnabled
=
when
(
state
){
StatusState
.
AVALIABLE
->
true
else
->
false
}
statusToolbar
.
status_title
.
text
=
when
(
state
){
StatusState
.
AVALIABLE
->
resources
.
getString
(
R
.
string
.
estate_avalibale
)
StatusState
.
SOLD_OUT
->
resources
.
getString
(
R
.
string
.
estate_sold_out
)
}
}
statusToolbar
.
status_title
.
setGone
(
it
.
title
==
null
)
it
.
title
?.
let
{
title
->
statusToolbar
.
status_title
.
text
=
title
}
}
headerToolbar
.
requestLayout
()
statusToolbar
.
requestLayout
()
val
params
=
topAppBar
.
layoutParams
as
AppBarLayout
.
LayoutParams
val
toolbarHeight
=
if
(!
headerToolbar
.
isGone
)
headerToolbar
.
height
else
0
+
if
(!
statusToolbar
.
isGone
)
statusToolbar
.
height
else
0
params
.
height
=
toolbarHeight
topAppBar
.
layoutParams
=
params
topAppBar
.
requestLayout
()
}
override
fun
hide
()
{
override
fun
hide
()
{
...
@@ -118,3 +163,4 @@ class RoomParkMainActivity(
...
@@ -118,3 +163,4 @@ class RoomParkMainActivity(
}
}
}
}
}
}
app/src/main/java/com/biganto/visual/roompark/base/TopBar.kt
View file @
ea5ca6cf
...
@@ -5,6 +5,7 @@ import androidx.appcompat.widget.Toolbar
...
@@ -5,6 +5,7 @@ import androidx.appcompat.widget.Toolbar
import
androidx.coordinatorlayout.widget.CoordinatorLayout
import
androidx.coordinatorlayout.widget.CoordinatorLayout
import
com.google.android.material.appbar.AppBarLayout
import
com.google.android.material.appbar.AppBarLayout
import
com.google.android.material.bottomnavigation.BottomNavigationView
import
com.google.android.material.bottomnavigation.BottomNavigationView
import
com.google.android.material.textview.MaterialTextView
/**
/**
* Created by Vladislav Bogdashkin on 26.09.2019.
* Created by Vladislav Bogdashkin on 26.09.2019.
...
@@ -23,6 +24,8 @@ interface ICollapsingToolBar : ISupportActionBar{
...
@@ -23,6 +24,8 @@ interface ICollapsingToolBar : ISupportActionBar{
fun
appBarScrollable
(
allow
:
Boolean
)
fun
appBarScrollable
(
allow
:
Boolean
)
val
statusToolbar
:
ViewGroup
val
statusToolbar
:
ViewGroup
val
headerToolbar
:
ViewGroup
val
headerToolbar
:
ViewGroup
val
headerToolbarBack
:
MaterialTextView
?
fun
setToolbar
(
header
:
HeaderToolbarModel
?
=
null
,
status
:
StatusToolbarModel
?
=
null
)
}
}
interface
IConductorActivity
{
interface
IConductorActivity
{
...
@@ -34,3 +37,14 @@ interface IBottomNavigation{
...
@@ -34,3 +37,14 @@ interface IBottomNavigation{
fun
hide
()
fun
hide
()
fun
show
()
fun
show
()
}
}
data class
HeaderToolbarModel
(
val
backButton
:
Boolean
,
val
backTitle
:
String
?
,
val
title
:
String
?
,
val
switcher
:
Boolean
?
=
null
)
data class
StatusToolbarModel
(
val
state
:
StatusState
?,
val
title
:
String
?)
enum
class
StatusState
{
AVALIABLE
,
SOLD_OUT
}
\ No newline at end of file
app/src/main/java/com/biganto/visual/roompark/presentation/screen/deal/ScreenController.kt
View file @
ea5ca6cf
...
@@ -7,13 +7,13 @@ import android.widget.LinearLayout
...
@@ -7,13 +7,13 @@ import android.widget.LinearLayout
import
androidx.core.os.bundleOf
import
androidx.core.os.bundleOf
import
butterknife.BindView
import
butterknife.BindView
import
com.biganto.visual.roompark.R
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.RoomParkApplication
import
com.biganto.visual.roompark.base.RoomParkMainActivity
import
com.biganto.visual.roompark.base.RoomParkMainActivity
import
com.biganto.visual.roompark.conductor.BigantoBaseController
import
com.biganto.visual.roompark.conductor.BigantoBaseController
import
com.biganto.visual.roompark.util.extensions.toRubly
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.StatusProgressAnimationState
import
com.biganto.visual.roompark.util.view_utils.status_progress_view.StatusProgressCeil
import
com.biganto.visual.roompark.util.view_utils.status_progress_view.StatusProgressCeil
import
com.google.android.material.appbar.AppBarLayout
import
com.google.android.material.textview.MaterialTextView
import
com.google.android.material.textview.MaterialTextView
import
timber.log.Timber
import
timber.log.Timber
import
javax.inject.Inject
import
javax.inject.Inject
...
@@ -74,21 +74,9 @@ class DealScreenController :
...
@@ -74,21 +74,9 @@ class DealScreenController :
Timber
.
d
(
"content insets : ${toolBar.topAppBar.contentInsetEnd}"
)
Timber
.
d
(
"content insets : ${toolBar.topAppBar.contentInsetEnd}"
)
activity
?.
actionBar
?.
setDisplayShowTitleEnabled
(
false
)
activity
?.
actionBar
?.
setDisplayShowTitleEnabled
(
false
)
toolBar
.
statusToolbar
.
visibility
=
View
.
GONE
toolBar
.
headerToolbar
.
visibility
=
View
.
VISIBLE
toolBar
.
setToolbar
(
HeaderToolbarModel
(
toolBar
.
headerToolbar
.
findViewById
<
MaterialTextView
>(
R
.
id
.
toolbar_title
).
text
=
"Кв. 1231\n42342"
true
,
"МОИ\nСДЕЛКИ"
,
null
,
null
))
val
params
=
toolBar
.
topAppBar
.
layoutParams
as
AppBarLayout
.
LayoutParams
resources
?.
displayMetrics
?.
density
?.
let
{
params
.
height
=
toolBar
.
headerToolbar
.
height
Timber
.
d
(
"density: $it"
)
// params.height = (24f*it).toInt()
Timber
.
d
(
"density: ${params.height}"
)
}
?:
error
(
"resources not available!"
)
toolBar
.
topAppBar
.
layoutParams
=
params
toolBar
.
topAppBar
.
requestLayout
()
toolBar
.
topAppBar
.
invalidate
()
...
...
app/src/main/java/com/biganto/visual/roompark/presentation/screen/deals/ScreenController.kt
View file @
ea5ca6cf
...
@@ -5,6 +5,7 @@ import androidx.recyclerview.widget.LinearLayoutManager
...
@@ -5,6 +5,7 @@ import androidx.recyclerview.widget.LinearLayoutManager
import
androidx.recyclerview.widget.RecyclerView
import
androidx.recyclerview.widget.RecyclerView
import
butterknife.BindView
import
butterknife.BindView
import
com.biganto.visual.roompark.R
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.RoomParkApplication
import
com.biganto.visual.roompark.base.RoomParkMainActivity
import
com.biganto.visual.roompark.base.RoomParkMainActivity
import
com.biganto.visual.roompark.conductor.BigantoBaseController
import
com.biganto.visual.roompark.conductor.BigantoBaseController
...
@@ -51,12 +52,18 @@ class DealsScreenController :
...
@@ -51,12 +52,18 @@ class DealsScreenController :
private
fun
setToolbar
(){
private
fun
setToolbar
(){
toolBar
.
showAll
()
toolBar
.
showAll
()
toolBar
.
appBar
.
setExpanded
(
false
,
tru
e
)
toolBar
.
appBar
.
setExpanded
(
false
,
fals
e
)
toolBar
.
topAppBar
.
title
=
"МОИ СДЕЛКИ"
toolBar
.
topAppBar
.
title
=
"МОИ СДЕЛКИ"
toolBar
.
appBar
.
liftOnScrollTargetViewId
=
R
.
id
.
favorites_cards_recycler_view
toolBar
.
appBar
.
liftOnScrollTargetViewId
=
R
.
id
.
favorites_cards_recycler_view
toolBar
.
appBar
.
setLiftable
(
true
)
toolBar
.
appBar
.
setLiftable
(
true
)
toolBar
.
appBarScrollable
(
false
)
toolBar
.
appBarScrollable
(
false
)
dealsRecyclerView
.
isNestedScrollingEnabled
=
false
dealsRecyclerView
.
isNestedScrollingEnabled
=
false
toolBar
.
setToolbar
(
HeaderToolbarModel
(
false
,
null
,
"ИЗБРАННОЕ"
,
null
)
)
}
}
@Inject
@Inject
...
...
app/src/main/java/com/biganto/visual/roompark/presentation/screen/feeds/ScreenController.kt
View file @
ea5ca6cf
...
@@ -139,7 +139,9 @@ class FeedsScreenController :
...
@@ -139,7 +139,9 @@ class FeedsScreenController :
.
map
{
storedFeedsList
[
it
.
position
]
}
.
map
{
storedFeedsList
[
it
.
position
]
}
override
fun
onViewBound
(
v
:
View
)
{
override
fun
onViewBound
(
v
:
View
)
{
toolBar
.
hideAll
()
// toolBar.hideAll()
toolBar
.
setToolbar
()
bindRecycler
()
bindRecycler
()
}
}
...
...
app/src/main/java/com/biganto/visual/roompark/util/extensions/ext.kt
View file @
ea5ca6cf
...
@@ -47,7 +47,6 @@ fun Long.bytesToSize():String{
...
@@ -47,7 +47,6 @@ fun Long.bytesToSize():String{
}
}
}
}
fun
Float
.
format
(
fracDigits
:
Int
):
String
{
fun
Float
.
format
(
fracDigits
:
Int
):
String
{
val
df
=
DecimalFormat
()
val
df
=
DecimalFormat
()
df
.
maximumFractionDigits
=
fracDigits
df
.
maximumFractionDigits
=
fracDigits
...
...
app/src/main/res/layout/bell_switch_view.xml
View file @
ea5ca6cf
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
android:id=
"@+id/bell_container"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:orientation=
"vertical"
>
android:orientation=
"vertical"
>
...
...
app/src/main/res/layout/status_layout_toolbar.xml
View file @
ea5ca6cf
...
@@ -34,6 +34,19 @@
...
@@ -34,6 +34,19 @@
app:layout_constraintStart_toEndOf=
"@+id/status_icon"
app:layout_constraintStart_toEndOf=
"@+id/status_icon"
app:layout_constraintTop_toTopOf=
"@+id/status_icon"
/>
app:layout_constraintTop_toTopOf=
"@+id/status_icon"
/>
<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_height=
"wrap_content"
android:layout_marginStart=
"8dp"
android:text=
"СВОБОДНА"
app:layout_constraintBottom_toBottomOf=
"@+id/status_icon"
app:layout_constraintStart_toEndOf=
"@+id/status_icon"
app:layout_constraintTop_toTopOf=
"@+id/status_icon"
/>
<ImageView
<ImageView
android:id=
"@+id/back_cross"
android:id=
"@+id/back_cross"
android:layout_width=
"24dp"
android:layout_width=
"24dp"
...
...
app/src/main/res/values/strings.xml
View file @
ea5ca6cf
...
@@ -76,6 +76,8 @@
...
@@ -76,6 +76,8 @@
<string
name=
"feeds_cache"
>
Новости и заметки
</string>
<string
name=
"feeds_cache"
>
Новости и заметки
</string>
<string
name=
"albums_cache"
>
Фотографии
</string>
<string
name=
"albums_cache"
>
Фотографии
</string>
<string
name=
"overall_cache"
>
Всего скачано
</string>
<string
name=
"overall_cache"
>
Всего скачано
</string>
<string
name=
"estate_avalibale"
>
СВОБОДНА
</string>
<string
name=
"estate_sold_out"
>
ПРОДАНА
</string>
<!--endregion-->
<!--endregion-->
</resources>
</resources>
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