Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ed58d8ed authored by Adam Powell's avatar Adam Powell Committed by Android (Google) Code Review
Browse files

Merge "Fix bug 3112733 - Missing TLS encryption option in manual email account...

Merge "Fix bug 3112733 - Missing TLS encryption option in manual email account setup" into honeycomb
parents 2cb866b9 d2766aec
Loading
Loading
Loading
Loading
+35 −1
Original line number Diff line number Diff line
@@ -23,13 +23,14 @@ import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.res.TypedArray;
import android.database.DataSetObserver;
import android.graphics.drawable.Drawable;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.util.DisplayMetrics;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewTreeObserver;


/**
@@ -69,6 +70,8 @@ public class Spinner extends AbsSpinner implements OnClickListener {

    private int mGravity;

    private LayoutObserver mLayoutObserver;

    /**
     * Construct a new spinner with the given context's theme.
     *
@@ -169,6 +172,7 @@ public class Spinner extends AbsSpinner implements OnClickListener {
                    com.android.internal.R.styleable.Spinner_dropDownHorizontalOffset, 0));

            mPopup = popup;
            mLayoutObserver = new LayoutObserver();
            break;
        }
        }
@@ -421,6 +425,11 @@ public class Spinner extends AbsSpinner implements OnClickListener {
            handled = true;

            if (!mPopup.isShowing()) {
                if (mLayoutObserver != null) {
                    final ViewTreeObserver vto = getViewTreeObserver();
                    vto.addOnGlobalLayoutListener(mLayoutObserver);
                    vto.addOnScrollChangedListener(mLayoutObserver);
                }
                mPopup.show();
            }
        }
@@ -668,6 +677,7 @@ public class Spinner extends AbsSpinner implements OnClickListener {
            super.show();
            getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
            setSelection(Spinner.this.getSelectedItemPosition());
            setOnDismissListener(mLayoutObserver);
        }

        @Override
@@ -718,4 +728,28 @@ public class Spinner extends AbsSpinner implements OnClickListener {
                    ViewGroup.LayoutParams.WRAP_CONTENT);
        }
    }

    private class LayoutObserver implements ViewTreeObserver.OnGlobalLayoutListener,
            ViewTreeObserver.OnScrollChangedListener, PopupWindow.OnDismissListener {
        @Override
        public void onScrollChanged() {
            if (mPopup != null && mPopup.isShowing()) {
                mPopup.show();
            }
        }

        @Override
        public void onGlobalLayout() {
            if (mPopup != null && mPopup.isShowing()) {
                mPopup.show();
            }
        }

        @Override
        public void onDismiss() {
            ViewTreeObserver vto = getViewTreeObserver();
            vto.removeGlobalOnLayoutListener(mLayoutObserver);
            vto.removeOnScrollChangedListener(mLayoutObserver);
        }
    }
}