--- a/app/src/main/java/com/geekorum/ttrss/CoreComponents.kt Wed Aug 07 16:11:59 2019 -0700
+++ b/app/src/main/java/com/geekorum/ttrss/CoreComponents.kt Wed Aug 07 16:34:27 2019 -0700
@@ -105,10 +105,14 @@
* Common base Fragment for the application.
*/
open class BaseFragment (
- val viewModelsFactory: ViewModelProvider.Factory,
+ private val savedStateVmFactoryCreator: DaggerDelegateSavedStateVMFactory.Creator,
val fragmentFactory: FragmentFactory
) : Fragment() {
+ val viewModelsFactory: ViewModelProvider.Factory by lazy {
+ savedStateVmFactoryCreator.create(this, arguments)
+ }
+
override fun onAttach(context: Context) {
super.onAttach(context)
childFragmentManager.fragmentFactory = fragmentFactory
@@ -116,10 +120,14 @@
}
open class BaseDialogFragment (
- val viewModelsFactory: ViewModelProvider.Factory,
+ private var savedStateVmFactoryCreator: DaggerDelegateSavedStateVMFactory.Creator,
val fragmentFactory: FragmentFactory
) : DialogFragment() {
+ val viewModelsFactory: ViewModelProvider.Factory by lazy {
+ savedStateVmFactoryCreator.create(this, arguments)
+ }
+
override fun onAttach(context: Context) {
super.onAttach(context)
childFragmentManager.fragmentFactory = fragmentFactory
--- a/app/src/main/java/com/geekorum/ttrss/article_details/ArticleDetailFragment.kt Wed Aug 07 16:11:59 2019 -0700
+++ b/app/src/main/java/com/geekorum/ttrss/article_details/ArticleDetailFragment.kt Wed Aug 07 16:34:27 2019 -0700
@@ -45,9 +45,9 @@
import androidx.core.view.doOnNextLayout
import androidx.core.widget.NestedScrollView
import androidx.fragment.app.FragmentFactory
-import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.observe
+import com.geekorum.geekdroid.dagger.DaggerDelegateSavedStateVMFactory
import com.geekorum.geekdroid.network.OkHttpWebViewClient
import com.geekorum.ttrss.BaseFragment
import com.geekorum.ttrss.R
@@ -69,10 +69,10 @@
* on handsets.
*/
class ArticleDetailFragment @Inject constructor(
- viewModelsFactory: ViewModelProvider.Factory,
+ savedStateVmFactoryCreator: DaggerDelegateSavedStateVMFactory.Creator,
fragmentFactory: FragmentFactory,
private val okHttpClient: OkHttpClient
-) : BaseFragment(viewModelsFactory, fragmentFactory) {
+) : BaseFragment(savedStateVmFactoryCreator, fragmentFactory) {
private lateinit var binding: FragmentArticleDetailBinding
private val articleDetailsViewModel: ArticleDetailsViewModel by activityViewModels()
--- a/app/src/main/java/com/geekorum/ttrss/articles_list/ArticlesListFragment.kt Wed Aug 07 16:11:59 2019 -0700
+++ b/app/src/main/java/com/geekorum/ttrss/articles_list/ArticlesListFragment.kt Wed Aug 07 16:34:27 2019 -0700
@@ -27,13 +27,13 @@
import android.view.ViewGroup
import androidx.core.os.bundleOf
import androidx.fragment.app.FragmentFactory
-import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.observe
import androidx.recyclerview.widget.DefaultItemAnimator
import androidx.recyclerview.widget.ItemTouchHelper
import androidx.recyclerview.widget.RecyclerView
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
+import com.geekorum.geekdroid.dagger.DaggerDelegateSavedStateVMFactory
import com.geekorum.geekdroid.views.recyclerview.ItemSwiper
import com.geekorum.geekdroid.views.recyclerview.ScrollFromBottomAppearanceItemAnimator
import com.geekorum.ttrss.BaseFragment
@@ -55,8 +55,9 @@
* Display all the articles in a list.
*/
class ArticlesListFragment @Inject constructor(
- viewModelsFactory: ViewModelProvider.Factory, fragmentFactory: FragmentFactory
-) : BaseFragment(viewModelsFactory, fragmentFactory) {
+ savedStateVmFactoryCreator: DaggerDelegateSavedStateVMFactory.Creator,
+ fragmentFactory: FragmentFactory
+) : BaseFragment(savedStateVmFactoryCreator, fragmentFactory) {
private var feedId: Long = 0
--- a/app/src/main/java/com/geekorum/ttrss/articles_list/FeedListFragment.java Wed Aug 07 16:11:59 2019 -0700
+++ b/app/src/main/java/com/geekorum/ttrss/articles_list/FeedListFragment.java Wed Aug 07 16:34:27 2019 -0700
@@ -40,8 +40,8 @@
import androidx.core.app.ActivityOptionsCompat;
import androidx.fragment.app.FragmentFactory;
import androidx.lifecycle.LiveData;
-import androidx.lifecycle.ViewModelProvider;
import androidx.lifecycle.ViewModelProviders;
+import com.geekorum.geekdroid.dagger.DaggerDelegateSavedStateVMFactory;
import com.geekorum.ttrss.BaseFragment;
import com.geekorum.ttrss.Features;
import com.geekorum.ttrss.R;
@@ -78,8 +78,8 @@
private final OnDemandModuleManager moduleManager;
@Inject
- public FeedListFragment(@NonNull ViewModelProvider.Factory viewModelsFactory, FragmentFactory fragmentFactory, OnDemandModuleManager moduleManager, SharedPreferences preferences) {
- super(viewModelsFactory, fragmentFactory);
+ public FeedListFragment(@NonNull DaggerDelegateSavedStateVMFactory.Creator savedStateVmFactoryCreator, FragmentFactory fragmentFactory, OnDemandModuleManager moduleManager, SharedPreferences preferences) {
+ super(savedStateVmFactoryCreator, fragmentFactory);
this.moduleManager = moduleManager;
this.preferences = preferences;
}
--- a/app/src/main/java/com/geekorum/ttrss/articles_list/search/ArticlesSearchFragment.kt Wed Aug 07 16:11:59 2019 -0700
+++ b/app/src/main/java/com/geekorum/ttrss/articles_list/search/ArticlesSearchFragment.kt Wed Aug 07 16:34:27 2019 -0700
@@ -26,7 +26,7 @@
import android.view.ViewGroup
import androidx.fragment.app.FragmentFactory
import androidx.lifecycle.Observer
-import androidx.lifecycle.ViewModelProvider
+import com.geekorum.geekdroid.dagger.DaggerDelegateSavedStateVMFactory
import com.geekorum.ttrss.BaseFragment
import com.geekorum.ttrss.activityViewModels
import com.geekorum.ttrss.articles_list.ActivityViewModel
@@ -42,9 +42,9 @@
* Display search results
*/
class ArticlesSearchFragment @Inject constructor(
- viewModelsFactory: ViewModelProvider.Factory,
+ savedStateVmFactoryCreator: DaggerDelegateSavedStateVMFactory.Creator,
fragmentFactory: FragmentFactory
-) : BaseFragment(viewModelsFactory, fragmentFactory) {
+) : BaseFragment(savedStateVmFactoryCreator, fragmentFactory) {
lateinit var binding: FragmentArticlesSearchBinding
private val activityViewModel: ActivityViewModel by activityViewModels()
--- a/app/src/main/java/com/geekorum/ttrss/settings/manage_features/ManageFeaturesFragment.kt Wed Aug 07 16:11:59 2019 -0700
+++ b/app/src/main/java/com/geekorum/ttrss/settings/manage_features/ManageFeaturesFragment.kt Wed Aug 07 16:34:27 2019 -0700
@@ -26,11 +26,11 @@
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.FragmentFactory
-import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.observe
import androidx.recyclerview.widget.DividerItemDecoration
import androidx.recyclerview.widget.RecyclerView
import com.geekorum.geekdroid.app.lifecycle.EventObserver
+import com.geekorum.geekdroid.dagger.DaggerDelegateSavedStateVMFactory
import com.geekorum.ttrss.BaseFragment
import com.geekorum.ttrss.databinding.FragmentManageFeaturesBinding
import com.geekorum.ttrss.databinding.ItemFeatureBinding
@@ -38,9 +38,9 @@
import javax.inject.Inject
class ManageFeaturesFragment @Inject constructor(
- viewModelsFactory: ViewModelProvider.Factory,
+ savedStateVmFactoryCreator: DaggerDelegateSavedStateVMFactory.Creator,
fragmentFactory: FragmentFactory
-) : BaseFragment(viewModelsFactory, fragmentFactory) {
+) : BaseFragment(savedStateVmFactoryCreator, fragmentFactory) {
lateinit var binding: FragmentManageFeaturesBinding
private val viewModel: ManageFeaturesViewModel by viewModels()
--- a/manage_feeds/src/main/java/com/geekorum/ttrss/manage_feeds/ManageFeedsActivity.kt Wed Aug 07 16:11:59 2019 -0700
+++ b/manage_feeds/src/main/java/com/geekorum/ttrss/manage_feeds/ManageFeedsActivity.kt Wed Aug 07 16:34:27 2019 -0700
@@ -39,6 +39,7 @@
import androidx.recyclerview.widget.RecyclerView
import com.geekorum.geekdroid.app.lifecycle.EventObserver
import com.geekorum.geekdroid.dagger.DaggerDelegateFragmentFactory
+import com.geekorum.geekdroid.dagger.DaggerDelegateSavedStateVMFactory
import com.geekorum.geekdroid.dagger.DaggerDelegateViewModelsFactory
import com.geekorum.ttrss.BaseDialogFragment
import com.geekorum.ttrss.BaseFragment
@@ -83,9 +84,9 @@
}
class ManageFeedsFragment @Inject constructor(
- viewModelsFactory: ViewModelProvider.Factory,
+ savedStateVmFactoryCreator: DaggerDelegateSavedStateVMFactory.Creator,
fragmentFactory: FragmentFactory
-) : BaseFragment(viewModelsFactory, fragmentFactory) {
+) : BaseFragment(savedStateVmFactoryCreator, fragmentFactory) {
private lateinit var binding: FragmentManageFeedsBinding
private val viewModel: ManageFeedViewModel by viewModels()
@@ -157,9 +158,9 @@
}
class ConfirmUnsubscribeFragment @Inject constructor(
- viewModelsFactory: DaggerDelegateViewModelsFactory,
+ savedStateVmFactoryCreator: DaggerDelegateSavedStateVMFactory.Creator,
fragmentFactory: DaggerDelegateFragmentFactory
-) : BaseDialogFragment(viewModelsFactory, fragmentFactory) {
+) : BaseDialogFragment(savedStateVmFactoryCreator, fragmentFactory) {
private val viewModel: ManageFeedViewModel by activityViewModels()
private val args:ConfirmUnsubscribeFragmentArgs by navArgs()
--- a/manage_feeds/src/main/java/com/geekorum/ttrss/manage_feeds/add_feed/DisplayErrorFragment.kt Wed Aug 07 16:11:59 2019 -0700
+++ b/manage_feeds/src/main/java/com/geekorum/ttrss/manage_feeds/add_feed/DisplayErrorFragment.kt Wed Aug 07 16:34:27 2019 -0700
@@ -25,17 +25,17 @@
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.FragmentFactory
-import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.navArgs
+import com.geekorum.geekdroid.dagger.DaggerDelegateSavedStateVMFactory
import com.geekorum.ttrss.BaseFragment
import com.geekorum.ttrss.manage_feeds.databinding.FragmentAddFeedDisplayErrorBinding
import javax.inject.Inject
class DisplayErrorFragment @Inject constructor(
- viewModelsFactory: ViewModelProvider.Factory,
+ savedStateVmFactoryCreator: DaggerDelegateSavedStateVMFactory.Creator,
fragmentFactory: FragmentFactory
-) : BaseFragment(viewModelsFactory, fragmentFactory) {
+) : BaseFragment(savedStateVmFactoryCreator, fragmentFactory) {
private lateinit var binding: FragmentAddFeedDisplayErrorBinding
--- a/manage_feeds/src/main/java/com/geekorum/ttrss/manage_feeds/add_feed/EnterFeedUrlFragment.kt Wed Aug 07 16:11:59 2019 -0700
+++ b/manage_feeds/src/main/java/com/geekorum/ttrss/manage_feeds/add_feed/EnterFeedUrlFragment.kt Wed Aug 07 16:34:27 2019 -0700
@@ -29,6 +29,7 @@
import androidx.lifecycle.observe
import androidx.navigation.fragment.findNavController
import com.geekorum.geekdroid.app.lifecycle.EventObserver
+import com.geekorum.geekdroid.dagger.DaggerDelegateSavedStateVMFactory
import com.geekorum.ttrss.BaseFragment
import com.geekorum.ttrss.activityViewModels
import com.geekorum.ttrss.manage_feeds.R
@@ -36,9 +37,9 @@
import javax.inject.Inject
class EnterFeedUrlFragment @Inject constructor(
- viewModelsFactory: ViewModelProvider.Factory,
+ savedStateVmFactoryCreator: DaggerDelegateSavedStateVMFactory.Creator,
fragmentFactory: FragmentFactory
-) : BaseFragment(viewModelsFactory, fragmentFactory) {
+) : BaseFragment(savedStateVmFactoryCreator, fragmentFactory) {
private lateinit var binding: FragmentAddFeedEnterUrlBinding
private val viewModel: SubscribeToFeedViewModel by activityViewModels()
--- a/manage_feeds/src/main/java/com/geekorum/ttrss/manage_feeds/add_feed/SelectFeedFragment.kt Wed Aug 07 16:11:59 2019 -0700
+++ b/manage_feeds/src/main/java/com/geekorum/ttrss/manage_feeds/add_feed/SelectFeedFragment.kt Wed Aug 07 16:34:27 2019 -0700
@@ -27,6 +27,7 @@
import androidx.fragment.app.FragmentFactory
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.observe
+import com.geekorum.geekdroid.dagger.DaggerDelegateSavedStateVMFactory
import com.geekorum.ttrss.BaseFragment
import com.geekorum.ttrss.activityViewModels
import com.geekorum.ttrss.manage_feeds.R
@@ -34,9 +35,9 @@
import javax.inject.Inject
class SelectFeedFragment @Inject constructor(
- viewModelsFactory: ViewModelProvider.Factory,
+ savedStateVmFactoryCreator: DaggerDelegateSavedStateVMFactory.Creator,
fragmentFactory: FragmentFactory
-) : BaseFragment(viewModelsFactory, fragmentFactory) {
+) : BaseFragment(savedStateVmFactoryCreator, fragmentFactory) {
private lateinit var binding: FragmentAddFeedSelectFeedBinding
private val viewModel: SubscribeToFeedViewModel by activityViewModels()