Merge pull request #1505 from kiwix/feature/macgills/#1489-anr-select-storage

#1499 detect storage on IO thread
This commit is contained in:
Seán Mac Gillicuddy 2019-09-23 13:30:06 +01:00 committed by GitHub
commit 04d6bb7a0d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -26,6 +26,9 @@ import android.view.ViewGroup
import android.widget.AdapterView.OnItemClickListener
import androidx.fragment.app.DialogFragment
import androidx.fragment.app.FragmentManager
import io.reactivex.Flowable
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.schedulers.Schedulers
import kotlinx.android.synthetic.main.storage_select_dialog.device_list
import kotlinx.android.synthetic.main.storage_select_dialog.title
import org.kiwix.kiwixmobile.KiwixApplication
@ -57,12 +60,17 @@ class StorageSelectDialog : DialogFragment() {
super.onViewCreated(view, savedInstanceState)
KiwixApplication.getApplicationComponent().inject(this)
title.text = aTitle
adapter = StorageSelectArrayAdapter(
activity!!,
StorageDeviceUtils.getWritableStorage(activity!!),
storageCalculator
)
device_list.adapter = adapter
Flowable.fromCallable { StorageDeviceUtils.getWritableStorage(activity!!) }
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
{
adapter = StorageSelectArrayAdapter(activity!!, it, storageCalculator)
device_list.adapter = adapter
},
Throwable::printStackTrace
)
device_list.onItemClickListener = OnItemClickListener { _, _, position, _ ->
onSelectAction?.invoke(adapter!!.getItem(position)!!)
dismiss()