Skip to content

Commit 980df98

Browse files
authored
Merge pull request #17051 from wordpress-mobile/Jetpack-focus-Update-banner-on-Activity-Log-to-scrolling-animation
Jetpack focus update banner on activity log to scrolling animation
2 parents c02aa61 + b2046d9 commit 980df98

File tree

2 files changed

+36
-17
lines changed

2 files changed

+36
-17
lines changed

WordPress/src/main/java/org/wordpress/android/ui/activitylog/list/ActivityLogListActivity.kt

Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,13 @@ import android.content.Intent
44
import android.os.Bundle
55
import android.view.MenuItem
66
import android.view.View
7-
import android.view.ViewGroup.MarginLayoutParams
8-
import androidx.core.view.isVisible
9-
import androidx.core.view.updateLayoutParams
7+
import androidx.recyclerview.widget.RecyclerView
108
import dagger.hilt.android.AndroidEntryPoint
119
import org.wordpress.android.R
1210
import org.wordpress.android.databinding.ActivityLogListActivityBinding
1311
import org.wordpress.android.ui.LocaleAwareActivity
1412
import org.wordpress.android.ui.RequestCodes
13+
import org.wordpress.android.ui.ScrollableViewInitializedListener
1514
import org.wordpress.android.ui.activitylog.detail.ActivityLogDetailActivity
1615
import org.wordpress.android.ui.jetpack.backup.download.KEY_BACKUP_DOWNLOAD_ACTION_STATE_ID
1716
import org.wordpress.android.ui.jetpack.backup.download.KEY_BACKUP_DOWNLOAD_DOWNLOAD_ID
@@ -26,29 +25,42 @@ import org.wordpress.android.viewmodel.activitylog.ACTIVITY_LOG_REWINDABLE_ONLY_
2625
import javax.inject.Inject
2726

2827
@AndroidEntryPoint
29-
class ActivityLogListActivity : LocaleAwareActivity() {
28+
class ActivityLogListActivity : LocaleAwareActivity(), ScrollableViewInitializedListener {
3029
@Inject lateinit var jetpackBrandingUtils: JetpackBrandingUtils
30+
private var binding: ActivityLogListActivityBinding? = null
3131

3232
override fun onCreate(savedInstanceState: Bundle?) {
3333
super.onCreate(savedInstanceState)
3434
with(ActivityLogListActivityBinding.inflate(layoutInflater)) {
3535
setContentView(root)
36+
binding = this
3637
checkAndUpdateUiToBackupScreen()
3738

3839
setSupportActionBar(toolbarMain)
40+
}
41+
supportActionBar?.let {
42+
it.setHomeButtonEnabled(true)
43+
it.setDisplayHomeAsUpEnabled(true)
44+
}
45+
}
3946

40-
if (jetpackBrandingUtils.shouldShowJetpackBranding()) {
41-
jetpackBanner.root.isVisible = true
42-
jetpackBrandingUtils.setNavigationBarColorForBanner(window)
47+
override fun onScrollableViewInitialized(containerId: Int) {
48+
initJetpackBanner(containerId)
49+
}
4350

44-
// Add bottom margin to content.
45-
val fragment = supportFragmentManager.findFragmentById(R.id.fragment_container)
46-
fragment?.view?.updateLayoutParams<MarginLayoutParams> {
47-
bottomMargin = resources.getDimensionPixelSize(R.dimen.jetpack_banner_height)
48-
}
51+
private fun initJetpackBanner(scrollableContainerId: Int) {
52+
if (jetpackBrandingUtils.shouldShowJetpackBranding()) {
53+
binding?.root?.post {
54+
val jetpackBannerView = binding?.jetpackBanner?.root ?: return@post
55+
val scrollableView = binding?.root?.findViewById<View>(scrollableContainerId) as? RecyclerView
56+
?: return@post
57+
58+
jetpackBrandingUtils.showJetpackBannerIfScrolledToTop(jetpackBannerView, scrollableView)
59+
window?.let { jetpackBrandingUtils.setNavigationBarColorForBanner(it) }
60+
jetpackBrandingUtils.initJetpackBannerAnimation(jetpackBannerView, scrollableView)
4961

5062
if (jetpackBrandingUtils.shouldShowJetpackPoweredBottomSheet()) {
51-
jetpackBanner.root.setOnClickListener {
63+
binding?.jetpackBanner?.root?.setOnClickListener {
5264
jetpackBrandingUtils.trackBannerTapped(ACTIVITY_LOG)
5365
JetpackPoweredBottomSheetFragment
5466
.newInstance()
@@ -57,10 +69,6 @@ class ActivityLogListActivity : LocaleAwareActivity() {
5769
}
5870
}
5971
}
60-
supportActionBar?.let {
61-
it.setHomeButtonEnabled(true)
62-
it.setDisplayHomeAsUpEnabled(true)
63-
}
6472
}
6573

6674
/**

WordPress/src/main/java/org/wordpress/android/ui/activitylog/list/ActivityLogListFragment.kt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,13 @@ import org.wordpress.android.fluxc.model.LocalOrRemoteId.RemoteId
1919
import org.wordpress.android.fluxc.model.SiteModel
2020
import org.wordpress.android.ui.ActivityLauncher
2121
import org.wordpress.android.ui.RequestCodes
22+
import org.wordpress.android.ui.ScrollableViewInitializedListener
2223
import org.wordpress.android.ui.activitylog.ActivityLogNavigationEvents
2324
import org.wordpress.android.ui.activitylog.ActivityLogNavigationEvents.DownloadBackupFile
2425
import org.wordpress.android.ui.activitylog.ActivityLogNavigationEvents.ShowBackupDownload
2526
import org.wordpress.android.ui.activitylog.ActivityLogNavigationEvents.ShowRestore
2627
import org.wordpress.android.ui.activitylog.list.filter.ActivityLogTypeFilterFragment
28+
import org.wordpress.android.ui.prefs.EmptyViewRecyclerView
2729
import org.wordpress.android.ui.utils.UiHelpers
2830
import org.wordpress.android.util.NetworkUtils
2931
import org.wordpress.android.util.WPSwipeToRefreshHelper.buildSwipeToRefreshHelper
@@ -58,6 +60,7 @@ class ActivityLogListFragment : Fragment(R.layout.activity_log_list_fragment) {
5860
@Inject lateinit var uiHelpers: UiHelpers
5961
private lateinit var viewModel: ActivityLogViewModel
6062
private lateinit var swipeToRefreshHelper: SwipeToRefreshHelper
63+
private lateinit var listView: EmptyViewRecyclerView
6164

6265
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
6366
super.onViewCreated(view, savedInstanceState)
@@ -70,6 +73,7 @@ class ActivityLogListFragment : Fragment(R.layout.activity_log_list_fragment) {
7073
).get(ActivityLogViewModel::class.java)
7174

7275
with(ActivityLogListFragmentBinding.bind(view)) {
76+
listView = logListView
7377
logListView.layoutManager = LinearLayoutManager(nonNullActivity, RecyclerView.VERTICAL, false)
7478

7579
swipeToRefreshHelper = buildSwipeToRefreshHelper(swipeRefreshLayout) {
@@ -116,6 +120,13 @@ class ActivityLogListFragment : Fragment(R.layout.activity_log_list_fragment) {
116120
restoreDateRangePickerListeners()
117121
}
118122

123+
override fun onResume() {
124+
super.onResume()
125+
if (activity is ScrollableViewInitializedListener) {
126+
(activity as ScrollableViewInitializedListener).onScrollableViewInitialized(listView.id)
127+
}
128+
}
129+
119130
private fun restoreDateRangePickerListeners() {
120131
(childFragmentManager.findFragmentByTag(DATE_PICKER_TAG) as? MaterialDatePicker<Pair<Long, Long>>)
121132
?.let { picker ->

0 commit comments

Comments
 (0)