Make sure this uses the same logic as spinner.

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
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.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 @@
     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 @@
                 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);