summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--api/current.xml17
-rw-r--r--core/java/android/hardware/Camera.java12
-rw-r--r--core/java/android/view/VelocityTracker.java13
-rw-r--r--core/java/android/widget/AbsListView.java1
-rw-r--r--core/res/res/layout/select_dialog.xml3
-rw-r--r--include/camera/CameraParameters.h3
-rw-r--r--libs/camera/CameraParameters.cpp1
-rw-r--r--media/java/android/media/ThumbnailUtils.java39
-rw-r--r--packages/TtsService/jni/android_tts_SynthProxy.cpp4
-rw-r--r--services/java/com/android/server/InputDevice.java16
-rw-r--r--telephony/tests/telephonytests/src/com/android/internal/telephony/MccTableTest.java2
11 files changed, 62 insertions, 49 deletions
diff --git a/api/current.xml b/api/current.xml
index 212e66192b1a..d9f2739f8495 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 cddbec9d82a5..0efcad9b5ec2 100644
--- a/core/java/android/hardware/Camera.java
+++ b/core/java/android/hardware/Camera.java
@@ -717,6 +717,7 @@ public class Camera {
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 @@ public class Camera {
}
/**
+ * 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 @@ public class Camera {
remove(KEY_GPS_LONGITUDE);
remove(KEY_GPS_ALTITUDE);
remove(KEY_GPS_TIMESTAMP);
+ remove(KEY_GPS_PROCESSING_METHOD);
}
/**
diff --git a/core/java/android/view/VelocityTracker.java b/core/java/android/view/VelocityTracker.java
index 91fd6f1a509c..c17a724ff041 100644
--- a/core/java/android/view/VelocityTracker.java
+++ b/core/java/android/view/VelocityTracker.java
@@ -100,6 +100,7 @@ public final class VelocityTracker implements Poolable<VelocityTracker> {
}
private VelocityTracker() {
+ clear();
}
/**
@@ -109,7 +110,7 @@ public final class VelocityTracker implements Poolable<VelocityTracker> {
final long[][] pastTime = mPastTime;
for (int p = 0; p < MotionEvent.BASE_AVAIL_POINTERS; p++) {
for (int i = 0; i < NUM_PAST; i++) {
- pastTime[p][i] = 0;
+ pastTime[p][i] = Long.MIN_VALUE;
}
}
}
@@ -129,7 +130,7 @@ public final class VelocityTracker implements Poolable<VelocityTracker> {
int touchIndex = (mLastTouch + 1) % NUM_PAST;
for (int i=0; i<N; i++) {
for (int id = 0; id < MotionEvent.BASE_AVAIL_POINTERS; id++) {
- mPastTime[id][touchIndex] = 0;
+ mPastTime[id][touchIndex] = Long.MIN_VALUE;
}
for (int p = 0; p < pointerCount; p++) {
int id = ev.getPointerId(p);
@@ -141,10 +142,10 @@ public final class VelocityTracker implements Poolable<VelocityTracker> {
touchIndex = (touchIndex + 1) % NUM_PAST;
}
- // During calculation any pointer values with a time of 0 are treated
- // as a break in input. Initialize all to 0 for each new touch index.
+ // During calculation any pointer values with a time of MIN_VALUE are treated
+ // as a break in input. Initialize all to MIN_VALUE for each new touch index.
for (int id = 0; id < MotionEvent.BASE_AVAIL_POINTERS; id++) {
- mPastTime[id][touchIndex] = 0;
+ mPastTime[id][touchIndex] = Long.MIN_VALUE;
}
final long time = ev.getEventTime();
for (int p = 0; p < pointerCount; p++) {
@@ -189,7 +190,7 @@ public final class VelocityTracker implements Poolable<VelocityTracker> {
// find oldest acceptable time
int oldestTouch = lastTouch;
- if (pastTime[lastTouch] > 0) { // cleared ?
+ if (pastTime[lastTouch] != Long.MIN_VALUE) { // cleared ?
final float acceptableTime = pastTime[lastTouch] - LONGEST_PAST_TIME;
int nextOldestTouch = (NUM_PAST + oldestTouch - 1) % NUM_PAST;
while (pastTime[nextOldestTouch] >= acceptableTime &&
diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java
index a555ae4772f5..b78373d4ccdf 100644
--- a/core/java/android/widget/AbsListView.java
+++ b/core/java/android/widget/AbsListView.java
@@ -2387,6 +2387,7 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
mVelocityTracker.clear();
}
}
+ awakenScrollBars();
}
private int getOverscrollMax() {
diff --git a/core/res/res/layout/select_dialog.xml b/core/res/res/layout/select_dialog.xml
index c665f7a7ed97..6e4e5e122edf 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/include/camera/CameraParameters.h b/include/camera/CameraParameters.h
index 752afc239c00..6c6d0bc7cdb7 100644
--- a/include/camera/CameraParameters.h
+++ b/include/camera/CameraParameters.h
@@ -139,6 +139,9 @@ public:
// 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 cf4cbfac4420..65785c7a0d3e 100644
--- a/libs/camera/CameraParameters.cpp
+++ b/libs/camera/CameraParameters.cpp
@@ -44,6 +44,7 @@ const char CameraParameters::KEY_GPS_LATITUDE[] = "gps-latitude";
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 30d95e316bea..23f850a04802 100644
--- a/media/java/android/media/ThumbnailUtils.java
+++ b/media/java/android/media/ThumbnailUtils.java
@@ -52,20 +52,19 @@ public class ThumbnailUtils {
/* 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 @@ public class ThumbnailUtils {
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 @@ public class ThumbnailUtils {
}
/**
- * 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/TtsService/jni/android_tts_SynthProxy.cpp b/packages/TtsService/jni/android_tts_SynthProxy.cpp
index 2f5cfa37dcdc..b7acd96656ca 100644
--- a/packages/TtsService/jni/android_tts_SynthProxy.cpp
+++ b/packages/TtsService/jni/android_tts_SynthProxy.cpp
@@ -551,7 +551,7 @@ android_tts_SynthProxy_setSpeechRate(JNIEnv *env, jobject thiz, jint jniData,
return result;
}
- int bufSize = 10;
+ int bufSize = 12;
char buffer [bufSize];
sprintf(buffer, "%d", speechRate);
@@ -581,7 +581,7 @@ android_tts_SynthProxy_setPitch(JNIEnv *env, jobject thiz, jint jniData,
Mutex::Autolock l(engineMutex);
- int bufSize = 10;
+ int bufSize = 12;
char buffer [bufSize];
sprintf(buffer, "%d", pitch);
diff --git a/services/java/com/android/server/InputDevice.java b/services/java/com/android/server/InputDevice.java
index ed7eed07d726..07a74da8b4f0 100644
--- a/services/java/com/android/server/InputDevice.java
+++ b/services/java/com/android/server/InputDevice.java
@@ -36,9 +36,9 @@ public class InputDevice {
/**
* Slop distance for jumpy pointer detection.
- * This is in touchscreen coordinates, not pixels or dips.
+ * The vertical range of the screen divided by this is our epsilon value.
*/
- private static final int JUMPY_EPSILON = 30;
+ private static final int JUMPY_EPSILON_DIVISOR = 212;
/** Number of jumpy points to drop for touchscreens that need it. */
private static final int JUMPY_TRANSITION_DROPS = 3;
@@ -246,11 +246,17 @@ public class InputDevice {
}
void dropJumpyPoint(InputDevice dev) {
+ // We should always have absY, but let's be paranoid.
+ if (dev.absY == null) {
+ return;
+ }
+ final int jumpyEpsilon = dev.absY.range / JUMPY_EPSILON_DIVISOR;
+
final int nextNumPointers = mNextNumPointers;
final int lastNumPointers = mLastNumPointers;
final int[] nextData = mNextData;
final int[] lastData = mLastData;
-
+
if (nextNumPointers != mLastNumPointers) {
if (DEBUG_HACKS) {
Slog.d("InputDevice", "Different pointer count " + lastNumPointers +
@@ -330,8 +336,8 @@ public class InputDevice {
final int xOther = nextData[joff + MotionEvent.SAMPLE_X];
final int yOther = nextData[joff + MotionEvent.SAMPLE_Y];
- dropx = Math.abs(x - xOther) <= JUMPY_EPSILON;
- dropy = Math.abs(y - yOther) <= JUMPY_EPSILON;
+ dropx = Math.abs(x - xOther) <= jumpyEpsilon;
+ dropy = Math.abs(y - yOther) <= jumpyEpsilon;
}
if (dropx) {
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 1ea1285080cc..2d6977ca7570 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 @@ public class MccTableTest extends AndroidTestCase {
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