Merge "Parse the rssi result string in case-insensitive manner.  This matches similar code in wpa-supplicant, driver_wext.c"
diff --git a/core/java/android/widget/Spinner.java b/core/java/android/widget/Spinner.java
index fd7bceb..568720b 100644
--- a/core/java/android/widget/Spinner.java
+++ b/core/java/android/widget/Spinner.java
@@ -23,10 +23,9 @@
 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;
@@ -66,6 +65,7 @@
     
     private SpinnerPopup mPopup;
     private DropDownAdapter mTempAdapter;
+    int mDropDownWidth;
 
     private int mGravity;
 
@@ -160,9 +160,9 @@
         case MODE_DROPDOWN: {
             DropdownPopup popup = new DropdownPopup(context, attrs, defStyle);
 
-            popup.setWidth(a.getLayoutDimension(
+            mDropDownWidth = a.getLayoutDimension(
                     com.android.internal.R.styleable.Spinner_dropDownWidth,
-                    ViewGroup.LayoutParams.WRAP_CONTENT));
+                    ViewGroup.LayoutParams.WRAP_CONTENT);
             popup.setBackgroundDrawable(a.getDrawable(
                     com.android.internal.R.styleable.Spinner_popupBackground));
             popup.setVerticalOffset(a.getDimensionPixelOffset(
@@ -704,8 +704,14 @@
 
         @Override
         public void show() {
-            setWidth(Math.max(measureContentWidth((SpinnerAdapter) mAdapter),
-                    Spinner.this.getWidth()));
+            if (mDropDownWidth == WRAP_CONTENT) {
+                setWidth(Math.max(measureContentWidth((SpinnerAdapter) mAdapter),
+                        Spinner.this.getWidth()));
+            } else if (mDropDownWidth == MATCH_PARENT) {
+                setWidth(Spinner.this.getWidth());
+            } else {
+                setWidth(mDropDownWidth);
+            }
             setInputMethodMode(ListPopupWindow.INPUT_METHOD_NOT_NEEDED);
             super.show();
             getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
diff --git a/media/libstagefright/AwesomePlayer.cpp b/media/libstagefright/AwesomePlayer.cpp
index 5a43c6a..2f5a202 100644
--- a/media/libstagefright/AwesomePlayer.cpp
+++ b/media/libstagefright/AwesomePlayer.cpp
@@ -291,9 +291,11 @@
     }
 
     dataSource->getDrmInfo(&mDecryptHandle, &mDrmManagerClient);
-    if (mDecryptHandle != NULL
-            && RightsStatus::RIGHTS_VALID != mDecryptHandle->status) {
-        notifyListener_l(MEDIA_ERROR, MEDIA_ERROR_UNKNOWN, ERROR_NO_LICENSE);
+    if (mDecryptHandle != NULL) {
+        CHECK(mDrmManagerClient);
+        if (RightsStatus::RIGHTS_VALID != mDecryptHandle->status) {
+            notifyListener_l(MEDIA_ERROR, MEDIA_ERROR_UNKNOWN, ERROR_NO_LICENSE);
+        }
     }
 
     return setDataSource_l(extractor);
@@ -1738,6 +1740,7 @@
 
     dataSource->getDrmInfo(&mDecryptHandle, &mDrmManagerClient);
     if (mDecryptHandle != NULL) {
+        CHECK(mDrmManagerClient);
         if (RightsStatus::RIGHTS_VALID == mDecryptHandle->status) {
             if (DecryptApiType::WV_BASED == mDecryptHandle->decryptApiType) {
                 LOGD("Setting mCachedSource to NULL for WVM\n");
diff --git a/media/libstagefright/DRMExtractor.cpp b/media/libstagefright/DRMExtractor.cpp
index 4b83568..647cf43 100644
--- a/media/libstagefright/DRMExtractor.cpp
+++ b/media/libstagefright/DRMExtractor.cpp
@@ -79,6 +79,7 @@
       mTrackId(trackId),
       mNALLengthSize(0),
       mWantsNALFragments(false) {
+    CHECK(mDrmManagerClient);
     mDrmManagerClient->initializeDecryptUnit(
             mDecryptHandle, trackId, ipmpBox);
 
diff --git a/media/libstagefright/FileSource.cpp b/media/libstagefright/FileSource.cpp
index b8e75fd..02a78c9 100644
--- a/media/libstagefright/FileSource.cpp
+++ b/media/libstagefright/FileSource.cpp
@@ -63,6 +63,7 @@
 
     if (mDecryptHandle != NULL) {
         // To release mDecryptHandle
+        CHECK(mDrmManagerClient);
         mDrmManagerClient->closeDecryptSession(mDecryptHandle);
         mDecryptHandle = NULL;
     }
diff --git a/media/libstagefright/NuHTTPDataSource.cpp b/media/libstagefright/NuHTTPDataSource.cpp
index af04f93..0376e1c 100644
--- a/media/libstagefright/NuHTTPDataSource.cpp
+++ b/media/libstagefright/NuHTTPDataSource.cpp
@@ -81,6 +81,7 @@
 NuHTTPDataSource::~NuHTTPDataSource() {
     if (mDecryptHandle != NULL) {
         // To release mDecryptHandle
+        CHECK(mDrmManagerClient);
         mDrmManagerClient->closeDecryptSession(mDecryptHandle);
         mDecryptHandle = NULL;
     }