summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJim Miller <jaggies@google.com>2009-11-18 01:35:42 -0800
committerJim Miller <jaggies@google.com>2009-11-18 01:46:00 -0800
commit1d0a152fa8905b9dfb87dc87da8e5432e48eae96 (patch)
tree0e49f5b618409137de548718ee8eda4347117b23
parentf0166e4dd0907e487531960e36f516406d265b73 (diff)
downloadframeworks_base-1d0a152fa8905b9dfb87dc87da8e5432e48eae96.zip
frameworks_base-1d0a152fa8905b9dfb87dc87da8e5432e48eae96.tar.gz
frameworks_base-1d0a152fa8905b9dfb87dc87da8e5432e48eae96.tar.bz2
Workaround for 2262578: Don't draw tabs if view is not in the correct orientation for the layout
This is an uber hack. Since there is a race between resizing the view and getting the orientation-changed notification, this just tries to avoid drawing the tabs in the wrong orientation (based on what we *expect* to be the orientation specified in the layout file for the SlidingTab). This masks the problem *most* of the time.
-rw-r--r--core/java/com/android/internal/widget/SlidingTab.java9
1 files changed, 9 insertions, 0 deletions
diff --git a/core/java/com/android/internal/widget/SlidingTab.java b/core/java/com/android/internal/widget/SlidingTab.java
index b7dd27d..cb67bfc 100644
--- a/core/java/com/android/internal/widget/SlidingTab.java
+++ b/core/java/com/android/internal/widget/SlidingTab.java
@@ -17,6 +17,7 @@
package com.android.internal.widget;
import android.content.Context;
+import android.content.res.Configuration;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.graphics.Canvas;
@@ -150,6 +151,14 @@ public class SlidingTab extends ViewGroup {
// 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);
}