summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/PhotoController.java
diff options
context:
space:
mode:
authorMichael Kolb <kolby@google.com>2013-03-08 20:43:01 -0800
committerMichael Kolb <kolby@google.com>2013-03-11 15:24:59 -0700
commitd6954f337e20365fc24ecffdd6f30e17c6b31eff (patch)
treedeba4dc3ebc95446ea1dd059e4f27a9b53201d52 /src/com/android/camera/PhotoController.java
parent4ef1d738b796d9b6af448d9bfc46e262a97eafcd (diff)
downloadandroid_packages_apps_Snap-d6954f337e20365fc24ecffdd6f30e17c6b31eff.tar.gz
android_packages_apps_Snap-d6954f337e20365fc24ecffdd6f30e17c6b31eff.tar.bz2
android_packages_apps_Snap-d6954f337e20365fc24ecffdd6f30e17c6b31eff.zip
Spring cleaning
Change-Id: I00d7176301501784a6a400bc9ea2cb23ff9ec90a
Diffstat (limited to 'src/com/android/camera/PhotoController.java')
-rw-r--r--src/com/android/camera/PhotoController.java252
1 files changed, 44 insertions, 208 deletions
diff --git a/src/com/android/camera/PhotoController.java b/src/com/android/camera/PhotoController.java
index c2501c781..b76022e57 100644
--- a/src/com/android/camera/PhotoController.java
+++ b/src/com/android/camera/PhotoController.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012 The Android Open Source Project
+ * Copyright (C) 2013 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,211 +16,47 @@
package com.android.camera;
-import android.content.Context;
-import android.hardware.Camera.Parameters;
-import android.view.LayoutInflater;
-
-import com.android.camera.ui.AbstractSettingPopup;
-import com.android.camera.ui.ListPrefSettingPopup;
-import com.android.camera.ui.MoreSettingPopup;
-import com.android.camera.ui.PieItem;
-import com.android.camera.ui.PieItem.OnClickListener;
-import com.android.camera.ui.PieRenderer;
-import com.android.camera.ui.TimerSettingPopup;
-import com.android.gallery3d.R;
-
-public class PhotoController extends PieController
- implements MoreSettingPopup.Listener,
- TimerSettingPopup.Listener,
- ListPrefSettingPopup.Listener {
- private static String TAG = "CAM_photocontrol";
- private static float FLOAT_PI_DIVIDED_BY_TWO = (float) Math.PI / 2;
- private final String mSettingOff;
-
- private PhotoModule mModule;
- private String[] mOtherKeys;
- // First level popup
- private MoreSettingPopup mPopup;
- // Second level popup
- private AbstractSettingPopup mSecondPopup;
-
- public PhotoController(CameraActivity activity, PhotoModule module, PieRenderer pie) {
- super(activity, pie);
- mModule = module;
- mSettingOff = activity.getString(R.string.setting_off_value);
- }
-
- public void initialize(PreferenceGroup group) {
- super.initialize(group);
- mPopup = null;
- mSecondPopup = null;
- float sweep = FLOAT_PI_DIVIDED_BY_TWO / 2;
- addItem(CameraSettings.KEY_FLASH_MODE, FLOAT_PI_DIVIDED_BY_TWO - sweep, sweep);
- addItem(CameraSettings.KEY_EXPOSURE, 3 * FLOAT_PI_DIVIDED_BY_TWO - sweep, sweep);
- addItem(CameraSettings.KEY_WHITE_BALANCE, 3 * FLOAT_PI_DIVIDED_BY_TWO + sweep, sweep);
- if (group.findPreference(CameraSettings.KEY_CAMERA_ID) != null) {
- PieItem item = makeItem(R.drawable.ic_switch_photo_facing_holo_light);
- item.setFixedSlice(FLOAT_PI_DIVIDED_BY_TWO + sweep, sweep);
- item.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(PieItem item) {
- // Find the index of next camera.
- ListPreference camPref = mPreferenceGroup
- .findPreference(CameraSettings.KEY_CAMERA_ID);
- if (camPref != null) {
- int index = camPref.findIndexOfValue(camPref.getValue());
- CharSequence[] values = camPref.getEntryValues();
- index = (index + 1) % values.length;
- int newCameraId = Integer
- .parseInt((String) values[index]);
- mListener.onCameraPickerClicked(newCameraId);
- }
- }
- });
- mRenderer.addItem(item);
- }
- if (group.findPreference(CameraSettings.KEY_CAMERA_HDR) != null) {
- PieItem hdr = makeItem(R.drawable.ic_hdr);
- hdr.setFixedSlice(FLOAT_PI_DIVIDED_BY_TWO, sweep);
- hdr.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(PieItem item) {
- // Find the index of next camera.
- ListPreference pref = mPreferenceGroup
- .findPreference(CameraSettings.KEY_CAMERA_HDR);
- if (pref != null) {
- // toggle hdr value
- int index = (pref.findIndexOfValue(pref.getValue()) + 1) % 2;
- pref.setValueIndex(index);
- onSettingChanged(pref);
- }
- }
- });
- mRenderer.addItem(hdr);
- }
- mOtherKeys = new String[] {
- CameraSettings.KEY_SCENE_MODE,
- CameraSettings.KEY_RECORD_LOCATION,
- CameraSettings.KEY_PICTURE_SIZE,
- CameraSettings.KEY_FOCUS_MODE,
- CameraSettings.KEY_TIMER,
- CameraSettings.KEY_TIMER_SOUND_EFFECTS,
- };
- PieItem item = makeItem(R.drawable.ic_settings_holo_light);
- item.setFixedSlice(FLOAT_PI_DIVIDED_BY_TWO * 3, sweep);
- item.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(PieItem item) {
- if (mPopup == null) {
- initializePopup();
- }
- mModule.showPopup(mPopup);
- }
- });
- mRenderer.addItem(item);
- }
-
- protected void setCameraId(int cameraId) {
- ListPreference pref = mPreferenceGroup.findPreference(CameraSettings.KEY_CAMERA_ID);
- pref.setValue("" + cameraId);
- }
-
- @Override
- public void reloadPreferences() {
- super.reloadPreferences();
- if (mPopup != null) {
- mPopup.reloadPreference();
- }
- }
-
- @Override
- // Hit when an item in the second-level popup gets selected
- public void onListPrefChanged(ListPreference pref) {
- if (mPopup != null && mSecondPopup != null) {
- mModule.dismissPopup(true);
- mPopup.reloadPreference();
- }
- onSettingChanged(pref);
- }
-
- @Override
- public void overrideSettings(final String ... keyvalues) {
- super.overrideSettings(keyvalues);
- if (mPopup == null) initializePopup();
- mPopup.overrideSettings(keyvalues);
- }
-
- protected void initializePopup() {
- LayoutInflater inflater = (LayoutInflater) mActivity.getSystemService(
- Context.LAYOUT_INFLATER_SERVICE);
-
- MoreSettingPopup popup = (MoreSettingPopup) inflater.inflate(
- R.layout.more_setting_popup, null, false);
- popup.setSettingChangedListener(this);
- popup.initialize(mPreferenceGroup, mOtherKeys);
- if (mActivity.isSecureCamera()) {
- // Prevent location preference from getting changed in secure camera mode
- popup.setPreferenceEnabled(CameraSettings.KEY_RECORD_LOCATION, false);
- }
- mPopup = popup;
- }
-
- public void popupDismissed(boolean topPopupOnly) {
- // if the 2nd level popup gets dismissed
- if (mSecondPopup != null) {
- mSecondPopup = null;
- if (topPopupOnly) mModule.showPopup(mPopup);
- }
- }
-
- // Return true if the preference has the specified key but not the value.
- private static boolean notSame(ListPreference pref, String key, String value) {
- return (key.equals(pref.getKey()) && !value.equals(pref.getValue()));
- }
-
- private void setPreference(String key, String value) {
- ListPreference pref = mPreferenceGroup.findPreference(key);
- if (pref != null && !value.equals(pref.getValue())) {
- pref.setValue(value);
- reloadPreferences();
- }
- }
-
- @Override
- public void onSettingChanged(ListPreference pref) {
- // Reset the scene mode if HDR is set to on. Reset HDR if scene mode is
- // set to non-auto.
- if (notSame(pref, CameraSettings.KEY_CAMERA_HDR, mSettingOff)) {
- setPreference(CameraSettings.KEY_SCENE_MODE, Parameters.SCENE_MODE_AUTO);
- } else if (notSame(pref, CameraSettings.KEY_SCENE_MODE, Parameters.SCENE_MODE_AUTO)) {
- setPreference(CameraSettings.KEY_CAMERA_HDR, mSettingOff);
- }
- super.onSettingChanged(pref);
- }
-
- @Override
- // Hit when an item in the first-level popup gets selected, then bring up
- // the second-level popup
- public void onPreferenceClicked(ListPreference pref) {
- if (mSecondPopup != null) return;
-
- LayoutInflater inflater = (LayoutInflater) mActivity.getSystemService(
- Context.LAYOUT_INFLATER_SERVICE);
- if (CameraSettings.KEY_TIMER.equals(pref.getKey())) {
- TimerSettingPopup timerPopup = (TimerSettingPopup) inflater.inflate(
- R.layout.timer_setting_popup, null, false);
- timerPopup.initialize(pref);
- timerPopup.setSettingChangedListener(this);
- mModule.dismissPopup(true);
- mSecondPopup = timerPopup;
- } else {
- ListPrefSettingPopup basic = (ListPrefSettingPopup) inflater.inflate(
- R.layout.list_pref_setting_popup, null, false);
- basic.initialize(pref);
- basic.setSettingChangedListener(this);
- mModule.dismissPopup(true);
- mSecondPopup = basic;
- }
- mModule.showPopup(mSecondPopup);
- }
+import android.view.SurfaceHolder;
+import android.view.View;
+
+import com.android.camera.ShutterButton.OnShutterButtonListener;
+
+
+public interface PhotoController extends OnShutterButtonListener {
+
+ public static final int PREVIEW_STOPPED = 0;
+ public static final int IDLE = 1; // preview is active
+ // Focus is in progress. The exact focus state is in Focus.java.
+ public static final int FOCUSING = 2;
+ public static final int SNAPSHOT_IN_PROGRESS = 3;
+ // Switching between cameras.
+ public static final int SWITCHING_CAMERA = 4;
+
+ // returns the actual set zoom value
+ public int onZoomChanged(int requestedZoom);
+
+ public boolean isImageCaptureIntent();
+
+ public boolean isCameraIdle();
+
+ public void onCaptureDone();
+
+ public void onCaptureCancelled();
+
+ public void onCaptureRetake();
+
+ public void cancelAutoFocus();
+
+ public void stopPreview();
+
+ public int getCameraState();
+
+ public void onSingleTapUp(View view, int x, int y);
+
+ public void onSurfaceCreated(SurfaceHolder holder);
+
+ public void onCountDownFinished();
+
+ public void onScreenSizeChanged(int width, int height, int previewWidth, int previewHeight);
+
}