OSDN Git Service

Fix issue #2018454: NullPointerException in ImageSpan constructor
authorDianne Hackborn <hackbod@google.com>
Thu, 30 Jul 2009 00:36:27 +0000 (17:36 -0700)
committerDianne Hackborn <hackbod@google.com>
Thu, 30 Jul 2009 00:55:58 +0000 (17:55 -0700)
api/current.xml
core/java/android/text/style/ImageSpan.java

index e0ea966..4df50bc 100644 (file)
  type="android.text.style.ImageSpan"
  static="false"
  final="false"
+ deprecated="deprecated"
+ visibility="public"
+>
+<parameter name="b" type="android.graphics.Bitmap">
+</parameter>
+</constructor>
+<constructor name="ImageSpan"
+ type="android.text.style.ImageSpan"
+ static="false"
+ final="false"
+ deprecated="deprecated"
+ visibility="public"
+>
+<parameter name="b" type="android.graphics.Bitmap">
+</parameter>
+<parameter name="verticalAlignment" type="int">
+</parameter>
+</constructor>
+<constructor name="ImageSpan"
+ type="android.text.style.ImageSpan"
+ static="false"
+ final="false"
  deprecated="not deprecated"
  visibility="public"
 >
+<parameter name="context" type="android.content.Context">
+</parameter>
 <parameter name="b" type="android.graphics.Bitmap">
 </parameter>
 </constructor>
  deprecated="not deprecated"
  visibility="public"
 >
+<parameter name="context" type="android.content.Context">
+</parameter>
 <parameter name="b" type="android.graphics.Bitmap">
 </parameter>
 <parameter name="verticalAlignment" type="int">
index 911a23c..86ef5f6 100644 (file)
@@ -33,17 +33,34 @@ public class ImageSpan extends DynamicDrawableSpan {
     private Context mContext;
     private String mSource;
 
+    /**
+     * @deprecated Use {@link #ImageSpan(Context, Bitmap)} instead.
+     */
     public ImageSpan(Bitmap b) {
-        this(b, ALIGN_BOTTOM);
+        this(null, b, ALIGN_BOTTOM);
+    }
+
+    /**
+     * @deprecated Use {@link #ImageSpan(Context, Bitmap, int) instead.
+     */
+    public ImageSpan(Bitmap b, int verticalAlignment) {
+        this(null, b, verticalAlignment);
+    }
+
+    public ImageSpan(Context context, Bitmap b) {
+        this(context, b, ALIGN_BOTTOM);
     }
 
     /**
      * @param verticalAlignment one of {@link DynamicDrawableSpan#ALIGN_BOTTOM} or
      * {@link DynamicDrawableSpan#ALIGN_BASELINE}.
      */
-    public ImageSpan(Bitmap b, int verticalAlignment) {
+    public ImageSpan(Context context, Bitmap b, int verticalAlignment) {
         super(verticalAlignment);
-        mDrawable = new BitmapDrawable(mContext.getResources(), b);
+        mContext = context;
+        mDrawable = context != null
+                ? new BitmapDrawable(context.getResources(), b)
+                : new BitmapDrawable(b);
         int width = mDrawable.getIntrinsicWidth();
         int height = mDrawable.getIntrinsicHeight();
         mDrawable.setBounds(0, 0, width > 0 ? width : 0, height > 0 ? height : 0);