@@ -19,6 +19,7 @@ import android.view.Menu
1919import android.view.MenuItem
2020import android.view.View
2121import android.view.ViewGroup
22+ import android.widget.RelativeLayout
2223import com.bumptech.glide.Glide
2324import com.ediposouza.teslesgendstracker.App
2425import com.ediposouza.teslesgendstracker.R
@@ -30,20 +31,15 @@ import com.ediposouza.teslesgendstracker.interactor.PublicInteractor
3031import com.ediposouza.teslesgendstracker.ui.base.BaseActivity
3132import com.ediposouza.teslesgendstracker.ui.base.CmdShowSnackbarMsg
3233import 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.*
3736import com.google.firebase.auth.FirebaseAuth
3837import io.fabric.sdk.android.services.common.CommonUtils
3938import jp.wasabeef.recyclerview.animators.SlideInLeftAnimator
4039import kotlinx.android.synthetic.main.activity_deck.*
4140import kotlinx.android.synthetic.main.include_deck_info.*
4241import 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.*
4743import org.threeten.bp.format.DateTimeFormatter
4844import timber.log.Timber
4945import java.text.NumberFormat
@@ -67,6 +63,7 @@ class DeckActivity : BaseActivity() {
6763
6864 private val publicInteractor by lazy { PublicInteractor () }
6965 private val privateInteractor by lazy { PrivateInteractor () }
66+ private val keyboardUtil by lazy { KeyboardUtil (this , contentView) }
7067 private val deckOwned by lazy { intent.getBooleanExtra(EXTRA_OWNED , false ) }
7168 private val deck: Deck by lazy { intent.getParcelableExtra<Deck >(EXTRA_DECK ) }
7269 private val numberInstance: NumberFormat by lazy { NumberFormat .getNumberInstance() }
@@ -79,32 +76,53 @@ class DeckActivity : BaseActivity() {
7976 override fun onCreate (savedInstanceState : Bundle ? ) {
8077 super .onCreate(savedInstanceState)
8178 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 ) {
8386 val layoutParams = toolbar.layoutParams as CollapsingToolbarLayout .LayoutParams
84- layoutParams.topMargin = resources.getDimensionPixelSize( R .dimen.status_bar_height)
87+ layoutParams.topMargin = statusBarHeight
8588 toolbar.layoutParams = layoutParams
8689 }
8790
8891 favorite = intent.getBooleanExtra(EXTRA_FAVORITE , false )
8992 like = intent.getBooleanExtra(EXTRA_LIKE , false )
93+ configViews()
94+ updateFavoriteItem()
95+ loadDeckInfo()
96+ }
97+
98+ private fun configViews () {
9099 deck_fab_favorite.setOnClickListener {
91100 if (App .hasUserLogged()) {
92101 privateInteractor.setUserDeckFavorite(deck, ! favorite) {
93102 favorite = ! favorite
94103 updateFavoriteItem()
104+ MetricsManager .trackAction(if (favorite)
105+ MetricAction .ACTION_DECK_DETAILS_FAVORITE () else MetricAction .ACTION_DECK_DETAILS_UNFAVORITE ())
95106 }
96107 } else {
97108 showErrorUserNotLogged()
98109 }
99110 }
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+ }
104114
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() }
108126 deck_comment_send?.setOnClickListener {
109127 if (App .hasUserLogged()) {
110128 if (deck_comment_new.text.toString().length < 4 ) {
@@ -114,12 +132,18 @@ class DeckActivity : BaseActivity() {
114132 PrivateInteractor ().addDeckComment(deck, deck_comment_new.text.toString()) {
115133 deck_comment_new.setText(" " )
116134 addComment(it)
135+ MetricsManager .trackAction(MetricAction .ACTION_DECK_COMMENTS_SEND ())
117136 }
118137 }
119138 } else {
120139 showErrorUserNotLogged()
121140 }
122141 }
142+ }
143+
144+ override fun onPostCreate (savedInstanceState : Bundle ? ) {
145+ super .onPostCreate(savedInstanceState)
146+ supportActionBar?.setDisplayHomeAsUpEnabled(true )
123147 onKeyboardVisibilityChange = {
124148 deck_comment_recycle_view.requestLayout()
125149 }
@@ -146,6 +170,16 @@ class DeckActivity : BaseActivity() {
146170 }
147171 }
148172
173+ override fun onStart () {
174+ super .onStart()
175+ keyboardUtil.enable()
176+ }
177+
178+ override fun onStop () {
179+ super .onStop()
180+ keyboardUtil.disable()
181+ }
182+
149183 override fun onCreateOptionsMenu (menu : Menu ? ): Boolean {
150184 menuInflater.inflate(if (deckOwned) R .menu.menu_deck_owner else R .menu.menu_deck, menu)
151185 menuLike = menu?.findItem(R .id.menu_like)
@@ -169,6 +203,8 @@ class DeckActivity : BaseActivity() {
169203 updateLikeItem()
170204 val deckLikes = Integer .parseInt(deck_details_likes.text.toString())
171205 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 ())
172208 }
173209 return true
174210 }
@@ -179,6 +215,7 @@ class DeckActivity : BaseActivity() {
179215 privateInteractor.deleteDeck(deck, deck.private) {
180216 toast(R .string.deck_deleted)
181217 ActivityCompat .finishAfterTransition(this @DeckActivity)
218+ MetricsManager .trackAction(MetricAction .ACTION_DECK_DETAILS_DELETE ())
182219 }
183220 })
184221 setTheme(R .style.AppDialog )
0 commit comments