@@ -19,6 +19,7 @@ import android.view.Menu
19
19
import android.view.MenuItem
20
20
import android.view.View
21
21
import android.view.ViewGroup
22
+ import android.widget.RelativeLayout
22
23
import com.bumptech.glide.Glide
23
24
import com.ediposouza.teslesgendstracker.App
24
25
import com.ediposouza.teslesgendstracker.R
@@ -30,20 +31,15 @@ import com.ediposouza.teslesgendstracker.interactor.PublicInteractor
30
31
import com.ediposouza.teslesgendstracker.ui.base.BaseActivity
31
32
import com.ediposouza.teslesgendstracker.ui.base.CmdShowSnackbarMsg
32
33
import com.ediposouza.teslesgendstracker.ui.util.CircleTransform
33
- import com.ediposouza.teslesgendstracker.util.MetricScreen
34
- import com.ediposouza.teslesgendstracker.util.MetricsManager
35
- import com.ediposouza.teslesgendstracker.util.inflate
36
- import com.ediposouza.teslesgendstracker.util.toggleExpanded
34
+ import com.ediposouza.teslesgendstracker.ui.util.KeyboardUtil
35
+ import com.ediposouza.teslesgendstracker.util.*
37
36
import com.google.firebase.auth.FirebaseAuth
38
37
import io.fabric.sdk.android.services.common.CommonUtils
39
38
import jp.wasabeef.recyclerview.animators.SlideInLeftAnimator
40
39
import kotlinx.android.synthetic.main.activity_deck.*
41
40
import kotlinx.android.synthetic.main.include_deck_info.*
42
41
import kotlinx.android.synthetic.main.itemlist_deck_comment.view.*
43
- import org.jetbrains.anko.alert
44
- import org.jetbrains.anko.doAsync
45
- import org.jetbrains.anko.intentFor
46
- import org.jetbrains.anko.toast
42
+ import org.jetbrains.anko.*
47
43
import org.threeten.bp.format.DateTimeFormatter
48
44
import timber.log.Timber
49
45
import java.text.NumberFormat
@@ -67,6 +63,7 @@ class DeckActivity : BaseActivity() {
67
63
68
64
private val publicInteractor by lazy { PublicInteractor () }
69
65
private val privateInteractor by lazy { PrivateInteractor () }
66
+ private val keyboardUtil by lazy { KeyboardUtil (this , contentView) }
70
67
private val deckOwned by lazy { intent.getBooleanExtra(EXTRA_OWNED , false ) }
71
68
private val deck: Deck by lazy { intent.getParcelableExtra<Deck >(EXTRA_DECK ) }
72
69
private val numberInstance: NumberFormat by lazy { NumberFormat .getNumberInstance() }
@@ -79,32 +76,53 @@ class DeckActivity : BaseActivity() {
79
76
override fun onCreate (savedInstanceState : Bundle ? ) {
80
77
super .onCreate(savedInstanceState)
81
78
setContentView(R .layout.activity_deck)
82
- if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .LOLLIPOP ) {
79
+ val statusBarHeight = resources.getDimensionPixelSize(R .dimen.status_bar_height)
80
+ if (Build .VERSION .SDK_INT == Build .VERSION_CODES .KITKAT ) {
81
+ val coverLP = deck_class_cover.layoutParams as RelativeLayout .LayoutParams
82
+ coverLP.height = coverLP.height - statusBarHeight
83
+ deck_class_cover.layoutParams = coverLP
84
+ }
85
+ if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .KITKAT ) {
83
86
val layoutParams = toolbar.layoutParams as CollapsingToolbarLayout .LayoutParams
84
- layoutParams.topMargin = resources.getDimensionPixelSize( R .dimen.status_bar_height)
87
+ layoutParams.topMargin = statusBarHeight
85
88
toolbar.layoutParams = layoutParams
86
89
}
87
90
88
91
favorite = intent.getBooleanExtra(EXTRA_FAVORITE , false )
89
92
like = intent.getBooleanExtra(EXTRA_LIKE , false )
93
+ configViews()
94
+ updateFavoriteItem()
95
+ loadDeckInfo()
96
+ }
97
+
98
+ private fun configViews () {
90
99
deck_fab_favorite.setOnClickListener {
91
100
if (App .hasUserLogged()) {
92
101
privateInteractor.setUserDeckFavorite(deck, ! favorite) {
93
102
favorite = ! favorite
94
103
updateFavoriteItem()
104
+ MetricsManager .trackAction(if (favorite)
105
+ MetricAction .ACTION_DECK_DETAILS_FAVORITE () else MetricAction .ACTION_DECK_DETAILS_UNFAVORITE ())
95
106
}
96
107
} else {
97
108
showErrorUserNotLogged()
98
109
}
99
110
}
100
- deck_bottom_sheet.setOnClickListener { commentsSheetBehavior.toggleExpanded() }
101
- updateFavoriteItem()
102
- loadDeckInfo()
103
- }
111
+ commentsSheetBehavior.setBottomSheetCallback(object : BottomSheetBehavior .BottomSheetCallback () {
112
+ override fun onSlide (bottomSheet : View , slideOffset : Float ) {
113
+ }
104
114
105
- override fun onPostCreate (savedInstanceState : Bundle ? ) {
106
- super .onPostCreate(savedInstanceState)
107
- supportActionBar?.setDisplayHomeAsUpEnabled(true )
115
+ override fun onStateChanged (bottomSheet : View , newState : Int ) {
116
+ when (newState) {
117
+ BottomSheetBehavior .STATE_EXPANDED ->
118
+ MetricsManager .trackAction(MetricAction .ACTION_DECK_COMMENTS_EXPAND ())
119
+ BottomSheetBehavior .STATE_COLLAPSED ->
120
+ MetricsManager .trackAction(MetricAction .ACTION_DECK_COMMENTS_COLLAPSE ())
121
+ }
122
+ }
123
+
124
+ })
125
+ deck_bottom_sheet.setOnClickListener { commentsSheetBehavior.toggleExpanded() }
108
126
deck_comment_send?.setOnClickListener {
109
127
if (App .hasUserLogged()) {
110
128
if (deck_comment_new.text.toString().length < 4 ) {
@@ -114,12 +132,18 @@ class DeckActivity : BaseActivity() {
114
132
PrivateInteractor ().addDeckComment(deck, deck_comment_new.text.toString()) {
115
133
deck_comment_new.setText(" " )
116
134
addComment(it)
135
+ MetricsManager .trackAction(MetricAction .ACTION_DECK_COMMENTS_SEND ())
117
136
}
118
137
}
119
138
} else {
120
139
showErrorUserNotLogged()
121
140
}
122
141
}
142
+ }
143
+
144
+ override fun onPostCreate (savedInstanceState : Bundle ? ) {
145
+ super .onPostCreate(savedInstanceState)
146
+ supportActionBar?.setDisplayHomeAsUpEnabled(true )
123
147
onKeyboardVisibilityChange = {
124
148
deck_comment_recycle_view.requestLayout()
125
149
}
@@ -146,6 +170,16 @@ class DeckActivity : BaseActivity() {
146
170
}
147
171
}
148
172
173
+ override fun onStart () {
174
+ super .onStart()
175
+ keyboardUtil.enable()
176
+ }
177
+
178
+ override fun onStop () {
179
+ super .onStop()
180
+ keyboardUtil.disable()
181
+ }
182
+
149
183
override fun onCreateOptionsMenu (menu : Menu ? ): Boolean {
150
184
menuInflater.inflate(if (deckOwned) R .menu.menu_deck_owner else R .menu.menu_deck, menu)
151
185
menuLike = menu?.findItem(R .id.menu_like)
@@ -169,6 +203,8 @@ class DeckActivity : BaseActivity() {
169
203
updateLikeItem()
170
204
val deckLikes = Integer .parseInt(deck_details_likes.text.toString())
171
205
deck_details_likes.text = numberInstance.format(deckLikes + if (like) 1 else - 1 )
206
+ MetricsManager .trackAction(if (like)
207
+ MetricAction .ACTION_DECK_DETAILS_LIKE () else MetricAction .ACTION_DECK_DETAILS_UNLIKE ())
172
208
}
173
209
return true
174
210
}
@@ -179,6 +215,7 @@ class DeckActivity : BaseActivity() {
179
215
privateInteractor.deleteDeck(deck, deck.private) {
180
216
toast(R .string.deck_deleted)
181
217
ActivityCompat .finishAfterTransition(this @DeckActivity)
218
+ MetricsManager .trackAction(MetricAction .ACTION_DECK_DETAILS_DELETE ())
182
219
}
183
220
})
184
221
setTheme(R .style.AppDialog )
0 commit comments