I noticed the StateManager is still using DoEvents in sub innerRestoreState.
Should this be replaced with "Sleep(0)" or should the line be removed entirely?
Link: https://www.b4x.com/android/forum/t...applications-settings-and-state.9777/#content
Should this be replaced with "Sleep(0)" or should the line be removed entirely?
Link: https://www.b4x.com/android/forum/t...applications-settings-and-state.9777/#content
B4X:
Private Sub innerRestoreState(v As View, list1 As List)
Dim data() As Object
If v Is EditText Then
Dim edit As EditText
edit = v
data = getNextItem(list1)
edit.Text = data(0)
edit.SelectionStart = data(1)
Else If v Is Spinner Then
Dim spinner1 As Spinner
spinner1 = v
data = getNextItem(list1)
spinner1.SelectedIndex = data(0)
Else If v Is CheckBox Then
Dim check As CheckBox
check = v
data = getNextItem(list1)
check.Checked = data(0)
Else If v Is RadioButton Then
Dim radio As RadioButton
radio = v
data = getNextItem(list1)
radio.Checked = data(0)
Else If v Is ToggleButton Then
Dim toggle As ToggleButton
toggle = v
data = getNextItem(list1)
toggle.Checked = data(0)
Else If v Is SeekBar Then
Dim seek As SeekBar
seek = v
data = getNextItem(list1)
seek.Value = data(0)
Else If v Is TabHost Then
Dim th As TabHost
th = v
data = getNextItem(list1)
For i = 0 To th.TabCount - 1
th.CurrentTab = i
Next
th.CurrentTab = data(0)
Dim r As Reflector
r.Target = th
Dim tabParentPanel As Panel
tabParentPanel = r.RunMethod("getTabContentView")
For i = 0 To tabParentPanel.NumberOfViews - 1
innerRestoreState(tabParentPanel.GetView(i), list1)
Next
Else If v Is ScrollView Then
Dim sv As ScrollView
sv = v
data = getNextItem(list1)
sv.ScrollPosition = data(0)
DoEvents '<<<<<<<<< REPLACE ?????
sv.ScrollPosition = data(0)
innerRestoreState(sv.Panel, list1)
Else If v Is Panel Then
Dim panel1 As Panel
panel1 = v
For i = 0 To panel1.NumberOfViews - 1
innerRestoreState(panel1.GetView(i), list1)
Next
End If
End Sub