From 709588572a7d10c08aef1dfcbec51e4a08d8f3f0 Mon Sep 17 00:00:00 2001 From: Colin Lee Date: Sat, 31 Aug 2019 17:41:50 -0500 Subject: [PATCH] For #5055: Crash when opening bookmarks (#5058) --- .../mozilla/fenix/collections/CreateCollectionFragment.kt | 5 ++++- .../org/mozilla/fenix/library/bookmarks/BookmarkFragment.kt | 5 ++++- .../library/bookmarks/addfolder/AddBookmarkFolderFragment.kt | 5 ++++- .../fenix/library/bookmarks/edit/EditBookmarkFragment.kt | 5 ++++- .../bookmarks/selectfolder/SelectBookmarkFolderFragment.kt | 5 ++++- 5 files changed, 20 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/collections/CreateCollectionFragment.kt b/app/src/main/java/org/mozilla/fenix/collections/CreateCollectionFragment.kt index d085f8793..f11d217f7 100644 --- a/app/src/main/java/org/mozilla/fenix/collections/CreateCollectionFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/collections/CreateCollectionFragment.kt @@ -11,6 +11,7 @@ import android.view.View import android.view.ViewGroup import androidx.fragment.app.DialogFragment import androidx.fragment.app.activityViewModels +import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.lifecycleScope import kotlinx.android.synthetic.main.fragment_create_collection.view.* import kotlinx.coroutines.Dispatchers @@ -28,7 +29,9 @@ import org.mozilla.fenix.mvi.getManagedEmitter class CreateCollectionFragment : DialogFragment() { private lateinit var collectionCreationComponent: CollectionCreationComponent - private val viewModel: CreateCollectionViewModel by activityViewModels() + private val viewModel: CreateCollectionViewModel by activityViewModels { + ViewModelProvider.NewInstanceFactory() // this is a workaround for #4652 + } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) diff --git a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragment.kt b/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragment.kt index 894855f67..91eaca25b 100644 --- a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragment.kt @@ -17,6 +17,7 @@ import androidx.appcompat.app.AppCompatActivity import androidx.core.content.ContextCompat import androidx.fragment.app.activityViewModels import androidx.lifecycle.Observer +import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.lifecycleScope import androidx.navigation.NavController import androidx.navigation.NavDirections @@ -58,7 +59,9 @@ class BookmarkFragment : LibraryPageFragment(), BackHandler, Accou private lateinit var signInView: SignInView private lateinit var bookmarkInteractor: BookmarkFragmentInteractor - private val sharedViewModel: BookmarksSharedViewModel by activityViewModels() + private val sharedViewModel: BookmarksSharedViewModel by activityViewModels { + ViewModelProvider.NewInstanceFactory() // this is a workaround for #4652 + } var currentRoot: BookmarkNode? = null private val navigation by lazy { findNavController() } diff --git a/app/src/main/java/org/mozilla/fenix/library/bookmarks/addfolder/AddBookmarkFolderFragment.kt b/app/src/main/java/org/mozilla/fenix/library/bookmarks/addfolder/AddBookmarkFolderFragment.kt index d41e3f94f..82b0df204 100644 --- a/app/src/main/java/org/mozilla/fenix/library/bookmarks/addfolder/AddBookmarkFolderFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/library/bookmarks/addfolder/AddBookmarkFolderFragment.kt @@ -16,6 +16,7 @@ import android.view.ViewGroup import androidx.appcompat.app.AppCompatActivity import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels +import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.lifecycleScope import androidx.navigation.Navigation import kotlinx.android.synthetic.main.fragment_add_bookmark_folder.* @@ -32,7 +33,9 @@ import org.mozilla.fenix.library.bookmarks.BookmarksSharedViewModel class AddBookmarkFolderFragment : Fragment() { - private val sharedViewModel: BookmarksSharedViewModel by activityViewModels() + private val sharedViewModel: BookmarksSharedViewModel by activityViewModels { + ViewModelProvider.NewInstanceFactory() // this is a workaround for #4652 + } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) diff --git a/app/src/main/java/org/mozilla/fenix/library/bookmarks/edit/EditBookmarkFragment.kt b/app/src/main/java/org/mozilla/fenix/library/bookmarks/edit/EditBookmarkFragment.kt index 9e487fdc4..7c190c3eb 100644 --- a/app/src/main/java/org/mozilla/fenix/library/bookmarks/edit/EditBookmarkFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/library/bookmarks/edit/EditBookmarkFragment.kt @@ -21,6 +21,7 @@ import androidx.fragment.app.activityViewModels import androidx.lifecycle.lifecycleScope import androidx.navigation.Navigation import androidx.core.view.MenuItemCompat.setContentDescription +import androidx.lifecycle.ViewModelProvider import com.jakewharton.rxbinding3.widget.textChanges import com.uber.autodispose.AutoDispose import com.uber.autodispose.android.lifecycle.AndroidLifecycleScopeProvider @@ -53,7 +54,9 @@ import java.util.concurrent.TimeUnit class EditBookmarkFragment : Fragment() { private lateinit var guidToEdit: String - private val sharedViewModel: BookmarksSharedViewModel by activityViewModels() + private val sharedViewModel: BookmarksSharedViewModel by activityViewModels { + ViewModelProvider.NewInstanceFactory() // this is a workaround for #4652 + } private var bookmarkNode: BookmarkNode? = null private var bookmarkParent: BookmarkNode? = null diff --git a/app/src/main/java/org/mozilla/fenix/library/bookmarks/selectfolder/SelectBookmarkFolderFragment.kt b/app/src/main/java/org/mozilla/fenix/library/bookmarks/selectfolder/SelectBookmarkFolderFragment.kt index a662358c8..bf6b771c1 100644 --- a/app/src/main/java/org/mozilla/fenix/library/bookmarks/selectfolder/SelectBookmarkFolderFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/library/bookmarks/selectfolder/SelectBookmarkFolderFragment.kt @@ -17,6 +17,7 @@ import androidx.appcompat.app.AppCompatActivity import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels import androidx.lifecycle.Observer +import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.lifecycleScope import androidx.navigation.fragment.findNavController import kotlinx.android.synthetic.main.fragment_select_bookmark_folder.* @@ -41,7 +42,9 @@ import org.mozilla.fenix.library.bookmarks.SignInView @SuppressWarnings("TooManyFunctions") class SelectBookmarkFolderFragment : Fragment(), AccountObserver { - private val sharedViewModel: BookmarksSharedViewModel by activityViewModels() + private val sharedViewModel: BookmarksSharedViewModel by activityViewModels { + ViewModelProvider.NewInstanceFactory() // this is a workaround for #4652 + } private var folderGuid: String? = null private var bookmarkNode: BookmarkNode? = null private lateinit var signInView: SignInView