路径:packages/apps/Camera2/src/com/android/camera/settings/CameraSettingsActivity.java
private void setEntries(Preference preference) {
if (!(preference instanceof ListPreference)) {
return;
}
ListPreference listPreference = (ListPreference) preference;
if (listPreference.getKey().equals(Keys.KEY_PICTURE_SIZE_BACK)) {
++ SharedPreferences pref = getActivity().getSharedPreferences("CameraFlag",MODE_PRIVATE);
++ if (!pref.getBoolean("flag",false)) listPreference.setValue("1280x720");
setEntriesForSelection(mPictureSizes.backCameraSizes, listPreference);
} else if (listPreference.getKey().equals(Keys.KEY_PICTURE_SIZE_FRONT)) {
setEntriesForSelection(mPictureSizes.frontCameraSizes, listPreference);
} else if (listPreference.getKey().equals(Keys.KEY_VIDEO_QUALITY_BACK)) {
setEntriesForSelection(mPictureSizes.videoQualitiesBack.orNull(), listPreference);
} else if (listPreference.getKey().equals(Keys.KEY_VIDEO_QUALITY_FRONT)) {
setEntriesForSelection(mPictureSizes.videoQualitiesFront.orNull(), listPreference);
} else if (listPreference.getKey().equals(Keys.KEY_ANTIBANDING)) {
listPreference.setEntries(mAntiBandingNames);
}
}
如果用户选择了新的像素,就会回调onSharedPreferenceChanged(),此时需要更改数据库的标识值flag,在下一次进入 setEntries()时,就不会再默认为90W了。
路径:packages/apps/Camera2/src/com/android/camera/settings/CameraSettingsActivity.java
当用户改变像素时,取消默认状态
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
++ SharedPreferences.Editor editor = getActivity().getSharedPreferences("CameraFlag",MODE_PRIVATE).edit();
++ editor.putBoolean("flag",true);
++ editor.apply();
setSummary(findPreference(key));
if (key.equals(Keys.KEY_RECORD_LOCATION)
&& sharedPreferences.getString(key, "0").equals("1")) {
Context context = this.getActivity().getApplicationContext();
if (context.checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[] {
Manifest.permission.ACCESS_COARSE_LOCATION},
PERMISSION_REQUEST_CODE);
}
}
}