liyujie
2025-08-28 786ff4f4ca2374bdd9177f2e24b503d43e7a3b93
android/packages/apps/Camera2/src/com/android/camera/settings/CameraSettingsActivity.java
old mode 100755new mode 100644
....@@ -203,13 +203,31 @@
203203 loadSizes();
204204
205205 // Send loaded sizes to additional preferences.
206
- CameraSettingsActivityHelper.onSizesLoaded(this, mPictureSizes.backCameraSizes,
207
- new ListPreferenceFiller() {
208
- @Override
209
- public void fill(List<Size> sizes, ListPreference preference) {
210
- setEntriesForSelection(sizes, preference);
211
- }
212
- });
206
+ if (!mPictureSizes.backCameraSizes.isEmpty()) {
207
+ CameraSettingsActivityHelper.onSizesLoaded(this, mPictureSizes.backCameraSizes,
208
+ new ListPreferenceFiller() {
209
+ @Override
210
+ public void fill(List<Size> sizes, ListPreference preference) {
211
+ setEntriesForSelection(sizes, preference);
212
+ }
213
+ });
214
+ } else if (!mPictureSizes.frontCameraSizes.isEmpty()) {
215
+ CameraSettingsActivityHelper.onSizesLoaded(this, mPictureSizes.frontCameraSizes,
216
+ new ListPreferenceFiller() {
217
+ @Override
218
+ public void fill(List<Size> sizes, ListPreference preference) {
219
+ setEntriesForSelection(sizes, preference);
220
+ }
221
+ });
222
+ } else {
223
+ CameraSettingsActivityHelper.onSizesLoaded(this, mPictureSizes.externalCameraSizes,
224
+ new ListPreferenceFiller() {
225
+ @Override
226
+ public void fill(List<Size> sizes, ListPreference preference) {
227
+ setEntriesForSelection(sizes, preference);
228
+ }
229
+ });
230
+ }
213231
214232 // Make sure to hide settings for cameras that don't exist on this
215233 // device.
....@@ -309,6 +327,12 @@
309327 recursiveDelete(resolutions,
310328 findPreference(Keys.KEY_VIDEO_QUALITY_FRONT));
311329 }
330
+ if (mPictureSizes.externalCameraSizes.isEmpty()) {
331
+ recursiveDelete(resolutions,
332
+ findPreference(Keys.KEY_PICTURE_SIZE_EXTERNAL));
333
+ recursiveDelete(resolutions,
334
+ findPreference(Keys.KEY_VIDEO_QUALITY_EXTERNAL));
335
+ }
312336 }
313337
314338 /**
....@@ -382,10 +406,14 @@
382406 setEntriesForSelection(mPictureSizes.backCameraSizes, listPreference);
383407 } else if (listPreference.getKey().equals(Keys.KEY_PICTURE_SIZE_FRONT)) {
384408 setEntriesForSelection(mPictureSizes.frontCameraSizes, listPreference);
409
+ } else if (listPreference.getKey().equals(Keys.KEY_PICTURE_SIZE_EXTERNAL)) {
410
+ setEntriesForSelection(mPictureSizes.externalCameraSizes, listPreference);
385411 } else if (listPreference.getKey().equals(Keys.KEY_VIDEO_QUALITY_BACK)) {
386412 setEntriesForSelection(mPictureSizes.videoQualitiesBack.orNull(), listPreference);
387413 } else if (listPreference.getKey().equals(Keys.KEY_VIDEO_QUALITY_FRONT)) {
388414 setEntriesForSelection(mPictureSizes.videoQualitiesFront.orNull(), listPreference);
415
+ } else if (listPreference.getKey().equals(Keys.KEY_VIDEO_QUALITY_EXTERNAL)) {
416
+ setEntriesForSelection(mPictureSizes.videoQualitiesExternal.orNull(), listPreference);
389417 }
390418 }
391419
....@@ -405,10 +433,15 @@
405433 } else if (listPreference.getKey().equals(Keys.KEY_PICTURE_SIZE_FRONT)) {
406434 setSummaryForSelection(mPictureSizes.frontCameraSizes,
407435 listPreference);
436
+ } else if (listPreference.getKey().equals(Keys.KEY_PICTURE_SIZE_EXTERNAL)) {
437
+ setSummaryForSelection(mPictureSizes.externalCameraSizes,
438
+ listPreference);
408439 } else if (listPreference.getKey().equals(Keys.KEY_VIDEO_QUALITY_BACK)) {
409440 setSummaryForSelection(mPictureSizes.videoQualitiesBack.orNull(), listPreference);
410441 } else if (listPreference.getKey().equals(Keys.KEY_VIDEO_QUALITY_FRONT)) {
411442 setSummaryForSelection(mPictureSizes.videoQualitiesFront.orNull(), listPreference);
443
+ } else if (listPreference.getKey().equals(Keys.KEY_VIDEO_QUALITY_EXTERNAL)) {
444
+ setSummaryForSelection(mPictureSizes.videoQualitiesExternal.orNull(), listPreference);
412445 } else {
413446 listPreference.setSummary(listPreference.getEntry());
414447 }