Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unified Dashboard: Refactoring Part 1 #19244

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
2dc38bc
Refactor: Remove onCreateSiteResult() - tabs are no longer used
zwarm Sep 22, 2023
1c9aa83
Refactor: Rename my_site_tab_fragment to my_site_menu_fragment
zwarm Sep 22, 2023
38bb42b
Refactor: Rename MySiteTabFragment to MySiteMenuFragment
zwarm Sep 22, 2023
a0ba64f
Refactor: Remove MySiteTabsAdapter
zwarm Sep 22, 2023
62043ab
Refactor: Move MySiteMenuFragment out of tabs package.
zwarm Sep 22, 2023
905f495
Remove call to viewModel.onCreateSiteResult
zwarm Sep 22, 2023
525a062
Remove initial screen for app settings view
zwarm Sep 22, 2023
693c61f
Add UnifiedMySiteMenuActivity entry
zwarm Sep 24, 2023
7f3c06f
Add openUnifiedMySiteMenu navigation action to launch UnifiedMySiteMe…
zwarm Sep 24, 2023
6c8adc8
Add quick start focus into its own layout file so it can be used with…
zwarm Sep 24, 2023
3c77ba0
[WIP] Route OpenMore to UnifiedMySiteMenu instead of MySiteMenuActivity
zwarm Sep 24, 2023
feafd58
[WIP] Initial implementation of the unified my site menu activity
zwarm Sep 24, 2023
0986141
[WIP] Initial implementation of the unified my site menu view model
zwarm Sep 24, 2023
a4a56e5
Refactor: rename view model to include MySite to match the activity
zwarm Sep 24, 2023
521b713
[WIP] First styling pass
zwarm Sep 24, 2023
25b3bd1
Refactor: Use spacer for empty category header
zwarm Sep 24, 2023
370ddcc
Remove some log lines and comments
zwarm Sep 24, 2023
dddc46a
Remove unused import statement
zwarm Sep 24, 2023
95e11bb
Fix detekt long line:
zwarm Sep 25, 2023
cacf085
Refactor: Rename the UnifiedMySiteMenu classes to drop the Unified an…
zwarm Sep 25, 2023
3604177
Remove test related to default tab pref
zwarm Sep 25, 2023
22d70df
- Removes: the unified naming from compose views
AjeshRPai Sep 26, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions WordPress/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,12 @@
android:label="@string/my_site_section_screen_title"
android:exported="false" />

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

<!-- Account activities -->
<activity
android:name=".ui.main.MeActivity"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
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.tabs.MySiteTabFragment;
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,7 +503,7 @@ public interface AppComponent {

void inject(MySiteFragment object);

void inject(MySiteTabFragment object);
void inject(MySiteMenuFragment object);

void inject(BackupDownloadActivity object);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import org.wordpress.android.ui.blaze.blazecampaigns.campaignlisting.CampaignLis
import org.wordpress.android.ui.blaze.blazepromote.ARG_BLAZE_FLOW_SOURCE
import org.wordpress.android.ui.blaze.blazepromote.ARG_BLAZE_SHOULD_SHOW_OVERLAY
import org.wordpress.android.ui.blaze.blazepromote.BlazePromoteParentActivity
import org.wordpress.android.ui.mysite.menu.MenuActivity
import org.wordpress.android.ui.mysite.personalization.PersonalizationActivity
import javax.inject.Inject
import javax.inject.Singleton
Expand Down Expand Up @@ -64,4 +65,8 @@ class ActivityNavigator @Inject constructor() {
fun openDashboardPersonalization(context: Context) {
context.startActivity(Intent(context, PersonalizationActivity::class.java))
}

fun openUnifiedMySiteMenu(context: Context) {
context.startActivity(Intent(context, MenuActivity::class.java))
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@
import org.wordpress.android.ui.mysite.MySiteViewModel;
import org.wordpress.android.ui.mysite.SelectedSiteRepository;
import org.wordpress.android.ui.mysite.cards.quickstart.QuickStartRepository;
import org.wordpress.android.ui.mysite.tabs.BloggingPromptsOnboardingListener;
import org.wordpress.android.ui.mysite.BloggingPromptsOnboardingListener;
import org.wordpress.android.ui.notifications.NotificationEvents;
import org.wordpress.android.ui.notifications.NotificationsListFragment;
import org.wordpress.android.ui.notifications.SystemNotificationsTracker;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,6 @@ 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
import org.wordpress.android.ui.mysite.tabs.BloggingPromptsOnboardingListener
import org.wordpress.android.ui.pages.SnackbarMessageHolder
import org.wordpress.android.ui.photopicker.MediaPickerConstants
import org.wordpress.android.ui.photopicker.MediaPickerLauncher
Expand Down Expand Up @@ -276,15 +275,13 @@ class MySiteFragment : Fragment(R.layout.my_site_fragment),
RequestCodes.CREATE_SITE -> {
val isNewSite = requestCode == RequestCodes.CREATE_SITE ||
data.getBooleanExtra(LoginEpilogueActivity.KEY_SITE_CREATED_FROM_LOGIN_EPILOGUE, false)
viewModel.onCreateSiteResult()
viewModel.performFirstStepAfterSiteCreation(
data.getBooleanExtra(SitePickerActivity.KEY_SITE_TITLE_TASK_COMPLETED, false),
isNewSite = isNewSite
)
}
RequestCodes.SITE_PICKER -> {
if (data.getIntExtra(WPMainActivity.ARG_CREATE_SITE, 0) == RequestCodes.CREATE_SITE) {
viewModel.onCreateSiteResult()
viewModel.performFirstStepAfterSiteCreation(
data.getBooleanExtra(SitePickerActivity.KEY_SITE_TITLE_TASK_COMPLETED, false),
isNewSite = true
Expand Down Expand Up @@ -649,7 +646,8 @@ class MySiteFragment : Fragment(R.layout.my_site_fragment),
is SiteNavigationAction.OpenThemes -> ActivityLauncher.viewCurrentBlogThemes(activity, action.site)
is SiteNavigationAction.OpenPlugins -> ActivityLauncher.viewPluginBrowser(activity, action.site)
is SiteNavigationAction.OpenMedia -> ActivityLauncher.viewCurrentBlogMedia(activity, action.site)
is SiteNavigationAction.OpenMore -> ActivityLauncher.viewQuickLinkMoreMenu(activity, action.site)
// is SiteNavigationAction.OpenMore -> ActivityLauncher.viewQuickLinkMoreMenu(activity, action.site)
is SiteNavigationAction.OpenMore -> activityNavigator.openUnifiedMySiteMenu(requireActivity())
is SiteNavigationAction.OpenUnifiedComments -> ActivityLauncher.viewUnifiedComments(activity, action.site)
is SiteNavigationAction.OpenStats -> ActivityLauncher.viewBlogStats(activity, action.site)
is SiteNavigationAction.ConnectJetpackForStats ->
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
@file:Suppress("DEPRECATION")

package org.wordpress.android.ui.mysite.tabs
package org.wordpress.android.ui.mysite

import android.app.Activity
import android.content.Intent
Expand All @@ -23,7 +23,7 @@ import com.yalantis.ucrop.UCropActivity
import org.wordpress.android.R
import org.wordpress.android.WordPress
import org.wordpress.android.analytics.AnalyticsTracker
import org.wordpress.android.databinding.MySiteTabFragmentBinding
import org.wordpress.android.databinding.MySiteMenuFragmentBinding
import org.wordpress.android.fluxc.store.AccountStore
import org.wordpress.android.fluxc.store.QuickStartStore.QuickStartTask
import org.wordpress.android.ui.ActivityLauncher
Expand All @@ -47,16 +47,12 @@ import org.wordpress.android.ui.main.SitePickerActivity
import org.wordpress.android.ui.main.WPMainActivity
import org.wordpress.android.ui.main.jetpack.migration.JetpackMigrationActivity
import org.wordpress.android.ui.main.utils.MeGravatarLoader
import org.wordpress.android.ui.mysite.BloggingPromptCardNavigationAction
import org.wordpress.android.ui.mysite.MySiteAdapter
import org.wordpress.android.ui.mysite.MySiteCardAndItemDecoration
import org.wordpress.android.ui.mysite.MySiteViewModel
import org.wordpress.android.ui.mysite.MySiteViewModel.MySiteTrackWithTabSource
import org.wordpress.android.ui.mysite.MySiteViewModel.State
import org.wordpress.android.ui.mysite.SiteIconUploadHandler.ItemUploadedModel
import org.wordpress.android.ui.mysite.SiteNavigationAction
import org.wordpress.android.ui.mysite.cards.dashboard.bloggingprompts.BloggingPromptsCardAnalyticsTracker
import org.wordpress.android.ui.mysite.jetpackbadge.JetpackPoweredBottomSheetFragment
import org.wordpress.android.ui.mysite.tabs.MySiteTabType
import org.wordpress.android.ui.pages.SnackbarMessageHolder
import org.wordpress.android.ui.photopicker.MediaPickerConstants
import org.wordpress.android.ui.photopicker.MediaPickerLauncher
Expand Down Expand Up @@ -104,7 +100,7 @@ import android.R as AndroidR
import com.google.android.material.R as MaterialR

@Suppress("LargeClass")
class MySiteTabFragment : Fragment(R.layout.my_site_tab_fragment),
class MySiteMenuFragment : Fragment(R.layout.my_site_menu_fragment),
TextInputDialogFragment.Callback,
QuickStartPromptClickInterface,
OnConfirmListener,
Expand Down Expand Up @@ -156,7 +152,7 @@ class MySiteTabFragment : Fragment(R.layout.my_site_tab_fragment),
private lateinit var swipeToRefreshHelper: SwipeToRefreshHelper
private lateinit var mySiteTabType: MySiteTabType

private var binding: MySiteTabFragmentBinding? = null
private var binding: MySiteMenuFragmentBinding? = null

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Expand All @@ -177,7 +173,7 @@ class MySiteTabFragment : Fragment(R.layout.my_site_tab_fragment),
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
initTabType()
binding = MySiteTabFragmentBinding.bind(view).apply {
binding = MySiteMenuFragmentBinding.bind(view).apply {
setupContentViews(savedInstanceState)
setupObservers()
swipeToRefreshHelper.isRefreshing = true
Expand All @@ -201,7 +197,7 @@ class MySiteTabFragment : Fragment(R.layout.my_site_tab_fragment),
}
}

private fun MySiteTabFragmentBinding.setupContentViews(savedInstanceState: Bundle?) {
private fun MySiteMenuFragmentBinding.setupContentViews(savedInstanceState: Bundle?) {
with(requireActivity() as AppCompatActivity) {
setSupportActionBar(toolbarMain)
supportActionBar?.apply {
Expand Down Expand Up @@ -260,7 +256,7 @@ class MySiteTabFragment : Fragment(R.layout.my_site_tab_fragment),
}

@Suppress("DEPRECATION", "LongMethod")
private fun MySiteTabFragmentBinding.setupObservers() {
private fun MySiteMenuFragmentBinding.setupObservers() {
viewModel.uiModel.observe(viewLifecycleOwner, { uiModel ->
hideRefreshIndicatorIfNeeded()
when (val state = uiModel.state) {
Expand Down Expand Up @@ -288,7 +284,7 @@ class MySiteTabFragment : Fragment(R.layout.my_site_tab_fragment),
model.isInputEnabled,
model.callbackId
)
inputDialog.setTargetFragment(this@MySiteTabFragment, 0)
inputDialog.setTargetFragment(this@MySiteMenuFragment, 0)
inputDialog.show(parentFragmentManager, TextInputDialogFragment.TAG)
})
viewModel.onNavigation.observeEvent(viewLifecycleOwner, { handleNavigationAction(it) })
Expand Down Expand Up @@ -318,7 +314,7 @@ class MySiteTabFragment : Fragment(R.layout.my_site_tab_fragment),
is SiteNavigationAction.OpenSitePicker -> ActivityLauncher.showSitePickerForResult(activity, action.site)
is SiteNavigationAction.OpenSite -> ActivityLauncher.viewCurrentSite(activity, action.site, true)
is SiteNavigationAction.OpenMediaPicker ->
mediaPickerLauncher.showSiteIconPicker(this@MySiteTabFragment, action.site)
mediaPickerLauncher.showSiteIconPicker(this@MySiteMenuFragment, action.site)
is SiteNavigationAction.OpenCropActivity -> startCropActivity(action.imageUri)
is SiteNavigationAction.OpenActivityLog -> ActivityLauncher.viewActivityLogList(activity, action.site)
is SiteNavigationAction.OpenBackup -> ActivityLauncher.viewBackupList(activity, action.site)
Expand All @@ -345,7 +341,7 @@ class MySiteTabFragment : Fragment(R.layout.my_site_tab_fragment),
is SiteNavigationAction.ConnectJetpackForStats ->
ActivityLauncher.viewConnectJetpackForStats(activity, action.site)
is SiteNavigationAction.StartWPComLoginForJetpackStats ->
ActivityLauncher.loginForJetpackStats(this@MySiteTabFragment)
ActivityLauncher.loginForJetpackStats(this@MySiteMenuFragment)
is SiteNavigationAction.OpenStories -> ActivityLauncher.viewStories(activity, action.site, action.event)
is SiteNavigationAction.AddNewStory ->
ActivityLauncher.addNewStoryForResult(activity, action.site, action.source)
Expand Down Expand Up @@ -665,15 +661,13 @@ class MySiteTabFragment : Fragment(R.layout.my_site_tab_fragment),
RequestCodes.CREATE_SITE -> {
val isNewSite = requestCode == RequestCodes.CREATE_SITE ||
data.getBooleanExtra(LoginEpilogueActivity.KEY_SITE_CREATED_FROM_LOGIN_EPILOGUE, false)
viewModel.onCreateSiteResult()
viewModel.performFirstStepAfterSiteCreation(
data.getBooleanExtra(SitePickerActivity.KEY_SITE_TITLE_TASK_COMPLETED, false),
isNewSite = isNewSite
)
}
RequestCodes.SITE_PICKER -> {
if (data.getIntExtra(WPMainActivity.ARG_CREATE_SITE, 0) == RequestCodes.CREATE_SITE) {
viewModel.onCreateSiteResult()
viewModel.performFirstStepAfterSiteCreation(
data.getBooleanExtra(SitePickerActivity.KEY_SITE_TITLE_TASK_COMPLETED, false),
isNewSite = true
Expand Down Expand Up @@ -713,7 +707,7 @@ class MySiteTabFragment : Fragment(R.layout.my_site_tab_fragment),
quickStartTracker.track(AnalyticsTracker.Stat.QUICK_START_REQUEST_VIEWED)
}

private fun MySiteTabFragmentBinding.loadData(state: State.SiteSelected) {
private fun MySiteMenuFragmentBinding.loadData(state: State.SiteSelected) {
recyclerView.setVisible(true)
val cardAndItems = when (mySiteTabType) {
MySiteTabType.SITE_MENU -> state.siteMenuCardsAndItems
Expand All @@ -723,7 +717,7 @@ class MySiteTabFragment : Fragment(R.layout.my_site_tab_fragment),
(recyclerView.adapter as? MySiteAdapter)?.submitList(cardAndItems)
}

private fun MySiteTabFragmentBinding.loadEmptyView() {
private fun MySiteMenuFragmentBinding.loadEmptyView() {
recyclerView.setVisible(false)
}

Expand All @@ -749,7 +743,7 @@ class MySiteTabFragment : Fragment(R.layout.my_site_tab_fragment),
}
}

private fun MySiteTabFragmentBinding.hideRefreshIndicatorIfNeeded() {
private fun MySiteMenuFragmentBinding.hideRefreshIndicatorIfNeeded() {
swipeRefreshLayout.postDelayed({
swipeToRefreshHelper.isRefreshing = viewModel.isRefreshing()
}, CHECK_REFRESH_DELAY)
Expand Down Expand Up @@ -778,7 +772,7 @@ class MySiteTabFragment : Fragment(R.layout.my_site_tab_fragment),
private const val FIRST_ITEM = 0

@JvmStatic
fun newInstance(mySiteTabType: MySiteTabType) = MySiteTabFragment().apply {
fun newInstance(mySiteTabType: MySiteTabType) = MySiteMenuFragment().apply {
arguments = Bundle().apply {
putString(KEY_MY_SITE_TAB_TYPE, mySiteTabType.label)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -971,11 +971,6 @@ class MySiteViewModel @Inject constructor(
}
}

fun onCreateSiteResult() {
isDefaultTabSet = false
selectDefaultTabIfNeeded()
}

fun onSitePicked() {
selectedSiteRepository.getSelectedSite()?.let {
val siteLocalId = it.id.toLong()
Expand Down
Loading