diff --git a/src/api-impl/android/app/Activity.java b/src/api-impl/android/app/Activity.java index 254f7301..e4bff6ac 100644 --- a/src/api-impl/android/app/Activity.java +++ b/src/api-impl/android/app/Activity.java @@ -386,6 +386,10 @@ public class Activity extends ContextThemeWrapper implements Window.Callback, La Dialog dialog = dialogs.get(id); if (dialog == null) dialogs.put(id, dialog = onCreateDialog(id)); + if (dialog == null) { + Slog.w(TAG, "Dialog " + id + " was not created"); + return; + } onPrepareDialog(id, dialog); dialog.show(); } diff --git a/src/api-impl/android/app/Dialog.java b/src/api-impl/android/app/Dialog.java index c4c32aa0..4a29e6c4 100644 --- a/src/api-impl/android/app/Dialog.java +++ b/src/api-impl/android/app/Dialog.java @@ -191,4 +191,6 @@ public class Dialog implements Window.Callback, DialogInterface { public boolean onTouchEvent(MotionEvent event) { return false; } + + public void setOnKeyListener(OnKeyListener onKeyListener) {} } diff --git a/src/api-impl/android/graphics/GskCanvas.java b/src/api-impl/android/graphics/GskCanvas.java index 0f4f9884..836004f3 100644 --- a/src/api-impl/android/graphics/GskCanvas.java +++ b/src/api-impl/android/graphics/GskCanvas.java @@ -145,7 +145,8 @@ public class GskCanvas extends Canvas { @Override public void concat(Matrix matrix) { - native_concat(snapshot, matrix.native_instance); + if (matrix != null) + native_concat(snapshot, matrix.native_instance); } @Override diff --git a/src/api-impl/android/graphics/Paint.java b/src/api-impl/android/graphics/Paint.java index 5f2c1e2c..5cb829ce 100644 --- a/src/api-impl/android/graphics/Paint.java +++ b/src/api-impl/android/graphics/Paint.java @@ -341,6 +341,10 @@ public class Paint { public MaskFilter setMaskFilter(MaskFilter filter) { return filter; } + public boolean isFakeBoldText() { + return false; + } + private static native long native_create(); private static native long native_clone(long paint); private static native void native_recycle(long paint); diff --git a/src/api-impl/android/graphics/drawable/Drawable.java b/src/api-impl/android/graphics/drawable/Drawable.java index 36e87b1e..823b8abe 100644 --- a/src/api-impl/android/graphics/drawable/Drawable.java +++ b/src/api-impl/android/graphics/drawable/Drawable.java @@ -354,6 +354,8 @@ public class Drawable { return densityDpi == 0 ? DisplayMetrics.DENSITY_DEFAULT : densityDpi; } + public void setFilterBitmap(boolean filter) {} + protected static native long native_paintable_from_path(String path); protected native long native_constructor(); protected native void native_invalidate(long paintable); diff --git a/src/api-impl/android/graphics/drawable/DrawableContainer.java b/src/api-impl/android/graphics/drawable/DrawableContainer.java index 5d60bb19..ff112e3d 100644 --- a/src/api-impl/android/graphics/drawable/DrawableContainer.java +++ b/src/api-impl/android/graphics/drawable/DrawableContainer.java @@ -29,12 +29,19 @@ public class DrawableContainer extends Drawable { this.state = state; } - public static class DrawableContainerState { + @Override + public ConstantState getConstantState() { + return state; + } + + public static class DrawableContainerState extends ConstantState { private Drawable drawables[] = new Drawable[10]; private int childCount = 0; + private DrawableContainer owner; public DrawableContainerState(DrawableContainerState orig, DrawableContainer owner, Resources res) { + this.owner = owner; } public int getCapacity() { @@ -62,6 +69,21 @@ public class DrawableContainer extends Drawable { System.arraycopy(drawables, 0, newDrawables, 0, oldSize); drawables = newDrawables; } + + @Override + public Drawable newDrawable(Resources res) { + return owner; + } + + @Override + public Drawable newDrawable() { + return owner; + } + + @Override + public int getChangingConfigurations() { + return owner.getChangingConfigurations(); + } } @Override diff --git a/src/api-impl/android/media/ThumbnailUtils.java b/src/api-impl/android/media/ThumbnailUtils.java new file mode 100644 index 00000000..381d9e02 --- /dev/null +++ b/src/api-impl/android/media/ThumbnailUtils.java @@ -0,0 +1,10 @@ +package android.media; + +import android.graphics.Bitmap; + +public class ThumbnailUtils { + + public static Bitmap extractThumbnail(Bitmap source, int width, int height) { + return Bitmap.createScaledBitmap(source, width, height, true); + } +} diff --git a/src/api-impl/android/text/method/BaseMovementMethod.java b/src/api-impl/android/text/method/BaseMovementMethod.java index 42963f97..5ab50141 100644 --- a/src/api-impl/android/text/method/BaseMovementMethod.java +++ b/src/api-impl/android/text/method/BaseMovementMethod.java @@ -1,4 +1,12 @@ package android.text.method; +import android.text.Spannable; +import android.view.MotionEvent; +import android.widget.TextView; + public class BaseMovementMethod implements MovementMethod { + + public boolean onTouchEvent(TextView widget, Spannable buffer, MotionEvent event) { + return false; + } } diff --git a/src/api-impl/android/text/style/AbsoluteSizeSpan.java b/src/api-impl/android/text/style/AbsoluteSizeSpan.java index d1f1f9f8..b8be4cc1 100644 --- a/src/api-impl/android/text/style/AbsoluteSizeSpan.java +++ b/src/api-impl/android/text/style/AbsoluteSizeSpan.java @@ -3,4 +3,5 @@ package android.text.style; public class AbsoluteSizeSpan { public AbsoluteSizeSpan() {} public AbsoluteSizeSpan(int dummy) {} + public AbsoluteSizeSpan(int size, boolean dip) {} } diff --git a/src/api-impl/android/text/style/LeadingMarginSpan.java b/src/api-impl/android/text/style/LeadingMarginSpan.java index d57873f6..b3b37433 100644 --- a/src/api-impl/android/text/style/LeadingMarginSpan.java +++ b/src/api-impl/android/text/style/LeadingMarginSpan.java @@ -2,5 +2,10 @@ package android.text.style; public interface LeadingMarginSpan { - public static class Standard implements LeadingMarginSpan {} + public static class Standard implements LeadingMarginSpan { + + public Standard(int indent) {} + + public Standard(int first_indent, int rest_indent) {} + } } diff --git a/src/api-impl/android/text/style/StyleSpan.java b/src/api-impl/android/text/style/StyleSpan.java index 40a07aa6..9728e831 100644 --- a/src/api-impl/android/text/style/StyleSpan.java +++ b/src/api-impl/android/text/style/StyleSpan.java @@ -2,6 +2,14 @@ package android.text.style; public class StyleSpan { - public StyleSpan(int style) {} + private int style; + + public StyleSpan(int style) { + this.style = style; + } + + public int getStyle() { + return style; + } } diff --git a/src/api-impl/android/view/MenuItem.java b/src/api-impl/android/view/MenuItem.java index 72e5b223..78913cb5 100644 --- a/src/api-impl/android/view/MenuItem.java +++ b/src/api-impl/android/view/MenuItem.java @@ -1,5 +1,6 @@ package android.view; +import android.content.Intent; import android.graphics.drawable.Drawable; public interface MenuItem { @@ -76,4 +77,6 @@ public interface MenuItem { public boolean expandActionView(); public boolean isActionViewExpanded(); + + public MenuItem setIntent(Intent intent); } diff --git a/src/api-impl/android/view/View.java b/src/api-impl/android/view/View.java index 9d983e31..56ae606e 100644 --- a/src/api-impl/android/view/View.java +++ b/src/api-impl/android/view/View.java @@ -2223,4 +2223,12 @@ public class View implements Drawable.Callback { public boolean isDuplicateParentStateEnabled() { return false; } public void setBackgroundTintMode(PorterDuff.Mode tintMode) {} + + public void setNextFocusLeftId(int id) {} + + public void setNextFocusRightId(int id) {} + + public void setNextFocusDownId(int id) {} + + public void setNextFocusUpId(int id) {} } diff --git a/src/api-impl/android/view/ViewGroup.java b/src/api-impl/android/view/ViewGroup.java index 2fed5106..c24ffb64 100644 --- a/src/api-impl/android/view/ViewGroup.java +++ b/src/api-impl/android/view/ViewGroup.java @@ -496,7 +496,9 @@ public class ViewGroup extends View implements ViewParent, ViewManager { public LayoutParams(Context context, AttributeSet attrs) { TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.ViewGroup_Layout); setBaseAttributes(a, R.styleable.ViewGroup_Layout_layout_width, R.styleable.ViewGroup_Layout_layout_height); - this.gravity = attrs.getAttributeIntValue("http://schemas.android.com/apk/res/android", "layout_gravity", -1); + a.recycle(); + a = context.obtainStyledAttributes(attrs, new int[] { android.R.attr.layout_gravity }); + gravity = a.getInt(0, -1); a.recycle(); } diff --git a/src/api-impl/android/widget/ListView.java b/src/api-impl/android/widget/ListView.java index 0c94ac29..0d533f88 100644 --- a/src/api-impl/android/widget/ListView.java +++ b/src/api-impl/android/widget/ListView.java @@ -3644,4 +3644,8 @@ public class ListView extends AbsListView { } return null; } + + public void setItemsCanFocus(boolean itemsCanFocus) { + mItemsCanFocus = itemsCanFocus; + } } diff --git a/src/api-impl/android/widget/PopupMenu.java b/src/api-impl/android/widget/PopupMenu.java index 24937dde..60d401ca 100644 --- a/src/api-impl/android/widget/PopupMenu.java +++ b/src/api-impl/android/widget/PopupMenu.java @@ -561,6 +561,12 @@ public class PopupMenu { // TODO Auto-generated method stub throw new UnsupportedOperationException("Unimplemented method 'isActionViewExpanded'"); } + + @Override + public MenuItem setIntent(Intent intent) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'setIntent'"); + } } } diff --git a/src/api-impl/android/widget/RemoteViews.java b/src/api-impl/android/widget/RemoteViews.java index db7f9fa6..f1c662d5 100644 --- a/src/api-impl/android/widget/RemoteViews.java +++ b/src/api-impl/android/widget/RemoteViews.java @@ -1,6 +1,7 @@ package android.widget; import android.app.PendingIntent; +import android.graphics.Bitmap; public class RemoteViews { @@ -17,4 +18,16 @@ public class RemoteViews { public void setOnClickPendingIntent(int viewId, PendingIntent pendingIntent) {} public void setViewVisibility(int viewId, int visibility) {} + + public void setImageViewBitmap(int viewId, Bitmap bitmap) {} + + public void removeAllViews(int viewId) {} + + public RemoteViews clone() { + return new RemoteViews(null, 0); + } + + public void addView(int viewId, RemoteViews child) {} + + public void setViewPadding(int viewId, int left, int top, int right, int bottom) {} } diff --git a/src/api-impl/android/widget/TextSwitcher.java b/src/api-impl/android/widget/TextSwitcher.java index eaba50b6..93e9a6ba 100644 --- a/src/api-impl/android/widget/TextSwitcher.java +++ b/src/api-impl/android/widget/TextSwitcher.java @@ -3,7 +3,7 @@ package android.widget; import android.content.Context; import android.util.AttributeSet; -public class TextSwitcher extends ViewAnimator { +public class TextSwitcher extends ViewSwitcher { public TextSwitcher(Context context) { this(context, null); diff --git a/src/api-impl/meson.build b/src/api-impl/meson.build index 199cbe3f..b623b585 100644 --- a/src/api-impl/meson.build +++ b/src/api-impl/meson.build @@ -293,6 +293,7 @@ srcs = [ 'android/media/Ringtone.java', 'android/media/RingtoneManager.java', 'android/media/SoundPool.java', + 'android/media/ThumbnailUtils.java', 'android/media/audiofx/AudioEffect.java', 'android/media/projection/MediaProjectionManager.java', 'android/media/session/MediaController.java',