diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/RealmFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/RealmFragment.kt index dc0b4c1e..69b06f25 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/RealmFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/RealmFragment.kt @@ -69,6 +69,7 @@ open class RealmFragment : BaseFragment() { GlobalScope.launch(coroutineContext) { val async = GlobalScope.async { Looper.prepare() // a looper is required on the thread to listen to change + Looper.loop() val realm = Realm.getDefaultInstance() asyncResults = realm.where(clazz).findAll() @@ -76,7 +77,6 @@ open class RealmFragment : BaseFragment() { Timber.d("Realm changes: ${asyncResults?.size}, ${this@RealmFragment}") asyncListener?.asyncListenedEntityChange(t.realm) } - Looper.loop() asyncRealm = realm } async.await() diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetFragment.kt index 81ea867e..03ad07ed 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetFragment.kt @@ -17,7 +17,6 @@ import net.pokeranalytics.android.R import net.pokeranalytics.android.exceptions.PAIllegalStateException import net.pokeranalytics.android.model.LiveData import net.pokeranalytics.android.ui.activity.components.BaseActivity -import net.pokeranalytics.android.ui.activity.components.RootBottomSheetViewModel import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate import net.pokeranalytics.android.ui.modules.data.EditableDataActivity @@ -43,8 +42,6 @@ open class BottomSheetFragment : BottomSheetDialogFragment() { protected lateinit var model: BottomSheetViewModel - private lateinit var bottomSheetViewModel: RootBottomSheetViewModel - private var delegate: RowRepresentableDelegate? = null protected lateinit var dataAdapter: RowRepresentableAdapter @@ -98,8 +95,7 @@ open class BottomSheetFragment : BottomSheetDialogFragment() { return inflater.cloneInContext(contextThemeWrapper).inflate(R.layout.fragment_bottom_sheet, container, false) } - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) + private fun initModel() { val row = config?.row ?: (requireActivity() as? BaseActivity)?.bottomSheetViewModel?.rowRepresentable @@ -110,12 +106,22 @@ open class BottomSheetFragment : BottomSheetDialogFragment() { val factory = BottomSheetViewModelFactory(row, delegate) this.model = ViewModelProvider(requireActivity(), factory).get(BottomSheetViewModel::class.java) - this.model.clear() + + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + initModel() + this.model.clearData() } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) + // added to avoid crash + initModel() + config?.let { this.configure(it) config = null diff --git a/app/src/main/java/net/pokeranalytics/android/ui/viewmodel/BottomSheetViewModel.kt b/app/src/main/java/net/pokeranalytics/android/ui/viewmodel/BottomSheetViewModel.kt index be3a0f7a..83b8402b 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/viewmodel/BottomSheetViewModel.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/viewmodel/BottomSheetViewModel.kt @@ -31,7 +31,7 @@ class BottomSheetViewModel(var row: RowRepresentable) : ViewModel() { var isDeletable: Boolean = false var rowRepresentableEditDescriptors: List? = null - fun clear() { + fun clearData() { this.addedData = null this.stringValue = null this.secondStringValue = null