diff --git a/src/api-impl-jni/generated_headers/android_content_res_AssetManager.h b/src/api-impl-jni/generated_headers/android_content_res_AssetManager.h index 35ca2327..d7fe6c52 100644 --- a/src/api-impl-jni/generated_headers/android_content_res_AssetManager.h +++ b/src/api-impl-jni/generated_headers/android_content_res_AssetManager.h @@ -73,14 +73,6 @@ JNIEXPORT void JNICALL Java_android_content_res_AssetManager_setLocale JNIEXPORT jobjectArray JNICALL Java_android_content_res_AssetManager_getLocales (JNIEnv *, jobject); -/* - * Class: android_content_res_AssetManager - * Method: getResourceEntryName - * Signature: (I)Ljava/lang/String; - */ -JNIEXPORT jstring JNICALL Java_android_content_res_AssetManager_getResourceEntryName - (JNIEnv *, jobject, jint); - /* * Class: android_content_res_AssetManager * Method: openAsset diff --git a/src/api-impl/android/animation/ArgbEvaluator.java b/src/api-impl/android/animation/ArgbEvaluator.java new file mode 100644 index 00000000..e7787c31 --- /dev/null +++ b/src/api-impl/android/animation/ArgbEvaluator.java @@ -0,0 +1,5 @@ +package android.animation; + +public class ArgbEvaluator { + +} diff --git a/src/api-impl/android/animation/ValueAnimator.java b/src/api-impl/android/animation/ValueAnimator.java index 2456e578..a7c7b684 100644 --- a/src/api-impl/android/animation/ValueAnimator.java +++ b/src/api-impl/android/animation/ValueAnimator.java @@ -8,6 +8,10 @@ public class ValueAnimator extends Animator { return new ValueAnimator(); } + public static ValueAnimator ofObject(TypeEvaluator evaluator, Object[] values) { + return new ValueAnimator(); + } + public ValueAnimator setDuration(long duration) { return this; } @@ -33,6 +37,7 @@ public class ValueAnimator extends Animator { public void setIntValues(int[] values) {} public void setRepeatCount(int value) {} public void setRepeatMode(int value) {} + public void cancel() {} /** * Implementors of this interface can add themselves as update listeners diff --git a/src/api-impl/android/content/res/AssetManager.java b/src/api-impl/android/content/res/AssetManager.java index 627bb9f1..b05b34d2 100644 --- a/src/api-impl/android/content/res/AssetManager.java +++ b/src/api-impl/android/content/res/AssetManager.java @@ -223,6 +223,9 @@ public final class AssetManager { } return getResourceText(resValue.getData()); } + if (resValue.getValueType() == ValueType.INT_COLOR_RGB8) { + return String.format("#%08x", resValue.getData()); + } return resValue.getDataAsPoolString().get(); } @@ -869,7 +872,9 @@ public final class AssetManager { /*package*/ /*native*/ final String getResourceTypeName(int resid) { return tableBlockSearch(resid).pickOne().getTypeName(); } - /*package*/ native final String getResourceEntryName(int resid); + /*package*/ /*native*/ final String getResourceEntryName(int resid) { + return tableBlockSearch(resid).pickOne().getName(); + } private native final int openAsset(String fileName, int accessMode); private final native ParcelFileDescriptor openAssetFd(String fileName, diff --git a/src/api-impl/android/database/CursorWindow.java b/src/api-impl/android/database/CursorWindow.java index 265fdd01..6f47e13e 100644 --- a/src/api-impl/android/database/CursorWindow.java +++ b/src/api-impl/android/database/CursorWindow.java @@ -402,7 +402,11 @@ public class CursorWindow extends SQLiteClosable implements Parcelable { * @return The value of the field as a long. */ public long getLong(int row, int column) { - return (Long)rows.get(row - startPos)[column]; + Long field = (Long)rows.get(row - startPos)[column]; + if (field == null) { + return 0L; + } + return field.longValue(); } /** diff --git a/src/api-impl/android/graphics/Matrix.java b/src/api-impl/android/graphics/Matrix.java index d0981fd2..05bfb359 100644 --- a/src/api-impl/android/graphics/Matrix.java +++ b/src/api-impl/android/graphics/Matrix.java @@ -381,7 +381,8 @@ public class Matrix { * M' = T(dx, dy) * M */ public boolean postTranslate(float dx, float dy) { - return native_postTranslate(native_instance, dx, dy); + // return native_postTranslate(native_instance, dx, dy); + return true; } /** * Postconcats the matrix with the specified scale. @@ -396,14 +397,16 @@ public class Matrix { * M' = S(sx, sy) * M */ public boolean postScale(float sx, float sy) { - return native_postScale(native_instance, sx, sy); + // return native_postScale(native_instance, sx, sy); + return true; } /** * Postconcats the matrix with the specified rotation. * M' = R(degrees, px, py) * M */ public boolean postRotate(float degrees, float px, float py) { - return native_postRotate(native_instance, degrees, px, py); + // return native_postRotate(native_instance, degrees, px, py); + return true; } /** * Postconcats the matrix with the specified rotation. diff --git a/src/api-impl/android/graphics/Typeface.java b/src/api-impl/android/graphics/Typeface.java index d68f2f61..342ed8a3 100644 --- a/src/api-impl/android/graphics/Typeface.java +++ b/src/api-impl/android/graphics/Typeface.java @@ -50,4 +50,8 @@ public class Typeface { } private static native long native_create(CharSequence family_name, int style); + + public int getStyle() { + return 0; + } } diff --git a/src/api-impl/android/graphics/drawable/Drawable.java b/src/api-impl/android/graphics/drawable/Drawable.java index f730b51b..ee0be7fd 100644 --- a/src/api-impl/android/graphics/drawable/Drawable.java +++ b/src/api-impl/android/graphics/drawable/Drawable.java @@ -79,4 +79,12 @@ public abstract class Drawable { public int getIntrinsicHeight() {return 0;} public void setTintList (ColorStateList tint) {} + + public void setTint(int tint) {} + + public boolean isStateful() { + return false; + } + + public void setTintMode(PorterDuff.Mode tintMode) {} } diff --git a/src/api-impl/android/graphics/drawable/InsetDrawable.java b/src/api-impl/android/graphics/drawable/InsetDrawable.java index c5f36c80..a5396af4 100644 --- a/src/api-impl/android/graphics/drawable/InsetDrawable.java +++ b/src/api-impl/android/graphics/drawable/InsetDrawable.java @@ -1,6 +1,7 @@ package android.graphics.drawable; import android.graphics.Canvas; +import android.graphics.Rect; public class InsetDrawable extends Drawable { @@ -13,5 +14,7 @@ public class InsetDrawable extends Drawable { // TODO Auto-generated method stub throw new UnsupportedOperationException("Unimplemented method 'draw'"); } + + public boolean getPadding(Rect padding) { return false; } } diff --git a/src/api-impl/android/media/AudioManager.java b/src/api-impl/android/media/AudioManager.java index 2cb487ad..051deff7 100644 --- a/src/api-impl/android/media/AudioManager.java +++ b/src/api-impl/android/media/AudioManager.java @@ -40,4 +40,8 @@ public class AudioManager { public int requestAudioFocus(OnAudioFocusChangeListener listener, int streamType, int durationHint) { return /*AUDIOFOCUS_REQUEST_GRANTED*/1; } + + public int abandonAudioFocus(OnAudioFocusChangeListener listener) { + return /*AUDIOFOCUS_REQUEST_GRANTED*/1; + } } diff --git a/src/api-impl/android/os/BaseBundle.java b/src/api-impl/android/os/BaseBundle.java index 5b4c80c5..ef81f9ff 100644 --- a/src/api-impl/android/os/BaseBundle.java +++ b/src/api-impl/android/os/BaseBundle.java @@ -94,6 +94,27 @@ public class BaseBundle { return (s == null) ? defaultValue : s; } + /** + * Returns the value associated with the given key, or defaultValue if + * no mapping of the desired type exists for the given key. + * + * @param key a String + * @param defaultValue Value to return if key does not exist + * @return a long value + */ + public long getLong(String key, long defaultValue) { + Object o = mMap.get(key); + if (o == null) { + return defaultValue; + } + try { + return (Long)o; + } catch (ClassCastException e) { + typeWarning(key, o, "Long", defaultValue, e); + return defaultValue; + } + } + /** * Inserts a long value into the mapping of this Bundle, replacing * any existing value for the given key. diff --git a/src/api-impl/android/os/Bundle.java b/src/api-impl/android/os/Bundle.java index 79a0fcac..97965bca 100644 --- a/src/api-impl/android/os/Bundle.java +++ b/src/api-impl/android/os/Bundle.java @@ -795,27 +795,6 @@ public final class Bundle extends BaseBundle implements Cloneable { return getLong(key, 0L); } - /** - * Returns the value associated with the given key, or defaultValue if - * no mapping of the desired type exists for the given key. - * - * @param key a String - * @param defaultValue Value to return if key does not exist - * @return a long value - */ - public long getLong(String key, long defaultValue) { - Object o = mMap.get(key); - if (o == null) { - return defaultValue; - } - try { - return (Long)o; - } catch (ClassCastException e) { - typeWarning(key, o, "Long", defaultValue, e); - return defaultValue; - } - } - /** * Returns the value associated with the given key, or 0.0f if * no mapping of the desired type exists for the given key. diff --git a/src/api-impl/android/text/method/LinkMovementMethod.java b/src/api-impl/android/text/method/LinkMovementMethod.java new file mode 100644 index 00000000..34985481 --- /dev/null +++ b/src/api-impl/android/text/method/LinkMovementMethod.java @@ -0,0 +1,5 @@ +package android.text.method; + +public class LinkMovementMethod extends MovementMethod { + +} diff --git a/src/api-impl/android/view/View.java b/src/api-impl/android/view/View.java index 31bbc640..4e2f8bad 100644 --- a/src/api-impl/android/view/View.java +++ b/src/api-impl/android/view/View.java @@ -2,6 +2,7 @@ package android.view; import android.animation.StateListAnimator; import android.content.Context; +import android.content.res.ColorStateList; import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.Canvas; @@ -1537,4 +1538,14 @@ public class View extends Object { public float getZ() {return 0.f;} protected void onSizeChanged(int w, int h, int oldw, int oldh) {} + + public void setBackgroundTintList(ColorStateList tint) {} + + protected int computeHorizontalScrollRange() { + return getWidth(); + } + + protected int computeHorizontalScrollExtent() { + return getWidth(); + } } diff --git a/src/api-impl/android/view/animation/Animation.java b/src/api-impl/android/view/animation/Animation.java index 92ffe99b..e28cb0d6 100644 --- a/src/api-impl/android/view/animation/Animation.java +++ b/src/api-impl/android/view/animation/Animation.java @@ -8,4 +8,6 @@ public class Animation { public void setInterpolator(Interpolator i) {} + public void cancel() {} + } diff --git a/src/api-impl/android/widget/CheckBox.java b/src/api-impl/android/widget/CheckBox.java index 5d11f18c..55032dd5 100644 --- a/src/api-impl/android/widget/CheckBox.java +++ b/src/api-impl/android/widget/CheckBox.java @@ -13,4 +13,6 @@ public class CheckBox extends CompoundButton { super(context, attributeSet); } + public void setLines(int lines) {} + } diff --git a/src/api-impl/android/widget/CursorAdapter.java b/src/api-impl/android/widget/CursorAdapter.java new file mode 100644 index 00000000..be66dff1 --- /dev/null +++ b/src/api-impl/android/widget/CursorAdapter.java @@ -0,0 +1,4 @@ +package android.widget; + +public abstract class CursorAdapter extends BaseAdapter { +} diff --git a/src/api-impl/android/widget/ListAdapter.java b/src/api-impl/android/widget/ListAdapter.java new file mode 100644 index 00000000..de7f2b9d --- /dev/null +++ b/src/api-impl/android/widget/ListAdapter.java @@ -0,0 +1,4 @@ +package android.widget; + +public interface ListAdapter extends Adapter { +} diff --git a/src/api-impl/android/widget/TextView.java b/src/api-impl/android/widget/TextView.java index 1668171c..8b0ae407 100644 --- a/src/api-impl/android/widget/TextView.java +++ b/src/api-impl/android/widget/TextView.java @@ -186,6 +186,12 @@ public class TextView extends View { public CharSequence getHint() {return "HINT";} + public int getMinHeight() {return 0;} + public int getMinWidth() {return 0;} + public void setMinHeight(int minHeight) {} + + public void setHorizontallyScrolling(boolean whether) {} + public static interface OnEditorActionListener { public abstract boolean onEditorAction(TextView v, int actionId, KeyEvent event); } diff --git a/src/api-impl/android/widget/Toast.java b/src/api-impl/android/widget/Toast.java new file mode 100644 index 00000000..c0ca4fa1 --- /dev/null +++ b/src/api-impl/android/widget/Toast.java @@ -0,0 +1,22 @@ +package android.widget; + +import android.content.Context; + +public class Toast { + + private String text; + + public static Toast makeText(Context context, int resId, int duration) { + return makeText(context, context.getString(resId), duration); + } + + public static Toast makeText(Context context, CharSequence text, int duration) { + Toast toast = new Toast(); + toast.text = String.valueOf(text); + return toast; + } + + public void show() { + System.out.println("showing toast: " + text); + } +} diff --git a/src/api-impl/meson.build b/src/api-impl/meson.build index ea370ae2..53217c06 100644 --- a/src/api-impl/meson.build +++ b/src/api-impl/meson.build @@ -5,6 +5,7 @@ hax_jar = jar('hax', [ 'android/animation/AnimatorInflater.java', 'android/animation/AnimatorListenerAdapter.java', 'android/animation/AnimatorSet.java', + 'android/animation/ArgbEvaluator.java', 'android/animation/LayoutTransition.java', 'android/animation/ObjectAnimator.java', 'android/animation/StateListAnimator.java', @@ -299,6 +300,7 @@ hax_jar = jar('hax', [ 'android/text/TextUtils.java', 'android/text/TextWatcher.java', 'android/text/method/KeyListener.java', + 'android/text/method/LinkMovementMethod.java', 'android/text/method/MovementMethod.java', 'android/text/method/NumberKeyListener.java', 'android/text/method/PasswordTransformationMethod.java', @@ -405,6 +407,7 @@ hax_jar = jar('hax', [ 'android/widget/CheckBox.java', 'android/widget/CheckedTextView.java', 'android/widget/CompoundButton.java', + 'android/widget/CursorAdapter.java', 'android/widget/EdgeEffect.java', 'android/widget/EditText.java', 'android/widget/Filter.java', @@ -413,6 +416,7 @@ hax_jar = jar('hax', [ 'android/widget/ImageButton.java', 'android/widget/ImageView.java', 'android/widget/LinearLayout.java', + 'android/widget/ListAdapter.java', 'android/widget/ListView.java', 'android/widget/MediaController.java', 'android/widget/OverScroller.java', @@ -429,6 +433,7 @@ hax_jar = jar('hax', [ 'android/widget/SpinnerAdapter.java', 'android/widget/Switch.java', 'android/widget/TextView.java', + 'android/widget/Toast.java', 'android/widget/Toolbar.java', 'com/android/internal/Manifest.java', 'com/android/internal/R.java',