summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2015-07-06 01:31:29 -0600
committerLinux Build Service Account <lnxbuild@localhost>2015-07-06 01:31:29 -0600
commit96e833287108de4dbcab48bab30637a9d751de43 (patch)
tree88dbf59a1a89b183bc7049fff02e30cf229a9794
parent17b1263029655fee3611f92993ae864d8acd1d1d (diff)
parent2006781dcbfb7a7885922d5ccb94e41b55b7e9ed (diff)
downloadandroid_packages_apps_Snap-96e833287108de4dbcab48bab30637a9d751de43.tar.gz
android_packages_apps_Snap-96e833287108de4dbcab48bab30637a9d751de43.tar.bz2
android_packages_apps_Snap-96e833287108de4dbcab48bab30637a9d751de43.zip
Merge 2006781dcbfb7a7885922d5ccb94e41b55b7e9ed on remote branch
Change-Id: Ic93d1c84122b5aaf6b852f0797badf124d12ed5f
-rw-r--r--src/com/android/camera/Storage.java5
-rw-r--r--src/com/android/camera/util/CameraUtil.java21
2 files changed, 23 insertions, 3 deletions
diff --git a/src/com/android/camera/Storage.java b/src/com/android/camera/Storage.java
index ab2f818ab..372571a80 100644
--- a/src/com/android/camera/Storage.java
+++ b/src/com/android/camera/Storage.java
@@ -117,6 +117,11 @@ public class Storage {
String path = generateFilepath(title, mimeType);
int size = writeFile(path, jpeg, exif, mimeType);
+ // Try to get the real image size after add exif.
+ File f = new File(path);
+ if (f.exists() && f.isFile()) {
+ size = (int) f.length();
+ }
return addImage(resolver, title, date, location, orientation,
size, path, width, height, mimeType);
}
diff --git a/src/com/android/camera/util/CameraUtil.java b/src/com/android/camera/util/CameraUtil.java
index 51c91cfe5..7201a7f8c 100644
--- a/src/com/android/camera/util/CameraUtil.java
+++ b/src/com/android/camera/util/CameraUtil.java
@@ -124,6 +124,7 @@ public class CameraUtil {
public static final int RATIO_UNKNOWN = 0;
public static final int RATIO_16_9 = 1;
public static final int RATIO_4_3 = 2;
+ public static final int RATIO_3_2 = 3;
public static boolean isSupported(String value, List<String> supported) {
return supported == null ? false : supported.indexOf(value) >= 0;
@@ -1089,6 +1090,8 @@ public class CameraUtil {
return RATIO_4_3;
} else if (ratio > 1.77f && ratio < 1.78f) {
return RATIO_16_9;
+ } else if (ratio > 1.49f && ratio < 1.51f) {
+ return RATIO_3_2;
} else {
return RATIO_UNKNOWN;
}
@@ -1109,11 +1112,23 @@ public class CameraUtil {
diffFrom_16_9 = 1 / diffFrom_16_9;
}
- if (diffFrom_4_3 < diffFrom_16_9) {
- return RATIO_4_3;
+ float diffFrom_3_2 = ((float) 3 / 2) / ratio;
+ if (diffFrom_3_2 < 1) {
+ diffFrom_3_2 = 1 / diffFrom_3_2;
+ }
+ int retRatio = RATIO_UNKNOWN;
+ float minDiffRatio = diffFrom_3_2;
+ if (diffFrom_3_2 < diffFrom_4_3) {
+ retRatio = RATIO_3_2;
+ minDiffRatio = diffFrom_3_2;
} else {
- return RATIO_16_9;
+ retRatio = RATIO_4_3;
+ minDiffRatio = diffFrom_4_3;
+ }
+ if (minDiffRatio > diffFrom_16_9) {
+ retRatio = RATIO_16_9;
}
+ return retRatio;
}
}