Fixed recordings list not updated when a recorded call is terminated and we go back to the fragment

This commit is contained in:
Sylvain Berfini 2022-02-09 12:15:17 +01:00
parent 7219cfbdf7
commit c8bd7ea229
2 changed files with 12 additions and 3 deletions

View file

@ -29,6 +29,7 @@ import org.linphone.activities.main.fragments.MasterFragment
import org.linphone.activities.main.recordings.adapters.RecordingsListAdapter import org.linphone.activities.main.recordings.adapters.RecordingsListAdapter
import org.linphone.activities.main.recordings.data.RecordingData import org.linphone.activities.main.recordings.data.RecordingData
import org.linphone.activities.main.recordings.viewmodels.RecordingsViewModel import org.linphone.activities.main.recordings.viewmodels.RecordingsViewModel
import org.linphone.core.tools.Log
import org.linphone.databinding.RecordingsFragmentBinding import org.linphone.databinding.RecordingsFragmentBinding
import org.linphone.utils.AppUtils import org.linphone.utils.AppUtils
import org.linphone.utils.RecyclerViewHeaderDecoration import org.linphone.utils.RecyclerViewHeaderDecoration
@ -110,4 +111,13 @@ class RecordingsFragment : MasterFragment<RecordingsFragmentBinding, RecordingsL
} }
viewModel.deleteRecordings(list) viewModel.deleteRecordings(list)
} }
override fun onResume() {
if (this::viewModel.isInitialized) {
viewModel.udpdateRecordingsList()
} else {
Log.e("[Recordings] Fragment resuming but viewModel lateinit property isn't initialized!")
}
super.onResume()
}
} }

View file

@ -59,7 +59,6 @@ class RecordingsViewModel : ViewModel() {
} }
init { init {
getRecordings()
isVideoVisible.value = false isVideoVisible.value = false
} }
@ -86,10 +85,10 @@ class RecordingsViewModel : ViewModel() {
FileUtils.deleteFile(recording.path) FileUtils.deleteFile(recording.path)
} }
getRecordings() udpdateRecordingsList()
} }
private fun getRecordings() { fun udpdateRecordingsList() {
recordingsList.value.orEmpty().forEach(RecordingData::destroy) recordingsList.value.orEmpty().forEach(RecordingData::destroy)
val list = arrayListOf<RecordingData>() val list = arrayListOf<RecordingData>()