Merge "a dbobject is closed twice and that causes incorrect warnings"
diff --git a/api/current.xml b/api/current.xml
index 212e661..d9f2739 100644
--- a/api/current.xml
+++ b/api/current.xml
@@ -72368,6 +72368,19 @@
<parameter name="longitude" type="double">
</parameter>
</method>
+<method name="setGpsProcessingMethod"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="processing_method" type="java.lang.String">
+</parameter>
+</method>
<method name="setGpsTimestamp"
return="void"
abstract="false"
@@ -85130,7 +85143,7 @@
type="int"
transient="false"
volatile="false"
- value="4"
+ value="2"
static="true"
final="true"
deprecated="not deprecated"
@@ -85566,7 +85579,7 @@
visibility="public"
>
</field>
-<field name="TARGET_SIZE_NORMAL_THUMBNAIL"
+<field name="TARGET_SIZE_MINI_THUMBNAIL"
type="int"
transient="false"
volatile="false"
diff --git a/core/java/android/hardware/Camera.java b/core/java/android/hardware/Camera.java
index cddbec9..0efcad9 100644
--- a/core/java/android/hardware/Camera.java
+++ b/core/java/android/hardware/Camera.java
@@ -717,6 +717,7 @@
private static final String KEY_GPS_LONGITUDE = "gps-longitude";
private static final String KEY_GPS_ALTITUDE = "gps-altitude";
private static final String KEY_GPS_TIMESTAMP = "gps-timestamp";
+ private static final String KEY_GPS_PROCESSING_METHOD = "gps-processing-method";
private static final String KEY_WHITE_BALANCE = "whitebalance";
private static final String KEY_EFFECT = "effect";
private static final String KEY_ANTIBANDING = "antibanding";
@@ -1327,6 +1328,16 @@
}
/**
+ * Sets GPS processing method. It will store up to 100 characters
+ * in JPEG EXIF header.
+ *
+ * @param processing_method The processing method to get this location.
+ */
+ public void setGpsProcessingMethod(String processing_method) {
+ set(KEY_GPS_PROCESSING_METHOD, processing_method);
+ }
+
+ /**
* Removes GPS latitude, longitude, altitude, and timestamp from the
* parameters.
*/
@@ -1335,6 +1346,7 @@
remove(KEY_GPS_LONGITUDE);
remove(KEY_GPS_ALTITUDE);
remove(KEY_GPS_TIMESTAMP);
+ remove(KEY_GPS_PROCESSING_METHOD);
}
/**
diff --git a/core/res/res/drawable-hdpi/progressbar_indeterminate1.png b/core/res/res/drawable-hdpi/progressbar_indeterminate1.png
old mode 100644
new mode 100755
index ea88e32..197b34d
--- a/core/res/res/drawable-hdpi/progressbar_indeterminate1.png
+++ b/core/res/res/drawable-hdpi/progressbar_indeterminate1.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/progressbar_indeterminate2.png b/core/res/res/drawable-hdpi/progressbar_indeterminate2.png
old mode 100644
new mode 100755
index 436c48c..c6cf008
--- a/core/res/res/drawable-hdpi/progressbar_indeterminate2.png
+++ b/core/res/res/drawable-hdpi/progressbar_indeterminate2.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/progressbar_indeterminate3.png b/core/res/res/drawable-hdpi/progressbar_indeterminate3.png
old mode 100644
new mode 100755
index ea88e32..bf129e0
--- a/core/res/res/drawable-hdpi/progressbar_indeterminate3.png
+++ b/core/res/res/drawable-hdpi/progressbar_indeterminate3.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/progressbar_indeterminate1.png b/core/res/res/drawable-mdpi/progressbar_indeterminate1.png
index 5eddb30..71780ef 100644
--- a/core/res/res/drawable-mdpi/progressbar_indeterminate1.png
+++ b/core/res/res/drawable-mdpi/progressbar_indeterminate1.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/progressbar_indeterminate2.png b/core/res/res/drawable-mdpi/progressbar_indeterminate2.png
index 4ca3a63..236988b 100644
--- a/core/res/res/drawable-mdpi/progressbar_indeterminate2.png
+++ b/core/res/res/drawable-mdpi/progressbar_indeterminate2.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/progressbar_indeterminate3.png b/core/res/res/drawable-mdpi/progressbar_indeterminate3.png
index da8e601..1570235 100644
--- a/core/res/res/drawable-mdpi/progressbar_indeterminate3.png
+++ b/core/res/res/drawable-mdpi/progressbar_indeterminate3.png
Binary files differ
diff --git a/core/res/res/layout/select_dialog.xml b/core/res/res/layout/select_dialog.xml
index c665f7a..6e4e5e1 100644
--- a/core/res/res/layout/select_dialog.xml
+++ b/core/res/res/layout/select_dialog.xml
@@ -31,4 +31,5 @@
android:layout_marginTop="5px"
android:cacheColorHint="@null"
android:divider="@android:drawable/divider_horizontal_bright"
- android:scrollbars="vertical" />
+ android:scrollbars="vertical"
+ android:overscrollMode="ifContentScrolls" />
diff --git a/core/tests/coretests/src/android/text/StaticLayoutBidiTest.java b/core/tests/coretests/src/android/text/StaticLayoutBidiTest.java
index da6036a..8e7e63e 100644
--- a/core/tests/coretests/src/android/text/StaticLayoutBidiTest.java
+++ b/core/tests/coretests/src/android/text/StaticLayoutBidiTest.java
@@ -39,42 +39,42 @@
public static final String GIMEL = "\u05d2";
public static final String DALET = "\u05d3";
- @SmallTest
+ //@SmallTest
public void testAllLtr() {
expectBidi(REQ_DL, "a test", "000000", L);
}
- @SmallTest
+ //@SmallTest
public void testLtrRtl() {
expectBidi(REQ_DL, "abc " + ALEF + BET + GIMEL, "0000111", L);
}
- @SmallTest
+ //@SmallTest
public void testAllRtl() {
expectBidi(REQ_DL, ALEF + SP + ALEF + BET + GIMEL + DALET, "111111", R);
}
- @SmallTest
+ //@SmallTest
public void testRtlLtr() {
expectBidi(REQ_DL, ALEF + BET + GIMEL + " abc", "1111000", R);
}
- @SmallTest
+ //@SmallTest
public void testRAllLtr() {
expectBidi(REQ_R, "a test", "000000", R);
}
- @SmallTest
+ //@SmallTest
public void testRLtrRtl() {
expectBidi(REQ_R, "abc " + ALEF + BET + GIMEL, "0001111", R);
}
- @SmallTest
+ //@SmallTest
public void testLAllRtl() {
expectBidi(REQ_L, ALEF + SP + ALEF + BET + GIMEL + DALET, "111111", L);
}
- @SmallTest
+ //@SmallTest
public void testLRtlLtr() {
expectBidi(REQ_L, ALEF + BET + GIMEL + " abc", "1110000", L);
}
@@ -104,7 +104,7 @@
assertEquals("levels", expectedLevels, resultLevels);
}
- @SmallTest
+ //@SmallTest
public void testNativeBidi() {
// native bidi returns levels, not simply directions
expectNativeBidi(REQ_DL, ALEF + BET + GIMEL + " abc", "1111222", R);
diff --git a/include/camera/CameraParameters.h b/include/camera/CameraParameters.h
index 752afc2..6c6d0bc 100644
--- a/include/camera/CameraParameters.h
+++ b/include/camera/CameraParameters.h
@@ -139,6 +139,9 @@
// stored in JPEG EXIF header.
// Example value: "1251192757". Write only.
static const char KEY_GPS_TIMESTAMP[];
+ // GPS Processing Method
+ // Example value: "GPS" or "NETWORK". Write only.
+ static const char KEY_GPS_PROCESSING_METHOD[];
// Current white balance setting.
// Example value: "auto" or WHITE_BALANCE_XXX constants. Read/write.
static const char KEY_WHITE_BALANCE[];
diff --git a/libs/camera/CameraParameters.cpp b/libs/camera/CameraParameters.cpp
index cf4cbfa..65785c7 100644
--- a/libs/camera/CameraParameters.cpp
+++ b/libs/camera/CameraParameters.cpp
@@ -44,6 +44,7 @@
const char CameraParameters::KEY_GPS_LONGITUDE[] = "gps-longitude";
const char CameraParameters::KEY_GPS_ALTITUDE[] = "gps-altitude";
const char CameraParameters::KEY_GPS_TIMESTAMP[] = "gps-timestamp";
+const char CameraParameters::KEY_GPS_PROCESSING_METHOD[] = "gps-processing-method";
const char CameraParameters::KEY_WHITE_BALANCE[] = "whitebalance";
const char CameraParameters::KEY_SUPPORTED_WHITE_BALANCE[] = "whitebalance-values";
const char CameraParameters::KEY_EFFECT[] = "effect";
diff --git a/media/java/android/media/ThumbnailUtils.java b/media/java/android/media/ThumbnailUtils.java
index 30d95e3..23f850a 100644
--- a/media/java/android/media/ThumbnailUtils.java
+++ b/media/java/android/media/ThumbnailUtils.java
@@ -52,20 +52,19 @@
/* Options used internally. */
private static final int OPTIONS_NONE = 0x0;
- private static final int OPTIONS_DO_NOT_USE_NATIVE = 0x1;
- private static final int OPTIONS_SCALE_UP = 0x2;
+ private static final int OPTIONS_SCALE_UP = 0x1;
/**
* Constant used to indicate we should recycle the input in
* {@link #extractThumbnail(Bitmap, int, int, int)} unless the output is the input.
*/
- public static final int OPTIONS_RECYCLE_INPUT = 0x4;
+ public static final int OPTIONS_RECYCLE_INPUT = 0x2;
/**
- * Constant used to indicate the dimension of normal thumbnail in
+ * Constant used to indicate the dimension of mini thumbnail in
* {@link #extractThumbnail(Bitmap, int, int, int)}.
*/
- public static final int TARGET_SIZE_NORMAL_THUMBNAIL = 320;
+ public static final int TARGET_SIZE_MINI_THUMBNAIL = 320;
/**
* Constant used to indicate the dimension of micro thumbnail in
@@ -95,7 +94,7 @@
long origId, int kind, boolean saveMini) {
boolean wantMini = (kind == Images.Thumbnails.MINI_KIND || saveMini);
int targetSize = wantMini ?
- TARGET_SIZE_NORMAL_THUMBNAIL : TARGET_SIZE_MICRO_THUMBNAIL;
+ TARGET_SIZE_MINI_THUMBNAIL : TARGET_SIZE_MICRO_THUMBNAIL;
int maxPixels = wantMini ?
MAX_NUM_PIXELS_THUMBNAIL : MAX_NUM_PIXELS_MICRO_THUMBNAIL;
SizedThumbnailBitmap sizedThumbnailBitmap = new SizedThumbnailBitmap();
@@ -264,40 +263,16 @@
}
/**
- * Returns Options that set the native alloc flag for Bitmap decode.
- */
- private static BitmapFactory.Options createNativeAllocOptions() {
- BitmapFactory.Options options = new BitmapFactory.Options();
- options.inNativeAlloc = true;
- return options;
- }
-
- /**
* Make a bitmap from a given Uri, minimal side length, and maximum number of pixels.
+ * The image data will be read from specified ContentResolver.
*/
private static Bitmap makeBitmap(int minSideLength, int maxNumOfPixels,
Uri uri, ContentResolver cr) {
- return makeBitmap(minSideLength, maxNumOfPixels, uri, cr,
- OPTIONS_DO_NOT_USE_NATIVE);
- }
-
- /**
- * Make a bitmap from a given Uri, minimal side length, and maximum number of pixels.
- * The image data will be read from specified ContentResolver and clients are allowed to specify
- * whether they want the Bitmap be created in native memory.
- */
- private static Bitmap makeBitmap(int minSideLength, int maxNumOfPixels,
- Uri uri, ContentResolver cr, int opt) {
- boolean useNative = (opt & OPTIONS_DO_NOT_USE_NATIVE) != 0;
ParcelFileDescriptor input = null;
try {
input = cr.openFileDescriptor(uri, "r");
- BitmapFactory.Options options = null;
- if (useNative) {
- options = createNativeAllocOptions();
- }
return makeBitmap(minSideLength, maxNumOfPixels, uri, cr, input,
- options);
+ null);
} catch (IOException ex) {
Log.e(TAG, "", ex);
return null;
diff --git a/packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java b/packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java
index c826973..02e1f07 100644
--- a/packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java
+++ b/packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java
@@ -93,11 +93,16 @@
* PackageHelper.RECOMMEND_FAILED_INVALID_APK for parse errors.
*/
public int getRecommendedInstallLocation(final Uri fileUri) {
- if (!fileUri.getScheme().equals("file")) {
+ if (fileUri == null) {
+ Log.i(TAG, "Invalid package uri " + fileUri);
+ return PackageHelper.RECOMMEND_FAILED_INVALID_APK;
+ }
+ String scheme = fileUri.getScheme();
+ if (scheme != null && !scheme.equals("file")) {
Log.w(TAG, "Falling back to installing on internal storage only");
return PackageHelper.RECOMMEND_INSTALL_INTERNAL;
}
- final String archiveFilePath = fileUri.getPath();
+ String archiveFilePath = fileUri.getPath();
PackageParser packageParser = new PackageParser(archiveFilePath);
File sourceFile = new File(archiveFilePath);
DisplayMetrics metrics = new DisplayMetrics();
@@ -166,41 +171,62 @@
String codePath = packageURI.getPath();
File codeFile = new File(codePath);
String newCachePath = null;
+ final int CREATE_FAILED = 1;
+ final int COPY_FAILED = 2;
+ final int FINALIZE_FAILED = 3;
+ final int PASS = 4;
+ int errCode = CREATE_FAILED;
// Create new container
if ((newCachePath = PackageHelper.createSdDir(codeFile,
- newCid, key, Process.myUid())) == null) {
- Log.e(TAG, "Failed creating container " + newCid);
- return null;
+ newCid, key, Process.myUid())) != null) {
+ if (localLOGV) Log.i(TAG, "Created container for " + newCid
+ + " at path : " + newCachePath);
+ File resFile = new File(newCachePath, resFileName);
+ errCode = COPY_FAILED;
+ // Copy file from codePath
+ if (FileUtils.copyFile(new File(codePath), resFile)) {
+ if (localLOGV) Log.i(TAG, "Copied " + codePath + " to " + resFile);
+ errCode = FINALIZE_FAILED;
+ if (PackageHelper.finalizeSdDir(newCid)) {
+ if (localLOGV) Log.i(TAG, "Finalized container " + newCid);
+ errCode = PASS;
+ }
+ }
}
- if (localLOGV) Log.i(TAG, "Created container for " + newCid
- + " at path : " + newCachePath);
- File resFile = new File(newCachePath, resFileName);
- // Copy file from codePath
- if (!FileUtils.copyFile(new File(codePath), resFile)) {
- Log.e(TAG, "Failed to copy " + codePath + " to " + resFile);
- // Clean up created container
- PackageHelper.destroySdDir(newCid);
- return null;
+ // Print error based on errCode
+ String errMsg = "";
+ switch (errCode) {
+ case CREATE_FAILED:
+ errMsg = "CREATE_FAILED";
+ break;
+ case COPY_FAILED:
+ errMsg = "COPY_FAILED";
+ if (localLOGV) Log.i(TAG, "Destroying " + newCid +
+ " at path " + newCachePath + " after " + errMsg);
+ PackageHelper.destroySdDir(newCid);
+ break;
+ case FINALIZE_FAILED:
+ errMsg = "FINALIZE_FAILED";
+ if (localLOGV) Log.i(TAG, "Destroying " + newCid +
+ " at path " + newCachePath + " after " + errMsg);
+ PackageHelper.destroySdDir(newCid);
+ break;
+ default:
+ errMsg = "PASS";
+ if (PackageHelper.isContainerMounted(newCid)) {
+ if (localLOGV) Log.i(TAG, "Unmounting " + newCid +
+ " at path " + newCachePath + " after " + errMsg);
+ // Force a gc to avoid being killed.
+ Runtime.getRuntime().gc();
+ PackageHelper.unMountSdDir(newCid);
+ } else {
+ if (localLOGV) Log.i(TAG, "Container " + newCid + " not mounted");
+ }
+ break;
}
- if (localLOGV) Log.i(TAG, "Copied " + codePath + " to " + resFile);
- // Finalize container now
- if (!PackageHelper.finalizeSdDir(newCid)) {
- Log.e(TAG, "Failed to finalize " + newCid + " at cache path " + newCachePath);
- // Clean up created container
- PackageHelper.destroySdDir(newCid);
+ if (errCode != PASS) {
return null;
}
- if (localLOGV) Log.i(TAG, "Finalized container " + newCid);
- // Force a gc to avoid being killed.
- Runtime.getRuntime().gc();
- // Unmount container
- if (PackageHelper.isContainerMounted(newCid)) {
- if (localLOGV) Log.i(TAG, "Unmounting " + newCid +
- " at path " + newCachePath);
- PackageHelper.unMountSdDir(newCid);
- } else {
- if (localLOGV) Log.i(TAG, "Container " + newCid + " not mounted");
- }
return newCachePath;
}
@@ -231,7 +257,8 @@
}
private boolean copyFile(Uri pPackageURI, FileOutputStream outStream) {
- if (pPackageURI.getScheme().equals("file")) {
+ String scheme = pPackageURI.getScheme();
+ if (scheme == null || scheme.equals("file")) {
final File srcPackageFile = new File(pPackageURI.getPath());
// We copy the source package file to a temp file and then rename it to the
// destination file in order to eliminate a window where the package directory
@@ -240,7 +267,7 @@
Log.e(TAG, "Couldn't copy file: " + srcPackageFile);
return false;
}
- } else if (pPackageURI.getScheme().equals("content")) {
+ } else if (scheme.equals("content")) {
ParcelFileDescriptor fd = null;
try {
fd = getContentResolver().openFileDescriptor(pPackageURI, "r");
diff --git a/packages/TtsService/jni/android_tts_SynthProxy.cpp b/packages/TtsService/jni/android_tts_SynthProxy.cpp
index 2f5cfa3..b7acd96 100644
--- a/packages/TtsService/jni/android_tts_SynthProxy.cpp
+++ b/packages/TtsService/jni/android_tts_SynthProxy.cpp
@@ -551,7 +551,7 @@
return result;
}
- int bufSize = 10;
+ int bufSize = 12;
char buffer [bufSize];
sprintf(buffer, "%d", speechRate);
@@ -581,7 +581,7 @@
Mutex::Autolock l(engineMutex);
- int bufSize = 10;
+ int bufSize = 12;
char buffer [bufSize];
sprintf(buffer, "%d", pitch);
diff --git a/telephony/tests/telephonytests/src/com/android/internal/telephony/MccTableTest.java b/telephony/tests/telephonytests/src/com/android/internal/telephony/MccTableTest.java
index 1ea1285..2d6977c 100644
--- a/telephony/tests/telephonytests/src/com/android/internal/telephony/MccTableTest.java
+++ b/telephony/tests/telephonytests/src/com/android/internal/telephony/MccTableTest.java
@@ -33,7 +33,7 @@
assertEquals(MccTable.defaultTimeZoneForMcc(655), "Africa/Johannesburg");
assertEquals(MccTable.defaultTimeZoneForMcc(440), "Asia/Tokyo");
assertEquals(MccTable.defaultTimeZoneForMcc(441), "Asia/Tokyo");
- assertEquals(MccTable.defaultTimeZoneForMcc(525), "Singapore");
+ assertEquals(MccTable.defaultTimeZoneForMcc(525), "Asia/Singapore");
assertEquals(MccTable.defaultTimeZoneForMcc(240), null); // tz not defined, hence default
assertEquals(MccTable.defaultTimeZoneForMcc(0), null); // mcc not defined, hence default
assertEquals(MccTable.defaultTimeZoneForMcc(2000), null); // mcc not defined, hence default