diff options
| -rw-r--r-- | api/current.xml | 17 | ||||
| -rw-r--r-- | core/java/android/hardware/Camera.java | 12 | ||||
| -rw-r--r-- | core/java/android/view/VelocityTracker.java | 13 | ||||
| -rw-r--r-- | core/java/android/widget/AbsListView.java | 1 | ||||
| -rw-r--r-- | core/res/res/layout/select_dialog.xml | 3 | ||||
| -rw-r--r-- | include/camera/CameraParameters.h | 3 | ||||
| -rw-r--r-- | libs/camera/CameraParameters.cpp | 1 | ||||
| -rw-r--r-- | media/java/android/media/ThumbnailUtils.java | 39 | ||||
| -rw-r--r-- | packages/TtsService/jni/android_tts_SynthProxy.cpp | 4 | ||||
| -rw-r--r-- | services/java/com/android/server/InputDevice.java | 16 | ||||
| -rw-r--r-- | telephony/tests/telephonytests/src/com/android/internal/telephony/MccTableTest.java | 2 |
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 |