add Java APIs needed for WhatsApp settings

This commit is contained in:
Julian Winkler
2024-09-03 17:49:56 +02:00
parent 6c454085dd
commit 3d38ec9755
12 changed files with 60 additions and 2 deletions

View File

@@ -529,6 +529,10 @@ public class Activity extends ContextThemeWrapper implements Window.Callback {
public void startPostponedEnterTransition() {} public void startPostponedEnterTransition() {}
public boolean isChild() {
return false;
}
private native void nativeFinish(long native_window); private native void nativeFinish(long native_window);
public static native void nativeRecreateActivity(Activity activity); public static native void nativeRecreateActivity(Activity activity);
public static native void nativeStartActivity(Activity activity); public static native void nativeStartActivity(Activity activity);

View File

@@ -240,6 +240,8 @@ public class Drawable {
return drawable; return drawable;
} else if ("nine-patch".equals(parser.getName())) { } else if ("nine-patch".equals(parser.getName())) {
return new NinePatchDrawable(resources, null, null, null, null); return new NinePatchDrawable(resources, null, null, null, null);
} else if ("animation-list".equals(parser.getName())) {
return new AnimationDrawable();
} }
return null; return null;
} }

View File

@@ -0,0 +1,9 @@
package android.media;
import android.content.Context;
public class Ringtone{
public String getTitle(Context context) {
return "FIXME: Ringtone.getTitle()";
}
};

View File

@@ -0,0 +1,10 @@
package android.media;
import android.content.Context;
import android.net.Uri;
public class RingtoneManager {
public static Ringtone getRingtone(Context context, Uri uri) {
return new Ringtone();
}
}

View File

@@ -896,6 +896,15 @@ public class View implements Drawable.Callback {
minHeight = a.getDimensionPixelSize(com.android.internal.R.styleable.View_minHeight, 0); minHeight = a.getDimensionPixelSize(com.android.internal.R.styleable.View_minHeight, 0);
} }
} }
onCreateDrawableState(0);
}
protected int[] onCreateDrawableState(int extraSpace) {
return new int[0];
}
protected static int[] mergeDrawableStates(int[] curState, int[] newState) {
return new int[0];
} }
public View findViewById(int id) { public View findViewById(int id) {

View File

@@ -7,6 +7,7 @@ import android.util.AttributeSet;
public class ViewStub extends View { public class ViewStub extends View {
private int layoutResource; private int layoutResource;
private int inflatedId = View.NO_ID;
public ViewStub(Context context) { public ViewStub(Context context) {
this(context, null, 0); this(context, null, 0);
@@ -28,6 +29,8 @@ public class ViewStub extends View {
throw new IllegalStateException("ViewStub must have a valid layoutResource"); throw new IllegalStateException("ViewStub must have a valid layoutResource");
ViewGroup parent = (ViewGroup) getParent(); ViewGroup parent = (ViewGroup) getParent();
View view = LayoutInflater.from(getContext()).inflate(layoutResource, parent, false); View view = LayoutInflater.from(getContext()).inflate(layoutResource, parent, false);
if (inflatedId != View.NO_ID)
view.setId(inflatedId);
int index = parent.indexOfChild(this); int index = parent.indexOfChild(this);
parent.removeView(this); parent.removeView(this);
parent.addView(view, index, getLayoutParams()); parent.addView(view, index, getLayoutParams());
@@ -43,4 +46,8 @@ public class ViewStub extends View {
setMeasuredDimension(0, 0); setMeasuredDimension(0, 0);
} }
public void setInflatedId(int inflatedId) {
this.inflatedId = inflatedId;
}
} }

View File

@@ -3,6 +3,9 @@ package android.webkit;
public class URLUtil { public class URLUtil {
public static String guessFileName(String url, String contentDisposition, String mimeType) { public static String guessFileName(String url, String contentDisposition, String mimeType) {
return url.substring(url.lastIndexOf('/') + 1); String filename = url.substring(url.lastIndexOf('/') + 1);
if (filename.contains("?"))
filename = filename.substring(0, filename.indexOf('?'));
return filename;
} }
} }

View File

@@ -73,7 +73,10 @@ public abstract class AbsListView extends AdapterView {
public void smoothScrollBy(int position, int duration) {} public void smoothScrollBy(int position, int duration) {}
public void smoothScrollToPositionFromTop(int position, int offset) {} @Override
public ViewGroup.LayoutParams generateLayoutParams(AttributeSet attrs) {
return new LayoutParams(getContext(), attrs);
}
public interface OnScrollListener {} public interface OnScrollListener {}
@@ -93,5 +96,8 @@ public abstract class AbsListView extends AdapterView {
public class LayoutParams extends ViewGroup.LayoutParams { public class LayoutParams extends ViewGroup.LayoutParams {
public LayoutParams(Context c, AttributeSet attrs) {
super(c, attrs);
}
} }
} }

View File

@@ -1,6 +1,7 @@
package android.widget; package android.widget;
import android.content.Context; import android.content.Context;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet; import android.util.AttributeSet;
public class CheckedTextView extends TextView { public class CheckedTextView extends TextView {
@@ -15,4 +16,6 @@ public class CheckedTextView extends TextView {
public void setChecked(boolean checked) {} public void setChecked(boolean checked) {}
public void setCheckMarkDrawable(Drawable d) {}
} }

View File

@@ -17,6 +17,7 @@ public abstract class CursorAdapter extends BaseAdapter {
public void changeCursor(Cursor cursor) { public void changeCursor(Cursor cursor) {
this.cursor = cursor; this.cursor = cursor;
notifyDataSetChanged();
} }
public Cursor getCursor() { public Cursor getCursor() {

View File

@@ -305,4 +305,6 @@ public class TextView extends View {
public TextUtils.TruncateAt getEllipsize() {return null;} public TextUtils.TruncateAt getEllipsize() {return null;}
public void setLines(int lines) {} public void setLines(int lines) {}
public void setMinLines(int lines) {}
} }

View File

@@ -242,6 +242,8 @@ hax_jar = jar('hax', [
'android/media/MediaMetadata.java', 'android/media/MediaMetadata.java',
'android/media/MediaPlayer.java', 'android/media/MediaPlayer.java',
'android/media/MediaRouter.java', 'android/media/MediaRouter.java',
'android/media/Ringtone.java',
'android/media/RingtoneManager.java',
'android/media/SoundPool.java', 'android/media/SoundPool.java',
'android/media/projection/MediaProjectionManager.java', 'android/media/projection/MediaProjectionManager.java',
'android/media/session/MediaController.java', 'android/media/session/MediaController.java',