api-impl: misc stubs and fixes for WhatsApp

This commit is contained in:
Julian Winkler
2025-10-05 15:19:58 +02:00
parent f90499d1df
commit 076ade2c5f
19 changed files with 110 additions and 6 deletions

View File

@@ -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();
}

View File

@@ -191,4 +191,6 @@ public class Dialog implements Window.Callback, DialogInterface {
public boolean onTouchEvent(MotionEvent event) {
return false;
}
public void setOnKeyListener(OnKeyListener onKeyListener) {}
}

View File

@@ -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

View File

@@ -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);

View File

@@ -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);

View File

@@ -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

View File

@@ -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);
}
}

View File

@@ -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;
}
}

View File

@@ -3,4 +3,5 @@ package android.text.style;
public class AbsoluteSizeSpan {
public AbsoluteSizeSpan() {}
public AbsoluteSizeSpan(int dummy) {}
public AbsoluteSizeSpan(int size, boolean dip) {}
}

View File

@@ -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) {}
}
}

View File

@@ -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;
}
}

View File

@@ -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);
}

View File

@@ -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) {}
}

View File

@@ -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();
}

View File

@@ -3644,4 +3644,8 @@ public class ListView extends AbsListView {
}
return null;
}
public void setItemsCanFocus(boolean itemsCanFocus) {
mItemsCanFocus = itemsCanFocus;
}
}

View File

@@ -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'");
}
}
}

View File

@@ -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) {}
}

View File

@@ -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);

View File

@@ -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',