Crash fixing attempts

filterfix
Laurent 5 years ago
parent 95cc8ca329
commit 8ad0ae945e
  1. 2
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/RealmFragment.kt
  2. 18
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetFragment.kt
  3. 2
      app/src/main/java/net/pokeranalytics/android/ui/viewmodel/BottomSheetViewModel.kt

@ -69,6 +69,7 @@ open class RealmFragment : BaseFragment() {
GlobalScope.launch(coroutineContext) { GlobalScope.launch(coroutineContext) {
val async = GlobalScope.async { val async = GlobalScope.async {
Looper.prepare() // a looper is required on the thread to listen to change Looper.prepare() // a looper is required on the thread to listen to change
Looper.loop()
val realm = Realm.getDefaultInstance() val realm = Realm.getDefaultInstance()
asyncResults = realm.where(clazz).findAll() asyncResults = realm.where(clazz).findAll()
@ -76,7 +77,6 @@ open class RealmFragment : BaseFragment() {
Timber.d("Realm changes: ${asyncResults?.size}, ${this@RealmFragment}") Timber.d("Realm changes: ${asyncResults?.size}, ${this@RealmFragment}")
asyncListener?.asyncListenedEntityChange(t.realm) asyncListener?.asyncListenedEntityChange(t.realm)
} }
Looper.loop()
asyncRealm = realm asyncRealm = realm
} }
async.await() async.await()

@ -17,7 +17,6 @@ import net.pokeranalytics.android.R
import net.pokeranalytics.android.exceptions.PAIllegalStateException import net.pokeranalytics.android.exceptions.PAIllegalStateException
import net.pokeranalytics.android.model.LiveData import net.pokeranalytics.android.model.LiveData
import net.pokeranalytics.android.ui.activity.components.BaseActivity 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.RowRepresentableAdapter
import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate
import net.pokeranalytics.android.ui.modules.data.EditableDataActivity import net.pokeranalytics.android.ui.modules.data.EditableDataActivity
@ -43,8 +42,6 @@ open class BottomSheetFragment : BottomSheetDialogFragment() {
protected lateinit var model: BottomSheetViewModel protected lateinit var model: BottomSheetViewModel
private lateinit var bottomSheetViewModel: RootBottomSheetViewModel
private var delegate: RowRepresentableDelegate? = null private var delegate: RowRepresentableDelegate? = null
protected lateinit var dataAdapter: RowRepresentableAdapter 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) return inflater.cloneInContext(contextThemeWrapper).inflate(R.layout.fragment_bottom_sheet, container, false)
} }
override fun onCreate(savedInstanceState: Bundle?) { private fun initModel() {
super.onCreate(savedInstanceState)
val row = config?.row val row = config?.row
?: (requireActivity() as? BaseActivity)?.bottomSheetViewModel?.rowRepresentable ?: (requireActivity() as? BaseActivity)?.bottomSheetViewModel?.rowRepresentable
@ -110,12 +106,22 @@ open class BottomSheetFragment : BottomSheetDialogFragment() {
val factory = BottomSheetViewModelFactory(row, delegate) val factory = BottomSheetViewModelFactory(row, delegate)
this.model = ViewModelProvider(requireActivity(), factory).get(BottomSheetViewModel::class.java) 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?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
// added to avoid crash
initModel()
config?.let { config?.let {
this.configure(it) this.configure(it)
config = null config = null

@ -31,7 +31,7 @@ class BottomSheetViewModel(var row: RowRepresentable) : ViewModel() {
var isDeletable: Boolean = false var isDeletable: Boolean = false
var rowRepresentableEditDescriptors: List<RowRepresentableEditDescriptor>? = null var rowRepresentableEditDescriptors: List<RowRepresentableEditDescriptor>? = null
fun clear() { fun clearData() {
this.addedData = null this.addedData = null
this.stringValue = null this.stringValue = null
this.secondStringValue = null this.secondStringValue = null

Loading…
Cancel
Save