diff --git a/src/api-impl-jni/android_os_SystemClock.c b/src/api-impl-jni/android_os_SystemClock.c index 189c6996..5954d59b 100644 --- a/src/api-impl-jni/android_os_SystemClock.c +++ b/src/api-impl-jni/android_os_SystemClock.c @@ -24,3 +24,10 @@ JNIEXPORT jlong JNICALL Java_android_os_SystemClock_elapsedRealtimeNanos(JNIEnv clock_gettime(CLOCK_BOOTTIME, &t); return t.tv_sec * 1000000000 + t.tv_nsec; } + +JNIEXPORT jlong JNICALL Java_android_os_SystemClock_currentThreadTimeMillis(JNIEnv *env, jclass this) +{ + struct timespec now; + clock_gettime(CLOCK_THREAD_CPUTIME_ID, &now); + return now.tv_sec * 1000 + lround(now.tv_nsec / 1e6); +} diff --git a/src/api-impl/android/animation/ValueAnimator.java b/src/api-impl/android/animation/ValueAnimator.java index 6fdf2c63..3018a785 100644 --- a/src/api-impl/android/animation/ValueAnimator.java +++ b/src/api-impl/android/animation/ValueAnimator.java @@ -1720,6 +1720,10 @@ public class ValueAnimator extends Animator implements AnimationHandler.Animatio mAnimationHandler = animationHandler; } + public static long getFrameDelay() { + return AnimationHandler.getFrameDelay(); + } + /** * Listener interface for the system-wide scaling factor for Animator-based animations. * diff --git a/src/api-impl/android/appwidget/AppWidgetProvider.java b/src/api-impl/android/appwidget/AppWidgetProvider.java index a5501373..a968dfbd 100644 --- a/src/api-impl/android/appwidget/AppWidgetProvider.java +++ b/src/api-impl/android/appwidget/AppWidgetProvider.java @@ -1,4 +1,6 @@ package android.appwidget; -public class AppWidgetProvider { +import android.content.BroadcastReceiver; + +public abstract class AppWidgetProvider extends BroadcastReceiver { } diff --git a/src/api-impl/android/content/Context.java b/src/api-impl/android/content/Context.java index aa48a4d5..de50070d 100644 --- a/src/api-impl/android/content/Context.java +++ b/src/api-impl/android/content/Context.java @@ -786,4 +786,14 @@ public class Context extends Object { /* FIXME: should be a different context, and return different storage locations */ return this; } + + public boolean deleteSharedPreferences(String name) { + getSharedPrefsFile(name).delete(); + sharedPrefs.remove(name); + return true; + } + + public String getPackageResourcePath() { + return native_get_apk_path(); + } } diff --git a/src/api-impl/android/content/pm/PackageManager.java b/src/api-impl/android/content/pm/PackageManager.java index b463bfda..151323bb 100644 --- a/src/api-impl/android/content/pm/PackageManager.java +++ b/src/api-impl/android/content/pm/PackageManager.java @@ -1348,7 +1348,7 @@ public class PackageManager { public static final String EXTRA_REQUEST_PERMISSION_PERMISSION_LIST = "android.content.pm.extra.PERMISSION_LIST"; public PackageManager() { - package_info = PackageParser.generatePackageInfo(Context.pkg, new int[0], 0, 0, 0, new HashSet<>(), new PackageUserState()); + package_info = PackageParser.generatePackageInfo(Context.pkg, new int[0], PackageManager.GET_META_DATA, 0, 0, new HashSet<>(), new PackageUserState()); } /** @@ -2763,7 +2763,7 @@ public class PackageManager { * @param info The application to get the label of. */ public CharSequence getApplicationLabel(ApplicationInfo info) { - return null; + return info.loadLabel(this); } /** diff --git a/src/api-impl/android/content/res/Resources.java b/src/api-impl/android/content/res/Resources.java index 99c6258f..586cbc07 100644 --- a/src/api-impl/android/content/res/Resources.java +++ b/src/api-impl/android/content/res/Resources.java @@ -1499,6 +1499,10 @@ public class Resources { private final AssetManager mAssets; public void rebase() {} + + public Drawable getDrawable(int resId) { + return Resources.this.getDrawable(resId, this); + } } static class ThemeKey implements Cloneable { diff --git a/src/api-impl/android/graphics/BlurMaskFilter.java b/src/api-impl/android/graphics/BlurMaskFilter.java new file mode 100644 index 00000000..844df27d --- /dev/null +++ b/src/api-impl/android/graphics/BlurMaskFilter.java @@ -0,0 +1,10 @@ +package android.graphics; + +public class BlurMaskFilter extends MaskFilter { + + public static enum Blur { + NORMAL, + }; + + public BlurMaskFilter(float radius, Blur blur) {} +} diff --git a/src/api-impl/android/graphics/MaskFilter.java b/src/api-impl/android/graphics/MaskFilter.java new file mode 100644 index 00000000..28f7319e --- /dev/null +++ b/src/api-impl/android/graphics/MaskFilter.java @@ -0,0 +1,4 @@ +package android.graphics; + +public class MaskFilter { +} diff --git a/src/api-impl/android/graphics/Paint.java b/src/api-impl/android/graphics/Paint.java index a00166bc..5f2c1e2c 100644 --- a/src/api-impl/android/graphics/Paint.java +++ b/src/api-impl/android/graphics/Paint.java @@ -339,6 +339,8 @@ public class Paint { public boolean hasGlyph(String text) { return false; } + public MaskFilter setMaskFilter(MaskFilter filter) { return filter; } + 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/net/ConnectivityManager.java b/src/api-impl/android/net/ConnectivityManager.java index 45db4857..6b603e70 100644 --- a/src/api-impl/android/net/ConnectivityManager.java +++ b/src/api-impl/android/net/ConnectivityManager.java @@ -2,6 +2,8 @@ package android.net; import android.os.Handler; +class ProxyInfo {} + public class ConnectivityManager { public class NetworkCallback { @@ -45,4 +47,6 @@ public class ConnectivityManager { public void registerDefaultNetworkCallback(NetworkCallback cb) {} + public ProxyInfo getDefaultProxy() { return null; } + } diff --git a/src/api-impl/android/os/Debug.java b/src/api-impl/android/os/Debug.java index 0fc6066b..7fe21d90 100644 --- a/src/api-impl/android/os/Debug.java +++ b/src/api-impl/android/os/Debug.java @@ -1,4 +1,7 @@ package android.os; + +import dalvik.system.VMDebug; + public final class Debug { public static class MemoryInfo { } @@ -26,4 +29,8 @@ public final class Debug { public static boolean waitingForDebugger() { return false; } + + public static long threadCpuTimeNanos() { + return VMDebug.threadCpuTimeNanos(); + } } diff --git a/src/api-impl/android/os/Parcel.java b/src/api-impl/android/os/Parcel.java index 356cdc38..498b03be 100644 --- a/src/api-impl/android/os/Parcel.java +++ b/src/api-impl/android/os/Parcel.java @@ -80,4 +80,8 @@ public class Parcel { public Parcelable readParcelable(ClassLoader loader) { return null; } + + public void writeStrongBinder(IBinder binder) {} + + public void readException() {} } diff --git a/src/api-impl/android/os/Process.java b/src/api-impl/android/os/Process.java index b77dd230..cc6dcd7d 100644 --- a/src/api-impl/android/os/Process.java +++ b/src/api-impl/android/os/Process.java @@ -832,4 +832,12 @@ public class Process { } public static final native boolean is64Bit(); + + public static long getStartUptimeMillis() { + return 1000; + }; + + public static long getStartElapsedRealtime() { + return 1000; + }; } diff --git a/src/api-impl/android/os/Trace.java b/src/api-impl/android/os/Trace.java index c328081f..e6370a71 100644 --- a/src/api-impl/android/os/Trace.java +++ b/src/api-impl/android/os/Trace.java @@ -196,7 +196,7 @@ public final class Trace { * @hide */ public static void setAppTracingAllowed(boolean allowed) { - nativeSetAppTracingAllowed(allowed); + // nativeSetAppTracingAllowed(allowed); // Setting whether app tracing is allowed may change the tags, so we update the cached // tags here. diff --git a/src/api-impl/android/preference/PreferenceManager.java b/src/api-impl/android/preference/PreferenceManager.java index c9afb272..82650ffc 100644 --- a/src/api-impl/android/preference/PreferenceManager.java +++ b/src/api-impl/android/preference/PreferenceManager.java @@ -12,4 +12,8 @@ public class PreferenceManager { public static void setDefaultValues(Context context, int i, boolean b) { System.out.println("android.preference.PrefereceManager.setDefaultValues: STUB"); } + + public static void setDefaultValues(Context context, String s, int i, int i2, boolean b) { + System.out.println("android.preference.PrefereceManager.setDefaultValues: STUB"); + } } diff --git a/src/api-impl/android/provider/Settings.java b/src/api-impl/android/provider/Settings.java index b2d31d39..663a95e3 100644 --- a/src/api-impl/android/provider/Settings.java +++ b/src/api-impl/android/provider/Settings.java @@ -95,6 +95,10 @@ public class Settings { } } + public static float getFloat(ContentResolver cr, String key) { + return getFloat(cr, key, -1); + } + public static String getString(ContentResolver cr, String key) { switch (key) { default: diff --git a/src/api-impl/android/util/Size.java b/src/api-impl/android/util/Size.java index b3f07b5e..9af341dc 100644 --- a/src/api-impl/android/util/Size.java +++ b/src/api-impl/android/util/Size.java @@ -1,4 +1,20 @@ package android.util; public class Size { + + private int width; + private int height; + + public Size(int width, int height) { + this.width = width; + this.height = height; + } + + public int getWidth() { + return width; + } + + public int getHeight() { + return height; + } } diff --git a/src/api-impl/android/view/Window.java b/src/api-impl/android/view/Window.java index dd65f8a6..dcb17ed5 100644 --- a/src/api-impl/android/view/Window.java +++ b/src/api-impl/android/view/Window.java @@ -26,6 +26,8 @@ public class Window { public boolean onMenuOpened(int featureId, Menu menu); } + public static interface OnFrameMetricsAvailableListener {} + public long native_window; private ViewGroup decorView; diff --git a/src/api-impl/android/webkit/CookieSyncManager.java b/src/api-impl/android/webkit/CookieSyncManager.java new file mode 100644 index 00000000..c8974a2e --- /dev/null +++ b/src/api-impl/android/webkit/CookieSyncManager.java @@ -0,0 +1,10 @@ +package android.webkit; + +import android.content.Context; + +public class CookieSyncManager { + + public static CookieSyncManager createInstance(Context context) { + return new CookieSyncManager(); + } +} diff --git a/src/api-impl/meson.build b/src/api-impl/meson.build index 0dddf30e..fad5033a 100644 --- a/src/api-impl/meson.build +++ b/src/api-impl/meson.build @@ -196,6 +196,7 @@ srcs = [ 'android/graphics/Bitmap.java', 'android/graphics/BitmapFactory.java', 'android/graphics/BitmapShader.java', + 'android/graphics/BlurMaskFilter.java', 'android/graphics/Canvas.java', 'android/graphics/Color.java', 'android/graphics/ColorFilter.java', @@ -207,6 +208,7 @@ srcs = [ 'android/graphics/GskCanvas.java', 'android/graphics/LightingColorFilter.java', 'android/graphics/LinearGradient.java', + 'android/graphics/MaskFilter.java', 'android/graphics/Matrix.java', 'android/graphics/Outline.java', 'android/graphics/Paint.java', @@ -564,6 +566,7 @@ srcs = [ 'android/view/inputmethod/InputMethodSession.java', 'android/view/textservice/TextServicesManager.java', 'android/webkit/CookieManager.java', + 'android/webkit/CookieSyncManager.java', 'android/webkit/DownloadListener.java', 'android/webkit/MimeTypeMap.java', 'android/webkit/URLUtil.java',