Loading core/java/android/webkit/WebView.java +40 −35 Original line number Diff line number Diff line Loading @@ -3729,6 +3729,9 @@ public class WebView extends AbsoluteLayout public boolean onScaleBegin(ScaleGestureDetector detector) { // cancel the single touch handling cancelTouch(); if (mZoomButtonsController.isVisible()) { mZoomButtonsController.setVisible(false); } // reset the zoom overview mode so that the page won't auto grow mInZoomOverview = false; // If it is in password mode, turn it off so it does not draw Loading @@ -3744,8 +3747,10 @@ public class WebView extends AbsoluteLayout mPreviewZoomOnly = false; mAnchorX = viewToContentX((int) mZoomCenterX + mScrollX); mAnchorY = viewToContentY((int) mZoomCenterY + mScrollY); // for testing only, default don't reflow now boolean reflowNow = !getSettings().getPluginsEnabled(); // don't reflow when zoom in; when zoom out, do reflow if the // new scale is almost minimum scale; boolean reflowNow = (mActualScale - mMinZoomScale <= 0.01f) || ((mActualScale <= 0.8 * mTextWrapScale)); // force zoom after mPreviewZoomOnly is set to false so that the // new view size will be passed to the WebKit setNewZoomScale(mActualScale, reflowNow, true); Loading Loading @@ -3937,7 +3942,6 @@ public class WebView extends AbsoluteLayout if (!mDragFromTextInput) { nativeHideCursor(); } if (!mSupportMultiTouch) { WebSettings settings = getSettings(); if (settings.supportZoom() && settings.getBuiltInZoomControls() Loading @@ -3953,7 +3957,6 @@ public class WebView extends AbsoluteLayout } } } } // do pan int newScrollX = pinLocX(mScrollX + deltaX); Loading Loading @@ -4029,8 +4032,7 @@ public class WebView extends AbsoluteLayout mUserScroll = true; } if (!mSupportMultiTouch && !getSettings().getBuiltInZoomControls()) { if (!getSettings().getBuiltInZoomControls()) { boolean showPlusMinus = mMinZoomScale < mMaxZoomScale; if (mZoomControls != null && showPlusMinus) { if (mZoomControls.getVisibility() == View.VISIBLE) { Loading Loading @@ -4776,7 +4778,6 @@ public class WebView extends AbsoluteLayout mAnchorX = viewToContentX((int) mZoomCenterX + mScrollX); mAnchorY = viewToContentY((int) mZoomCenterY + mScrollY); WebSettings settings = getSettings(); if (!mSupportMultiTouch) { // remove the zoom control after double tap if (settings.getBuiltInZoomControls()) { if (mZoomButtonsController.isVisible()) { Loading @@ -4791,7 +4792,7 @@ public class WebView extends AbsoluteLayout } } settings.setDoubleTapToastCount(0); } boolean zoomToDefault = false; if ((settings.getLayoutAlgorithm() == WebSettings.LayoutAlgorithm.NARROW_COLUMNS) && (Math.abs(mActualScale - mTextWrapScale) >= 0.01f)) { setNewZoomScale(mActualScale, true, true); Loading @@ -4807,9 +4808,12 @@ public class WebView extends AbsoluteLayout if (mScrollY < getTitleHeight()) mScrollY = 0; zoomWithPreview(newScale); } else if (Math.abs(mActualScale - mDefaultScale) >= 0.01f) { mInZoomOverview = true; zoomToDefault = true; } } else { zoomToDefault = true; } if (zoomToDefault) { mInZoomOverview = false; int left = nativeGetBlockLeftEdge(mAnchorX, mAnchorY, mActualScale); if (left != NO_LEFTEDGE) { Loading Loading @@ -5194,8 +5198,9 @@ public class WebView extends AbsoluteLayout mPictureListener.onNewPicture(WebView.this, capturePicture()); } if (useWideViewport) { mZoomOverviewWidth = Math.max(draw.mMinPrefWidth, draw.mViewPoint.x); mZoomOverviewWidth = Math.max( (int) (viewWidth / mDefaultScale), Math.max( draw.mMinPrefWidth, draw.mViewPoint.x)); } if (!mMinZoomScaleFixed) { mMinZoomScale = (float) viewWidth / mZoomOverviewWidth; Loading core/java/android/widget/TextView.java +3 −4 Original line number Diff line number Diff line Loading @@ -6301,7 +6301,8 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener if (DEBUG_EXTRACT) Log.v(TAG, "beforeTextChanged start=" + start + " before=" + before + " after=" + after + ": " + buffer); if (AccessibilityManager.getInstance(mContext).isEnabled()) { if (AccessibilityManager.getInstance(mContext).isEnabled() && !isPasswordInputType(mInputType)) { mBeforeText = buffer.toString(); } Loading Loading @@ -6972,9 +6973,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener @Override public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event) { boolean isPassword = (mInputType & (EditorInfo.TYPE_MASK_CLASS | EditorInfo.TYPE_MASK_VARIATION)) == (EditorInfo.TYPE_CLASS_TEXT | EditorInfo.TYPE_TEXT_VARIATION_PASSWORD); final boolean isPassword = isPasswordInputType(mInputType); if (!isPassword) { CharSequence text = getText(); Loading core/java/android/widget/ZoomButtonsController.java +5 −0 Original line number Diff line number Diff line Loading @@ -546,6 +546,11 @@ public class ZoomButtonsController implements View.OnTouchListener { public boolean onTouch(View v, MotionEvent event) { int action = event.getAction(); if (event.getPointerCount() > 1) { // ZoomButtonsController doesn't handle mutitouch. Give up control. return false; } if (mReleaseTouchListenerOnUp) { // The controls were dismissed but we need to throw away all events until the up if (action == MotionEvent.ACTION_UP || action == MotionEvent.ACTION_CANCEL) { Loading core/java/com/android/internal/widget/SlidingTab.java +2 −16 Original line number Diff line number Diff line Loading @@ -148,20 +148,6 @@ public class SlidingTab extends ViewGroup { void onGrabbedStateChange(View v, int grabbedState); } // TODO: For debugging; remove after glitches debugged. @Override protected void dispatchDraw(Canvas canvas) { int orientation = getResources().getConfiguration().orientation; if (mOrientation == HORIZONTAL && orientation != Configuration.ORIENTATION_PORTRAIT || mOrientation == VERTICAL && orientation != Configuration.ORIENTATION_LANDSCAPE) { // UBER HACK ALERT. This is a workaround for a configuration race condition between // orientation changed notification and the resize notification. This just prevents // us from drawing under this circumstance, though the view will still be wrong. return; } super.dispatchDraw(canvas); } /** * Simple container class for all things pertinent to a slider. * A slider consists of 3 Views: Loading core/res/res/values-land/donottranslate.xml 0 → 100644 +23 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- /* //device/apps/common/assets/res/any/strings.xml ** ** Copyright 2009, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. ** You may obtain a copy of the License at ** ** http://www.apache.org/licenses/LICENSE-2.0 ** ** Unless required by applicable law or agreed to in writing, software ** distributed under the License is distributed on an "AS IS" BASIS, ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ** See the License for the specific language governing permissions and ** limitations under the License. */ --> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <!-- @hide DO NOT TRANSLATE. Workaround for resource race condition in lockscreen --> <bool name="lockscreen_isPortrait">false</bool> </resources> Loading
core/java/android/webkit/WebView.java +40 −35 Original line number Diff line number Diff line Loading @@ -3729,6 +3729,9 @@ public class WebView extends AbsoluteLayout public boolean onScaleBegin(ScaleGestureDetector detector) { // cancel the single touch handling cancelTouch(); if (mZoomButtonsController.isVisible()) { mZoomButtonsController.setVisible(false); } // reset the zoom overview mode so that the page won't auto grow mInZoomOverview = false; // If it is in password mode, turn it off so it does not draw Loading @@ -3744,8 +3747,10 @@ public class WebView extends AbsoluteLayout mPreviewZoomOnly = false; mAnchorX = viewToContentX((int) mZoomCenterX + mScrollX); mAnchorY = viewToContentY((int) mZoomCenterY + mScrollY); // for testing only, default don't reflow now boolean reflowNow = !getSettings().getPluginsEnabled(); // don't reflow when zoom in; when zoom out, do reflow if the // new scale is almost minimum scale; boolean reflowNow = (mActualScale - mMinZoomScale <= 0.01f) || ((mActualScale <= 0.8 * mTextWrapScale)); // force zoom after mPreviewZoomOnly is set to false so that the // new view size will be passed to the WebKit setNewZoomScale(mActualScale, reflowNow, true); Loading Loading @@ -3937,7 +3942,6 @@ public class WebView extends AbsoluteLayout if (!mDragFromTextInput) { nativeHideCursor(); } if (!mSupportMultiTouch) { WebSettings settings = getSettings(); if (settings.supportZoom() && settings.getBuiltInZoomControls() Loading @@ -3953,7 +3957,6 @@ public class WebView extends AbsoluteLayout } } } } // do pan int newScrollX = pinLocX(mScrollX + deltaX); Loading Loading @@ -4029,8 +4032,7 @@ public class WebView extends AbsoluteLayout mUserScroll = true; } if (!mSupportMultiTouch && !getSettings().getBuiltInZoomControls()) { if (!getSettings().getBuiltInZoomControls()) { boolean showPlusMinus = mMinZoomScale < mMaxZoomScale; if (mZoomControls != null && showPlusMinus) { if (mZoomControls.getVisibility() == View.VISIBLE) { Loading Loading @@ -4776,7 +4778,6 @@ public class WebView extends AbsoluteLayout mAnchorX = viewToContentX((int) mZoomCenterX + mScrollX); mAnchorY = viewToContentY((int) mZoomCenterY + mScrollY); WebSettings settings = getSettings(); if (!mSupportMultiTouch) { // remove the zoom control after double tap if (settings.getBuiltInZoomControls()) { if (mZoomButtonsController.isVisible()) { Loading @@ -4791,7 +4792,7 @@ public class WebView extends AbsoluteLayout } } settings.setDoubleTapToastCount(0); } boolean zoomToDefault = false; if ((settings.getLayoutAlgorithm() == WebSettings.LayoutAlgorithm.NARROW_COLUMNS) && (Math.abs(mActualScale - mTextWrapScale) >= 0.01f)) { setNewZoomScale(mActualScale, true, true); Loading @@ -4807,9 +4808,12 @@ public class WebView extends AbsoluteLayout if (mScrollY < getTitleHeight()) mScrollY = 0; zoomWithPreview(newScale); } else if (Math.abs(mActualScale - mDefaultScale) >= 0.01f) { mInZoomOverview = true; zoomToDefault = true; } } else { zoomToDefault = true; } if (zoomToDefault) { mInZoomOverview = false; int left = nativeGetBlockLeftEdge(mAnchorX, mAnchorY, mActualScale); if (left != NO_LEFTEDGE) { Loading Loading @@ -5194,8 +5198,9 @@ public class WebView extends AbsoluteLayout mPictureListener.onNewPicture(WebView.this, capturePicture()); } if (useWideViewport) { mZoomOverviewWidth = Math.max(draw.mMinPrefWidth, draw.mViewPoint.x); mZoomOverviewWidth = Math.max( (int) (viewWidth / mDefaultScale), Math.max( draw.mMinPrefWidth, draw.mViewPoint.x)); } if (!mMinZoomScaleFixed) { mMinZoomScale = (float) viewWidth / mZoomOverviewWidth; Loading
core/java/android/widget/TextView.java +3 −4 Original line number Diff line number Diff line Loading @@ -6301,7 +6301,8 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener if (DEBUG_EXTRACT) Log.v(TAG, "beforeTextChanged start=" + start + " before=" + before + " after=" + after + ": " + buffer); if (AccessibilityManager.getInstance(mContext).isEnabled()) { if (AccessibilityManager.getInstance(mContext).isEnabled() && !isPasswordInputType(mInputType)) { mBeforeText = buffer.toString(); } Loading Loading @@ -6972,9 +6973,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener @Override public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event) { boolean isPassword = (mInputType & (EditorInfo.TYPE_MASK_CLASS | EditorInfo.TYPE_MASK_VARIATION)) == (EditorInfo.TYPE_CLASS_TEXT | EditorInfo.TYPE_TEXT_VARIATION_PASSWORD); final boolean isPassword = isPasswordInputType(mInputType); if (!isPassword) { CharSequence text = getText(); Loading
core/java/android/widget/ZoomButtonsController.java +5 −0 Original line number Diff line number Diff line Loading @@ -546,6 +546,11 @@ public class ZoomButtonsController implements View.OnTouchListener { public boolean onTouch(View v, MotionEvent event) { int action = event.getAction(); if (event.getPointerCount() > 1) { // ZoomButtonsController doesn't handle mutitouch. Give up control. return false; } if (mReleaseTouchListenerOnUp) { // The controls were dismissed but we need to throw away all events until the up if (action == MotionEvent.ACTION_UP || action == MotionEvent.ACTION_CANCEL) { Loading
core/java/com/android/internal/widget/SlidingTab.java +2 −16 Original line number Diff line number Diff line Loading @@ -148,20 +148,6 @@ public class SlidingTab extends ViewGroup { void onGrabbedStateChange(View v, int grabbedState); } // TODO: For debugging; remove after glitches debugged. @Override protected void dispatchDraw(Canvas canvas) { int orientation = getResources().getConfiguration().orientation; if (mOrientation == HORIZONTAL && orientation != Configuration.ORIENTATION_PORTRAIT || mOrientation == VERTICAL && orientation != Configuration.ORIENTATION_LANDSCAPE) { // UBER HACK ALERT. This is a workaround for a configuration race condition between // orientation changed notification and the resize notification. This just prevents // us from drawing under this circumstance, though the view will still be wrong. return; } super.dispatchDraw(canvas); } /** * Simple container class for all things pertinent to a slider. * A slider consists of 3 Views: Loading
core/res/res/values-land/donottranslate.xml 0 → 100644 +23 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- /* //device/apps/common/assets/res/any/strings.xml ** ** Copyright 2009, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. ** You may obtain a copy of the License at ** ** http://www.apache.org/licenses/LICENSE-2.0 ** ** Unless required by applicable law or agreed to in writing, software ** distributed under the License is distributed on an "AS IS" BASIS, ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ** See the License for the specific language governing permissions and ** limitations under the License. */ --> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <!-- @hide DO NOT TRANSLATE. Workaround for resource race condition in lockscreen --> <bool name="lockscreen_isPortrait">false</bool> </resources>