From 18e828efde76271f9603cd2d968eeed969d6ec58 Mon Sep 17 00:00:00 2001 From: Victoria Lease Date: Tue, 15 Jan 2013 10:39:28 -0800 Subject: [PATCH 01/55] fix NPE in updateClientUids Bug: 8009908 Change-Id: I54d97c587a3fa9d003f654f98fdfdbe21af791d6 --- .../java/com/android/server/location/GpsLocationProvider.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/services/java/com/android/server/location/GpsLocationProvider.java b/services/java/com/android/server/location/GpsLocationProvider.java index 0c54d5ae5dd49..12c14bfa626c4 100644 --- a/services/java/com/android/server/location/GpsLocationProvider.java +++ b/services/java/com/android/server/location/GpsLocationProvider.java @@ -858,6 +858,9 @@ public class GpsLocationProvider implements LocationProviderInterface { private void updateClientUids(WorkSource source) { // Update work source. WorkSource[] changes = mClientSource.setReturningDiffs(source); + if (changes == null) { + return; + } WorkSource newWork = changes[0]; WorkSource goneWork = changes[1]; From 1ccfece863c0e5b3a4d0cde27654763e0f5f9e7a Mon Sep 17 00:00:00 2001 From: Adam Powell Date: Wed, 27 Mar 2013 15:11:33 -0700 Subject: [PATCH 02/55] am 6ceed12a: Merge "Fix an action bar menu order of operations bug" into jb-mr2-dev * commit '6ceed12a6ccbbd348849c83b5e810b6325dad994': Fix an action bar menu order of operations bug --- .../src/com/android/internal/policy/impl/PhoneWindow.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindow.java b/policy/src/com/android/internal/policy/impl/PhoneWindow.java index 5ad305cbd2a2e..ad5e20bcab6c8 100644 --- a/policy/src/com/android/internal/policy/impl/PhoneWindow.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindow.java @@ -989,6 +989,13 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { final Callback cb = getCallback(); if (!mActionBar.isOverflowMenuShowing() || !toggleMenuMode) { if (cb != null && !isDestroyed() && mActionBar.getVisibility() == View.VISIBLE) { + // If we have a menu invalidation pending, do it now. + if (mInvalidatePanelMenuPosted && + (mInvalidatePanelMenuFeatures & (1 << FEATURE_OPTIONS_PANEL)) != 0) { + mDecor.removeCallbacks(mInvalidatePanelMenuRunnable); + mInvalidatePanelMenuRunnable.run(); + } + final PanelFeatureState st = getPanelState(FEATURE_OPTIONS_PANEL, true); // If we don't have a menu or we're waiting for a full content refresh, From 03351084a2b91a3809b2afbe525709468460ec5a Mon Sep 17 00:00:00 2001 From: Fabrice Di Meglio Date: Wed, 27 Mar 2013 15:21:46 -0700 Subject: [PATCH 03/55] am 9fb9a0f3: am f7fa08b7: Merge "Fix bug #8487785 Notification shade has text overlapping the icon" into jb-mr2-dev * commit '9fb9a0f3b8c22ca538a36b81769c7e1080fcf9f9': Fix bug #8487785 Notification shade has text overlapping the icon --- core/java/android/view/ViewGroup.java | 82 ++++++++++++++++++++------- 1 file changed, 60 insertions(+), 22 deletions(-) diff --git a/core/java/android/view/ViewGroup.java b/core/java/android/view/ViewGroup.java index 23c8c618079f9..e278674d81e03 100644 --- a/core/java/android/view/ViewGroup.java +++ b/core/java/android/view/ViewGroup.java @@ -5962,6 +5962,11 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager private boolean mNeedResolution = false; private boolean mIsRtlCompatibilityMode = true; + private static int UNDEFINED_MARGIN = DEFAULT_MARGIN_RELATIVE; + + private boolean mLeftMarginUndefined = false; + private boolean mRightMarginUndefined = false; + /** * Creates a new set of layout parameters. The values are extracted from * the supplied attributes set and context. @@ -5988,16 +5993,26 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager } else { leftMargin = a.getDimensionPixelSize( R.styleable.ViewGroup_MarginLayout_layout_marginLeft, - DEFAULT_MARGIN_RESOLVED); - topMargin = a.getDimensionPixelSize( - R.styleable.ViewGroup_MarginLayout_layout_marginTop, - DEFAULT_MARGIN_RESOLVED); + UNDEFINED_MARGIN); + if (leftMargin == UNDEFINED_MARGIN) { + mLeftMarginUndefined = true; + leftMargin = DEFAULT_MARGIN_RESOLVED; + } rightMargin = a.getDimensionPixelSize( R.styleable.ViewGroup_MarginLayout_layout_marginRight, + UNDEFINED_MARGIN); + if (rightMargin == UNDEFINED_MARGIN) { + mRightMarginUndefined = true; + rightMargin = DEFAULT_MARGIN_RESOLVED; + } + + topMargin = a.getDimensionPixelSize( + R.styleable.ViewGroup_MarginLayout_layout_marginTop, DEFAULT_MARGIN_RESOLVED); bottomMargin = a.getDimensionPixelSize( R.styleable.ViewGroup_MarginLayout_layout_marginBottom, DEFAULT_MARGIN_RESOLVED); + startMargin = a.getDimensionPixelSize( R.styleable.ViewGroup_MarginLayout_layout_marginStart, DEFAULT_MARGIN_RELATIVE); @@ -6021,6 +6036,9 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager public MarginLayoutParams(int width, int height) { super(width, height); + mLeftMarginUndefined = true; + mRightMarginUndefined = true; + mNeedResolution = false; mIsRtlCompatibilityMode = false; } @@ -6041,6 +6059,9 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager this.startMargin = source.startMargin; this.endMargin = source.endMargin; + this.mLeftMarginUndefined = source.mLeftMarginUndefined; + this.mRightMarginUndefined = source.mRightMarginUndefined; + this.mNeedResolution = source.mNeedResolution; this.mIsRtlCompatibilityMode = source.mIsRtlCompatibilityMode; @@ -6053,6 +6074,9 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager public MarginLayoutParams(LayoutParams source) { super(source); + mLeftMarginUndefined = true; + mRightMarginUndefined = true; + mNeedResolution = false; mIsRtlCompatibilityMode = false; } @@ -6077,6 +6101,8 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager topMargin = top; rightMargin = right; bottomMargin = bottom; + mLeftMarginUndefined = false; + mRightMarginUndefined = false; mNeedResolution = isMarginRelative(); } @@ -6219,30 +6245,42 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager // No relative margin or pre JB-MR1 case or no need to resolve, just dont do anything // Will use the left and right margins if no relative margin is defined. - if (!isMarginRelative() || !mNeedResolution || mIsRtlCompatibilityMode) return; + if (!isMarginRelative() || !mNeedResolution) return; // Proceed with resolution doResolveMargins(); } private void doResolveMargins() { - // We have some relative margins (either the start one or the end one or both). So use - // them and override what has been defined for left and right margins. If either start - // or end margin is not defined, just set it to default "0". - switch(mLayoutDirection) { - case View.LAYOUT_DIRECTION_RTL: - leftMargin = (endMargin > DEFAULT_MARGIN_RELATIVE) ? - endMargin : DEFAULT_MARGIN_RESOLVED; - rightMargin = (startMargin > DEFAULT_MARGIN_RELATIVE) ? - startMargin : DEFAULT_MARGIN_RESOLVED; - break; - case View.LAYOUT_DIRECTION_LTR: - default: - leftMargin = (startMargin > DEFAULT_MARGIN_RELATIVE) ? - startMargin : DEFAULT_MARGIN_RESOLVED; - rightMargin = (endMargin > DEFAULT_MARGIN_RELATIVE) ? - endMargin : DEFAULT_MARGIN_RESOLVED; - break; + + if (mIsRtlCompatibilityMode) { + // if left or right margins are not defined and if we have some start or end margin + // defined then use those start and end margins. + if (mLeftMarginUndefined && startMargin > DEFAULT_MARGIN_RELATIVE) { + leftMargin = startMargin; + } + if (mRightMarginUndefined && endMargin > DEFAULT_MARGIN_RELATIVE) { + rightMargin = endMargin; + } + } else { + // We have some relative margins (either the start one or the end one or both). So use + // them and override what has been defined for left and right margins. If either start + // or end margin is not defined, just set it to default "0". + switch(mLayoutDirection) { + case View.LAYOUT_DIRECTION_RTL: + leftMargin = (endMargin > DEFAULT_MARGIN_RELATIVE) ? + endMargin : DEFAULT_MARGIN_RESOLVED; + rightMargin = (startMargin > DEFAULT_MARGIN_RELATIVE) ? + startMargin : DEFAULT_MARGIN_RESOLVED; + break; + case View.LAYOUT_DIRECTION_LTR: + default: + leftMargin = (startMargin > DEFAULT_MARGIN_RELATIVE) ? + startMargin : DEFAULT_MARGIN_RESOLVED; + rightMargin = (endMargin > DEFAULT_MARGIN_RELATIVE) ? + endMargin : DEFAULT_MARGIN_RESOLVED; + break; + } } mNeedResolution = false; } From a2701b2ef86c3a6e4549bba0b4349ebc6ab3bb63 Mon Sep 17 00:00:00 2001 From: Tim Murray Date: Wed, 10 Apr 2013 11:44:52 -0700 Subject: [PATCH 04/55] am f3860953: am a8aa6880: Merge "Add GC thread to RSGL." into jb-mr2-dev * commit 'f38609536f27e8e6971869bf63d744bf12a60163': Add GC thread to RSGL. --- graphics/java/android/renderscript/RenderScriptGL.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/graphics/java/android/renderscript/RenderScriptGL.java b/graphics/java/android/renderscript/RenderScriptGL.java index 52034b19e7062..fad883873458e 100644 --- a/graphics/java/android/renderscript/RenderScriptGL.java +++ b/graphics/java/android/renderscript/RenderScriptGL.java @@ -198,6 +198,9 @@ public class RenderScriptGL extends RenderScript { } mMessageThread = new MessageThread(this); mMessageThread.start(); + mGCThread = new GCThread(this); + mGCThread.start(); + } /** From 674eff1bf4602cb518d464219175a0ac456e0fc3 Mon Sep 17 00:00:00 2001 From: Romain Guy Date: Wed, 15 May 2013 11:02:25 -0700 Subject: [PATCH 05/55] Revert "Reduce the number of measurement passes in RelativeLayout" This reverts commit 4cb81d6423ab15ce97575699e5fbc765322ba699. --- core/java/android/widget/RelativeLayout.java | 29 ++++++++------------ 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/core/java/android/widget/RelativeLayout.java b/core/java/android/widget/RelativeLayout.java index f724e52b198c5..f940226a1a60f 100644 --- a/core/java/android/widget/RelativeLayout.java +++ b/core/java/android/widget/RelativeLayout.java @@ -695,20 +695,6 @@ public class RelativeLayout extends ViewGroup { params.topMargin, params.bottomMargin, mPaddingTop, mPaddingBottom, myHeight); - if (params.mPreviousWidthSpec == childWidthMeasureSpec && !child.isLayoutRequested()) { - switch (MeasureSpec.getMode(childHeightMeasureSpec)) { - case MeasureSpec.EXACTLY: - if (child.getMeasuredHeight() == MeasureSpec.getSize(childHeightMeasureSpec)) { - return; - } - break; - case MeasureSpec.AT_MOST: - if (child.getMeasuredHeight() <= MeasureSpec.getSize(childHeightMeasureSpec)) { - return; - } - break; - } - } child.measure(childWidthMeasureSpec, childHeightMeasureSpec); } @@ -740,7 +726,6 @@ public class RelativeLayout extends ViewGroup { childHeightMeasureSpec = MeasureSpec.makeMeasureSpec(maxHeight, MeasureSpec.AT_MOST); } child.measure(childWidthMeasureSpec, childHeightMeasureSpec); - params.mPreviousWidthSpec = childWidthMeasureSpec; } /** @@ -915,6 +900,8 @@ public class RelativeLayout extends ViewGroup { } else if (childParams.alignWithParent && rules[LEFT_OF] != 0) { if (myWidth >= 0) { childParams.mRight = myWidth - mPaddingRight - childParams.rightMargin; + } else { + // FIXME uh oh... } } @@ -939,6 +926,8 @@ public class RelativeLayout extends ViewGroup { } else if (childParams.alignWithParent && rules[ALIGN_RIGHT] != 0) { if (myWidth >= 0) { childParams.mRight = myWidth - mPaddingRight - childParams.rightMargin; + } else { + // FIXME uh oh... } } @@ -949,6 +938,8 @@ public class RelativeLayout extends ViewGroup { if (0 != rules[ALIGN_PARENT_RIGHT]) { if (myWidth >= 0) { childParams.mRight = myWidth - mPaddingRight - childParams.rightMargin; + } else { + // FIXME uh oh... } } } @@ -967,6 +958,8 @@ public class RelativeLayout extends ViewGroup { } else if (childParams.alignWithParent && rules[ABOVE] != 0) { if (myHeight >= 0) { childParams.mBottom = myHeight - mPaddingBottom - childParams.bottomMargin; + } else { + // FIXME uh oh... } } @@ -991,6 +984,8 @@ public class RelativeLayout extends ViewGroup { } else if (childParams.alignWithParent && rules[ALIGN_BOTTOM] != 0) { if (myHeight >= 0) { childParams.mBottom = myHeight - mPaddingBottom - childParams.bottomMargin; + } else { + // FIXME uh oh... } } @@ -1001,6 +996,8 @@ public class RelativeLayout extends ViewGroup { if (0 != rules[ALIGN_PARENT_BOTTOM]) { if (myHeight >= 0) { childParams.mBottom = myHeight - mPaddingBottom - childParams.bottomMargin; + } else { + // FIXME uh oh... } } @@ -1245,8 +1242,6 @@ public class RelativeLayout extends ViewGroup { @ViewDebug.ExportedProperty(category = "layout") public boolean alignWithParent; - int mPreviousWidthSpec; - public LayoutParams(Context c, AttributeSet attrs) { super(c, attrs); From ada5ff440cdf398c9871a6b10671d4a41c248d87 Mon Sep 17 00:00:00 2001 From: Ying Wang Date: Mon, 20 May 2013 15:08:14 -0700 Subject: [PATCH 06/55] Make com.android.location.provider visible to apps-only build. Change-Id: Ic7983418d9577343817d5a80ebb0847804d2a1b2 --- location/Android.mk | 2 -- 1 file changed, 2 deletions(-) diff --git a/location/Android.mk b/location/Android.mk index 12db2f7460026..feeb8ce4a2aac 100644 --- a/location/Android.mk +++ b/location/Android.mk @@ -14,6 +14,4 @@ LOCAL_PATH := $(call my-dir) -ifeq ($(TARGET_BUILD_APPS),) include $(call all-makefiles-under, $(LOCAL_PATH)) -endif From c65483144fb99d71b1f222b4d19a34198442acf3 Mon Sep 17 00:00:00 2001 From: Craig Mautner Date: Mon, 10 Jun 2013 11:27:26 -0700 Subject: [PATCH 07/55] Dismiss immediately to maintain consistent state. Fix bug introduced by deferring nulling of mParent. In dismissDialog the removal was being put on a queue while the state of the Dialog was being updated immediately. This meant that if a show() was called before the remove was executed it would try and add the DecorView a second time. Boom! Fixes bug 9370301. Change-Id: I576d1e207c786bc2e21dfd40cb94f2b63a020fe2 --- core/java/android/app/Dialog.java | 5 +++-- core/java/android/view/WindowManagerGlobal.java | 8 +++----- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/core/java/android/app/Dialog.java b/core/java/android/app/Dialog.java index 634fa30c1c403..cda2c5f3b7c5d 100644 --- a/core/java/android/app/Dialog.java +++ b/core/java/android/app/Dialog.java @@ -306,6 +306,7 @@ public class Dialog implements DialogInterface, Window.Callback, * method to do cleanup when the dialog is dismissed, instead implement * that in {@link #onStop}. */ + @Override public void dismiss() { if (Looper.myLooper() == mHandler.getLooper()) { dismissDialog(); @@ -325,7 +326,7 @@ public class Dialog implements DialogInterface, Window.Callback, } try { - mWindowManager.removeView(mDecor); + mWindowManager.removeViewImmediate(mDecor); } finally { if (mActionMode != null) { mActionMode.finish(); @@ -334,7 +335,7 @@ public class Dialog implements DialogInterface, Window.Callback, mWindow.closeAllPanels(); onStop(); mShowing = false; - + sendDismissMessage(); } } diff --git a/core/java/android/view/WindowManagerGlobal.java b/core/java/android/view/WindowManagerGlobal.java index 6bcf863aa6e6c..f7b85cc7436cd 100644 --- a/core/java/android/view/WindowManagerGlobal.java +++ b/core/java/android/view/WindowManagerGlobal.java @@ -335,15 +335,13 @@ public final class WindowManagerGlobal { } } root.die(immediate); + if (view != null) { + view.assignParent(null); + } } void doRemoveView(ViewRootImpl root) { synchronized (mLock) { - final View view = root.getView(); - if (view != null) { - view.assignParent(null); - } - final int index = mRoots.indexOf(root); if (index >= 0) { mRoots.remove(index); From 7cba11b55624a894b361f385ab2b4ec65cdc83bc Mon Sep 17 00:00:00 2001 From: Svetoslav Date: Mon, 10 Jun 2013 12:51:09 -0700 Subject: [PATCH 08/55] Notification for changed subtree in accessibility mode not fired properly. We fire notifications that the a view subtree changed for accessibility. In some cases the notifications were fired if accessibility is not enabled. This is now fixed. Also the runnable for making the recurring subtree change was not dequeued if it was pending but we received a request which we decided to run immediately. bug:9337912 Change-Id: I27401b3d11f81c653e8761a704ee530263b08c3a --- core/java/android/view/View.java | 3 ++- core/java/android/view/ViewGroup.java | 4 ++-- core/java/android/view/ViewRootImpl.java | 11 +++++------ core/java/android/widget/AdapterView.java | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index 55a8f747b5b26..05c82ae6afa12 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -7024,7 +7024,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * * @hide */ - private void notifySubtreeAccessibilityStateChangedIfNeeded() { + public void notifySubtreeAccessibilityStateChangedIfNeeded() { if (!AccessibilityManager.getInstance(mContext).isEnabled()) { return; } @@ -18867,6 +18867,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, final long minEventIntevalMillis = ViewConfiguration.getSendRecurringAccessibilityEventsInterval(); if (timeSinceLastMillis >= minEventIntevalMillis) { + removeCallbacks(this); run(); } else { postDelayed(this, minEventIntevalMillis - timeSinceLastMillis); diff --git a/core/java/android/view/ViewGroup.java b/core/java/android/view/ViewGroup.java index caed4a27d4950..29b2e4bea80c9 100644 --- a/core/java/android/view/ViewGroup.java +++ b/core/java/android/view/ViewGroup.java @@ -3595,7 +3595,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager } if (child.isImportantForAccessibility() && child.getVisibility() != View.GONE) { - childAccessibilityStateChanged(child); + notifySubtreeAccessibilityStateChangedIfNeeded(); } } @@ -3838,7 +3838,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager onViewRemoved(view); if (view.isImportantForAccessibility() && view.getVisibility() != View.GONE) { - childAccessibilityStateChanged(view); + notifySubtreeAccessibilityStateChangedIfNeeded(); } } diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index a5f92de092943..bf1f07b9d9c22 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -6397,12 +6397,10 @@ public final class ViewRootImpl implements ViewParent, public void run() { mLastEventTimeMillis = SystemClock.uptimeMillis(); - if (AccessibilityManager.getInstance(mContext).isEnabled()) { - AccessibilityEvent event = AccessibilityEvent.obtain(); - event.setEventType(AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED); - event.setContentChangeType(AccessibilityEvent.CONTENT_CHANGE_TYPE_SUBTREE); - mSource.sendAccessibilityEventUnchecked(event); - } + AccessibilityEvent event = AccessibilityEvent.obtain(); + event.setEventType(AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED); + event.setContentChangeType(AccessibilityEvent.CONTENT_CHANGE_TYPE_SUBTREE); + mSource.sendAccessibilityEventUnchecked(event); mSource.resetSubtreeAccessibilityStateChanged(); mSource = null; } @@ -6417,6 +6415,7 @@ public final class ViewRootImpl implements ViewParent, final long minEventIntevalMillis = ViewConfiguration.getSendRecurringAccessibilityEventsInterval(); if (timeSinceLastMillis >= minEventIntevalMillis) { + mSource.removeCallbacks(this); run(); } else { mSource.postDelayed(this, minEventIntevalMillis - timeSinceLastMillis); diff --git a/core/java/android/widget/AdapterView.java b/core/java/android/widget/AdapterView.java index 4a2df58c54156..31ab0afa4334a 100644 --- a/core/java/android/widget/AdapterView.java +++ b/core/java/android/widget/AdapterView.java @@ -1033,7 +1033,7 @@ public abstract class AdapterView extends ViewGroup { checkSelectionChanged(); } - childAccessibilityStateChanged(this); + notifySubtreeAccessibilityStateChangedIfNeeded(); } void checkSelectionChanged() { From d8012fae1417439fe359795eaf7453a2b39ca726 Mon Sep 17 00:00:00 2001 From: Craig Mautner Date: Mon, 10 Jun 2013 13:54:49 -0700 Subject: [PATCH 09/55] Don't change task type for launcher activities. When the launcher starts a new activity don't let it change the task type. This would cause the stacks to get confused. Fixes bug 9323103. Change-Id: Ie1d9c3bf85461827c7255e68003f11ed5a38f63b --- services/java/com/android/server/am/TaskRecord.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/services/java/com/android/server/am/TaskRecord.java b/services/java/com/android/server/am/TaskRecord.java index d03da20f22190..d79211ccf5b56 100644 --- a/services/java/com/android/server/am/TaskRecord.java +++ b/services/java/com/android/server/am/TaskRecord.java @@ -57,7 +57,7 @@ final class TaskRecord extends ThumbnailHolder { /** Current stack */ ActivityStack stack; - private boolean mApplicationTask; + private boolean mApplicationTask = true; TaskRecord(int _taskId, ActivityInfo info, Intent _intent, ActivityStack _stack) { taskId = _taskId; @@ -164,7 +164,10 @@ final class TaskRecord extends ThumbnailHolder { // Was not previously in list. numFullscreen++; } - mApplicationTask = r.isApplicationActivity(); + // Only set this to be an application task if it has not already been set as home task. + if (mApplicationTask) { + mApplicationTask = r.isApplicationActivity(); + } mActivities.add(index, r); } From fbcef9a1694eb3ceca74840286e04e7b95691dfe Mon Sep 17 00:00:00 2001 From: Craig Mautner Date: Fri, 14 Jun 2013 11:32:22 -0700 Subject: [PATCH 10/55] Complete doDie() before executing addView(). If WindowManager.addView() is called soon after WindowManager.removeView() then the MSG_DIE in the ViewRootImpl mHandler queue may not have had time to execute. This will cause WindowManagerGlobal to throw an exception since the DecorView is being added before it has been removed. This fix detects that situation by saving all Views that are queued up for ViewRootImpl.doDie(). If addView() is called for one of these Views then doDie() is called immediately and not called when MSG_DIE eventually makes its way through the queue. This change also makes doDie() non-reentrant by only allowing it to carry out its functions the first time it is called. This keeps dispatchDetachedWindows() from causing destruction by recursively calling back into doDie(). This is usually caused by calling dismissDialog() from within dispatchDetachedWindow(). Fixes bug 9404689. Fixes bug 9406261. Change-Id: Id4fc8054e273215d82366428fef51b9ba98385fe --- core/java/android/view/ViewRootImpl.java | 56 ++++++++++--------- .../android/view/WindowManagerGlobal.java | 20 +++++-- 2 files changed, 46 insertions(+), 30 deletions(-) diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index 1b7fd1ebc1e87..109b8e00ea461 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -124,7 +124,7 @@ public final class ViewRootImpl implements ViewParent, static final ArrayList sFirstDrawHandlers = new ArrayList(); static boolean sFirstDrawComplete = false; - + static final ArrayList sConfigCallbacks = new ArrayList(); @@ -161,14 +161,14 @@ public final class ViewRootImpl implements ViewParent, // Set to true if the owner of this window is in the stopped state, // so the window should no longer be active. boolean mStopped = false; - + boolean mLastInCompatMode = false; SurfaceHolder.Callback2 mSurfaceHolderCallback; BaseSurfaceHolder mSurfaceHolder; boolean mIsCreating; boolean mDrawingAllowed; - + final Region mTransparentRegion; final Region mPreviousTransparentRegion; @@ -313,6 +313,9 @@ public final class ViewRootImpl implements ViewParent, private int mViewLayoutDirectionInitial; + /** Set to true once doDie() has been called. */ + private boolean mRemoved; + /** * Consistency verifier for debugging purposes. */ @@ -420,8 +423,6 @@ public final class ViewRootImpl implements ViewParent, synchronized (this) { if (mView == null) { mView = view; - Slog.d(TAG, "setView: b9406261 setting mView to " + view + " mAdded=" + mAdded - + " Callers=" + Debug.getCallers(4)); mViewLayoutDirectionInitial = mView.getRawLayoutDirection(); mFallbackEventHandler.setView(view); mWindowAttributes.copyFrom(attrs); @@ -477,8 +478,6 @@ public final class ViewRootImpl implements ViewParent, = panelParentView.getApplicationWindowToken(); } mAdded = true; - Slog.d(TAG, "setView: b9406261 setting mAdded=true mView=" + mView - + " Callers=" + Debug.getCallers(4)); int res; /* = WindowManagerImpl.ADD_OKAY; */ // Schedule the first layout -before- adding to the window @@ -504,8 +503,6 @@ public final class ViewRootImpl implements ViewParent, mFallbackEventHandler.setView(null); unscheduleTraversals(); setAccessibilityFocus(null, null); - Slog.d(TAG, "setView: b9406261 threw exception e=" + e - + " Callers=" + Debug.getCallers(4)); throw new RuntimeException("Adding window failed", e); } finally { if (restore) { @@ -845,6 +842,7 @@ public final class ViewRootImpl implements ViewParent, invalidateChildInParent(null, dirty); } + @Override public ViewParent invalidateChildInParent(int[] location, Rect dirty) { checkThread(); if (DEBUG_DRAW) Log.v(TAG, "Invalidate child: " + dirty); @@ -902,10 +900,12 @@ public final class ViewRootImpl implements ViewParent, } } + @Override public ViewParent getParent() { return null; } + @Override public boolean getChildVisibleRect(View child, Rect r, android.graphics.Point offset) { if (child != mView) { throw new RuntimeException("child is not mine, honest!"); @@ -2805,9 +2805,7 @@ public final class ViewRootImpl implements ViewParent, setAccessibilityFocus(null, null); - if (mView != null) { - mView.assignParent(null); - } + mView.assignParent(null); mView = null; mAttachInfo.mRootView = null; mAttachInfo.mSurface = null; @@ -5126,29 +5124,37 @@ public final class ViewRootImpl implements ViewParent, } } - public void die(boolean immediate) { + /** + * @param immediate True, do now if not in traversal. False, put on queue and do later. + * @return True, request has been queued. False, request has been completed. + */ + boolean die(boolean immediate) { // Make sure we do execute immediately if we are in the middle of a traversal or the damage // done by dispatchDetachedFromWindow will cause havoc on return. if (immediate && !mIsInTraversal) { doDie(); - } else { - if (!mIsDrawing) { - destroyHardwareRenderer(); - } else { - Log.e(TAG, "Attempting to destroy the window while drawing!\n" + - " window=" + this + ", title=" + mWindowAttributes.getTitle()); - } - mHandler.sendEmptyMessage(MSG_DIE); + return false; } + + if (!mIsDrawing) { + destroyHardwareRenderer(); + } else { + Log.e(TAG, "Attempting to destroy the window while drawing!\n" + + " window=" + this + ", title=" + mWindowAttributes.getTitle()); + } + mHandler.sendEmptyMessage(MSG_DIE); + return true; } void doDie() { checkThread(); if (LOCAL_LOGV) Log.v(TAG, "DIE in " + this + " of " + mSurface); synchronized (this) { + if (mRemoved) { + return; + } + mRemoved = true; if (mAdded) { - Slog.d(TAG, "doDie: b9406261 mAdded==true mView=" + mView - + " Callers=" + Debug.getCallers(4)); dispatchDetachedFromWindow(); } @@ -5171,13 +5177,11 @@ public final class ViewRootImpl implements ViewParent, } catch (RemoteException e) { } } - + mSurface.release(); } } - Slog.d(TAG, "doDie: b9406261 setting mAdded=false mView=" + mView - + " Callers=" + Debug.getCallers(4)); mAdded = false; } WindowManagerGlobal.getInstance().doRemoveView(this); diff --git a/core/java/android/view/WindowManagerGlobal.java b/core/java/android/view/WindowManagerGlobal.java index f7b85cc7436cd..7cda01c98c888 100644 --- a/core/java/android/view/WindowManagerGlobal.java +++ b/core/java/android/view/WindowManagerGlobal.java @@ -26,6 +26,7 @@ import android.os.RemoteException; import android.os.ServiceManager; import android.os.SystemProperties; import android.util.AndroidRuntimeException; +import android.util.ArraySet; import android.util.Log; import android.view.inputmethod.InputMethodManager; @@ -111,6 +112,7 @@ public final class WindowManagerGlobal { private final ArrayList mRoots = new ArrayList(); private final ArrayList mParams = new ArrayList(); + private final ArraySet mDyingViews = new ArraySet(); private boolean mNeedsEglTerminate; private Runnable mSystemPropertyUpdater; @@ -220,8 +222,14 @@ public final class WindowManagerGlobal { int index = findViewLocked(view, false); if (index >= 0) { - throw new IllegalStateException("View " + view - + " has already been added to the window manager."); + if (mDyingViews.contains(view)) { + // Don't wait for MSG_DIE to make it's way through root's queue. + mRoots.get(index).doDie(); + } else { + throw new IllegalStateException("View " + view + + " has already been added to the window manager."); + } + // The previous removeView() had not completed executing. Now it has. } // If this is a panel window, then find the window it is being @@ -334,9 +342,12 @@ public final class WindowManagerGlobal { imm.windowDismissed(mViews.get(index).getWindowToken()); } } - root.die(immediate); + boolean deferred = root.die(immediate); if (view != null) { view.assignParent(null); + if (deferred) { + mDyingViews.add(view); + } } } @@ -345,8 +356,9 @@ public final class WindowManagerGlobal { final int index = mRoots.indexOf(root); if (index >= 0) { mRoots.remove(index); - mViews.remove(index); mParams.remove(index); + final View view = mViews.remove(index); + mDyingViews.remove(view); } } } From 521463b13e2dce5992ef7beb004c50233c090916 Mon Sep 17 00:00:00 2001 From: Chris Craik Date: Fri, 14 Jun 2013 13:43:58 -0700 Subject: [PATCH 11/55] Fix clip merging behavior Previously, a new op with a clipped side could be added to a MergingDrawBatch without considering the batch's current bounds. Change-Id: I1b873ecf821bad7cda6630c3f311edd90ac5cc8c --- libs/hwui/DeferredDisplayList.cpp | 57 +++++++++++++++++++++---------- libs/hwui/OpenGLRenderer.cpp | 2 +- libs/hwui/OpenGLRenderer.h | 2 +- 3 files changed, 41 insertions(+), 20 deletions(-) diff --git a/libs/hwui/DeferredDisplayList.cpp b/libs/hwui/DeferredDisplayList.cpp index f19d61089d1a5..c21ee1e412664 100644 --- a/libs/hwui/DeferredDisplayList.cpp +++ b/libs/hwui/DeferredDisplayList.cpp @@ -153,14 +153,32 @@ private: class MergingDrawBatch : public DrawBatch { public: MergingDrawBatch(DeferInfo& deferInfo, Rect viewport) : - DrawBatch(deferInfo), mClipRect(viewport), mClipSideFlags(kClipSide_Unclipped) {} + DrawBatch(deferInfo), mClipRect(viewport), mClipSideFlags(kClipSide_None) {} + + /* + * Helper for determining if a new op can merge with a MergingDrawBatch based on their bounds + * and clip side flags. Positive bounds delta means new bounds fit in old. + */ + static inline bool checkSide(const int currentFlags, const int newFlags, const int side, + float boundsDelta) { + bool currentClipExists = currentFlags & side; + bool newClipExists = newFlags & side; + + // if current is clipped, we must be able to fit new bounds in current + if (boundsDelta > 0 && currentClipExists) return false; + + // if new is clipped, we must be able to fit current bounds in new + if (boundsDelta < 0 && newClipExists) return false; + + return true; + } /* * Checks if a (mergeable) op can be merged into this batch * * If true, the op's multiDraw must be guaranteed to handle both ops simultaneously, so it is * important to consider all paint attributes used in the draw calls in deciding both a) if an - * op tries to merge at all, and b) if the op + * op tries to merge at all, and b) if the op can merge with another set of ops * * False positives can lead to information from the paints of subsequent merged operations being * dropped, so we make simplifying qualifications on the ops that can merge, per op type. @@ -179,23 +197,26 @@ public: if (NEQ_FALPHA(lhs.mAlpha, rhs.mAlpha)) return false; - // If colliding flags, ensure bounds are equal - // NOTE: only needed if op to be added is clipped *and* within old valid clip (per dimension) - int collidingClipSideFlags = mClipSideFlags & op->state.mClipSideFlags; - if (CC_UNLIKELY(collidingClipSideFlags)) { - // if multiple ops are clipped on the same side, they must be clipped at the same - // coordinate to be merged - if ((collidingClipSideFlags & kClipSide_Left) && - mClipRect.left != op->state.mClip.left) return false; - if ((collidingClipSideFlags & kClipSide_Top) && - mClipRect.top != op->state.mClip.top) return false; - if ((collidingClipSideFlags & kClipSide_Right) && - mClipRect.right != op->state.mClip.right) return false; - if ((collidingClipSideFlags & kClipSide_Bottom) && - mClipRect.bottom != op->state.mClip.bottom) return false; + /* Clipping compatibility check + * + * Exploits the fact that if a op or batch is clipped on a side, its bounds will equal its + * clip for that side. + */ + const int currentFlags = mClipSideFlags; + const int newFlags = op->state.mClipSideFlags; + if (currentFlags != kClipSide_None || newFlags != kClipSide_None) { + const Rect& opBounds = op->state.mBounds; + float boundsDelta = mBounds.left - opBounds.left; + if (!checkSide(currentFlags, newFlags, kClipSide_Left, boundsDelta)) return false; + boundsDelta = mBounds.top - opBounds.top; + if (!checkSide(currentFlags, newFlags, kClipSide_Top, boundsDelta)) return false; + + // right and bottom delta calculation reversed to account for direction + boundsDelta = opBounds.right - mBounds.right; + if (!checkSide(currentFlags, newFlags, kClipSide_Right, boundsDelta)) return false; + boundsDelta = opBounds.bottom - mBounds.bottom; + if (!checkSide(currentFlags, newFlags, kClipSide_Bottom, boundsDelta)) return false; } - // if op is outside of batch clip rect, it can't share its clip - if (!mClipRect.contains(op->state.mBounds)) return false; // if paints are equal, then modifiers + paint attribs don't need to be compared if (op->mPaint == mOps[0]->mPaint) return true; diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp index 05f43a9f74a5f..91cc4e04c4f5e 100644 --- a/libs/hwui/OpenGLRenderer.cpp +++ b/libs/hwui/OpenGLRenderer.cpp @@ -1384,7 +1384,7 @@ bool OpenGLRenderer::storeDisplayState(DeferredDisplayState& state, int stateDef return true; } - state.mClipSideFlags = kClipSide_Unclipped; + state.mClipSideFlags = kClipSide_None; if (!currentClip.contains(state.mBounds)) { int& flags = state.mClipSideFlags; // op partially clipped, so record which sides are clipped for clip-aware merging diff --git a/libs/hwui/OpenGLRenderer.h b/libs/hwui/OpenGLRenderer.h index 5b7f90dfc204a..9cd2047dae05a 100644 --- a/libs/hwui/OpenGLRenderer.h +++ b/libs/hwui/OpenGLRenderer.h @@ -81,7 +81,7 @@ enum DrawOpMode { }; enum ClipSideFlags { - kClipSide_Unclipped = 0x0, + kClipSide_None = 0x0, kClipSide_Left = 0x1, kClipSide_Top = 0x2, kClipSide_Right = 0x4, From d564276c1c180a8f724debbccd47146d8e06704c Mon Sep 17 00:00:00 2001 From: Romain Guy Date: Mon, 17 Jun 2013 13:14:51 -0700 Subject: [PATCH 12/55] Cancel layer update when a layer is about to be destroyed Bug #9310706 Change-Id: I73eea6314c326f15a979617e3a05b525935f0d3f --- core/java/android/view/GLES20Canvas.java | 6 ++++++ core/java/android/view/HardwareCanvas.java | 13 +++++++++++++ core/java/android/view/HardwareRenderer.java | 16 ++++++++++++++++ core/java/android/view/View.java | 2 ++ core/jni/android_view_GLES20Canvas.cpp | 6 ++++++ libs/hwui/Layer.cpp | 10 ++++++++++ libs/hwui/Layer.h | 1 + libs/hwui/LayerCache.cpp | 4 +--- libs/hwui/OpenGLRenderer.cpp | 12 ++++++++++++ libs/hwui/OpenGLRenderer.h | 1 + 10 files changed, 68 insertions(+), 3 deletions(-) diff --git a/core/java/android/view/GLES20Canvas.java b/core/java/android/view/GLES20Canvas.java index e5a626350d873..fcd2d1ccac3c6 100644 --- a/core/java/android/view/GLES20Canvas.java +++ b/core/java/android/view/GLES20Canvas.java @@ -162,6 +162,11 @@ class GLES20Canvas extends HardwareCanvas { nPushLayerUpdate(mRenderer, ((GLES20RenderLayer) layer).mLayer); } + @Override + void cancelLayerUpdate(HardwareLayer layer) { + nCancelLayerUpdate(mRenderer, ((GLES20RenderLayer) layer).mLayer); + } + @Override void flushLayerUpdates() { nFlushLayerUpdates(mRenderer); @@ -191,6 +196,7 @@ class GLES20Canvas extends HardwareCanvas { private static native void nClearLayerUpdates(int renderer); private static native void nFlushLayerUpdates(int renderer); private static native void nPushLayerUpdate(int renderer, int layer); + private static native void nCancelLayerUpdate(int renderer, int layer); /////////////////////////////////////////////////////////////////////////// // Canvas management diff --git a/core/java/android/view/HardwareCanvas.java b/core/java/android/view/HardwareCanvas.java index 88b0986bd3b58..259e1cd02f44c 100644 --- a/core/java/android/view/HardwareCanvas.java +++ b/core/java/android/view/HardwareCanvas.java @@ -201,6 +201,19 @@ public abstract class HardwareCanvas extends Canvas { */ abstract void pushLayerUpdate(HardwareLayer layer); + /** + * Cancels a queued layer update. If the specified layer was not + * queued for update, this method has no effect. + * + * @param layer The layer whose update to cancel + * + * @see #pushLayerUpdate(HardwareLayer) + * @see #clearLayerUpdates() + * + * @hide + */ + abstract void cancelLayerUpdate(HardwareLayer layer); + /** * Immediately executes all enqueued layer updates. * diff --git a/core/java/android/view/HardwareRenderer.java b/core/java/android/view/HardwareRenderer.java index 4bbf1a614a844..03428c732c2de 100644 --- a/core/java/android/view/HardwareRenderer.java +++ b/core/java/android/view/HardwareRenderer.java @@ -451,9 +451,20 @@ public abstract class HardwareRenderer { * @param layer The hardware layer that needs an update * * @see #flushLayerUpdates() + * @see #cancelLayerUpdate(HardwareLayer) */ abstract void pushLayerUpdate(HardwareLayer layer); + /** + * Cancels a queued layer update. If the specified layer was not + * queued for update, this method has no effect. + * + * @param layer The layer whose update to cancel + * + * @see #pushLayerUpdate(HardwareLayer) + */ + abstract void cancelLayerUpdate(HardwareLayer layer); + /** * Forces all enqueued layer updates to be executed immediately. * @@ -2132,6 +2143,11 @@ public abstract class HardwareRenderer { mGlCanvas.pushLayerUpdate(layer); } + @Override + void cancelLayerUpdate(HardwareLayer layer) { + mGlCanvas.cancelLayerUpdate(layer); + } + @Override void flushLayerUpdates() { mGlCanvas.flushLayerUpdates(); diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index 192492bb12c63..c98eced3f4d7f 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -12712,6 +12712,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback, if (info != null && info.mHardwareRenderer != null && info.mHardwareRenderer.isEnabled() && (valid || info.mHardwareRenderer.validate())) { + + info.mHardwareRenderer.cancelLayerUpdate(mHardwareLayer); mHardwareLayer.destroy(); mHardwareLayer = null; diff --git a/core/jni/android_view_GLES20Canvas.cpp b/core/jni/android_view_GLES20Canvas.cpp index f3592a31b6428..a2f7dbeef32fa 100644 --- a/core/jni/android_view_GLES20Canvas.cpp +++ b/core/jni/android_view_GLES20Canvas.cpp @@ -911,6 +911,11 @@ static void android_view_GLES20Canvas_pushLayerUpdate(JNIEnv* env, jobject clazz renderer->pushLayerUpdate(layer); } +static void android_view_GLES20Canvas_cancelLayerUpdate(JNIEnv* env, jobject clazz, + OpenGLRenderer* renderer, Layer* layer) { + renderer->cancelLayerUpdate(layer); +} + static void android_view_GLES20Canvas_clearLayerUpdates(JNIEnv* env, jobject clazz, OpenGLRenderer* renderer) { renderer->clearLayerUpdates(); @@ -1095,6 +1100,7 @@ static JNINativeMethod gMethods[] = { { "nClearLayerUpdates", "(I)V", (void*) android_view_GLES20Canvas_clearLayerUpdates }, { "nFlushLayerUpdates", "(I)V", (void*) android_view_GLES20Canvas_flushLayerUpdates }, { "nPushLayerUpdate", "(II)V", (void*) android_view_GLES20Canvas_pushLayerUpdate }, + { "nCancelLayerUpdate", "(II)V", (void*) android_view_GLES20Canvas_cancelLayerUpdate }, { "nSetTextureLayerTransform", "(II)V", (void*) android_view_GLES20Canvas_setTextureLayerTransform }, diff --git a/libs/hwui/Layer.cpp b/libs/hwui/Layer.cpp index 7c22bbb6f973a..f409d3e64c93e 100644 --- a/libs/hwui/Layer.cpp +++ b/libs/hwui/Layer.cpp @@ -213,6 +213,16 @@ void Layer::defer() { deferredUpdateScheduled = false; } +void Layer::cancelDefer() { + renderer = NULL; + displayList = NULL; + deferredUpdateScheduled = false; + if (deferredList) { + delete deferredList; + deferredList = NULL; + } +} + void Layer::flush() { if (deferredList) { renderer->setViewport(layer.getWidth(), layer.getHeight()); diff --git a/libs/hwui/Layer.h b/libs/hwui/Layer.h index 326b25aafd09c..ebd554357ab3d 100644 --- a/libs/hwui/Layer.h +++ b/libs/hwui/Layer.h @@ -245,6 +245,7 @@ struct Layer { } void defer(); + void cancelDefer(); void flush(); void render(); diff --git a/libs/hwui/LayerCache.cpp b/libs/hwui/LayerCache.cpp index a0709afa010f9..6be014684aef5 100644 --- a/libs/hwui/LayerCache.cpp +++ b/libs/hwui/LayerCache.cpp @@ -155,9 +155,7 @@ bool LayerCache::put(Layer* layer) { victim->layer.getHeight()); } - layer->deferredUpdateScheduled = false; - layer->renderer = NULL; - layer->displayList = NULL; + layer->cancelDefer(); LayerEntry entry(layer); diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp index 91cc4e04c4f5e..5cf029dc4ab5e 100644 --- a/libs/hwui/OpenGLRenderer.cpp +++ b/libs/hwui/OpenGLRenderer.cpp @@ -655,6 +655,18 @@ void OpenGLRenderer::pushLayerUpdate(Layer* layer) { } } +void OpenGLRenderer::cancelLayerUpdate(Layer* layer) { + if (layer) { + for (int i = mLayerUpdates.size() - 1; i >= 0; i--) { + if (mLayerUpdates.itemAt(i) == layer) { + mLayerUpdates.removeAt(i); + mCaches.resourceCache.decrementRefcount(layer); + break; + } + } + } +} + void OpenGLRenderer::clearLayerUpdates() { size_t count = mLayerUpdates.size(); if (count > 0) { diff --git a/libs/hwui/OpenGLRenderer.h b/libs/hwui/OpenGLRenderer.h index 9cd2047dae05a..b9117dd88e64d 100644 --- a/libs/hwui/OpenGLRenderer.h +++ b/libs/hwui/OpenGLRenderer.h @@ -217,6 +217,7 @@ public: virtual status_t callDrawGLFunction(Functor* functor, Rect& dirty); ANDROID_API void pushLayerUpdate(Layer* layer); + ANDROID_API void cancelLayerUpdate(Layer* layer); ANDROID_API void clearLayerUpdates(); ANDROID_API void flushLayerUpdates(); From 487c1b72f341d2bebf76130e40bd1267115d57f7 Mon Sep 17 00:00:00 2001 From: Chris Craik Date: Mon, 17 Jun 2013 13:52:06 -0700 Subject: [PATCH 13/55] Better handle op size edge cases bug:9464358 Previously, empty and unknown sized ops are assumed to fully cover their clip. This is now corrected such that empty sized ops are pre-rejected before defer. Additionally, unknown sized ops disable overdraw avoidance. Change-Id: Icf2ce24f98be5ea6299e24ffcf826790373564a1 --- libs/hwui/DeferredDisplayList.cpp | 1 + libs/hwui/DisplayListOp.h | 5 ++++- libs/hwui/OpenGLRenderer.cpp | 6 +++--- libs/hwui/OpenGLRenderer.h | 3 ++- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/libs/hwui/DeferredDisplayList.cpp b/libs/hwui/DeferredDisplayList.cpp index c21ee1e412664..887e82269f74c 100644 --- a/libs/hwui/DeferredDisplayList.cpp +++ b/libs/hwui/DeferredDisplayList.cpp @@ -491,6 +491,7 @@ void DeferredDisplayList::addDrawOp(OpenGLRenderer& renderer, DrawOp* op) { deferInfo.mergeable &= !recordingComplexClip(); if (CC_LIKELY(mAvoidOverdraw) && mBatches.size() && + op->state.mClipSideFlags != kClipSide_ConservativeFull && deferInfo.opaqueOverBounds && op->state.mBounds.contains(mBounds)) { // avoid overdraw by resetting drawing state + discarding drawing ops discardDrawingBatches(mBatches.size() - 1); diff --git a/libs/hwui/DisplayListOp.h b/libs/hwui/DisplayListOp.h index 290e4fa530437..6b7bac06d4f09 100644 --- a/libs/hwui/DisplayListOp.h +++ b/libs/hwui/DisplayListOp.h @@ -129,7 +129,10 @@ public: return; } - if (!getLocalBounds(state.mBounds)) { + if (getLocalBounds(state.mBounds)) { + // valid empty bounds, don't bother deferring + if (state.mBounds.isEmpty()) return; + } else { // empty bounds signify bounds can't be calculated state.mBounds.setEmpty(); } diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp index 5cf029dc4ab5e..73d458def5e4a 100644 --- a/libs/hwui/OpenGLRenderer.cpp +++ b/libs/hwui/OpenGLRenderer.cpp @@ -1407,9 +1407,9 @@ bool OpenGLRenderer::storeDisplayState(DeferredDisplayState& state, int stateDef } state.mBounds.set(clippedBounds); } else { - // If we don't have bounds, let's assume we're clipped - // to prevent merging - state.mClipSideFlags = kClipSide_Full; + // Empty bounds implies size unknown. Label op as conservatively clipped to disable + // overdraw avoidance (since we don't know what it overlaps) + state.mClipSideFlags = kClipSide_ConservativeFull; state.mBounds.set(currentClip); } } diff --git a/libs/hwui/OpenGLRenderer.h b/libs/hwui/OpenGLRenderer.h index b9117dd88e64d..0760f9ca2cda5 100644 --- a/libs/hwui/OpenGLRenderer.h +++ b/libs/hwui/OpenGLRenderer.h @@ -86,7 +86,8 @@ enum ClipSideFlags { kClipSide_Top = 0x2, kClipSide_Right = 0x4, kClipSide_Bottom = 0x8, - kClipSide_Full = 0xF + kClipSide_Full = 0xF, + kClipSide_ConservativeFull = 0x1F }; struct DeferredDisplayState { From 45798432c3f3b9e06648591339c94df30ca12e5d Mon Sep 17 00:00:00 2001 From: Craig Mautner Date: Wed, 12 Jun 2013 20:19:00 -0700 Subject: [PATCH 14/55] Add debug for specific bug. To be removed once the bug is fixed. Change-Id: I83bd5b9fd722826c59b1178303fc4e7feb8eefd2 --- core/java/android/view/ViewRootImpl.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index 9bc66be3c93eb..e0ef67f47e808 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -423,6 +423,8 @@ public final class ViewRootImpl implements ViewParent, synchronized (this) { if (mView == null) { mView = view; + Slog.d(TAG, "setView: b9406261 setting mView to " + view + " mAdded=" + mAdded + + " Callers=" + Debug.getCallers(4)); mViewLayoutDirectionInitial = mView.getRawLayoutDirection(); mFallbackEventHandler.setView(view); mWindowAttributes.copyFrom(attrs); @@ -478,6 +480,8 @@ public final class ViewRootImpl implements ViewParent, = panelParentView.getApplicationWindowToken(); } mAdded = true; + Slog.d(TAG, "setView: b9406261 setting mAdded=true mView=" + mView + + " Callers=" + Debug.getCallers(4)); int res; /* = WindowManagerImpl.ADD_OKAY; */ // Schedule the first layout -before- adding to the window @@ -503,6 +507,8 @@ public final class ViewRootImpl implements ViewParent, mFallbackEventHandler.setView(null); unscheduleTraversals(); setAccessibilityFocus(null, null); + Slog.d(TAG, "setView: b9406261 threw exception e=" + e + + " Callers=" + Debug.getCallers(4)); throw new RuntimeException("Adding window failed", e); } finally { if (restore) { @@ -5159,6 +5165,8 @@ public final class ViewRootImpl implements ViewParent, } mRemoved = true; if (mAdded) { + Slog.d(TAG, "doDie: b9406261 mAdded==true mView=" + mView + + " Callers=" + Debug.getCallers(4)); dispatchDetachedFromWindow(); } @@ -5186,6 +5194,8 @@ public final class ViewRootImpl implements ViewParent, } } + Slog.d(TAG, "doDie: b9406261 setting mAdded=false mView=" + mView + + " Callers=" + Debug.getCallers(4)); mAdded = false; } WindowManagerGlobal.getInstance().doRemoveView(this); From 47177b04c7e03f30dd9dcd9a4d195ed017ae203f Mon Sep 17 00:00:00 2001 From: John Spurlock Date: Thu, 27 Jun 2013 10:15:19 -0400 Subject: [PATCH 15/55] Add sanity check inside ServiceMonitor's setting observer. When registering for a specific setting key uri, the observer can also be called back for "parent uri" updates. e.g. adb shell content update --uri content://settings/secure will trigger onChange with uri=content://settings/secure. Add a quick setting value recheck, and avoid restarting if the setting value change will have no impact. Bug: 9595731 Change-Id: I4c71f6a4be3b655b31d2535e809bb42edd931cd6 --- .../systemui/statusbar/ServiceMonitor.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/ServiceMonitor.java b/packages/SystemUI/src/com/android/systemui/statusbar/ServiceMonitor.java index f763f0340999d..aea9ec69e1333 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/ServiceMonitor.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/ServiceMonitor.java @@ -98,6 +98,11 @@ public class ServiceMonitor { public void onChange(boolean selfChange, Uri uri) { if (mDebug) Log.d(mTag, "onChange selfChange=" + selfChange + " uri=" + uri); + ComponentName cn = getComponentNameFromSetting(); + if (cn == null && mServiceName == null || cn != null && cn.equals(mServiceName)) { + if (mDebug) Log.d(mTag, "skipping no-op restart"); + return; + } if (mBound) { mHandler.sendEmptyMessage(MSG_STOP_SERVICE); } @@ -178,6 +183,12 @@ public class ServiceMonitor { mHandler.sendEmptyMessage(MSG_START_SERVICE); } + private ComponentName getComponentNameFromSetting() { + String cn = Settings.Secure.getStringForUser(mContext.getContentResolver(), + mSettingKey, UserHandle.USER_CURRENT); + return cn == null ? null : ComponentName.unflattenFromString(cn); + } + // everything below is called on the handler private void packageIntent(Intent intent) { @@ -210,9 +221,7 @@ public class ServiceMonitor { } private void startService() { - String cn = Settings.Secure.getStringForUser(mContext.getContentResolver(), - mSettingKey, UserHandle.USER_CURRENT); - mServiceName = cn == null ? null : ComponentName.unflattenFromString(cn); + mServiceName = getComponentNameFromSetting(); if (mDebug) Log.d(mTag, "startService mServiceName=" + mServiceName); if (mServiceName == null) { mBound = false; From 4c917525654b3dfc1c0fa256e497e59fd98f977f Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Wed, 26 Jun 2013 18:07:43 -0700 Subject: [PATCH 16/55] Work on issue #9586838: Crash after waking up Hammerhead device I made the power manager more rigid, not allowing different uids to use the same wake lock. This never should happen. I would guess there is somewhere that the activity manager is acquiring the wake lock without clearing the calling identity... but it is hard to follow all the paths this may happen in. So here we add some checks when acquiring/releasing the wake lock to make sure it is being done as the system uid. Also: - Protect the new activity stack calls with a permission, and make sure to clear the calling uid once past that. - Collect uid data from process stats so we can correctly associate CPU use with a uid even if we don't know about the pid for some reason. - Fix battery stats dump commands to clear calling uid before executing so they aren't broken. Change-Id: I0030d4f7b614e3270d794ecfc3669139a5703ce9 --- core/java/android/os/FileUtils.java | 2 + .../com/android/internal/os/ProcessStats.java | 7 +- core/jni/android_os_FileUtils.cpp | 19 ++++ core/res/AndroidManifest.xml | 7 ++ core/res/res/values/strings.xml | 9 ++ .../com/android/server/BatteryService.java | 18 +++- .../server/am/ActivityManagerService.java | 93 ++++++++++++++----- .../com/android/server/am/ActivityStack.java | 21 +++++ 8 files changed, 147 insertions(+), 29 deletions(-) diff --git a/core/java/android/os/FileUtils.java b/core/java/android/os/FileUtils.java index 9666d9af8cc46..97ea99ddb4194 100644 --- a/core/java/android/os/FileUtils.java +++ b/core/java/android/os/FileUtils.java @@ -60,6 +60,8 @@ public class FileUtils { public static native int setPermissions(String file, int mode, int uid, int gid); + public static native int getUid(String file); + /** returns the FAT file system volume ID for the volume mounted * at the given mount point, or -1 for failure * @param mountPoint point for FAT volume diff --git a/core/java/com/android/internal/os/ProcessStats.java b/core/java/com/android/internal/os/ProcessStats.java index b63dce5b71632..874bc0eb4dcb3 100644 --- a/core/java/com/android/internal/os/ProcessStats.java +++ b/core/java/com/android/internal/os/ProcessStats.java @@ -18,6 +18,7 @@ package com.android.internal.os; import static android.os.Process.*; +import android.os.FileUtils; import android.os.Process; import android.os.StrictMode; import android.os.SystemClock; @@ -174,12 +175,15 @@ public class ProcessStats { public static class Stats { public final int pid; + public final int uid; final String statFile; final String cmdlineFile; final String threadsDir; final ArrayList threadStats; final ArrayList workingThreads; - + + public BatteryStatsImpl.Uid.Proc batteryStats; + public boolean interesting; public String baseName; @@ -229,6 +233,7 @@ public class ProcessStats { threadStats = null; workingThreads = null; } + uid = FileUtils.getUid(statFile.toString()); } } diff --git a/core/jni/android_os_FileUtils.cpp b/core/jni/android_os_FileUtils.cpp index a07f5b770b12d..0aaa2b158da8b 100644 --- a/core/jni/android_os_FileUtils.cpp +++ b/core/jni/android_os_FileUtils.cpp @@ -55,6 +55,24 @@ jint android_os_FileUtils_setPermissions(JNIEnv* env, jobject clazz, return chmod(file8.string(), mode) == 0 ? 0 : errno; } +jint android_os_FileUtils_getUid(JNIEnv* env, jobject clazz, jstring file) +{ + struct stat stats; + const jchar* str = env->GetStringCritical(file, 0); + String8 file8; + if (str) { + file8 = String8(str, env->GetStringLength(file)); + env->ReleaseStringCritical(file, str); + } + if (file8.size() <= 0) { + return ENOENT; + } + if (stat(file8.string(), &stats) < 0) { + return -1; + } + return stats.st_uid; +} + jint android_os_FileUtils_getFatVolumeId(JNIEnv* env, jobject clazz, jstring path) { if (path == NULL) { @@ -78,6 +96,7 @@ jint android_os_FileUtils_getFatVolumeId(JNIEnv* env, jobject clazz, jstring pat static const JNINativeMethod methods[] = { {"setPermissions", "(Ljava/lang/String;III)I", (void*)android_os_FileUtils_setPermissions}, + {"getUid", "(Ljava/lang/String;)I", (void*)android_os_FileUtils_getUid}, {"getFatVolumeId", "(Ljava/lang/String;)I", (void*)android_os_FileUtils_getFatVolumeId}, }; diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml index ae6d141d6956f..7ddb0dc9fa17c 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml @@ -1222,6 +1222,13 @@ android:label="@string/permlab_removeTasks" android:description="@string/permdesc_removeTasks" /> + + + + + manage activity stacks + + Allows the app to add, remove, and + modify the activity stacks in which other apps run. Malicious apps may disrupt + the behavior of other apps. + start any activity diff --git a/services/java/com/android/server/BatteryService.java b/services/java/com/android/server/BatteryService.java index 12a05496426d8..de58496884dfb 100644 --- a/services/java/com/android/server/BatteryService.java +++ b/services/java/com/android/server/BatteryService.java @@ -642,15 +642,25 @@ public final class BatteryService extends Binder { update = false; } if (update) { - mUpdatesStopped = true; - processValuesLocked(); + long ident = Binder.clearCallingIdentity(); + try { + mUpdatesStopped = true; + processValuesLocked(); + } finally { + Binder.restoreCallingIdentity(ident); + } } } catch (NumberFormatException ex) { pw.println("Bad value: " + value); } } else if (args.length == 1 && "reset".equals(args[0])) { - mUpdatesStopped = false; - updateLocked(); + long ident = Binder.clearCallingIdentity(); + try { + mUpdatesStopped = false; + updateLocked(); + } finally { + Binder.restoreCallingIdentity(ident); + } } else { pw.println("Dump current battery state, or:"); pw.println(" set ac|usb|wireless|status|level|invalid "); diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java index 6f367e0edb713..475092aa26dd1 100644 --- a/services/java/com/android/server/am/ActivityManagerService.java +++ b/services/java/com/android/server/am/ActivityManagerService.java @@ -1923,6 +1923,16 @@ public final class ActivityManagerService extends ActivityManagerNative st.rel_stime-otherSTime); ps.addSpeedStepTimes(cpuSpeedTimes); pr.curCpuTime += (st.rel_utime+st.rel_stime) * 10; + } else if (st.uid >= Process.FIRST_APPLICATION_UID) { + BatteryStatsImpl.Uid.Proc ps = st.batteryStats; + if (ps == null) { + st.batteryStats = ps = bstats.getProcessStatsLocked(st.uid, + "(Unknown)"); + } + ps.addCpuTimeLocked(st.rel_utime-otherUTime, + st.rel_stime-otherSTime); + ps.addSpeedStepTimes(cpuSpeedTimes); + pr.curCpuTime += (st.rel_utime+st.rel_stime) * 10; } else { BatteryStatsImpl.Uid.Proc ps = bstats.getProcessStatsLocked(st.name, st.pid); @@ -6370,34 +6380,55 @@ public final class ActivityManagerService extends ActivityManagerNative @Override public int createStack(int taskId, int relativeStackBoxId, int position, float weight) { + enforceCallingPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS, + "createStack()"); if (DEBUG_STACK) Slog.d(TAG, "createStack: taskId=" + taskId + " relStackBoxId=" + relativeStackBoxId + " position=" + position + " weight=" + weight); synchronized (this) { - int stackId = mStackSupervisor.createStack(); - mWindowManager.createStack(stackId, relativeStackBoxId, position, weight); - if (taskId > 0) { - moveTaskToStack(taskId, stackId, true); + long ident = Binder.clearCallingIdentity(); + try { + int stackId = mStackSupervisor.createStack(); + mWindowManager.createStack(stackId, relativeStackBoxId, position, weight); + if (taskId > 0) { + moveTaskToStack(taskId, stackId, true); + } + return stackId; + } finally { + Binder.restoreCallingIdentity(ident); } - return stackId; } } @Override public void moveTaskToStack(int taskId, int stackId, boolean toTop) { + enforceCallingPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS, + "moveTaskToStack()"); if (stackId == HOME_STACK_ID) { Slog.e(TAG, "moveTaskToStack: Attempt to move task " + taskId + " to home stack", new RuntimeException("here").fillInStackTrace()); } synchronized (this) { - if (DEBUG_STACK) Slog.d(TAG, "moveTaskToStack: moving task=" + taskId + " to stackId=" - + stackId + " toTop=" + toTop); - mStackSupervisor.moveTaskToStack(taskId, stackId, toTop); + long ident = Binder.clearCallingIdentity(); + try { + if (DEBUG_STACK) Slog.d(TAG, "moveTaskToStack: moving task=" + taskId + " to stackId=" + + stackId + " toTop=" + toTop); + mStackSupervisor.moveTaskToStack(taskId, stackId, toTop); + } finally { + Binder.restoreCallingIdentity(ident); + } } } @Override public void resizeStackBox(int stackBoxId, float weight) { - mWindowManager.resizeStackBox(stackBoxId, weight); + enforceCallingPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS, + "resizeStackBox()"); + long ident = Binder.clearCallingIdentity(); + try { + mWindowManager.resizeStackBox(stackBoxId, weight); + } finally { + Binder.restoreCallingIdentity(ident); + } } private ArrayList getStacks() { @@ -6447,30 +6478,44 @@ public final class ActivityManagerService extends ActivityManagerNative @Override public List getStackBoxes() { - List stackBoxInfos = mWindowManager.getStackBoxInfos(); - synchronized (this) { - List stackInfos = getStacks(); - for (StackBoxInfo stackBoxInfo : stackBoxInfos) { - addStackInfoToStackBoxInfo(stackBoxInfo, stackInfos); + enforceCallingPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS, + "getStackBoxes()"); + long ident = Binder.clearCallingIdentity(); + try { + List stackBoxInfos = mWindowManager.getStackBoxInfos(); + synchronized (this) { + List stackInfos = getStacks(); + for (StackBoxInfo stackBoxInfo : stackBoxInfos) { + addStackInfoToStackBoxInfo(stackBoxInfo, stackInfos); + } } + return stackBoxInfos; + } finally { + Binder.restoreCallingIdentity(ident); } - return stackBoxInfos; } @Override public StackBoxInfo getStackBoxInfo(int stackBoxId) { - List stackBoxInfos = mWindowManager.getStackBoxInfos(); - StackBoxInfo info = null; - synchronized (this) { - List stackInfos = getStacks(); - for (StackBoxInfo stackBoxInfo : stackBoxInfos) { - addStackInfoToStackBoxInfo(stackBoxInfo, stackInfos); - if (stackBoxInfo.stackBoxId == stackBoxId) { - info = stackBoxInfo; + enforceCallingPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS, + "getStackBoxInfo()"); + long ident = Binder.clearCallingIdentity(); + try { + List stackBoxInfos = mWindowManager.getStackBoxInfos(); + StackBoxInfo info = null; + synchronized (this) { + List stackInfos = getStacks(); + for (StackBoxInfo stackBoxInfo : stackBoxInfos) { + addStackInfoToStackBoxInfo(stackBoxInfo, stackInfos); + if (stackBoxInfo.stackBoxId == stackBoxId) { + info = stackBoxInfo; + } } } + return info; + } finally { + Binder.restoreCallingIdentity(ident); } - return info; } @Override diff --git a/services/java/com/android/server/am/ActivityStack.java b/services/java/com/android/server/am/ActivityStack.java index 1e19989ce48bc..a9ab53d969f07 100644 --- a/services/java/com/android/server/am/ActivityStack.java +++ b/services/java/com/android/server/am/ActivityStack.java @@ -69,6 +69,7 @@ import android.os.IBinder; import android.os.Looper; import android.os.Message; import android.os.PowerManager; +import android.os.Process; import android.os.RemoteException; import android.os.SystemClock; import android.os.UserHandle; @@ -120,6 +121,10 @@ final class ActivityStack { // is being started. static final boolean SHOW_APP_STARTING_PREVIEW = true; + // For debugging to make sure the caller when acquiring/releasing our + // wake lock is the system process. + static final boolean VALIDATE_WAKE_LOCK_CALLER = true; + enum ActivityState { INITIALIZING, RESUMED, @@ -288,6 +293,10 @@ final class ActivityStack { synchronized (mService) { if (mLaunchingActivity.isHeld()) { Slog.w(TAG, "Launch timeout has expired, giving up wake lock!"); + if (VALIDATE_WAKE_LOCK_CALLER + && Binder.getCallingUid() != Process.myUid()) { + throw new IllegalStateException("Calling must be system uid"); + } mLaunchingActivity.release(); } } @@ -328,6 +337,9 @@ final class ActivityStack { mStackSupervisor = service.mStackSupervisor; mContext = context; PowerManager pm = (PowerManager)context.getSystemService(Context.POWER_SERVICE); + if (VALIDATE_WAKE_LOCK_CALLER && Binder.getCallingUid() != Process.myUid()) { + throw new IllegalStateException("Calling must be system uid"); + } mLaunchingActivity = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "ActivityManager-Launch"); mLaunchingActivity.setReferenceCounted(false); @@ -595,6 +607,9 @@ final class ActivityStack { void stopIfSleepingLocked() { if (mLaunchingActivity.isHeld()) { + if (VALIDATE_WAKE_LOCK_CALLER && Binder.getCallingUid() != Process.myUid()) { + throw new IllegalStateException("Calling must be system uid"); + } mLaunchingActivity.release(); mService.mHandler.removeMessages(LAUNCH_TIMEOUT_MSG); } @@ -722,6 +737,9 @@ final class ActivityStack { // If we are not going to sleep, we want to ensure the device is // awake until the next activity is started. if (!mService.isSleepingOrShuttingDown()) { + if (VALIDATE_WAKE_LOCK_CALLER && Binder.getCallingUid() != Process.myUid()) { + throw new IllegalStateException("Calling must be system uid"); + } mLaunchingActivity.acquire(); if (!mHandler.hasMessages(LAUNCH_TIMEOUT_MSG)) { // To be safe, don't allow the wake lock to be held for too long. @@ -2092,6 +2110,9 @@ final class ActivityStack { // No longer need to keep the device awake. if (mResumedActivity == res && mLaunchingActivity.isHeld()) { mHandler.removeMessages(LAUNCH_TIMEOUT_MSG); + if (VALIDATE_WAKE_LOCK_CALLER && Binder.getCallingUid() != Process.myUid()) { + throw new IllegalStateException("Calling must be system uid"); + } mLaunchingActivity.release(); } From 4121eec9e4e71eb7463b05dc7fb338f3ac31e473 Mon Sep 17 00:00:00 2001 From: Craig Mautner Date: Wed, 12 Jun 2013 20:19:00 -0700 Subject: [PATCH 17/55] Add debug for specific bug. To be removed once the bug is fixed. Change-Id: Ie273d4503bb0b534af0e9efe8f45c573766e9a74 --- core/java/android/view/ViewRootImpl.java | 11 +++++++++++ core/java/android/view/WindowManagerGlobal.java | 11 +++++++++++ .../com/android/server/am/ActivityManagerService.java | 3 +++ .../android/server/am/ActivityStackSupervisor.java | 9 ++++++++- 4 files changed, 33 insertions(+), 1 deletion(-) diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index 93c6d6e70302b..50dbd5f4fc98c 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -422,6 +422,8 @@ public final class ViewRootImpl implements ViewParent, synchronized (this) { if (mView == null) { mView = view; + Slog.d(TAG, "setView: b9404689 setting mView to " + view + " mAdded=" + mAdded + + " Callers=" + Debug.getCallers(4)); mViewLayoutDirectionInitial = mView.getRawLayoutDirection(); mFallbackEventHandler.setView(view); mWindowAttributes.copyFrom(attrs); @@ -478,6 +480,8 @@ public final class ViewRootImpl implements ViewParent, = panelParentView.getApplicationWindowToken(); } mAdded = true; + Slog.d(TAG, "setView: b9404689 setting mAdded=true mView=" + mView + + " Callers=" + Debug.getCallers(4)); int res; /* = WindowManagerImpl.ADD_OKAY; */ // Schedule the first layout -before- adding to the window @@ -503,6 +507,8 @@ public final class ViewRootImpl implements ViewParent, mFallbackEventHandler.setView(null); unscheduleTraversals(); setAccessibilityFocus(null, null); + Slog.d(TAG, "setView: b9404689 threw exception e=" + e + + " Callers=" + Debug.getCallers(4)); throw new RuntimeException("Adding window failed", e); } finally { if (restore) { @@ -5158,11 +5164,14 @@ public final class ViewRootImpl implements ViewParent, return; } mRemoved = true; + Slog.d(TAG, "doDie: b9404689 mAdded==true mView=" + mView + + " Callers=" + Debug.getCallers(4)); if (mAdded) { dispatchDetachedFromWindow(); } if (mAdded && !mFirst) { + Slog.d(TAG, "doDie: b9404689 mAdded && !mFirst"); invalidateDisplayLists(); destroyHardwareRenderer(); @@ -5186,6 +5195,8 @@ public final class ViewRootImpl implements ViewParent, } } + Slog.d(TAG, "doDie: b9404689 setting mAdded=false mView=" + mView + + " Callers=" + Debug.getCallers(4)); mAdded = false; } WindowManagerGlobal.getInstance().doRemoveView(this); diff --git a/core/java/android/view/WindowManagerGlobal.java b/core/java/android/view/WindowManagerGlobal.java index 0eb6d63449d58..6666545d01de0 100644 --- a/core/java/android/view/WindowManagerGlobal.java +++ b/core/java/android/view/WindowManagerGlobal.java @@ -21,6 +21,7 @@ import android.app.ActivityManager; import android.content.ComponentCallbacks2; import android.content.res.Configuration; import android.opengl.ManagedEGLContext; +import android.os.Debug; import android.os.IBinder; import android.os.RemoteException; import android.os.ServiceManager; @@ -28,6 +29,7 @@ import android.os.SystemProperties; import android.util.AndroidRuntimeException; import android.util.ArraySet; import android.util.Log; +import android.util.Slog; import android.view.inputmethod.InputMethodManager; import com.android.internal.util.FastPrintWriter; @@ -225,6 +227,7 @@ public final class WindowManagerGlobal { if (index >= 0) { if (mDyingViews.contains(view)) { // Don't wait for MSG_DIE to make it's way through root's queue. + Slog.d(TAG, "addView: b9404689 mDying contains view=" + view); mRoots.get(index).doDie(); } else { throw new IllegalStateException("View " + view @@ -249,6 +252,7 @@ public final class WindowManagerGlobal { view.setLayoutParams(wparams); + Slog.d(TAG, "addView: b9404689 adding view=" + view + " root=" + root); mViews.add(view); mRoots.add(root); mParams.add(wparams); @@ -347,6 +351,8 @@ public final class WindowManagerGlobal { if (view != null) { view.assignParent(null); if (deferred) { + Slog.d(TAG, "removeViewLocked: b9404689 mDyingViews adding view=" + view + + " root=" + root + " Callers=" + Debug.getCallers(4)); mDyingViews.add(view); } } @@ -356,10 +362,15 @@ public final class WindowManagerGlobal { synchronized (mLock) { final int index = mRoots.indexOf(root); if (index >= 0) { + Slog.d(TAG, "doRemoveView: b9404689 removing view=" + mViews.get(index) + + " Callers=" + Debug.getCallers(4)); mRoots.remove(index); mParams.remove(index); final View view = mViews.remove(index); mDyingViews.remove(view); + } else { + Slog.d(TAG, "doRemoveView: b9404689 couldn't find root=" + root + + " Callers=" + Debug.getCallers(4)); } } } diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java index 475092aa26dd1..e4b987b94045b 100644 --- a/services/java/com/android/server/am/ActivityManagerService.java +++ b/services/java/com/android/server/am/ActivityManagerService.java @@ -205,6 +205,7 @@ public final class ActivityManagerService extends ActivityManagerNative static final boolean DEBUG_BACKGROUND_BROADCAST = DEBUG_BROADCAST || false; static final boolean DEBUG_CLEANUP = localLOGV || false; static final boolean DEBUG_CONFIGURATION = localLOGV || false; + static final boolean DEBUG_FOCUS = true; static final boolean DEBUG_IMMERSIVE = localLOGV || false; static final boolean DEBUG_MU = localLOGV || false; static final boolean DEBUG_OOM_ADJ = localLOGV || false; @@ -1994,6 +1995,7 @@ public final class ActivityManagerService extends ActivityManagerNative final void setFocusedActivityLocked(ActivityRecord r) { if (mFocusedActivity != r) { + if (DEBUG_FOCUS) Slog.d(TAG, "setFocusedActivitiyLocked: r=" + r); mFocusedActivity = r; mStackSupervisor.setFocusedStack(r); if (r != null) { @@ -2005,6 +2007,7 @@ public final class ActivityManagerService extends ActivityManagerNative @Override public void setFocusedStack(int stackId) { + if (DEBUG_FOCUS) Slog.d(TAG, "setFocusedStack: stackId=" + stackId); mHandler.obtainMessage(SET_FOCUSED_STACK, stackId, 0).sendToTarget(); } diff --git a/services/java/com/android/server/am/ActivityStackSupervisor.java b/services/java/com/android/server/am/ActivityStackSupervisor.java index 4f305582bd7ce..8d981097370e7 100644 --- a/services/java/com/android/server/am/ActivityStackSupervisor.java +++ b/services/java/com/android/server/am/ActivityStackSupervisor.java @@ -22,6 +22,7 @@ import static android.content.Intent.FLAG_ACTIVITY_TASK_ON_HOME; import static android.content.pm.PackageManager.PERMISSION_GRANTED; import static com.android.server.am.ActivityManagerService.localLOGV; import static com.android.server.am.ActivityManagerService.DEBUG_CONFIGURATION; +import static com.android.server.am.ActivityManagerService.DEBUG_FOCUS; import static com.android.server.am.ActivityManagerService.DEBUG_PAUSE; import static com.android.server.am.ActivityManagerService.DEBUG_RESULTS; import static com.android.server.am.ActivityManagerService.DEBUG_STACK; @@ -1198,9 +1199,13 @@ public final class ActivityStackSupervisor { // Time to create the first app stack for this user. int stackId = mService.createStack(-1, HOME_STACK_ID, StackBox.TASK_STACK_GOES_OVER, 1.0f); + if (DEBUG_FOCUS) Slog.d(TAG, "getCorrectStack: New stack r=" + r + " stackId=" + + stackId); mFocusedStack = getStack(stackId); } if (task != null) { + if (DEBUG_FOCUS) Slog.d(TAG, "getCorrectStack: Setting focused stack to r=" + + r + " task=" + task); mFocusedStack = task.stack; } return mFocusedStack; @@ -1214,13 +1219,15 @@ public final class ActivityStackSupervisor { } if (!r.isApplicationActivity() || (r.task != null && !r.task.isApplicationTask())) { if (mStackState != STACK_STATE_HOME_IN_FRONT) { - if (DEBUG_STACK) Slog.d(TAG, "setFocusedStack: mStackState old=" + + if (DEBUG_STACK || DEBUG_FOCUS) Slog.d(TAG, "setFocusedStack: mStackState old=" + stackStateToString(mStackState) + " new=" + stackStateToString(STACK_STATE_HOME_TO_FRONT) + " Callers=" + Debug.getCallers(3)); mStackState = STACK_STATE_HOME_TO_FRONT; } } else { + if (DEBUG_FOCUS) Slog.d(TAG, "setFocusedStack: Setting focused stack to r=" + + r + " task=" + r.task + " Callers=" + Debug.getCallers(3)); mFocusedStack = r.task.stack; if (mStackState != STACK_STATE_HOME_IN_BACK) { if (DEBUG_STACK) Slog.d(TAG, "setFocusedStack: mStackState old=" + From 66cc5806ac024f8ded0c15018fdaea3c10ef8390 Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Thu, 27 Jun 2013 12:42:13 -0700 Subject: [PATCH 18/55] Fix issue #9586838: Crash after waking up Hammerhead device Change-Id: I114306871f02b2461619e8a1cc9652f343edd117 --- .../server/am/ActivityManagerService.java | 62 +++++++++++-------- 1 file changed, 35 insertions(+), 27 deletions(-) diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java index e4b987b94045b..e37eec615ea63 100644 --- a/services/java/com/android/server/am/ActivityManagerService.java +++ b/services/java/com/android/server/am/ActivityManagerService.java @@ -7578,8 +7578,13 @@ public final class ActivityManagerService extends ActivityManagerNative } synchronized(this) { - mLockScreenShown = shown; - comeOutOfSleepIfNeededLocked(); + long ident = Binder.clearCallingIdentity(); + try { + mLockScreenShown = shown; + comeOutOfSleepIfNeededLocked(); + } finally { + Binder.restoreCallingIdentity(ident); + } } } @@ -7637,33 +7642,36 @@ public final class ActivityManagerService extends ActivityManagerNative enforceCallingPermission(android.Manifest.permission.SET_DEBUG_APP, "setDebugApp()"); - // Note that this is not really thread safe if there are multiple - // callers into it at the same time, but that's not a situation we - // care about. - if (persistent) { - final ContentResolver resolver = mContext.getContentResolver(); - Settings.Global.putString( - resolver, Settings.Global.DEBUG_APP, - packageName); - Settings.Global.putInt( - resolver, Settings.Global.WAIT_FOR_DEBUGGER, - waitForDebugger ? 1 : 0); - } + long ident = Binder.clearCallingIdentity(); + try { + // Note that this is not really thread safe if there are multiple + // callers into it at the same time, but that's not a situation we + // care about. + if (persistent) { + final ContentResolver resolver = mContext.getContentResolver(); + Settings.Global.putString( + resolver, Settings.Global.DEBUG_APP, + packageName); + Settings.Global.putInt( + resolver, Settings.Global.WAIT_FOR_DEBUGGER, + waitForDebugger ? 1 : 0); + } - synchronized (this) { - if (!persistent) { - mOrigDebugApp = mDebugApp; - mOrigWaitForDebugger = mWaitForDebugger; - } - mDebugApp = packageName; - mWaitForDebugger = waitForDebugger; - mDebugTransient = !persistent; - if (packageName != null) { - final long origId = Binder.clearCallingIdentity(); - forceStopPackageLocked(packageName, -1, false, false, true, true, - UserHandle.USER_ALL, "set debug app"); - Binder.restoreCallingIdentity(origId); + synchronized (this) { + if (!persistent) { + mOrigDebugApp = mDebugApp; + mOrigWaitForDebugger = mWaitForDebugger; + } + mDebugApp = packageName; + mWaitForDebugger = waitForDebugger; + mDebugTransient = !persistent; + if (packageName != null) { + forceStopPackageLocked(packageName, -1, false, false, true, true, + UserHandle.USER_ALL, "set debug app"); + } } + } finally { + Binder.restoreCallingIdentity(ident); } } From 2c51cc7eaac9049fd488c70cf1d079c03a8d3940 Mon Sep 17 00:00:00 2001 From: Romain Guy Date: Thu, 27 Jun 2013 15:27:09 -0700 Subject: [PATCH 19/55] Track the atlas' generation ID Bug #9589379 If the atlas is terminated/reinitialized and a view does not invalidate in between it might end up using a stale AssetAtlas::Entry. This change is similar to how 9patch meshes are cached in DrawPatchOp: we simply track the generation ID of the cache to make sure we always use the latest data. Change-Id: Ib5abb3769d2ce0eabe9adc04e320ca27c422019e --- libs/hwui/AssetAtlas.cpp | 4 +++ libs/hwui/AssetAtlas.h | 11 +++++- libs/hwui/DisplayListOp.h | 60 ++++++++++++++++++++++--------- libs/hwui/DisplayListRenderer.cpp | 6 ++-- libs/hwui/OpenGLRenderer.cpp | 8 ++--- libs/hwui/OpenGLRenderer.h | 4 +-- 6 files changed, 64 insertions(+), 29 deletions(-) diff --git a/libs/hwui/AssetAtlas.cpp b/libs/hwui/AssetAtlas.cpp index 782c052c193de..d98a538fe40d7 100644 --- a/libs/hwui/AssetAtlas.cpp +++ b/libs/hwui/AssetAtlas.cpp @@ -14,6 +14,8 @@ * limitations under the License. */ +#define LOG_TAG "OpenGLRenderer" + #include "AssetAtlas.h" #include "Caches.h" @@ -49,6 +51,8 @@ void AssetAtlas::init(sp buffer, int* map, int count) { mImage = NULL; mTexture = NULL; } + + mGenerationId++; } void AssetAtlas::terminate() { diff --git a/libs/hwui/AssetAtlas.h b/libs/hwui/AssetAtlas.h index 2624907a80aa6..9afc54de6de2c 100644 --- a/libs/hwui/AssetAtlas.h +++ b/libs/hwui/AssetAtlas.h @@ -97,7 +97,7 @@ public: friend class AssetAtlas; }; - AssetAtlas(): mTexture(NULL), mImage(NULL) { } + AssetAtlas(): mTexture(NULL), mImage(NULL), mGenerationId(0) { } ~AssetAtlas() { terminate(); } /** @@ -158,12 +158,21 @@ public: */ Texture* getEntryTexture(SkBitmap* const bitmap) const; + /** + * Returns the current generation id of the atlas. + */ + uint32_t getGenerationId() const { + return mGenerationId; + } + private: void createEntries(Caches& caches, int* map, int count); Texture* mTexture; Image* mImage; + uint32_t mGenerationId; + KeyedVector mEntries; }; // class AssetAtlas diff --git a/libs/hwui/DisplayListOp.h b/libs/hwui/DisplayListOp.h index 6099f5d8a54cd..2b6f4cd45fa06 100644 --- a/libs/hwui/DisplayListOp.h +++ b/libs/hwui/DisplayListOp.h @@ -732,14 +732,12 @@ class DrawBitmapOp : public DrawBoundedOp { public: DrawBitmapOp(SkBitmap* bitmap, float left, float top, SkPaint* paint) : DrawBoundedOp(left, top, left + bitmap->width(), top + bitmap->height(), paint), - mBitmap(bitmap), mAtlasEntry(NULL) { - } - - DrawBitmapOp(SkBitmap* bitmap, float left, float top, SkPaint* paint, - const AssetAtlas::Entry* entry) - : DrawBoundedOp(left, top, left + bitmap->width(), top + bitmap->height(), paint), - mBitmap(bitmap), mAtlasEntry(entry) { - if (entry) mUvMapper = entry->uvMapper; + mBitmap(bitmap), mAtlas(Caches::getInstance().assetAtlas) { + mEntry = mAtlas.getEntry(bitmap); + if (mEntry) { + mEntryGenerationId = mAtlas.getGenerationId(); + mUvMapper = mEntry->uvMapper; + } } virtual status_t applyDraw(OpenGLRenderer& renderer, Rect& dirty) { @@ -747,6 +745,16 @@ public: getPaint(renderer)); } + AssetAtlas::Entry* getAtlasEntry() { + // The atlas entry is stale, let's get a new one + if (mEntry && mEntryGenerationId != mAtlas.getGenerationId()) { + mEntryGenerationId = mAtlas.getGenerationId(); + mEntry = mAtlas.getEntry(mBitmap); + mUvMapper = mEntry->uvMapper; + } + return mEntry; + } + #define SET_TEXTURE(ptr, posRect, offsetRect, texCoordsRect, xDim, yDim) \ TextureVertex::set(ptr++, posRect.xDim - offsetRect.left, posRect.yDim - offsetRect.top, \ texCoordsRect.xDim, texCoordsRect.yDim) @@ -791,7 +799,7 @@ public: } } - return renderer.drawBitmaps(mBitmap, ops.size(), &vertices[0], + return renderer.drawBitmaps(mBitmap, mEntry, ops.size(), &vertices[0], transformed, bounds, mPaint); } @@ -803,7 +811,7 @@ public: virtual void onDefer(OpenGLRenderer& renderer, DeferInfo& deferInfo) { deferInfo.batchId = DeferredDisplayList::kOpBatch_Bitmap; - deferInfo.mergeId = mAtlasEntry ? (mergeid_t) &mAtlasEntry->atlas : (mergeid_t) mBitmap; + deferInfo.mergeId = getAtlasEntry() ? (mergeid_t) &mEntry->atlas : (mergeid_t) mBitmap; // Don't merge A8 bitmaps - the paint's color isn't compared by mergeId, or in // MergingDrawBatch::canMergeWith() @@ -816,7 +824,9 @@ public: const SkBitmap* bitmap() { return mBitmap; } protected: SkBitmap* mBitmap; - const AssetAtlas::Entry* mAtlasEntry; + const AssetAtlas& mAtlas; + uint32_t mEntryGenerationId; + AssetAtlas::Entry* mEntry; UvMapper mUvMapper; }; @@ -934,14 +944,27 @@ public: DrawPatchOp(SkBitmap* bitmap, Res_png_9patch* patch, float left, float top, float right, float bottom, SkPaint* paint) : DrawBoundedOp(left, top, right, bottom, paint), - mBitmap(bitmap), mPatch(patch), mGenerationId(0), mMesh(NULL) { - mEntry = Caches::getInstance().assetAtlas.getEntry(bitmap); + mBitmap(bitmap), mPatch(patch), mGenerationId(0), mMesh(NULL), + mAtlas(Caches::getInstance().assetAtlas) { + mEntry = mAtlas.getEntry(bitmap); + if (mEntry) { + mEntryGenerationId = mAtlas.getGenerationId(); + } }; + AssetAtlas::Entry* getAtlasEntry() { + // The atlas entry is stale, let's get a new one + if (mEntry && mEntryGenerationId != mAtlas.getGenerationId()) { + mEntryGenerationId = mAtlas.getGenerationId(); + mEntry = mAtlas.getEntry(mBitmap); + } + return mEntry; + } + const Patch* getMesh(OpenGLRenderer& renderer) { if (!mMesh || renderer.getCaches().patchCache.getGenerationId() != mGenerationId) { PatchCache& cache = renderer.getCaches().patchCache; - mMesh = cache.get(mEntry, mBitmap->width(), mBitmap->height(), + mMesh = cache.get(getAtlasEntry(), mBitmap->width(), mBitmap->height(), mLocalBounds.getWidth(), mLocalBounds.getHeight(), mPatch); mGenerationId = cache.getGenerationId(); } @@ -1021,13 +1044,14 @@ public: indexCount += opMesh->indexCount; } - return renderer.drawPatches(mBitmap, mEntry, &vertices[0], indexCount, getPaint(renderer)); + return renderer.drawPatches(mBitmap, getAtlasEntry(), + &vertices[0], indexCount, getPaint(renderer)); } virtual status_t applyDraw(OpenGLRenderer& renderer, Rect& dirty) { // We're not calling the public variant of drawPatch() here // This method won't perform the quickReject() since we've already done it at this point - return renderer.drawPatch(mBitmap, getMesh(renderer), mEntry, + return renderer.drawPatch(mBitmap, getMesh(renderer), getAtlasEntry(), mLocalBounds.left, mLocalBounds.top, mLocalBounds.right, mLocalBounds.bottom, getPaint(renderer)); } @@ -1040,7 +1064,7 @@ public: virtual void onDefer(OpenGLRenderer& renderer, DeferInfo& deferInfo) { deferInfo.batchId = DeferredDisplayList::kOpBatch_Patch; - deferInfo.mergeId = mEntry ? (mergeid_t) &mEntry->atlas : (mergeid_t) mBitmap; + deferInfo.mergeId = getAtlasEntry() ? (mergeid_t) &mEntry->atlas : (mergeid_t) mBitmap; deferInfo.mergeable = state.mMatrix.isPureTranslate() && OpenGLRenderer::getXfermodeDirect(mPaint) == SkXfermode::kSrcOver_Mode; deferInfo.opaqueOverBounds = isOpaqueOverBounds() && mBitmap->isOpaque(); @@ -1053,6 +1077,8 @@ private: uint32_t mGenerationId; const Patch* mMesh; + const AssetAtlas& mAtlas; + uint32_t mEntryGenerationId; AssetAtlas::Entry* mEntry; }; diff --git a/libs/hwui/DisplayListRenderer.cpp b/libs/hwui/DisplayListRenderer.cpp index 9113092b46eb2..ba4c2a0adcc90 100644 --- a/libs/hwui/DisplayListRenderer.cpp +++ b/libs/hwui/DisplayListRenderer.cpp @@ -262,8 +262,7 @@ status_t DisplayListRenderer::drawBitmap(SkBitmap* bitmap, float left, float top bitmap = refBitmap(bitmap); paint = refPaint(paint); - const AssetAtlas::Entry* entry = mCaches.assetAtlas.getEntry(bitmap); - addDrawOp(new (alloc()) DrawBitmapOp(bitmap, left, top, paint, entry)); + addDrawOp(new (alloc()) DrawBitmapOp(bitmap, left, top, paint)); return DrawGlInfo::kStatusDone; } @@ -287,8 +286,7 @@ status_t DisplayListRenderer::drawBitmap(SkBitmap* bitmap, float srcLeft, float (srcBottom - srcTop == dstBottom - dstTop) && (srcRight - srcLeft == dstRight - dstLeft)) { // transform simple rect to rect drawing case into position bitmap ops, since they merge - const AssetAtlas::Entry* entry = mCaches.assetAtlas.getEntry(bitmap); - addDrawOp(new (alloc()) DrawBitmapOp(bitmap, dstLeft, dstTop, paint, entry)); + addDrawOp(new (alloc()) DrawBitmapOp(bitmap, dstLeft, dstTop, paint)); return DrawGlInfo::kStatusDone; } diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp index 6f1dc6f3e71f6..73c0453b6af94 100644 --- a/libs/hwui/OpenGLRenderer.cpp +++ b/libs/hwui/OpenGLRenderer.cpp @@ -1168,8 +1168,6 @@ void OpenGLRenderer::composeLayerRegion(Layer* layer, const Rect& rect) { return; } - // TODO: See LayerRenderer.cpp::generateMesh() for important - // information about this implementation if (CC_LIKELY(!layer->region.isEmpty())) { size_t count; const android::Rect* rects; @@ -2055,10 +2053,10 @@ void OpenGLRenderer::drawAlphaBitmap(Texture* texture, float left, float top, Sk * will not set the scissor enable or dirty the current layer, if any. * The caller is responsible for properly dirtying the current layer. */ -status_t OpenGLRenderer::drawBitmaps(SkBitmap* bitmap, int bitmapCount, TextureVertex* vertices, - bool transformed, const Rect& bounds, SkPaint* paint) { +status_t OpenGLRenderer::drawBitmaps(SkBitmap* bitmap, AssetAtlas::Entry* entry, int bitmapCount, + TextureVertex* vertices, bool transformed, const Rect& bounds, SkPaint* paint) { mCaches.activeTexture(0); - Texture* texture = getTexture(bitmap); + Texture* texture = entry ? entry->texture : mCaches.textureCache.get(bitmap); if (!texture) return DrawGlInfo::kStatusDone; const AutoTexture autoCleanup(texture); diff --git a/libs/hwui/OpenGLRenderer.h b/libs/hwui/OpenGLRenderer.h index aa0f9fcfa36b4..5e731b4c349fa 100644 --- a/libs/hwui/OpenGLRenderer.h +++ b/libs/hwui/OpenGLRenderer.h @@ -288,8 +288,8 @@ public: virtual void outputDisplayList(DisplayList* displayList); virtual status_t drawLayer(Layer* layer, float x, float y); virtual status_t drawBitmap(SkBitmap* bitmap, float left, float top, SkPaint* paint); - status_t drawBitmaps(SkBitmap* bitmap, int bitmapCount, TextureVertex* vertices, - bool transformed, const Rect& bounds, SkPaint* paint); + status_t drawBitmaps(SkBitmap* bitmap, AssetAtlas::Entry* entry, int bitmapCount, + TextureVertex* vertices, bool transformed, const Rect& bounds, SkPaint* paint); virtual status_t drawBitmap(SkBitmap* bitmap, SkMatrix* matrix, SkPaint* paint); virtual status_t drawBitmap(SkBitmap* bitmap, float srcLeft, float srcTop, float srcRight, float srcBottom, float dstLeft, float dstTop, From a38694f9fe70821ef9c48fcefe006618eeaa363b Mon Sep 17 00:00:00 2001 From: Craig Mautner Date: Fri, 28 Jun 2013 10:43:07 -0700 Subject: [PATCH 20/55] More debug for 9404689. Changing focus to PhoneWindow. Change-Id: I75c2ce6b1a20729daf8d2b7f83b2a871e1a7e642 --- core/java/android/view/ViewRootImpl.java | 2 +- .../src/com/android/internal/policy/impl/PhoneWindow.java | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index 50dbd5f4fc98c..6788fee917376 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -5164,7 +5164,7 @@ public final class ViewRootImpl implements ViewParent, return; } mRemoved = true; - Slog.d(TAG, "doDie: b9404689 mAdded==true mView=" + mView + Slog.d(TAG, "doDie: b9404689 mAdded=" + mAdded + " mView=" + mView + " Callers=" + Debug.getCallers(4)); if (mAdded) { dispatchDetachedFromWindow(); diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindow.java b/policy/src/com/android/internal/policy/impl/PhoneWindow.java index 3ed8bd8208919..71855b2fa9113 100644 --- a/policy/src/com/android/internal/policy/impl/PhoneWindow.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindow.java @@ -551,6 +551,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { // System.out.println("Open panel: isOpen=" + st.isOpen); // Already open, return + Slog.d(TAG, "openPanel: b9404689 entry, st=" + st + " decorView=" + st.decorView); if (st.isOpen || isDestroyed()) { return; } @@ -645,6 +646,8 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { } } + Slog.d(TAG, "openPanel: b9404689 setting isOpen true, st=" + st + " decorView=" + + st.decorView); st.isOpen = true; st.isHandled = false; @@ -693,9 +696,11 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { */ public final void closePanel(PanelFeatureState st, boolean doCallback) { // System.out.println("Close panel: isOpen=" + st.isOpen); + Slog.d(TAG, "closePanel: b9404689 entry, st=" + st + " decorView=" + st.decorView); if (doCallback && st.featureId == FEATURE_OPTIONS_PANEL && mActionBar != null && mActionBar.isOverflowMenuShowing()) { checkCloseActionMenu(st.menu); + Slog.d(TAG, "closePanel: b9404689 early return"); return; } @@ -1100,6 +1105,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { */ protected boolean initializePanelDecor(PanelFeatureState st) { st.decorView = new DecorView(getContext(), st.featureId); + Slog.d(TAG, "initializePanelDecor: b9404689 st=" + st + " decorView=" + st.decorView); st.gravity = Gravity.CENTER | Gravity.BOTTOM; st.setStyle(getContext()); From bcc5ff0d81daf4bc5306c195989dfe58ed9dff33 Mon Sep 17 00:00:00 2001 From: Georgi Nikolov Date: Fri, 28 Jun 2013 14:12:09 -0700 Subject: [PATCH 21/55] Bugfix 9603757 master/flo tremendous Gallery battery drain on idle device (syncing pathology?) Change-Id: I52797fe428a817ac0bdafcf2ab2b0b565839f84c --- .../server/content/SyncStorageEngine.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/services/java/com/android/server/content/SyncStorageEngine.java b/services/java/com/android/server/content/SyncStorageEngine.java index 863def34e77aa..c4dc5751a21dc 100644 --- a/services/java/com/android/server/content/SyncStorageEngine.java +++ b/services/java/com/android/server/content/SyncStorageEngine.java @@ -1442,17 +1442,25 @@ public class SyncStorageEngine extends Handler { */ public void setPeriodicSyncTime( int authorityId, Pair targetPeriodicSync, long when) { + boolean found = false; + final AuthorityInfo authorityInfo; synchronized (mAuthorities) { - final AuthorityInfo authority = mAuthorities.get(authorityId); - for (int i = 0; i < authority.periodicSyncs.size(); i++) { - Pair periodicSync = authority.periodicSyncs.get(i); - if (periodicSync.first == targetPeriodicSync.first + authorityInfo = mAuthorities.get(authorityId); + for (int i = 0; i < authorityInfo.periodicSyncs.size(); i++) { + Pair periodicSync = authorityInfo.periodicSyncs.get(i); + if (PeriodicSync.syncExtrasEquals(periodicSync.first, targetPeriodicSync.first) && periodicSync.second == targetPeriodicSync.second) { mSyncStatus.get(authorityId).setPeriodicSyncTime(i, when); + found = true; break; } } } + + if (!found) { + Log.w(TAG, "Ignoring setPeriodicSyncTime request for a sync that does not exist. " + + "Authority: " + authorityInfo.authority); + } } private SyncStatusInfo getOrCreateSyncStatusLocked(int authorityId) { From 730d53a05d7897d8327ea27711204952da4ed788 Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Mon, 1 Jul 2013 10:44:57 -0700 Subject: [PATCH 22/55] Fix issue #9611000: Random run-time restarts Change-Id: I776f5e2434b81063780adf247fbd6db7f90c79c2 --- services/java/com/android/server/am/ActivityManagerService.java | 1 - 1 file changed, 1 deletion(-) diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java index 9c98848b5038d..72be39ba7c515 100644 --- a/services/java/com/android/server/am/ActivityManagerService.java +++ b/services/java/com/android/server/am/ActivityManagerService.java @@ -2007,7 +2007,6 @@ public final class ActivityManagerService extends ActivityManagerNative ps.addCpuTimeLocked(st.rel_utime-otherUTime, st.rel_stime-otherSTime); ps.addSpeedStepTimes(cpuSpeedTimes); - pr.curCpuTime += (st.rel_utime+st.rel_stime) * 10; } else { BatteryStatsImpl.Uid.Proc ps = bstats.getProcessStatsLocked(st.name, st.pid); From 6181192c2e5bb99884d7be869927bec649b74c61 Mon Sep 17 00:00:00 2001 From: Craig Mautner Date: Mon, 1 Jul 2013 12:57:51 -0700 Subject: [PATCH 23/55] Change order of setting isOpen Because the WindowManager.addView() method can indirectly call PhoneWindow.closePanel() it is critical to set isOpen after the addView call returns in PhoneWindow.openPanel. Otherwise when closePanel sets isOpen to false PhoneWindow will be in to an inconsistent state. Fixes bug 9404689. Change-Id: If0129a0859546b35445df0f4be2f422c4807fba7 --- .../android/internal/policy/impl/PhoneWindow.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindow.java b/policy/src/com/android/internal/policy/impl/PhoneWindow.java index 71855b2fa9113..5a95f4c8dc5bd 100644 --- a/policy/src/com/android/internal/policy/impl/PhoneWindow.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindow.java @@ -646,9 +646,6 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { } } - Slog.d(TAG, "openPanel: b9404689 setting isOpen true, st=" + st + " decorView=" - + st.decorView); - st.isOpen = true; st.isHandled = false; WindowManager.LayoutParams lp = new WindowManager.LayoutParams( @@ -666,8 +663,11 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { } lp.windowAnimations = st.windowAnimations; - + wm.addView(st.decorView, lp); + Slog.d(TAG, "openPanel: b9404689 setting isOpen true, st=" + st + " decorView=" + + st.decorView); + st.isOpen = true; // Log.v(TAG, "Adding main menu to window manager."); } @@ -696,7 +696,8 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { */ public final void closePanel(PanelFeatureState st, boolean doCallback) { // System.out.println("Close panel: isOpen=" + st.isOpen); - Slog.d(TAG, "closePanel: b9404689 entry, st=" + st + " decorView=" + st.decorView); + Slog.d(TAG, "closePanel: b9404689 entry, st=" + st + " isOpen=" + st.isOpen + + " decorView=" + st.decorView + " Callers=" + Debug.getCallers(4)); if (doCallback && st.featureId == FEATURE_OPTIONS_PANEL && mActionBar != null && mActionBar.isOverflowMenuShowing()) { checkCloseActionMenu(st.menu); @@ -717,6 +718,8 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { if (doCallback) { callOnPanelClosed(st.featureId, st, null); } + } else { + Slog.d(TAG, "closePanel: b9404689 not removing wm=" + wm); } st.isPrepared = false; From 75be4e5cc57c4df20c1d694dbe19d54474335be9 Mon Sep 17 00:00:00 2001 From: Wink Saville Date: Tue, 2 Jul 2013 12:41:31 -0700 Subject: [PATCH 24/55] am c880ae16: am db011499: am 753d754c: Merge "Fix NPE if mobile is not supported in checkMobileProvisioning." into jb-mr2-dev * commit 'c880ae16528aa90853952397b8e4d4a299d29c28': Fix NPE if mobile is not supported in checkMobileProvisioning. --- .../java/com/android/server/ConnectivityService.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java index fc346a25b7c06..f2e0f2988e59f 100644 --- a/services/java/com/android/server/ConnectivityService.java +++ b/services/java/com/android/server/ConnectivityService.java @@ -3564,6 +3564,16 @@ public class ConnectivityService extends IConnectivityManager.Stub { timeOutMs = CheckMp.MAX_TIMEOUT_MS; } + // Check that mobile networks are supported + if (!isNetworkSupported(ConnectivityManager.TYPE_MOBILE) + || !isNetworkSupported(ConnectivityManager.TYPE_MOBILE_HIPRI)) { + log("checkMobileProvisioning: X no mobile network"); + if (resultReceiver != null) { + resultReceiver.send(ConnectivityManager.CMP_RESULT_CODE_NO_CONNECTION, null); + } + return timeOutMs; + } + final long token = Binder.clearCallingIdentity(); try { CheckMp checkMp = new CheckMp(mContext, this); From c3d29ba5dc18904d2597083256a5ccb8ea0287ad Mon Sep 17 00:00:00 2001 From: Amith Yamasani Date: Tue, 9 Jul 2013 11:24:44 -0700 Subject: [PATCH 25/55] Clean up any restrictions files that shouldn't be there. Partially fixes the mess that was caused by #9681399 Change-Id: Iaabe15c87d1b002f0b2210b34adcc31b8fb4329c --- .../android/server/pm/UserManagerService.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/services/java/com/android/server/pm/UserManagerService.java b/services/java/com/android/server/pm/UserManagerService.java index d86f2c75c08e4..29012127b04e7 100644 --- a/services/java/com/android/server/pm/UserManagerService.java +++ b/services/java/com/android/server/pm/UserManagerService.java @@ -822,6 +822,11 @@ public class UserManagerService extends IUserManager.Stub { pinState.failedAttempts = failedAttempts; pinState.lastAttemptTime = lastAttemptTime; } + // If this is not a restricted profile and there is no restrictions pin, clean up + // any restrictions files that might have been left behind. + if (!userInfo.isRestricted() && salt == 0) { + cleanAppRestrictions(id); + } return userInfo; } catch (IOException ioe) { @@ -873,6 +878,26 @@ public class UserManagerService extends IUserManager.Stub { } } + /** + * Removes all the restrictions files (res_) for a given user. + * Does not do any permissions checking. + */ + private void cleanAppRestrictions(int userId) { + synchronized (mPackagesLock) { + File dir = Environment.getUserSystemDirectory(userId); + String[] files = dir.list(); + if (files == null) return; + for (String fileName : files) { + if (fileName.startsWith(RESTRICTIONS_FILE_PREFIX)) { + File resFile = new File(dir, fileName); + if (resFile.exists()) { + resFile.delete(); + } + } + } + } + } + @Override public UserInfo createUser(String name, int flags) { checkManageUsersPermission("Only the system can create users"); From 7447b0bcd9893dc7f5e7e65cfa1d8b961450fe25 Mon Sep 17 00:00:00 2001 From: Adam Powell Date: Wed, 10 Jul 2013 11:51:33 -0700 Subject: [PATCH 26/55] Fix ListMenuItemView regression from patch 8933efd49 Passing 'true' as the third parameter of LayoutInflater#inflate does cause it to add the inflated view to the parent in a single step, but it also changes the return value to be the root of the resulting hierarchy after the add rather than the root of the inflated layout. Return to adding the view to its parent as a separate step. Bug 9754101 Change-Id: I7ca4c921993594931f5007af69d45e9ff06065df --- .../com/android/internal/view/menu/ListMenuItemView.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/core/java/com/android/internal/view/menu/ListMenuItemView.java b/core/java/com/android/internal/view/menu/ListMenuItemView.java index 464ae2f5e8ddf..35b76dd2213f3 100644 --- a/core/java/com/android/internal/view/menu/ListMenuItemView.java +++ b/core/java/com/android/internal/view/menu/ListMenuItemView.java @@ -242,17 +242,20 @@ public class ListMenuItemView extends RelativeLayout implements MenuView.ItemVie private void insertIconView() { mIconView = (ImageView) getInflater() - .inflate(com.android.internal.R.layout.list_menu_item_icon, this, true); + .inflate(com.android.internal.R.layout.list_menu_item_icon, this, false); + addView(mIconView); } private void insertRadioButton() { mRadioButton = (RadioButton) getInflater() - .inflate(com.android.internal.R.layout.list_menu_item_radio, this, true); + .inflate(com.android.internal.R.layout.list_menu_item_radio, this, false); + addView(mRadioButton); } private void insertCheckBox() { mCheckBox = (CheckBox) getInflater() - .inflate(com.android.internal.R.layout.list_menu_item_checkbox, this, true); + .inflate(com.android.internal.R.layout.list_menu_item_checkbox, this, false); + addView(mCheckBox); } private void alignTextToStartOf(View v) { From 99c9ed48fb103df3043cc88dd38d014663387fc0 Mon Sep 17 00:00:00 2001 From: Adam Powell Date: Tue, 16 Jul 2013 11:35:17 -0700 Subject: [PATCH 27/55] Fix collapsible action views. Fix a regression caused by a previous overzealous refactoring. (Oops.) Watch those conditionals, everyone! Bug 9866559 Change-Id: Ia88a4ee38edef378e70bdc7151c825375a3d482d --- core/java/com/android/internal/view/menu/MenuItemImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/java/com/android/internal/view/menu/MenuItemImpl.java b/core/java/com/android/internal/view/menu/MenuItemImpl.java index 3d6b1166d9cec..4d0a3260d4792 100644 --- a/core/java/com/android/internal/view/menu/MenuItemImpl.java +++ b/core/java/com/android/internal/view/menu/MenuItemImpl.java @@ -616,7 +616,7 @@ public final class MenuItemImpl implements MenuItem { @Override public boolean expandActionView() { - if (hasCollapsibleActionView()) { + if (!hasCollapsibleActionView()) { return false; } From d4ce0ffe7af4282e734d64621e2c92d639f96818 Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Thu, 18 Jul 2013 15:39:51 -0700 Subject: [PATCH 28/55] Fix issue #9913990: Background processes are being added to... ...the *end* of the process LRU listB Change-Id: I75c9477b81e10c4e517fd836304467fb3f7ed85e --- .../server/am/ActivityManagerService.java | 43 ++++++++++--------- .../android/server/am/ConnectionRecord.java | 9 ++-- .../com/android/server/am/ProcessRecord.java | 4 +- 3 files changed, 31 insertions(+), 25 deletions(-) diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java index b51415f5c6553..04ca5621ffac2 100644 --- a/services/java/com/android/server/am/ActivityManagerService.java +++ b/services/java/com/android/server/am/ActivityManagerService.java @@ -479,38 +479,31 @@ public final class ActivityManagerService extends ActivityManagerNative int pid; IBinder token; } - final SparseArray mForegroundProcesses - = new SparseArray(); + final SparseArray mForegroundProcesses = new SparseArray(); /** * List of records for processes that someone had tried to start before the * system was ready. We don't start them at that point, but ensure they * are started by the time booting is complete. */ - final ArrayList mProcessesOnHold - = new ArrayList(); + final ArrayList mProcessesOnHold = new ArrayList(); /** * List of persistent applications that are in the process * of being started. */ - final ArrayList mPersistentStartingProcesses - = new ArrayList(); + final ArrayList mPersistentStartingProcesses = new ArrayList(); /** * Processes that are being forcibly torn down. */ - final ArrayList mRemovedProcesses - = new ArrayList(); + final ArrayList mRemovedProcesses = new ArrayList(); /** * List of running applications, sorted by recent usage. * The first entry in the list is the least recently used. - * It contains ApplicationRecord objects. This list does NOT include - * any persistent application records (since we never want to exit them). */ - final ArrayList mLruProcesses - = new ArrayList(); + final ArrayList mLruProcesses = new ArrayList(); /** * List of processes that should gc as soon as things are idle. @@ -13754,6 +13747,12 @@ public final class ActivityManagerService extends ActivityManagerNative int clientAdj = computeOomAdjLocked(client, cachedAdj, TOP_APP, doingAll, now); int clientProcState = client.curProcState; + if (clientProcState >= ActivityManager.PROCESS_STATE_CACHED_ACTIVITY) { + // If the other app is cached for any reason, for purposes here + // we are going to consider it empty. The specific cached state + // doesn't propagate except under certain conditions. + clientProcState = ActivityManager.PROCESS_STATE_CACHED_EMPTY; + } String adjType = null; if ((cr.flags&Context.BIND_ALLOW_OOM_MANAGEMENT) != 0) { // Not doing bind OOM management, so treat @@ -13801,8 +13800,8 @@ public final class ActivityManagerService extends ActivityManagerNative ActivityManager.PROCESS_STATE_CACHED_ACTIVITY_CLIENT; app.adjType = "cch-client-act"; } + app.hasClientActivities = true; } - app.hasClientActivities |= client.hasActivities; } } if (adj > clientAdj) { @@ -13912,6 +13911,12 @@ public final class ActivityManagerService extends ActivityManagerNative continue; } int clientAdj = computeOomAdjLocked(client, cachedAdj, TOP_APP, doingAll, now); + int clientProcState = client.curProcState; + if (clientProcState >= ActivityManager.PROCESS_STATE_CACHED_ACTIVITY) { + // If the other app is cached for any reason, for purposes here + // we are going to consider it empty. + clientProcState = ActivityManager.PROCESS_STATE_CACHED_EMPTY; + } if (adj > clientAdj) { if (app.hasShownUi && app != mHomeProcess && clientAdj > ProcessList.PERCEPTIBLE_APP_ADJ) { @@ -13929,11 +13934,9 @@ public final class ActivityManagerService extends ActivityManagerNative app.adjSourceOom = clientAdj; app.adjTarget = cpr.name; } - if (procState > client.curProcState) { - procState = client.curProcState > - ActivityManager.PROCESS_STATE_IMPORTANT_FOREGROUND - ? client.curProcState - : ActivityManager.PROCESS_STATE_IMPORTANT_FOREGROUND; + if (procState > clientProcState) { + procState = clientProcState > ActivityManager.PROCESS_STATE_IMPORTANT_FOREGROUND + ? clientProcState : ActivityManager.PROCESS_STATE_IMPORTANT_FOREGROUND; } if (client.curSchedGroup == Process.THREAD_GROUP_DEFAULT) { schedGroup = Process.THREAD_GROUP_DEFAULT; @@ -14566,10 +14569,10 @@ public final class ActivityManagerService extends ActivityManagerNative // application processes based on their current state. int curCachedAdj = ProcessList.CACHED_APP_MIN_ADJ; int nextCachedAdj = curCachedAdj+1; + int curClientCachedAdj = curCachedAdj+1; int curEmptyAdj = ProcessList.CACHED_APP_MIN_ADJ; int nextEmptyAdj = curEmptyAdj+2; - int curClientCachedAdj = curEmptyAdj; - for (int i=0; i=0; i--) { ProcessRecord app = mLruProcesses.get(i); if (!app.killedBackground && app.thread != null) { app.procStateChanged = false; diff --git a/services/java/com/android/server/am/ConnectionRecord.java b/services/java/com/android/server/am/ConnectionRecord.java index dd814933a0bc4..576adc26a5798 100644 --- a/services/java/com/android/server/am/ConnectionRecord.java +++ b/services/java/com/android/server/am/ConnectionRecord.java @@ -89,12 +89,15 @@ final class ConnectionRecord { if ((flags&Context.BIND_ADJUST_WITH_ACTIVITY) != 0) { sb.append("ACT "); } - if ((flags&Context.BIND_NOT_VISIBLE) != 0) { - sb.append("!VIS "); - } if ((flags&Context.BIND_VISIBLE) != 0) { sb.append("VIS "); } + if ((flags&Context.BIND_SHOWING_UI) != 0) { + sb.append("UI "); + } + if ((flags&Context.BIND_NOT_VISIBLE) != 0) { + sb.append("!VIS "); + } if (serviceDead) { sb.append("DEAD "); } diff --git a/services/java/com/android/server/am/ProcessRecord.java b/services/java/com/android/server/am/ProcessRecord.java index 5c1b7f2405cfd..1b45d309cccc6 100644 --- a/services/java/com/android/server/am/ProcessRecord.java +++ b/services/java/com/android/server/am/ProcessRecord.java @@ -207,8 +207,8 @@ final class ProcessRecord { pw.println(starting); pw.print(prefix); pw.print("lastActivityTime="); TimeUtils.formatDuration(lastActivityTime, now, pw); - pw.print(" lruWeight="); pw.print(lruWeight); - pw.print(" serviceb="); pw.print(serviceb); + pw.print(" lruWeight="); pw.println(lruWeight); + pw.print(prefix); pw.print("serviceb="); pw.print(serviceb); pw.print(" keeping="); pw.print(keeping); pw.print(" cached="); pw.print(cached); pw.print(" empty="); pw.println(empty); From e629561dfd1d14a9eb67a2c88888768edd9848ed Mon Sep 17 00:00:00 2001 From: Amith Yamasani Date: Wed, 17 Jul 2013 15:52:45 -0700 Subject: [PATCH 29/55] Ignore list item clicks if PreferenceActivity is paused. Since list item clicks are delivered asynchronously, it's possible to get click callbacks after the activity has already paused. This should actually be blocked further up the event chain, ideally, so that the list selection state is not out of sync with the application. Bug: 9752185 Change-Id: I1058d64cba98e9093b462e2e581bdbccdace1420 --- core/java/android/preference/PreferenceActivity.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/java/android/preference/PreferenceActivity.java b/core/java/android/preference/PreferenceActivity.java index a9ee96ec76c79..ec97efb0df288 100644 --- a/core/java/android/preference/PreferenceActivity.java +++ b/core/java/android/preference/PreferenceActivity.java @@ -973,6 +973,9 @@ public abstract class PreferenceActivity extends ListActivity implements @Override protected void onListItemClick(ListView l, View v, int position, long id) { + if (!isResumed()) { + return; + } super.onListItemClick(l, v, position, id); if (mAdapter != null) { From a8079baed4a1f5ea9dd177f66c181f12f820fad3 Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Thu, 18 Jul 2013 17:31:13 -0700 Subject: [PATCH 30/55] Fix issue #9925269: Naver app crashes on launch No comment. Change-Id: I084cbbf21cacdce179c11528b7217fdc6006dceb --- core/java/android/app/ContextImpl.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/core/java/android/app/ContextImpl.java b/core/java/android/app/ContextImpl.java index 6a0fbd59bee3a..141d12d561bca 100644 --- a/core/java/android/app/ContextImpl.java +++ b/core/java/android/app/ContextImpl.java @@ -16,6 +16,7 @@ package android.app; +import android.os.Build; import com.android.internal.policy.PolicyManager; import com.android.internal.util.Preconditions; @@ -706,6 +707,16 @@ class ContextImpl extends Context { sSharedPrefs.put(packageName, packagePrefs); } + // At least one application in the world actually passes in a null + // name. This happened to work because when we generated the file name + // we would stringify it to "null.xml". Nice. + if (mPackageInfo.getApplicationInfo().targetSdkVersion < + Build.VERSION_CODES.KEY_LIME_PIE) { + if (name == null) { + name = "null"; + } + } + sp = packagePrefs.get(name); if (sp == null) { File prefsFile = getSharedPrefsFile(name); From 75e6c998a4d0cdb4d47f149f6d859b9a37cf2f65 Mon Sep 17 00:00:00 2001 From: Craig Mautner Date: Fri, 19 Jul 2013 11:01:05 -0700 Subject: [PATCH 31/55] Access sparse array in correct manner Was using get() for iteration. Consequence of cl 331550. Fixes bug 9902476. Change-Id: I4ec08d0421411981db8b8fba7342e9a3db606ce1 --- services/java/com/android/server/wm/WindowAnimator.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/java/com/android/server/wm/WindowAnimator.java b/services/java/com/android/server/wm/WindowAnimator.java index afdbc87dbbcbc..2688cffb9d229 100644 --- a/services/java/com/android/server/wm/WindowAnimator.java +++ b/services/java/com/android/server/wm/WindowAnimator.java @@ -542,7 +542,7 @@ public class WindowAnimator { boolean hasPendingLayoutChanges = false; final int numDisplays = mService.mDisplayContents.size(); for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) { - final DisplayContent displayContent = mService.mDisplayContents.get(displayNdx); + final DisplayContent displayContent = mService.mDisplayContents.valueAt(displayNdx); final int pendingChanges = getPendingLayoutChanges(displayContent.getDisplayId()); if ((pendingChanges & WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER) != 0) { mBulkUpdateParams |= SET_WALLPAPER_ACTION_PENDING; From 193a9209f70c32df438f89d69492b79434529e1b Mon Sep 17 00:00:00 2001 From: Romain Guy Date: Tue, 23 Jul 2013 13:09:51 -0700 Subject: [PATCH 32/55] Fix crash in app widgets Bug #9983130 Change-Id: Ie2319c9e8f6e7591c03061224021973b94ae07cb --- core/java/android/widget/RemoteViews.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/core/java/android/widget/RemoteViews.java b/core/java/android/widget/RemoteViews.java index 75e1f3251cea1..0d3df517490dd 100644 --- a/core/java/android/widget/RemoteViews.java +++ b/core/java/android/widget/RemoteViews.java @@ -763,7 +763,11 @@ public class RemoteViews implements Parcelable, Filter { method = methods.get(mPair); if (method == null) { try { - method = klass.getMethod(methodName, paramType); + if (paramType == null) { + method = klass.getMethod(methodName); + } else { + method = klass.getMethod(methodName, paramType); + } } catch (NoSuchMethodException ex) { throw new ActionException("view: " + klass.getName() + " doesn't have method: " + methodName + getParameters(paramType)); From 2b763ff2b97ce77507808fbae6560d5060ca0e14 Mon Sep 17 00:00:00 2001 From: Christopher Tate Date: Tue, 23 Jul 2013 18:22:29 -0700 Subject: [PATCH 33/55] Don't let batch coalescing / rewindowing break batch ordering Bug 9965704 Change-Id: I41819bd1da16cc61c54938ed4ddd421f15b56fbb --- .../android/server/AlarmManagerService.java | 32 +++++++++++++------ 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/services/java/com/android/server/AlarmManagerService.java b/services/java/com/android/server/AlarmManagerService.java index d7cdb9d4f32a0..d0b98aee4ec4d 100644 --- a/services/java/com/android/server/AlarmManagerService.java +++ b/services/java/com/android/server/AlarmManagerService.java @@ -353,15 +353,16 @@ class AlarmManagerService extends IAlarmManager.Stub { return (index == 0); } - Batch attemptCoalesceLocked(long whenElapsed, long maxWhen) { + // Return the index of the matching batch, or -1 if none found. + int attemptCoalesceLocked(long whenElapsed, long maxWhen) { final int N = mAlarmBatches.size(); for (int i = 0; i < N; i++) { Batch b = mAlarmBatches.get(i); if (!b.standalone && b.canHold(whenElapsed, maxWhen)) { - return b; + return i; } } - return null; + return -1; } // The RTC clock has moved arbitrarily, so we need to recalculate all the batching @@ -553,16 +554,23 @@ class AlarmManagerService extends IAlarmManager.Stub { removeLocked(operation); final boolean reschedule; - Batch batch = (isStandalone) ? null : attemptCoalesceLocked(whenElapsed, maxWhen); - if (batch == null) { - batch = new Batch(a); + int whichBatch = (isStandalone) ? -1 : attemptCoalesceLocked(whenElapsed, maxWhen); + if (whichBatch < 0) { + Batch batch = new Batch(a); batch.standalone = isStandalone; if (DEBUG_BATCH) { Slog.v(TAG, "Starting new alarm batch " + batch); } reschedule = addBatchLocked(mAlarmBatches, batch); } else { + Batch batch = mAlarmBatches.get(whichBatch); reschedule = batch.add(a); + if (reschedule) { + // The start time of this batch advanced, so batch ordering may + // have just been broken. Move it to where it now belongs. + mAlarmBatches.remove(whichBatch); + addBatchLocked(mAlarmBatches, batch); + } } if (reschedule) { @@ -1058,6 +1066,9 @@ class AlarmManagerService extends IAlarmManager.Stub { triggerList.clear(); if ((result & TIME_CHANGED_MASK) != 0) { + if (DEBUG_BATCH) { + Slog.v(TAG, "Time changed notification from kernel"); + } remove(mTimeTickSender); rebatchAllAlarms(); mClockReceiver.scheduleTimeTickEvent(); @@ -1211,7 +1222,10 @@ class AlarmManagerService extends IAlarmManager.Stub { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(Intent.ACTION_TIME_TICK)) { - scheduleTimeTickEvent(); + if (DEBUG_BATCH) { + Slog.v(TAG, "Received TIME_TICK alarm; rescheduling"); + } + scheduleTimeTickEvent(); } else if (intent.getAction().equals(Intent.ACTION_DATE_CHANGED)) { // Since the kernel does not keep track of DST, we need to // reset the TZ information at the beginning of each day @@ -1220,7 +1234,7 @@ class AlarmManagerService extends IAlarmManager.Stub { TimeZone zone = TimeZone.getTimeZone(SystemProperties.get(TIMEZONE_PROPERTY)); int gmtOffset = zone.getOffset(System.currentTimeMillis()); setKernelTimezone(mDescriptor, -(gmtOffset / 60000)); - scheduleDateChangedEvent(); + scheduleDateChangedEvent(); } } @@ -1235,7 +1249,7 @@ class AlarmManagerService extends IAlarmManager.Stub { set(ELAPSED_REALTIME, SystemClock.elapsedRealtime() + tickEventDelay, 0, 0, mTimeTickSender, true); } - + public void scheduleDateChangedEvent() { Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(System.currentTimeMillis()); From d4d08a9c231198d9866b486597fc4e819666d990 Mon Sep 17 00:00:00 2001 From: Alan Viverette Date: Wed, 24 Jul 2013 15:49:23 -0700 Subject: [PATCH 34/55] Use clearFocus() when entering touch mode Calling unFocus() leaves the view hierarchy in an inconsistent state. This is okay in ViewGroup, where the state is manually updated, but causes issues in ViewRootImpl. BUG: 9983358 Change-Id: Id63e62962d895e6bd4f816f202dcf77254ceab4e --- core/java/android/view/View.java | 4 +++ core/java/android/view/ViewRootImpl.java | 35 ++++++++++++------------ 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index 188ddf2bb9571..555e8835727d9 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -4588,6 +4588,10 @@ public class View implements Drawable.Callback, KeyEvent.Callback, /** * Called internally by the view system when a new view is getting focus. * This is what clears the old focus. + *

+ * NOTE: The parent view's focused child must be updated manually + * after calling this method. Otherwise, the view hierarchy may be left in + * an inconstent state. */ void unFocus() { if (DBG) { diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index 075719c68e15e..1f7ff9b7abf97 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -3250,24 +3250,23 @@ public final class ViewRootImpl implements ViewParent, } private boolean enterTouchMode() { - if (mView != null) { - if (mView.hasFocus()) { - // note: not relying on mFocusedView here because this could - // be when the window is first being added, and mFocused isn't - // set yet. - final View focused = mView.findFocus(); - if (focused != null && !focused.isFocusableInTouchMode()) { - final ViewGroup ancestorToTakeFocus = - findAncestorToTakeFocusInTouchMode(focused); - if (ancestorToTakeFocus != null) { - // there is an ancestor that wants focus after its descendants that - // is focusable in touch mode.. give it focus - return ancestorToTakeFocus.requestFocus(); - } else { - // nothing appropriate to have focus in touch mode, clear it out - focused.unFocus(); - return true; - } + if (mView != null && mView.hasFocus()) { + // note: not relying on mFocusedView here because this could + // be when the window is first being added, and mFocused isn't + // set yet. + final View focused = mView.findFocus(); + if (focused != null && !focused.isFocusableInTouchMode()) { + final ViewGroup ancestorToTakeFocus = findAncestorToTakeFocusInTouchMode(focused); + if (ancestorToTakeFocus != null) { + // there is an ancestor that wants focus after its + // descendants that is focusable in touch mode.. give it + // focus + return ancestorToTakeFocus.requestFocus(); + } else { + // nothing appropriate to have focus in touch mode, clear it + // out + focused.clearFocus(); + return true; } } } From 29de2878904b4687df528ae80470947eec55b296 Mon Sep 17 00:00:00 2001 From: Christopher Tate Date: Thu, 25 Jul 2013 14:40:58 -0700 Subject: [PATCH 35/55] Turn on debug logs for alarm batching Bug 9965704 Change-Id: I18111682664a069c2dc4fd956df49a02e2c455a8 --- services/java/com/android/server/AlarmManagerService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/java/com/android/server/AlarmManagerService.java b/services/java/com/android/server/AlarmManagerService.java index d0b98aee4ec4d..3840ba19e0b10 100644 --- a/services/java/com/android/server/AlarmManagerService.java +++ b/services/java/com/android/server/AlarmManagerService.java @@ -81,7 +81,7 @@ class AlarmManagerService extends IAlarmManager.Stub { private static final String TAG = "AlarmManager"; private static final String ClockReceiver_TAG = "ClockReceiver"; private static final boolean localLOGV = false; - private static final boolean DEBUG_BATCH = localLOGV || false; + private static final boolean DEBUG_BATCH = localLOGV || true; private static final int ALARM_EVENT = 1; private static final String TIMEZONE_PROPERTY = "persist.sys.timezone"; From 2e2141b74cdfaa22cb608757e8912ec97674af4c Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Thu, 25 Jul 2013 16:42:59 -0700 Subject: [PATCH 36/55] Okay, I give in, add null key support to ArrayMap and ArraySet. Change-Id: Iac5035f9c5884a9f9d5acb38132bb128d7a55249 --- core/java/android/util/ArrayMap.java | 76 ++++++++++++++----- core/java/android/util/ArraySet.java | 70 +++++++++++++---- .../android/test/activity/ArrayMapTests.java | 28 ++++--- 3 files changed, 133 insertions(+), 41 deletions(-) diff --git a/core/java/android/util/ArrayMap.java b/core/java/android/util/ArrayMap.java index 22f62d70980a5..fa534cc8f5026 100644 --- a/core/java/android/util/ArrayMap.java +++ b/core/java/android/util/ArrayMap.java @@ -36,9 +36,6 @@ import java.util.Set; * and deleting entries in the array. For containers holding up to hundreds of items, * the performance difference is not significant, less than 50%.

* - *

Note: unlike {@link java.util.HashMap}, this container does not support - * null keys.

- * *

Because this container is intended to better balance memory use, unlike most other * standard Java containers it will shrink its array as items are removed from it. Currently * you have no control over this shrinking -- if you set a capacity and then remove an @@ -86,7 +83,7 @@ public final class ArrayMap implements Map { int mSize; MapCollections mCollections; - private int indexOf(Object key, int hash) { + int indexOf(Object key, int hash) { final int N = mSize; // Important fast case: if nothing is in here, nothing to look for. @@ -102,19 +99,57 @@ public final class ArrayMap implements Map { } // If the key at the returned index matches, that's what we want. - if (mArray[index<<1].equals(key)) { + if (key.equals(mArray[index<<1])) { return index; } // Search for a matching key after the index. int end; for (end = index + 1; end < N && mHashes[end] == hash; end++) { - if (mArray[end << 1].equals(key)) return end; + if (key.equals(mArray[end << 1])) return end; } // Search for a matching key before the index. for (int i = index - 1; i >= 0 && mHashes[i] == hash; i--) { - if (mArray[i << 1].equals(key)) return i; + if (key.equals(mArray[i << 1])) return i; + } + + // Key not found -- return negative value indicating where a + // new entry for this key should go. We use the end of the + // hash chain to reduce the number of array entries that will + // need to be copied when inserting. + return ~end; + } + + int indexOfNull() { + final int N = mSize; + + // Important fast case: if nothing is in here, nothing to look for. + if (N == 0) { + return ~0; + } + + int index = ContainerHelpers.binarySearch(mHashes, N, 0); + + // If the hash code wasn't found, then we have no entry for this key. + if (index < 0) { + return index; + } + + // If the key at the returned index matches, that's what we want. + if (null == mArray[index<<1]) { + return index; + } + + // Search for a matching key after the index. + int end; + for (end = index + 1; end < N && mHashes[end] == 0; end++) { + if (null == mArray[end << 1]) return end; + } + + // Search for a matching key before the index. + for (int i = index - 1; i >= 0 && mHashes[i] == 0; i--) { + if (null == mArray[i << 1]) return i; } // Key not found -- return negative value indicating where a @@ -285,10 +320,10 @@ public final class ArrayMap implements Map { */ @Override public boolean containsKey(Object key) { - return indexOf(key, key.hashCode()) >= 0; + return key == null ? (indexOfNull() >= 0) : (indexOf(key, key.hashCode()) >= 0); } - private int indexOfValue(Object value) { + int indexOfValue(Object value) { final int N = mSize*2; final Object[] array = mArray; if (value == null) { @@ -327,7 +362,7 @@ public final class ArrayMap implements Map { */ @Override public V get(Object key) { - final int index = indexOf(key, key.hashCode()); + final int index = key == null ? indexOfNull() : indexOf(key, key.hashCode()); return index >= 0 ? (V)mArray[(index<<1)+1] : null; } @@ -380,8 +415,15 @@ public final class ArrayMap implements Map { */ @Override public V put(K key, V value) { - final int hash = key.hashCode(); - int index = indexOf(key, hash); + final int hash; + int index; + if (key == null) { + hash = 0; + index = indexOfNull(); + } else { + hash = key.hashCode(); + index = indexOf(key, hash); + } if (index >= 0) { index = (index<<1) + 1; final V old = (V)mArray[index]; @@ -430,7 +472,7 @@ public final class ArrayMap implements Map { */ public void append(K key, V value) { int index = mSize; - final int hash = key.hashCode(); + final int hash = key == null ? 0 : key.hashCode(); if (index >= mHashes.length) { throw new IllegalStateException("Array is full"); } @@ -478,7 +520,7 @@ public final class ArrayMap implements Map { */ @Override public V remove(Object key) { - int index = indexOf(key, key.hashCode()); + int index = key == null ? indexOfNull() : indexOf(key, key.hashCode()); if (index >= 0) { return removeAt(index); } @@ -492,7 +534,7 @@ public final class ArrayMap implements Map { * @return Returns the value that was stored at this index. */ public V removeAt(int index) { - final V old = (V)mArray[(index << 1) + 1]; + final Object old = mArray[(index << 1) + 1]; if (mSize <= 1) { // Now empty. if (DEBUG) Log.d(TAG, "remove: shrink from " + mHashes.length + " to 0"); @@ -539,7 +581,7 @@ public final class ArrayMap implements Map { mArray[(mSize << 1) + 1] = null; } } - return old; + return (V)old; } /** @@ -664,7 +706,7 @@ public final class ArrayMap implements Map { @Override protected int colIndexOfKey(Object key) { - return indexOf(key, key.hashCode()); + return key == null ? indexOfNull() : indexOf(key, key.hashCode()); } @Override diff --git a/core/java/android/util/ArraySet.java b/core/java/android/util/ArraySet.java index 1648ec925c628..3c695e9066479 100644 --- a/core/java/android/util/ArraySet.java +++ b/core/java/android/util/ArraySet.java @@ -35,9 +35,6 @@ import java.util.Set; * and deleting entries in the array. For containers holding up to hundreds of items, * the performance difference is not significant, less than 50%.

* - *

Note: unlike {@link java.util.HashSet}, this container does not support - * null values.

- * *

Because this container is intended to better balance memory use, unlike most other * standard Java containers it will shrink its array as items are removed from it. Currently * you have no control over this shrinking -- if you set a capacity and then remove an @@ -93,19 +90,57 @@ public final class ArraySet implements Collection, Set { } // If the key at the returned index matches, that's what we want. - if (mArray[index].equals(key)) { + if (key.equals(mArray[index])) { return index; } // Search for a matching key after the index. int end; for (end = index + 1; end < N && mHashes[end] == hash; end++) { - if (mArray[end].equals(key)) return end; + if (key.equals(mArray[end])) return end; } // Search for a matching key before the index. for (int i = index - 1; i >= 0 && mHashes[i] == hash; i--) { - if (mArray[i].equals(key)) return i; + if (key.equals(mArray[i])) return i; + } + + // Key not found -- return negative value indicating where a + // new entry for this key should go. We use the end of the + // hash chain to reduce the number of array entries that will + // need to be copied when inserting. + return ~end; + } + + private int indexOfNull() { + final int N = mSize; + + // Important fast case: if nothing is in here, nothing to look for. + if (N == 0) { + return ~0; + } + + int index = ContainerHelpers.binarySearch(mHashes, N, 0); + + // If the hash code wasn't found, then we have no entry for this key. + if (index < 0) { + return index; + } + + // If the key at the returned index matches, that's what we want. + if (null == mArray[index]) { + return index; + } + + // Search for a matching key after the index. + int end; + for (end = index + 1; end < N && mHashes[end] == 0; end++) { + if (null == mArray[end]) return end; + } + + // Search for a matching key before the index. + for (int i = index - 1; i >= 0 && mHashes[i] == 0; i--) { + if (null == mArray[i]) return i; } // Key not found -- return negative value indicating where a @@ -254,7 +289,7 @@ public final class ArraySet implements Collection, Set { */ @Override public boolean contains(Object key) { - return indexOf(key, key.hashCode()) >= 0; + return key == null ? (indexOfNull() >= 0) : (indexOf(key, key.hashCode()) >= 0); } /** @@ -285,8 +320,15 @@ public final class ArraySet implements Collection, Set { */ @Override public boolean add(E value) { - final int hash = value.hashCode(); - int index = indexOf(value, hash); + final int hash; + int index; + if (value == null) { + hash = 0; + index = indexOfNull(); + } else { + hash = value.hashCode(); + index = indexOf(value, hash); + } if (index >= 0) { return false; } @@ -352,7 +394,7 @@ public final class ArraySet implements Collection, Set { */ @Override public boolean remove(Object object) { - int index = indexOf(object, object.hashCode()); + int index = object == null ? indexOfNull() : indexOf(object, object.hashCode()); if (index >= 0) { removeAt(index); return true; @@ -366,7 +408,7 @@ public final class ArraySet implements Collection, Set { * @return Returns the value that was stored at this index. */ public E removeAt(int index) { - final E old = (E)mArray[index]; + final Object old = mArray[index]; if (mSize <= 1) { // Now empty. if (DEBUG) Log.d(TAG, "remove: shrink from " + mHashes.length + " to 0"); @@ -410,7 +452,7 @@ public final class ArraySet implements Collection, Set { mArray[mSize] = null; } } - return old; + return (E)old; } /** @@ -542,12 +584,12 @@ public final class ArraySet implements Collection, Set { @Override protected int colIndexOfKey(Object key) { - return indexOf(key, key.hashCode()); + return key == null ? indexOfNull() : indexOf(key, key.hashCode()); } @Override protected int colIndexOfValue(Object value) { - return indexOf(value, value.hashCode()); + return value == null ? indexOfNull() : indexOf(value, value.hashCode()); } @Override diff --git a/tests/ActivityTests/src/com/google/android/test/activity/ArrayMapTests.java b/tests/ActivityTests/src/com/google/android/test/activity/ArrayMapTests.java index 9b54927a357a5..28e86bf502a03 100644 --- a/tests/ActivityTests/src/com/google/android/test/activity/ArrayMapTests.java +++ b/tests/ActivityTests/src/com/google/android/test/activity/ArrayMapTests.java @@ -48,15 +48,17 @@ public class ArrayMapTests { OP_ADD, OP_ADD, OP_ADD, OP_ADD, OP_ADD, OP_ADD, OP_ADD, OP_ADD, OP_ADD, OP_ADD, OP_ADD, OP_ADD, OP_ADD, OP_ADD, OP_ADD, OP_ADD, OP_ADD, OP_ADD, + OP_ADD, OP_ADD, OP_ADD, OP_REM, OP_REM, OP_REM, OP_REM, OP_REM, OP_REM, OP_REM, OP_REM, OP_REM, + OP_REM, OP_REM, OP_REM, OP_REM, OP_REM, OP_REM, OP_REM, OP_REM, OP_REM, OP_REM, OP_REM, OP_REM, }; static int[] KEYS = new int[] { // General adding and removing. - 100, 1900, 600, 200, 1200, 1500, 1800, 100, 1900, + -1, 1900, 600, 200, 1200, 1500, 1800, 100, 1900, 2100, 300, 800, 600, 1100, 1300, 2000, 1000, 1400, - 600, 100, 1900, 600, 300, 2100, 200, 800, 800, + 600, -1, 1900, 600, 300, 2100, 200, 800, 800, 1800, 1500, 1300, 1100, 2000, 1400, 1000, 1200, 1900, // Shrink when removing item from end. @@ -74,7 +76,9 @@ public class ArrayMapTests { // Test hash collisions. 105, 106, 108, 104, 102, 102, 107, 5, 205, 4, 202, 203, 3, 5, 101, 109, 200, 201, + 0, -1, 100, 106, 108, 104, 102, 103, 105, 107, 101, 109, + -1, 100, 0, 4, 5, 3, 5, 200, 203, 202, 201, 205, }; @@ -87,6 +91,9 @@ public class ArrayMapTests { @Override public final boolean equals(Object o) { + if (o == null) { + return false; + } return mValue == ((ControlledHash)o).mValue; } @@ -277,20 +284,21 @@ public class ArrayMapTests { Integer oldArray; boolean hashChanged; boolean arrayChanged; + ControlledHash key = KEYS[i] < 0 ? null : new ControlledHash(KEYS[i]); switch (OPS[i]) { case OP_ADD: Log.i("test", "Adding key: " + KEYS[i]); - oldHash = hashMap.put(new ControlledHash(KEYS[i]), i); - oldArray = arrayMap.put(new ControlledHash(KEYS[i]), i); - hashChanged = hashSet.add(new ControlledHash(KEYS[i])); - arrayChanged = arraySet.add(new ControlledHash(KEYS[i])); + oldHash = hashMap.put(key, i); + oldArray = arrayMap.put(key, i); + hashChanged = hashSet.add(key); + arrayChanged = arraySet.add(key); break; case OP_REM: Log.i("test", "Removing key: " + KEYS[i]); - oldHash = hashMap.remove(new ControlledHash(KEYS[i])); - oldArray = arrayMap.remove(new ControlledHash(KEYS[i])); - hashChanged = hashSet.remove(new ControlledHash(KEYS[i])); - arrayChanged = arraySet.remove(new ControlledHash(KEYS[i])); + oldHash = hashMap.remove(key); + oldArray = arrayMap.remove(key); + hashChanged = hashSet.remove(key); + arrayChanged = arraySet.remove(key); break; default: Log.e("test", "Bad operation " + OPS[i] + " @ " + i); From 40a7bd0dd08ef7fe7911059950c65e71630b58f5 Mon Sep 17 00:00:00 2001 From: Matthew Williams Date: Thu, 25 Jul 2013 16:40:23 -0700 Subject: [PATCH 37/55] Fixed NPE in SyncRequest for Bundle.EMPTY Writing to bundle caller provides causes app to crash if bundle is Bundle.EMPTY, which is backed by an unmodifiable map. Change-Id: Ia9bdf12cddea9673bb84e0458cce8bc8027fbba5 --- core/java/android/content/SyncRequest.java | 64 +++++++++++-------- .../android/server/content/SyncOperation.java | 2 +- 2 files changed, 37 insertions(+), 29 deletions(-) diff --git a/core/java/android/content/SyncRequest.java b/core/java/android/content/SyncRequest.java index bd3b92d0e3056..c1cd57bdbda90 100644 --- a/core/java/android/content/SyncRequest.java +++ b/core/java/android/content/SyncRequest.java @@ -204,6 +204,9 @@ public class SyncRequest implements Parcelable { mIsAuthority = (b.mSyncTarget == Builder.SYNC_TARGET_ADAPTER); mIsExpedited = b.mExpedited; mExtras = new Bundle(b.mCustomExtras); + // For now we merge the sync config extras & the custom extras into one bundle. + // TODO: pass the configuration extras through separately. + mExtras.putAll(b.mSyncConfigExtras); mAllowMetered = b.mAllowMetered; mTxBytes = b.mTxBytes; mRxBytes = b.mRxBytes; @@ -567,50 +570,37 @@ public class SyncRequest implements Parcelable { */ public SyncRequest build() { // Validate the extras bundle - try { - ContentResolver.validateSyncExtrasBundle(mCustomExtras); - } catch (IllegalArgumentException e) { - throw new IllegalArgumentException(e.getMessage()); - } + ContentResolver.validateSyncExtrasBundle(mCustomExtras); if (mCustomExtras == null) { mCustomExtras = new Bundle(); } - // Combine the builder extra flags into the copy of the bundle. + // Combine builder extra flags into the config bundle. + mSyncConfigExtras = new Bundle(); if (mIgnoreBackoff) { - mCustomExtras.putBoolean(ContentResolver.SYNC_EXTRAS_IGNORE_BACKOFF, true); + mSyncConfigExtras.putBoolean(ContentResolver.SYNC_EXTRAS_IGNORE_BACKOFF, true); } if (mAllowMetered) { - mCustomExtras.putBoolean(ContentResolver.SYNC_EXTRAS_ALLOW_METERED, true); + mSyncConfigExtras.putBoolean(ContentResolver.SYNC_EXTRAS_ALLOW_METERED, true); } if (mIgnoreSettings) { - mCustomExtras.putBoolean(ContentResolver.SYNC_EXTRAS_IGNORE_SETTINGS, true); + mSyncConfigExtras.putBoolean(ContentResolver.SYNC_EXTRAS_IGNORE_SETTINGS, true); } if (mNoRetry) { - mCustomExtras.putBoolean(ContentResolver.SYNC_EXTRAS_DO_NOT_RETRY, true); + mSyncConfigExtras.putBoolean(ContentResolver.SYNC_EXTRAS_DO_NOT_RETRY, true); } if (mExpedited) { - mCustomExtras.putBoolean(ContentResolver.SYNC_EXTRAS_EXPEDITED, true); + mSyncConfigExtras.putBoolean(ContentResolver.SYNC_EXTRAS_EXPEDITED, true); } if (mIsManual) { - mCustomExtras.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true); + mSyncConfigExtras.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true); } - // Upload/download expectations. - mCustomExtras.putLong(ContentResolver.SYNC_EXTRAS_EXPECTED_UPLOAD, mTxBytes); - mCustomExtras.putLong(ContentResolver.SYNC_EXTRAS_EXPECTED_DOWNLOAD, mRxBytes); - // Priority. - mCustomExtras.putInt(ContentResolver.SYNC_EXTRAS_PRIORITY, mPriority); + mSyncConfigExtras.putLong(ContentResolver.SYNC_EXTRAS_EXPECTED_UPLOAD, mTxBytes); + mSyncConfigExtras.putLong(ContentResolver.SYNC_EXTRAS_EXPECTED_DOWNLOAD, mRxBytes); + mSyncConfigExtras.putInt(ContentResolver.SYNC_EXTRAS_PRIORITY, mPriority); if (mSyncType == SYNC_TYPE_PERIODIC) { - // If this is a periodic sync ensure than invalid extras were - // not set. - if (mCustomExtras.getBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, false) - || mCustomExtras.getBoolean(ContentResolver.SYNC_EXTRAS_DO_NOT_RETRY, false) - || mCustomExtras.getBoolean(ContentResolver.SYNC_EXTRAS_IGNORE_BACKOFF, false) - || mCustomExtras.getBoolean(ContentResolver.SYNC_EXTRAS_IGNORE_SETTINGS, false) - || mCustomExtras.getBoolean(ContentResolver.SYNC_EXTRAS_INITIALIZE, false) - || mCustomExtras.getBoolean(ContentResolver.SYNC_EXTRAS_FORCE, false) - || mCustomExtras.getBoolean(ContentResolver.SYNC_EXTRAS_EXPEDITED, false)) { - throw new IllegalArgumentException("Illegal extras were set"); - } + // If this is a periodic sync ensure than invalid extras were not set. + validatePeriodicExtras(mCustomExtras); + validatePeriodicExtras(mSyncConfigExtras); } else if (mSyncType == SYNC_TYPE_UNKNOWN) { throw new IllegalArgumentException("Must call either syncOnce() or syncPeriodic()"); } @@ -621,5 +611,23 @@ public class SyncRequest implements Parcelable { } return new SyncRequest(this); } + + /** + * Helper function to throw an IllegalArgumentException if any illegal + * extras were set for a periodic sync. + * + * @param extras bundle to validate. + */ + private void validatePeriodicExtras(Bundle extras) { + if (extras.getBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, false) + || extras.getBoolean(ContentResolver.SYNC_EXTRAS_DO_NOT_RETRY, false) + || extras.getBoolean(ContentResolver.SYNC_EXTRAS_IGNORE_BACKOFF, false) + || extras.getBoolean(ContentResolver.SYNC_EXTRAS_IGNORE_SETTINGS, false) + || extras.getBoolean(ContentResolver.SYNC_EXTRAS_INITIALIZE, false) + || extras.getBoolean(ContentResolver.SYNC_EXTRAS_FORCE, false) + || extras.getBoolean(ContentResolver.SYNC_EXTRAS_EXPEDITED, false)) { + throw new IllegalArgumentException("Illegal extras were set"); + } + } } } diff --git a/services/java/com/android/server/content/SyncOperation.java b/services/java/com/android/server/content/SyncOperation.java index b688535cfc1fe..d1c682bb7c1f1 100644 --- a/services/java/com/android/server/content/SyncOperation.java +++ b/services/java/com/android/server/content/SyncOperation.java @@ -97,7 +97,7 @@ public class SyncOperation implements Comparable { this.delayUntil = delayUntil; this.backoff = backoff; final long now = SystemClock.elapsedRealtime(); - // Check the extras bundle. Must occur after we set the internal bundle. + // Checks the extras bundle. Must occur after we set the internal bundle. if (runTimeFromNow < 0 || isExpedited()) { this.expedited = true; this.latestRunTime = now; From b0c41cfb6f16a68b1738132a7a330b6de9e42b04 Mon Sep 17 00:00:00 2001 From: Christopher Tate Date: Fri, 26 Jul 2013 13:11:31 -0700 Subject: [PATCH 38/55] Maintain ordering when alarm removal alters batch bounds Also: turn off verbose logging, but enable a new debugging consistency check. Bug 9965704 Change-Id: Ib20fb8b6275b77ff98291cf12a43b2a1128ab4b9 --- .../android/server/AlarmManagerService.java | 137 +++++++++++++----- 1 file changed, 99 insertions(+), 38 deletions(-) diff --git a/services/java/com/android/server/AlarmManagerService.java b/services/java/com/android/server/AlarmManagerService.java index 3840ba19e0b10..a2b4e12d0b552 100644 --- a/services/java/com/android/server/AlarmManagerService.java +++ b/services/java/com/android/server/AlarmManagerService.java @@ -42,6 +42,7 @@ import android.util.Pair; import android.util.Slog; import android.util.TimeUtils; +import java.io.ByteArrayOutputStream; import java.io.FileDescriptor; import java.io.PrintWriter; import java.text.SimpleDateFormat; @@ -81,7 +82,8 @@ class AlarmManagerService extends IAlarmManager.Stub { private static final String TAG = "AlarmManager"; private static final String ClockReceiver_TAG = "ClockReceiver"; private static final boolean localLOGV = false; - private static final boolean DEBUG_BATCH = localLOGV || true; + private static final boolean DEBUG_BATCH = localLOGV || false; + private static final boolean DEBUG_VALIDATE = localLOGV || true; private static final int ALARM_EVENT = 1; private static final String TIMEZONE_PROPERTY = "persist.sys.timezone"; @@ -367,33 +369,27 @@ class AlarmManagerService extends IAlarmManager.Stub { // The RTC clock has moved arbitrarily, so we need to recalculate all the batching void rebatchAllAlarms() { - if (DEBUG_BATCH) { - Slog.v(TAG, "RTC changed; rebatching"); - } synchronized (mLock) { - ArrayList oldSet = (ArrayList) mAlarmBatches.clone(); - mAlarmBatches.clear(); - final long nowElapsed = SystemClock.elapsedRealtime(); - for (Batch batch : oldSet) { - final int N = batch.size(); - for (int i = 0; i < N; i++) { - Alarm a = batch.get(i); - long whenElapsed = convertToElapsed(a.when, a.type); - long maxElapsed = (a.whenElapsed == a.maxWhen) - ? whenElapsed - : maxTriggerTime(nowElapsed, whenElapsed, a.repeatInterval); - if (batch.standalone) { - // this will also be the only alarm in the batch - a = new Alarm(a.type, a.when, whenElapsed, maxElapsed, - a.repeatInterval, a.operation); - Batch newBatch = new Batch(a); - newBatch.standalone = true; - addBatchLocked(mAlarmBatches, newBatch); - } else { - setImplLocked(a.type, a.when, whenElapsed, maxElapsed, - a.repeatInterval, a.operation, false); - } - } + rebatchAllAlarmsLocked(true); + } + } + + void rebatchAllAlarmsLocked(boolean doValidate) { + ArrayList oldSet = (ArrayList) mAlarmBatches.clone(); + mAlarmBatches.clear(); + final long nowElapsed = SystemClock.elapsedRealtime(); + final int oldBatches = oldSet.size(); + for (int batchNum = 0; batchNum < oldBatches; batchNum++) { + Batch batch = oldSet.get(batchNum); + final int N = batch.size(); + for (int i = 0; i < N; i++) { + Alarm a = batch.get(i); + long whenElapsed = convertToElapsed(a.when, a.type); + long maxElapsed = (a.whenElapsed == a.maxWhen) + ? whenElapsed + : maxTriggerTime(nowElapsed, whenElapsed, a.repeatInterval); + setImplLocked(a.type, a.when, whenElapsed, maxElapsed, + a.repeatInterval, a.operation, batch.standalone, doValidate); } } } @@ -544,23 +540,20 @@ class AlarmManagerService extends IAlarmManager.Stub { + " interval=" + interval + " standalone=" + isStandalone); } setImplLocked(type, triggerAtTime, triggerElapsed, maxElapsed, - interval, operation, isStandalone); + interval, operation, isStandalone, true); } } private void setImplLocked(int type, long when, long whenElapsed, long maxWhen, long interval, - PendingIntent operation, boolean isStandalone) { + PendingIntent operation, boolean isStandalone, boolean doValidate) { Alarm a = new Alarm(type, when, whenElapsed, maxWhen, interval, operation); removeLocked(operation); - final boolean reschedule; + boolean reschedule; int whichBatch = (isStandalone) ? -1 : attemptCoalesceLocked(whenElapsed, maxWhen); if (whichBatch < 0) { Batch batch = new Batch(a); batch.standalone = isStandalone; - if (DEBUG_BATCH) { - Slog.v(TAG, "Starting new alarm batch " + batch); - } reschedule = addBatchLocked(mAlarmBatches, batch); } else { Batch batch = mAlarmBatches.get(whichBatch); @@ -573,11 +566,52 @@ class AlarmManagerService extends IAlarmManager.Stub { } } + if (DEBUG_VALIDATE) { + if (doValidate && validateConsistencyLocked()) { + rebatchAllAlarmsLocked(false); + reschedule = true; + } + } + if (reschedule) { rescheduleKernelAlarmsLocked(); } } + private void logBatchesLocked() { + ByteArrayOutputStream bs = new ByteArrayOutputStream(2048); + PrintWriter pw = new PrintWriter(bs); + final long nowRTC = System.currentTimeMillis(); + final long nowELAPSED = SystemClock.elapsedRealtime(); + final int NZ = mAlarmBatches.size(); + for (int iz = 0; iz < NZ; iz++) { + Batch bz = mAlarmBatches.get(iz); + Slog.v(TAG, "Batch " + iz + ": " + bz); + dumpAlarmList(pw, bz.alarms, " ", nowELAPSED, nowRTC); + Slog.v(TAG, bs.toString()); + bs.reset(); + } + } + + private boolean validateConsistencyLocked() { + if (DEBUG_VALIDATE) { + long lastTime = Long.MIN_VALUE; + final int N = mAlarmBatches.size(); + for (int i = 0; i < N; i++) { + Batch b = mAlarmBatches.get(i); + if (b.start >= lastTime) { + // duplicate start times are okay because of standalone batches + lastTime = b.start; + } else { + Slog.e(TAG, "CONSISTENCY FAILURE: Batch " + i + " is out of order"); + logBatchesLocked(); + return false; + } + } + } + return true; + } + private Batch findFirstWakeupBatchLocked() { final int N = mAlarmBatches.size(); for (int i = 0; i < N; i++) { @@ -663,33 +697,60 @@ class AlarmManagerService extends IAlarmManager.Stub { } public void removeLocked(PendingIntent operation) { + boolean didRemove = false; for (int i = mAlarmBatches.size() - 1; i >= 0; i--) { Batch b = mAlarmBatches.get(i); - b.remove(operation); + didRemove |= b.remove(operation); if (b.size() == 0) { mAlarmBatches.remove(i); } } + + if (didRemove) { + if (DEBUG_BATCH) { + Slog.v(TAG, "remove(operation) changed bounds; rebatching"); + } + rebatchAllAlarmsLocked(true); + rescheduleKernelAlarmsLocked(); + } } public void removeLocked(String packageName) { + boolean didRemove = false; for (int i = mAlarmBatches.size() - 1; i >= 0; i--) { Batch b = mAlarmBatches.get(i); - b.remove(packageName); + didRemove |= b.remove(packageName); if (b.size() == 0) { mAlarmBatches.remove(i); } } + + if (didRemove) { + if (DEBUG_BATCH) { + Slog.v(TAG, "remove(package) changed bounds; rebatching"); + } + rebatchAllAlarmsLocked(true); + rescheduleKernelAlarmsLocked(); + } } public void removeUserLocked(int userHandle) { + boolean didRemove = false; for (int i = mAlarmBatches.size() - 1; i >= 0; i--) { Batch b = mAlarmBatches.get(i); - b.remove(userHandle); + didRemove |= b.remove(userHandle); if (b.size() == 0) { mAlarmBatches.remove(i); } } + + if (didRemove) { + if (DEBUG_BATCH) { + Slog.v(TAG, "remove(user) changed bounds; rebatching"); + } + rebatchAllAlarmsLocked(true); + rescheduleKernelAlarmsLocked(); + } } public boolean lookForPackageLocked(String packageName) { @@ -962,7 +1023,7 @@ class AlarmManagerService extends IAlarmManager.Stub { final long nextElapsed = alarm.whenElapsed + delta; setImplLocked(alarm.type, alarm.when + delta, nextElapsed, maxTriggerTime(nowELAPSED, nextElapsed, alarm.repeatInterval), - alarm.repeatInterval, alarm.operation, batch.standalone); + alarm.repeatInterval, alarm.operation, batch.standalone, true); } } @@ -1067,7 +1128,7 @@ class AlarmManagerService extends IAlarmManager.Stub { if ((result & TIME_CHANGED_MASK) != 0) { if (DEBUG_BATCH) { - Slog.v(TAG, "Time changed notification from kernel"); + Slog.v(TAG, "Time changed notification from kernel; rebatching"); } remove(mTimeTickSender); rebatchAllAlarms(); From 2ae5999e861dfb16b616c69c055d2ec55f84a05e Mon Sep 17 00:00:00 2001 From: Christopher Tate Date: Mon, 29 Jul 2013 16:23:05 -0700 Subject: [PATCH 39/55] Turn off Alarm Manager logspew pending a more friendly implementation Bug 10055940 Change-Id: I75bcbdf6177f5faa41f420518513a22f47bcac5e --- services/java/com/android/server/AlarmManagerService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/java/com/android/server/AlarmManagerService.java b/services/java/com/android/server/AlarmManagerService.java index a2b4e12d0b552..39c0bddf2dcb0 100644 --- a/services/java/com/android/server/AlarmManagerService.java +++ b/services/java/com/android/server/AlarmManagerService.java @@ -83,7 +83,7 @@ class AlarmManagerService extends IAlarmManager.Stub { private static final String ClockReceiver_TAG = "ClockReceiver"; private static final boolean localLOGV = false; private static final boolean DEBUG_BATCH = localLOGV || false; - private static final boolean DEBUG_VALIDATE = localLOGV || true; + private static final boolean DEBUG_VALIDATE = localLOGV || false; private static final int ALARM_EVENT = 1; private static final String TIMEZONE_PROPERTY = "persist.sys.timezone"; From 63debb8a5a74c5b30fb3748f7a790953bfb71869 Mon Sep 17 00:00:00 2001 From: Christopher Tate Date: Mon, 29 Jul 2013 14:20:15 -0700 Subject: [PATCH 40/55] Fix permission privilege w.r.t. updated system apps Note that it is *intentional* that even a privileged app cannot add new privileged permissions via unbundled update. The set of privileged permissions granted is strictly limited to those used by the apk file installed as privileged. Bug 10027033 Change-Id: I974bae0671c1962e4526d51dd9a0c53bcd27323e --- .../java/com/android/server/pm/PackageManagerService.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/services/java/com/android/server/pm/PackageManagerService.java b/services/java/com/android/server/pm/PackageManagerService.java index 7a01219938937..cd2dc211273f5 100755 --- a/services/java/com/android/server/pm/PackageManagerService.java +++ b/services/java/com/android/server/pm/PackageManagerService.java @@ -5383,7 +5383,7 @@ public class PackageManagerService extends IPackageManager.Stub { == PackageManager.SIGNATURE_MATCH); if (!allowed && (bp.protectionLevel & PermissionInfo.PROTECTION_FLAG_SYSTEM) != 0) { - if (isPrivilegedApp(pkg)) { + if (isSystemApp(pkg)) { // For updated system applications, a system permission // is granted only if it had been defined by the original application. if (isUpdatedSystemApp(pkg)) { @@ -5391,7 +5391,11 @@ public class PackageManagerService extends IPackageManager.Stub { .getDisabledSystemPkgLPr(pkg.packageName); final GrantedPermissions origGp = sysPs.sharedUser != null ? sysPs.sharedUser : sysPs; + if (origGp.grantedPermissions.contains(perm)) { + // If the original was granted this permission, we take + // that grant decision as read and propagate it to the + // update. allowed = true; } else { // The system apk may have been updated with an older @@ -5413,7 +5417,7 @@ public class PackageManagerService extends IPackageManager.Stub { } } } else { - allowed = true; + allowed = isPrivilegedApp(pkg); } } } From 7d9f8be82543f08b71662e5bd939c5482b102185 Mon Sep 17 00:00:00 2001 From: Ben Murdoch Date: Wed, 31 Jul 2013 11:27:33 +0000 Subject: [PATCH 41/55] Revert "Flag-flip: set chromium to be the default WebView" We need to wait until GMail corruption fix is in. This reverts commit 6716bd3375c647f43a1c332a0d1b027223611610. Change-Id: Ie3c335e18901d24d878f81fb76b7065520fa32e5 --- core/java/android/webkit/WebViewFactory.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/java/android/webkit/WebViewFactory.java b/core/java/android/webkit/WebViewFactory.java index 7e6bac46595aa..d924447907fc8 100644 --- a/core/java/android/webkit/WebViewFactory.java +++ b/core/java/android/webkit/WebViewFactory.java @@ -28,7 +28,7 @@ import android.util.Log; * @hide */ public final class WebViewFactory { - private static final boolean DEFAULT_TO_EXPERIMENTAL_WEBVIEW = true; + private static final boolean DEFAULT_TO_EXPERIMENTAL_WEBVIEW = false; private static final String EXPERIMENTAL_PROPERTY_DEFAULT_OFF = "persist.sys.webview.exp"; private static final String EXPERIMENTAL_PROPERTY_DEFAULT_ON = "persist.sys.webview.exp_on"; From 7c8f6edc63794273235029bab465166f3f12986c Mon Sep 17 00:00:00 2001 From: Christopher Tate Date: Wed, 31 Jul 2013 13:01:02 -0700 Subject: [PATCH 42/55] Don't try to do the work if there isn't any data. Bug 10056484 Change-Id: I527f592b0bb91bfbfff1d52c3327fe9e2ac53471 --- .../android/server/AlarmManagerService.java | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/services/java/com/android/server/AlarmManagerService.java b/services/java/com/android/server/AlarmManagerService.java index 1ba79ae808d00..dc8fab6135b25 100644 --- a/services/java/com/android/server/AlarmManagerService.java +++ b/services/java/com/android/server/AlarmManagerService.java @@ -640,15 +640,17 @@ class AlarmManagerService extends IAlarmManager.Stub { private void rescheduleKernelAlarmsLocked() { // Schedule the next upcoming wakeup alarm. If there is a deliverable batch // prior to that which contains no wakeups, we schedule that as well. - final Batch firstWakeup = findFirstWakeupBatchLocked(); - final Batch firstBatch = mAlarmBatches.get(0); - if (firstWakeup != null && mNextWakeup != firstWakeup.start) { - mNextWakeup = firstWakeup.start; - setLocked(ELAPSED_REALTIME_WAKEUP, firstWakeup.start); - } - if (firstBatch != firstWakeup && mNextNonWakeup != firstBatch.start) { - mNextNonWakeup = firstBatch.start; - setLocked(ELAPSED_REALTIME, firstBatch.start); + if (mAlarmBatches.size() > 0) { + final Batch firstWakeup = findFirstWakeupBatchLocked(); + final Batch firstBatch = mAlarmBatches.get(0); + if (firstWakeup != null && mNextWakeup != firstWakeup.start) { + mNextWakeup = firstWakeup.start; + setLocked(ELAPSED_REALTIME_WAKEUP, firstWakeup.start); + } + if (firstBatch != firstWakeup && mNextNonWakeup != firstBatch.start) { + mNextNonWakeup = firstBatch.start; + setLocked(ELAPSED_REALTIME, firstBatch.start); + } } } From ee6a0c766735ff7e71fb41905c362ed22500ded5 Mon Sep 17 00:00:00 2001 From: Ben Murdoch Date: Thu, 1 Aug 2013 12:14:53 +0000 Subject: [PATCH 43/55] Revert "Revert "Flag-flip: set chromium to be the default WebView"" Turn the flag back on. This reverts commit c9f10b6be981ed4b0c4b2f0e2409d0626a3d4016. Change-Id: I1a77bdf7f59a6868fd8ab30687062f34fc914bc6 --- core/java/android/webkit/WebViewFactory.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/java/android/webkit/WebViewFactory.java b/core/java/android/webkit/WebViewFactory.java index d924447907fc8..7e6bac46595aa 100644 --- a/core/java/android/webkit/WebViewFactory.java +++ b/core/java/android/webkit/WebViewFactory.java @@ -28,7 +28,7 @@ import android.util.Log; * @hide */ public final class WebViewFactory { - private static final boolean DEFAULT_TO_EXPERIMENTAL_WEBVIEW = false; + private static final boolean DEFAULT_TO_EXPERIMENTAL_WEBVIEW = true; private static final String EXPERIMENTAL_PROPERTY_DEFAULT_OFF = "persist.sys.webview.exp"; private static final String EXPERIMENTAL_PROPERTY_DEFAULT_ON = "persist.sys.webview.exp_on"; From d541f3af225b33c62d62ae40204aed7b84809832 Mon Sep 17 00:00:00 2001 From: Amith Yamasani Date: Mon, 5 Aug 2013 10:55:28 -0700 Subject: [PATCH 44/55] Don't check for valid fragment when switching to another fragment Bug: 10184429 Change-Id: I09b39682d907a1cd7ce140e0be0faaddfaba6bd1 --- core/java/android/preference/PreferenceActivity.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/core/java/android/preference/PreferenceActivity.java b/core/java/android/preference/PreferenceActivity.java index 3e387d7b85799..160ec8a4aa34d 100644 --- a/core/java/android/preference/PreferenceActivity.java +++ b/core/java/android/preference/PreferenceActivity.java @@ -1282,7 +1282,7 @@ public abstract class PreferenceActivity extends ListActivity implements } /** - * Start a new fragment containing a preference panel. If the prefences + * Start a new fragment containing a preference panel. If the preferences * are being displayed in multi-pane mode, the given fragment class will * be instantiated and placed in the appropriate pane. If running in * single-pane mode, a new activity will be launched in which to show the @@ -1305,10 +1305,6 @@ public abstract class PreferenceActivity extends ListActivity implements if (mSinglePane) { startWithFragment(fragmentClass, args, resultTo, resultRequestCode, titleRes, 0); } else { - if (!isValidFragment(fragmentClass)) { - throw new IllegalArgumentException("Invalid fragment for this activity: " - + fragmentClass); - } Fragment f = Fragment.instantiate(this, fragmentClass, args); if (resultTo != null) { f.setTargetFragment(resultTo, resultRequestCode); From 88b413270fb0f40aa1227e729c3ba4e25d062eee Mon Sep 17 00:00:00 2001 From: Fabrice Di Meglio Date: Mon, 5 Aug 2013 12:48:14 -0700 Subject: [PATCH 45/55] Fix bug #10185976 Black patch displaying in place of drop down spinner across apps This CL introduced the regression from https://googleplex-android-review.git.corp.google.com/#/c/336753/ - use "nine-patch" instead of "bitmap" where needed - fix also a file naming issue Change-Id: Ib28c3622809e55fc3ed543e6ef34cc3df3421510 --- ...ove_.9.png => popup_inline_error_above_am.9.png} | Bin core/res/res/drawable/popup_inline_error.xml | 4 ++-- core/res/res/drawable/popup_inline_error_above.xml | 4 ++-- .../drawable/popup_inline_error_above_holo_dark.xml | 4 ++-- .../popup_inline_error_above_holo_light.xml | 4 ++-- .../res/drawable/popup_inline_error_holo_dark.xml | 4 ++-- .../res/drawable/popup_inline_error_holo_light.xml | 4 ++-- .../quickcontact_badge_overlay_focused_dark.xml | 4 ++-- .../quickcontact_badge_overlay_focused_light.xml | 4 ++-- .../quickcontact_badge_overlay_normal_dark.xml | 4 ++-- .../quickcontact_badge_overlay_normal_light.xml | 4 ++-- .../quickcontact_badge_overlay_pressed_dark.xml | 4 ++-- .../quickcontact_badge_overlay_pressed_light.xml | 4 ++-- .../res/drawable/spinner_ab_default_holo_dark.xml | 4 ++-- .../res/drawable/spinner_ab_default_holo_light.xml | 4 ++-- .../res/drawable/spinner_ab_disabled_holo_dark.xml | 4 ++-- .../res/drawable/spinner_ab_disabled_holo_light.xml | 4 ++-- .../res/drawable/spinner_ab_focused_holo_dark.xml | 4 ++-- .../res/drawable/spinner_ab_focused_holo_light.xml | 4 ++-- .../res/drawable/spinner_ab_pressed_holo_dark.xml | 4 ++-- .../res/drawable/spinner_ab_pressed_holo_light.xml | 4 ++-- core/res/res/drawable/spinner_default_holo_dark.xml | 4 ++-- .../res/res/drawable/spinner_default_holo_light.xml | 4 ++-- .../res/res/drawable/spinner_disabled_holo_dark.xml | 4 ++-- .../res/drawable/spinner_disabled_holo_light.xml | 4 ++-- core/res/res/drawable/spinner_focused_holo_dark.xml | 4 ++-- .../res/res/drawable/spinner_focused_holo_light.xml | 4 ++-- core/res/res/drawable/spinner_pressed_holo_dark.xml | 4 ++-- .../res/res/drawable/spinner_pressed_holo_light.xml | 4 ++-- 29 files changed, 56 insertions(+), 56 deletions(-) rename core/res/res/drawable-ldpi/{popup_inline_error_above_.9.png => popup_inline_error_above_am.9.png} (100%) diff --git a/core/res/res/drawable-ldpi/popup_inline_error_above_.9.png b/core/res/res/drawable-ldpi/popup_inline_error_above_am.9.png similarity index 100% rename from core/res/res/drawable-ldpi/popup_inline_error_above_.9.png rename to core/res/res/drawable-ldpi/popup_inline_error_above_am.9.png diff --git a/core/res/res/drawable/popup_inline_error.xml b/core/res/res/drawable/popup_inline_error.xml index 1bba674c72a04..d74678b3623c7 100644 --- a/core/res/res/drawable/popup_inline_error.xml +++ b/core/res/res/drawable/popup_inline_error.xml @@ -17,7 +17,7 @@ */ --> - - + diff --git a/core/res/res/drawable/popup_inline_error_above.xml b/core/res/res/drawable/popup_inline_error_above.xml index 5dc7ca212bcba..4be5a3eb1ba65 100644 --- a/core/res/res/drawable/popup_inline_error_above.xml +++ b/core/res/res/drawable/popup_inline_error_above.xml @@ -17,7 +17,7 @@ */ --> - - + diff --git a/core/res/res/drawable/popup_inline_error_above_holo_dark.xml b/core/res/res/drawable/popup_inline_error_above_holo_dark.xml index 4b4cb053a99c4..70511b8d81b61 100644 --- a/core/res/res/drawable/popup_inline_error_above_holo_dark.xml +++ b/core/res/res/drawable/popup_inline_error_above_holo_dark.xml @@ -17,7 +17,7 @@ */ --> - - + diff --git a/core/res/res/drawable/popup_inline_error_above_holo_light.xml b/core/res/res/drawable/popup_inline_error_above_holo_light.xml index 4a0f53ee455ea..0cf8974fbb42b 100644 --- a/core/res/res/drawable/popup_inline_error_above_holo_light.xml +++ b/core/res/res/drawable/popup_inline_error_above_holo_light.xml @@ -17,7 +17,7 @@ */ --> - - + diff --git a/core/res/res/drawable/popup_inline_error_holo_dark.xml b/core/res/res/drawable/popup_inline_error_holo_dark.xml index cce73f5d5bd93..16cfe79f2b7f3 100644 --- a/core/res/res/drawable/popup_inline_error_holo_dark.xml +++ b/core/res/res/drawable/popup_inline_error_holo_dark.xml @@ -17,7 +17,7 @@ */ --> - - + diff --git a/core/res/res/drawable/popup_inline_error_holo_light.xml b/core/res/res/drawable/popup_inline_error_holo_light.xml index f1fce4e588f23..1725a22c64015 100644 --- a/core/res/res/drawable/popup_inline_error_holo_light.xml +++ b/core/res/res/drawable/popup_inline_error_holo_light.xml @@ -17,7 +17,7 @@ */ --> - - + diff --git a/core/res/res/drawable/quickcontact_badge_overlay_focused_dark.xml b/core/res/res/drawable/quickcontact_badge_overlay_focused_dark.xml index 51a02158bb3db..21fb9327fd008 100644 --- a/core/res/res/drawable/quickcontact_badge_overlay_focused_dark.xml +++ b/core/res/res/drawable/quickcontact_badge_overlay_focused_dark.xml @@ -17,7 +17,7 @@ */ --> - - + diff --git a/core/res/res/drawable/quickcontact_badge_overlay_focused_light.xml b/core/res/res/drawable/quickcontact_badge_overlay_focused_light.xml index 9261ab888a3a1..04f97cdd53667 100644 --- a/core/res/res/drawable/quickcontact_badge_overlay_focused_light.xml +++ b/core/res/res/drawable/quickcontact_badge_overlay_focused_light.xml @@ -17,7 +17,7 @@ */ --> - - + diff --git a/core/res/res/drawable/quickcontact_badge_overlay_normal_dark.xml b/core/res/res/drawable/quickcontact_badge_overlay_normal_dark.xml index 9a1f8b1618a92..ff17781d438f2 100644 --- a/core/res/res/drawable/quickcontact_badge_overlay_normal_dark.xml +++ b/core/res/res/drawable/quickcontact_badge_overlay_normal_dark.xml @@ -17,7 +17,7 @@ */ --> - - + diff --git a/core/res/res/drawable/quickcontact_badge_overlay_normal_light.xml b/core/res/res/drawable/quickcontact_badge_overlay_normal_light.xml index 62c8f34bb9577..148354dc761d5 100644 --- a/core/res/res/drawable/quickcontact_badge_overlay_normal_light.xml +++ b/core/res/res/drawable/quickcontact_badge_overlay_normal_light.xml @@ -17,7 +17,7 @@ */ --> - - + diff --git a/core/res/res/drawable/quickcontact_badge_overlay_pressed_dark.xml b/core/res/res/drawable/quickcontact_badge_overlay_pressed_dark.xml index 796bf4b48ec35..9ca8a88e5340a 100644 --- a/core/res/res/drawable/quickcontact_badge_overlay_pressed_dark.xml +++ b/core/res/res/drawable/quickcontact_badge_overlay_pressed_dark.xml @@ -17,7 +17,7 @@ */ --> - - + diff --git a/core/res/res/drawable/quickcontact_badge_overlay_pressed_light.xml b/core/res/res/drawable/quickcontact_badge_overlay_pressed_light.xml index ff5d0793dee24..d2236e27d6d49 100644 --- a/core/res/res/drawable/quickcontact_badge_overlay_pressed_light.xml +++ b/core/res/res/drawable/quickcontact_badge_overlay_pressed_light.xml @@ -17,7 +17,7 @@ */ --> - - + diff --git a/core/res/res/drawable/spinner_ab_default_holo_dark.xml b/core/res/res/drawable/spinner_ab_default_holo_dark.xml index 2ccbbb7c31805..b0cc0062170e9 100644 --- a/core/res/res/drawable/spinner_ab_default_holo_dark.xml +++ b/core/res/res/drawable/spinner_ab_default_holo_dark.xml @@ -17,7 +17,7 @@ */ --> - - + diff --git a/core/res/res/drawable/spinner_ab_default_holo_light.xml b/core/res/res/drawable/spinner_ab_default_holo_light.xml index 88a299f3b58c9..48d1fcb569f99 100644 --- a/core/res/res/drawable/spinner_ab_default_holo_light.xml +++ b/core/res/res/drawable/spinner_ab_default_holo_light.xml @@ -17,7 +17,7 @@ */ --> - - + diff --git a/core/res/res/drawable/spinner_ab_disabled_holo_dark.xml b/core/res/res/drawable/spinner_ab_disabled_holo_dark.xml index 45ad7b2b14d8b..60926a7d13da0 100644 --- a/core/res/res/drawable/spinner_ab_disabled_holo_dark.xml +++ b/core/res/res/drawable/spinner_ab_disabled_holo_dark.xml @@ -17,7 +17,7 @@ */ --> - - + diff --git a/core/res/res/drawable/spinner_ab_disabled_holo_light.xml b/core/res/res/drawable/spinner_ab_disabled_holo_light.xml index d4d7dfec2843c..668212cadd1dc 100644 --- a/core/res/res/drawable/spinner_ab_disabled_holo_light.xml +++ b/core/res/res/drawable/spinner_ab_disabled_holo_light.xml @@ -17,7 +17,7 @@ */ --> - - + diff --git a/core/res/res/drawable/spinner_ab_focused_holo_dark.xml b/core/res/res/drawable/spinner_ab_focused_holo_dark.xml index 987109ab7c50f..ff82bcedb0202 100644 --- a/core/res/res/drawable/spinner_ab_focused_holo_dark.xml +++ b/core/res/res/drawable/spinner_ab_focused_holo_dark.xml @@ -17,7 +17,7 @@ */ --> - - + diff --git a/core/res/res/drawable/spinner_ab_focused_holo_light.xml b/core/res/res/drawable/spinner_ab_focused_holo_light.xml index 0944c50270f19..19ac864d56517 100644 --- a/core/res/res/drawable/spinner_ab_focused_holo_light.xml +++ b/core/res/res/drawable/spinner_ab_focused_holo_light.xml @@ -17,7 +17,7 @@ */ --> - - + diff --git a/core/res/res/drawable/spinner_ab_pressed_holo_dark.xml b/core/res/res/drawable/spinner_ab_pressed_holo_dark.xml index 5aa808c3b63ca..baad9f0758c7b 100644 --- a/core/res/res/drawable/spinner_ab_pressed_holo_dark.xml +++ b/core/res/res/drawable/spinner_ab_pressed_holo_dark.xml @@ -17,7 +17,7 @@ */ --> - - + diff --git a/core/res/res/drawable/spinner_ab_pressed_holo_light.xml b/core/res/res/drawable/spinner_ab_pressed_holo_light.xml index 143c333e25cf6..b58ee1ddba6e7 100644 --- a/core/res/res/drawable/spinner_ab_pressed_holo_light.xml +++ b/core/res/res/drawable/spinner_ab_pressed_holo_light.xml @@ -17,7 +17,7 @@ */ --> - - + diff --git a/core/res/res/drawable/spinner_default_holo_dark.xml b/core/res/res/drawable/spinner_default_holo_dark.xml index f15f3b3d17988..8d0d02071c224 100644 --- a/core/res/res/drawable/spinner_default_holo_dark.xml +++ b/core/res/res/drawable/spinner_default_holo_dark.xml @@ -17,7 +17,7 @@ */ --> - - + diff --git a/core/res/res/drawable/spinner_default_holo_light.xml b/core/res/res/drawable/spinner_default_holo_light.xml index 1aacfb9864e7a..250f2eb3651cc 100644 --- a/core/res/res/drawable/spinner_default_holo_light.xml +++ b/core/res/res/drawable/spinner_default_holo_light.xml @@ -17,7 +17,7 @@ */ --> - - + diff --git a/core/res/res/drawable/spinner_disabled_holo_dark.xml b/core/res/res/drawable/spinner_disabled_holo_dark.xml index de58ef3a8abd5..c7efa8b26ff80 100644 --- a/core/res/res/drawable/spinner_disabled_holo_dark.xml +++ b/core/res/res/drawable/spinner_disabled_holo_dark.xml @@ -17,7 +17,7 @@ */ --> - - + diff --git a/core/res/res/drawable/spinner_disabled_holo_light.xml b/core/res/res/drawable/spinner_disabled_holo_light.xml index a854a03144239..772154be50d8b 100644 --- a/core/res/res/drawable/spinner_disabled_holo_light.xml +++ b/core/res/res/drawable/spinner_disabled_holo_light.xml @@ -17,7 +17,7 @@ */ --> - - + diff --git a/core/res/res/drawable/spinner_focused_holo_dark.xml b/core/res/res/drawable/spinner_focused_holo_dark.xml index 28985a6948a4a..9758fa36bb179 100644 --- a/core/res/res/drawable/spinner_focused_holo_dark.xml +++ b/core/res/res/drawable/spinner_focused_holo_dark.xml @@ -17,7 +17,7 @@ */ --> - - + diff --git a/core/res/res/drawable/spinner_focused_holo_light.xml b/core/res/res/drawable/spinner_focused_holo_light.xml index 7c0d309c9f187..e3f71080fb534 100644 --- a/core/res/res/drawable/spinner_focused_holo_light.xml +++ b/core/res/res/drawable/spinner_focused_holo_light.xml @@ -17,7 +17,7 @@ */ --> - - + diff --git a/core/res/res/drawable/spinner_pressed_holo_dark.xml b/core/res/res/drawable/spinner_pressed_holo_dark.xml index 45818a0a96ed5..ab98514d7eb0f 100644 --- a/core/res/res/drawable/spinner_pressed_holo_dark.xml +++ b/core/res/res/drawable/spinner_pressed_holo_dark.xml @@ -17,7 +17,7 @@ */ --> - - + diff --git a/core/res/res/drawable/spinner_pressed_holo_light.xml b/core/res/res/drawable/spinner_pressed_holo_light.xml index c81f8a6a46d72..6be4785fa8eb0 100644 --- a/core/res/res/drawable/spinner_pressed_holo_light.xml +++ b/core/res/res/drawable/spinner_pressed_holo_light.xml @@ -17,7 +17,7 @@ */ --> - - + From 31a22226b569ffc87dcd2a8a31e223b95eba3b5d Mon Sep 17 00:00:00 2001 From: David Christie Date: Mon, 5 Aug 2013 13:32:13 -0700 Subject: [PATCH 46/55] Revert icon changes in "Modify quicksettings to have new location behavior." (b/10184973) This reverts icon changes in commit 03ed0127dae141d99b003ede9ba3ea937128e471. Change-Id: I78e3af4a745dd4f182369edd9df9c296854e7762 --- .../res/drawable-hdpi/ic_qs_airplane_off.png | Bin 1861 -> 1883 bytes .../res/drawable-hdpi/ic_qs_airplane_on.png | Bin 1714 -> 1888 bytes .../res/drawable-hdpi/ic_qs_alarm_on.png | Bin 1830 -> 2064 bytes .../res/drawable-hdpi/ic_qs_auto_rotate.png | Bin 1747 -> 1701 bytes .../res/drawable-hdpi/ic_qs_battery_100.png | Bin 680 -> 689 bytes .../res/drawable-hdpi/ic_qs_battery_28.png | Bin 868 -> 896 bytes .../res/drawable-hdpi/ic_qs_battery_43.png | Bin 867 -> 895 bytes .../res/drawable-hdpi/ic_qs_battery_57.png | Bin 869 -> 896 bytes .../res/drawable-hdpi/ic_qs_battery_71.png | Bin 915 -> 916 bytes .../res/drawable-hdpi/ic_qs_battery_85.png | Bin 866 -> 894 bytes .../res/drawable-hdpi/ic_qs_battery_blue.png | Bin 680 -> 0 bytes .../ic_qs_battery_charge_100.png | Bin 1402 -> 1438 bytes .../drawable-hdpi/ic_qs_battery_charge_28.png | Bin 1624 -> 1681 bytes .../drawable-hdpi/ic_qs_battery_charge_43.png | Bin 1607 -> 1667 bytes .../drawable-hdpi/ic_qs_battery_charge_57.png | Bin 1590 -> 1661 bytes .../drawable-hdpi/ic_qs_battery_charge_71.png | Bin 1619 -> 1672 bytes .../drawable-hdpi/ic_qs_battery_charge_85.png | Bin 1560 -> 1613 bytes .../res/drawable-hdpi/ic_qs_bluetooth_off.png | Bin 2173 -> 2177 bytes .../res/drawable-hdpi/ic_qs_bluetooth_on.png | Bin 1907 -> 1937 bytes .../ic_qs_brightness_auto_off.png | Bin 2394 -> 2372 bytes .../ic_qs_brightness_auto_on.png | Bin 2214 -> 2194 bytes .../res/drawable-hdpi/ic_qs_clock_circle.png | Bin 1639 -> 1606 bytes .../res/drawable-hdpi/ic_qs_clock_hour.png | Bin 491 -> 489 bytes .../res/drawable-hdpi/ic_qs_clock_minute.png | Bin 499 -> 491 bytes .../res/drawable-hdpi/ic_qs_ethernet.png | Bin 1090 -> 0 bytes .../SystemUI/res/drawable-hdpi/ic_qs_ime.png | Bin 1321 -> 1274 bytes .../res/drawable-hdpi/ic_qs_location.png | Bin 0 -> 1911 bytes .../res/drawable-hdpi/ic_qs_mirroring.png | Bin 1434 -> 0 bytes .../ic_qs_mirroring_notconnected.png | Bin 1496 -> 0 bytes .../drawable-hdpi/ic_qs_remote_display.png | Bin 1101 -> 1096 bytes .../ic_qs_remote_display_connected.png | Bin 1101 -> 1100 bytes .../drawable-hdpi/ic_qs_rotation_locked.png | Bin 1451 -> 1632 bytes .../res/drawable-hdpi/ic_qs_settings.png | Bin 1490 -> 1522 bytes .../res/drawable-hdpi/ic_qs_signal_1.png | Bin 1049 -> 1082 bytes .../res/drawable-hdpi/ic_qs_signal_1x.png | Bin 965 -> 969 bytes .../res/drawable-hdpi/ic_qs_signal_2.png | Bin 1058 -> 1094 bytes .../res/drawable-hdpi/ic_qs_signal_3.png | Bin 1049 -> 1080 bytes .../res/drawable-hdpi/ic_qs_signal_3g.png | Bin 1134 -> 1145 bytes .../res/drawable-hdpi/ic_qs_signal_4.png | Bin 989 -> 1010 bytes .../res/drawable-hdpi/ic_qs_signal_4g.png | Bin 1088 -> 1092 bytes .../res/drawable-hdpi/ic_qs_signal_e.png | Bin 654 -> 657 bytes .../res/drawable-hdpi/ic_qs_signal_full_1.png | Bin 1043 -> 1082 bytes .../drawable-hdpi/ic_qs_signal_full_1x.png | Bin 926 -> 968 bytes .../res/drawable-hdpi/ic_qs_signal_full_2.png | Bin 1052 -> 1096 bytes .../res/drawable-hdpi/ic_qs_signal_full_3.png | Bin 1050 -> 1089 bytes .../drawable-hdpi/ic_qs_signal_full_3g.png | Bin 1094 -> 1151 bytes .../res/drawable-hdpi/ic_qs_signal_full_4.png | Bin 993 -> 1015 bytes .../res/drawable-hdpi/ic_qs_signal_full_e.png | Bin 643 -> 664 bytes .../res/drawable-hdpi/ic_qs_signal_full_g.png | Bin 823 -> 850 bytes .../res/drawable-hdpi/ic_qs_signal_full_h.png | Bin 659 -> 665 bytes .../res/drawable-hdpi/ic_qs_signal_full_r.png | Bin 774 -> 774 bytes .../res/drawable-hdpi/ic_qs_signal_g.png | Bin 845 -> 845 bytes .../res/drawable-hdpi/ic_qs_signal_h.png | Bin 665 -> 663 bytes .../res/drawable-hdpi/ic_qs_signal_in.png | Bin 616 -> 624 bytes .../res/drawable-hdpi/ic_qs_signal_inout.png | Bin 792 -> 808 bytes .../drawable-hdpi/ic_qs_signal_no_signal.png | Bin 1107 -> 1109 bytes .../res/drawable-hdpi/ic_qs_signal_out.png | Bin 584 -> 585 bytes .../res/drawable-hdpi/ic_qs_signal_r.png | Bin 764 -> 771 bytes .../res/drawable-hdpi/ic_qs_usb_device.png | Bin 1483 -> 1578 bytes .../res/drawable-hdpi/ic_qs_wifi_1.png | Bin 2023 -> 2064 bytes .../res/drawable-hdpi/ic_qs_wifi_2.png | Bin 2156 -> 2164 bytes .../res/drawable-hdpi/ic_qs_wifi_3.png | Bin 2173 -> 2229 bytes .../res/drawable-hdpi/ic_qs_wifi_4.png | Bin 1919 -> 1884 bytes .../res/drawable-hdpi/ic_qs_wifi_full_1.png | Bin 2037 -> 2049 bytes .../res/drawable-hdpi/ic_qs_wifi_full_2.png | Bin 2050 -> 2128 bytes .../res/drawable-hdpi/ic_qs_wifi_full_3.png | Bin 2127 -> 2194 bytes .../res/drawable-hdpi/ic_qs_wifi_full_4.png | Bin 1732 -> 1885 bytes .../res/drawable-hdpi/ic_qs_wifi_in.png | Bin 616 -> 624 bytes .../res/drawable-hdpi/ic_qs_wifi_inout.png | Bin 792 -> 808 bytes .../drawable-hdpi/ic_qs_wifi_no_network.png | Bin 1652 -> 1596 bytes .../res/drawable-hdpi/ic_qs_wifi_out.png | Bin 584 -> 585 bytes .../res/drawable-mdpi/ic_qs_airplane_off.png | Bin 1250 -> 1250 bytes .../res/drawable-mdpi/ic_qs_airplane_on.png | Bin 1120 -> 1259 bytes .../res/drawable-mdpi/ic_qs_alarm_on.png | Bin 1196 -> 1328 bytes .../res/drawable-mdpi/ic_qs_auto_rotate.png | Bin 1251 -> 1186 bytes .../res/drawable-mdpi/ic_qs_battery_100.png | Bin 599 -> 625 bytes .../res/drawable-mdpi/ic_qs_battery_28.png | Bin 830 -> 807 bytes .../res/drawable-mdpi/ic_qs_battery_43.png | Bin 822 -> 806 bytes .../res/drawable-mdpi/ic_qs_battery_57.png | Bin 812 -> 793 bytes .../res/drawable-mdpi/ic_qs_battery_71.png | Bin 821 -> 806 bytes .../res/drawable-mdpi/ic_qs_battery_85.png | Bin 811 -> 797 bytes .../res/drawable-mdpi/ic_qs_battery_blue.png | Bin 599 -> 0 bytes .../ic_qs_battery_charge_100.png | Bin 1091 -> 1112 bytes .../drawable-mdpi/ic_qs_battery_charge_28.png | Bin 1259 -> 1345 bytes .../drawable-mdpi/ic_qs_battery_charge_43.png | Bin 1273 -> 1323 bytes .../drawable-mdpi/ic_qs_battery_charge_57.png | Bin 1221 -> 1296 bytes .../drawable-mdpi/ic_qs_battery_charge_71.png | Bin 1238 -> 1299 bytes .../drawable-mdpi/ic_qs_battery_charge_85.png | Bin 1206 -> 1262 bytes .../res/drawable-mdpi/ic_qs_bluetooth_off.png | Bin 1382 -> 1380 bytes .../res/drawable-mdpi/ic_qs_bluetooth_on.png | Bin 1282 -> 1287 bytes .../ic_qs_brightness_auto_off.png | Bin 1461 -> 1453 bytes .../ic_qs_brightness_auto_on.png | Bin 1427 -> 1416 bytes .../res/drawable-mdpi/ic_qs_clock_circle.png | Bin 1118 -> 1136 bytes .../res/drawable-mdpi/ic_qs_clock_hour.png | Bin 448 -> 448 bytes .../res/drawable-mdpi/ic_qs_clock_minute.png | Bin 441 -> 440 bytes .../res/drawable-mdpi/ic_qs_ethernet.png | Bin 944 -> 0 bytes .../SystemUI/res/drawable-mdpi/ic_qs_ime.png | Bin 964 -> 986 bytes .../res/drawable-mdpi/ic_qs_location.png | Bin 0 -> 1263 bytes .../res/drawable-mdpi/ic_qs_mirroring.png | Bin 981 -> 0 bytes .../ic_qs_mirroring_notconnected.png | Bin 1020 -> 0 bytes .../drawable-mdpi/ic_qs_remote_display.png | Bin 844 -> 849 bytes .../ic_qs_remote_display_connected.png | Bin 843 -> 855 bytes .../drawable-mdpi/ic_qs_rotation_locked.png | Bin 1052 -> 1146 bytes .../res/drawable-mdpi/ic_qs_settings.png | Bin 1165 -> 1154 bytes .../res/drawable-mdpi/ic_qs_signal_1.png | Bin 915 -> 912 bytes .../res/drawable-mdpi/ic_qs_signal_1x.png | Bin 732 -> 719 bytes .../res/drawable-mdpi/ic_qs_signal_2.png | Bin 903 -> 915 bytes .../res/drawable-mdpi/ic_qs_signal_3.png | Bin 912 -> 901 bytes .../res/drawable-mdpi/ic_qs_signal_3g.png | Bin 854 -> 842 bytes .../res/drawable-mdpi/ic_qs_signal_4.png | Bin 822 -> 832 bytes .../res/drawable-mdpi/ic_qs_signal_4g.png | Bin 781 -> 776 bytes .../res/drawable-mdpi/ic_qs_signal_e.png | Bin 574 -> 581 bytes .../res/drawable-mdpi/ic_qs_signal_full_1.png | Bin 874 -> 916 bytes .../drawable-mdpi/ic_qs_signal_full_1x.png | Bin 715 -> 724 bytes .../res/drawable-mdpi/ic_qs_signal_full_2.png | Bin 889 -> 909 bytes .../res/drawable-mdpi/ic_qs_signal_full_3.png | Bin 878 -> 910 bytes .../drawable-mdpi/ic_qs_signal_full_3g.png | Bin 808 -> 853 bytes .../res/drawable-mdpi/ic_qs_signal_full_4.png | Bin 831 -> 834 bytes .../res/drawable-mdpi/ic_qs_signal_full_e.png | Bin 571 -> 590 bytes .../res/drawable-mdpi/ic_qs_signal_full_g.png | Bin 656 -> 669 bytes .../res/drawable-mdpi/ic_qs_signal_full_h.png | Bin 546 -> 560 bytes .../res/drawable-mdpi/ic_qs_signal_full_r.png | Bin 626 -> 636 bytes .../res/drawable-mdpi/ic_qs_signal_g.png | Bin 680 -> 667 bytes .../res/drawable-mdpi/ic_qs_signal_h.png | Bin 553 -> 555 bytes .../res/drawable-mdpi/ic_qs_signal_in.png | Bin 560 -> 545 bytes .../res/drawable-mdpi/ic_qs_signal_inout.png | Bin 689 -> 674 bytes .../drawable-mdpi/ic_qs_signal_no_signal.png | Bin 840 -> 853 bytes .../res/drawable-mdpi/ic_qs_signal_out.png | Bin 535 -> 525 bytes .../res/drawable-mdpi/ic_qs_signal_r.png | Bin 651 -> 631 bytes .../res/drawable-mdpi/ic_qs_usb_device.png | Bin 1033 -> 1098 bytes .../res/drawable-mdpi/ic_qs_wifi_1.png | Bin 1374 -> 1362 bytes .../res/drawable-mdpi/ic_qs_wifi_2.png | Bin 1430 -> 1445 bytes .../res/drawable-mdpi/ic_qs_wifi_3.png | Bin 1484 -> 1492 bytes .../res/drawable-mdpi/ic_qs_wifi_4.png | Bin 1225 -> 1205 bytes .../res/drawable-mdpi/ic_qs_wifi_full_1.png | Bin 1332 -> 1350 bytes .../res/drawable-mdpi/ic_qs_wifi_full_2.png | Bin 1385 -> 1437 bytes .../res/drawable-mdpi/ic_qs_wifi_full_3.png | Bin 1432 -> 1477 bytes .../res/drawable-mdpi/ic_qs_wifi_full_4.png | Bin 1181 -> 1205 bytes .../res/drawable-mdpi/ic_qs_wifi_in.png | Bin 560 -> 545 bytes .../res/drawable-mdpi/ic_qs_wifi_inout.png | Bin 689 -> 674 bytes .../drawable-mdpi/ic_qs_wifi_no_network.png | Bin 1186 -> 1142 bytes .../res/drawable-mdpi/ic_qs_wifi_out.png | Bin 535 -> 525 bytes .../res/drawable-xhdpi/ic_qs_airplane_off.png | Bin 2583 -> 2683 bytes .../res/drawable-xhdpi/ic_qs_airplane_on.png | Bin 2307 -> 2682 bytes .../res/drawable-xhdpi/ic_qs_alarm_on.png | Bin 2724 -> 2969 bytes .../res/drawable-xhdpi/ic_qs_auto_rotate.png | Bin 2615 -> 2436 bytes .../res/drawable-xhdpi/ic_qs_battery_100.png | Bin 747 -> 750 bytes .../res/drawable-xhdpi/ic_qs_battery_28.png | Bin 1008 -> 1016 bytes .../res/drawable-xhdpi/ic_qs_battery_43.png | Bin 997 -> 1022 bytes .../res/drawable-xhdpi/ic_qs_battery_57.png | Bin 966 -> 958 bytes .../res/drawable-xhdpi/ic_qs_battery_71.png | Bin 999 -> 1023 bytes .../res/drawable-xhdpi/ic_qs_battery_85.png | Bin 997 -> 1021 bytes .../res/drawable-xhdpi/ic_qs_battery_blue.png | Bin 747 -> 0 bytes .../ic_qs_battery_charge_100.png | Bin 1649 -> 1707 bytes .../ic_qs_battery_charge_28.png | Bin 1979 -> 2066 bytes .../ic_qs_battery_charge_43.png | Bin 1942 -> 2078 bytes .../ic_qs_battery_charge_57.png | Bin 1876 -> 2001 bytes .../ic_qs_battery_charge_71.png | Bin 1877 -> 2020 bytes .../ic_qs_battery_charge_85.png | Bin 1856 -> 1972 bytes .../drawable-xhdpi/ic_qs_bluetooth_off.png | Bin 3097 -> 3048 bytes .../res/drawable-xhdpi/ic_qs_bluetooth_on.png | Bin 2684 -> 2728 bytes .../ic_qs_brightness_auto_off.png | Bin 3389 -> 3382 bytes .../ic_qs_brightness_auto_on.png | Bin 3069 -> 3054 bytes .../res/drawable-xhdpi/ic_qs_clock_circle.png | Bin 2244 -> 2244 bytes .../res/drawable-xhdpi/ic_qs_clock_hour.png | Bin 530 -> 527 bytes .../res/drawable-xhdpi/ic_qs_clock_minute.png | Bin 541 -> 543 bytes .../res/drawable-xhdpi/ic_qs_ethernet.png | Bin 1295 -> 0 bytes .../SystemUI/res/drawable-xhdpi/ic_qs_ime.png | Bin 1673 -> 1598 bytes .../res/drawable-xhdpi/ic_qs_location.png | Bin 0 -> 2659 bytes .../res/drawable-xhdpi/ic_qs_location_off.png | Bin 2713 -> 0 bytes .../res/drawable-xhdpi/ic_qs_location_on.png | Bin 2467 -> 0 bytes .../res/drawable-xhdpi/ic_qs_mirroring.png | Bin 1975 -> 0 bytes .../ic_qs_mirroring_notconnected.png | Bin 2048 -> 0 bytes .../drawable-xhdpi/ic_qs_remote_display.png | Bin 1326 -> 1322 bytes .../ic_qs_remote_display_connected.png | Bin 1327 -> 1325 bytes .../drawable-xhdpi/ic_qs_rotation_locked.png | Bin 1923 -> 2134 bytes .../res/drawable-xhdpi/ic_qs_settings.png | Bin 1858 -> 1825 bytes .../res/drawable-xhdpi/ic_qs_signal_1.png | Bin 1287 -> 1296 bytes .../res/drawable-xhdpi/ic_qs_signal_1x.png | Bin 1273 -> 1269 bytes .../res/drawable-xhdpi/ic_qs_signal_2.png | Bin 1294 -> 1306 bytes .../res/drawable-xhdpi/ic_qs_signal_3.png | Bin 1289 -> 1296 bytes .../res/drawable-xhdpi/ic_qs_signal_3g.png | Bin 1596 -> 1550 bytes .../res/drawable-xhdpi/ic_qs_signal_4.png | Bin 1259 -> 1265 bytes .../res/drawable-xhdpi/ic_qs_signal_4g.png | Bin 1457 -> 1446 bytes .../res/drawable-xhdpi/ic_qs_signal_e.png | Bin 758 -> 770 bytes .../drawable-xhdpi/ic_qs_signal_full_1.png | Bin 1285 -> 1298 bytes .../drawable-xhdpi/ic_qs_signal_full_1x.png | Bin 1260 -> 1273 bytes .../drawable-xhdpi/ic_qs_signal_full_2.png | Bin 1297 -> 1314 bytes .../drawable-xhdpi/ic_qs_signal_full_3.png | Bin 1296 -> 1295 bytes .../drawable-xhdpi/ic_qs_signal_full_3g.png | Bin 1509 -> 1555 bytes .../drawable-xhdpi/ic_qs_signal_full_4.png | Bin 1272 -> 1264 bytes .../drawable-xhdpi/ic_qs_signal_full_e.png | Bin 737 -> 775 bytes .../drawable-xhdpi/ic_qs_signal_full_g.png | Bin 1045 -> 1091 bytes .../drawable-xhdpi/ic_qs_signal_full_h.png | Bin 751 -> 762 bytes .../drawable-xhdpi/ic_qs_signal_full_r.png | Bin 982 -> 996 bytes .../res/drawable-xhdpi/ic_qs_signal_g.png | Bin 1131 -> 1086 bytes .../res/drawable-xhdpi/ic_qs_signal_h.png | Bin 754 -> 754 bytes .../res/drawable-xhdpi/ic_qs_signal_in.png | Bin 723 -> 704 bytes .../res/drawable-xhdpi/ic_qs_signal_inout.png | Bin 1001 -> 983 bytes .../drawable-xhdpi/ic_qs_signal_no_signal.png | Bin 1442 -> 1432 bytes .../res/drawable-xhdpi/ic_qs_signal_out.png | Bin 704 -> 681 bytes .../res/drawable-xhdpi/ic_qs_signal_r.png | Bin 996 -> 993 bytes .../res/drawable-xhdpi/ic_qs_usb_device.png | Bin 1906 -> 2044 bytes .../res/drawable-xhdpi/ic_qs_wifi_1.png | Bin 2795 -> 2812 bytes .../res/drawable-xhdpi/ic_qs_wifi_2.png | Bin 2881 -> 2928 bytes .../res/drawable-xhdpi/ic_qs_wifi_3.png | Bin 2981 -> 3043 bytes .../res/drawable-xhdpi/ic_qs_wifi_4.png | Bin 2652 -> 2597 bytes .../res/drawable-xhdpi/ic_qs_wifi_full_1.png | Bin 2765 -> 2795 bytes .../res/drawable-xhdpi/ic_qs_wifi_full_2.png | Bin 2832 -> 2883 bytes .../res/drawable-xhdpi/ic_qs_wifi_full_3.png | Bin 2937 -> 2998 bytes .../res/drawable-xhdpi/ic_qs_wifi_full_4.png | Bin 2389 -> 2600 bytes .../res/drawable-xhdpi/ic_qs_wifi_in.png | Bin 723 -> 704 bytes .../res/drawable-xhdpi/ic_qs_wifi_inout.png | Bin 1001 -> 983 bytes .../drawable-xhdpi/ic_qs_wifi_no_network.png | Bin 2323 -> 2267 bytes .../res/drawable-xhdpi/ic_qs_wifi_out.png | Bin 704 -> 681 bytes 215 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 packages/SystemUI/res/drawable-hdpi/ic_qs_battery_blue.png delete mode 100644 packages/SystemUI/res/drawable-hdpi/ic_qs_ethernet.png create mode 100644 packages/SystemUI/res/drawable-hdpi/ic_qs_location.png delete mode 100644 packages/SystemUI/res/drawable-hdpi/ic_qs_mirroring.png delete mode 100644 packages/SystemUI/res/drawable-hdpi/ic_qs_mirroring_notconnected.png delete mode 100644 packages/SystemUI/res/drawable-mdpi/ic_qs_battery_blue.png delete mode 100644 packages/SystemUI/res/drawable-mdpi/ic_qs_ethernet.png create mode 100644 packages/SystemUI/res/drawable-mdpi/ic_qs_location.png delete mode 100644 packages/SystemUI/res/drawable-mdpi/ic_qs_mirroring.png delete mode 100644 packages/SystemUI/res/drawable-mdpi/ic_qs_mirroring_notconnected.png delete mode 100644 packages/SystemUI/res/drawable-xhdpi/ic_qs_battery_blue.png delete mode 100644 packages/SystemUI/res/drawable-xhdpi/ic_qs_ethernet.png create mode 100644 packages/SystemUI/res/drawable-xhdpi/ic_qs_location.png delete mode 100644 packages/SystemUI/res/drawable-xhdpi/ic_qs_location_off.png delete mode 100644 packages/SystemUI/res/drawable-xhdpi/ic_qs_location_on.png delete mode 100644 packages/SystemUI/res/drawable-xhdpi/ic_qs_mirroring.png delete mode 100644 packages/SystemUI/res/drawable-xhdpi/ic_qs_mirroring_notconnected.png diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_airplane_off.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_airplane_off.png index a673762ea1945dac7fbe10752758fd39d42b0201..ab66137680ce676cfaa50574465698d62635accf 100644 GIT binary patch delta 1806 zcmV+p2l4pD4%-fpNg*Ww0Dyx40Qvs_0D$QL0Cg|`0P0`>06Lfe02gnPU&Tg|Y8-zH z6951U69E94oEQKA22e>vK~!ko?b%(ZrBxXR@Za9&Old}jlcH$qlwC9hP4PB$;YIX~ zP!fGmL`7dnP-!MbnpE1@5Pm>WF@0S`1wvUNed$F_bWya4!3x7MMx}8r3)h>m+|PO>_Ja zXaOFe%V(?iOUD{;2lxSo1^Cmj9XoJ0#vErBsK5_0$P@7nya~_6srWRm%ws0U1%V1Y zN$VHjQoKa+l(A%$yYXxs!C?6~10R}yKd#4?OlEBA_dgHtm<$(K>+u5raeRLc%UCJi zFX1S@RXnpiXTrAYaa=S_^H_q9xi7~ji(!#uR`T^vB@4i0CWt%yP}4N?a&n9-)7-k` zI@Y=zyNbC=VnZCn%kcYrKVBWwG2wfqw6za^%AbQc+(B$;nxiMhJTs&^*18f`wSbSg zhPVvZmEfDEG3c1^QhWwa$b)|m;eOnM{rF?n#J%_n9>Jh#nn??(Qc6JM>=wK5(RILI zi;v{{LDMv=ifOaJhjEP*A7Q>h3y>pt00(eKCU!gS%%mRH;$9i_3QodqDdV((57{ln z#lH&+uUa%L5HBvnXIosMp16*KQey|DTzyZrQjohB4@#NjDN>qzcUFH=UF!_;xZU`a zY4Vr>UlIsVJMe0}6fee;3xF|6xy9GoYD>#2_-7`zAGhUoE}R4Yh!hvsYDp@k%xJM7 za{^wJ7kRl3z66nrlN z9Yor!GQ=5D`TJTa37oyo8bRO}QuaF>^Y*Q^Hq;MvSf$=&--ds$NbVM{QcFDlyOg%? z!mw$Yv7WM_exTIOXf!GpTgHFz9BGH02fmc2<Uh6(gw6s^6v=Bc@_u@?#$m43&@5Ew17Ved+;jL;0z1=L8|vx=1lpF z$BjU>;f!2;iPNYEnGTvH% zj_QrfKH6+jOBqyA!E=KF>7$jf+n#6jguelGL?bWcKu6D7n+SGWf_& z@N4|4MNx5mdW)s!%JOJ5iV04})zU6{M>gec`Fp=q&p%p#-Gz(ueQB-hrGR}@(ZA;F zqmmn)U*QPl?7)o{2;}8L18>9!^7T1*g=y<}zqH95z%L~~zNFA#d|!hr3QM#F>n->M zo@CaI;CX+Qb$StqRClAa8(y4E8Ja#(+MKrK`}Y)!MCrinsX@43d3q6`_DN?u7nnBo zp@dURd*)t&95FDFnu*;~^Kx^3ACuLwQ2Os7DOj&lWw3~^VvUHOAGTNz&Qk2ieJn6+ zDa>xiTkv+t|Cg%wA+f*}_=4G%b4@8+kboac4gP=7td`G|l1P67RThf;eHh=C`r*&x zU)Gidv2YY%YmPixB<4SWpA^qxLnIxcqhBT(#)8G7;U+`;S?ZMDjNh5f+YuwrYSHvO z2?d0k)>hbFDQJBHEsKXWBJcl5a;XQc4X)FR-}I5t^sUlaQSB-_s&V}Z1c}NTV<}th zlg@u>0&FaNZr=rqI2hs|rdB9--7`)5ly&2vvzV)_5es|~zcp+2bEPxXMT)Q(_x=1` zHdb3RiOmscA+dyq@G+@0h~J)J_5`nwgthjXR;cm(Ea@+#%@e3dM1yh*zES-4sab3E z=%%VY;RtT3=HHWvl|(mAphK>bQX#34Id6XhbA${2AQRalb#s@<103~!qSaf7zbY)^X zV{&C-bY%cCFflSMFgYzUG*mG+Ix#ppF*hwRH##sd`oT(k0000bbVXQnWMOn=I&E)c wX=ZrzyJUM07*qoM6N<$f{M^+jQ{`u delta 1747 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 iWN%_+AW3auXJt}lVPtu6$z?nM0000B)t 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 TGBzzRH##sdt*(QBlivq1BAplN diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_auto_rotate.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_auto_rotate.png index 9431154352697fc8a6ea8ac0cbca80ba7b43bcba..8d45fc5119e0a096a3cc1cf661602f093216cbe3 100644 GIT binary patch delta 1490 zcmV;@1ugp14W$i`lz(+eL_t(&-qo62XdG1($A3GUG;LATmx^GK*3Ujv#V%Cw14OB! z)(5Sm7PYa`Ad2FP@#D>cifs_lhZaR`{AekHph!|frJz!18SxVz6cwrUD-SAaQoGq* zAI>@1J9lShXJ@BLdLg;HcW3VX|K^-~&$)LOPViDHqLVNTV}IK#mCF1FaKx9Ky6!@F zfPvNxug(SB6@ViwP|=HkV=5{F(FVM%*Qef7D1alN4Ag*gfOmkczzEO-OnbNW0cYy# zKY+i1s`I&7Co@PcfEe*-17pCshy@0K-429VXgP2QI0cvleg(b+J_6naesKD&qwbXk z(J?@R_`Pa@qksC8>%g4}5Cg!gD$X5$N+E`UFsn5JIw%R^M^*e`;2Pj<{d^~|LB;o| zkU-mqRD4xGuK^2ze&7J`JaDq!Q;r$GbAS}_=K((fH|yX7z{5uD_SHaKY`t1<1@Nz0 zafe#zxO12I7jBA`|;s;CrX<8HiLD${`+_ zzCMZgbeuZ{`u86)*>^bi_5iTpSx!F!pq<;q7zUoyi#8$oeO0e5nZ@#yoDjA` zeGTkGGF8yn5huu8=_%kbZF>fIln(Orw9+O{RFQfV~F%@^hAS5io^zH8<59=r?qVeaiKFv>rfqWq&o| zfpbA*6u%DmCrNzEQ}u#ZL#?nD2`KAvf{0ga(~&7ocqO;^77I8R7}yiYTHFuZrviID z@C7Q&+^?-AiW2WWxtTIJI0(%g=m>Ipwgx%g`xf{@2e#9J2a$<>Q12-r>vbP+C2%frZxR~blGYz8ZiQk(?JY>&C?dWd^*rJ0@Ad`FplKcUDha8XpNc0rio!DED zgM!`2{22poLyp!v5}yhX17X?dYGie}%CS%#$yyg8bKyGVEXO9UyE@en_kVGpd@k{A z0a73WB*oo~Ozy>cjb)J^0yolh2_J$Y#AgEVAfRd5rLbHAB4>7@(Dj{?$UpbU#EYQKn52YGA%GUEiy1vF*rIfFgh?cEigAa sFfg$MN6?dT1{WGKEigGPGB8vzI65#eIxsdZFgH3dFu+;=Y?Gn}F`kC8?EnA( delta 1573 zcmV+=2HN?h4bu&flz*d1L_t(&-qo7hZxnSD$3MH+k#hea|_+bAGe%KW~LRUNSH+5P7~*seiOT0SCU|_Ek?JM6jS+ zO^<8--dQE!fE5+=TwqLpCjtu*FX=PYq-Sy^-~g0>Nnj!H2Ji^50q6iGLXXV>PE*1M zfPaB;cfF|l)I>57hyZ^k@Q&`sfi=KOj)W=H4eSI?1V(^AfbW3-*a8eYA~oF-Nz9l) z4ESvdZd6CP3V-y+kXQ|@S8%@nQD7_ZIPiH|HA*>vAJqLG;6@$Y^MF2JH}I{Jm{d?- z1BZcYR4p6nPM}8#&Ih(DsgfyCE|&>{pb1lvlq~`LLf|(Aze54MrGPd7cc=m#3Zw)) z3OuRzm@;dCr}X$9;6vbS?JIVmQ<+c-@Hgm4cj~Cl1%F-zmh16qV53t4C9@H@9rzVE z7dQl54Lt4M-KVNq-%X}8ErAr^mjmB0)z*_pSje2Cs_g@=bpx;fcn#v z)f@yPv0u&WX5a$g6=d=&#F|hm;3IygF()&P@Us(YE-wHdAb!zr*bHZr0(pS9mQsmf zr$iO7XRO)zF<=F73h=Cv3xc4bK%U@dpu~D$6@QI+BHS$G4kBsC`M{-mt^m%2w6kJf z;Bz8j>Ba%zBRzMS?u&I6I{Fr4dw|Ufeiv|SR`9;Xq~3m>2q%En?05iJhs@yjqL$*F z*y8Il1rPACg70*4W-2^#FsFUG?{@DICsv0uxpwFadx499aV|#WQ}FuO6}x5j-pTa{^Dk0uS~I>Nla0|HuutYQQ~JLq}NN#AP6Fz z7~nYI7^HSR!qN4K*MaL1pXdi(w(FHjrGI(!Xr#4IAhYpaWQD+_n{6e=flbH)Ko?RQ ze1c>MrEx6h@sRA6D=eBmOYR)VkGLW^-y4 zd=h~glJ4G(EI4geMWRSph@BCMJix~hu(Wy@F`phJ8f}UpVE3mc5mEPM0zZX-i^B%= zC*V%tLf|jpQzS3M82vlLDJkmfiIl-tOf2z%Fo?2%E2TOxqy!(;8d_y0Nw^pMdpP*q%Pf# z|=sYB6*?$WBoj{@p zoD96!DtH4I+hQuTCBS0}$Rbcx)i@UMg=NSZrcGv(s?d{~fqXLG>VO`6uXhAB~T7 z77!+pRDCfL5Jp-7pPE1d5r4~xVmps0Q;UfCjNrc5XDxzS{Z4Fv{3p?H=9<)BOW-pT zXpwXix!L$bNL#o60Mg3((oL`9=l}o!C3HntbYx+4WjbSWWnpw>05UK!Gc7PTEi*Ax zF*7ppnF&Z;1FgGnTF;p=# XIyE>tGBzzRH##sdt*(QBlXM0#uO7`u diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_battery_100.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_battery_100.png index fbd0209b93154884407c74451ff27754e2f9df4a..f3632f3c91148f6b2a41c2175a9459c940181e68 100644 GIT binary patch delta 522 zcmZ3%x{-Cll=?U6Q}@=0eV&mjV^+I3 z?C?nkwmIKlL@~*46PVoSnZgjXd4}|Zi#6d}S(Y*NHJTRi*37KmCd$mo#qw>Z=nSUK zeN3I1vu_#hwal?rm@{`lgSmrl(9ca8XWt%Mncclibj8+q-Di(e4s@U4y!~bO^ zKe2vY(LQf2&kmEfYCkuv*t2i`fpTYt-<%eca~rB3@Kt>N6&klQ_v5yATorjM^nDHT z8rjp|X)vB%x$|7rw``@S?`PJ3WDR<-!r7pTdq?%2%=3Kzly4iltGBrrNp83i`}hdk z!|%)ABm^>MhB!!xPHv;Q_DP|RVQaV7%;gKCLuL`h0wNvc(HQ7VvP zFfuSS(lxNuH8cq^G_^7`voZj3&8-X!JY#lSqG-s?PsvQH#I3=Ck+~J9K@wy`aDG}z Md16uO2`Tf zcQJE*;H%+N`B2@Y&T+-=@b&||Zy$9ZmA$KJ(t50$f9`#T>jz{5x=)m?Sv<$J=FR@| z#)-u3=Orf3nCv;TaP#k9n!bnL1%696WX$z( zkQTmhjAaXcrdoQv!o3U8S=qL4F6eAJD43M}KXTGnf3B7s8z%k(ubY^73z%%aA2X}d zJ$W?Zhu7H{wf$KiSmRtnomh@4W=)+e$0ROgtZQJdYit-|Xl!L_VP#|n=Us6SXx|@cedk~+2TO;#!xa;SMuyK^9kco-_05|% z%Y4BDUWPygVJVe+4SbqRfht@O(sV|gX{w} z16CE^%jZN_%yHtrDgXFXd|6sSab>aMi(N-t4jkPRKS!lg?}lGv@{08ilT8H}iyw%7 zkhu}P;c{zP=!c`5Umy6cT7N!wUeEFawWXrH z&VY-?SiZ6t-1_GcN|5Nl6-iw zcxyxbjwG!4tQyO9wbRPXkLZw|}q%XoHmzp6WUh55jo%Cg8lzPj$)o!R}fvN+{! z_r$l|%`jSF-fn7qQ(9OT{F1b_t zJN{<<8c~vxSdwa$o1c=I UR>@#wV2E9V1tW9oWMgJS09~y#1^@s6 delta 650 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 delta 651 zcmV;60(AX=2jvEklz%lzL_t(&-tC!9uG26O$A9DGL69f{A<7NdvSN#}>hc^S9@9=Dikfp54h^vOWnGXTap^9uOjo@qs36o0r6d;wkpTQ^qesM-wF z?DGgHfY-psh5!P51zrF@T@bWn98jN~+6e&3h@egF@-8TGo%M!>|4i_z8VXpI1&H3Edz2oPEq4^VlO5IM(*As|3e6rug=2QZmT{N}$*M`K%+ z0E@+f`Fw5x@;rY!olddV4hAA3cDLJ^JkOs+Q3Swpxqs{q5XXPJlO&NONl?{6-;Fqq zNs`1wQPjvzC4j2ls{7B*EfGOgvDP9Y{Q*uFKbAvgz_-&x7ylg?0YYm82(1wyv_^o? z8UaFU1PHB*2WWhpR#oejgPf;D#Jc|tZTjQX=7J-3MvRCIl{w@7H?CaS?~2J<`=`EM zuRp8mwL+?X=WzLUc8SQoD2gYW&F0z|0}Za4+H8erD91~*YvTNWq1p_rR;yOy`^s9& zcDvQ%_MgpWmE(T{E^?lD+ccpTlkEZ*8Z#|0H!U+UR53F;H8?slHZ3qWIxsNY^E*6~ l9s?H|Gc7PTEi*AxF*77;7srr{dv9mjc3%k)X`5d>`J!OCm_3(Z_T4A}QJ3DO37K#0FL?bC zy!MYhT6^Q99cD=n`2|F#wx)80r>3X3ojktLL#c4a+2<+x+?BJR_`N$`d9HeLV{xn4 zCma3yQ)V4D-Tkq4zpupc=+e#K<`?l<9C#_^oSZPp^p?egZ9Wb4p3OV?_ITD`ZaSh- zAoPPThBYlSe(6FlS&f^|`2?8C8_Go)S#GfEF|%h1mAKk3xHETKv_|m*u@C!{8W_tO zbQ8Eb-v92E)wtv2eN%qYjrs9sCcJstyL7>6p~no1x6FTCIZv;5E)(Mv>wu@S1q~b( zd^T*~rX713v|HoHo13f;KG%0WFPzome&F<-TWcAN=6bE4ZF+p|B+uuOtO*UmqLTup z9g44qR&V<#e^W6#BxtgaS91dY?B%&a2H6}(R#h?Fe#Mxx`iFMPoSJOe_<4(2C!Abg zWBlla$a+?V9cA+qUN7_7aiC{^ZvlHO`??iQ2KQZp4%^pd@d?E4I@GVuU&1k`zW!^f zvR%30BM+>Jj~9oPnS9h_tJjluLByNTa<8RO6$j6e|0}f zO8N6jwNS^0hcCCc-u=%c<1ml2a3aS$1_lPz64!{5l*E!$tK`Xi%$!n2x(1fIh9)6~ jrdEb#Rt7+>xs`!|XUuNP$%f40IHWBYnOi3(F&hE^=H@U~ delta 730 zcmbQjKAC;Ol=@^(7srr{dv9m@=UsLXY2R;N#_6%8Nz^>ybeHZ&BlQ=Pm_w4z%I@HJ zofA1zhS{~rOEXBMlS4FV>$c|`PwcRm_o?wC#}OsK9!BHI zJy*@TCiT(a#;(StOy|y@m+U`YRa|_y#?D^0*KNhNe|JOKLqiv7SP9>hsw*tKSYNm0 zWl7hnu2q|2^p>w$b?uf*zq`!wjd5{t`{H%Pbi}$R`|;hmckkX^bw5J`dBcG>Ahb zS-zZASdh=gSZmDjVm469rh;+ndG`8{tIyWC{|whxy7tz3CD4AGjG_Y%cYF49$egx( zTxRQcXX|aj$y@8oe_VV0H9T~0(AD`l{P+3#I+l1&vf00H-@c;gSyO*I`A%ypUvq@J zlzz|7#drdT38vG0l8KN26sMN+n}h<%}>cpt7I@TFvPB5?YicM$;r%y E0G@VA?f?J) diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_battery_85.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_battery_85.png index bf5ed66a69a90f57d3d65dbca53c533f504e6301..18e8864da73361831a09250d9ec4c68248fd7ac9 100644 GIT binary patch delta 675 zcmV;U0$ly#2L1++lz&c1L_t(&-tC#cZWJ*Phd+Ba+`)wi1c)a<)HEQ0faMjU)O3_| z^z_uc0R?XWhypF4LE;VQkRlMpML`Oe=(6XbuvctOm;L7~CX#>6o_9T-`DSdNWGg(B zWm&bUI+{!QBhPc6FwVBRX6=|N6-a1rv z0uEeXp{E)v&@j&vpa32KA6o(_;0JI6`0bJ)EBXP=)$yG|Wd-g5pIQQFUyuK84Q(_X}qU)DtStd)iGvElCE6`>QB)|fA0XzkEm+WMz zT^D@$?K<#v#ea9>lJOXLUGeP&Q0lyUZgjL;CGEyp1)za*Et1h0Kq}8wbGG*%*$F;c zsZSu&M_zMdca!P!Cng0ZufAN7 zjjJGLI1r@_#gW$2@7K_YefR!te*lt{Ic`fBT~IP!2Y)ex#g9@@%wcV$B}rPD)B}k8 z-Ez#ru8E-m%)s@H$42oPEkAhaStXhnd~iU6S%0YWPR zgjNIytq2fW5g@c8KxmzLfDQ*+V%*(^VYt&R=L4y~E9?MJU@xjrIz^`-Ml)39l+tKp zeJKsf_gjidgi8mYcR|g5?Pz3*$X>}b0KkGpaakSi|5WyLy78*1k?_&O`&HPrHiLR| z7(GYXQ{)fZ+e5nxtHui4dHJSOe{YFF9nQoatt&o1+p6vU2dQP1kH0?YkCV>=7aB4x zFgYzTG*mG)Ix#jnFfuJLH##sdNnE=*k^>hSGA%GUEip7yF*Q0dHaajeEigAaFfcd) J1BH_@12H26NiF9{b2>K)?U zl^|NhW46GfUsY7=f@?5;_pS%i_Wa46_cfqS+WO-SDa=yY^Dx zR?!tVp9=;stZ(e+Wn}rmwTGc@mr6#bY(V_nTU>K=3m$3s2EX1_oxetFwmZY?+v$hK76mZIq&Ts z<=qF}l}k@9DdG6Gtn`=KLMewQLWO**y&4v2I32&vpI|ieNB{Q7zGM5e7{$6-KmWYL z^rZ4%iPhYswX!@eE^qR-8&}S=?_R{w@U-ZrtU}*^K6Ote&q)hbHP=ZO%1l=2tnXa3 zV&Z%+hS0yu-|yeO#f2sGXjFH{7j}#IKR5Uy8SncG&pfEKQ?-|2p(#_#H4cF&WrqwL zoN~DZ9}iAj6}4XWNs7128tb2zm$}c#)w4)?ex&0>z*OURPu`!}`gh%oHCyX{z5e=Z z^QySjugdHBrss=K?|9R_sAAL2oOQj17apuyc{Z%0jcbp~ZncB|#aFF8khL`{^?vxZ zsBO2`%5DFjW43zBf8OSfc@>Y7OA{Cv7*tDKBT7;dOH!?pi&B9UgOP!uv95u+uCZZ= pp|O>zg_V&RkZWaNaObnN4T^@`e5I7kv`XAM)~;)AnC#1J2mp}mIlce@ diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_battery_blue.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_battery_blue.png deleted file mode 100644 index fbd0209b93154884407c74451ff27754e2f9df4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 680 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCmUKs7M+SzC{oH>NS%G}U;vjb? zhIQv;UIIA^$sR$z3=CCj3=9n|3=F@3LJcn%7)pVryh>nTu$sZZAYL$MSD+10f-TA0 z-G$*l2rk&Wd@@jkv%n*=7)X17vD?XPJD~9uo-U3d8Ta1K^7cDyAmDIcMfZNw4o>ZL zhk1AKOn<<4r-6HeTT*{ZOG2a6=8jlP#oos=G8oQIUS)Rj#<|%WFSja-JebqXue$x` zx`j{7{<@2-bQg_a7MJvue!v>vI*DrymvF$(**lruHDC8gk}2S@VVr)Ty}$H~ispnF z&m9w3=lF>T$Va!@RVTOX_?EQD%Cj+!eeT3L#l8P`_O9zqHRdoW+|!{G+!&YEmvLHt z{+b5!1ZVTtD?MYG)9vz}?qcTrz*obk@}as(o#Tq#;q3=_-#+R-DtlMcr1e-g|J?fw z*AK`Bbe||&vv`hc&71w_jc@Y?{;X?b(Ry$|UR~bb(p>2L$Ay;Gzx#8}OH7_I*>h&$ z=HI_GeGk10{FZLWnCs&pEqvh^%NG1hwe)(0dl#a!vTfg7(AjiQFe&?g%+r@@T{lud^{~`?Ef<#<_+%9aYSl3XBZZ64!{5l*E!$tK_0o zAjM#0U}&ssV6JOy7-DE_Wolt%WCr9~85rF8Yz>NAgofPwl+3hB+#1%dYi-L1;Fyx1l&avFo0y&&l$w}QS$HxPWGaKFtDnm{r-UW|r*-%w diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_battery_charge_100.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_battery_charge_100.png index a35d05de93be5f24d5b599a2997aa4e9f090207e..64db815ea7837aeef809f273bf9ca71615e66cf1 100644 GIT binary patch delta 1261 zcmV2w~Qe$>4#s;bl7 z=F#1CD@?!xO}*~p{LlH{bMEOXA%;xOEO%bYfZa`Wa^vDe9Dg-Vw+w2vF6r=q1LOzj zs)6n3B8~^#mXyqA`2s zh}r?id*@gHJp*)EYI0^-ho^qWv!kpT0qAOfQS7goUH}S6^df&ELCZ9O;W{ z{YdO6BmzwhXA5qiSa{!b{30}0{@i4{h1d+>z#EL>9(DV&Y=3NS&YJ)Na zQD?obxqPd_dfg}E2(A)bfs_)mj!^SW>|J3z0DnM38_pJ;@O(eZIs&&V4W2)f;;qMX z6g?U8fi<%8IHKmq5AskYJ)00T^oW_Wch({3B(gKJB>{QS=z zStouniv=K9z>2M==7)PVmUet94b58JXQS?O>A4Y}$h))*_{NY{!u7R1F5le15jz{A z_I;=i}z9ABhb=;vO6uqr9U=Ut@#u!CNpaVjRsl<>N=p+)M&{4kSQPDuJHSVhcFX&4JNSX z8!nVRo-KQ56YNs2E^KjaX_t|d!s1REuzy?+2+-7q*Tyn|Wdy!otuZ}cr5H0@9%?k3 zgS8BlQ;Mm_0{YBVntX7xf+K>6-BQvzfPMO;xKQ?3ulu|^yH2&KNm+_Gi2@LU!shjG z@xC`(VZPcV@7i6oi2-P7D0zxE#NhRz)H{D|I0%w z$5z%cKdBj3`u^15U+xBm0At40k757-03~!qSaf7zbY(hYa%Ew3WdJfTF)}SMIV~|X zR53L=F*Z6dGA%GSIxsLvT)Q~{001R)MObuXVRU6WZEs|0W_bWIFflSMFgYzTG*mG) XIx#jnFfuJLH##sdH~|BNlSu_Jm>WuC delta 1225 zcmV;)1UCDg3;GI>lz&P|L_t(&-tC%COEX6t$3HW>ad(r_NAOQHoLdb4* zX6N_${h66$BZ#4?sj22u@xtypI+&iGj$_8h)=Ry1M@%0RI5r)%)7_?kVbE z0X!dpc51)^LVw^_;1_O-ueqPTcm9-9qH9^;u*G!+dME}58cCG)msBeCWV?lh1*+95mSq_+-UxsYf?BOcHk$=*Q>9r-DTENLt*vo*c!=w|58Avb zfYutzvVZ99?QMBYN=dm~W@Tjs+qR8QqecK6$DyyU4`{s(EG{l`et!Ps4D}`eLI{*n zc%DahclVuZQR?jP@3XbFMJAJJ^wC-y1BpEgg<(ifPY<5w-7!!~iSPT&&dyS)R0x6q zDJ4=$Y}+Q4N)ZIX+X6%d9OZwlR%@)XLI_SyPJb908e)8W9MALcJdaE!LuY3vi;Iiw z?d`>$QjM$w{r&v_4G+U@ZRGQLMn*;&ZKL&IV`GE;{e2@f5eq;mh2uC}U0t!WvqQOD z#`k?LFE8U~q7d zu79qsMjOkrI6FIIW@e@lt#`4NhzxWb2iJ9xQc|f@7#kaFY%?s&;_B*(LZQIL#f8zu z%-FtGYmHKhTCIlbx(p8wH{bx~=jS;-K7M~IakGRF1VKP9m!rSGAEgvhN|u+G+1%VD zlgSu09t?jUh*D-`WCS4uLI}3Ew^?3Z#((oXjUr_qeK60@_jM!$h2 z1|Wps=H`ZhfdO*49KP>UC={qxtBGvl5&?+P2cS?WaC&-*<2Z?=j&Xo63`wWcjE;^{ zEEd__-6fq)Cu+Pg03ig|*Vp9pd5(^bSXo&~WX4Gh0BG!Mip3(fZT#n^M`i3+iGOIH z6CEd2wD)CnB?fbQoG%V=ALPRVd}+O;2BIk?#LV-7$Hr*&)Y1q*)YhuMl2oeQhV1}E z-q-^^0~ZMbC?E~|eQ)gl^==jSuLen}?Y|oQ2WU~kF1QGVEdT%jC3HntbYx+4WjbSW zWnpw>05UK!Gc7PTEi*AxF*7tGBzzRH##sdt*(QBlWhetTAD1l diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_battery_charge_28.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_battery_charge_28.png index 798e97057e940095e8ec41a0a8151153a266f03e..4b14d62f3150b90e14c3e4f7b091e73f68aa9a2b 100644 GIT binary patch delta 1506 zcmV<81s(d>43Q0xlz(AKL_t(&-qo2+Y#T)sfWMj9*c*H8q(DHa8d;6%a%w~`O+^HR zLqYV2ICJC3rRs?bq7qTs3aOw}98xuh95_~$T0p2!)2K965A;Aq(;I3_8bSWtBu?zz z84mV3KREWCHrxWL=MuK@uB zFb!mZ<%$tZjdnm|?}QB@-va}{L_h!uJOW+^RsfO9)PDOyl=yK%xA0U3cJ z&sAP{fUt{klL!$k0*q-n?e8pr=XrsYQ%dbl0Nb`{YkzCo7Q*+?^78WT0x-s)l;YgE zb7Zqw*4Ebk7fzn%kxHc)85v=Gd>qGd&{{u#03igf>(bTLMQ?8}mSv%o+617rMoP)l z)D)L5U&glW$ksvVEF^@WR4S3lWQfP(RmF@k)sHXd&z~os&tqBE?gQAre?L&Rwh*HF zF~%UJ0BEgABog%Y z_5!tQ!RY8HPo6v>7K=q%1407`A*$J>r>AEVfFDY?Zr$SAwQF>Cc4CaFhE-Ia2$hBW z`0wfI!Ev1GZ+_@3EG#fQJj~qO9JXy^Sr(RM5r2!th{xj;3WdPcdq)8>nG8Y*ip65J z$||L}ckdp3eSI81ejLYf=;-JmoldiN?_NenN12$IpuN34ls7`x0VyR14jiZ|?E@HN z=QDfl=aEPxSXx>lm&@_^@naSj7nz-%Wqy916DLlv zZ-3uDT-QZwO)M7U_U+r8K7Bf}{ZJ$xxOnj*Yiny1i^XbK_4W19-Q5k8LoF7I@$lh8 zhK7c!sdrawCH%~iNF+!mlPINFSXkiLv12Hua9tP6vRGMJ;nb;9%*@Q-I1ZlYg`GMY z0AGA-dY(rzndIovqriGvJ$v>nckkY%qkp3#GUXxS|H!12tgfzd@ZdqR*(_RXlv0e1 zjdAtrRnqBnq{>4>4>Xsfg^;+e%fP@ubuV=N`gJZ`xPaq0l#6f_=K((%0AnXvk1|u&bW%zRg#w2U9U_~}GM|6S7iYdAUw_gh zQk{5SQ_2T+Q(b`Kn;$a!`6t=}lH+$?HtAQu=$eBoA(&rtIr7G<0DShxGQYonl8*K` z`Jm}i2#s5ka`x{oWTj60^h4_aD2pPMW3qTc7~6qu!k}az6^HkF(tLA2&(HsQ?Ah}Y zu5M!YDFnDhXp2h|u+Y^9FlPN2PJeslHBkdV3dolXA9S~K=idU~KFHJACh^=-aOHgf z?Um=yqWl~RVDso~cdBR%*b+2?ukSx4E=7wOXXE(6`bJX7G!RpQ-~L&}GteeQ>vu*? zN+bXR@IzgR5Eou8NaSau&rK6j zD_3sZxtgu3+4wJrQcAbo*h0b0ED9os6b2(1kfN^K6zYJ?AT*%hB$ehzllShOMe;I9 zC(W<-QriO|_vM~@&-s4Ox#!-SC-5Q3WU}#5^f=sjjdVKg$A68}ExoeVBn=T50>*k6 zs)2u~MZr%5ET06(nlnEEzt?^coMFC$9o*tN@Q)GRsbXr>Vk}(0W{`#tDNn7BRj%ISJDrYq7P?}n#V5*$N(Jq zu5#)D_+5-mB1Cr?U`*d-f3N^t*F|gHR!0bdQtD&^h=0XmghHVs85TmIwPtT`?_>cm z#-Nm9d3l*cBEiAI!T-|9bzLHn2rDZqJbChjXf)a}TE_xF2!Z1`oH=ubnVA`+l-Rc2 z1VC$zl#-pD9iBaVhHcw{tpndxNC-itQsLsoi%pIhW9lCd%*x6N-@bjrvaFK_U}k0p zsIo1DsDFPv08gJjCz>j^;S&T-bOifKS0q|03Yio;CD#h5?SUsJLF@Z(GR~7Q| ze`;!qNF-AK%}bqZHp}ATBDq|SQmKSe3Z)dGP=5&9wkefLUGLrl1u#85U2jWS4XRR# z?d@%@UAxBZ+qa3uV#MQd;_*1=&Yfd*b(PnzUlR_8eMQ3;0FUX*moEb#rK}$lj4>=M zEO7JY&APs~A3T5loUN^`Ko+$x09tFp;V}FA`=rxpGMNmyT#m0_zmm;nxqtsYlarG; zj(>yJnouajn>TM*T3QP1Jmh;PmQu2|wnn*Jrd%!~grHn5GdDNK`Sa(2YN~}oAwGTj z#G^-#>ZSKY93?yuBO@b3A`z5QSv)>uU@gbx=J(}4SW~w2%uMkl}d$JEXKmZ0suQZJ1j0P z)=!_u4#2XSy4!A_wL;f!^6WEV_Hrwr6ixvbLY+-05&!@7#|}0yu8zxCR;+)eYZ4ydP*Ko{ivMa7;{0cz0K;R+}Y* zi=0>ghicFMUNISCNTpH~i$%)i@?XZ7U0{#u%eO&@Ym6Cp9A~!%q+=vHB0Ict<%-u- z19ZHJv}`t8QA!yh1iQPtgEsknrDFu{-MiP5zF#rM;JU8y&O&QzYi;%a1)5DXbV;_$ zsgwQ%7aB7yFgGnTF;p=#IyE>tGBzzRH##sd-19p;lP?Ar8Z#|0H!U+UR53F;H8?sl SHZ3qWIxsM;u7iM+U3C+(1XW@gs35C3Kc2gf{7T4ClP3k>9Sqfw!1U) zo`>04+Pd9;GfUx1CNpp5{rP_1_q~7f1R-Q}baZV}v{+mR4}a6s(_z$jvZYn4t&=q# zFn~l0MHTQMNQCi#8PWiz3Ebd7vKWAB6wp}+$pz)X_>61W5G1C{|XJw4sF2kM5<2J74S?qA!O#E<3V z2BjMr#sE^4e1GQX=&0UMb{TM>u?L#z0|wv$r+{~W+=g;`L%N>w!MCS@TQ$C`iZR{< zzFpIHD1bn^D)*ii%heKDsiziz1gs{E(K3KubFUS%ZBJyIw9%BbV@c75vYXWt)(FT5 z6xmXF;sL^T#&se@a}l6*+rxfm0X)xZN;$(Y9!~(MK=Xs=3DaOXen4Fv>nM|UT+Ij#X1g`7S+uO^)zyPLcVi?9c0HqXC zO6KO~ID7Uiwrxk&4?>SZLI@nkA)Cz-kH@QuX|1bQAmiiX6bc1Q(|r5@_UzdM_|_Ie zR4=VHQh!ROrly#koh6k@MG`uZ0cfo;O_OXkTl1TglKJ_0&YU@eZQGG59|?d`itg@i z1_lOz+H=9g!~_cq3s{yF=^PLmKnPJCUHbd`*8v2fbmhtwE?l@kCX+#HT@9S$!9TPClRK#EBE+aye|<#xzY#(|^RWEaLGvD=RBa&)yvc$Y!$$At;y2 z)mhds3~t=G!O+kUM~@yQnM{&Sr|IeGp|7uxiHQkjW@hN>>I&tJ(DQ(llD&KPR+SC_ zwAKs{4>K|{Qq3F82j|Y6nI?bTzRjn{KS6sQrfHx&r?UXsPVjJ`(lyN$42oTeGzlq?(qL(6iC12I z4a1PQuCHuywZzA#K4W32NHVhn&#SvvZ-3e~bpgsRzRu!@Zz&Tq1%8}gAsv$)RX#ERDWK?S4(_zMwpilJTLm)l z&MO}ofYxAF;{5ZQ1>#Z=@v?tYiR7<@0xU!D%Rj4l8e&qke`d550D_03j3GiCc(oys z{~LXj%6A0dQA-OUq*di?LlMpSKrN}Xfv$g6*aCoye^7;xCej40B%Sh{5PuS>{I-My z5%!2lYceY!b0C(N?nv|^TIU0%4gh#~?l!Ud;BVnCryF*uhJ=R?y|flK)=Z_LIg~6T z{AKS?mo9a>xviCk9vB|`uBH5;MJvSWviA1^g4y@psGI#iP>TGm2?CcL0000bbVXQn zWMOn=I%9HWVRU5xGB7bRElDsrEip7yF*Q0dHaajeEigAaFfd76yEy;=03~!qSaf7z ubY(hiZ)9m^c>ppnF)}SMIV~|XR53L=F*Z6dGA%GSIxsLe0Rx4T76vhCs=hh^ delta 1395 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 oX=Zrwm0iI$|(sEA%cV=Aqa6a*GB#W zC@86}rMiFQL_?7ZBqW-%P!!QcI7G@xH2kOlAvgqg62uZhN@Q^2IP00YBD*WwaqQTh z4e*s#-radK^S8rUNA z!XO@S2Q+{TmH7=QhVM)V!x$g~{0ICBR6|)qpXlm=E^+Pvbzl+r`0^(W20{mbR^JXeUAh8H%=yj3NTEw)w_At z0dk?7o6qM>OMl;8AZTO2-Uu{Irhq?zKR8%?jr~l^b0_7awn^ZhHtjkz#_zyi4Ra4f zAi_}iJJMsnc97vX?FdL9eGFstOrSBw+r@0(h3tqqj)i_KDf&?MsBs200@8va-xWVS zfk78z6NETk1Q^qI+E12%QVOkgM;Rdmj^q581ai3?>3?+kNDB)g&{|V2mwzk*#uyyO z;pWYo%+1YFtJMyLlTwOoHp|k|68G-iV|aMDtG7;sfDnRuz0UafI5RUdNGb6=uZe)x z8Yv}j-n`+#g9mt?XKft}oP~rC1VO;;>}-=_#+dku$Sf@_@%8IhT-W{a2+YjP00-6< zLc~`@V1H$0g(pv*kjv$)gpM@=#u!}J<=nY*ZQG=jlu9M;-o1&(v1lFepgrJ~R&m&@F`b$=^Pt3n7|*CmxokxHcqg5XHoSRpVy zJrquuQD+)f#-SnzE3ur zWps3uhYug}`t|G9!l#Wfa(8!kA|kxLzTQ6pAq1yRokDAk<2a%<{YfcFr_)SNPsh&@ z0e@o*3kwTex^yX)kK+H?vuC_}_YU9p4~41L8rOB@al@-?A*8L9tjQ z2!c3-qQW*dHWte`j>DHPU$}q&J^+s6Sbr&IR`xS;}!7 z_V)HD6bh8fWvlhT+JVLxgVvgQy^iO3T)1!{CI_&xvciWCAFLNMt0%H(TQM~?#p%vea@UY!_?Fil}d#|p+L1-wYq&ylt2_d0EI$=TnQhV}Jzs?{p{`}_YIV>W>@2Or;(fHKDX zQm@xHLn2*0(UsxC!a{WGB&c|k(YCj@1IKZU5Q5Fk&7`ONzUb#s zOmvdFbLUP+`TqgWTQIO5!qc1p001R)MObuXVRU6WV{&C-bY%cCFflVNFgGnTF;p=# zIyE>tGBzzRH##sd-19p;0000bbVXQnWMOn=I&E)cX=Zr3Er6(~W&i*H diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_battery_charge_71.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_battery_charge_71.png index 83e780cbf308c9231e17c94c45930bc1e535285d..524bf73cc845cdc7024609ccbc584ba93c6faa26 100644 GIT binary patch delta 1460 zcmV;l1xxzV42TVolz&)BL_t(&-qo4Sj}%21ho85qduDcbWfFR34*d1q?&+e}B z&^^oSGN0Qs3%r+^o~f>WpWpkd>gsACModml)*ecSr`zh6>3`|zIB7iC(Wz?7qNV~G z80g?s1Kh42#HoN2QvekuvlI9x`pq^G#sW#;GVlaYjM`dO87(W&!si83P&!fDeGzf%z5Z*%imllCS=^9=K5Fe-nxE8t_HU zwPOKPqc8d#?C`vLp`w230Vp8Rh8P_K*qYCJo?Z2gtid(fiq$A7t4Ov{KXFAsbs>>^ z8V@``+`+gkMA~zJwX2@?dkYW*L0idbt?y5OR4Rq*x_=EJsujxT^J@g4mMPWHAJ$s5 zRvb8RfbsEh%H{H1b_$FklTLGR>JXnDIYK&}#u(FE0J*)eEQh*nMDQvVMmKF{Y-|k2 zanM>X12D#*lw#(OvwZ#er}PCrELM=lc59ogDS-FXi+J0gvEo-ybC)tW?pEh_ z4Li1wOn)Yq>{HK1AD+I(jb~pa)8CI*Uwwil$qG&;Buqy^9Fpz+)L#ZmyG5`UlW)`_t^civ$fo*X;Wk8f5x~+vptUIv) z#zMwbY#GqYn2ilPKXs$Tv1>&}5_$>9(!nTg5wY$ABH#so)7!Lrb7|U2jN8ec*z*^v3w!-5h3HEO4C+#YR6T*3GS< z1_&$+IEqEj@ZI$ySMmYbis5ECV4)na?|-pjHV-)X76NNYD&dElCH9|PK)1Q@>nQ+) ziXOVSNI9@nj9s$Tlk1Xf=nuOWAgP4Qd7pRBWW$GOMQruE0#My28PGz;32$Nx6~jv# z`p^Qt36stHmVLi1Fk1}BxYB$&?L@%tbQ4aCzJ;<0Z8b3(c|UT>`{%O!daKM}7k`uQ zDgcCbDg~AuLoVBgT#N-r;PAyoj$SD+oKW~(Odh)ZL}y%9GRHY zWkb=r*_m%)D502mIJD27S&#S5X3-*u#Mr@I3xGTJNw8zcWxgEn_L+Hdo*~ht8KsJp-sd*g&`% zU904w2YaJynS4(G);c<{kTub}4MTU{57dk38rbIV3OfMs313tp%0W3`jccM;l@n3X zu7raqkhrgytYx?eY96HU-&KXZg|*o#Qx5mu)$uS`zNr{d_H~+fJvk zIgF|x;SSpIlP7z9xqBNeEAaHeV;!}R9o8VFf(>`bgrDAgrD^m30U-_O`*4w~IV~|XR53L=F*Z6dGA%GS OIxsLe0Rx4TA_g&LucwCq delta 1444 zcmV;V1zY-v4bu#elz$^hL_t(&-qo2;Z_`K^#(y(TYCCCGt>_;moGPRSD#2Dl%W;*D zz$e%%r~L+ef)!^@+&FAN1;MH6AEfR9At4S3P^+#4TOryDC{fg;O=Hi@9%@@jNRy^^ zT6iw8Gc%s|dER&Cea9BWK&ez}zZF9cH{r#`#zq`7er^n_T7L)HJdg$^h8U`W3V|2m zcpw#102vtb8?YMuXZi?Z02|l=egzJLzJ@bmpa%xTxdr&Z@4!E&Bp`r2U>;}$BA6ci zfWh7w=z*>WbWBt#m2_~a+S>Z584}R#{Wmr?&g_A{1iI9BICg*gWD=+Y<8-P%$g>uZ z3;Lx>rIP6ydw&3UJp>$%K-**r_zU=x9I~IWu zZt(ldkmGtm2G8k5Kmuc@5MyWp?J?dfX3w0+PMG6VIE#|v491@HoVX$&6ENgL@zWEC zyBIql#OWfym@{wtqa~n}LTlZ(j}QXOvVKegxm=F1v461>6&6CEwWe09oezPokT@|u zj4@c2#l3s?n4h2L=;-LXa8gQ<&1SiO|2_{NJ|vsX4)j)R0B}Yd`{no;%ne`=*&*zz$nK4>x_V@R5QhvW_Nhvuv zIN;{Zn}6809U0ZjxaZHGGd(@c`1trq>Kg#1RFtJ(zI=Ih0=Zm{yLa!Jot+(?J$p9p zx-Q0;j@Xb=Qm@xpTwII{Zzme6|LWB%s?{pjuV3#MI!0?vqtVC(9*kE?7-QJp-sao4 zZ}`5iTCLW1$_gP+N-;S(*>k*@>CXs!F^3u6r87=ug$VrJrSTXbEQsi~=sw$RY6tu5ZZ zeM>f*jm8*b5=&;W^MF!{>FH@)*X=McTpLSEOEek{JkLW)iIkF5Dn&Y-#`C<3B_M>r z_kVq6W@Z5JeLq^jLI^&8{>+stSGaZS7Ov~!x-QvlmWhc8R#sNn+}!M&_|C-xLWn5- zLxtfumW#zA3kwTT-yptu{rWXqTU(^l>DZwZi-6V|+qP*oo4kMjo=T-cyx_BKzRJi)T8D1Y28j6mpt)zwuz&x=CH^E~F}=D2j}Qq;$? zEWUpI%Hzk6BX1?KkP|89gb>)ajpH~-DQPqsEG{laIl{6mn$0HVa+zAKhT}Mi)IpHo zfyNkv)*9dUaU6%MSFc9o0G>X5%BN4C5;Z><=TRsW$mjD>8L_su#+x^95`U{e z+mZN*Oew{}!U94Fgb=)Y_l~u-HC)$C+;~XX16pe`nGD5Z5r8jWzOb~kM6W9Lha(W4 z3oc*2OrcPqUawOwmpME9 zUgpDx4^j0wN+d!ctn-V-A|F3~WPg2qeIz^1$Or&YU9-HrOe&S==GGU9%+y}zgx8~5 zwB1NF6GL(}&bbrlCi2q~IByJG18s`xw%;Va5A;GfM{*xHW@l$;g58Kfa9u$`~{0`~L1}-wO?7cMyJOBUyC3Hnt ybYx+4WjbwdWNBu305UK!GZ`%~H!U+UR53F;H8?slHZ3qWIxsM;u7iM+R|YXWk){p+ diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_battery_charge_85.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_battery_charge_85.png index 32f367eae18e45e5fa89190462026e3fa9ef9f33..80325c790ba24e595317f468696d789f474a9d2b 100644 GIT binary patch delta 1439 zcmV;Q1z`G^49yIXlYa#rNkl7ip7{`ClJ2Si6ZnrH8B|(h}3LHGB2TZI= zxp?qmVmy2E=*^3os3e|@G0}(y4_-VN6BBM|h>`-qm|!AEL<;dhijWbd7&ZPk&D*f${&Aeyw(wG`l2XyyN(h!P0FbSOMk$?fN0(*cmAk)*+8}>lQ5Nff0j?n$hiy6XL9%%vH z%`gs7h{m~7Q-4$1GPevgpt}cp$pHrlfRBNBbKM?GqRA}t65g;7uVZ`Dd9CPq3{_ zMZ$H|f`1j(DCwKP8mR3nsBe{tVTWA>56=j$k-J7&1tV}_slgAk6>^SQCl8wS_m&2x zr%|0~2{bJ19C67xvZmW<6P8c^USg?k@l1mKbLs?uhAO)X9uQi)*;iJ>MZUjM=Jd@P zqn;3?g+2`e3V0$sKH|2$=Lq~;4mfXoj)vKBXGW0=jkmOUVV6& z5r5Axo)N}8!$ZR^hh|C~zg}h7l|*@w^uYuJ>@H+hLB|9Xn4HM5e|v6qY}^ly%$7NE zqsowz418h&VFDX&H!MG2uQ0n3P^?>S)dCi40q;IF&LepjUm;K>YlPFcsvJDGh|@!t z9XJ69E&Ao<+tdQ3Zgn-Ro_!$8j^R+f0DoB{Tv_pX|7O%BTf0j_~WPDuMQPv~ph&h#zbq+>LG) zcu2Vqz~+J<2!YL(K0-)sbkbuP+_`(S2HN>uVIKs1!WUJDaWO8aH4MsgA_il_wZwoV zeZ{28cm>P?NO|e1LFZ8|#+(K~ARzF!NOk#!gs0P8Q>rV&1N&cWChPU0G=DJ6gTp8MixU*i*tTBKTz&gX^S-hRE~@c#hC_RDdLxz2F_001R)MObuX zVRU6WV{&C-bY%cCFflSMFgYzTG*mG)Ix#jnFfuJLH##sdNnE=*0000bbVXQnWMOn= tI&E)cX=ZrUAk(U(7**DZD`n?nDGaIIZuW zM(o!OvNcXO0uq=RA{ZkRi062>oE>{3>oLbr7$=fq3}<_dlQam(6dai<`YNFH*wyXZ zAYhtp%>(5XVz>+#A}~XzQeOf$Z{FnL!-uL?tFgDYH-BeY7Fz3`gDa(mQq3@ooMA=sJJ`0}bF5L;UeXN- zAp}7XaDVOEH423SQc5h#`pPLG1V=|lynOkRnVFf?3PdVpGzbFn`8=6Srmx-V>MD&! zqu(01dICZSeBY-~C;*qK5{FU>Ap|d8yx{Qg5ZkuDvY9FYtu=;Wkk9A4wn-_eR;z4n zZ84|_OpSnLSzNz<9q7Intgo+AtJV5esHqSTLVuu?!f_nt=jYqn!qho9IN;T*SLAZJ zsL!aCrXLblp&$rYSXjVuoHhrgl(??T%E}7$dL7U6kWwP0#57GZnGBxiO_xBpfW!Rv zeIF@h)b{DqCvM-q&HelLaU2K7ameLz%+AiTzP`@8ckdFH)KvC?#l=N{D8g{LHcF)u z%YVzuk!`pi?CtGwaBz^ynn*-IDTQTOG@DJ{ym>>lTE%r;zI^$D>$*I6@PPUGd4eE7 zYmI4|ynp|mXV0Et7)F$CQzH;6u(7d$=Xp^Id7j6uTep~-n~Q7=!{GDh&pdtlG*T;# zg`Ai`=%8g;*tU(7l6t+)y?ghfV}@ZEG=G~-DwPVSr>CiIW~tqgX{}L8;rl+eZFA?& zoroO3^XJd``0?Ynw-d)9guwGWip3&}i;F0wkW#X_xyki#9O=E_C=?1bn@xleX6s}rnVfRrGtuw~S+ZA5 zT5Gnqw`nvQTwGlItF=A`PPu&fHVFh;>z{q!KW-68{v3X3X(_xkCg^xu&}y}sXBdVS zLU4S1Jn1Q?i-8I}e*AbO`=roX69j<{@8q65dD7SZf0NH5vSvkhW&i*HC0=wzSaf7z zbY(hYa%Ew3WdJfTF*7YNH!U+UR53F;H8?slHZ3qWIxsNY^E*5M001R)MObuXVRU6W rZEs|0W_bWIFflVNFgGnTF;p=#IyE>tGBzzRH##sdt*(QBlN<&yM)i_2 diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_bluetooth_off.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_bluetooth_off.png index f9dc2ab28c8540224e4dd1ef177eaf6e95148cdf..ac765359456841bed270e092ddd71f4bba1ee008 100644 GIT binary patch delta 2006 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 diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_bluetooth_on.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_bluetooth_on.png index 48770144fcdf4fb8385b2d4bb3686ea984314ac8..090d235d7911ca67de3aaeff7aa960f4169f735e 100644 GIT binary patch delta 1736 zcmV;(1~>Wh4v`O#lz(AKL_t(&-o=`0h*eb-$A9PEJ2RSW#>;Yy}qLKC>Dtmk=sL>3AEDNMEDmBx}*W5=R)>?Cx zd(J&~-$%9KaPB#0@3q%|t+m%<@0-wMJNM1){;{A}1*idRxPNkT?DzyI0#&_;86UQ! zMdlO7xV1^Z6yQYQ7`?jm+W}xVunYJB*b4mN#u|_)A+!V_U_Q|aPXlfSt^%e46C%m| z4r~P00j~hRsz7SZf`|g(m@g>f2C=l1oWJH0J=fDUD*_@mdCuCR5ECq3AF}5 zSHBUI&dUy|-mT)_MZQ0X_iE239GZgnVsSVz(98q<`-YAs*)($E*PunKLgI#A=}Ao{PX9 zB$eI<+yq>ML|-dlvVe30Ujml^U+KH4zwtdX(V)Kv z^9kaKe$wZD;2q#3?GwvOO8}DKJ`t&;RwE@Oz&@nNnGSqNsN7J#f)L9)$F$U-z#e~M(S`}KJ}Vq$x>&kW!#BtC>@<6FIqw<7?oAgLh! zdYMY}O#N=v7{J%0lAj5z)iHU@N4Itf6qVTuk}eD(i`#oG3slzv?;jVg=<*&F+Uf3BXcb zuWrBZvjn(H-%S7>Msj)(cbWiCA!cL&u!;n}0e#<+DK!fqi}^v|er2+RBxdtS<9~q7 zF$`P;e1YsdSTeU6F}rPnkfIiOY(0>r&LXe~v1!}ec?qe&_Aok&w9T=yW7f>?Y2bAI zZsQKxxV)W-sA%V;>GwMC2A*-uuSB+9>d`d-vytM)sfmZtnR<9ublTbW;qn15TD(R-_Z#z?j<09Bh0LPor%<5nR#&T=HmmdV%X zLS&b&M}ZCk3rNifHwUEW2e}%EHKAV|U;{A*SVOAz650NI4DdMOg}M>jUZhur!?R8k z4#=57!`29Zp|>2~{B;uCvovX5WHn-fC6)XFm4046bkNP&)*3L0euL!uzJJ-iej^&Y zl!-E8?@LJ+Y`uDSC-8G809f0B)Upi;X0#F#18zjti)k*4c@x->3e4BYEdj6^xD0$0 zOp@39andkSjjiBt6RbBMNcjm7Raq{8Ab`9cOO!NnSAmO>^0SBhBBn;VPS)D^wzk)G zJHr;^dZgCP%jHe7CnGx!{eQ?J9#7*6%xJCwwrJmKqwV$BLq5yhXDA4hSRO@SVvL!CUO^b#u|hZKFl^GJ{?APdmqLVptc_Fl=3R|~*z zNG;K)%tuSUDGdZ#FyJQ1PkK4SNy{(I5UzZ&F# zFs=C3g=DBzWDQi1%rZgB$FMjWMdx4nvqugP+vLJC7cvoyu^jBMU5RG@Y6I{O-(%#e z+>`mb0000bbVXQnWRvLz4jM8oF)%GKF;p=&Ix#jnFfuJLH##sdvQ1|>lMx3O8Zs?0 eFfA}KR53O>F*Z6dGA%GSIxsN95Z{H9LI*KT(JILR delta 1697 zcmV;S244A*5AzO?lz&4>L_t(&-nE)*s8vN2$A9OZeebpMK@TbmBd9FH9%z&li4+z| zr3e)n6h`)fq$jBOwFmT;zLY6MFU?H274!g2q6jgGB1$WQ9;o?3Gs}C=-m4F@mV55F z_datTcfn@Pe#~0`|C*UKYi3T37DYt-+aA4AKmcmBT5SCqP=5z9y@;tFN=sh{#%sP| z;6&g&;0*me2I$pyL%@Du7w{YKqu%?DkXR?QMW6)yS-?DCCU7AzE=Cow7uXDZ2&@5i zbV4Euyk0$8juw%pMdXk;$t0IdL>eM87+j5l??goQipU}n=@pThUSU`5D){jt@|7A- z6_|l5A`(jGy?<+{4iS+7bqrl45h&~zka3L zE(QLjAg8a;RRi8o5-HFJ+y%Tvu&w|`7dWkD0w#R{aDWZKWL!GjqlT(lBU7^5fN%8K zAaE{lu?N-&^dDhfF&D(PK)-ii$1O${0>1(`1AnuDU&t3QMMU}(_|?Go`s@PWQ{a3h z=;QHicH9Dq=OI(-du;%i0zBn`H8C<@0M`J2==~JnV_djQTfov50TUxI4tN__M;@>L z0Tu&S02@8hk0zWcVUxRglQ}it}D}g1ze;!%9a;TdGq~uwq;GYBT)#qb@ zMYxn0@`3N$JbxJD*-`>Qv)Nw0zt^({n4=z?LmrLF2s{L=#Ld!! zxUsX4yc>m1+ZWRUv0Z3~N7zV=0^TKW_JrcteJt<{ZgT6x%>|2b<0oZ!CTh+B_$vlj zGXloma(Ii^wV*6&NlO*h;aV_J&o2a?pgJEq4E!F`0?o#Nd2}23pfag3e1F0!lU?M| zXFjgq+kh<#FS~*5-5_AH6ZknsVSyyLIp8MThL*Kl5qNXh7Im1vMsACMt$`c3RhDn0 zN(^9+f}e%Ull(4NW)I*?Ej!zt4kFP9u}aBj(F~Y@3$y)HFJgqewFazyM~8h99QTOG z#wKS3w!gniM5c(yR1w)-v44ClT1vhXEN9y%;E}K+rWpz{jR15=MD|63H;3#Kk;y)R zjzx|>rF_f-H6+EyO_^7g9Y@)F|J3Hzz+s&eC?Rp53_l~blSVr>^;;?PE<2VT^4^KK zU5dFQ0zM$%lb9qTuZhS3XdQvxL6E02RI!#1s8QJ zV%bLUc3cv;6&EVk1AE9r?vaIlZ1idO&mNG6!*E{cRqzRJmqHYL1D7I%r!q(B8IeDG zR1mREE~xn1O;9HZzi$<|$^Wj_MyJd-a67aB7yFgGnTF;p=#IyE>tGBzzRH##sdt*(QBlVAriEKLB% diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_brightness_auto_off.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_brightness_auto_off.png index facb0c3a4ab6f3bc55a9e5046737be2cde837174..841b7d91e547796957b3a8bc15f4e377dc51ab95 100644 GIT binary patch delta 2203 zcmV;M2xRx#62uaalz$XSL_t(&-o2V@h+Wkc$A9PCo0!qy#58In)>K+)u&o+B6{*?} z1|N;meySo=L?K$KrYb7p1BwcM&|0lV8cWHC7E0R>L5Yt{ji4DN#OtHJ8Zlyi>?OH-^56(D};Nmj+6UC&)xXOV#&+o-YY~<#FwP!B3b0 z0e49*1a<%;KuzG1B<*=*=bUB0tH7xOk_Lb? zf&0Ro`_$Le7=H(Us%R|h7f(M7xE;@t7S;oIQq<;+Kqin)-TyMYPc&z}XbhHUPb&j% z$MbZZ1w0501E&Dr1nvs-eT}<-1sXG~IkWWc*b?oYTZa#n!eEWyWI;+b;B{b;B(NU|*J2(#UCAqTh}Sbq&%t-gARfqQ`mG-rmuT#rSRStXhW zvB1TwYDh;XDKv1{us+Woh=ib5JgqaOk*jxdeLos~%qG_0$ zU>n%=SXc!!r^ka99NT5UvjIzI7_CTuV-D|9e-rpVFeXX=4)~SET?YIKiyCfbX`tu8 zBY#6REUH~4;Q%~_r4+u#yTF;!Mis7}G_VLu%9di`49q9a2R_$z4HiYl={-I7u?MhB z^%dY4EaH4uW42(<`#kWr<{VZ7HF18Hq`Cz79>tV5mDK)>r4s9~T&5~YeO2>08zqRH zz|W=4=+G_TJuI_b4ZI;OHC@%Ng+WPT7=O3}vun>9J=T9j9+Phnc;9s=+G?7+P_z*3 zkI0?YL+ok7G%Sps{3R~k6bo7RV5X6ZOJB%sZZ)=94FcDM_x(1XdyQ!B!<-h1JNuY0 zeJ+e6dTyt(DVOjNmOgC5%&A#gXuYoIVzE9(oPL_`Hz$i`T*KFF3d=TO8*&Y0S${?v ze4vFn*6YB9Se*8gRsxIy|I*k+f%s&b({P#}Xf3z@ny_3bY<2b1Xf#MmUhVe$9NlaaFqLh>)a9)m2+y1b2At+Wio5QR zu*``4jyZ*neBT}T0nGD#Qk~rUzkiqp2At*~#dE_Q!s3pcM9gVLiKGcU0^Ch;YahTe zNhA@NoCC*o!IC|+#z1)25|&3Oo+CPZz|-R=fm_J8@OY$iM;itXQ4F#DG!K=BuuU

^?l$)-B0)+9-7a6Q8d9EHZtgpw10$cm9Wxi zG?G}Am<_y)rLcP?nL5Qp>SEw@-9M)5WcPtc>vZ5E-MhWlg=Md>y)3N7#Y`eJxh>@-=p2XORDrr!^h> zK({k7lF&GC8+LYe!hU^2lHV#iKLvh`*>P2l3f;4ef#eW*N0}nfvsyb1( z1C6V!2D~QoiF<+G zZTD1}Ycv|3kDrU>-wr;e&Mu|>z;Cc)=FY&pYZ3DN#ox`tj*quuwV-ANZD-;~SOq)H zvaBOychi8Y@hR*$8Gnz9qmrOk<DnFst`>ffy2hnn{m7KQxeG#|KGzuj03Xs>9_#&Z5SB`NzJvmZ0l zaqP3yN&1~43`b#yosP;}6$3ut0Pr(HIU^LjX6yZt0Yr58Qd3f*6y-PIF8sl0sM!qsOpu&VoTozQ;Xf)yu z{h7LFVw=q}@_&lOCD<++o%jXdQ9ZB4qSlFec3M@T^03+NWIpn_23BJBz6!H#u*$(` z(7-5GM@3^+Y0kiLNt#(&ZeBNP6wM5%QwECzj(^78wa z$I^iMOw*6Xvi0001R)MObuXVRU6WV{&C-bY%cCFflSM zFgYzUFjO%(IxsLgFg7hPH##sdu>?oZ0000bbVXQnWMOn=I&E)cX=Zrf2{A$yDS`k1 delta 2206 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 F2r+i4$IAc! delta 2007 zcmV;|2PpWG5vCE4lz(Zo``M3)4-#T)TJc0t)W{GqDs>et<~ zJ;PGTWMOB7hnKb4%|)R4gfa-Co0G$aDoHbR^GdH?trf4*WRWIm>=(<@8f`n zfjZ(=`vZ5m^-acIzyS*QZJo1yuvUvMDH8)h8m!=g%vq@dd;lD;7B=2>z|X)j%I7mo z1gr%1L44lN`xrQxBtAU8$njHDFVo zQh9~UEU*c<4X6Tt1HY;wUjUm`!O#dHxNzM#XUvQ>3)lfTRDtgW?2N?AivhOc9nf9q z0~)|}z<;wO>8~txa-p(hGOq`o1Nv&US|enNJ4^;x0Q^pp-+3KN;3r@*l8uf9CLuB7c|x*vD~@N8Vu*|8rM5Ikq2@-@ zfF+c3frid|2DpL5?V7-oz|D@Q6Pc`Yk#@we0DtK~jsnm=(5$!V13pq~wkTKp&H!FV zvI$7`Ivsd30GLN6<5Q%9HwtiNcOck>3UHk6z_m!uFC%yrQsB0b&PZhqVKUYNb94t* z=q_dpSpc|Sg`WpZ2PT%ZI3%v|5O6Q)ZMV;}fcq)uM&2-kh#N0Ls`iK}WR(*n=e`NN z1Ap8J98FSTM{Bao!VO@)Q)m*>BA6ocRd`>?HLbcI4cwvF-cqapkwte5{Hd1vQ@@Y6 zof$274a|GUc3bdX4P51R;WGtcmhD85TW7>!yvJc|$Ldq&lS`5I;TOc6nv^3`V7~ia z0j44WZ3iBJc_r60YATjr6x&k8+N#xRnSU%~ZZHv8OuAX?1U^DqkBPuHI$lM#8{kyr z;DWBX3TX&OOU=I7n~uanDy7CjR5#RGgKE8%d#cu3m#8rlXVWhh}$pKh`bhm{q0!d3TL$O#OM;>!ja7FSs(n^o! z|CZ0^A{ob;z6ttjxwVH?A>)|?T*K%!!7x0bm{M0Um3qBSwOaKSosAs8{RyjxOzHc8 z&z-VcfT3EgHe9dQhpW}1n-;CbLel77S7 zCr^M`<}2VR)fgL zLHRc;aDWGZzksiijI&lh|An*?AVK~QNv~g&jUtj3d!x#FL$UtP0AyO}y?=o-k=#2K z*ey`RAJ9)ja(tw~27!YEtJ>$!k+xt&$EG0HF?kmOZR9}nI+7rkA;m0pdzV+pS|o?> zHgdRr4LHRCvG)&=e#bzbrMyL%B_e6HO}XVH8OpEyK2mu%1PWRbXoH+H{SH`>uxr8* zB%2HbJ7xeEs=%F*ga5@k-hU*USuERJqzX*XISW;Rb|7Owc{b?0rpjtSQU{6-^|l)g z;CA3q@(=buBI(hrxgW`GTM_+(T-DgFjR*D(cudv|;4#CJcTZGwps_8B5&t&#i8{^Q zN(yiP%#Efv*_oT`OzKhw12-Aj-VxH5Qr?wX?p5Y;wrGxDyQMNuQhx;iqP!i*DByMg z;7XEWW7x!rZs~ScEW=LOjtUsVX5cbh)Vr!Z0qOsD4CeZ$FL~sj z;&|GG+$9YG-_&Zgwtus>rFM@kW$g^*T(x+C)-Hd7JP+_y)OVM8SBo|t&RLCIfc+a7 zHFX~ECI&qCHtB0WRM2{-kXd~;a4XrZHdnb-dCd2%?yT1}4YbKixo2JsY|TTy`AAU$ zsRy@^oOfSEs;Ga6Vdrg-g7+j+H_){%p&(UuqOEzz_q)E&MSm{9=8+sH??cjHh2$7` zum0ArfRER?AWu4b!qbZaMxP?r?^h!(U_kBh(^HQ3DIJR)&w8DEovzgr^;}Jh{trRo zVtXKg4icchk&cZq`5#5s3gkQl%)2|X@f%de(z99er diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_clock_circle.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_clock_circle.png index 5802093768d6af4d617a38aaf8599de322cb3113..f724ea58692aadeba131e3dbb538e74b512e83c1 100644 GIT binary patch delta 1431 zcmV;I1!(%`48{zQlz$dUL_t(&-p!g_h?PYc$N%p+yKZTT(za}7mW8VowFDBCAOHbZm%?vQc?kUcNOdzm9$mT{gN&)nMp~<4Ddfzwp7w(l2(~s zCTU#KtCDs~`hU^NDn^2KMk5J4cq;Y?xCVHKA{_v>0qcRqKo;q`{xaZJ;2B`dbk6`g zfE6ZJ4fVSPzH0foz_Y+v;9uYs;A*Q&fzBF~JE0ozo)I|#Je)9A*TAmc4h_p^30e%DU8!!nx8h_PSLc(nr$Mpw*?MC7da7l!r zZSXbVq!HNAF7OtJY&8;N!0MJpBJxk4tS5k9?YDsbu1vC-eYzV8xHlMyuM?}691ZW|K_l^csZmH+{{?H{fw=_Vgv9fP;i0DUAp(E1Dej6D=K_3! zgnPjf;D1|Sg5o`q&A^aYqxYNZT;9=g))@&m+MQ<1?F~mEs<_P*o@;9vo12mN(3bFv z-JmH2xAHC{aA{cH%aj;}yA0E|aE^q+&UA=;oA7q8U8eyF$JGxUw^ebfPLe9N8PZioxprp-;){FgPa4Fj~3M^oXv}r56@v!^1x-@Qe?adNx!Rbp}M4L1QsigoZR{q zEvz&t>A0ke>_3t+cOgkS&+@Pc<2%NHKh5fIWX}yQ3&#?Uxlug@HoKb#mv(76u&u$gHqn0V3z+?8mDitnN zwZenSm#M)9jr24{yM*%fdn(@NX*y|%zM zb5-C7Fdksa8VT>UU}mUc1k^hM;mHWV(|^A5FcO=3;Y!h=g7@{L zVR*chAtM6Az%k$tU|me2n?xFb-(uk3FYU$&|GUYC?}#n2T_+K_jkjF`P6Izs9Dnk* zd_L+V?lDV@2Y%Q`cMo?fL4TWoQ%paPEk6gNhQp=xw7Jukz+#;quZO@zer$rdZtLKi zkhl>zY8|`;3Ui~QKw=QsX&p@fPXQMu-Xq~nOn4&` zFBBud%QnycBfmRa6#IPJb1gC4-hc7!{nX+PNsmd|to&3%$^-B3m0z>^mFYQ>R!h1{#dYkTl6FhlA?XXXdCl7HMYn%a z;DtlV51eX}u9Y+*X*iIttGMVsr2OFQQx#$C++K7yAu{b#fuMXKR8t=DrGMml^Ql1- zBL1OA@*|GO1w+ssf5FnVm^VQvDb^|AIQP*Ix{vpH8?FWH##sd08*L90000bbVXQnWMOn=I&E)cX=Zr< lGB7bREigGPGBs2&H99jkIt(>9EigAaFfefsA$yZH1~GNEs{#N3 delta 1464 zcmV;p1xNbE4Cf4xlz%r#L_t(&-p!g#XkA4V$A9;}*lI~cTheN4wNheZQChziY7!%U z6sssM6hwrI3(<`W6*n$Kaii!)#6lMqT+|>gq@rCEt%@R8X={bnN{glywKk&ClvbPk zUCf!hlgWL_eII$rz+>LKbLPzdf9A~GIcHu*3yUQGGfSH%8h^5^l)f^hVNC^KbE^f6 z)#z3+nQ@bAnpEAr65tVZ5#Zba1Dy3>6GAdV4G}3VT>u<6@B-jkU;wxZSOY8vI!)#u zU>NuT*bD3e4!ZuSzS2ZWNjdNtRTltQ2W$c!2Dwu z1%9ULhS9y6Uweoy7Goe)BxWj=^GpDV@Ye= zV40*22RH?txlhIEjBp4E|P0rzHI$sjpGsbr5;fNF0*1s;-$x{1Zu6OZrpNul5~D=d@&zO&v43A(HMl z5_=>qPS@B>%A#PGq`kISZ?I<_%~-uo5}S;~P^nocu>PB-;E~w`UogHO>s7<>*o^BT z5g4$J+keuIvjM)wOdx5Ir0*q-NLudOrelw!T?#Ll)lF?@&5?*kyVH#MTFqHV8g91^ zFE_M}&CX2huq`~kt@EM|(aP@`flF&nS^G#t<83fZ&-pdt1tZgCb*=o_Cy+V7M-<-H z6Kw#wo%rIp{WhyVusVa*Mo?vojVYjm5Kp{MIDe|Ijv|uC&AQRVeO7;B^?0e#W}gJW zr&bSIoo87#C8D~HaF#!wD4COD#*Ie&*6Q`uX5m-!0-zT-V4Y%oJ7*;^-U#qJA=;ZD z<_Rn!L{7u@J7<2Cv%oPzs0tR@MHhk)ze0##p^1z|i%SeaBepJ_alMtJP^FySIVUqg zAb-r7Q29xxZTmuz$hV$aM3&?5KD#N|G#-+p1>L45O5{c)XAK#gX9Eo z0kFa_f*C)$Q1tuVgl%d`4JB6tE|@!7Q97KbiP+u8^|8uUg3zjfLeCF!)$I=#`(wUC68(P&>Nq;`5df$0>) zj@yjHz3p(NB&iU`dfqTRQ_7GDfr};mq>vN6A|=sEA~nF@ZQyq%?p;ceU;X2f4u43x zWHv}7ZWDF)Ng6c+#^gfX`O!$?L9@hePh_z*w!?IP>D;FA zlx8w`RMhQurx8gnDCCkT03Cr&aeuc2_!gVpafNK)!qn#*UTXz_;=mgeUUpKr{1}q- zkiuDN(o3(v5WNa_VLMeV+nvAX^?;x8yq_rW_qiEx2k->2k&x8@_=S+!I7Wz`aze6T z6|fdqY;u1CL%?QW57jH&i5vVfDV;_yx+}Q*Twp07t9KJ2d)5mqbNa`Cqkn|U?eBok z2*=`+1%{z4___#8LuArl1>Ey<-K?A@M0`bZ?fI+03`8=jQQa7c3pm**7eTlG&mMIU zDimuLa9aKcnTiKlHo*{50000bbVXQnWMOn=I%9HWVRU5xGB7bSEigANGci;#GdeXm zIx;pbFgH3dFx>MyJOBUyB`tJCSaf7zbY(hiZ)9m^c>ppnF*7YNH!U+UR53F;H8?sl SHZ3qWIxsM;u7iM+6$UY(^tuoL diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_clock_hour.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_clock_hour.png index f0ca3c6cbbe6bc5edd462d70406196fd8cb3ce8d..ca73621e866b9cbff423fa6c59f02826ff2e0d88 100644 GIT binary patch delta 305 zcmaFO{E~UXl=_{XE{-7?_ugK2cXO(cJ0YQ9sm!GQcZ*d2ge{aiL`TqyrKF<=-^NHb2{FbM8^mjXZI##DP2p2H& z**ZV*cP?Y_^pH}Wd)shZ_Dg27kTk}1{LfXjm|1Fjr@ko*sNc|W{TV}aal_iscTN|! zU);|dV0T!Q@mc>h7MY#Xg)T2Tnouv0w;`P=KeA0FLAFa3xs;&GdN-ntYEaFss7CYzUid?=8rtCMO zo@ueBFomDO_Q9xbLp?Q?1~lcv-Zxd+kN&7804guhh$l- zWl9!SWME)WEpd$~Nl7e8wMs5Z1yT$~28PDE2IjiPh9QQ=R;CtKMrJ^+m4U&X&(=0@ Z4H_UFx%nxXX_dHjtXXWylBm?^WIi)d zYft{<6$T$AC%Om-o=myN>aF?rVaV-L`3ra2ZMLnDG+4k;oGbr!&UYRcmJIWHws~9Y znZ*vAS;I5sf6*tt3p*LEuiNj!BP7YNZMnRbmBSD9bSeFb-i(`EH66@YPb_1&$tSN+ zrMatC}UJs zZ%jD;qF{0YqqvljuAzahfk}vgp_P$=m4St>fw`4|fy5IL&dC#TN@wm|vvu+zMneG1 C-*0{Z delta 315 zcmaFO{F!;el={P-E{-7?_uk%c&DXZ4=nd?{jOl-zc`osxa(vokvk=A z5*6}OwrQ$V`f7MOx-3!eUU%W{?b|Eo%#UssyZ7YACbt6&?0ReR|A(Dk-qUEvv1nU-mcj%Tk8DnhyC~ z7iKekF{^1fvy{a|dS)Q=lKuj>hFzax8nj<)=*XX6a_Zid>%X=idZC;8L+0;Q$G;N= z1VLb;{U@ezm0Xkxq!^4042^XS%yo?oLkx|rOf9U8 j%z#`g1A{xCt!)?#kagtdr(~v8;?}WtU30_aU5thRfU1Ky diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_ethernet.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_ethernet.png deleted file mode 100644 index e842cff8148771165b5a26ffc28b1315edef5b34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1090 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 OIxsN6S^sR4_yjR}YXV9D delta 1162 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 diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_mirroring_notconnected.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_mirroring_notconnected.png deleted file mode 100644 index d6383f33b5fd31557962efb2d5480fd668cf13aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1496 zcmZ`(X;czu6#WFj#Bl{R%iYp4HHaY{TnZCK$&Kiww1I({8@Oh!V48VsvCS=I)Rf#y zvveF&O0DB$c9fILsAV~+=omP-l#m4pE$#z$Yr#MLT{U2N9>1CmkR?SPgYlZ`S>$)$9hd)(9!{ zB44JqDlF$b;zCz81L#G)*omUp->lwe*-$DE!3JD&)hQaH=`P`A;U1HnZHh<5YhDH? z^ZS+NwZ^w`)LtY8dWc@Bu{ddJ!wmDLnQXN%O-XBB+{M9t_EPpK zUl36DW3p#?NuRgL>!9!eWu>eEhwy1n33}o1C8)YdxL-3?<5Y;goj|6NU3y_b zRr-5xEjk} z+#V@w=opI?T(eao2-aP+pQ!h31U9j?7qpf~z15@+&emwM-_nj4$bB5#oaPIeHMI81fI_QY)+=HxFVok6t0qv6E-k*_amf%=a zY1hiUxewG5a3@s!fS&ZoVQAbN|5Df}uc^NOWh`jU)aVgaeaE#p!4ru=m>lG(*~iG@ z!Yt4haUbyEd}2?23pPx69UonqE=op<7i-O1tDWDT2&w5`H<#x7o4=F!cX8R3-q8J! zn0GsOxn;+Bfg{PjK{M|3vOr_A-E+`_w?Fy}L1KJxeA31Us2jJ5S4$dn zrQxaLk!^?={UJq%bj8Q8CEEG?MY7}o4xlku zYqYI37DL5g@i;sDfrE02N25n&_FGx_pCF9QybyTl{{^*mm$`C*-qwd>?7--Yj7SzB gFxdetWA`w|c@~AmU|x#oW^K6wccPa|oijc4U%Ii18UO$Q diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_remote_display.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_remote_display.png index fd91725e36a2f098be3883367e45fc5c38a531a9..a7bc3c54b373a9dbd3384c82135e6981fd602d67 100644 GIT binary patch delta 917 zcmV;G18V%u2*?PKlz$jWL_t(&-tE}Ct6WtS2JqiJyg@-QS_IMv0WD0S$cPUJBm}`u z5JVIa8~+0fg%AWALC`|9P!!T7qzOq8ZBi(x#UP>3p2G?J5rSIRA7^10;0}C+`!VRogCv!+Ud07h z;yQ?*l=V=}IN&_d4IXdfXo%76^?Fc+B?cj;QxkPld_0Kuu-EG?RX}hXMza;1imG_{ zAl|@fyc0_ErGJY-eq^m}+-{L*P27usxIcZ^tuq_!7+S+yOrp)^u5w<2W%O~S_SfqEwE8*|AjY| zP29!kzYD+M&s8CwNDF+e%<5^}hvUj3g+urRw?(_jn)qKx3!GJw(eK7Cltd3;pYb_N z(-qlN0hAC~_w&SMrO>$=?WQZTt7>681>}yhet#NKFLE|;3YXAs&;pn6kg^_IsJgWU zxoKAW{eHH8Rw}c-nm=N!g8b(V^OzrY98qfSGpdglh*831dib8@bb71zMlLt+yfDMq zqw#lRfn4l+@r=bBH4bsJQY>8vp4GI8nq@aSi4?F;InCQJ|GM~EaCULtpET3C3HntbYx+4 zWjbSWWnpw>05UK!GA%JMEig4yF*7ppnF)}SNFfA}OR53F;Gcr0fHwrB+x zaS)^x!PTupGgWX1B04DQpo0`e=%gqLE`luz1zQn^;^I&o9BjqmwZ1mF4(I%m^Ww|% zw&vxAnlFT#bMLu1zwi0|KVgLxR#;($|1+vt5BmLneC_1VGJm1Qux%mcf~_>r!3g)_ zXr5a&{N3$BjV^x1yQr(eRH{57(8F~c!Abm)3AIULh`sm`_hHy8gqPWkGLay24ePiE zzvel0!v*JwUY6r+Jdw%h4F&_KvnGa_Ot&DlBflI@Ga3vA3nh?c8|7h@WlF5_!w2yu zKEgYhX-xVv3x7Y>R$+FFL^X9y1oHK99LD{40mt!We)c(@!PPvjThhR$Yesy(mapql z)cFFR;GneopW#wwU$>-zO%Vj9op^+&@I79WJU=2(H+E$ih;(M$>qtAl3&(ICFBbQ^ z@ow8hwki=K5)H8*@8MfKlJ7-QX_d&o)i_}?wPZpM;D2j;i~|Lc){mz!dkHbqXxgTZ~_r=x>8^8ffRKvX2H7(lW8LY z%_0ynKYt?5H&Su;orxx*+-ObkK$t+-Z<%3#!E<;l3*Rwu)Os0&XQF|f#dr;`;|-}7 zfV=QpjF&<1Kxp76X;)9-kYwv?`PsubjXinXc4NN*p@C1OWOP}w?XsmjfPIo9L#N;G zw-GX@OaBc7;CCBKg}`4@qqCmJZTG}ii|=CsQGZdErx8^#XD2?y6-fh&ls`~q;UAJV zyF$Iy!B)iiNAZf(_1oBa739p$=hy?j1wlChwmn*)3fG{)i>|F z&|vNH`ZuG2aQ55ryyWEbw#AXuFrAf3_DVXB`p3j3)#x;Wz&@!m-C_QH@%1d*`bbR#@Ry!QVj#TSU=G<}a z&D@)rIfI!G4rlg0=gj`Tz1Ci9ugwxmEV0BAH#1u6J=k+>HGhA$(P^6K2r67_n#5GF zkpe!kciRo~t%Ap|_y|?2<|?D;DrVY`Pw;05YF&SvnW2Zf@e>|GuNx1NRL*)8 z7hH*JH&&JPP)#`CG|>$nhw*fX(LJ$u2UKB+UWn<`MBNe}_oCfDv3JK@1q8Q#G+V)` zsEUV=;2@6R{eMuJFI^1s18Z&IcC$olig*HZ}R`j}u1pAqL9ysjj%v_x(<8Y7-a7fAoDXV~BHGM)56Qu07{6g`+4HBQs`WbcGDHvRkg640)KKxSwD@a7db2V442Su&;pn6sIneg zsJgWUxn@@P99zxyIi)h&ruierD#-uPFpueB(-EcSK7;yrh8QGF#)t1oPN&yDR^Ag4>57AgjQs z2!BYQ`~`PSk@UEU%G}etkw02!+(;DK()XLh%mT#{OZ;E(FLR>lM1}_R;Q#;tC3Hnt zbYx+4WjbSWWnpw>05UK!GA%JMEig4yF*7ppnF)}SNFfA}OR53F;GY&F3G&e0UH##sdjr$n)lNk delta 922 zcmV;L17-Zo2+atPlz$ybL_t(&-tE}Et6W7G2JqjxyG9g*pb3JN1VjR&AXo^B1PifI zuo6UV`~xg31Pg6Nv=K>>Mnn)&DT0NKprR1*6AKZS!I z-LvREu$-Mavpdf-^M1{+!3G;_u)+Ts-9axRqJG`V&pIJ68Go8YFSyVSY+;I<@koyC zmi*ttLSTfiaT?JzrqbnriZTAg!*~V1q@W>1OmGZe;8sk=4SA_JYQBJ z@N2gBb}J%Q`hPL+f8F2IMZ{B4FpY@MBjVod7ZIa~xGy4(Wqaj5kn@i7c{(D#sr+hu z-_7Ta5_R6f>o}RK|0aG;_0c%~;HUx?op_4-@iCrLJikVuQL`#T^WQha*33J><#+<0 z;<2WGRDV0PkPDRvH4;s59nRnb+?9PbsSGOQpK6?HGJm0%&~11Jui-=^WU%D6Y>`&Y zswTMy@fn`MRaHdhl(iJFC}e^w@iaccjY@P{dDVKU6Sj5J^*G-2ueE@w`EuiJrKoz} z%;DEkKs`WI;$Ptb+@n;6i|EydR7)jX3Y(NqlIw6SdqJjCe&gfoi{PhW!=~;Z%~}GIP{e2lC8z;7HTn z#`AbVISarI__4Ovfp|sTfiIO+J&RiuTi?!icj7%9&G!1RH`{?Xlw@>XvF-Lqc>>oe zj!Zel4G}UIOaD0m@RRvcq2dqaptFH-F#v1k{SMy^ZLaF-Pz!ev{|u0njD+ zJCw!l5aY%n=U6pn^1V_j9K|(5FmGukpK}BA=noeiQ5J6UMu*IAFJZEO_+I9A`k-+$ zB|YbbCFb6n|5A3KI{VdlRB`gYy?Uw~n9eCBdxz*{p(3K*=ADd)o#sNUPweLNOmn%m zFMpqZ>jPKxyz-0O>cw*DSfdiASCtoqB^|6U99p2*V1xe({sQS+^5NHA4C4R*03~!q zSaf7zbY(hYa%Ew3WdJfTF*7YNH!U+UR53F;H8?slHZ3qWIxsNY^E*5M001R)MObuX wVRU6WZEs|0W_bWIFflVNFgGnTF;p=#IuA8CIx;pbFgH3dFs-hGfRh^pF)Ee2VE_OC diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_rotation_locked.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_rotation_locked.png index fca5105eb174ae0d594621258520dde9786ea2ac..1a7618de8107e65f0728024bbb5152d88f93fcb2 100644 GIT binary patch delta 1458 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 TFg7hPH##sdz*+xnlc5DMZ8K?` delta 1277 zcmV{_I{!jp)^pGZ_m zC1|Kv*$R<~jZ|V5!p6o%qC`YUS`lp93_ovczOS*Q4nKZZ1g6CsaAmaWDT#@dZNs$(I;|>cGJjc9h zHOUZaq{UlFfqyFpD9}K+P6(BGU<#|2L5BuTCMCW!*aNF&Wi>+=C*r2l>6pqsj0D?; z=kS;D<;V=yV<(s73-F$%aSCYi*+ zQ|chTU#D(26uHo{coMhtET5yBzJn3UXo->$3axzdGRyUO;2<_-g3lJv)<8L%Noldvn`w>d3ah0NE|AepfRi|;2xfpvn zZjgnHB8E5O`l@*|VIpKs;uE~32%Vgn);^UDL*^pcuEU3Y!bCOMfnADCYo^B9@tRj% z24KOlbC?hcs&Oqos!-s5yo9Mvr?Z#>V?otEP=DotQ#BPh!{Qzo1yQw7P3E@XNkuXS zFOTb1MeJ4~gx-fW>3$r$eI)(&xHp@(l+0a>4SJhQUZ>Ad&0}JrRf_7e#t3KJ3WSG) z+@1Dr8JXLQ?G}=`27bim0SiT#?NCkyMnyNt`nyrdT$aSs*q=@EpG)GV^8KNyi2piC zynou@P#YE9eBPnRTwfX8pM4bFh8FHq(27zI^zAh{0c@JzwWz(34YL!+Msp0m=~+I6 zpHe%U*7QBHrsql#o|Wpg}%!~9p-Gf)Mu?@u@bAKZ~$i|J;1A*|wF}#`tIbv`#DiA_Fkgg|_ zQBElKkL`U5FN&pf=JKQGTn*vtbmsObJW*wg(aGFWv0R7xNj7%_Rb+AG$-+XBIJcmU zf5xcbEY8RCcu|q`8!Ys|o46g1Cpn@!7-a4TJS361PN!2!<}Opvg_v|4h|b);et*MN zU=yy%WC%qsQRGl5nTy)}J|5BQij4zvI9u-|S9SV|Bz*y&DymcD&J=#tqw_1)nXB{r zz>+$1Rb+0dh|XNo;+?rE<(uN@WNxWgE)PtyjK&T=gKyKbne+;)9vfD!iT+aGZnv8X zt8c`+isNfo|1fUF&q^9&E3QCEXEg4jB=EW<^gH-7`@GhfVA3AwSE5Xo+QKtDogNp0 z_qVe9(}ZxCKYRS|@h`Pbzu}iVfasH71s57KEigANGci;#GdeXmIx;pbFgH3dFx>My nJd=tGBzzRH##sdt*(QBlfeZsF&A;6 diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_1.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_1.png index 57b3fafc827393b3e337611f13e82e507e2b8247..f9ecb0230233aa5cf4d19fa0b77e486cba1745a6 100644 GIT binary patch delta 906 zcmbQqv5RBEg7$Q-vzOVxL|{lKe9TzMCt^W75WuHc>;JSXI4eI!$#Cvz3&4yKyL58h<-HZ0$ytiTq>_<7mh3vQc5nIyHU z<<@ShzTr82Rmb{coIU|J`41#AM@{>9U89jxYd6~*qZF^}>b*h*En2Smr|vOKzi@d) z$dhPAf#VxjZ#v)j`f@`%Tg#c#UlpzP+cUhI@!66~?}pCommE(xt{N84*`-!LU$U{s zDTcxQY-!Z>;#m>QidLV#H?;djmvdHVS+lHT^1l(eX6xQ_E9W}2otnpdZ|1f{*6C*j zPpnLRyJ+nky>veX=Tv^C_ZPK(AHK61#6J*xQ!Xl1d6~$nV;m_fa`JSer~5vwNls4w zU1K0|LdCPqse@zfrlsZ6Lf3ra*zusAapTUNE0;{UmhR=8zfW86!vSxF*tocTTlej| zcl*|@Suf|TZ*554CbLI(X$@D;lprmRS-;-|%xVy>UA^gg!}Vu15^W0uR(;EfZKZMh5F^kOy%?%y*l;$jXz`Y`j(P7dzM~}}~zeqVDw2Uvp@%pBfJGW`7voOtV*|z@=%ej6| z_x=3^e^P%=I9Hje8t0OKA+G8P>jznnW`!S%rbM0UDB=H+vu-}){0p;f?4RGV``%dl zCM5sVgTJq~{=FUMQ8>pnC;PU&kEW}L>*Bio@;W*?KJ}NFTKndms4VmPXLst?jjet+ z^0_YE`q^qIc7cI`LAAs+q9i4;B-JXpC>2OC7#SEE=^9w-8X1HbT38tvSQ(h=8khqa e4R2z7Q8eV{r(~v8;@0qSj3~@&XqF& delta 870 zcmdnRF_UA$u?B)9J#x>Tnd=M-U{K5L?;@sZ{ zYgqsBeGuXZ-Cr=R!SMGyrW(#4JTi>Wel48L!t+5lf!%_;hP6-ggYIY6fSdK7!3V(|Tsi80k83hL{ut4G-S`jRj@~=W`#!U*+47UAVhZcLHSF3< zZxzko20qw$ae9_^Y$MOq-g=MD%5)BuGc_!CnAa(XnuV9_*uY+sa)aeS^@6p(il6}xAPXt6p$Q;w&?8TWfC$;p= zbie6afnqm#AFQtmvx>duw}5YI?i7c%Q`fYnRTtfR|Gj*_znXBq)!a6xj_d=>ULn&` z*L>lc@u2Zqj#+oBz^!y2XY>0@IU*j^+bX;&vHH&5eDGF{-TdiaZ*wqm@3G^v6LH$} zu59O#2kOZKQvcU$t{wSC;bQL*xCh`~SAZ6y@h68QVX*V*17pd zbuQ)Jx*>S8bjr8F1iu^h)$b2CK5$4aVPIfTEpd&AE=fr&NwrEYN(E93Mh1q)x(4RD t#)ct=##W{lRz_w(u9bnoozK=bP#q8rx%nxXX_dG&tXs-#Z9rYD^exLhm_5X9}`^As`Et)F5H!gq8o{aV4o6=nDBsS;O2iN5Hye!*2S>0gK zAGUv)oA=KSUSloVdR$0iaRB?~3Xab&9`9cCenZN`NS)-R5!nrYEn2op6wB^keD!S^ zyIO~z#(j^xIwozL{&y8)G%QQ-b^p8o+f9$elw!&|LPGSe(6P-LU+l z#j_3DH)Q>+<6nKzt}prG_2c!)6)SH%=Dp)ued(G$=M$E{b~?YA&fS&~`+4`^d5iEh znsh@e>f0WBbe;PU;m`w zROkMdV8<1m&)MejL~=K0PQCoB{>)jIbC1HEPamEcuxk=*iR zoyvs6?{jUWx}HDzci~yV?NXMaKl%@zPWao9zo=GXy@cAIu<(9a)qtpPwP##@GatS@ z{mIPcAjgblu1VG`MM?9fX^GxBbbLqeYQ@=y>vs!Z|6wm6;Zb;YL*I5Mv-a&gwuSc$ z3iZ7_|EkZMe(L?MlBqWWnT*>WZY*E&UPzA9>H3Gj6SpsA)-0V-Ey?d4-Z_nPv9a5< z_pYZa+;{Qa*ZU>Mqgvmy&tJvgwhow1nS)H_L!#o zc|q)%x3~Y)@3yomzdR#Tc-0CFaD(#>^MU*8XB%u>E6BjWpjzS@QIe8al4_M)lnSI6 zj0_BobPX(ZjSNBzEvyU-tPD(b4a|XzhBvXkC>nC}Q!>*kv1#Cf==iwt>Bq@am<<8f Cpma$9 delta 785 zcmX@few2N}l=`WjE{-7?_ugLL-yISz!v5j>o|&;NEYh*MTRa^$aI(2@CyQSYxfRvv zs?-!F=pq}q`otQIW5-S@<*0YmH!Qdz+3_<_rKxQ}Z`YEJsRDOr#&(ylE8c8<^3ksI zIz{_G%=o?U`|&yNcRrs}EzkO2KkCBUvgd^#Z=bryKBKp6>PKVA`uXbvQ{S&Y{-tW~ zQt=HEX9R7t?z-{FX(|{mYZZ-X-5Sw(^<&K8`4WfIv-tZTm)o3}W7y4E(^c2=lkxn8 zS6{0(PZOAHDVP12ZQCm6G@D<)cE~a<+bAA?^v>%aO1DDKSU0Y3{>^!N_N~UOBfnP( zm`(fGEHJTv&42M;Ve3PT%sEHu|K+?f{L}j_sM=n9g4nyq6&2qZXuX_KWilo&7QYAXDXLjWgbl^0v=Dw6a-#Bd7jG$^9!2=Lr1WzEO4AyJPErDF2$b zs`#lR$Bay+h1Q8B=e8O%z7;GETKDDfXY(fep8Y(Zvy6KDo1_mqS${CLo4J{J>aKP5 z%kOKx;dTtQDc_*GLo98!*7B>-XM8J*x%_!-`P~ow*!Hvi&L+VLA7Wxtg??2Sxgjws*R|mB|?S{AgV#_ddqqQ_lGh2duLzeg(Zh z!&b_=YL?JO2}VuB{YRc3{M)p8NB8@t=;r)scOKQ7i%eL@f4MDgKHp=%v^$oEkNgdr zd*$+t=Ga#S+2(;>t66{9b$r`VKka1q50AMk?mzbWkoz^W=BB|Gy~Mr0v^KtY{d@mH z;85kH;OI#yLQW8s2t&)pUffR$0 zfuXUkfw``+VThrzm8pf5kr|L{WnggUv$YM1hTQy=%(O~e8rTdB)~;)Am^_2o5C9Ja BeXIZg diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_2.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_2.png index 9ced4b0027782b71ed713918ef84277fd7a2af37..2268801c94618ef990e8783e230aa28aa9713b2d 100644 GIT binary patch delta 879 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 eiS9nO2Eg!^e$JKLRyKmP~%jtOEde)||@# delta 870 zcmdnNF_UA$k+w=IyxivSmUCWL= zeqEgQ?oM&~gA06b|C{CCW!Mz4_@aTK`^WjGb{*8^*r#;xdzEed_Vfcxb}V{~`x^`I zR0!x?c<`QaePd_d_c^KxZuhS@=rhMRCLf6VbHS5|sfKk1)AI(|2Q6&z6J_TZG1qX+ zVcOQ%z3A>)9hC#sQZ>9kcw*Sga^G9HF1Y^s=!3_C{}}GLu5CO}$>eschSkQC+5cAa zrZrcy-rnzbQ?9p=@yp(NtG@8T%Diuv@5R67@%Z47Y9r^~e6YcQ$NAZjJ;p3NAM6CK zz5dGnw(NJ>{`>Ni4Xt7#m>IRMo7C}&_o_G5 zLQ~JO%6SPGDaW#{$oj6tXRZNmDC&MTFkd`a7F6XEK;KxIbB;^Eu+3q(|V*AN!^hUyotQ zx$XEsQR`c}-?=%;34u2?KS)$~Ggj6;1%`_71G5cF->ZB7(wWxan!0{b$hI!7#WRb& zmvcmfe6#t$YcV_Bz)KaV>GBGpMB&1)_d1Nuspbv(2TapK!`l2*)(L(-tQEDvKj*h* zz18FioKtxl`VYwZstNSfK8%@m_G7Ap`f(&DSKj*W)s#A>@4AaC zSbi-1zn^j6;w~HEAN;koZL{76{NQMqc(H7Q?&Le&t~!Sgr(Lf9(&=$&?bq8^vrONV zSOspr`DL+&*XP0vzZ>y#x#u5hi=E!Zz`&qd;u;ZMl9E`GYL#4+3Zxi}3=EBR4a{|o s4MPl#txPSfjLd*sD+7Z&pRH}6Iv^Ty^HVa@DsgLAyRNxmGCPYQ0MEsFkpKVy diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_3g.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_3g.png index 181be78dd39bb4f01c023a9d5dbeea49b87f07d5..fb0168717f351454585f6c09087c260a43e1fe31 100644 GIT binary patch delta 966 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 BfYks1 delta 772 zcmV+f1N;2)2i*sdlz**BL_t(&-tC#aZWJ*Tg}>dI5CWn=M4_MnDbRor2vI~z0TQA> zR7i+`D0l}d<_V^x<);7%5Kxdj0*^rh;t8k`$?Ob;?aW=vV`e7vWHqE26f z6R1$xZD37>qsLtr}z$e1q2sjSnk$(W5cQsBg1RQQt08fBtqApwl z7WfR<1YV2rI=f8hoPbAVp*)OtW}Oo7oMnygw+@%R6Y!|)I`BuoYaK3oC(wt=4obkI zvb~DsfjV~_N;2R&@PHPXWgBa~0v?q$-v_yOZAGBsICvlB`*SyE!4Yt%>tGBzzRH##sd-19p;laK=!8Z#|0H!U+UR53F;H8?slHZ3qWIxsM;u7iM+!2>b! Caagec diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_4g.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_4g.png index 4e47178a1bfca85dd39504dd4ada2489d244e78e..c151a642f592c033071f8a1150ecbbcd79e75212 100644 GIT binary patch delta 876 zcmV-y1C#u~2*e1Glz$XSL_t(&-tE^vh+Rb#2Jqi|Z?kbDt5_&%Aw(M+72yd&Ort~* z5>QY<#m2%vC|FoX6h#zCuvrVy&Qzk6_@@w2un^JWiio()f<&=P3Q?mm?!IR+XS|c^ zd+W0Mo@wTT%e{Bz%*^+lIWu#HigSzJw2G!_N}GOsk1^V$uYZ1FJBnwV4Ti(v|0AFv zpKZon0v&<9O@#HM{lEH{i+~QXF|NSXQT7v7OHn~^gv)Ugu8g|l_yRu`HfAkiVGA~I z;FkD4h6g*sM>rhMav`jTQ+O56hFvLq_5up;53qrUgZvpR7N%LiCk7 zgQu{BC*~obKYyicLkflGJ9T;RL6E;Q$iqn-#I?8{x8g+9J%VeZ&7?7RE}*k;;RRe8 z#5N{)9_}gZpTj57=K?;%>ruCe+ct69&IEKqXM{tzA3tNI5RhkJT?&gE&ISIX@u7|6dra7;0QeT?Q?{kA$ZKeI_D3iYdPe$F-_)8mBTlL-m@8DZ} zjW6*PUil9vYzqrb)0C&^5oy7_g%71L*o^d^@9l`3i-0`9#qrJy`9fTP^9%c3;mPIr z|0dqc*jL#6F3svMMcbJ!-i!t97WuA}zvK+EFKv(e@Nx+K2uG!yh!koE;`?X_I<5_~ zOSChbXK1#m#Beyw9iG6)xuR*BoK7rCvAi2UNPh=Zj^|_2X?#dZ9X`i<_zin;b1~Lx zyw6JPb}V2@-cOqk?FsUn9Zor~c>u5BK3s-J3s3i?#k_)Na``N?(akP2nc&_axg@2> z?-%6D1-c)%hy9YY0jx?V^qNj0H!Bg_-jk~IW00UR53U@FfckWH7zhVIxsNtvE}iT4+Jr` CE~UBv delta 890 zcmV-=1BLv=2*3!Clz$LOL_t(&-tE^th+Rb#2k_s%_jY5lt{(^?Ho*i7D@6$yNJJ47 z3GrfEuzI*LuO6Zb^lPqrs5gBb$|Ls*p1gaW7&HBQ2t;j2$%6B?!^N^{O1@ug!^OuTK~L$0-eBxH?boW z8%1A^ne5NYh5Tzc8*2{m72b=ndF0&*3-8hgV}f@4zayVsCu^fm0nB zcpnGiIURkYHH@`slrb}1_$L$57-+v1NtC4AbjHkqOgSfCp_WcI; zN$K)!?C+3V3vct138!X!r}wT@6U$iwiG{I(7N5E=>O-Wm2&@uSnp=(Ae+T|%c z8j39ASAQu3eN-s=OepxYpO;)} zDZams_Y(F+d!Ti-m16Ep2n@72{$nZ7as}Cw(&Ik76GTtrh*T57hj=X7M}p9IS~uIN z-QoUB2n>hAY?)uA-~&z5Lo(~I`)o9LQ z55-RG3farjS#nA$@UE&vr$u7Z+qvF_CM(t{7iM;;xz;OX4$84M=)34^%aJ@Um)tYC z%pX)#R8&+{R8&+{R8&+{R8&+{RNN^14Psx>d(qfPp_8!#7fUlOFgGnTF;p=#IyE>t zGBzzRH##sd-19p;0000bbVXQnWMOn=I&E)cX=Zr!$+5i9m diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_e.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_e.png index 71ca84424780daaf9fa11875a183d086083b6106..47e9ad5e9b47fffa2b845731537e10821ecd123f 100644 GIT binary patch delta 474 zcmeBUoya<2N`0cIi(^Q}y|>e?{f-!jxcUpt;Nt9Eag(9sMW^cq?kcM^#tmF5VGc*d z1onnII3H)5@Z+hwVDuhGVWFKJ?Js0Cy<~1r?0*}hny^Im_3DCiFO&X-N4qj_VNjZM z>utTk7ADENJ#vig4mU6FVHG5`w~24klUtYHT%1HRUO(QJ%;z_sIBu9sSZ zN5bR_)*p`kdNuU`;|I&53zAt5m1#71KVXZvw6-UZ5{>&rye2sqG8r_B za7C+^pL@Fh)vSVzXEjBH>X!*lR9jRp)Oc&Y_X8#iX0dZS!>;N#MnB-wa9JYv^NlBq z*uOc9>i;gZXw-gr8sn)h%3)l?zlS0JPtC$CsRaIt4^KVW?75Hq3lb~2ozx*U-{qTk zrbJsJ0u?`#Uc(w6pxicXE&~IDYKdz^NlIc#s#S7PDvw6HQT kure^!H82M<8s5bEqUgxYPsvQH#I51u#-|@A$1)iL0Bnc6jsO4v delta 434 zcmbQp+Q&L!N`0KCi(^Q}y|>ft{SF&QxW`YLBwEOz#~{sI-VnV(+3>hK;aYNX>*xeVRwhKQ`7w3pv_dy|R z`jVat5{=0ZM5^D_2G)BonDQrd!BMqKcfM{`3+Opu(7FjkMR28hFOXoo(J1n1VwBd> zQx9sV*%$rqycm~#*ZoZ9d8G?Gw=wE97B2|%l2i|2?mr;9PH)RK&sT}79NykyvMB6d ze*B)e+y>TpTlB7R{s`T}Igg+F=KA#lGc4hKEMsX=)T?2DnW5Wm?lK4$G6RNdeTf>#oJyWMU+0e=sC0_*|SI&zIBAfg{x z@F#$)K*zQRjU^z!hZgW&;2|dZzue145)j}O&;_;w3&45{UdaxPG7o$LYyzGFyG465 zvycEESnw@i9ykOnr~Rf;1lsMk1Meby3pkEh15x7%csc(Ha5f7(Subh=9by*kIt$*l z^|e|@AVXynM1QJmECFGm1$_#b1-_GWcGO0|Q`s&M19yON+n#HqSqp&_mEDI?*)^=B zOP$A8=R(K1sxXgS1Ex$D!TyevSbR^CzTQqLX}`PWeLeNKk;ohsHq zgo*q);F4%-E&)$vJHQd(8Y_!+XvaB2Cy=7D)4(I!)+yn#IszHBtXs6D)8)tsq^Rsh z;4wyJf7*AY)8)tscq-e%sO$^_3RPtUQdBmxmK~N2;4S8e z(2sNrcx|6=0M9X-JU{2UKIef6R;o8`@qYB${%y;pIARgY>CtOC;r-mU?)2~IV~|XR53L=F*Z6dGA%GS tIxsLvT)R1wu>%(xGA%GUEip7yF*Q0dHaajeEigAaFfcd)1BH{~12I{Iitzvd delta 864 zcmV-m1E2i52$KkqlYau^Nkl8IYfuNuOX`uljSVVzDfh9zN zsE`O3QSc5_yag?n0wO>x10A(yqQx~%|7vZYGRRkZ};Il0Adj@jA3xD7O@C*231`mS88vGsL zB{0_Gfwu&#=tmmxMc^}V1Q?l{UJ|gthrk3l1AGOJY4D-_fLG>#7r=2~7dUT?`&or7 z@PP(@82AKS1@`j(;}wA{%M5rE;dj7o)EbDrC*YLL7r>(;@D$xx5$FiDXpaJqt+Bbb z(itdFS;3r~_kV^!PUHn}54es}*;3iz!y1TDX_Er)fkcm&YI9aXAV*~{p;UI0Y3j%_ zzFH?RM`d?`lNxkX#b2ug3RL!-CR4dPZk2!~R07ywsphJS$VnRsJO!Rx zWBw9wz>k3&z#Hp*OZ%9xbOHq`3)9W`(rl>&3ih%l_iLBS#t9Ut>=y7>->Y3N8z<0& z%C<_NKxG>h%Y_I?Dff?Vw;N3+6M$>L18Q`ZtrC!OCY{5(+THPQ;9CO1@9IV_ff{j+PtuTNR`;--mtI30000bbVXQnWMOn= zI#pwGWnpw>05UK!Gc7PTEi*AxF*7ppnF*7YNH!U+UR53F;H8?slHZ3qWIxsM;u7iM+2?Q}-&4KLz diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_full_1x.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_full_1x.png index 47524ff1528058ceefee73f69bacb33b9739c4a7..5ca9892acd4f73f07b44b1edc52eda6bdf0611ae 100644 GIT binary patch delta 788 zcmbQoeu90%l=>N-E{-7?_ugK&?Fb1MVgGP{k7VxxvnFkq*&I$?4lElxofMpSvTijf zh^h6iRPu1~JaTA(qhV%HB#X79j`+lyQm#{z8gwKCFS~5K#(szBry|ZVQ zcK>cazWe>1^`GtIzuRfW=|}C{nEB~lK;^}Gx+!NH_L!&KUG}5C&MYnK`K^n>5&{1t zAsDt=31QY}XufJ9A`4c16dvE9bV_ zD!Zsp$yYJo-)+3`fRs-EbD^>YvR-cwF5h@8wMOKv+6lRX;)=7m4kbJGUC!BS{*m$C zL6&KvVY>J4Kd9TX{qf-!uOHRt)`Yz&hhcnYk4y-V(% zBF~$4eBuR5b}y&73LlOcG%c(-*LwJeR<{R5WwRx{A^iy=d91HcE{ol}B_@~tOFS`8f&Of(3=ilk-tnheZNUBlVhm?jV zi&Q2Yey?$@{gLHP|Jl-c-F*&y|Igl#-!%J&?ycyLJL?YZfAebN0v4~+^A1ePs9#w--x>U? z^Y`2-SNuPAhSa4mU45iUC}NSk+-bI7`;JFDzR)_?zDIZNvGnep_6c)Kre;VQS~;iu zj4Rk>x&EC%`tqe77~a7HVXV;Z_in4zhUq8nG6gJswJ)wB`Jv|saDBFsX&Us z$iUD@*T7QO&?Lmr)XLDz$^ghUw=yvBjM;68q9HdwB{QuOs|HT64hu%+*2%fdh5+S0 Bb*umY delta 745 zcmX@XK97CEl=?hR7srr{dvB-PW{5b79IxNKy;D=AH@>w=LV!gycg+^zH99%0t0OX% zn|fQXi7iUfUDTT}@t)EIEwOf%i)tG=Iv#~DZ0(x<)rCo<>zJR>ztOTSE;v+>VL7RP@8i{ zNCUST^Rfor1AGZmH?pqFd|;fx&?l5uAymP*X4gr94ZIdSCTExP)o@iA8D^-YPMQ$n z5jACt;!4GpYY((7aemgk#QN2z6FD=N%-Wj2>!13hWsCe(GYgp1RCRCjZ=ci9w&bth z0Xfh7*a_+}_w79A$KEg8e7#-+U-%+_! z`mH+e&i%Es8`Bq0__D>t;q2Gzu^ZG?-)`GKTgTZr&OubfkhxDPQBmyLyUQ8h)CweL znE!TtkSrs-!!6>D=^-&2nJS|XYgCvk&;Q*Q{X#eU`rE(fDncjzKfK#;mG%MYUG>KN z1)UQXO8s@s%VBZZ$He>n4$HMFm%gP9JC?_@rs;gxQMT^!s*e_2Cpe$aRz6_4S(lmn znjPDm<+~rWZ*INC|M#R)pWWv?Y1`zZdY|Gh-3z?lXvDa2!r5I3(^Yb{G*kH9brVi9 z{k&8><%VA7RasNN-TRs+?emN(XI*z|@ezNPdLOT-jSAPkK2ChsIQ!}GcXK0_=I{PD zeNx%VMTcVole#POn6@{}ZOQ#K_vZ4(=LfhRuCPgef25VSpgCY_^ntWPAAgyOzVZ2g zoc*jmllC0{JI{>|U3+0~dRz7JuQz2itHh>ws0eksC{2V@Z3oN4)g2GYp8R`}fq_9a zuEaH>BqgyV)hf9t6-Y4{85kPt8kp-E8-^GfTbWu|8JPjORt5%lK3m&>big&_=BH$) QRpQpLc3pGB*8eEUyV+p?5Y=73DfCpXy`+;#suGR#E z_frf0EN~lW+5V`u1O)iR0zLpd!+3wqJ**`G0X_!Wz%F1Bn6ThuIiObNfmgs3@DkW3 z`sjY#YdcN5H7S>X z7S_|HE;3i?1Ujhf0`BDP!0AE2LkU7Qv$O(0^7R9)*9&R-`TZJj4Y-KO^?xH24A?vy>KAa}0n}6@PQHE7 zL=iy4b`M;W4~>8X4@5d0jelIeu@kMq#6S=$BL-4HlcZPF#N_qW<8u%v!Ith&2ng?| zm>@j~+yN5O5s0E-$2q|X2=Gp24+76^UyF7-==*{a5a9h<)&*@6`Y0_J0S~+aCV>|i zmHlm>^?#i%hfd(_Tmv@Nvh%o-4!Rg9<>b3B0y&;nz&Xs?AL^P9LO_@+2QL73Z990T2}&SGWlsT*ZMzk~DZ?X> zqq2uFDm#kt{)ThQS`o-m+1;30c1J(XD3w5t%70E{wg`JDcmP!?0Z(PeF(<}HEO?i3 zuUCPstXFT^;{ERR{o7VZ?nMyG z<$sZ9?XF|mYkK_EEtP(H7o$|CcPqN@qcj0)>P;Ke{s2GX)-W?dnu!1a03~!qSaf7z zbY(hYa%Ew3WdJfTF)}SMIV~|XR53L=F*Z6dGA%GSIxsLvT)Q~{001R)MObuXVRU6W sZEs|0W_bWIFflSMFgYzTG*mG)Ix#jnFbgs*FgH3dFgO7Ng_G+8F|^&LKmY&$ delta 873 zcmV-v1D5>A2%HFzlYav2Nklp?~=623HciZ-O5Vhi;ER3V-+nxB&bFerxApuuy@& z0}Oyz`8{U|7|{2r*wsI-QO`nSV@#=Xn6T%DwcCur>lFc))A7 z+reNk*j4^yRo|(FfCWATL>Puoc6N52^?E&mAXr%qR`(nTk(2ZW@Cxu-trnijBPR(M z(YI9=Adcg>O1I4rFu>b;Sv_ehFPF6wu)v!ty9fNy&738m(t4#T+b97cM3&0dy6ao2 zb8ETOlYjOa@PG=HWfiMD0v334JE)%GCy=} z%$A9iR@s}#y=<(mMoaWkA4^f$%Se^oLZ;EexusJCQdIUV@EJH$B^ZqoNKx5S$P!@> zNXMveQbGZ1WG2et#$=WQNLyz&qfUA`==N2S(?<@vJX0 z?zYbku9w%YtP-C9-lJ-JDg)EfUn3R&j$WY-5(=IJ2CnQfnS#I za9bg{Hzu)}9%(kqYcrirMZe!qMx&8Go6WMmoseHg30AnL-q^DC7o8~PiATj0umAu6 zC0=wzSaf7zbY(hYa%Ew3WdJfTF*7YNH!U+UR53F;H8?slHZ3qWIxsNY^E*5M001R) zMObuXVRU6WZEs|0W_bWIFflVNFgGnTF;p=#IyE>tGBzzRH##sdt*(QBlNSUr>92e- diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_full_3.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_full_3.png index c40ea7372375e1e6dccb8a9677de86e5ecef48d7..be1ed56e0955d09fb68f720b7acfb76b65d90dc3 100644 GIT binary patch delta 911 zcmV;A191GB2*C)DlYavdNkllv_>dDI>f*|P0g9suB^(4Jk>vrNHNjDAI?dUXQ=4^F*hqozycot8^8fz2^iMk1G__|%mJSOqrfZR zh}B-rEM$Qf8hi~{1Wp6%zGo^$AdX`L-bDBzZ~-+3qRJC+a{e7)t{r&V-6+Z?msd8+ zYhT`nLkqVzl7HdRA%vLI&0)LeOZ@^icpwN?f5_b*KS9z+uu^4Z30M{a$@=u=*>A5` zr{gzo*AODr=qQbV75xa6>+1;d7-YX{7O57Rr4X>d80&lDA zOJJ`8EyGUy6-vMXZ&Y>(IIPKZygwj_$-V-3zc1>Icd92m$?)0sO%o# z1xjUq>wkM)r_0<4I4WC1sq7Rz3RPhQJSy9EFPoM1iX3|cfR92E>UoSZ20^SAqMwoO!0nlz>NN&jJg&+{hp(`4RA_>E$RsP3|w*k)=P-2zEhy9lv)86tbd~9wn9K;->K|*GL>BQG(z99FJtL%s=Gk@O-0b`6**_Y%hTM2w41f)=r zE9xUMmEEL7Wm_lU3l(|xPuOwCIy5r^9(YAoCJwl+>pn9f;DPUuW&R=XSop#v;DH|j zSAiGeezk33Y9~;lvXH-w*Jia67^AXltVzH}bYui9kW-HE^4(_P2dG3ywg6%BH|w;5jqs z^R*N3z>k1yz=}N{?J(wS2^6U81u~UgApdGmd#|sBK!M7h0zLr8swAUP0tG62glvnj zg!on;ECEkt7lC)cMYgM~EFB|8!}zi?Q_k6f;Hy1<27Dyjngw6%!Q0e*VE z-E9-ey;#JuJc=y+#~ef6ZvVQsF$SfSR!W&(uNP~r%VNwe2>S#0JqAtGBzzRH##sd-19p;livdu8Z#|0H!U+UR53F;H8?sl SHZ3qWIxsM;u7iM+5Ck#hQ-pi~ diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_full_3g.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_full_3g.png index b00b0ab816504fb4e93d8ac3453154df1566f039..5eab3c811e25f6f6a71486ac6ac9c5a37965f54c 100644 GIT binary patch delta 972 zcmX@c@t*bke z^gQ+*@&5mC@#_8Se(hWJs;VUTABYmD5V)Qq~m-5(0g7Ttbr zzKwe==NIK2_C3*u(tj9Ut2cY>J4dvOzd*69_0tCa`45)Q$amCFVb3s?bc%c_VNvU|7J@4qp$LY zd8VfpmoH(NKg}y$dcU{jX2WaKn#)%x_Jl9o)V95_?85912_OD+O>ef_`Qw_CBY&4g z{bJ43aMJ}pZW{DRdfnd3{@V4^!|FRKp<-QXp$V+7cklg|>Gst0{iE%PFG4oHcF#K? zb;AA}+nEIEeG#rd&r~;W@z!>Gcxlq72Yc%mgirqeo~@@fz$`1U>!aqJhUJB#^Cn7N zE>7mtu-zr|xpl%@k^A`~?X3YC(?6DOzkXi!i`|=PlfG;-cyPX{Joe++@TGNy0_z`J z@v6OBB735`+I|k5gUz*M5ZUo)CDZ|JBw_ zi!i{Wh{y7rd;hu~`Q+xnz`&qd;u=wsl30>zm0Xkxq!^4042^UREOiY{LJUnEtqjeq k41j!dD+2@1nBA5rI&$+S>h@b>FZ9-bO3RET+1!iI5M}*qPG|tSg#e43|na7v6 z$mhk){ln$nd(J)2Js;0K=U%9Iu;}E8+T?Yk0nA04U)1Sz{(qOuNDOEw(v6J=VGyqq zZJ3P3kT#9z3{n1Z;AP+$Ul2_?J&>w!mrRlq)AJb1^VUjjTD;~C&il7F3vO!ITJMSf|^!97@<($qQn z=~dtm@LDL>1EzsJz{jzCHhrtq0)S<}CbiJU!uZR;Wchv@sr29e#i{7;#@dH~mw?ZK z-v+EN8f^r=3K_%D9&iHKl^k^6=!Vzl>p*y_7i|Zy5_lFk5;8l00|UH1UunbeN#FwT zBaJJ|NPm%xX%@HT>A>DmS4SPV8noN$s&t4Sj`6GNY^*t+_^s$$4si+T6Tmz459cqy zQ5Nnof3t8%$ALA#b>Li#R{$>nU&MFIwP7ml*K!40@Ots`W8q1o3U5l0crj?IH;Kx*^pR)VC7_;hgX0%=ohnT`Z@ed;2Rcap8OWr z0&D}G0+s?df$xA*!1pxLXB%~3(1T{ttGBzzRH##sd-19p;lN|&X8Z#|0H!U+UR53F; WH8?slHZ3qWIxsM;u7iM+P6RPB$G?yO diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_full_4.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_full_4.png index 427cf98a3d0a0ce29732e55cfeb4590081270a6c..502787b76c5e3120bae2a14c4d64b4d3e9f98cc1 100644 GIT binary patch delta 798 zcmV+(1L6GP2loe%lz+!bL_t(&-tC#YZWBQihClB*F&EK51V}DG0vbTvf`mkYD4;;; zKq7RASD@r2sFAoM5kMrV@(fhzX(-dtbF+6T&KY?!nw_lIdl`g}WbN$i`1t?N&YXYF z80I#&|J!<911Mw5TRSf1+}tExgPRh3VuRma8OBe*0iOY9fq(smT+{@t==T-;9pD)- z(*9nw1T65W0zLW?!ES>SsL zegLciSAgHX??gpldu3?An+U%KZX;`;A3Xsl=RXA=guoMe&=KeqS+oZgyy+{nPTxR4 zWizZ)87%?JQhx<~54Z;Wpycf6jDVxEW8fz67Fg8&QX9=q2zXTX0;00}n54_RjIY)S z6sYVva8yC3)A(zZK!M6`0;iSC)b&ZL1T3M-kWJYK;4(6eriy$g1eUjUY?XZl+?oYE zv>;?ouJ0rH{V}kr?FC9MSf4fe1_DAg)a%SOd1C}Tg@1Sg9M}7-uHR{64fK)7KLnmw zeen`-RCWYh2c9!othF8I)K0*ovgd(M+Bd4=vo!*NTGlMu%IUIk0v?q;417jZ_Ln}Z zoGu$D;Hc~XQQ51^C{(Qx@ThFCmaWTXa_%VyM@ZCHsj#!GVwK-OKxNGuXyxR)5&=)- zGvF>V_kSCm^R*DL%#?%offw4YJ=4@mz@xG^fOpy+)ew~C2zXTXBBHX3Nc4A|TSi5| zqp~NFTJ~6#V6;lWqq0lL7U2{n51=|F;HhQTfJ+MAWE^|yhmu%RM^i)u*CY3* z^&39L-^gCLV1ZcN|Awo&TQ+X_s@{>X@Wt6@5ogZa-K;1%ImgcJ4s&9e`sT^sZHv?H z6>r+GZR_9rX~)Pig)YTj5lWl^13(6hDyoz;}Z^XYseZ5*99?R)!6nb3*LEZP6^c0{W{uV~PlQ%nZYAig}XsZ)qws_%lcf|*n z;`j5Mk64kT{h?VPV5PoJ-?8?Hsdv*{4c|_6a9Gi|tL$mh5_2Zi)`~?9&tvOtmy0v8 ze$c%3nZLn(m3|zMEmsRpwJ67mHUDi+WbY4S(K>bT_Kh3yRmEbm zjY3oBGM6{1eQoxxdDzf;!k_jir)42# ztZ_`&WoL%?&RKD?^wt}Fty@X)7k8?etebX2gQ>ki`vCv6@bd}r9(&opC4c_ENW7de zzP{o74f|JqiIevzwe=q`f4)Sr`_)#g6A*-CTUA za?1SV+`t?1w&xVD8O)l~z`($uTH+c}l9E`GYL#4+3Zxi}3=EBR4a{|o4MPl#txPSf jjLd*sD+7Z&pRH|BH00(hrDUd6;?}WtU30_aW6XvCmE~{G diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_full_e.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_full_e.png index b42229019c7a5f7f4a229772b9c942b215c7d260..e436ed86e0059f1d6eaabbed67097c38da0cabf3 100644 GIT binary patch delta 456 zcmZo>oxwU`N_~c>i(^Q}y|>eC{aPF(+T zxi$>q8#W%|p7G=Od{*O+(VKUqaHXlZ-mcbiy?umaEcRLA-IH$frpT zdQ1k*BAcSseLfrg3B7)+zB|`XakfG3MAfy<_4-V`mf;6j3)qfi#+5CqW4yyu?humV zY5eKtWR4@xWEj++O}L>^Yw|R}qgr%>aSi_-hWtM@3%#Ne_$v&ada~JbANv>N_T_ex zFt1wYm+3))BCZJZ?2P&L)e?{SG?_wCyi+n!;DepvPd_{y@h=#F9r=NPNLli8~B| zj?Utp3V$TJVsCdB<~-K8*YGUcZCiTyyyO37u`26rdfU9Jt>1Hc{!SK+RlQ5k-(~ov zt+3pyYlvv5@1DJ(?yKxi?y3E-?@~tn{=G*3m+ohfelU4g zm1P0X8uj0=1sSJk&Slhoz-Ga?Nnyj5ht&a$ExdmpzKwF()cATayFgHCMf7_A%7)`C z1$;3Ne%UQ{ZRBfe)Dj78Oeh!aTIG<;lo7lzgUdvX;Rm}`h?mczRh}R0PAP2f?h#W8 z>WPq7ZMbt=WCxR8W2@E4`oIK68|LdjiWQY6&u`B+N%^uadB*9zwLw=?HJ1nfO^;_i zrE`y2|A6(^4%uHajO#5bTRF16q)S#Uo%3+r)L4zLB~t&Lk|o*_5$KrQPo@P6KN$zM z%SkaXFsPQeMwFx^mZVxG7o`Fz1|tJQV_gGtU1P%#Lt{rPQwu92Ga%o}z~IhjYa0|D Xx%nxXX_crtkTtAb*W55UoyiaYhm^V4 diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_full_g.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_full_g.png index b7220b78d3287cedbc69480dbe75b6d6c8e797dd..304c2780f199487f7ea8d188245b281ae981b987 100644 GIT binary patch delta 669 zcmdnac8P7mlzJsk7srr{dvC8>XNNdS9Q$}bE-CS`s@SPp++0F2BFae*mwGM!!OP;f zA^ga#eua*v8@DnyawW0k?nzK+;%aJLz<5xkX_A84Zn5;X9`6(LT)wS2`X}+`PPuvM z&*pxgqi7tJmCC-&x;S&I;InHNxc5K3VQGBzS3S=c&h_d|XMMKTU;3A^B6{h>XI96q zHSbX4OI&n!=IzG(if-{Ab9+{|n3gL<-qpyG&r1y2$o=w9WXyrnSB`8bUl>>9BmVoN zNk{woiq`WB?Hc*MwSD}m<&-g@(PY{BWSc4P6ZrdD{?A@mD>MDklYO6!jhICY>n*0- zf2>reaVSGD+))0Pe`2vgoK^kl+$oOj7H#KKjJ_#~87%Xd%Ug52@(oX|cVbTd6}CrQ zdA_&m)Sl)EJ^$XOTc*r*ElKkBt+_kzhF!`w`C}-t7U+exUEKeZ7Ia_UA$!JUVd+uJ z3ZYY{r7J5UPc6AvcS$ss>#IcA*$-zH%HP|>w&+IdlH6dWZ|fe_ygBqmi>>`!{Q`lm zq_nkrD*M~ENthYV{pa;8BrWLz-;wDzjQ4OpP2Mqy<85o}jd?c3YqXeC%N8t*xO=)n z;MMg4ne`i4*)Q@HKl`XT(>{n7IxHBOTPL$I8v+2lvoMSR delta 605 zcmcb_ww-OllzMhg7srr{dvB+EXNfwBwC&%;@7SrK^y~9@L;1?%aeQmWWTJujOXs#2Q>jDdoAndt_uzo zDDhr(J8+Wzx7-}2l*}57%vH9zpP97UzRx+hWJ*o7SjZO5l!BJ}eYVEy`0p@?sm^8J z#~6J;ZNvLtrTt6hRDGK}{YzBPLQc#5s+l`4{ogMzp?9ZN=55J;u9ucA>0kG5_mWnd zb=m9+nwI)D#ck_6t#mULGBsXK%#QwkXt&se@OsZnjgmhcFRkn_|+7*7K)z{nh^eB&FbGzKe>8oy3YysmHw^I zw9Jt0nQAN>pN8$F&A-gmOqNcO`g*94MdSe22L=g4%en3cn4aF8;Q#8FMc#_vJT*qi zpVwc_dNET~L3;D^S8eZp3+!;(`AC0lolo}_(GTaI=HD!L`PrS){Qd5XYkLg59qRiG z^c%iU+t0gZ*2LDOlMlF>r|;Kg4Ca@z_WV6%bq)KCgd*iyu05>J8d4w3;{DB~6ZEeC z*y0Nz|B7br*3MjB)VVtD#k5;{ysmt7P^*5#RKUN3FNUcuc-^<+2c1*-52s(wZ(3}Z zv58|(VXR$N*4a40i9R0pj_fE>KYvPrqe+271c)K%)-(Q-&-%FEoafSURQXz6YnVSJ^CHis2F^Rijio}j(iB{Rmud@z#dXYNeB9H2 zC$wwA#0{SgsmV@w;@6n|FU-DNjV)h+{T%bGtFy`i*q%JlYOvg}MD9-h8%u-ZWr{a- zj_`a`FW8>8faP4n?2u0GdPCw+_-I7_ED_|$Jb7m zH92{v#MIze-3dk?=J!8mb*8ThzqM_G$_KtXN#83S@3PuEUi4|azEAkRwAs(4Q}Rv< zm>(7L?KEfq<-Jm)YY_tdKBoWozK_t`Y@YcH3=FCzt`Q|Ei6xV{nRuj(bPX(Z4NXD} jO|1;gtPFr$b1MS_&zRkolMR`~aY$P*GPh1nVlo5(>J-4H delta 476 zcmbQqI+=CCl=@^(7srr{dvB+E`yDnAXtP(>bf!%A{Vt$SW+WrjSveWa+)`t$jU6xN=*k8Z_vd93g*kvbv$ZPita>%V6H_YG&2 zaW(62@K#{G*I0dur+pT80^c5{{{8YdLs?x^1O;85__)|Dt$z^d@~rM&sEK@BvG^W& zlVd7LzJ3!whP`iglg(7%IaQjWmU+PR%+9ut8fTQQUrmjYF#PQ0!*7vq^U>ee=~Tze zaI=*SY~@TgAIyKxG&ihdmMplpAToT*WTOS**M)Ylg-z-G%_{Tz=M=$e#burM8*X6#pS)LIy`;A8wzsLJqx=p1 zrHK-42=qqUUTsVLr>Um8`xqD)R7+eVN>UO_QmvAUQWFD9QW=a442^XS%yo?oLkx|r lOf9U8%z#`g1A{xCt!+?rex5{`;~%fT(Ve&;@YduQWu={c9Zu^l{xP-ssc^A+aV_0{Kz@NZ z=Ta}nVn@X|DzvKKv2AZGrd50-P_|+Q|$9| zP3}+rwlri{^ZCLWmleHftIqZ|bY}L;AHUCAlYi#xq5E7jQrPdDdN%v0kH=!Yt@T&C z8y05HzyG_tc6NpMac_%xEa!Id-LjdwXIJ0s8_lMdHLf^`?0Yop!zo?i=#0gu)l<8| z{&7v*oG>dY*|vVBC|9e~!T=2sIA!;f@m^5H4FkF0B@7Gp3Eg9RgV>*T9Uh5!PH B1=s)p delta 584 zcmZo;Yh#-*r+)fwKWRsiw*9fz4MmQdRDC9gcus7Zr6#oKg!6?UrH?F2yeGOl>|xFO z%(8N^OV_1#g()74T&E4!{1>Ta^Y7WX*KuZPp#l_odUNolE9j6%E^G_`gPw^^5L_^OJ5(lJk1y zVb#GB<5eYQG*Ri;o~C?`42~Ek+Xw6)_$uX40SO z)1Q>39x!?ubgMT<|NX^sA;zSV3~u4A@;AGskF$JEh+|x2vxYIof5Y+Jd9Rll)gMgE zi(~XnIQdTAH{-kQuKU|Ic}#4KTpiHyK%|0u4TE~mCV^9W8}j~sZ45p2_*l{!w{D-Q z@uw!}7FNsk+~yYgKhv`Bu>}H6o@CGLmo9#x`N=*81_sp<*NBpo#FA92jcB@Hl~y=USYeVGxDn5lF!cz&ovW zT~AIht-293?Wy1Cm!?wxBzm@WEs}Vx_outj&hKHEfpF`#(B}^_HNIc_{9)G>&&7wA zXzvnvWw>V7!}nUc=&e0?LTTR$yDxI> zzv90)6>hr5?R%Wde7$E}R@T$kio$CXQYLWJ_kQh+(Kepxqc-_uiV>W;{D-l8Z{KFK zx4+pL7#LJbTq8hErLK`dh@pj*fq|8QnXZ93kg<`){Q`=H W-29Zxv`X9>SPn$~&zUU4YzP2NQ!EAm delta 655 zcmX@hc9w0z+mFUm+>{9}Kh;z!mM3Q8R-R3wVa#jKs%oQtHNe$#ozefsPaMU=Bm+Ai(t`%sNfJ^A;-y&c>Yvt~(r)!CAL?2AD!`wZ?T`$wwx+IM8$ zIqK7qZ$8oKFwYXpTG`#szs0^i)cE!&>c#y&@4^oUeo4+|v}j3Q_*YE)qwS2}t(7%g z=hHW8+N_R!`fpldx5cvaG4(>#^4>E-rk?9ec&4-M(d@00Zpm+N{K2+ewbp)8*?OJR zGm`w>bid{EtZ^3)2D&kD>BS{k$97f7^=vz}N#>=_pYBFEy~i?PYis9*hfd8ncx!r9 z$`#GUuRk)rZ@MufO8NZnUWtyRX_NMyd{Q14>X!b&;!C-yM=bOD$z?jrSFaMO?`#U6 zWY~N5kOA|?LpFzIU$E;_>Uh(dZCs}I|7PZ?0~=iL@F&$h;(Eu@7+%Pk^QvfRJF+`Q;cT%z^Tkx_anCVJ1lKK zHkE;aLAAs+q9i4;B-JXpC>2OC7#SEE>l&Er8XJZf8e5rKSQ(iCxmE@ScRpL&plHa= UPsvQH#I1p4?YicM$ui7_02V1Ft^fc4 diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_h.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_h.png index 7daf55d500979ac107a7e674e1242518f3a2ca2f..f5f76c2c8c4f830fc17849a64919e9b6f7b1bed3 100644 GIT binary patch delta 480 zcmbQqI-PaGl=^f}7srr{dvB*7^g8Sy(6&E!74MaH0h@|X3NG=7!iBi(y7(8aR}k9M z(I2qq#l`Mzo$YrOz0b}n@!q!ZO!>)4eadMyO1NBrZlf@{QHH<^fp-4k-e zlG=U<@3?Oe!1(+??y4iLGZgF3Wyn9WF}mk>q-4Rduz0_eo9|zDL|9+mo@Dyr@wL@* zvr^K2NzF*If5Pyr@q5kLGsdPGvC$qv73}Xe{I2o5%xdp=@l50Og~Ij{+kP&cl6O*I z`%xj^R&(}W-YYe_79mjkG5y*wAE8BA4!0Q?7*tDKBT7;dOH!>ulZ#S;G=q_Wp^>hE trLK`dh@pj*fq|8Qsjh)JkkRla))z%bZhlH;S|x4`A2&YzI5~sK5CA)W(tZE{ delta 482 zcmbQvI+Jz6l=@6h7srr{dvB*3`W_Ki@ZKaK)P!zLr|Sv@yyw zHS*o<=M^tsH5?54%(8>c=mB@dqLmxg?_}z0;D6xyi05WwCVz9iX#tlF)A0k+1uuDK zh@IuBV948(-fY-evHaDC+f81DqeH5qK*rK|aLHpF_E zaT_}S;k=VCv7({)fm!Gyr}{Gj>09^<^9dh@;1WzF1|(Ho_H6uu7S z_cb!E<@MPpU&QeFK=r<~XEUXytkYHD+{0Xcqjuktmre5*WIQ|Y`a-8X&+R`!UfWYT zZYOmvJ2ad5@6r$v*FZR$;`~^AwZ4zgH0G^K85kH;OI#yLQW8tTQ>~JVQWHy38H@}J yjdcyob&U-}42`W!Ev$^pfLtpBgFBzCZIE=NTIJ@aWTsW(*06S6bHn5`CPM%yq{`R; diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_in.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_in.png index d8ae039cedf9480496771afe4dedcaede7614736..a9dc9072cb6c2431f8a821141486606d87722779 100644 GIT binary patch delta 441 zcmaFC@_}W-lzInG7srr{dvB*5^g8Sy(6(P~?HA4(&h?ej{c<&et@G9@$eBDixcsEB z#T;9ZgKhw<_6szUu=^E@@3t0IYoFB}6(zcxWTZ8)pBlh3*Rt7v;F6r09A8_2*K12V) zq$_dD&GdDzbuW6)J*Ppag3V878-rbrPR?Js88@n=Fa8f?QrIeRfY*Te*t9PlQ!k4j zn0?lI`_FPGhq6RIpV&29fAH+s_CqMiZ-D@#-o!Ufyfz>9o?ouEE@f+anRCNp<*mnM zEVkb`apX!|%9Wq;Y6t37r)bA9mzUM2Eox&4vkz%Fyt{yP&xXc(_d6QoV|K9id8+$6 z7JOBF=e*6&@5@OxmhW|Hds?pv$=tZ$KO5-fkLo{}5^H^}J1;Ca%D}*&TH+c}l9E`G zYL#4+3Zxi}3=EBQ4J>ty3_=VotPBjS3`}(m%z=!CH?h7z4SEP2x%nxXX_dHjeBAi- J<79ItLjXk#wF&?L delta 396 zcmeys@`7c;lzIzK7srr{dvB*5^g8Sy(6(P~?GL7X?ffcowe5Qv4rYISu=HTJzG{+V zl@PyHlSt+@=d_a&TurhW7ydV^-aNZ$X8pgLz78CUEdowp;*YzUV0TF9)9c#xGv+n; zzPnPo_r1)U=^E@@3t0OagC8(!uw51^V6b8OY_nrE^W_EgE-Jh2nAHzV?ET4-`{LB= zJHJ%dO{w$V_?pSjfpbkvL-vEqw{Fe5&n*6JPw$HV8jKgF3LN0wz{2-ZX5K~XTHZY~ zXFM_cufd|i{e^W$(V{5s3QnCpH!fN{U^;2KmqG4F-1F&bd0zX|k0~CQ7+bNlJTWav zO5f!^ZASt39LD$G)?Ikxe5XCf zgRdl&m&sqwzk-vOX->pt|JgvlepLU-G*2h=?aov3-jnY#ic1;m8kp-E8-^GfTbWu| d8JPjORt5%lK3m&N=3~Moy>?x5!(@9VLjZ_#sJs9G diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_inout.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_inout.png index bf59e7e0c033577b53b93f1c58521ff3621d759c..89d2939d35ed0b6ebefbac6cb0c9705f2e6d5ba3 100644 GIT binary patch delta 650 zcmbQiwt{WKl=>f@E{-7?_ufvk^*)>+aJ)V@s!;sSAC`5l?Ajdfn)G*AaFvSv5)_%U zR*5gF;KSvV;@~%n^z?46^0=tRx3k@@*ORq+Vc0dJHhSTWVQ7(SzTYxoVdj7p0HR!rqR-ACm+2# z@2SeX@BQpaGg!AZl<)f=uXyp%J3b53V}Y9&eC409se)}=V z)evcyYp~r|+Q@%%SJ7WKiwUnC=iSoyvilV41tztlFOB~C%x73%B=@YaenO>#bVkHB zhc~(pV&2$ZcZOva2 z=VZvvy=iCb?8zW-dH)shmx;ag=D!kq%@`OMR7+eVN>UO_QmvAUQh^kMk%6I+u7Rbl zkwJ)|g_VJUm4T_QfjN-T@Fvz5MMG|WN@iLmZVewdKK%&PAPKS|I6tkVJh3R1!7(L2 MDOJI9@_!~t0LtJLKL7v# delta 610 zcmZ3%HiK=#l=>H*E{-7?_ukIf=yfoi9|&8N3Ahx9y?vmP*R|TIeNV&D zty(*_?D*lKrzEyyvc-ystr^1YbG-ACvkuOi!12Ak;PUMWf9_j8pEp}<4ix;;(eIzl z<~X6wjpaht)+_TvPckc{)(J&eG6tzVZ)nw-afxZkyWRC{bN(|$=r!;ZS06A7P>*AO z#dunoSyX`~tbuoCwjZOeoWkKNiVv8T7brR`d}bWVxaRlF7v?E?lRjo}6%;Z^ruEzu z44C>^x9CJu8rz!}`9kjZwwzlp5@Eu)Cx9VX%hxbZ>8;_s*3g~XR&6xSW(+wJA{)WZ zcA&k7`2lam#BBch6dqHf2ilA+MsdvEN4DB$KL6@*>g>z=-cMPzIhcZlP9M7R9`b*_O%rfYRe!kx8}>BkaOc^VBj+7kcn~)opfu5Zt%0rk;Dw ziSLOsZ)vE+J{5Yw`1y$Bx``>jns&?$Yh2MIJ(J&tF zWFME-X%*O=oTbU$pgOrVeUi=?ckf65YVRXVRVzE4{Lny-!QLJu z^YXusL2ufCBfuB+I#%ZIdz}qX>G__R{nxM&N6G`8s|x%q26!%i9Z~v4Iu{@Te*#a5 z+5ap5UpE8Pz~6@*_yBK-i}*w*10>+@z#e>uN0fTMa{)@TU%;=zr}z=;^09L}8K4Az zP7Z%9KF49K#eZ-4_b5TIV^nZ z0TO;Qk5};|UdEd$J)dP+Hv-i7%?o%Q?_gUg)KKuP1%IefgbjE_D8fdI?R4s9WteI_ zKn?r@co$#b@qDZZFf@EC0TS?c;zN9c2XS1fbw+`2JV3&4R*NO_2i$`{mjd5tfP~*% zCluk3kh4GXv9aMB3s8X{V1L5r22%DrDDB(A=*o|B9sObN{!7p|8Cl;W_Z+2ikHepv2@DmA8fiGI; z4Y5JJh_{XCH?0Lo$k_l}@vJyOc*z)k(@KCEIeSJ}<@?xdOuuP7K#ku#B&>2Dp2)|> z@|#8j)WF{*tnzC-j5$kGgvJ6S;BUq!_#XF)m|w`HU=wDwe~G#LV9!S7FgoZPY@} zaWo9q3nlN3YNMBnJF1erbQOq|P#1mDT?9eUO%y~BdDBgz5upT`=bY){UHiD( z?45f)_RQ9Nu4ZO2%>Q}UyVicz8ZPOQ{@=Q6+5mOc?RGC*1AjUAjJFTHUa$QI3h;eg zk=~zy&a?psfX_6K8`A4eYYh~7z9XtXkEifwexP+Kz|UY2&*GT`zdR$YGf;q^P4GMM z8cwIr+G(H!egO~R5Z=K-v4|I1X&|SW1i1z8<2yVi*ZZwAkgI;yHn-v<{Dk|`*jy_O z$eGlHQ3qNrK zCHZCv`|%`R#sTMcB1B|vg@KBQun&9j242XSss%qW1Ai3}VJBY2yCPv`?X-MYsiVdX zRKPzh`u=mVXypvlhM$Om68L*?6yM+xak5%&ok8FmH&Dno3%E^ekw4-AoEinbQ3L;x zZ+^$U_%)3U4WCt}Y4}B~!)Lf0TX8HmHZ*)A21>%&YLRc&iYM*&au2Fe;Ky#DB;TyU z2e?_Z&3{)0c*@q%*w#P+zMnvk;7&X)`u|_>qgH=x1}bjO-opKOS_HMR!;i&4MZTFA z52zRMx&iae#0*s2-#jPoZw}%mL*$!@7^nzmyYPx=ncarWH;o&p$TyGTO?)ciF+=8? zMh#TJZxa_!Une7f8!;j@W+10*VQv)p<_D2)PJd4deqaM75#c7WzaPgAoG^xbGl**c z!BGOg0bk%M+$AEyTpAm<=0xm%UK~Bwi_5M~tte5FZ>|%SzZQ2S_)f3aJKF%fZnv9l z!~NpeATyBdC|4%Zjj2 zBY)Q3F?CxgXJEZJ$G(@UvbMyJOBUy zC3HntbYx+4WjbwdWNBu305UK!Gc7PTEfq5{R53F;H8?slHZ3qWIxsM;u7iM+Bm^-L CO{&iT diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_out.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_out.png index 3cf03016637b19d59f19d1bff4e2c82ceeeafd19..d8993f8c27bb39ba7acf7b698701292c704b51da 100644 GIT binary patch delta 402 zcmX@Xa*}1jlzK@|7srr{dvB-tW*s&VaEqTafjebx^o+8LEKE1We>wM0s8tLo(W0Vj@+>1vj7QK6xKdf67}cz@3qwPacJ z;P;VZngXnr>|&ZTFLJrOzst}r-Sk+ovF4?qe29Y2)V-{7Mz#;jMX#Baz1nD8%_$;wg?R&O-+`OAlna>l<-R$0>(*i> zWA(;cxAYS-zptEY{)W}{dHu})y{CVw6#m-d9-$xUx59}-5#%2r@pC6r_)(XCx7#QB zF)%QwmbgZgq$HN4S|t~y0x1R~14AQS14~^agAhXtD+2>715;fCb0DMPO{_19hTQy= V%(O}z8rXq4K5l&aak4m*ApowCqcs2k delta 401 zcmX@fa)M>TlzItI7srr{dvB*XW*s&VaGgK*0{0g-OINX0p%=ThL_T3_%n3emNc{t6 z)t0y=6E3+Xr#}?*Y>9D}NYwv#`viyL+1V3y8U>s<6p!2$u~b{TN-J(L>x$R6YS$XI zJBZZGzhT0?m#tcxnc4?MSTx-8_uvYplJz@&FFJJfaR-C4aBFwScTe{Idv z(WgIwBa8n`qwof^g~y70!y8xsbozGv+V!a4h6*XO>c7&)ZSFN8jT=Jw#41jd9LyD+m;2_-co>yP$HuO5A+smd}%(wraJ2`~o5-&NpVfXdRb%qSumv zfkCyzHKHUXu_Vlzz|7#drdT38vG0l8KN26sMN+n{L3%}>cp TtHh;&&A?#oy5@$-5=@2wWI3XD diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_r.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_r.png index 09da0dd72cf10436cf8a827b692bc3efde56115e..b78f47420288a445982ae1a176be216aff35f049 100644 GIT binary patch delta 589 zcmeyv+RQd#O8sR|7srr{dvCArKhNVRbNu7=d&MqIZYPy1r36m~=eaDr{y|)$L@7`s zAV}jc>pzCQ9$U0nkE&|4$O(2%u<2kw|5hta&D_l5cfs!%!}lr0#m4tXSY5%zyPp&W>HM?)6gvgMOa{J_*K4CVZU39M+Wn{b5DDnnmUALu&IL*Zzr5 zea)R7$JNWyzwU9N$eprpTR(pIUcjs0nqi`2$F*2)+sW0uW}8+YWSn!jR;H);s(|Jd zcZXAN#UlfvB**xa;1&q%N1(z4vu6uj@ zY0CbbT$B5gzby^f)qB3MCS*l#-YVVRhHGn%`#*lqwy*pd+rxa;EjJmrZ~B>MSTB5O zg?}!uQbNwP=imP&-B-JJ^rKYJ>y=`$?4NC>?)k-LzJY!H*+myP0)KR^KBT?fCnr&^ z)=o2c%ct;;Iij1d%#!+XdQE_a2v@7qLO8{9lAr5SW&Y3eS3MXQ7*tDKBT7;dOH!?p zi&B9UgOP!uk*jn#{?D0w Hn#m9V2CNE3 delta 545 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 delta 1814 zcmV+x2kH2b5a$n&lz+ELL_t(&-tCxch*eb-$A9PCI}K{t^q#1}8Er5Pvod-|qZy`A z24<8W>_rd}y^z47f($I`Ll24~tmtWI^fs)_+l$m5R+6HVF%t<+QCQBzSofaOhqczs znmy;voyQIOFbfVd=iGhP`mg`q>%Z4NFlwVVYNIx4Bd}<=FMqbQw1hq)Aa?(!8L{kH z;{NX$S11(zy969y6lko$OG5<^_{u4cM6V(F8Zdz}piA^+Hv$d@CIS*M3cb3`LJ2cO7tI1<}Kh=V4L$1dn`VYr~>18 z;C$dZ;5=YIH_n!l2Q=6j@CBUEyL8O{2G#*j0&6t6%o&LSHL*3G11<)ZD%)xBayb^u z0UhjEn>iyf0=@z616FH%6OYt@ct9oKbfBOwoJ8-ENPpF_sYV#MgcNJh1&G|(M1T87 z$NJ@INt%DZ6sH3#flq+5+>FH@cmj+A9s)krfqsc(fiCG4xiNXYBKor)>u)tW){~Z{ zY&OPX8L^K62UsF`9dI`A1TfV(%+cS%nXqI!fUkk?fi_?_BAZ?MPAwv}M*@w&vC3>i z5XTeZ6Mwhg0ImmS>EHFH(>E#jeMq5(>?MJ-Zs1ek9lctE@#B!aV66K33;0qK@-_*$ zK(DibF=gUG@6y_*1l$a)w<10m_y9ODVBglFP4`aVDc~947acPNn2i+sRG^98O)PeR ziol;bLtBBbH0D+va~NR|={m|S6$9Q1ECXIr zC&vL-A$vkI!|$n5WHWnPN!g+?F9YsUOkpCs75r8pwi(DNu(N=*I`tsC<^8~ex@;~2 zZbJ&nPjA+qFc9c0?N5LWzyrYR$Wp!)xE(246vJGkm~%kMPfZ?K*H`Pa^}q?hy}-%9 zMt|T9;0z63q_1w7MsCHluu-#z;w3V=%j04J8WPdHr)|c`F1o6*)MU5e_%0i3$kQWWxfX3g~;W0ho#?{pwfZH*4$~z@_6JFwG4P1X?srru2D7{7@X|_ z-UU`@LN!Rsem8K4CVW1kiaqPT;(?|@5|;y4DA--d*1t@bgE#9meM4u;VNIX6PmoQk zfb>c$knZ!jftdH;Dp^qjzXH4r9DfQtjcof?D}JZ+jb1skRykH8)&tK2OOV>|=kEcn zY@oKbHX0in?bg&L0dCYle)k>h0mm$&e>;65QcE9u<_BVbzy!)90q_~pv`up?hU|vS z`Ohy|oo)>x**6euRFyuj42rd2k4TYXejh1dle}_z9-7}j?A@;rx!gmB)_;#UfglO% zUMBz_BHx30Ho7Q^wgYQRrP8;hQfW6pE|)tZm&;8D=A>zQtopHc+7Y?j$sme$*a-wl zSfG=UcH%GiFRuTU$FfP18rBD6$PfEJ3Hg~^XCs6{IF&qw53az`r8+QMPzrc_G~q<&>k*dzI;USN0fjAZ_+mo>6y-? z@5cfAe-k2?d)+%DN}`%GVDfr2BCpN#ZIO2(a@p?2j(7%!Tmzvw013kK&%mWf4{vS8 z9^^|yJMK&|Qt(wtAWZ<`4X!?K@_)@hG(@0F@gBHa?uXbo1MWaz9KE?qv zlHnR3r4)s^_w0VyYxVAP=G>V(50ZYEm7L5y`|Pv!|G(DW|9`#q8JMyuo3bgJvI&?O z?~8>(A?YW10YviG%3qgq0Z=R!PcDH3U@MmcDq{ta@Rbo9Q9!tEUn3Hz0lE@KPJA>1 zbAe`HHgLA|nIU~Xm3|)s1HebX0clVA%8Z3fDuI*;xzHgn2j~D60~Y~b1Ey1*Dx+Bh z90B$NZvwr*ZhzolK*$Qd5i=YkkODjk9L@u71g-}z1x`-^rbMHJ{}7ZVJ#fc?SAnO2 zZ9re(Lo+{&h#4i~7PuN%16(Db9q~CE0;+dSx!|w*2($MkunX7%>`06gBVq#ZA=8XR zdM&UdaI7!aiefFG_4d`wWrFrzU<0sS##ixh3PfK}c7IENBJdP&g*erPn+f_R2d)4^ zKsgvdB~|asa#e^=PbI1TUC?JS@FegeuuR%C*s-*n4*UxEJJ3daill+A$Yp{)IUq}X zFCe(j%9Tlsou+KsM{z6#UH~=%)09Y7UR(I1$2jwbq@2V4tW2Yekkbrd2_#=Z#nKG36!cn0uS;F3i2LzPe!fm?w2DPt30dlUF3@UbZr3Odiu z$4l32;+vKQ-Ul8A{(xVo7XY{7mFir^UsE~p{WS215X%BL1NTdYl2`@>{M&%l3}l2| z8}J-{ksvAmIq(a-HeU-ofL}9VdNsoJ$g4(H7i!r458xsE)I0^aPsaO-^!XB40sKud zD}RWJFz=BxBEK&M)&s4;OZfS|Oa?C#*X?XTV5G}ZRU*VkS$;2-Y`lz@@Q3khvnbDR z7w}oZj7cer!O!Ve#QCrB(?xgRa51MvS3!mM>enXjlNK&s2RsJcEx)f2@Ub#Ht(3@0 zL>2(g($2m9GId`^mF1db^l1VUT5%@M$33dv;W-1GXf|58B zU*?ALswwnaxwW4gW1c^8;>3=Dfq@rx?%esozJ2>xxpHO9=cY}Y$mjE{UAuN}bANO5 z@?0*r0=PPgqBDblK)fD%9k>#|A(~>b=#p565ePD&$}}G@uXFGcn(?@8e-uT(+`oVS z?++h7{BP$RgM)+fN~KcA(9qC%&bemi+!=r~#(ZIn8OUa{?=>|w?VdGjR-ZA3#>U2m zMT-`7T5G$bC|W?ZUdrJQJsrTi0e_ZZXM)iVG&<*&0M7!`jWPc*#{6v0o;@47ySs-v zJ3AL2J$iJtbM8uO?L1@5i0i;P7e!IjZ;aX9(9rO^ty{PDZrr#r*U{0@<(zxaIX6S5 z%Qe8Bk-*m^P=mzxfIBLc%580JZSSsHwQ5h!GcDXSzH(Es|=X6*YDt{TGDC)^( zv-fY?wymePw|6#vL;EA}r_sRIO8~&Ox3{xy-8$Fb-#@)nD*eb>dzVBz+?WjYZDdN+ z0@gVfIp?-cn>OtS3l}c@Z2kK6cGs?5N}7=f)I7t6FKphtIcjNXv4;*Fa-~w~_Dm*o zuQ4VmpYmj50%ST@pAcjFb1uyt)pVAyNV1*X!SY=FR%0Q@_(9>=Y9Bs@D2Py z2mHZh5&i?g0%_BC4&pbU#O#;vOr3dOro$G8g!`O28i{u0Wv@9mlVMYl88|4PGNS zA(L$A{C*rih0>~5ZF>^OEoblR_W? zBs_?8Qa%2y2KEvh#wPYZP~fr8Ad?Ax%KjhhzZj{cS2@#yOaK4?C3HntbYx+4WjbSWWnpw>05UK!GA%GU zEiy1vF*rIfFg`jkH7zhVIxsMR>|IR&001R)MObuXVRU6WZEs|0W_bWIFflSMFgYzU bFjO%(IxsLgFf}bOH##sd@v-IclRF48Bxa)} delta 1966 zcmV;f2T}O+5bO|;lz%))L_t(&-tCxejFixX;p&Y5SQ*_nMY>4!bZlbLzu+_ft4#Y&rstFT76VL%H1=@gx zKtrW~C<%cpz<)o0soCEz72dsfY-zT^Nxm*`TZO|i*b$) zi8HSO-M~pTM?z!Kj+hD&PXeofjldni45jBwNdu}j19}066idg;$G}^_)4)M-E;b`3 z!Y01P1K?Z0R*ANa3@#VNazLxq^_lZQG{Aen&wvAB-+z;b^*}VB0&pvkkpVYRED0+U zd)9~=F5njHurgqjZYci^iLNeB@1&n!m*Q7|eZUc*U1cnxfrmgn@Jpaa6m^NjfiB2n zlul9}!|13d-MxeJ%QQp8=i$ zo&)|PItzhL++tq@+(2;?ODI6Yz$MAh3E;0{^M8cs%mKa!+z+%+%1}BB0q_BEJ1}56 zIyyYZw&JMk3#wE+@YBF{;6<6_OThPWdqN8n@2MgtL1Va~Y zF@Fa@L8m5(tLq=gyEO1s;BjCX@DA`h;A>)hm{Q*MC1WZ)o{a(pd|3Xw75FXiF0dTO z|82mVqIC-58X6id z@7%f5ba!`u`RdiH%dNGoz;)KzdYp0|xL}Owt*x!iu3fwKZ<{u4vbkLDvyF|7>y0s+ zt+mY(v|(JkaSlh9y$Z{yGeM;TjeoDX71XU{T!{(JyhTU+hSnKOgq$B&1DgM&XZ#%!T<_pSDT zqcdO9P8(yEgkg9&o6Yv*^MCnZ@#4jWzP>)jihjim_<_B>y(E*#!meGrm@#9b;x^=78x46Z82)LOd<(1>} zI0vm76W}`2P9Udjuw%!LirA`7yK=&Juk(PnarZ%bqwB>n*88~55r1GV?f`Qqu9ruR z>BG_G8Rb+};K$`a#0hU`8Lr)E1pW*>jN3DO6dOeUqI!2b@EEQsyd+L#QFK`?_;EW> z#)-RdhnnrUqvO5uEWwo;xZ~w9U_bCYt}T8@qP}k;k@u1umv*W6D~^|OCDjG|3fBbs z8woG7CGwrPtD4Qg6MvLmS58Q(*#}A_5}{Ddahrf2q?Ca)6Aj|lOsBFRmYKUMneg?x z7gbUKFW|~2u6yE(d`eiRq|%Z!sQKNSZePWW>8B92~L zC~c9?;MPH((w%e$#=Qojq5y=rDE}My4z7pyi!_J3Y3M_pDN`m3eo7pO0MQ4L^%U<( zH{dR|Mh@ds0e;FHDC5LI+_lIS;8h~$*{PDr>;q$o-y?pl0yP4Ds-h25u!y4)q1BSR z{HX>%E&mVl38qSzIgu`09FyS(7fUlOFgGnTF;p=#IyE>tGBzzRH##sd-19p;0000b zbVXQnWMOn=I&E)cX=Zrk diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_wifi_3.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_wifi_3.png index 30af79a9108f5f53d89dd9667946579b396a494d..96cd8ab826e055156a8506e4c512bdbc20e57357 100644 GIT binary patch delta 2058 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 diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_wifi_4.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_wifi_4.png index 2a6e50f008e45fcf5555d0932992a612780fdf2f..54bab4dd15ab41d2e124b0a5b01fcc262b9e7008 100644 GIT binary patch delta 1705 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 delta 1828 zcmV+<2iy385cLm`lz+uZL_t(&-tC!bY*ked$A9Yh;geL6EV>b@IiwyYSd^9k+>5zYDElgJPRr)v?z!{mXsP277=2BwD8^? zKb$$d)6@I<+EN1_I?2u3&Yk(soSFa3xet1!S9+yadgUA>=zs2wRaI5KjsOUq_mW`C zeiu9M&#p_S)Bm3X4qy~$sK&Eh1>ot56i2LAmvnXLKpxOp+D1131_DEY3Sba$3D6%% z>6#4C4EzHe0`>#@^mFX#in`)Vq5}yL5=UVO3+kY5L0Pg1MNMJs2s{$`d0A?MHJ^faP-NhtF&!{t>10Mr_I66WXi|a^G zAmS-tHn0S^8R+Azv#I0)>g*1<1ss!09V@4SZ-Li=wd!2rjszZ?*c^|5dB77IZSii- z7sY%)JG<8IoDE_CYy+MFK2rOZJj4QV0cC+oAgwoCM}ICQL={`s@C|1%#hP&p1kT!6 ze>_XY~r4H7UIU+DARq-->jt z8?+>5vums^8`xKXe%6tcE|>`kMd@H6<{piJ>vKC+?@P%Hxz4fJ-UQnXCP61og zAyYN4(poHz)VcBj{$~| zYhs}TCZN5>!=HS&kivp{}c)RI$K! z1IvK-RLQl#B1}&hLHB1W!8Efq8kFs7^A6xC#pFA3P{Hp6Lc0Tz0-Fk~)2#>7EuRIR z)3m7u9>)}vyS+(0p(D^q+#ds*fEB=}m{fiQSc)lH6vG@$F-Jhw-I^38ukX?C)&moO z<$u6rU^DO;aHAT}(3ZDt$^->2%SMp{Jfpu=0-pfC08=phKMwdx*DhA@DaB0SbzvL5 z>8b?aMRm&3t&q%6Ho6v+``PLZz0bb5EF{1x48df88!!|vj^4ykBBeJBSI>u#qp&34 z;uy~7SQ1bhh$Ls+KR+lgLq+&(X&*g}+vfHMtS;f&->`O$X*; z3UYwsywz)MZPNfA1%h-s?Vs}6JKz|z%rp!`uN9a%#*PYmG4-(u({%%2ET;HIYJbE_ zRo6+~kzE+3`Aq{<2HXYIU{Y2z@6{z@z64gPLq(X8{b}G*b$B+070>29!##g@D0vMvHa0SN@L>DVvP}#;sD|9`+t~w-m4No+^h8W8)wz-HDEb{bkjDvt zA237PSSN~pbp6P=k6)4|-69NS-;dX*3O!!wRMfm4A(&$R8dJcQ^4jou5P!5)Epir< z+du5RTQPKboCK~vX9qkd?DSdze1~}+lmSvf5DpFq{>~@hEl1Hmdy?y4*`Aiq@CTwthFAZ1j!+KLWP{rC}KUbo%t^Mf2y+f3&Em zXkAlNQ^S@mTMjQ-vgEI$M}LoQisN`)Wo6~dJ9g~Y*r!jQ;UZFjIUmf!jL~NYw5~j2 z?D8C+(CBUhM%UETEUT`r?kge-;y7L)A``<=I!%|Lw^hO4vL>^sYsFK?-XRkj-ZIiGN5x>o144*Ow>x)rPZE+HEY(y4Gj%pSy>rT6wOfZt>g;Ty<(s>ilU)W6wNFvE2F-? zKCG>+?Kb!x5fO2(cg4sVX)pG>58Zptt2jUceJvG{jS4j5fVb~Ai%383o(sl_P+zYR zkv|o1Rxc5eJt9)!ty?|6;1isP^mT%W{O#<(F%g;UtvTPY3pz1Z^F9`lYW*(N)8M=P zA6Y&pR4lJQfSGfi$2-sZqsE2i0OUpv|9y{v?{Nq6IMMboNDqSVl?y@s1B9|x1F@L8 zo|A3|7aB7yFgGnTF;p=#IyE>tGBzzRH##sd-19p;lb;6{8Z#|0H!U+UR53F;H8?sl SHZ3qWIxsM;u7iM+&<8Ol>rK%B diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_wifi_full_2.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_wifi_full_2.png index 3420da52eea2188b0a167688b5ad1c651d135f28..3e712ad2c92165c99cbcacb3834d8f7d14e1ef5c 100644 GIT binary patch delta 1921 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 oX=Zr8q7h6vlt=IY-SbH7irf9ByG6HjsothI9jI zG%&EDq@cb8LVXje{~)A31ci|i6wyG?L^jx@l1-P2%&{^IyO~A~)g8`x`mopbth4WX z&b?=_{BRd+&U^N|_S(-{d+leh{lch>%BYOWsI(zjs{rZWf}1`Yzf zz#iZS`(H_H6`OG;_f1ZOX*&NVDi3C(p!?2Ng88V3Wn_%))ai^6pE6TOZvi17(ov< z0k#>(D$c&2vq#bjhpk{(gA=YZM*Rv&pEx7sVL*GG0e@?Gz+<%gO}9LZ%~WTzq$^Xr zG4e<{Rnnt2iJXCvM5`ScZdGG&qVD68CK=`|Q^=*oz!SiHx9f{_*h9%X5vcJi;5*Am<3z_Tnx-eHguWV1Ciui#I+5$5BMND@Uk&XA22qDB|NnO`~z$R z-n6ze(SM&nI15fTTYnKa|7fDu1zc}!F)+T)d_GwH7LeC~Wzm5tzO62m5QXN73h7uVX8UABn7rnZ4Fei4R;>!j%~_D)EZ0btj_y9i4|=urBm^A zy$4tdYU1Lc^j)7yK$}_NvFs3&cmAJ zfRB$w^SBFm-=a5Q(T-=rW56?nQ#S(^0E-Bv_cV(j*-cGDnQ4)vKP@T;B;Bt-b4a>e(vy;YZi0FCN?L1nQ7D;LN&4O1AAeD` zaH}#-Gm_)PZIa%WbhiCpEa}5KOwymQkFP>g`B+tMpRRBZSgG3csX6dDdF#vVGbF8Z zbeNu$Baz7ce$2CyrsmAongcmb#FbcW6XuxkNqRU+>rY&)9ZiT8-3e+5_ zv^BcyfD^a4%{NZc-ICr_;PifL2dwWNRZH^+CEcoa>9P$6Qo6fV(oTzPUVp_I`*thb zD>_1#g=PmNxmj^Gt|pWNeN+oQ-zxTQ4&e$K=WqIh?(tla=Niy!?0c!5h#xQTaf41! zxN>@m^v_!qE-0Pn`VKe|bNL*Fi+bezcsA^kG&9ltf5GQC5!vJtRVzy=)cp(pbH-`Y ziR)CotVh=AIM;V{+dE+KM1NgHxSXsZ=RSKPI{>v5dEDr-tGBzzRH##sd z-19p;0000bbVXQnWMOn=I&E)cX=ZrT;9ZgKhw<_6szUu=^E@@3t0IYoFB}6(zcxWTZ8)pBlh3*Rt7v;F6r09A8_2*K12V) zq$_dD&GdDzbuW6)J*Ppag3V878-rbrPR?Js88@n=Fa8f?QrIeRfY*Te*t9PlQ!k4j zn0?lI`_FPGhq6RIpV&29fAH+s_CqMiZ-D@#-o!Ufyfz>9o?ouEE@f+anRCNp<*mnM zEVkb`apX!|%9Wq;Y6t37r)bA9mzUM2Eox&4vkz%Fyt{yP&xXc(_d6QoV|K9id8+$6 z7JOBF=e*6&@5@OxmhW|Hds?pv$=tZ$KO5-fkLo{}5^H^}J1;Ca%D}*&TH+c}l9E`G zYL#4+3Zxi}3=EBQ4J>ty3_=VotPBjS3`}(m%z=!CH?h7z4SEP2x%nxXX_dHjeBAi- J<79ItLjXk#wF&?L delta 396 zcmeys@`7c;lzIzK7srr{dvB*5^g8Sy(6(P~?GL7X?ffcowe5Qv4rYISu=HTJzG{+V zl@PyHlSt+@=d_a&TurhW7ydV^-aNZ$X8pgLz78CUEdowp;*YzUV0TF9)9c#xGv+n; zzPnPo_r1)U=^E@@3t0OagC8(!uw51^V6b8OY_nrE^W_EgE-Jh2nAHzV?ET4-`{LB= zJHJ%dO{w$V_?pSjfpbkvL-vEqw{Fe5&n*6JPw$HV8jKgF3LN0wz{2-ZX5K~XTHZY~ zXFM_cufd|i{e^W$(V{5s3QnCpH!fN{U^;2KmqG4F-1F&bd0zX|k0~CQ7+bNlJTWav zO5f!^ZASt39LD$G)?Ikxe5XCf zgRdl&m&sqwzk-vOX->pt|JgvlepLU-G*2h=?aov3-jnY#ic1;m8kp-E8-^GfTbWu| d8JPjORt5%lK3m&N=3~Moy>?x5!(@9VLjZ_#sJs9G diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_wifi_inout.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_wifi_inout.png index bf59e7e0c033577b53b93f1c58521ff3621d759c..89d2939d35ed0b6ebefbac6cb0c9705f2e6d5ba3 100644 GIT binary patch delta 650 zcmbQiwt{WKl=>f@E{-7?_ufvk^*)>+aJ)V@s!;sSAC`5l?Ajdfn)G*AaFvSv5)_%U zR*5gF;KSvV;@~%n^z?46^0=tRx3k@@*ORq+Vc0dJHhSTWVQ7(SzTYxoVdj7p0HR!rqR-ACm+2# z@2SeX@BQpaGg!AZl<)f=uXyp%J3b53V}Y9&eC409se)}=V z)evcyYp~r|+Q@%%SJ7WKiwUnC=iSoyvilV41tztlFOB~C%x73%B=@YaenO>#bVkHB zhc~(pV&2$ZcZOva2 z=VZvvy=iCb?8zW-dH)shmx;ag=D!kq%@`OMR7+eVN>UO_QmvAUQh^kMk%6I+u7Rbl zkwJ)|g_VJUm4T_QfjN-T@Fvz5MMG|WN@iLmZVewdKK%&PAPKS|I6tkVJh3R1!7(L2 MDOJI9@_!~t0LtJLKL7v# delta 610 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 diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_wifi_out.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_wifi_out.png index 3cf03016637b19d59f19d1bff4e2c82ceeeafd19..d8993f8c27bb39ba7acf7b698701292c704b51da 100644 GIT binary patch delta 402 zcmX@Xa*}1jlzK@|7srr{dvB-tW*s&VaEqTafjebx^o+8LEKE1We>wM0s8tLo(W0Vj@+>1vj7QK6xKdf67}cz@3qwPacJ z;P;VZngXnr>|&ZTFLJrOzst}r-Sk+ovF4?qe29Y2)V-{7Mz#;jMX#Baz1nD8%_$;wg?R&O-+`OAlna>l<-R$0>(*i> zWA(;cxAYS-zptEY{)W}{dHu})y{CVw6#m-d9-$xUx59}-5#%2r@pC6r_)(XCx7#QB zF)%QwmbgZgq$HN4S|t~y0x1R~14AQS14~^agAhXtD+2>715;fCb0DMPO{_19hTQy= V%(O}z8rXq4K5l&aak4m*ApowCqcs2k delta 401 zcmX@fa)M>TlzItI7srr{dvB*XW*s&VaGgK*0{0g-OINX0p%=ThL_T3_%n3emNc{t6 z)t0y=6E3+Xr#}?*Y>9D}NYwv#`viyL+1V3y8U>s<6p!2$u~b{TN-J(L>x$R6YS$XI zJBZZGzhT0?m#tcxnc4?MSTx-8_uvYplJz@&FFJJfaR-C4aBFwScTe{Idv z(WgIwBa8n`qwof^g~y70!y8xsbozGv+V!a4h6*XO>c7&)ZSFN8jT=Jw#41jd9LyD+m;2_-co>yP$HuO5A+smd}%(wraJ2`~o5-&NpVfXdRb%qSumv zfkCyzHKHUXu_Vlzz|7#drdT38vG0l8KN26sMN+n{L3%}>cp TtHh;&&A?#oy5@$-5=@2wWI3XD diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_airplane_off.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_airplane_off.png index 9d595847a1833e066f958662c64815e1cf1be05b..2d0c4790eba1be1f87d886d9ff1fd1d4bbc0d053 100644 GIT binary patch delta 1141 zcmV-*1d99O3E~NmNg*Ww0Dyx40Qvs_0D$QL0Cg|`0P0`>06Lfe02gnPU&Tg|Y8-zH z6951U69E94oEQKA1J_AJK~z}7z1PW$9aR(t@ZTFE5hH>_#Ly8HT^O7x95;&Kw2>g{ zLKnIc96%98ZJZiW6hT2z^bc?VC!)a#F>V54p%N2=L}@`6nLtoX(x%^gF6!Lw`>Ly6 zP_!=;x2o>&edjyFt?F2YR+eS{*uj4&e^^f74ufm;!#kKmuTxu;f+TNg zvn8Z*VlCj)cp~;3qL00}5I>>YuYnD*J|=F#FW84cQ4~!e%Ca0I6k`KCjG2G9PsYKc z0p7!)pDh~UUOXG`e#fuafh}cOZpHR^_gidSS1K9t6duUHM*;W@Udj~GDa$hDWb#$A zC}*A8e(b~#_zv5G)NDu#FW`<0Tma65^$RsXNSz)&jRos*Zszy-nA5}II61DXvcTFC zWO}$f=6AB|zEC#RgN686urPn~@5%_08*z=r)Dc!Cb;e?$7DstN-yN!?dN7t%c@}iD z07~uXu=ILdhNEg^(wbD|@_mN56EC-c=Yi7{;rXU;S}1Y@3RONgwLt(rtqR0`rreTx zvZN9=93UxZlJEKvBUj^gRf)~rk_bGHd*Xi31l~ws0-3IHkn^z-$7X+^Ie{;5X>w6p zC7pN}6-AM=9%cXqK4<{Xjaq|MHFf?Oftm_Q%2V+sjI54p#UG@4_t@OV*PyV^$otn#hLrgiGHA^rPFY`>M)vC<@IV@kj+aOut#-P zY_5T)`?rHYYA1wIf2w^AFZelRIiRZ77vZ&Ra`JUI+;U}r_cDL*oZ$Q6o)z)DR&{XE zk_p{fn$6-ST#Fwq*6?Kgwgi~`8GRzT1Dj&bysBKUNd#&^UJ-~sS=$ZJ4IyQjxoHZ= zq=jW!)=O)$@U5CEXQ%O|AnZ0&yFo~}7x!lytqPyEZI9drO$t^UHBv$J~R5pOjuHi8*2ZIDmLJhM4-uWPNM!_(AMVg zdbYvn5c5Z>SQz^PZc^ZH#mZP@n{R$z0000bbVXQnWMPw81PvN8EigGPGBi{%H##vm zIx#mbFgH3dF#5qte3O6#7bY?-FgYzUG*mG+Ix#ppF*hwRH##sdi=6Vn00000NkvXX Hu0mjfhsqDa delta 1168 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 Hu0mjfz6b}4 delta 1000 zcmV06Lfe02gqax=}olY8-z6 zNB{r;NB~C3Yd!z~129QMK~z}7&6i84jZqZG|NGqI6$2@{N;gR)A~Q^xQ8H1aOl8JE zWS}r$Kw%(C9y1IsBN7t2F}fuY2}K?=iEz)o=Vx%%I%l1Izw`3SuCKk%{?^+6|9XD= zB>jT{_%ivHB&C$<8-E*ElFE|C3_O3;N&ExwlFd~~efGQJ9w_yGbkE@aW2>Zxl7=PC zGr7_@#iFNIaC`b}?gwsC8)G)FbeST>1eEM4+f%arwxq)Qvd!~=X9oJ+=HYNwY6V^g z$-L2)R0h5fcxj*`K*iP@qV;7@24jPyNs>-Unhgv|dL-$Iq}P(ZTQbFwEV+MtU6Hgz z(ltqQB#qjBS<(?ngO(d(bx#IMrUSRKcwy{c1J{AWz$RcRFg5dzfaSo4py!q!%jBA3 z=bNj6SHP$#Rn2{ojE^zk9dH{s0cO#`sMDtO7qQnJTm%RU_x5 z_lMl*2%fUUnhLB3E&-o2kcxkKYBa1JxN35HI)b+#(HFAW6=wt6fV&+$;Nd%9dJ{T= zcOX-y(Nz3d0_+1G2am*r#mL68?5Uv@^#CVR3VRm~Y$T9y0%szD-x?G*stW-;dci|* zCx-A(fqN*98Hl&ntD#~%``^;&6R8^juhUko)?;}f13zv1=d%!u01JQYUGHCAn)|{; zTkp!i4+gn)!2=$KwQg7^Ah&djxpyP5444*TzAdwGN9LI+z>6#|cDhVE0uDYIc#v7~ z4!8lF1HJ|VTWM}Eo*PFq51s9*5(0@bweIyL%WR*&Q0t7|VDihys;m<3b*zLe3Eka` zXnYk%fN!=wWbY?3zDIw!{xFU4-on_j5=tpG?W5Xv`>CYWlD4byEtjNOHrMY2rtf-H zNmqi*Oi2SST1X%q;s=eYcEOk+>7=CNfxtjGTp4*MH5k@?vJ0rXy@3~mV>3P) zKNaYCDDH}^*G;~GS;%J1=?B<;4nen~Uh@b`MZWbeSaefwW^{L9a%BKPWN%_+AW3auXJt}l WVPtu6$z?nM0000 z)M_?{TFu5#xVrSxDm;x3adKeQJBFZGeKx)rZ(=sy#{Kvq#!tj)m=`*~;cM&;-33^S z<@giV;l0um*?$YQHpb7x7EH%#Jck~v#2PFN*X9M}|KH*%yo!UkJ#>e0X?Sx2iIPB9 zxbZlA7OT4<;(j__#u@kv?_eAD1YiS8a3zkyt_ax|xCU?F51fgg(bZ};Mxa)#z7{Ka z3s>PjJb??b0Y~CdJdVF({t@`6i2p3yiwC2Bd3bVlY=6jiaamz&%mdjimtb?m>tdXW zPoz9>MJ0~2!sV;N8`Fx-xCEO5e-XZl?`60;7F2IF8^c}UfxLn>(LNmQ^Re>fVSHL; z1JA*X_#Tc`^0%-iz5>FXaDJBFjtt_>19q_cc}xNdU*A1uhuh`t#Gp-~J* z|5iMPvwv|tc7_M;i1{O9At*Lt3G@-p!3p>^Z=AmVfxKDg<0ssLmm*9I&oWm@d(AIR=K zCE9I;SF(Xxg}}@*rUi*SZ)*@(7z8?|;;b|`+J8NjJyJ?u`OFfl@KV;<7ws_>8-FKFF@Xy28jx>0+|J!01ST@ffeeUa9z;WIV%FNeo5* zCaL7^im?TF68rH&1$#`|-3fESSr))M1AM=fNNN$w(E_L2crlube)LI|b)zUgRa;$? z7|%@WQu(}Fx(|Gcr7<>)kyf)Y+G;jN!++>tv`b@dpH!MRnmm(s^g#ZbJ#mv%)q3#( zUc~28svVVbexI}%FOu#8cS<$lkZV{elO~7CeyHOWe2hn=w7R&>{1NH)^N@6sCftT6 zlf!+O)Q!jdcwB(9OuUrtkn;ZC!0poEJuoGKNk~k1q;zeSaefwW|M{lCfmj-6#xJL delta 982 zcmV;{11bEl3akl`lYawzNklSi z!(14RkmO=O7cN8`h1#`g;YL?&f&v$UP)LGA1$}4)LW=?`1UG(`frF)%M9$35#rwZA z=ea)5^Nwr1aJkRD&pH3|Kj)t3+~-OUdP_|&fH)nHH07?8Qhz_4j{C&4p$45a3m|2~ z6~zLuARP6Rq{$||P6-l#y20zclD38Q4loeAvAUMoDrrm-Hr|ak8e1j+bUiKyPSI;$ z74O>gPFUv$;F%`9e#Tz{#tn4LWCV18r-2b*xBFHb%DThAC)WK7*w{*<#`s#`HZTe7 z^4cIU3jAu|DSu{Kem)EA0EVoy6SxEXXNT%Z1kVI41+E%!o7bKNehwZT2DSq)0_*(z zF>u{7XMpFe`=$ww1Ix0lI`5Om&kVBP^9{gFgS-zc2=a4+o`8A4dyd?{z$;$gZOqRL zThkqHw?C+2;qF-QV8u(h~hfn7Vrv4W8 zvzD2%&VN;7tdX?Tm9ZNg?xd8IyJl+s3Xk7r>`=#ZF@MD4yqO>pYkev(Rz{+^SI&Z< zw8-Oy3|><_v*$Syd5cu&Tr4mvr%^}sZP4SSnp-|qfWw?ewEUUi( ze*$yMPpHPosEvGD$j$+-0O!J5Y9kQ69W!V=4b?(ov*kYu?{|3Z-Lh7+5y(s*1unX# zFK;0c*Ixzpgl+sA_ybs2DZjJGgbaK0q>4%NeGG4PXh-^hCXEvxqD zWPgu=E&(ssc~V4fBXHh2`wFaCai}A)o!-$3a1wZ%-f!7s-m0g7w}5Xfb32?7_h-By z5CMjPBftdBZ2~w7JXsoVA~4&FN&ZDg(h^DQC9U?eB>gVwM@e6+cX%cB3R2^Jpf7=Aexg0F=*V4D1t-W5O+iryeWzxB$;#tXf(>Vb$l;D(=>gj=)9^q#oP9i)_?E10GtHmWESYE0IiiT z;S`*JZ!y5QEzkn4vrQMsOn?sYWAQrHV^csZ;sCD3u6Xu6-oOVTJ~eFB9OB2}HJp#% zF~nu~CTxzz9$bz?@&C`bA1_RUsOJ!WC02bME{f;-!W&EY3)^DVLwtsh@jPC}ny{-& zjd~98OK=t5!+$T>jDrQl1b^Zt{EGd!0oTX4cW_e7S!EAYbBezitD8h@&kTSCTpHmJ z_s2&_;9PtZ5Z8w8WCcJ^@r775%N5WCF^oJ=jM<94xCc*Q&@|1sIzn+hAWHiT^c=R} zbg6QxxOP1C4a8^<6Fc4Ei>0Z|u|rU@Ee7XyoX>VU!)`}>w;_6qH%+qwAPc-Lo#CFsNZMKlQh!*BpJqTDK8E)Z z&u-UhMsPR2!iTsZ;LecB=&Z2m%8BgBUgGT#WPlofNVU30+CuNeZ#YNF<}G1UdSW8A z?SI`;!rhK%XNk9yrR!w0h{teW5vGBZsN2G393I$?FQoHdne9`>{{heeAwf)`BZ=wMEljM#;MY=Y9e*EJja66;qtTGTV}q%_IWeP!gYH^Q#xJ_ z->Tv>0cLn4fAaP{&0D=*-TwykSB(kbBm#X1lTZW~8Zs>~IW00UR53U@FfckWHZ3qW tIxsM?1V_-5fdm&CGA%GUEiy1vF*rIfFgh?cEigAaFfhPb|7?@81Toa%+ztQ$ delta 1036 zcmV+n1oQi%3F8Tnlz+2HL_t(o!?o8-h+IV!2H>x6_e?~CqD10CL=h5Ybm78<(TD=i@Fa^!+>OOV;|DN;LsZ%Xuj@jAS{I!Z_59+!e*G1!KO@9d98d%#Kn70ao{rJB> zjOa)L18?5LNjMf?p^f=LfC0i)wrL_Vlt2UcF?bKFa2~$KH1^{%Y{0kp2HWsafG?T0 z)`Z~i;%xkZDO`xXVRIDT!bJhv#!q+8MN!Vo^Kr{ zxCRm*U|B(;w9kZI#N{|S($}gQz?Y8#FSb!u`}fk0_dg;_L_2K1#5p-KRe-m` za98}XrU>28YB?bZp_RSae<{MOfem;B8{^pt=R*&bLQ74;TpOSZyJMja3>+NoFnAn~ z9%&NLo`0L0)9rRkKhu%_ssJwwkZ!kYZf@=n0)?-BkoXO+<2KxdH}R`NnC*szy)f8* z1W4Q+Bz{3v*L6Q@An%0Ln86zs%kBS_j#H$g`~;~OeTJ$kjNlTyhNENA6dns4>f{e^8SkRVq>; z$`0lyA<@u3_N9j8mH>Y~)-8%KL{mxU`I<<@(}javDMt!(09=6Iireu*p&?BK`q+mD zq`q!X=pc)(!u!KWi~+t-1M0e7D32^QkK1G6v-m_R9&M@TTY(=U9i-i%Ak!;|j09hZ zKz~Cq+KTINKek9M*y&Q!xmjwtb~HpHi*77%929|^?+SlPy};&3!#z?byjoK8`miY@ z(U0e=xOp7#!F)A!M$7Od?km#N#ye66+>75f;vwm%oxz=WZWQ=J3i22zqnX4OY2WV0 zaiN77tduI|v{d0bxY6QP8wq|$1R5eSctf>n2k^=uxx4T&g|kG7RookgU0@q8CdGn$ z9#j_h?>>B9*Y)ngM!fAr;7dkeL`3o@pPWlYYpkpLe`HdjE5w*&Qj-q^7aB7yFgGnT zF;p=#IyE>tGBzzRH##sd-19p;lRyL)8Z#|0H!U+UR53F;H8?slHZ3qWIxsM;u7iM+ GaRf24oaie6 diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_battery_100.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_battery_100.png index ca14c745e8871b5437f3c1fbbbbd324e4eb55f09..2f330f721f21f72fdb2a4391f0261fa2214c27a7 100644 GIT binary patch delta 442 zcmcc4@{wi2lzK-`7srr@!*8#z_hWVxIR5c`?CiES1%nx00V*rl;ur&uYESyWA?hKw zfUVJSfuF)pVJ6?|_M6`3*DuA*W=K2!=H9zEXUglUlcv>gThn{FAm++tKE7)^rd2qz zPQI8>-JlUECgjwod9FbG+UXZHt#Vv*9*f@H5SJLop6j$VRDr*q)4x!jVHKN0Tl$;_ zvNuyqR+t@qx6Wf)Ys2pyJvI9Z?i8$FWXP=*^N{&xK}^YqrrQArCNX(4C z_*U!dtDlPN4)5U!|1L7+cTduK){fP)TOB?ZSp3tk+Z4%if&0|dwd)g(*2$^nCzqbt z^l|T{PtzRh&k8v(c`$G)FxIOyuuNbOI%Q7KSBgA~!Zn2qb zZ|6ka-R}RfVV`UCzO_uXHn%qEu4m+mc@t53`PKG^$Clrkf7@L2fyY_zwQqSD7#LJb zTq8hErLLh#h@q*Kp_!EdkZW#bVBi_E+meAnA4x}UeoAIq PC2k!SjLfZ*)tC$ctK_=h delta 379 zcmey!a-C(ulzMef7srr@!*8b>1|2crah<+^4NAoMcjy*U;UR%@W7RI77F6euc`(Gr~+P54d-* z$<^4Xy=I-mpnrh(1D}bV-h%(Uvm8x@7hQC8cph-@c-4bDj8p0vB{mexGtQma$?D6X zGL!uVFk52s5@m-zqH$g2OEH(xc^_L)j` zaMDNRj<~SX?~ca5y5qKA{OyL{q3#C8@{^uqn;hx6`F{5q2GIpfAq`vsj9Lz? z5wAFtldgYjd3noWp<*nPk-;%8-rkoBXK%TbvhLx=i%k6oB$K1}<+E-(5WJFW>Gp?j z{xnAYjrdz$%e+N)p7d`+X3xp@7{#TGbq&mQjSWK#jjc>Atc=WnTq^^EJD;s>Ci64l Ol3u&6xnZ&clOX_vFPe`4 diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_battery_28.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_battery_28.png index 6dc8f869b365075719f67daeab120170e845c8c1..8457c2b1988487820e9810f297750952e4e02dbf 100644 GIT binary patch delta 626 zcmdnTww!Ik$i|uYV2He>{EBfuZKWSz8_75hh z##;5dElzMduyxuxz8Oqh6I4zPGE|-zs^B) zj-GSr+J=ve?-}RYHs~>OeBj-|{D(=!Q|Rt8rbn`Ita8777>pj6eOSXLuw%f13ImXK2^8$na(^fJn zY|b<|T$&ZW^;ZUiNPEA7V+gxd$Mv~?We;Vad8u+pqNDx8!(?lRx-TrNgfus4A6?5X zX3cPSl|YlklblWVHUDqDx@Y(FpyHm2dwdS_npQ735t0^M#=v0cQMIaT(W?a~>aY1T zCOOD-2=>g>KPAiXPbZ6UN#)94{Pl-hryPB}_#ekht<;YVH$@ztT@_3gP+ssbX_sV! zguuod8Fq8Emo4B7c-pagfmX2R@?@p#=h_+444tah(%BESMA=>U$tl=bmUS!;s_nFw zy??h-U+D3U$|**_`PB3ElahBw{AD|&KQH}!KC9Do1_lPz64!{5l*E!$tK_0oAjM#0 xU}&UkV5w_p5@Kj-WoTw)0OXom85nrR?6ySFkei>9nO2Egg9RgV>ttSLLjb?41q=WH delta 650 zcmZ3^wvTPXJXS|D)oEm%!^htSeYYpx$1h4fBW%$-}kgNGaJRHWnIoR zkZ4)Pn8#PLwn0^aA#>I|z5woJH4Y5CIgQp2CfCPZ-6yWVw2!eqzcIey>v>j<=9hXQ zx4AOpKk$CI$$WyZfvJvx^MiCi=B!heq5=0lh#GvE$slq-_rpFm0hN7T-VbCa{H|tR z)3DNiK_H`dFyjN$4}ve=rtIdo+mheFzc043Lw{cpzv=sChOcYpm}~t#{gaQLBspreb`-MsIQiaI>D#OU=JwpsMeJeyX(H-F8?$Z46+ zV?sra#_qqrfBUtpZ|^($jJOGA$R0|Fv=d@8?HM{!sB_g}l=( zuL_$3Ti93hZWo)lL6P@*Fe5{bi0i7$FBgPdUc|WJZr)*)nuzt+}+ z&;Hikb`b*ugKCLuL`h0wNvc(HQ7VvPFfuSS)-^EKH8u<}G`2Feure|Oa;*#u?tHek ZLD7(#pOTqYiCe?kb|UkDQj}O!9Xn^q zGS&&K&;NKfzimn|3lW_By*{w#HioFcb#9zKVUFAP_(-=FhU{98~;symC|l9gp|mw(qZTYKlI_J?0*YZ%IFjynSn*fKgFm!o_Sy7qep>QX`v2<%KkGYgKT={~U{Eb_jVMV;EJ?LWE=mPb3`Pcq zM!E);x`rkphNf1AW>yA3uDO+gfoIHaOB4;c`6-!cmAExnFfz9SHAsSN2+mI{DNig) SWpGT%PfAtr%$+R9ECB!wB?za%`BuNLSjO5gCi2pf%LxV? zXE}CQU%JY~-@xo~`AbPdkikbrMv)23`Hk!U?bPipcVPO%aF4NmKjYi^)(be6{SNTe zUQlzu{J_;VP3H8YA};W z&C@r*b4zI4bAupK&&=aFWW;zkh8XfBa$Lu>SgC ziNkr@yMO=PcWKwV>e86VX{xi&x^0cp-E}vwmbJ%F#I@1zn5b)G5ZCi_vpJWF9IKbu z9;27J{dUgw+f@upMXp7;xGd6m)TH_2wfM9D6RuyK{*d>iaw)M!&xnsk? zz@S><8c~vxSdwa$T$Bo=7>o=Ijdcyob&U-}42`W!Ev$^pfLtpBgFBzCQ8nb|r(~v8 W;?}TsU2_A_21$?&!IS?nX#fC&QX-`Q diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_battery_57.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_battery_57.png index bb0727e8e75544b6cdc2791a579927f9182b24e0..10e3275d3aca6102ce8ba02df519168c196986ae 100644 GIT binary patch delta 611 zcmZ3(Hj{0_l=_#RE{-7)hu==$*mv1MplyF-zRv|&R$kU{CMLzeOMy!kKlK$@e=u3$ zBbSG`)MqBgMN1cWHEIaRoH}ax{+y^e-?X_m{N63f{^LFE+O?`@v+ZZg>fhP4rCVH`UCL?ZWpsUNp9i0 zdYv(yb3XHZ9*1lOravrl%>NlqZu0qF=%DjJ@WU-F#uJV12Yz!oXqry1W6p1Ey{mpe z{=pTl42uVut5_-+YFLhK%`!hY{qgSu?9%SdKN8RBYHy5YToo!Rrg7u+)zXc=uB-~C z&mV0&xleh&_`o@*E{k1ZZ*yBi!;2pg z9~Rd#I>;#asW3iIG5v9yaHfOr9Onp-QtMpgSZLwR?kCfEcPt&P8 z_~x@|v#i7PXN8l`Ebb8tU|?WSEpd$~NlA<-NwrEYN=++6v{)u~s_w!TlCw@PX z%n}s$SZ}VvUe3&zW12#fUU}pkIl0Cpv#j{gC;6MtA4~l|kP&|C?^*L^iR_0nRddC9 z-4+|XVYpsBE$o2o0*1(Gvit$uYIX_@jMolGKiIrK{^~bv0cQJ#dc_ao8~*KMN;SCK zk`>MPn0X)DzAA>h3<3|t3z*k1oZRH&zp|m?u=s)K`J4`ndzkKBXK1<-{*teP{Yl+D z#(xa+YnXbuB4%+h=r{Hsxazj;_JhMeq<%a&KDGVFGwt&D&-b_k&Y!AWd?|n3e(~K; zvKTh5kJ*~N(KaEiR!p%%n)Q5rR`R~kWlLX9e#un8n6YP}Qf~Y=b*6%Ia~~DkHN>rF zZ&-C|=Bka`+fC%oq!~Y+v$|`M1P@!YexOKcNNDE$j;1RT%B!!w`d(tS*Yk48&G+9^ zEo9#1AN8D+u$FZ~-gfP}noS{BRXm+0sVvF7RgqVo^XotN=gC?6O{-QF_ifTyxvKtI ze3NZTz<#?$T-K8-zS$Kp?qG;v;H#a|cG&%|z@@NLhZ&dII;>5U2<4Su@~}#Wp`rJ2 z#3GGbw=PIAy#6|ClTP8eyZX~lzrPl>dX;*pgUchE^YvEGy`Ias2AYVO`lwIlRBAGG z`((4<$|%FQ!NXLpzx!v+xulH`zJ2?)aoY2%_4Ws6Y~Ax)t|@?lfkCyzHKHUXu_Vlzz|7#drdT38vG0l8KN26sMN+n{L3%}>cptHiBg?Yia$paw~h W4Z-5 zAK-uBs+f{R8dfp9U!WIyO!*p{M%~IqE2>tUmSaeAu;~!&nVD06%9P<> zP8Q>m-`Y2Sr0-z8!IZgg}F7$$jE+FZG1Ey`cIRYJkq=0nGVNi`?#$=!+j z9j11y_^ac=AKEheYza%`BuNLc+L^Cn8-^@E+-gp zoaNYIed#I_e*?3}A=QpnZw^O&b+=1y2!#&3O{fuwtTQA^P_B+5= zdqK?s^8;s?ci1v8)-lE=Fni2e_HGVWhj|U>p6@dm-ZWf4a9qe?!spN`20MnC`}-S2 zKO9vLSlO^_6~hOvA3R&WZL(#Nzg2!f{r)z&N3+-8Nj~{o!@*MfaW9wsjz4iWs=-Vi zHBa9J&n@kp`7N^Lfv)Xs5qz~{uU@Kr=aeGSJVfUW`mqPmL*=Ias zSUT0;^7)}QlNf(ih6|pPJYbT^?B{nPMFl3RoZdA5*o;H( z4YlTKEn9q1LudY^)X3LI7F=aeDzlJz_w2J}efQC(mnBszpZ>opAHQW=&mOzKe;61T zR7+eVN>UO_QmvAUQh^kMk%6JHu7SC(v0;dzv6ZQXm5~{cYh_??=d-m9iiX_$l+3hB W+#1%dYiw9b_X>rl0E19 zPCmIr((S-e)o57*W)X$co4ztOr92X5l32js9 z{I&GJkCxvD*!dUeGBECAEN{5qkP^AfSw=wq1Jj2a_gNM&Ly8@@Y(%7s?G_U^c7^&+B3Bw$pWp3W&6y;j z;mES`^xYq)kGEK8zI~eg;oIFJhU#MZoZb-Epu1HG9l{qH-8vlm`Y*jW9=_Om_YLXq zVb%^an>PoDYJHZJW`0s15*Q*I;>yopsK9rGxvKj_omgmH3%lK zNH7Aa2WJ?=OqZU0tX$LbW$LH@jGOfubnXZy3n(w}P2MHfAR*A%x!5(o(8>M+>ju?F zIybDQ*O;kxJ$AJ=W^oA8>{}jXx%$xpt#IZg?d*JlA&dN9{%+naZGJ3C=DPgTGy4xe ze4Sfz^Y+#F2Oxs`!|XUuL(hz_WR-29Zxv`X9>EEt(vC;wtH1OUH?|1AIj delta 629 zcmbQswwi6il=|PEE{-7)hu==$+b3lx(z^fkPeGNdW`b7)eO+88iZAeXXFWf0Qu&Ew z7q64dOQbdP9h@bDRJ@LMHMFHZ*?9RzWOrg>!_;jvFF%lcQ*1BqU&yPkv(h-zLgrT@ z%bmG1vKp!nFr`G6Svmyx#5gjriX5nZu)8|H>8qGWWBdX32m18_yT6NR?0u;ia+hU_ z_7A=p)(q7Q3J2sDu;(zI+;k>xa)ZU;>j&Jo3pdz)5c?s+P!T!(lI;i16L*VQ)->kl zF;8VlTJ?z`zhS+@>xAvcAN>8n_v6vAV~&3cPTI2EQ)fIBo0%T6>*&Msk5ft*ChU50 zCU~+oL!gN4zx7RzN}t%CJy>6C+wiqYR;}Qh@+!sETisj&yymjc@LMjCd?9MP^<2NA zoIu~sjsTIPtAEzaTap=7vO897^2yAGy8ZpvX8o<3&%?$ndc5#$*YPROD|g+^3tfG6 z(e>AJ{T;G>Bd2Ao&5fLwSrO#KePV?*Z{trSy;nR+D`_wip_!)35>i&dZ_q`bz z9+~*6dJ4I$5)*A$q*3GkWy8&!x?_bh(b?<099%BhoUhMb>wW!Ms9LDc@y8qAC#anN ze67`WHLJ^+43k^>V%*bCt8TveChYX{tM*xY4Yzg8ERs6Lz`&qd;u=wsl30>zm0Xkx zq!^4042^XS%yo?oLkx|rOf9U8%z#`g1A{xCt!+>=NS%G}U;vjb? zhIQv;UV>C6dj$D1FjT2AFf_CjA5L~c#`DCC7XMsm#F_88EW4Dvpc0l9RJzX3_A`ZWuZWwgLfX8+I9?6KbObaGw z-=m5vEcHyy7qs`yYGhLLdF0>dWaC$`DSAV1{o*6jmZslq<#C_3ws4Y3O&Bdh*v-h9Wf7hg^ICE2FJK~dtWY`z2#EMx`!JtGW8#j zOpe}{&${hE@Jg+?0Y>vBIYv`8^T99uvSEfReqm zf{Sh1V2$XTzYF7-DmvAXG8j_9;ncv0F30Be>y+Sx98hr z3W0#teC)x~A@?>0gaSS*VSMCL;7luL&NNrV2y_$6wSUK(q*lF`pfZ30H6xsD)qp(v zBG!$S9&2$*GZd_6AyxtqAhmF;W;og0U9~`9>3PDfwV30PVMlp200^Y2%uNNnUJtOE zLk%+J>T;LAhn8WcL;^FRc-26qA~Zl^m9wposX#~-LV;()j4$44aOK^Ab`%g9`1-As5AXRP;AF3i^X@>KJ`FXEf!E-Ss1W3}qFPzk^)G(zES zr_cB6F-fLm3b#I<1M=YCt@K!2jhU?*uN~2AC$vB#5Df4^yUzRV2!J0p23-Gri+0_- zq9Sxw^wL45eDp>gBk;>+!qw$XBDekdwgWE!$bUDWW@z~2%_)YN^3_t8?bH$(&;ney5E3^!J`xc}FHc4SB=3=W<}m{@pw zCS)y6SzO&__K?9RQXo_1_F7Ef+jWjY0V5EndB+Pp+wPpw8Zs>~IV~|XR53L= WF*Z6dGA%GSIxsLe0Rx4T5(F`5agq}N delta 912 zcmcb?ahPMmlzL%L7srr@!$+r|_j~Oo(!PJ@j2kTO1rt~F2;?kqTJ=I}w%3OJ{s)Rf zl8y_zyh>IOU81lte^ZXxy@mwF)m^Mxm;_5oX9pEXoG+PJ=;7>P`)u3aT%)qIb3f0? z_aFaY@BL)vmfgE&^Lig>=L|Oez-hqnwd$^H!ikw1_!w0#Fz;inuiN(h>xC-jDUI=s zQXi}z-2BbvVZ3;8K&7$5+Qaz`#@q>R3@ioAHN1ZqJF52Pb)`5&G#ejqm*#X}TEk?| z!5usj%#+RLF3dFkZjw^1 zbf6&Ql$6)oM-TT^cxQ1esLwH8et*`Rzs-i{-6mR|Uwmen+)h0fgRr1e8^3S8);Eod zA!BW2O^wX&cmWoUiROWQ3{D)EOqNEi4O)HG;MrHzt1+nw8s=SXe0dV!D!VaEpMAjZHyGNz1icJ6Y;?GWHlw z@lsu+@k)P6(StQtvo5|Y(U^WZ+559A!SNo69?|>AzC}l zm&PzeW!Kz){^UuEMPH!T!mVlP>C5BYH8ag-Z@K-}v2$Mrr;%jxhgx|}Rc&o;9esV~ zg0eEV%{NteoS(nFk$Zi^tFKjS)~{Dy`sCHCF1N*v&qb@&?qJSX%h}Y>+siv|{`{Nw z@7Jq)PP*g!U9Ta>IxZ?osY~hGw{JW4?mhbbuT%aZCk8LgtgTXO!@4hD4o*u;{QnxAxcLul}{-->KR2gn@xUwZt`|BqgyV)hf9t6-Y4{85kPt8kp-E8-^GfTbWu| k8JPjORt5%lK3m(MXvob^$xN%nse#pC?YicM$?7bI03nB%WdHyG diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_battery_charge_28.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_battery_charge_28.png index 92d97887030870dcdb046f2d96ec64c28f19de63..f2056dbc2007a949ab5fca5ab21dd88786d0ac02 100644 GIT binary patch delta 1169 zcmV;C1aAB53Bd}GlYayeNklLv(jwf}&S1S1qA;wD+ygb;-iQK-g+EtI188c=HNk2LSSc{BGO z7jGtc`T1trif46a=FT~vbIy0>-V6V;NtQ`tV`J&i14>6sb$`Gnpa3f?EBOK1f=Ln( zzyM9)H1KV5-?hE3Kme=*ZvjsMKe?}fO`YzA%31-F1bh?tB>~Vq00R64ybe4AWMySV zpQi$nI6MZtpJW0M0u|tsHh|PLsnR3hGEhsdJ>UuOO_IRA3i#}|6yR0h2GG4H+k@cK zaT)j`8M_4Hw|}H^jW*v$0<>opCys3La=R`Lv$zc)NGj(Jo9uUR<|kRC!LwNE)9tx_ zE`WU|A{b*1d}gi9=`AOKh!Dpy^?H5ZGgYOxw-=GDg~|z#1}~S(oIiga)g3LVD#jRA zS68XkYKK?j$@25JbwI`>({SitNI= z7*Z${=zrDs**qZ3}Q?V}lD9E^z76CHngM2!eo#i3zIJDnSrr z0?7oBerCmDkvn(p@ZiA%*4NiLd-g0BFJ9aRx_b30_wV1QR4Qd|MJ52}9K~Xh#l=My z78Z!22x~2~v$Ftrp2zg`G;?!vl*{E@I>_}WOn*TdjRqqlBMc7@1F*cj%+%Br{r&y9 zMYtc}h`*R1U_2UOlhM&pj4}Lr_b!vyu2Jaf2IGOgAb`|1(_y-u+J)fMam+W2ojXUk z`Gkp&K4k0fKPmPUaiKkE$vjet`v9Vm_dr2Z3t9+vt^G!Xt+2_NlgBxA>J*nh`;xn* zA%FVcK0|oeN~jvJ_0+={2)g0>ANQoR$3{P2HQ3lm6rPTT&issDFv<5Mp1?m%<>QfF z9zEOQ(|aMW^!5-R+;>HcNd4);XjgGFJ~<*keDF?(9Z|CZ&O#Kb)HcB{fGPq+ z3aHZ}8e6I;s(%imuyYF#1L8o8U`$Jts;y0-LX7ZrwT_oA zI_8MQN6e0>1vp@#%Jmr z05UK!GA%GUEip7yF*Q0dHaajeEigAaFfd76yEy;=03~!qSaf7zbY(hiZ)9m^c>ppn jF)}SMIV~|XR53L=F*Z6dGA%GSItDN>H~|BNlez>k;_w(b delta 1045 zcmV+w1nT?23hN1wlYaxdNkl0;QThaY4?Owb25=Aj>^smE0h4YC0KNi#0={_TZ7=wsodJII+scRd&5zu3hwgy@ zonEzkMV>#ovwtr7Nvi{3$d8=rH`shfndy5G7!M-TG+PT)u**)cz75g!UifLKwx}ybd*A&fY!RJ|M2jT$H&LM5&A3uDJ8aTGe1Ai z%E}6!=V2HIN-3n2)M_>M_xCYPvkPvZ-YDVHS~E2@1%JHcyVYtTrR47Jj_vJjJkN`q zg3th3Yhtk&`F#E*bf(!hwzIQCyyF)=adBph-a#}Gnb7~NNiE`VGvhf)fqR3e>Do1F)Xl#+*s z2Y-siB9%&o>+5S478d#$7eWYJ*R?J#E=MyJd@u97aB7yFgGnTF;p=#IyE>tGBzzR PH##sdt*(QBlMn?ldEncR diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_battery_charge_43.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_battery_charge_43.png index 09ca0c15845ebf2957603410bbe3c2701d775cdd..697d4ec4a67409b9ac1a4765f4d66d560e68c98f 100644 GIT binary patch delta 1162 zcmV;51amf0v@mjyaXHoZq#l8-Eevms#gV66mSCgF#@nB00j68cnUZKB$vzC z^C%#Z!vWycXeIzPAPZb;0ceS=a*LMar4e2D@FHxzQ{d!F#cWPjlk= zTmWq*A}FOg_GztSdW#7lB7|W`rBZ3@v(_>=IEYBELd67V1kYqLOixc^?NKdRYf(zE zxw%QXTs~Ey3jrvls8lM<%*?Q`uz=PY$8j*mpp;@`V}FD7^>tj=JqFj+ZydR-wTzFC z1ND4|VTe+S{r!EGmzU96$4)`d0M=R(i3Hhfwl1CPHiNCKtdP&=NhXsRV|sPjJAjCw zwI-EHF*Y{V1acgQ?d@$=S64}=(*!~A-v9svLBPn!2*bm}7-J9-DwPULOG^|A1!}b# zi9~|_{(t^hHPBNLDy8s!pKLZuUteFd01Jfzv$M0z&(D)ir|~?G#l=PP`8=NI^#tN} zh}PC*MNqCwa&VA4zue_sKF{9XJ+4kpGB-EZ1X_CU8o%%CkV>WMspz2~+W@3oY{reQ z=GM6WC=juk+bQH-E?s4Pg!+w0^g3EP(23Z-O;o!hVx} zG=Usf#B~%Vw7hU-kmn{Q09eZ(aJ@Xrz#H#U5@|>;h#;Y#ba(G0a1*|MAv;KJWZoLS3E4S8_b>qL9jg=lt`BvVBSP z6MxV4Py>DyjE10QrCg*907zMw8Sba5EpKn#=P)n~=px#l*fK>S)snSXtThnSdH@gw zVnCFjRJ|x803}cgEt5kY*@yd>|E|Dq#ej^b2(5JZWl={(Ep#l(Sf646YTEMpXp#@^ z9&r25N)$Yfmu?E2VZMRKlPJb14cmYCr@W>9W8t z0l;!}_-GzNlpJ+-G0V{bCN4ld7NQiQ1Z?BSG>+N&iV_#ssjsLGX=?}2K4LWJuqxH! z9**nQ7x8%j#FJWO&jvg9uifU%emJp1E+QMHxn4sZ#zMw!XfMvVXZ; z`xkqvoSxrb3~B%X03~!qSaf7zbY(hYa%Ew3WdJfTF)}SMIV~|XR53L=F*Z6dGA%GS zIxsLvT)Q~{001R)MObuXVRU6WZEs|0W_bWIFflSMFgYzTG*mG)Ix#jnFfuJLH##sd cH~|BN0000PbVXQnQ*UN;cVTj60F&7SAZeZlod5s; delta 1095 zcmV-N1i1UF3i%0;lz+)dL_t(o!^M}+OEX6p$3HW>o2W^QMy!G&XnZdzy%-Sm+9?IzK>xTD5a26a(a5o$B!Q|O|t{8r{6eoX|0)?n|}jd#@q8eq?9~9KC->Njqm%h zhoEl&tu>Zqk^UT^Ydt}(OM5ClS!*R3xC5fa2$u(*;xvO0st2m7o44)vAnz- zm0bWRrG}oKo-84RGcYhfrBdk)kj-XMN}-gpMn*H0Tq|s=ww6ug_7}RPt4h{~O znwr8ejDL)~5CYeA6Si$j(=-_#9{#cdzVD;8Mk%E|&+9slhG9@B6mVUaQmMrA^D~J= z0)NMGI_k;uJRSPzHbr|)Lm`A9dPym9U6<+UX(lHp+1uOW{{Eh1GKtoj_WohuU`V?L ziM14m8&a`YCn`F{Y@KR_fiDTI*XC1Utv8pm`n6U<)Ub^s`) z!fEsDy6!K51H~HvfQ0Y+zY-kHy3LjjfUB#ku-BDR>g$+6yP3*lGRY>ce{001R)MObuXVRU6WV{&C-bY%cCFflVNFgGnTF;p=#IyE>tGCVdd zFgH3dFx>MyJOBUyC3HntbYx+4WjbwdWNBu305UK!Gc7PTEi*AxF*7a-|NfHpi z01@y!@Lh7>b$qWt0Bi#<0egU-+*iOhogRl8Q~{F&yaL=x0Q4Au0Dl2b0sDZI%Vix# z0ZAMdfH#s%0P4Ur@JR!+#Fnrvh|l6(^2t@^R<5ILYD;fFM!Mo%FKb$C;mG(F{I_HGR5c*Fynx znTTMF>G{lBo6=iK01+XMW5O`(dZwxri$z2R6)Gh_GkB>~Vs>^G)%I9YRg5vLudh?9 z)lO9COaR6h!Z2iRZjSl+d91Z~o`-V|V+?C+YpkxW;(z=8f8hH1O(U18GBq^?H0mA4 zF~%4wl?n?B3s`GYm!JoL^gL7{lgThWJ>8Jb_mD*D&leYYu(icVK96&HqK{q^sk;O& z?nV;99z~26@=Q)nCTf7^8E$QE@Xd`cxlqUxM|Dt0BSIH|jfO6fu7JGLJoe zvC)N$M}HVQKEA%l-(@)=8A%!!J*(Q`Fx(AD-rh&EDvfiFOOw;=YP3ztb!--(T{uFjz@T;C^UwG0mO)S zV0_5r1{nhmG&x)hPH?Ie4BXtR^7XwckyEU~SFc|J8o@uiy~omTyNqQGtp!mGsMS^l z)C~a8Dp&W&bwI%fW8uY8mKRC^04u+Te0rx!DeE;d?<&9JSQBhns&$~*OGB%?axse$ z_Jn6vJJcXtT;qa z@qP(5SDrm{rNuZVUOS}r5H`L&k70AZ_AfYvcUn`HfnWdt03~!qSaf7zbY(hYa#Lkt zbY%cCFflSMFgYzTG*mG)Ix#jnFfuJLH##sdNnE=*0000bbVXQnWMOn=I&E)cX=Zr< kGB7bREigGPF*H;$H99diIxsRVFgH3dFgO7Ng_D#7F%7isF#rGn delta 1006 zcmV_D}ObCILa^Sl-juU!I2q1(Y ziXz(WcHcX#HJ;}o#Hd0g1hByig#s%pD`>6z-q&h19v>fHRp?y+QcBwGHlSoTqkkwuO3D5GJsTSv#BrQ>3PuLd zT9Znpn46n>md|JRHDr96Jpnl}ZUA1VRYX=`^`qj+>hs?(XhrwOY*2 z&r>d!yFmN<`?OlE?phE+5Qd?&J{-q+TLGfKrNVHp|k|5@8s!v$I1G1c@u)SO7u@I-L&F)6+~&PO`nd zO@E`&=CHlwfz**ggQI zlr5W|!!Z2KI8clM0HotM{sVI~8?;;c041)kuWheurPTKcgAOv~`+g7v0k^le?_V_k zw*3POACGkZqrvu*eFPU8Gc7PTEi*AxF*7TF6T6!iCU?GHz@^Ns0J@u@ah+ieH^Ellgk{?maHvo5`3- zGH<344-DM*-o5AlJLjJF&RqDPO|nc{TwLr9Jz(;XsSc8mq!Qa6O&XBzyJ~O z2=HZk-}S9mAOyC63&1wur}q`GU8j4YvSz@fg7d()DS++)5a2i9EU*Jexm?z9G9anL z3E=rO5`Z=^2fW({&^1l7Q~_QC8tJtM{0&@50~pAF&!BYyW`JcNzbD%L;Jf1z@Ig9u zDa1yaxmKU=Lw^DKql!~UHeK9b7YA9~2N0&2a|ccKhdA@oD7xZVtn1V5xgHB(z(fRN z%)Za8wIg~P5kN$U*e;y>^vG zqj6w{G66`V*6+8c;&~oB)hZVjpW&^gC9Ji0o`-V|V}A@^mA~NgPcGvJ!N1_xQ}sgu zS}(i`>cGXv-0_nEl0@Sfq27!*wfHaq)+vg`7pQa`@7%D|UV4LkF2p4Of(Q~v1%LC$ z06&QA)O~R6>%#%;>3Og*(rE{sGmjhm093I88pGVVi3G?`mkM0^p~^3_3zW_Vv|V4o zVvy!`=zslr+i0$UJ#{`q4MZ()7CLQ}Mh*M`QN=18_u#>Np*PhNSiKYR;bwy=RpOmS z$|So0t-30Ts)J5@u;d1-&437q5sabxi$$0zgxs6=ahiM-npRm_tMFIL(NYLJk7I$4 z_O0s`wUGE7nt^@H2t-afH|dl2gjm5B_`PL$`G52T7tec?LXXhEo7XGctjB~#7}|-l z0%)4n3E%L2HR5L7a;p*Z#B`2V&J?klY{%Pc71nDp_XL8=qMjANDNOjnr&|p!->MVY zq$WOkdZt$k@2}Tb-l#L3GuVvcnE`qrz=S6l;IUGUM@u09E4Q1x_tQ3|oXH${*Rp@I z*njP%O{+Y4GKUfPt{SnlRwXpj+phl%0Kh5~eZzD2=V@8x_0oLn4 zJ51lD_*faRs(idz#~ZQlA4vv`Ks{DOl7DyqE`uKmpzIz#dWVqoZObCA>>gl71xU0I zV-O>t-9M(In5K=*$M=%PmZ=%p2yqr{+>%yp3(xnHUOEndgwk$qX~$U=2c2j*K)AZ% z5JAQJIlR8|&|UAe7{}~WEgFBo>Ssq$Hb-m!0BM?lc*}zGJ^%m!C3HntbYx+4WmY<4 za%Ew3WdJfTF)}SMIV~|XR53L=F*Z6dGA%GSIxsLvT)Q~{001R)MObuXVRU6WZEs|0 nW_bWIFflSMFgYzTG*mG)Ix#jnFfuJLH##sdH~|BNlcfYP?W_yo delta 1023 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 ED&ADvWB>pF diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_bluetooth_off.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_bluetooth_off.png index cc67e41698eb9abb2d83b40e6906acb6c4faed7d..2116449fb52c0fd910b2f5b37917872c20569421 100644 GIT binary patch delta 1203 zcmV;k1Wfzp3gilqlz%iyL_t(o!;RNTh+I_^2H>x{JKa%}MIsG~8qr{a1CAAU2~Oxj z30WwjE3utdBH}y+jffaG5tIaR*ahcBf{=)yf`rsUjhHMX#9^T^9kCsIsCq8$xv5t# zue$5P?E_-zmnjRk}Y?Kk6Yd=mopg@8Zf+)|u^i*XHBVN*Oq=nQOu z0FbqUkAvZc0MI~DWmutGix2S;ZqFd8cl{gpEVbTVQR;yJ6)6Apnj?aVU zTTI|}3^$w2c7L6qI;*s?4EMw{Ed^Y=^qdv08OB_InTv0uIE;t!Nbqg9TCK*s0K$xU z?*<&jCjn}EQr*O|k_$M>D3VUKcT;sonbp6(czdI!mMbP|% z@31b@l!Cmk1v;@@g|GA~KbVMWP$0Dro79+u;$m=`tZJ2(LcL%>DS zjVW{k5)MgMloY)40?1br%G%D4xGdmKl>G zyh@X=)?w+!Y>?t23;Qbo9kb*h07e49T&&N=_qac~Od!xr(qNK-J3XR}1RU<^WtQ`FI(&hQO2J z%#3acE-O>?k+Yx+>dyZc8gG@Z*d0>Q`WmZseScmB-|5G&->3%8NND?@6p#-|*J~$E zlY(=9>=%9b4eWxB-cmah!XKA{Z?)7Fomc`kfj6X5yaqRwWaQF4um$F%D>znKZ^om+ z{1BFufaY8&5xn&&I^6@xS+ znQ%8Q*S!H%;_SZr@K&s|YjR(?9OvNEl7A8lS|Dq=BbeSC>ruTy^b79AtGbP87M{!R zgj6r~W&l-x9~T47W;5sgSv-$dq#`t?*zk5AuOldA45}8Mt@v^ z3#7(m8u#Oa(7as%JwJd-uw@WqQmcNol!}*0Nv4q6u1To{--XXgRy^kSfdSNj80c4f zzF+!&H2(va3`{C@kG=N*001R)MObuXVRU6WV{&C-bY%cCFflSMF)%GKF;p=&Ix#jn zFfuJLH##sdvQ1|>0000bbVXQnWGG>DWjbwdWNBu305UK!GA%JMEif@uF*Z6eHaaje REigAaFfhXq--VMk1u?)nHNXG> delta 1186 zcmV;T1YP^&3g!xslz%o!L_t(o!$lYTY2k_5%&Uv2A-;7qoCR6?<%%2xRhUEp# zBySXI!@OOYI@n^=!P>mBGH=8yA)=T-t{zuVKJwx7&HzzzC)*TgEUN^GO`3tbaGrMGrciPOY8B5XKv! z=xp4L>#zv(3I~p00>9#8yoSGqaiVb)<2|(SJnqNWVc@$kFcEuCz!|s%%W(mo#gkdj z&PL?GMl8mK5$9$$(r&kVp)~906%Kq6 zGJEhKUP80e>3>Yu8LC5N8VdsUHDP=--sj&r*b+`ng)>vJHim!j2p$f-)9rSrwb)+J*7;EvWezIl*dG8zH%(6iTp7A2$la(yPS21ta#IF&^tiaoWKz5=R zG85Q~>$6OeuBQmmhz^~{MtF~%@o%7Jn;E6-htkjAl8BCEGTz8ibSadNSLXa~k{us~*B zpi`B}i0zXqW+iSfj2+Zx%o3S79cb#87o3Y9@qm7YXEd_%r4sRMkg`AX!{M0M+M3IO zk;2$d5`QUe#V(0Od*nl-TW7+=Gj-5HCxNxk<{CsTyM=26Wy*y`XO71e}l8aSFBtN;%7O zzo=$=Z;;Yq5h(W`k{Zl5?2prLz;2wcAM>gM$A1)pUd?(d;9V#6`E^pMZpWDtZSR#D zP@S=33PIP*Ryz{LAH(`M=^`9oIJR2KhtDKxzN@g2^$m@{RQ%=@&s)&O)za1L#2Ur7 zNW`zFLUFe5xw2l8URWS$n! z3aH*bJCf z;yEef%edwBoA6N}u&p?G8S4dckUONj7=Ni8q85R?;r%#KE~hawljzUFc(Y=BEas~v z`resQtj2p*4s<%5%=?ql$Hi8OXeRZ$S_|KY@zHqS(!aJJmTpN;NY#;%n>A*YVT2*` z{)@N_KVX&A=cfv^h>D0ScTcMORd_*S%y-p)Th7jb8b|UM%^Ex%C)tGBzzRH##sd-19p;0000b zbVXQnWMOn=I&E)cX=Zrw}T9c?mLr~BWAE?PjO*D%5Sn5I} zqJq(=8zYJ);tK>{_&^b&f~bougb)PM88gjv4%);q_>Cj>9FlaKZf0S3jY@N z-NI%DYp^<;*MF*4M<7Qv9t1LQRx3xm84pE-(=`fY>~+!iYkV~lfU|H$i{0Mn-^8^M zaY-W2IR~f3^3B4j1I}a1qTk=JOxbQe-mW2$m7LcWNK+2LQtd4(wFYMgiR&sPa^|1X z1ky&}xZ-&bN(^e|uE5ri`7Nvp5+(MrBN2!#n4K)FM1R|j=UxS43X6lpg?LBWIsX`D z{!s^`Kqjyt`Yv|h@o;u%j8~KGBwQ5FUrCiPFVo?bAV(t5EykY5V>lP@$Jltq{$8xd zG57>$O52m+nK7#xb~U%s!Nd3uuiy%)J}fH0AHj2&zpy%BLoCO}$>ZpgbDpU3#A_zRcf2K*Uh2cv+t5hwwAVY^StgEypv zgZuCqPR46kj#s7S85Hvmnm|4S1`*L7T#0vaCx0G@_tVn$`~i1|0yp9w!(8Y$IcYl$ zXQJ=o53Iz;xL&FYor?Vtp%9#an+nWa4?3fKkYvEAVr(P64A4!LsIttrO55{jsT`Mu zXwOIr1iMUNcj4f!0DqyFllz5u1~1`A=~P@EOPKfn-%SJ#*sqm3{d@GikoUHTx?hZw zDu3XQ(iyQC7Z?_z{S~Z{6v*wTVo7o#D($oMlkx6#TwFLW@qekzsV5LEN4Q-|sw`u* zoOTM(P0|i2t6=^F+lB8d*mDx-;AebMk-Kj025H;vH$3&qIa{Sdl`koC5-7*l7tvM^ zmQ?|Mi(!?_k>>=QmM%4ot%*Qh?@w`mfM?|hdf{L(E(zKDF_x1qf5xxHcZT=GS#7Sn z;dnT_3{Ohu{9LV%Z}FgXUNqi{GSjw}mH1Gqg3F{+aH&*q=7%bKrFGsB&L<6%u;1pO z?Q&ZF9qFoF%o%fF-ZaknAFl=tlb{3_8Zs?0FfA}KR53O>F*Z6dGA%GSIxsN95Z{H9(F8FgKmexz delta 1104 zcmV-W1h4yt3W5rdlz-AmL_t(o!{(4-lm1Cgib@AU86`xTJRT^%p6~wo9PG8; zUG45U_uMsE=kB}LTHpTmTI;M+P$H82u>cxCH~ifK#!LgWfq#FqJx!no2%sp6fpG?| zX2A<{v=(?2xCgiySPm?;0Q0~M@H_A=@G0BG;6=R850Zkye;}1 zh5DwX;{%+xO@AM-eOm*-xX)QQ5?RQlQIVK;0=HM}n>YOl@HnXwJYl2FM&MRU#Q*sj zj5B0FR)087H!+rVz%Zr}@BYi9dj0`>wcfiFpkw_yKW zmhD}X7Uj|iMz0yw9{^i`oxruh`7YosU>x|2lo#CqvR*6B+U7T*p?LTET+-^STaKH) zQPQ!jS$}ymI$YKbtE#~ND~yFM@G$TrFkvSzfWJr;@I7z`sRF8)tqnjyH;m3Ua5X6> zHitb6z_DuZ3sz(c@Oz!?Lp%ywh|5p~!0&I6ADACnRe z;AP+|(vb2IsfB+?|LWX+WB_g?JJEUI5#TWJJb&qt5Ad`-w}Ow_0Q}?^ zO}Bu*NeMU&JW0xdBHMpeu(=7?9(;N~DDtta3cy@gdyh2hZ3o`BHNRIs-40+ssS!=t zRe0d@WeohMT#BNI^V@6)@B(lhDajnP>t(>3zyVT)93nNM4*fi z52U1W8k^a^m`w*s6%xCkH?Ub!g+$*&0TjTmz>zY;VEZnq>^k({deFb3X;O3YkCbZ3 zUNjG8vws}R&q$gs8OhsWG{4JyHAeX^SbsE-^h$8-&f6jALRf1DfRglV=4&{B41_bW zMbb~ICp}3=CEZ^q_^^*tziY364Wy}P4X}zdl0#}*r-9#qqog-uFW9DF13pemUy~V# zTA$j%ra}L^fGV3ym#uDM0z`Bk0000bbVXQnWMOn=I%9HWVRU5xGB7bSEigANGet2} zF*7ppnF*7YNH!U+UR53F; WH8?slHZ3qWIxsM;u7iM+)&wyqXz_jk diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_brightness_auto_off.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_brightness_auto_off.png index 4074fc2e1a25bf0a7f9d0495e5b1590e75e74d1c..df5987c91052ece0225dc2556ac5b7a4b5d5731b 100644 GIT binary patch delta 1290 zcmV+l1@-#13#|)~lz)9mL_t(o!)%W1>)tQYxOc$!cgE zTo{1`O`8lN34(~A%)(8Oh_pzE2t#O0nfRPcDfxGmEuM)Tni5NY25^T0=x|j0}Z{y z+B+$pDC2sPc7L{-4g@c|#O%reuGM-8SgEjg1?64ZTPdC><9ZU0Sd2&nVMY174R{kc z1N;Ph3EU{2Zt-s9RE7tbEa zxIDnS(p>{`PeVkg1LZP?=C6ROMSF=kq#sazb6PuL0{j6y4!jS%2)rWtMXXfM3J1C4 zs}c~|knyF;*QE9j%lHUzM8+EmZG0P|9RVJZ%wg%66h4;9Mgy!GJObTVvl+(9=(>Q7 zTYx_Wynp3b!&#`gIPEVT;u_$aK>rQ+5I6>m0@GfG)4*n|l=|c)z^A~3fVW(pmvy$P zc$P_KLOPJnKH1nTo6SCu0FPn_j_r9&>lUqx8D5ow%vgc8SGJO(!YZ%>*cnbaftBQ{ z;Ap4Ec~${eVddxgcgjXHita!jzE1%E>3ar4ZGY)NDM?4oLoJ;rg55kiP{DFEgn^_d zoZ=tmD&k6>Ny&QjdZc?uwkmGeJKZ+ms2JVrjaom`nsu@ocwFXgt<%zdRJJmp;>Npy zLEvvWeDT16a440#*PoU}JW_a@xS^ zJ%2A4o)xVo-jkADAzcTgd$nxMKx->@VB}aGPXPTGc!sfiz<%ud<*m0kj1u52V7tA9SztUxHH0I8y<5n5>yo~~PN%8&I(3z$6emE}LcJYn|JoQT_veCp+v#u2h zKZ&C?UPPy{q4b*edx13)KZ~Kh3Os`ip?_}a%CtX*wfO|deFn9=kgNmlQQpo0-vhS; z1Hh}m)7YFpE;`ukAH;@`m)$SG7uaO&m(F#-*L1j$TmbIWsV)gDhk%ELhXJgc?O^_s zi>C)G!x3N!))Ci8ceFL05UK!GA%GUEiy1vF*rIfFgh?cEigAaFfg$MN6-KO03~!qSaf7zbY(hiZ)9m^ zc>ppnF)}SMIW00UR53U@FfckWHZ3qWIxsN6S^sPR000?uMObuGZ)S9NVUv;tBR}a= A1^@s6 delta 1290 zcmV+l1@-!^3$+W7lz)XuL_t(o!14Zovz@tDdfUf{<(X%3e*2FuI(=qMU0@M1t z1XO|hfG2_dz+J#G;BDY~@$J?7Qs7yj54azAD(Glh9v4aeAQ)B(E;?I#FK`feMIco@ zy*m3q=TXM>6n|P_)eQ(Y&?RP99+jN}<^hA^bLCw+nYr5?igo*rj3Gf2& zHELYk2JH+wzLf5WWiHT_WHM+H*d=;JPk#bz5x`O4Uf=-mjh+KKJ1U+n zl5u&Yb5a;CHMhya_x6JTCg*SgL-f zILJJ{k`R$qfzJY#0b@FUOW+%TJp!-lYU5KCZI5`jN*3u_Cf$<`UM`pGH*gwoBbGw_ zz&Rl{E`J7o1HJ<0UVSX;=Z)V5u};R-#}V1s)W5 zmG+gbD4sc3u#QRx(m7ukYdkjGfC5%hhiNX)`?cSoeJ0H-$;rH%qYVqIkXKmLm!{z> zN3oP#6b$XOoM$m`x^%eyR2cPJbOW;Reh?TBu7Bz3aP95fQKFHC2rn9Pew#(l`(s5Ec*J6!nGf;_z$lc*zFdK{B1z7O(W4-=WEQP%E=9^Ig zcuiNl3M)E2z)!$M`g$MfY7QEG=iPC=z$c_&H*mQWuLBO#=JkO{1aWkA1Ucn@kdkSqtT zmEV2_z6CA?76MNLcVm72J>W;lu9VD1#Sx-?3M>K66@5AIIUNR)6TlVvs(%%rJFyNo zj^*``p8U$h(}ShqMy%1Dq1!rZJSG)rf&Tm*rYQc z*C4PRdcPSM(fj#W2D}7350uK~a&05UK!Gc7PTEi*AxF*7ppnF*7YNH!U+UR53F;H8?slHZ3qWIxsM;u7iL8000?uMU#RBE14Nc AumAu6 diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_brightness_auto_on.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_brightness_auto_on.png index 991c5a9512d849ca63e3f233eb1af0353400e20f..753e9f7a101cd091302c000ad2fd8eb71ab6da7b 100644 GIT binary patch delta 1201 zcmV;i1Wx;t3y2Gllz&)BL_t(o!`Eh31DF0@LkB>@#J*jmMpKB#U|MNoujvyg_SmYQVdjf?X? zlQTDOCh@}KUhX|#_kaHP-1{;Hw4x|jp=IhjgM^yRX5Y1ZC4UdWQ7t(1e!V`DwJ1BV z)mIq+KwAN4`r5$DT6On}KnCn}gF*vJWOU1|!fX-@c2D zz)Qdg@GS5vun!p0`aWP6a2@a}umgDBZB*HIUgYUSa9j@oUao!z@HOx*urtW-)Z8)2 zL>;%2Rr%@$5PzZ^l5k5Oz@_RJfDOQ-N&0flZIDdVaXXnK77?i@MoQo&;C0{^;1A$O zU{fOR`EDn=d63xzi~=_T*8tZ8&j81Rd`|$*;1j?aDZ9}Wv6|%TLD$zD>Mg+g!N!y} z6MdPIAaR3>!2SSvi{3(0s{a<)t?!#;&F!^9Na{{&npL-9;-feOP5g%I1PL$ znSUc#O>y0`Sk;^m59UZtfs^p8cJQ2pVlJIv8-d$HYMk+R09R}LaiTjXo0Ia5QQc;+Big`;Fx2=+w3BAPedJe*q*YICGtdCE&0X^ghj9Zs4EsY7j`}Isj> z1s57JEigGPGB8vzI65#eIxsdZFgH3dFtG$j(33F*7aB4xFgYzUFjO%(IxsLgFg7hP PH##sdz*+xnlVSxiLX$hv delta 1250 zcmV<81ReW`3zG|wlz(GML_t(o!;P0qh#XZEhQF$=%&3eaLX4P=MvNdx1o5#^vv5=- zpk~BZz|0~_d@L0$MBG`TF4ZVzp+Y8uPC)UU$!ZjFqC(tEjKZjx7z9BwsL}48E*IxN zJ*R7`yXQi2Z{2(D|DQVdJZ>cnXnCG9q$TRhK|)1Q^j%AbF@FT2Mj-V5JUvv_qU^wy ztx*AhWhtEKSq7fh+JjmvgY23V7-oTn`U&6}pcBZq06X<;38Wp#PE;`ZnilAL-Wkva z9tU0o4grq=$AFK3+a&ji#+!kcfpOpo;H7}k)7&r8>O@d13rDm;{Y}6e@D^}$kRR9F z=NiX7j+4}Jb$=BI7FZ|YcF^3xn!tMCfr@Dxnp-cKxW{o4VfR=&I$^5wyApT}_!0OS zI3m+Vc|Y&v%HA}{YzFQX-bKKrz;58{Am5{ad+-t94B(ysTD4e1@>$sHYi{amf&Bqv zLD-SYHpwIo*aD`5$=mcMnvVK;;2}LlN%DOLc z`5E<pE*1CR&&i&SFj(!_Pqu17B%;41d_A=LgNrOD0+&(f$!(kBcjHO+776 z0(-Toh4OX)OIdNWOl0#x#;e`|;2L_J*z?OMRylV8Zvv^4j{-LWOCpNoZvH0lq2_J? zKE|S9M&s+X_JL%xiW2LDy(F$tppyXPdG2O9TZ^}2-hGa~Dg!{>bkId;kDT<_K^J zzqDE{Q2piz7_(TKPk?gOl`I^=6~I>DPk-Pj7Wc;kSidyw>DK+?xb_|u)>dK1oKt%t z`2)*ti@-maN4wK`IQoSo=7}^Y*Z{u3O7;j=v^EJla@F76D|du8cGG=S;}olE8!HN& zz^Z6R`(D9r(A`^c-5*j`L+V}{&3sb*-@wzrKHwYR63s6HR|EG0&tXw?GVD*V%YTnY zSy!2Xe=m8SyY`P@e?JoM0ekD#dd|D9 z{SRX~SB>0FVCw(?03~!qSaf7zbXR3MV{&C-bY%cCFflVNFgGnTF;p=#IyE>tGBzzR zH##sd-19p;0000bbVXQnWMOn=I&E)cX=ZrD86u~S!ChTUH*bV{)6a3Mi9(GFiM0V_(DZAM5FkMnfYAQIXyKu-F=&O zy5LgP^*F!ZIn{L@4LwcGVFR?$ug6!nL97X^jSe-2oS;2cq99Q41aHvV7 zSzc35SDTtKuVWq(sJql3;(AAz^@eTgSDkyG3w+8S`+p7f<4xC40X?an?fjwU2Jeta zC9hY1tX@T%E)$A}doRXA==bBZw2&divHb*m0z4keZ3|qAAGZVVC-MJ{Jcdj3tH6DU zlWy{AU>9&U7q&wCPD`ae2X2hj)*or6EX-VJ~O6~wKXo)8WoBW3Y?O@D_{Mdj1}NkN@4Oa#pxUcjNP+Ue99IX~5b31AsiIZ$j!!`v3p{C3HntbYx+4WjbSWWnpw>05UK! zGA%GUEiyG!F*Q0fHaaypEigAaFfag8nKH)!001R)MObuXVRU6WZEs|0W_bWIFflSM fFgYzUHB>P*Ix{vpH8?FWH##sdaStJTlPv@>&|t$E delta 902 zcmV;119|-L2;K;glz%QsL_t(o!?l+^h+Rb#$A9;|x4Xu~EHNNj3(=5D8x>t~2`Ffx zBo=~#DI|m-2!_NqmSSP6y%4al_oE0&Knt;OmG}V)Di-3R7$gbV-Jiuh^K$m)-FI(x z-ws@6?wOhM|IeA3bIw$B6ty%fU=a02e7OvxPhfpKsj8;xZ-4DgzyPCAnuSAPSIDk5 z2o<88L~fBbfQJFF5$$E*2=Fj)H?R=nt^t1nUjiRTZ4jZ5n?$1O0ACL!CxFvoiHpD` z;74FJbld|x2s{Nm7V@*eN4>34z*W>y)Cbke>aXf6>O#mT&99>GF7*xdZ}ozDU&x1T zb2D%TKca4^?|-U;kX6w?3WbCChDlb4>{idI|EZ5Obhm;RmM>bDqe(tW%G>5=l10}k z^+qBwY$H)t`H*^5eIfqm+kiVPS*df;ep6jd+fj{mWkHbmPCXm{b9r@rOACn))lU-+ znM5(mTk1DyP&MIpY=s2sqWXJdTQ{BF1@)I?`r+-aynn~RKCOPWX&VyIOL67cirG6z zltu1W|4<(-RxVBgY7h5$v`5hG$NQAfA+=*$1-=HJi|)YySc{)S!1+Ra+sG5RM12u> zqTm!?y$I|BekdKYSbd|EMO_B&jrMvWus0a~wG$Rd+dyE<6M<}y$1x>5&)5=UtU};Q zbnHuHW`BoR-=?B-KX9EogpUdQ6W@VCU=~-fQ3`Lu!g zrN&8K>R7~q>^QcMx>?^|^*42?c-!2$ClZgRchD8TuCC-bQ3e*Ux79CZL102Kx+7xE zv1Tx84*EIb_qM`uB2jdFpk8X-;uNEwRIjPaTYn+ZSowT9U;nE2mmt(OshIt^x|T>Z z^Sv(MoRYn&u6LfT2?yr2$O})kC?CXsNlZ(!nzO6-0{oeV?y08B10Rq0y`nzb(*h&) z<+xGbst-&9@AEL(1)Kp+QhUqKfD6D+-1;zC1`fykcYyb~`Kp@uFu9$l*`2`iz|jC( z1U=?r-1Q*00-OUrq0TcpUqyW$r&U@(X15#I6S6DR57g$IwXvY@)!~Kfm&dPoZ>cbs7_=#(_Jp*gYnlie)p}za=GEB?%6X4U{$G8Sb%IK@%J#?inzFmOY`%!`vp5Q{9JXXI`zJ57 z+^+e;WL-vaDI;A&16>1?5CcOiBLgb~3taPa*y(sU8ipPB>DBHiHh;r2M-l|wp6@vdD9~ck4Y&; zQi85W3S+A7GA>zI_T6Uz18)T* z-A*WDN_>^e{O!SRwtabAi<4LU`>^;rzk=tt=`nq~x%)J;3NFX;Pf+ok z|80lTC-u?=_P-Bm3$X1n7YKe}T2R4TQGPJyRa>FB$?@Ov70X`KxA^^Mb`)T7EY?$c zC9mlzZMuhnfkCyzHKHUXu_V9nO2EgL*~vkTY(xRK{f>Er%j&Bs0IL%Q(^)D delta 266 zcmdnNypwstl=@Cj7srr@!*8cKay1z6u&7^}tuIhB#s6z?ll_OF9(L`H?P^Y%DSC}g z)81a1;B-M^qshuw+v6Ese2Qw-6rNrSUin+LA!F^ds}4*?8>TI0^-!9Wy>-&j1Kk&I zzBdby{du45&iT3zTrG|7c#nuw@XFj1*|R%Auk`Q^?pcrj^4kR0mpCo|->AURw7^pQ z+Fb?pAF^o{3=9maC9V-ADTyViR>?)FK#IZ0z|dINz+BhZFvQT<%GAQj$PCD}GBCLF h+1dt0LvDUbW?Cg~4QtmmHvlzAf@}!RpFELK9RNt*We5NO diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_ethernet.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_ethernet.png deleted file mode 100644 index 9dcb45e90bbb050e4bdcbb4a120ec1d7696a15e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 944 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzmUKs7M+SzC{oH>NS%G}U;vjb? zhIQv;UV>C6dj$D1FjT2AFf_CjA5L~c#`DCC7XMsm#F_88EW4Dvpb_@(m4W2HJArXhqPT$*i*+JlVz4UFCz82>i z4o;S{qBcyjLaI$&%UwjSJGgou^k$G%?YPtE^yo%?*W6z7zQ+~Ct`aA2-Ml;V=FFRO z`43M#$g4O>vFSKe7zuz7-p_O}M+b=&t$cr5IH_fcWm*WPJL z>XUW}g=i#voY%0wVUA`2R}Jesrlo>s&zzksD`qLYZ(W^rM&0Z)!O_|uu9vc%aWd0x z{C?odhwKB=4|cEZFV_fsq^x`kBe$1>oA{H}(x8WA(fUY~uDCw^|H zD5t{8tkVX2`hK@OXk@BLjhc4A_jWzc9+qX3xE@GIVDVph~VM*lOvydNx_xR>qU z4EAXU+!G{??&Nyzf3xn@l{DprnVg&SRqjsSvW|68=jG6r)u!^7a;{vAxai_9`f>gB zW>vjI#b(;kId3PVC5!Y%c83eTOM0}}aYJ6bbD_uPg?v>PZLY1=E|9gjD7C~?dR=?n zUU88XAAd&vFvu|uJ0Lr2+2ZrUif8|&{62f)+?<;;Tauo9a9w`>Pyp-m4L@&RUG-c2 z$DT{emwa%2^~zo^oOSt@K8=k1UmsVln6vn>ed)JTmMfPooDEErswJ)wB`Jv|saDBF zsX&Us$iUE8*T7uY*f7M<*vizx%E%1JwK6cc^Vu4d#t|BF^HVa@DsgLAyRNwbs6i5B sLvVgtNqJ&XDuZK6ep0G}XKrG8YEWuoN@d~6RFJ6*p00i_>zopr0R1kF@c;k- diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_ime.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_ime.png index 7535c7500c8cb90c6c1beba68b4c2f78f919e3ba..3263c55d6a18c1e7d16075cc662b3c3f4ca49701 100644 GIT binary patch delta 787 zcmV+u1MK|72igaalz*y8L_t(o!|m2hh*nh`2Jqk9cSgw?F$uzzP7oC;5e-JE8#R#@ z;-aFcD5zYtYN_Nx-59j01UEso3U{K>#*AnoE@mY~*cVe)_CBdjSHvnIex@b_%vzzIyG=Z=I$wAAKt=H zEE`NA?aoS;BprM34sK4qcj6Fk!A}`K*xU z1+PnRb+`e=rl3W44Ja z^%i~^_oZF-ebq_UO+aP(AMu#F4yw`7(Y6_)aksdxu7iS`u1>iF6ai%=ZBs8M<@7qN z&Sw>p*7{ delta 784 zcmV+r1MmFW2gC=Elz)^-L_t(o!|m2jh?P|s2Jqk9xtT4>DcT6u1k$2Xf`}p)qfu=m z3PZ4<+(oX1SvXKcV^D#iYjqVZqBcd5(I3dYi&}^pNq;p+9J4z!&AlzY=d&~4T<1#Y z+!ph~;XBWJ-g}<+Jm)><9#(DDhHN8~lanxtkrn3dVPV(;Tz^*JW!#HSIaXwPEpTaT z@f{Af<9HSmk!18bFS_RVx=dic7_3{n@F^1euNYdz*nHCgYw!lf@EN|v-5AGLIF60M z$I`~*JC1Mq;5+aj?!xQgxXjtM)PBPp&SM>ZjQ>L7e-56>_iVlw<7?vI^PSDyi>#SI zFAD6%ZISOZZhwg?b63FYf;+)u@pbTha8Ffy-9q^#35?)q3S<@!U>Ejf;z#gefw$lV zyn>&w6*~+37@ona_#^nKj6vgO9Ntry~2O zS@p^IKEZPZK8ojYBK!YQ=Day=U;?k=+HP5;PK3CO2 zYkGRR>k3x9Ef)NHBaSvyUGxTM7i9J7n-7yUcwcpnTOnD_MnbZwp=#M5tvTxiN{N~> zweip()@7_&Q}tq7Wddg+@l2ltmdJLM*3$o(*MC)=j5B2dyA0<|IDD(`ft6nU|4W5c z8>;;S2WY)Rv*viI0000bbVXQnWMOn=I%9HWVRU5xGB7bSEigANGci;#GdeXmIx;pb zFgH3dFx>MyJOBUyC3HntbYx+4WjbwdWNBu305UK!Gc7PTEi*AxF*7NS%G}U;vjb? zhIQv;UV>C6dj$D1FjT2AFf_CjA5L~c#`DCC7XMsm#F_88EW4Dvpb_@*6`#oJ8Ln01ez3!P28!Ey6;eKspXRA~9 zRIQ{Xu`9TBJvh6zDm`*K8W82UQX?W=vqRdkuwhr>fmV)3SG2lH7w2`Eb~SZqsNQf} zc&@7?QD$LA?uuJH=a2sMyLa|%ZKZyP2*1s}z0Yf&OaH%LV0mnH#GBTI6F=_yy>^eG znN7u-++Y1R0h{*lU*5q!JNdn+O^ns+o5E*ZInEuLt@xy5j_hyw@E^XtY&_Ycz-eurFl7|knxxXmJ7K>R4vA?d`EQhOwO-XGw$=t|0|*dSWo_2CFZ z-m%9EU!?w6bR>J8&|I4d`fCok|B#;k=(K_*^YkP2-1i^I)<{23KWaUvTmFKCwA`GP zr?j-1PXE^3(_I?Ty?!H4f6LUrw^&zjsFr)Yv}`o~$a#<3KV@F=o&fek`xNfK9Z42!vn||~@K)pEn!_6J`Zmn%`lux~OO^kN z_ex^{1tF)z;MPigt{fg#qyAi>j()!09((C~vq~$ySEYS_^kj#Dpp>@e74P>aOe{+t zTPQJ#*L4;6Ez*ddygJHs*-h*2*q!=5*FNNic6wyoQxDxM8nijGGu~@n#>;(1XTN{k zFXX+{=a(#V++?ZE-8S|m^Y+U>Zx8i$4oJ*f zen!z&XX?v99@mKX$D0f7uC5h&_QR&Jxx($#1lu4_TY<1|ncx4~tf)~B-50pB!&cU? ze$%1qveGQKovnEXUf<|^efW~-4!-Hx%ir_|&Aiun-+AHmLesXTdAH2XY;MFh&WcRX zo_C0SN0?K&q_!nXWqv6~yuRqRw_-Cmck!x7^3QI1DP+?>{e$H{j$Nrjx3+tneeIv= zbu0E!p!I|jX|Lr@zhfvvaB=KuON^`A>)X8bO-$$#)B^)K^odoyOI zU3}@lJgr*d8c~vxSdwa$T$Bo=7>o=IjdTqxbq!5I3{9;J&8!T7TyrY}1J9V z^HVa@DsgMDU}SCuYLEok5S*V@Ql40p%HWuipOmWLnVXoN8kCxtQdxL16;$vrc)I$z JtaD0e0svz`98LfL literal 0 HcmV?d00001 diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_mirroring.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_mirroring.png deleted file mode 100644 index ec8f348f56952a9d3bd46029a3aad89f56162213..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 981 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzmUKs7M+SzC{oH>NS%G}U;vjb? zhIQv;UV>C6dj$D1FjT2AFf_CjA5L~c#`DCC7XMsm#F_88EW4Dvpb_@(mOFdm2Ln02poo1aeB~YMse|>qaV~ANR z*P;v;CmkIX0S=9WPAne-Bf6Asxaj0GwZ;px?$W#@r@H?)U_*ZV@NB zj3ak##VpH>f8M>TlH<@VyW`Bc`sed3%hTT7<(7SU!hV`h(63mAtjKAKojRwl>3DQ( zG^v;t$Wg|t;dLrXH%qyKO=RusNgO$B-@+D(F)sHfiT^21M+S}XNg^tSG*llJ`Jf72@C&Ge7odRU&R?www; zCvtAM*3Jip+2X2mJC0mBV&-{xl9}1+;@y*8Pu?}RzAklV^3`v*4czTypGF<(>%XMb zonGfFzZ95o>UHZGHb;NCyLz?|C=aNXxJHzuB$lLFB^RXvDF!10Lt|Y7b6sP@5JO`t zQwu92Ga%Q>z~IhjYfwf&Xvob^$xN%ntzqrD<_4e!NstY}`DrEPiAAXljw$&`sS2LC biRr09sfj6-g(p)%rZRZC`njxgN@xNA@D7%j diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_mirroring_notconnected.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_mirroring_notconnected.png deleted file mode 100644 index be08f2c26f4ab436caeea52c542865b233f7b1ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1020 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzmUKs7M+SzC{oH>NS%G}U;vjb? zhIQv;UV>C6dj$D1FjT2AFf_CjA5L~c#`DCC7XMsm#F_88EW4Dvpb_@(mXFOdTLn02py>@?fNT>+=hx0Qfr+!%V zqM1#xMO;LXhb2%&^_8jDMh-=RBl{1?J&IsyEjpk+vC3C|$)W|~f>oSaCyly%v|U|| z#dc*j26mWC@wVP4J^N0(JoD`rYOG>M-#vdIbnnQ)6z*S^uiI5Fb)`># zXyW&1WyEF=mPvn-KRy@RcQkvU&qUoT`I96b6`TLtZa8VL?C1GO!q*;2+_G#eo-w!b zeqW3H1KvM*EuRJ3cgP=p9MM@Ab0AFSfM3Xq5}%&5N#P%vz9s1A@mR`hzO2bP*uJBy z->H$;@xktjyjp=5+ifgv&76~bqjmm=pg-4oe}-*)?EgV7?D&t>2bMGIKlGZ@F1Bm3 z;EB#9llQ1hs_6@zdEIlOabq^q`D1@7dj9ii&p(jt`7Ur#!1NsZNp{`&ht7XIv+i-D zKij=SraC9C{o>yI$k?b+#PgkA+N$%%Hs#d0J-EyEGcK8T<2h$RkA39@((e-t`O?K~ zE^kPRtNC~0+D!SdJBb%K)w@G}uT-q<5qh4?y!K4f>&AF?J^nwc1?z6j>)!FxpG#$B zaPiN$w|})?O`3Hnd%h;?pW9y@o&`ob$*BqE{_`m3Z_{n>I-x8vB zG&@(wE>|jaFWWTx?RLX=X-m#M-u|Oj^_uIac;|<4>kh2(*ugwMRqRX9r@;H%Qs#+O zjFyeLY@&e+=IbqPy&+?F|C|2$2ZEkYr%z2fkrEdcJTsy=IW+X{_n=ww^E7KU=K_;f z{Bhf-_g=W?zk7BVn7~y_Tq8TR%D?Zk#ev>Pkpdjp%4%CUtZwvmmVSy(WZUd&q1#m7XVugGQDXkZb8l+o zste_>cjawgt#dj~Lfx=^ZbkFrgDz7~RyOAEXsVqcv7=#og{XA(3|_ao1+U6>Cs*sA z-qi8*yhU`Q?2f*>6#}o9{}B0R7v*h~vesi(_VUtQzjqqUIqZ4oz}$pI!rSVsQrG58 zNu7BqPx0@h1Cu6K<{Z}DbGW{<;7-5oTMG?#>24+ujiy<4-yRFjdmK=+`gr04eXICAG4q28UEFdy=N;rzt76r_3?4V zAq}>+@2SFx@3MZCKNes1Yti716>2t t5JO`tV-D+7Z+%NBT}Xvob^$xN$6(IAMTqxZMO_sP=Ch5*DqEL#8o delta 626 zcmV-&0*(FA2FwPKlz$vaL_t(o!|m3)Yg9oL2JqkR-iRV9_`p^aEp6>Z&_*l-D?t#^ zQb7x^1UpG1;)7V(`45O7K0vUxvQW`V8?A(hf=aS?uf;u+-GszVvJ-;n*Ua2G!<=uv zd(N4|fBfrc4Stkmxu|WGP_MNBiz-lHE5=sw=3nun2&Y9X)_>^X03PBK+L@itU>7Da z-kNvwb(qFcoW~(-2~s&wU<#M98)uUO7w`%%Vq+J-V*VYyiHV7ky_aQK#Pp{Kz#?vV z1v_vLSMeAh!d{^@FGE&}6m#t~PmHExJcHx7hFhUTCu~(ZWuYZw6mzp# zRA_4bDZIzWSU-q!ni|kSmFX==O3xU03*c#t={2l0{lGqKLN8PG>u54+&!7UyQ0u4H zXKciM`CGFJ+cdv=XiwN0n2%a~dgk^Oxq6JzuoMM)*oiw>FZzRJ_^7ZMH#B`l>M?4= z4vI&o)+q$y3H{!2IjDp9bG+45)3tBM6NV`;xG!4}=B}oHH+};Lc9o2KpI!Bnz5*8- zGc7PTEi*AxF*79x;>W3b@ou>@a>_ zbbjXlf6our|9PFkvu}&_UD4dvEk%ntBPKSAZA;FX`$ufX!5p!Azs(C4^E^(paT7l~ zYwr1E{dbR}%xo(F~9k173+wa-1uyHS`64fFO1%zt2H#}+JErOEt?ONDiU*V`FdfAt==?o;Tl=U8`* z$AeMiVG3J#=#>0}g?mC?E)YDw!c-wMPqBMbK@Hpdkf-8(4{YYS7F7D~RWP*8Um(u0 z>t*@jd8?G=j)aMrhVGxHwV02`XadjDx~kg1tq(@P%UwdC`m~yNwrEYN(E93Mh1pP zx`qb22Bsl~##Y8gRwm}U2If`<27i_<@J7*)o1c=IRteQ0jzvfBZ;9`drI-x?vdSxx delta 662 zcmcc4cA9O%lzM4T7srr@!*8#hUELcf!uH|*?|I+7IG-v93p&r7>23I#UqdyuElJ_z z86P1-qtE;vCy$>vaiE3KRg*_TbJ4ond!O6heh~Y6UUB~S!+X>3E6uz0w)R_<_3y~@ zaoKN=*8h3E!mWPE6tS&q1uy-m-{{6=a-*r!^vfSS1I?uK+*7H5EvsjJn*Emz=O4+Qb9i^aqP~gADxslUS0&CU z+k7vDY4415r-`c_pJZrUIA&g2?-A+LYsq3XYr?Xla(50ZzvQ zZxn2Hy1IV(=@oYubEP;N`K&*Gqha@{?PmvJzgOa*t4`;1Af5P_I9ECT2Yo2|cS+8oclKaXX>vb%e9rb5g7McGr-mqkf zGM5PNp-Wf4yg#NNz3gskOpfdq1_lPz64!{5l*E!$tK_0oAjM#0U}&ssV6JOy7-DE_ pWolt%WCr9~85rF8Y;A+0AvZrIGp!Pf25zX1wdJ++lYawBNklFrUwGu0MVNSW+ng) z?{{GXm&0&g@5H)cKswvtd?&m-ioftZ-p3N=!}wfww!zfwAy`~qtpdOTzQrwt(ckd` zJ}H0>gk)*}4G*e9M-Mjzh#PP?<^wo}r`4g@1Tj?z3geydFeh3MSK$oy;{uN3Njx6& z$HR2CW?)FU^?#+r+l7CzjvZLTKAgtiA$LE%z!AI};5V`-(|X><#0c)&L5{J=};BQf$vi3D(71_#k9D1ygG=zl}eFflVf_qzvE09z2h` z@UWEmpGxuGUwRlUbfy0AE*``+Ayc&lP=#mLhrttgCx2o&kMl(c9viYhH>TqO=AO)I zcbwHm>^HDGjQ$+!JEY{Blk(x5lpmWE7c7X7!L9guA_FT+3%Oxr1(zH1dH~BUxUa7D zjjW^Ce*v%KRAy#u85Uh`4_?A`cq9~jgPrQ`HiswhA3m2V<4EbusMwAJkTd^otQ2&P z+n1~0M}I69b}|cHb@S3~wAQ(jzJ}5@bqCy3&=_4?!v+0{wrCmo|p zxGLn!wf->SCIc^G6(5Z-&>y9!A)|#Hg^@fzil-WDP4C(~B@^QTLJ+$NP;UO$aH+bAs9JAYsN9~q7eAZPS)YppnF)}SMIV~|XR53L=F*Z6dGA%GSIxsLe0Rx4T>jN>uFtXQaxUTPqY6MW}XFmCJX}J$`oY?Kf}lsxkL} zPkw&3=DGFnXK&S3X*fuz)kRL4r1En2{{6=uIH;^l+ZO%zKnPR4fb0Iqpx{gMA6&T> z%)H1(;iVPJ{8@*iC++jDQq7FJBuN^1 z?#5}iYPf!+oLkTMJ*P%~h4tTu4i?8X1G*3NMAUOcF!J5{v!k&hh||IE3e&NM+yiQ} z+y5CDy!(>Id!%&sbv7nJ*LuAKbp!r2vmWXnU|k^So|(;bZuYyL?WPd zn93M4_!l#SEM0O*XrlMrCey^nsk6;hwoVnDwSH2a$E+>sw&l%B_|59?372p& zs(1={r5k*>{%hIm=xhIG#%b(cn{fE;f7O?5OH^lX=PpjLbh^anIbF5adzLX#ddCHK?Aj#G&AjQ_@A}CWwfm=4zX;y-`loAo-)EVCO_{pwwhW8@ ztymI#F-j(O=Chd^Yzdki=k9sU+Ei$4bSdoliLco~@2jV1EBZICdp^m}dsbLk*x_H3 zmi$fSvHBKvcaMeayBRqfrQem6?B#n<&C!|lUDWz`_2O=onx9wJ=wA-eYFH7`!<65U znyg||f8YJv$*0^`b{Re3ea}|M^#08>;eyKzre;zu9!E_+T)b2$7SUs8b?W|e(HRoV z?{@r>x7+^y*OpwB4u%vV3wE2$CTp0A8#ikGE7B|p{Q4(KbG5AUDXz=;nI~3n<8WYc zdKF_AyFEelcrBwy1823BNhrf7d4{rB209nO2Eg!`gMt4U;`t3<18pdiVeU diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_settings.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_settings.png index 4cb7f0c1cb89e913a5164de155b6d2dd7a9eb937..673d2e00870e410108367a0d5374bc3316c4c230 100644 GIT binary patch delta 975 zcmV;=12FuJ34#fblz&o5L_t(o!>!iKs~lAj2Jm0cbdsB>UvjV8U9J#x%eiC))r z5kHUgkUbR7U51HRW(Z7hH!g88k@m9|NAU@EdTUJ}aStYST{nU9CVoRvnv-V(XLTfM zEYFYKfcRnj)qh*t#o;61DBx{T8u>Mc#9ESn5+pe>hBK@l*I`Aoy-&kU7>Dxrcb)}9Iq3oM)yKOV&W z_yup_4-{2Zwc(rKy;(=b>+vt1#Cw=lRW+!vF``W)_i>;1sUXwbjdU#+*ngP=iZ#E%&mzu6K=aX&|Y?cpcx1K9FppYY;c$ zZ(NNJ27gY`#77>(6;X<16KHg0d?ykp##B)1q?I_Z9f5z;abR1fgjH>sfh6fZ1)Auo zC*ww=)Dj$6X_^_f;|KGgg9}oTu>se#MKr);bCO=f1~u zGr)6My1JX_2L5m+VQfThIG z1_~$folcf4=mD$-_ZSjIRaI@Tuk6WqVIx{Y;QTd5b+6Wo5cm&U%`1#i3dwo^001R) zMObuXVRU6WV{&C-bY%cCFflSMFgYzUFho=_I65#eIxsdZFgH3dFtG$j&;S4cC3Hnt xbYx+4WjbwdWNBu305UK!GA%GUEiy1vF*rIfFgh?cEigAaFfhPb|7??71TlNlwjlrj delta 949 zcmV;m14{gY35^Mmlz&}GL_t(o!>!gys9Z%92H@}B?l&0YB8cch7fKKpf-5x+?GPh4 z;YPQLu0(JoNVoyB3s*!X>OyqmfGZb45kU|^YVz|U;nAX0<5a4{I!g~A^PcKUDvI1yNgI5vws4E_=BRZ>*1scokc|L z^?E7z5a;81tm4OBucz1RSzB9com(zw=Lz!5@db|JGu)px+9=Zqvc|ywMWl-pcoL7{ zUz~;yacvyWOEF0A#Ui#}RaFnP4o)`4 z1`&z9D66U(M1M4n;b#!LKO5iI<9`Rk zEY{GpQxKgKY`5Vi{D2qnyG-S(swxHET!i;Q zpQQweSSf*%Si;vafekY>n`u^5Rh8?r5tE!pw3hJ< zz7%yJS$`=A#BM=Q&cU17)omHK>EYihqxX`Ez zZbQ~&F-v3pSvYVIhmFMLTY&@XA_p2oPQi;j*ti=}(K5M-z&&``_6|2L`4oIO#b;Z< zCIV@Z6+vQe#4mUhAEAurKlj~xcAMIiS{m(Bcnv#uFmp2q_MKT?OhA}!R~jK(F9Id3+O#&eq`$t^SgiB>df z{XQ;;5YBqG`#4KzSo`p}5n(^Ty>Z=c^xc6wv4&2LzyP1)r?|j8;<5|Bwjf#x7t~LU zZfr!W_#+{-=nKgaJe(nL3|A$;HV#bchVxkJoasjNH%>Rwj3zSEyWyM&BzW(}s~G|> z3HOK&`g5IvIW4jOwHSD>a5*^=zYoSr@q!XaNHlxHmZsFofdvK5UvpG9YdsEu{{Xv) zA>&M9P%o430~Z=IEigANGci;#GdeXmIx;pbFgH3dFx>MyJd+><7aB7yFgGnTF;p=# XIyE>tGBzzRH##sdt*(QBlTidQIUu{z diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_1.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_1.png index 1b8eceaa830c1397af1bf0be9dc9dc3476c9177e..ef5179fad186986ce30ee7afdbba2b6527aa5a1f 100644 GIT binary patch delta 693 zcmV;m0!sap2apGllz(7JL_t(o!{wGgh!a5+#(z6|QPE2y_@^+!HD0zcP4F6#Kx_qT z3+-(MOF=|I5Cl6#(giV%7P&rEs%>rTBx+-$hoYCe-LaTA+&FG>yV-0koMtjFv+w)f zoAg;YXW{9cmeEHPQU}- z2im{@2xVO@0XcUiU>ATlKuy+xWmaY6_RP-!Z-H}S58Vw_fd@{2_kal4_4hB8fCsLD zW3oQ(*sCGnfm@(wz$Wm0)^|%G;Hg}QIrqoFEntT^wYKaUuibL+3Qh#ljAv9aS%RG^n&VbkJHp&PiG)Z1R3uV9o4+U&XNbHC`_cdQQ1773_ za1x_(8^E-vzd{7OUQdA&7=1qt{8%KQLLbQGVpT2#UIAC+@34q3J95=P9LE3*27{p4 zYzF;)UnfcO9JmJj;y`i>k3%zH!2#;^df4mr(j-YXF@OE8^9HdHfjEw7x7&6ZG#U*x z91b_8(S+)JyLlX!BH)1A z=hP+Owb=G$PBF)jX1K8bX>X4|XA_Wfx6i4Iz&1v30FGeJK9t$|aNhySSt||-)$X<5 zW>;_=$8A<V)_Rqi<%$)#69X|q}#J&!^m(0v;A??gJ zfSQD|s6Rc!=PbR@ z0KWm+GpZVJVJIe&0~Z=HEigGPGB8vzI65#eIxsaYFgH3dFo5h`O_MPL7aB4xFgYzU bFjO%(IxsLgFf}bOH##sd@v-IclVSrg2~aLM delta 712 zcmV;(0yq7T2a^Yolz(GML_t(o!{wGSixW{0$A51(IYd$-(7K9WQ zegVkClLTyWPLQS4P0gfCIk;)PGh&z)O8a!S4ZEz+veG zQs7hI2Jit0RWFx-u6v+hmw|1ds=9H^%8cBt`FY?Yu&(ydA5a#!@dA7XTm>fS@k=F; z0vF(v>Zd(>IRsMR4(JWA0gUI(TMB_xmkY7${t|cy?BlI@X&Laqr@&+2i4r*yW0?d3 zU6TYrZ|d^yRr2jVye zU^pC_dcAH2gMo<17H}8%$?uk1SdPtr0|%&9t6{(2Pk%&Y16%KsH;5Avh~t<}r{h#p ztJQ*5t92>AA)@D%s~e8%4Gc17d>*inav*haLc-(P`m9_U1EUx4q}=GAvu zm{&sLy&qs}-2fy>!e}&-D2lGnnR7A2{z9Lu@&8sb>)3BT=`qF_+U>SPQDj8^2twxg zoYyY|;1?L;s_C>~b>sj503~!qSaf7zbY(hYa+3@L2pTgjFgGnTF;p=#IyE>tGBzzR uH##sd-19p;lP&`n8Z#|0H!U+UR53F;H8?slHZ3qWIxsM;u7iM+Ujs3&bwhFh diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_1x.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_1x.png index 71fe1840a6def24874a9e26433ffda14cf0e5d49..53dc47db2641da5aa309b2fd1d9769d5d6e05dae 100644 GIT binary patch delta 537 zcmcb^dY*N{l=}IeE{-7)hu>b^n=R@n!usL1W zBH;Q~TZ4|eYohB{opLlh;n99EK`Pf=ar3ug&cbT;{R+Zn=U7zhFV#G6|FAXW%#L-h z6Lso1%?nx5KiJ&zT*LN~cMta_^@tN=4OYf1(5%UjLN#)9AjQj;W z>n|m#x*PKRPOy9v)AjxQ%^jTg9`pGV`Vm^GasAr3riZuike$!(AV9G}V{y4*zsF!(|*hnPWZj-lSOn3-bCkxuLd4lJ#M! z&I8{g(@iZW%lyh_N?ZF+xG(z@-@1pY=N`xH^9vLzJMt-Ccn;sAQs1|Sljrb?w=GS* zajfjiN}lr%#kT#?xM=FjdggKBtcXVk5~iOl-uS`Y_tM$ye|^@1-tNT`?xvQX>Kzj` z|Cv=r?fz9hJb^n=R%j!1m$(-QR57j)B_T2m9T+Me44GY390a6gYUu zY08w* z&AX>MczJS%_H5q2=ld^H-{jpZqB^yGHeBSp;hb}AF2CoUSjX`CR?cS|+BD4`YkJ<+ zo_~1#!jxs2ORbvDCrefrNW3rLbpN3AXZ<5@mFkY{iXL~3!fma)w$5s{=$~xS=bZSz z?fb{KWjD?#B-+PKOK|oIJZ;);enWiqwM~bG_B|Hsdz2;+f9Sc!&9vq5+gj{xCj@En zRxqyr$i-dMd%cj^|D#y?$9m4^AB-QJY11%xn;2Vq&-~Cgohy+OsuK(+i9c!%F!#N@ z_U@YF>nB8Y7aE7$G<>D|!$;|%Xv~r08}v^<)#Q3>)wt-072k>5e0q;9{T};SpPQie zMmeC=ZAX9d#2?LjzCUF2YvuZSA@_#s%C}iPpLg`he`<8LTQV;}|J^kCb`68v%(LF= z>rb=?DSi@Ff5H}%`&0kXygSOxeh1f`+501X`o+AMzm0Xkxq!^4042^XS%yo?oLkx|rOf9U8%z#`g1A{xCt!*af SGKouJmtMQBxnc4=CPM)0^zUH+ diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_2.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_2.png index aeaaa7ed52e9e3c83aa82db2c581491e6dc7e4aa..359f445b2766bf42f2a64c43af8b14485546352a 100644 GIT binary patch delta 734 zcmZo?pUggCN`11Yi(^Q{;iuE~cMCg;9Jk*+TV80r)dzRQLkAxvE^cIDov7TpHX(Q6 zlC7dTtb(kL0&hgBFCNQonevl)+18DdgQb}-9(CS(d-lc~=I`$8*m+xJc7(;*H+$yJ zeE+@n`CfD8|JB^nSg*YPdMA-1IKm#(w?k@_HW zBi4eE--dP9foz3IACovw>}+Q$W2<1kk}4CC*8Szqyq}y2!WOFEPR!k)@!>$>2fYHZ zA5YJ(pVGjd*Pv{aXZh`@z=s367lIRHf7oTlsoF_U18{ zx14B{2o>UJw0*$#VTKNy6W`AI{AWrFrZ{Q3F2B4|)pJo}_W|yYd#<>e8#6AwGT-*t zULhCFcCm%U9Dj@0_V}GHQ~F zwbO!<*FMt~xk`-gRln!#VzOEIz;FGWhUu?03m7X@w}n*cu6og=`^Nt9*^j@In2O$g zvn=JS;9hg;J=@Kj?oSFCf8S?ZXv}w#`Rci?+1<+Z5t^yozQQ}$bC~5DCLfr#;)9>r zP1Zif`$zss{&130wm#tgVDgRdhVP5c91$_{tC#)Z_;13NN%P9ZO{93|F4H`anZMrl z0po`a2mZZ}PL!)Yx;*3DKB)y;)%ubz=WXwNY;hsVf6nWhKY63Gwgg}L9ebC7fkCyz zHKHUXu_V_85md@nCcps0~rl(Vtr9`<-BSU3trd zNs?Uc_xm@d)9Ie{Fa6BdCg6K6o}ScN@8o%YCeQOcit3dZwFr3N5jM`7*!;ewl-gHH z)pn@Xg27mptOn;fD+}iC(1w3$=XSoD>-_5d4 z{1t&TO`Yt{dj*^m+t5H!yQ~5o0elEN1Abx)i zPWlS@mZC~ov4tBm!JP10O+e!A63r#xBXB~7H)KpRKNoPg4p5%0n1{>Fb!)3naGItr z(QE)ufMg%Q7+c$Y0dinhHk<)l*mE%hz5?Go&`kP11K+X9>yuMq(G@b@_dfQnN5S}I ze}UH8lw}EUwqmd6@~gu5x2^IX2g#>u&Y>J&j3JI=GaL?y<2W+LESwuE@C$UJrAfN? z5&n_`7aB7yFgGnTF;p=#IyE>tGBzzRH##sd-19p;lQ9Dq8Z#|0H!U+UR53F;H8?sl SHZ3qWIxsM;u7iM+VgoV8dqF1v diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_3.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_3.png index aa0338d0f77b58af51dc1204ff66fca621ccc4aa..7ebebcdb34d08549c43e98eb74656fb84da5eeed 100644 GIT binary patch delta 683 zcmV;c0#yBw2ZaZalz&x8L_t(o!{wH}i&H@q#eeT3x~vNcf**wlXIJpkH$uW65UN^wwOC)n4P!2BrmaWnt5~IojGUD z%subH|K5^y0rh%4f0zQ=J*)+MI2;}VUmF2W0SDd%w$?(xlYc%J@N2+xV1MNV0`LjY z0$u}|j8{uQ&OH^d3&0zoCgWsf1e8)JrRewj>1Z_4z!~5za86P(ms>djrIdS28jVI? zuh#+Y0z1H;Fuzg)J~&`HozBK!FhFa)>BUz=AOKGQn$6}@W6bt=JpP#^anGxSfCmot zd^PYWNs^nuD1S}Uyl8IKcfgg`ZQza&ITE8v0x2*BZUBz~Be5gDH~HV!EpDFl&S-Xl z7iD(7v;rQuzsnu0(M-#(vycKFcqU-GLSiKG(x3Uc6$o}d1x{jJt_keTyWU&`f?C(W z39P@L27WEFp}8isS}g}|u=2kIF3am|p0!*nbq69YXMccaz*XQku(1euDFq5#ZW~+g zrtBsbBA}FVvb)`<*vp21Fa1+nR)JgqZvpp#@7Q`@x)lP(kQ4TC0&?!|7y2Ub4r@37$FOIgF}oMw{Rc3!XZJo2@Z8+^4OU7y zqd5-T!(y7uN8l{*NmO_*i|hlZfFBb73VdUBNA`fvz!!;c0Utz}!V)rGe;pVzGa4u9 zrHJeR=Y#kZcmO<%#Q%MZ)^T7yv7DF(m@r>!O}pJT-EKFj)oK`H4&@&Jn-Q^$II2{5 zll=l08Zs>~IW00UR53U@FfckWH7zhVIxsMR>|IThE&~@DGA%GUEiy1vF*rIfFgh?b REigAaFfj448q<1#SK(4CqlAVJkHQtklE@npKiCC$ zW=2e$(AU_wkW)zL)TskpNt(jhpX4{BI67s`R9v(wr1R45-x4|6*9ya9FL_IRC`$jm z`Tpn4`_m8qkGry}Vb|St@mC$*)rB$H$@TwdikD>cXJoIFw%A-R#5C`VE_a=L1+$Fq zTn9!Q);uQph6C58dmnhWds{+yL+*nqYqgKB`8Y|1lVS2n7ysp#_uS1}&n(}_ZKhJN zu~+-S0Y=fbL~S1DhUW)NA8e4gufZrUGr@29W;3Z?fr*#neiw0w91wL7aXtL7V8_H| zFCDM$aO0?Wknqi%J&vh=QN6~ka4*)-`07nyunQtq~ybI;Kn$F)aw*EF!Nn>qL0>S;b<;qHP@~X!yTyB$@wl{p=rn~k2omG>j`#k)$L?HOjG~o@u-}OAR z`oL+Cz5Dhy{e&{T1J&#Xo6}X5X5B2?8DU<(?GKB(=cArwyf(~rO!1AS3F40{=D%%m zmr%a7`TzZf_k1DQwHdd|8ssHD|9TX%!b|bvK7PZU>$v`!YaNUEBwf9C-jTvRtT~}a z{@)Iob)5CHX1C^N2F+vL9L)zE9$AEWt=we!gSlQ|`H8u&W0V;f7*tDKBT7;dOH!?p zi&7Iy0#X@_3=EBR4a{|o4MPl#txPSfjLd*sD+7Z&pRH|BbmZozWTsW(*06S6bHn5i GWv1SS@_tFj>868crOF23@DaPDx zW}6m@L`Hb(1Z)!4oWvWJqPl2tj*H#0mKj0Ewi}hNJ6ief&f^l(@AuaJzP~5_`JVIt zf7<{5UaQR%IZbncP_A!r2-jb!C7G*)L%bTRlMa8Z@0rXIrz=qJ$@O?!r^?bbs|44` z2Peg7ueqMIj{kDiG=QQKUN2`<-G z7f8P@5R@!)iC|D_lY*^34{z~<=OXIGEVh>$YOgb2C4zry(7PjW-)PO8~Gxnc~ zKD|XDQM`PfvzA?*@V08!vij47YS+?QpUgLqa(o!IrB>pYRL*sSq})#%c)y6Lygs>U zO_#4lr{xUEnb$cFMr_$^$egd7ami`VGF6T5uk-$kMXu}k`SDV@yK|#?MSH66w>dG5 zP1*I%(^9u@5W4(9;CKONyqD1Y*0s>JU)KEbzVe&n+P&6GQ+?*#)H(g?+3Vv;f2K&Uso9ntIO*q)4t}q% z`OnSXKk(g1_sp<*NBpo#FA9207B6x0RR91 delta 673 zcmX@bc8zVqlzKH!7srr@!*8#i@AgX+VgGQx_P(SD_Y#AyH*Kv)J9K=!G^M4(lvXQp zYjSsIH{R9#$!)@Yqn9(qC!9vXw%UB&?72>zqDi=XtVxn*Vwat%K5r+nz_%JIhBcJ#co$_UDsb zKFf!eZqQ)*yXuCNpv}QYKfdpNV{BuSQ&Y3&HH*~5LS?4>1H3iI*zX)!w!w7qsl^pt z>nqy3B{=3U31^#R;yd}q9wFg~*6bI@Ti zX%}DEbSC>%xYJM;QXN^hj@hEo{DxRvtHJbS-hJ%N+#l9Xf8ct7$@QtO z&rx=1?Wv~8cly~YG{m1acI|zwtnp0O8cez|_ zoE4{Uf7x^AEAHsR;AsiEbq`86nCw5k;!{1B*xPLj3=Ma047vWa_VWKK&y*+&QMFV2 z!RdXq^*_(FH%ggiU0D&h*sa&Tm0`i^^!S1c3=9maC9V-ADTyViR>?)FK#IZ0z|dIN xz+BhZFvQT<%GAQj$PCD}GBCLF+1dt0LvDUbW?CgogBYfcwdh{OKFEjMg*JgbGwd#Mv`W^@0MwU8OX>G-T$#uF1@*mVo@=fzoV3uFd9dHqjd`-W_zEQ}iQy4no1m)> z*A<_ijk&$yU`E-8J-*M1wd*Im{W|68wo@5xxz8;pF`0f)I#AYhB(GKoan z?`}ITb?!^6@QH7~7^Z(TI>z=ab>iP*gyNAU+ z`44I}F2@|*sv5z+&Azu+&2yHt|0L7!(iK1JBl2n!bhpYbJFsMi8o!46k?FzDKCu6( zp7m28Y>6lX1A}UbYeY#(Vo9o1a#1RfVlXl=G}1M&)HN~)F|@EUFt9Q()ip2&G8*2* Z`l4va%}>cptHiD0e^WMzdnRD)$nKQ%x zUOKA+>h*egwTn^uSqXT*-~R)AWdt$>68H_AS_y$n`n3SRgMXJeTsnaQe1L0siz@2N zB@pZ04X{ht#(LB{iPG6v)5_cz}mNMxAQNt9eZ(PKb-(~{YTW*M}c#qT3y%Bwt$-dzCcR)9*cTJWn#ip^%JGj^D zC8OEEBmBT8_1o@?+VMWbgokP)+KKtGBzzRH##sd q-19p;limUs8Z#|0H!U+UR53F;H8?slHZ3qWIxsM;u7iM+4+Ak4n<1?L diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_4g.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_4g.png index 49364226681229e29bd6b26a44f2b006baf834d7..6022a6a7eba7d18804549da23a9980a2d7fb7482 100644 GIT binary patch delta 594 zcmeBW>tLHOrT&Jei(^Q{;kQ@MuI4KgVgGQxXXnm)n>Qbbn{*{ugZq@cgP2asrp=Rd zrc9kWy|wq#rpZZ(hYxw1y_z<4*@;7Oo;$rdPJF#{Jn7tv^mny)(&z0qxj!qd?s@9D zpS9;L_s6R_MoxQa)cyTH%$bW{t85=Dc#C^7-JEd1+sRJ)wN1|N$MtGKTR7&qKVVdI z{-*q<{ijaH9>G2L9t!R`IMv0jdu~OS|3{z1@*htgs|2XruMF5JD87+zw$t_F>p1wz zoy!FLH^}M>O>;|M;J8<%LO9)^@v%kEVhhPl$)Eq^e-UCiTKnd(Vhl%=y3>9s>kqR1 z!vAjvHf5Uz=gu~G`)KNpzUm$IFW(m`nKoNGG+!he`#m(yV_^!C8<`)MX5lF!N|bSNY}v9UDwDU#L&XZz`)ADRM)^9$Y^*I>x-fzH$Npa TtrDgKQ^UuNPd`q+!(<2m;8zpX delta 599 zcmeBR>t&lTrT(s`i(^Q{;kQ@)JA4x**go91ES6O9-e{mbJMi$KrYWs%*StJ8Do9(4 znO%?a)6i6v*32~X+BlKbbfc7X()OPicV&+2i;?*BTK7Xw4dl@mg-)X_rn&*m7S-5fzrW~=l(VjlBT;9G= z#9zs5`id=8tXh{2Kh=mk%G&eTr0=oFxmGLpX*ct~x(m!MDUdi`V44yu{LxqOf4Pm{ zwfl$pVzj5OvTk`Pl7B?krv6B7J%55*MAh; zz4-7Y`%eFgR^A)^`7@4ocR6kC+>(^>Y{TlidDDgbSQkdh^xS!E(XjiM^RIge^}n7A zD{b}I(#GSZ}S^D1@Go|*mEce|GNIsx<=1j zqifMO!4z%P5D~5QPvVY#f8Mxi^??o74SK&$i=2Gy-%roH3kw{Z*?6V?-2cIQd{NUY zzs8Kc3=9maC9V-ADTyViR>?)FK#IZ0z{k*7*T7uY*f7M<*vizx%E%1JwK6cc^V!-4 ZMMrLaN@iLmPzMeTYu7b5Ouo)!2mntC6LtUq diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_e.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_e.png index 57eeba056f28ab0bc6be61b15fbd4637cce9fb45..e493d3bf32376d0e1a96da042f8e97c4b8e16933 100644 GIT binary patch delta 398 zcmdnTa+GDllzLH57srr@!*8$JdNDgn9Q$}bO?lZTDY0$AT?tP`S*-aLE4Zv}8_X{r zON!#=*4B1(5jm=KGAhN*!=x~A@{Ke5rJl)ttNd2^e6f*pk0HPI=gdzEEekHRuACA4 zXR7Cs=Qq5UG9J5e!1&w8F0GaeTSR~N{*wvj-L|n=`p)vLr9yJ`y4sEZnxe!k51PIb zIJBl<`TqZ>9rFD3{g;S+omAlbJ@`U&z-czU!uDvJM+%+SPg^wo70Z_UFy&0%!?l~U zyqS0IU%tcWX2ar?C5JSQ-Pp;R%TqJ?$g$U63h(=q-y{hnuldkuToZNCc7pwnK1IHb zGoNYid7va2;mLIKz{Hbh%}wg>_NgsBAoQ-W{`v9A(eoZVEey~Q;d=dy`UO_QmvAUQh^kMk%6I+u7RblkwJ)|g_VJUm4T_QfjN-T@Fvz5MMG|W UN@iLmZVexqH$MG1nU~2B0PFFr@c;k- delta 394 zcmX@gvX5oLlzKi-7srr@!*8z|da*bPv_8yFb1!oYuxV`!7dWptqmpA`a`V213dUk( z{{@}qH%>U5J#xh*?0Uj(*3vt%GsJj)^>?jmtomBDYxT!o0Vh7`zh{aCl0zgYMwLbGTg^2df~59R$uI!hhpU!8(W`G;w!25&Z^uceCLagO~tQJ zrcWQYSPD921pS+9w0%Kr&}k+;gQLuP#h-&pvTHtfsOLQ1m+~2?s#&<8H*nTI-Is@~ znCvPrlkvI!VE@$m-N&q^$*z38BWPua)>JP}JBH57_6+qI9hVsx7*tDKBT7;d zOH!?pi&B9UgOP!uv95u+uCZZ=p|O>zg_V&RkZWaNaObnN4T^@`{FKbJO57UOu4`@p LYLJ{P!K4cS4nm`% diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_full_1.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_full_1.png index 6c9c4b99429efe3dfe5f27287ec29c05c1394a7e..5c8dc82dd32ed27344cb1aa366f6b52fd267aba8 100644 GIT binary patch delta 735 zcmaFGHidn{l=>7;7srr@!%wH#XNWk89IH2;eR+$L#0KaC>r~p_SvB z*sa@K)0#S(7H~8*9gIs7p3QukS#b3fv$93%O|6C+hWFm}9o_R#?eV?T?|JWa=A@O~ zJGbY3b^fzj;}84IP4yPIEq=&vI$>A;#)j=tYxf^G?snjG1G7DIy-$B@!}MRAjQd%1 znCDIu<~Wf2K;#2cM~Y1p)28=P2l|*+JGdS@WhkBcB=7upX8p$Ir2apgi6@mw61oH)w@3*NJ}(?{Elst!dDD^?T%l=L(FXQ3}($gLiUN@XeWe zKTt4!-BT;(uW8Z^C&N!?Z7y>Po!!st`A1|2$Dc*oJ6mt}Nfta{NXyC(iLI@lFzLwW z8&&3&%@Q3BdvB(_J;Z1pa`H~%-hWR@eM`3qd{`*IwbIytamJ4mC$oQ@-hTV4dH(f_ zyNq-y;+f)J%{`^N@Qbt2yDyhGD;~VFER~92bP$yOt$#GndDg>2e~k~$*>GM>;rF|F z!N(ia!U_&-;NJax;+J#n|M@Q5i@0pNB5z%N^z7QE*Jrm0&$@d+cg=|!hGz}^lcttG zTEcvW;r`Kol0Ulk3LjYYSbc%+x6B87Q>hnsX&^+$iUD@*T7QO&?Lmr)XLDz$^ghUw=yvBjM;68q9ZpyB{QuOw+0JF K=GMuU%!UAq;Y|Vn delta 674 zcmV;T0$u%-2kHiplz%!&L_t(o!{wI0ixWW<$3HWBdx%&W#KuA_T&-+GE})Pib{75v z2iCTNMG7Hy0YPjnY!#ccvQCjAowXpSwSvdN!JeDlXEAS%xiQJ@Ua~=Oo1LHU`+eV; z_ujz&{+Uey^?JRqYk|r)HUd5#kN*PS7=b_m4}KT8un_`*^nY6l{t$Q#6s;48z-Pd1 z;60FNzg+@)?pDFB1A9QKedC$6>A64i%fJWVijF7Yg0{d-;NUahCU6w5Un_wKT!3@h zKOc;@Lm&e8K(BxdI9#-EEd-)0m*CEQ1Uv!`2+q7U1p@FH@C10OM3!Q#lYj+EU>A6S zy91U}>di`FIDaS6>;P}-c)qd%QLK9}Zz!3vuAMU}5P&BNwxc8tbi8(%Z>&J%c?ooI zS?((EyQ#fK1fp24a3ysQxP*)K#tt>wpvA>!xdeC%+|%i#iLFKiLri+5qgP+m$vM1L^m_(Gd3%j{$_xt8ZS3cm8A zwypwOfONav$H4RHbh>Y?O;-h9N+6KlXSw^<+Lvfe50qIyfdJeWmpi~a9h>RD!W~03 z$Aq7gXifZ|Pe8r%iRKpY5xA(++d7xv?tr%uz5{H~x43s;i0AjtzriBn6U{a-0Db{q zaBsVBxJQilNevdbM6|E%@4$}$^hn3P0zYxd>$6wEEFj>Usj|%h6GVmd`+ZZECu)x0 z6x&=BEyBO>outGBzzRH##sd z-19p;0000bbVXQnWMOn=I&E)cX=Zrx}E{-7)hu>b^n=R@n!usLv0IxbA&|v{7RHU!MS_v*mRx_FhN7 zJil(Xd*ct+I|mHs9Ne5?9Kn0(b%k_Ff1$Ad2AOxg-;Ty@{#zpubBuLP&kyT8eK+oQ z%spHybA0udh?9XOhwUObt*1Z!8*P@?@O?*f@DABNo)2ucJyMe@${7#0zFe{=FW%}o zXU&1b74?$W)<4cX;p*0sv0a^A7+3 delta 514 zcmcb@dYW~@l=|78E{-7)hu=;$%no%FXx+c}{a%47BAIWP#DoGi7)%qJxWsRLZ58YP zrfZxXtlc~Kd zNL%!);RfCsR=$Sbj+xA5jrj+fn||mPaO~mSofXQoRh&ues{E@?(`|?Qe;L-iKO7g( z{>s19u4XOkllAhCgC^8!UVFFF{o(%gbzMJSN1XTE@~$;aHDvoCxg$HI{>gsbzH7PP z(WornxRjZ!Hu)SYj2uIb)@%I#q_Sy!kk{FBvRi}sEcy#MVz#U=S9~C4xL2Wua}C4q zhw;npnx>odeO|)y#4Cnj^MTzP;u&Ti5PlH4^Zb%o8*VbM$bNX6<9Ftb^jC+aWe*E7 z%{%&R{%6*ub>aP2-CI}i3vQ1zd3|HgN`VQ>YZKJG>e=qFE?X)6A^cb6B* zch!^QkN)rZm*0O;W!~f2T`w;zbZ+O9wYuZ?ht+P{e%b#^S$0fzWD@r_)-^EKH8u<} zG`2Feure|Oa;*#u?tHekVPIfTEpd$~Nl7e8waU#;$xN$cFfuU2u3_!E=7!0OnG69N Cq2$*9 diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_full_2.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_full_2.png index ad7ee1ede70455ba87ff3723802eb4edce18d26e..3082ff0b03676690fdae8c4e61c6e7e17e933b0d 100644 GIT binary patch delta 728 zcmey#*2_L&N`0)Si(^Q{;iuPZGejIE*dC;RPvV*7^^w2%pxZ^KZf-6imDaf&%eG#) z7j!U4AW(qipx;LE+)2-VHEdnlJNHHBf(a5fi+0{wcl2zi zM(yZozhyb$*Xi2Ls!Ug-Vz<_ZUAM8con$i2=+ov3F`f4>7u_~#%v$^Jbx+Ap?@9f= z%9ac7W<>qnk*obcG(~%}`7*Kjd#tAG)kRHHsoGi>%+fWD-TV8K#mS#D4_{oeaf=kk z7n@&70Sx|I9`BJZR{8xo!hgIXbCq zZ+>Nt2QcV<%-Pl8zU$6QX7zwoUrpy6>|PMfT`aa|QmLiVzti5?r;5v&6yJTcEaftN z!@1vmYjXU>lib(#Ghb?&^GYQvM*4f%`3G5R>*b`+`rUD4eqSK)zFGWUi}S1-?du)? z3(hYsN)eS0;Qv*)hj-r14K1Gz)v#(?@t=Hg>GJEco>OZ~A9}o8BlhlLo%rAV^0BXX zT&dZ$Hu666CZFsgrTf;^9@(E#lunz)?T&k|uG_c5@N{-nH3I{KYKdz^NlIc#s#S7P zDv)9@@-;9t(lxNuH8cq^G_^7`voZj3&8-X!JY#lSqUgxYPsvQHWH7>|!Ge*wb+QMu FApjniRha+) delta 708 zcmeBW|H(FCO1-D2i(^Q{;iuE~cMCg;9JinB*)-8tSWuc%>Bwa-4yAC7C7$UI?G++! zbBT$GIdM4(+}6$!m0rK;Tz!HrM^$RTwZ{)0yqk14-7x>$PQ#t2a}y8+jAzFYXKCa0xy4=+Qr}3Z6HDNA?);vpg_?cVdAdvE`FNRC4{+*^NZ)Y{w!QL~o0 z9}}rg5>XOpkdB!n98 zz%lWP5{uI6nyI%B+$~Q$+E=B;D5&V6wfNWdy)%U5ww|t9u&%+sVfq2RcZnN6MR+I_ z?5+3XZ8Sgg^5s(D4z9C2JGg5uY@JzG{MF0uIfwpa5A}cN)E5+fZ+&L=LGs0l9V?Aa z-`{f~_c-U{*%PLlE7|NXuVZ^%dRp|2<8c~vxSdwa$T$Bo=7>o=Ijdcyob&U-}42`W!Ev$^p kbPX)ctqctAe73eh(UF^!Ru6p(51Tm*JX`vF>S=%hH8HVT&C(&b{kNx_7#7XXMShxAz{)PJ3p)zw-Y3-}`{L z?SHLGHtUuR8v^Qb6uQl`nf7hjvW2PUEXNd)jt8G-#0WE~zO0|k_{ZekqwhC3Lk`@w zXmR&A{JDa&r8b{s!{3UY(ubCvXWZ$>shN33b|;gd zjOV_}Y~%TJoQgO%{|G%Rui0p1@#$&varJL@)n3zbb&ei)UcfZZA^rQAx8d@iXFj?9 zJ%3Wwd1=l@A&aB`(sn3j*3Zd)|0z`YZDjW1b&WUT#0vx?Fa0z>rom});b7z)7rCVW zHu+&!+f-jJz9@6h_NdsGtveQqYBWv{w_I&7%WwZ@o}~_)HoOV$Or7f$?|nD4-@r6= zYPmtH`i=Idj?bk#9F|@;&I$VQyR1e&&5^nG!>1?jIOb_Tsc%SrSZZ}5rtnLBD6^^F z^v8UD57pJ$7~gw0%ITRee(`G~0gsE+3%t+Hv@2qo8khgrK&~yqI%e|%uP|fRn(5(1tFBiuCEkCm|AkRUi--N1 z_BXq$Yq`DtGw%8}N5k)M8moR?bo{~M`tG$ECej72iAL`?2)}RUT7Ot&|3=<;r$5Se zou-qbjGO~@<(2qU;pncs%7f=3cC-^Scvj)q?9RBK6cc1-QgnO=h_?hK; z%g-@?68#x@ygT^v&yR~gcb3FzE}i|K{qUz1(+-=k9b#Z$P%UwdC`m~yNwrEYN(E93 zentj{M!E);x`rkphNf1AW>yA3uDO+gfoIHaOB5Zs`6-!cl?*sFSTHiTPPSz>1OS%I BNA>^! delta 697 zcmeBUf5$dqO1+(@i(^Q{;iuC!b_+X-9IKyvlSNQlb?3218$N95>^5Aqfp z%$6o3CMK$LBxNVAzAWTUUU5>1^2Opm}ICuKpbi;hT!#h5feJ^W%U}F9G-t3?I zYK`B|Zv4M@W+@|Y`{9BcOh)%3xqp;c{bjDnWohE6_;C9`>sA4d`k?t5KWra}7TmFD z5|7F>3iR5_<*BcjG>*$0*iS;otKSKX=E zxiMsC?t`u0xMNGEaED*_6P>3XzWX9rUl75% z!=O=AYkTYJ@`aBa^;{fWI8?4={1JV>tj#_5B998!4~7b^HxK2+((|-ASyp~OzjF5h z?xJ^JZgILeZDz=0%)h$rLjJPIlSR`$*mWj7%C}>@Tdr?n-oSsrwY2<7dgMHAj(dzc zPjCLdEjVxf?E0pycZ^u8dH%52F-so^pHu&+_6lo%q0^S-fAbG~XZYfg8{Z&r@$uJ_ z%?V)wAMS43WZRSUS?hqm)yCzSUXxUeBzSz5U+(md`XPQRQ!+v{IGU}Fxk={K$0=9Y zdl?uQR7+eVN>UO_QmvAUQh^kMk%6JHu7SC(v0;dzv6ZQXm5~{cYh_??=d-m9P=g*q WM{a&fW?Cg~9c$M$H%yLYHUt3jbusz? diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_full_3g.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_full_3g.png index ecc70c0d9134fa5112341362c53978e647499b2d..a78c4d607b1cc51dee4947813e714476dc3824a9 100644 GIT binary patch delta 673 zcmZ3%c9m_y*?<6f0nRrxsnh5vK^5jJ2 z*}Hdbn#jBK#GzA7tX^eGM-R0{3Q7yk+$8vOhw8l@OKa+pIu2<;^FX~g-S$n)s z#WyhY&<%#Pqx)uAuWwr?U+f%z^8RI!fZKd3g+Ima92W0+EHv%;inyN775(`Yjm+bh7Ll@!v&9=%_sUBE(qM(8Fh61v5yh$SF7rH))%n+zS4F@c1hOU zkIuPzB~K5ySQLtS7x0Kb`osBcb!lV5^EFYk`;PoSWzlk7%6Mt6&)1x&Q?HJiH%$Gp zG%Vrl-q_wLI!BLt9NhA!+=%ygl#QGHN1f*h^?{3zzi!U9sVlv^g?(i*Ta?YwpU-!M zmOkgs>-v;8|A}1Hi-qk#;^F^e@l&TymSp+Guf@Q?pjzS@QIe8al4_M)lnSI6j0_Bo ybPX(Z4NXD}O|1;gtPFr$b1MS_&zRkoC>nC}Q!>*kVH(6RbyzSmw@&`fWC#GWD>OC$ delta 650 zcmcc0wt{WK|8F^ejWi|K-Zc`gn>HjE&f42MH)rWh zt@?(!dsW4ziI`2=BxS97Wy%s07oLSJtoeI>M%*dB|9j`2qqVPpuf1)#|MTy8)#u*N zxo>MO7;tie*5?Zog3ftLe%JR4UJ~^|>B+4brVio~DUH?(*ZWR#ssD9;C5u_hzs+g- zN&!q}OtlGH<2I^!ia6>WsubJ7T*JDLp}etq4+H_dCF6>>%P zRhR0z)!Uuw*ZQ$Pce)X`a{86u8|zk-HDA_Y-pX;@`IYe3q%|j*WJ0&EsQtRxYI5Pb zRGBM&n}vGTd-%t8O@ANs+7l@zy(y01CxIogv+fsfVQ?%xDrYXgZIzQc1*Xup@EWIfhw@Q7}wl9y2|IRD4 zTk(8zxk*>N{L!nq_n7~%-7}Ed`cvZ`&l!gO4ch~ko~(1*+OxVaS~8eLwkPs=opbbL zm$oxes-Na}C;$2P&?l%-OgCyv#>GXh-S(@D>h~3FsboCNz`&qd;u=wsl30>zm0Xkx zq!^4042^XS%yo?oLkx|rOf9U8%z#`g1A{xCt!+>=DSrg~`^;QUERVBqIO- diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_full_4.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_full_4.png index a9fc3673416f593070cae2a6c47c4b22d3199b26..dce07ae1a0da54fb7454ab989f99b940c3560a68 100644 GIT binary patch delta 634 zcmV-=0)_p*2EqoAlz$RQL_t(o!{ye!YZO5k2JqkA#weOf@B_3-V@P8YF^yQ+iQr$L zy{%v=h?O7+c8a}dqfPz{OB*}U*rd^*sL9=}#lFL>&NIXR z-a3l{+SuBzce@y*mxX}8yMFE;@P!emDUiUgU}Yf$YSJ$S_m=}1bmf(G?<98lEQvw-yiDS_}UK^he zfebtWJ;fTnkNR&W1TvQ^RO|i-x3OzXtjRun`TJ@7I7~tl{Sb#sa=8L8aWy^{lgyP`s~TuOEb9CwpCy$0Po--zN+^7)PHRxfd-emh9?@%^qCXL_IeMO z@hZl8@f?IIgN7;6w=#>#pUnhncew#BVoPN>u&i49!muv*`ySA(^}B|Jnqt$x%@w?{ zwVjOSC?2Rx<|EGHQ>gGhCfUa+e2eif*fFe;J$%M?jIZEBDAQcUwIx^%wm%JxCP|tb zPm(oPwNS75SZ;k_&9xn*z^Ire4=6{(mt*Ge2Osi}#6a`BMF0Q*C3HntbYx+4WjbSW zWnpw>05UK!GA%GUEip7yF*Q0dHaajeEigAaFfd76yE&8H0v8%GEigGPF*H;$H99di UIxsRVFgH3dFgO7Ng_8~gG3f0pp8x;= delta 613 zcmV-r0-F882EPW7lz$INL_t(o!{wJfO9U|xhM(O%KM*TLY%IjWkIF{GLQ6Xf|A1g^ zD_B@q*a?EzTG(oLR{jk;K@ikhK@o(z^KQo?6EB8c-M!o0#=x=3WRmyIOlBqr|GfoO z0f~q^41w5oDgh6I@3Ve`S4P0GfCXO#Mk@o>UroQ8B62GtLw}xIDgj>-k(P+uiAW?O z<+?!q9s+G(7N`RQIt~D8Wu07`_4y=l1x%?tauvz~51a!Y01H6V*DsWS2QI*{jz=7M zIRrd#3v>$10Uv4W3L)TyQ-tyR5wH!sDd^BEMo3NgxC|z!q?fxdS18 z)SJEt*hGW5?SC<_0-S3oN)F7#PZe%a*K zHN9{GUZQCO%fO||+WL*vDsjRVc1}DU|C>y}dCPTxMc^73)9FE-i|F19`1uY9opDIl zT~^nwO}@bzZn1*x1Fyh6=56UWDtiE4Fv;uAS|LawV7mj# zw&Cd}MI3-#lq65WDfv%9#`c#5(sT;5z!&x)*Iu=-!Qhjx0v8%HEigANGci;#GdeXm zIx;pbFgH3dFx>MyJd@x87aB7yFgGnTF;p=#IyE>tGBzzRH##sdt*(QBlMw?kLOly8 diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_full_e.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_full_e.png index e1f894310a9e714b78f9b0afcc70200a62d81e71..828a7284dff8e969661a1ca557c3feab671621de 100644 GIT binary patch delta 407 zcmdnZa*k!flzKT&7srr@!*8$JdNDgn9Q$}*MKHLsQRcuQqqQ7iVmliWo-4BWCoX6I zz_YW#%q%)8BEpl)(M9B_(#fb4HxHA-#K||#?3a2b`>pa@<#Xj33vbIWNi>*m#M>3; zzKk!}@c55r&m+%obT2hKcH@BYw~t)`U#wC?H{Q=UYZ#g&ZM~!ZU~SCpo$?j!*%yR9 z;nqFEm7L9}_)qMN%N}dqgSNgW>Q1JbZ=O7RW_|i5H%`xurmudMYSnt`0`^Ee(n1vq*YBcD5xV43;b^Z1FsN!jx9_5PM2w_@p zBV@9Dzw<0jjXI0&{qaoY2Y7aLJ*Z#k@PTI!gZhEsQx8PFYzrRS8g$5g;OzW-Omu~d zf$`Owv%M64J(jUxwVK4&7@fc)lJ@O&-3o67ts3UA0|GC8>|>R2Wm3sFpw5Bn zw~bpL?q?C(pxz(2v_*Gba=p{Uy#Wf7Po@~nJhT5ZnC}Q!>*kacfw+uDJoI MK@w=gWECbY0PQB9QUCw| diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_full_g.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_full_g.png index 595b51d002d10a06904de8dd94fbf2c6c6555bef..f1a8017e5e68a1ad0de854a1db0e1c89fc2061f6 100644 GIT binary patch delta 456 zcmbQhI+u0Al=@sx7srr@!*8z|`inY>us+Bamls&F!64wmr2yd#8x|NCs{LWIw(`*F z>HWu;C9Rp^xk4kOXYJn3kYmSOq*c9~(qB}(4}2p#<3Y4b+1eYI@65cpyZF4VarL%< z=A-59KewDX=4=r$_cB{oV0Yw4qoQAtbu-UO3u~^|h;!Lq`=y}X{MzrI)zhbB`6*a= z9etlHZU0d^{zH;W-D<8SkAf?@OKXnJ_NeR)H0-Zem}}l+PBzCZr&5`t z_fKDWd`|SdoZFrL8;8wx5-%NfmHDU7G+EGJ`QBlZI+u$<+&j*xX{H;C{OEJm`Eyv# zTxo)pztH;xU5+m%Q~p`8)Z4k$hRCTl}@W z^xs`!|XUuNP$$CuUIHWBYnOi5vGZ_K^To=Az delta 473 zcmbQsI)Qb?VA;c5eqf>g zg4OX4!w+~mU20mQExKb$iPFnsf09qn9M3t!{C8$q?;=6_9vfCS#V40prf7KIVc(W}Tsc9wVnN1}Jx8s! zdPpTb?rKm@;NQXi%*o?6mqh)nyQbB=JPp^oHsn2&Jv^^;x5`}4TiX}U@T{7=<4J>;Y&X-tBxW%LV<7UBCMp2cNN7JWX z`gQh~?y}F80)k-hQU4<=+v?{5XV3mw!@$6xTH+c}l9E`GYL#4+3ZxkPj0_Bobq&mQ sjSWK#jjc>Atc=WnTq^^EJD;s>P;}(xr(~v8GT_v(c3pGB<0l3& zxx>j7Ec17)Yn6;R{^nO#>!kHRPx_esOfOSl?D|$TH-^pOjIH^{Q1d7CfwGkn^-~WN z707io$QiJ?9T3o9JnmA%aHiqUDrvX(QYTVptYT8U;L&;gQdj+tD-8u>XB3w*(lxNuH8cq^G_^7`voZj3 Z&8-X!JY#lSPCkHB+Jcd}b@E3>Lja}0kDUMj delta 328 zcmdnMvWR8EsflIxVZ*%Ovr{^#ke{y<>j9%+V$(^gk-H2yzY`XupBs8+ezx-JeSBf*KH z2EqFuJ_`Q2I*_$sXM6+S1!gwZkL$YKg%jq?Su6VF{vw}-&@}dX*{gC%A$eE4iq!IW zbQ;t)FuM77^eY|Ek}2BxxvOlk+-By~(3Gs{4$?1H&)xm!IE#cC^UTeGa!u(hH)cKf zqhVZ-FT6Tuec9tj)?05&%-tcm7KYS)LFif7$C@N*FYhbQxY#3r_Y-MU;Wn>2AS{WGJ`D|@7`5dD- P4(YY)nj0qnXEX!=sN;%N diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_full_r.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_full_r.png index ce6714263862522c802ca32cf6fe551736d5f94d..d298624af8a59dcf8fa9c47453c19afcf9b9164e 100644 GIT binary patch delta 416 zcmeyw@`q)@lzJae7srr@!*8$pYr6zW9RGNJhUQHUZs}{MoKCLM5#iR>R@IEwUVre= zJ?jNiT4hfq#Wjc@aGQ22EkaAkC{5>`W$A8S<7fU}-=nubpI1Nk{^vXQZI>%J?+o%a z=brh{t!8J;%nRIHYt>R%M4kV<**YOUa9v0=*ZUnzPrbHE7{wf~*Slw+qxoN#uR!XW z*{-z*4)8BJX4o4T^O*0m#lbRxket0o-?O^dIoTZ6nzm8wmzndLbel`TjIBN`zXg(? z@x}&aIUms3X3)fYWy5r@1^4tB4NtS`wDz(Uw01`{*3B>o;{M2yJmU!8vjPeAua}u8 zs@ptb{5|P@5nHnme@Us@mT=_-Q)Wd^uIXB6cD+nR!Roi|k?B`%80V?9&Ecwz4P7vk z^RZ=pPw}3%GFzMOg-kF1^<{ehEq8l;)b+|6y$rK^KUTi?&pR>)0_qQoOFDbb++D%; we)4@raVaBR14~^)lMq8wD?>9Y10dJj%D})gX1C>J0VZ717L3fTlO3510ap01g#Z8m delta 443 zcmeyv@`+`_lzJym7srr@!*8!{^pXt}IQH@Wz13m|J2Gn+xI0@DQqvzAdj#FO(b@mV zSflOA%C~P>XJ-rV=DyaX*kRt+x_Q%@XS>p_YyCc$cw^?=nfAs7ehZg%tf&+FY9Qiz z_wW0vtwFpQGX%c-vql{zjuk zu*OGLaIXH*QhXAmI8NoHn`I53^<=UT?DS*@$L@xGpw$*`d> zRwtQX+~U-Yz0+o~8Tjn(T$^Kdpu9(TgXw`SqCS`E4l9KfH2t095u$LPb-|U=dEPS1 z@^y0qcdxj|x?tBb`%L>Oedp@+l`0QEG<&<=E9Xt&`_(h8J3GQy&QH=-o_pA)?z!gw z{~eM2*)zAyby|F8|J$A2;f1$YR(+iD?DeP0cUM=3uaDbX^|!u?VeN~EO7ZaHc?=8; zswJ)wB`Jv|saDBFsX&Us$iUE8*T7uY*f7M<*vizx%E%1JwK6cc^V!;l!2nrDZhlH; RS|x5BYu7b5O!j6n1ON)<$Lat8 diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_g.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_g.png index bbf3fe1e731a7be3a6ce76815df1051d8684fa61..cb52c983f82a78bfc4de2530a4ff392e8438a13e 100644 GIT binary patch delta 484 zcmZ3%I-7OEl=^H>7srr@!*8z|`inY>us+BamlIgHz~Bda#)?X>M90LWKip+yGa@9U zelTA%3A!*TBJ#q8%ad)ilarNtrA#*}m+bql^Nr8vgYJUeVQ(_uoq2P2=ks|pZKGEl zOfWdH+|^9ZdH?W$S!?U zzOg;u;;4I$---Ot#*jaJd>b42D`YjTZ}fc(dCire^(c7FL)~j1h5QY;f;O*utg%i% zxc{a0JlmcMfsO6LcaG2L?zZ?B&+<&^U)PQf)|$>mOT`K%`v#p`9q_<-U(!?kZ$H$T zR(@9bXg80wabDY{`z;Q;?$!4z$+367&n=l}@RD!I>91`1A7qRz4r$3f@OjGJ8<>9d zB=@w9-Nz&US?91W6k4p7_NAREQRlJ7H_xwc?;jSbTh*s9_y3BOOr>FSCTo0Tejhq5 zW{1J*V=GEGdW+2#wtc^AZG2HXpR85Miwh6S9-DJ~4gJ35<(h8{3=FCzt`Q|Ek%=X# zR>?)FK#IZ0z|ct7z*5)9AjHtZ%D}+Nz)aV`9LU(n;(h_H1Ee80KP5A*61Ro}k^gfh Imopgx07$;n8~^|S delta 497 zcmbQux`K7Wl==!!7srr@!*8$d&k_j~Vf%1D@7jt8wk`ZOBG|bLw|a=4E>W90w{^jU ztoaG|4;=H`uu&k$Rhu(MndK9M*9Nbk6mCJMj=XD0=T4lph!lUntZ3h}Gk2=f_Pzh} zaLzRD3$MRkx*qn)rmb#&zF5XpS+yr`KS-+nd;7#T+M}AOQhSkX{X?$2BR@4n<4%U` zYv@>^5`Vz^&0}l3WM$C_vm1BL;+gW~`o`AKHwnVs5#7IY&y?=I`!T^_Ml739V1FTh z{zn1*4U04mT3Km5{UKhWcIPhtZ@rIyyKXyHi9LUOTBtzxP5*}OE;k##PkesGC;qD~ zaGCiiyh1>5{v*C`BB?gBAKBM$&G6sxJ5umM@RtMPF=rL$h8^&`@pQxd4|0dQHt1ZL zx?oOG{s$g^!~Xt=L$Ni7J%6N{Cf-$$axZbVImB*rFx%$%x+F81Bi|#L{&^&)icA;0 zcgR=f;RPP?OD3l~KJ$jh21GjPzW%TXE7N9000`?_5c6? diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_h.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_h.png index bbfc6641a6e0818a950ac054157b7c0afda835cd..14550d57780c1c85097fe9e57586254703f0a293 100644 GIT binary patch delta 394 zcmZ3;h**oqrh1;F| zsn=Rx-^bkOpdi3eGn?Bkv)-a+pX<#+1_lPz64!{5l*E!$tK_0oAjM#0U}&UkV5w_l z5MpRyWnf@sV5)0i4rDaEiS9nO2Eg!^e$JKLRyKf@}!RPb(=;EJ|f?Ovz75 KRhZ1rBn1G7Ihl8lny?;Pnh{G-20ng8*6Axpk>OqvF4 z&kpd+VB&o+quakhG{E%OlJ`<8rp(AzB@1MgrmBXOYt?Po_5C8}bpfyL>j%`z0~bAt-umCXa4+k+ny?SC zZ2$ksuroC}ChROxjGoIF!G%g zI%e12$im9!{^?obyB1EyOMXsrDt}{V-@aY!m+!SSXl01jRMX2(#J<(q$Clln6Pv`U zxwN$U_g)q$nFMPY^M_T!^=jhUQi+LOwh5hxnFR|RZbEx9-#jBce zkN!lznfpLAcHM6!#*Zw{OFndbF4*77s<*i0hsg%}Nw&p$M+j0;%0>bl&Er8XJZf8e5rKSQ(iC ZxmE@ScRpL&Ox}-EdhNRAhRGio4FR_YmZSgx diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_inout.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_inout.png index a5864aa04508510b675fe87d5626d89148b821c2..07ebd9c33e60985301da24b65c7aad4a72d26b78 100644 GIT binary patch delta 456 zcmdnUx`=hcl=>o17srr@!*8!`^b>UyIrj0sUPcBFudL#B(~Rf)n0a|ajvSNl&UQY; z9B|=Qc1{ng%9IamBDXKy^l(}_w^!=@UXg0GoD;k^XSQ5;bN%g`b2H!nIe%tm>Xj9N z{cBdG1l`{D_oryu1(UOfrC;dQmH*pw#3j~g!S)YoWyv3Z9pwD7sXqRYi2TN8Pn+-= z&m}Y!1CA#Nze$wMzqC7stC>^h#6J%Cq&GtAKbTKHl)xltkh;Hd`>tF64|4C(TWD~@ zLBQk4w~foJ>->}7Fq}8Yy!rPAecXTgpIgpLVBK$=Y`4zKEU`6rjh;e5 z+x!)?md)hvoE_a%!nEzfy~T zu>P+)?{UO+#`K*Zz1Bb8a#F8QsBP0`eWMKv&Z|qg*1Ifr>)plJ;*ufAIH#kSfnl-& vlc=q3aIsWnd8R10U=qrmhtnZTUH9EQ9Ve;7op&qv5 z_6G!erujDc3go)oHetPd%Y~=ORbcj}_q`A2b|3z9=uY?PX+O7Czn@cm?&rPYcd}_` zXO*5><<)a*o9ylI2hcFp{4D&vP^Dv6%YhRgL+@}s|Jo@mQJ=d10N42f;nNb~ z5=Bg!iUIALRr4Mjy<4(1hHEls&dGn8a!2kcu6tOn*Lw5{!>@hUO?-2MKUP~D@Uz(4 zqW`1A^?Io@-#Hnk&Ku5i`V-C_yQBOj>FTz(DVx%l)k%1@e&c&zDDqg5$+A6uX7#*v zUR@hDz5IJum*w6g>s2dDCsec4uVl`9Ft6S{=&^C!Q=u6#Ef>QySF8UJ{8pdzZsXaX z>7@ssnDr=29D1g%_oyns=Ez@#MVV5y_x*2ef1>4Aeo#ohfU*3e&8GOLZz79C*Eb&u z-*d!#k4N_LxYPf=6I>KS|Jkj3u=T9k%hiR{@t04yQd0tsSSjwk9lW zo!fD=j#1E2cTMY70c&p8MD2|MVH;<9ZP*yKWrN_FBi@r_yDig=`zHG)sm(ql-o|;@ zvhv^iuQLD2SFcso@tmY&K6e&_jZtufIpYtbZS3F9Z**V4vX8aCe*^EUY?k$`KTO05 zB-vu2(D~&#KvtE1KDNO#Qy+!mP#I8kRB3Hg-&(5v;MpOF2MdW8sWF2i#+( zEKOc|{`bLlp#Y=%!8Y6%BJT?8%Zi+9C|+>9W`BQd#}bW%gdYxqFAVSJKUV2`Sl^y! z%ftF!x{*Ww%y-L}V|6uCPygQVVIR{Xj=S4-wY;`y@n3u>Ty(Mwuhyos@I{J!a1 zHg~4Z70;Phn{L=&iql$P@HEPzson92(lV*uW9t)bd?%^QYdZZfGVp4)v(6gkif-#2 z-Lk*Vd=FK+a478N-3^^fgBTriwRSt{Cv4BDzi~z*Mx$+uiA$~I@sB(AopSooXS^xw z_5}XB9oIPjTUNfF+O#iQYlBD~b7$y&k?*U1?Pp+MP%UwdC`m~yNwrEYN(E93Mh1pP yx(1fIMg}2<7FGrZRtBcJ2IfFU!<$%N6b-rgDVb@Na1EjuIzDcE`f;*2vmpSy<}UsK delta 659 zcmcc0c7koflzItI7srr@!%wf-W{5aS9QzpmNb;zY>&A;wj*hN6e-t7(wOrP+c88QT zEjSz2q%qwqT2U-XRNzThL#tVxNLka;P=|w;yiA_GyOxx;=jolj{dZ!6ewbCCdH1pY zUVmlUkNe44%88NFN{c_g^lea2)ALqX_yVi{&HWu0cCw^1>1rI{biQ{aS>|Bin~p`FHij#lHu_q%cSelx z_d?0d5#6sVH@ZwdQIp+r_fYJd170=TrRNv$X-~evx|L&pAN!#r>qT6AOY3dUy$Qal zpC~Avye;$Ze2GdnuLsLpJL~tinHzpiyZYZEhz4|l6Z(WoU zv76GsRiA&P=lP?m=#rg|4|rZMi~if!(QFYZa7~WQE`U|*Pc5T3Oa1@Q6(<7fKkO6r z_z=;UvUGbP^YM?d3*R3;^qb2=sbt$#n|BYV7*r@9d|4{ZtINwH~**)d;L-IkI1<%p$nfcKG1zpZ2i;Oa-q5} zexH?4YPaX8TfKi{(%LQt1_sp<*NBpo#FA92zu>zW%Tt1ue^00x3F<^TWy diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_out.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_out.png index bbaeba017598e1723ca54a501b28aeb534d8899c..d8eda8709e94bf371ade8311e3efb0a207df5406 100644 GIT binary patch delta 341 zcmbQv(#tYoO8s3=7srr@!*8$H`yDnAY4{j_NWS#tv9N{j3?_A7;M}-Cj!ChQCG6cH z)`-2|RCElMBz7oAu4qnP`Kn?6*}i%AtK;YSE)B9Y^z{tjQ0&d$(7x_f z_#R*RkD1wuw;gN>Uj37be!TzxFvEBa$Rpl?L4M>Ee%@vC%%sH?ImNolo~}-1_lPz64!{5 zl*E!$tK_0oAjM#0U})r}YhbBsWDsI#VP#-oWnijnU=Cz7yovQi(UF^t#B}*V8RBu?stj~4|lLMJ!DdzAaSl~ zT|~Q6F}n=s(vG=mypb3EHbow+$y-+Yx&HIhR1FcX>Sd=ixfFd~YyWZRDg4gsbLjsy zeoNmgmTYPVr|NY&lSy_*62C)kMsU)yK*RpIXdru z%kM4U`?PCxw_Z4tyWq7|?(J)4!u5^fGRrR**F50$?J0~{RNUEk@dmSBu(5mQdqMRV z&K#T1%ANUZXvlX<``Qn`*Np8aPdqA=(^Vbr}Y{7EcCkz z-EtWi7*tDKBT7;dOH!?pLyA&?G=q_Wp|P%kxvsHch@r8SsfCr18IWsbU~uQNwGE1n V-29Zxv`X9>)~;)An0$xP5CCC~l%oIu diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_r.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_r.png index 8e1c7c026a22edc2fdec56eaae82c41749d0f731..d26beb5ec49a784b0274deefde79843a886b71c6 100644 GIT binary patch delta 448 zcmeBX{mwFBO1-r2n7USHiitG$(L>w;lQwPrB&G9a zFSA$VjfHzyeoyYznJVh->U6B;LQW6^dOqt6qEH z0{^0A2Hl)7kNLVSj{1p&j#z$>z9J*habE+mdobY%YZ}PIYSeEfM_8*VgDx zV?$+5vdrui$@bG7k^`86rg=wnO7lMCn!b{$*&uO|++#yE!`@h(2O7RoOW1|{D~>Sp zrR;wyao>q+_cJgs zsFt`!l%yn3If}^;05RddApigX delta 468 zcmey)(#<+yN`17ai(^Q{;kQ@U`^f}~9RGO!O;E7ofe#F#zJe+%c8S)uv8gOu_maD3 zb#!oCqndB_><1rW+L@XUOGqx{ayu#lR`1C~U%k$9_f+htSN$|Y$U%)r7KIjxv#H@fq`RzB3 zrT;l-^zRYJZVS$i!rLyFugre1dR6pctFXcz?Kcku@|7yryY{&=hx`)%rhf0S?!F_L zIa_bc=M6B?iFu-yla=YV#%oU}e?@D*#nI~>y(w8@4yDd)72+qWe)N52IKwvMYSZiu z_ct_Mw>YreV&X=z>lW+_E~VDjq~GAa?{;I6;fi@I3+^quy+L2w{hi7jmH^)AuQ%+^ z+E`p(8{fazJT>y1?DO2!*mfb1sqtBF}QY^J?(fn)AUH5eHGc2*kAv&;WSi7#dVX_;OApjpi&}9Gs diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_usb_device.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_usb_device.png index 531f09f86e31fa39829c27cb6d177af063d5217b..6ac70fa799857edb76dd518050f5f9a4e79f365d 100644 GIT binary patch delta 920 zcmV;J184k+2+9bMlYavmNkl6=08w1geW-{IFqE1a$ z?sWIPH;x5OSDkwO=dZs`o!ir~>|VZ}kzkfviejE%yyX{kjciu`|RSxU<+idr&S^*315EzgFvO1W?7`mvABIJ+25iEy|o08mp$*hIj<8 z<5t{+SEcJWXjpR+!2YzpYQ_Rv!-JB_Z7n?iSh^kA`+uYOEb1G;PXdrd_c^|ah34@i zK56iJ3;w{_Xs_W@{3!*fW(~xk3jg4FW8u7rD*1sd#xLH9unnYRXbs>-a>Cp2m6QdQ$;x@`k>Y-DTHv{128?gR)3N!g zu`pM|cBnRXQvu|%b;8_SzpLwFU9#d#>9<9DFr#nN85l^KIgL}&8<20oeArG$yD4j0 zFMnOXjIt0H@PhRA!-rBPd{qYlb^=iQGR_%uoz0PspXvVs=^W?cwF}T<0000bbVXQn zWMOn=I%9HWVRU5xGB7bREigGPF*H;$H99diIxsRVFgH3dFiBjyIRF3vC3HntbYx+4 uWjbwdWNBu305UK!GA%GUEip7yF*Q0dHVry3GA%GSIxsLe0Rx4T*aI>93AG9U delta 854 zcmV-c1F8JV2#E-glYau)NklrEXkjH7QLyk=r71+yXr+?IJmY)!wRp3>$>sgHOvKLA# zx7laU88ydDf!BKg1|l;B$0SuHFmJR;;ESy%fD^!y?HvFf0}DV1 zA*?ujl?MvS|9?fcTSq{HG}Cy{?KuM625Kf-0lpf5iqTgn=;WOo*a-|fUxQe(-(tjVD6E6Rebkz1#CGG1}pjHtr zO)?s3biuJM0Y8EM4qmGR)4&~j?+1pQaoqtFgchCqzuU8TpSj6Q0ndSlz#-#3qmh09 zD*cgiHUEIQSdwl@8g^H-+jz^8UQ4RE>v}2aWTz5b7QkM+$2fjSnw7L)(zxU0_IxF2 z+U?KQ1b@N>8j=o6x+iJT0jZjm5x^TsrzKUK;)*|KO~W=v3&tc}mGr4#^|GW%ld1Gl zF>MarBI%5z7Y1O-rD3)%#a)18_HB<4_>NXluXTuej%VG2$zsV7`d z`xL*9tAPBEo^X$(IhPf4E)X}oC)_6KLyMm9qkp9BF>^KoKy10sn!?}C195%MWJ>p% zYjM|Ti@jNaS9+v$#WAwpyZ3s5_pb2XyHTi$_s!)s7XuHxOxcn8Zx~Z<2)GEGGS(v+ zop6;Ft#?lVIICjr7u&1Y$R_=!{{?tGBzzRH##sd-19p;0000bbVXQnWMOn=I&E)cX=ZrgL_t(o!|j$$Xk1kk$A9O|BymFhh$N{A5fd~jHEv{tsVGcA zqe4~@MZ1vNjiRmM2S`Czbx}W{L0i#{x^kqUx>3-IIv}XvtkP7Qm@**dp`d6-2XZE!vFGL7iqPa&*yzT0e^xf6|;q(NY@NNu~$x04xK4sm=~yr}850=|(P){@)3_2|TJO2d+`$ zmd(r4Sq9z%-olpa+rWLQ^DdU;k{TW!Mh(6IZUK%1&j2q1CxE=3aYVfe+I<3C4&0@_ zLSP?IQGXx%ot`U0*C;~ZHsCYevG33wO_B`MJR3*iWncm*DSv8!Nqa`_Y(nbglxsCY)SpDdRJn5#%|4`--08x?^L2T#1m*}!;TL*CDIO^zo?}8P|0>Jwzhk9{Q|c0 zEdf_6>7LawKov{i?>sV6EEZ$$g0yB~5;&=Zd4C?u{HKBY^?2fB8Ted@_Y-hfZ65-r zJ>T`az_*UM7p@0Zf!BbCy(96Pm6MdWCRhT$ps8OZ<|1+_ZxCH{+#yyP?2IuOV+@vPo!DD&l6og>{T^rm!u9%7 zz<+KLsaC7iLZwnUxw^Xg8(=b-%;3Plzysag-FuBO-N28)-N2uo4-#b{21Fnt5paVs z=9Ptog+ohAOSN*j{K)$H`mF$6U0tU~Mn*mw8X5{lM@L^3k(YrvV~ne+EniZJ-h_R9 zeUi)NQe$Id;o#ul;kC83my9uyhy^2X0wU>21%4kr4s5e(qPAd*L9r6cF8FnN7-!F0d6bX&49CU<$w7p z_TIRcrgBS~fy4k}Kp5aE9bfe35(nQlfEWB?Slg2ZS4oxa+O=cmMzZ zC3HntbYx+4WjbSWWnpw>05UK!GA%GUEiy1vF*rIfFgh?bEigAaFff4ZT}=Q003~!q zSaf7zbY(hiZ)9m^c>ppnF)}SMITkH4FjO%(IxsLgFf}bOH##sd@v-IclPv`?RzV_h delta 1160 zcmV;31b6$=3f>Bklz%QsL_t(o!|j$`XdG1($A4#M(wd!4Ios}JHs5S0}* zQtX3PL8OA!g7qWPiXU_ze5emD^`lsgporjuAE;;rkr4XeN+2jIC~7N)mbHqIh9qJ- zVcX2k^U-Lsxtt! zTCH~gnVQyBfG2*aX}NTnzNlo5TvB27Cg12^`Offv*NOw@u(|-~nJ8aEVS7 zN1y1s$pjT=_eOX_3>?)FsiQT(xxhKju95+6RKFLv57-KP?*kVB z`&Ah`+hd;q2Q-&oDAA57M^>xjh7v9S)&e&vcdp3nihohSS8L2`ec&+g60nuvs46M@>tx|x?q*X8td<{$hF9YWTPXL=awX*gA(^4*%Ei1=>M^!liJfbUm z47eW{$`G=h*f}%6+rX;|^fh3E&Usz=CSDkZmcbLi<-jYz84{TCJ&7oVP+n}72b78a5yin`tj3!MO1!>Oq$)8F53!Z0L` z~sXtVD zaozP`SpmYavE})h2HilW+!XM?2OtN8A-%u?{N?=XIrwP<$N}NXX$L7aB7yFgGnTF;p=#IyE>tGBzzRH##sd-19p;lkfx=8Z#|0H!U+U aR53F;H8?slHZ3qWIxsM;u7iM+Aq6qMa2ufj diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_wifi_2.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_wifi_2.png index d0b548a44f826ea30cad4450ef4fcb50355c1bb8..34c916d476001319b4a908c5ba4a5c2aa4fa4acb 100644 GIT binary patch delta 1290 zcmV+l1@-!t3#AK?lz(+eL_t(o!|j$&XdG1>$3JgoHtr@>LlbBa#Dv%;w0evFZGYyBwJ41Omw<7gOV)ksL9!478mb<%PL+<9?2U=-L*h#V z%8+C?@E*`3-+>jS!`1Bffh8ah{4FxufE~gM&yv-~k$mp}(!i6FK1l5!;g7J;9DZ-LLm<{iKbzya1*);RF9N~KbUm2UzgvUwhORw6wF90b}# zdBf&q$>f1|fKx=}`WEnz$V?ECT)FM-?TEssz#iZ<@H}u7m;zFA#+phMZ1yPNX5c=t z9LI4Kpnc!JSS%L5DHIBqf*@D{a9#J-L?Y4M*x0zwb=^HmDNk!1S^+pj zrCP4`r{JnKZ1}KOh_p>9g;MIu%F4>v+}zyz(|^;`ivt4#w=XX*?<$o_tpKrDY^kNC zC6~!$ej6Md+}_pIb)dPq`7p3uGE)!&e{GSGOeRzFF7PA^LrST$g+gH>o6R06m&-eI zx!iNBtE&$OLC{uot>Sh;_>*8y}iB1nwpx9gkktN@S$b9au?VJ3<%Hj zRDXAOx0B6gJ7;EQiurv0WU*KrR!W7!0lQhP`3F=OhN0G4B@&6Lj*gBOQ>j!#PfyRn z{QP|2`~JEcaUFn6CPNs8q|@nGUteEYYkgcP^|Df`WD!bRPO-q4JspN&gVy?FEEYR@ z;lhR3@bGZCt*vd%M@;~B7Dh)$)#T))N`I%*dTD8C3V4jD;l!xl3qm1U18^>xOb+$; z_d6paBjLov#K!*v_L!ZWwf9Z0KM(8^LY)E50>8`tZNQ^M9j_7i4!9rq%d$Z-nOx_q zZdbEFn6%yr90y*Kls^I7Ei&H&ABgO0z^g=8@Y-?Ja=sye8ksPS>KO0}mHNh-pMMa5 z<}RrlxgA~IVJX^;>ax58DtEpiVa`(D)cK|vsF4km(h;J|%lxExz+s{r&H?mhj<=Kn z+qoFj;_Ni=y39SIt9M-HI+;w`$9F?BV06rH+{Z*^`5=`ak1eJCngP@R5dzIJzrrTv zc0&Nv0AY`7c79y|>VUW|=K%i#k$(@h(xl0l(*OVfC3HntbYx+4WjbSWWnpw>05UK! zGA%GUEiy1vF*rIfFgh?bEigAaFff4ZT}=Q003~!qSaf7zbY(hiZ)9m^c>ppnF)}SM zIW00UR53U@FfckWH7zhVIxsNtvE}gq000?uMObuGZ)S9NVRB^vL1b@YWs`da8%z>g AY5)KL delta 1253 zcmVSL0&p#L;3i z0Qr1=;{<9zJ$Z)qhIp zB=9qE3Mki$X^E(q9b2|ZpcCi^ZU?Rf5^QXQLLd)(1$+yXVlW6~fvs%>q<}|&{lInN zs2sbN-=+psIe#+%cFFqvz%=jy@FB41lvewhOh!pCA9x)23>W~mI`y;D2KVbsuV#%U z*$DIkdx7)7G1-i=BDqP}-6H=(0W%WRReuPak@=Sd+6-(1nw+dsL)?gc1b7J82OJN8 z9l#MWhE96y6JSbe`HcwetY{=DfzOHHE(f*)cZhawsDH_d5yCeM=B)uR3%m)uO7-ko z#eOQb(^O8t-9QJhQ%bZ+2$rdwf@$CfU>tZ0xC(d{*u(0RH4IFvY&L6Ec?ft?jN`x) zva_dwhk@oALDn1A=TG1x;2k0QF0fmC-V?nkKaPWvihoAAP71<&$|%_Oofem6cbcC z;|iXFf3;z&hYnHcW-41=ER{+l#bWW}zP`TY=6~kqt4pQQ4y|>g5Liqmlc(nA=YJg= z8{3jjr}re2$%Dq2Mv413a2IgY5hMA0KK3pMq!j(YmthzVPfkw0l*{FI6^q3KVHn;c zfmaDqDOCu9;BYFH8W|iMJkj3X{&FIbcpi8_^kidK?*cb~CE+BBS+Ke&E_x-O^snm0$qoby&sp<6c@^YlLUUehZ-tXk|d3t+$ zO+!P2%4V~(3kwU6Mp4wSlsfOI-GT=)m1|QFF_XS9#s< zftHpQH8V4#+S=N**7^(Jeky%DLH%A}M1N?TfYDqo*WcCE<+Zl9nyIO&wZ8}4F*G#f z+Kq_uh=}tn@Ch&q{2_i<0`~zAiti+FC$Q|qAeYOn!t&z?OiWDB+1crqsRVonTtP*g zN2%Oy15_GS0(hTF*V_gh1b(M_55$7k%|M+@*hcjVFeLT18nVA%2VM~0l^#$J9Dia& z=niM0+o(>+GZI1}RZ&hk%hv^8Hv=)*u#M^|Nw@u24J7R&)@ME74Q0Rumw;Np4gs%G zJ%+;q9$0Xve3vu>c8wA;V*%2*i+Z#|4956oEP< zE(#prADZ&BeG(#HF8}}lC3HntbXsI#bY(hYa%Ew3WdJfTF*7YNH!U+UR53F;H8?sl zHZ3qWIxsNY^E*5M001R)MObuXVRU6WZEs|0W_bWIFflVNFgGnTF;p=#IyE>tGBzzR PH##sdt*(QBlXL|!kYhQ( diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_wifi_3.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_wifi_3.png index 058bd02a717dfa97631562a0a3dfc9bff49bf298..2f7a885fd3d93a80b1f997b8259afa47391d83ff 100644 GIT binary patch delta 1316 zcmV+<1>5?}3)Bmclz*g2L_t(o!|j$$Xk1kk$A9_b0iFG3rsA9?# zELw1r5sT>}pbHh-3RY1nW);Eu0WDUGZd9_+T1m`8L8`_=LKU2yHPHmoBA5 z@bK`t&VSC%n_6324wqW zPJfoSV51{rH4_sP#g>*9nwpx*b3(yV8}9Dz)(s5}#u&2$_zI{O2h&o=9}%_O8>O~W zvVW1N^Zfx_59|Y;l{LU+V7J!#?DX_>tf!|Zgs2^t>CEMFZW%~9W`RCQnCFOQz%#%e zVCyRM=YcPQcR837`rSF`^9a0bUlv{&$2XnkR=@ z8n>%P?nk$(c#7pal*kYk+{|}LIp(Ra>wH}Xs<7cG-A^>U+($}4)Oe1$GwV6t5Cgt* zF=)iuJHQ*V4v4zsFA3RzoTw}xV4ZUN*8r-3u)uY)o@SkLyD9*x zfbiuXJHH|TtAMy7=Ky~L(q`00UUC;v0000bbVXQnWMOn=I%9HWVRU5xGB7bREigGP zGB8vzI65#eIxsaYFgH3dFo5h`O#lD@C3HntbYx+4WjbwdWNBu305UK!G8ru}IW00U aR53U@FfckWH7zhVIxsNtvE}iTn*}jpdTChz delta 1289 zcmV+k1@`*X3(O0Ulz*H_L_t(o!|j$|Xk1kg#(#6~-R@>d!M3J}iH6Ne6}1{@d?;c{ zM57da&{XiDg4Kdmqg08C5q$8)pvFRN1w{l2Dp;`!(udFoQwc@UfMBU&YuQ#!Fd=`C znCx!u-s8ialbmjLn^^m%1DD**oSE-CGvAzZ;eY$Dn_S4*(SOn5t`op3TVkr@iPUER zhK7b#PoNCc)4!qp=Y^7$#RCLN!V+2*FBJj>@PU%E!vM$tn}O?qX5exlrT#oH37iFf z0!{!qV4+%0OGGN{*s@Im?LZfB8*nv{V0E?toB@V_!@x11PyvHL18i?gz-7QAz#iZl zT_}z}(sxq^Du2$C0It>eJ-{j8UEn=n%4u!nXEGVlWIpgX@G-ChSnu@DKBA=kDvwtd zV@YlR?gVxLMPNiXBUU6gDZ88Xcc@@SlX@a?5sWdRF=pHtGYI|Locz}oqQ52ml7K?}H=YQwFOeT|Ov)SxyLqkI{l}aT& z&olXaK0h`#ws89N>2#q`Xilfowo#*Q7>o@1~`Mbg}+!{sECS%NcV2u@>h)jB(cPa>iZ&In$;KanliNV3a zE7z@C*MAcP!A@h0oq|X;@*>bD9UUE3l?Q=t-SOb)=;#wYJw5rcv9YI$#p1)pn0mm7 z?L`$caqUG!{zxPe?>9C!9_a7yU(?jo^p@v&+qE@stKP)VWHJB}hT)*^`_~r=g*S(X zho9;0?tWovYU)s_RN5vYwIULUh~0rJvdGz4q<`xKSX(NUZk?H#+1uLMS{fJ_*wxtB z_*)PJVH8EXMI-{mwm@21TKsG_8v?Heye9;fj^VbpHZPe>M#h+}s?u5on9}k20QeKQN~dRoaEk3F6~;v7EiVz4kTGaqI#<1@-|i5ua>(fqOKudqP^91db@# zAAy&F=YR)*Lr!k``udDRDe-kcLi`C@Sv{!7Py00uu=`&_HCIB4-eDc-tM-k0DpW% z{1MUx94Efrb^zP7D(?UXfCl0T_}$rkMewQ>s8R`^Si!FVy)4Z)&im`c_ll2m9ajT~ z3Lz=AvNyQCGcF?Kw^P%hBztT1l>nm`2-hWG;(V1^aO?UE3vK*F_u41Q4r zs*t!SaDcx7;se*^&8#GhlR*U+OEWDnH!U+UR53F;H8?slHZ3qWIxsNY^E*5M001R) zMObuXVRU6WZEs|0W_bWIFflVNFgGnTF;p=#IyE>tGBzzRH##sdt*(QBlcNPOw~c7J diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_wifi_4.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_wifi_4.png index 21364beb0070f2d12d2ee37585d28814d9bfdb9a..f11cc088aa436837d35edad0c7f8fdfb87f2b1d5 100644 GIT binary patch delta 1034 zcmV+l1oivL3AG83lz)XuL_t(o!|m2dh@3?f2k_t5=@}&i6&WxHqT))_i?k5MOF&V< z(}+R6=|ROTU=%^nQ#`~4GN1;%s3(_5^r9dU^&qHV-!y6_1RVrnAR#ImW$fbCw>_ML`|&WY9x&Vu83j6nXg1=u%E3`b|h`4axYT8W^W zf;$_+PFV?EwD1XTYD#R~ja~Y+n<07&FW@Js0&c}dseck?0`e*XID$j?3Ll5fi?IXu zSzTFkI9#>c?aa!Tuq6)n4KGUNx(Bz1%&QW~tE$~@m-%@o zVBQmm>?nxUiyKU`))cAi1R77^LEM4Ok+Ksc%#EUh>+xaSxFk_d%_InP3!O~jMcf$# zZ02+{3xB1Yn@(}-3};!c2k@m-Qon}Wxl+%#5!YDRf_tGq9k*WLuVO_T&V1MyL|PZ$ zj|GfxN@Tl8s_mILKPq*;pK-oKx<_LV$0Y)Pp-)DwR;zXvGy{cM>M4F?)&B0Qrvng4(Gt?M)|n+KqlT^+#QCe46lS`iD=W(6r9!XgrnaB zBZA1ie!s-><5Gv*hhO6SLfj>hZ!NyYE%?2#VIl--g2bc-~+@*|}wHJ-UFGtTiu2$aslU@x4#jOSzDl)B_x?0cQ5>)qF5Fl+1)~uZ5nQMX#VCl2kc9(HP}~S&0)_;fQRqe_O4_cj=i;4f z-&DV<>cs5y!lPcjbMN{8d(MCEJ^VlZ>!TQCY_(eXyaFRVQ-7*He!5|+pxtgSo+3J4!kji)TsCGnQ>A%}<0+#na*Y{zyj`MH0z* z!R~_i-w9$>5X;ry!LRZB5g^O33M(@b0;HSyT8YiL1?%x;iIcHCjGZhz=~pn{ijP8Q z`$8j2!}0zQ+>uy~OG7(nho8I>=5T&sURYvpg#0PGiB zct3Jqsmpl5MU+B*zzAbNqFzz`XDi; ze7cqd!kwCwGQz$&%^3!~s0ifX;jkNE zThtv+D#J|yUMBFK?)b1pAgxK|`9XlLF@L1o{xyLH5|z4vh2IP*x5Gl9fkZwI8vKw5 z^dWIb;P5x#8%g&}6)%ne001R)MObuXVRU6WV{&C-bY%cCFflVNFgGnTF;p=#IyE>t zGBzzRH##sd-19p;0000bbVXQnWMOn=I&E)cX=Zr9@^dyroF3}N#aT#$R6~rhSQ5aEC zQ9MKx%|XxF&9*o?I$GCDXmqHQ`+xCM#99esV`IGo=m^?~ z-&UTS%~^*%Gy_Biw2yu2Vwli}c5R1E4C4%(6yqTb#QGGrV>343JN#G!zK_ogBz4(w zM%#}Iu^boULRdDXp^bC!AuedD*!m0}H&eSgMXT{Net%L`z-2gJRS83p@)Q8JVaIZt*lkpltxEKGb^9Row4{n?uebzS7%v8Z#U&2ASD15bWGq#0~TeDs+!`vuZI2-F?$90GK zXnM&&yMJbrNj!n8@n!I*jj~xY%4gFuQ%*UZ^>Y0VpQ%dfx6nI8)iahw7V9mz2>W?K z)V<;*_G-hK59bGw24j9_km~gy+cB!z9*XrHs?PTd4hz!V7h{-I5%|*@8I6sNb-fFk zk%i@08-#g4#r%74WgJg8nZUb2yzj9xY_G?fnt$(^yP$5}}aEdt>p);zsNE)1HvhqZn6~xvKX2lIrPASR8&t+B0%ZU+aYPTJ573txQw9A5oTt z6dWoQl14c&@Obl=?GHCMe%9CA_(9S5b${EOZ^FiG0J7oW+BIddXt3NpdXh9bIW8p{ zjkeTiNsU&FrOC++QLAq1KB2*=R2x<<8mG4)@ufO1}D%3 zM2SOVyt6jfbMONO&;>+Y4mkL~010ZPCaupPJn7y|lDe*!oL`~v(8`~cK| zw4F~6L<&~y(QXE=0d@k{0T%*&^d=1hPz62)J_qUrF-Xk7=XM=93z!1-02kRr3G~k1 zH5XKZkpLH){eK={5qJ}L3s?zK>*7+WB<3sz9t7S8ZU?pm`SZg&kK2qWXX8N*0XG7Z zz#8zaEk-;^E;n>n+IPc(sW}bV-vEx<_|qH>0OtTB!LE`6uBJZ#+zadmzDs~npkm5K zus!|>@T28&-iUVGII`IspD@Cm0c-^(j60X+c0~>F6@M1<4CO)~;vlyQVur zRslBwF@79cXV|0w!y){yH#}n_!_vLjIct7n^D`E z4l6@M9I#DQ_bn_e>|I`7j-7LNMNu>ch;!~x6h-e14-cnfV`DQS@*MD!s`{#Gdz0$v zPB=0$B2!aS@x;VLBT16yopaBqsuPh2z<<9-QS?HZrcYNYm3Ve`)-5e9b-fdI6%V3X zt;VWKnx^+?CTpsi+E`OnP1AHzRhgfkk8`{D&qY;H)ySTY7zhtQRdqU?^RJ3`XaN#? z&S+Eihq}tGBzzRH##sd-19p;0000bbVXQnWMOn=I&E)cX=Zr diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_wifi_full_2.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_wifi_full_2.png index 802634832ffd006b731f46dfd0e5965c499c27d4..1b025f26d1d2d72a95f5e1087610bb4c563fcfdb 100644 GIT binary patch delta 1260 zcmVF|PF_a>ev}oc5Q?MjU zqESmoaoe9c<3N-;fzv<_aHo9ttOr3M4isfQ<~vzBfuPqdwl|8e z08oY`jlk!?O8M_wyL7mg{T^@$7zVD0OgXSnc;Q;IfpH}N7XlvxPYcQ?Twn?CgDiTM zGsjZ=4fsmrhJdT$s94t1zzk4INYJ&yokp=^XMzvh4}W|Qtab_6+6{D($z21{Zs0@U zJYfbr3^WsFLXAMKB!Cg%ci<=Bkl0)dybN?OH?w+xL6t}(3@bkYHppTh@Ph1gBd{J= zB+7Y;$$Ert7D`qaw3|kmM>>S67E990Zzx?Z8XGt3WT1kTVX*WI>@v0TsX+ zvE>2J0Dl+7#(E=X($EwN54acDFFUpk%F!r=Qgd<8fS&#FEgeJRVc>D#7vYZ&XxCP^ zSRS{&hs8rVVY>P=Csk_lsG7QZn!pX!WcyQa zO&K!uDEp*P#proq!9Q=i;N_b$;e*d3JPr~wO37F*->${fAjfsdYOB6{6&?Td<@@T z6iGkF8P>&R-+A?w+v@ApsqyBOTlIqS&1l^Y?6GWTdV#G!8$>Lwy!sVR{MRE(FYh`$ z<$qpCy-#Xt9ZG4GGH2^&xsL$~tu+xTchkgFgUaH z9yQi=NJq8uocDprjE{ck|x|>~Y`zKkao>>-&IJLa5!qUf?fTzYTbTu;P^h{lG)Ogk^(ct+j;_hzP=D z#vQ;rz-t2cQ@~v!a~$|mWZwhcBy7P(H`00D03whug=#DC2ATZEns-TnrkCX0xqrR8 zoWoMI3)LBU`(%2)A?1LjUeI|#1R~HdkZvGsUgnbG0-FdsoC5@f9M1~@+qoDF#MyS> z1DU&ot+z+!!Lim_`}l4u0!GJN05UK!GA%GUEip7y zF*Q0dHaajeEigAaFfd76yEy;=03~!qSaf7zbY(hiZ)9m^c>ppnF)}SMIV~|XR53L= WF*Z6dGA%GSIxsLe0Rx4TI0Z55@;#&g delta 1208 zcmV;p1V{Uw3+W1wlz%x%L_t(o!|j$$Xk1kk$A4$uOe$t-N(07)j+06(8tWnv5`xM| zu%+lC#Dz!~R=X&E5k&=JA;E>?CTeg%NVL+>KpQs(8YD3? z$(#3%i#gZayv$6K;7$)*?#w;+p7THF{O`FB{+Iu{NHb-jP=E0E36M%`(FS&6(UD$2`B>J0&8`AkhTM^wh^!ocpNwh+-e)e z)5rE(6Hdh&X@B6Loj(c80UrP#0!v{jZucHKRWJtH7d-RWplpiq z=`K^d0Y`v-pvy|sVgN&Gw_pzV0hk2d0&WDJ2ad7zW}N}%q);e0R=x{7Wy(q5NsH_m z;4z>hLC8kp_WTZf1iWKF-vf@?p0ma`3G(^8WAG$!JMcE}9PkqGIdHGlIA-G(_#~^h zF2G*kZhv6J^v8kUtjs6eKGz3aqo`Va&KaqaBnqS^h-^-Ts=DFooFwrg@Br|m5j6tT zG4`LnZS{2P&Uq@8N(m6JudmOntgL*$y1IHH48tXWOeV8Go6UA*v)TTZmXlow<#PFDRXwPxBO>x( z6h-az2pI&y6;(YaB4Z+QzNe?>R9joyi>mst@yXfVcnf?34nzuFjkM0}{uvs;UG*FkY!tUg+!V)4{>P%QG`GQMFoa{yaMXs>=BI zct%wT!|*jTx~8h3szx@4x*^qst`f(whGF=Is!}W#GggY^b6p=qp-^CYdRm5thEm4t zFU--Js>a$_V%wvtS_Bvv7)X`NWpQ@5C4b(P5}UKC`kfhGQPs1mdPG$Z**L7K@0(6l zby`)gOW3IEOPYa5+>9>Z6txBw0FO{>&jQQ>pV~DW1zrJu_0DeT8@tIw+J3)kQAS?s z-S5|JPjI!!our#7MZ_8K8`XK6lOHE3YOf~V+U_E6k_|`7r!8XtHjMat{#9`X&3}O_ z#i&<;)4t9>b2Zs^emsNjyDtX5qE^PEYMyJOBUyB`tJCSaf7zbY(hiZ)9m^c>ppnF*7YNH!U+UR53F; WH8?slHZ3qWIxsM;u7iM+Yy~mrNi|3S diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_wifi_full_3.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_wifi_full_3.png index e19e33926664b68f6d9d4f3dee2dafff2001d960..3036c8698afdda62f1b6b5295150f4c77dce2955 100644 GIT binary patch delta 1301 zcmV+w1?u{k3&jhNlz){;L_t(o!|j$^Y}7>*#(y*W-|fP#6iO4Y#E2+r5Pc9(G(2o0 zL;>SNjYN6C;DZvOCgLp^eZmC1BoI-8FNiOS81+F(v`B5DQIi&o5pNJL#Moq$mU7vx z>+b$%e3&!Ku-&p1dDBTYo$kyz-*>(_mxce=e|@R*9p-Ym@PD2Hblnv@jvpgu7ND=M zZ{h^%K(+j>`Y+Gttj-=F5)z)!7<<*gPyq=b4kCcT06!;GK zH6T95rzfHsMC{onfh9l}&ws(P9LI8p zK%IIuwL}}PpMQW|!0W)N5YNA{5u**jkHB`|8u`8&d~hnLBub^u`Jj@4LZOWj^|p!c zZox8u@<}oe*aIw*|KlJ^4N9YwP_7Lz_RdHmtZR_YXnbt0%QvIJlJUC>Fsexj*DxQ9TIG*X` zR>}!l-$Jak9%})GPULOolHKJ+*&Q8iDqX&L$xaffJKU@Ank2bWxm?b%EDa%!*vdTtL z#S?J&%ho1Jcde}@p0Xtd6o=~M26>_Ga!o~Y&E z8!=!bZ)B#|1d?;}+mL&TYX4tu>HJ4CX7< zIe%H=wo7YsLc!TKTv)e5+tzl2F^ho%Kvn=oq>kUjwcN|3w%g@=7}xoJ2ikzuz@xGU z7zLK0^%v^YP$IjlI|kQ|YjQ5w|A*g3QjT4~yOJ=E;by=iz;a;bIP&L#kANM(_rPYc zT?M=o_~y{cS&T{LfP|O*O5ji61>oM`Nq@p-6(*hv?(72|2U55pRU1Se9LCOfe<&T0 zqrgJ~Ugqp9hyzgH_rtTYM7;s{*%J$a!${9rbt?G8+Xvhuj+2aE2^QDPQn)GDC4tnE zuAW3gM|C7DE*X1pSw0H9CHXNZ=N-V^xa6A*^aD$Q(}52rq(B1_zEfTWJO^wNnSbvC zu9rLC0(<4|^T4yX5$tUnf}fW_10@o;4BiYpBaXx05gIp7HgR^`jvILx-MA|-ti7Q` zhN$3YzE8@dfq7H#rV2Dr!%MmzH@y6hlnB>&w);EHfG4Ct2rdqdfV~R5DEkQ4CAZ7o z99lUme7=jSfVc7G`5~?>Z>LGQ{eNo$4Mh($C3HntbYx+4WjbSWWnpw>05UK!GA%GUEip7yF*Q0dHaajeEigAa zFfd76yEy;=03~!qSaf7zbY(hiZ)9m^c>ppnF)}SMIV~|XR53L=F*Z6dG72p)H##sd LH~|BNlV=4n`{ZWD delta 1255 zcmV3PI_@k1mQ|C|X6_>B5po5mB)sLIp9glDcqJDj1>oMN z@BLlOed+D%WSRtbdf;;3+;h)4|MNK){-^&sStDkWB;h>+Tz}z;7SWS=o&bi1hL#SX zVAT1&njbb&R*(mXJ%}98CGu8B(0~X?0}o@M1K0@M0<;6y0L`913ycG2fFFSo;5VSM zn9dxC)$uq-y9&4y*bUqTtOJ@@8dZQ_fg#{1@C7he#|E(%$a9+lR{@Uz`+%GLMGN?u z|5m}M1*-|T*?-IL1AYeH1>OTDg4AYFM@NTwWfAZw@DXqyaCMNsd>Ig%SyXR%#i2|N zvJKb{JOs=G!`>Ooi=@k=>-N8^-k1PqX3oqoGqNnJrfGV%TCJYVvTPbiopWoVD7r3= z9zJ;L)T!S$Z{EBS*a6%QZ15>61w}XRbNvl)Y-D6) zq^qmz`hV{3?q^$DTlZvH7D>u$s0nxxIABSV15@VNK**ohM-9+NaH=}9wtI8D=Q z0XgRk!0h4?QgaeiBa5PFOwwU9d&A61+qP|ct5hoO%(4vNkgqqhBuNZlZf?#sH#ZMV zO-+4v^5n^PvMlSB^b8O?=kOrYI+b6qBO<_gV}Gfcz2=;IZtK>qds|yu@2ylS_s4Nu z0gNO`NRq?`1_tut*^;K|pJ|#(QYxt;sp|Jkm#3^Clcs5^G)>1ObxWeZzdufr#F8Xg zm;>tU>=eNC^mJwQ>ecyqUcn1}3w#fJ4gBPL8eb0^e0^-<;t`y=S_qqFW@aiaEiJ5H zzkhz=f5PCx7(R03h%1-NnOAfiSmO;$`1bh#m;`R{-P0EEe*yjgt_1b~PY3)N;2z-1 zbLY-QJv}`s6#f^2-py07+lTa^q!vlHNjfa)d=Tm)otN~!q%D%JkkseTdkVU#O92S; zmpdihC~2@@G|zLmvcjEDB(3v0Vy|;?<9~%#LQ<384|s)hc~J#MbE+12v;O?mP*-T9 zA&4Lf&VPR#fN0bSnZF}RN4>0DlJ^ZjAZd-Hue{F=`KxerhAR7kHW4!z7ozWOA+~5_tu`;=N3R(0}LO zeg00g)Ud~mm}ZtMSQs3@4}LE`P8@JL#J^(C8$=^7$|t@k z40)l<XRK)e001R)MO;{PWMOn=I%9HWVRU5xGB7bSEigANGci;#GdeXm zIx;pbFgH3dFx>MyJOBUyC3HntbYx+4WjbwdWNBu305UK!Gc7PTEi*AxF*7G;N8tbf diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_wifi_full_4.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_wifi_full_4.png index 28c0e282183394025755e3d72aeb98274ad42723..de000eb7e8118c397e9befa0037e223f9a61d111 100644 GIT binary patch delta 1034 zcmV+l1oiu!3AG83lz)XuL_t(o!|m2xh~`rq2k_5-=GmofLz=QoLSEA1#!yRcwg`=@ zk!`u-0$G$LMO>}4Udj|UZgAygwcMD}3Kt5+TzTEuHYSZs?Y4-e@jTDCIKSgL^PlH! z*WPjJ={fz+@8x^G=llDe!~f&IKB|6;6Eh2?U4@aF$#Rc4?SEKXhS|yS;Q`c=j>La6 zf9w~m<`0bkkpZppuevx^7)7htVFPF5Vw@lIF`O9df8rqKF^8}4T>*Sm%nYRJvg3?) z4X(lzHsgZ$Hq2-SkPq=TKEhI$9RC2wXWPa}xD|Ke!dl=~*eKYkvpEvGEyq5*fS2)0 znXj6dS*VH~-+zIJak`F(+O;J0;Pp`+T?Ujz{1YAzFn^)S3~a?fB z#)wl^LJODSeO%d))cOo|7POCs!)tgN-%Ay64K_)YFn<=uRt12A*pE-~Uc@{L+i{E4 zl{Jk6)x^v~R^@Zp7K?jvSM2m2+=dO|+_!lZHj8)(&r0RG3)h9si;~EzEW%9r8$t7~ zU}U>a>9u1A!;I15D4W5?gSZ{nV@q9xS=~)sikaAPDWZHd!!Xb)e6olaaYG2Ok&mNM zIOVfx7Js|WbY?-er7rggzQxaBce2zouE0fBw%~U7uZ>-=$XBtV4QD-U3L&kJ?}vlN zS0%BXDRsuNSU)6nz8`R^B)a=z4o4&bf2<=$vy`fk$-eTQT1m0P|fk@J%?P&nO(rMzt^gTLGx4Bg(nLePHr| z40K^5Q@TyMyz-l`AvK=qY%?hFPz;pGBVap{J&&hi-jKTFbj;hcljHT*@o{4y`{eR` zM=Hx}4JfyN4WJ8%WtVwaRJZ;M1MJsI{7gH=mFxGlEdHhN;~Kf8_1Rb001R) zMObuXVRU6WV{&C-bY%cCFflSMFgYzTG*mG)Ix#jnFfuJLH##sdNnE=*0000bbVXQn zWMOn=I&E)cX=ZrEg5kypM zQwU<2!a^}3D5g}@xCto)K^s9uun38TAc6t4F=8Qt8a0q22pVM-aii?+{5%$O?#{{0 z%SO9p$+;Ur+e3nnl1}B*O+e18PpBIrXH#0R6LCiqgM7pugYjpr|c{lHg^ItQEz=T0Omi3>?jM=w7PqFo4% zYz*6_AlxS4M&RDy&TWO`2}mzME&z8G4m=YjT1jQ@sDE#(cc@pXd({`zlj=EjG4=mK z?449!RPT;{?^NHaVy?vV!NP$;zE@KpKUC+`>(oQhyPA-rB=`Ge^?LOd^@C*dTH!z; zVWZBf$J9qdIUgh{(oHv@tU|PUzgv;=NW|Q)9?v8!EokBvpzczCPDu;<+f!5^`xG$0 zsJk89xPL}nW$fzQ4l=b8i}OhC0bc{3$HeGRAabIsXf3) zalME{uK@1=e*!lEb1{yK{w(k#a0T!P@MO~e4crHOmPYc$?}aE0sTKR8bVt=q>YeJF z>cSX8E(Gg$sh6vVWB;Kl_V59oKom~Q1%r=QNqY2&PtA}D z#6_xUldlWF2oURL{6DPjmfdptGBzzRH##sd-19p;0000bbVXQnWMOn=I&E)cX=ZrhROxjGoIF!G%g zI%e12$im9!{^?obyB1EyOMXsrDt}{V-@aY!m+!SSXl01jRMX2(#J<(q$Clln6Pv`U zxwN$U_g)q$nFMPY^M_T!^=jhUQi+LOwh5hxnFR|RZbEx9-#jBce zkN!lznfpLAcHM6!#*Zw{OFndbF4*77s<*i0hsg%}Nw&p$M+j0;%0>bl&Er8XJZf8e5rKSQ(iC ZxmE@ScRpL&Ox}-EdhNRAhRGio4FR_YmZSgx diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_wifi_inout.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_wifi_inout.png index a5864aa04508510b675fe87d5626d89148b821c2..07ebd9c33e60985301da24b65c7aad4a72d26b78 100644 GIT binary patch delta 456 zcmdnUx`=hcl=>o17srr@!*8!`^b>UyIrj0sUPcBFudL#B(~Rf)n0a|ajvSNl&UQY; z9B|=Qc1{ng%9IamBDXKy^l(}_w^!=@UXg0GoD;k^XSQ5;bN%g`b2H!nIe%tm>Xj9N z{cBdG1l`{D_oryu1(UOfrC;dQmH*pw#3j~g!S)YoWyv3Z9pwD7sXqRYi2TN8Pn+-= z&m}Y!1CA#Nze$wMzqC7stC>^h#6J%Cq&GtAKbTKHl)xltkh;Hd`>tF64|4C(TWD~@ zLBQk4w~foJ>->}7Fq}8Yy!rPAecXTgpIgpLVBK$=Y`4zKEU`6rjh;e5 z+x!)?md)hvoE_a%!nEzfy~T zu>P+)?{UO+#`K*Zz1Bb8a#F8QsBP0`eWMKv&Z|qg*1Ifr>)plJ;*ufAIH#kSfnl-& vlc=q3aIsWnd8R10U=qrmhtnZTUH9EQ9Ve;7op&qv5 z_6G!erujDc3go)oHetPd%Y~=ORbcj}_q`A2b|3z9=uY?PX+O7Czn@cm?&rPYcd}_` zXO*5><<)a*o9ylI2hcFp{4D&vP^Dv6%YhRgL+@}s|Jo@mQJ=d10N42f;nNb~ z5=Bg!iUIALRr4Mjy<4(1hHEls&dGn8a!2kcu6tOn*Lw5{!>@hUO?-2MKUP~D@Uz(4 zqW`1A^?Io@-#Hnk&Ku5i`V-C_yQBOj>FTz(DVx%l)k%1@e&c&zDDqg5$+A6uX7#*v zUR@hDz5IJum*w6g>s2dDCsec4uVl`9Ft6S{=&^C!Q=u6#Ef>QySF8UJ{8pdzZsXaX z>7@ssnDr=29D1g%_oyns=Ez@#MVV5y_x*2ef1>4Aeo#ohfU*3e&8GOLZz79C*Eb&u z-*d!#k4N_LxYPf=6I>KS|Jkj3u=T9=+f*I4D}TiUMx)W@2($nP@xXEd zw4E0=6^8LXiDxRIYKD_F4r2Z?T#fCxIOhMtulN~%lqwVfbds;8052C#uEQ?e5$~7d z9R3bqL1Zf~!teMVpW!3?FwOU9G*T7d!}u`4C3qB%;~IPy4!^=T_$9zook5Ve5;x!$ z+!=&_#2a`Ae}Bf>Du}4+x~>X|w%{2&9g@C|_u{?6%B;eQfT{>)J08Ll@%{>4#y^?j zB(M@Pzlz^*5GM;qna6ge=ijRMn@`qH`nVTIa0Q-<^i*@W6wl)^JQq>7i)XbMrzo&W zsAJ1!F`vXup~l;I3olf4UEhOK*o~zqq)Fyz9nhJhMSo@(0iDAFKE(V0r?EdG-w_LX z9VXL8%XTGvUlmyUae5HUj$#p?XbLfN*N$Sd3S>=eiBv2G=5P=n2H1z6;v?s`%ce-Q z!1E+s42*p-Hz_NdrVg&fF-;8&Q_4Oh>bfrF&%@_f_}*QlWM!`SG0^PKyKq)>n!SX% zx~|8YRDWO&V;sPP*clk9`~?yx+Z*u(9>E8NqnSln_)42SIF8$Jrod>9;&luc@Gfr0 z*KNZY;JNl@e2#}TTl|7RvN%eo<5;+aL-<&8`z`1Cu6iiu^6=Ubwuh#HuOZMPk|d6X ze4lD=yUy*|vE8<6F0bR^V-Dk){Xj=_Ddm#pwtt(q_D*Q~N&=@ex8*{ax~}w1Qy@oP zw|lTnbAnBr?|9l|C$VN**pxmxYiH2ms9c!aa~#p{!r>xCIWoV8W6ga0PPL{M?z&BB zM^*3CG$ngAeL|8LYwrCwHOI~e+pU^HeE=u)I5+yX<>~lI zyj6(nWByysc6+T4_=X8gA#nuv$J_}#+ZQ~Y^&MkPeh+GzP60kl@IGV13ba(nKCk@0 zAm@5DF}(ks AJOBUy delta 1034 zcmV+l1oiv&2%-s)lz(zbL_t(o!|m5Sh+S0>2k_tfNKC|N<5wcsh+tu-g%%H@o5EtF z2GM|ph(a2L6j9+8v9Y)yrcfk}5yg)vHnJFqXf}#G)XGLtF|K&fH&NNC@RWs;X0j=sY}(2Mfd3@KYF#H%qM8P$$S;g1c}(cHwC}fxq(+ zX98o~hNJi%kKlCSD4*k4OSW5I9i1Y7vX7hbI4;KnSVE_d3-K84j@>`kl00k4I3WUS zgc{XQCi7`rk9#As3pm`Vs%inJus4!sOBk$VFVocX27kv<=2%xs+(o>BJzXs0V6fU5 z3VBC!gSXg@!}rd>I*8?NFncP_VryV51!k`sAG$aoW&Tna<#L&e zL<2l`(j}=`9f-BnGP6l}aHUiYD-j)aUC%_Ks;V;lx%nIo-?tV=GVT{IUHl`J%O_Gd zJA!^yRez)Dpw~s9FWn!9a3`(}j2wBr;c#d$7-SMX{D!yjGCqx`kJZ6oU^pC38~O~s zPijEBV^g^-)peah+#u1Ha^YjVf;Z#bdKhm+qS4k@aGg}z`|)1*UdiBDQG>*4D1IjO z?q~24evQzzk|@A)cz5A_JSyD-IU?tjXIDew<9{d&p2Tsfi)}NZJX^|bTi6^AAAO8A zod=qZi`|?Er+b`xCp3L!0;iSl%TYAp~X(`V?a1t-#OQ}lw1;PDN-x%O)jdGhL z6MqS`kmyTu-$zn;F5{a3xdE@^4ryvyS8j6=XpqR|`2~K)^V00F10PDW#H%Kh+a#Il zcLA*(?g(y)wUc;gR`Bd>RvAU)4oOq80PiV&H%u#2N1zdfJm;Ms?|&9+GYv5_5ojTi z?bjO9tP|9xN!XMkDNC6P9R3CW+)tBV!hc(t0000bbVXQnWMOn=I%9HWVRU5xGB7bS zEigANGci;#GdeXmIx;pbFgH3dFx>MyJOBUyC3HntbYx+4WjbwdWNBu305UK!Gc7PT zEi*AxF*7eSaefwW^{L9a%BKPWN%_+AW3auXOmzA E7GK5LA^-pY diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_wifi_out.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_wifi_out.png index bbaeba017598e1723ca54a501b28aeb534d8899c..d8eda8709e94bf371ade8311e3efb0a207df5406 100644 GIT binary patch delta 341 zcmbQv(#tYoO8s3=7srr@!*8$H`yDnAY4{j_NWS#tv9N{j3?_A7;M}-Cj!ChQCG6cH z)`-2|RCElMBz7oAu4qnP`Kn?6*}i%AtK;YSE)B9Y^z{tjQ0&d$(7x_f z_#R*RkD1wuw;gN>Uj37be!TzxFvEBa$Rpl?L4M>Ee%@vC%%sH?ImNolo~}-1_lPz64!{5 zl*E!$tK_0oAjM#0U})r}YhbBsWDsI#VP#-oWnijnU=Cz7yovQi(UF^t#B}*V8RBu?stj~4|lLMJ!DdzAaSl~ zT|~Q6F}n=s(vG=mypb3EHbow+$y-+Yx&HIhR1FcX>Sd=ixfFd~YyWZRDg4gsbLjsy zeoNmgmTYPVr|NY&lSy_*62C)kMsU)yK*RpIXdru z%kM4U`?PCxw_Z4tyWq7|?(J)4!u5^fGRrR**F50$?J0~{RNUEk@dmSBu(5mQdqMRV z&K#T1%ANUZXvlX<``Qn`*Np8aPdqA=(^Vbr}Y{7EcCkz z-EtWi7*tDKBT7;dOH!?pLyA&?G=q_Wp|P%kxvsHch@r8SsfCr18IWsbU~uQNwGE1n V-29Zxv`X9>)~;)An0$xP5CCC~l%oIu diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_airplane_off.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_airplane_off.png index 0d7c75192312873e2da5d30ad711bf0d5adc0221..9a4239bdebac6bd2a42725d2bddc0522cf695ae8 100644 GIT binary patch delta 2613 zcmZ|GYammL0|4-|nfIeShOEnGBzZ1wuBi~?3{4cm#XKTZD$29YnN$?!nb)FjO7hq| zOOc}p-MkX=UL|hAR>Bx{@7Mo_|EJ%lU!IasDT7MT1_1a90IdJ|&o2OQ!59GM=>R~^ z2LP3bEWZxB%&?u1v?2gVE24lxmMQ>9o~7DaAB!1VEDBHcal>{(YrReu2Fhjl4&^~4Qd4QUy7I*t0kV2s%xqZ!udH& zxW1(<;nX5ozrwqZIB+pseY)P+1IDP*Mp?0K`{09)I8~rm#1QQ(rSHKyiX7r95(2N^ z|D(qY+L@k*GDA;`O-ZpHa?4hP3G`x(IZi!{jNad9k{MXq+fsG7u|xbvJTXA>x)F*o zYrS(q8<}Iwk-5RxS-~pm-cpW=W<~zaGZ> zpKSE1%E6}!l0E`g#E--ITe->D(spcE5HyL}B;s|{#T-qiB*d@r}adMlTF!Sr!SbNVDSb%vh2kqy+`X@iS z-&qybz!-`S1NJC(|JV3jxRYUk(6~%wIw$8B5P#^w zpTEW3NTJ=4vRacZl-xBa38!O^(1TzKB7`ft5B+U*mRVBCh?)8Hqt2D>417Xbb8~(} zcrb~MXOg9;lsTqtg2!Gm*3;nvtCpxYBUU zGGsoY4}XiJ5@Sn^m8i+L&*2;Z-)3o+FZ`aoO{$a0(6EP`rfw9w@=54IWD5ylU*SPRv>;f@IV=2do1WhDIA#c)=lQ{J(OajLJZZhz4-%GVB7 zL9s=9MSHDwx=3(}vdF=@6tzosY}wq2Ih)B4n0Lfwxm`?_tXtgj8QH^iOLnIbmZd4~ z18GSR)h&0=5W)ivicdIY%z1QMo5?|}xKV!AM@=wh^^6|~^#+8&DcUH)U3*g2Cp71h&qNX zVLD7ddqKnL{`I?eOt#aN@r##3 z>(8YxCO&a37>s0qO#dCOA*?d)%ecFH?tJQc{m~{HmJo;{I*iAI1zPLE;5v*qPuBsB zEjH(4Y>{omLda~req^)#C}rw4fgO=hVdF=rZFgntuzs51z(*2j=wdx)yP2s&~Qv zoIK~r$Wa|0<}?A)%Y1p=2Q0f-RNE|l?s#^TSE9IpR;m||iS03C_z{P{#ebw^SAFnp z*Gb*pr()GOELB?Zr?*-gqbsbm?x_RY8Q;@g1*T3VniBU_JW#iZ6XMGk4|iFZ-}N+u zOEl+Vw<)p)w5bZ}Z}c&jf#$1~GOyA?)~YF*P9o9V(KJZrDfN1W9EVY2*Su!@R^3uM z#^fVsRac%_(I}ST;YyP*jkwt=E-*eHbxVW?8as}PZ@NlKY_m~2Gl50vHc0TVzP>;f zXoIYk^p3K6=`MxLy2(Ttc<~F0>(0HG++f?L(zUx5%hb`BU*O3HGnMbZjgl^KO{=DS zUs(y#hEBbljNpz1g;p}w#=!&02kZhcQv!{$)n>UJ<+v#S>kUQr=Dk zL=V!QyLh>!b}a@?PJc;^XO@#L7sDA64PquMN&-W^9M@~6>)EM@Vo8|-%7uHezXFs; zFV+(`I1F^H?497l+YPRv6~>mPAWiMB9U!*$q5PzNCYs7zCKT?HhM4Ys|x}4PomV#pOdzHeJ2?N*0v;)LrO}*7WvQ zigjtTXrCj-*ENb_#_0;Ny?k7A#KOw>ANCnEs**PwSP2- z<==p}o==ao2|d>3WKayODZ>)wr>W<=WGh9OH|*^R>|+v)ybmUo&f&gP_rIn(&!MZc z1BILJGn*Q<0T0XKCR02Iyh@|`80^CudLg zVK8o5U<*B$ZfUB~``Mx&I>6vnJb9UIx6t}I6CP{E7bn_8OD+8W@`!>@__`G9#1zAd}1tjLpc##v5%83I7vLM+Aii$Nv9tll2|> PFGvDZ3eC3q5Iyl06Lfe02gqax=}olY8-z6 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 delta 2215 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 delta 2430 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 delta 565 zcmaFI`kHmZl=|JCE{-7;x8BaS^*ih!;C6q8e51yT2`?-dgjmBLM9gXE4p7u{>TG$D z+1SS9@*&`cwkyXcfq3hvON{8$bGOE}7R5{2=)ze^_CK%L%UzIU zyWmVi)mj#x((>8H+lszR-B79%-|%ho~82h%;PYY{6M zvi1M5>{ygpwzy zdRMy3^aCsv@dlq(cG+bh7ub4Eav`lbNnCUZJ|s;(GB5Pg9@I+JFDCeAlnz-xHX$X6Y7Yor-?M?#!uSZ4}q= zx@=ET@{;Y6a*Hgd-8D4Yt6KK9BWIRWt+34AhKrwh*PIAA6%xqtn1O*owZt`|BqgyV z)hf9t6-Y4{85kPt8kp-E8-^GfTbWu|8JPjORt5%lK3m&BHE2O}5%E{-7;x8BaS&lYi%XrEtR7T!BYAi!_Y19=lylc-w}Pqu8_Ab8}^ zv64EDi~0(6O#7Q!_xi4z(4gdG(A&`@CD`nC#rx5{yYC|2=yEotrU+iD8r)=}KDBW9c&DMsker2iSu>0;hUWb_5C-$?}Z;TB!Z{WBQyKp~i zSh*4d^OFOr4;s@SFzGO)HF?FD4M*3rO_7{%mG{6(r}eAf9V)1J zDzbyeW(`9E6-dvL-7=bJ&Mxz`~G(^G2}Ae;$qmso1x8c!EC`=28Y`X z+ei|uhwCrM(rtdGCggL(?3YMgL-F_YIZj2t>f){^&0TpOz)3XXb0|dizncd%=k)##?L* z0*_-S97+wq;u|h~pNQB0-Oi+~{PH0GP@$?u_Fo?ziLXmH@Psv0Z)0EXJ+2J`F77hZlDHG8p?J=<)R8yhFP$jepsK44p5$mLL#)m8IF;nYQO zA;(LhkHn8Z{AoMy-kt?-Gtys*>(5)|y+L$--Q-wiaVaBR14~^)lMq8wD?>9Y10dJj Y%D})gX1C?!KAh4PjLfZ*_cI#;0Mu%1NdN!< delta 828 zcmeyt{(*hMl==gnE{-7;x8Ba)n0L!TrhUJ4{On~}S3RaqxW%Yw7@BlS*r4R~rKLg7 z-c&Y!WBsMIVwJg?ioecGt%(aGcezYe3ejQ=>|u^!f83@jGT*TN(jE1U4e$Sae*Rz9 zY|g{R#iw3uxtSy6DtI=nSorsbK#{3x2c}&6e2Fn9QQlhnf#HWm^$x!+KfJc%y3qY0 zzfqs>t?tVUI~k-7JlV$?@$SE874JL67B@CH+7+x}5 zs$jgtxa1?#5@wIbtRCzWj^S5WU-^Nl=wxPG_Afqe}Z zGgut<-=D9!HJERix%q3ING**AKYq-(d^y<9&rj=XmF)>FCjnLisouElw{wfj%BB_U z?n(d5#K+IixZ-Noc`@&&WlaYYKJ2;t(qe9J4AZ)G>li#HrP$5%F-VivPI-4Ms=Gd@ z>tlt@>1Pc=tSPGNrzmkSH7$7YYx!A@3sKhLi+?CgLw7%aT*GH(;cK^cZVmfVbmLy! zKTG?l$=(Mp$u2NFmhsZsX)DKqt#!LZ8LwZzE~el)Y5w!)&+nI1`tJce;ZT@m{s_WDGnX;9(OkXZu6rAu+VG{fE*$cC_T5Y}dZ>mz`wOP&0%zFCz zosVyKF7WiG!h<2-C|{d}U_1Af)Q?Ke+}#1u0yFsPQe zMwFx^mZVxG7o`Fz1|tJQV_gGtU1P%#Lt`sb3o9ctAlJ&k;Lc}j8$%Qwx%nxXX_dHj NtX7=9p&$%9om zIcz##_3 zekbeVeacgE&vZ!Mmt>gxhGV|U-t%c+A6xeb-n9+PJ~|^J>i&J<-lxmG=E&@1{IP2i z)0sOvE%(=#y!x?bE9atJws{__O|{~uO@8-f%XLm;bB03J27dEA$IUmlhV8aV*f5o= z>=nz!<>GOIcNngyF}#>FM|rNr5f2e}mkEBee|$BJs5x-xZTGFdvgvh<;c;scjwEfc zXJBAZEpd$~Nl7e8wMs5Z1yT$~28Kqu29~;pCLxBVR)+RwRt7-6xs`!|XUuL(6dk$w VDVb@N=sFM@EEt(vCvRak1ORK`WrY9$ delta 817 zcmeyz{*-;fl=`inE{-7;x8BY^*mcW6;&{EW=j*7bT>%1B6XUq&edBEUa_w{+*Keun z{P+dym6q;nc;Gp~mUHJ7Z~g2i-aCf|yZut7K-|Nfz@Hgv=7}$2pOmIK2DT|@i=u1>tcuw2&{KoAEo(nPP zHD157mz8J2jXSzI$_E(sZ_6;>Dq|nc^+(6@m>=Vct54z?m%QpET?cq#VQ>A_(;h9_PP8QuT5K6p8KnElzN(tT*= z+XveiKB?^Jub(t~-9+XMZEJF^|LGSoEaCMy%{akKL6_a(R>KwBTZVd5LSy04XC&YU?0GJKiaZ~MRg zx+`ear1Uj8Y5#MKX1=(X5%Ts>OiWBhL)`lEEIw!Nlzz|7#drdT38vG0l8KN26sMN b+aPIBOSQ_)PsvQH#I0lPy5@$-XPFHFz2I+d diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_battery_57.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_battery_57.png index f462e25f8e7dbf000144c869162df065d0175ee0..64555c06f097ec5bb46e3b745d2ece7e665c5e43 100644 GIT binary patch delta 778 zcmX@czK?yvl=?nT7srr_TW@FY&k_j~Y2RO*UUqk?E>n}xhK`I0DQxI}N|o#KdGNLDtlx_A4ACJk4&-%{G)2V!1xo+PeBqMcvzb)z8ZJ z*?vD)pwIrV*i+VVvWlW_@FbO$zj*j3EX&MgcyvqY|Fk3fSM922bUCn(>$B|!yKV-V z35?>6?Tww>7g+t6|3)%zu>SXt>$A1#@71ym>N)%xS_u*64MEml*4>Sj;9VcVG`-PX zl%b?i_1``g8v~BY=$5bs_HD-`zS|nqEmXX)S|WK7LyGlJ)(3h&?QOH})GS!P$cTSZ z_=Wk?oB}o1H{52?*&e`9&)%@Q@#NG%=^aMLc7#4SXTl&N#UP!0M*LHLqn1?94_)Q; zhqhjLu#ln4w?Ha>(&Bl63>GOVb zm$QpjFPXBqh+$vt8HQ3tlJ?f zyng$OowI4Z%)W~U&dV$R+8`vdP^RIW48vdH=O>==Eu2$ZuP3-<8c~vxSdwa$T$Bo=7>o=IjdTqxbq!5I3{9;J&8!T7 hTyrY}1J9V^HVa@DsgMDU}SD(m^_Wy004h~OK<=H delta 786 zcmdnTevEy>l=^9&E{-7;x8BY+?3QvAIbLs^mv>c-ol#NX$*l(Yr0$Z;ODul`!sDmb zG*0<$+BYHh=&@6F3Bt2Y+7l+S^fk=xez!Ym?i|gey!6=l<>vJQj_LRQJ>Q-`rE zT`$=Ef{Ld^ubYbJrta($878ZE9YUg?^s>HrD83=>W<21YdV*4Z&4!pPS`Tb7vekSXmH4@3o8O~IFR6oGpWxY4|PO*Qyp0TxvT!(1JhHZ?wtPHorIkZ?6`jQ!Ly)Dy?eadB|RA+l5sGi~6xpNYH?Q`bM+vhP!CCg;hyz;Qg z9TLern{U2(^5@T=3xQ_Ym3<*{5{ap@kD9SEyYQ<%O-r^S)s`weYRbrOX>CP zo*PqR%#TFfzQ^5gG)a-+`t|FZUzYs3DYjPeEW0vm$GUav_8lwSbLYnzxwT*?ve zD6z`8&Y+R!HZ8U1c=9EarPp6)M(>K>#hAmkTz)Ipt0D#l2GtVRh?11Vl2ohYqEsNo zU}RuutZQJdYit-|Xl!L_VP#|n( z-TJBMvcKWRjjp||tv7B}gia92+#(og;L_xn++uzH_hxIc*`|&k_RKu{Z10Sp2Mf8) zKflYLH@C9%ElFD3g>O%CU-3AhI zb}Z`{&T}zDu%-R@F0jGj{`0(tx0!V=NH4lGEB#Ll=LH>!kdZjbw!zMow8WkFH! zynUbMS$bY;{%0ogY2GKX9o_ZE3qG?J2<&)w(?UG7akcZ5YUVq)IT?2TI&fa`75B}} z4uW6V|4f_o^-%u4gSCuLJPXw4sj$ygW`DqY^GDd9coBvS=?h^D3vwNz85_1S=CU%} zV%zeR&B3f|cE%OErjvW-R)4v)($lYh)1{viYqwtuUNXgg%H64F*@Z7%S-nfR;a~m4 z$Qkvn`Oj*4Hx}NUBctWTGU-V}WVE49RDOtXJZ`q8Uj2+qxH9HEqXPsTQ^;Y*$ zo^3$~{pKqC`f^CSNxI<{3&Y&W#Y=?SB|4WDDS0gS{qsvg$1dUFH`iSE-QN2de9YG* zv`l}pgn@xUwZt`|BqgyV)hf9t6-Y4{85kPr8d&NYnuHjdS~(b+Ss4KN=2ivi4tM-En8AO8v+C z;pC$Iinpz%J8*Zrmu~p_vES><`tUdFix}8;%S>=Tuqlh7)#yu9S$Iy{^!&!{2c8Qt z=rvxyvzL`;!i_n)Im!nZ_HWBD-zsAt&h`87{FcdCK4+Jz*NNLasv;U&9v0OwnDFE?Yf* zTA8{&uY8^T_OFQ&m$J65Vk{^wWVYn-4bRZI52z zc7gK;@8l2{`7__A2s1D+sFt`!l%yn(6Bo_YTNSpCY&=ZvEv9lNHxryRJ`UlAzupM_}kp2Bn1f#(!cN z@7);KJQ`0Q2tMD)y@6*Aqt$NS1J{21=KivN>YMc?3}X9bCY*0rlEdI9S>;_O&UX0p z^aG*~A{iM@AK>{P$0YXRw~cO1dIM{f^Ooq(J@d60XR#*dXfxcD_!IcR?&e&%D|x3b zhuayepG>=Of0~nB@I9vTkM$9G`xy9`uG_LdU!+w~+EJF@P;Jeq5HA12(xqPUHn&J% z{egPTn>v4|hELcF>w3v3Xa?j$eNgeYT|+?9%S@UNH6V zi&Ejtway~i%o`GvmfU^w`&Ys36Hhz?TS$0~|XF#9~SMnS@%sQh5_A`_?UCFfPwKr$4ve$}T&%X~ncN zQkSxNPfdTi#M<_4>7g^c4l#@m4);c1$SGTURZr6Fh8L@KY150#-0L~=7_x*JO8m}E z^pihErLLh#h@q*Kp_!eP0g!KQWnkbLv)d9yM{a&fW?ChN4!8yjM&{PZTbK<2 D|(CZyrOacr_3}dkH zA5JdXuXx*Px&wE|d+CO+AN#$&tPg*)zKDTsx6B0h1DmoKT8+L$m4)ZDP0w%Ke&D$f zgI?qHJ9}AqCfu;m%~3wUuzy>I`BoYGaIQZ(mdE@US6qD(&nSN~tSWf-^lAG(oyeKs z8t|*Xta3>WcC5}w@wcZ+c7-xYRKsR$MwO>$-^urdXnqI zGi3$Q43$E6j(Zkewk=|~HeqY-@&B%T4O&VMp54jC-Dnib0Y z;Mp^_hMPHIKLxigxMbqH)=G@2ps46jfyI)$dG>3szxG<`b#M8NGyiU;7+qX^amB6r z)}1?cTwvH6_x_4Z+q7d6#&iAl&!0bEp0On{A|sT`^}yG!rVNEL%L`??pED)%cxgWS zT$$8!w_AO+%8DsL^PWHa{o8{5F7JWQHm~>ocp%>lcA6!_CAK9`89byXOk-Bab%??v zSWmRl$a;f~t1bwwoormMy?D*($6SmNtGU0_-oJjSw5f98qHDiS#xdNvcTcL}Xwt`A z8@c|HFf+BEiAxy&{H*!6HEgwN_W#hudt^#QEB`hAkz@Sz<_*t@tk&-O6WjbIq-~xl zk-TB;#k;LruF1&D7nhd0inxX)i!fbyTgLdJ#L7g9cS$irO1Ge^VDrI-yzS8|g6?qs z;O&Zck$<-D;sXW-2GtVRh?11Vl2ohYqEsNoU}RuutZQJdYit-|Xl!L_VP#|nznj0pcVKxK+M45He diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_battery_blue.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_battery_blue.png deleted file mode 100644 index db6c639d5519a41418d7abb4dadd4f78ca15f46d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 747 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Ea{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ueoXKL{?^yL>WGgtNdSvKUBvfU(=jY&)RwyFFbTLn>~)oo(xP*g?SU{tWp>jTaMM zSTG2&hChgy)6gBDsOQw#@*=abjmhOhzzuCzj!(vYe^o2yi7f3X|MN4o{LLY5<>S9J zUcH+k`EFlV@s3D+L&h8L)_%Ie%2Uv{RdfTlOqoPH^ZD5t3$hN!GnhAi^xIrAuOawB z@?{pE>-S$9)a`#>vzNOd$#%h+hN`tJKBeWejkgtjm%5=;C%)m^=F8V+spkmojCM(H zV4lw{^Id37{12vkR@Wj{GGy!jW7)ANvutypHQzI>`lo^gx4VAyZVHiW^kzDpyVCOU zyQwp;zN_QA!>YfI|6QZ8arCZqm+1#sD&iCNT>R3g=acp)?DCmI*E2q@Xt>1EUNLD- zX`hmU&dx5rKl)1;N*PQw9b_GRxdPY&CNo`Oyh3%M#o`y9raqsw|Ndk7u3yK$CopNv z(k;w775#|anN!2sD6Zjk*`A{0CEF$C7FkZaYiP7rwd`$2&Mc`~VVS)R7eDi^IT3Iw zB#`4VFg{gFTq8h diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_battery_charge_100.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_battery_charge_100.png index ab64a5d8d4837a2aae4cf91a9d5d61b55526ed52..234bb63e0d52aca62ad2044bccf3eccb977a54ef 100644 GIT binary patch delta 1496 zcmV;}1tFD3^0O5&U_yKm#uW-^6rWfNQ{WKz*eFxV!&c7wrcukIy;)L%bXiMSyP` zz>+fbUD;h&7+$ml_5`12CWyl6xShuZ5GBDRl;lFshycWftl~C&SnLsiUJszx_6R_)2heL< z^#GD6V<=fVY2PGsl42cz0M(YE;xEmef~Rn-9M~lYKz|8TT84c?Sq?mrYYX><%wQ0N zBcn51t+en&tVV)W00Pu}!``6`dj~U%Zui@*I^$Iz*Ru0g0SKTCUZgBicg*9F>&RYcl;2Xo^S(lUw!hbIRHDCm)zTwE| z3=M7Ojgl1wKm(o4wHt$$!5`vjQMG(BGU^Y)U)r|J?&1Ong6% zSNY{;jkTV%tAx-weAJeSSSf=d;QNN*f`>B)ViP(#UiCSAc7|$8QxDI59T6NA=mkfF ztRvJdQm_L6Xd1)Lf)~uB37|x7L>1wO>lN0g6}#4D$tt0cQmjuY9!o0?NygPT@yExnAyK5DzWpUX71hWsD zG7iIQyfBnI*Q>sv)X>y?!?wJOl6%*>4(0M>-RI4}r?^$~$-81L7g&h^UmFT(huy`V1F5KH9yWRDVdvkxp)CYQsAt(_EZwQn0KFmmPp1D1ZOe zeLg-{qGb#%9jHPjf~TP7!+~u%GLE!2NKq6hflo$DVP&u{iS6Y80>@kt!~qElp)rti zVBb&{=xmOn(Es|%9lpF&rr;{;B@hxg6O3lo4@FN+2jy{iO-CU{&i^r4=kVDXQh!Qf zf3TqM0NnGiaMQDQFdHO4(+T^_xq5$sR8|>Mbp{e2B(?!nBG|4A?{M8cx zLH5_|S{r2l&(4=Pd85{|q?b5=;M`AmX(-E26IG60m}Q_3WeOc@g-Y?!ODrt(nk= zGsG-3aRFQcUg@#(%VMiO2@kG%0IS~q2kcS%T2|=A9+Tb$7aB4xFgYzTG*mG)Ix#jn yFfuJLH##sdNnE=*lMe~IV~|XR53L=F*Z6dGA%GSIxsLe0Rx4TKn5}7j=E_8 delta 1474 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 delta 1769 zcmV zra%DiShoOTK<^s*+ra-fA^^EG`M(3#JoHzzT&D``1{xa;K>PTKHS|yVJU`z7D7?i0 z#{z7>0dy6i+oHQ*b$E^o`~&#+8UR#*pZK~9D8TfRExcNQ0*nsY&3PQ(5eryY;~3u* zfLK!gufQ*~R)2c6c3V8o%dyNHEeo<%Xy;hU|A2qu!QH$9=mUQCs9ZOa1desk?g{X( zAOJXG0`(613qV^V1apFH^DdU^t@0el6Zlp+?3Q7V-HR$P54C4VnoykLBMoJ1lKsPeu7a4eu$EG`Sc ziTajhap}?}K7RZdNZJbofRh6I`}^tZ>suCp^X%^3yF7gOkW?z=W{LLFc|)c_Aq1vr zQYw|uv_GC!DWwoX@b>LnMn^}{b)80|b@Z=kn)@TAB#}taY&JJ0fMT(T5W-d1QQpZ2 z6MqvEWV2az?%YW-nIx4;k;!D}?d>IHY$}0SFT*~tt9rX5K>ApI5>!9Sy-0k zuBZ@#NTl`JqeqW&{P=O=@%XZ1%*@Pi=gyrKi>Gx7puGSp7K^SqJEH44^Yio6>vgtn z-HN7ZD5YFqw{06u)2P*IoIZV;TCL`5YJc>_0-Qa-)YKG{latKO&N4SQ$Nc;}pFe-* z-Me=bi$%_yIpey9142rPVHlh}dzP0kUy@3te60$*0^m&cYn56w8f9*7j`QcwW16Px z22x5QkqC`OgF}Z7kw_$5_i!pgDJ2&!TyQgkZQGqxhHitCCr>gqHs%ii(`;SR7=MP* zu{~;3bTdN-VtEaaT>?}8K+<#!ljvYj!(N2S&5JIrHxcHan&!0zV-6J{|xZfUt z;{vvATV8f;N-5&;ID>R zDJ8nDGc+{BmMvSpD2{I4yvfYWjGOMd8Fy(Op7+mz-3vIYJv=;2Boc8Iy?=M_9#d0O zfgFE@3c$8);_*1Uckf0ig{EmtPfs&3F+n^Y4}2FGC;(?~P$(40X0r$(s8*|7zkc1* zrOAc_U>F9wcI`q+$)``BD3{ADEG&d_1`sF!=WH;YPE#tCuq=zKSFcj7R*A>sq4<5^ z0GiDvg+hURKF{sjw|Vm9Nq^vHf1v?z%zMwCJv@H=nEUtdhZgZe0brUYnM?*D1lO)z zBN~l{t#fbyoCqI}$9eGJ0lKb-9`t@MzFv(v#n1cq@7+`4^$b^rhXC0=wzSaf7zbY(hYa%Ew3WdJfTF*7YNH!U+UR53F;H8?slHZ3qW zIxsNY^E*5M001R)MObuXVRU6WZEs|0W_bWIFflVNFgGnTF;p=#IyE>tGBzzRH##sd Lt*(QBlkEpFSUN)G diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_battery_charge_57.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_battery_charge_57.png index c5c5cf191943fa33910e6b79de3db0d3012257ea..0cce72510084b04eedd91599ac58ff8d3c6e550d 100644 GIT binary patch delta 1810 zcmV+t2krRO4$%*glz*W~L_t(|+U=X)ZyZ+@$3N%J%>MA&o6y+nSRzV7TvtgeUXWUN zF>VnM2_YdQBzORx+CP9tMELboNKqd^NksV}f&3DLK#CA33e;38il`JRNl6tYG-{L7 zb{y9~;$(l!-g|hMo!HQ|`0=|+k zxK6AHd}$Ny-UNX=&Kh;b~6@W2@TCK+T_&DR^ z=7e5wFM1m_&3Qi)2Xg0&WF?Ye30oC9Efex9R8k5aGKDHe;{7XUyQ zh71o6Q-7&c@H`I@Syv3>?J4U0?=xE8@vH+ZO_`c8H zy?Zxo7mxnQlP9@&@gjYFefRZXTLVy4^7%ZYqkp3S>yExLhHKZZF*!L&p-{*)_*4Nn zRe~VLfddEH0*KY!sdD1P36_?Y@cp1`)qncuuXfbFvsEB=PB$JUL2zNn(8z8E2M5~% zh(9~?mp}9RYk#NQSH!sxqpO8I)mF(Tl~=e)0Qf=VSgyFCOCmz(;A2l5#P>gVi+Hy; zGk-VF%fI{$cY{8v1PF>}1W%%%eGv+t&~W;oYNtrT%;^X~?eGim*E7_g`}#+lPkhqH z^H#HBjd=nKp<~ZekF^2@k=2p42%_+(1)sw6FY>8Uj)H-5&af-z@sYeR;2ZY$2fR94 zgXs!UB-xh!hD2{#QB38j_t8yu= zYHBNgzPzu@S4VeHT1SbltXTdydk>Q@qNXhXFdpLP5>JwZ8laI5sQZ9d0)(mz<%O{U zA5WsdW2;(ax#6f;Wlzb+v@*kKH2GZ%)Lh;1tv7CStJJNq z4;_F4fe~)kEkC)mOjDJn1FMP=Auv$0@WnlS6gji2vN57dGOhhBCxu|xqlXjlkeQ+w{Ndd_6;tB!!@aIy5o_x8vU<1Wvm=9 zHV_G_tO@??T%8~NYl)nZ#0Lwu9Dx72nM5M^-0or|e!80W*H%J~oL`{nz&F{QtjY|4 z08NF#yvNhKqH|M@Xn(NMbbR;xBGXk%-XoLL&m4dexYtw;?F<+z`#6oD2!HV6o6Ed0 z--wpGj1Sdi1|Sy2XLjWYjI>q-c;(6+e*f-W%7LV=_&o(+9h7{-XLc9vFO_GetNiTp zG9_QS*~@Hw07A66d2(mK{(c_;E-g0r;e|z{_2AR1k8?$EylMm{qDO{xG1niEL8x~`cv|SUtGPz zO6Ul>dwhTBmg=jqX!9eych6!Ka$av0znx{a5%Ra#$Y%~<3&x%;fPbxOj{x-AfnHk| zKbUCMv3okZV;_<`(HVf%_j^9Z7mVLyX^-9vA*PTGfO>S)O>8)8ZoP8_)2d$f4uFa= zzT92~Bdnndpg z-~QS+VP&PE>gZ|w7&kNs(2-HRo2L`?&>4XKodDDieHyoOm>x$TnFvy^;$Pek=U(EU zFFf08kG7Zn2UGQk!q!NK3zNYH7fUiNFgYzTG*mG)Ix#jnFfuJLH##sdNnE=*0000b zbVXQnWMOn=I&E)cX=Zr@ A?EnA( delta 1666 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 delta 1685 zcmV;G25R}_57iEklz$~jL_t(|+U=WNYZF-*fS)syN!qmAP#W80F|tw>7K?%`et<}k zy>h+So4pkL0saAD_XoIlLjQqx(Yk1bil7GkV!a7li@H^*NT?Rwwx*3qCo^aEB0Xc; z-KNR3GgE6{2o34^eBSrGA7>Ky%0>7w=-}WWxm=FH!NHA~!+*);a=rnG_%?Fg1_GF4 z(*lSBiFNdsz&~Fi0BvdUKLW!Z`a9H)P5~GI7QZwA_2aj#qkp^4>+>CegEt?bEI|4V zpd}Ao=iLR3;i)6=6Y$4602F}lS^Ee$faN7xc(nirs5a4V#^d-(Y+zxXV{9k@v9$T` zfZwTUx>38d$A5Jx%j~6QLG~)`l%@O){ECO;<`qB>@QcUIwIc1n&rP%&2Yw3zfD#L+ zG|^uG`Z^(44gM#oS>deL!My@dPB4f}ve6t0fM>{>*N$67wgH5_fUsp7K-dciTfTY# zL4+}c5D3xQ#gLS~*FnJm5JF&@Ce>;)r9({|#~~h%w|@+6(*Y1dP%f7_dGaKuPoHk7 z@6gZ?Z{EDYFbo{WzgxAI04R+#s~KI_F-?=>$B%RD*s-SPdHC=lQ&UqIhSBVNZi92@ z&M`DJkDkJR)5kGfJCBpzuD8%)2ZuvL$xRX$z+mrI*qRD2q9Jlpx}&-j$)c7yLaz)fj63C z3Ens5a#>x%_y-`9$pFyX+uNH;rSwLoDTJU>snFlwPhVdjKtt_on#RkQFPWU2 z(j3haz*@^xHVQ!9hD9^6-7pMNsZ_%@O8fWk-{2p_ws0y01!eTr6iF^ z(0|p{)v#SYpXb@LXSBDsyPws=@-qnnA2UHIr5pZMisLv4A()w&;rjLKZmO)pqrSqloKaTxPK|{N_qSCE%|)j*P>{{0SF0}Cz~}rx zZT``tM?84&z*nP20T z4Gat*gm9gorfIx?|DJ3%i*4J1W`Bf%0l8yPMVb2Ey?cp7B5qW;efu_#A3qMneZ{B9-4fS0Dr30D*N~E zN7FQl#Uj~kmW73dKto{anc^^1%fU&VL?%cT(n#T_XfMr>9cXuO%V0d_V)!Khc0#F`47K?HB z?p?~|a_CNPrTAJ6s^n*Oc7GNrW#DOUGZJVjyqPo~IDpM6+W^8|K-lut16a=wCL})n z?y$vmz&d_f;}t+e2%&{p#Vv_?Odk&ffRxf%`a4xBmHwi3gu;w%4iK>{Yf=bd)qUm< zfMhc10PNeh@6U@DFaEFuBgFkfG#V9!LcuXfI2v;?5LyBmP>=Q_`GtGBzzRH##sdt*(QBld}gg>AEKX diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_battery_charge_85.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_battery_charge_85.png index 7dec8e4b3daa3954f9bec86a8aadca945c04e590..35ef74681580879f6b001554350dbc740d014e76 100644 GIT binary patch delta 1763 zcmV<91|0do4zv%Dlz)UtL_t(|+U=W7j2y)k$A7Q7dp>r?=ew#nRQHUHytCUq+dX5#llDV9UDfq|_3FKU*H**-xqnF-ozBkAGB-EJ?Ck8Y z_pktSb91Qy@KfvgOHPcdr47IX@82Eca#|5|md=F^dXaKJ6e`1LC z<&?*lIsi+u91ul-P8&e141HC07Y4(NmcUPd*MuJp z2t2Zd>pldIWC0+uF3{XUd%FpNU+)r#41i$6 zBp5fok^+cn(d-|dE^v6Nu;q6DUTkr(q45Vgzde>300E4Jk}vEncxda^wYR}s84F-p zY8ig_L6xSqOn5@F+&%^X06GSyCw!&~9$r{8Hh&6M_nB~XevNar4m)!Sok4*~O$jQ2 zwz2FjD5i>z^G4FaT6g`i%WYmgS7%3%jq|Aj0MOQQYtbjCT=-wle*;*7hPJ$TYK6A3 zu}kJy0x&?JggeWduQCPv<&zr!TW&MqOJ=j5DgbLC?+M?j1i;3#uYmblm!tDF3Z5h_ z=YQh|z*rXn2OIH#RhYi zn(PduS0#kLo;4{GNu>F=0y|Zf_UcXRJwJdHs05|(^OTlAi zM-YZ`|MP~nthNnJZMnVVqvYDPZbG@d)Y3fl-(?n?nvyT6<$_cqKpRUX@A03dCV&50 zgi8(0<+f(EW2tux3k}UoCE)oV>>?M^@uZ&{I>z#=<5xJl)}fNJD%^Ge7FYg0Z)sjQ zxk}esy2hzOB|@N}so~+@VP*gX=vufr?{Uv=cW%ny^g*p_c=~vi zg@z{YrLX=*0wCHSJTw_FQ}HpjFL|H&aFzEiw^J>5BL@&A#d~+>36z9Y0e@aTv&O6E z*Qo^AJ_ctFKpQCeiU+3(y;Av)g$92-y-LZ?{xLXH0D==YcTEQDFZ&2^vfAdiC#s0h zQ-fbw07_i>dth$?CBjlubL4oH<+dTOvS0U^0=W9w;NF`HbPW9ZM3s{(9ZDH*e~koy z%l?K#J6-nw!|7Gt{;WB&q<@z=0JrZa{Ajw!TMG?dKC?!73}!wv09|dFp78KQ_|1tb zg=kY?Oe|FZ5`HWB!YgOjsC5j1Z0SGhnOUm;8gt@DxLDU{3psDJ8UK2gnGo{FZ00iu zFowQo3t(LBYXGAjz^HAA7bdJt{zlApSu}>^gNS)ZO8V`TFR0B=iGQUGz#Y~SweHSNKGCE~&+HXHY8rQ%r*aSW(KC^_6+NT=Z5+tP#ZnaCyN19Q?)O@0`EuTX$Ql zk&zymRhVL#;PVT*ec(W%H_YMz@ZDDS$B#V$wOZTSQ6Cvr*dV}8e;e=9w-WUb4?uYm zfYzb=F_U{4iv!alNE)kw|G|EE|9Or*`M{`0bYs~Uk%DHhb$Zt1ldT398Zs>~IV~|X zR53L=F*Z6dGA%GSIxsLvT)R1w-Ub&MGA%GUEip7yF*Q0dHaajeEigAaFfcd)1BH_h F2QgD@MhXA` delta 1664 zcmV-`27mdq55NwPlz$LOL_t(|+U=W9Zxcrpz<)DqdlQq|v0@Ut!l)8|L?H?iDuNTr zp(lFjrAH(_0AB#9{Q|uq@eQ~c0)l{okN``7P;;>wB0>YG9IWy$KyV0#_3lg$&KT2@ z#9n826W~cJTbr5LdB1t@&3m&keBmO37<6=Wlv1h0=;-KLJby!%N~OR6!~z?+MS&2W zv2Fn*fOHrA74Tvs0+36S{}CAT(O=VWoeD4vyx(X5TF39{qJM9|^9vk+#$OCD7NCL# z&{2eLiSB}x;TaeB2{_jUfC}(EtGj>(TtB;oUklJcy^VG+eU5L$1KxBw#+m{UOUi!- z{7z$~S8A8{Ie#x>nS(Se$XlkJv6R1nU-98?egO;szxY(H6X^whZlm2a@LL!FjJUwN zHu?*|>Joyx!rv4PD}3d5aK8Xd5DX)eTMj&%f}qafzGjeuOQ*8@*cI}}fAe^qx!0MhA3Wq&&`FwkdNR@-T`S)ER0HKokB zTI+9WwVFx4g9A_~6aW|;930H$a#kmbbqb-)6%|4V78e)4ot>SH(a0H0vbOdBj0-5G zJjZd`Qc4Jc>$=Up?JD2X(_R(5G=BSocLShBVPOK$YV94zVPs^4{rmTKG_gyUF7fQy zGh(sWihtH%f?y~BIu#)V^?IG%yLYo|*RHnv&CJa3;>8Or%WBsZd`qAJwAR?RO@Dts zN-305NGX?X3s9|AId|?H^?DuKwoxkB4JR-F#`iOs4C!Dq zN+c4AP?Zk_KrWa2BmiUjT5BdICV2byEtb{o;n6w)AcR0EMLL}(l}fGHu3RoNGc!YP zZ+~y|UMs8(n+GVR$mjE)Tvg-uFJHdo!i5Vsjzhg(M+kwGvUv$1h{xj{rP1pGfY}0# z`5T4JcXO4?Wzy+1Teof{9*>huCh6lY4Z7e)0~Ysjzg_h!*Lu2 z1_qE)HZ1}gu47pi)oPVfr%v(u_3Jn zhT}Nw+qaK+JpNIEWWHa#c(J)NY}jH58mnqq*8jG(L?Xf7y?cQV`GHaX_U+r;x^*kG zdLZzmTWj640IfBy>yppsKT42{^7rrGXMB8o)kBaC1)x>T3DNNIFhYoC@RL&V{P}Z= z#Uh^Pg_;qD3c&L``uh6Vwrv~mA%8!3_wF6VVv+gz`DR@B>;On9aU6#&TegtPNA1MHn8w?K*H@C_=ckXcI$`x$e z4lU?K0>IP;g+hUBHj5B~N~OZtvuA1Nc>S{gP_Nh7vu6)dN~+Z=#bS{+Z-3r|y5&Uz zz@)aRREq7}x8r#pXU?3VQmI4|^dbS^I1YtEfm|-f<;$0uo}Lcv*gJ9n#=J*HMwptK z;@Y)qkwyGS0GO8}LI}pj#+I%9KT7~6!rQjZ_3PKE)oPIkz5hz!?*^rmyn6KtrBvu? zZaWfcD!iUnK6C)WCeNChz0GUh%faAxHbKt-MxAm1)R3fEhXlTgyLUaV+-X*ppnF*7YNH!U+UR53F;H8?slHZ3qWIxsM; Ku7iM+g9kA=<_!b@ diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_bluetooth_off.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_bluetooth_off.png index 5bdf0c1a5c61b2f25f5adb8c0a9a8864eda000f1..44cd31b347cd36e208ced9f6075d7221b4a58b4b 100644 GIT binary patch delta 2884 zcmV-K3%m5080Z&}lz+HML_t(|+RdAJ>|9k9$3HXk`*oo$cCnP!77ADjMkL}$ig6(g zMT1LF3kZl1L<|z9RsxUNb(vsV95DbgYM&srUJJa_?hgZ-fFA){kxJL&dSMc9BJgV9 z0^seyIO}gUaHF-^(7sMUhz1~F-qAk^_&)F&;J?6Kz<(;>Z<$vI3Dnle&%<%}d3HfO z1GouzuU&6O8n@TmI+6hRdoKqb0$vMj2R;n^G-$gqSF6=(lG9G^iXQY)wp*e0e9QnI z2YkmsDAD0mD91dU8CVJUqA~vhaK14=K&qDYYPC9Q=MARqSZO5yV)}Y#YD`unhQ}F+W0PPPULr9Y|`mTFF5PElbY3?gtD2 z8-d&G{&KWnjsoQzpQPsixI}IQ#sl{Q_YrTOuR?x7!WhyE+H%jZVgNjC%wJCP+R}Rf z0@oJcbYO`MW)-Q*C)H}T9rOPFrNDaN9^@3c8Gk)Y6LLUscluw}2EdiT1pBWPqXn@V z;Lk6$^Irlriu?Kg{wc=vnMi|XlB#!0%79QZ0EdD3z+(F^YGIE7zC?- zYaMJuzJ170EDZo32Ughi>xtKdAv6_^M=m-20>Br!d3M|h971Z>DF9^@J+2HuD5?oQ zo_`{38~~=9kop2ZVgr~PbR5-LUYn$z<$p?~4Rxdm_fbp}b|XswvL;a!1%Mr2VaK7s zW$glkCJ*m+;93LWEZ~Q<)`WyKQ?%RKIyPvt=Kz4DHO6`qu=|~cs3l}w0Nxa|@o1YdAGG86a7?`fAROETJ3o*E&@A8yq{1hWMu(Mx zS`d1O>wr(&`KN%-pmm{f3uud~nK|4AZ1DBzc_+;REw6Sq+@a_Ow!Dj&9L#glm zC|k6SG`j101Ee1SG$@k=@|-~l(-!LXl27XLBzYmh8)fe0Khk$Pz^P^!O{h(L? z+M1V4#>NvR+mS?<0)IeK_kVa|5UKr}k>oE$Yrp`VNq&$%W`sbiY}*c6XhRuE`E1}$ zW7gZ759~r|^?MDpk+8i8@|1kv00Qw1?>T8V*$Kq83ZB z0E|RFpV!wS;3Jv)r=tYx3bf`UbSc_5~Dp#c0D3 zb%b))g3RE`$YFXHvhy>LL$sFEMLrt&_%|a{_zUFIFSqlzlA{f+sIQx&8Jdv2k)!sb zC_cCwP5DrzH2~2>H;@OBa;(w5AF)& z3{6I!-BtF?VEC?Wox90=3Ah!7!VjW(eJ%1LFCwiX3(0eaeP09I-){mSr(URzwyoEp zdA=5zKlcz@t<;|J89*DK=L3H-#!g0YMYbP*}a2 z{E|4&Fu5>%Z2j3AH2Sw4r)N5IpZ{i3SGQ;}qx%b&pv{pADv-Pg6+$#Z<4ikl7F`%V zw!ZETZ@1&@OvRW}Dfks(-ZMh)K-r`LwB!43lv-<)-hX7;aceS2x>xahKLPMuymxYp z9kWS`rn0yKk{?Fy??#mO-+`Q`ZEctjnVgQCBuF)&FvVB_pKo3hFxv*a51F^aRJ4Fw zx*z2T)*vYkA>02nX~o%CdB9m{YkUu|)5h4By+L2dwxh7~m86-SSn|Oig)+%=kS1J+ zs!kfr=YLUV>dmoso+X{0g{hPJfbA&hIgK=|jjqo#s-OUAFWLrsf*>O_M#Y&6;P<@OTfuS0wxbm$lCN9C>$ljZ_jQUJ6+cb*-$*s-rEF>m})J70>t zusr8vtbW~6Tn#)xTrSYxUxPnbqFTfQpCqrMJo}DSl!u!otAV$nX|w|65}|{7rCxk7vYu2G zZ$-h7M~n?dX^sn$HXlj&F^n4exTHM0DO?+kwiRM@g(x>Hjz_D zMEc=F9yPu-$j~hGk%X7nd(ve!&0nR&vVYUFkETGe{|%@v0OZzgLOK6!D25m&Ro7ND z103~!qSaf7zbY(hiZ)9m^c>ppn iF)}SNFfA}KR53O>F*Z6dGA%GSIxsN95Z{H9=nFBDiAPre delta 2954 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 A4FCWD diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_bluetooth_on.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_bluetooth_on.png index 325c81c0e9fbf25f7b864e560d7137f1bd9b1b66..62a518a9ecafd7fe78abc3c04dd20feb4547a893 100644 GIT binary patch delta 2570 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 HlMD?p>Ov}k delta 3228 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 OIxsM;u7iM+1r0Ie*DFT= diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_brightness_auto_on.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_brightness_auto_on.png index 82eb3b437f0c7e3274832c55eddf2da75d24a07e..4ed4a9ec1219a2540e053ea61e2d58c1aa188991 100644 GIT binary patch delta 2890 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 oX=ZrOV delta 2905 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 DtsRIT diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_clock_circle.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_clock_circle.png index 0f78283df34103c6354475b0af69f8943644e7c6..c7864baa512e7daaeef9c9416019c7e9528162df 100644 GIT binary patch delta 2048 zcmV+b2>x1vF0ji>+*Mg!0ysS6H8Vdy z+;h54->shMnXaDhj-I4aUDfw-{{MUKsj73&mHx-27<31KihrUIusX%8PEib2#eueN zpbJT*otNxbP9HCiq@|)L7$gymwOTXMr5y`h`fX+R7P>S&A!*SFY1}gUZY2X=+U+>X znYbI@3UZN@>Jh{w3*NNrxr< zMQNmudUKK{C7mW|O46GoZI(1=_hrC;E9r-lZj|(_>0TB^vA7=2vID#w1yI`WR{&oD z9;K2efgb?x2c|>4UXBgG9Iy-c74ULs_b%Y$p=>MGU4Jj|W%#`l_;XP3Zs2O*5sCEc?Z9uc{x{^-IVkYw z0}q7}xPPK4;60F027nuZYXb>42J35vgc|U3VIDqc*ZzMI$~VJ)y)L;A+66pgI^7Dq zx)Bm;I-3CwSx0+q8u+NMj~7H zBs^<6Ue}iu)G+)bYxp0)c{%uDNJfHB(JO;b*ngG%x9Wx+{Ku@p=YbE50{9h3_>Sp& z6gW2yqht@QohD*YAru*;AD%wwll^Q9t(Z3BiuBQe@hkydu3Or#LKDeS4 zWPfx2RN&uM`6E4>&}fk$;CqJQ*Ad@xmEF64)+!zx*0a7(65LwnfF<(>Gtt6bVw9#( z3T%{;cG|t`m7+YQ)JzC!oy5atcT3u%6j=Fa4d!DAKq+Q7C+Q_gw}k)3Lc$<<(Dep8 z?=T`3Bc4cr|2{|3Ym@?#4>+S^H2Q5W?0@`613fG0ETuti<1VH4C#MG-FS0`Wl>(C! zs-m}JAvRc!=b#;@D8(!zIUN?@72aY6_S^MXfzR-?Bt4-NVwY0DwF6Tgs-Bc|w*7us z<1aqahwSXw+Upi&R`7U9uQ!GcnJF=b^WVis`mmj+vip?<7|0Wp7B!ZX=6^@waeopY zG&?_Kw@=nGk3mV=sA@g$>0yItP@W6;ifGX}0b^_HD~Mb1G5B%%2PUpZ{88o0)PBt$lm~G^1@>#rP4RRCZ!KNsrt6*{1&jsg5TU@ z=W~@_j26a?1ghL5DZTz~lk|+FN4-b~0ol#_l->a@u!_=n`+-?W83oM>7d;PL4Vzb6WAnfTqcjzwQwsz0d0>&0Eb)#t zt!f2EOJndCM#6sJb)!N;4fyv`WrkEz zr)Kknmm$JCoFF}SAAb)-{M>xSWJZRk!n=1avLmL<=UL*LfX|tkyW9g@(#`4yO+fr; zlFhvzlfE5X_5)u8-cDx-BT-=+tgWH!JNGlCrIIYX#pI0g;HXZLVWmo5{3NfOS?? zmc|>DLT*v!B|WILscN4c2P8cf%CxuTHMM`R(T$T?yJZa-PST`~U6WW;%1f#%FK=t) zHcoaU!xW8MVI^1EHk*^z-fBC@eZ=b$@2~OB-TLi&PXAw4DgOn6oiGr|MD7HWF$fn+ zGA%GUEiyG!F*Q0fHaaypEigAaFfag8na2PC03~!qSaf7zbY(hiZ)9m^c>ppnF)}SM eIW00ZR53L=Gd4OkI4v+YIxsMC4cD%0Qq delta 2048 zcmV+b2>#bB!q=lO7#*_82vm1 zQBp5KKJ-#j^amwHP(l!-gh@Uafl?ItQ!-K<$nnf&=G)?oV(@dO&@)h z0J@_nqLNtC1O$3IB}Z4_@sv3rq+AiuzBE|kw2h<)DZ3UAxCNv#48T+XlK?aWm;zut zfZ+fJ3g~|ToC44RU@w3J0QLjeCV*LnoI>Rc zfL#D~0{9%jc7H=g8qQ+Mwuq8SdEhh30B91>j{}%&o;eQS7XU}$diOU0cu9yE0ALh= ziE@ksa5J2R0ItWs1MmTW4FJxG?okv)-IeqaLGW@!BvbPHDw3;69%L*hNUkAyKgmg^ zTp`CGlDCk2l;lQ|ou=OHBp)-+rfu220&g2#O0wN3xPOi0vm{3bfHlaG7V_+oHuwE< zQ%J5RdC0W$CCM44Gop%-;3=cMK9J;_Mxmo5pCUQbvyuiW6ZNK?-ZSOWe(#c;Nb+@( zmyDII@Y+kBgh0#jVYd#aheG5 z0?0@ifPaHXzTpjt5s8uz06&N1@6zCYlDCC`S7IFI7>1AzI43%NlNbqs#-@@yY&`LV zKKH`N`4(D2@|5VdfnFz%L)Pv ze`Gv;ix0jU;*p?MxSV9S==wxSBm_))B&gNSV?2FcW-%25zQs6|W!}AN zV=jb*cSZN_#VYd7M*Rxjk_x_Nfz#P)i#I2kK=Mz)@IYQG@W#p*l4qpw(t=H>HVCkm z`hT`y*lh9jR#+X}b5gL)yk~3D^mE`)Yn@55i{ur?UyfOC1RJG^-~tS^$^z zxjqXzlrI`KYXz`X^nWmbxd#D+i`&hHi`Hy4_v%7SC#B`QPR{d?9lh#7fc~BiU?hMx z0PV_X9rb>O3pwwA>&zJdZiMUP4DJ+=`G4fpfa7d=Xg6H6wgKUAb#Ky(-!l5?{mCyM}m zus?t?!q7oAr8*q{D%#UWkFo3%(24jxIi%X!CMW~sd=Wr*uBk8poQ9kF zrU4ACw$|l{_uVqW;LEy^ik~OoEZ{FVQ&Epu)1Sb3M0Fo4|BvZ)p8%E1a5EDFhT7zRi~n$)Nq-9N!)FM9336?pxflPC*MfTeopPRrcur7{B&g0e z36`^nr^LajuwL8^mw<39Vk;;-tXu+cJhHa)>D)*C>ssY@BpGESR==g;Uh0+tH0;aWq@q+0_#@SeX znkUo?czxyVlviN+iIV|;a39I@($H3ty0JsnSb`~r^-j(VN>Q)UfH1}pP|c8RcR%8Z@@Z}2cLrk`OaG6 zfZ7Wel{o^pN$LVzC~h!-Yv96Hy0L0H+(s*v!vNj~@EPL8&VQ_ghf>xsliW0=OKN~y zV0{?CJwnRWfhu$>oZTzvO9$L$sr3Lh0XQ$$8{loT>(fnBJ`rZyT-LTWk!f%}Is+$O6%h*x%Dp6^a-|6rmUC%t-80Wy@NM!4mwM!D7r;9ogH z&qM2~xs8*#$R!X(i`h2olb0!zH0X*G5F(_2c6&Zlzlj<3BmV*Qr!4V!$R&r9F$fn+ zGc7PTEi*AxF*7ppnF*7YN eH!U+UR53F;H8?slHZ3qWIxsM;u7iM+lL#@=I@xjn diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_clock_hour.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_clock_hour.png index f36224bf605f794a481b0a340ee3c691a58f27ca..02c4a05e1bdbfa9e9d1b430d3eab3a56f03beea7 100644 GIT binary patch delta 306 zcmbQl($6wsO8tFL7srr_TW@dJavgFIIr6bGOSOV~Bfn*r_}8c?t}vzK#4DjWcLo3a zSI9Y`{i#gIOkRiq1P)BUS=Y1e`Q>jxuQLVDEK-S`_4nWA=_cH437(6WD4PB}v*ztj zlfG^K+xoY)Z@U)!h;Kz^jCYh*l;^EIS9f`?V@$Wr|69DOGxLj5#MwHRBEdhLEEDn+ zdKoV9E)jIt)o8-RG4JIV-`k_i@7_O{yLwg1Zk629 z-@P5bT?isR@UL4Z?(#us*Z2LC>lwwRjC2hRbPY^G k3=FM|46F<+bPdd{3=AZmh;UBcfKxhi=bEjPA2J#O0K-3j3jhEB delta 328 zcmeBYnZz<-O8p~G7srr_TW@bT`W-e9X?a+w!o9=2x>2l9B=6+WB8FWZs}e7=_^^1} z2>!KSx#{Zm6Q50r9(yo=LH(I;&oinc?CxjT_8!#ny0mrX_xQa_+7lS2eNlR8x%J1H zRc{j|&u`P;c0YIittkIa>jl$3D!dH5Go=e(VPSjQ)RTTx0+BN{xAL*4>hNw(Va$w?S5N-d-w4htE~K!xO=qs&fN2V{cP>Yx0o)y{?|X3wSFSgy}4hmF0bFx zknhC!k|9%M0^bBT?2MC4aqHT5-+tsOVz9Tb`>DsCikMfQQ{G%TJGJwV;iag_Z`EEZ zywrMW;TIm?tIAy=zhXzjm-Poeuu3w(K!fTI=2c~ul3!k$+5*K?OI%|jN>UO_QmvAU zQh^kMk%6I+uAzahfk}vgp_P$=m4St>fw`4|fy5ILpvOTvpc-=XQ!>*kacjujxn}F+ HH;je=R8E&_ delta 339 zcmbQwGM8n-l=`=xE{-7;x8B|i zZ;b=82YQ+AFy6t=I2(DOraIzi-bY2Q7j<*q?`zm|!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ueoXKL{?^yL>WGgtNdSvKUBvfU(=jY&!-9=KG#5jv*Dd-p)SXCt@yetp2L??AU1> zDk?=hr%d|={0h1ra0cZ4W;@VX%okJ99&9TWSuk&&4#$9T!KgizhpE3O2Vh8!*k4r^F8;YOvv+M}Hs zehz0?4OVOXKP9vwx$QplJf>jnXm;bvA1yy?H9w z|G>LhMtj~~kMg>v;^4Ed?8WihVYkfmsn>q~EA!#>d$(#(vt+84~X&1;y| zDA3|?Y`w&#pzUk_x(O-hEIRnvrD&(sVvlpj1Pxe^t=Y$|k@)hhYij)3x?L)J-)@;U z>FCU_OIlaGV>XYNcPQ!DAD%sCkEI?6{9xZP(=e<-S#V}flv7GhIG^1wzjM_OZmjcm z%~jW!S)Kaz>y7KbI{uWbf5y=*{2=&B-E@)dnrn8=G7Qxh7qs;*^W-UH(6Q88vEwPj zrD=NMp&Or@{%$w8?U!>-w{ccu`{{Y=Pm8O~*53KgRmAdUb3xeBhehjCf8AMrmvh>i z>N#RUHT^4A$uZnr~4iuj)FDPFs7X{lRhgW-n*r=CkTR=4zv{4V>i{$anQ@$;gK z0%;dxAI!XI!1!;&{V5CDj{ZK`dG;OiqudWVHA+7?8h#(BpPp0Eb-%Hmllg<{rM05z zxy?I`zAs?cIo~xqZ2z+FdClJ?fAekpoqVf&Q>K;*Z+tjUXIbZ$n?5efjy+o{^q_WC z)~}5vSx<}RZK!(f{BW(h!gsw1zb9#bW1DVwJMe03!WE&z=Ur0v`6(%1TB-QP=+vhF zHw|kqzb#3zdOBy9(6kdP{XX2*tdiaMCgNV?-^;g3j?Vcb_PVytgXd3$;6uNL>NB)UkPfxgS#$aAjb|Z-^PSk&tlL>~?T5$nZBpl- z`Mv1d>^I9q$NKZODYFEama5j?W?CrtmgPuB_jB)gZ+5)!oV-n@{mH!Czh)K!7q&Ci zCMzt+XZ>{yk~Y_>FVM|+QDwCF%gMfVR+*owwHSAo*iQ{~YFlh*saGspv3qKOmHUC{ zUG)+(g+8@DHobi~Y0IBG2L$i#OH04cS`_&(X#O#&1SO@-eVh|z4`t^~-?F=W-LlIk z@8=iwlu2%tni2T%iAOZo9uY6gL#tO@ZUALIyM4@mJeXaVJ~ER8=6Tf;*NBpo#FA92 z3VtQ&&YGO)d;mK5xsSKX3elF{r5}E+!#zl4j diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_ime.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_ime.png index b73e4797e045e0586d3269561daece5b136d673a..7eabd103f13cbfa8cbccfc698284ec8b6d03c5dc 100644 GIT binary patch delta 1423 zcmZ{eX*iS#0LR~%kz;0%s|XQ>)L+lCd$e@$wWm9}!}W*M8@s1hgjYWm$cIT5R0Ull2x zPj1p8y$R=_RZ7mCO}G+?Q$uVEo%*69%rD&BrxR5Bd|RDoKIrLPZ#Zoztc*~G)(ypX zrJ=jMeV85Fal*;pmlG^gSWJ}J-|yzwS7ObGMOCyD8^fw3h4@f(e;JqJqzVhtT*pD! zsEu%251;3B%|_6d({M?Kx;CmtN10q!^qQz5F()`u{x?@{Qp7B^zc7L~syld5Qa*h~Mx`55i`9yeCvxCt3z&nOT62lMC^rKr37|d7$Ir@gcF18E_!Z zrY?n!-eUKEtqG%Ordk#ct_{MglbU(0tMv^vMvOaLw>;XlK`dL1F3$1F?k^q?{!NOZ z@DNQp(M8~mTmT8to$?XM%+QCGx67iig_Gs@A3Leyc7ykk(7iDzNJRZa>(!!1`wY*?}`o>^b~Dkfc7!MR6sY4JL^=^gE4H`I6y z3Y}aNT@pEcEA(U9E0u_Em|w$IkKEgFKIY$&leaoC>goV22$Z7jC0e^rjIcFunztM& zB8#7&l6p8?Z5y|&gO>-Kp^4FP@OOpM~c%!h3m-f@WXjrT}jj#+NTf360jOh z^N#IKNueYvDU(_m7CRxj7e-_8W^0XySU_VuSl>S#ehAuC4T@bhzDNXo##M-0011M+Imt$0;y*S!57Yc7hs^LZ-Cb`#T)3k>zfet^ay&!c)g?FN0X3! Z|9^r=N=R5};{OLiJg?n|d{1HhzW}$@g<}8! delta 1498 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 D8J@!w literal 0 HcmV?d00001 diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_location_off.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_location_off.png deleted file mode 100644 index 8a4acb92f1b8ad96a4068f163476436349acd6f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2713 zcmZ`*dpOe#8~$x$j8KgtIb>}TYR>1w%3*s$b12>-hs~J?u^E{nIos=1ITcxQh>}Re zey_wLheSlvDleIqmBUE*^!@k!@m%Qjp8 zhB$nC*92df+9r`eoFfhZ8geCn`HF69NVJRnF`#~6|J=4vCE;Bh0U#a&0Q3|9__=M- zzW~5RECBF)0KoJn0PKw{X>~T=KEVA>*xLYGzo)GIUjDX&h{XRHz0LUl!tQ0L<+c}0 zu)(=eCiunF`<@r&daU#oTP>k?`|>B`y&L4@Ub_UP*2Gxf!C8+muf9MZs(Mj%E!~;q z38@QpyR3Hp(47}(H8r)%$B9>77=}CQFhg#i=<`e2t#!goZ_KJ=_8DzvWniiQnc2eV zaK1yp%)r9trP+j}z%5Slm6*I+!)`@YsWqdAo6cm1G)-J6$*mp@L3WOTHjupXsN(tl z^Z@cB;ASLFCa1Qb3(Dgkfch{SVcXuU{B zn5r?A-B$s}wM%8iL24P-jT4p8uHR(h;pM}8DU(haz+3Eyb-IJ-DmwDW!#(4+pFGEN)Y9F7%pqy%iHI%R4qwd)z6wl6tc>#y223MXEg2kzcgRzCy|S&t zz+|F#RfZcYEA}S}{FfQ>&0!EaC7GaTtVof@ioDW?RLbu>3A-ivOoGzx^&v~Y?;kB# z9Pox-V7Ns9BZzJqFoMw;Y=G25j_~`N-`)Gq?kzhgOm%1Is$QNdb1{F zem;-nr82Wpwde|y#xpM=7u=IbDQeDsbfP93FbB z`IKcMi?&+C=hyERNd4_uKqnFVUl;6&fmw5=2BpS2$UC}6mRw{%@jlC1UMAX8L3;w~ zghJ|b&Cc;gy=UL@qegW<3-(uGCO9<4*ru6FpAz0{9=yOlaLTm*18l8+0doD0m(XA@ zlw~lbY}eFv{42-()y1q*ebxAY2;X+u)T8t^$JLg;+H4)+TU$o)xZ5D|4qCAuR%Bw12 zMswC_^J8ku87s}kS?_l55k(tI&K;1=W+V($gw?fmPMqy*k#v^v3*jaz_8yz(WBOeX z?DZIz7ZDGS6 zPoKI5=gsgONuRD+igR+VhB?j#1_B`8>PJT{$EGy?@~u*8=jZ%&T63C}KNQ0L!7s!x z<(P|eg#lxLafW63Wb;X5l$N*>@yN~HZiYQg_udqxcNhKRy6DLxLmTmn(MiJZu&Q`i zQyq>^aCmc-JSO8$O~@L@2szi7$?gHv{&8fzkB~h5(QwR{vxW%^f_nUwZ)w z+!_kA%g(O~KJk1ul$c?O;dL=5TWj4EMrU)Tb%)K{FUPMMJ(9VnCmprSN`5T#uYT_^*U6m2{rH}7O~__?kvbzV z;_kmL^$2q2)sQCMF0RhV2Nqy*{S&nk~|TFN9~kUfsCP^jn8qW$smB z!M^F+%|KL`27lI6B>c)fWRgMn!)Q9Z0YZ+i4d$aUc$9SG!jl6kr{KH|9^(4YH*Y5% z>WGatR>lNPmI#EfFyU!0+**;@%9)exMvw=UO^#F6{ADA?#M-{rpp+#Ex+K+1ptNp| ztlr4e;X3=I>1+nW`W4G>-8RxYI>@mQP1?V_<*raBeO{@0)17g(fU($~udH0p``4!n zSDYKaH27#CuFOeL@z_*@c(YZ$pn6f*@G6$;e&~9{j)eH};?&lD^@#`}a8DkO@Os=; zZgiAS7>J#wpU0Us>{jxFE=%tf((h zw61#vIq2)^ezGTD%4kF^f7wXBCJN4Hy8=ADk&I%e-T z#-Msu?mheou?vdIB+60k0#+^9gsBkdMo&tXx&`dZ$ec|KctMx9W!t)oVpIc{q@J#- z3QSQGFDq>mv5?zSovz!w&Ui;b`tPJ*CYBXU62gz|TjrEBVP+M|4XwM3%@rxyKZbkm z)YK`)?;c%oN7)PUvDs>yu0#(ZW-;wr%W?ma^!HP3f=#>a z_JxkI^@t(+#`v3(qWrfB(8cQLX=9DGvAS+Lx~5nYQ#~VXtdS`e`-jHI~6(hA?EQi?Wu&L`IenLb9dY zQV2;X+xSFenXzPFuD<`iKfdQY?|Gm1J*3R;}bpA0zs5Y`sJ@$V{XFUvl0xCk~^!%o=dzp(m%zW@N7VQ>pG z7t*(te6K3c%fj7p(eqnPrK*8-8bi1I%B3mD2A68HO5M|P?~2xo6!q;Kd$Ti7>3#A^ zu=10OwbT{82Hi2`v5G&PfLyaI9TBO}AEGpTau%fJ*z^W6`VL~o@RQHc(>h_%(U^Jt z!QAD72Vo;ur=wTeN2gBNci~7*e~Amr!)ZAg!$_GfI8OI*dU_AQt{XMMNORBF)$V*R zY%I((2z!fUy}_-#Zw?A#hk%>4Br}E^mK1*_+X+UVfk}J$oW@>~X2~uQL6>tV>%5{_ z@G;Q*thzj9OOw8LIMZKdm%B~m))RvA-hdSM+KdF5;#)zgSn5L#PVX&zS7LCskUQue zYw*%vXye*G!k=3~+U}o8JRlAc4_W_So({+unou(c5f%slg`A(IS*Y*I(sa?D3PUkpBN!{E__8; z-)*Ofb}Z6B&1g_y+THv+@ul)3XgZ>$RA37SN8W3wf0CcJjr}NoZ34PTFxy9WNwo`J z&q2y8>I*G5doi+!PMv`^;yM$~AI2mxeN$`u!S^=v6S}L-l0S(RJF3F>in(-sNAnYy zH8v%V#FsQM)XQ&$H|w6T;n7syA<~C>pLQ+cFsM_igXOyR+7Ixv8=4l@&m9lc;T{Ty zo;;z#qD|W-LT92b{^8L|SS{T~82OV*{dD3bY)6czp02iKKnwAi z{~^Ax5=$v=(}{gaOJSY;7+Qi3qvvw`S3=EmnW3t614XZtd zjeCkD_xK{MuKuVb6!Rn7dTAJON@isAe4&ghM4ae!63}lR642&H|Q`Z?{fGaxm6h?L3+0u ze(~1xlp>)lPc;Q^rTh7>+BRs+8Sw!%`JS6wqSoD|Ua+e02F z$~7$B0T|=ljP&%a-3HaZfm?MbTDWs+ov zVV(H9r_#$d+~IS5R{-i*;YW^#XzPCB5yt`7FQ)iwQ4v_fN8+y9tzaClPJH zj2EJ2)k*AT`c<8`zUkMDtdlnUAPCuG<(M0MhZ10e^|oDLve-cL*sa% z*`&Uhv(}ANTa|FVNzjS+~e8bgej^Mc-n)gFs7 zg_(DmFOQma2IHbEu}L&3v-s>qzB=`-=sDXuHAW*vn(ZKvd!LK-RQM>{bV+3%+2SRe z$i6~PV*-+$rCq>Ch!n4@+9XGsmS5wZvkCBM)iuOnId0_(nDCjeUT$O;0hb`4F?L_9 zlC3S&IHz1AFOSWX(LGc#+v2 zaPcYM|1$M>)#<(QE0-Z@&=Caw)MYN|>Z0z`VbNRrvbTCE`yar?985&0>jjI;Vsf6N z89(^(E8C%=iY6A+iDl@3-jU$WPNO9?cA6!C<}MT7B`=-R)0ZPhxotxP94NGePV%SE^sgZ?fHm{e$Fwc<)GdE@Ds*VV}g{`^0bk<9;j+jIl2ZxxwR`zD<4OR7oN1*70 z8&>aAl@S!T%`h2Nee)zfK7&p>EMDT8bIA8-y}!Jtlk? zg~d=fyqgIFw48%-HGhUC)Zxyau)|%^e)GzOfU=zA2na#B?CniKO2r$m)XIoya9fXj zfH87NQkQ40VTXs~_OE>$CK)lyD>1*6U)&-!PX2JcdD}0Jx>SMUA;n!oLLpePaLs diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_mirroring.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_mirroring.png deleted file mode 100644 index 92d32bf46abe85594d05af43e747ab2fff8ecd6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1975 zcmZ`)S6GwT7X1@KG19A4DG6mnNPwXV7)&4mDM3^+0Z9yjp?84*lBj@QiXm7AVSs_y zC=pOZP%tyhfCxi0A}x_BLz7+v1-bFQ-1~CB^X;?t+UKmj_uIPWd$l@L10~M-rSLWl-tJx`VeNTKtE*k$Y4D4=Vk^Z%M+5^c|lvHJ<)TQ}{ zpWM$dsT)41L&_WS>MCavi?EkX5jZ3UkJodtG!I?gTb>{;d}^BclyR&%qp$EExsKkl zosjmXZwqU6gvY-fXMn|_%EmqwqGUe}>%x!CMY4@sCP7qOaZ#ML;-rP!4si}29?yYF z8H*9TZLXssS(fn<(f4wcn8O$CS73?BHSV0nPBiODccQJyoQ3Au zzMfJZNZn)$17(yjVi-x>fQs{juNhA!{6?oY;(C_I0mSr`FBb z7vB6TRwv}_5t-?5g_+m9Uj>F9BZq_cPw|Hi>9@fv)D?*E4~0r>D`l7!-m2({3qR|3 zU9+AZyW!ielV9BFu+vcq>84?1`Fo{m^`4MtmAOaVaQtY{uj=>p|%@fuy??dw> zbU^K(B}v!e9mT!c!#8^7tvEA{GiAVN!x%V(sc6l<;twtWmvm&PiLI~EKIZ`C?8q(^ zl6Af6wyb|RcrfzhvQHH1#Q$s4THy! zqkBZ2H=4{#N-Y@IKpfsy9+EoQ5Yf2sQtTx}+f35%7u2gpX;SXq7V`E;dyR{hGC&eQ1ugwYKk>$7v}9?0H9-RvicF&? z&^$>UBNgA8ld(LxK#ZRpIslYs(9)83)od?vziROaY=I{YBf}P@KmYyPIn$;rpj=qf z4ZXJ6OgCr1``g&>1tG(owU6VfB83>PpTXO}bj>&F%4JbAdkpYaR;af@R-{dClbCw` z&IHY1B8v6Ab8u-^MyK3?al#eg?uZt$#jeSFzj}9Rk|UTvT!bP3QK;kEA;uD^2mMOrdFaIe1^G( zxuuzTX~SX)0_0iV)oRiLQ99y!#k`KYRtIKh0czFg#(?}Avu6ZO=HAy@BiwRr3E_2UZ|MDED&_bPRjCH*3AQsT|&fsl@Q1TeeL1K zaDQbtCRyemUk(}Gkp)}?+!lxlkd~uUrZ4zimSUx@e zBkLfoX;9_5Ud!plktoJ9jj-uitKz_x9V^wKw32@1gpTEmk84^-gyqO?h*<$UB%Z*dD?FUhV*hJ_KmDHv6cp;7MC zwxwY0QOCi*TUFjor8xx2^8C?`!r(@XoH_!8?7I%cFmFAjpst0)jVcmuO?#X-s#o38 z=AO7v7Y<8T=A^YX7&99+hmih|6r;`{+JG1jEa-{kjd+~0PkPxs;E&kUlkD#w())(u=eO9#2y)&V?vRVw<*=i2>tDM{ZW>O737l&| z)|jfvG+3SQm)-t1&k|7rh9RV)fBEqJ&U+@Tc3D>kc$k;gJ2mi&I#XPx2MxuyBUdV{ z#{IcjKQ>q_EZcJqgHycibU8D?VK5IwT>MO*eDQK66;? zk!nwgr-}fuKp-uTB5aOYBK?q-_CMO%TUd*zJpv(Icld5~{}n{V1c!yB{(nIo=Q3R+ uQ2##RR7^->GC7_Kpn_x0Q+07sK26~JM<&>R=irGEp>A#yta diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_mirroring_notconnected.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_mirroring_notconnected.png deleted file mode 100644 index d32ebc41794a1b9e90559de38d6d4da258a4b65e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2048 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 delta 1162 zcmV;51at zA_#(!qLG0ZNuz0*_-f4*>=4f&V{NY;HCEBfho zyqjs$i|t17-hUPi5J@=2i}kaDeYhevn#Q{R%nJrH0{688X`Gu}_#kWW5^fXJx!)X@9`xo$&YTaOd5xoIA#+wQ=E-Ev5I@~IiAJ^f|`#bS#RM%{2cqYN&UA(t{Q&} z>OT^E{S){U_s9BV0AIxik*X-s@>voyo~3BBnj1?VPn>t zE__`Aa&?Dy@GQQLzmvL8+9Gsa0&>9%RhDRNM(~XcYukh;rp32FzRr)}ppY0@S6TLP zTZPUs8wccxj&;0%tA&ludTcYrYTE^$B_J8EK`dLt^>_roW#t#+L)>*50$Yc4E^q=R z-hanExI@VNBtM_*!QHqSXT|=F-ssdpe$eqsyb=nTKhH46q%6z6aEjFUU`KV@wQ0io zGtWgwXMhshN#h6agt2azHpGS|)zP z<*I|*ZHZVE0qIYU;%&>Z1L-8{r=5g8lLY)Kd}7lS>`26!@B+*Jf;4^I(xF3#4u2gw zbl4vM0uk|FSf~OOZ~y=RC3HntbYx+4WjbSWWnpw>05UK!Gc7PTEi*AxF*7ppnF*7YNH!U+UR53F;H8?slHZ3qW cIxsM;u7iL8000?uMObuGZ)S9NVUq_1BX5ou8~^|S diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_remote_display_connected.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_remote_display_connected.png index 5063e8852f8ce10aaa411a2e8729d4e63d70dbd7..757363638f940febb3b354e02cd6e129d4c70019 100644 GIT binary patch delta 1129 zcmV-v1eW`+3atu|lz;t6L_t(|+U?p)jAT{jL2AE(?X2#hzv8TZdsgj`kt=o$L+3~ z)VG%nUqcBYo zp}=|ABfLP+&jMUWaFHSfh~>rk^%NZ8A-t^gjJnf}0(^)o^JnfOMfXu`-G!x<5k|4! z*g2hegF*akihl=)BCMIkx>?5@&W|UJ;<4`74fBu{`EDWkxs^H{opDie)^Cy@Hz$qgZd^PJ9=yZ<713OYXu)1ot0c zHy*&JxLtVbgJ|%JcrU71%-Vp71;|`DjrlaS4RC=F?SDVQ<(a|#D9XBS)g(3wVx4GY z5!+QlYS4nb;@9hugCL zo@`h&MTqUp;~i_`!$o)l`*E2vDOw{$-PuVZlj1`%coCoAIm~DM-6TStg_tChOK-Zs zX~IhJOMl#pGpv(#){$wXvUz;ii>HP7aE;6p>dLepE{_jKaVcICrp%(wB24?i3L&i~ z6dZny;?y=}o|XVvl9VQ*4M-LLXq?pAvsEAwP9201%KNSV5nRz{*D*$lo04B*9@y~z3#?W z6(Dzacngo=tN3?v_o69AR~2AYjzWulYcjL#b{~WxJ8#WNIaio2Lqqq<6 z;(umbFO2!L;!E-1Mq!aN7q74VYHus@jgD7iOY~&(dB#xKHR>vNk?Kx&qu(}k$G-Qo zzF|Jjv+q5@V+vufuxLOVWS?v3C&Lz&R;teB1unsgPzY(l-arS(aF+1$N&(WBicx)+ z;34+D5Zw>sYZa?e(-I&RLoUSUGcZ2q04`Q; z+-@qwv;;{1nME8(J5k?mW%P*@;0N3?1LL=Pt`jamB5j<`+UUW=cWG&9X+LRc zIr;eyJ&a?EbRV8I0000bbVXQnWMOn=I%9HWVRU5xGB7bREio`HFf~*$GdeReIy5&e vFgH3dF#M*VOOwq67aB4xF)%GKHB>P(Ix{jlG&e0UH##sdjr$n)ll}xT$`U6; delta 1162 zcmZ3>wVrFjl=}akE{-7;x8B~e?}&93IsWl{?f1@`0!MPU2uSDhIC2Ya3EJ{OUP&n; za%Dth$JCBqq5m!{+S00QE{-B=nidF%9Q1PyFw96!KOi9_%3Sz;Z*pP!w{v-$W`8f6 z|7LI1{({Q)|K@+5ZJeHVE`|*b{!I_r93vvQYL!sEpz;07g-W-L@0~llJNB2W(RzmJ zjr^DI>isZVX(C#|w)!(iKyuUZLXO3j@7{7v?6K>${wVvZvR5LR-){-~)nAuYmhBLm zuKDQ34vvDU%hHyIhPvAAYrLBBq1a;4*PeC8UQ9Jjw@(}OPh4ERM0oL@`E|KFmU&%Y zyX^kHiUyTKyQ1o4McKbS`c)FRqHA&~E0naV@bj7c zmx|syD?>uB{?wiRxyhxapY&j9yCTx^5{LwDtca4hN(j7`&KbZgD7e_}R&_qI^qV2h^Y z9ii3?Qr>S@>MP|OOVf){RW6pc7|JKqhVyX`F;;&nDJ}>02yS{9p z)k(k0Q48Pxa(eu&y})Mf`z;@>1r@d|KFk%Lk@YviDn9!&*W5H~rYC{%z4JdB)!#dI z-?N8n@|^PfC35!!p9v-`nyWkS;OvUf$tnxy8n3xpb-j0fXv3wu51IFLyg0wgBQv0SQzMcJX$(A3i8n=IP?pfm5Gv}(?H_!OqIQ0WVDk>{=}Uh9e*6ELeu<1<^s=xo&sl|if|r$w{LNsm-1>SCmv*wlx3-wu zlZ_6DI$enfEUC3snErWB>6t<^Bc*FSJ3Uh7C)wv63-WhaVWNEX>6hDF28%DwRP9}E zGk2TarbYF=iN^e`#n%7j1F4m9?adpvDr7}TFsF~wh8iio2-?OTyXgw{Nq^9%@wYk6DBMEHeKzq`((exg4i8* zgF1jh@kK)KZ_l-u5Wc8x*Nls*&O8xcs{gm9pY#5=D>WgZJ^=)>|1pMm9`(L`-XxoW zfkCyzHKHUXu_Vlzz|7#drdT38vG0l8KN26sMN+n{L3%}>cp atHiBg?Yia$paw~h4Z->=6! diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_rotation_locked.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_rotation_locked.png index 4c22e6eda8113c8e57efa786dcf4e172b36412c1..0098df49685864469ec18311849c0aa3e37d78c8 100644 GIT binary patch delta 1927 zcmV;22YC2{57rQnlYa*$NkloAz6HJkc6wx>WHd!Wnh40KAU6VUQ>z7rKY;ImPqoc&TAl?e)@U$9q=^8K8La|~ zfeqdmLqsE7GJjSB>wx{*&Xz`E64FKhM6-D>@S+Oj3Kwb{!w=f-RY#`8wjqsPprQh< z2A(3)imKl41zrM-u}gqgfQ`U76+W?CsUg6dDI?)A;0?V$u65r7_W)M`uQ|^w20jKZ zbjTXeU8aVB7!pkNmjj!DGqh|wVher(mZ{+T^qHB!2Yz9-yg;_HT6FS z_ym}R%>3twm#Ap{G~hjCIe@s#Yk>neHX+U)oOBIPcW3Vnoy!Pu4V=y5K_oW#8rZ3V zl(jyG#0J+B#RxNjwMtTd^caV>Yk;SIuD{MAYMlrE1dag5v@YWjW127lI9M#?OJ2V@ zC1e_+9e?Ase7O=~&!3LM;ALQy3SV;SveeFW1-Kpf2!EJ_Gke8CzSbWzA6f>H8kPtaQ?7_lD z18g~*xIP4CC;??1&=Ft-a0T!JunBk*vGUg;q3vmimdpk2b_A;nhXf0o-_>`8z%5E_ z#eaXUof=?Pd>L?-mSy$tRVq|g2WHFQGvI0@$jNG(rAUZtwqhU>jI15N7y8UpV0xU) z?IvIh;-BqH?tLU?&*{J_#X`PJ6wr)9V*F=`H0WYrHpyfBkjUd~(Xt#cPw#7%Qo9JS ze!GYa8NfT#dIg|HeargnCg3lppG*B`27iDV!)?e?3YedtPgS$z zhY?LMvd&NXeXs38{oM)tt$j|`CN*}T-Cn>{-Bj|pH$Z>jE-A;nevF_buy%)mLn`Na z!0C9lB$u$mhH$pDEuhIb_b#&Cy?t3?{IS~?wXp%ny3Oius03CMY>`)ipMkN6M}HXY z5!)I9JmxDzYIfACKjhWdLxm`2KnFe0GjS*bOO$}4z!9COeobl>0k+1+6SyeqQ+5c-WHfwhR>8)M@E`mXpCx1m!L+A!Zapi3zz#rg1yFT^c6Xos?45pukXa@m7 zlXXe@b+48nRhy!nzzG@<g-nC8 zyO15$Ey$)uz4pTzjWi%Y4kQ51cFImE#LcJ)xsT{j@?86PX;o@US`eoJwtr)?*CA*+ z&e{8^gg6Z_A%8)(mH{ruiKRQJ1%dZFWW;HJeXQ(8zNNbW(W(TzwP5CV&k9hEAw;}iE> z|Bg_bua+%=*p8gDwh;IbIe)OQJ$lR7s6g}id1*l=LETECt>s6Nm>~9$!f}Gb;G=$f>R+CInu8E0ria|D(INFO^YbT>>1HwVB+Yf`8`_Z?F;Bm@I1> zOIjL>>;|tzHc4$GGnGhktQ5?ZJr7`1=-U-jwChpC?Pe=AuUK0P}IryS%IXYjMlOelG`%@C{UZ% zyA8?PJH!Bad#NNKhJOV6GMocEjwCg>a5Fm0P;N$|NsBC-&hc+05-$PID4IHN1+GCn z!ggx2x$Jx|P@xwfS>2WlkqQjTPsb!QTU@>gxDv_R?Ll(>-1Haw=Z9s$bI7u3X-wZN znjV0+By7eF6A@Q98_CbP2uXa(AzzD&&>X;GA>YwW)*;P6j6OBbYM~IV~|XR53L=F*Z6dGA%GSIxsLvT)R1wAqN*4GA%GUEip7yF*Q0dHaajeEigAa NFfcd)1BH`P2QfQ4fgJz< delta 1751 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 OIxsN6S^sR45eG3z-QjBh delta 1649 zcmV-%29Eim4#EzQlYa&hNklzSI#8(0aje`+qa&Nmh zb?lm+>b}+8ce<~WInd-zcU5(rzw5mIs=$h@$Wbj(+Y`u>IDd}aId(F0?b{0gW6bgb zz)`;AD(abgQWu1=wv{bVKC;TM25tc^0=mFK;2mHl3&OGhz)?N{HUMt}7iXS72s{8h zQx}9z+nVMmud>4`-*c`b$cK9hxXdcwU2Xs*!0Eu{h#5py$*xsiLAc)bS(Yo{c*Op* z5x@oM1nc~k6@LJ(M=y#}Ly2HsCulu!cUUheDILVt%SaT*@gP6YH^%hiI9?Dki=sf; zNwg^o5~DJb2S5kd25dwePE$&(M&kRkgqf$V(6fQ9Ic*Z)7+@#xE}7)22!PvxGa6Ff zl?@dD*a+M+pzR+%0E%96xM9V0Qh!(I8?s90d^ht}Kz|Q-1USk5Zo(P%fl1&8XAXlz z!{1lH9R+R1fX{v7jumv;*?`g^%7wJ~8F;D6xJ6OGmw+@O9bmpfpFwl&;{kQ#%3&MN zd%z{YXTT~uad)mgBu{zH7;|qN$B{9nQZ_i0YEYAlIF6OPQ0W_El5Fx3C<(=}JpmG@ ze6A$5R)0X|<$2`Ag8PGjh~rq>uLpJkC)-DErZ*3aBe}|xK-U;kDRCQCEuiGZD&RbX zyg0{Ez6{WPtL%@!oA$TPQ&+_}a0nqr^nN9&3_ymtNr0PxX?uO@{Jx6CHXH&%goNUk zNmr1X*j|Js`qlxzlGOD9>aeZ@UiScc1@H!N4S(<@#T=h2`bB4vjC2RE8Ts=25z{zS zV!T|bV*)Pn_uH}N?BwnM@07e0(cdP_3sZ$`C$N%04D;c+Iw0;>osoM zoJ)zN>VTj?c1RhaPIjz1wD>T>pvxQh>|B8;MP6ogBz4xMMx2{4smv8 z*?);H$OG)(yMQZ6J$xJD%}I(@z*3<;QbbD;0A~Wn<^a(J{sO)sd|4}fy%|{*wKgGV`-3$&Y+MnKnj-WmX!*3JTZNcZ&m&VMy; z?|)+Z1f{{ABQh?y2^p%s4hVINA$5jN0GA?LRIW?{9|12CSPXfN$gBr$MJmb(-~bXz z-wPdcDFIOCW*%9<`ic1_X6h`ZuIpL6T`d zXik0LG~|3xA6cnNhK!N=ge{r(H4A{NlrhG)N8i&8iwfat4N{Hf9g&HUV>Gn@C?Z7K zlCCkP7sqj_ouLpAe7VC&o)KzNMiGE2RbpimC?Z6*BaY|@%>dOyh>|^kA%84sQnNT8 z35h<@ous#b*GTs=3IT|K8BI4UbuNYfCr z@s3+Wh}?;Acug@k36eVRF9C$w{tS|U<+T|HzVnS+M2YQgNby0+g|s;cd{|}NqFSKM zlcIAK`V4Z^-oun$0BoYr%6|q%z>!yM==l3OjPUsT&012n}oMyJd?i$7aB7yFgGnTF;p=#IyE>tGBzzRH##sdt*(QBlkf&HPptJc diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_1.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_1.png index 3b1b3cc90a15f72039917a715eea8ad5f202113b..471e1fa36bb08d947d1cffc4e67885824aae7041 100644 GIT binary patch delta 1118 zcmV-k1flzf3Xlqrlz-q!L_t(|+U=SVRSL9`IWN1-61E+Q!CMhh)Ov<%j(y@jPZGv~|$GGxe*A;a>3=XrRZH?J%occ-Ex59G}9Vt?Eni-5F39%!0%mWu}{ z@|%IuvJgPCenFBy2;2qy)C*vcZvdmfG_VQyn`!|x@_9*q3-AWm2>deZr%C{gd=BCE zYk-$P8R7bcnVFe%3Sf{2=mVYt`++)^5SSVPEaA=v9s;L;ITi@_i5I{iuO_|gz?A&F zV6KyR0Sqn;;C}*e1u+LK$}cSfs6=NHxFv;@{5Q%B?zDS*DB^E@x7 zaTo#y5!UaRSK?xN zf%Cv60zzKMXvP{p~u|F9at&Kf8WE5b17T82{;n2N=XvnhUUsfXBRZ0%$8cBv~KG$^1U> zG4GTBmVZR2A2?0x^d?mDu?k>`^*(SLxCqQf)sNVR0IgVm7C1+bi<@o{c@!`#UqozV zOak|4%>j`iP7f$Z@<)Kjv?4&xJiSSc0G4yRJ&2>Ll~Rnz5t#s%sDFfJ0I`>M05J?=UyFn$K&@8$|2{lC ztgJr)oS?&VyTl5hlLx3)t17mu3D61hp$TBNU#V33WNi0cA`bzNL1l4?|0!;{T>b`p zD3wb2dc7Vu=XnUr8jAcO;65VJA)n8OzPgJ|0L}V}{9fR-Ec+cd(NG1jkl!ZBZ_vt} zM1Ri$XyjFXzZH??jR1e*CK##!8hLduZ#D1&*g*#ulw81)1u)2i*v@)}II)dA#SK*e zgS@(z_W(G_BKPuKLoXdwmTw^T@23zqGK;kC^ow)Smp_auNix*9|5>b%2#HLVG( z0KUubKY;gb+EjHvYh|AhUNuYmIYn>#BVq`e{qPYdOEvT1r3#>2=__!oi|4*{S^sJm zb!))UZiy^83XG4BgRoAb;nd13Lxv2I;~$d5=D8sEhZ_I@03~!qSaf7zbY(hYa#Lkt zbY%cCFflSMFgYzUFjO%(IxsLgFf}bOH##sdfb3mO0000bbVXQnWMOn=I&E)cX=Zr< kGB7bREigGPGB8vzI65#eIxsaYFgH3dF!8bF@srjBFAbJt> zB1C9!^{P_vU_tO8r6__RNI~$RqEG)H5cKFl5&TNB9%f#595!vzY<6e2 z`#?xCOeXt0@4WNA^Ugql0tE^bSRe3xAK&-?Yb&MwP)U*pJb$~rlJC1g@t?yV37wH03HJ;fZs%fz}yHB5$*zD4!8(3SRveJUI2@{EPA(r zN&R`nTqpAaSbtoaz;)mzY7JPGUtR=|L}whhqlNHjXhK zeb3;q4H!mQzhhpR6Tl)L5N37_{kL z!X*;|L|DE8JOxey-+CF_`GSZ=UJNz|oJXzx<=hGok$>Vgfmz_P{@fFJ88i!!6!#i% zgBUC?aB>E;$?wO3dxTkDEO1hQ2=Zr9TiXh2i1jPMWfu^i9|K+j8;IHZE(;)=n*+cr zpoXsK#QjH3xj;l!X9n1fN_PkP@t;o20E@UJI{=%A+2@@Tz}VcN$p(O@^ZVF+-YEgB zaOVLVfqx0Y)0@7MPgQ`3SRbIOIa9!oq@E*n7a)xFQ@~Z=Ym$GScoeWKUqKZzCV;zG z=XOaT%^4u%&!K90WposX%p?M01@Oz32S-M?j(8^z#uPG+&#cM zRDUh+SK0*oDu6*=?&XaD&r#J}ClZ~$31E>2Rkwcv9LIqax321K%2hH zM%#Pf3o4I@63#Qm{)D;}-iUY(xmB_hmjE)AJ^+`x_}wy4@1p-q7k!sdcZ0janxnw% z>@1{I$BPrrZB7alD3B=r0yS>eR%Not;FEm>7aB7yFgGnTF;p=#IyE>tGBzzRH##sd q-19p;ldc388Z#|0H!U+UR53F;H8?slHZ3qWIxsM;u7iM+-vlwLPVF!N diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_1x.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_1x.png index 4544898d9b8d708e7396382b7f6237d59ceb397d..cb1eb0f28eb6eb19c8516644f98f7490874b5865 100644 GIT binary patch delta 1091 zcmey#`IU3Rl=`EdE{-7;x8B}3-5uj9a{QzJd7mp9KN?aJA02B|>fpGPCu07Oc~Qp> z!4MagsX0A@!V@(*`Ze}VW0db$Fk38<-NT-jTC-Zu8@YOB!YdQ(sRpLNf~t@+@C{L;U5_Y({(>LdLY-G4v-QF7Gn z%1v9`n8mpYi!8e~b>25gGQ0Wy<(pGxB}xY*7H7(~B<%HE^yH$P_UzI>XXbh`*nwPjhj7*RH=6dj&MP3+3fB-tax1xntgL25#Y3Vuhx9npXBl zyr#H!xjmcsm&^ay-;V;H5@TepcL&CGwL49i`eCDNyogzG>LiBMKX{ro?EBktC#0QO zQeIUd8t;|3sY|;syknC@ne|dhvq@>E)ho2`#b0GiP2cp({;}DehS>$&d{Nb>>t&8^ zPR%sge4owVV{si*_`|+O^^TTH^b?|@{i4CAy&!tY8%5lCRqP4+IQ_-Q}?1e#`%wO-yXUV zDP?2K$hC>#^bIxLg38wSp4|`2WO#1}PMT6#x0re&R#k3@P`FzHjj7{b9Kp2{Y%Iw!1-o8&(_+m@$>X z@>u>9p?QHN?^aCt@a2O}9q(=79noCvIw9%{4Y(OM_4ii9c~!Jse7X0B-jN&q-;Z>- z?^M5c`g!N(sD`a}t(|;#lw}u$Eh@HuWSX1tWr^&A3>*1J^-^yx$gMsf#rSE((}|~_ zoXedmW_HQ2Trl5b@%{y|Z}uJUPOjVbaMy;JyE!iZNmTB=RrIGwEPRvmuPvn(IeZ>3 z3&b?KryhPZdxN#gQx@ye61|A1=aG3o{CC7jFXsK%^ZJkA<3gLTJ+t@AO-;God`W!y zr~TGHrH*_telVkqO(wXfK4i&(r#z8;=e{5FpBnhhX~Cs`Cq&*_DC_)XzFow&=DW>p zlho(O=lO1W|0N`1Wr)^PucblQsXy*Nxm6D;O}^m#E{1`DLAAs+q9i4;B-JXpC>2OC z7#SEE=^9w-8X1HbT38tvSQ(h=8kmDv4R2z7QFP?yr(~v8;?M!q@NwhQkCRWZ7ylks>i9>WtUsB7=2<4Y+E?YyVb0pS znzPQDvu+ZD<%HD*s(J@mKfXEO7t?k9gHw(Dq1+v!?n?tVx4Lf-tJBU@34NH%f37FL z{6TGvf$s@dt_%HccV!uU9@o#g_Wp2%_;T}8d=IaF*m+mrQQV#T8={XIujPx7@D4up ze^$V@-m@7A^W+|X_{jUs?XKGt`NTDEA1v!i z-!$D=);|5C>A4OD{o`{VZk8|Gz4WEYG`G{sE3Eh3zs8u$Sfm_xymW`8`J-Nq`Sn+v zA9Fldab@<+{8sfParY02?%4Y<+4z;Yk9;S$xI(aJ_Q4ZhWEbil60$qw_;t_zfLUCk zavk??U-J7TW_MBISL_oe^`L#%tIi+d`p0oU`HtdSq3!BNwQa0v{QYnmmj}kK*PixosNAZMjklXfHuX+Az24N;kA*O)!inD)gzTDwIjbUv} z9p~?Ybyc|%k8}2DEIoMP^(!8Oa>k}TOYgSNz7nZWI;*;Si*ZV#l{JUqUlR-C-eb=h z${z)OeYLM%YwfSI&?_tv$OZORA zrm~(m{vfr~ZTjisJ0hZPcpSfDcW+8nz2{txzZ!Q{o(ej6%~;1fyS3Zkwf&t5n|5!l z$lvm++%r6SbzpsjS9|gM;P?i)1LcY3E~hxlUcZPbSd?2J^1k-chqF0bU&$X&?)`Pv zEmrNm>7Sm}(f@Z(zO9fZ&sZNF)c;hSdqVJouVH^V_I~R$y0=$gMdp4pZ)HEW|7wC+ z>n>g8`5J2cgY*8s!|~VI7dtHs&=BEj#ZEo6KXHGPiu{(K7_ONN3=FCzt`Q|Ei6yC4 z$wjF^iowXh&{)^NT-Vqz#L(Ev)WXWh#tg`}GBCLF+1dt0M{a&fW?Cf{9Z(Hx*EKgx IKEh%M05T*BC;$Ke diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_2.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_2.png index 3b52cc35b0d19e27babdacf40c7c49b9f7fb1011..43113306b6754d3f77db6757b13fdf9ac90f902c 100644 GIT binary patch delta 1128 zcmV-u1eg1c3YrR#lz-|;L_t(|+U=S08U3R!n5P4a+amVcMB?pO+>6$*fF)>$qY zpvZ3q%F99kE&4@C{t$2n2y!ogLB0wM0F%Hb;BT%4(8w1g`7OX(U?cF$te-0ZH1ZB2 z?biS=fnA8yFHTQS=TiWKJU|!l6gU9P6S4&6Mu3pzE&v_?CxHbPS?=3j0E4`m^sWID z^8KP-r|ktWxPMfE^T1`q9Izz6ya=F-&Ny&W3gHkj?(-&qGCF&J$C6WB=xwbx+33}0vKz3fUvf^rMXe5-w@hH0K?x0z*^un zu(K5|Z6SaW`KlD*Ij|r2*-G2iABY&_RhmBpjw5FOVt;N0FkGIB{tap_uO;$e@el~H zxIS#u)DEF-YNk+&r@%mLZRTy&d#c%>s7=& z=B*Pzk$;!30T5Iw6-WB}*vGt80%(y(673Fx;MDN&a9Jx$6qyNNkXIX=Tfl{}v9URT z+EkE30Sxk0;0$n<7B@GIB6TBVM81SL$QTFiBIkh7(b3fUlVt`JCHbSkBWmY(&eYUY zJ_XRCuUy_<#G|W~QjFA*ngAMkwX+)lUIFWgX@6^LtpK{wk!1UTcT$AR$fqWNMm|71 zv7H145owk$g4?mxs_;HfDnJb72)#wfj?OjOjH2F;`+d9;03UQIxZ;LfTjg7$b&ey ze};Hso4LhJQ~-m#x|eq!IKdM4@@zvZ9aWL9BF^t85H~VQ)b8c`)NC;F)sJXT)%A@s z{Vxn=+kQmbg#E8o0es*pa7mVxjXEmBN`KmGRMx5TUahQ0mY0c!*>+g_VQsf0fO>Q_ zh&a`GPx#d|A6Nl=m!E$CQRiK%?q{v+6C$hTh@MmQwm%|05UK!GA%GUEiy1vF*rIfFgh?bEigAaFff4ZT}=Q003~!qSaf7z ubY(hiZ)9m^c>ppnF)}SMIW00UR53U@FfckWH7zhVIxsNtvE}iT-2^d%VG2$F delta 1116 zcmV-i1f%% zEW10*&dxdC%$+me3=}9(pg@830nhXBJnz4#Ua% zAmn!g-RnXCBl;Ch-UA*2e(nXZ$k%~`z$~x__?v414Dw}7elPG2*a6h+`neLoAYVca z`z^pL;23J?SLWyE^C^Hu9-s?&3Y-T15V8d3Mu3pz&Ie|I%fK=#Ecclgz#=aXy?el@ z{=A~s$-Dp-mw!5N3%G-N2CT|2F9L|s83v}b5G9(-`@9JtM&|_ZM00A1d}alZdGC2% z$>6XP=tV`pWnP&Rz#{JxIJ;&2y`{)!QUGhM_kmr&acyp7=(mN;2w+)UAJ~fW_eVS7 zk_iDqB3}ib180CAowV(ILc}630h<9XqMrVh+zJq4aewQ;BydfC?ufiJngxi(y$ReV zg2)S;905)I{V?!=z~w~(Cj|&0e;&29t+Ix-ekHg(1!T?-0zsW1(40nVc-q0 z9i7pM`j4EN0^{T304yvllziU@m;m;n>~2>a|LMdC5aQ@vT&-4<)b(Z}p7YKLAmsJC z5BUB4{eLCx?<1e{P6=Q{9!+#3Fw)o8*KL%=iqr(K$X8I&p903Fr>B1=)sNJt0Kr;6 z2HXI?C;8`zuL4%&tEfcA2yh>LZZ|YElvsb#905Z90xFkRL9YUHb94C=z=(cXlRpW( z0D7JX zVrY6$xxBNqaBi1r0W6CvncP7l%H=sNfJGjH+gb7ebishdBY)%xDAxcdx^^CI$?BT6Tl)5DsTS`IE4ciH&y{G^3uj* z;1a9c%X1B#bW|cQC$^)g8=12H`vh5CNpnkC7^JRwr@vvmn*GjfTk82%ord)usQ`CT zC$?bS#V42sa;QTYmbSo12NH#e!|@uGxto09?s3M7huUeM(FvIVX@0000bbVXQnWMOn=I%9HWVNrBt z05UK!Gc7PTEi*AxF*7ppn iF*7YNH!U+UR53F;H8?slHZ3qWIxsM;u7iM+=>##uRt87_ diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_3.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_3.png index ffffdde0f9407ce973a919ff7f9dd629d6d12d60..637e079f7afaed7add585fec1c6c37d7467d3a31 100644 GIT binary patch delta 1118 zcmV-k1flzh3Xlqrlz-q!L_t(|+U?p+h#W-}2k_s_?qp5;_8=h|Sr8AR5rq{DD2{kg zK@{=eA>MKg;z108=s^%a4hkZEATA1O;z180dK~sVdiUT_@GL?!W~Mz<7t<+vHaj~r z-95AOhh=ALt8422f3NDjdeyA3!U`*_a4^vAc6Gbm%i7v?Pk*XP@@S>)>vd180@4v} z4AVXb#RDSwTX5(=2vD&8T2B5EyoYS*1xUyba68W782(#o0Se^XIr&@h9d5?oY5%1X zpg_JQxcznb8utjUzt-#ZmQ#R)Jaq6m9>PT>A#iB~C<%8NKEkuOWS4Ni@B$>{zhx01COW6^b}mHAn03Ew0>nh;K75*U+7tPO6rkVl z>-YQdb8B;RGjceJBZBq!%xmEUCar&`A(;EH=+O&V<7}cEI-Ia_~77 z{%cDsK!JP|V1T!bvb?Ft)8HkLkdLwcMVvJQ%Qsqp67mB)k9Uo-yqTcUOQ1mhF?^QK zcj8#T8ye{Wg}DuIQYdF_n6dSnEI>Tm+==tJL0-|B^%pg22_zv8-o$aCklC5XcQ(QU z65=tP?G3u;5nn)o4Jy&Re+LMpWz+6j0;uG zqxL0W6zk961ydewCPn2@AhG|%21~VtmWh%$0tS+AZ~!mCqTjaG0VGO zxVpMJ7o&1iCO}fr845SH-{3|wI@&f?fRc*NQGa}&i%=W+$^b2uTmeQo5c z6d)!vhlN_+!@@GC{VXy!0g@CqTK^=Tw#R$Bg%uzn&nULX4X_d9=O#eO_?!l$G>$GoT~syiaW%$_zHK~!wX7Hz`g}2so-wl3*pAL_7r!n0+ig? zX7~`#xWapRO~W)3jg}t>_50Jp8=31y@8u6&Ugpk}ytAM59VTtXpE9Il566tH?0?e= zFvRP4C2u>F^obs}UidxE>tg$nLfhfI{eO`0NXIT4zijNO1c+BxCxoib56WLn8{#Vb zk^lWCejGDq?E6chZAb8`3&!s$#j$@DmS8%MOt@L4@{10yn0Z?DCk&^%b03~!qSaf7zbY(hYa#Lkt zbY%cCFflSMFgYzUFjO%(IxsLgFf}bOH##sdfb3mO0000bbVXQnWMOn=I&E)cX=Zr< kGB7bREigGPGB8vzI65#eIxsaYFgH3dF!8bF@srpDF`5Jw`~Uy| delta 1074 zcmV-21kL-93W*Aklz-VtL_t(|+U?rSiyTE52Jm0c>?S6|}dp zx_jq=VP}h)>VBU3c;9-eSYd?~R#@R^U@#aM3n;1G7Jo?|Sz5lf>=#=A>4+Z2 zX`Q1o0wVdlaO_A3Q0o1DL4JS_kau2yg!~8(U--B;)JAO~=cS?W~ z`Aiu0H{(m37KVO*I2?9UfP_4(;}blIzg2|5&InKu?s8nlOW3ndxNp4x3Hi9_y^Hh3 z_kDAn)(enu8GqqTye+H&*W}j~0b-(a7MBVkGE?S#*93@(&SUtv;B+AJtrcK%b2I+U zHa0dQhdXdm==}rpYMlUO^2m30cVlL^C#?Pl>iJd*5Xl!LbKJSLwe{$5IFw~s9Qre% zH3F2#$2flrc6zNZhyQXl8}!bb{Q`StAD?<0+h%z zNp!aHYVrM0jTE4Q{By$AcFlFf`u))4 zDG=xU8GMD~YVQ3e3lKLq58-Rvrf_uXeo&*PKoaucBJLH8%=LLZvk@a8As&+*xJk`( zzHtJSHh(t?vN^Kt?QP~T=NlzJ67DkGfO96NH*+PwQ~@eteJ;2;7x2fT-ec)gz$DgR z!0Y&Rkq=*Z6i9l0O)xUf;XTQ@-6F8e5fI5gFL-%PR{9G~NaqTtOn?$~L0V?wQFrkO-{Th{kEjwZE4BTTa4UST;yvQ6k}Guy5Qowacx8s)UB$~Y)W0}G-7CV~;F)mU zQJ~n|EXBvG6OG%Ptgylg3&p=lB;}|SB3Z(deFPU8Gc7PTEi*AxF*7}L#-h(7aD6rA!;6pmLBpb z<{HBhM%TKeiO?*0)M#5Gy1BmIhx^_C%m4r7->RLfonOGv8uxTPfKM8c4|`-sxfuf9 zEws(gcCu%(S=ecgSnET&>CZCj^#DEBz<_uR%cQdieE5ULt&5YE0DOSiW~(ZHbHnwl zTiMw_H`A1Z?P+#%_=!<|_!1k}P9*F*GG9xhmbLqpoxNvmy&PV(E7XNQIy6h83C5z= z((GuCWejYVczaj-6%0-D)MjcWXFQ!MFZuo+Kz{7<+|o2ii3#k2MFQ4wawJ8edj7f; z$|B^E^=@2`iF*~bwjabJK1F(#xOZqw@p}wPb21vhX`#g!w4mKw|a*(i$3o2C{*W68D=P9G}Hq&AhoKdyv0 zz~}7qmWC>6J*&&w0=IAJNzOS+w21KlJXI{y9Q?amuv5VZ3O4RO zpHjHi%?+H$eKM5f-N-uK6Ur<#Pw;ugnM@S5Rj~!JQ%*KRA?^%dPkLQpXnyl$eb*QL(-g`G>JGvf1UF zd)YmeD~zYC=E*kbCcIn$iwO4? zy@sjQZM`fkG%trheYTQ@PJi7X4HmtL@*u(^5asr(rsNu}_dutew`(c&P`mE1L!=a4 zdPnRdplB644#w+8>Rq~~_w&W6n28;^ z2_)FCoW6>Z%Ai5;tcDAuf&0H&VecQ2^cn}MLr7ERw=QJUqL+Qo;kE=%edms5)`af2 zZ+A=b^71V1T?%;#;&?T*GP@{fl1ZLirQ@943`8&xPwadAUDtq!(a@@X9bTVV$fg%N zEbHd$mXCl=G9vf9-HvTtyt)*|8VH8(PlAtsjK6b=;xp-vkc|?He5o0-c)V;4%;dFQ zKk?g@fEARPxjc0iNxMPQZ`|mSIr*(#Wff9$=z}C9^JC-%UB1jfw1MsEG4B$LP--G7 z2n-@u900sYYD%dt7;hwvrYT;bj9K9kD@`Hb-8i1mrV!%BNd-KMTsIEJetU~FyyMXH z)0VsO-lVocMJd_n4NX<{uD1m=J;}VGTuc#i<1ZP0RR@^UR}_2ghyzAfvud~Sl-hoo zbD&lOaqi1x23*8tK$2I_t0ycht85v>K9H#RlP&hCb6TO5$e*Kj(P5q)17VgpanuS& zMD#B!#pviFjP^5Jrcx{`gO@KXsBYt64<)m-XrJ?tsM7&{2mY5%M$f*r2xd^6d*EFS z4Gk#GjX)zu(4rh8@n@obSObkjp>2^^TQm}na&SZ<9g(|ik-L9H`lqA5|2ksh$S0$d O|9en0OeqS$0MtKPy_1dr delta 1422 zcmZ|GeLT|%0LSs4**u&vrbC>EcA-d{$23n%jFE>lv5=>!%wsHu*0vOrGFqN)$mOv) z4@V-YezD8T(?xFOv6fwEQ67sEu0QUd{OXyR@2$&Tew@EiczES=JM4R0vcfFLJ#%uf5R#FZs46sv|}jaM?%AP{lPAJ1hD%6LlU0MA%4 zpqj`-RB9F8wd2lGV2-f#ak`7vKC8q7L*U z@cF}?aM^goqD5H`@rdIi1ye66zdf;$OWW$x{0k)yPgl_W#9ao*AN1sd$nzT=nr*U0 zHR2xTRWP^D)+K6mVBZU?9ruvk@l~D;cR$&%Mpk=;xPBF5l|$(Bgq2jwOMw#~KuQRV z5if&O`jA`VT{}S0uOJj^Q-V>eK=}5>QXJ<#LW+}`po`iNC6I+k{h4sfYD9bR4Y$@E zyya+5Q{U<8R3*pdL9DhPrd!SqyniQ|9>I545E$Qgt!voi3{U>8yG7R_Dc^5;hi4!I>$tle>lC(fYdN-V+84K6D^PACj5BQdo1Kgwit{Sf zG=GbCX}7)FXyoBp^_(lS52Ot7ufR zy%NnEwCZRB(usd-k9drBg=n-B83;gKYF4kV4QZ`O5+2Vljuob^EocRcDC|BA0mmB& z2wMP?=OA z1*W7KG#T_aL)Ndp{OwI%8aU}uYVyR3&MPG#oNw=Pt&8KjKtVIKw>?-o(Fw&U%CGwKa$ z=f2Yi69NZ=CGDmmXEB+`>cBoCp6N^Bt=e4^%o~aPpO11`vYkuvi&;7Er5?+c4R4

%5c?V9((x#AE1*U;D*r%$jt=2|aLarALixgxR zFpNpzlzBXvw;9xf&{N-gQmqD@HF6MJ0<^J?;d2;kYqn>Y;UcWLm6TMLO^!{ZYduli zpZ!Fj%~2Jky_U&2%Ex!3M6SXX+{6JiT&gV%I&{wB%q?b8Zx5WNK*-?iS^EciaC_lY zwBk*XeR(VLo^VpBBy&>X;+5!PRU^iU+FzeYp&_%Vw-`s~y0`(aJN*$efg&hbh-d2N z*>q0DkdJOv8768>J4?I1_$t4ymRxG}?sBUS1e*(#*0mIDFP@s*d`2zQIzi@l>?%b< zQpz?nQ8uk((5UvG6D|jq-+KhEQvFAVoW10Cy$wBp`fiNx^dF{!#c>KN+<-rq6cGRb z=u@5jspL><1U5V&;@bgc7*lf-%pntVQ=+Lk*3uelX7!C&3}$l0#`e1)CXO6=CguNw Ndg+FACU**E`Y#(xiAn$f diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_4.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_4.png index 259d0cdb3031db83372c67ac205ee7db044e886f..8fca5f2611ee130af738907ea5857a0e2bb5028e 100644 GIT binary patch delta 1087 zcmV-F1i<_23GoS#lz+iVL_t(|+U?pss9Z%D2H?jDPoVNZtHo4a>+&pEqy zUs!f`cFyd)?|d`gH{T2^tgylgD;x||Ri&z`OUl-|?o^xPF@MO*H@fav3#1d)FwE;5 z6bne?Z^oemAwXmF*CY9d@DA#w7a$|QgX1`doABRK3(z3H7Rld&Z*e33&g(Cg01fg3 z!R)WWm$*wX{q^nb?d238BM+PS6c6Bnf(u+40SfM}#s_#B7wzKi7hZsjd|LEg!|C{W z*H~xa1<1JU;C}_271n^u@>>=GQlN7RZ$=>o#?1R=6CedT_u%8mX;0)AQh?@;uBxg* zgTqlA5k`N{ycSM?h7bc`wNH`V#rS)7~ju) z&i6`yLVuvMg=dUTZ{|wAQvnLTzQ$X45$D_LN9R+($k(62bEe$fOp4aMKsNFlLL%c7 z-ZfeST0@r>upY@jijRyuz#u=pSsDQf=XUoBM^{%yFVp2G>j>^mdhrT{6RIe#qV@*WhXLFapsxe1VkxM}oH;z@fv zw_8{NGV+Xkds+Z{L4Ixm6x!d6zP;`fd1gEZ$K>+P;CKAkH}dA#p+x>+ye9-Yw6MGD zOn}1GwEOT)Ec>TxqH`6XK>oH!{)R?*FEO%)Pw6VVaJnk>3&W_osy$nHxs;@`o-> zbJq%Y_OrUftgQJeA#Zy)rfsF)rWIg_SMhQzJCxN)7PirNA7^!`{79qha4bJ$Jo2_n z?U&k~N`Q29bwbGMe6M^pZHO!INBsULet#I#W~%#3qwHtFs?Hm~rZn6BNtl9pKWgD* zsmdSTuK>xEe#7GvJooE_^{4 zH-bX4i(8d|3mXI%5(Y&O1PKT(RMaS_d;f~$4{#yq(uE@Un(lT{x9Dq8J()sIGgzuO8>Ca}FEZ*v2-tv7=$*@z{7g{$JZx+b^|F@P8Pj?W49|Yz?5JZDE@B zIVvk4g1;TdjsyX<*&kNmpTY;2^`3wP`~>&n67Imiy(XXreyak1C%(lk_#^G#D*|fZ z2g0(y5ntjVVd)QdcX#_qKms1N@d+NsKQb<`Hw0wd-3%A;BKGX#?mJIF0zMvk@8DeZ zd0(y5c>)qF6Mwvcw}dm`s`&asKomM>@NPxKz=D0>Hv*#2c?2I~ zqSN$)irNC1sLlo4CCJ_FRXnqZ6_5arVh3)}@SZP@fZF9o1$Kr(rSBWx^Fqt3z+-*^LP!vt@Gh)_X5exkAy(RS-dC7+pWXe zTmcdMb3!a{sPY17_NF%kBteZmJc`e8LXx!X9RZni^=ToZbCU*dcSRDA2%U)#!Tk>R zSTc&+Ndju%>#@8Cgl*8u%&(h(C}>UyvAic8Ab)SyX#x_78zZ?p8j9r=O+W&kd39Di z080>Ht05p0$b{|6x6euf-#7soeLuykcxDyPD~^B!`~*+qL*eja4Y#}22*{MC?ckfL z?XR|hu9Scb_|xXGyx3l(9h!hlUEbaJUWn!W-8R6L5|F9OJB2TVXl@ZgXJrIrBDlx# zDSsYQfW%!X0Shv=AK?X8smm+P4)daM=3~b8oKTS&{r}87sv9Fcu`Oq@Z@s2}TKik{ zyZYF%Um97OCjT2H;B6seOHzw(z71khV`TBxi0#+c+D-~9?3l$?AA3uFRS#?9H9|m4 zUENpxU6Li#MvrrYjmwAs^RdTs00^(Bo z5ic+CyDNBUiT)Rs=zCeH4PMHw*$Y&cn^xj@OtGBzzRH##sd-19p;laB-!8Z#|0H!U+UR53F;H8?slHZ3qW OIxsM;u7iM+zyvX89QfJ* diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_4g.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_4g.png index 4c476d0791fcd5de63fd4c57c50ab8094a4459b1..125e33dc79b2e4f77843e9b9a3bc782098a96ce0 100644 GIT binary patch delta 1233 zcmV;?1TOor3#JQ@lz(H`1 z?7A1{Tc`i^zs~Rc&-s1N@97*03jWt<%tff%?do(oy4~&}eShiyPNy@MF=@WuY~zm_ z0tP6M(Ceo_Hl~3lrgEhR_00zf&BG+CS8Fp7mgFbnvyFwZwQGINK4cFC?U_2W1*M(3 zAIq^13-C7HP0IF>AHj{d9v5O+?EeYh;C*bso-}6I?l8~=`Y3ZAzQkxIwzkvhJksrU zlT0puI$pxHvwy7NQ{0QK+1R0xFjp67;`yljIK~9?9qU8r6i&q_QTg$#{{Z%8@8h@x z@8Og`WU6|0YH2-X2B;wg}<<-PS|0fmpvOe7sr{N@{*P9!jD5IAntxjKcje7C|Th} zA!7H77tL?#hOwhy$-EMb(M#h@#JJ$&ZqIpBzxh&J%I5H~goE^q)h zL?XTx++_*Qiq8qv9mA$<9YarpW|%Z7oRn>=QdfTPNd?Vj+=>@e0dcW#6z;c%U3dtu zWn>NoZK^VM&@D`M!#g2dXr!a@SbixQ{dX#out7+p58xKz!XupqCj^Vyfw%AmzJH%( z6OJ4Kb3m%{*5kzN|8(0^-?2o(PGM&s!0!lSlitctXQ0*H)QJO{s!oiWx0c#vr8NqvB*(P*6}%P*6}%P*6}%P*6}% zP*6}%P*6}%P*6}%P*6}%Q1BnbzX-+KUp{LFf=H7d1s57JEigGPGB8vzI65#eIxsaY vFgH3dFo5h`O_NUr7aB4xFgYzUFjO%(IxsLgFf}bOH##sd@v-IclYj*=eFIOz delta 1290 zcmZ3+y^(vul=? zkB&8PG`(;tRAf!+k;+=Av_t4_XNRGalGcwyt=^`uJZcn^7O};5uoO<(S-$J`QOo1& zUcTJNKl66@hB}R3fy?Ed+b{RKs@c);BYv@I&xB&W_qOMDhL+ZUyI*bZBQ32jf90RO zvqLXa+a9mR1-{%F%$X}n0;V&}yz1N3vQqHmDR$1OQ_eR&O<2>nul#HMs{5Q1B5$j8 zzVLQf&=dJeFM-d3XAOHCW1ML!bLHk=CIz|$wgrX-yROx<*YNFOe#7>U=U9fwR__H) zGe0--YpmheaJc&af?~Zn^?UZt=dxjsu}$Ec&rr@J->PErl=Y;5(aux03r~G-P*qJ` z*>r)&Lb4)u>U*}Yu?dDh-Z6?R#1%~2CY$E>Sam_lU!EPzJGu_7y&dJmzv+ACgUE!< zT6Y-h7`8EmXY6FWv3isD0nG!-qP4xUf0G(^K9)RCrjqe>a{lTwrYClpKjp7in)e}9 z;kV)jhCTfi-ph`hVY>h71~c=!sD!EPQ?~7uso=2ioNB+KYwGQ-8cM&!a?`_Vyr#Yn zs5ob(BCyYKqpTeN9EmU2IbP{xHRf{{SSKxH_6WEgW_&Q__imTh%O{%tn^mVD%;Kf| zLh=ZAmDeHjsQWkaHXNFiRr`B8W5pCDj(R(unw|*#wJ+B<>qt6_TRhl%o_Xo*gE!_g z=`-zan0sKo)L-es|Dr5Y_zW})>^FVgDxht!*}O_|#vWN$MUAz2|l+Gcqb3yzW~+t6`IM9#@B?>I2zp`>H&O zk}uY=?Up8Zy)BS0qBOn0T57xC>*$R=7cM$btJ%37iawxw;Iatg#|V|j+R0KscqaE9+)4&G|bEU}x-OV+l{vpem0+2&#OkxjQ7jJL`#|5;S}yV>rRkAl6#)36&I z5o=bPtX`?!ay{C;L4V7XM5C7~>yG|E`!`x!qqg(Iy>zdZljzm0Xkxq!^4042^XS%yo?oLkx|rOf9U8%z#`g k1A{xCt!+>=*RyHq zcwQj9r?sLvYwNik9!j}e--T&NR!KXw04Z;ZyyG28OZhL;9K0EKACeICaKk+%s z+4S}>CeBgnILXNTpms@~wg2mu-9AZ04yNVd~ zJM=I<%)9@!^!)V7KQrGmGRL^I@2mG{+FWr?*QAxv@ri1IsA2g1>qm9|yYh1E*|^Aj ze+ZkyojN_OPfi?)EduDoA7ML&L!pJoX6@jxWnf@XEpd$~Nl7e8wMs5Z1yT$~28Kqu x29~-;1|fzPj#dT+RtBcJ2IfFU!<$%N6dk$wDVb@Ns5+1}eBAi-E?_@?jusXGa?ei~& z`^u9&u3Q(KVW_#{IGP#S!qT6XKWVC-^7pnoWWV(8m1$xw3<_q?MM2qx6jr|2d(bd zCeLA*z)&-JY4z+#!I)zcI_lL$3=eegVV2{Xce%VcQL z5pY5yI%J=-CpqNDn8}MTo1D)iE@iB1V6JOy7-DE_Wolt%WCr9~85rF8Y;7}n0Z!?) M>zW%TUt}@_0IEmi{{R30 diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_full_1.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_full_1.png index d24983545ea392d86ef01794a3729af1797db4bb..1cbe2393b6ebeeb56de8d8642318ad64a67d66c3 100644 GIT binary patch delta 1120 zcmV-m1fTnb3X%$tlz-w$L_t(|+U?p)h+IV!2H@|`(@cDW5{%;}x)6;hq8LzYaiO9p z;=)DTWh>%B6hU+$hz~?T#0Mg%s4;>rBrn*iyA1$6U1 zd&L71`GZ*569QDMzZl8ihj&oUyZ{;bEgZseT!YP-7NA0YA(Foq-{ETfo%f$90V?DR z!R;@_SGYxR{l$%qjoB0+BM-~?6!+jiH7Rgr1gJ@OB|g9tIBSP=KlK7+O;*BUop-$_Ebe&G8 zsBk!dHNpD3<~4N!RD>vm)jm~rXXEd?viwvEkmdSPC~a?z#Z7YkfiN`!Wc7WC%kT|u z9)`Kt3sgWROdCU3+3+eI6ku#9*_}FWiDK7#4+DG0V+E?k!*<~*7qZi z`Bn)~Q-A2J;z_;Ro3WB_RDhaXU*b(Xk28~+N8=%&m+PO#GltyU42p?ofz0wt!a>GS zysNhcObktWz+xo-AU@K|07ZU#Gcy9z+}qtDTwU#tVoV$p6QJh0`VhXx6-KnRZLI(` zCpri4eH5WF@)HxFLcSDkY>(rx;P#D?pQHe(pnusXoaNmsghAtbk+BJI`^n$WeeYhi zo~(ZakJ;tD-P8(DB@b)gevxu}S^!%?ery8dtOC@Kzaf&p zvVYRvN(?PPg?y^-uM?`gb+jwsM=d~we0rC63BJTlcJV-|4Y*(dGV+Autj~lS+r~@W zu?mopPw(>H$K%fPF0XAEW}?aRTf+JMG2un#lHR-guIJBfR{g3&K6bay z*y{c^tN>lSf)``kO4cWN*iz+tKd(#eYk!rteX)H-f8=A=jbAtRPy(c@tHZ*n&JXIJ zrgd=G$@e^&H|?&K1i_6RHIcpvpMFNW8(N96I0?o6mY--0000bbVXQnWMOn=I#pwG zWnpw>05UK!GA%GUEip7yF*Q0dHaajeEigAaFfd76yEy;=03~!qSaf7zbY(hiZ)9m^ mc>ppnF)}SMIV~|XR53L=F*Z6dGA%GSIxsLe0Rx4T)C4hq*BxE} delta 1070 zcmV+}1kwAF3WW-glz-JpL_t(|+U=UVYg9oL#(#Hr6E{&5ZG2m32%>^o2nqPOAleAp z2ntCTTa|!?g%*800~$&`duM60$3?-0Bk_z_Xm36 zk_!PMEMEhj0>^=Gy^QUALBt|22Ac-XqE`QEVFidtaete@ZQzpr+!J{jG!Kvz_bPCm z7%VSvat5@?@5g|9gjrrJa8iH>@~2T-+Zro~^-IBJ7Z9Hx1zrMch}rrs3m}`DeZVVV z6S|@k_a8as0ufc6DPSim-R(=_Kb@EX7I8^-0M-$+&pRi8vAIE$4FFH)_p$rDQvz7w z&I9VeIDg^kO`_y86(Azk2dHY!B=94x=g8az2xI*ua0U39=AWk?1uV*S&7}Yad9#+cALRy_SUzn5B%v8V)qnC%(80M~t_28!;NSbu(2!JeM~SJH z=d=JOd4QRj8M&P$3!n=LSTX_#X> zSmc|)N#Fr$@uO0yB)+@LOaR0BLVgr@t=oQPO*ByfBFGOD*7Bs?N%Sm$L0+o3yMTA7 zT7TZJtO+J6fI(jF!&@;u`5K+>Z&nbEM)@7(bZo4nkD*bS_`!{eAM4R6XpiA>APsO zy$8Oa@`xzmJY(!ns9WKUi06=7B@1y0AXDiBaIuTuEdm$1=s(p(-v!j&;I6RZDByV> zWK_qC6V7c;N|Y#(D*gg`3FS^9X!=X*!@UwwPqDF1W)y`z(#YJAI`X@B(i zj%}Ay@}{z#6M6KcNFY^sf8mjwP4_R~oSOT>r9qMHu@%R`s>LoR7u$xIW&fCIwU{NM zo%cq^=fyVs;ScVtsOHva<=eA$!cY(6*E@&F#wBM_DmJ zCHwlHYV?cro>Bg7T6XO3M}bd?F*4UT2gY@^J56}{VPk_n_w1EMUJar(ZRZ#NQIgu` zH_LGGy_XL|YgAiLa;-ZOt9UBsM(*^q8xFH{=Ra6mQSZt=W$wvW|9fs1Fy|f8wW!bd zs#`2@e%g|YXX>PF6nlSh#emq>T^c7QzRHn%<*Gen4hp(02Ts-#IO;be5 zM&i5nrJO2ZdF^F&;yVvSo#KDa_;^#p{jJ@v=3de(%;zvvKf7u9qq>G=t6g3!Vc5y| zd)t}$MYUF3vu(Kd9p-L*e|lqdl=LitFPS=7_0CI;)r6{BId(SdKbC&0vqR%m`UlN> z*YtYkEx@*Tv#P8PIOjecx$z($KLAg$C*M2 z8q?=by!4cNYxZFV@dv88O;=yP;xQ;>Y}&K*uKrU2OYSAU#rf09+H`!<*%x+lY^Z$y z=tF0Lu-w)9b?@4j?uhUD?RJax8Bq8B@P?*&CabKMtX(hv?|Xu{9nWk#y~C4({0vqf z4wx~8!SY!C6rp*JCGS>D`S9g~P95)U;T_Rj?K&aq3k^6KH}!w5i1VuWb@AohA9hD> z^nX9n;l5M*-s$I^o1+@8+O>A_-BFfZFl}+M{Ug)dj4w-MAJk{qynif}b6IZn`6$Lu zE1pg~{p8$PZ*J+AGpxJKmt35GQLoJY!BIu~=)%|=KCvx@|29l?%hjy2?AE@iR(s1z z#*BSQi3RtRqo)!-=H8H delta 1082 zcmey#`G#}Cl=?lME{-7;x8BaQ&WUjqY1@A@_O_yshHP4fNK*Zi25Pu|M#tYN! z12KbCu6-PPa>uXI^{YkB z{Pva3@AObpDtAq}b#3<6=i53=a@H z%F5_>vsn79N<8EJ$usICw;ouqK$z>T!3^eiw{J-n$ea~Y@9B{GV7|de&VR`orxnc& zKZF!p`rg+{o;to*^bgk>m27#YYZq=PxIL@4eBl4-N`#c#q%t9)MNRV=%TKI*kokH& zgFVyz3GBx%oq8})aDsx+2HrW2!AU(I7*)b4g_P+YcU@&Un5S^}S}{_~m`yCiv?{I9I6 zpqa3!sowZN$Sy z9DMhPtG(RQzeZ~3(|cU?-xVJ`>}>uo&Y{TSnY!j}^~cC>Yd>sAIVte?lC$E=t#LQm zmD>+LEU=K_!%jW6?_gJEe95opKU;!lzz| r7#drdT38vG0l8KN26sMN+b}TbBk9P^PsvQH#I0lPy5@$-Cs+&t7G&$_ diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_full_2.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_full_2.png index 2d92c49f8cca0284daef0b7d6382852f20b9c376..deb8c87fc80af835cc4a41a76cf486f9dca55be5 100644 GIT binary patch delta 1100 zcmV-S1he~*3Ze>-lz;L`L_t(|+U=S*BiZys}){ol25C;D4Cqg|s`C0BMCB;F)!n zO9m+NZ9wC)5I~E5UXt$t?gM_^3t*5h0v*60unCx}YXLO!IZ1vq@B!Ee{4wj-l>i!f z2a)z`fH%NSMC#{9M@Q>Z0E0Y01MmVk0L&7w1lElJ0n42aJO)ky|5#wTuXzCs@@mq% z2@J^h3woWJ7k|LuQUopm*AR2SqWtPb0A+Ogfjd$Nhmdh!ZvrTzvm1COIh94eCI!%U zbgt_<8i!V(1rhzSdDWZ%nh*|RwpY&XpZr`_sA26<*Df3rsVRfA`cc1 zfdGr^0T+QQL=bta1qku?XMlT@TwWxwdI)Ib4*}0*e=A<=7lM@;p!KZ?bR&+lRuFOY zZ5BXnZnh!T`gOXrgas?;<`=>g( zUPZ)X-hVm)6nXjT1O80!Sx5T&$j7`@0%(y(5?z5`JU!Rx%BMF@tmIP_z#y+SICsIh z{PkSVbW;6DeF#um>(2uhfT^Yge>`y`WJJDzILPP+9w6s{y+`{POQ=6-Wk-ol~Rnvk(dA)d4ILD>j2&Y>xpPzK#iH-z;H;Ls_ukV_63nu(}d3{dfT57L(uGpkGMNL z9+dzpmA(VVEBM~G3hQ65pzb(uq*5YFUIpalW_GFHw*}U1PBLW3kSP8GxC-tw1Ospz zeUp9!7aB4xFgYzTG*mG)Ix#jnFfuJLH##sdNnE=*ldl998Zs>~IV~|XR53L=F*Z6d SGA%GSIxsLe0Rx4T-~=(mhwmu> delta 1096 zcmV-O1h@O53Xuwslz-t#L_t(|+U=UXYZO5k#(%q)L=#2P#`sw%1knSvun73EAle*g z3PB<1VjCr3VIf#Zkcc1%5)dp@)F`N=waTB6lqoC(EiDwmuiTBr%jO~~5k=8|WntD2)k*R|;D46)Wc^?rAT0=inp
dbopR}=xn=!^o>Mu>n0%o92}}0UYv*y0cq0|C@?@E(LJbdIjtRjv8|#UB4ydMgYg+Dqt(x-sNx$LqNv-Fz^!CK*G`YSpa#tIRv}{ zwqr6nY23&gD5a=YtAt@FQJw-a7$=y!lp2 zDK#-M5q}tepZJ*fN&qYJ7@`}MQe%}$r4Jwof>g<8Du6@2gzoCoVHi%9%jF-PdXCJ8 z0QI$g61WO{?c~inZiJl3_n;FQW58X^zTL>kNXMQh%N`))E9hKa36sm4o0}`909N!v zL;g7M4Cu$%v@Dze7J13y4xuwT+eq;3&PxGoqkn^*@CJdmz_CV;bP+|N4!9P(A*4DbLw`9aFBwwVgx7#+#wy*6b(vnHCV05Rl;sOR#e z+*X>RDY;Ov>UQb?r0#HS5#pI=gMDr<^)9=Q~jW zZlQNlhT)zEXp zNAv$Pb#Fj}x{FrXd*BP&N5lyiSZ#kop9)`&c@8;MvXGPj(v>~{ms_}Q5xCSs{izn} zE}+i_w}dsX0_No=lRRFM@b2ZLi!Qq8DEtGBzzRH##sd-19p;lfVQQ8Z#|0H!U+UR53F;H8?slHZ3qW OIxsM;u7iM+@dPm<@c0P; diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_full_3.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_full_3.png index f029c5dfe933f98549459df7f8e5903d9a5666fe..718657945d287eb4ed33eb51054833ca44f59378 100644 GIT binary patch delta 1096 zcmV-O1h@N;3Xckqlz-nzL_t(|+U?p+s9Qx82k>8B-iNKkKssUt z{j|?+v4BW^6YIM|fWqpxbMlYiePjzSKtjHU+i?o}@!vuVP$0jOlfMN&;AZ@t_FpIg z3glaY*ZJ`7Da%V=p4m6xezTw{C?2{h>6bq_%!D<68X6l;Lz52 zhqlhg=T>j?&d6aO_6n;%GOxK4pddsG+3#PSjG5gfVfPyj>xbiv44Et~U{@i`t zZkLsIH2twKHv$yMw{!B>YFbc+Viqn+h830tNDq z;j?_cW5@dK&`1j?%&mvRLOE;0lvlsW0>s13T{w*!vKd-upWI{yKHn$-N)nw7Ja2G&GgI=l3Q!X3GrWtJ zaiOYt)b0WXvHmz-#6*XiaZz~`NLGGTC}bSP2L^jUWvJ5v+Bx~hanc|H#0_xq1SqV2 z%<>)(uCA`m#i$&W36NBD`ofLvx46-ij<$^zpns&IvkyP!BGg8{G64$YGvUVe6b=ez zUmN)<1&9gF9-)@^u;2!@pG9USK$7Cd)jy19jCgN1w*n;O8N~Lu0XBmC%mgSIe=U#g zS(C^!Wgi?;%R7!g@N?71o8g2a`A6}gkmyjs>8>^bl0>J62k~9r_D|hJXDUDm`8#s* zH-8n{8;OYpD9P_{6|%eo__uC?GZi37ar?LyU*m2gyr9$s>{x)33hoBJz!42dac3$( z$&GD>kMOK3yqDKBOfu29@;#w`e@u8IbJgIz{JzV}+?kSh_LIK-q^m)9yn$Eqw)Lb>w6N8}-(gl4+xHgQ_J8E<>xLs8yKMZju_qEBUR@m&syaU@e>JU- zs}OzWPizetGxj}OX!}*LstbniDaEmW5nM2xM<(1Xotc&Z(Ui{NsWHCy+nD`dAEWOX zJTWej9Y=xuaC32|-){;UcQ{#Mi6tt<|ItYDD#!oQs{jB1C3HntbYx+4WjbSWWs{8r z2O2UhFgYzTG*mG)Ix#jnFfuJLH##sdNnE=*ldc388Zs>~IV~|XR53L=F*Z6dGA%GS OIxsLe0Rx4T-vlv*eF`i9 delta 1100 zcmV-S1he~(3Xlqrlz-q!L_t(|+U=UXixWW@#($elE?yKx8^0|S4o?NOusHA|Af^$t zvAgTeR^`CLLa-1KMG%B=AXuoVr=a#$`4jX{5VW)~2+^4ATFk!gIBaq`vmdj2c_1V= z%+2oeyz}wSGXoP$Fu?>9tPj-db?Wu{KV_w?Un))VfMb@IvwwcE6i5q7fM?cOFFioW z?*gXQg#cRg-GF=@cnJ7~7r-Fj2Mz!$z;57op#{*$mjd#8fVaSQ;D=eiPy%S=9aOj9 z47>!6qPo7@YPE_ffI%Lh0z3gu0bL@Nz`_U+vE2Ewmya)EuxXzoG~riOxK5FA&0Ez_>4z0FL8GqH`R09B>+md~OBseP6zv z+1Xj)umh-}qCYaP+zFtQ2mEHUDVbdlHT#bg`CJMhC@@3!|aN6^{_Bd@@Z-0mwj z&RyVg@Ov!s(r6waDeg7k1~EilU}X<5A}{3Ufd_m}I%*hI`@ z-Z}xa&3_F6Ss!p5$AJXKyj21i%bf#k02T;OZxSV+sQ?jcy^nHpmVi!L?~(ZsAYAL0 zfUCgwG#{RNB4k9qj50D7fcqHdc4;8X9w6k;qr5zqU=;`^z~TvDm>NCc1n?Y~#yGSr zoB$emadBr*C$?LOad&5>07jzIM>)9ffc>n|#edDE02=wfULJ55H4HL|eA)uYtTv7E z^3E{Axm~UWFj8D`a_5N2%d=VlgFJ+{vt$CaApuK9fCwWKpc1U@zD?v~7a$_P_kb(F zxg?%vod5>;K5!Ozgqr*yh233d0vL&oczJJvvY%NKO;msg@-u{9o|IdOu>~;l`#!J_ zcz=)b@_uDaFi`=F6xTy#c`s0It`&(+VgeZCLHYJifs;v!(l}AJg=V)zzLEQ@PMZAaHD)|`Iz?z}W0To8HvK+@TQ{|y`jpqzRr_-TUtI=pQ z=ytoS){pJBc<_>$_;_)`y3NT16HJgQ{s8)_Br9~5GBf}H03~!qSaf7zbY(hYaw276 zbY%cCFflVNFgGnTF;p=#IyE>tGBzzRH##sd-19p;ldS|78Z#|0H!U+UR53F;H8?sl SHZ3qWIxsM;u7iM+-UKnc{rX`5 diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_full_3g.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_full_3g.png index 2141602846113c81e551d6934678600078cba140..1aa23930235f48e6f252b70a4c7dde55799c7e55 100644 GIT binary patch delta 1379 zcmajWc{~#e0Kjo)pOD1FFvsUHB-fVAhFsZfJ#vK}BUkD%GYu1Kc}06OWDHTwk=G$K zawT_`=s9|>CTuZBg+y}=umAe%ectcC-ydIrT+X4}xs)07X$Nl-cWE3&4R=;Pz*}iq zUhJSRP!V%?VK}KP?SnKq&G2@yKMZAMqmhcbjj{Y*kiEA%=#~9(!%P`P=BNXt*pOxs z;^@J-KUmF5M~rL;m&R;$-{Dn86}nrP{grEDkFU64Wo7rqF8w_Mu|Y&fg+1mEtB-x$M|iX9y5X=?-p;e8ZGS*ugNpeJ_Q**+;# zdWp&`5pDlAUC7-zVBE3GU=p1Ig=+b{E%#Q_&{7{3Ezx(zVUZfnVxK<Q2ohO}Pzo~UELZ)x^Y14`h8LVT*BOJqF(<=!OVfH)j z&NIMr!5NoR1FHcKXuy`i2E9uM#4{=)TUx+NJ+*a-3Yg|b*7LOnzH@Sv@DBd!ch)NL z$WV8-r}6?N4x|EFf^!Wb%gZo?35Wg-lIKx%e=CEzz4tl^>4k6el$G*l9N#pxD(x0^ zL;8E9ZlPW`vv~lpmq98!*}t#ZLI+;)VYJ)FW8aM{xL10ufEcmq8i!W*7Kr@0^hf^o zmTh1X5`*^T>{z}#ERSKoyumM|tLT5+OipJnP>OOHrJqCh!sx8rnwGjJA1)NWy(SQI zmH4*2M>BhHTL_D9$1=JmbP`ttjh=CmHxp)>v=S;ZIm*#_&{piZ_p|X<;;$`Q+ZyrQ zBC;y*U^%OuJv7ZUb&7DYbIjvCa<>VJN3tVnIQSnVoIwkn#k z^=hZ?`#MwX3AXv{i^a-E-!+evXO_5&j80G@>tb@kJ{@<2dk&9RzecF=Z`{sVktY*q z|DcMqWg8w$S_8~ne6n3(`v8&D7|&+bsYo*F#kcH>@#IEA_RFmXMnm=d{-hQK%4MWJWhB38Wq5u0h&sj)4FjjgVyvcvg6H;U zigq62Y42%!<#f1UU9wiGM6^npOP$}}*m~%qUva z>t8WqVq##TvmY@m*pC>F2#pO7CWeba%^^?|bGQk_!W(iD0kK4w|5zBp+#DUy4F4&9 W031H-^2Nme23F#dsX5Q3A^!p?fs(lZ delta 1296 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 bF;p=#IyE>tGBzzRH##sdt*(QBlfMKp?>p(9 diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_full_e.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_full_e.png index 01f263355c484d55c993d53a3bd3216ef73ddc6e..67e2e115d89b0ad7ff575a341569cdbe91f24305 100644 GIT binary patch delta 556 zcmaFJ+Rip%O8s?D7srr_TW@FhdNCVHw9U`d=6ZB!?hWT18ddBsomi$fnHM~?ytCtj zfRbJ{TliP8qtYR(ANO>t7+w44bNR-SUv>ga&UMdf_dl7P;?Pm=8@4@hx%qr(;4S$>dW+5PsT<>M+8Aew)-latRDQL#e!-b-ds*%!aq}e} zP%PN@z=pLTmABxrN~1rY1f%@aUGHqR3cu6(c#=`_!V#CPoOhVZ!%_^dZQJs;_`%js zI+8V$6GBf2e-McF;9-`zT{cHd?b78FuX(pe)tqMxrAhmYG96DwlSGEV@ZZXhm1l0*&9mf zf{%*w}#?q*omOPcW zQTajZk$>zzBp$r`rW^hKmQla`XZwVf&Wya@yHzZ@r{8dLmU!S2$80WF%$qy+%%}J( z49Bgrt3Gq5GW>Y^e2J2Ni+~e{A{ueT{-JQXZ=wFtuDzX;{g}k1jC2hwbq!5I3{9;J e&8!T7TyrY}1J9V8s7Qxwx2gG)%X16e?SOgR&h0bQ4!ZKxd;YLh zd={~%H~!u13+3mYwr}F@@%YhsEs;Uy!ha?w4#gG$bVA0$Ug6QI6&J6}6k%XsP%Uwd zC`m~yNwrEYN(E93Mh1q)x(4RD#)ct=##W{lRz_w(u9bnoozK=bC>nC}Q!*9ODsk&r MyRNxm@--$y0MLW%Z~y=R diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_full_g.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_full_g.png index 98a20d15c04ca2d5a9b3450bf79eecb445c781fd..f47c63e5e00562d15dbbdd18981526d398ba3fe5 100644 GIT binary patch delta 913 zcmbQrahPMmxpOyakNM4$&pvIeo_Ke{ z_vYlhwDfQ9{y#fA+nl*=<0{T7NgER@$IXH186}HuTPI(?kaMNJ`T^spF2^gU=pGkOt%hrita3KOq6{fSRgv%(*2&(k65S5JaQJT7pqv6TQB(C z-PJAXy@GMQU<7;21+(jM^%jxS8;XBBKG?U-clC|%1BDMX3Rrfu9%*zqUEFbeOXCKe z(+MZ#7VJp2Fhe%nyW4Zj02~#Nudv`0)vy z@U3zzq`~yStwpYS%Nd;>a9_BxO>B}#tXtZSrL|EW|NhTbF)w)Eae5N- z6GMjuP4AQh?>zlsKA|Un^|s>&+@9z?NXV**zqqJ&6WhUUQg3^u9`54GX5QZT*@I^V zNPO}}fN8E#OxKf>EPt!_2|i%i z^wxKhOj*)jyVi=+21Vfp%KI`N_C4JrBFj*w=xE5ck8%FQ#|3wm)@$my7ptmiD)0Dx zu(jjEx`U?_?o51b@PsAfnlO%TB&AH;Oe$RlX{;&ZLHWbGApW)}JOSQkt zcIGfJFsPQeMwFx^mZVxG7o`Fz1|tJQBV7YaT|<))LsKh5Gb;li*WAj$z%ypIC5ndJ X{FKbJN?aP)3=Aw7nOi46VKxK+FqxXH delta 840 zcmX@iF_mM&IYHN-xjpx9c;22OF3E(*`zvI(bM-L9H;Nf#u&JcA<@^ktE?m0l#464DB!}m} zieLX^pVd%y_0YFV4K|x3c?FC3b~sGqd={L`XneqY(UKMSc{y56?BKkk-rbb9es`yp zWWX+ou9KqH2e0Hkx?L(D8?45(tF`pbe#L5qb(7A1D%}*lDD2Q_35D4Yr{3A9d~Lh$ zhdEmhY_yUNcp}EZG_65DWiwBKoJG>(m2>NhC#*5CW8ewbEi&iLU^tzUs+aQqfA9g> zO-ELU=H@fKzPPP`@2aNopZc%S*^QpwxzW@3yf4{$CI`wEcwCyYgw=btb7+O7NLXmL zRs8NsRmopvSeW!j<7LGUy@0LDHmRuuKK-sBv|Tt~HMYn1jrAgp z4&NE|Q@*%d;x|sd9Cg{Q?~KQ+ZP86HcC32Ju={sliHL>ow*Zk3oDnQ`pWpLtda9fy z+qEz#e1frJ>hnkHrVqFNR*3rLwdJq>M3t<z~IhjYn#arnZx)p^jV!6Jla_Io9sQ}I9abds(|+HRa)*xkUQKPEUA0wn%{;g7 z|FEx($Ykyk)WwtVx%geqfN+;wf{60|6Tfo$FBJHB?hosk+ zMSp32$oraadDc(jK}Uo31D*2sisE0a{%RM58)Po$VfewMmZEI6>8nvyga3WU>xm95 zM^cn6QvV)%_GO(Mk7KDDTg8G`LK;G^yQ@+!GIGJVibmfe1v&behdDV7b znaVNqQ0dLR4_4?3m(-V4&HWZ*TQY?!|DxI1shfU1xbe&)XGZO}Q!?#y)zlQ~S4kOc zSo(%vaC!TiI|65NZX98_{xbi;q@RD2GuBTQ`em|w{-c?zj1z8bu&ZEBsJlCT=A|^| zwE|8YiY@5GBDp%o&t@eXtCxrdFfcHvmbgZgq$HN4S|t~y0x1R~14AQS14~^)lMq8w lD?>9Y10a{f+{(bfGiJBt*Re*h5)UN@~Qv; delta 569 zcmeyx`kr;dl=}UiE{-7;x8BaM^*ih!;C5fd!9gUZVN#cz3f~b~3nudi7FV{2h|FnV zl5z-iscTCr7d`IP^!7%D;Qh&A_fqVm=iQw9@lBJ!f2q}4CFN&$%H#hput-bm{ZebV z;_b!{hr+VfzO0|UcbEAQ$*=3aSXv)gr1<*)ZvmSR=js=j^CLwt7V&VgRNPV<{y}2u=w(g^^4elC@hZ5f7QTfprZ4T z)n0wu692zBCtjsKX^_j1VoGH*WaQ&+?XUbX(Mi?&R*{2O(d$VMC1!lh&6v(7!61G> zFmc=UtBmTk(zm8EPiic0iLAdjC75rK+3tW0Z5FFF!0dm(T9M_HYaiqD z1BLgGl|5u&-q(=*K+!HgPNF!0Xek6x-a#XR?C`_yI~6E{-7;x8Ba&-z^*{aNK@&e7dTZhRjNqjaI8mZgo$Ja?D|smfjd3 z;P{_aSLAIDOYRnqU+f)IAL_7huRSuQYu?8l-kWxd8NdIO=W8U~YJ6INedd^_*bt1m@+57=JLH9vjLYNFRY_7D$~`op1&S!@0BU&~gW z<-WuqI`LeA>H&}ItAyoeac-5_IFV~L^YsR0ErVG?zXe|~={M@f#YkP6cp|xBG1DBz zzOxel#dh%8D7c^f8U4hL$xFVYk#W+a%My&*2WlU%O>+Fauh@NtI&*+vXo`FC1FH{l z@6`_&74TWCQ@eVl;rW5=TC;k+=s!wqKaLzQeh~ZYpYsFGf*{`vhV-iqTXG)uDP1yT z`lg(w_wp9QwF#T~H$B!Y@aT>=U=x|hsF3+S=+@fMCBM`wWEbQdjO^0#;Cy^B zwy0ly5xx!T@(D#G(p~|UW1XR zQLaF8CZ|%}eXH`Rj4KvQ<^1mM@vEMF9fLpTiocd!s~DXVgfq*TMdL4@w`aJ+the$< zeUd5cH3;uO`G#Hx*GjYytCf+t6pP2w@BQC zJKt+!?EL>F=fU(_8P+Uz)%EdiuMQ}^ z=R4F;y7$+K1(S0#S9ZxU^qYKJy-s}3j!XN6pJX=c^_n*Z=a}a^U$1cb6Z&9T`F&e) z7wtLb^~`1x=?AOAe3qS9I`c-|%|+b?4BP(mCn(JmtnV@9Ic$I(CA@wK6obG5~VTtqcr2V|H62Yf!by U%}>cptHiCtf|0p(@=|6)0K+<73jhEB delta 783 zcmaFDevN&?l=@|!E{-7;x8BaM%?@!CX`6rZO`0i}lHNv+uBP6IrI*~+44f4?iwf$|5sADAj8|FgU9^F!VBmUos{)!LIklwM9;GEGH=b@#h1 z*2df)f`a@nwJrH4@qG8mzgJY#?t{5s-?Hm5g?9umagKeA@UZ439tWYNB8&dYv{fowPG^1qudV6O3y)NGbMhnI}tkc%mGx#^;r(M^#cbUg@VorU=InxH_1D?W3^$dR) z-bj%%T%Cw`sK8nl#N^v*nz}ubj(E)L%9)QGI>dt!33e zkIVP2ZpfC6V2v}>nJF$Q=5*7ic@;|lM`FE0%vbhj2@3Cc3~cxV^5!49J+o`^=e;Ld z*358aP<_kq+A`TgJidi@L29<=iB#=5VGUA-vx<-Ww3E7dXt)2haFLkPvpcs*vqo(H zHaX&DZ&rX3VS=yPSB-`C_f|qpi*y%~#Ym#wJwEv&e7yqR`KLDRV#T zE!CXsCdcojAJpki@VK?4jPX;)p2rq_*wGuoI%bKB_pW~Vvgg<2KxT1oV_gGtU1P%# zLt`sb3o9ctAlJ&k;Lc}j8wLgj)e_f;l9a@fRIA+ll+3hB1|tJQ>>AdtYi^jlnb{Bk Dkuqk| diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_g.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_g.png index 15e9d4e553cb0889f2d5b54422ba749a071a0787..fd5fb1773f5bef7d4bf11bbc13b490eca07b7fe0 100644 GIT binary patch delta 906 zcmaFOv5#ZIlzKi-7srr_TW@FBcL+O*wC}&`TQsjrERfqVWX+V#(W2arjt9?qIR;2~ zU-sGni1*s9TV-F2@@_Q!j7&b@v5@6EFm^EJO|9Sobi#V`}%< ztMnrINYKfrjQ8aG8}tgCT;Ii{MDSN|#4z6aHQO_E&w?LIG`PN5E;as&dbJD}^BF0n;Qn7Xo@e|1SIT$G%5u1EIjro~L^^@8T*ci8nN<;|X|r2=3&zm>_8%v@K))9>)!<-Ky8R?O1kb*8$xJGD6H!2h$v>(SWGt;)9M*G9S8_FS{68HQ( z+sfzc*D%emX2JX7>57Ug8+RAVg!}DDlxPE^dI*I?u3`GeI4SLFfol5qHw+96swJ)w zB`Jv|saDBFsX&Us$iUD@*T7QO$RNbf!pgwF%D_z5z#Pcf$l`thMMG|WN@iLmZVd+_ L|L07$Vle~&Ze)NK delta 952 zcmdnT@tR}8lzMAV7srr_TW@dNKb;yZbNu6VyXQ00H5RHpYEoS4QmAS5#HrBn6p!l^ z=^(F1&rC9A%`R4c$}eE<6tmOeRDXA|;?ie_=JrU5D=D2cIsbW1`tFGPS8tx5_c`NS zzg6_+dt0Nc*KhuA_xp3?{jJx^b-7x(XJyT7Z$G^7Vn&LE%(<%c`nlR}i!bgfedk>- z`O!dvr|N|%>-IA*_}QAPY~-Z*+K)Z{xXX0@=SFT${;C_fG5JZ#ueM3;f7{um=jxJw zGQGTzcivI=AAI{Ci0nJ^dWU+;^_v~jIG1q3OJ7i&+1?npE+uyFu&Od*{SEVORdQ$zC>C|7ef+^ZAedTG$?06y>!|IYB7@y&I{he?@_ikbW$xNH8=Kc4&X&bBMMe#a;B##%q$t8O9J&&$?a z6Zvqn!H2%KiS0{R&zD|$aQ)Bx{0}=`?ppZn(7y*tl@573y|{k={xHwP`pMA%+2`p? z)^1E+vbSmSvb)QK*AxYtZ2$Mr;6eHyg|~v&jNiRK^6Z7v&x+G6^?U4p#DDQ+KkmnI zUS|qdI%8nk$Iw0c&zUMMc_v@XxMKOS)oEdXh6opS>JaOJ{i;e=)+|Z6C&s|QpjzS@ zQIe8al4_M)lnSI6j0_Bobq&mQjSWK#jjc>Atc=WnTq^^EJD;s>KpJ%6I&$+sY(4xnVLdiy;8t?aEsK diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_h.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_h.png index 042d3e00bcc555400549a860ba7f5b822e1efe36..c63bbfa5719ed9c5dc411c8a56e92cf02c1c4dea 100644 GIT binary patch delta 511 zcmeyw`iXVIn)=xfd14xr3)uS(oH%wMamGX&;{s-t2!_zsZJf?IroF!=FXJpc`r9LH z&6Cn6@4x!nvA6uVK4X{DbD3*VbBej=x2Ipb<@Rfzhgt3e>m046rhnr%Z_i}5UsM_X zYX+}@-Gtf)Y!-~iL^i(=tN8der`3-6-rj#}m)zuJX5uVhoip`az3r5yxaIY%@3hq3 zPGMw-KQJZ9<@mlhcm5AI%P-_gOkmJF%8|C_{*5NPD~lCZojcJWm$8dwmCCuDA|BqI z{e|bAo|)z~WlO5VjVEHcZO#do$``~+O<;I_K=EjX{we0Z-+WuNnVlNGi!9!g<1bl} zTjITNt*XI?RMAqq>DHMJd^YvW@*>^~W<8O3AY$>#`i35l!2$jPUYnoaeZ9{YJz%I{ z(fh@>jhmTCQForfZ5C!>C9m4mTc&c%JXLyg?~4pwVV?T3HCv0n-U!s%<9d5f$g5Y2 zlV?BPkofK9>S7tbSyMVPvJPCBzRTXFNv^Bd*<^E~FtgM0{f*wwzV}bu@0b1Jv)LrO z#p$!oH3T02^@6wIXK8%8*KFP`P8^CY0_a3X*$>u*r%I%**72K8j%N~=GSW4$)HN~) jF|@EUFt9Q()ip2&G8*2*`c9sJQ~Kk^rynODWHJN*+Ctx2 delta 511 zcmeyw`iXVIntJ6qjobw+?;89Q+|1bc4xeF_*uf~I)3D0vc8lV+S#EzlFSqP?RI8#L z_Q~qg_h0JsnVtS*`@}BXD)wCF+O5{}hmD`dDA&fT%r^TVYc}=Ltbglo-rmwEe{qj? z?HM)+`4e^p%ySr$yCO@t_xz~Z<}{!2ecb=BOK(~j8(DTRo%8x$FX!dB{_=jNa?#0U zrx+Ua6TA!;CC9H{%>Ltz^$Rl|kA^8pEXLRJa~$PgT@(mSPjTQkiDe2E%Fg9lvh>LD zi0tAtZ&j~bMhZDa-DZas4PIJb(Bt)JD1I;@X^Z$%#^bf@x27^G9;ogLjN7)HXOG#g zr5COVN&MKAR1`PhBETue+8UU=V?S90V(x>Ir1%?+K53oqY4p!)gu@e}dOO}|u{dCtFR z?3;dIMRM&IwgZ25tv6nJmMu!LMZk#zop7=K!?Yx|R5&O!=H%pfCUGfaT?2DnW5W;pApmt)*l+*< diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_in.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_in.png index 81f9c8afbfb691d4308b442a36c891f6a94e47ba..a0d588dc9dd14c7b23cf5c827c2de497d924a350 100644 GIT binary patch delta 485 zcmcc2dVqDpl==ytE{-7;x87d&^Fg|df$L;OWt~72m*Qmg_p^-@lu*H@CtX*#Lqc1N`&O;0a@cv` z$}LNC-p|1=m-8vyo6u{o>diXCH-R@}Uu6CEgYsttb})E7zhiRs^V1a#a{r#hH-42r zx3aNUV?v79%aixH)aw{xn1mB}YPR)k%&p_zvGw`y?~FdW4g3iVYi_(a-zyZsD%Y4i zd-5LFVitk+0;W4RcIDQ_GPoa@Tf08^AM+C)g*B#(+j2kiZvMoV`>ARDq^2WF=j%4S zU^%RIzWzh#h2${Sg-+iZmM`T};8M)_BzvRt+WNPjg}W7my0??81LiudLVg2HTh*a|AMD_7VPWZNV16?`ot#CDsZ3m_mA229?$Oa7wzLY z>cpY^fVV=S_&s~<9YzL==Tf)-bntoY-^}pLZ^wcCZ%bu1RlZok`b_W0vZv*OVBqf^`DMJGEjiAx#j8d&NY8H5;GSQ!{t8JOxCm;)INZ(@BX7vhxuxbf-7$%~i_ E0RTABfdBvi delta 504 zcmX@WdYN^?l={VIa4OjS3;ajVRHV%u=C>pkQ20~``9=bwFSjDPFf#(2fqf@$5%z3Vp{{JdQdx2#SiidEpa6jSt%P3xwY-BCM#pv=NQ z>Q@@$m9TmPzfUqdk}k<41}X0Tp_?G)a6D;3-G2Y=x7U7XE^_M~vi;)3@r-fC zmxdJ=x!ZoI?ciDS=y%i2d;L29xvw0JE8yDmAbzs%_qr=?{Q3+BEW;VsACT0YQkTtW z5@x~tNx)4z>LycfTZHe=SQjt|`o*%5uQJLr-P?b%E|a*Fv95u+uCZZ=p|O>zg_V&R akZWaNaObnN&EzH%#tlG6Vnx$mN>= diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_inout.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_inout.png index ae0295a2bb6248db7d72856bb63903e52612597d..341716d8f6c5ab598d034ba5a4eabf8c5e46a114 100644 GIT binary patch delta 803 zcmaFKew}^7l=|hKE{-7;x8BY;-_PSH(y)Kt&8>xnpR{-Ew6qA|tY;OR!ztA1B2%C` z=V+>>fZ3dhs{c4AJ+d!w{eT_oQ8y zUj!fUZE#-4zxMKhkOr3J2lH9ZF-12_E?RrG&ODaMs&zdpA0vAM+YSY#GrjrvtWHQsd#f#f>MIdyZ9;Vr4lseTQ^>oxZZS+wddsD z!w2jZoI4h7`MjY%S7KRHD$o#}0?%V>Hz|bnRqAdKT3}o=XUgxh`N#4+qZdW$ZV*^- zFkj*9yG=6Ma~CsCYj}Hrb5oSTOQw>_`HXy%E+zDB5iRSt3<})C_C`!|@3KQZjSW$D z=FI*-itDx)#aB0&&pgm6>cG(`@%U@~pZLqq_s--HX!{d;>gp1a`WI7^`VYTmJuMnw zyo&vG+r8PnIr96N-lV>DEnuwR<8k8HyR_*jm&ByBf7}Hnz5iEw$}Z-5$=fZpz_^aT z!ZE99-{xI{Q4?RA7EIm3nk8&{k!j1!NTz3=y%%&=&tAZ|GWrjL&6Dftt({^MyenAt zq~KqaPL&5tkVoGMyvX3Mg`7I=c{XdC!b#udMW#Rx|YIhN8V4GnW8Vc1tiu^ zxP9RGN}&m!7Zmn0ns5I2_2>!f2X>L~zVH2WmL+9H%kcx+ZpN__ztwKOqp#|4{7m*i zh94|<4i&td%`FkkJ&#fUsoXQyLtnT~s65&FKyT$I{e(HcyPh5n=<|wT*~j$W@LYZE z(i@KpI2KNQAg;OLOE>3>GX<_yx3q<9M7$dP9CMDxl*=41grHwf*q1O~{=4^s#|;Js z2GtVRh?11Vl2ohYqEsNoU}Ruuq-$WQYh(~&XklewU}a#cYhVs!G`xxRMbVI(pOTqY T3DF>dO~=QLPd`rH!E6Wsf8}X@ delta 821 zcmcc4{*rydl=_{XE{-7;x8BaM@4k{C&_4goI`vyIkL5pX*(`F9IXA_=xog2!(M1}! zIQNN(nQ5;1vSFu_t}Bb}2j+++K^OEBRJ%09y3F3)RTF#PBVD}vPGrix+of_GoQc!F z&%J-Koi9hz7I?7=1nw%o!l8#Qd!B zvXYCCU=Zhpi3`p%Xdh_0^FC^O<4OjhIc)p6cW}I6o%SRy^!MEy&I<s=8{e5ba~6fe;g%lz^$Z_!6t0mfZL z^VsVc^h2lA?f0(_6j}Rj?N_cD7k+mim=MSmGDrJB9Z&SZO{`uC>>Iytc5Bc&C)cz0 zfEUBr50wvQbQtF4er*~6K=6y__U8fM%|9-`I9>~ zWvAxlF}6$EszxnNS2z%Gj{5+&+57ii-%3R)!i5X6SOfC@y_WxEQ?K3%%OIFFX?VJb#taew%$1T(QjZD$@%CV}@yx_6%QB^otLqKM<6@FTO0S zVHZb#<945SuYH>8^{*ecIiFtd#1Na!yW{XN%lO+*v@m*rXuV+j?ADY59wWkUmjA0Pw50Hx6;AV1g@&VOF_4+fu z?o0Zq7vR44f#io?3$@wb_Dyz~IhjYa6HrEr^cX{FKbJO58fuu4`_Xyo}ip06D#5dH?_b diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_no_signal.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_no_signal.png index 964983f6e789df1f1e757681bac71d238593f560..15169b916bfa4328db2b5a68a761bfa2f23fddca 100644 GIT binary patch delta 1224 zcmV;(1ULJl3z!R#lz(VRL_t(|+U?s*h#XZE2HAerK0*vZL>Gz@#fa}`TqwSy?nFr38Wrr7!S^C!a3P9DgfW9N(=JX`x~Hg) znVzcd>Q4XAFjZ4iUH^a1J@>!o)-b{dBaAS@2*(5(jfO^}F@NveWWOJ(7o^)Tj=Ai7 zk|f6a{eV5hSW12#=b_DjT;wM(i(By-zE1^d9t#+99jX|$d8H0 zpM(#v7GL0c9Dhp1X%3YDxwMDl@D9$ycPaT_uq;o0;04GJjT;#{npI^i^_#GSYb^5!RPWKte49G8N#JGPHx8rYY6pn8)Ns{J~?lo`%ia4~)o{(isKu;`jRHJb)=E>mXm?#fhzE$R1F?(cgpKmqwPv|dj7 zNNiwcucy_9d?^AHkY6n-{2F{J3gDDQ_U~&cK*8q431ZJ~Exr;i?@uN4@2f)Bvp~V- z#d6{A&li3B>%{vxOGH5&%l%z1FqVGbSf>lR5+LXDq$GEWmev7WCHy_PS5te8?0@x` z=}s3c#s_5N=kT=FT7EnJ62o9Yd-W9{+h16w!}ME*06T=gCx*c@!uZq`rTo7@rsmb@ zXP?$`cU~8_MrexRc&H2kGJ?CsJm1vHh-O!JtRC6(Wy7+$7y%?nqS0tf^_$gVQKy}u z5k?rH_xKM!$6E++`6fjG001R)MUxc;5gIZrFgYzUFjO%(IxsLgFf}bOH##sdfb3mO mlRyO*8Zs>~IW00UR53U@FfckWH7zhVIxsNtvE}iTaRo8^f>K-n delta 1290 zcmV+l1@-!v3!)2v z-aBXJ%yj1pTY}&{DdOwTvPzlf${qaQhTnt0NGx}2@B@|=$q&2$g~+$Ws`fIjz_+*odvTn| zjKeUn%U~h$W9jvaxDG#K9ll7PO?SG^KxRO3LnEU5q;PtF;8s!iCY#M>Yp!bzoB)Ni z&nkWcoA5W*<9)dUoD%~jKnH)n9*?K7P1r7Xfd7ku5`UmTep*!cXVd!!@th-!e1?H2 zf`!OWCh}L|B^-k-XqrdlGYnb=WCSn8>tcD^hRyQ*K4>G%kDipswr^0gMAWM_Api1^vU-%p7(|Gz%pe96~VfCBj$;qPC= zg~H!Y;eRK&4_FZSS_)7wIx|=z{Qc#^-(QbC@@cVP^3-e@ERfG0&&&P&T720p^0gA6 zg!~MilKcB9e9}$w)Nl&O=l#RN+V00~_^_RPx6tygjUw+!g8v%6Xpy$P|u-=b})qkp^6@2dbM|3{@AwqQ4)*{h|i+HS!s{ngJblcGn1hKaMBF9>4FA z&rnqcWCT}>`*W6KD<0C;#H<6lCO}CG`+ow_!ah+PV%(R0uX2Cia{)@opCw%03hcyP z^4rsDL%u5ll#pMEx049FL;?KEBK!BX6rkkr;v~_(Uxm+w%llOq`u9~~!K*;Y;l(oH z?^oj++=%bQ>Fsp-UYR?r5@U@ z56H;R2$Qo;G%~iPv5U>~tiA$d=L<^{*Ta_I#R||8&C3mGY^k_WVN0Kh&xNksEuPK$ zHKNMzX}j>OE^f_mFg+G6Kt^yU-V>RSO^JTa^|_E`?5vu!;AJo^XMc(t6b`26>~$R< z*?;T$y~1OQzr+Y5jL;|i3jtJj9e?~op$Y&103~!qSaf7zbY(hYa%Ew3WdJfTF*7YN zH!U+UR53F;H8?slHZ3qWIxsNY^E*5M001R)MObuXVRU6WZEs|0W_bWIFflVNFgGnT zF;p=#IyE>tGBzzRH##sdt*(QB0000PbVXQnQ*UN;cVTj606}DLVr3vnZIgfn7*#QT AHUIzs diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_out.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_out.png index 10d94ac78b64f38738d3b5f0a5ae0ad8366059eb..b2ad34d78d8c93e76f0ef0334d971608cd090c99 100644 GIT binary patch delta 462 zcmX@Wx{`Iml=@0f7srr_TW_!WdmVNVIsP&KR#xHTQ}rvX%k{P{SRTN&YugG1jz>2!8rK zK#Ao$LzL?^2OhO~s|(_U{*U$o_Ek0OJOBmj}0+3i4ZpbOjpa3esP@C$R4L#m{K6{=eXc*`hJb z%MUD*-F=p6I)mDmf4zT28rQuwZ!n&de((zOj0?Zp5AYeByOw`wCremi4(oZbjsr3U z*{{PQC;D2v+k8N~q5c`C{NyV8x=m%izf^XeW$I^`_2{{$|M#ogwqFx#6i?u_P@K)W zSGOEWYd zY!Enfn16luty3_=Vo gtPBjS3`}(m%z=!CH?h8x<8VrU-1zk4Tj zWMe+_*|qaOxN!V~?wuoQe3sXbB~0Y9oqp{;yOUGqN!$H*ih~3MA;4de#fc;Sy5^Q3 z(Y#H+q=H%=$T=)NA*A8NF|+#VN~RU86B%P4oN4k9a#~f-5Eb^t@&n74H=nnaOYdMy zIC}Ka^~UT3Zi!pzsc)-Ki#jBKn0i37fJx+l?grncFprB&tQQ#Hz5UlJTK`?1spIy4 zrWes43*C7dZFiT=X3g!NZBkX=ob};t6hp3cd87FQ)ixsu9*JJJ;@I1F$`4Gr_ntXf zjbEXynEB0v8(i~r>jN0HL-x)$vK4^xN#4aZWYb|bZhGBa6*?9HJdC%+RP76ar4MI&^ z`knLB+hl96j^m093=FCzt`Q|Ei6yC4$wjF^iowXh&{)^NT-Vqz#L(Ev)WXWh49K-I eFu3#C+6F~KZhlH;S|x4`Yu7b5FifswG5`P)UDyf$ diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_r.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_r.png index 346883272d51293155f23802b370140ee2537423..89680ce875366f75be33eaaaa61923bfcf501c43 100644 GIT binary patch delta 794 zcmaFD{*Zmbl=_XHE{-7;x8BY)>=q6bI9@+HrzmVu)1j$N5p$=)yaEZ1&k?zMcnqPC9B(brrmpbcUFek&Eoqn|0GmyFrWSO zfBok)HA{n@|Fbe~9We3roYZ3CtG)Mt?PL|t%TdQKt@_o#)wyg(eU!tTWiPK;ubL&k zgi&kJj7O&$7p}`yw=)rb#I+Q3iKz3vQX& zMs=(^cx@Iqo&6adV#nmgf1<%|(xb@|Ox_1-AFxew+`O;YeTFJ?fM9NlyYU074{`6G zA5bcgvskEhH0waI!qxQ6%Z}EcPj2vMvthnB^_@M-Jci|0TJ#G1cr|8;y<4FytDIn; z^sH%JYyz+4Zw2c(hW0H#Sd$%OB^f4t(_4D?mfNcOzUz#$#A24MYno#G>Mv{1AEO65 z_9+JoUn}9`SSEdCDr0QQ@w>akEjmTq&8`19L?s5C$#z({=snZ@kQ$yh&TOg;^^6}l zcl4ZL5!|0YclRlVkPDY){B~CPyPr9{VL8i{e=?<48yGiqZrQ!BtN-g~eunQ2-dg|W zOSH&L?Ap(bE13L7IJ4f7?>_t zR}ypK{HqsI%DewaSn|d8TA#|$;A+~%qcN#o<>bV9vG{GiyN5S+v*E|^#@Y93zsCry zEx5*WBf)+O>+4j*rApyblB#{X*BxfK@z1_tV};uv!)pdShq0p`*@xtNKM z9LOy0ZKP{pscU2qVrXGyU|?lnrfXmhWNc({zreu2pjzS@QIe8al4_NkpOTqY$zWt) Qh+V^h$p1N$H!~Xo0O}rJ)c^nh delta 779 zcmaFJ{)BzPl=>~6E{-7;x8B~g?}!N%IsWnd?3*W(d=_(VL0w@KX`xtb;&D9 zjxma@LVW%Cgx~u64yylH?jrb1uklQ+=HBfFmIu<<&p$TWci2#~x$BXEq=QhNhHHtA zYlUvVZL@iyruClQ%RfZqpVp_p)4Bc8mGyey});EZMNa{cTw$;w4LF8fK^WP4$qG?H1Hlqp(-4 zf4at@MNA<#e||4ydtM;+{$c;QAGdc*V%2;mdZV3TiPeA0?eZUl*FBW|Gk3n>G1kl= zndvG{@%AaE_p_(ihkww{o2@s~f0kZLmuB<6dX^ixv(l7O4`q$?PW{2i_Y_~on==bFE!c|i)FFed;FyZ{)B~|yOZ-!0T|0!bk zy^3V}i}PF<<(`zqN4J7JC;petm_uT%ydB^dv zI#c@2yZ`+uPL8|2S0}N&*ksuLwwZaK_(7$~3E%A-BHwC>6e~!vI0|4#{*3>br>C!J z+Pf;>YO)`*xRkN3fw``+VThrzm8pf5kr|L{WnggUv$f6SdYsa0*EKgx-oR`K03?)f A;s5{u diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_usb_device.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_usb_device.png index 0f7f26a5e6eb2737b57de6b59fa94d50ad4b80a0..780a5118b14e54b4ba95a6d378a2c6443f672b00 100644 GIT binary patch delta 1835 zcmV+`2h{lT4*U<0lz+@gL_t(|+SQwDs8m%H$A2?(z2&3qdsE(^LW*8oqs$(DD0&P% zsr=9bqYQgdS$?Pw!KJ_u3o9$g3QD9*i!g>hltd4$j0vN(pirS(eFz21Yo&M2>BCy< zo_&vJ=H4?idyli=aL(DUv)6yGwf0_X?*m<=!Rj!B)!}Y-fqz0bn9lfqYzehWIcR^1 zp#exSAL|u-Ai4s8Gx|kke34$U^(C}Q1Vi3otOV47(}69Tb^);6$qS|mK_tLo-o$=UM!)9G(y~GN=1l@pdT&<$1K=uUu#~D|X&(YtYg(lByh%a` zlnct-Bg*_ivVkvX-j%=-t>axqeFI=d?{Z+drkVI>mF?H(;^{kxewR@+z#v~QK6<(tCZux>ToV~>3{PDfYaeRaIZ37)cg5}J#c4% z`+%>sPm$j1PQDlN34qZ*dbzYGqud@~ZsQ! zD&_iMb$A&t50Req>=9|&MqmZb8ltNJm>%jq0+||Xm2xy#9nKo9So5e=%2wW(odaAn z!6$baXn%S7*%AO|Xi{^%%LsXm(F8PtjOu7cpKbkcpp}MmPcg={-fe_p=PK$9&`F1; zsNZUKwKQGks+1AUsUvguslaSt8qVsi!ytH}R#3C`dkowPd<%RJe24h-50V(Pu0?t# zORXBg7s40>JwOy_q3k2%cS-I!ele8Kp2eJ)DH5)T6ZHE63|tCUAA zFR$9Qf|@xW&m#tC1&Q@90nY)Cx5>PP(JX2_4Y(0_AXRiCJ2WBXk^l!?)4{F!?%IRx zG`0^DF^+<0fc7Clkxzj)km=XHXDiN9JAbyO9d9rOj?PFQmzF~$&2}6@BtHh9QC4W``OEb;qSJ6eLnoTp~=m)>titok}--lV~pFX{8wh+1qRk%-*n zBOY*qcIKeIm(>4n*1-t47O^LnI%x*7>sM?==KZ(G5%}mh02w1{BlHk(HZpftNq+*N zeL&nm68ey>F{AW|18h@(-bJJg%^T-^=B0L*saC&EVi=D>Ha6ZzM(Z9#Dn=c~N*QfM zB5*waUEJuh%N&wl+@M1z-d*S{9J7`PfAB9N;CyimyaM<1z4eMq8%G z*49tJoxml)t0eJ2i$kRCQBVLP?SIIZzmYRyn@4RLP6{Q z0Nk(Oy^dJba?b9-j7_DI90dj0f>R8fTfz|`T|zQyu+nhHpqVjzE6r;XnYQG z0<1vuh_QRnVlMEFwb835MUBzLB;oGD1m!IZwm8*B&jDaYZyFLK%zv{2jDfSXuGb^8 zz5xI@4%xq(>}H9To2hk~WW6H}02}cUk`r8$kpe4ofaK_`H~%5TVd;IqZ#kKWkr?AX z-+lBg0VcZdkY5GXJMTR!0XE;S1vcyV4mDsX*1RIJ-L-}`w!FFyfU|d4P{wXUj=)dR zBDPUtCqU7>9a{E~0b=7bLKI>pXi~5X`5R;d$$@E$7~2u~4O(U=o<-j%a%fr)v@ z;pYK;-;IRGHmA$_jt_?TU%<#Dp`eUz&M0GNj=bu~IV~|XR53L=F*Z6dGA%GSIxsLvT)R1w5C<0;GA%GUEip7y ZF*Q0dHaajeEigAaFfcd)1BH`82QfTaY>EH? delta 1733 zcmV;$20Hot5AqI>lz&1=L_t(|+TEK=h#gfBhQGdd;v~Msg$pr;5Jij{P!SRhins_q z7!-RIS({;E2s&Z*PTAW1?}lU*Qbg6V?qPk$vQNxfZa)eS(zyzHu7 z5RCxfq~9{e9|az<=T=l^eo?S@No~6?m-M$?mqvL_cXwdSCz4u{7E0QooOW1R%gW3z z5FGPC!t0IkNxNieK?{<313-c5k4YLg#yfURTH4sWGX-O$W%tFB4w=L|&IH2qAuBUg zXJ{$1`?g)%oPX-a6wNG(rR*4J&Coyq_N2G*!Nt*OHl z2IhfD3ZC8~U=y$$n6&IOfQzCkKLdyDc?8%GJPiCx?l|>kCP^fzlsi300K(%aaH=ui z1}1=2z~|(iXa`sW>;x77sey0|IMFvVNkUlwMg|3dqkj_xOdKvKcNjR@i$A(+L9e{# z00@LfYrkLsd{q$Vc7#fIYzX zz&^6M`)LEEMT0v%{ZiFIP{4D*J5l;lU<0rOcy<^7D60X%BfA7xXU`p%FEX=u2Dk~g z)ip!v*rk$r0|5ZwPT-UR2K`3oT@}AkM2oDQ1%Cy3!Q4ixG+fmL&UcJRD zACiqVmjSm%Wi|r`fN$-+(_hoo00|4NBob1<^ z`+rcbJ#Ao|4Dh11(j-YHLta^*qsjmk79SgcSIJeeW9@AOUZT%6d>7^ua!pFf2Ehk_ zr{bbjzY(aE+PFb2*x;U!<%;bk9|uZF-?`TlRA+n)+YsRoFJQG?*N{6jHl$&Y|E8DGJgXe$^+n6dR>;a$E~AnAT1%CBUbNjU@frH z(u1=VkPN1=6L=fgK?QBA3_u^W*g7-rIvjh9F?E13;9cMbmlgo<>xx~#d%zY-Y<$cr zx!vB|3W6I)Bz-37c1a7|_V|d4_^j%(HSS{sX%s)$E$JRfqdGa-RDbNi0WcPIIDe+S zlGaLE;yR6_)dl5K$F$GeE$JZxFb=bY{xqfmH!6$i1)6Y7_|Vq@NgE|yVf9uN01#q? zf%Y5Yr#CL~0swrd`$|dgOZuaLnbbh>0DUa!l_=fQcaok^7A~I~67K>)d@Ymof~21c z?AeFGJxKokt1*7goRj!80JI|eTz@F(UP)g>W{^4{iq!x5IVCEYJ+S7iUGq*Ye0 z$)kI-4~CmD{5TOiLX811@YrCEg+f$kPU&|Y(P2+v2Y1fUoU*qjroCDKh<_Mr_bA%# zQfGJph!_d+#3D23kZ*d_3c|nvuvs8Xhc`>wuKbW>m`c!>Uuc90UHe$aQ3gpO@MDFTmHpH*wiPpE9izfbhLuq3m#~q_&@_YdguQ z{7iwL4W|AJ2=7&XdzlIS2bVpR?3?}cu>b%7C3HntbYx+4WjbSWWnpw>05UK!Gc7PT zEi*AxF*7tGBzzRH##sdt*(QBlgkG&q5B*y diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_wifi_1.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_wifi_1.png index a0bcbc7c860b8be957f20e3824355c0a8bd0fdc1..eefe7ed4954b6b26e6fc8402d60949092e2b8017 100644 GIT binary patch delta 2646 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 diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_wifi_2.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_wifi_2.png index be27b4c95918ac19967c4d985b13a96a95638120..a2caca28fe3b9d0f68e14d607e82e4c7a4ea0895 100644 GIT binary patch delta 2726 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 delta 2679 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 diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_wifi_4.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_wifi_4.png index 41241442b5ef80bab2df850e99a7a31bd24e2405..8af72e51563de74b1cd608a7e9a3f36504c7131a 100644 GIT binary patch delta 2442 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 delta 2599 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Ⅼ=j%W$@>L#}N(o0Ds@e)U7X& z>S0lJI)@Mk_-+T~p2#kf-K??+yhc3Qkq!@t<1HhKYRKgY?q1xoH;w{w{%Ae0pIoY+ z7r9u9X&$Tut}zVqfuM}^B(uOSJZ}Sj@IsU-e+}P1=p8%K5bWOG5*$3#Mmte<{FsVt z?OB!4(3-JC;TW%@Z6aZI27ghMM#5W=XMLA+Z$CkjoleTv5lV8JYLm;5^z#b3CrTP~ zbz?6Or2ZWF!EaM_Teq|Km8v`u1pq-%JG|UO0m6?5SSErrTCE zc&#n?O$UgAfT~}uNVQL$HQfudA0nH*6ru|(p6(u0_$SRl#q}GLYkz>F1?q9Dfv1r0 zs3u}>Wqm0yGBT>_lqETx{^O^NOB7*~q75=9%lj<$Ql%73A2PI-D2LEYBsV1M1U zz_$!o??qbWoo%lqcLRO87;!*Y2n5*)Qy*!ay_j&+_-Ro^)h*_^l6vGqW4l&xwy%23 zYi+ri_TyVCAHSPm&nuTBsqUJ-3g0IH91wi3_02FUujJTg?;a8k9eFi=a1&DNL;w4S zabT#qc|apkxPQVwyzl-YKmJOy*VaN*QI%NjZ7MW(50B4TTIMw$_QT<$7UKtZ8Q}}* zA0{C+3$5%%;rZVWYsN42k2dOijl5}ju>AUBdqqjQtb$3Yo?SE1};kN)+BbTTV$y4T{0-yo~ zNXfhisn0trt{A~pmEG$yyEafYcZJecT)p9?vA$s8p`Ug-bM0Om$Pl;yScg=PnjLob z;E`~(6^YgRklwga;D<;H zYZLj+B!4g<&PAFoDw(SO65!!t2@lC?fuy9B;%cOcvJz=OeGm8n((VRHo@OFZV+?W# z2M~?eg7}h+X8tmy&sTxmQ9f*V^mez9n2HvvEKN|gUxxUEC(QGyNKauFatGl?i*{hU z5&lkcP1pA!9p+oDwflYY0||f)0?0{UZ$^b9uz#Hj+uh_g;2xw8*$}g4(Eun~6H_;2 zJ|jd`ec)@rjY!kO4t09>mone&5Ls>jTTU)QL=KOl(10~EXRh6=A?h6DGGhwK5+!}7 z4!Ql=26&t2*A|rN^+p5P#?}z_GIH&9h}=a>KC<(QCCH^}k1ef}82|-AGq;Z;QK8Gf zs((1bhlu?zMVw)3AcY@L04zIIm0pKLfqYt^VBLV2j5aunYV(5zfI|wx{YW^|dq(&7 zJAu3Cy{0G{4ft)2lOJgQ{~+QQ?DF|h#P01vX+TeZPymPlAwo*%wa9;$g4p{!#Q7CH z**W0=I3TEck3sJ5Dv<1O4@J!JPdWe`5HYlRoNfSk-g-7@!VfwCc|hp$eK3WG;#Pxw zCHvo41~k@}s6-{oOaBEroOBIquGtWieF_&EGA%GUEip7yF*Q0dHaajeEigAaFfd76 oyE&7t3KtqOEigGPF*H;$H99diIxsRVFgH3dFgO7Ng_GY3F-eaNEC2ui delta 2632 zcmV-O3b*yc7LXQ@lYa@|Nklh`Gs&lr#% zrH;PoPk_J$ZY+Qq5da~>J#(ZP>{WoNKshiAm~MVg1xiEjod+%g7l5&6OrSW&;d%`KT|fuW0=xmd2K*hkM|5%3k@9Wv!pAQQTt({LT|N8k}-yp4w8cs)Qzid!Px zxozjSd)WKoTw&*XkmK04lGwJzz(#bkT+hI1Lw_C_uU7zH2R1m3J*Tr=k+)#Ec_C#y z@ix$jCObVqpK0S6uxA35z-*(qO@J;K)?v9g!!6r4q7(Psz!r1`QF-Qtj{&=Y1vuGr z7)JY{Hvd4Ams99yI))}NJvn&NL-T-nz(O>~xDB`!s0zKC%e1t5*|7gCx>7stqz|K{S zw{`?sa3^{lFq^TF4sb6^HX&6{mb0H8Gm>b zoy4bv#zW|;> zR~XRI_ZWI%W&z6wUIOkVGfjibo(O>;Xd?6*bO!E5lZc%L$!Wmnfz1X4%>D7C#I}~( z$mjx|1ilZPGkR-pYWGwGZO)xVyrtL}%WILIdThq`Q2zie#h0wtr7cqb0{N zl+h`T_V9yfPBPn$XKWg@H!#$WkWD%X^bX955XwV|n-juW{H#){8|YO^T>=o10-#7l zW&rPt7$ZFAvx#rO^Nh}2WT<{tqeOX5aT;$ji%n=HS7D#~K?O)922eqpYk9fVFGa zLS}bZp-WT8-o1O@_B@Y7B0*_s>C@}iulH+fYZsR^pOfUW>8 z%ep^p}M-7y1F_qnM^JSg5aaR@7E}$ z<|(CSD5Z+foI?TqBGM}&-6GN+1i?|IR8xL_{;B=@_ov(2+i7ZQDn4`O%<5z^xe-_y z0>SEX3{8#Sb#xwbPk-==i7WzyThOFp4jHEQMnOTr6LaUz{pF%Xi-Hv^Rxp45{5wiY zN>+QGw+8qC0~um2k^)WzLGWBpPtTzfCr-S2N&VEeC!Jlq#jRRaI5(jKyNz8#Zj9udnZ(DO09ApnsHFiC(l=alh<@%bi;u zqZVVAMC7IZ{{9~n78d@hv9XcEhYwF{X=!;_L>@OWlc6NG|m6hu}&)Y_Z8r!-*meknoGYu4bp0~B4qGEkVM~7Em zU!PCzdxm2pBBDgZ6OpMR@~mh{%6l&uK5p|th54uL+>>Rnqb|8-Zxy#z^yG;$MfjVb4@rIU#SWFNEHzY z_c`HgrGHgK9u<+L&imPpB_gs#L|P(3|I?wdMy>y-p$jRIhpzn(0^db@{9EYVq;uw- zGGGyUsXEKt`!{+^>o}Umf-b4`=x>wL(VH4OoH4Wk6Y2dh5TV4lSwvPj_iq=GT_SQK zOQH)zM75|ITWaxzrPh7z0bT1DhG)5k>p0b^7ExOKWl zL=ujtvx$9nRzyDH_HoUL3@(qgqBlLRGzI!aq|TW}*G|~y0K)x4Oa&YI^)kk_{%Qcg zHGk*{C(}#l`kP_nuW0~6ASh#4o`~#myly?eS40ZTJ6CVL9|I5&kzx^vI}z}E5h;9`D7?gfT3o zl>3K=@!ijxlu4NsEB^)IRnyO&XFqEI0F$x`6&f=wFgGnTF;p=#IyE>tGBzzRH##sd q-19p;li>;%8Z#|0H!U+UR53F;H8?slHZ3qWIxsM;u7iM+5(_Z`_1u~O diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_wifi_full_3.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_wifi_full_3.png index 1deeba62def2d063f493ae5a7b93e73b59dc9450..0224da117d147911f3907924442da1abe570eb78 100644 GIT binary patch delta 2834 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 aR53F;H8?slHZ3qWIxsM;u7iM+g$pq_nM`E> diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_wifi_full_4.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_wifi_full_4.png index 2835c0f601f7afbb115a3c12a6d329ccfc570f3a..fe286717a570f8e03c7b8186bcbd179a0dcef8f2 100644 GIT binary patch delta 2442 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 IZ<8(wCw1tEVE_OC delta 2220 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 E0RTABfdBvi delta 504 zcmX@WdYN^?l={VIa4OjS3;ajVRHV%u=C>pkQ20~``9=bwFSjDPFf#(2fqf@$5%z3Vp{{JdQdx2#SiidEpa6jSt%P3xwY-BCM#pv=NQ z>Q@@$m9TmPzfUqdk}k<41}X0Tp_?G)a6D;3-G2Y=x7U7XE^_M~vi;)3@r-fC zmxdJ=x!ZoI?ciDS=y%i2d;L29xvw0JE8yDmAbzs%_qr=?{Q3+BEW;VsACT0YQkTtW z5@x~tNx)4z>LycfTZHe=SQjt|`o*%5uQJLr-P?b%E|a*Fv95u+uCZZ=p|O>zg_V&R akZWaNaObnN&EzH%#tlG6Vnx$mN>= diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_wifi_inout.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_wifi_inout.png index ae0295a2bb6248db7d72856bb63903e52612597d..341716d8f6c5ab598d034ba5a4eabf8c5e46a114 100644 GIT binary patch delta 803 zcmaFKew}^7l=|hKE{-7;x8BY;-_PSH(y)Kt&8>xnpR{-Ew6qA|tY;OR!ztA1B2%C` z=V+>>fZ3dhs{c4AJ+d!w{eT_oQ8y zUj!fUZE#-4zxMKhkOr3J2lH9ZF-12_E?RrG&ODaMs&zdpA0vAM+YSY#GrjrvtWHQsd#f#f>MIdyZ9;Vr4lseTQ^>oxZZS+wddsD z!w2jZoI4h7`MjY%S7KRHD$o#}0?%V>Hz|bnRqAdKT3}o=XUgxh`N#4+qZdW$ZV*^- zFkj*9yG=6Ma~CsCYj}Hrb5oSTOQw>_`HXy%E+zDB5iRSt3<})C_C`!|@3KQZjSW$D z=FI*-itDx)#aB0&&pgm6>cG(`@%U@~pZLqq_s--HX!{d;>gp1a`WI7^`VYTmJuMnw zyo&vG+r8PnIr96N-lV>DEnuwR<8k8HyR_*jm&ByBf7}Hnz5iEw$}Z-5$=fZpz_^aT z!ZE99-{xI{Q4?RA7EIm3nk8&{k!j1!NTz3=y%%&=&tAZ|GWrjL&6Dftt({^MyenAt zq~KqaPL&5tkVoGMyvX3Mg`7I=c{XdC!b#udMW#Rx|YIhN8V4GnW8Vc1tiu^ zxP9RGN}&m!7Zmn0ns5I2_2>!f2X>L~zVH2WmL+9H%kcx+ZpN__ztwKOqp#|4{7m*i zh94|<4i&td%`FkkJ&#fUsoXQyLtnT~s65&FKyT$I{e(HcyPh5n=<|wT*~j$W@LYZE z(i@KpI2KNQAg;OLOE>3>GX<_yx3q<9M7$dP9CMDxl*=41grHwf*q1O~{=4^s#|;Js z2GtVRh?11Vl2ohYqEsNoU}Ruuq-$WQYh(~&XklewU}a#cYhVs!G`xxRMbVI(pOTqY T3DF>dO~=QLPd`rH!E6Wsf8}X@ delta 821 zcmcc4{*rydl=_{XE{-7;x8BaM@4k{C&_4goI`vyIkL5pX*(`F9IXA_=xog2!(M1}! zIQNN(nQ5;1vSFu_t}Bb}2j+++K^OEBRJ%09y3F3)RTF#PBVD}vPGrix+of_GoQc!F z&%J-Koi9hz7I?7=1nw%o!l8#Qd!B zvXYCCU=Zhpi3`p%Xdh_0^FC^O<4OjhIc)p6cW}I6o%SRy^!MEy&I<s=8{e5ba~6fe;g%lz^$Z_!6t0mfZL z^VsVc^h2lA?f0(_6j}Rj?N_cD7k+mim=MSmGDrJB9Z&SZO{`uC>>Iytc5Bc&C)cz0 zfEUBr50wvQbQtF4er*~6K=6y__U8fM%|9-`I9>~ zWvAxlF}6$EszxnNS2z%Gj{5+&+57ii-%3R)!i5X6SOfC@y_WxEQ?K3%%OIFFX?VJb#taew%$1T(QjZD$@%CV}@yx_6%QB^otLqKM<6@FTO0S zVHZb#<945SuYH>8^{*ecIiFtd#1Na!yW{XN%lO+*v@m*rXuV+j?ADY59wWkUmjA0Pw50Hx6;AV1g@&VOF_4+fu z?o0Zq7vR44f#io?3$@wb_Dyz~IhjYa6HrEr^cX{FKbJO58fuu4`_Xyo}ip06D#5dH?_b diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_wifi_no_network.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_wifi_no_network.png index ee5d429338178bca95ce0b4082f02500f2238293..4c6f1ff1a3152d7fcecdae25d83af6828a8e16bd 100644 GIT binary patch delta 2060 zcmV+n2=n)o65A1wlz*#9L_t(|+U?qVj9gV62k_7AZc!|+G*u+25+xYXqL>Vk(D;b8 z*cu_kN2;{=q-v1Vq-s=bwI-q%sS=`sQYC1O8lo6AS_u-BXc}E3)F5gD4G6(1At+X% z-R=6v?{{|Y+}?dMvt7delAD>ibMHC7@AsVF>zu=aEXaZ^$bW(?$bu}$lT=#$XmogZ zc%pt<)97<7FO^TwZnx(z0SUT=f&4s_S1)8Bud!@%tXE{rn1JEoVeNLiI?7ehBMq-C z!clk*PQ+3?9S3ntKJ%Y^?w@!N`>+=W^0~SU6(aH)*J-B2%!q&n&_#(NPs6D=885+^ zcs@?b|7Ifp#eW0%Gk%9Z;9mR%|Epo>(q$$jOi4h^o?95yJNye>}g-^cgxD`84>OmegV zOP3rr0~$trprZ82xCpCJZSi*e7{A6Jai6KB-uKuv-dQGQ*$SMC7gbfqPHe|L6*9Zb zv`$2q5)C$9fS-=_crT92d$-{hd<(mEn?*5|F_VO~X^_*ZT%)!3hmwGGc$F|c_&2V> zjvS1`h<~V((5eBa<4_9YA5QQm8<_5{2_ zn8i7H@8KljvpO@ficP!S)|z0{kH)+3F+4N>zo7!WjKok~nSLZIbwV0QFSD;zA>vJW z@9($_UlY-zYc{kh2}}X?GF*(TT zhJGu&{$pZlY!;q%VCpXCy_6`iIk7#4cO>S)5(SFAT!d@$`@8Y=WN$plneVfp<_C)I z@5EOV=LV524q|lNtLKgFA_NZNN>Sj9=zsWvCz6z+Z56(dzb~(Xr+bPY%0IT?o1z%G z9?SFLfd+=>l~i;qIl=P8a9m>AqLahm@Km_u1dH)Qkz?P6*We#j=H{CzR4^1BpMjr= z8sQe4hy4|dkqS@Jz=x4s7_akf@qcS{D%$TxCvCilz-{I zPgGhDWJA{or&6-Vd0`F>waifJx-xZNpIF9I9(2FRqCQ?BsII_~ z1W#vlH>a-qQ}^8}IZb`mP8R1!^2MFln2m1{p|V7c`69*RUxZJjej8Kwt}tGg3D*Q0 ze8Sdjd_P_<)&-83Q*6-h9I-sM7=NEkeW%oKI+@;~d~T~qCKlrx!n=;ogt;_@2JmO3 zPK#5=t!j%O6Un5j!Zim2Pr(mFSiDmd757#(&w|qR6k9Gz4Jx7%QT|ZOqRt< zhbQ5uc(GU=daceneP6?4!+;!(pNLhU+p$J?{%H@$lqOJ%41?LhI^3TfUw@sz$M^mE zVGcF$CEj11I^3@lvd1&M=?uiQs=Zo{FeujgFA!_}Z^dVHd_}*djP7OG_amvx9cJN_ zXS+34I$AGs?G`Q(i>5uT9w(^oE*1+KV+{LL@2r^6}?t$lh3GnY%sB-#465;Y=3)Q_SIP3%^3l; zj!TZP2N$M-Yw_t+vT5C6GVq0fQL&!CHru=~`=U50T0Iv|I zI!ZpV*BmUl^{squAYqqSv^Wyf)>%gZa#^xd6{3=LCB!B}ceXgvTrKIpGlH z_e1&Ljiy-1?WOePw0Kn}IE1xLjQT_Q-x9Hbxyd9)+MbXEG>}j}zoT=K>ju18?L6UJ zEVa)G0W}iJu|xM`#ik{(30o@1Iaytva{_84l(@evf8XZ_ZMx1W0TYnW^?j~)n2y*P zpgh~xLTf&qIb4thd6LQh0TQ99zZX~|r;~sP7aB4xFgYzUFjO%(IxsLgFf}bOH##sd qfb3mOld%XF8Zs>~IW00UR53U@FfckWH7zhVIxsNtvE}iT;s`OTatt{D delta 2153 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 diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_wifi_out.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_wifi_out.png index 10d94ac78b64f38738d3b5f0a5ae0ad8366059eb..b2ad34d78d8c93e76f0ef0334d971608cd090c99 100644 GIT binary patch delta 462 zcmX@Wx{`Iml=@0f7srr_TW_!WdmVNVIsP&KR#xHTQ}rvX%k{P{SRTN&YugG1jz>2!8rK zK#Ao$LzL?^2OhO~s|(_U{*U$o_Ek0OJOBmj}0+3i4ZpbOjpa3esP@C$R4L#m{K6{=eXc*`hJb z%MUD*-F=p6I)mDmf4zT28rQuwZ!n&de((zOj0?Zp5AYeByOw`wCremi4(oZbjsr3U z*{{PQC;D2v+k8N~q5c`C{NyV8x=m%izf^XeW$I^`_2{{$|M#ogwqFx#6i?u_P@K)W zSGOEWYd zY!Enfn16luty3_=Vo gtPBjS3`}(m%z=!CH?h8x<8VrU-1zk4Tj zWMe+_*|qaOxN!V~?wuoQe3sXbB~0Y9oqp{;yOUGqN!$H*ih~3MA;4de#fc;Sy5^Q3 z(Y#H+q=H%=$T=)NA*A8NF|+#VN~RU86B%P4oN4k9a#~f-5Eb^t@&n74H=nnaOYdMy zIC}Ka^~UT3Zi!pzsc)-Ki#jBKn0i37fJx+l?grncFprB&tQQ#Hz5UlJTK`?1spIy4 zrWes43*C7dZFiT=X3g!NZBkX=ob};t6hp3cd87FQ)ixsu9*JJJ;@I1F$`4Gr_ntXf zjbEXynEB0v8(i~r>jN0HL-x)$vK4^xN#4aZWYb|bZhGBa6*?9HJdC%+RP76ar4MI&^ z`knLB+hl96j^m093=FCzt`Q|Ei6yC4$wjF^iowXh&{)^NT-Vqz#L(Ev)WXWh49K-I eFu3#C+6F~KZhlH;S|x4`Yu7b5FifswG5`P)UDyf$ From 69f73458d09152fbed914bdf115583e028bdf394 Mon Sep 17 00:00:00 2001 From: Craig Mautner Date: Mon, 5 Aug 2013 16:14:22 -0700 Subject: [PATCH 47/55] Clear last paused activity. Moving an activity to the back used to move it behind the launcher. This meant that the test in resumeTopActivityLocked() for mLastPausedActivity being equal to the top activity would fail after moveTaskToBack(). In the new activity stack model the launcher is on a different stack so if there is only one task then the test now passes. Clearing mLastPausedActivity when moving an activity forward now passes the test. Fixes bug 10022212. Change-Id: I17932d5c87d2483f13c29ae85a7067202a08f34e --- services/java/com/android/server/am/ActivityStack.java | 1 + 1 file changed, 1 insertion(+) diff --git a/services/java/com/android/server/am/ActivityStack.java b/services/java/com/android/server/am/ActivityStack.java index dd71044b37545..cc1be98e589bf 100644 --- a/services/java/com/android/server/am/ActivityStack.java +++ b/services/java/com/android/server/am/ActivityStack.java @@ -2949,6 +2949,7 @@ final class ActivityStack { mWindowManager.moveTaskToTop(tr.taskId); + mLastPausedActivity = null; mStackSupervisor.resumeTopActivitiesLocked(); EventLog.writeEvent(EventLogTags.AM_TASK_TO_FRONT, tr.userId, tr.taskId); From ac13c550cdd7c011e2650c9e40b62b7900a4ca67 Mon Sep 17 00:00:00 2001 From: Amith Yamasani Date: Tue, 6 Aug 2013 11:18:53 -0700 Subject: [PATCH 48/55] Remove restrictions PIN for all users Bug: 10200097 Change-Id: I4d95cd49a21e8f4f6b2c141d1205f81622c395b5 --- .../android/server/pm/UserManagerService.java | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/services/java/com/android/server/pm/UserManagerService.java b/services/java/com/android/server/pm/UserManagerService.java index 4ead8d50a40df..35b5c85c0952d 100644 --- a/services/java/com/android/server/pm/UserManagerService.java +++ b/services/java/com/android/server/pm/UserManagerService.java @@ -116,7 +116,7 @@ public class UserManagerService extends IUserManager.Stub { private static final int MIN_USER_ID = 10; - private static final int USER_VERSION = 2; + private static final int USER_VERSION = 3; private static final long EPOCH_PLUS_30_YEARS = 30L * 365 * 24 * 60 * 60 * 1000L; // ms @@ -425,6 +425,7 @@ public class UserManagerService extends IUserManager.Stub { && restrictions.getBoolean(UserManager.DISALLOW_APP_RESTRICTIONS, false)) { restrictions.putBoolean(UserManager.DISALLOW_APP_RESTRICTIONS, false); } + mUserRestrictions.get(userId).clear(); mUserRestrictions.get(userId).putAll(restrictions); writeUserLocked(mUsers.get(userId)); } @@ -555,7 +556,7 @@ public class UserManagerService extends IUserManager.Stub { } } updateUserIdsLocked(); - upgradeIfNecessary(); + upgradeIfNecessaryLocked(); } catch (IOException ioe) { fallbackToSingleUserLocked(); } catch (XmlPullParserException pe) { @@ -573,7 +574,7 @@ public class UserManagerService extends IUserManager.Stub { /** * Upgrade steps between versions, either for fixing bugs or changing the data format. */ - private void upgradeIfNecessary() { + private void upgradeIfNecessaryLocked() { int userVersion = mUserVersion; if (userVersion < 1) { // Assign a proper name for the owner, if not initialized correctly before @@ -595,6 +596,18 @@ public class UserManagerService extends IUserManager.Stub { userVersion = 2; } + if (userVersion < 3) { + // Remove restrictions PIN for all users + for (int i = 0; i < mRestrictionsPinStates.size(); i++) { + int userId = mRestrictionsPinStates.keyAt(i); + RestrictionsPinState state = mRestrictionsPinStates.valueAt(i); + if (state.salt != 0 && state.pinHash != null) { + removeRestrictionsForUser(userId); + } + } + userVersion = 3; + } + if (userVersion < USER_VERSION) { Slog.w(LOG_TAG, "User version " + mUserVersion + " didn't upgrade as expected to " + USER_VERSION); @@ -1221,6 +1234,10 @@ public class UserManagerService extends IUserManager.Stub { public void removeRestrictions() { checkManageUsersPermission("Only system can remove restrictions"); final int userHandle = UserHandle.getCallingUserId(); + removeRestrictionsForUser(userHandle); + } + + private void removeRestrictionsForUser(final int userHandle) { synchronized (mPackagesLock) { // Remove all user restrictions setUserRestrictions(new Bundle(), userHandle); From 553f7779d4456ac7f3f28fed4c0259fd2c9566ba Mon Sep 17 00:00:00 2001 From: Amith Yamasani Date: Wed, 7 Aug 2013 11:06:44 -0700 Subject: [PATCH 49/55] Try again to cleanup all blocked apps Since the Restrictions feature was removed, some cleanup code was added to unblock apps. But the cleanup is causing some runtime exceptions due to happening too early in the boot up sequence. Moved the cleanup to after boot_completed broadcast is received. Bug: 10212758 Change-Id: Id42eff16b54c24ea48cf8b3a81f77ea801264edd --- .../android/server/pm/UserManagerService.java | 43 ++++++++++++++++--- 1 file changed, 37 insertions(+), 6 deletions(-) diff --git a/services/java/com/android/server/pm/UserManagerService.java b/services/java/com/android/server/pm/UserManagerService.java index 35b5c85c0952d..bb3791757c41c 100644 --- a/services/java/com/android/server/pm/UserManagerService.java +++ b/services/java/com/android/server/pm/UserManagerService.java @@ -26,6 +26,7 @@ import android.app.IStopUserCallback; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; +import android.content.IntentFilter; import android.content.RestrictionEntry; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; @@ -116,7 +117,7 @@ public class UserManagerService extends IUserManager.Stub { private static final int MIN_USER_ID = 10; - private static final int USER_VERSION = 3; + private static final int USER_VERSION = 4; private static final long EPOCH_PLUS_30_YEARS = 30L * 365 * 24 * 60 * 60 * 1000L; // ms @@ -162,6 +163,8 @@ public class UserManagerService extends IUserManager.Stub { private boolean mGuestEnabled; private int mNextSerialNumber; private int mUserVersion = 0; + // Temporary cleanup variable, this and associated code should be removed later. + private boolean mUnblockAppsTemp; private static UserManagerService sInstance; @@ -232,12 +235,14 @@ public class UserManagerService extends IUserManager.Stub { sInstance = this; } } - } void systemReady() { - mUserPackageMonitor.register(ActivityThread.systemMain().getSystemContext(), + final Context context = ActivityThread.systemMain().getSystemContext(); + mUserPackageMonitor.register(context, null, UserHandle.ALL, false); + context.registerReceiver(mBootCompletedReceiver, + new IntentFilter(Intent.ACTION_BOOT_COMPLETED)); userForeground(UserHandle.USER_OWNER); } @@ -602,12 +607,17 @@ public class UserManagerService extends IUserManager.Stub { int userId = mRestrictionsPinStates.keyAt(i); RestrictionsPinState state = mRestrictionsPinStates.valueAt(i); if (state.salt != 0 && state.pinHash != null) { - removeRestrictionsForUser(userId); + removeRestrictionsForUser(userId, false); } } userVersion = 3; } + if (userVersion < 4) { + mUnblockAppsTemp = true; + userVersion = 4; + } + if (userVersion < USER_VERSION) { Slog.w(LOG_TAG, "User version " + mUserVersion + " didn't upgrade as expected to " + USER_VERSION); @@ -1234,10 +1244,10 @@ public class UserManagerService extends IUserManager.Stub { public void removeRestrictions() { checkManageUsersPermission("Only system can remove restrictions"); final int userHandle = UserHandle.getCallingUserId(); - removeRestrictionsForUser(userHandle); + removeRestrictionsForUser(userHandle, true); } - private void removeRestrictionsForUser(final int userHandle) { + private void removeRestrictionsForUser(final int userHandle, boolean unblockApps) { synchronized (mPackagesLock) { // Remove all user restrictions setUserRestrictions(new Bundle(), userHandle); @@ -1246,6 +1256,12 @@ public class UserManagerService extends IUserManager.Stub { // Remove any app restrictions cleanAppRestrictions(userHandle, true); } + if (unblockApps) { + unblockAllAppsForUser(userHandle); + } + } + + private void unblockAllAppsForUser(final int userHandle) { mHandler.post(new Runnable() { @Override public void run() { @@ -1572,4 +1588,19 @@ public class UserManagerService extends IUserManager.Stub { } } }; + + private BroadcastReceiver mBootCompletedReceiver = new BroadcastReceiver() { + @Override public void onReceive(Context context, Intent intent) { + // This code block can be removed after cleanup + if (mUnblockAppsTemp) { + synchronized (mPackagesLock) { + // Unblock apps due to removal of restrictions feature + for (int i = 0; i < mUsers.size(); i++) { + int userId = mUsers.keyAt(i); + unblockAllAppsForUser(userId); + } + } + } + } + }; } From 05fe7063dd9034f66f7e0c0065484f46340675b1 Mon Sep 17 00:00:00 2001 From: Alan Viverette Date: Wed, 7 Aug 2013 15:47:04 -0700 Subject: [PATCH 50/55] Fix FastScroller regression for non-UI threads Previously it was safe to call setFastScrollEnabled() and setFastScrollAlwaysVisible() off the UI thread. After switching FastScroller to use an Overlay, these methods stopped working. This change ensures that all direct interaction with FastScroller happens on the thread that created the host AbsListView. BUG: 10210504 Change-Id: Ib6d9bd9212965420c0de39546652e3bc2d32ff8b --- core/java/android/widget/AbsListView.java | 72 ++++++++++++++++++---- core/java/android/widget/FastScroller.java | 3 +- 2 files changed, 62 insertions(+), 13 deletions(-) diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java index d8a2edaff2c41..893318d990ed6 100644 --- a/core/java/android/widget/AbsListView.java +++ b/core/java/android/widget/AbsListView.java @@ -222,6 +222,11 @@ public abstract class AbsListView extends AdapterView implements Te */ public static final int CHOICE_MODE_MULTIPLE_MODAL = 3; + /** + * The thread that created this view. + */ + private final Thread mOwnerThread; + /** * Controls if/how the user may choose/check items in the list */ @@ -437,6 +442,11 @@ public abstract class AbsListView extends AdapterView implements Te */ boolean mFastScrollEnabled; + /** + * Whether or not to always show the fast scroll feature on this list + */ + boolean mFastScrollAlwaysVisible; + /** * Optional callback to notify client when scroll position has changed */ @@ -756,6 +766,8 @@ public abstract class AbsListView extends AdapterView implements Te super(context); initAbsListView(); + mOwnerThread = Thread.currentThread(); + setVerticalScrollBarEnabled(true); TypedArray a = context.obtainStyledAttributes(R.styleable.View); initializeScrollbars(a); @@ -770,6 +782,8 @@ public abstract class AbsListView extends AdapterView implements Te super(context, attrs, defStyle); initAbsListView(); + mOwnerThread = Thread.currentThread(); + TypedArray a = context.obtainStyledAttributes(attrs, com.android.internal.R.styleable.AbsListView, defStyle, 0); @@ -1205,15 +1219,28 @@ public abstract class AbsListView extends AdapterView implements Te * @see #isFastScrollEnabled() * @param enabled whether or not to enable fast scrolling */ - public void setFastScrollEnabled(boolean enabled) { - mFastScrollEnabled = enabled; + public void setFastScrollEnabled(final boolean enabled) { + if (mFastScrollEnabled != enabled) { + mFastScrollEnabled = enabled; - if (enabled && mFastScroller == null) { - mFastScroller = new FastScroller(getContext(), this); + if (isOwnerThread()) { + setFastScrollerEnabledUiThread(enabled); + } else { + post(new Runnable() { + @Override + public void run() { + setFastScrollerEnabledUiThread(enabled); + } + }); + } } + } + private void setFastScrollerEnabledUiThread(boolean enabled) { if (mFastScroller != null) { mFastScroller.setEnabled(enabled); + } else if (enabled) { + mFastScroller = new FastScroller(this); } } @@ -1228,17 +1255,38 @@ public abstract class AbsListView extends AdapterView implements Te * @see #setScrollBarStyle(int) * @see #setFastScrollEnabled(boolean) */ - public void setFastScrollAlwaysVisible(boolean alwaysShow) { - if (alwaysShow && !mFastScrollEnabled) { - setFastScrollEnabled(true); - } + public void setFastScrollAlwaysVisible(final boolean alwaysShow) { + if (mFastScrollAlwaysVisible != alwaysShow) { + if (alwaysShow && !mFastScrollEnabled) { + setFastScrollEnabled(true); + } + mFastScrollAlwaysVisible = alwaysShow; + + if (isOwnerThread()) { + setFastScrollerAlwaysVisibleUiThread(alwaysShow); + } else { + post(new Runnable() { + @Override + public void run() { + setFastScrollerAlwaysVisibleUiThread(alwaysShow); + } + }); + } + } + } + + private void setFastScrollerAlwaysVisibleUiThread(boolean alwaysShow) { if (mFastScroller != null) { mFastScroller.setAlwaysShow(alwaysShow); } + } - computeOpaqueFlags(); - recomputePadding(); + /** + * @return whether the current thread is the one that created the view + */ + private boolean isOwnerThread() { + return mOwnerThread == Thread.currentThread(); } /** @@ -1249,12 +1297,12 @@ public abstract class AbsListView extends AdapterView implements Te * @see #setFastScrollAlwaysVisible(boolean) */ public boolean isFastScrollAlwaysVisible() { - return mFastScrollEnabled && mFastScroller.isAlwaysShowEnabled(); + return mFastScrollEnabled && mFastScrollAlwaysVisible; } @Override public int getVerticalScrollbarWidth() { - if (isFastScrollAlwaysVisible()) { + if (isFastScrollAlwaysVisible() && mFastScroller != null) { return Math.max(super.getVerticalScrollbarWidth(), mFastScroller.getWidth()); } return super.getVerticalScrollbarWidth(); diff --git a/core/java/android/widget/FastScroller.java b/core/java/android/widget/FastScroller.java index d08e38ee54ad0..b3b00b103fe44 100644 --- a/core/java/android/widget/FastScroller.java +++ b/core/java/android/widget/FastScroller.java @@ -231,10 +231,11 @@ class FastScroller { } }; - public FastScroller(Context context, AbsListView listView) { + public FastScroller(AbsListView listView) { mList = listView; mOverlay = listView.getOverlay(); + final Context context = listView.getContext(); mScaledTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop(); final Resources res = context.getResources(); From e0eb7d2fad6e22db2a930317313b087a15696165 Mon Sep 17 00:00:00 2001 From: Daniel Sandler Date: Thu, 8 Aug 2013 14:32:53 -0400 Subject: [PATCH 51/55] Add missing densities for HUN backgrounds. Bug: 10242598 Change-Id: I4bb48102c1d1f94e61c6c8f61e567be919a5fbdf --- .../res/drawable-hdpi/heads_up_window_bg.9.png | Bin 0 -> 779 bytes .../res/drawable-mdpi/heads_up_window_bg.9.png | Bin 0 -> 500 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 packages/SystemUI/res/drawable-hdpi/heads_up_window_bg.9.png create mode 100644 packages/SystemUI/res/drawable-mdpi/heads_up_window_bg.9.png diff --git a/packages/SystemUI/res/drawable-hdpi/heads_up_window_bg.9.png b/packages/SystemUI/res/drawable-hdpi/heads_up_window_bg.9.png new file mode 100644 index 0000000000000000000000000000000000000000..3b952d0f06aac5f1e89db61b41d0e1387817e2b4 GIT binary patch literal 779 zcmV+m1N8ifP)le zK~z}7#h2@joG=W9Pe>TpX*Jb8Wgn+++Dfx(m*Eokk1d_LCNR}X9Vr3~gl~>7ae$Bi z$wy9>4s3}A0CZ&U$ewoQl9L0$u?d(0K!!>Ha&W%|SLu8sklKPQC)MldXd?&r?LGf- zgQ`0CUTTF$X(*T+NC%)NTOYuBK!#fBdLjGfVEOn5U`st4MPV|43&G{U&0aN|YarjCD)kC;0WcEm#ktu4XN543j^Kn;756TVvUtz67XX7EU-a0kEt9(p zuqV|x)@BL=`%Va18gSVuHURjfU?YGpY8%v+Ng+#&N#P#)tx3m5U@I}KKG}|9kh3(C zO9zD<_5A7pg&=0NO=RyWc{&%rhjnnT7Dh2Rl7b~rFp=8_s)ziiS&T4?C8&WdHOuXG z`}VJk|NVad>cCQCO_${Ak&S`e`I!`ZRkf~qZYo|~!L}7*()fD-_@Sld7l7|{?~M{^ zqC&n!E*6)Cm11SpNeX=wfh#88aXP|;%eBY*IW{Q>g2P&V`XOC0esN& zZv^_@fR)x#=i8%7nZ{sHSFJk7<^tUp>cy$KPyzQU%9$*#E|x4-7kVZKfYDNCAXXE3 zby=TrG2FjrxATH;Se4$RRz!ujtwp#ugbk`EN^{-7-IkANl*NN~3 zs0%httvyK#O3rMWB(05f_R{G;Y|fwh=5M0pZW!H9z6JmQ002ov JPDHLkV1hYPVFLgF literal 0 HcmV?d00001 diff --git a/packages/SystemUI/res/drawable-mdpi/heads_up_window_bg.9.png b/packages/SystemUI/res/drawable-mdpi/heads_up_window_bg.9.png new file mode 100644 index 0000000000000000000000000000000000000000..a0ab991185f58af5de2aebd6d117897c867ff411 GIT binary patch literal 500 zcmVy%suNa+cklQfN Date: Sat, 10 Aug 2013 11:22:31 -0700 Subject: [PATCH 52/55] PROXY_SERVICE may be missing and its reference null. Protect ourselves from when PROXY_SERVICE is missing and mProxyService is null. Bug: 10267814 Change-Id: Ia329376218e246cdde3d70b578c18466d48a6383 --- core/java/android/net/PacProxySelector.java | 10 ++++++++++ .../android/server/connectivity/PacManager.java | 14 ++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/core/java/android/net/PacProxySelector.java b/core/java/android/net/PacProxySelector.java index be3a31dce10bd..d3ce2e509e143 100644 --- a/core/java/android/net/PacProxySelector.java +++ b/core/java/android/net/PacProxySelector.java @@ -3,6 +3,7 @@ package android.net; import android.os.RemoteException; import android.os.ServiceManager; +import android.util.Log; import com.android.net.IProxyService; import com.google.android.collect.Lists; @@ -21,16 +22,25 @@ import java.util.List; * @hide */ public class PacProxySelector extends ProxySelector { + private static final String TAG = "PacProxySelector"; public static final String PROXY_SERVICE = "com.android.net.IProxyService"; private IProxyService mProxyService; public PacProxySelector() { mProxyService = IProxyService.Stub.asInterface( ServiceManager.getService(PROXY_SERVICE)); + if (mProxyService == null) { + // Added because of b10267814 where mako is restarting. + Log.e(TAG, "PackManager: no proxy service"); + } } @Override public List select(URI uri) { + if (mProxyService == null) { + Log.e(TAG, "select: no proxy service return NO_PROXY"); + return Lists.newArrayList(java.net.Proxy.NO_PROXY); + } String response = null; String urlString; try { diff --git a/services/java/com/android/server/connectivity/PacManager.java b/services/java/com/android/server/connectivity/PacManager.java index 189c6261c39a7..defe9f0751474 100644 --- a/services/java/com/android/server/connectivity/PacManager.java +++ b/services/java/com/android/server/connectivity/PacManager.java @@ -83,6 +83,12 @@ public class PacManager implements Runnable { mContext = context; mProxyService = IProxyService.Stub.asInterface( ServiceManager.getService(PROXY_SERVICE)); + if (mProxyService == null) { + // Added because of b10267814 where mako is restarting. + Log.e(TAG, "PacManager: no proxy service"); + } else { + Log.d(TAG, "PacManager: mProxyService available"); + } mPacRefreshIntent = PendingIntent.getBroadcast( context, 0, new Intent(ACTION_PAC_REFRESH), 0); @@ -98,6 +104,10 @@ public class PacManager implements Runnable { } public void setCurrentProxyScriptUrl(ProxyProperties proxy) { + if (mProxyService == null) { + Log.e(TAG, "setCurrentProxyScriptUrl: no proxy service"); + return; + } if (!TextUtils.isEmpty(proxy.getPacFileUrl())) { try { mProxyService.startPacSystem(); @@ -212,6 +222,10 @@ public class PacManager implements Runnable { } private boolean setCurrentProxyScript(String script) { + if (mProxyService == null) { + Log.e(TAG, "setCurrentProxyScript: no proxy service"); + return false; + } try { if (mProxyService.setPacFile(script) != NO_ERROR) { Log.e(TAG, "Unable to parse proxy script."); From 34dd35b2964dade2014d5c530cf49140aa062b5f Mon Sep 17 00:00:00 2001 From: Craig Mautner Date: Mon, 12 Aug 2013 17:56:34 -0700 Subject: [PATCH 53/55] Fix Configuration layout direction comparison. If the Configuration layout direction is not changing don't indicate that it has changed. When the indication is made incorrectly it causes the window manager to believe that the configuration has changed and it will start freezing the screen and setting up animations. Bad jank is the result. In Configuration.updateFrom() anytime that the screenLayouts were different the code was setting ActivityInfo.CONFIG_LAYOUT_DIRECTION in the return bitmask. Even if the only difference was between UNDEFINED fields. This fix makes sure that the layout direction field has actually changed before setting ActivityInfo.CONFIG_LAYOUT_DIRECTION in the return bitmask. In Configuration.diff() if the passed Configuration had SCREENLAYOUT_LAYOUTDIR_UNDEFINED the code was setting ActivityInfo.CONFIG_LAYOUT_DIRECTION in the return bitmask. This fix makes sure that if the passed Configuration has fields set to SCREENLAYOUT_*_UNDEFINED then corresponding bits will no longer be set in the returned bitmask. Fixes bug 10291622. Fixes bug 10247094. Change-Id: If26de662206fe85dc4671adbae39dfb99dc1038c --- core/java/android/content/res/Configuration.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/core/java/android/content/res/Configuration.java b/core/java/android/content/res/Configuration.java index 1c281387fce81..0402eeb94764a 100644 --- a/core/java/android/content/res/Configuration.java +++ b/core/java/android/content/res/Configuration.java @@ -786,9 +786,11 @@ public final class Configuration implements Parcelable, Comparable Date: Tue, 13 Aug 2013 12:41:06 -0700 Subject: [PATCH 54/55] In isMobileOk don't execute finally if mobile data is not supported. Move the early return outside the try {} finally so we don't call setEnableFailFastMobileData(DctContants.DISABLED). Otherwise referencing counting is wrong and an exception is thrown in DcTrackerBase. Bug: 10304904 Change-Id: I5ba5121e473bada9f3daa8d6f3d3577cec8212fc --- .../java/com/android/server/ConnectivityService.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java index bb0d2483aea61..a0e6dd1a87f50 100644 --- a/services/java/com/android/server/ConnectivityService.java +++ b/services/java/com/android/server/ConnectivityService.java @@ -3916,13 +3916,13 @@ public class ConnectivityService extends IConnectivityManager.Stub { Random rand = new Random(); mParams = params; - try { - if (mCs.isNetworkSupported(ConnectivityManager.TYPE_MOBILE) == false) { - log("isMobileOk: not mobile capable"); - result = ConnectivityManager.CMP_RESULT_CODE_NO_CONNECTION; - return result; - } + if (mCs.isNetworkSupported(ConnectivityManager.TYPE_MOBILE) == false) { + log("isMobileOk: not mobile capable"); + result = ConnectivityManager.CMP_RESULT_CODE_NO_CONNECTION; + return result; + } + try { // Enable fail fast as we'll do retries here and use a // hipri connection so the default connection stays active. log("isMobileOk: start hipri url=" + params.mUrl); From 3ebd1ce9a64ed6aca1f0c1f5961f386fd642ec4c Mon Sep 17 00:00:00 2001 From: John Spurlock Date: Wed, 14 Aug 2013 09:46:52 -0400 Subject: [PATCH 55/55] Normalize dream service dump check with other services. Bug:10310128 Change-Id: Ieeeccc01832b569cf7fb3d1633d7dde60fceb7b2 --- .../com/android/server/dreams/DreamManagerService.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/services/java/com/android/server/dreams/DreamManagerService.java b/services/java/com/android/server/dreams/DreamManagerService.java index 21e54fec863b5..b6e778170d175 100644 --- a/services/java/com/android/server/dreams/DreamManagerService.java +++ b/services/java/com/android/server/dreams/DreamManagerService.java @@ -86,7 +86,13 @@ public final class DreamManagerService extends IDreamManager.Stub { @Override protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) { - mContext.enforceCallingOrSelfPermission(android.Manifest.permission.DUMP, TAG); + if (mContext.checkCallingOrSelfPermission("android.permission.DUMP") + != PackageManager.PERMISSION_GRANTED) { + pw.println("Permission Denial: can't dump DreamManager from pid=" + + Binder.getCallingPid() + + ", uid=" + Binder.getCallingUid()); + return; + } pw.println("DREAM MANAGER (dumpsys dreams)"); pw.println();