From f53ad02e6fa7fbbbb620a1943b2e0ac3d1b402f5 Mon Sep 17 00:00:00 2001 From: Julian Winkler Date: Fri, 22 Nov 2024 18:02:54 +0100 Subject: [PATCH] api-impl: misc additions for Oeffi --- .../graphics/android_graphics_Matrix.c | 13 ++++++++++ .../android/animation/AnimatorInflater.java | 2 +- .../android/animation/LayoutTransition.java | 3 +++ src/api-impl/android/app/Activity.java | 9 +++++-- src/api-impl/android/app/ActivityManager.java | 2 ++ src/api-impl/android/app/AlertDialog.java | 8 +++++++ src/api-impl/android/app/ProgressDialog.java | 4 ++++ .../android/content/ContentProvider.java | 4 +++- .../android/content/ContentResolver.java | 8 +++++++ .../SearchRecentSuggestionsProvider.java | 5 ++++ .../android/database/CursorWindow.java | 18 ++++++++++---- .../graphics/drawable/DrawableContainer.java | 4 ++++ .../android/location/LocationManager.java | 6 +++++ src/api-impl/android/net/NetworkInfo.java | 14 +++++++++++ src/api-impl/android/os/Build.java | 2 ++ .../preference/PreferenceActivity.java | 6 +++++ .../android/provider/CalendarContract.java | 10 ++++++++ .../android/text/format/DateUtils.java | 7 ++++++ src/api-impl/android/view/MenuItem.java | 8 +++++++ src/api-impl/android/view/View.java | 9 ++++++- src/api-impl/android/view/ViewGroup.java | 9 ++++++- .../android/view/animation/Animation.java | 12 +++++++++- src/api-impl/android/webkit/ViewAnimator.java | 12 ++++++++++ src/api-impl/android/widget/AbsSpinner.java | 5 ++++ src/api-impl/android/widget/Gallery.java | 21 ++++++++++++++++ src/api-impl/android/widget/PopupMenu.java | 24 +++++++++++++++++++ src/api-impl/android/widget/TextView.java | 8 +++++++ src/api-impl/android/widget/ViewAnimator.java | 14 +++++++++++ src/api-impl/android/widget/ZoomButton.java | 14 +++++++++++ .../android/widget/ZoomButtonsController.java | 6 +++++ .../android/server/am/DumpHeapProvider.java | 6 ++--- src/api-impl/meson.build | 7 ++++++ 32 files changed, 265 insertions(+), 15 deletions(-) create mode 100644 src/api-impl/android/preference/PreferenceActivity.java create mode 100644 src/api-impl/android/provider/CalendarContract.java create mode 100644 src/api-impl/android/webkit/ViewAnimator.java create mode 100644 src/api-impl/android/widget/Gallery.java create mode 100644 src/api-impl/android/widget/ViewAnimator.java create mode 100644 src/api-impl/android/widget/ZoomButton.java create mode 100644 src/api-impl/android/widget/ZoomButtonsController.java diff --git a/src/api-impl-jni/graphics/android_graphics_Matrix.c b/src/api-impl-jni/graphics/android_graphics_Matrix.c index 5e37c489..d65769d3 100644 --- a/src/api-impl-jni/graphics/android_graphics_Matrix.c +++ b/src/api-impl-jni/graphics/android_graphics_Matrix.c @@ -233,3 +233,16 @@ JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1preTranslate(JNI graphene_matrix_multiply(&translation, matrix, matrix); return true; } + +JNIEXPORT jboolean JNICALL Java_android_graphics_Matrix_native_1preRotate__JFFF(JNIEnv *env, jclass class, jlong matrix_ptr, jfloat degrees, jfloat px, jfloat py) +{ + graphene_matrix_t *matrix = (graphene_matrix_t *)_PTR(matrix_ptr); + graphene_matrix_t rotation; + graphene_vec3_t rotation_axis; + graphene_vec3_init(&rotation_axis, 0, 0, 1); + graphene_matrix_init_rotate(&rotation, degrees, &rotation_axis); + graphene_matrix_translate(&rotation, &GRAPHENE_POINT3D_INIT(-px, -py, 0)); + graphene_matrix_multiply(&rotation, matrix, matrix); + graphene_matrix_translate(matrix, &GRAPHENE_POINT3D_INIT(px, py, 0)); + return true; +} diff --git a/src/api-impl/android/animation/AnimatorInflater.java b/src/api-impl/android/animation/AnimatorInflater.java index c10e4cfd..8c8eaf34 100644 --- a/src/api-impl/android/animation/AnimatorInflater.java +++ b/src/api-impl/android/animation/AnimatorInflater.java @@ -5,7 +5,7 @@ import android.content.Context; public class AnimatorInflater { public static Animator loadAnimator(Context context, int resId) { - return new ObjectAnimator(); + return new AnimatorSet(); } public static StateListAnimator loadStateListAnimator(Context context, int resId) { diff --git a/src/api-impl/android/animation/LayoutTransition.java b/src/api-impl/android/animation/LayoutTransition.java index ada9d3b5..ccd27709 100644 --- a/src/api-impl/android/animation/LayoutTransition.java +++ b/src/api-impl/android/animation/LayoutTransition.java @@ -2,4 +2,7 @@ package android.animation; public class LayoutTransition { + public void enableTransitionType(int transitionType) {} + + public void setStartDelay(int transitionType, long startDelay) {} } diff --git a/src/api-impl/android/app/Activity.java b/src/api-impl/android/app/Activity.java index 2d44cfaf..4e96b262 100644 --- a/src/api-impl/android/app/Activity.java +++ b/src/api-impl/android/app/Activity.java @@ -378,6 +378,10 @@ public class Activity extends ContextThemeWrapper implements Window.Callback { dialog.show(); } + public boolean showDialog(int id, Bundle args) { + return false; + } + public void removeDialog(int id) { Dialog dialog = dialogs.remove(id); if (dialog != null) @@ -388,9 +392,9 @@ public class Activity extends ContextThemeWrapper implements Window.Callback { runOnUiThread(new Runnable() { @Override public void run() { - if (window != null) { + if (window != null && window.native_window != 0) { nativeFinish(getWindow().native_window); - window = null; + window.native_window = 0; } } }); @@ -575,4 +579,5 @@ public class Activity extends ContextThemeWrapper implements Window.Callback { public Uri getReferrer() { return null; } public void setDefaultKeyMode(int flag) {} public void registerForContextMenu(View view) {} + public boolean isInMultiWindowMode() { return true; } } diff --git a/src/api-impl/android/app/ActivityManager.java b/src/api-impl/android/app/ActivityManager.java index 93f4ce6d..4e891066 100644 --- a/src/api-impl/android/app/ActivityManager.java +++ b/src/api-impl/android/app/ActivityManager.java @@ -78,4 +78,6 @@ public class ActivityManager { throws SecurityException { return new ArrayList<>(); } + + public int getLargeMemoryClass() {return getMemoryClass();} } diff --git a/src/api-impl/android/app/AlertDialog.java b/src/api-impl/android/app/AlertDialog.java index eeee504e..1c97a87b 100644 --- a/src/api-impl/android/app/AlertDialog.java +++ b/src/api-impl/android/app/AlertDialog.java @@ -35,6 +35,10 @@ public class AlertDialog extends Dialog implements DialogInterface { dialog = new AlertDialog(context); } + public Builder(Context context, int themeResId) { + dialog = new AlertDialog(context, themeResId); + } + public AlertDialog.Builder setPositiveButton(int textId, DialogInterface.OnClickListener listener) { return setPositiveButton(dialog.getContext().getText(textId), listener); } @@ -92,6 +96,10 @@ public class AlertDialog extends Dialog implements DialogInterface { return this; } + public AlertDialog.Builder setItems(int itemsId, final DialogInterface.OnClickListener listener) { + return setItems(dialog.getContext().getResources().getTextArray(itemsId), listener); + } + public Builder setOnCancelListener(OnCancelListener onCancelListener) { return this; } diff --git a/src/api-impl/android/app/ProgressDialog.java b/src/api-impl/android/app/ProgressDialog.java index dba0000e..8a5c7291 100644 --- a/src/api-impl/android/app/ProgressDialog.java +++ b/src/api-impl/android/app/ProgressDialog.java @@ -13,4 +13,8 @@ public class ProgressDialog extends AlertDialog { } public void setIndeterminate(boolean indeterminate) {} + + public static ProgressDialog show(Context context, CharSequence title, CharSequence message, boolean indeterminate, boolean cancelable, OnCancelListener cancelListener) { + return new ProgressDialog(context); + } } diff --git a/src/api-impl/android/content/ContentProvider.java b/src/api-impl/android/content/ContentProvider.java index 49c7066c..2201b6b6 100644 --- a/src/api-impl/android/content/ContentProvider.java +++ b/src/api-impl/android/content/ContentProvider.java @@ -31,13 +31,15 @@ public abstract class ContentProvider { public boolean onCreate() {return false;} public Context getContext() { - return new Context(); + return Context.this_application; } public abstract Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder); public abstract Uri insert(Uri uri, ContentValues values); + public abstract int update(Uri uri, ContentValues values, String selection, String[] selectionArgs); + public abstract int delete(Uri uri, String selection, String[] selectionArgs); public abstract String getType(Uri uri); diff --git a/src/api-impl/android/content/ContentResolver.java b/src/api-impl/android/content/ContentResolver.java index dab0496c..16605cfb 100644 --- a/src/api-impl/android/content/ContentResolver.java +++ b/src/api-impl/android/content/ContentResolver.java @@ -69,4 +69,12 @@ public class ContentResolver { else return null; } + + public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) { + ContentProvider provider = ContentProvider.providers.get(uri.getAuthority()); + if (provider != null) + return provider.update(uri, values, selection, selectionArgs); + else + return 0; + } } diff --git a/src/api-impl/android/content/SearchRecentSuggestionsProvider.java b/src/api-impl/android/content/SearchRecentSuggestionsProvider.java index 65b1d5d3..eeed4d67 100644 --- a/src/api-impl/android/content/SearchRecentSuggestionsProvider.java +++ b/src/api-impl/android/content/SearchRecentSuggestionsProvider.java @@ -17,6 +17,11 @@ public class SearchRecentSuggestionsProvider extends ContentProvider { throw new UnsupportedOperationException("Unimplemented method 'insert'"); } + @Override + public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) { + throw new UnsupportedOperationException("Unimplemented method 'update'"); + } + @Override public int delete(Uri uri, String selection, String[] selectionArgs) { throw new UnsupportedOperationException("Unimplemented method 'delete'"); diff --git a/src/api-impl/android/database/CursorWindow.java b/src/api-impl/android/database/CursorWindow.java index 340a70e9..d27d9eec 100644 --- a/src/api-impl/android/database/CursorWindow.java +++ b/src/api-impl/android/database/CursorWindow.java @@ -402,11 +402,19 @@ public class CursorWindow extends SQLiteClosable implements Parcelable { * @return The value of the field as a long. */ public long getLong(int row, int column) { - Long field = (Long)rows.get(row - startPos)[column]; - if (field == null) { - return 0L; - } - return field.longValue(); + long result = 0L; + Object object = rows.get(row - startPos)[column]; + if (object instanceof Long) + result = (Long)object; + else if (object instanceof String) + result = Long.parseLong((String) object); + else if (object instanceof Double) + result = ((Double) object).longValue(); + else if (object == null) + result = 0L; + else + throw new SQLiteException("Unexpected object type for getLong: " + object.getClass().getName()); + return result; } /** diff --git a/src/api-impl/android/graphics/drawable/DrawableContainer.java b/src/api-impl/android/graphics/drawable/DrawableContainer.java index c3ed7f60..77f0e4c8 100644 --- a/src/api-impl/android/graphics/drawable/DrawableContainer.java +++ b/src/api-impl/android/graphics/drawable/DrawableContainer.java @@ -84,4 +84,8 @@ public class DrawableContainer extends Drawable { state.drawables[curIndex].setBounds(left, top, right, bottom); } + public void setEnterFadeDuration(int duration) {} + + public void setExitFadeDuration(int duration) {} + } diff --git a/src/api-impl/android/location/LocationManager.java b/src/api-impl/android/location/LocationManager.java index d4ce0f18..b0999138 100644 --- a/src/api-impl/android/location/LocationManager.java +++ b/src/api-impl/android/location/LocationManager.java @@ -2,7 +2,9 @@ package android.location; import android.os.Bundle; +import java.util.Collections; import java.util.HashSet; +import java.util.List; import java.util.Set; public class LocationManager { @@ -36,4 +38,8 @@ public class LocationManager { public void removeUpdates(LocationListener listener) { } + + public List getAllProviders() { + return Collections.emptyList(); + } } diff --git a/src/api-impl/android/net/NetworkInfo.java b/src/api-impl/android/net/NetworkInfo.java index d1718a9b..f31ffae6 100644 --- a/src/api-impl/android/net/NetworkInfo.java +++ b/src/api-impl/android/net/NetworkInfo.java @@ -10,6 +10,8 @@ public class NetworkInfo { UNKNOWN } + public enum DetailedState {} + private State state = State.DISCONNECTED; public NetworkInfo(boolean available) { @@ -51,4 +53,16 @@ public class NetworkInfo { public boolean isAvailable () { return false; } + + public DetailedState getDetailedState() { + return null; + } + + public String getExtraInfo() { + return null; + } + + public String getReason() { + return null; + } } diff --git a/src/api-impl/android/os/Build.java b/src/api-impl/android/os/Build.java index 8bfcaaa4..84ce9ab9 100644 --- a/src/api-impl/android/os/Build.java +++ b/src/api-impl/android/os/Build.java @@ -147,6 +147,8 @@ public class Build { * @hide */ public static final int RESOURCES_SDK_INT = SDK_INT + ("REL".equals(CODENAME) ? 0 : 1); + + public static final String SECURITY_PATCH = getString("ro.build.version.security_patch"); } /** diff --git a/src/api-impl/android/preference/PreferenceActivity.java b/src/api-impl/android/preference/PreferenceActivity.java new file mode 100644 index 00000000..fe3e0ab2 --- /dev/null +++ b/src/api-impl/android/preference/PreferenceActivity.java @@ -0,0 +1,6 @@ +package android.preference; + +import android.app.ListActivity; + +public class PreferenceActivity extends ListActivity { +} diff --git a/src/api-impl/android/provider/CalendarContract.java b/src/api-impl/android/provider/CalendarContract.java new file mode 100644 index 00000000..b6829223 --- /dev/null +++ b/src/api-impl/android/provider/CalendarContract.java @@ -0,0 +1,10 @@ +package android.provider; + +import android.net.Uri; + +public class CalendarContract { + + public static final class Events { + public static final Uri CONTENT_URI = Uri.parse("content://com.android.calendar/events"); + } +} diff --git a/src/api-impl/android/text/format/DateUtils.java b/src/api-impl/android/text/format/DateUtils.java index fbaff963..8f671d9c 100644 --- a/src/api-impl/android/text/format/DateUtils.java +++ b/src/api-impl/android/text/format/DateUtils.java @@ -9,4 +9,11 @@ public class DateUtils { public static CharSequence getRelativeTimeSpanString(Context context, long millis, boolean withPreposition) { return new Date(millis).toString(); } + + public static boolean isToday(long millis) { + Date d1 = new Date(millis); + Date d2 = new Date(); + + return d1.getYear() == d2.getYear() && d1.getMonth() == d2.getMonth() && d1.getDate() == d2.getDate(); + } } diff --git a/src/api-impl/android/view/MenuItem.java b/src/api-impl/android/view/MenuItem.java index 11869426..49167595 100644 --- a/src/api-impl/android/view/MenuItem.java +++ b/src/api-impl/android/view/MenuItem.java @@ -59,4 +59,12 @@ public interface MenuItem { public MenuItem setAlphabeticShortcut(char alphaChar); public MenuItem setShortcut(char numeric, char alpha); + + public int getOrder(); + + public boolean isEnabled(); + + public CharSequence getTitleCondensed(); + + public CharSequence getTitle(); } diff --git a/src/api-impl/android/view/View.java b/src/api-impl/android/view/View.java index 5c6fbd62..6177cb85 100644 --- a/src/api-impl/android/view/View.java +++ b/src/api-impl/android/view/View.java @@ -942,6 +942,11 @@ public class View implements Drawable.Callback { } native_setPadding(widget, paddingLeft, paddingTop, paddingRight, paddingBottom); + + if (a.hasValue(com.android.internal.R.styleable.View_tag)) { + tag = a.getText(com.android.internal.R.styleable.View_tag); + } + a.recycle(); } onCreateDrawableState(0); } @@ -1436,7 +1441,7 @@ public class View implements Drawable.Callback { public void requestLayout() { layoutRequested = true; - if (parent != null) { + if (parent != null && !parent.isLayoutRequested()) { parent.requestLayout(); } native_requestLayout(widget); @@ -1949,4 +1954,6 @@ public class View implements Drawable.Callback { public void setImportantForAutofill(int flag) {} public void setDefaultFocusHighlightEnabled(boolean enabled) {} + + public void setHorizontalFadingEdgeEnabled(boolean horizontalFadingEdgeEnabled) {} } diff --git a/src/api-impl/android/view/ViewGroup.java b/src/api-impl/android/view/ViewGroup.java index 079246d7..06a9c999 100644 --- a/src/api-impl/android/view/ViewGroup.java +++ b/src/api-impl/android/view/ViewGroup.java @@ -12,6 +12,7 @@ import java.util.Objects; public class ViewGroup extends View implements ViewParent, ViewManager { public ArrayList children; private OnHierarchyChangeListener onHierarchyChangeListener; + private LayoutTransition transition; public ViewGroup(Context context) { this(context, null); @@ -191,7 +192,9 @@ public class ViewGroup extends View implements ViewParent, ViewManager { return true; } - public LayoutTransition getLayoutTransition() { return null; } + public LayoutTransition getLayoutTransition() { + return transition; + } public static int getChildMeasureSpec(int spec, int padding, int childDimension) { int specMode = MeasureSpec.getMode(spec); @@ -378,6 +381,10 @@ public class ViewGroup extends View implements ViewParent, ViewManager { return null; } + public void setLayoutTransition(LayoutTransition transition) { + this.transition = transition; + } + public static class LayoutParams { public static final int FILL_PARENT = -1; public static final int MATCH_PARENT = -1; diff --git a/src/api-impl/android/view/animation/Animation.java b/src/api-impl/android/view/animation/Animation.java index 75056a3f..e5453f57 100644 --- a/src/api-impl/android/view/animation/Animation.java +++ b/src/api-impl/android/view/animation/Animation.java @@ -1,5 +1,8 @@ package android.view.animation; +import android.os.Handler; +import android.os.Looper; + public class Animation { public interface AnimationListener { @@ -20,8 +23,15 @@ public class Animation { public void setStartOffset(long offset) {} public void setAnimationListener(AnimationListener l) { - l.onAnimationEnd(this); // FIXME + new Handler(Looper.getMainLooper()).post(new Runnable() { + @Override + public void run() { + l.onAnimationEnd(Animation.this); // FIXME + } + }); } public void setRepeatCount(int count) {} + + public void reset() {} } diff --git a/src/api-impl/android/webkit/ViewAnimator.java b/src/api-impl/android/webkit/ViewAnimator.java new file mode 100644 index 00000000..d9e8cd93 --- /dev/null +++ b/src/api-impl/android/webkit/ViewAnimator.java @@ -0,0 +1,12 @@ +package android.webkit; + +import android.content.Context; +import android.util.AttributeSet; +import android.view.ViewGroup; + +public class ViewAnimator extends ViewGroup { + + public ViewAnimator(Context context, AttributeSet attrs) { + super(context, attrs); + } +} diff --git a/src/api-impl/android/widget/AbsSpinner.java b/src/api-impl/android/widget/AbsSpinner.java index 9223a53a..2de2deac 100644 --- a/src/api-impl/android/widget/AbsSpinner.java +++ b/src/api-impl/android/widget/AbsSpinner.java @@ -17,6 +17,11 @@ public abstract class AbsSpinner extends AdapterView { haveCustomMeasure = false; } + public AbsSpinner(Context context, AttributeSet attributeSet, int defStyle) { + super(context, attributeSet, defStyle); + haveCustomMeasure = false; + } + @Override protected native long native_constructor(Context context, AttributeSet attrs); protected native void native_setAdapter(long widget, SpinnerAdapter adapter); diff --git a/src/api-impl/android/widget/Gallery.java b/src/api-impl/android/widget/Gallery.java new file mode 100644 index 00000000..d55f6604 --- /dev/null +++ b/src/api-impl/android/widget/Gallery.java @@ -0,0 +1,21 @@ +package android.widget; + +import android.content.Context; +import android.util.AttributeSet; + +public class Gallery extends AbsSpinner { + + public Gallery(Context context) { + super(context); + } + + public Gallery(Context context, AttributeSet attributeSet) { + super(context, attributeSet); + } + + public Gallery(Context context, AttributeSet attributeSet, int defStyleAttr) { + super(context, attributeSet, defStyleAttr); + } + + public void setHorizontalFadingEdgeEnabled(boolean enabled) {} +} diff --git a/src/api-impl/android/widget/PopupMenu.java b/src/api-impl/android/widget/PopupMenu.java index 88ce8a83..f313515e 100644 --- a/src/api-impl/android/widget/PopupMenu.java +++ b/src/api-impl/android/widget/PopupMenu.java @@ -515,6 +515,30 @@ public class PopupMenu { @Override public MenuItem setShortcut(char numeric, char alpha) { return this; } + + @Override + public int getOrder() { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'getOrder'"); + } + + @Override + public boolean isEnabled() { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'isEnabled'"); + } + + @Override + public CharSequence getTitleCondensed() { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'getTitleCondensed'"); + } + + @Override + public CharSequence getTitle() { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'getTitle'"); + } } } diff --git a/src/api-impl/android/widget/TextView.java b/src/api-impl/android/widget/TextView.java index feab7d21..82cebf1b 100644 --- a/src/api-impl/android/widget/TextView.java +++ b/src/api-impl/android/widget/TextView.java @@ -307,4 +307,12 @@ public class TextView extends View { public void setLines(int lines) {} public void setMinLines(int lines) {} + + public void setSelectAllOnFocus(boolean selectAllOnFocus) {} + + public int getCompoundDrawablePadding() {return 0;} + + public int getPaintFlags() {return 0;} + + public void setPaintFlags(int flags) {} } diff --git a/src/api-impl/android/widget/ViewAnimator.java b/src/api-impl/android/widget/ViewAnimator.java new file mode 100644 index 00000000..f323a33d --- /dev/null +++ b/src/api-impl/android/widget/ViewAnimator.java @@ -0,0 +1,14 @@ +package android.widget; + +import android.content.Context; +import android.util.AttributeSet; +import android.view.ViewGroup; + +public class ViewAnimator extends ViewGroup { + + public ViewAnimator(Context context, AttributeSet attrs) { + super(context, attrs); + } + + public void setDisplayedChild(int index) {} +} diff --git a/src/api-impl/android/widget/ZoomButton.java b/src/api-impl/android/widget/ZoomButton.java new file mode 100644 index 00000000..8a7d80cc --- /dev/null +++ b/src/api-impl/android/widget/ZoomButton.java @@ -0,0 +1,14 @@ +package android.widget; + +import android.content.Context; +import android.util.AttributeSet; +import android.view.View; + +public class ZoomButton extends View { + + public ZoomButton(Context context, AttributeSet attrs) { + super(context, attrs); + } + + public void setZoomSpeed(long speed) {} +} diff --git a/src/api-impl/android/widget/ZoomButtonsController.java b/src/api-impl/android/widget/ZoomButtonsController.java new file mode 100644 index 00000000..ec3c7d18 --- /dev/null +++ b/src/api-impl/android/widget/ZoomButtonsController.java @@ -0,0 +1,6 @@ +package android.widget; + +public class ZoomButtonsController { + + public interface OnZoomListener {} +} diff --git a/src/api-impl/com/android/server/am/DumpHeapProvider.java b/src/api-impl/com/android/server/am/DumpHeapProvider.java index c3e5d4aa..1fce7249 100644 --- a/src/api-impl/com/android/server/am/DumpHeapProvider.java +++ b/src/api-impl/com/android/server/am/DumpHeapProvider.java @@ -59,11 +59,11 @@ public class DumpHeapProvider extends ContentProvider { return 0; } -/* @Override + @Override public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) { return 0; - } -*/ + } + @Override public ParcelFileDescriptor openFile(Uri uri, String mode) throws FileNotFoundException { synchronized (sLock) { diff --git a/src/api-impl/meson.build b/src/api-impl/meson.build index c3b1827f..e7a0477a 100644 --- a/src/api-impl/meson.build +++ b/src/api-impl/meson.build @@ -318,9 +318,11 @@ hax_jar = jar('hax', [ 'android/os/UserManager.java', 'android/os/Vibrator.java', 'android/os/storage/StorageManager.java', + 'android/preference/PreferenceActivity.java', 'android/preference/PreferenceManager.java', 'android/print/PrintManager.java', 'android/provider/BaseColumns.java', + 'android/provider/CalendarContract.java', 'android/provider/ContactsContract.java', 'android/provider/Settings.java', 'android/telecom/TelecomManager.java', @@ -486,6 +488,7 @@ hax_jar = jar('hax', [ 'android/webkit/DownloadListener.java', 'android/webkit/MimeTypeMap.java', 'android/webkit/URLUtil.java', + 'android/webkit/ViewAnimator.java', 'android/webkit/WebChromeClient.java', 'android/webkit/WebSettings.java', 'android/webkit/WebView.java', @@ -512,6 +515,7 @@ hax_jar = jar('hax', [ 'android/widget/Filterable.java', 'android/widget/FilterQueryProvider.java', 'android/widget/FrameLayout.java', + 'android/widget/Gallery.java', 'android/widget/HeaderViewListAdapter.java', 'android/widget/HorizontalScrollView.java', 'android/widget/ImageButton.java', @@ -543,6 +547,9 @@ hax_jar = jar('hax', [ 'android/widget/TextView.java', 'android/widget/Toast.java', 'android/widget/Toolbar.java', + 'android/widget/ViewAnimator.java', + 'android/widget/ZoomButton.java', + 'android/widget/ZoomButtonsController.java', 'com/android/internal/Manifest.java', 'com/android/internal/R.java', 'com/android/internal/util/ArrayUtils.java',