MTK camera 4.2 app 启动时设置对界面的影响(2013/9)

前言

上一篇《MTK camera 4.2 app 启动时读取设置》提到了相机在启动时会根据设置下派参数。 
这一篇wiki我们会分析下派参数完成后,界面会如何根据设置,下派的参数更新。

函数入口 applyParametersToUIImmediately()

void com.android.camera.SettingChecker.applyParametersToUIImmediately() 常用调用方式: 
紧跟applyParameters(),applyParametersToServer(). 
通过在代码中查看applyParametersToUIImmediately()的引用位置,可以看到它总是在下派参数的时候使用,体现了函数命名的意义。

代码分析

代码中有如下注释

//Some preference is on screen, we should update immediately before applyParameterToUI().

意思是界面上有一些preference,我们需要在 applyParamtersToUi()立即更新执行前立即更新。

  1. 取得SETTING_GROUP_ALL_IN_SCREEN
  2. 取得ComboPreferences
  3. 取得currentMode
  4. clear override settings

之后会调用四个函数,getModeTableKeyValues,getSceneTableKeyValues,getRestrictionsKeyValues,getCapabilityKeyValues去取得(key,value)。 
每次获得(key,value)之后都会通过overrideSettings()更新key对应的ListPreference.mOverrideValue 
最后通过getPickerManager.refresh()强制更新。因为ListPreferences中只有PickerManager在界面。

getModeTableKeyValues

MATRIX_MODE_STATE

getSceneTableKeyValues

ROW_SETTING_SCENCE_MODE 
MATRIX_SCENE_STATE

getRestrictionsKeyValues

RESTRICTIOINS

getCapabilityKeyValues

applyParametersToUI

与applyParametersToUIImmediately的相同点是代码的基本流程相同。 不同是,使用SETTING_GROUP_ALL_IN_SETTING。最后没有强制manager.refresh()


发布了27 篇原创文章 · 获赞 2 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/wlia/article/details/42419739