From b6d6e167930b6de0c256962c1335cd193f94d79a Mon Sep 17 00:00:00 2001 From: Irfan Sheriff Date: Thu, 26 Jul 2012 09:12:58 -0700 Subject: [PATCH 01/61] Fix permission issues for apps Add a work around and create a bug for proper fix Bug: 6882233 Change-Id: Id372c54dff16aaabc26bedbaced57b906fac825c --- services/java/com/android/server/WifiService.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/services/java/com/android/server/WifiService.java b/services/java/com/android/server/WifiService.java index 53fb60be026b8..e1c05b517eb63 100644 --- a/services/java/com/android/server/WifiService.java +++ b/services/java/com/android/server/WifiService.java @@ -955,12 +955,10 @@ public class WifiService extends IWifiManager.Stub { * an AsyncChannel communication with WifiService */ public Messenger getWifiServiceMessenger() { - /* Enforce the highest permissions - TODO: when we consider exposing the asynchronous API, think about - how to provide both access and change permissions seperately - */ - enforceAccessPermission(); - enforceChangePermission(); + /* STOPSHIP: Fix this to have old sync API not need these new permissions + * enforceAccessPermission(); + * enforceChangePermission(); + */ return new Messenger(mAsyncServiceHandler); } From c86353b8b7dc0ec1728129ab8a80fff14fc6d593 Mon Sep 17 00:00:00 2001 From: Irfan Sheriff Date: Thu, 26 Jul 2012 09:12:58 -0700 Subject: [PATCH 02/61] Fix permission issues for apps Add a work around and create a bug for proper fix Bug: 6882233 Change-Id: Id372c54dff16aaabc26bedbaced57b906fac825c --- services/java/com/android/server/WifiService.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/services/java/com/android/server/WifiService.java b/services/java/com/android/server/WifiService.java index 53fb60be026b8..e1c05b517eb63 100644 --- a/services/java/com/android/server/WifiService.java +++ b/services/java/com/android/server/WifiService.java @@ -955,12 +955,10 @@ public class WifiService extends IWifiManager.Stub { * an AsyncChannel communication with WifiService */ public Messenger getWifiServiceMessenger() { - /* Enforce the highest permissions - TODO: when we consider exposing the asynchronous API, think about - how to provide both access and change permissions seperately - */ - enforceAccessPermission(); - enforceChangePermission(); + /* STOPSHIP: Fix this to have old sync API not need these new permissions + * enforceAccessPermission(); + * enforceChangePermission(); + */ return new Messenger(mAsyncServiceHandler); } From 11fd858a8b4dc8c98da606377a180282a39df0fe Mon Sep 17 00:00:00 2001 From: Ying Wang Date: Thu, 26 Jul 2012 13:55:40 -0700 Subject: [PATCH 03/61] Import translations. DO NOT MERGE Change-Id: I50220a389a50693e5894c087c7027baf743e8fea Auto-generated-cl: translation import --- core/res/res/values-ru/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml index 50670fe6758ac..270998f5d87ea 100644 --- a/core/res/res/values-ru/strings.xml +++ b/core/res/res/values-ru/strings.xml @@ -699,7 +699,7 @@ "Экстренный вызов" "Вернуться к вызову" "Правильно!" - "Повторить попытку" + "Повторите попытку" "Повторить попытку" "Все попытки войти с помощью Фейсконтроля использованы" "Идет зарядка (%d%%)" From d27c70ab345d4b85c21f06735e1dc536f2cfb0cc Mon Sep 17 00:00:00 2001 From: Katie McCormick Date: Tue, 24 Jul 2012 15:05:28 -0700 Subject: [PATCH 04/61] Doc update: Misc minor GCM updates. Change-Id: Id5454e70455bae14ab4605021a6c1bcab0292ae9 --- docs/html/guide/google/gcm/gcm.jd | 27 +++++++++++++++++++++------ docs/html/guide/google/gcm/index.jd | 2 ++ 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/docs/html/guide/google/gcm/gcm.jd b/docs/html/guide/google/gcm/gcm.jd index 1b95520bf78fc..0b05c5358bf04 100644 --- a/docs/html/guide/google/gcm/gcm.jd +++ b/docs/html/guide/google/gcm/gcm.jd @@ -56,7 +56,7 @@ page.title=GCM Architectural Overview -

Google Cloud Messaging for Android (GCM) is a service that helps +

Google Cloud Messaging for Android (GCM) is a free service that helps developers send data from servers to their Android applications on Android devices. This could be a lightweight message telling the Android application that there is new data to be fetched from the server (for instance, a movie uploaded by a friend), or it could be a message containing up to 4kb of payload data (so apps like instant messaging can consume the message directly). The GCM service handles all aspects of queueing of messages and delivery to the target Android application running on the target device.

@@ -545,7 +545,8 @@ private void handleRegistration(Intent intent) {

The com.google.android.c2dm.intent.RECEIVE intent is used by GCM to deliver the messages sent by the 3rd-party server to the application running in the device. If the server included key-pair values in the data parameter, they are available as -extras in this intent, with the keys being the extra names. +extras in this intent, with the keys being the extra names. GCM also includes an extra called +from which contains the sender ID as an string.

Here is an example, again using the MyIntentReceiver class:

@@ -652,7 +653,7 @@ message sent by the application server. See Advan data A JSON object whose fields represents the key-value pairs of the message's payload data. If present, the payload data it will be included in the Intent as application data, with the key being the extra's name. For instance, "data":{"score":"3x1"} would result in an intent extra named score whose value is the string 3x1. -There is no limit on the number of key/value pairs, though there is a limit on the total size of the message (4kb). Note that the values must be enclosed by strings. If you want to include objects or other non-string data types (such as integers or booleans), you have to do the conversion to string yourself. Optional. +There is no limit on the number of key/value pairs, though there is a limit on the total size of the message (4kb). Note that the values must be enclosed by strings. If you want to include objects or other non-string data types (such as integers or booleans), you have to do the conversion to string yourself. Also note that the key cannot be a reserved word ("from" or any word starting with "google."). Optional. delay_while_idle @@ -683,7 +684,7 @@ sent. Optional. The default value is false, and must be a JSON bool data.<key> - Payload data, expressed as parameters prefixed with data. and suffixed as the key. For instance, a parameter of data.score=3x1 would result in an intent extra named score whose value is the string 3x1. There is no limit on the number of key/value parameters, though there is a limit on the total size of the message. Optional. + Payload data, expressed as parameters prefixed with data. and suffixed as the key. For instance, a parameter of data.score=3x1 would result in an intent extra named score whose value is the string 3x1. There is no limit on the number of key/value parameters, though there is a limit on the total size of the message. Note that the key cannot be a reserved word ("from" or any word starting with "google."). Optional. delay_while_idle @@ -879,8 +880,20 @@ messages.
  • Request originated from a server not whitelisted in the Server Key IPs.
  • -Check that the token you're sending inside the Authorization header is the correct API key associated with your project.
    +Check that the token you're sending inside the Authorization header is the correct API key associated with your project. You can check the validity of your API key by running the following command:
    +
    # api_key=YOUR_API_KEY
    +
    +# curl --header "Authorization: key=$api_key" --header Content-Type:"application/json" https://android.googleapis.com/gcm/send  -d "{\"registration_ids\":[\"ABC\"]}"
    + + +If you receive a 401 HTTP status code, your API key is not valid. Otherwise you should see something like this:
    + +
    +{"multicast_id":6782339717028231855,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"InvalidRegistration"}]}
    +
    +If you want to confirm the validity of a registration ID, you can do so by replacing "ABC" with the registration ID. +
    Happens when the HTTP status code is 401.
    Timeout
    @@ -974,7 +987,7 @@ registration_id=32

    To view statistics and any error messages for your GCM applications:

      -
    1. Go to play.google.com/apps/publish.
    2. +
    3. Go to the Android Developer Console.
    4. Login with your developer account.

      You will see a page that has a list of all of your apps.

    5. Click on the "statistics" link next to the app for which you want to view GCM stats. @@ -982,6 +995,8 @@ registration_id=32
    6. Go to the drop-down menu and select the GCM metric you want to view.
    +

    Note: Stats on the Google API Console are not enabled for GCM. You must use the Android Developer Console.

    +

    Examples

    See the GCM Demo Application document.

    diff --git a/docs/html/guide/google/gcm/index.jd b/docs/html/guide/google/gcm/index.jd index 140b0762967af..8079ebae6e2cc 100644 --- a/docs/html/guide/google/gcm/index.jd +++ b/docs/html/guide/google/gcm/index.jd @@ -5,6 +5,8 @@ page.title=Google Cloud Messaging for Android

    Google Cloud Messaging for Android (GCM) is a service that helps developers send data from servers to their Android applications on Android devices. This could be a lightweight message telling the Android application that there is new data to be fetched from the server (for instance, a movie uploaded by a friend), or it could be a message containing up to 4kb of payload data (so apps like instant messaging can consume the message directly). The GCM service handles all aspects of queueing of messages and delivery to the target Android application running on the target device.

    +

    GCM is completely free no matter how big your messaging needs are, and there are no quotas.

    +

    To learn more about GCM, you can join the android-gcm group and read the following documents:

    From 5c795b54b8ba6090ed27ec46c5ae1ef750f9eb8c Mon Sep 17 00:00:00 2001 From: Fabrice Di Meglio Date: Thu, 26 Jul 2012 15:17:16 -0700 Subject: [PATCH 05/61] Make CheckedTextView RTL aware - see bug #5429822 UI should be mirrored for RTL locales (Arabic, Hebrew, farsi) Change-Id: I1479dcf397876e7f4b610812c6c72f069598b3c9 --- core/java/android/widget/CheckedTextView.java | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/core/java/android/widget/CheckedTextView.java b/core/java/android/widget/CheckedTextView.java index 61935c2b2024d..7e85324602396 100644 --- a/core/java/android/widget/CheckedTextView.java +++ b/core/java/android/widget/CheckedTextView.java @@ -174,7 +174,11 @@ public class CheckedTextView extends TextView implements Checkable { int newPadding = (mCheckMarkDrawable != null) ? mCheckMarkWidth + mBasePadding : mBasePadding; mNeedRequestlayout |= (mPaddingRight != newPadding); - mPaddingRight = newPadding; + if (isLayoutRtl()) { + mPaddingLeft = newPadding; + } else { + mPaddingRight = newPadding; + } if (mNeedRequestlayout) { requestLayout(); mNeedRequestlayout = false; @@ -184,7 +188,7 @@ public class CheckedTextView extends TextView implements Checkable { @Override public void setPadding(int left, int top, int right, int bottom) { super.setPadding(left, top, right, bottom); - mBasePadding = mPaddingRight; + mBasePadding = getPaddingEnd(); } @Override @@ -213,12 +217,13 @@ public class CheckedTextView extends TextView implements Checkable { break; } - int right = getWidth(); - checkMarkDrawable.setBounds( - right - mPaddingRight, - y, - right - mPaddingRight + mCheckMarkWidth, - y + height); + final boolean isLayoutRtl = isLayoutRtl(); + final int width = getWidth(); + final int top = y; + final int bottom = top + height; + final int left = isLayoutRtl ? getPaddingEnd() : width - getPaddingEnd(); + final int right = left + mCheckMarkWidth; + checkMarkDrawable.setBounds(left, top, right, bottom); checkMarkDrawable.draw(canvas); } } From eadb60fc4fba6b4ad28369ae48b89db5e7036a91 Mon Sep 17 00:00:00 2001 From: Jason Sams Date: Thu, 26 Jul 2012 16:56:01 -0700 Subject: [PATCH 06/61] Fix readback lengths Change-Id: I4c5f29af03ed3babceef741aa3a982244cfc65d1 --- graphics/jni/android_renderscript_RenderScript.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/graphics/jni/android_renderscript_RenderScript.cpp b/graphics/jni/android_renderscript_RenderScript.cpp index 8c8ff4dcae140..09f69527cd417 100644 --- a/graphics/jni/android_renderscript_RenderScript.cpp +++ b/graphics/jni/android_renderscript_RenderScript.cpp @@ -718,7 +718,7 @@ nAllocationRead_i(JNIEnv *_env, jobject _this, RsContext con, jint alloc, jintAr LOG_API("nAllocationRead_i, con(%p), alloc(%p), len(%i)", con, (RsAllocation)alloc, len); jint *ptr = _env->GetIntArrayElements(data, NULL); jsize length = _env->GetArrayLength(data); - rsAllocationRead(con, (RsAllocation)alloc, ptr, length); + rsAllocationRead(con, (RsAllocation)alloc, ptr, length * sizeof(int)); _env->ReleaseIntArrayElements(data, ptr, 0); } @@ -729,7 +729,7 @@ nAllocationRead_s(JNIEnv *_env, jobject _this, RsContext con, jint alloc, jshort LOG_API("nAllocationRead_i, con(%p), alloc(%p), len(%i)", con, (RsAllocation)alloc, len); jshort *ptr = _env->GetShortArrayElements(data, NULL); jsize length = _env->GetArrayLength(data); - rsAllocationRead(con, (RsAllocation)alloc, ptr, length); + rsAllocationRead(con, (RsAllocation)alloc, ptr, length * sizeof(short)); _env->ReleaseShortArrayElements(data, ptr, 0); } @@ -740,7 +740,7 @@ nAllocationRead_b(JNIEnv *_env, jobject _this, RsContext con, jint alloc, jbyteA LOG_API("nAllocationRead_i, con(%p), alloc(%p), len(%i)", con, (RsAllocation)alloc, len); jbyte *ptr = _env->GetByteArrayElements(data, NULL); jsize length = _env->GetArrayLength(data); - rsAllocationRead(con, (RsAllocation)alloc, ptr, length); + rsAllocationRead(con, (RsAllocation)alloc, ptr, length * sizeof(char)); _env->ReleaseByteArrayElements(data, ptr, 0); } @@ -751,7 +751,7 @@ nAllocationRead_f(JNIEnv *_env, jobject _this, RsContext con, jint alloc, jfloat LOG_API("nAllocationRead_f, con(%p), alloc(%p), len(%i)", con, (RsAllocation)alloc, len); jfloat *ptr = _env->GetFloatArrayElements(data, NULL); jsize length = _env->GetArrayLength(data); - rsAllocationRead(con, (RsAllocation)alloc, ptr, length); + rsAllocationRead(con, (RsAllocation)alloc, ptr, length * sizeof(float)); _env->ReleaseFloatArrayElements(data, ptr, 0); } From a8477e39a9a861081b2c29aa0172dc591460e83c Mon Sep 17 00:00:00 2001 From: Rajeev Sharma Date: Thu, 26 Jul 2012 15:57:52 -0700 Subject: [PATCH 07/61] Add fisheye filter to Image Processing benchmark Add a fisheye filter, mostly based on the GLSL version in android.filterpacks.imageproc.FisheyeFilter but with the configurable center functionality from the JNI version in the original PhotoEditor. Change-Id: I091cba747299809095f6586e16a9221cdc2b2e7d --- .../src/com/android/rs/image/Fisheye.java | 106 ++++++++++++++++++ .../rs/image/ImageProcessingActivity.java | 10 +- .../src/com/android/rs/image/fisheye.rsh | 62 ++++++++++ .../src/com/android/rs/image/fisheye_full.rs | 21 ++++ .../com/android/rs/image/fisheye_relaxed.rs | 22 ++++ 5 files changed, 220 insertions(+), 1 deletion(-) create mode 100644 tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Fisheye.java create mode 100644 tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/fisheye.rsh create mode 100644 tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/fisheye_full.rs create mode 100644 tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/fisheye_relaxed.rs diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Fisheye.java b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Fisheye.java new file mode 100644 index 0000000000000..bf68f919f0357 --- /dev/null +++ b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Fisheye.java @@ -0,0 +1,106 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.rs.image; + +import android.renderscript.Allocation; +import android.renderscript.Element; +import android.renderscript.Sampler; +import android.renderscript.Type; +import android.widget.SeekBar; +import android.widget.TextView; + +public class Fisheye extends TestBase { + private ScriptC_fisheye_full mScript_full = null; + private ScriptC_fisheye_relaxed mScript_relaxed = null; + private final boolean relaxed; + private float center_x = 0.5f; + private float center_y = 0.5f; + private float scale = 0.5f; + + public Fisheye(boolean relaxed) { + this.relaxed = relaxed; + } + + public boolean onBar1Setup(SeekBar b, TextView t) { + t.setText("Scale"); + b.setMax(100); + b.setProgress(25); + return true; + } + public boolean onBar2Setup(SeekBar b, TextView t) { + t.setText("Shift center X"); + b.setMax(100); + b.setProgress(50); + return true; + } + public boolean onBar3Setup(SeekBar b, TextView t) { + t.setText("Shift center Y"); + b.setMax(100); + b.setProgress(50); + return true; + } + + public void onBar1Changed(int progress) { + scale = progress / 50.0f; + do_init(); + } + public void onBar2Changed(int progress) { + center_x = progress / 100.0f; + do_init(); + } + public void onBar3Changed(int progress) { + center_y = progress / 100.0f; + do_init(); + } + + private void do_init() { + if (relaxed) + mScript_relaxed.invoke_init_filter( + mInPixelsAllocation.getType().getX(), + mInPixelsAllocation.getType().getY(), center_x, center_y, + scale); + else + mScript_full.invoke_init_filter( + mInPixelsAllocation.getType().getX(), + mInPixelsAllocation.getType().getY(), center_x, center_y, + scale); + } + + public void createTest(android.content.res.Resources res) { + if (relaxed) { + mScript_relaxed = new ScriptC_fisheye_relaxed(mRS, res, + R.raw.fisheye_relaxed); + mScript_relaxed.set_in_alloc(mInPixelsAllocation); + mScript_relaxed.set_sampler(Sampler.CLAMP_LINEAR(mRS)); + } else { + mScript_full = new ScriptC_fisheye_full(mRS, res, + R.raw.fisheye_full); + mScript_full.set_in_alloc(mInPixelsAllocation); + mScript_full.set_sampler(Sampler.CLAMP_LINEAR(mRS)); + } + do_init(); + } + + public void runTest() { + if (relaxed) + mScript_relaxed.forEach_root(mOutPixelsAllocation); + else + mScript_full.forEach_root(mOutPixelsAllocation); + } + +} + diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/ImageProcessingActivity.java b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/ImageProcessingActivity.java index 3a9838bf790ad..7ad14c4f83861 100644 --- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/ImageProcessingActivity.java +++ b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/ImageProcessingActivity.java @@ -143,6 +143,12 @@ public class ImageProcessingActivity extends Activity case 6: mTest = new Grain(); break; + case 7: + mTest = new Fisheye(false); + break; + case 8: + mTest = new Fisheye(true); + break; } mTest.createBaseTest(this, mBitmapIn); @@ -155,7 +161,7 @@ public class ImageProcessingActivity extends Activity } void setupTests() { - mTestNames = new String[7]; + mTestNames = new String[9]; mTestNames[0] = "Levels Vec3 Relaxed"; mTestNames[1] = "Levels Vec4 Relaxed"; mTestNames[2] = "Levels Vec3 Full"; @@ -163,6 +169,8 @@ public class ImageProcessingActivity extends Activity mTestNames[4] = "Blur radius 25"; mTestNames[5] = "Greyscale"; mTestNames[6] = "Grain"; + mTestNames[7] = "Fisheye Full"; + mTestNames[8] = "Fisheye Relaxed"; mTestSpinner.setAdapter(new ArrayAdapter( this, R.layout.spinner_layout, mTestNames)); } diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/fisheye.rsh b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/fisheye.rsh new file mode 100644 index 0000000000000..cdb2c734505d2 --- /dev/null +++ b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/fisheye.rsh @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +rs_allocation in_alloc; +rs_sampler sampler; + +static float2 center, dimensions; +static float2 scale; +static float alpha; +static float radius2; +static float factor; + +void init_filter(uint32_t dim_x, uint32_t dim_y, float focus_x, float focus_y, float k) { + center.x = focus_x; + center.y = focus_y; + dimensions.x = (float)dim_x; + dimensions.y = (float)dim_y; + + alpha = k * 2.0 + 0.75; + float bound2 = 0.25; + if (dim_x > dim_y) { + scale.x = 1.0; + scale.y = dimensions.y / dimensions.x; + bound2 *= (scale.y*scale.y + 1); + } else { + scale.x = dimensions.x / dimensions.y; + scale.y = 1.0; + } + const float bound = sqrt(bound2); + const float radius = 1.15 * bound; + radius2 = radius*radius; + const float max_radian = 0.5f * M_PI - atan(alpha / bound * sqrt(radius2 - bound2)); + factor = bound / max_radian; +} + +void root(uchar4 *out, uint32_t x, uint32_t y) { + // Convert x and y to floating point coordinates with center as origin + float2 coord; + coord.x = (float)x / dimensions.x; + coord.y = (float)y / dimensions.y; + coord -= center; + const float dist = length(scale * coord); + const float radian = M_PI_2 - atan((alpha * sqrt(radius2 - dist * dist)) / dist); + const float scalar = radian * factor / dist; + const float2 new_coord = coord * scalar + center; + const float4 fout = rsSample(in_alloc, sampler, new_coord); + *out = rsPackColorTo8888(fout); +} + diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/fisheye_full.rs b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/fisheye_full.rs new file mode 100644 index 0000000000000..20f27e25765aa --- /dev/null +++ b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/fisheye_full.rs @@ -0,0 +1,21 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma version(1) +#pragma rs java_package_name(com.android.rs.image) + +#include "fisheye.rsh" + diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/fisheye_relaxed.rs b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/fisheye_relaxed.rs new file mode 100644 index 0000000000000..dc3ffcb834192 --- /dev/null +++ b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/fisheye_relaxed.rs @@ -0,0 +1,22 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma version(1) +#pragma rs java_package_name(com.android.rs.image) +#pragma rs_fp_relaxed + +#include "fisheye.rsh" + From 9dda365d8dfb609aa77361ee290fc55663f0b285 Mon Sep 17 00:00:00 2001 From: Rajeev Sharma Date: Thu, 26 Jul 2012 20:35:41 -0700 Subject: [PATCH 08/61] Add missed line in fisheye.rsh Typo fix. Previously unnoticed as filter was only tested with default image. Change-Id: I482036cdf78ef660845eca82fb62cf697f5a8eff --- .../ImageProcessing/src/com/android/rs/image/fisheye.rsh | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/fisheye.rsh b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/fisheye.rsh index cdb2c734505d2..4dcfc1daaca01 100644 --- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/fisheye.rsh +++ b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/fisheye.rsh @@ -38,6 +38,7 @@ void init_filter(uint32_t dim_x, uint32_t dim_y, float focus_x, float focus_y, f } else { scale.x = dimensions.x / dimensions.y; scale.y = 1.0; + bound2 *= (scale.x*scale.x + 1); } const float bound = sqrt(bound2); const float radius = 1.15 * bound; From a2ed8f8050719f9536bd8fcbd1ed8ac827274c31 Mon Sep 17 00:00:00 2001 From: Rajeev Sharma Date: Thu, 26 Jul 2012 21:42:35 -0700 Subject: [PATCH 09/61] Add vignette filter to Image Processing test Add a vignette filter, mostly based on the GLSL version in android.filterpacks.imageproc.VignetteFilter but with more input options. Change-Id: I6f38a0ca09d35566104ec8e8523548399b8704a0 --- .../rs/image/ImageProcessingActivity.java | 10 +- .../src/com/android/rs/image/Vignette.java | 124 ++++++++++++++++++ .../src/com/android/rs/image/vignette.rsh | 62 +++++++++ .../src/com/android/rs/image/vignette_full.rs | 21 +++ .../com/android/rs/image/vignette_relaxed.rs | 22 ++++ 5 files changed, 238 insertions(+), 1 deletion(-) create mode 100644 tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Vignette.java create mode 100644 tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/vignette.rsh create mode 100644 tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/vignette_full.rs create mode 100644 tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/vignette_relaxed.rs diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/ImageProcessingActivity.java b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/ImageProcessingActivity.java index 7ad14c4f83861..9ed8fa93aebad 100644 --- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/ImageProcessingActivity.java +++ b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/ImageProcessingActivity.java @@ -149,6 +149,12 @@ public class ImageProcessingActivity extends Activity case 8: mTest = new Fisheye(true); break; + case 9: + mTest = new Vignette(false); + break; + case 10: + mTest = new Vignette(true); + break; } mTest.createBaseTest(this, mBitmapIn); @@ -161,7 +167,7 @@ public class ImageProcessingActivity extends Activity } void setupTests() { - mTestNames = new String[9]; + mTestNames = new String[11]; mTestNames[0] = "Levels Vec3 Relaxed"; mTestNames[1] = "Levels Vec4 Relaxed"; mTestNames[2] = "Levels Vec3 Full"; @@ -171,6 +177,8 @@ public class ImageProcessingActivity extends Activity mTestNames[6] = "Grain"; mTestNames[7] = "Fisheye Full"; mTestNames[8] = "Fisheye Relaxed"; + mTestNames[9] = "Vignette Full"; + mTestNames[10] = "Vignette Relaxed"; mTestSpinner.setAdapter(new ArrayAdapter( this, R.layout.spinner_layout, mTestNames)); } diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Vignette.java b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Vignette.java new file mode 100644 index 0000000000000..927d7d533c144 --- /dev/null +++ b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Vignette.java @@ -0,0 +1,124 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.rs.image; + +import android.renderscript.Allocation; +import android.renderscript.Element; +import android.renderscript.Sampler; +import android.renderscript.Type; +import android.widget.SeekBar; +import android.widget.TextView; + +public class Vignette extends TestBase { + private ScriptC_vignette_full mScript_full = null; + private ScriptC_vignette_relaxed mScript_relaxed = null; + private final boolean relaxed; + private float center_x = 0.5f; + private float center_y = 0.5f; + private float scale = 0.5f; + private float shade = 0.5f; + private float slope = 20.0f; + + public Vignette(boolean relaxed) { + this.relaxed = relaxed; + } + + public boolean onBar1Setup(SeekBar b, TextView t) { + t.setText("Scale"); + b.setMax(100); + b.setProgress(25); + return true; + } + public boolean onBar2Setup(SeekBar b, TextView t) { + t.setText("Shade"); + b.setMax(100); + b.setProgress(50); + return true; + } + public boolean onBar3Setup(SeekBar b, TextView t) { + t.setText("Slope"); + b.setMax(100); + b.setProgress(20); + return true; + } + public boolean onBar4Setup(SeekBar b, TextView t) { + t.setText("Shift center X"); + b.setMax(100); + b.setProgress(50); + return true; + } + public boolean onBar5Setup(SeekBar b, TextView t) { + t.setText("Shift center Y"); + b.setMax(100); + b.setProgress(50); + return true; + } + + public void onBar1Changed(int progress) { + scale = progress / 50.0f; + do_init(); + } + public void onBar2Changed(int progress) { + shade = progress / 100.0f; + do_init(); + } + public void onBar3Changed(int progress) { + slope = (float)progress; + do_init(); + } + public void onBar4Changed(int progress) { + center_x = progress / 100.0f; + do_init(); + } + public void onBar5Changed(int progress) { + center_y = progress / 100.0f; + do_init(); + } + + private void do_init() { + if (relaxed) + mScript_relaxed.invoke_init_vignette( + mInPixelsAllocation.getType().getX(), + mInPixelsAllocation.getType().getY(), center_x, center_y, + scale, shade, slope); + else + mScript_full.invoke_init_vignette( + mInPixelsAllocation.getType().getX(), + mInPixelsAllocation.getType().getY(), center_x, center_y, + scale, shade, slope); + } + + public void createTest(android.content.res.Resources res) { + if (relaxed) { + mScript_relaxed = new ScriptC_vignette_relaxed(mRS, res, + R.raw.vignette_relaxed); + } else { + mScript_full = new ScriptC_vignette_full(mRS, res, + R.raw.vignette_full); + } + do_init(); + } + + public void runTest() { + if (relaxed) + mScript_relaxed.forEach_root(mInPixelsAllocation, mOutPixelsAllocation); + else + mScript_full.forEach_root(mInPixelsAllocation, mOutPixelsAllocation); + } + +} + diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/vignette.rsh b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/vignette.rsh new file mode 100644 index 0000000000000..77ead9c915b14 --- /dev/null +++ b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/vignette.rsh @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static float2 scale; +static float2 center, dimensions; +static float range, inv_max_dist, shade, slope; + +void init_vignette(uint32_t dim_x, uint32_t dim_y, float center_x, float center_y, + float desired_scale, float desired_shade, float desired_slope) { + + center.x = center_x; + center.y = center_y; + dimensions.x = (float)dim_x; + dimensions.y = (float)dim_y; + + float max_dist = 0.5; + if (dim_x > dim_y) { + scale.x = 1.0; + scale.y = dimensions.y / dimensions.x; + max_dist *= sqrt(scale.y*scale.y + 1); + } else { + scale.x = dimensions.x / dimensions.y; + scale.y = 1.0; + max_dist *= sqrt(scale.x*scale.x + 1); + } + inv_max_dist = 1.0/max_dist; + // Range needs to be between 1.3 to 0.6. When scale is zero then range is + // 1.3 which means no vignette at all because the luminousity difference is + // less than 1/256. Expect input scale to be between 0.0 and 1.0. + range = 1.3 - 0.7*sqrt(desired_scale); + shade = desired_shade; + slope = desired_slope; +} + +void root(const uchar4 *in, uchar4 *out, uint32_t x, uint32_t y) { + // Convert x and y to floating point coordinates with center as origin + const float4 fin = rsUnpackColor8888(*in); + float2 coord; + coord.x = (float)x / dimensions.x; + coord.y = (float)y / dimensions.y; + coord -= center; + const float dist = length(scale * coord); + const float lumen = shade / (1.0 + exp((dist * inv_max_dist - range) * slope)) + (1.0 - shade); + float4 fout; + fout.rgb = fin.rgb * lumen; + fout.w = fin.w; + *out = rsPackColorTo8888(fout); +} + diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/vignette_full.rs b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/vignette_full.rs new file mode 100644 index 0000000000000..64942d94cb391 --- /dev/null +++ b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/vignette_full.rs @@ -0,0 +1,21 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma version(1) +#pragma rs java_package_name(com.android.rs.image) + +#include "vignette.rsh" + diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/vignette_relaxed.rs b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/vignette_relaxed.rs new file mode 100644 index 0000000000000..8e47ea96989e6 --- /dev/null +++ b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/vignette_relaxed.rs @@ -0,0 +1,22 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma version(1) +#pragma rs java_package_name(com.android.rs.image) +#pragma rs_fp_relaxed + +#include "vignette.rsh" + From 4f0659c0bb70421435604767356a52ad9b3a0f06 Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Fri, 27 Jul 2012 17:35:32 -0700 Subject: [PATCH 10/61] API to adjust network stats. Enables system apps to correctly account network usage performed on behalf of another application. Bug: 6695246 Change-Id: I39e243afd57936b6b30157a6ca511a17b6c55c39 --- .../android/net/INetworkStatsService.aidl | 3 ++ core/java/android/net/TrafficStats.java | 28 +++++++++++++++++++ .../server/net/NetworkStatsService.java | 8 ++++++ 3 files changed, 39 insertions(+) diff --git a/core/java/android/net/INetworkStatsService.aidl b/core/java/android/net/INetworkStatsService.aidl index b7b87318554cc..4d46334fb33ee 100644 --- a/core/java/android/net/INetworkStatsService.aidl +++ b/core/java/android/net/INetworkStatsService.aidl @@ -45,4 +45,7 @@ interface INetworkStatsService { /** Advise persistance threshold; may be overridden internally. */ void advisePersistThreshold(long thresholdBytes); + /** Adjust recorded network stats. */ + void adjustNetworkStats(int uid, int tag, long rxBytes, long rxPackets, long txBytes, long txPackets, long operationCount); + } diff --git a/core/java/android/net/TrafficStats.java b/core/java/android/net/TrafficStats.java index e437d2e3475b0..b66c2fe5cf8de 100644 --- a/core/java/android/net/TrafficStats.java +++ b/core/java/android/net/TrafficStats.java @@ -88,6 +88,13 @@ public class TrafficStats { */ public static final int TAG_SYSTEM_BACKUP = 0xFFFFFF03; + /** + * Default tag value for cloud messaging traffic. + * + * @hide + */ + public static final int TAG_SYSTEM_CLOUD_MESSAGING = 0xFFFFFF04; + private static INetworkStatsService sStatsService; private synchronized static INetworkStatsService getStatsService() { @@ -246,6 +253,27 @@ public class TrafficStats { } } + /** + * Adjust network statistics for the given UID and tag by the requested + * amount. This can be used to correctly account network usage performed on + * behalf of another application. Values can be negative. + *

    + * Requires that caller holds + * {@link android.Manifest.permission#MODIFY_NETWORK_ACCOUNTING} permission. + * + * @see #setThreadStatsUid(int) + * @hide + */ + public static void adjustNetworkStats(int uid, int tag, long rxBytes, long rxPackets, + long txBytes, long txPackets, long operationCount) { + try { + getStatsService().adjustNetworkStats( + uid, tag, rxBytes, rxPackets, txBytes, txPackets, operationCount); + } catch (RemoteException e) { + throw new RuntimeException(e); + } + } + /** {@hide} */ public static void closeQuietly(INetworkStatsSession session) { // TODO: move to NetworkStatsService once it exists diff --git a/services/java/com/android/server/net/NetworkStatsService.java b/services/java/com/android/server/net/NetworkStatsService.java index ba122ecdf2317..373576bd8ddd8 100644 --- a/services/java/com/android/server/net/NetworkStatsService.java +++ b/services/java/com/android/server/net/NetworkStatsService.java @@ -695,6 +695,14 @@ public class NetworkStatsService extends INetworkStatsService.Stub { mGlobalAlertBytes = mSettings.getGlobalAlertBytes(mPersistThreshold); } + @Override + public void adjustNetworkStats(int uid, int tag, long rxBytes, long rxPackets, long txBytes, + long txPackets, long operationCount) { + mContext.enforceCallingOrSelfPermission(MODIFY_NETWORK_ACCOUNTING, TAG); + + // TODO: store adjusted network stats in separate data structure + } + /** * Receiver that watches for {@link IConnectivityManager} to claim network * interfaces. Used to associate {@link TelephonyManager#getSubscriberId()} From 82b25f54ba92f805c079a23c6ff361605d97067e Mon Sep 17 00:00:00 2001 From: Adam Powell Date: Tue, 31 Jul 2012 11:27:19 -0700 Subject: [PATCH 11/61] Fix bug 6906134 Change-Id: I47dfa1e503e502fe348a350dad960fbb112435e7 --- .../view/menu/ActionMenuItemView.java | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/core/java/com/android/internal/view/menu/ActionMenuItemView.java b/core/java/com/android/internal/view/menu/ActionMenuItemView.java index 96d486bb7717f..563effe52a7c9 100644 --- a/core/java/com/android/internal/view/menu/ActionMenuItemView.java +++ b/core/java/com/android/internal/view/menu/ActionMenuItemView.java @@ -141,19 +141,21 @@ public class ActionMenuItemView extends TextView public void setIcon(Drawable icon) { mIcon = icon; - int width = icon.getIntrinsicWidth(); - int height = icon.getIntrinsicHeight(); - if (width > mMaxIconSize) { - final float scale = (float) mMaxIconSize / width; - width = mMaxIconSize; - height *= scale; + if (icon != null) { + int width = icon.getIntrinsicWidth(); + int height = icon.getIntrinsicHeight(); + if (width > mMaxIconSize) { + final float scale = (float) mMaxIconSize / width; + width = mMaxIconSize; + height *= scale; + } + if (height > mMaxIconSize) { + final float scale = (float) mMaxIconSize / height; + height = mMaxIconSize; + width *= scale; + } + icon.setBounds(0, 0, width, height); } - if (height > mMaxIconSize) { - final float scale = (float) mMaxIconSize / height; - height = mMaxIconSize; - width *= scale; - } - icon.setBounds(0, 0, width, height); setCompoundDrawables(icon, null, null, null); updateTextButtonVisibility(); From 4249e4cc658d412223fd3692f8119ecdb97c966e Mon Sep 17 00:00:00 2001 From: Chris Wren Date: Wed, 1 Aug 2012 17:03:07 -0400 Subject: [PATCH 12/61] Venetian blinds policy for one-finger notification expansion. Bug: 6538918 Change-Id: I8a6f860684b2477571f69eb4a79a5c106251b1a8 --- packages/SystemUI/res/values/dimens.xml | 2 +- .../com/android/systemui/ExpandHelper.java | 104 +++++------------- .../policy/NotificationRowLayout.java | 14 --- 3 files changed, 29 insertions(+), 91 deletions(-) diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml index eed8e77d499b2..6fc79c59bd5f6 100644 --- a/packages/SystemUI/res/values/dimens.xml +++ b/packages/SystemUI/res/values/dimens.xml @@ -152,5 +152,5 @@ 24dp - 96dp + 32dp diff --git a/packages/SystemUI/src/com/android/systemui/ExpandHelper.java b/packages/SystemUI/src/com/android/systemui/ExpandHelper.java index 10dcd9eb5c49d..6aa7dcded78b4 100644 --- a/packages/SystemUI/src/com/android/systemui/ExpandHelper.java +++ b/packages/SystemUI/src/com/android/systemui/ExpandHelper.java @@ -38,7 +38,6 @@ public class ExpandHelper implements Gefingerpoken, OnClickListener { public interface Callback { View getChildAtRawPosition(float x, float y); View getChildAtPosition(float x, float y); - View getPreviousChild(View currentChild); boolean canChildBeExpanded(View v); boolean setUserExpandedChild(View v, boolean userxpanded); } @@ -142,17 +141,6 @@ public class ExpandHelper implements Gefingerpoken, OnClickListener { } } - class PopState { - View mCurrView; - View mCurrViewTopGlow; - View mCurrViewBottomGlow; - float mOldHeight; - float mNaturalHeight; - float mInitialTouchY; - } - - private Stack popStack; - /** * Handle expansion gestures to expand and contract children of the callback. * @@ -168,7 +156,6 @@ public class ExpandHelper implements Gefingerpoken, OnClickListener { mLargeSize = large; mContext = context; mCallback = callback; - popStack = new Stack(); mScaler = new ViewScaler(); mGravity = Gravity.TOP; mScaleAnimation = ObjectAnimator.ofFloat(mScaler, "height", 0f); @@ -416,45 +403,40 @@ public class ExpandHelper implements Gefingerpoken, OnClickListener { switch (action) { case MotionEvent.ACTION_MOVE: { if (mPullingWithOneFinger) { - float target = ev.getY() - mInitialTouchY + mOldHeight; - float newHeight = clamp(target); - if (mHasPopped || target > mPopLimit) { + final float rawHeight = ev.getY() - mInitialTouchY + mOldHeight; + final float newHeight = clamp(rawHeight); + final boolean wasClosed = (mOldHeight == mSmallSize); + boolean isFinished = false; + if (rawHeight > mNaturalHeight) { + isFinished = true; + } + if (rawHeight < mSmallSize) { + isFinished = true; + } + + final float pull = Math.abs(ev.getY() - mInitialTouchY); + if (mHasPopped || pull > mPopLimit) { if (!mHasPopped) { vibrate(mPopDuration); mHasPopped = true; } + } + + if (mHasPopped) { mScaler.setHeight(newHeight); - // glow if overscale - if (target > mNaturalHeight) { - View previous = mCallback.getPreviousChild(mCurrView); - if (previous != null) { - setGlow(0f); - pushView(previous); - initScale(previous); - mInitialTouchY = ev.getY(); - target = mOldHeight; - newHeight = clamp(target); - mHasPopped = false; - } else { - setGlow(calculateGlow(target, newHeight)); - } - } else if (target < mSmallSize && !popStack.empty()) { - setGlow(0f); - initScale(popView()); - mInitialTouchY = ev.getY(); - setGlow(GLOW_BASE); - } else { - setGlow(calculateGlow(target, newHeight)); - } + setGlow(GLOW_BASE); } else { - if (target < mSmallSize && !popStack.empty()) { - setGlow(0f); - initScale(popView()); - mInitialTouchY = ev.getY(); - setGlow(GLOW_BASE); - } else { - setGlow(calculateGlow(4f * target, mSmallSize)); - } + setGlow(calculateGlow(4f * pull, 0f)); + } + + final int x = (int) ev.getX(); + final int y = (int) ev.getY(); + View underPointer = findView(x, y); + if (isFinished && underPointer != null && underPointer != mCurrView) { + setGlow(0f); + initScale(underPointer); + mInitialTouchY = ev.getY(); + mHasPopped = false; } return true; } @@ -516,9 +498,6 @@ public class ExpandHelper implements Gefingerpoken, OnClickListener { } private void clearView() { - while (!popStack.empty()) { - popStack.pop(); - } mCurrView = null; mCurrViewTopGlow = null; mCurrViewBottomGlow = null; @@ -539,33 +518,6 @@ public class ExpandHelper implements Gefingerpoken, OnClickListener { } } - private void pushView(View v) { - PopState state = new PopState(); - state.mCurrView = mCurrView; - state.mCurrViewTopGlow = mCurrViewTopGlow; - state.mCurrViewBottomGlow = mCurrViewBottomGlow; - state.mOldHeight = mOldHeight; - state.mNaturalHeight = mNaturalHeight; - state.mInitialTouchY = mInitialTouchY; - popStack.push(state); - } - - private View popView() { - if (popStack.empty()) { - return null; - } - - PopState state = popStack.pop(); - mCurrView = state.mCurrView; - mCurrViewTopGlow = state.mCurrViewTopGlow; - mCurrViewBottomGlow = state.mCurrViewBottomGlow; - mOldHeight = state.mOldHeight; - mNaturalHeight = state.mNaturalHeight; - mInitialTouchY = state.mInitialTouchY; - - return mCurrView; - } - @Override public void onClick(View v) { initScale(v); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NotificationRowLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NotificationRowLayout.java index a10b6c6e139fd..61e5ab63d6e80 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NotificationRowLayout.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NotificationRowLayout.java @@ -204,20 +204,6 @@ public class NotificationRowLayout return null; } - public View getPreviousChild(View currentChild) { - final int count = getChildCount(); - for (int childIdx = 0; childIdx < count; childIdx++) { - if (getChildAt(childIdx) == currentChild) { - if (childIdx == 0) { - return null; - } else { - return getChildAt(childIdx - 1); - } - } - } - return null; - } - public View getChildContentView(View v) { return v; } From 91b1b1c90b16091ded53e9ea843b0858e21602f1 Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Fri, 3 Aug 2012 14:04:30 -0700 Subject: [PATCH 13/61] Fix issue #6921726: Prime: Cannot make or receive phone calls... [NPE at android.graphics.drawable.Drawable.createFromResourceStream] Change-Id: I223428ffb39e883518aad817227f32851ea18aec --- graphics/java/android/graphics/drawable/Drawable.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/graphics/java/android/graphics/drawable/Drawable.java b/graphics/java/android/graphics/drawable/Drawable.java index 540acfa6a2e0b..4bc5a5a6a38cd 100644 --- a/graphics/java/android/graphics/drawable/Drawable.java +++ b/graphics/java/android/graphics/drawable/Drawable.java @@ -778,7 +778,8 @@ public abstract class Drawable { // to the compatibility density only to have them scaled back up when // drawn to the screen. if (opts == null) opts = new BitmapFactory.Options(); - opts.inScreenDensity = res.getDisplayMetrics().noncompatDensityDpi; + opts.inScreenDensity = res != null + ? res.getDisplayMetrics().noncompatDensityDpi : DisplayMetrics.DENSITY_DEVICE; Bitmap bm = BitmapFactory.decodeResourceStream(res, value, is, pad, opts); if (bm != null) { byte[] np = bm.getNinePatchChunk(); From 740087004d9f4089d273cc493f3687577619bb0b Mon Sep 17 00:00:00 2001 From: Daniel Sandler Date: Mon, 6 Aug 2012 14:31:13 -0400 Subject: [PATCH 14/61] Move lots of layout-port/ resources to layout/ . The framework is no longer letting us skate by without a default (unqualified) for of each resource; in particular, the land/port aspect of the configuration appears to be binding much later than it used to. Bug: 6937365 Change-Id: I6bf72c76e707548168fefa9466dc196ffde33ab3 --- .../status_bar_recent_item.xml | 4 +-- .../status_bar_recent_panel.xml | 0 .../status_bar_search_panel.xml | 0 packages/SystemUI/res/values-port/config.xml | 27 -------------- packages/SystemUI/res/values-port/dimens.xml | 35 ------------------- packages/SystemUI/res/values-port/strings.xml | 20 ----------- .../res/{values-port => values}/arrays.xml | 0 packages/SystemUI/res/values/config.xml | 4 +++ packages/SystemUI/res/values/dimens.xml | 14 ++++++++ 9 files changed, 20 insertions(+), 84 deletions(-) rename packages/SystemUI/res/{layout-port => layout}/status_bar_recent_item.xml (98%) rename packages/SystemUI/res/{layout-port => layout}/status_bar_recent_panel.xml (100%) rename packages/SystemUI/res/{layout-port => layout}/status_bar_search_panel.xml (100%) delete mode 100644 packages/SystemUI/res/values-port/config.xml delete mode 100644 packages/SystemUI/res/values-port/dimens.xml delete mode 100644 packages/SystemUI/res/values-port/strings.xml rename packages/SystemUI/res/{values-port => values}/arrays.xml (100%) diff --git a/packages/SystemUI/res/layout-port/status_bar_recent_item.xml b/packages/SystemUI/res/layout/status_bar_recent_item.xml similarity index 98% rename from packages/SystemUI/res/layout-port/status_bar_recent_item.xml rename to packages/SystemUI/res/layout/status_bar_recent_item.xml index ca72530956cb7..50643abf61b16 100644 --- a/packages/SystemUI/res/layout-port/status_bar_recent_item.xml +++ b/packages/SystemUI/res/layout/status_bar_recent_item.xml @@ -38,7 +38,7 @@ android:fadingEdgeLength="@dimen/status_bar_recents_text_fading_edge_length" android:scrollHorizontally="true" android:layout_alignParentLeft="true" - android:layout_alignTop="@id/app_icon" + android:layout_alignTop="@+id/app_icon" android:paddingTop="2dp" android:layout_marginLeft="@dimen/status_bar_recents_app_label_left_margin" android:singleLine="true" @@ -71,7 +71,7 @@ android:background="@drawable/recents_callout_line" /> - - - - - - - 90 - - diff --git a/packages/SystemUI/res/values-port/dimens.xml b/packages/SystemUI/res/values-port/dimens.xml deleted file mode 100644 index de7b836ce3f9e..0000000000000 --- a/packages/SystemUI/res/values-port/dimens.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - 20dp - - 8dp - - 88dip - - 0dip - - 100dip - - 0dip - - 0dp - 8dp - diff --git a/packages/SystemUI/res/values-port/strings.xml b/packages/SystemUI/res/values-port/strings.xml deleted file mode 100644 index 67364a4cc61d4..0000000000000 --- a/packages/SystemUI/res/values-port/strings.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - diff --git a/packages/SystemUI/res/values-port/arrays.xml b/packages/SystemUI/res/values/arrays.xml similarity index 100% rename from packages/SystemUI/res/values-port/arrays.xml rename to packages/SystemUI/res/values/arrays.xml diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml index 66add1aacb08e..1cd7904d0ffd7 100644 --- a/packages/SystemUI/res/values/config.xml +++ b/packages/SystemUI/res/values/config.xml @@ -68,5 +68,9 @@ 10 + + + 90 diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml index 6fc79c59bd5f6..8204e95ef87b8 100644 --- a/packages/SystemUI/res/values/dimens.xml +++ b/packages/SystemUI/res/values/dimens.xml @@ -39,6 +39,20 @@ 10dip 100dip + + 20dp + + 8dp + + 88dip + + 0dip + + 0dip + + 0dp + 8dp + -12dp From 527a761ed43bbf19750825da44f762511c782a73 Mon Sep 17 00:00:00 2001 From: Rich Cannings Date: Wed, 8 Aug 2012 12:46:06 -0700 Subject: [PATCH 15/61] Revert "Pass URLs to package verifiers" This reverts commit 24713907fe4632d263aea82f7a35c8fb08918a09 Change-Id: Ie04ba73475b813635c4a74915c45e83250801b6b --- api/current.txt | 2 +- cmds/pm/src/com/android/commands/pm/Pm.java | 20 ++--------- .../app/ApplicationPackageManager.java | 16 ++------- core/java/android/content/Intent.java | 16 ++++----- .../android/content/pm/IPackageManager.aidl | 9 ++--- .../android/content/pm/PackageManager.java | 34 +------------------ .../server/pm/PackageManagerService.java | 28 +++------------ .../android/test/mock/MockPackageManager.java | 12 +------ 8 files changed, 21 insertions(+), 116 deletions(-) diff --git a/api/current.txt b/api/current.txt index f594205716663..7dca1da06998b 100644 --- a/api/current.txt +++ b/api/current.txt @@ -5828,7 +5828,7 @@ package android.content { field public static final java.lang.String EXTRA_KEY_EVENT = "android.intent.extra.KEY_EVENT"; field public static final java.lang.String EXTRA_LOCAL_ONLY = "android.intent.extra.LOCAL_ONLY"; field public static final java.lang.String EXTRA_NOT_UNKNOWN_SOURCE = "android.intent.extra.NOT_UNKNOWN_SOURCE"; - field public static final java.lang.String EXTRA_ORIGINATING_URI = "android.intent.extra.ORIGINATING_URI"; + field public static final java.lang.String EXTRA_ORIGINATING_URL = "android.intent.extra.ORIGINATING_URL"; field public static final java.lang.String EXTRA_PHONE_NUMBER = "android.intent.extra.PHONE_NUMBER"; field public static final java.lang.String EXTRA_REFERRER = "android.intent.extra.REFERRER"; field public static final java.lang.String EXTRA_REMOTE_INTENT_TOKEN = "android.intent.extra.remote_intent_token"; diff --git a/cmds/pm/src/com/android/commands/pm/Pm.java b/cmds/pm/src/com/android/commands/pm/Pm.java index 4311c06b185f3..4cb52705d83f4 100644 --- a/cmds/pm/src/com/android/commands/pm/Pm.java +++ b/cmds/pm/src/com/android/commands/pm/Pm.java @@ -782,7 +782,6 @@ public final class Pm { String macAlgo = null; byte[] macKey = null; byte[] tag = null; - String referrer = null; while ((opt=nextOption()) != null) { if (opt.equals("-l")) { @@ -846,13 +845,6 @@ public final class Pm { showUsage(); return; } - } else if (opt.equals("--referrer")) { - referrer = nextOptionData(); - if (referrer == null) { - System.err.println("Error: must supply argument for --referrer"); - showUsage(); - return; - } } else { System.err.println("Error: Unknown option: " + opt); showUsage(); @@ -900,13 +892,6 @@ public final class Pm { final Uri apkURI; final Uri verificationURI; - final Uri referrerURI; - - if (referrer != null) { - referrerURI = Uri.parse(referrer); - } else { - referrerURI = null; - } // Populate apkURI, must be present final String apkFilePath = nextArg(); @@ -931,7 +916,7 @@ public final class Pm { PackageInstallObserver obs = new PackageInstallObserver(); try { mPm.installPackageWithVerification(apkURI, obs, installFlags, installerPackageName, - verificationURI, null, encryptionParams, apkURI, referrerURI); + verificationURI, null, encryptionParams); synchronized (obs) { while (!obs.finished) { @@ -1451,8 +1436,7 @@ public final class Pm { System.err.println(" pm list libraries"); System.err.println(" pm path PACKAGE"); System.err.println(" pm install [-l] [-r] [-t] [-i INSTALLER_PACKAGE_NAME] [-s] [-f]"); - System.err.println(" [--algo --key --iv ]"); - System.err.println(" [--referrer ] PATH"); + System.err.println(" [--algo --key --iv ] PATH"); System.err.println(" pm uninstall [-k] PACKAGE"); System.err.println(" pm clear PACKAGE"); System.err.println(" pm enable PACKAGE_OR_COMPONENT"); diff --git a/core/java/android/app/ApplicationPackageManager.java b/core/java/android/app/ApplicationPackageManager.java index 9aa250543e3cb..9a50a41b4f278 100644 --- a/core/java/android/app/ApplicationPackageManager.java +++ b/core/java/android/app/ApplicationPackageManager.java @@ -971,25 +971,13 @@ final class ApplicationPackageManager extends PackageManager { } } - @Override - public void installPackageWithOrigin(Uri packageURI, IPackageInstallObserver observer, - int flags, String installerPackageName, Uri originatingURI, Uri referrer) { - try { - mPM.installPackageWithOrigin(packageURI, observer, flags, null, originatingURI, - referrer); - } catch (RemoteException e) { - // Should never happen! - } - } - @Override public void installPackageWithVerification(Uri packageURI, IPackageInstallObserver observer, int flags, String installerPackageName, Uri verificationURI, - ManifestDigest manifestDigest, ContainerEncryptionParams encryptionParams, - Uri originatingURI, Uri referrer) { + ManifestDigest manifestDigest, ContainerEncryptionParams encryptionParams) { try { mPM.installPackageWithVerification(packageURI, observer, flags, installerPackageName, - verificationURI, manifestDigest, encryptionParams, originatingURI, referrer); + verificationURI, manifestDigest, encryptionParams); } catch (RemoteException e) { // Should never happen! } diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java index 6d2de8e39c123..d3251860dd1df 100644 --- a/core/java/android/content/Intent.java +++ b/core/java/android/content/Intent.java @@ -571,7 +571,7 @@ import java.util.Set; *

  • {@link #EXTRA_INITIAL_INTENTS} *
  • {@link #EXTRA_INTENT} *
  • {@link #EXTRA_KEY_EVENT} - *
  • {@link #EXTRA_ORIGINATING_URI} + *
  • {@link #EXTRA_ORIGINATING_URL} *
  • {@link #EXTRA_PHONE_NUMBER} *
  • {@link #EXTRA_REFERRER} *
  • {@link #EXTRA_REMOTE_INTENT_TOKEN} @@ -1288,17 +1288,17 @@ public class Intent implements Parcelable, Cloneable { = "android.intent.extra.NOT_UNKNOWN_SOURCE"; /** - * Used as a URI extra field with {@link #ACTION_INSTALL_PACKAGE} and - * {@link #ACTION_VIEW} to indicate the URI from which the local APK in the Intent + * Used as a string extra field with {@link #ACTION_INSTALL_PACKAGE} and + * {@link #ACTION_VIEW} to indicate the URL from which the local APK in the Intent * data field originated from. */ - public static final String EXTRA_ORIGINATING_URI - = "android.intent.extra.ORIGINATING_URI"; + public static final String EXTRA_ORIGINATING_URL + = "android.intent.extra.ORIGINATING_URL"; /** - * Used as a URI extra field with {@link #ACTION_INSTALL_PACKAGE} and - * {@link #ACTION_VIEW} to indicate the HTTP referrer URI associated with the Intent - * data field or {@link #EXTRA_ORIGINATING_URI}. + * Used as a string extra field with {@link #ACTION_INSTALL_PACKAGE} and + * {@link #ACTION_VIEW} to indicate the HTTP referrer associated with the Intent + * data field or {@link #EXTRA_ORIGINATING_URL}. */ public static final String EXTRA_REFERRER = "android.intent.extra.REFERRER"; diff --git a/core/java/android/content/pm/IPackageManager.aidl b/core/java/android/content/pm/IPackageManager.aidl index 1b28a33d5961d..0d87df5523478 100644 --- a/core/java/android/content/pm/IPackageManager.aidl +++ b/core/java/android/content/pm/IPackageManager.aidl @@ -352,7 +352,7 @@ interface IPackageManager { String nextPackageToClean(String lastPackage); void movePackage(String packageName, IPackageMoveObserver observer, int flags); - + boolean addPermissionAsync(in PermissionInfo info); boolean setInstallLocation(int loc); @@ -363,14 +363,9 @@ interface IPackageManager { void setUserName(int userId, String name); ParcelFileDescriptor setUserIcon(int userId); - void installPackageWithOrigin(in Uri packageURI, in IPackageInstallObserver observer, - int flags, in String installerPackageName, in Uri originatingURI, - in Uri referrer); - void installPackageWithVerification(in Uri packageURI, in IPackageInstallObserver observer, int flags, in String installerPackageName, in Uri verificationURI, - in ManifestDigest manifestDigest, in ContainerEncryptionParams encryptionParams, - in Uri originatingURI, in Uri referrer); + in ManifestDigest manifestDigest, in ContainerEncryptionParams encryptionParams); void verifyPendingInstall(int id, int verificationCode); diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java index f745c89d2ae53..cd7ef0e8160e5 100644 --- a/core/java/android/content/pm/PackageManager.java +++ b/core/java/android/content/pm/PackageManager.java @@ -2193,33 +2193,6 @@ public abstract class PackageManager { Uri packageURI, IPackageInstallObserver observer, int flags, String installerPackageName); - /** - * Similar to - * {@link #installPackage(Uri, IPackageInstallObserver, int, String)} but - * with references to the location of where the package originated from. - * - * @param packageURI The location of the package file to install. This can - * be a 'file:' or a 'content:' URI. - * @param observer An observer callback to get notified when the package - * installation is complete. - * {@link IPackageInstallObserver#packageInstalled(String, int)} - * will be called when that happens. observer may be null to - * indicate that no callback is desired. - * @param flags - possible values: {@link #INSTALL_FORWARD_LOCK}, - * {@link #INSTALL_REPLACE_EXISTING}, {@link #INSTALL_ALLOW_TEST} - * @param installerPackageName Optional package name of the application that - * is performing the installation. This identifies which market - * the package came from. - * @param originatingURI URI referencing where the package was downloaded - * from. May be {@code null}. - * @param referrer HTTP referrer URI associated with the originatingURI. - * May be {@code null}. - * @hide - */ - public abstract void installPackageWithOrigin( - Uri packageURI, IPackageInstallObserver observer, int flags, - String installerPackageName, Uri originatingURI, Uri referrer); - /** * Similar to * {@link #installPackage(Uri, IPackageInstallObserver, int, String)} but @@ -2246,17 +2219,12 @@ public abstract class PackageManager { * @param encryptionParams if the package to be installed is encrypted, * these parameters describing the encryption and authentication * used. May be {@code null}. - * @param originatingURI URI referencing where the package was downloaded - * from. May be {@code null}. - * @param referrer HTTP referrer URI associated with the originatingURI. - * May be {@code null}. * @hide */ public abstract void installPackageWithVerification(Uri packageURI, IPackageInstallObserver observer, int flags, String installerPackageName, Uri verificationURI, ManifestDigest manifestDigest, - ContainerEncryptionParams encryptionParams, Uri originatingURI, - Uri referrer); + ContainerEncryptionParams encryptionParams); /** * Allows a package listening to the diff --git a/services/java/com/android/server/pm/PackageManagerService.java b/services/java/com/android/server/pm/PackageManagerService.java index cbc3c516ab47a..180081b26ebb8 100644 --- a/services/java/com/android/server/pm/PackageManagerService.java +++ b/services/java/com/android/server/pm/PackageManagerService.java @@ -5335,21 +5335,13 @@ public class PackageManagerService extends IPackageManager.Stub { final Uri packageURI, final IPackageInstallObserver observer, final int flags, final String installerPackageName) { installPackageWithVerification(packageURI, observer, flags, installerPackageName, null, - null, null, null, null); - } - - public void installPackageWithOrigin( - Uri packageURI, IPackageInstallObserver observer, int flags, - String installerPackageName, Uri originatingURI, Uri referrer) { - installPackageWithVerification(packageURI, observer, flags, installerPackageName, null, - null, null, originatingURI, referrer); + null, null); } @Override public void installPackageWithVerification(Uri packageURI, IPackageInstallObserver observer, int flags, String installerPackageName, Uri verificationURI, - ManifestDigest manifestDigest, ContainerEncryptionParams encryptionParams, - Uri originatingURI, Uri referrer) { + ManifestDigest manifestDigest, ContainerEncryptionParams encryptionParams) { mContext.enforceCallingOrSelfPermission(android.Manifest.permission.INSTALL_PACKAGES, null); final int uid = Binder.getCallingUid(); @@ -5367,7 +5359,7 @@ public class PackageManagerService extends IPackageManager.Stub { final Message msg = mHandler.obtainMessage(INIT_COPY); msg.obj = new InstallParams(packageURI, observer, filteredFlags, installerPackageName, - verificationURI, manifestDigest, encryptionParams, originatingURI, referrer); + verificationURI, manifestDigest, encryptionParams); mHandler.sendMessage(msg); } @@ -5803,13 +5795,11 @@ public class PackageManagerService extends IPackageManager.Stub { private int mRet; private File mTempPackage; final ContainerEncryptionParams encryptionParams; - final Uri originatingURI; - final Uri referrer; InstallParams(Uri packageURI, IPackageInstallObserver observer, int flags, String installerPackageName, Uri verificationURI, ManifestDigest manifestDigest, - ContainerEncryptionParams encryptionParams, Uri originatingURI, Uri referrer) { + ContainerEncryptionParams encryptionParams) { this.mPackageURI = packageURI; this.flags = flags; this.observer = observer; @@ -5817,8 +5807,6 @@ public class PackageManagerService extends IPackageManager.Stub { this.verificationURI = verificationURI; this.manifestDigest = manifestDigest; this.encryptionParams = encryptionParams; - this.originatingURI = originatingURI; - this.referrer = referrer; } private int installLocationPolicy(PackageInfoLite pkgLite, int flags) { @@ -6014,14 +6002,6 @@ public class PackageManagerService extends IPackageManager.Stub { verificationURI); } - if (originatingURI != null) { - verification.putExtra(Intent.EXTRA_ORIGINATING_URI, originatingURI); - } - - if (referrer != null) { - verification.putExtra(Intent.EXTRA_REFERRER, referrer); - } - final PackageVerificationState verificationState = new PackageVerificationState( requiredUid, args); diff --git a/test-runner/src/android/test/mock/MockPackageManager.java b/test-runner/src/android/test/mock/MockPackageManager.java index b1224d34697a8..0399b3be232c4 100644 --- a/test-runner/src/android/test/mock/MockPackageManager.java +++ b/test-runner/src/android/test/mock/MockPackageManager.java @@ -563,17 +563,7 @@ public class MockPackageManager extends PackageManager { @Override public void installPackageWithVerification(Uri packageURI, IPackageInstallObserver observer, int flags, String installerPackageName, Uri verificationURI, - ManifestDigest manifestDigest, ContainerEncryptionParams encryptionParams, - Uri originatingURI, Uri referrer) { - throw new UnsupportedOperationException(); - } - - /** - * @hide - */ - @Override - public void installPackageWithOrigin(Uri packageURI, IPackageInstallObserver observer, - int flags, String installerPackageName, Uri originatingURI, Uri referrer) { + ManifestDigest manifestDigest, ContainerEncryptionParams encryptionParams) { throw new UnsupportedOperationException(); } From 401695f55a545b473a46bb797d2f4958b40871bc Mon Sep 17 00:00:00 2001 From: Romain Guy Date: Wed, 8 Aug 2012 14:53:48 -0700 Subject: [PATCH 16/61] It seems that apparently useless public APIs are actually useful Bug #6953651 Change-Id: Ic47ce504e63262711f5d3edc76f7d2b9c12471ad --- core/java/android/view/GLES20RenderLayer.java | 10 ++++-- .../java/android/view/GLES20TextureLayer.java | 5 +-- core/java/android/view/HardwareLayer.java | 7 +++-- core/java/android/view/ViewRootImpl.java | 5 +-- core/jni/android_view_GLES20Canvas.cpp | 12 +++++++ libs/hwui/OpenGLRenderer.h | 31 +++++++++---------- 6 files changed, 46 insertions(+), 24 deletions(-) diff --git a/core/java/android/view/GLES20RenderLayer.java b/core/java/android/view/GLES20RenderLayer.java index b5cfc11438140..a77425af13c19 100644 --- a/core/java/android/view/GLES20RenderLayer.java +++ b/core/java/android/view/GLES20RenderLayer.java @@ -82,11 +82,17 @@ class GLES20RenderLayer extends GLES20Layer { } @Override - void end() { + void end(Canvas currentCanvas) { + if (currentCanvas instanceof GLES20Canvas) { + ((GLES20Canvas) currentCanvas).resume(); + } } @Override - HardwareCanvas start() { + HardwareCanvas start(Canvas currentCanvas) { + if (currentCanvas instanceof GLES20Canvas) { + ((GLES20Canvas) currentCanvas).interrupt(); + } return getCanvas(); } diff --git a/core/java/android/view/GLES20TextureLayer.java b/core/java/android/view/GLES20TextureLayer.java index 6ad36ef538754..e198ef6646e7a 100644 --- a/core/java/android/view/GLES20TextureLayer.java +++ b/core/java/android/view/GLES20TextureLayer.java @@ -16,6 +16,7 @@ package android.view; +import android.graphics.Canvas; import android.graphics.Matrix; import android.graphics.Rect; import android.graphics.SurfaceTexture; @@ -56,12 +57,12 @@ class GLES20TextureLayer extends GLES20Layer { } @Override - HardwareCanvas start() { + HardwareCanvas start(Canvas currentCanvas) { return null; } @Override - void end() { + void end(Canvas currentCanvas) { } SurfaceTexture getSurfaceTexture() { diff --git a/core/java/android/view/HardwareLayer.java b/core/java/android/view/HardwareLayer.java index 8fdf104347b47..06c6e7ce77e88 100644 --- a/core/java/android/view/HardwareLayer.java +++ b/core/java/android/view/HardwareLayer.java @@ -17,6 +17,7 @@ package android.view; import android.graphics.Bitmap; +import android.graphics.Canvas; import android.graphics.Matrix; import android.graphics.Rect; @@ -143,13 +144,15 @@ abstract class HardwareLayer { /** * This must be invoked before drawing onto this layer. + * @param currentCanvas */ - abstract HardwareCanvas start(); + abstract HardwareCanvas start(Canvas currentCanvas); /** * This must be invoked after drawing onto this layer. + * @param currentCanvas */ - abstract void end(); + abstract void end(Canvas currentCanvas); /** * Copies this layer into the specified bitmap. diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index 3993432574787..afcbaaf241c50 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -1408,6 +1408,7 @@ public final class ViewRootImpl implements ViewParent, disposeResizeBuffer(); boolean completed = false; + HardwareCanvas hwRendererCanvas = mAttachInfo.mHardwareRenderer.getCanvas(); HardwareCanvas layerCanvas = null; try { if (mResizeBuffer == null) { @@ -1417,7 +1418,7 @@ public final class ViewRootImpl implements ViewParent, mResizeBuffer.getHeight() != mHeight) { mResizeBuffer.resize(mWidth, mHeight); } - layerCanvas = mResizeBuffer.start(); + layerCanvas = mResizeBuffer.start(hwRendererCanvas); layerCanvas.setViewport(mWidth, mHeight); layerCanvas.onPreDraw(null); final int restoreCount = layerCanvas.save(); @@ -1456,7 +1457,7 @@ public final class ViewRootImpl implements ViewParent, layerCanvas.onPostDraw(); } if (mResizeBuffer != null) { - mResizeBuffer.end(); + mResizeBuffer.end(hwRendererCanvas); if (!completed) { mResizeBuffer.destroy(); mResizeBuffer = null; diff --git a/core/jni/android_view_GLES20Canvas.cpp b/core/jni/android_view_GLES20Canvas.cpp index 2bff8a1dbfe3d..9fc73a4f15fa0 100644 --- a/core/jni/android_view_GLES20Canvas.cpp +++ b/core/jni/android_view_GLES20Canvas.cpp @@ -720,6 +720,16 @@ static void android_view_GLES20Canvas_outputDisplayList(JNIEnv* env, // Layers // ---------------------------------------------------------------------------- +static void android_view_GLES20Canvas_interrupt(JNIEnv* env, jobject clazz, + OpenGLRenderer* renderer) { + renderer->interrupt(); +} + +static void android_view_GLES20Canvas_resume(JNIEnv* env, jobject clazz, + OpenGLRenderer* renderer) { + renderer->resume(); +} + static OpenGLRenderer* android_view_GLES20Canvas_createLayerRenderer(JNIEnv* env, jobject clazz, Layer* layer) { if (layer) { @@ -962,6 +972,8 @@ static JNINativeMethod gMethods[] = { { "nResetDisplayListRenderer", "(I)V", (void*) android_view_GLES20Canvas_resetDisplayListRenderer }, { "nOutputDisplayList", "(II)V", (void*) android_view_GLES20Canvas_outputDisplayList }, + { "nInterrupt", "(I)V", (void*) android_view_GLES20Canvas_interrupt }, + { "nResume", "(I)V", (void*) android_view_GLES20Canvas_resume }, { "nCreateLayerRenderer", "(I)I", (void*) android_view_GLES20Canvas_createLayerRenderer }, { "nCreateLayer", "(IIZ[I)I", (void*) android_view_GLES20Canvas_createLayer }, diff --git a/libs/hwui/OpenGLRenderer.h b/libs/hwui/OpenGLRenderer.h index f4e6919c2bb86..d3b98a4e01c1a 100644 --- a/libs/hwui/OpenGLRenderer.h +++ b/libs/hwui/OpenGLRenderer.h @@ -112,6 +112,21 @@ public: */ virtual void finish(); + /** + * This method must be invoked before handing control over to a draw functor. + * See callDrawGLFunction() for instance. + * + * This command must not be recorded inside display lists. + */ + virtual void interrupt(); + + /** + * This method must be invoked after getting control back from a draw functor. + * + * This command must not be recorded inside display lists. + */ + virtual void resume(); + ANDROID_API status_t invokeFunctors(Rect& dirty); ANDROID_API void detachFunctor(Functor* functor); ANDROID_API void attachFunctor(Functor* functor); @@ -219,22 +234,6 @@ public: void endMark() const; protected: - - /** - * This method must be invoked before handing control over to a draw functor. - * See callDrawGLFunction() for instance. - * - * This command must not be recorded inside display lists. - */ - void interrupt(); - - /** - * This method must be invoked after getting control back from a draw functor. - * - * This command must not be recorded inside display lists. - */ - void resume(); - /** * Compose the layer defined in the current snapshot with the layer * defined by the previous snapshot. From 9450252e94549b36e33ba51e76e58102fc274cfe Mon Sep 17 00:00:00 2001 From: John Spurlock Date: Mon, 13 Aug 2012 16:45:12 -0400 Subject: [PATCH 17/61] Stop screensaver on incoming phone call. Use notification manager as an indicator of when to stop the screensaver due to immediately-needed user interaction. Any notification with a fullScreenIntent will now exit the screensaver. Bug: 6976796 Change-Id: Id91cd4c32f3fad018b56f4dfe24b37110bab32d8 --- .../server/NotificationManagerService.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/services/java/com/android/server/NotificationManagerService.java b/services/java/com/android/server/NotificationManagerService.java index 9ab1a9ddac738..798915b7286fd 100755 --- a/services/java/com/android/server/NotificationManagerService.java +++ b/services/java/com/android/server/NotificationManagerService.java @@ -51,6 +51,7 @@ import android.os.ServiceManager; import android.os.UserId; import android.os.Vibrator; import android.provider.Settings; +import android.service.dreams.IDreamManager; import android.telephony.TelephonyManager; import android.text.TextUtils; import android.util.AtomicFile; @@ -148,6 +149,8 @@ public class NotificationManagerService extends INotificationManager.Stub private AtomicFile mPolicyFile; private HashSet mBlockedPackages = new HashSet(); + private IDreamManager mSandman; + private static final int DB_VERSION = 1; private static final String TAG_BODY = "notification-policy"; @@ -634,6 +637,8 @@ public class NotificationManagerService extends INotificationManager.Stub void systemReady() { mAudioService = IAudioService.Stub.asInterface( ServiceManager.getService(Context.AUDIO_SERVICE)); + mSandman = IDreamManager.Stub.asInterface( + ServiceManager.getService("dreams")); // no beeping until we're basically done booting mSystemReady = true; @@ -972,6 +977,16 @@ public class NotificationManagerService extends INotificationManager.Stub | Notification.FLAG_NO_CLEAR; } + // Stop screensaver if the notification has a full-screen intent. + // (like an incoming phone call) + if (notification.fullScreenIntent != null && mSandman != null) { + try { + mSandman.awaken(); + } catch (RemoteException e) { + // noop + } + } + if (notification.icon != 0) { StatusBarNotification n = new StatusBarNotification(pkg, id, tag, r.uid, r.initialPid, score, notification); From 12d478e8ff7ce5bfca9c7c08e46e4c1d02644385 Mon Sep 17 00:00:00 2001 From: Chet Haase Date: Thu, 9 Aug 2012 13:39:02 -0700 Subject: [PATCH 18/61] Optimize interactions with glyph cache There are two fixes here: - precaching: instead of caching-then-drawing whenever there is a new glyph, we cache at DisplayList record time. Then when we finally draw that DisplayList, we just upload the affected texture(s) once, instead of once per change. This is a huge savings in upload time, especially when there are larger glyphs being used by the app. - packing: Previously, glyphs would line up horizontally on each cache line, leaving potentially tons of space vertically, especially when smaller glyphs got put into cache lines intended for large glyphs (which can happen when an app uses lots of unique glyphs, a common case with, for example, chinese/japanese/korean languages). The new approach packs glyphs vertically as well as horizontally to use the space more efficiently and provide space for more glyphs in these situations. Change-Id: I84338aa25db208c7bf13f3f92b4d05ed40c33527 --- libs/hwui/DisplayListRenderer.cpp | 14 +- libs/hwui/DisplayListRenderer.h | 6 +- libs/hwui/FontRenderer.cpp | 296 ++++++++++++++---- libs/hwui/FontRenderer.h | 80 ++++- tests/HwAccelerationTest/AndroidManifest.xml | 9 + .../android/test/hwui/GlyphCacheActivity.java | 75 +++++ 6 files changed, 403 insertions(+), 77 deletions(-) create mode 100644 tests/HwAccelerationTest/src/com/android/test/hwui/GlyphCacheActivity.java diff --git a/libs/hwui/DisplayListRenderer.cpp b/libs/hwui/DisplayListRenderer.cpp index 95fc2c5b797dd..2de70d462beaa 100644 --- a/libs/hwui/DisplayListRenderer.cpp +++ b/libs/hwui/DisplayListRenderer.cpp @@ -1699,7 +1699,9 @@ status_t DisplayListRenderer::drawTextOnPath(const char* text, int bytesCount, i addFloat(hOffset); addFloat(vOffset); paint->setAntiAlias(true); - addPaint(paint); + SkPaint* addedPaint = addPaint(paint); + FontRenderer& fontRenderer = mCaches.fontRenderer->getFontRenderer(addedPaint); + fontRenderer.precache(addedPaint, text, count); return DrawGlInfo::kStatusDone; } @@ -1711,7 +1713,9 @@ status_t DisplayListRenderer::drawPosText(const char* text, int bytesCount, int addInt(count); addFloats(positions, count * 2); paint->setAntiAlias(true); - addPaint(paint); + SkPaint* addedPaint = addPaint(paint); + FontRenderer& fontRenderer = mCaches.fontRenderer->getFontRenderer(addedPaint); + fontRenderer.precache(addedPaint, text, count); return DrawGlInfo::kStatusDone; } @@ -1742,7 +1746,11 @@ status_t DisplayListRenderer::drawText(const char* text, int bytesCount, int cou addFloat(x); addFloat(y); addFloats(positions, count * 2); - addPaint(paint); + SkPaint* addedPaint = addPaint(paint); + if (!reject) { + FontRenderer& fontRenderer = mCaches.fontRenderer->getFontRenderer(addedPaint); + fontRenderer.precache(addedPaint, text, count); + } addFloat(length); addSkip(location); return DrawGlInfo::kStatusDone; diff --git a/libs/hwui/DisplayListRenderer.h b/libs/hwui/DisplayListRenderer.h index 60a40c6b76be0..c8b3e479a0178 100644 --- a/libs/hwui/DisplayListRenderer.h +++ b/libs/hwui/DisplayListRenderer.h @@ -770,10 +770,10 @@ private: addInt((int) pathCopy); } - inline void addPaint(SkPaint* paint) { + inline SkPaint* addPaint(SkPaint* paint) { if (!paint) { addInt((int) NULL); - return; + return paint; } SkPaint* paintCopy = mPaintMap.valueFor(paint); @@ -785,6 +785,8 @@ private: } addInt((int) paintCopy); + + return paintCopy; } inline void addDisplayList(DisplayList* displayList) { diff --git a/libs/hwui/FontRenderer.cpp b/libs/hwui/FontRenderer.cpp index ccddd9155975e..a596fa9464675 100644 --- a/libs/hwui/FontRenderer.cpp +++ b/libs/hwui/FontRenderer.cpp @@ -37,10 +37,77 @@ namespace uirenderer { #define DEFAULT_TEXT_CACHE_WIDTH 1024 #define DEFAULT_TEXT_CACHE_HEIGHT 256 #define MAX_TEXT_CACHE_WIDTH 2048 -#define TEXTURE_BORDER_SIZE 1 +#define CACHE_BLOCK_ROUNDING_SIZE 4 #define AUTO_KERN(prev, next) (((next) - (prev) + 32) >> 6 << 16) +/////////////////////////////////////////////////////////////////////////////// +// CacheBlock +/////////////////////////////////////////////////////////////////////////////// + +/** + * Insert new block into existing linked list of blocks. Blocks are sorted in increasing-width + * order, except for the final block (the remainder space at the right, since we fill from the + * left). + */ +CacheBlock* CacheBlock::insertBlock(CacheBlock* head, CacheBlock *newBlock) { +#if DEBUG_FONT_RENDERER + ALOGD("insertBlock: this, x, y, w, h = %p, %d, %d, %d, %d", + newBlock, newBlock->mX, newBlock->mY, + newBlock->mWidth, newBlock->mHeight); +#endif + CacheBlock *currBlock = head; + CacheBlock *prevBlock = NULL; + while (currBlock && currBlock->mY != TEXTURE_BORDER_SIZE) { + if (newBlock->mWidth < currBlock->mWidth) { + newBlock->mNext = currBlock; + newBlock->mPrev = prevBlock; + currBlock->mPrev = newBlock; + if (prevBlock) { + prevBlock->mNext = newBlock; + return head; + } else { + return newBlock; + } + } + prevBlock = currBlock; + currBlock = currBlock->mNext; + } + // new block larger than all others - insert at end (but before the remainder space, if there) + newBlock->mNext = currBlock; + newBlock->mPrev = prevBlock; + if (currBlock) { + currBlock->mPrev = newBlock; + } + if (prevBlock) { + prevBlock->mNext = newBlock; + return head; + } else { + return newBlock; + } +} + +CacheBlock* CacheBlock::removeBlock(CacheBlock* head, CacheBlock *blockToRemove) { +#if DEBUG_FONT_RENDERER + ALOGD("removeBlock: this, x, y, w, h = %p, %d, %d, %d, %d", + blockToRemove, blockToRemove->mX, blockToRemove->mY, + blockToRemove->mWidth, blockToRemove->mHeight); +#endif + CacheBlock* newHead = head; + CacheBlock* nextBlock = blockToRemove->mNext; + CacheBlock* prevBlock = blockToRemove->mPrev; + if (prevBlock) { + prevBlock->mNext = nextBlock; + } else { + newHead = nextBlock; + } + if (nextBlock) { + nextBlock->mPrev = prevBlock; + } + delete blockToRemove; + return newHead; +} + /////////////////////////////////////////////////////////////////////////////// // CacheTextureLine /////////////////////////////////////////////////////////////////////////////// @@ -50,14 +117,73 @@ bool CacheTextureLine::fitBitmap(const SkGlyph& glyph, uint32_t *retOriginX, uin return false; } - if (mCurrentCol + glyph.fWidth + TEXTURE_BORDER_SIZE * 2 < mMaxWidth) { - *retOriginX = mCurrentCol + TEXTURE_BORDER_SIZE; - *retOriginY = mCurrentRow + TEXTURE_BORDER_SIZE; - mCurrentCol += glyph.fWidth + TEXTURE_BORDER_SIZE * 2; - mDirty = true; - return true; + uint16_t glyphW = glyph.fWidth + TEXTURE_BORDER_SIZE; + uint16_t glyphH = glyph.fHeight + TEXTURE_BORDER_SIZE; + // roundedUpW equals glyphW to the next multiple of CACHE_BLOCK_ROUNDING_SIZE. + // This columns for glyphs that are close but not necessarily exactly the same size. It trades + // off the loss of a few pixels for some glyphs against the ability to store more glyphs + // of varying sizes in one block. + uint16_t roundedUpW = + (glyphW + CACHE_BLOCK_ROUNDING_SIZE - 1) & -CACHE_BLOCK_ROUNDING_SIZE; + CacheBlock *cacheBlock = mCacheBlocks; + while (cacheBlock) { + // Store glyph in this block iff: it fits the block's remaining space and: + // it's the remainder space (mY == 0) or there's only enough height for this one glyph + // or it's within ROUNDING_SIZE of the block width + if (roundedUpW <= cacheBlock->mWidth && glyphH <= cacheBlock->mHeight && + (cacheBlock->mY == TEXTURE_BORDER_SIZE || + (cacheBlock->mWidth - roundedUpW < CACHE_BLOCK_ROUNDING_SIZE))) { + if (cacheBlock->mHeight - glyphH < glyphH) { + // Only enough space for this glyph - don't bother rounding up the width + roundedUpW = glyphW; + } + *retOriginX = cacheBlock->mX; + *retOriginY = mCurrentRow + cacheBlock->mY; + // If this is the remainder space, create a new cache block for this column. Otherwise, + // adjust the info about this column. + if (cacheBlock->mY == TEXTURE_BORDER_SIZE) { + uint16_t oldX = cacheBlock->mX; + // Adjust remainder space dimensions + cacheBlock->mWidth -= roundedUpW; + cacheBlock->mX += roundedUpW; + if (mMaxHeight - glyphH >= glyphH) { + // There's enough height left over to create a new CacheBlock + CacheBlock *newBlock = new CacheBlock(oldX, glyphH, roundedUpW, + mMaxHeight - glyphH); +#if DEBUG_FONT_RENDERER + ALOGD("fitBitmap: Created new block: this, x, y, w, h = %p, %d, %d, %d, %d", + newBlock, newBlock->mX, newBlock->mY, + newBlock->mWidth, newBlock->mHeight); +#endif + mCacheBlocks = CacheBlock::insertBlock(mCacheBlocks, newBlock); + } + } else { + // Insert into current column and adjust column dimensions + cacheBlock->mY += glyphH; + cacheBlock->mHeight -= glyphH; +#if DEBUG_FONT_RENDERER + ALOGD("fitBitmap: Added to existing block: this, x, y, w, h = %p, %d, %d, %d, %d", + cacheBlock, cacheBlock->mX, cacheBlock->mY, + cacheBlock->mWidth, cacheBlock->mHeight); +#endif + } + if (cacheBlock->mHeight < fmin(glyphH, glyphW)) { + // If remaining space in this block is too small to be useful, remove it + mCacheBlocks = CacheBlock::removeBlock(mCacheBlocks, cacheBlock); + } + mDirty = true; +#if DEBUG_FONT_RENDERER + ALOGD("fitBitmap: current block list:"); + mCacheBlocks->output(); +#endif + ++mNumGlyphs; + return true; + } + cacheBlock = cacheBlock->mNext; } - +#if DEBUG_FONT_RENDERER + ALOGD("fitBitmap: returning false for glyph of size %d, %d", glyphW, glyphH); +#endif return false; } @@ -297,6 +423,27 @@ void Font::measure(SkPaint* paint, const char* text, uint32_t start, uint32_t le render(paint, text, start, len, numGlyphs, 0, 0, MEASURE, NULL, 0, 0, bounds, positions); } +void Font::precache(SkPaint* paint, const char* text, int numGlyphs) { + + if (numGlyphs == 0 || text == NULL) { + return; + } + int glyphsCount = 0; + + while (glyphsCount < numGlyphs) { + glyph_t glyph = GET_GLYPH(text); + + // Reached the end of the string + if (IS_END_OF_STRING(glyph)) { + break; + } + + CachedGlyphInfo* cachedGlyph = getCachedGlyph(paint, glyph); + + glyphsCount++; + } +} + void Font::render(SkPaint* paint, const char* text, uint32_t start, uint32_t len, int numGlyphs, int x, int y, RenderMode mode, uint8_t *bitmap, uint32_t bitmapW, uint32_t bitmapH, Rect* bounds, const float* positions) { @@ -545,9 +692,33 @@ void FontRenderer::flushAllAndInvalidate() { mActiveFonts[i]->invalidateTextureCache(); } + uint16_t totalGlyphs = 0; for (uint32_t i = 0; i < mCacheLines.size(); i++) { - mCacheLines[i]->mCurrentCol = 0; + totalGlyphs += mCacheLines[i]->mNumGlyphs; + mCacheLines[i]->init(); } + +#if DEBUG_FONT_RENDERER + ALOGD("FontRenderer: flushAllAndInvalidatel"); + // Erase caches, just as a debugging facility + if (mCacheTextureSmall && mCacheTextureSmall->mTexture) { + memset(mCacheTextureSmall->mTexture, 0, + mCacheTextureSmall->mWidth * mCacheTextureSmall->mHeight); + } + if (mCacheTexture128 && mCacheTexture128->mTexture) { + memset(mCacheTexture128->mTexture, 0, + mCacheTexture128->mWidth * mCacheTexture128->mHeight); + } + if (mCacheTexture256 && mCacheTexture256->mTexture) { + memset(mCacheTexture256->mTexture, 0, + mCacheTexture256->mWidth * mCacheTexture256->mHeight); + } + if (mCacheTexture512 && mCacheTexture512->mTexture) { + memset(mCacheTexture512->mTexture, 0, + mCacheTexture512->mWidth * mCacheTexture512->mHeight); + } + ALOGD("Flushing caches: glyphs cached = %d", totalGlyphs); +#endif } void FontRenderer::deallocateTextureMemory(CacheTexture *cacheTexture) { @@ -573,7 +744,16 @@ void FontRenderer::flushLargeCaches() { cacheLine->mCacheTexture == mCacheTexture256 || cacheLine->mCacheTexture == mCacheTexture512) && cacheLine->mCacheTexture->mTexture != NULL) { - cacheLine->mCurrentCol = 0; +#if DEBUG_FONT_RENDERER + if (cacheLine->mCacheTexture == mCacheTexture128) { + ALOGD("flushing cacheTexture128"); + } else if (cacheLine->mCacheTexture == mCacheTexture256) { + ALOGD("flushing cacheTexture256"); + } else { + ALOGD("flushing cacheTexture512"); + } +#endif + cacheLine->init(); for (uint32_t i = 0; i < mActiveFonts.size(); i++) { mActiveFonts[i]->invalidateTextureCache(cacheLine); } @@ -614,9 +794,12 @@ void FontRenderer::cacheBitmap(const SkGlyph& glyph, CachedGlyphInfo* cachedGlyp uint32_t* retOriginX, uint32_t* retOriginY) { cachedGlyph->mIsValid = false; // If the glyph is too tall, don't cache it - if (glyph.fHeight + TEXTURE_BORDER_SIZE * 2 > mCacheLines[mCacheLines.size() - 1]->mMaxHeight) { - ALOGE("Font size to large to fit in cache. width, height = %i, %i", - (int) glyph.fWidth, (int) glyph.fHeight); + if (mCacheLines.size() == 0 || + glyph.fHeight + TEXTURE_BORDER_SIZE * 2 > mCacheLines[mCacheLines.size() - 1]->mMaxHeight) { + if (mCacheLines.size() != 0) { + ALOGE("Font size too large to fit in cache. width, height = %i, %i", + (int) glyph.fWidth, (int) glyph.fHeight); + } return; } @@ -747,26 +930,26 @@ void FontRenderer::initTextTexture() { mUploadTexture = false; // Split up our default cache texture into lines of certain widths int nextLine = 0; - mCacheLines.push(new CacheTextureLine(mSmallCacheWidth, 18, nextLine, 0, mCacheTextureSmall)); + mCacheLines.push(new CacheTextureLine(mSmallCacheWidth, 18, nextLine, mCacheTextureSmall)); nextLine += mCacheLines.top()->mMaxHeight; - mCacheLines.push(new CacheTextureLine(mSmallCacheWidth, 26, nextLine, 0, mCacheTextureSmall)); + mCacheLines.push(new CacheTextureLine(mSmallCacheWidth, 26, nextLine, mCacheTextureSmall)); nextLine += mCacheLines.top()->mMaxHeight; - mCacheLines.push(new CacheTextureLine(mSmallCacheWidth, 26, nextLine, 0, mCacheTextureSmall)); + mCacheLines.push(new CacheTextureLine(mSmallCacheWidth, 26, nextLine, mCacheTextureSmall)); nextLine += mCacheLines.top()->mMaxHeight; - mCacheLines.push(new CacheTextureLine(mSmallCacheWidth, 34, nextLine, 0, mCacheTextureSmall)); + mCacheLines.push(new CacheTextureLine(mSmallCacheWidth, 34, nextLine, mCacheTextureSmall)); nextLine += mCacheLines.top()->mMaxHeight; - mCacheLines.push(new CacheTextureLine(mSmallCacheWidth, 34, nextLine, 0, mCacheTextureSmall)); + mCacheLines.push(new CacheTextureLine(mSmallCacheWidth, 34, nextLine, mCacheTextureSmall)); nextLine += mCacheLines.top()->mMaxHeight; - mCacheLines.push(new CacheTextureLine(mSmallCacheWidth, 42, nextLine, 0, mCacheTextureSmall)); + mCacheLines.push(new CacheTextureLine(mSmallCacheWidth, 42, nextLine, mCacheTextureSmall)); nextLine += mCacheLines.top()->mMaxHeight; mCacheLines.push(new CacheTextureLine(mSmallCacheWidth, mSmallCacheHeight - nextLine, - nextLine, 0, mCacheTextureSmall)); + nextLine, mCacheTextureSmall)); // The first cache is split into 2 lines of height 128, the rest have just one cache line. - mCacheLines.push(new CacheTextureLine(maxWidth, 128, 0, 0, mCacheTexture128)); - mCacheLines.push(new CacheTextureLine(maxWidth, 128, 128, 0, mCacheTexture128)); - mCacheLines.push(new CacheTextureLine(maxWidth, 256, 0, 0, mCacheTexture256)); - mCacheLines.push(new CacheTextureLine(maxWidth, 512, 0, 0, mCacheTexture512)); + mCacheLines.push(new CacheTextureLine(maxWidth, 128, 0, mCacheTexture128)); + mCacheLines.push(new CacheTextureLine(maxWidth, 128, 128, mCacheTexture128)); + mCacheLines.push(new CacheTextureLine(maxWidth, 256, 0, mCacheTexture256)); + mCacheLines.push(new CacheTextureLine(maxWidth, 512, 0, mCacheTexture512)); } // Avoid having to reallocate memory and render quad by quad @@ -837,6 +1020,10 @@ void FontRenderer::checkTextureUpdate() { glBindTexture(GL_TEXTURE_2D, cacheTexture->mTextureId); lastTextureId = cacheTexture->mTextureId; } +#if DEBUG_FONT_RENDERER + ALOGD("glTextSubimage for cacheLine %d: xOff, yOff, width height = %d, %d, %d, %d", i, + xOffset, yOffset, width, height); +#endif glTexSubImage2D(GL_TEXTURE_2D, 0, xOffset, yOffset, width, height, GL_ALPHA, GL_UNSIGNED_BYTE, textureData); @@ -960,43 +1147,7 @@ void FontRenderer::appendRotatedMeshQuad(float x1, float y1, float u1, float v1, } } -uint32_t FontRenderer::getRemainingCacheCapacity() { - uint32_t remainingCapacity = 0; - float totalPixels = 0; - - //avoid divide by zero if the size is 0 - if (mCacheLines.size() == 0) { - return 0; - } - for(uint32_t i = 0; i < mCacheLines.size(); i ++) { - remainingCapacity += (mCacheLines[i]->mMaxWidth - mCacheLines[i]->mCurrentCol); - totalPixels += mCacheLines[i]->mMaxWidth; - } - remainingCapacity = (remainingCapacity * 100) / totalPixels; - return remainingCapacity; -} - -void FontRenderer::precacheLatin(SkPaint* paint) { - // Remaining capacity is measured in % - uint32_t remainingCapacity = getRemainingCacheCapacity(); - uint32_t precacheIndex = 0; - - // We store a string with letters in a rough frequency of occurrence - String16 l("eisarntolcdugpmhbyfvkwzxjq EISARNTOLCDUGPMHBYFVKWZXJQ,.?!()-+@;:'0123456789"); - - size_t size = l.size(); - uint16_t latin[size]; - paint->utfToGlyphs(l.string(), SkPaint::kUTF16_TextEncoding, size * sizeof(char16_t), latin); - - while (remainingCapacity > 25 && precacheIndex < size) { - mCurrentFont->getCachedGlyph(paint, TO_GLYPH(latin[precacheIndex])); - remainingCapacity = getRemainingCacheCapacity(); - precacheIndex++; - } -} - void FontRenderer::setFont(SkPaint* paint, uint32_t fontId, float fontSize) { - uint32_t currentNumFonts = mActiveFonts.size(); int flags = 0; if (paint->isFakeBoldText()) { flags |= Font::kFakeBold; @@ -1012,12 +1163,6 @@ void FontRenderer::setFont(SkPaint* paint, uint32_t fontId, float fontSize) { mCurrentFont = Font::create(this, fontId, fontSize, flags, italicStyle, scaleX, style, strokeWidth); - const float maxPrecacheFontSize = 40.0f; - bool isNewFont = currentNumFonts != mActiveFonts.size(); - - if (isNewFont && fontSize <= maxPrecacheFontSize) { - precacheLatin(paint); - } } FontRenderer::DropShadow FontRenderer::renderDropShadow(SkPaint* paint, const char *text, @@ -1084,6 +1229,25 @@ void FontRenderer::finishRender() { } } +void FontRenderer::precache(SkPaint* paint, const char* text, int numGlyphs) { + int flags = 0; + if (paint->isFakeBoldText()) { + flags |= Font::kFakeBold; + } + const float skewX = paint->getTextSkewX(); + uint32_t italicStyle = *(uint32_t*) &skewX; + const float scaleXFloat = paint->getTextScaleX(); + uint32_t scaleX = *(uint32_t*) &scaleXFloat; + SkPaint::Style style = paint->getStyle(); + const float strokeWidthFloat = paint->getStrokeWidth(); + uint32_t strokeWidth = *(uint32_t*) &strokeWidthFloat; + float fontSize = paint->getTextSize(); + Font* font = Font::create(this, SkTypeface::UniqueID(paint->getTypeface()), + fontSize, flags, italicStyle, scaleX, style, strokeWidth); + + font->precache(paint, text, numGlyphs); +} + bool FontRenderer::renderText(SkPaint* paint, const Rect* clip, const char *text, uint32_t startIndex, uint32_t len, int numGlyphs, int x, int y, Rect* bounds) { if (!mCurrentFont) { diff --git a/libs/hwui/FontRenderer.h b/libs/hwui/FontRenderer.h index 9ed69325c9141..8b1d10c842e92 100644 --- a/libs/hwui/FontRenderer.h +++ b/libs/hwui/FontRenderer.h @@ -53,6 +53,8 @@ namespace uirenderer { #define IS_END_OF_STRING(glyph) glyph < 0 #endif +#define TEXTURE_BORDER_SIZE 1 + /////////////////////////////////////////////////////////////////////////////// // Declarations /////////////////////////////////////////////////////////////////////////////// @@ -80,16 +82,79 @@ public: bool mLinearFiltering; }; +/** + * CacheBlock is a noce in a linked list of current free space areas in a CacheTextureLine. + * Using CacheBlocks enables us to pack the cache line from top to bottom as well as left to right. + * When we add a glyph to the cache, we see if it fits within one of the existing columns that + * have already been started (this is the case if the glyph fits vertically as well as + * horizontally, and if its width is sufficiently close to the column width to avoid + * sub-optimal packing of small glyphs into wide columns). If there is no column in which the + * glyph fits, we check the final node, which is the remaining space in the cache line, creating + * a new column as appropriate. + * + * As columns fill up, we remove their CacheBlock from the list to avoid having to check + * small blocks in the future. + */ +struct CacheBlock { + uint16_t mX; + uint16_t mY; + uint16_t mWidth; + uint16_t mHeight; + CacheBlock* mNext; + CacheBlock* mPrev; + + CacheBlock(uint16_t x, uint16_t y, uint16_t width, uint16_t height, bool empty = false): + mX(x), mY(y), mWidth(width), mHeight(height), mNext(NULL), mPrev(NULL) + { + } + + static CacheBlock* insertBlock(CacheBlock* head, CacheBlock *newBlock); + + static CacheBlock* removeBlock(CacheBlock* head, CacheBlock *blockToRemove); + + void output() { + CacheBlock *currBlock = this; + while (currBlock) { + ALOGD("Block: this, x, y, w, h = %p, %d, %d, %d, %d", + currBlock, currBlock->mX, currBlock->mY, currBlock->mWidth, currBlock->mHeight); + currBlock = currBlock->mNext; + } + } +}; + class CacheTextureLine { public: CacheTextureLine(uint16_t maxWidth, uint16_t maxHeight, uint32_t currentRow, - uint32_t currentCol, CacheTexture* cacheTexture): + CacheTexture* cacheTexture): mMaxHeight(maxHeight), mMaxWidth(maxWidth), mCurrentRow(currentRow), - mCurrentCol(currentCol), mDirty(false), + mNumGlyphs(0), mCacheTexture(cacheTexture) { + mCacheBlocks = new CacheBlock(TEXTURE_BORDER_SIZE, TEXTURE_BORDER_SIZE, + maxWidth - TEXTURE_BORDER_SIZE, maxHeight - TEXTURE_BORDER_SIZE, true); + } + + ~CacheTextureLine() { + reset(); + } + + void reset() { + // Delete existing cache blocks + while (mCacheBlocks != NULL) { + CacheBlock* tmpBlock = mCacheBlocks; + mCacheBlocks = mCacheBlocks->mNext; + delete tmpBlock; + } + mNumGlyphs = 0; + } + + void init() { + // reset, then create a new remainder space to start again + reset(); + mCacheBlocks = new CacheBlock(TEXTURE_BORDER_SIZE, TEXTURE_BORDER_SIZE, + mMaxWidth - TEXTURE_BORDER_SIZE, mMaxHeight - TEXTURE_BORDER_SIZE, true); } bool fitBitmap(const SkGlyph& glyph, uint32_t *retOriginX, uint32_t *retOriginY); @@ -97,9 +162,10 @@ public: uint16_t mMaxHeight; uint16_t mMaxWidth; uint32_t mCurrentRow; - uint32_t mCurrentCol; bool mDirty; + uint16_t mNumGlyphs; CacheTexture* mCacheTexture; + CacheBlock* mCacheBlocks; }; struct CachedGlyphInfo { @@ -179,6 +245,8 @@ protected: MEASURE, }; + void precache(SkPaint* paint, const char* text, int numGlyphs); + void render(SkPaint* paint, const char *text, uint32_t start, uint32_t len, int numGlyphs, int x, int y, RenderMode mode, uint8_t *bitmap, uint32_t bitmapW, uint32_t bitmapH, Rect *bounds, const float* positions); @@ -244,6 +312,9 @@ public: } void setFont(SkPaint* paint, uint32_t fontId, float fontSize); + + void precache(SkPaint* paint, const char* text, int numGlyphs); + // bounds is an out parameter bool renderText(SkPaint* paint, const Rect* clip, const char *text, uint32_t startIndex, uint32_t len, int numGlyphs, int x, int y, Rect* bounds); @@ -327,8 +398,6 @@ protected: void initRender(const Rect* clip, Rect* bounds); void finishRender(); - void precacheLatin(SkPaint* paint); - void issueDrawCommand(); void appendMeshQuadNoClip(float x1, float y1, float u1, float v1, float x2, float y2, float u2, float v2, @@ -347,7 +416,6 @@ protected: uint32_t mSmallCacheHeight; Vector mCacheLines; - uint32_t getRemainingCacheCapacity(); Font* mCurrentFont; Vector mActiveFonts; diff --git a/tests/HwAccelerationTest/AndroidManifest.xml b/tests/HwAccelerationTest/AndroidManifest.xml index 185703309b2e6..c783ad62db8a5 100644 --- a/tests/HwAccelerationTest/AndroidManifest.xml +++ b/tests/HwAccelerationTest/AndroidManifest.xml @@ -176,6 +176,15 @@ + + + + + + + diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/GlyphCacheActivity.java b/tests/HwAccelerationTest/src/com/android/test/hwui/GlyphCacheActivity.java new file mode 100644 index 0000000000000..e89b2948062bb --- /dev/null +++ b/tests/HwAccelerationTest/src/com/android/test/hwui/GlyphCacheActivity.java @@ -0,0 +1,75 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.test.hwui; + + +import android.app.Activity; +import android.os.Bundle; +import android.view.ViewGroup; +import android.widget.LinearLayout; +import android.widget.ScrollView; +import android.widget.TextView; + +import static android.widget.LinearLayout.LayoutParams; + +public class GlyphCacheActivity extends Activity { + + private static final String mCharacterSet = "abcdefghijklmnopqrstuvwxyz" + + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "0123456789" + "~!@#$%^&*()_+-={}[]:\";'<>?,./"; + private int mTotalChars = 0; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + ScrollView scrollView = new ScrollView(this); + scrollView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, + ViewGroup.LayoutParams.MATCH_PARENT)); + LinearLayout layout = new LinearLayout(this); + layout.setOrientation(LinearLayout.VERTICAL); + layout.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, + ViewGroup.LayoutParams.WRAP_CONTENT)); + scrollView.addView(layout); + + while (mTotalChars < 10000) { + layout.addView(createTextView()); + } + setContentView(scrollView); + } + + private TextView createTextView() { + TextView textview = new TextView(this); + textview.setTextSize(6 + (int) (Math.random() * 5) * 10); + textview.setTextColor(0xff << 24 | (int) (Math.random() * 255) << 16 | + (int) (Math.random() * 255) << 8 | (int) (Math.random() * 255) << 16); + textview.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, + ViewGroup.LayoutParams.WRAP_CONTENT)); + int numChars = 5 + (int) (Math.random() * 10); + mTotalChars += numChars; + textview.setText(createString(numChars)); + + return textview; + } + + private String createString(int length) { + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < length; i++) { + sb.append(mCharacterSet.charAt((int)(Math.random() * mCharacterSet.length()))); + } + return sb.toString(); + } +} From a22374f024574c95efe1c9cd50e2a70c37ff286c Mon Sep 17 00:00:00 2001 From: Iliyan Malchev Date: Tue, 14 Aug 2012 11:11:49 -0700 Subject: [PATCH 19/61] Revert "Add timestamp in scan results" Temporarily reverting this until all devices switch to using wpa_supplicant_8. This reverts commit b31f78f93768fef269617ec788a5c6655a375f80. Change-Id: I33fcb8415288d95289dcd46fa71e950e0f2b87ec Signed-off-by: Iliyan Malchev --- api/current.txt | 1 - wifi/java/android/net/wifi/ScanResult.java | 30 +-- wifi/java/android/net/wifi/WifiNative.java | 16 +- .../android/net/wifi/WifiStateMachine.java | 196 ++++++++++-------- 4 files changed, 114 insertions(+), 129 deletions(-) diff --git a/api/current.txt b/api/current.txt index 2c69beed6266c..0e177a4b99d2a 100644 --- a/api/current.txt +++ b/api/current.txt @@ -13210,7 +13210,6 @@ package android.net.wifi { field public java.lang.String capabilities; field public int frequency; field public int level; - field public long timestamp; } public final class SupplicantState extends java.lang.Enum implements android.os.Parcelable { diff --git a/wifi/java/android/net/wifi/ScanResult.java b/wifi/java/android/net/wifi/ScanResult.java index 3e207569556af..32261de7c6ab8 100644 --- a/wifi/java/android/net/wifi/ScanResult.java +++ b/wifi/java/android/net/wifi/ScanResult.java @@ -46,12 +46,6 @@ public class ScanResult implements Parcelable { */ public int frequency; - /** - * Time Synchronization Function (tsf) timestamp in microseconds when - * this result was last seen. - */ - public long timestamp; - /** * We'd like to obtain the following attributes, * but they are not reported via the socket @@ -59,25 +53,13 @@ public class ScanResult implements Parcelable { * internally by wpa_supplicant. * {@hide} */ - public ScanResult(String SSID, String BSSID, String caps, int level, int frequency, long tsf) { + public ScanResult(String SSID, String BSSID, String caps, int level, int frequency) { this.SSID = SSID; this.BSSID = BSSID; this.capabilities = caps; this.level = level; this.frequency = frequency; - this.timestamp = tsf; - } - - /** copy constructor {@hide} */ - public ScanResult(ScanResult source) { - if (source != null) { - SSID = source.SSID; - BSSID = source.BSSID; - capabilities = source.capabilities; - level = source.level; - frequency = source.frequency; - timestamp = source.timestamp; - } + //networkConfig = null; } @Override @@ -94,9 +76,7 @@ public class ScanResult implements Parcelable { append(", level: "). append(level). append(", frequency: "). - append(frequency). - append(", timestamp: "). - append(timestamp); + append(frequency); return sb.toString(); } @@ -113,7 +93,6 @@ public class ScanResult implements Parcelable { dest.writeString(capabilities); dest.writeInt(level); dest.writeInt(frequency); - dest.writeLong(timestamp); } /** Implement the Parcelable interface {@hide} */ @@ -125,8 +104,7 @@ public class ScanResult implements Parcelable { in.readString(), in.readString(), in.readInt(), - in.readInt(), - in.readLong() + in.readInt() ); } diff --git a/wifi/java/android/net/wifi/WifiNative.java b/wifi/java/android/net/wifi/WifiNative.java index 1b7e3782374e5..84c565b0a4ef0 100644 --- a/wifi/java/android/net/wifi/WifiNative.java +++ b/wifi/java/android/net/wifi/WifiNative.java @@ -197,22 +197,8 @@ public class WifiNative { return null; } - /** - * Format of results: - * ================= - * bssid=68:7f:74:d7:1b:6e - * freq=2412 - * level=-43 - * tsf=1344621975160944 - * age=2623 - * flags=[WPA2-PSK-CCMP][WPS][ESS] - * ssid=zubyb - * - * RANGE=ALL gets all scan results - * MASK= see wpa_supplicant/src/common/wpa_ctrl.h for details - */ public String scanResults() { - return doStringCommand("BSS RANGE=ALL MASK=0x1986"); + return doStringCommand("SCAN_RESULTS"); } public boolean startDriver() { diff --git a/wifi/java/android/net/wifi/WifiStateMachine.java b/wifi/java/android/net/wifi/WifiStateMachine.java index bdb02c524d207..28c1c5c344d6b 100644 --- a/wifi/java/android/net/wifi/WifiStateMachine.java +++ b/wifi/java/android/net/wifi/WifiStateMachine.java @@ -891,13 +891,7 @@ public class WifiStateMachine extends StateMachine { * TODO: doc */ public List syncGetScanResultsList() { - synchronized (mScanResultCache) { - List scanList = new ArrayList(); - for(ScanResult result: mScanResults) { - scanList.add(new ScanResult(result)); - } - return scanList; - } + return mScanResults; } /** @@ -1363,103 +1357,131 @@ public class WifiStateMachine extends StateMachine { mContext.sendStickyBroadcast(intent); } - private static final String BSSID_STR = "bssid="; - private static final String FREQ_STR = "freq="; - private static final String LEVEL_STR = "level="; - private static final String TSF_STR = "tsf="; - private static final String FLAGS_STR = "flags="; - private static final String SSID_STR = "ssid="; - private static final String DELIMITER_STR = "===="; /** - * Format: - * bssid=68:7f:76:d7:1a:6e - * freq=2412 - * level=-44 - * tsf=1344626243700342 - * flags=[WPA2-PSK-CCMP][WPS][ESS] - * ssid=zfdy - * ==== - * bssid=68:5f:74:d7:1a:6f - * freq=5180 - * level=-73 - * tsf=1344626243700373 - * flags=[WPA2-PSK-CCMP][WPS][ESS] - * ssid=zuby - * ==== + * Parse the scan result line passed to us by wpa_supplicant (helper). + * @param line the line to parse + * @return the {@link ScanResult} object */ - private void setScanResults(String scanResults) { - String bssid = ""; - int level = 0; - int freq = 0; - long tsf = 0; - String flags = ""; - String ssid = ""; - - if (scanResults == null) { - return; - } - - synchronized(mScanResultCache) { - mScanResults = new ArrayList(); - String[] lines = scanResults.split("\n"); - - for (String line : lines) { - if (line.startsWith(BSSID_STR)) { - bssid = line.substring(BSSID_STR.length()); - } else if (line.startsWith(FREQ_STR)) { + private ScanResult parseScanResult(String line) { + ScanResult scanResult = null; + if (line != null) { + /* + * Cache implementation (LinkedHashMap) is not synchronized, thus, + * must synchronized here! + */ + synchronized (mScanResultCache) { + String[] result = scanResultPattern.split(line); + if (3 <= result.length && result.length <= 5) { + String bssid = result[0]; + // bssid | frequency | level | flags | ssid + int frequency; + int level; try { - freq = Integer.parseInt(line.substring(FREQ_STR.length())); - } catch (NumberFormatException e) { - freq = 0; - } - } else if (line.startsWith(LEVEL_STR)) { - try { - level = Integer.parseInt(line.substring(LEVEL_STR.length())); + frequency = Integer.parseInt(result[1]); + level = Integer.parseInt(result[2]); /* some implementations avoid negative values by adding 256 * so we need to adjust for that here. */ if (level > 0) level -= 256; - } catch(NumberFormatException e) { + } catch (NumberFormatException e) { + frequency = 0; level = 0; } - } else if (line.startsWith(TSF_STR)) { - try { - tsf = Long.parseLong(line.substring(TSF_STR.length())); - } catch (NumberFormatException e) { - tsf = 0; - } - } else if (line.startsWith(FLAGS_STR)) { - flags = line.substring(FLAGS_STR.length()); - } else if (line.startsWith(SSID_STR)) { - ssid = line.substring(SSID_STR.length()); - if (ssid == null) ssid = ""; - } else if (line.startsWith(DELIMITER_STR)) { - if (bssid != null) { - String key = bssid + ssid; - ScanResult scanResult = mScanResultCache.get(key); - if (scanResult != null) { - scanResult.level = level; - scanResult.SSID = ssid; - scanResult.capabilities = flags; - scanResult.frequency = freq; - scanResult.timestamp = tsf; + + /* + * The formatting of the results returned by + * wpa_supplicant is intended to make the fields + * line up nicely when printed, + * not to make them easy to parse. So we have to + * apply some heuristics to figure out which field + * is the SSID and which field is the flags. + */ + String ssid; + String flags; + if (result.length == 4) { + if (result[3].charAt(0) == '[') { + flags = result[3]; + ssid = ""; } else { + flags = ""; + ssid = result[3]; + } + } else if (result.length == 5) { + flags = result[3]; + ssid = result[4]; + } else { + // Here, we must have 3 fields: no flags and ssid + // set + flags = ""; + ssid = ""; + } + + // bssid + ssid is the hash key + String key = bssid + ssid; + scanResult = mScanResultCache.get(key); + if (scanResult != null) { + scanResult.level = level; + scanResult.SSID = ssid; + scanResult.capabilities = flags; + scanResult.frequency = frequency; + } else { + // Do not add scan results that have no SSID set + if (0 < ssid.trim().length()) { scanResult = new ScanResult( - ssid, bssid, flags, level, freq, tsf); + ssid, bssid, flags, level, frequency); mScanResultCache.put(key, scanResult); } - mScanResults.add(scanResult); } - bssid = null; - level = 0; - freq = 0; - tsf = 0; - flags = ""; - ssid = ""; + } else { + loge("Misformatted scan result text with " + + result.length + " fields: " + line); } } } + + return scanResult; + } + + /** + * scanResults input format + * 00:bb:cc:dd:cc:ee 2427 166 [WPA-EAP-TKIP][WPA2-EAP-CCMP] Net1 + * 00:bb:cc:dd:cc:ff 2412 165 [WPA-EAP-TKIP][WPA2-EAP-CCMP] Net2 + */ + private void setScanResults(String scanResults) { + if (scanResults == null) { + return; + } + + List scanList = new ArrayList(); + + int lineCount = 0; + + int scanResultsLen = scanResults.length(); + // Parse the result string, keeping in mind that the last line does + // not end with a newline. + for (int lineBeg = 0, lineEnd = 0; lineEnd <= scanResultsLen; ++lineEnd) { + if (lineEnd == scanResultsLen || scanResults.charAt(lineEnd) == '\n') { + ++lineCount; + + if (lineCount == 1) { + lineBeg = lineEnd + 1; + continue; + } + if (lineEnd > lineBeg) { + String line = scanResults.substring(lineBeg, lineEnd); + ScanResult scanResult = parseScanResult(line); + if (scanResult != null) { + scanList.add(scanResult); + } else { + //TODO: hidden network handling + } + } + lineBeg = lineEnd + 1; + } + } + + mScanResults = scanList; } /* @@ -2805,7 +2827,7 @@ public class WifiStateMachine extends StateMachine { if (DBG) log(getName() + "\n"); mIsRunning = false; updateBatteryWorkSource(null); - mScanResults = new ArrayList(); + mScanResults = null; if (mP2pSupported) mWifiP2pChannel.sendMessage(WifiStateMachine.CMD_DISABLE_P2P); mContext.unregisterReceiver(mScreenReceiver); From df6fd1e5f840fe694e4c9c91f0842c1b3611e4bf Mon Sep 17 00:00:00 2001 From: Chet Haase Date: Wed, 15 Aug 2012 13:15:16 -0700 Subject: [PATCH 20/61] Glyph cache optimization Precaching at startup was not working. One-liner fix to init the caches so that precaching would kick in earlier, saving time at startup by avoiding the multiple-upload issue of caching at render time. Issue #6893691 long app launch time on manta for some apps comparing to nakasi/stingray Change-Id: Ie5c7f0536ec8ea371c7892e5e09c1db14795531c --- libs/hwui/FontRenderer.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/libs/hwui/FontRenderer.cpp b/libs/hwui/FontRenderer.cpp index a596fa9464675..b352ffc538ae5 100644 --- a/libs/hwui/FontRenderer.cpp +++ b/libs/hwui/FontRenderer.cpp @@ -699,7 +699,6 @@ void FontRenderer::flushAllAndInvalidate() { } #if DEBUG_FONT_RENDERER - ALOGD("FontRenderer: flushAllAndInvalidatel"); // Erase caches, just as a debugging facility if (mCacheTextureSmall && mCacheTextureSmall->mTexture) { memset(mCacheTextureSmall->mTexture, 0, @@ -792,14 +791,12 @@ void FontRenderer::allocateTextureMemory(CacheTexture* cacheTexture) { void FontRenderer::cacheBitmap(const SkGlyph& glyph, CachedGlyphInfo* cachedGlyph, uint32_t* retOriginX, uint32_t* retOriginY) { + checkInit(); cachedGlyph->mIsValid = false; // If the glyph is too tall, don't cache it - if (mCacheLines.size() == 0 || - glyph.fHeight + TEXTURE_BORDER_SIZE * 2 > mCacheLines[mCacheLines.size() - 1]->mMaxHeight) { - if (mCacheLines.size() != 0) { - ALOGE("Font size too large to fit in cache. width, height = %i, %i", - (int) glyph.fWidth, (int) glyph.fHeight); - } + if (glyph.fHeight + TEXTURE_BORDER_SIZE * 2 > mCacheLines[mCacheLines.size() - 1]->mMaxHeight) { + ALOGE("Font size too large to fit in cache. width, height = %i, %i", + (int) glyph.fWidth, (int) glyph.fHeight); return; } From dacce4ca5426e2bd8ead51682eaa77dc23aa5b2c Mon Sep 17 00:00:00 2001 From: Daniel Sandler Date: Thu, 16 Aug 2012 11:37:41 -0400 Subject: [PATCH 21/61] Fix status bar disabling. Bug: 6998403 Change-Id: I8a47e694f2f3914ef5cf0d180b0309783148c627 --- .../src/com/android/systemui/statusbar/phone/PanelBar.java | 7 +++++++ .../android/systemui/statusbar/phone/PhoneStatusBar.java | 4 ---- .../systemui/statusbar/phone/PhoneStatusBarView.java | 6 ++++++ 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java index 78ec4b6373fff..427cd8c9c969b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java @@ -69,8 +69,15 @@ public class PanelBar extends FrameLayout { return mPanels.get((int)(N * x / getMeasuredWidth())); } + public boolean isEnabled() { + return true; + } + @Override public boolean onTouchEvent(MotionEvent event) { + // Allow subclasses to implement enable/disable semantics + if (!isEnabled()) return false; + // figure out which panel needs to be talked to here if (event.getAction() == MotionEvent.ACTION_DOWN) { mTouchingPanel = selectPanelForTouchX(event.getX()); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java index 4ce4e293790ef..8884179a9a6fd 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -1309,10 +1309,6 @@ public class PhoneStatusBar extends BaseStatusBar { mGestureRec.add(event); - if ((mDisabled & StatusBarManager.DISABLE_EXPAND) != 0) { - return false; - } - return false; } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java index 924e45d6d66db..a42e455c2bfc5 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java @@ -17,6 +17,7 @@ package com.android.systemui.statusbar.phone; import android.app.ActivityManager; +import android.app.StatusBarManager; import android.content.Context; import android.content.res.Configuration; import android.content.res.Resources; @@ -69,6 +70,11 @@ public class PhoneStatusBarView extends PanelBar { } } + @Override + public boolean isEnabled() { + return ((mBar.mDisabled & StatusBarManager.DISABLE_EXPAND) == 0); + } + @Override public boolean onRequestSendAccessibilityEvent(View child, AccessibilityEvent event) { if (super.onRequestSendAccessibilityEvent(child, event)) { From 94c194a7631de38927347a429508b673b1b5e5f1 Mon Sep 17 00:00:00 2001 From: Daniel Sandler Date: Thu, 16 Aug 2012 13:52:06 -0400 Subject: [PATCH 22/61] Turn off an assert. Change-Id: Ifad4bd65ddcedc6e2dd018695fd37ddbf9163e80 --- .../src/com/android/systemui/statusbar/GestureRecorder.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/GestureRecorder.java b/packages/SystemUI/src/com/android/systemui/statusbar/GestureRecorder.java index 81a16ae42e4a7..0f894a154f391 100755 --- a/packages/SystemUI/src/com/android/systemui/statusbar/GestureRecorder.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/GestureRecorder.java @@ -101,8 +101,7 @@ public class GestureRecorder { mDownTime = ev.getDownTime(); } else { if (mDownTime != ev.getDownTime()) { - // TODO: remove - throw new RuntimeException("Assertion failure in GestureRecorder: event downTime (" + Slog.w(TAG, "Assertion failure in GestureRecorder: event downTime (" +ev.getDownTime()+") does not match gesture downTime ("+mDownTime+")"); } } From 5844f3b9fdb1f9e8e18128033676e1f1560b8061 Mon Sep 17 00:00:00 2001 From: Daniel Sandler Date: Thu, 16 Aug 2012 13:50:40 -0400 Subject: [PATCH 23/61] Fix crash in SystemUI. It looks like we were end()ing the main timing animation in the middle of the animation (and too many times, at that). Bug: 6992223 Change-Id: I6a4b7d692171baa73f6211c7843e164b05383a30 --- .../com/android/systemui/statusbar/phone/PanelView.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java index d0fba4256ba76..336eee4a9cf5b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java @@ -59,6 +59,11 @@ public class PanelView extends FrameLayout { } }; + private final Runnable mStopAnimator = new Runnable() { public void run() { + if (mTimeAnimator.isStarted()) { + mTimeAnimator.end(); } + }}; + private float mVel, mAccel; private int mFullHeight = 0; private String mViewName; @@ -117,7 +122,7 @@ public class PanelView extends FrameLayout { if (mVel == 0 || (closing && mExpandedHeight == 0) || (!closing && mExpandedHeight == getFullHeight())) { - mTimeAnimator.end(); + post(mStopAnimator); } } } @@ -277,7 +282,7 @@ public class PanelView extends FrameLayout { public void setExpandedHeight(float height) { - mTimeAnimator.end(); + post(mStopAnimator); setExpandedHeightInternal(height); } From ab94faf3d7d9a02bd808a5ef0c73e54b4d52ace6 Mon Sep 17 00:00:00 2001 From: Daniel Sandler Date: Thu, 16 Aug 2012 14:10:53 -0400 Subject: [PATCH 24/61] Allow the panels to be temporarily dragged past their contents. Once the user lets go, restore the "correct" height of the panel. Bug: 6999596 Change-Id: I2db393873cee876cf17fea25c9d25fe5e3a78424 --- .../res/layout/status_bar_expanded.xml | 4 +- .../systemui/statusbar/phone/PanelBar.java | 4 +- .../systemui/statusbar/phone/PanelView.java | 54 +++++++++++++------ .../statusbar/phone/PhoneStatusBar.java | 2 +- .../statusbar/phone/PhoneStatusBarView.java | 2 +- .../policy/NotificationRowLayout.java | 1 + 6 files changed, 46 insertions(+), 21 deletions(-) diff --git a/packages/SystemUI/res/layout/status_bar_expanded.xml b/packages/SystemUI/res/layout/status_bar_expanded.xml index 828dba46b5a38..cb32d63a4a13d 100644 --- a/packages/SystemUI/res/layout/status_bar_expanded.xml +++ b/packages/SystemUI/res/layout/status_bar_expanded.xml @@ -23,10 +23,11 @@ xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui" android:id="@+id/notification_panel" android:layout_width="0dp" - android:layout_height="0dp" + android:layout_height="wrap_content" android:background="@drawable/notification_panel_bg" android:paddingTop="@dimen/notification_panel_padding_top" android:layout_marginLeft="@dimen/notification_panel_margin_left" + android:animateLayoutChanges="true" > getFullHeight(); + mClosing = (mExpandedHeight > 0 && mVel < 0) || mRubberbanding; } else if (dtms > 0) { final float dt = dtms * 0.001f; // ms -> s LOG("tick: v=%.2fpx/s dt=%.4fs", mVel, dt); LOG("tick: before: h=%d", (int) mExpandedHeight); final float fh = getFullHeight(); - final boolean closing = mExpandedHeight > 0 && mVel < 0; boolean braking = false; if (BRAKES) { - if (closing) { + if (mClosing) { braking = mExpandedHeight <= mCollapseBrakingDistancePx; mAccel = braking ? 10*mCollapseAccelPx : -mCollapseAccelPx; } else { @@ -92,36 +99,40 @@ public class PanelView extends FrameLayout { mAccel = braking ? 10*-mExpandAccelPx : mExpandAccelPx; } } else { - mAccel = closing ? -mCollapseAccelPx : mExpandAccelPx; + mAccel = mClosing ? -mCollapseAccelPx : mExpandAccelPx; } mVel += mAccel * dt; if (braking) { - if (closing && mVel > -mBrakingSpeedPx) { + if (mClosing && mVel > -mBrakingSpeedPx) { mVel = -mBrakingSpeedPx; - } else if (!closing && mVel < mBrakingSpeedPx) { + } else if (!mClosing && mVel < mBrakingSpeedPx) { mVel = mBrakingSpeedPx; } } else { - if (closing && mVel > -mFlingCollapseMinVelocityPx) { + if (mClosing && mVel > -mFlingCollapseMinVelocityPx) { mVel = -mFlingCollapseMinVelocityPx; - } else if (!closing && mVel > mFlingGestureMaxOutputVelocityPx) { + } else if (!mClosing && mVel > mFlingGestureMaxOutputVelocityPx) { mVel = mFlingGestureMaxOutputVelocityPx; } } float h = mExpandedHeight + mVel * dt; + + if (mRubberbanding && h < fh) { + h = fh; + } - LOG("tick: new h=%d closing=%s", (int) h, closing?"true":"false"); + LOG("tick: new h=%d closing=%s", (int) h, mClosing?"true":"false"); setExpandedHeightInternal(h); mBar.panelExpansionChanged(PanelView.this, mExpandedFraction); if (mVel == 0 - || (closing && mExpandedHeight == 0) - || (!closing && mExpandedHeight == getFullHeight())) { + || (mClosing && mExpandedHeight == 0) + || ((mRubberbanding || !mClosing) && mExpandedHeight == fh)) { post(mStopAnimator); } } @@ -183,6 +194,7 @@ public class PanelView extends FrameLayout { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: + mTracking = true; mVelocityTracker = VelocityTracker.obtain(); trackMovement(event); mBar.onTrackingStarted(PanelView.this); @@ -190,7 +202,7 @@ public class PanelView extends FrameLayout { break; case MotionEvent.ACTION_MOVE: - PanelView.this.setExpandedHeight(rawY - mAbsPos[1] - mTouchOffset); + PanelView.this.setExpandedHeightInternal(rawY - mAbsPos[1] - mTouchOffset); mBar.panelExpansionChanged(PanelView.this, mExpandedFraction); @@ -199,6 +211,7 @@ public class PanelView extends FrameLayout { case MotionEvent.ACTION_UP: case MotionEvent.ACTION_CANCEL: + mTracking = false; mBar.onTrackingStopped(PanelView.this); trackMovement(event); mVelocityTracker.computeCurrentVelocity(1000); @@ -275,6 +288,10 @@ public class PanelView extends FrameLayout { LOG("onMeasure(%d, %d) -> (%d, %d)", widthMeasureSpec, heightMeasureSpec, getMeasuredWidth(), getMeasuredHeight()); mFullHeight = getMeasuredHeight(); + // if one of our children is getting smaller, we should track that + if (!mTracking && !mRubberbanding && !mTimeAnimator.isStarted() && mExpandedHeight > 0 && mExpandedHeight != mFullHeight) { + mExpandedHeight = mFullHeight; + } heightMeasureSpec = MeasureSpec.makeMeasureSpec( (int) mExpandedHeight, MeasureSpec.AT_MOST); // MeasureSpec.getMode(heightMeasureSpec)); setMeasuredDimension(widthMeasureSpec, heightMeasureSpec); @@ -286,17 +303,22 @@ public class PanelView extends FrameLayout { setExpandedHeightInternal(height); } + @Override + protected void onLayout (boolean changed, int left, int top, int right, int bottom) { + LOG("onLayout: changed=%s, bottom=%d eh=%d fh=%d", changed?"T":"f", bottom, (int)mExpandedHeight, (int)mFullHeight); + super.onLayout(changed, left, top, right, bottom); + } + public void setExpandedHeightInternal(float h) { float fh = getFullHeight(); if (fh == 0) { // Hmm, full height hasn't been computed yet } - LOG("setExpansion: height=%.1f fh=%.1f", h, fh); + LOG("setExpansion: height=%.1f fh=%.1f tracking=%s rubber=%s", h, fh, mTracking?"T":"f", mRubberbanding?"T":"f"); if (h < 0) h = 0; - else if (h > fh) h = fh; - + if (!(STRETCH_PAST_CONTENTS && (mTracking || mRubberbanding)) && h > fh) h = fh; mExpandedHeight = h; requestLayout(); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java index 8884179a9a6fd..8ecfe386750f0 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -109,7 +109,7 @@ public class PhoneStatusBar extends BaseStatusBar { public static final String ACTION_STATUSBAR_START = "com.android.internal.policy.statusbar.START"; - private static final boolean SHOW_CARRIER_LABEL = true; + private static final boolean SHOW_CARRIER_LABEL = false; // XXX: doesn't work with rubberband panels right now private static final int MSG_OPEN_NOTIFICATION_PANEL = 1000; private static final int MSG_CLOSE_NOTIFICATION_PANEL = 1001; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java index a42e455c2bfc5..2a96d6d679d36 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java @@ -71,7 +71,7 @@ public class PhoneStatusBarView extends PanelBar { } @Override - public boolean isEnabled() { + public boolean panelsEnabled() { return ((mBar.mDisabled & StatusBarManager.DISABLE_EXPAND) == 0); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NotificationRowLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NotificationRowLayout.java index e63735677ccfb..89eed1bd6138f 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NotificationRowLayout.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NotificationRowLayout.java @@ -78,6 +78,7 @@ public class NotificationRowLayout super(context, attrs, defStyle); mRealLayoutTransition = new LayoutTransition(); + mRealLayoutTransition.setAnimateParentHierarchy(true); setLayoutTransitionsEnabled(true); setOrientation(LinearLayout.VERTICAL); From 396efde6dabd649fce7562a281b991128eb49c73 Mon Sep 17 00:00:00 2001 From: Iliyan Malchev Date: Thu, 16 Aug 2012 12:47:21 -0700 Subject: [PATCH 25/61] Set the brightness to zero on screen-off Fixes b/6996990 Ideally, the HWC HAL should turn off the backlight when the display is turned off. This patch enforces this at the PowerManager, which can guard against errant HWC implementations. Change-Id: Ibb826a02871c983f8a68034d010e68abe9c5c1d5 Signed-off-by: Iliyan Malchev --- services/java/com/android/server/power/DisplayPowerState.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/java/com/android/server/power/DisplayPowerState.java b/services/java/com/android/server/power/DisplayPowerState.java index ad242c08fcbcb..f61872537e572 100644 --- a/services/java/com/android/server/power/DisplayPowerState.java +++ b/services/java/com/android/server/power/DisplayPowerState.java @@ -242,8 +242,8 @@ final class DisplayPowerState { mElectronBeam.draw(mElectronBeamLevel); } - if ((mDirty & DIRTY_BRIGHTNESS) != 0) { - mScreenBrightnessModulator.setBrightness(mScreenBrightness); + if ((mDirty & (DIRTY_BRIGHTNESS | DIRTY_SCREEN_ON)) != 0) { + mScreenBrightnessModulator.setBrightness(mScreenOn ? mScreenBrightness : 0); } if ((mDirty & DIRTY_SCREEN_ON) != 0 && mScreenOn) { From c7039311041294b4a2bdf75635200ce1c10331c2 Mon Sep 17 00:00:00 2001 From: Chet Haase Date: Thu, 16 Aug 2012 14:34:04 -0700 Subject: [PATCH 26/61] Make animators more robust against ending mid-stream The logic in the frame processing code of ValueAnimator did not handle the situation of animators being ended while the current animation list was being processed. In particular, if a call to an animation update (which could result in a call out to user code) caused that animation, or other current animators, to end, then there was the risk of running off the end of the list of current animators. The fix is to work from a copy of the current animator list, processing frames on each one only if they also exist in the real animations list. Issue #6992223 Frequent System UI crash Change-Id: I742964558f8354f04c311b7b51c7686f26a4dacf --- .../java/android/animation/ValueAnimator.java | 29 +++++++------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/core/java/android/animation/ValueAnimator.java b/core/java/android/animation/ValueAnimator.java index 107e980258e35..f874d56074c7e 100755 --- a/core/java/android/animation/ValueAnimator.java +++ b/core/java/android/animation/ValueAnimator.java @@ -536,6 +536,9 @@ public class ValueAnimator extends Animator { // The per-thread list of all active animations private final ArrayList mAnimations = new ArrayList(); + // Used in doAnimationFrame() to avoid concurrent modifications of mAnimations + private final ArrayList mTmpAnimations = new ArrayList(); + // The per-thread set of animations to be started on the next animation frame private final ArrayList mPendingAnimations = new ArrayList(); @@ -605,28 +608,18 @@ public class ValueAnimator extends Animator { // Now process all active animations. The return value from animationFrame() // tells the handler whether it should now be ended int numAnims = mAnimations.size(); - int i = 0; - while (i < numAnims) { - ValueAnimator anim = mAnimations.get(i); - if (anim.doAnimationFrame(frameTime)) { + for (int i = 0; i < numAnims; ++i) { + mTmpAnimations.add(mAnimations.get(i)); + } + for (int i = 0; i < numAnims; ++i) { + ValueAnimator anim = mTmpAnimations.get(i); + if (mAnimations.contains(anim) && anim.doAnimationFrame(frameTime)) { mEndingAnims.add(anim); } - if (mAnimations.size() == numAnims) { - ++i; - } else { - // An animation might be canceled or ended by client code - // during the animation frame. Check to see if this happened by - // seeing whether the current index is the same as it was before - // calling animationFrame(). Another approach would be to copy - // animations to a temporary list and process that list instead, - // but that entails garbage and processing overhead that would - // be nice to avoid. - --numAnims; - mEndingAnims.remove(anim); - } } + mTmpAnimations.clear(); if (mEndingAnims.size() > 0) { - for (i = 0; i < mEndingAnims.size(); ++i) { + for (int i = 0; i < mEndingAnims.size(); ++i) { mEndingAnims.get(i).endAnimation(this); } mEndingAnims.clear(); From ff97ca85b2860f9a3f86dca7ff8663f17c7cb209 Mon Sep 17 00:00:00 2001 From: Jeff Brown Date: Wed, 22 Aug 2012 13:12:48 -0700 Subject: [PATCH 27/61] Fix NPE. Bug: 7034583 Change-Id: Ie6b436492d12b0dd6bbe1c25d9b7ac35b74095d3 --- services/java/com/android/server/TwilightService.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/services/java/com/android/server/TwilightService.java b/services/java/com/android/server/TwilightService.java index 5be7205689781..a7bce54f61152 100644 --- a/services/java/com/android/server/TwilightService.java +++ b/services/java/com/android/server/TwilightService.java @@ -50,7 +50,7 @@ import libcore.util.Objects; public final class TwilightService { private static final String TAG = "TwilightService"; - private static final boolean DEBUG = true; + private static final boolean DEBUG = false; private static final String ACTION_UPDATE_TWILIGHT_STATE = "com.android.server.action.UPDATE_TWILIGHT_STATE"; @@ -463,6 +463,11 @@ public final class TwilightService { } private void updateTwilightState() { + if (mLocation == null) { + setTwilightState(null); + return; + } + final long now = System.currentTimeMillis(); // calculate yesterday's twilight From 037540da34de123a40b2f3a53747ab65a95022ab Mon Sep 17 00:00:00 2001 From: Amith Yamasani Date: Thu, 23 Aug 2012 10:07:52 -0700 Subject: [PATCH 28/61] Handle null cache directory data/android directory doesn't exist sometimes, and hence cache directory creation fails. Don't crash the process due to that. Change-Id: I22d7ed5df9c70f021a87029e89a13a11b4b0303b --- core/java/android/app/ActivityThread.java | 12 ++++++++---- core/java/android/app/ContextImpl.java | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index 28c5abd475270..b8e16c5a7cc93 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -4070,10 +4070,14 @@ public final class ActivityThread { if (!Process.isIsolated()) { final File cacheDir = appContext.getCacheDir(); - // Provide a usable directory for temporary files - System.setProperty("java.io.tmpdir", cacheDir.getAbsolutePath()); - - setupGraphicsSupport(data.info, cacheDir); + if (cacheDir != null) { + // Provide a usable directory for temporary files + System.setProperty("java.io.tmpdir", cacheDir.getAbsolutePath()); + + setupGraphicsSupport(data.info, cacheDir); + } else { + Log.e(TAG, "Unable to setupGraphicsSupport due to missing cache directory"); + } } /** * For system applications on userdebug/eng builds, log stack diff --git a/core/java/android/app/ContextImpl.java b/core/java/android/app/ContextImpl.java index 0543f0570cbd0..112ce987e23eb 100644 --- a/core/java/android/app/ContextImpl.java +++ b/core/java/android/app/ContextImpl.java @@ -769,7 +769,7 @@ class ContextImpl extends Context { } if (!mCacheDir.exists()) { if(!mCacheDir.mkdirs()) { - Log.w(TAG, "Unable to create cache directory"); + Log.w(TAG, "Unable to create cache directory " + mCacheDir.getAbsolutePath()); return null; } FileUtils.setPermissions( From e39e8a204b33ae0faaefe852eeee7893f54b310b Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Thu, 23 Aug 2012 13:54:58 -0700 Subject: [PATCH 29/61] Fix issue #7016987: Unable to attach a picture in gmail/emaill composer action. Change-Id: I0c9336bb072b4622a5eab6d3ec104c4cc38e367a --- core/java/android/app/Activity.java | 26 +++++++++ core/java/android/app/ContextImpl.java | 9 +--- core/java/android/app/Instrumentation.java | 61 ++++++++++++++++++++++ 3 files changed, 88 insertions(+), 8 deletions(-) diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java index 395a79cf3b8c4..d5580b708036a 100644 --- a/core/java/android/app/Activity.java +++ b/core/java/android/app/Activity.java @@ -48,6 +48,7 @@ import android.os.Looper; import android.os.Parcelable; import android.os.RemoteException; import android.os.StrictMode; +import android.os.UserHandle; import android.text.Selection; import android.text.SpannableStringBuilder; import android.text.TextUtils; @@ -3383,6 +3384,31 @@ public class Activity extends ContextThemeWrapper } } + /** + * @hide Implement to provide correct calling token. + */ + public void startActivityAsUser(Intent intent, UserHandle user) { + startActivityAsUser(intent, null, user); + } + + /** + * @hide Implement to provide correct calling token. + */ + public void startActivityAsUser(Intent intent, Bundle options, UserHandle user) { + if (mParent != null) { + throw new RuntimeException("Called be called from a child"); + } + Instrumentation.ActivityResult ar = + mInstrumentation.execStartActivity( + this, mMainThread.getApplicationThread(), mToken, this, + intent, -1, options, user); + if (ar != null) { + mMainThread.sendActivityResult( + mToken, mEmbeddedID, -1, ar.getResultCode(), + ar.getResultData()); + } + } + /** * Same as calling {@link #startIntentSenderForResult(IntentSender, int, * Intent, int, int, int, Bundle)} with no options. diff --git a/core/java/android/app/ContextImpl.java b/core/java/android/app/ContextImpl.java index 112ce987e23eb..0ae4d06508de5 100644 --- a/core/java/android/app/ContextImpl.java +++ b/core/java/android/app/ContextImpl.java @@ -909,14 +909,7 @@ class ContextImpl extends Context { /** @hide */ @Override public void startActivityAsUser(Intent intent, UserHandle user) { - try { - ActivityManagerNative.getDefault().startActivityAsUser( - mMainThread.getApplicationThread(), intent, - intent.resolveTypeIfNeeded(getContentResolver()), - null, null, 0, Intent.FLAG_ACTIVITY_NEW_TASK, null, null, null, - user.getIdentifier()); - } catch (RemoteException re) { - } + startActivityAsUser(intent, null, user); } @Override diff --git a/core/java/android/app/Instrumentation.java b/core/java/android/app/Instrumentation.java index cad4b0159fc3e..ee4e964298b42 100644 --- a/core/java/android/app/Instrumentation.java +++ b/core/java/android/app/Instrumentation.java @@ -33,6 +33,7 @@ import android.os.Process; import android.os.RemoteException; import android.os.ServiceManager; import android.os.SystemClock; +import android.os.UserHandle; import android.util.AndroidRuntimeException; import android.util.Log; import android.view.IWindowManager; @@ -1518,6 +1519,66 @@ public class Instrumentation { return null; } + /** + * Like {@link #execStartActivity(Context, IBinder, IBinder, Activity, Intent, int)}, + * but for starting as a particular user. + * + * @param who The Context from which the activity is being started. + * @param contextThread The main thread of the Context from which the activity + * is being started. + * @param token Internal token identifying to the system who is starting + * the activity; may be null. + * @param target Which fragment is performing the start (and thus receiving + * any result). + * @param intent The actual Intent to start. + * @param requestCode Identifier for this request's result; less than zero + * if the caller is not expecting a result. + * + * @return To force the return of a particular result, return an + * ActivityResult object containing the desired data; otherwise + * return null. The default implementation always returns null. + * + * @throws android.content.ActivityNotFoundException + * + * @see Activity#startActivity(Intent) + * @see Activity#startActivityForResult(Intent, int) + * @see Activity#startActivityFromChild + * + * {@hide} + */ + public ActivityResult execStartActivity( + Context who, IBinder contextThread, IBinder token, Activity target, + Intent intent, int requestCode, Bundle options, UserHandle user) { + IApplicationThread whoThread = (IApplicationThread) contextThread; + if (mActivityMonitors != null) { + synchronized (mSync) { + final int N = mActivityMonitors.size(); + for (int i=0; i= 0 ? am.getResult() : null; + } + break; + } + } + } + } + try { + intent.setAllowFds(false); + intent.migrateExtraStreamToClipData(); + int result = ActivityManagerNative.getDefault() + .startActivityAsUser(whoThread, intent, + intent.resolveTypeIfNeeded(who.getContentResolver()), + token, target != null ? target.mEmbeddedID : null, + requestCode, 0, null, null, options, user.getIdentifier()); + checkStartActivityResult(result, intent); + } catch (RemoteException e) { + } + return null; + } + /*package*/ final void init(ActivityThread thread, Context instrContext, Context appContext, ComponentName component, IInstrumentationWatcher watcher) { From ccc1cabd420d60c5663457ad31814a8952a89b35 Mon Sep 17 00:00:00 2001 From: Chris Wren Date: Fri, 24 Aug 2012 11:50:55 -0400 Subject: [PATCH 30/61] [phones] Only allow double-flick opening of the quicksettings panel. Bug: 7043587 Change-Id: I39d208626c477e8c081c9d81c3124eb631152998 --- packages/SystemUI/res/values/dimens.xml | 3 +++ .../statusbar/phone/PhoneStatusBarView.java | 17 +++++++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml index b5f1a33256978..94465e2f38907 100644 --- a/packages/SystemUI/res/values/dimens.xml +++ b/packages/SystemUI/res/values/dimens.xml @@ -164,6 +164,9 @@ 0x37 0x37 + + 90dp + 24dp diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java index 6d474938349cf..8fe525c01a4d3 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java @@ -43,6 +43,9 @@ public class PhoneStatusBarView extends PanelBar { private static final String TAG = "PhoneStatusBarView"; PhoneStatusBar mBar; int mScrimColor; + float mMinFlingGutter; + float mNotificationWidth; + boolean mFullWidthNotifications; PanelView mFadingPanel = null; PanelView mNotificationPanel, mSettingsPanel; @@ -58,6 +61,13 @@ public class PhoneStatusBarView extends PanelBar { public void onAttachedToWindow() { Resources res = getContext().getResources(); mScrimColor = res.getColor(R.color.notification_panel_scrim_color); + mMinFlingGutter = res.getDimension(R.dimen.settings_panel_fling_gutter); + mFullWidthNotifications = false; + try { + mNotificationWidth = res.getDimension(R.dimen.notification_panel_width); + } catch (Resources.NotFoundException ex) { + mFullWidthNotifications = true; + } } @Override @@ -96,9 +106,12 @@ public class PhoneStatusBarView extends PanelBar { // right 1/3 for quick settings. If you pull the status bar down a second time you'll // toggle panels no matter where you pull it down. final float w = (float) getMeasuredWidth(); + final float gutter = w - mNotificationWidth; + final boolean useGutter = !mFullWidthNotifications && gutter > mMinFlingGutter; + final float threshold = 1.0f - (gutter / w); final float f = x / w; - if (f > 0.67f && mSettingsPanel.getExpandedFraction() != 1.0f - || mNotificationPanel.getExpandedFraction() == 1.0f) { + if ((useGutter && f > threshold && mSettingsPanel.getExpandedFraction() != 1.0f) || + mNotificationPanel.getExpandedFraction() == 1.0f) { return mSettingsPanel; } return mNotificationPanel; From 205964034c283dd18dfcaa31f9ca52e5fd75bab8 Mon Sep 17 00:00:00 2001 From: Amith Yamasani Date: Mon, 27 Aug 2012 12:04:40 -0700 Subject: [PATCH 31/61] Fix adb install Was not properly handling creating DefContainerService when the installation was for USER_ALL. Not a problem for Market installs. Bug: 7061571 Change-Id: I4528b4c56e38effa137da56460e78c55b242ba45 --- services/java/com/android/server/am/ActiveServices.java | 2 +- .../java/com/android/server/pm/PackageManagerService.java | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/services/java/com/android/server/am/ActiveServices.java b/services/java/com/android/server/am/ActiveServices.java index e6bcaa1d92dfb..ca7faa2de622c 100644 --- a/services/java/com/android/server/am/ActiveServices.java +++ b/services/java/com/android/server/am/ActiveServices.java @@ -729,7 +729,7 @@ public class ActiveServices { ServiceInfo sInfo = rInfo != null ? rInfo.serviceInfo : null; if (sInfo == null) { - Slog.w(TAG, "Unable to start service " + service + + Slog.w(TAG, "Unable to start service " + service + " U=" + userId + ": not found"); return null; } diff --git a/services/java/com/android/server/pm/PackageManagerService.java b/services/java/com/android/server/pm/PackageManagerService.java index 0345df100b37e..ba8533fed3a62 100644 --- a/services/java/com/android/server/pm/PackageManagerService.java +++ b/services/java/com/android/server/pm/PackageManagerService.java @@ -473,6 +473,9 @@ public class PackageManagerService extends IPackageManager.Stub { mContainerServiceUserId = 0; if (mPendingInstalls.size() > 0) { mContainerServiceUserId = mPendingInstalls.get(0).getUser().getIdentifier(); + if (mContainerServiceUserId == UserHandle.USER_ALL) { + mContainerServiceUserId = 0; + } } if (mContext.bindService(service, mDefContainerConn, Context.BIND_AUTO_CREATE, mContainerServiceUserId)) { @@ -554,7 +557,10 @@ public class PackageManagerService extends IPackageManager.Stub { if (params != null) { // Check if we're connected to the correct service, if it's an install // request. - if (params.getUser().getIdentifier() != mContainerServiceUserId) { + final int installFor = params.getUser().getIdentifier(); + if (installFor != mContainerServiceUserId + && (installFor == UserHandle.USER_ALL + && mContainerServiceUserId != 0)) { mHandler.sendEmptyMessage(MCS_RECONNECT); return; } From 64cca45c97dc772b977574f2e5047f76e773c5e8 Mon Sep 17 00:00:00 2001 From: Amith Yamasani Date: Tue, 28 Aug 2012 14:34:53 -0700 Subject: [PATCH 32/61] Fix PendingIntent caching for multiuser Store the userId in the PendingIntentRecord.Key, so that it doesn't match an identical pending intent from another user. Change-Id: Icfc39e0f717c902dc3a60bdf5283a3402bbd2eaa --- .../android/server/am/ActivityManagerService.java | 3 ++- .../com/android/server/am/PendingIntentRecord.java | 12 +++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java index 6e4759d31ab74..368db2661f568 100644 --- a/services/java/com/android/server/am/ActivityManagerService.java +++ b/services/java/com/android/server/am/ActivityManagerService.java @@ -4430,7 +4430,8 @@ public final class ActivityManagerService extends ActivityManagerNative PendingIntentRecord.Key key = new PendingIntentRecord.Key( type, packageName, activity, resultWho, - requestCode, intents, resolvedTypes, flags, options); + requestCode, intents, resolvedTypes, flags, options, + UserHandle.getUserId(callingUid)); WeakReference ref; ref = mIntentSenderRecords.get(key); PendingIntentRecord rec = ref != null ? ref.get() : null; diff --git a/services/java/com/android/server/am/PendingIntentRecord.java b/services/java/com/android/server/am/PendingIntentRecord.java index d3b851026aac0..8e70376fc26b8 100644 --- a/services/java/com/android/server/am/PendingIntentRecord.java +++ b/services/java/com/android/server/am/PendingIntentRecord.java @@ -54,11 +54,12 @@ class PendingIntentRecord extends IIntentSender.Stub { String[] allResolvedTypes; final int flags; final int hashCode; + final int userId; private static final int ODD_PRIME_NUMBER = 37; Key(int _t, String _p, ActivityRecord _a, String _w, - int _r, Intent[] _i, String[] _it, int _f, Bundle _o) { + int _r, Intent[] _i, String[] _it, int _f, Bundle _o, int _userId) { type = _t; packageName = _p; activity = _a; @@ -70,10 +71,12 @@ class PendingIntentRecord extends IIntentSender.Stub { allResolvedTypes = _it; flags = _f; options = _o; - + userId = _userId; + int hash = 23; hash = (ODD_PRIME_NUMBER*hash) + _f; hash = (ODD_PRIME_NUMBER*hash) + _r; + hash = (ODD_PRIME_NUMBER*hash) + _userId; if (_w != null) { hash = (ODD_PRIME_NUMBER*hash) + _w.hashCode(); } @@ -102,6 +105,9 @@ class PendingIntentRecord extends IIntentSender.Stub { if (type != other.type) { return false; } + if (userId != other.userId){ + return false; + } if (!packageName.equals(other.packageName)) { return false; } @@ -156,7 +162,7 @@ class PendingIntentRecord extends IIntentSender.Stub { + " intent=" + (requestIntent != null ? requestIntent.toShortString(false, true, false, false) : "") - + " flags=0x" + Integer.toHexString(flags) + "}"; + + " flags=0x" + Integer.toHexString(flags) + " u=" + userId + "}"; } String typeName() { From 093405813c366ce9c0fa4f1de0fb691f3accbcc0 Mon Sep 17 00:00:00 2001 From: Craig Mautner Date: Tue, 28 Aug 2012 17:12:52 -0700 Subject: [PATCH 33/61] Check proximity detector before powering off. Do not automatically power off if the proximity detector wakelock is active. Fixes bug 7047455. Change-Id: I44e30bf388292e5c476dfb5d0de9226d21853e4d --- .../java/com/android/server/power/PowerManagerService.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/java/com/android/server/power/PowerManagerService.java b/services/java/com/android/server/power/PowerManagerService.java index 6d681046a2c60..59d09546ce96b 100644 --- a/services/java/com/android/server/power/PowerManagerService.java +++ b/services/java/com/android/server/power/PowerManagerService.java @@ -1136,7 +1136,8 @@ public final class PowerManagerService extends IPowerManager.Stub private boolean isItBedTimeYetLocked() { return mBootCompleted && !mStayOn && (mWakeLockSummary - & (WAKE_LOCK_SCREEN_BRIGHT | WAKE_LOCK_SCREEN_DIM)) == 0 + & (WAKE_LOCK_SCREEN_BRIGHT | WAKE_LOCK_SCREEN_DIM + | WAKE_LOCK_PROXIMITY_SCREEN_OFF)) == 0 && (mUserActivitySummary & (USER_ACTIVITY_SCREEN_BRIGHT | USER_ACTIVITY_SCREEN_DIM)) == 0; } From 79df5454d8c6de4653b37ed0d7d0d3e02d605380 Mon Sep 17 00:00:00 2001 From: Jim Miller Date: Thu, 30 Aug 2012 10:24:40 -0700 Subject: [PATCH 34/61] Fix keyguard layout on tablet Bug:7084961 Change-Id: I6415aa736bf9e2b71a288716e3125429be2b663c --- core/res/res/layout-sw600dp-land/keyguard_host_view.xml | 4 ++-- core/res/res/layout-sw600dp-port/keyguard_host_view.xml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/core/res/res/layout-sw600dp-land/keyguard_host_view.xml b/core/res/res/layout-sw600dp-land/keyguard_host_view.xml index c552885a41711..e77f5843ac560 100644 --- a/core/res/res/layout-sw600dp-land/keyguard_host_view.xml +++ b/core/res/res/layout-sw600dp-land/keyguard_host_view.xml @@ -26,7 +26,7 @@ android:layout_height="match_parent" android:orientation="horizontal"> - - + - - + Date: Wed, 29 Aug 2012 13:54:44 -0700 Subject: [PATCH 35/61] Use focal point for scrolling in GestureDetector Remove workaround for obsolete touchscreen hardware. Provide a better focal point for scroll events. Change-Id: I879acb4cfd23bd3762d0332e4df2203d913ae869 --- core/java/android/view/GestureDetector.java | 118 +++++++++++--------- 1 file changed, 64 insertions(+), 54 deletions(-) diff --git a/core/java/android/view/GestureDetector.java b/core/java/android/view/GestureDetector.java index 0114a419f23c9..23337f03792c2 100644 --- a/core/java/android/view/GestureDetector.java +++ b/core/java/android/view/GestureDetector.java @@ -226,17 +226,12 @@ public class GestureDetector { */ private boolean mIsDoubleTapping; - private float mLastMotionY; - private float mLastMotionX; + private float mLastFocusX; + private float mLastFocusY; + private float mDownFocusX; + private float mDownFocusY; private boolean mIsLongpressEnabled; - - /** - * True if we are at a target API level of >= Froyo or the developer can - * explicitly set it. If true, input events with > 1 pointer will be ignored - * so we can work side by side with multitouch gesture detectors. - */ - private boolean mIgnoreMultitouch; /** * Determines speed during touch scrolling @@ -349,8 +344,16 @@ public class GestureDetector { * @throws NullPointerException if {@code listener} is null. */ public GestureDetector(Context context, OnGestureListener listener, Handler handler) { - this(context, listener, handler, context != null && - context.getApplicationInfo().targetSdkVersion >= Build.VERSION_CODES.FROYO); + if (handler != null) { + mHandler = new GestureHandler(handler); + } else { + mHandler = new GestureHandler(); + } + mListener = listener; + if (listener instanceof OnDoubleTapListener) { + setOnDoubleTapListener((OnDoubleTapListener) listener); + } + init(context); } /** @@ -362,31 +365,19 @@ public class GestureDetector { * @param listener the listener invoked for all the callbacks, this must * not be null. * @param handler the handler to use - * @param ignoreMultitouch whether events involving more than one pointer should - * be ignored. * * @throws NullPointerException if {@code listener} is null. */ public GestureDetector(Context context, OnGestureListener listener, Handler handler, - boolean ignoreMultitouch) { - if (handler != null) { - mHandler = new GestureHandler(handler); - } else { - mHandler = new GestureHandler(); - } - mListener = listener; - if (listener instanceof OnDoubleTapListener) { - setOnDoubleTapListener((OnDoubleTapListener) listener); - } - init(context, ignoreMultitouch); + boolean unused) { + this(context, listener, handler); } - private void init(Context context, boolean ignoreMultitouch) { + private void init(Context context) { if (mListener == null) { throw new NullPointerException("OnGestureListener must not be null"); } mIsLongpressEnabled = true; - mIgnoreMultitouch = ignoreMultitouch; // Fallback to support pre-donuts releases int touchSlop, doubleTapSlop, doubleTapTouchSlop; @@ -456,34 +447,40 @@ public class GestureDetector { } final int action = ev.getAction(); - final float y = ev.getY(); - final float x = ev.getX(); if (mVelocityTracker == null) { mVelocityTracker = VelocityTracker.obtain(); } mVelocityTracker.addMovement(ev); + final boolean pointerUp = action == MotionEvent.ACTION_POINTER_UP; + final int skipIndex = pointerUp ? ev.getActionIndex() : -1; + + // Determine focal point + float sumX = 0, sumY = 0; + final int count = ev.getPointerCount(); + for (int i = 0; i < count; i++) { + if (skipIndex == i) continue; + sumX += ev.getX(i); + sumY += ev.getY(i); + } + final int div = pointerUp ? count - 1 : count; + final float focusX = sumX / div; + final float focusY = sumY / div; + boolean handled = false; switch (action & MotionEvent.ACTION_MASK) { case MotionEvent.ACTION_POINTER_DOWN: - if (mIgnoreMultitouch) { - // Multitouch event - abort. - cancel(); - } + mDownFocusX = mLastFocusX = focusX; + mDownFocusY = mLastFocusY = focusY; + // Cancel long press and taps + cancelTaps(); break; case MotionEvent.ACTION_POINTER_UP: - // Ending a multitouch gesture and going back to 1 finger - if (mIgnoreMultitouch && ev.getPointerCount() == 2) { - int index = (((action & MotionEvent.ACTION_POINTER_INDEX_MASK) - >> MotionEvent.ACTION_POINTER_INDEX_SHIFT) == 0) ? 1 : 0; - mLastMotionX = ev.getX(index); - mLastMotionY = ev.getY(index); - mVelocityTracker.recycle(); - mVelocityTracker = VelocityTracker.obtain(); - } + mDownFocusX = mLastFocusX = focusX; + mDownFocusY = mLastFocusY = focusY; break; case MotionEvent.ACTION_DOWN: @@ -504,8 +501,8 @@ public class GestureDetector { } } - mLastMotionX = x; - mLastMotionY = y; + mDownFocusX = mLastFocusX = focusX; + mDownFocusY = mLastFocusY = focusY; if (mCurrentDownEvent != null) { mCurrentDownEvent.recycle(); } @@ -525,22 +522,22 @@ public class GestureDetector { break; case MotionEvent.ACTION_MOVE: - if (mInLongPress || (mIgnoreMultitouch && ev.getPointerCount() > 1)) { + if (mInLongPress) { break; } - final float scrollX = mLastMotionX - x; - final float scrollY = mLastMotionY - y; + final float scrollX = mLastFocusX - focusX; + final float scrollY = mLastFocusY - focusY; if (mIsDoubleTapping) { // Give the move events of the double-tap handled |= mDoubleTapListener.onDoubleTapEvent(ev); } else if (mAlwaysInTapRegion) { - final int deltaX = (int) (x - mCurrentDownEvent.getX()); - final int deltaY = (int) (y - mCurrentDownEvent.getY()); + final int deltaX = (int) (focusX - mDownFocusX); + final int deltaY = (int) (focusY - mDownFocusY); int distance = (deltaX * deltaX) + (deltaY * deltaY); if (distance > mTouchSlopSquare) { handled = mListener.onScroll(mCurrentDownEvent, ev, scrollX, scrollY); - mLastMotionX = x; - mLastMotionY = y; + mLastFocusX = focusX; + mLastFocusY = focusY; mAlwaysInTapRegion = false; mHandler.removeMessages(TAP); mHandler.removeMessages(SHOW_PRESS); @@ -551,8 +548,8 @@ public class GestureDetector { } } else if ((Math.abs(scrollX) >= 1) || (Math.abs(scrollY) >= 1)) { handled = mListener.onScroll(mCurrentDownEvent, ev, scrollX, scrollY); - mLastMotionX = x; - mLastMotionY = y; + mLastFocusX = focusX; + mLastFocusY = focusY; } break; @@ -571,9 +568,10 @@ public class GestureDetector { // A fling must travel the minimum tap distance final VelocityTracker velocityTracker = mVelocityTracker; + final int pointerId = ev.getPointerId(0); velocityTracker.computeCurrentVelocity(1000, mMaximumFlingVelocity); - final float velocityY = velocityTracker.getYVelocity(); - final float velocityX = velocityTracker.getXVelocity(); + final float velocityY = velocityTracker.getYVelocity(pointerId); + final float velocityX = velocityTracker.getXVelocity(pointerId); if ((Math.abs(velocityY) > mMinimumFlingVelocity) || (Math.abs(velocityX) > mMinimumFlingVelocity)){ @@ -622,6 +620,18 @@ public class GestureDetector { } } + private void cancelTaps() { + mHandler.removeMessages(SHOW_PRESS); + mHandler.removeMessages(LONG_PRESS); + mHandler.removeMessages(TAP); + mIsDoubleTapping = false; + mAlwaysInTapRegion = false; + mAlwaysInBiggerTapRegion = false; + if (mInLongPress) { + mInLongPress = false; + } + } + private boolean isConsideredDoubleTap(MotionEvent firstDown, MotionEvent firstUp, MotionEvent secondDown) { if (!mAlwaysInBiggerTapRegion) { From 101136931dcb8b7af043beafbf124456aae7e247 Mon Sep 17 00:00:00 2001 From: Maxim Siniavine Date: Thu, 30 Aug 2012 14:05:38 -0700 Subject: [PATCH 36/61] Fixed MemoryUsage issue with reporting results. When the memory of the application did not stabilize within the time limit, the test would report that using the application name, instead of the result key. Fixed the test to always use the result key. Change-Id: Ie16969e831bd3d89ee0496b992568f52bf1989cb --- .../tests/memoryusage/MemoryUsageTest.java | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/tests/MemoryUsage/src/com/android/tests/memoryusage/MemoryUsageTest.java b/tests/MemoryUsage/src/com/android/tests/memoryusage/MemoryUsageTest.java index f26edc649204d..e39d53c75d692 100644 --- a/tests/MemoryUsage/src/com/android/tests/memoryusage/MemoryUsageTest.java +++ b/tests/MemoryUsage/src/com/android/tests/memoryusage/MemoryUsageTest.java @@ -54,9 +54,9 @@ public class MemoryUsageTest extends InstrumentationTestCase { private static final String TAG = "MemoryUsageInstrumentation"; private static final String KEY_APPS = "apps"; - private Map nameToIntent; - private Map nameToProcess; - private Map nameToResultKey; + private Map mNameToIntent; + private Map mNameToProcess; + private Map mNameToResultKey; public void testMemory() { MemoryUsageInstrumentation instrumentation = @@ -67,7 +67,7 @@ public class MemoryUsageTest extends InstrumentationTestCase { parseArgs(args); Bundle results = new Bundle(); - for (String app : nameToResultKey.keySet()) { + for (String app : mNameToResultKey.keySet()) { String processName; try { processName = startApp(app); @@ -81,7 +81,7 @@ public class MemoryUsageTest extends InstrumentationTestCase { } private void parseArgs(Bundle args) { - nameToResultKey = new HashMap(); + mNameToResultKey = new HashMap(); String appList = args.getString(KEY_APPS); if (appList == null) @@ -95,13 +95,13 @@ public class MemoryUsageTest extends InstrumentationTestCase { fail(); } - nameToResultKey.put(parts[0], parts[1]); + mNameToResultKey.put(parts[0], parts[1]); } } private void createMappings() { - nameToIntent = new HashMap(); - nameToProcess = new HashMap(); + mNameToIntent = new HashMap(); + mNameToProcess = new HashMap(); PackageManager pm = getInstrumentation().getContext() .getPackageManager(); @@ -120,8 +120,8 @@ public class MemoryUsageTest extends InstrumentationTestCase { | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); startIntent.setClassName(ri.activityInfo.packageName, ri.activityInfo.name); - nameToIntent.put(ri.loadLabel(pm).toString(), startIntent); - nameToProcess.put(ri.loadLabel(pm).toString(), + mNameToIntent.put(ri.loadLabel(pm).toString(), startIntent); + mNameToProcess.put(ri.loadLabel(pm).toString(), ri.activityInfo.processName); } } @@ -130,11 +130,11 @@ public class MemoryUsageTest extends InstrumentationTestCase { private String startApp(String appName) throws NameNotFoundException { Log.i(TAG, "Starting " + appName); - if (!nameToProcess.containsKey(appName)) + if (!mNameToProcess.containsKey(appName)) throw new NameNotFoundException("Could not find: " + appName); - String process = nameToProcess.get(appName); - Intent startIntent = nameToIntent.get(appName); + String process = mNameToProcess.get(appName); + Intent startIntent = mNameToIntent.get(appName); getInstrumentation().getContext().startActivity(startIntent); return process; } @@ -154,14 +154,14 @@ public class MemoryUsageTest extends InstrumentationTestCase { } pssData.add(pss); if (iteration >= MIN_ITERATIONS && stabilized(pssData)) { - results.putInt(nameToResultKey.get(appName), pss); + results.putInt(mNameToResultKey.get(appName), pss); return; } iteration++; } Log.w(TAG, appName + " memory usage did not stabilize"); - results.putInt(appName, average(pssData)); + results.putInt(mNameToResultKey.get(appName), average(pssData)); } private int average(List pssData) { @@ -202,12 +202,12 @@ public class MemoryUsageTest extends InstrumentationTestCase { continue; Log.w(TAG, appName + " crashed: " + crash.shortMsg); - results.putString(nameToResultKey.get(appName), crash.shortMsg); + results.putString(mNameToResultKey.get(appName), crash.shortMsg); return; } } - results.putString(nameToResultKey.get(appName), + results.putString(mNameToResultKey.get(appName), "Crashed for unknown reason"); Log.w(TAG, appName + " not found in process list, most likely it is crashed"); From f331e6f29f154a1cd12ea6e00abb973976925bf4 Mon Sep 17 00:00:00 2001 From: Daniel Sandler Date: Thu, 30 Aug 2012 17:10:50 -0400 Subject: [PATCH 37/61] Turn off deadzone flash, replacing it with logcat. Change-Id: I30db97e5c3a6ef3a06e6065ccf087a7f6d1f9286 --- packages/SystemUI/res/values/config.xml | 2 ++ .../systemui/statusbar/policy/DeadZone.java | 19 ++++++++++++------- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml index 333757333d9af..13622e6145fd0 100644 --- a/packages/SystemUI/res/values/config.xml +++ b/packages/SystemUI/res/values/config.xml @@ -76,5 +76,7 @@ 333 333 + + false diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/DeadZone.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/DeadZone.java index 6ffca2a9f0ad3..e5ef5fe83f8ee 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/DeadZone.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/DeadZone.java @@ -35,6 +35,8 @@ public class DeadZone extends View { public static final int HORIZONTAL = 0; public static final int VERTICAL = 1; + private static final boolean CHATTY = true; // print to logcat when we eat a click + private boolean mShouldFlash; private float mFlashFrac = 0f; @@ -76,7 +78,7 @@ public class DeadZone extends View { Slog.v(TAG, this + " size=[" + mSizeMin + "-" + mSizeMax + "] hold=" + mHold + (mVertical ? " vertical" : " horizontal")); - setFlashOnTouchCapture(true); + setFlashOnTouchCapture(context.getResources().getBoolean(R.bool.config_dead_zone_flash)); } static float lerp(float a, float b, float f) { @@ -100,27 +102,30 @@ public class DeadZone extends View { postInvalidate(); } - // I made you a touch event + // I made you a touch event... @Override public boolean onTouchEvent(MotionEvent event) { - if (DEBUG) + if (DEBUG) { Slog.v(TAG, this + " onTouch: " + MotionEvent.actionToString(event.getAction())); + } final int action = event.getAction(); if (action == MotionEvent.ACTION_OUTSIDE) { poke(event); } else if (action == MotionEvent.ACTION_DOWN) { - if (DEBUG) + if (DEBUG) { Slog.v(TAG, this + " ACTION_DOWN: " + event.getX() + "," + event.getY()); + } int size = (int) getSize(event.getEventTime()); if ((mVertical && event.getX() < size) || event.getY() < size) { - if (DEBUG) - Slog.v(TAG, "eating click!"); + if (CHATTY) { + Slog.v(TAG, "consuming errant click: (" + event.getX() + "," + event.getY() + ")"); + } if (mShouldFlash) { post(mDebugFlash); postInvalidate(); } - return true; // but I eated it + return true; // ...but I eated it } } return false; From 753f590eb72c91627015d1f71244396e914b849b Mon Sep 17 00:00:00 2001 From: Adam Powell Date: Fri, 31 Aug 2012 11:11:39 -0700 Subject: [PATCH 38/61] GestureDetector - Mask action when checking POINTER_UP Bug 7088494 Change-Id: I723e9b77f0d0473f9d769e53aaa568c4aaac90aa --- core/java/android/view/GestureDetector.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/java/android/view/GestureDetector.java b/core/java/android/view/GestureDetector.java index 23337f03792c2..4bbdd4e3b534a 100644 --- a/core/java/android/view/GestureDetector.java +++ b/core/java/android/view/GestureDetector.java @@ -453,7 +453,8 @@ public class GestureDetector { } mVelocityTracker.addMovement(ev); - final boolean pointerUp = action == MotionEvent.ACTION_POINTER_UP; + final boolean pointerUp = + (action & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_POINTER_UP; final int skipIndex = pointerUp ? ev.getActionIndex() : -1; // Determine focal point From 1d963f3676fbe1a4c3fa99d857faa9927f9fc995 Mon Sep 17 00:00:00 2001 From: Daniel Sandler Date: Fri, 31 Aug 2012 14:57:09 -0400 Subject: [PATCH 39/61] Work around instability of Display.getRotation(). Ensures that the navigation buttons are properly oriented each time the screen comes on. Bug: 7086018 Change-Id: Iac6243792a8c64001ff7409108fb892bd470e4c4 --- .../systemui/statusbar/phone/PhoneStatusBar.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java index 9b4ee38f9e381..31bc8a0e68093 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -451,6 +451,7 @@ public class PhoneStatusBar extends BaseStatusBar { filter.addAction(Intent.ACTION_CONFIGURATION_CHANGED); filter.addAction(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); filter.addAction(Intent.ACTION_SCREEN_OFF); + filter.addAction(Intent.ACTION_SCREEN_ON); context.registerReceiver(mBroadcastReceiver, filter); return mStatusBarView; @@ -788,11 +789,6 @@ public class PhoneStatusBar extends BaseStatusBar { setAreThereNotifications(); } - @Override - protected void onConfigurationChanged(Configuration newConfig) { - updateShowSearchHoldoff(); - } - private void updateShowSearchHoldoff() { mShowSearchHoldoff = mContext.getResources().getInteger( R.integer.config_show_search_delay); @@ -1804,9 +1800,17 @@ public class PhoneStatusBar extends BaseStatusBar { makeExpandedInvisible(); } else if (Intent.ACTION_CONFIGURATION_CHANGED.equals(action)) { + if (DEBUG) { + Slog.v(TAG, "configuration changed: " + mContext.getResources().getConfiguration()); + } updateResources(); repositionNavigationBar(); updateExpandedViewPos(EXPANDED_LEAVE_ALONE); + updateShowSearchHoldoff(); + } + else if (Intent.ACTION_SCREEN_ON.equals(action)) { + // work around problem where mDisplay.getRotation() is not stable while screen is off (bug 7086018) + repositionNavigationBar(); } } }; From d2ed9d01c89d773a0a5088fe785fdcc793f915f5 Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Tue, 4 Sep 2012 10:55:44 -0700 Subject: [PATCH 40/61] Fix issue #7097984 java.lang.SecurityException: Permission Denial: broadcast asks to run as user -1 but is calling from user 0; this requires Also improve part of issue #7087789: Local denial of service via low-permissioned apps No longer allow closeSystemDialogs() from background processes. Change-Id: I752d5a1d51be0b69fde6999d6659835e5bde3efe --- .../server/am/ActivityManagerService.java | 37 ++++++++++++------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java index 590e9d9addc56..01ac8c0ab9863 100644 --- a/services/java/com/android/server/am/ActivityManagerService.java +++ b/services/java/com/android/server/am/ActivityManagerService.java @@ -153,7 +153,6 @@ import java.util.Iterator; import java.util.List; import java.util.Locale; import java.util.Map; -import java.util.Map.Entry; import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicLong; @@ -3570,15 +3569,32 @@ public final class ActivityManagerService extends ActivityManagerNative public void closeSystemDialogs(String reason) { enforceNotIsolatedCaller("closeSystemDialogs"); + final int pid = Binder.getCallingPid(); final int uid = Binder.getCallingUid(); final long origId = Binder.clearCallingIdentity(); - synchronized (this) { - closeSystemDialogsLocked(uid, reason); + try { + synchronized (this) { + // Only allow this from foreground processes, so that background + // applications can't abuse it to prevent system UI from being shown. + if (uid >= Process.FIRST_APPLICATION_UID) { + ProcessRecord proc; + synchronized (mPidsSelfLocked) { + proc = mPidsSelfLocked.get(pid); + } + if (proc.curRawAdj > ProcessList.PERCEPTIBLE_APP_ADJ) { + Slog.w(TAG, "Ignoring closeSystemDialogs " + reason + + " from background process " + proc); + return; + } + } + closeSystemDialogsLocked(reason); + } + } finally { + Binder.restoreCallingIdentity(origId); } - Binder.restoreCallingIdentity(origId); } - void closeSystemDialogsLocked(int callingUid, String reason) { + void closeSystemDialogsLocked(String reason) { Intent intent = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY); if (reason != null) { @@ -3594,14 +3610,9 @@ public final class ActivityManagerService extends ActivityManagerNative } } - final long origId = Binder.clearCallingIdentity(); - try { - broadcastIntentLocked(null, null, intent, null, - null, 0, null, null, null, false, false, -1, - callingUid, UserHandle.USER_ALL); - } finally { - Binder.restoreCallingIdentity(origId); - } + broadcastIntentLocked(null, null, intent, null, + null, 0, null, null, null, false, false, -1, + Process.SYSTEM_UID, UserHandle.USER_ALL); } public Debug.MemoryInfo[] getProcessMemoryInfo(int[] pids) From 3e4599a8d0c0e55e6ee33542eec37676461c6902 Mon Sep 17 00:00:00 2001 From: Jim Miller Date: Wed, 5 Sep 2012 12:17:55 -0700 Subject: [PATCH 41/61] Don't depend on LockPatternUtils to get DevicePolicyManager This fixes a crash where LockPatternUtils hasn't been set yet and keyguard attempts to get the device policy for widgets. This change breaks the dependency by getting a handle to DPM directly. Bug:7109723 Change-Id: Iecae91474358821ebd30456648377253864c35cf --- .../internal/policy/impl/keyguard/KeyguardHostView.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java index e0ba211c2e252..da2f268e3e2ac 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java @@ -582,7 +582,9 @@ public class KeyguardHostView extends KeyguardViewBase { } private void maybePopulateWidgets() { - if (mLockPatternUtils.getDevicePolicyManager().getKeyguardWidgetsDisabled(null) + DevicePolicyManager dpm = + (DevicePolicyManager) mContext.getSystemService(Context.DEVICE_POLICY_SERVICE); + if (dpm != null && dpm.getKeyguardWidgetsDisabled(null) != DevicePolicyManager.KEYGUARD_DISABLE_WIDGETS_NONE) { Log.v(TAG, "Keyguard widgets disabled because of device policy admin"); return; From f645da5b67960b12911620f7483a973a3d2d097b Mon Sep 17 00:00:00 2001 From: Craig Mautner Date: Thu, 6 Sep 2012 15:04:22 -0700 Subject: [PATCH 42/61] Convert resized() method to new parameters. When the BaseIWindow.resized method got switched from taking (int x, int y, ...) to taking (Rect, ...) the SurfaceView.MyWindow override never got updated. Fixes bug 6992324. Change-Id: Id0b9625559ae0100336f4573f09d313138c8a6e7 --- core/java/android/view/SurfaceView.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/core/java/android/view/SurfaceView.java b/core/java/android/view/SurfaceView.java index fdf1c226b510d..973c7f6328591 100644 --- a/core/java/android/view/SurfaceView.java +++ b/core/java/android/view/SurfaceView.java @@ -615,21 +615,22 @@ public class SurfaceView extends View { mSurfaceView = new WeakReference(surfaceView); } - public void resized(int w, int h, Rect contentInsets, + @Override + public void resized(Rect frame, Rect contentInsets, Rect visibleInsets, boolean reportDraw, Configuration newConfig) { SurfaceView surfaceView = mSurfaceView.get(); if (surfaceView != null) { if (DEBUG) Log.v( - "SurfaceView", surfaceView + " got resized: w=" + - w + " h=" + h + ", cur w=" + mCurWidth + " h=" + mCurHeight); + "SurfaceView", surfaceView + " got resized: w=" + frame.width() + + " h=" + frame.height() + ", cur w=" + mCurWidth + " h=" + mCurHeight); surfaceView.mSurfaceLock.lock(); try { if (reportDraw) { surfaceView.mUpdateWindowNeeded = true; surfaceView.mReportDrawNeeded = true; surfaceView.mHandler.sendEmptyMessage(UPDATE_WINDOW_MSG); - } else if (surfaceView.mWinFrame.width() != w - || surfaceView.mWinFrame.height() != h) { + } else if (surfaceView.mWinFrame.width() != frame.width() + || surfaceView.mWinFrame.height() != frame.height()) { surfaceView.mUpdateWindowNeeded = true; surfaceView.mHandler.sendEmptyMessage(UPDATE_WINDOW_MSG); } From 524a8895d2f9d076c036ca44c7ca3ced59723b73 Mon Sep 17 00:00:00 2001 From: Jim Miller Date: Thu, 6 Sep 2012 17:51:12 -0700 Subject: [PATCH 43/61] Fix EmergencyDialer button on devices without telephony hardware This fixes showing the emergency dialer on devices without telephony. Two fixes were required: 1. Move emergency dialer code to the view that contains it (KeyguardSelectorView). 2. Always call onPause() or onResume() in onScreenTurnedOff() and onScreenTurnedOn(), respectively. Fixes bug 7117895 Change-Id: I96769fdda8478b6b60f46f7470bed2279ea2de72 --- .../impl/keyguard/KeyguardHostView.java | 33 +----------- .../impl/keyguard/KeyguardSecurityModel.java | 3 +- .../impl/keyguard/KeyguardSelectorView.java | 54 +++++++++++++++---- .../impl/keyguard/KeyguardStatusView.java | 1 + .../keyguard/KeyguardStatusViewManager.java | 39 +------------- 5 files changed, 49 insertions(+), 81 deletions(-) diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java index 058bf922e3ef7..452fca0ee15b5 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java @@ -57,12 +57,6 @@ public class KeyguardHostView extends KeyguardViewBase { static final int APPWIDGET_HOST_ID = 0x4B455947; private static final String KEYGUARD_WIDGET_PREFS = "keyguard_widget_prefs"; - // time after launching EmergencyDialer before the screen goes blank. - private static final int EMERGENCY_CALL_TIMEOUT = 10000; - - // intent action for launching emergency dialer activity. - static final String ACTION_EMERGENCY_DIAL = "com.android.phone.EmergencyDialer.DIAL"; - private static final String TAG = "KeyguardViewHost"; private static final int SECURITY_SELECTOR_ID = R.id.keyguard_selector_view; @@ -76,7 +70,6 @@ public class KeyguardHostView extends KeyguardViewBase { private AppWidgetHost mAppWidgetHost; private KeyguardWidgetPager mAppWidgetContainer; private ViewFlipper mViewFlipper; - private Button mEmergencyDialerButton; private boolean mEnableMenuKey; private boolean mIsVerifyUnlockOnly; private boolean mEnableFallback; // TODO: This should get the value from KeyguardPatternView @@ -142,14 +135,6 @@ public class KeyguardHostView extends KeyguardViewBase { Log.v("*********", "Can't find view id " + mViewIds[i]); } } - - // Enable emergency dialer button - mEmergencyDialerButton = (Button) findViewById(R.id.emergency_call_button); - mEmergencyDialerButton.setOnClickListener(new OnClickListener() { - public void onClick(View v) { - takeEmergencyCallAction(); - } - }); } void setLockPatternUtils(LockPatternUtils utils) { @@ -225,22 +210,6 @@ public class KeyguardHostView extends KeyguardViewBase { }; - /** - * Shows the emergency dialer or returns the user to the existing call. - */ - public void takeEmergencyCallAction() { - mCallback.userActivity(EMERGENCY_CALL_TIMEOUT); - if (TelephonyManager.getDefault().getCallState() - == TelephonyManager.CALL_STATE_OFFHOOK) { - mLockPatternUtils.resumeCall(); - } else { - Intent intent = new Intent(ACTION_EMERGENCY_DIAL); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK - | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); - getContext().startActivity(intent); - } - } - private void showDialog(String title, String message) { final AlertDialog dialog = new AlertDialog.Builder(mContext) .setTitle(title) @@ -526,12 +495,14 @@ public class KeyguardHostView extends KeyguardViewBase { public void onScreenTurnedOn() { if (DEBUG) Log.d(TAG, "screen on"); showSecurityScreen(mCurrentSecurityId); + getSecurityView(mCurrentSecurityId).onResume(); } @Override public void onScreenTurnedOff() { if (DEBUG) Log.d(TAG, "screen off"); showSecurityScreen(SECURITY_SELECTOR_ID); + getSecurityView(mCurrentSecurityId).onPause(); } @Override diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSecurityModel.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSecurityModel.java index a19b35dda5716..75c4a7cc29f20 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSecurityModel.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSecurityModel.java @@ -69,7 +69,8 @@ public class KeyguardSecurityModel { SecurityMode mode = SecurityMode.None; if (simState == IccCardConstants.State.PIN_REQUIRED) { mode = SecurityMode.SimPin; - } else if (simState == IccCardConstants.State.PUK_REQUIRED) { + } else if (simState == IccCardConstants.State.PUK_REQUIRED + && mLockPatternUtils.isPukUnlockScreenEnable()) { mode = SecurityMode.SimPuk; } else { final int security = mLockPatternUtils.getKeyguardStoredPasswordQuality(); diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSelectorView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSelectorView.java index 28f5e8ca7d6d4..95772af8484f5 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSelectorView.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSelectorView.java @@ -25,6 +25,7 @@ import android.content.Intent; import android.os.RemoteException; import android.os.UserHandle; import android.provider.MediaStore; +import android.telephony.TelephonyManager; import android.util.AttributeSet; import android.util.Log; import android.util.Slog; @@ -33,6 +34,7 @@ import android.widget.Button; import android.widget.LinearLayout; import com.android.internal.telephony.IccCardConstants; +import com.android.internal.telephony.IccCardConstants.State; import com.android.internal.widget.LockPatternUtils; import com.android.internal.widget.multiwaveview.GlowPadView; import com.android.internal.widget.multiwaveview.GlowPadView.OnTriggerListener; @@ -43,6 +45,9 @@ public class KeyguardSelectorView extends LinearLayout implements KeyguardSecuri private static final String TAG = "SecuritySelectorView"; private static final String ASSIST_ICON_METADATA_NAME = "com.android.systemui.action_assist_icon"; + private static final int EMERGENCY_CALL_TIMEOUT = 10000; // screen timeout after starting e.d. + static final String ACTION_EMERGENCY_DIAL = "com.android.phone.EmergencyDialer.DIAL"; + private KeyguardSecurityCallback mCallback; private GlowPadView mGlowPadView; private Button mEmergencyCallButton; @@ -98,9 +103,19 @@ public class KeyguardSelectorView extends LinearLayout implements KeyguardSecuri }; - KeyguardUpdateMonitorCallback mInfoCallback = new KeyguardUpdateMonitorCallback() { + private void updateEmergencyCallButton(State simState, int phoneState) { + if (mEmergencyCallButton != null) { + boolean en = mLockPatternUtils.isEmergencyCallCapable() + || (phoneState == TelephonyManager.CALL_STATE_OFFHOOK); // voice call in progress + if (en && KeyguardUpdateMonitor.isSimLocked(simState)) { + // Some countries can't handle emergency calls while SIM is locked. + en = mLockPatternUtils.isEmergencyCallEnabledWhileSimLocked(); + } + mLockPatternUtils.updateEmergencyCallButtonState(mEmergencyCallButton, phoneState, en); + } + } - private boolean mEmergencyDialerDisableBecauseSimLocked; + KeyguardUpdateMonitorCallback mInfoCallback = new KeyguardUpdateMonitorCallback() { @Override public void onDevicePolicyManagerStateChanged() { @@ -108,19 +123,15 @@ public class KeyguardSelectorView extends LinearLayout implements KeyguardSecuri } @Override - public void onSimStateChanged(IccCardConstants.State simState) { - // Some carriers aren't capable of handling emergency calls while the SIM is locked - mEmergencyDialerDisableBecauseSimLocked = KeyguardUpdateMonitor.isSimLocked(simState) - && !mLockPatternUtils.isEmergencyCallEnabledWhileSimLocked(); + public void onSimStateChanged(State simState) { + int phoneState = KeyguardUpdateMonitor.getInstance(mContext).getPhoneState(); + updateEmergencyCallButton(simState, phoneState); updateTargets(); } void onPhoneStateChanged(int phoneState) { - if (mEmergencyCallButton != null) { - mLockPatternUtils.isEmergencyCallEnabledWhileSimLocked(); - mLockPatternUtils.updateEmergencyCallButtonState(mEmergencyCallButton, - phoneState, !mEmergencyDialerDisableBecauseSimLocked); - } + State simState = KeyguardUpdateMonitor.getInstance(mContext).getSimState(); + updateEmergencyCallButton(simState, phoneState); }; }; @@ -149,9 +160,30 @@ public class KeyguardSelectorView extends LinearLayout implements KeyguardSecuri mGlowPadView = (GlowPadView) findViewById(R.id.glow_pad_view); mGlowPadView.setOnTriggerListener(mOnTriggerListener); mEmergencyCallButton = (Button) findViewById(R.id.emergency_call_button); + mEmergencyCallButton.setOnClickListener(new OnClickListener() { + public void onClick(View v) { + takeEmergencyCallAction(); + } + }); updateTargets(); } + /** + * Shows the emergency dialer or returns the user to the existing call. + */ + public void takeEmergencyCallAction() { + mCallback.userActivity(EMERGENCY_CALL_TIMEOUT); + if (TelephonyManager.getDefault().getCallState() + == TelephonyManager.CALL_STATE_OFFHOOK) { + mLockPatternUtils.resumeCall(); + } else { + Intent intent = new Intent(ACTION_EMERGENCY_DIAL); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK + | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); + getContext().startActivity(intent); + } + } + public boolean isTargetPresent(int resId) { return mGlowPadView.getTargetPosition(resId) != -1; } diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusView.java index 481e9ad5433b9..57044259b445f 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusView.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusView.java @@ -21,6 +21,7 @@ import android.util.AttributeSet; import android.widget.GridLayout; public class KeyguardStatusView extends GridLayout { + @SuppressWarnings("unused") private KeyguardStatusViewManager mStatusViewManager; public KeyguardStatusView(Context context) { diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusViewManager.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusViewManager.java index 20fad0b9997ca..e325f948ae59a 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusViewManager.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusViewManager.java @@ -32,11 +32,10 @@ import android.text.TextUtils; import android.text.format.DateFormat; import android.util.Log; import android.view.View; -import android.widget.Button; import android.widget.TextView; /*** - * Manages a number of views inside of LockScreen layouts. See below for a list of widgets + * Manages a number of views inside of the given layout. See below for a list of widgets. */ class KeyguardStatusViewManager { private static final boolean DEBUG = false; @@ -92,21 +91,12 @@ class KeyguardStatusViewManager { private boolean mShowingStatus; private CharSequence mPlmn; private CharSequence mSpn; - protected int mPhoneState; private DigitalClock mDigitalClock; protected boolean mBatteryCharged; protected boolean mBatteryIsLow; - private boolean mEmergencyButtonEnabledBecauseSimLocked; - private Button mEmergencyCallButton; - private boolean mEmergencyCallButtonEnabledInScreen; /** - * * @param view the containing view of all widgets - * @param updateMonitor the update monitor to use - * @param lockPatternUtils lock pattern util object - * @param callback used to invoke emergency dialer - * @param emergencyButtonEnabledInScreen whether emergency button is enabled by default */ public KeyguardStatusViewManager(View view) { if (DEBUG) Log.v(TAG, "KeyguardStatusViewManager()"); @@ -364,7 +354,6 @@ class KeyguardStatusViewManager { CharSequence carrierText = null; int carrierHelpTextId = 0; - mEmergencyButtonEnabledBecauseSimLocked = false; mStatus = getStatusForIccState(simState); mSimState = simState; switch (mStatus) { @@ -394,7 +383,6 @@ class KeyguardStatusViewManager { carrierText = getContext().getText( R.string.lockscreen_permanent_disabled_sim_message_short); carrierHelpTextId = R.string.lockscreen_permanent_disabled_sim_instructions; - mEmergencyButtonEnabledBecauseSimLocked = true; break; case SimMissingLocked: @@ -402,33 +390,25 @@ class KeyguardStatusViewManager { getContext().getText(R.string.lockscreen_missing_sim_message_short), mPlmn); carrierHelpTextId = R.string.lockscreen_missing_sim_instructions; - mEmergencyButtonEnabledBecauseSimLocked = true; break; case SimLocked: carrierText = makeCarrierStringOnEmergencyCapable( getContext().getText(R.string.lockscreen_sim_locked_message), mPlmn); - mEmergencyButtonEnabledBecauseSimLocked = true; break; case SimPukLocked: carrierText = makeCarrierStringOnEmergencyCapable( getContext().getText(R.string.lockscreen_sim_puk_locked_message), mPlmn); - if (!mLockPatternUtils.isPukUnlockScreenEnable()) { - // This means we're showing the PUK unlock screen - mEmergencyButtonEnabledBecauseSimLocked = true; - } break; } setCarrierText(carrierText); setCarrierHelpText(carrierHelpTextId); - updateEmergencyCallButtonState(mPhoneState); } - /* * Add emergencyCallMessage to carrier string only if phone supports emergency calls. */ @@ -500,17 +480,6 @@ class KeyguardStatusViewManager { } } - private void updateEmergencyCallButtonState(int phoneState) { - if (mEmergencyCallButton != null) { - boolean enabledBecauseSimLocked = - mLockPatternUtils.isEmergencyCallEnabledWhileSimLocked() - && mEmergencyButtonEnabledBecauseSimLocked; - boolean shown = mEmergencyCallButtonEnabledInScreen || enabledBecauseSimLocked; - mLockPatternUtils.updateEmergencyCallButtonState(mEmergencyCallButton, - phoneState, shown); - } - } - private KeyguardUpdateMonitorCallback mInfoCallback = new KeyguardUpdateMonitorCallback() { @Override @@ -536,12 +505,6 @@ class KeyguardStatusViewManager { updateCarrierStateWithSimStatus(mSimState); } - @Override - public void onPhoneStateChanged(int phoneState) { - mPhoneState = phoneState; - updateEmergencyCallButtonState(phoneState); - } - @Override public void onSimStateChanged(IccCardConstants.State simState) { updateCarrierStateWithSimStatus(simState); From 24637410fec30fc53a7ca6a0d5f1b28f0b0e886e Mon Sep 17 00:00:00 2001 From: Felipe Leme Date: Thu, 6 Sep 2012 11:41:20 -0700 Subject: [PATCH 44/61] Wrapped call to notifyAll() in a synchronized block Change-Id: I452caa56bef4541b53917bdd6f22034161255dd1 Bug: 7118468 --- cmds/am/src/com/android/commands/am/Am.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cmds/am/src/com/android/commands/am/Am.java b/cmds/am/src/com/android/commands/am/Am.java index bcd4588dfff2b..c8f44522c8ca3 100644 --- a/cmds/am/src/com/android/commands/am/Am.java +++ b/cmds/am/src/com/android/commands/am/Am.java @@ -1188,8 +1188,10 @@ public class Am { if (data != null) line = line + ", data=\"" + data + "\""; if (extras != null) line = line + ", extras: " + extras; System.out.println(line); - mFinished = true; - notifyAll(); + synchronized (this) { + mFinished = true; + notifyAll(); + } } public synchronized void waitForFinish() { From dedb4511984f08218f6e4b0e03ea78f2d8e5ea0d Mon Sep 17 00:00:00 2001 From: Jeff Brown Date: Sun, 9 Sep 2012 13:26:55 -0700 Subject: [PATCH 45/61] Disable wifi display API when the adapter is not registered. Bug: 7132341 Change-Id: I46d859082077afd2c8adc829ad285977dff80d07 --- .../statusbar/phone/QuickSettings.java | 7 ------- .../server/display/DisplayManagerService.java | 18 ++++++++++++++---- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java index e9dd70a0a47bc..b0e7a9ec810c2 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java @@ -22,18 +22,15 @@ import android.bluetooth.BluetoothAdapter.BluetoothStateChangeCallback; import android.content.BroadcastReceiver; import android.content.Context; import android.content.CursorLoader; -import android.content.DialogInterface; import android.content.Intent; import android.content.IntentFilter; import android.content.Loader; import android.content.res.Resources; import android.database.Cursor; -import android.database.DataSetObserver; import android.graphics.drawable.ClipDrawable; import android.hardware.display.DisplayManager; import android.hardware.display.WifiDisplay; import android.hardware.display.WifiDisplayStatus; -import android.hardware.input.KeyboardLayout; import android.net.Uri; import android.provider.ContactsContract; import android.provider.Settings; @@ -44,12 +41,8 @@ import android.view.WindowManager; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; -import android.widget.CheckedTextView; import android.widget.ListView; -import android.widget.RadioButton; import android.widget.TextView; -import android.widget.Toast; -import android.widget.ListAdapter; import java.util.ArrayList; import java.util.Comparator; diff --git a/services/java/com/android/server/display/DisplayManagerService.java b/services/java/com/android/server/display/DisplayManagerService.java index e11d454756686..39f2418a57db7 100644 --- a/services/java/com/android/server/display/DisplayManagerService.java +++ b/services/java/com/android/server/display/DisplayManagerService.java @@ -352,7 +352,9 @@ public final class DisplayManagerService extends IDisplayManager.Stub { final long token = Binder.clearCallingIdentity(); try { synchronized (mSyncRoot) { - mWifiDisplayAdapter.requestScanLocked(); + if (mWifiDisplayAdapter != null) { + mWifiDisplayAdapter.requestScanLocked(); + } } } finally { Binder.restoreCallingIdentity(token); @@ -372,7 +374,9 @@ public final class DisplayManagerService extends IDisplayManager.Stub { final long token = Binder.clearCallingIdentity(); try { synchronized (mSyncRoot) { - mWifiDisplayAdapter.requestConnectLocked(address); + if (mWifiDisplayAdapter != null) { + mWifiDisplayAdapter.requestConnectLocked(address); + } } } finally { Binder.restoreCallingIdentity(token); @@ -389,7 +393,9 @@ public final class DisplayManagerService extends IDisplayManager.Stub { final long token = Binder.clearCallingIdentity(); try { synchronized (mSyncRoot) { - mWifiDisplayAdapter.requestDisconnectLocked(); + if (mWifiDisplayAdapter != null) { + mWifiDisplayAdapter.requestDisconnectLocked(); + } } } finally { Binder.restoreCallingIdentity(token); @@ -406,7 +412,11 @@ public final class DisplayManagerService extends IDisplayManager.Stub { final long token = Binder.clearCallingIdentity(); try { synchronized (mSyncRoot) { - return mWifiDisplayAdapter.getWifiDisplayStatusLocked(); + if (mWifiDisplayAdapter != null) { + return mWifiDisplayAdapter.getWifiDisplayStatusLocked(); + } else { + return new WifiDisplayStatus(); + } } } finally { Binder.restoreCallingIdentity(token); From 63bdb3465eb74f075a09ba82ca5c4862cdbd0cd7 Mon Sep 17 00:00:00 2001 From: Jeff Brown Date: Sun, 9 Sep 2012 13:56:17 -0700 Subject: [PATCH 46/61] Copy all mutable state before sending to clients. This resolves an issue with ConcurrentModificationException or inconsistent data being perceived by clients. Fixed an NPE in the WifiP2pDeviceList copy constructor. Bug: 7133752 Change-Id: I37a4d004f7b1ca21d490f131039d81695db2ba42 --- .../android/net/wifi/p2p/WifiP2pDeviceList.java | 4 +--- .../android/net/wifi/p2p/WifiP2pGroupList.java | 16 ++++++++++++---- .../android/net/wifi/p2p/WifiP2pService.java | 17 ++++++++++------- 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/wifi/java/android/net/wifi/p2p/WifiP2pDeviceList.java b/wifi/java/android/net/wifi/p2p/WifiP2pDeviceList.java index 48cdbc2d84263..157dc5095778d 100644 --- a/wifi/java/android/net/wifi/p2p/WifiP2pDeviceList.java +++ b/wifi/java/android/net/wifi/p2p/WifiP2pDeviceList.java @@ -35,10 +35,9 @@ import java.util.HashMap; */ public class WifiP2pDeviceList implements Parcelable { - private HashMap mDevices; + private final HashMap mDevices = new HashMap(); public WifiP2pDeviceList() { - mDevices = new HashMap(); } /** copy constructor */ @@ -52,7 +51,6 @@ public class WifiP2pDeviceList implements Parcelable { /** @hide */ public WifiP2pDeviceList(ArrayList devices) { - mDevices = new HashMap(); for (WifiP2pDevice device : devices) { if (device.deviceAddress != null) { mDevices.put(device.deviceAddress, device); diff --git a/wifi/java/android/net/wifi/p2p/WifiP2pGroupList.java b/wifi/java/android/net/wifi/p2p/WifiP2pGroupList.java index 3459a5a0c4aab..98f09726bb3ac 100644 --- a/wifi/java/android/net/wifi/p2p/WifiP2pGroupList.java +++ b/wifi/java/android/net/wifi/p2p/WifiP2pGroupList.java @@ -16,6 +16,7 @@ package android.net.wifi.p2p; import java.util.Collection; +import java.util.Map; import android.os.Parcel; import android.os.Parcelable; @@ -32,8 +33,9 @@ public class WifiP2pGroupList implements Parcelable { private static final int CREDENTIAL_MAX_NUM = 32; - private LruCache mGroups; - private GroupDeleteListener mListener; + private final LruCache mGroups; + private final GroupDeleteListener mListener; + private boolean isClearCalled = false; public interface GroupDeleteListener { @@ -41,10 +43,10 @@ public class WifiP2pGroupList implements Parcelable { } WifiP2pGroupList() { - this(null); + this(null, null); } - WifiP2pGroupList(GroupDeleteListener listener) { + WifiP2pGroupList(WifiP2pGroupList source, GroupDeleteListener listener) { mListener = listener; mGroups = new LruCache(CREDENTIAL_MAX_NUM) { @Override @@ -55,6 +57,12 @@ public class WifiP2pGroupList implements Parcelable { } } }; + + if (source != null) { + for (Map.Entry item : source.mGroups.snapshot().entrySet()) { + mGroups.put(item.getKey(), item.getValue()); + } + } } /** diff --git a/wifi/java/android/net/wifi/p2p/WifiP2pService.java b/wifi/java/android/net/wifi/p2p/WifiP2pService.java index a6770bdad6811..3575d97586811 100644 --- a/wifi/java/android/net/wifi/p2p/WifiP2pService.java +++ b/wifi/java/android/net/wifi/p2p/WifiP2pService.java @@ -359,8 +359,8 @@ public class WifiP2pService extends IWifiP2pManager.Stub { private WifiNative mWifiNative = new WifiNative(mInterface); private WifiMonitor mWifiMonitor = new WifiMonitor(this, mWifiNative); - private WifiP2pDeviceList mPeers = new WifiP2pDeviceList(); - private WifiP2pGroupList mGroups = new WifiP2pGroupList( + private final WifiP2pDeviceList mPeers = new WifiP2pDeviceList(); + private final WifiP2pGroupList mGroups = new WifiP2pGroupList(null, new GroupDeleteListener() { @Override public void onDeleteGroup(int netId) { @@ -370,7 +370,7 @@ public class WifiP2pService extends IWifiP2pManager.Stub { sendP2pPersistentGroupsChangedBroadcast(); } }); - private WifiP2pInfo mWifiP2pInfo = new WifiP2pInfo(); + private final WifiP2pInfo mWifiP2pInfo = new WifiP2pInfo(); private WifiP2pGroup mGroup; // Saved WifiP2pConfig for a peer connection @@ -501,17 +501,20 @@ public class WifiP2pService extends IWifiP2pManager.Stub { WifiP2pManager.BUSY); break; case WifiP2pManager.REQUEST_PEERS: - replyToMessage(message, WifiP2pManager.RESPONSE_PEERS, mPeers); + replyToMessage(message, WifiP2pManager.RESPONSE_PEERS, + new WifiP2pDeviceList(mPeers)); break; case WifiP2pManager.REQUEST_CONNECTION_INFO: - replyToMessage(message, WifiP2pManager.RESPONSE_CONNECTION_INFO, mWifiP2pInfo); + replyToMessage(message, WifiP2pManager.RESPONSE_CONNECTION_INFO, + new WifiP2pInfo(mWifiP2pInfo)); break; case WifiP2pManager.REQUEST_GROUP_INFO: - replyToMessage(message, WifiP2pManager.RESPONSE_GROUP_INFO, mGroup); + replyToMessage(message, WifiP2pManager.RESPONSE_GROUP_INFO, + mGroup != null ? new WifiP2pGroup(mGroup) : null); break; case WifiP2pManager.REQUEST_PERSISTENT_GROUP_INFO: replyToMessage(message, WifiP2pManager.RESPONSE_PERSISTENT_GROUP_INFO, - mGroups); + new WifiP2pGroupList(mGroups, null)); break; case WifiP2pManager.SET_DIALOG_LISTENER: String appPkgName = (String)message.getData().getString( From 28764129478bbb4885e2bf347c29dc3b400116db Mon Sep 17 00:00:00 2001 From: Chet Haase Date: Sun, 9 Sep 2012 16:13:26 -0700 Subject: [PATCH 47/61] Reset GL buffer state after functor invocation Functors in WebView were binding to different buffers than we assumed in the toolkit, eventually causing a crash due to improper dereferencing in the currently bound buffer. Fix is to reset state after invoking functors. Issue #6666279 Native crash in Currents, mostly on Nakasi Change-Id: I3697812d83613fffc9193daa99beea4dbf26474a --- libs/hwui/OpenGLRenderer.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp index 9f8b87c810963..f4c267538ff03 100644 --- a/libs/hwui/OpenGLRenderer.cpp +++ b/libs/hwui/OpenGLRenderer.cpp @@ -299,10 +299,12 @@ status_t OpenGLRenderer::invokeFunctors(Rect& dirty) { mFunctors.add(f); } } + // protect against functors binding to other buffers + mCaches.unbindMeshBuffer(); + mCaches.unbindIndicesBuffer(); + mCaches.activeTexture(0); } - mCaches.activeTexture(0); - return result; } From e29b24b14977353a6d769f2cd5448b3cd7d5279a Mon Sep 17 00:00:00 2001 From: alanv Date: Mon, 10 Sep 2012 11:10:25 -0700 Subject: [PATCH 48/61] Check for null ViewRootImpl when saving accessibility focus in ListView. Bug: 7135071 Change-Id: Ide8b6af38b7f1b9bb809e4f8b1c933cb5ddb5e86 --- core/java/android/widget/ListView.java | 34 +++++++++++++++----------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/core/java/android/widget/ListView.java b/core/java/android/widget/ListView.java index 938979a05faee..03507b5ffd8ad 100644 --- a/core/java/android/widget/ListView.java +++ b/core/java/android/widget/ListView.java @@ -38,6 +38,7 @@ import android.view.View; import android.view.ViewDebug; import android.view.ViewGroup; import android.view.ViewParent; +import android.view.ViewRootImpl; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityNodeInfo; import android.widget.RemoteViews.RemoteView; @@ -1590,20 +1591,25 @@ public class ListView extends AbsListView { } // Remember which child, if any, had accessibility focus. - final View accessFocusedView = getViewRootImpl().getAccessibilityFocusedHost(); - if (accessFocusedView != null) { - final View accessFocusedChild = findAccessibilityFocusedChild(accessFocusedView); - if (accessFocusedChild != null) { - if (!dataChanged || isDirectChildHeaderOrFooter(accessFocusedChild)) { - // If the views won't be changing, try to maintain focus - // on the current view host and (if applicable) its - // virtual view. - accessibilityFocusLayoutRestoreView = accessFocusedView; - accessibilityFocusLayoutRestoreNode = getViewRootImpl() - .getAccessibilityFocusedVirtualView(); - } else { - // Otherwise, try to maintain focus at the same position. - accessibilityFocusPosition = getPositionForView(accessFocusedChild); + final ViewRootImpl viewRootImpl = getViewRootImpl(); + if (viewRootImpl != null) { + final View accessFocusedView = viewRootImpl.getAccessibilityFocusedHost(); + if (accessFocusedView != null) { + final View accessFocusedChild = findAccessibilityFocusedChild( + accessFocusedView); + if (accessFocusedChild != null) { + if (!dataChanged || isDirectChildHeaderOrFooter(accessFocusedChild)) { + // If the views won't be changing, try to maintain + // focus on the current view host and (if + // applicable) its virtual view. + accessibilityFocusLayoutRestoreView = accessFocusedView; + accessibilityFocusLayoutRestoreNode = viewRootImpl + .getAccessibilityFocusedVirtualView(); + } else { + // Otherwise, try to maintain focus at the same + // position. + accessibilityFocusPosition = getPositionForView(accessFocusedChild); + } } } } From c9d834d0eeed07d8cd06f9912af2711116396a0d Mon Sep 17 00:00:00 2001 From: Christopher Tate Date: Mon, 10 Sep 2012 16:50:14 -0700 Subject: [PATCH 49/61] Update airplane-mode manipulation for the new Settings namespace Quick Settings and global actions (aka longpress-Power) toggles are included in this CL. The Settings app manipulations are updated in a different CL because that's a different git package. Bug 7132230 Change-Id: I50838f5e8d7b25a750d2bcae90bf384b09816dbb --- .../ConnectivityManagerTestActivity.java | 5 +++-- .../ConnectivityManagerMobileTest.java | 8 ++++---- .../android/app/DownloadManagerBaseTest.java | 9 +++++---- .../statusbar/phone/QuickSettings.java | 5 +++-- .../policy/AirplaneModeController.java | 6 +++--- .../statusbar/policy/NetworkController.java | 4 ++-- .../internal/policy/impl/GlobalActions.java | 10 +++++----- .../server/BluetoothManagerService.java | 14 ++++++------- .../java/com/android/server/WifiService.java | 20 +++++++++---------- .../ComprehensiveCountryDetector.java | 4 ++-- 10 files changed, 44 insertions(+), 41 deletions(-) diff --git a/core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/ConnectivityManagerTestActivity.java b/core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/ConnectivityManagerTestActivity.java index 216344d5c323d..561e33e15d887 100644 --- a/core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/ConnectivityManagerTestActivity.java +++ b/core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/ConnectivityManagerTestActivity.java @@ -36,6 +36,7 @@ import android.os.Message; import android.os.PowerManager; import android.os.ServiceManager; import android.os.SystemClock; +import android.os.UserHandle; import android.provider.Settings; import android.util.Log; import android.view.KeyEvent; @@ -696,12 +697,12 @@ public class ConnectivityManagerTestActivity extends Activity { */ public void setAirplaneMode(Context context, boolean enableAM) { //set the airplane mode - Settings.System.putInt(context.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, + Settings.Global.putInt(context.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, enableAM ? 1 : 0); // Post the intent Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED); intent.putExtra("state", enableAM); - context.sendBroadcast(intent); + context.sendBroadcastAsUser(intent, UserHandle.ALL); } protected static String convertToQuotedString(String string) { diff --git a/core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/functional/ConnectivityManagerMobileTest.java b/core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/functional/ConnectivityManagerMobileTest.java index bf188d3dc9b1b..79288222a5869 100644 --- a/core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/functional/ConnectivityManagerMobileTest.java +++ b/core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/functional/ConnectivityManagerMobileTest.java @@ -59,8 +59,8 @@ public class ConnectivityManagerMobileTest extends wl = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "CMWakeLock"); wl.acquire(); // Each test case will start with cellular connection - if (Settings.System.getInt(getInstrumentation().getContext().getContentResolver(), - Settings.System.AIRPLANE_MODE_ON) == 1) { + if (Settings.Global.getInt(getInstrumentation().getContext().getContentResolver(), + Settings.Global.AIRPLANE_MODE_ON) == 1) { log("airplane is not disabled, disable it."); cmActivity.setAirplaneMode(getInstrumentation().getContext(), false); } @@ -84,8 +84,8 @@ public class ConnectivityManagerMobileTest extends wl.release(); cmActivity.removeConfiguredNetworksAndDisableWifi(); // if airplane mode is set, disable it. - if (Settings.System.getInt(getInstrumentation().getContext().getContentResolver(), - Settings.System.AIRPLANE_MODE_ON) == 1) { + if (Settings.Global.getInt(getInstrumentation().getContext().getContentResolver(), + Settings.Global.AIRPLANE_MODE_ON) == 1) { log("disable airplane mode if it is enabled"); cmActivity.setAirplaneMode(getInstrumentation().getContext(), false); } diff --git a/core/tests/coretests/src/android/app/DownloadManagerBaseTest.java b/core/tests/coretests/src/android/app/DownloadManagerBaseTest.java index b2075aeec54d9..af2a9446f3483 100644 --- a/core/tests/coretests/src/android/app/DownloadManagerBaseTest.java +++ b/core/tests/coretests/src/android/app/DownloadManagerBaseTest.java @@ -29,6 +29,7 @@ import android.net.Uri; import android.net.wifi.WifiManager; import android.os.Environment; import android.os.ParcelFileDescriptor; +import android.os.UserHandle; import android.os.ParcelFileDescriptor.AutoCloseInputStream; import android.os.SystemClock; import android.provider.Settings; @@ -553,7 +554,7 @@ public class DownloadManagerBaseTest extends InstrumentationTestCase { int state = enable ? 1 : 0; // Change the system setting - Settings.System.putInt(mContext.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, + Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, state); String timeoutMessage = "Timed out waiting for airplane mode to be " + @@ -561,8 +562,8 @@ public class DownloadManagerBaseTest extends InstrumentationTestCase { // wait for airplane mode to change state int currentWaitTime = 0; - while (Settings.System.getInt(mContext.getContentResolver(), - Settings.System.AIRPLANE_MODE_ON, -1) != state) { + while (Settings.Global.getInt(mContext.getContentResolver(), + Settings.Global.AIRPLANE_MODE_ON, -1) != state) { timeoutWait(currentWaitTime, DEFAULT_WAIT_POLL_TIME, DEFAULT_MAX_WAIT_TIME, timeoutMessage); } @@ -570,7 +571,7 @@ public class DownloadManagerBaseTest extends InstrumentationTestCase { // Post the intent Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED); intent.putExtra("state", true); - mContext.sendBroadcast(intent); + mContext.sendBroadcastAsUser(intent, UserHandle.ALL); } /** diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java index f374c1128f6ce..cad6d576f4bea 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java @@ -32,6 +32,7 @@ import android.hardware.display.DisplayManager; import android.hardware.display.WifiDisplay; import android.hardware.display.WifiDisplayStatus; import android.net.Uri; +import android.os.UserHandle; import android.provider.ContactsContract; import android.provider.Settings; import android.view.LayoutInflater; @@ -147,7 +148,7 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, // TODO: Sets the view to be "awaiting" if not already awaiting // Change the system setting - Settings.System.putInt(mContext.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, + Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, enabled ? 1 : 0); // TODO: Update the UI to reflect system setting @@ -156,7 +157,7 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, // Post the intent Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED); intent.putExtra("state", enabled); - mContext.sendBroadcast(intent); + mContext.sendBroadcastAsUser(intent, UserHandle.ALL); } // NetworkSignalChanged callback @Override diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/AirplaneModeController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/AirplaneModeController.java index edad3707eabaf..3c8276d9bfa8c 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/AirplaneModeController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/AirplaneModeController.java @@ -74,7 +74,7 @@ public class AirplaneModeController extends BroadcastReceiver private boolean getAirplaneMode() { ContentResolver cr = mContext.getContentResolver(); - return 0 != Settings.System.getInt(cr, Settings.System.AIRPLANE_MODE_ON, 0); + return 0 != Settings.Global.getInt(cr, Settings.Global.AIRPLANE_MODE_ON, 0); } // TODO: Fix this racy API by adding something better to TelephonyManager or @@ -82,9 +82,9 @@ public class AirplaneModeController extends BroadcastReceiver private void unsafe(final boolean enabled) { AsyncTask.execute(new Runnable() { public void run() { - Settings.System.putInt( + Settings.Global.putInt( mContext.getContentResolver(), - Settings.System.AIRPLANE_MODE_ON, + Settings.Global.AIRPLANE_MODE_ON, enabled ? 1 : 0); Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED); intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java index 23f27e7f4678c..ea7235dd88f63 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java @@ -509,8 +509,8 @@ public class NetworkController extends BroadcastReceiver { } private void updateAirplaneMode() { - mAirplaneMode = (Settings.System.getInt(mContext.getContentResolver(), - Settings.System.AIRPLANE_MODE_ON, 0) == 1); + mAirplaneMode = (Settings.Global.getInt(mContext.getContentResolver(), + Settings.Global.AIRPLANE_MODE_ON, 0) == 1); } private final void updateTelephonySignalStrength() { diff --git a/policy/src/com/android/internal/policy/impl/GlobalActions.java b/policy/src/com/android/internal/policy/impl/GlobalActions.java index 10f45a5ee8af3..753b864f85b68 100644 --- a/policy/src/com/android/internal/policy/impl/GlobalActions.java +++ b/policy/src/com/android/internal/policy/impl/GlobalActions.java @@ -115,7 +115,7 @@ class GlobalActions implements DialogInterface.OnDismissListener, DialogInterfac context.getSystemService(Context.CONNECTIVITY_SERVICE); mHasTelephony = cm.isNetworkSupported(ConnectivityManager.TYPE_MOBILE); mContext.getContentResolver().registerContentObserver( - Settings.System.getUriFor(Settings.System.AIRPLANE_MODE_ON), true, + Settings.Global.getUriFor(Settings.Global.AIRPLANE_MODE_ON), true, mAirplaneModeObserver); Vibrator vibrator = (Vibrator) mContext.getSystemService(Context.VIBRATOR_SERVICE); mHasVibrator = vibrator != null && vibrator.hasVibrator(); @@ -849,9 +849,9 @@ class GlobalActions implements DialogInterface.OnDismissListener, DialogInterfac // Let the service state callbacks handle the state. if (mHasTelephony) return; - boolean airplaneModeOn = Settings.System.getInt( + boolean airplaneModeOn = Settings.Global.getInt( mContext.getContentResolver(), - Settings.System.AIRPLANE_MODE_ON, + Settings.Global.AIRPLANE_MODE_ON, 0) == 1; mAirplaneState = airplaneModeOn ? ToggleAction.State.On : ToggleAction.State.Off; mAirplaneModeOn.updateState(mAirplaneState); @@ -861,9 +861,9 @@ class GlobalActions implements DialogInterface.OnDismissListener, DialogInterfac * Change the airplane mode system setting */ private void changeAirplaneModeSystemSetting(boolean on) { - Settings.System.putInt( + Settings.Global.putInt( mContext.getContentResolver(), - Settings.System.AIRPLANE_MODE_ON, + Settings.Global.AIRPLANE_MODE_ON, on ? 1 : 0); Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED); intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING); diff --git a/services/java/com/android/server/BluetoothManagerService.java b/services/java/com/android/server/BluetoothManagerService.java index 9404dce6a6cc6..e68686de5ffee 100755 --- a/services/java/com/android/server/BluetoothManagerService.java +++ b/services/java/com/android/server/BluetoothManagerService.java @@ -75,12 +75,12 @@ class BluetoothManagerService extends IBluetoothManager.Stub { private void registerForAirplaneMode(IntentFilter filter) { final ContentResolver resolver = mContext.getContentResolver(); - final String airplaneModeRadios = Settings.System.getString(resolver, - Settings.System.AIRPLANE_MODE_RADIOS); - final String toggleableRadios = Settings.System.getString(resolver, - Settings.System.AIRPLANE_MODE_TOGGLEABLE_RADIOS); + final String airplaneModeRadios = Settings.Global.getString(resolver, + Settings.Global.AIRPLANE_MODE_RADIOS); + final String toggleableRadios = Settings.Global.getString(resolver, + Settings.Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS); boolean mIsAirplaneSensitive = airplaneModeRadios == null ? true : - airplaneModeRadios.contains(Settings.System.RADIO_BLUETOOTH); + airplaneModeRadios.contains(Settings.Global.RADIO_BLUETOOTH); if (mIsAirplaneSensitive) { filter.addAction(Intent.ACTION_AIRPLANE_MODE_CHANGED); } @@ -151,8 +151,8 @@ class BluetoothManagerService extends IBluetoothManager.Stub { * Returns true if airplane mode is currently on */ private final boolean isAirplaneModeOn() { - return Settings.System.getInt(mContext.getContentResolver(), - Settings.System.AIRPLANE_MODE_ON, 0) == 1; + return Settings.Global.getInt(mContext.getContentResolver(), + Settings.Global.AIRPLANE_MODE_ON, 0) == 1; } /** diff --git a/services/java/com/android/server/WifiService.java b/services/java/com/android/server/WifiService.java index 6bc5e10741201..7ed4f8a39b210 100644 --- a/services/java/com/android/server/WifiService.java +++ b/services/java/com/android/server/WifiService.java @@ -1179,17 +1179,17 @@ public class WifiService extends IWifiManager.Stub { } private boolean isAirplaneSensitive() { - String airplaneModeRadios = Settings.System.getString(mContext.getContentResolver(), - Settings.System.AIRPLANE_MODE_RADIOS); + String airplaneModeRadios = Settings.Global.getString(mContext.getContentResolver(), + Settings.Global.AIRPLANE_MODE_RADIOS); return airplaneModeRadios == null - || airplaneModeRadios.contains(Settings.System.RADIO_WIFI); + || airplaneModeRadios.contains(Settings.Global.RADIO_WIFI); } private boolean isAirplaneToggleable() { - String toggleableRadios = Settings.System.getString(mContext.getContentResolver(), - Settings.System.AIRPLANE_MODE_TOGGLEABLE_RADIOS); + String toggleableRadios = Settings.Global.getString(mContext.getContentResolver(), + Settings.Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS); return toggleableRadios != null - && toggleableRadios.contains(Settings.System.RADIO_WIFI); + && toggleableRadios.contains(Settings.Global.RADIO_WIFI); } /** @@ -1198,8 +1198,8 @@ public class WifiService extends IWifiManager.Stub { * @return {@code true} if airplane mode is on. */ private boolean isAirplaneModeOn() { - return isAirplaneSensitive() && Settings.System.getInt(mContext.getContentResolver(), - Settings.System.AIRPLANE_MODE_ON, 0) == 1; + return isAirplaneSensitive() && Settings.Global.getInt(mContext.getContentResolver(), + Settings.Global.AIRPLANE_MODE_ON, 0) == 1; } @Override @@ -1213,8 +1213,8 @@ public class WifiService extends IWifiManager.Stub { } pw.println("Wi-Fi is " + mWifiStateMachine.syncGetWifiStateByName()); pw.println("Stay-awake conditions: " + - Settings.System.getInt(mContext.getContentResolver(), - Settings.System.STAY_ON_WHILE_PLUGGED_IN, 0)); + Settings.Global.getInt(mContext.getContentResolver(), + Settings.Global.STAY_ON_WHILE_PLUGGED_IN, 0)); pw.println(); pw.println("Internal state:"); diff --git a/services/java/com/android/server/location/ComprehensiveCountryDetector.java b/services/java/com/android/server/location/ComprehensiveCountryDetector.java index 1026a0d9af6f1..354858b15368a 100755 --- a/services/java/com/android/server/location/ComprehensiveCountryDetector.java +++ b/services/java/com/android/server/location/ComprehensiveCountryDetector.java @@ -384,8 +384,8 @@ public class ComprehensiveCountryDetector extends CountryDetectorBase { } protected boolean isAirplaneModeOff() { - return Settings.System.getInt( - mContext.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 0) == 0; + return Settings.Global.getInt( + mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 0) == 0; } /** From dce2a53a3df11d01ebfe85f200e69909428ce2c5 Mon Sep 17 00:00:00 2001 From: Winson Chung Date: Tue, 11 Sep 2012 10:00:53 -0700 Subject: [PATCH 50/61] Fixing issue with Airplane Mode. (Bug 7141144) Change-Id: I83e2bdd5e8b0e0c732e8d46c47f8619daa0c7c02 --- packages/SystemUI/AndroidManifest.xml | 1 + .../android/systemui/statusbar/phone/QuickSettingsModel.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/SystemUI/AndroidManifest.xml b/packages/SystemUI/AndroidManifest.xml index 22a97bd3794f1..44fb49a83612c 100644 --- a/packages/SystemUI/AndroidManifest.xml +++ b/packages/SystemUI/AndroidManifest.xml @@ -19,6 +19,7 @@ + diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java index 0d7540b30d193..2318921c007db 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java @@ -186,7 +186,7 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, // TODO: Sets the view to be "awaiting" if not already awaiting // Change the system setting - Settings.System.putInt(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, + Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, enabled ? 1 : 0); // Post the intent From fe9c14f01b811c0891666dc99bc8445f7b0e8b63 Mon Sep 17 00:00:00 2001 From: rich cannings Date: Wed, 12 Sep 2012 14:45:58 -0700 Subject: [PATCH 51/61] Temporarily turn off package verification Bug: 7152858 Change-Id: Ic3b1900e486224dafcf3cce5db13e5f795650b51 --- services/java/com/android/server/pm/PackageManagerService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/java/com/android/server/pm/PackageManagerService.java b/services/java/com/android/server/pm/PackageManagerService.java index 8ce474aa13b6e..01a9b4b7b0a48 100644 --- a/services/java/com/android/server/pm/PackageManagerService.java +++ b/services/java/com/android/server/pm/PackageManagerService.java @@ -215,7 +215,7 @@ public class PackageManagerService extends IPackageManager.Stub { /** * Whether verification is enabled by default. */ - private static final boolean DEFAULT_VERIFY_ENABLE = true; + private static final boolean DEFAULT_VERIFY_ENABLE = false; /** * The default maximum time to wait for the verification agent to return in From 7807e0f7503d13a41b158f6973ca2f48b75edf40 Mon Sep 17 00:00:00 2001 From: Jeff Brown Date: Wed, 12 Sep 2012 17:00:34 -0700 Subject: [PATCH 52/61] Wait for installd to finish starting before booting. Fixes a race condition where the system server might try to access /data/user/0 before it was created. In so doing, the system server could end up creating a directory in that location with the wrong permissions and everything would promptly crash. Bug: 7151686 Change-Id: I349c12fd2b9685d2e7f6305e74f6bf7d5816b752 --- services/java/com/android/server/SystemServer.java | 11 ++++++++++- services/java/com/android/server/pm/Installer.java | 2 +- .../com/android/server/pm/PackageManagerService.java | 12 +++++++----- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java index 439844101c970..90783b740ca1e 100644 --- a/services/java/com/android/server/SystemServer.java +++ b/services/java/com/android/server/SystemServer.java @@ -55,6 +55,7 @@ import com.android.server.display.DisplayManagerService; import com.android.server.input.InputManagerService; import com.android.server.net.NetworkPolicyManagerService; import com.android.server.net.NetworkStatsService; +import com.android.server.pm.Installer; import com.android.server.pm.PackageManagerService; import com.android.server.pm.UserManagerService; import com.android.server.power.PowerManagerService; @@ -117,6 +118,7 @@ class ServerThread extends Thread { : Integer.parseInt(factoryTestStr); final boolean headless = "1".equals(SystemProperties.get("ro.config.headless", "0")); + Installer installer = null; AccountManagerService accountManager = null; ContentService contentService = null; LightsService lights = null; @@ -195,6 +197,13 @@ class ServerThread extends Thread { // Critical services... boolean onlyCore = false; try { + // Wait for installd to finished starting up so that it has a chance to + // create critical directories such as /data/user with the appropriate + // permissions. We need this to complete before we initialize other services. + Slog.i(TAG, "Waiting for installd to be ready."); + installer = new Installer(); + installer.ping(); + Slog.i(TAG, "Entropy Mixer"); ServiceManager.addService("entropy", new EntropyMixer()); @@ -234,7 +243,7 @@ class ServerThread extends Thread { onlyCore = true; } - pm = PackageManagerService.main(context, + pm = PackageManagerService.main(context, installer, factoryTest != SystemServer.FACTORY_TEST_OFF, onlyCore); boolean firstBoot = false; diff --git a/services/java/com/android/server/pm/Installer.java b/services/java/com/android/server/pm/Installer.java index 85de3494bd9b5..ad85c0d6fa4ef 100644 --- a/services/java/com/android/server/pm/Installer.java +++ b/services/java/com/android/server/pm/Installer.java @@ -25,7 +25,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; -class Installer { +public final class Installer { private static final String TAG = "Installer"; private static final boolean LOCAL_DEBUG = false; diff --git a/services/java/com/android/server/pm/PackageManagerService.java b/services/java/com/android/server/pm/PackageManagerService.java index 01a9b4b7b0a48..ba63efde13cd9 100644 --- a/services/java/com/android/server/pm/PackageManagerService.java +++ b/services/java/com/android/server/pm/PackageManagerService.java @@ -937,9 +937,10 @@ public class PackageManagerService extends IPackageManager.Stub { } } - public static final IPackageManager main(Context context, boolean factoryTest, - boolean onlyCore) { - PackageManagerService m = new PackageManagerService(context, factoryTest, onlyCore); + public static final IPackageManager main(Context context, Installer installer, + boolean factoryTest, boolean onlyCore) { + PackageManagerService m = new PackageManagerService(context, installer, + factoryTest, onlyCore); ServiceManager.addService("package", m); return m; } @@ -966,7 +967,8 @@ public class PackageManagerService extends IPackageManager.Stub { return res; } - public PackageManagerService(Context context, boolean factoryTest, boolean onlyCore) { + public PackageManagerService(Context context, Installer installer, + boolean factoryTest, boolean onlyCore) { EventLog.writeEvent(EventLogTags.BOOT_PROGRESS_PMS_START, SystemClock.uptimeMillis()); @@ -1004,7 +1006,7 @@ public class PackageManagerService extends IPackageManager.Stub { mSeparateProcesses = null; } - mInstaller = new Installer(); + mInstaller = installer; WindowManager wm = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE); Display d = wm.getDefaultDisplay(); From ef8e0b41f672d89e2e6b5b34bba38bfc4bea61e6 Mon Sep 17 00:00:00 2001 From: Michael Jurka Date: Thu, 13 Sep 2012 11:05:59 -0700 Subject: [PATCH 53/61] Fix crash in recents Bug: 7128044 Change-Id: Icaec50ef9dfbc5da78d71925215c3363f58d7d3d --- .../android/systemui/recent/RecentsActivity.java | 16 +++++++++------- .../systemui/recent/RecentsPanelView.java | 15 +++++++-------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/recent/RecentsActivity.java b/packages/SystemUI/src/com/android/systemui/recent/RecentsActivity.java index baacde016f07e..cd339512dd0ae 100644 --- a/packages/SystemUI/src/com/android/systemui/recent/RecentsActivity.java +++ b/packages/SystemUI/src/com/android/systemui/recent/RecentsActivity.java @@ -164,13 +164,15 @@ public class RecentsActivity extends Activity { super.onNewIntent(intent); if (TOGGLE_RECENTS_INTENT.equals(intent.getAction())) { - if (mRecentsPanel != null && !mRecentsPanel.isShowing()) { - final SystemUIApplication app = (SystemUIApplication) getApplication(); - final RecentTasksLoader recentTasksLoader = app.getRecentTasksLoader(); - mRecentsPanel.show(true, recentTasksLoader.getLoadedTasks(), - recentTasksLoader.isFirstScreenful()); - } else if ((mRecentsPanel != null && mRecentsPanel.isShowing())) { - dismissAndGoBack(); + if (mRecentsPanel != null) { + if (mRecentsPanel.isShowing() && mForeground) { + dismissAndGoBack(); + } else { + final SystemUIApplication app = (SystemUIApplication) getApplication(); + final RecentTasksLoader recentTasksLoader = app.getRecentTasksLoader(); + mRecentsPanel.show(true, recentTasksLoader.getLoadedTasks(), + recentTasksLoader.isFirstScreenful()); + } } } } diff --git a/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java b/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java index 730d350199b02..04e38a4a7ac33 100644 --- a/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java +++ b/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java @@ -33,6 +33,7 @@ import android.graphics.Shader.TileMode; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.net.Uri; +import android.os.Bundle; import android.os.RemoteException; import android.os.UserHandle; import android.provider.Settings; @@ -581,25 +582,23 @@ public class RecentsPanelView extends FrameLayout implements OnItemClickListener bm = holder.thumbnailViewImage.getDrawingCache(); usingDrawingCache = true; } - - if (bm == null) { - throw new RuntimeException("Recents thumbnail is null"); - } - ActivityOptions opts = ActivityOptions.makeThumbnailScaleUpAnimation( - holder.thumbnailViewImage, bm, 0, 0, null); + Bundle opts = (bm == null) ? + null : + ActivityOptions.makeThumbnailScaleUpAnimation( + holder.thumbnailViewImage, bm, 0, 0, null).toBundle(); show(false); if (ad.taskId >= 0) { // This is an active task; it should just go to the foreground. am.moveTaskToFront(ad.taskId, ActivityManager.MOVE_TASK_WITH_HOME, - opts.toBundle()); + opts); } else { Intent intent = ad.intent; intent.addFlags(Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY | Intent.FLAG_ACTIVITY_TASK_ON_HOME | Intent.FLAG_ACTIVITY_NEW_TASK); if (DEBUG) Log.v(TAG, "Starting activity " + intent); - context.startActivityAsUser(intent, opts.toBundle(), + context.startActivityAsUser(intent, opts, new UserHandle(UserHandle.USER_CURRENT)); } if (usingDrawingCache) { From ca90e9a083ef461471b6e26f6c0dba7bd64577be Mon Sep 17 00:00:00 2001 From: Guang Zhu Date: Thu, 13 Sep 2012 11:17:43 -0700 Subject: [PATCH 54/61] dodging the @JavascriptInterface bullet The reason for not to fix the test instead with new annotation is that it's preferable to have a single version that works for all platforms. This can be revisted once we have enough platforms released to not to care about the older ones. Change-Id: I42557f920702e5a65e39a3fea80533bd07b54367 --- tests/DumpRenderTree/AndroidManifest.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/DumpRenderTree/AndroidManifest.xml b/tests/DumpRenderTree/AndroidManifest.xml index dc44b253822e2..bcb821b44faaa 100644 --- a/tests/DumpRenderTree/AndroidManifest.xml +++ b/tests/DumpRenderTree/AndroidManifest.xml @@ -41,4 +41,6 @@ + From 4b3a934471ffb33175e9191d5af5db0e301402fa Mon Sep 17 00:00:00 2001 From: Marco Nelissen Date: Tue, 18 Sep 2012 09:19:55 -0700 Subject: [PATCH 55/61] Visualizer only works on sounds >5 sec. Various media framework tests use a Visualizer to look at the output of another effect, but this requires the played file to be longer than 5 seconds. b/4571740 b/7173543 b/7173545 b/7175623 Change-Id: I066a737542bb50e7245fef99f9e11ae8f2aadd6c --- .../music/sine_200+1000Hz_44K_mo.wav | Bin 265214 -> 794414 bytes 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 media/tests/contents/media_api/music/sine_200+1000Hz_44K_mo.wav diff --git a/media/tests/contents/media_api/music/sine_200+1000Hz_44K_mo.wav b/media/tests/contents/media_api/music/sine_200+1000Hz_44K_mo.wav old mode 100755 new mode 100644 index 312b6fb17d5e8ad08b96f7dd0812afef899a6f37..24c2a0d4b2f477a9acaf6cc1b8e089e51a97c562 GIT binary patch literal 794414 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
  • =Q()=JI>_87w2b3LHTI4J};7`+$DzZ?O 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ξIavKP0?5#Ftmbv&Ds<51AE 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 literal 265214 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ξ72J;PxVBzgSJ@3%C9wmc!c|EsuQ216%&kKzFMd^?by>w6sT`}Mi95)4 zoajg;cHm@-P-srFq4E+Zj{I?paj_~SD^16tWWH?GRg&hUKQt%9@Qy34ebIF|l+2tR zuwj+rRY@u@^2dGW=&U%1cU(5G%2$G0hcqV!{d?UCcn6LN>;S(i1A$fAE16Hp1FREA zZXME9a;$Pb*nwohA4d%Mc}!eVLcRFT0&=2d40s_NsZwB-(4>9im-*Kav%B$3SA@dG2W?1D4ASVUp8%)Ve4EO=2t0b(FCN3T-FArRm ziOi8onv?HZj%N(`Cb)Gj!UG-|DSE)`SSOA`+!?9)-1m%+zb^dE3XCE*=M zZXM#|xRUwj;&k}qE`lAH1`oK%fbYar$yHvJ@s1k@ta3MV>(D#S9mvTp#}Jj#I&tIy zuP10u8iN5Jfp?q(R9>qXA4mSUrcE-N%UU0UcYu(SVld#I0y_{2%}E}Rlg&U*UVm(qq-M$3RXJXNoK4&SumdOI0Us|oQbq5;-OBPBxz6+1RY|D}eB#KF+6jD| z2|JE^z%8|i9mvFv6R}Dg1MX!$EzvXNB%XP|-vc?B7c38J-pGx4z~jJxZv-C~r@bH5 zHj=BnS~CXxBd*Gx;Nza*s^tE-)9?-uA9oNcuVf%6y>V6Y)P*PkIU%=BZ>I91t8zAw z69sgYWsCv;5t@_s@PO0A<-x7fcC=KWB45g#XBmE_i`4qfGb=qiul z9XC&M3I4cKc*l|EWFVV3`>V2j&UARd>*{Rm0C~Vge;n;N?nn)1nv?lJPKWcbp+56~6FU%u-}{L&MbV;y zu9C9@bXBS{wgEXAhaLB;)gSk7&B|l{Vyr-f`{0fb*P_G`!

    Yl0YXl=cYv@; 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

    ?^DpkB{zPOwDmAWtj9dL3^NL|>HA#-Tn2PUW4 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

    Changes this drawbale to use a single color instead of a gradient.

    - *

    Note: changing orientation will affect all instances + *

    Note: changing color will affect all instances * of a drawable loaded from a resource. It is recommended to invoke - * {@link #mutate()} before changing the orientation.

    + * {@link #mutate()} before changing the color.

    * * @param argb The color used to fill the shape * @@ -649,7 +650,7 @@ public class GradientDrawable extends Drawable { @Override public int getOpacity() { - return PixelFormat.TRANSLUCENT; + return mGradientState.mOpaque ? PixelFormat.OPAQUE : PixelFormat.TRANSLUCENT; } @Override @@ -1011,7 +1012,10 @@ public class GradientDrawable extends Drawable { } else { Log.w("drawable", "Bad element under : " + name); } + } + + mGradientState.computeOpacity(); } private static float getFloatOrFraction(TypedArray a, int index, float defaultValue) { @@ -1079,10 +1083,11 @@ public class GradientDrawable extends Drawable { private float mGradientRadius = 0.5f; private boolean mUseLevel; private boolean mUseLevelForShape; + private boolean mOpaque; GradientState(Orientation orientation, int[] colors) { mOrientation = orientation; - mColors = colors; + setColors(colors); } public GradientState(GradientState state) { @@ -1120,6 +1125,7 @@ public class GradientDrawable extends Drawable { mGradientRadius = state.mGradientRadius; mUseLevel = state.mUseLevel; mUseLevelForShape = state.mUseLevelForShape; + mOpaque = state.mOpaque; } @Override @@ -1139,6 +1145,7 @@ public class GradientDrawable extends Drawable { public void setShape(int shape) { mShape = shape; + computeOpacity(); } public void setGradientType(int gradient) { @@ -1153,24 +1160,60 @@ public class GradientDrawable extends Drawable { public void setColors(int[] colors) { mHasSolidColor = false; mColors = colors; + computeOpacity(); } public void setSolidColor(int argb) { mHasSolidColor = true; mSolidColor = argb; mColors = null; + computeOpacity(); + } + + private void computeOpacity() { + if (mShape != RECTANGLE) { + mOpaque = false; + return; + } + + if (mStrokeWidth > 0 && !isOpaque(mStrokeColor)) { + mOpaque = false; + return; + } + + if (mHasSolidColor) { + mOpaque = isOpaque(mSolidColor); + return; + } + + if (mColors != null) { + for (int i = 0; i < mColors.length; i++) { + if (!isOpaque(mColors[i])) { + mOpaque = false; + return; + } + } + } + + mOpaque = true; + } + + private static boolean isOpaque(int color) { + return ((color >> 24) & 0xff) == 0xff; } public void setStroke(int width, int color) { mStrokeWidth = width; mStrokeColor = color; + computeOpacity(); } - + public void setStroke(int width, int color, float dashWidth, float dashGap) { mStrokeWidth = width; mStrokeColor = color; mStrokeDashWidth = dashWidth; mStrokeDashGap = dashGap; + computeOpacity(); } public void setCornerRadius(float radius) { @@ -1180,14 +1223,14 @@ public class GradientDrawable extends Drawable { mRadius = radius; mRadiusArray = null; } - + public void setCornerRadii(float[] radii) { mRadiusArray = radii; if (radii == null) { mRadius = 0; } } - + public void setSize(int width, int height) { mWidth = width; mHeight = height; From d92e9987d69fb82b62114d4f04aee29d84a982ba Mon Sep 17 00:00:00 2001 From: Craig Mautner Date: Wed, 19 Sep 2012 13:18:29 -0700 Subject: [PATCH 59/61] Fix deadlock in LockPatternUtils by using local id. Activity manager now updates window manager's current user id directly and immediately rather than waiting for a broadcast update. Window manager passes this through policy to the KeyguardViewMediator and into LockPatternUtils. LockPatternUtils no longer goes to Activity to get the current user id if it finds that its local id is non-default. Fixes bug 7193726. Change-Id: Id5613e7a9fe9e5b49e83c26b74504f587c3998c2 --- core/java/android/view/WindowManagerPolicy.java | 10 +++++++++- .../internal/widget/LockPatternUtils.java | 17 ++++++----------- .../policy/impl/PhoneWindowManager.java | 13 +++++++++++-- .../impl/keyguard/KeyguardViewMediator.java | 13 +++++++++++-- .../server/am/ActivityManagerService.java | 4 +++- .../android/server/wm/WindowManagerService.java | 12 +++++++----- .../java/com/android/server/wm/WindowState.java | 4 ++-- 7 files changed, 49 insertions(+), 24 deletions(-) diff --git a/core/java/android/view/WindowManagerPolicy.java b/core/java/android/view/WindowManagerPolicy.java index 75554daf4d387..82f07c7bbbb56 100644 --- a/core/java/android/view/WindowManagerPolicy.java +++ b/core/java/android/view/WindowManagerPolicy.java @@ -1111,7 +1111,15 @@ public interface WindowManagerPolicy { * @param attrs The window's LayoutParams. * @return Whether magnification can be applied. */ - public boolean canMagnifyWindow(WindowManager.LayoutParams attrs); + public boolean canMagnifyWindowLw(WindowManager.LayoutParams attrs); + + /** + * Called when the current user changes. Guaranteed to be called before the broadcast + * of the new user id is made to all listeners. + * + * @param newUserId The id of the incoming user. + */ + public void setCurrentUserLw(int newUserId); /** * Print the WindowManagerPolicy's state into the given stream. diff --git a/core/java/com/android/internal/widget/LockPatternUtils.java b/core/java/com/android/internal/widget/LockPatternUtils.java index 3207435d8bf9b..a839e7356061d 100644 --- a/core/java/com/android/internal/widget/LockPatternUtils.java +++ b/core/java/com/android/internal/widget/LockPatternUtils.java @@ -22,14 +22,11 @@ import com.google.android.collect.Lists; import android.app.ActivityManagerNative; import android.app.admin.DevicePolicyManager; -import android.content.BroadcastReceiver; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; -import android.content.IntentFilter; import android.content.pm.PackageManager; import android.os.Binder; -import android.os.FileObserver; import android.os.IBinder; import android.os.Process; import android.os.RemoteException; @@ -45,16 +42,10 @@ import android.util.Log; import android.view.View; import android.widget.Button; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.RandomAccessFile; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; -import java.util.Arrays; import java.util.List; -import java.util.concurrent.atomic.AtomicBoolean; /** * Utilities for the lock pattern and its settings. @@ -134,7 +125,7 @@ public class LockPatternUtils { private final ContentResolver mContentResolver; private DevicePolicyManager mDevicePolicyManager; private ILockSettings mLockSettingsService; - private int mCurrentUserId = 0; + private int mCurrentUserId = UserHandle.USER_NULL; public DevicePolicyManager getDevicePolicyManager() { if (mDevicePolicyManager == null) { @@ -233,10 +224,14 @@ public class LockPatternUtils { public int getCurrentUser() { if (Process.myUid() == Process.SYSTEM_UID) { + if (mCurrentUserId != UserHandle.USER_NULL) { + // Someone is regularly updating using setCurrentUser() use that value. + return mCurrentUserId; + } try { return ActivityManagerNative.getDefault().getCurrentUser().id; } catch (RemoteException re) { - return mCurrentUserId; + return UserHandle.USER_OWNER; } } else { throw new SecurityException("Only the system process can get the current user"); diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java index 6c62680bca108..703426429ec00 100755 --- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java @@ -71,7 +71,6 @@ import android.util.EventLog; import android.util.Log; import android.util.Slog; import android.util.SparseArray; -import android.util.SparseIntArray; import android.view.Display; import android.view.Gravity; import android.view.HapticFeedbackConstants; @@ -722,6 +721,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { } private final Runnable mPowerLongPress = new Runnable() { + @Override public void run() { // The context isn't read if (mLongPressOnPowerBehavior < 0) { @@ -4316,7 +4316,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { mLastInputMethodTargetWindow = target; } - public boolean canMagnifyWindow(WindowManager.LayoutParams attrs) { + @Override + public boolean canMagnifyWindowLw(WindowManager.LayoutParams attrs) { switch (attrs.type) { case WindowManager.LayoutParams.TYPE_INPUT_METHOD: case WindowManager.LayoutParams.TYPE_INPUT_METHOD_DIALOG: @@ -4328,6 +4329,14 @@ public class PhoneWindowManager implements WindowManagerPolicy { return true; } + @Override + public void setCurrentUserLw(int newUserId) { + if (mKeyguardMediator != null) { + mKeyguardMediator.setCurrentUser(newUserId); + } + } + + @Override public void dump(String prefix, PrintWriter pw, String[] args) { pw.print(prefix); pw.print("mSafeMode="); pw.print(mSafeMode); pw.print(" mSystemReady="); pw.print(mSystemReady); diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewMediator.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewMediator.java index 7f45a403039da..50a7134f92dcd 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewMediator.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewMediator.java @@ -131,7 +131,7 @@ public class KeyguardViewMediator { private static final int KEYGUARD_LOCK_AFTER_DELAY_DEFAULT = 5000; /** - * How long we'll wait for the {@link KeyguardViewCallback#keyguardDoneDrawing()} + * How long we'll wait for the {@link ViewMediatorCallback#keyguardDoneDrawing()} * callback before unblocking a call to {@link #setKeyguardEnabled(boolean)} * that is reenabling the keyguard. */ @@ -297,7 +297,7 @@ public class KeyguardViewMediator { @Override public void onUserSwitched(int userId) { - mLockPatternUtils.setCurrentUser(userId); + // Note that the mLockPatternUtils user has already been updated from setCurrentUser. synchronized (KeyguardViewMediator.this) { resetStateLocked(); } @@ -465,6 +465,7 @@ public class KeyguardViewMediator { mLockPatternUtils = lockPatternUtils != null ? lockPatternUtils : new LockPatternUtils(mContext); + mLockPatternUtils.setCurrentUser(UserHandle.USER_OWNER); WindowManager wm = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE); @@ -890,6 +891,14 @@ public class KeyguardViewMediator { || KeyguardUpdateMonitor.getInstance(mContext).isSimPinSecure(); } + /** + * Update the newUserId. Call while holding WindowManagerService lock. + * @param newUserId The id of the incoming user. + */ + public void setCurrentUser(int newUserId) { + mLockPatternUtils.setCurrentUser(newUserId); + } + private final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java index 66b60ecb683dc..4df8db4db69bc 100644 --- a/services/java/com/android/server/am/ActivityManagerService.java +++ b/services/java/com/android/server/am/ActivityManagerService.java @@ -13969,6 +13969,8 @@ public final class ActivityManagerService extends ActivityManagerNative mUserLru.remove(userIdInt); mUserLru.add(userIdInt); + mWindowManager.setCurrentUser(userId); + final UserStartedState uss = mStartedUsers.get(userId); mHandler.removeMessages(REPORT_USER_SWITCH_MSG); @@ -14007,7 +14009,7 @@ public final class ActivityManagerService extends ActivityManagerNative if (!haveActivities) { startHomeActivityLocked(userId); } - + sendUserSwitchBroadcastsLocked(oldUserId, userId); } } finally { diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java index 55a7c466e5310..1eea9b12c3dfa 100755 --- a/services/java/com/android/server/wm/WindowManagerService.java +++ b/services/java/com/android/server/wm/WindowManagerService.java @@ -292,9 +292,6 @@ public class WindowManagerService extends IWindowManager.Stub if (DevicePolicyManager.ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED.equals(action)) { mKeyguardDisableHandler.sendEmptyMessage( KeyguardDisableHandler.KEYGUARD_POLICY_CHANGED); - } else if (Intent.ACTION_USER_SWITCHED.equals(action)) { - final int newUserId = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, 0); - mCurrentUserId = newUserId; } } }; @@ -811,8 +808,6 @@ public class WindowManagerService extends IWindowManager.Stub // Track changes to DevicePolicyManager state so we can enable/disable keyguard. IntentFilter filter = new IntentFilter(); filter.addAction(DevicePolicyManager.ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED); - // Track user switching. - filter.addAction(Intent.ACTION_USER_SWITCHED); mContext.registerReceiver(mBroadcastReceiver, filter); mHoldingScreenWakeLock = pmc.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK @@ -5396,6 +5391,13 @@ public class WindowManagerService extends IWindowManager.Stub mInputManager.setInputFilter(filter); } + public void setCurrentUser(final int newUserId) { + synchronized (mWindowMap) { + mCurrentUserId = newUserId; + mPolicy.setCurrentUserLw(newUserId); + } + } + public void enableScreenAfterBoot() { synchronized(mWindowMap) { if (DEBUG_BOOT) { diff --git a/services/java/com/android/server/wm/WindowState.java b/services/java/com/android/server/wm/WindowState.java index b62028e0c5d0e..ac958b82e78c0 100644 --- a/services/java/com/android/server/wm/WindowState.java +++ b/services/java/com/android/server/wm/WindowState.java @@ -518,11 +518,11 @@ final class WindowState implements WindowManagerPolicy.WindowState { MagnificationSpec spec = mDisplayContent.mMagnificationSpec; if (spec != null && !spec.isNop()) { if (mAttachedWindow != null) { - if (!mPolicy.canMagnifyWindow(mAttachedWindow.mAttrs)) { + if (!mPolicy.canMagnifyWindowLw(mAttachedWindow.mAttrs)) { return null; } } - if (!mPolicy.canMagnifyWindow(mAttrs)) { + if (!mPolicy.canMagnifyWindowLw(mAttrs)) { return null; } } From 5d6f34e6a635184c1ca7dfe6d2f94cc0f5e9af9f Mon Sep 17 00:00:00 2001 From: Christopher Tate Date: Wed, 19 Sep 2012 12:46:54 -0700 Subject: [PATCH 60/61] Disable content observer cross-user permission checks... ... until we have a solid fix for the singleton ContentProvider problem cases in place. Bug 7190837 Change-Id: Ibbef2ddc594896ba7b9217e2856c3e393f525af6 --- core/java/android/content/ContentService.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/java/android/content/ContentService.java b/core/java/android/content/ContentService.java index 0f6488a41a26d..5986dcd25936c 100644 --- a/core/java/android/content/ContentService.java +++ b/core/java/android/content/ContentService.java @@ -154,11 +154,15 @@ public final class ContentService extends IContentService.Stub { throw new IllegalArgumentException("You must pass a valid uri and observer"); } + // STOPSHIP: disable the multi-user permission checks until a solid fix for the + // content provider / observer case is in place. + /* final int callingUser = UserHandle.getCallingUserId(); if (callingUser != userHandle) { mContext.enforceCallingOrSelfPermission(Manifest.permission.INTERACT_ACROSS_USERS_FULL, "no permission to observe other users' provider view"); } + */ if (userHandle < 0) { if (userHandle == UserHandle.USER_CURRENT) { From 43dc3ad8b2e15f09d51e310d7ce175b22182eb62 Mon Sep 17 00:00:00 2001 From: Christopher Tate Date: Wed, 19 Sep 2012 12:46:54 -0700 Subject: [PATCH 61/61] Disable content observer cross-user permission checks... ... until we have a solid fix for the singleton ContentProvider problem cases in place. Bug 7190837 Change-Id: Ibbef2ddc594896ba7b9217e2856c3e393f525af6

    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 Date: Tue, 18 Sep 2012 13:27:36 -0700 Subject: [PATCH 56/61] Settings provider needs to send notifications as itself ... and not as its ultimate caller, who may be a less-privileged application. Fixes bug 7188309 Change-Id: Iffd37b8da84f683bf665bf3d48c0b7fbc8dd721d --- .../com/android/providers/settings/SettingsProvider.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java index a0ae9e31ac730..9839c16569fb8 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java @@ -344,7 +344,12 @@ public class SettingsProvider extends ContentProvider { String notify = uri.getQueryParameter("notify"); if (notify == null || "true".equals(notify)) { final int notifyTarget = isGlobal ? UserHandle.USER_ALL : userHandle; - getContext().getContentResolver().notifyChange(uri, null, true, notifyTarget); + final long oldId = Binder.clearCallingIdentity(); + try { + getContext().getContentResolver().notifyChange(uri, null, true, notifyTarget); + } finally { + Binder.restoreCallingIdentity(oldId); + } if (LOCAL_LOGV) Log.v(TAG, "notifying for " + notifyTarget + ": " + uri); } else { if (LOCAL_LOGV) Log.v(TAG, "notification suppressed: " + uri); From 5f72c96471ea7ade0db931f4c5576c13098b749e Mon Sep 17 00:00:00 2001 From: Adam Cohen Date: Tue, 18 Sep 2012 13:39:42 -0700 Subject: [PATCH 57/61] Tweaking how settings adds keyguard widgets -> Fix for issue 7173587 -> Fix for issue 7173877 Change-Id: I60cd3952113335df60292f67461d50f6c8bd2ed3 --- core/java/android/appwidget/AppWidgetHost.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/core/java/android/appwidget/AppWidgetHost.java b/core/java/android/appwidget/AppWidgetHost.java index 84a447f4ca4cc..185fb5a8de594 100644 --- a/core/java/android/appwidget/AppWidgetHost.java +++ b/core/java/android/appwidget/AppWidgetHost.java @@ -19,6 +19,7 @@ package android.appwidget; import java.util.ArrayList; import java.util.HashMap; +import android.app.ActivityThread; import android.content.Context; import android.os.Handler; import android.os.IBinder; @@ -201,12 +202,15 @@ public class AppWidgetHost { * @return a appWidgetId * @hide */ - public static int allocateAppWidgetIdForHost(String packageName, int hostId) { + public static int allocateAppWidgetIdForSystem(int hostId) { checkCallerIsSystem(); try { if (sService == null) { bindService(); } + Context systemContext = + (Context) ActivityThread.currentActivityThread().getSystemContext(); + String packageName = systemContext.getPackageName(); return sService.allocateAppWidgetId(packageName, hostId); } catch (RemoteException e) { throw new RuntimeException("system server dead?", e); @@ -240,7 +244,7 @@ public class AppWidgetHost { * Stop listening to changes for this AppWidget. * @hide */ - public static void deleteAppWidgetIdForHost(int appWidgetId) { + public static void deleteAppWidgetIdForSystem(int appWidgetId) { checkCallerIsSystem(); try { if (sService == null) { From 53141ef820a51e5b6008e3120b7669a937b3f591 Mon Sep 17 00:00:00 2001 From: Romain Guy Date: Tue, 18 Sep 2012 15:37:24 -0700 Subject: [PATCH 58/61] Compute GradientDrawable's opacity correctly The current implementation of GradientDrawable always assumes the shape needs to be blended. This causes all windows to be considered translucent by default. This change recomputes the opacity as needed to ensure windows are marked opaque when they should. Change-Id: Iaf291d889a6c5122ab00c9f5781df3e7f61547fa --- .../android/graphics/drawable/Drawable.java | 1 - .../graphics/drawable/DrawableContainer.java | 8 --- .../graphics/drawable/GradientDrawable.java | 59 ++++++++++++++++--- 3 files changed, 51 insertions(+), 17 deletions(-) diff --git a/graphics/java/android/graphics/drawable/Drawable.java b/graphics/java/android/graphics/drawable/Drawable.java index 020a54fe92df1..41f6db95ad526 100644 --- a/graphics/java/android/graphics/drawable/Drawable.java +++ b/graphics/java/android/graphics/drawable/Drawable.java @@ -37,7 +37,6 @@ import android.util.DisplayMetrics; import android.util.StateSet; import android.util.TypedValue; import android.util.Xml; -import android.view.View; import java.io.IOException; import java.io.InputStream; diff --git a/graphics/java/android/graphics/drawable/DrawableContainer.java b/graphics/java/android/graphics/drawable/DrawableContainer.java index 486390c4e932a..41b272df53fc9 100644 --- a/graphics/java/android/graphics/drawable/DrawableContainer.java +++ b/graphics/java/android/graphics/drawable/DrawableContainer.java @@ -444,7 +444,6 @@ public class DrawableContainer extends Drawable implements Drawable.Callback { int mConstantMinimumWidth; int mConstantMinimumHeight; - boolean mHaveOpacity = false; int mOpacity; boolean mHaveStateful = false; @@ -493,7 +492,6 @@ public class DrawableContainer extends Drawable implements Drawable.Callback { mConstantWidth = orig.mConstantWidth; mConstantHeight = orig.mConstantHeight; - mHaveOpacity = orig.mHaveOpacity; mOpacity = orig.mOpacity; mHaveStateful = orig.mHaveStateful; mStateful = orig.mStateful; @@ -528,7 +526,6 @@ public class DrawableContainer extends Drawable implements Drawable.Callback { mDrawables[pos] = dr; mNumChildren++; mChildrenChangingConfigurations |= dr.getChangingConfigurations(); - mHaveOpacity = false; mHaveStateful = false; mConstantPadding = null; @@ -656,10 +653,6 @@ public class DrawableContainer extends Drawable implements Drawable.Callback { } public final int getOpacity() { - if (mHaveOpacity) { - return mOpacity; - } - final int N = getChildCount(); final Drawable[] drawables = mDrawables; int op = N > 0 ? drawables[0].getOpacity() : PixelFormat.TRANSPARENT; @@ -667,7 +660,6 @@ public class DrawableContainer extends Drawable implements Drawable.Callback { op = Drawable.resolveOpacity(op, drawables[i].getOpacity()); } mOpacity = op; - mHaveOpacity = true; return op; } diff --git a/graphics/java/android/graphics/drawable/GradientDrawable.java b/graphics/java/android/graphics/drawable/GradientDrawable.java index 21344f4557dd2..42be657c1af79 100644 --- a/graphics/java/android/graphics/drawable/GradientDrawable.java +++ b/graphics/java/android/graphics/drawable/GradientDrawable.java @@ -435,7 +435,8 @@ public class GradientDrawable extends Drawable { final int currFillAlpha = modulateAlpha(prevFillAlpha); final int currStrokeAlpha = modulateAlpha(prevStrokeAlpha); - final boolean haveStroke = currStrokeAlpha > 0 && mStrokePaint.getStrokeWidth() > 0; + final boolean haveStroke = currStrokeAlpha > 0 && mStrokePaint != null && + mStrokePaint.getStrokeWidth() > 0; final boolean haveFill = currFillAlpha > 0; final GradientState st = mGradientState; /* we need a layer iff we're drawing both a fill and stroke, and the @@ -603,9 +604,9 @@ public class GradientDrawable extends Drawable { /** *