summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMindy Pereira <mindyp@google.com>2011-08-17 13:46:32 -0700
committerMindy Pereira <mindyp@google.com>2011-08-17 13:54:51 -0700
commitd48018c1345a557221f2f2a36e8507ff891b8bf5 (patch)
treeef41cef7126e83549bf7492de4d885e82cf320b4
parent2859eb0fec820a0677dce9a72f49601f10592a62 (diff)
downloadmailcommon-ics-mr0-release.tar.gz
There were fixes to determining the horizontal offset of the dropdown view for spinners in fwk: https://android-git.corp.google.com/g/#/c/128373/1 Since MultiAdapterSpinner doesn't use a spinner, we have to copy this logic. Fixes b/5165079 account spinner dropdown padding / dropdown position off Change-Id: Ifa0dfc319db65d36c6e0317cfbd10954e7ae16db
-rw-r--r--java/com/android/mailcommon/MultiAdapterSpinner.java11
1 files changed, 11 insertions, 0 deletions
diff --git a/java/com/android/mailcommon/MultiAdapterSpinner.java b/java/com/android/mailcommon/MultiAdapterSpinner.java
index 85a67f0..cd58f3e 100644
--- a/java/com/android/mailcommon/MultiAdapterSpinner.java
+++ b/java/com/android/mailcommon/MultiAdapterSpinner.java
@@ -22,6 +22,8 @@ import com.android.mailcommon.MergedAdapter.ListSpinnerAdapter;
import com.android.mailcommon.MergedAdapter.LocalAdapterPosition;
import android.content.Context;
+import android.graphics.Rect;
+import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
@@ -57,6 +59,7 @@ public class MultiAdapterSpinner extends FrameLayout
protected ListPopupWindow mPopup;
private int mSelectedPosition = -1;
+ private Rect mTempRect = new Rect();
/**
* A basic adapter with some callbacks added so clients can be involved in spinner behavior.
@@ -142,6 +145,14 @@ public class MultiAdapterSpinner extends FrameLayout
mAdapter.getSubAdapter(i).onShowPopup();
}
+ final int spinnerPaddingLeft = getPaddingLeft();
+ final Drawable background = mPopup.getBackground();
+ int bgOffset = 0;
+ if (background != null) {
+ background.getPadding(mTempRect);
+ bgOffset = -mTempRect.left;
+ }
+ mPopup.setHorizontalOffset(bgOffset + spinnerPaddingLeft);
mPopup.show();
mPopup.getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
mPopup.setSelection(mSelectedPosition);