diff options
71 files changed, 178 insertions, 62 deletions
diff --git a/core/java/android/view/MenuInflater.java b/core/java/android/view/MenuInflater.java index ab515c9f6bbf..372ac15a45a8 100644 --- a/core/java/android/view/MenuInflater.java +++ b/core/java/android/view/MenuInflater.java @@ -228,8 +228,8 @@ public class MenuInflater { private boolean itemAdded; private int itemId; private int itemCategoryOrder; - private String itemTitle; - private String itemTitleCondensed; + private CharSequence itemTitle; + private CharSequence itemTitleCondensed; private int itemIconResId; private char itemAlphabeticShortcut; private char itemNumericShortcut; @@ -311,8 +311,8 @@ public class MenuInflater { final int category = a.getInt(com.android.internal.R.styleable.MenuItem_menuCategory, groupCategory); final int order = a.getInt(com.android.internal.R.styleable.MenuItem_orderInCategory, groupOrder); itemCategoryOrder = (category & Menu.CATEGORY_MASK) | (order & Menu.USER_MASK); - itemTitle = a.getString(com.android.internal.R.styleable.MenuItem_title); - itemTitleCondensed = a.getString(com.android.internal.R.styleable.MenuItem_titleCondensed); + itemTitle = a.getText(com.android.internal.R.styleable.MenuItem_title); + itemTitleCondensed = a.getText(com.android.internal.R.styleable.MenuItem_titleCondensed); itemIconResId = a.getResourceId(com.android.internal.R.styleable.MenuItem_icon, 0); itemAlphabeticShortcut = getShortcut(a.getString(com.android.internal.R.styleable.MenuItem_alphabeticShortcut)); diff --git a/core/java/android/widget/DatePicker.java b/core/java/android/widget/DatePicker.java index 72935723fb29..4a34b45e57d3 100644 --- a/core/java/android/widget/DatePicker.java +++ b/core/java/android/widget/DatePicker.java @@ -30,6 +30,7 @@ import android.util.AttributeSet; import android.util.Log; import android.util.SparseArray; import android.view.LayoutInflater; +import android.view.accessibility.AccessibilityEvent; import android.widget.NumberPicker.OnValueChangeListener; import java.text.ParseException; @@ -353,6 +354,16 @@ public class DatePicker extends FrameLayout { return mIsEnabled; } + @Override + public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event) { + int flags = DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_SHOW_WEEKDAY + | DateUtils.FORMAT_SHOW_YEAR; + String selectedDateUtterance = DateUtils.formatDateTime(mContext, + mCurrentDate.getTimeInMillis(), flags); + event.getText().add(selectedDateUtterance); + return true; + } + /** * Gets whether the {@link CalendarView} is shown. * @@ -641,6 +652,7 @@ public class DatePicker extends FrameLayout { * Notifies the listener, if such, for a change in the selected date. */ private void notifyDateChanged() { + sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_SELECTED); if (mOnDateChangedListener != null) { mOnDateChangedListener.onDateChanged(this, getYear(), getMonth(), getDayOfMonth()); } diff --git a/core/java/android/widget/StackView.java b/core/java/android/widget/StackView.java index 7a74241e1bdf..6a09d3548e79 100644 --- a/core/java/android/widget/StackView.java +++ b/core/java/android/widget/StackView.java @@ -546,12 +546,16 @@ public class StackView extends AdapterViewAnimator { private void onLayout() { if (!mFirstLayoutHappened) { - mSlideAmount = Math.round(SLIDE_UP_RATIO * getMeasuredHeight()); - mSwipeThreshold = Math.round(SWIPE_THRESHOLD_RATIO * mSlideAmount); mFirstLayoutHappened = true; updateChildTransforms(); } + final int newSlideAmount = Math.round(SLIDE_UP_RATIO * getMeasuredHeight()); + if (mSlideAmount != newSlideAmount) { + mSlideAmount = newSlideAmount; + mSwipeThreshold = Math.round(SWIPE_THRESHOLD_RATIO * newSlideAmount); + } + if (Float.compare(mPerspectiveShiftY, mNewPerspectiveShiftY) != 0 || Float.compare(mPerspectiveShiftX, mNewPerspectiveShiftX) != 0) { diff --git a/core/java/android/widget/TimePicker.java b/core/java/android/widget/TimePicker.java index 2688b952a72a..4b37beb3bbae 100644 --- a/core/java/android/widget/TimePicker.java +++ b/core/java/android/widget/TimePicker.java @@ -23,9 +23,11 @@ import android.content.Context; import android.content.res.TypedArray; import android.os.Parcel; import android.os.Parcelable; +import android.text.format.DateUtils; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; +import android.view.accessibility.AccessibilityEvent; import android.widget.NumberPicker.OnValueChangeListener; import java.text.DateFormatSymbols; @@ -88,6 +90,8 @@ public class TimePicker extends FrameLayout { // callbacks private OnTimeChangedListener mOnTimeChangedListener; + private Calendar mTempCalendar; + /** * The callback interface used to indicate the time has been adjusted. */ @@ -214,12 +218,12 @@ public class TimePicker extends FrameLayout { updateAmPmControl(); // initialize to current time - Calendar calendar = Calendar.getInstance(); + mTempCalendar = Calendar.getInstance(); setOnTimeChangedListener(NO_OP_CHANGE_LISTENER); // set to current time - setCurrentHour(calendar.get(Calendar.HOUR_OF_DAY)); - setCurrentMinute(calendar.get(Calendar.MINUTE)); + setCurrentHour(mTempCalendar.get(Calendar.HOUR_OF_DAY)); + setCurrentMinute(mTempCalendar.get(Calendar.MINUTE)); if (!isEnabled()) { setEnabled(false); @@ -406,6 +410,22 @@ public class TimePicker extends FrameLayout { return mHourSpinner.getBaseline(); } + @Override + public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event) { + int flags = DateUtils.FORMAT_SHOW_TIME; + if (mIs24HourView) { + flags |= DateUtils.FORMAT_24HOUR; + } else { + flags |= DateUtils.FORMAT_12HOUR; + } + mTempCalendar.set(Calendar.HOUR_OF_DAY, getCurrentHour()); + mTempCalendar.set(Calendar.MINUTE, getCurrentMinute()); + String selectedDateUtterance = DateUtils.formatDateTime(mContext, + mTempCalendar.getTimeInMillis(), flags); + event.getText().add(selectedDateUtterance); + return true; + } + private void updateHourControl() { if (is24HourView()) { mHourSpinner.setMinValue(0); @@ -435,9 +455,11 @@ public class TimePicker extends FrameLayout { mAmPmButton.setVisibility(View.VISIBLE); } } + sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_SELECTED); } private void onTimeChanged() { + sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_SELECTED); if (mOnTimeChangedListener != null) { mOnTimeChangedListener.onTimeChanged(this, getCurrentHour(), getCurrentMinute()); } diff --git a/core/res/res/anim/lock_screen_behind_enter.xml b/core/res/res/anim/lock_screen_behind_enter.xml index c01e26500e19..6c7782e74d24 100644 --- a/core/res/res/anim/lock_screen_behind_enter.xml +++ b/core/res/res/anim/lock_screen_behind_enter.xml @@ -3,21 +3,34 @@ /* ** Copyright 2007, 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 +** 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 +** 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 +** 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. */ --> -<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@interpolator/accelerate_cubic"> - <alpha android:fromAlpha="0.0" android:toAlpha="1.0" - android:duration="@android:integer/config_activityDefaultDur" /> -</set> +<set xmlns:android="http://schemas.android.com/apk/res/android" + android:detachWallpaper="true" android:shareInterpolator="false"> + <scale + android:fromXScale="0.9" android:toXScale="1.0" + android:fromYScale="0.9" android:toYScale="1.0" + android:pivotX="50%p" android:pivotY="50%p" + android:fillEnabled="true" android:fillBefore="true" + android:interpolator="@interpolator/decelerate_cubic" + android:startOffset="@android:integer/config_mediumAnimTime" + android:duration="@android:integer/config_mediumAnimTime" /> + <alpha + android:fromAlpha="0" android:toAlpha="1.0" + android:fillEnabled="true" android:fillBefore="true" + android:interpolator="@interpolator/decelerate_quad" + android:startOffset="@android:integer/config_mediumAnimTime" + android:duration="@android:integer/config_mediumAnimTime"/> +</set>
\ No newline at end of file diff --git a/core/res/res/anim/lock_screen_exit.xml b/core/res/res/anim/lock_screen_exit.xml index 44ca7363808c..d9c3a3379f67 100644 --- a/core/res/res/anim/lock_screen_exit.xml +++ b/core/res/res/anim/lock_screen_exit.xml @@ -3,22 +3,33 @@ /* ** Copyright 2007, 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 +** 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 +** 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 +** 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. */ --> <set xmlns:android="http://schemas.android.com/apk/res/android" - android:interpolator="@interpolator/decelerate_cubic"> - <alpha android:fromAlpha="1.0" android:toAlpha="0.0" - android:duration="@android:integer/config_activityDefaultDur" /> -</set> + android:zAdjustment="top" + android:shareInterpolator="false"> + <scale + android:fromXScale="1.0" android:toXScale="1.2" + android:fromYScale="1.0" android:toYScale="1.2" + android:pivotX="50%p" android:pivotY="50%p" + android:fillEnabled="true" android:fillAfter="true" + android:interpolator="@interpolator/accelerate_quint" + android:duration="@android:integer/config_mediumAnimTime" /> + <alpha + android:fromAlpha="1.0" android:toAlpha="0" + android:fillEnabled="true" android:fillAfter="true" + android:interpolator="@interpolator/accelerate_quad" + android:duration="@android:integer/config_mediumAnimTime"/> +</set>
\ No newline at end of file diff --git a/core/res/res/drawable-hdpi/stat_sys_tether_bluetooth.png b/core/res/res/drawable-hdpi/stat_sys_tether_bluetooth.png Binary files differindex e43fbaee4caf..11869af2a4a9 100644 --- a/core/res/res/drawable-hdpi/stat_sys_tether_bluetooth.png +++ b/core/res/res/drawable-hdpi/stat_sys_tether_bluetooth.png diff --git a/core/res/res/drawable-hdpi/stat_sys_tether_general.png b/core/res/res/drawable-hdpi/stat_sys_tether_general.png Binary files differindex c42b00c495f6..f1606baa176a 100644 --- a/core/res/res/drawable-hdpi/stat_sys_tether_general.png +++ b/core/res/res/drawable-hdpi/stat_sys_tether_general.png diff --git a/core/res/res/drawable-hdpi/stat_sys_tether_usb.png b/core/res/res/drawable-hdpi/stat_sys_tether_usb.png Binary files differindex c6c533d8a2e5..a05ab3ec7bf1 100644 --- a/core/res/res/drawable-hdpi/stat_sys_tether_usb.png +++ b/core/res/res/drawable-hdpi/stat_sys_tether_usb.png diff --git a/core/res/res/drawable-hdpi/stat_sys_tether_wifi.png b/core/res/res/drawable-hdpi/stat_sys_tether_wifi.png Binary files differindex 9fcadef2900b..6218c3f321f8 100644 --- a/core/res/res/drawable-hdpi/stat_sys_tether_wifi.png +++ b/core/res/res/drawable-hdpi/stat_sys_tether_wifi.png diff --git a/core/res/res/drawable-mdpi/stat_sys_tether_bluetooth.png b/core/res/res/drawable-mdpi/stat_sys_tether_bluetooth.png Binary files differindex efb64ad7b849..b318b9c317ed 100644 --- a/core/res/res/drawable-mdpi/stat_sys_tether_bluetooth.png +++ b/core/res/res/drawable-mdpi/stat_sys_tether_bluetooth.png diff --git a/core/res/res/drawable-mdpi/stat_sys_tether_general.png b/core/res/res/drawable-mdpi/stat_sys_tether_general.png Binary files differindex 368880328e2c..952ff6bfc1ad 100644 --- a/core/res/res/drawable-mdpi/stat_sys_tether_general.png +++ b/core/res/res/drawable-mdpi/stat_sys_tether_general.png diff --git a/core/res/res/drawable-mdpi/stat_sys_tether_usb.png b/core/res/res/drawable-mdpi/stat_sys_tether_usb.png Binary files differindex 73f1a81ef926..3206557519d0 100644 --- a/core/res/res/drawable-mdpi/stat_sys_tether_usb.png +++ b/core/res/res/drawable-mdpi/stat_sys_tether_usb.png diff --git a/core/res/res/drawable-mdpi/stat_sys_tether_wifi.png b/core/res/res/drawable-mdpi/stat_sys_tether_wifi.png Binary files differindex d448491df1d0..45a95f8bca42 100644 --- a/core/res/res/drawable-mdpi/stat_sys_tether_wifi.png +++ b/core/res/res/drawable-mdpi/stat_sys_tether_wifi.png diff --git a/core/res/res/layout/number_picker.xml b/core/res/res/layout/number_picker.xml index f92c1bcba659..807daf2b2dae 100644 --- a/core/res/res/layout/number_picker.xml +++ b/core/res/res/layout/number_picker.xml @@ -22,7 +22,8 @@ <ImageButton android:id="@+id/increment" android:layout_width="fill_parent" android:layout_height="wrap_content" - style="?android:attr/numberPickerUpButtonStyle" /> + style="?android:attr/numberPickerUpButtonStyle" + android:contentDescription="@string/number_picker_increment_button" /> <EditText android:id="@+id/numberpicker_input" android:layout_width="fill_parent" @@ -32,6 +33,7 @@ <ImageButton android:id="@+id/decrement" android:layout_width="fill_parent" android:layout_height="wrap_content" - style="?android:attr/numberPickerDownButtonStyle" /> + style="?android:attr/numberPickerDownButtonStyle" + android:contentDescription="@string/number_picker_decrement_button" /> </merge> diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml index 529111ec29ec..d09210e0fc46 100755 --- a/core/res/res/values/strings.xml +++ b/core/res/res/values/strings.xml @@ -2690,4 +2690,11 @@ <!-- Choose Account Activity label --> <string name="choose_account_label">Select an account</string> + + <!-- NumberPicker - accessibility support --> + <!-- Description of the button to increment the NumberPicker value. [CHAR LIMIT=NONE] --> + <string name="number_picker_increment_button">Increment</string> + <!-- Description of the button to decrement the NumberPicker value. [CHAR LIMIT=NONE] --> + <string name="number_picker_decrement_button">Decrement</string> + </resources> diff --git a/data/etc/android.hardware.touchscreen.multitouch.distinct.xml b/data/etc/android.hardware.touchscreen.multitouch.distinct.xml index a3c116ad7339..35eeefd1fcb8 100644 --- a/data/etc/android.hardware.touchscreen.multitouch.distinct.xml +++ b/data/etc/android.hardware.touchscreen.multitouch.distinct.xml @@ -20,4 +20,5 @@ <feature name="android.hardware.touchscreen" /> <feature name="android.hardware.touchscreen.multitouch" /> <feature name="android.hardware.touchscreen.multitouch.distinct" /> + <feature name="android.hardware.faketouch" /> </permissions> diff --git a/data/etc/android.hardware.touchscreen.multitouch.jazzhand.xml b/data/etc/android.hardware.touchscreen.multitouch.jazzhand.xml index 80bf859b29cb..ed6606d8de49 100644 --- a/data/etc/android.hardware.touchscreen.multitouch.jazzhand.xml +++ b/data/etc/android.hardware.touchscreen.multitouch.jazzhand.xml @@ -21,4 +21,5 @@ <feature name="android.hardware.touchscreen.multitouch" /> <feature name="android.hardware.touchscreen.multitouch.distinct" /> <feature name="android.hardware.touchscreen.multitouch.jazzhand" /> + <feature name="android.hardware.faketouch" /> </permissions> diff --git a/data/etc/android.hardware.touchscreen.multitouch.xml b/data/etc/android.hardware.touchscreen.multitouch.xml index 34b518aac027..1d59a27beb18 100644 --- a/data/etc/android.hardware.touchscreen.multitouch.xml +++ b/data/etc/android.hardware.touchscreen.multitouch.xml @@ -20,4 +20,5 @@ <permissions> <feature name="android.hardware.touchscreen" /> <feature name="android.hardware.touchscreen.multitouch" /> + <feature name="android.hardware.faketouch" /> </permissions> diff --git a/data/etc/android.hardware.touchscreen.xml b/data/etc/android.hardware.touchscreen.xml index 10c91f122d33..5b5ddf930191 100644 --- a/data/etc/android.hardware.touchscreen.xml +++ b/data/etc/android.hardware.touchscreen.xml @@ -18,4 +18,5 @@ support multitouch. --> <permissions> <feature name="android.hardware.touchscreen" /> + <feature name="android.hardware.faketouch" /> </permissions> diff --git a/libs/rs/rsContext.cpp b/libs/rs/rsContext.cpp index 40cb5c746e47..1dfedb3bd53c 100644 --- a/libs/rs/rsContext.cpp +++ b/libs/rs/rsContext.cpp @@ -528,6 +528,7 @@ void * Context::threadProc(void *vrsc) { void Context::destroyWorkerThreadResources() { //LOGV("destroyWorkerThreadResources 1"); + ObjectBase::zeroAllUserRef(this); if (mIsGraphicsContext) { mRaster.clear(); mFragment.clear(); @@ -542,7 +543,6 @@ void Context::destroyWorkerThreadResources() { mStateFont.deinit(this); mShaderCache.cleanupAll(); } - ObjectBase::zeroAllUserRef(this); //LOGV("destroyWorkerThreadResources 2"); mExit = true; } diff --git a/libs/rs/rsFont.cpp b/libs/rs/rsFont.cpp index 8571c32e95ec..7fdfbe05f287 100644 --- a/libs/rs/rsFont.cpp +++ b/libs/rs/rsFont.cpp @@ -74,6 +74,15 @@ bool Font::init(const char *name, float fontSize, uint32_t dpi, const void *data return true; } +void Font::preDestroy() const { + for (uint32_t ct = 0; ct < mRSC->mStateFont.mActiveFonts.size(); ct++) { + if (mRSC->mStateFont.mActiveFonts[ct] == this) { + mRSC->mStateFont.mActiveFonts.removeAt(ct); + break; + } + } +} + void Font::invalidateTextureCache() { for (uint32_t i = 0; i < mCachedGlyphs.size(); i ++) { mCachedGlyphs.valueAt(i)->mIsValid = false; @@ -309,13 +318,6 @@ Font::~Font() { FT_Done_Face(mFace); } - for (uint32_t ct = 0; ct < mRSC->mStateFont.mActiveFonts.size(); ct++) { - if (mRSC->mStateFont.mActiveFonts[ct] == this) { - mRSC->mStateFont.mActiveFonts.removeAt(ct); - break; - } - } - for (uint32_t i = 0; i < mCachedGlyphs.size(); i ++) { CachedGlyphInfo *glyph = mCachedGlyphs.valueAt(i); delete glyph; @@ -799,11 +801,6 @@ void FontState::deinit(Context *rsc) { mDefault.clear(); - Vector<Font*> fontsToDereference = mActiveFonts; - for (uint32_t i = 0; i < fontsToDereference.size(); i ++) { - fontsToDereference[i]->zeroUserRef(); - } - if (mLibrary) { FT_Done_FreeType( mLibrary ); mLibrary = NULL; diff --git a/libs/rs/rsFont.h b/libs/rs/rsFont.h index 00d77c84587c..48209992e9b1 100644 --- a/libs/rs/rsFont.h +++ b/libs/rs/rsFont.h @@ -119,6 +119,7 @@ protected: Font(Context *rsc); bool init(const char *name, float fontSize, uint32_t dpi, const void *data = NULL, uint32_t dataLen = 0); + virtual void preDestroy() const; FT_Face mFace; bool mInitialized; bool mHasKerning; diff --git a/libs/rs/rsLocklessFifo.cpp b/libs/rs/rsLocklessFifo.cpp index 3f8854330acf..70b72783863e 100644 --- a/libs/rs/rsLocklessFifo.cpp +++ b/libs/rs/rsLocklessFifo.cpp @@ -100,7 +100,9 @@ void LocklessCommandFifo::commit(uint32_t command, uint32_t sizeInBytes) { //dumpState("commit 1"); reinterpret_cast<uint16_t *>(mPut)[0] = command; reinterpret_cast<uint16_t *>(mPut)[1] = sizeInBytes; - mPut += ((sizeInBytes + 3) & ~3) + 4; + + int32_t s = ((sizeInBytes + 3) & ~3) + 4; + android_atomic_add(s, (int32_t *)&mPut); //dumpState("commit 2"); mSignalToWorker.set(); } diff --git a/libs/rs/rsScript.cpp b/libs/rs/rsScript.cpp index efdc626071f8..9ada9c299ac4 100644 --- a/libs/rs/rsScript.cpp +++ b/libs/rs/rsScript.cpp @@ -78,8 +78,6 @@ void Script::setVarObj(uint32_t slot, ObjectBase *val) { (*destPtr)->decSysRef(); } *destPtr = val; - } else { - LOGV("Calling setVarObj on slot = %i which is null. This is dangerous because the script will not hold a ref count on the object.", slot); } } diff --git a/libs/rs/rsScriptC.cpp b/libs/rs/rsScriptC.cpp index 3858e1cfc0de..fc673a2d517b 100644 --- a/libs/rs/rsScriptC.cpp +++ b/libs/rs/rsScriptC.cpp @@ -94,16 +94,24 @@ char *genCacheFileName(const char *cacheDir, } ScriptC::ScriptC(Context *rsc) : Script(rsc) { - LOGD(">>>> ScriptC ctor called, obj=%p", this); mBccScript = NULL; memset(&mProgram, 0, sizeof(mProgram)); } ScriptC::~ScriptC() { - LOGD(">>>> ~ScriptC() mBccScript = %p", mBccScript); if (mBccScript) { + if (mProgram.mObjectSlotList) { + for (size_t ct=0; ct < mProgram.mObjectSlotCount; ct++) { + setVarObj(mProgram.mObjectSlotList[ct], NULL); + } + delete [] mProgram.mObjectSlotList; + mProgram.mObjectSlotList = NULL; + mProgram.mObjectSlotCount = 0; + } + + + LOGD(">>>> ~ScriptC bccDisposeScript(%p)", mBccScript); bccDisposeScript(mBccScript); - LOGD(">>>> ~ScriptC(mBCCScript)"); } free(mEnviroment.mScriptText); mEnviroment.mScriptText = NULL; @@ -589,6 +597,16 @@ bool ScriptCState::runCompiler(Context *rsc, return false; } } + + size_t objectSlotCount = bccGetObjectSlotCount(s->mBccScript); + uint32_t *objectSlots = NULL; + if (objectSlotCount) { + objectSlots = new uint32_t[objectSlotCount]; + bccGetObjectSlotList(s->mBccScript, objectSlotCount, objectSlots); + s->mProgram.mObjectSlotList = objectSlots; + s->mProgram.mObjectSlotCount = objectSlotCount; + } + return true; } diff --git a/libs/rs/rsScriptC.h b/libs/rs/rsScriptC.h index 7143c671a658..e794feb10edb 100644 --- a/libs/rs/rsScriptC.h +++ b/libs/rs/rsScriptC.h @@ -42,8 +42,12 @@ public: RunScript_t mRoot; VoidFunc_t mInit; + + uint32_t * mObjectSlotList; + uint32_t mObjectSlotCount; }; + Program_t mProgram; BCCScriptRef mBccScript; diff --git a/media/java/android/media/AudioService.java b/media/java/android/media/AudioService.java index 7312d75707dd..cbc7529803a4 100644 --- a/media/java/android/media/AudioService.java +++ b/media/java/android/media/AudioService.java @@ -1450,7 +1450,7 @@ public class AudioService extends IAudioService.Stub { if (AudioSystem.getForceUse(AudioSystem.FOR_COMMUNICATION) == AudioSystem.FORCE_BT_SCO) { // Log.v(TAG, "getActiveStreamType: Forcing STREAM_BLUETOOTH_SCO..."); return AudioSystem.STREAM_BLUETOOTH_SCO; - } else if (isOffhook || AudioSystem.isStreamActive(AudioSystem.STREAM_VOICE_CALL)) { + } else if (isOffhook || getMode() == AudioManager.MODE_IN_COMMUNICATION) { // Log.v(TAG, "getActiveStreamType: Forcing STREAM_VOICE_CALL..."); return AudioSystem.STREAM_VOICE_CALL; } else if (AudioSystem.isStreamActive(AudioSystem.STREAM_MUSIC)) { diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_gps_acquiring.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_gps_acquiring.png Binary files differindex 150c9fc87058..61f65bf164f8 100644 --- a/packages/SystemUI/res/drawable-hdpi/stat_sys_gps_acquiring.png +++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_gps_acquiring.png diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_0.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_0.png Binary files differindex ecb39515cd82..ff74c3563710 100644 --- a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_0.png +++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_0.png diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_1.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_1.png Binary files differindex e375a8a85b83..6375b1bae9da 100644 --- a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_1.png +++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_1.png diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_1_fully.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_1_fully.png Binary files differindex 13dde32a0738..ef886b831720 100644 --- a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_1_fully.png +++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_1_fully.png diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_2.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_2.png Binary files differindex 24ade2c92220..92882bd099c7 100644 --- a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_2.png +++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_2.png diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_2_fully.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_2_fully.png Binary files differindex efa6f79d953c..cf5c4c3bc8b9 100644 --- a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_2_fully.png +++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_2_fully.png diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_3.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_3.png Binary files differindex 5b5baed65919..24b6d2562b97 100644 --- a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_3.png +++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_3.png diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_3_fully.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_3_fully.png Binary files differindex 2eaff9869e06..b147583d59e4 100644 --- a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_3_fully.png +++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_3_fully.png diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_4.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_4.png Binary files differindex b515cf051435..594ad6ac67eb 100644 --- a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_4.png +++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_4.png diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_4_fully.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_4_fully.png Binary files differindex d8599b512f15..2879550d4919 100644 --- a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_4_fully.png +++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_4_fully.png diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_0.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_0.png Binary files differindex 1b404b376df7..7cd2893e8e38 100644 --- a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_0.png +++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_0.png diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_1.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_1.png Binary files differindex ba9cc9c69b6c..23eb1d6d43c2 100644 --- a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_1.png +++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_1.png diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_1_fully.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_1_fully.png Binary files differindex 3e29d5e98bb9..ad28667e6b93 100644 --- a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_1_fully.png +++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_1_fully.png diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_2.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_2.png Binary files differindex e1900eaf3302..048dfd1d53dc 100644 --- a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_2.png +++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_2.png diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_2_fully.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_2_fully.png Binary files differindex 2b00f3baa6d2..224ae1f54a90 100755 --- a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_2_fully.png +++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_2_fully.png diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_3.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_3.png Binary files differindex 6158e66ce057..b85859b84442 100644 --- a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_3.png +++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_3.png diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_3_fully.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_3_fully.png Binary files differindex b183160e50bd..d7f39602b5e7 100755 --- a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_3_fully.png +++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_3_fully.png diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_4.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_4.png Binary files differindex 1b96f39691f9..54915b98c065 100644 --- a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_4.png +++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_4.png diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_4_fully.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_4_fully.png Binary files differindex cf504f5d7de1..bd44b529ee74 100755 --- a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_4_fully.png +++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_4_fully.png diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_gps_acquiring.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_gps_acquiring.png Binary files differindex e5e98f91201e..3a0fce0f9515 100644 --- a/packages/SystemUI/res/drawable-mdpi/stat_sys_gps_acquiring.png +++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_gps_acquiring.png diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_0.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_0.png Binary files differindex cf11f0dd40f3..8654aa096a3f 100644 --- a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_0.png +++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_0.png diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_1.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_1.png Binary files differindex 3b69d1ea6c40..c10629fe58bf 100644 --- a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_1.png +++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_1.png diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_1_fully.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_1_fully.png Binary files differindex b012b184a11d..753c9f95e83a 100644 --- a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_1_fully.png +++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_1_fully.png diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_2.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_2.png Binary files differindex 87362349367a..65a886abe618 100644 --- a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_2.png +++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_2.png diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_2_fully.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_2_fully.png Binary files differindex cc68512477e7..6e90ce4bab7c 100644 --- a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_2_fully.png +++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_2_fully.png diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_3.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_3.png Binary files differindex 5a2d3c0c5eb8..cce7d9b2046e 100644 --- a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_3.png +++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_3.png diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_3_fully.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_3_fully.png Binary files differindex a93d49c85bd3..c4e33bd0a475 100644 --- a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_3_fully.png +++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_3_fully.png diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_4.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_4.png Binary files differindex 3fbf7fc8c09b..433a2c5e6a5e 100644 --- a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_4.png +++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_4.png diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_4_fully.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_4_fully.png Binary files differindex e3ff8b9b7b89..81401b2b44f5 100644 --- a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_4_fully.png +++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_4_fully.png diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_0.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_0.png Binary files differindex b11ad16539dc..75906a2c2829 100644 --- a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_0.png +++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_0.png diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_1.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_1.png Binary files differindex 94d40e078f8c..528e4ce92313 100644 --- a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_1.png +++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_1.png diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_1_fully.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_1_fully.png Binary files differindex 4a896f32cf5d..1eb5aad93bde 100644 --- a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_1_fully.png +++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_1_fully.png diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_2.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_2.png Binary files differindex b09b40dce070..5f2c2303c39f 100644 --- a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_2.png +++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_2.png diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_2_fully.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_2_fully.png Binary files differindex 0f9c18721ffb..2c27620ed885 100644 --- a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_2_fully.png +++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_2_fully.png diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_3.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_3.png Binary files differindex b852dba30caf..4cb06bec0721 100644 --- a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_3.png +++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_3.png diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_3_fully.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_3_fully.png Binary files differindex 0468d0603deb..fd9c35030510 100644 --- a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_3_fully.png +++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_3_fully.png diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_4.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_4.png Binary files differindex 06bbb4a7498c..e8aed953289b 100644 --- a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_4.png +++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_4.png diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_4_fully.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_4_fully.png Binary files differindex 1858af3a32df..c629387c20b8 100644 --- a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_4_fully.png +++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_4_fully.png diff --git a/packages/SystemUI/res/layout-xlarge/status_bar_notification_area.xml b/packages/SystemUI/res/layout-xlarge/status_bar_notification_area.xml index 2ee2ac427e98..0925f775146a 100644 --- a/packages/SystemUI/res/layout-xlarge/status_bar_notification_area.xml +++ b/packages/SystemUI/res/layout-xlarge/status_bar_notification_area.xml @@ -45,7 +45,6 @@ android:id="@+id/notificationIcons" android:layout_width="wrap_content" android:layout_height="match_parent" - android:orientation="horizontal" > <view class="com.android.systemui.statusbar.tablet.NotificationIconArea$IconLayout" @@ -55,6 +54,14 @@ android:layout_gravity="center_vertical" android:layout_marginLeft="8dp" /> + <View + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_alignLeft="@id/icons" + android:layout_alignRight="@id/icons" + android:background="@drawable/notification_icon_area_smoke" + android:clickable="false" + /> </com.android.systemui.statusbar.tablet.NotificationIconArea> </LinearLayout> diff --git a/packages/SystemUI/res/values-xlarge/colors.xml b/packages/SystemUI/res/values-xlarge/colors.xml index 14161c3f0c0f..43af2c7404b3 100644 --- a/packages/SystemUI/res/values-xlarge/colors.xml +++ b/packages/SystemUI/res/values-xlarge/colors.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <resources> <drawable name="status_bar_background">#000000</drawable> + <drawable name="notification_icon_area_smoke">#A0000000</drawable> </resources> diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/InputMethodsPanel.java b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/InputMethodsPanel.java index a1cc274ef99c..474ef456c37c 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/InputMethodsPanel.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/InputMethodsPanel.java @@ -75,6 +75,7 @@ public class InputMethodsPanel extends LinearLayout implements StatusBarPanel, O private LinearLayout mInputMethodMenuList; private PackageManager mPackageManager; private String mEnabledInputMethodAndSubtypesCacheStr; + private String mLastSystemLocaleString; private View mConfigureImeShortcut; private class InputMethodComparator implements Comparator<InputMethodInfo> { @@ -335,8 +336,10 @@ public class InputMethodsPanel extends LinearLayout implements StatusBarPanel, O getEnabledInputMethodAndSubtypeList() { String newEnabledIMIs = Settings.Secure.getString( mContext.getContentResolver(), Settings.Secure.ENABLED_INPUT_METHODS); - if (mEnabledInputMethodAndSubtypesCacheStr == null - || !mEnabledInputMethodAndSubtypesCacheStr.equals(newEnabledIMIs) + String currentSystemLocaleString = + mContext.getResources().getConfiguration().locale.toString(); + if (!TextUtils.equals(mEnabledInputMethodAndSubtypesCacheStr, newEnabledIMIs) + || !TextUtils.equals(mLastSystemLocaleString, currentSystemLocaleString) || mPackageChanged) { mEnabledInputMethodAndSubtypesCache.clear(); final List<InputMethodInfo> imis = mImm.getEnabledInputMethodList(); @@ -346,6 +349,7 @@ public class InputMethodsPanel extends LinearLayout implements StatusBarPanel, O } mEnabledInputMethodAndSubtypesCacheStr = newEnabledIMIs; mPackageChanged = false; + mLastSystemLocaleString = currentSystemLocaleString; } return mEnabledInputMethodAndSubtypesCache; } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/NotificationIconArea.java b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/NotificationIconArea.java index df29f95ed5e4..3d6c1a2f8a19 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/NotificationIconArea.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/NotificationIconArea.java @@ -23,13 +23,14 @@ import android.util.AttributeSet; import android.util.Slog; import android.view.View; import android.widget.LinearLayout; +import android.widget.RelativeLayout; import android.widget.ImageView; import android.view.MotionEvent; import com.android.systemui.R; -public class NotificationIconArea extends LinearLayout { +public class NotificationIconArea extends RelativeLayout { private static final String TAG = "NotificationIconArea"; IconLayout mIconLayout; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletTicker.java b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletTicker.java index 51844625d70d..a072aedd08b6 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletTicker.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletTicker.java @@ -53,7 +53,7 @@ public class TabletTicker private static final String TAG = "StatusBar.TabletTicker"; - private static final boolean CLICKABLE_TICKER = false; + private static final boolean CLICKABLE_TICKER = true; // 3 is enough to let us see most cases, but not get so far behind that it's too annoying. private static final int QUEUE_LENGTH = 3; @@ -300,8 +300,16 @@ public class TabletTicker if (CLICKABLE_TICKER) { PendingIntent contentIntent = notification.notification.contentIntent; if (contentIntent != null) { - group.setOnClickListener(mBar.makeClicker(contentIntent, - notification.pkg, notification.tag, notification.id)); + // create the usual notification clicker, but chain it together with a halt() call + // to abort the ticker too + final View.OnClickListener clicker = mBar.makeClicker(contentIntent, + notification.pkg, notification.tag, notification.id); + group.setOnClickListener(new View.OnClickListener() { + public void onClick(View v) { + halt(); + clicker.onClick(v); + } + }); } else { group.setOnClickListener(null); } |