Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
Original file line number Diff line number Diff line change
Expand Up @@ -193,14 +193,8 @@
import org.wordpress.android.ui.reader.views.ReaderSiteSearchResultView;
import org.wordpress.android.ui.reader.views.ReaderTagHeaderView;
import org.wordpress.android.ui.reader.views.ReaderWebView;
import org.wordpress.android.ui.sitecreation.SiteCreationActivity;
import org.wordpress.android.ui.sitecreation.domains.SiteCreationDomainsFragment;
import org.wordpress.android.ui.sitecreation.previews.SiteCreationPreviewFragment;
import org.wordpress.android.ui.sitecreation.services.SiteCreationService;
import org.wordpress.android.ui.sitecreation.sitename.SiteCreationSiteNameFragment;
import org.wordpress.android.ui.sitecreation.theme.DesignPreviewFragment;
import org.wordpress.android.ui.sitecreation.theme.HomePagePickerFragment;
import org.wordpress.android.ui.sitecreation.verticals.SiteCreationIntentsFragment;
import org.wordpress.android.ui.stats.StatsConnectJetpackActivity;
import org.wordpress.android.ui.stats.refresh.lists.StatsListFragment;
import org.wordpress.android.ui.stats.refresh.lists.widget.alltime.AllTimeWidgetBlockListProviderFactory;
Expand Down Expand Up @@ -259,12 +253,6 @@ public interface AppComponent {

void inject(PostSignupInterstitialActivity object);

void inject(SiteCreationActivity object);

void inject(SiteCreationDomainsFragment object);

void inject(SiteCreationPreviewFragment object);

void inject(JetpackConnectionResultActivity object);

void inject(StatsConnectJetpackActivity object);
Expand Down Expand Up @@ -545,12 +533,6 @@ public interface AppComponent {

void inject(ModalLayoutPickerFragment object);

void inject(HomePagePickerFragment object);

void inject(SiteCreationIntentsFragment object);

void inject(SiteCreationSiteNameFragment object);

void inject(SubfilterBottomSheetFragment object);

void inject(AddContentAdapter object);
Expand Down Expand Up @@ -658,7 +640,7 @@ public interface AppComponent {
void inject(EditCancelDialogFragment object);

void inject(BloggingReminderBottomSheetFragment object);

void inject(LocalePickerBottomSheet object);

void inject(CategoriesListFragment object);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,12 +62,6 @@
import org.wordpress.android.ui.reader.viewmodels.ReaderPostListViewModel;
import org.wordpress.android.ui.reader.viewmodels.ReaderViewModel;
import org.wordpress.android.ui.reader.viewmodels.SubfilterPageViewModel;
import org.wordpress.android.ui.sitecreation.SiteCreationMainVM;
import org.wordpress.android.ui.sitecreation.domains.SiteCreationDomainsViewModel;
import org.wordpress.android.ui.sitecreation.previews.SitePreviewViewModel;
import org.wordpress.android.ui.sitecreation.sitename.SiteCreationSiteNameViewModel;
import org.wordpress.android.ui.sitecreation.theme.HomePagePickerViewModel;
import org.wordpress.android.ui.sitecreation.verticals.SiteCreationIntentsViewModel;
import org.wordpress.android.ui.stats.refresh.lists.DaysListViewModel;
import org.wordpress.android.ui.stats.refresh.lists.InsightsDetailListViewModel;
import org.wordpress.android.ui.stats.refresh.lists.InsightsListViewModel;
Expand Down Expand Up @@ -259,31 +253,6 @@ abstract class ViewModelModule {
@ViewModelKey(HistoryViewModel.class)
abstract ViewModel historyViewModel(HistoryViewModel viewModel);

@Binds
@IntoMap
@ViewModelKey(SiteCreationIntentsViewModel.class)
abstract ViewModel siteCreationIntentsViewModel(SiteCreationIntentsViewModel viewModel);

@Binds
@IntoMap
@ViewModelKey(SiteCreationSiteNameViewModel.class)
abstract ViewModel siteCreationSiteNameViewModel(SiteCreationSiteNameViewModel viewModel);

@Binds
@IntoMap
@ViewModelKey(SiteCreationDomainsViewModel.class)
abstract ViewModel siteCreationDomainsViewModel(SiteCreationDomainsViewModel viewModel);

@Binds
@IntoMap
@ViewModelKey(SiteCreationMainVM.class)
abstract ViewModel siteCreationMainVM(SiteCreationMainVM viewModel);

@Binds
@IntoMap
@ViewModelKey(SitePreviewViewModel.class)
abstract ViewModel newSitePreviewViewModel(SitePreviewViewModel viewModel);

@Binds
@IntoMap
@ViewModelKey(PostListViewModel.class)
Expand Down Expand Up @@ -349,11 +318,6 @@ abstract class ViewModelModule {
@ViewModelKey(ModalLayoutPickerViewModel.class)
abstract ViewModel mlpViewModel(ModalLayoutPickerViewModel viewModel);

@Binds
@IntoMap
@ViewModelKey(HomePagePickerViewModel.class)
abstract ViewModel hppViewModel(HomePagePickerViewModel viewModel);

@Binds
@IntoMap
@ViewModelKey(PostSignupInterstitialViewModel.class)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ import android.app.Activity
import android.content.Intent
import android.os.Bundle
import android.view.MenuItem
import androidx.activity.viewModels
import androidx.fragment.app.Fragment
import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProvider
import dagger.hilt.android.AndroidEntryPoint
import org.wordpress.android.R
import org.wordpress.android.WordPress
import org.wordpress.android.ui.ActivityLauncher
import org.wordpress.android.ui.LocaleAwareActivity
import org.wordpress.android.ui.accounts.HelpActivity.Origin
Expand Down Expand Up @@ -48,6 +48,7 @@ import org.wordpress.android.util.wizard.WizardNavigationTarget
import javax.inject.Inject

@Suppress("TooManyFunctions")
@AndroidEntryPoint
class SiteCreationActivity : LocaleAwareActivity(),
IntentsScreenListener,
SiteNameScreenListener,
Expand All @@ -56,24 +57,16 @@ class SiteCreationActivity : LocaleAwareActivity(),
OnHelpClickedListener,
BasicDialogPositiveClickInterface,
BasicDialogNegativeClickInterface {
@Inject internal lateinit var viewModelFactory: ViewModelProvider.Factory
@Inject internal lateinit var uiHelpers: UiHelpers
@Inject internal lateinit var siteNameFeatureConfig: SiteNameFeatureConfig
private lateinit var mainViewModel: SiteCreationMainVM
private lateinit var hppViewModel: HomePagePickerViewModel
private lateinit var siteCreationIntentsViewModel: SiteCreationIntentsViewModel
private lateinit var siteCreationSiteNameViewModel: SiteCreationSiteNameViewModel
private val mainViewModel: SiteCreationMainVM by viewModels()
private val hppViewModel: HomePagePickerViewModel by viewModels()
private val siteCreationIntentsViewModel: SiteCreationIntentsViewModel by viewModels()
private val siteCreationSiteNameViewModel: SiteCreationSiteNameViewModel by viewModels()

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
(application as WordPress).component().inject(this)
setContentView(R.layout.site_creation_activity)
mainViewModel = ViewModelProvider(this, viewModelFactory).get(SiteCreationMainVM::class.java)
hppViewModel = ViewModelProvider(this, viewModelFactory).get(HomePagePickerViewModel::class.java)
siteCreationIntentsViewModel = ViewModelProvider(this, viewModelFactory)
.get(SiteCreationIntentsViewModel::class.java)
siteCreationSiteNameViewModel = ViewModelProvider(this, viewModelFactory)
.get(SiteCreationSiteNameViewModel::class.java)
val siteCreationSource = intent.extras?.getString(ARG_CREATE_SITE_SOURCE)
mainViewModel.start(savedInstanceState, SiteCreationSource.fromString(siteCreationSource))

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import androidx.annotation.StringRes
import androidx.lifecycle.LiveData
import androidx.lifecycle.Transformations
import androidx.lifecycle.ViewModel
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.parcelize.Parcelize
import org.wordpress.android.R
import org.wordpress.android.ui.sitecreation.SiteCreationMainVM.SiteCreationScreenTitle.ScreenTitleEmpty
Expand Down Expand Up @@ -45,6 +46,7 @@ data class SiteCreationState(

typealias NavigationTarget = WizardNavigationTarget<SiteCreationStep, SiteCreationState>

@HiltViewModel
class SiteCreationMainVM @Inject constructor(
private val tracker: SiteCreationTracker,
private val wizardManager: WizardManager<SiteCreationStep>,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ import android.content.Context
import android.os.Bundle
import android.view.ViewGroup
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.ViewModelProvider
import androidx.fragment.app.activityViewModels
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import dagger.hilt.android.AndroidEntryPoint
import org.wordpress.android.R
import org.wordpress.android.WordPress
import org.wordpress.android.databinding.SiteCreationDomainsScreenBinding
import org.wordpress.android.databinding.SiteCreationFormScreenBinding
import org.wordpress.android.ui.accounts.HelpActivity
Expand All @@ -21,11 +21,11 @@ import org.wordpress.android.util.DisplayUtilsWrapper
import javax.inject.Inject

@Suppress("TooManyFunctions")
@AndroidEntryPoint
class SiteCreationDomainsFragment : SiteCreationBaseFormFragment() {
private var searchInputWithHeader: SearchInputWithHeader? = null
private lateinit var viewModel: SiteCreationDomainsViewModel
private val viewModel: SiteCreationDomainsViewModel by activityViewModels()

@Inject internal lateinit var viewModelFactory: ViewModelProvider.Factory
@Inject internal lateinit var uiHelpers: UiHelpers
@Inject internal lateinit var displayUtils: DisplayUtilsWrapper

Expand All @@ -41,11 +41,6 @@ class SiteCreationDomainsFragment : SiteCreationBaseFormFragment() {
}
}

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
(requireActivity().application as WordPress).component().inject(this)
}

override fun getContentLayout(): Int {
return R.layout.site_creation_domains_screen
}
Expand Down Expand Up @@ -84,9 +79,6 @@ class SiteCreationDomainsFragment : SiteCreationBaseFormFragment() {
}

private fun SiteCreationDomainsScreenBinding.initViewModel() {
viewModel = ViewModelProvider(this@SiteCreationDomainsFragment, viewModelFactory)
.get(SiteCreationDomainsViewModel::class.java)

viewModel.uiState.observe(this@SiteCreationDomainsFragment, { uiState ->
uiState?.let {
searchInputWithHeader?.updateHeader(requireActivity(), uiState.headerUiState)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import androidx.annotation.VisibleForTesting
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Job
Expand Down Expand Up @@ -45,6 +46,7 @@ import kotlin.properties.Delegates
private const val THROTTLE_DELAY = 500L
private const val ERROR_CONTEXT = "domains"

@HiltViewModel
class SiteCreationDomainsViewModel @Inject constructor(
private val networkUtils: NetworkUtilsWrapper,
private val dispatcher: Dispatcher,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@ import android.view.View.OnLayoutChangeListener
import android.view.animation.DecelerateInterpolator
import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.ContextCompat
import androidx.lifecycle.ViewModelProvider
import androidx.fragment.app.viewModels
import dagger.hilt.android.AndroidEntryPoint
import org.wordpress.android.R
import org.wordpress.android.WordPress
import org.wordpress.android.databinding.FullscreenErrorWithRetryBinding
Expand Down Expand Up @@ -46,19 +47,19 @@ private const val ARG_DATA = "arg_site_creation_data"
private const val SLIDE_IN_ANIMATION_DURATION = 450L

@Suppress("TooManyFunctions")
@AndroidEntryPoint
class SiteCreationPreviewFragment : SiteCreationBaseFormFragment(),
ErrorManagedWebViewClientListener {
/**
* We need to connect to the service, so the service knows when the app is in the background. The service
* automatically shows system notifications when site creation is in progress and the app is in the background.
*/
private var serviceEventConnection: ServiceEventConnection? = null
private lateinit var viewModel: SitePreviewViewModel
private val viewModel: SitePreviewViewModel by viewModels()
private var animatorSet: AnimatorSet? = null
private val isLandscape: Boolean
get() = resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE

@Inject internal lateinit var viewModelFactory: ViewModelProvider.Factory
@Inject internal lateinit var uiHelpers: UiHelpers

private var binding: SiteCreationPreviewScreenBinding? = null
Expand All @@ -75,7 +76,6 @@ class SiteCreationPreviewFragment : SiteCreationBaseFormFragment(),

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
(requireNotNull(activity).application as WordPress).component().inject(this)
if (savedInstanceState == null) {
// we need to manually clear the SiteCreationService state so we don't for example receive sticky events
// from the previous run of the SiteCreation flow.
Expand Down Expand Up @@ -121,10 +121,6 @@ class SiteCreationPreviewFragment : SiteCreationBaseFormFragment(),
}

private fun SiteCreationPreviewScreenDefaultBinding.initViewModel() {
viewModel = ViewModelProvider(
this@SiteCreationPreviewFragment,
viewModelFactory
).get(SitePreviewViewModel::class.java)
viewModel.uiState.observe(this@SiteCreationPreviewFragment, { uiState ->
uiState?.let {
when (uiState) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import android.os.Parcelable
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.parcelize.Parcelize
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.CoroutineScope
Expand Down Expand Up @@ -67,6 +68,7 @@ private val loadingTexts = listOf(
UiStringRes(R.string.new_site_creation_creating_site_loading_4)
)

@HiltViewModel
class SitePreviewViewModel @Inject constructor(
private val dispatcher: Dispatcher,
private val siteStore: SiteStore,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package org.wordpress.android.ui.sitecreation.sitename

import android.content.Context
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
Expand All @@ -9,11 +8,11 @@ import android.view.inputmethod.EditorInfo
import androidx.core.view.isInvisible
import androidx.core.widget.doOnTextChanged
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import androidx.fragment.app.activityViewModels
import dagger.hilt.android.AndroidEntryPoint
import org.wordpress.android.R
import org.wordpress.android.R.color
import org.wordpress.android.R.string
import org.wordpress.android.WordPress
import org.wordpress.android.databinding.SiteCreationSiteNameFragmentBinding
import org.wordpress.android.ui.sitecreation.sitename.SiteCreationSiteNameViewModel.SiteNameUiState
import org.wordpress.android.ui.utils.HtmlMessageUtils
Expand All @@ -27,20 +26,15 @@ import javax.inject.Inject
* Implements the Site Name UI
*/
@Suppress("TooManyFunctions")
@AndroidEntryPoint
class SiteCreationSiteNameFragment : Fragment() {
@Inject internal lateinit var viewModelFactory: ViewModelProvider.Factory
@Inject internal lateinit var uiHelper: UiHelpers
@Inject internal lateinit var displayUtils: DisplayUtilsWrapper
@Inject internal lateinit var htmlMessageUtils: HtmlMessageUtils

private lateinit var viewModel: SiteCreationSiteNameViewModel
private val viewModel: SiteCreationSiteNameViewModel by activityViewModels()
private var binding: SiteCreationSiteNameFragmentBinding? = null

override fun onAttach(context: Context) {
super.onAttach(context)
(requireActivity().applicationContext as WordPress).component().inject(this)
}

override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
Expand All @@ -52,9 +46,6 @@ class SiteCreationSiteNameFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)

viewModel = ViewModelProvider(requireActivity(), viewModelFactory)
.get(SiteCreationSiteNameViewModel::class.java)

val binding = SiteCreationSiteNameFragmentBinding.bind(view)
this.binding = binding
with(binding) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package org.wordpress.android.ui.sitecreation.sitename
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Job
Expand All @@ -13,6 +14,7 @@ import javax.inject.Inject
import javax.inject.Named
import kotlin.coroutines.CoroutineContext

@HiltViewModel
class SiteCreationSiteNameViewModel @Inject constructor(
private val analyticsTracker: SiteCreationTracker,
@Named(BG_THREAD) private val bgDispatcher: CoroutineDispatcher
Expand Down
Loading