startPassiveFocus();
break;
case ACTIVE_SCAN:
+ // Unused, manual scans are triggered via the UI
break;
case PASSIVE_FOCUSED:
case PASSIVE_UNFOCUSED:
- mFocusController.clearFocusIndicator();
+ // Unused
break;
case ACTIVE_FOCUSED:
case ACTIVE_UNFOCUSED:
- mFocusController.clearFocusIndicator();
+ // Unused
break;
}
package com.android.camera.captureintent.state;
-import com.google.common.base.Optional;
+import android.graphics.Bitmap;
+import android.graphics.Point;
+import android.media.MediaActionSound;
+import android.net.Uri;
import com.android.camera.async.RefCountBase;
import com.android.camera.captureintent.CaptureIntentConfig;
import com.android.camera.ui.CountDownView;
import com.android.camera.ui.focus.FocusController;
import com.android.camera.util.Size;
-
-import android.graphics.Bitmap;
-import android.graphics.Point;
-import android.media.MediaActionSound;
-import android.net.Uri;
+import com.google.common.base.Optional;
/**
* Represents a state that allows users to take a picture. The capture UI
return NO_CHANGE;
}
- @Override
public Optional<State> processOnCancelShutterButtonClicked() {
// Cancel in this state means that the countdown was cancelled.
mIsCountingDown = false;
result = 31 * result + (isActive ? 1 : 0);
return result;
}
+
+ @Override
+ public String toString() {
+ return "FocusState{" +
+ "lensDistance=" + lensDistance +
+ ", isActive=" + isActive +
+ '}';
+ }
}
/**
import android.graphics.RectF;
import com.android.camera.async.MainThread;
+import com.android.camera.debug.Log;
import com.android.camera.debug.Log.Tag;
import com.android.camera.one.OneCamera.FocusDistanceListener;
import com.android.camera.ui.motion.LinearScale;
mMainThread.execute(new Runnable() {
@Override
public void run() {
+ Log.v(TAG, "Running showPassiveFocusAtCenter()");
mFocusRing.startPassiveFocus();
mFocusRing.centerFocusLocation();
}
mMainThread.execute(new Runnable() {
@Override
public void run() {
+ Log.v(TAG, "Running showPassiveFocusAt(" + viewX + ", " + viewY + ")");
mFocusRing.startPassiveFocus();
mFocusRing.setFocusLocation(viewX, viewY);
}
mMainThread.execute(new Runnable() {
@Override
public void run() {
+ Log.v(TAG, "showActiveFocusAt(" + viewX + ", " + viewY + ")");
mFocusRing.startActiveFocus();
mFocusRing.setFocusLocation(viewX, viewY);
mMainThread.execute(new Runnable() {
@Override
public void run() {
+ Log.v(TAG, "clearFocusIndicator()");
mFocusRing.stopFocusAnimations();
}
});
mMainThread.execute(new Runnable() {
@Override
public void run() {
+ Log.v(TAG, "configurePreviewDimensions(" + previewArea + ")");
mFocusRing.configurePreviewDimensions(previewArea);
}
});
mMainThread.execute(new Runnable() {
@Override
public void run() {
+ Log.v(TAG, "setFocusRatio(" + ratio + ")");
+
if (mFocusRing.isPassiveFocusRunning() ||
mFocusRing.isActiveFocusRunning()) {
mFocusRing.setRadiusRatio(ratio);
import android.hardware.camera2.CameraCharacteristics;
import android.os.Build.VERSION_CODES;
-import com.android.camera.debug.Log;
-import com.android.camera.debug.Log.Tag;
import com.android.camera.ui.motion.LinearScale;
/**
*/
public static LinearScale getDiopterToRatioCalculator(CameraCharacteristics characteristics) {
// From the android documentation:
+ //
// 0.0f represents farthest focus, and LENS_INFO_MINIMUM_FOCUS_DISTANCE
// represents the nearest focus the device can achieve.
+ //
+ // Example:
+ //
+ // Infinity Hyperfocal Minimum Camera
+ // <----------|-----------------------------| |
+ // [0.0] [0.31] [14.29]
Float nearest = characteristics.get(CameraCharacteristics.LENS_INFO_MINIMUM_FOCUS_DISTANCE);
Float hyperfocal = characteristics.get(CameraCharacteristics.LENS_INFO_HYPERFOCAL_DISTANCE);
*/
public boolean isInDomain(float domainValue) {
if (mDomainA > mDomainB) {
- return domainValue >= mDomainA && domainValue <= mDomainB;
+ return domainValue <= mDomainA && domainValue >= mDomainB;
}
- return domainValue >= mDomainB && domainValue <= mDomainA;
+ return domainValue >= mDomainA && domainValue <= mDomainB;
}
/**
public LinearScale inverse() {
return new LinearScale(mRangeA, mRangeB, mDomainA, mDomainB);
}
+
+ @Override
+ public String toString() {
+ return "LinearScale{" +
+ "mDomainA=" + mDomainA +
+ ", mDomainB=" + mDomainB +
+ ", mRangeA=" + mRangeA +
+ ", mRangeB=" + mRangeB + "}";
+ }
}
\ No newline at end of file