Please enable JavaScript.
Coggle requires JavaScript to display documents.
Info3 AM/FM (Bugs (Show black screen when switch between USB-FM-AM screens…
Info3 AM/FM
Bugs
Show black screen when switch between USB-FM-AM screens multiple time (hardly)
Click hard Home button doesn't show home screen again
The Screen is not smooth when met the bug
Do not show AM/FM screen when click a channel on favorite bar from the USB playing screen
Do not see "dissplay screen AM/FM" in console logs
Do not show the channels when click Browse button
4.1.19.1* MY17 Browse am/fm (GIS-502 Audio UI v4.4.pdf)
Browse will present the user with a strong station list
When click Browse button in AM/FM playing screen
console log AM: [AppMain]handleHMIEvent:365 I3L::I3LWindow::handleHMIEvent=================>starting evG_FM_Nowply_Browse(), object description: img_audio_devices_1
console log FM: I3L::I3LWindow::handleHMIEvent=================>starting evG_AM_Nowply_Browse(), object description: img_audio_devices_1
Can not open Sound/Equalizer from Sound/Fade-Balance screen
No find the log "Opening screen:ICS_AUDIO_TONE_SETTING_EQUALIZER_NO_SURROUND" on console
Can not open Sound/SoundMode when click the Sound/SoundMode button
No see any log on console
Flow code
BasicListModel : public QAbstractListModel
attributes
private BaseListFeeder *m_dataFeeder
private QList<BaseListElement*> *m_items
normal method
update/insert/remove data
virtual void updateData(int indx, int role, QVariant value)
In update function
It call the QAbstractListModel.setData(QAbstractModel.index(idx, 0), value, role) to notify base object
virtual void insertData(int idx, BaseListElement *pData)
Must call beginInsertRows, endInsertRow between m_items->insert(idx, data)
virtual void removeDaa(int idx)
Must call beginInsertRows, endInsertRow between m_items->takeAt(idx, data)
public void update()
Notify reset UI from BasicListModel to QML UI by call two functions of QAbstractListModel following
beginResetModel() and endResetModel()
Then emit signal for QML file dataReadyForQML(), the signal then handled in QML by slot onDataReadyForQML() in QML
virtual void fetchData()
Content
connect signal m_dataFeeder.dataReady() to slot this.onDataReady()
Call m_dataFeeder->fetchData(this, m_listItem), feeder's fetchData will run in an other thread, when fetched it will notify dataReady for BasicListModel
signal/slot
signals
void dataReadyForQml()
slots
void onDataReady()
Need call update() function
inherited method
BaseListFeeder
BaseListElement
Main screen AM/FM
AM
FM
ScreenAdapter
Wrap current screen
Method
showScreen()
registerOBsDP
set all "dyn_" value
called registerDataPool() of he corresponding screen adapter
Connect observer signal
call Initial data of current screen
updateListModel of audio screen
Glossary
ICS: Integrated Center Stack