diff options
author | Angus Kong <shkong@google.com> | 2014-06-10 16:07:45 -0700 |
---|---|---|
committer | Angus Kong <shkong@google.com> | 2014-06-12 11:22:16 -0700 |
commit | 6607dae6c4d1ee5bbf572695c2042d4d9129a730 (patch) | |
tree | 84c7b9f530d19e71513370de40f5310a7c0fb524 /src/com/android/camera/util/CameraUtil.java | |
parent | 8209d56912082748b5422f1e9611726c13c14e3c (diff) | |
download | android_packages_apps_Camera2-6607dae6c4d1ee5bbf572695c2042d4d9129a730.tar.gz android_packages_apps_Camera2-6607dae6c4d1ee5bbf572695c2042d4d9129a730.tar.bz2 android_packages_apps_Camera2-6607dae6c4d1ee5bbf572695c2042d4d9129a730.zip |
Refactor out Camera.Parameters.
Change-Id: Ibc1ddac509381530e887b7491069e6367e9a6088
Diffstat (limited to 'src/com/android/camera/util/CameraUtil.java')
-rw-r--r-- | src/com/android/camera/util/CameraUtil.java | 64 |
1 files changed, 31 insertions, 33 deletions
diff --git a/src/com/android/camera/util/CameraUtil.java b/src/com/android/camera/util/CameraUtil.java index 3dd6fc55e..715169527 100644 --- a/src/com/android/camera/util/CameraUtil.java +++ b/src/com/android/camera/util/CameraUtil.java @@ -54,6 +54,8 @@ import android.widget.Toast; import com.android.camera.CameraActivity; import com.android.camera.CameraDisabledException; import com.android.camera.cameradevice.CameraCapabilities; +import com.android.camera.cameradevice.CameraSettings; +import com.android.camera.cameradevice.Size; import com.android.camera.debug.Log; import com.android.camera.filmstrip.ImageData; import com.android.camera2.R; @@ -790,41 +792,38 @@ public class CameraUtil { return BitmapFactory.decodeByteArray(data, 0, data.length, opts); } - public static void setGpsParameters(Parameters parameters, Location loc) { + public static void setGpsParameters(CameraSettings settings, Location loc) { // Clear previous GPS location from the parameters. - parameters.removeGpsData(); - - // We always encode GpsTimeStamp - parameters.setGpsTimestamp(System.currentTimeMillis() / 1000); + settings.clearGpsData(); + boolean hasLatLon = false; + double lat; + double lon; // Set GPS location. if (loc != null) { - double lat = loc.getLatitude(); - double lon = loc.getLongitude(); - boolean hasLatLon = (lat != 0.0d) || (lon != 0.0d); - - if (hasLatLon) { - Log.d(TAG, "Set gps location"); - parameters.setGpsLatitude(lat); - parameters.setGpsLongitude(lon); - parameters.setGpsProcessingMethod(loc.getProvider().toUpperCase()); - if (loc.hasAltitude()) { - parameters.setGpsAltitude(loc.getAltitude()); - } else { - // for NETWORK_PROVIDER location provider, we may have - // no altitude information, but the driver needs it, so - // we fake one. - parameters.setGpsAltitude(0); - } - if (loc.getTime() != 0) { - // Location.getTime() is UTC in milliseconds. - // gps-timestamp is UTC in seconds. - long utcTimeSeconds = loc.getTime() / 1000; - parameters.setGpsTimestamp(utcTimeSeconds); - } - } else { - loc = null; - } + lat = loc.getLatitude(); + lon = loc.getLongitude(); + hasLatLon = (lat != 0.0d) || (lon != 0.0d); + } + + if (!hasLatLon) { + // We always encode GpsTimeStamp even if the GPS location is not + // available. + settings.setGpsData( + new CameraSettings.GpsData(0f, 0f, 0f, System.currentTimeMillis() / 1000, null) + ); + } else { + Log.d(TAG, "Set gps location"); + // for NETWORK_PROVIDER location provider, we may have + // no altitude information, but the driver needs it, so + // we fake one. + // Location.getTime() is UTC in milliseconds. + // gps-timestamp is UTC in seconds. + long utcTimeSeconds = loc.getTime() / 1000; + settings.setGpsData(new CameraSettings.GpsData(loc.getLatitude(), loc.getLongitude(), + (loc.hasAltitude() ? loc.getAltitude() : 0), + (utcTimeSeconds != 0 ? utcTimeSeconds : System.currentTimeMillis()), + loc.getProvider().toUpperCase())); } } @@ -880,8 +879,7 @@ public class CameraUtil { return null; } - public static int[] getMaxPreviewFpsRange(Parameters params) { - List<int[]> frameRates = params.getSupportedPreviewFpsRange(); + public static int[] getMaxPreviewFpsRange(List<int[]> frameRates) { if (frameRates != null && frameRates.size() > 0) { // The list is sorted. Return the last element. return frameRates.get(frameRates.size() - 1); |