Skip to content

Commit

Permalink
Merge pull request #19263 from wordpress-mobile/issue/unified-dashboa…
Browse files Browse the repository at this point in the history
…rd-refactoring-part-2-site-header

Unified Dashboard: Refactoring Part 2 - Remove Tabs from viewmodel and view
  • Loading branch information
zwarm authored Sep 27, 2023
2 parents e254632 + 6e735be commit 73568f8
Show file tree
Hide file tree
Showing 27 changed files with 280 additions and 2,140 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package org.wordpress.android.e2e

import dagger.hilt.android.testing.HiltAndroidTest
import org.junit.Before
import org.junit.Ignore
import org.junit.Test
import org.wordpress.android.e2e.pages.MySitesPage
import org.wordpress.android.support.BaseTest
Expand All @@ -16,6 +17,7 @@ class DashboardTests : BaseTest() {
wpLogin()
}

@Ignore("Will be taken care of in a future PR")
@Test
fun e2ePagesCardNavigation() {
MySitesPage()
Expand All @@ -31,6 +33,7 @@ class DashboardTests : BaseTest() {
.assertPagesScreenHasPage("Shop")
}

@Ignore("will be taken care of in a future PR")
@Test
fun e2eActivityLogCardNavigation() {
MySitesPage()
Expand Down
6 changes: 0 additions & 6 deletions WordPress/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -96,12 +96,6 @@
android:theme="@style/Wordpress.BottomBar"
android:label="" />

<activity
android:name=".ui.mysite.MySiteMenuActivity"
android:theme="@style/WordPress.NoActionBar"
android:label="@string/my_site_section_screen_title"
android:exported="false" />

<activity
android:name=".ui.mysite.menu.MenuActivity"
android:theme="@style/WordPress.NoActionBar"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,6 @@
import org.wordpress.android.ui.mediapicker.MediaPickerFragment;
import org.wordpress.android.ui.mlp.ModalLayoutPickerFragment;
import org.wordpress.android.ui.mysite.MySiteFragment;
import org.wordpress.android.ui.mysite.MySiteMenuFragment;
import org.wordpress.android.ui.notifications.DismissNotificationReceiver;
import org.wordpress.android.ui.notifications.NotificationsDetailActivity;
import org.wordpress.android.ui.notifications.NotificationsDetailListFragment;
Expand Down Expand Up @@ -503,8 +502,6 @@ public interface AppComponent {

void inject(MySiteFragment object);

void inject(MySiteMenuFragment object);

void inject(BackupDownloadActivity object);

void inject(RestoreActivity object);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,6 @@
import org.wordpress.android.ui.main.jetpack.migration.JetpackMigrationActivity;
import org.wordpress.android.ui.media.MediaBrowserActivity;
import org.wordpress.android.ui.media.MediaBrowserType;
import org.wordpress.android.ui.mysite.MySiteMenuActivity;
import org.wordpress.android.ui.pages.PageParentActivity;
import org.wordpress.android.ui.pages.PagesActivity;
import org.wordpress.android.ui.people.PeopleManagementActivity;
Expand Down Expand Up @@ -686,13 +685,6 @@ public static void viewCurrentBlogMedia(Context context, SiteModel site) {
AnalyticsUtils.trackWithSiteDetails(AnalyticsTracker.Stat.OPENED_MEDIA_LIBRARY, site);
}

public static void viewQuickLinkMoreMenu(Context context, SiteModel site) {
Intent intent = new Intent(context, MySiteMenuActivity.class);
intent.putExtra(WordPress.SITE, site);
context.startActivity(intent);
AnalyticsUtils.trackWithSiteDetails(Stat.OPENED_QUICK_LINK_RIBBON_MORE, site);
}

public static void viewCurrentBlogPages(@NonNull Context context, @NonNull SiteModel site) {
Intent intent = new Intent(context, PagesActivity.class);
intent.putExtra(WordPress.SITE, site);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package org.wordpress.android.ui.mysite

interface BloggingPromptsOnboardingListener {
fun onShowBloggingPromptsOnboarding()
}
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ sealed class MySiteCardAndItemBuilderParams {
val onStatsClick: () -> Unit,
val onMoreClick: () -> Unit,
val activeTask: QuickStartTask?,
val enableFocusPoints: Boolean = false
) : MySiteCardAndItemBuilderParams()

data class DomainRegistrationCardBuilderParams(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.google.android.material.appbar.AppBarLayout
import com.yalantis.ucrop.UCrop
import com.yalantis.ucrop.UCropActivity
import org.wordpress.android.R
Expand Down Expand Up @@ -43,7 +42,6 @@ import org.wordpress.android.ui.main.jetpack.migration.JetpackMigrationActivity
import org.wordpress.android.ui.main.utils.MeGravatarLoader
import org.wordpress.android.ui.mysite.MySiteCardAndItem.SiteInfoHeaderCard
import org.wordpress.android.ui.mysite.MySiteCardAndItem.SiteInfoHeaderCard.IconState
import org.wordpress.android.ui.mysite.MySiteViewModel.SiteInfoToolbarViewParams
import org.wordpress.android.ui.mysite.MySiteViewModel.State
import org.wordpress.android.ui.mysite.cards.dashboard.bloggingprompts.BloggingPromptsCardAnalyticsTracker
import org.wordpress.android.ui.mysite.jetpackbadge.JetpackPoweredBottomSheetFragment
Expand Down Expand Up @@ -156,7 +154,6 @@ class MySiteFragment : Fragment(R.layout.my_site_fragment),
super.onViewCreated(view, savedInstanceState)
initViewModel()
binding = MySiteFragmentBinding.bind(view).apply {
setupToolbar()
setupContentViews(savedInstanceState)
setupObservers()
}
Expand Down Expand Up @@ -318,37 +315,6 @@ class MySiteFragment : Fragment(R.layout.my_site_fragment),
.get(BasicDialogViewModel::class.java)
}

private fun MySiteFragmentBinding.setupToolbar() {
appbarMain.addOnOffsetChangedListener(AppBarLayout.OnOffsetChangedListener { appBarLayout, verticalOffset ->
val maxOffset = appBarLayout.totalScrollRange
val currentOffset = maxOffset + verticalOffset

val percentage = if (maxOffset == 0) {
updateCollapsibleToolbar(1)
MAX_PERCENT
} else {
updateCollapsibleToolbar(currentOffset)
((currentOffset.toFloat() / maxOffset.toFloat()) * MAX_PERCENT).toInt()
}

fadeSiteInfoHeader(percentage)
})
}

private fun MySiteFragmentBinding.updateCollapsibleToolbar(currentOffset: Int) {
if (currentOffset == 0) {
collapsingToolbar.title = siteTitle
siteInfo.siteInfoCard.visibility = View.INVISIBLE
} else {
collapsingToolbar.title = null
siteInfo.siteInfoCard.visibility = View.VISIBLE
}
}

private fun MySiteFragmentBinding.fadeSiteInfoHeader(percentage: Int) {
siteInfo.siteInfoCard.alpha = percentage.toFloat() / 100
}

private fun MySiteFragmentBinding.setupContentViews(savedInstanceState: Bundle?) {
val layoutManager = LinearLayoutManager(activity)

Expand Down Expand Up @@ -462,15 +428,6 @@ class MySiteFragment : Fragment(R.layout.my_site_fragment),
)
}

viewModel.onScrollTo.observeEvent(viewLifecycleOwner) {
var quickStartScrollPosition = it
if (quickStartScrollPosition == -1) {
appbarMain.setExpanded(true, true)
quickStartScrollPosition = 0
}
if (quickStartScrollPosition > 0) appbarMain.setExpanded(false, true)
}

viewModel.refresh.observe(viewLifecycleOwner) {
viewModel.refresh()
}
Expand All @@ -482,8 +439,18 @@ class MySiteFragment : Fragment(R.layout.my_site_fragment),
viewModel.onShowJetpackIndividualPluginOverlay.observeEvent(viewLifecycleOwner) {
WPJetpackIndividualPluginFragment.show(requireActivity().supportFragmentManager)
}

viewModel.onScrollTo.observeEvent(viewLifecycleOwner) {
var quickStartScrollPosition = it
if (quickStartScrollPosition == -1) {
quickStartScrollPosition = 0
}
if (quickStartScrollPosition > 0) recyclerView.scrollToPosition(quickStartScrollPosition)
else appbarMain.setExpanded(true)
}
}


private fun MySiteFragmentBinding.hideRefreshIndicatorIfNeeded() {
swipeRefreshLayout.postDelayed({
swipeToRefreshHelper.isRefreshing = viewModel.isRefreshing()
Expand Down Expand Up @@ -552,10 +519,8 @@ class MySiteFragment : Fragment(R.layout.my_site_fragment),
}

private fun MySiteFragmentBinding.loadData(state: State.SiteSelected) {
if (state.siteInfoHeaderState.hasUpdates || !header.isVisible) {
siteInfo.loadMySiteDetails(state.siteInfoHeaderState.siteInfoHeader)
}
updateSiteInfoToolbarView(state.siteInfoToolbarViewParams)
appbarMain.visibility = View.VISIBLE
siteInfo.loadMySiteDetails(state.siteInfoHeader)

recyclerView.setVisible(true)
val cardAndItems = if (buildConfigWrapper.isJetpackApp) {
Expand All @@ -576,8 +541,6 @@ class MySiteFragment : Fragment(R.layout.my_site_fragment),
}

siteTitle = getString(R.string.my_site_section_screen_title)
updateSiteInfoToolbarView(state.siteInfoToolbarViewParams)
appbarMain.setExpanded(false, true)
}

private fun MySiteInfoHeaderCardBinding.loadMySiteDetails(siteInfoHeader: SiteInfoHeaderCard) {
Expand Down Expand Up @@ -606,18 +569,6 @@ class MySiteFragment : Fragment(R.layout.my_site_fragment),
switchSite.setOnClickListener { siteInfoHeader.onSwitchSiteClick.click() }
}

private fun MySiteFragmentBinding.updateSiteInfoToolbarView(siteInfoToolbarViewParams: SiteInfoToolbarViewParams) {
showHeader(siteInfoToolbarViewParams.headerVisible)
val appBarHeight = resources.getDimension(siteInfoToolbarViewParams.appBarHeight).toInt()
appbarMain.layoutParams.height = appBarHeight
appbarMain.isLiftOnScroll = siteInfoToolbarViewParams.appBarLiftOnScroll
appbarMain.requestLayout()
}

private fun MySiteFragmentBinding.showHeader(visibility: Boolean) {
header.visibility = if (visibility) View.VISIBLE else View.INVISIBLE
}


@Suppress("ComplexMethod", "LongMethod")
fun handleNavigationAction(action: SiteNavigationAction) = when (action) {
Expand Down Expand Up @@ -888,7 +839,6 @@ class MySiteFragment : Fragment(R.layout.my_site_fragment),
companion object {
@JvmField var TAG: String = MySiteFragment::class.java.simpleName
private const val CHECK_REFRESH_DELAY = 300L
private const val MAX_PERCENT = 100
private const val KEY_LIST_STATE = "key_list_state"
private const val KEY_NESTED_LISTS_STATES = "key_nested_lists_states"
private const val TAG_QUICK_START_DIALOG = "TAG_QUICK_START_DIALOG"
Expand Down

This file was deleted.

Loading

0 comments on commit 73568f8

Please sign in to comment.