mirror of
https://gitlab.com/android_translation_layer/android_translation_layer.git
synced 2025-04-28 12:17:57 +03:00
api-impl: stubs and fixes for latest WhatsApp version
This commit is contained in:
parent
09a38f9a28
commit
c81442321e
35 changed files with 261 additions and 1 deletions
|
@ -109,6 +109,7 @@ libtranslationlayer_so = shared_library('translation_layer_main', [
|
|||
'src/api-impl-jni/media/android_media_MediaCodec.c',
|
||||
'src/api-impl-jni/media/android_media_session_MediaSession.c',
|
||||
'src/api-impl-jni/net/android_net_ConnectivityManager.c',
|
||||
'src/api-impl-jni/os/android_os_Process.c',
|
||||
'src/api-impl-jni/sensors/android_hardware_SensorManager.c',
|
||||
'src/api-impl-jni/util.c',
|
||||
'src/api-impl-jni/views/AndroidLayout.c',
|
||||
|
|
|
@ -297,6 +297,14 @@ JNIEXPORT jintArray JNICALL Java_android_os_Process_getPidsForCommands
|
|||
JNIEXPORT jlong JNICALL Java_android_os_Process_getPss
|
||||
(JNIEnv *, jclass, jint);
|
||||
|
||||
/*
|
||||
* Class: android_os_Process
|
||||
* Method: is64Bit
|
||||
* Signature: ()Z
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL Java_android_os_Process_is64Bit
|
||||
(JNIEnv *, jclass);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
10
src/api-impl-jni/os/android_os_Process.c
Normal file
10
src/api-impl-jni/os/android_os_Process.c
Normal file
|
@ -0,0 +1,10 @@
|
|||
#include "../generated_headers/android_os_Process.h"
|
||||
|
||||
JNIEXPORT jboolean JNICALL Java_android_os_Process_is64Bit(JNIEnv *env, jclass this)
|
||||
{
|
||||
#ifdef __LP64__
|
||||
return 1;
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
|
@ -576,4 +576,14 @@ public class Activity extends ContextThemeWrapper implements Window.Callback {
|
|||
public void setDefaultKeyMode(int flag) {}
|
||||
public void registerForContextMenu(View view) {}
|
||||
public native boolean isInMultiWindowMode();
|
||||
|
||||
public void registerActivityLifecycleCallbacks(Application.ActivityLifecycleCallbacks callback) {}
|
||||
|
||||
public void setDisablePreviewScreenshots(boolean disable) {}
|
||||
public final View requireViewById(int id) {
|
||||
View view = findViewById(id);
|
||||
if (view == null)
|
||||
throw new IllegalArgumentException("ID does not reference a View inside this View");
|
||||
return view;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,6 +8,7 @@ import android.os.Parcelable;
|
|||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Collections;
|
||||
|
||||
public class ActivityManager {
|
||||
|
||||
|
@ -80,4 +81,8 @@ public class ActivityManager {
|
|||
}
|
||||
|
||||
public int getLargeMemoryClass() {return getMemoryClass();}
|
||||
|
||||
public List<ApplicationExitInfo> getHistoricalProcessExitReasons(String pkgname, int pid, int maxNum) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,4 +8,6 @@ public class AlarmManager {
|
|||
public void setExact(int type, long triggerTime, PendingIntent operation) {}
|
||||
|
||||
public void set(int type, long triggerTime, PendingIntent operation) {}
|
||||
|
||||
public void setExactAndAllowWhileIdle(int type, long triggerAtMillis, PendingIntent operation) {}
|
||||
}
|
||||
|
|
|
@ -96,4 +96,8 @@ public class Application extends ContextWrapper {
|
|||
}
|
||||
public void unregisterOnProvideAssistDataListener(OnProvideAssistDataListener callback) {
|
||||
}
|
||||
public static String getProcessName() {
|
||||
// note: we currently don't set the process name
|
||||
return Context.this_application.getPackageName();
|
||||
}
|
||||
}
|
||||
|
|
4
src/api-impl/android/app/ApplicationExitInfo.java
Normal file
4
src/api-impl/android/app/ApplicationExitInfo.java
Normal file
|
@ -0,0 +1,4 @@
|
|||
package android.app;
|
||||
|
||||
public class ApplicationExitInfo {
|
||||
}
|
|
@ -1,6 +1,22 @@
|
|||
package android.app;
|
||||
|
||||
import android.net.Uri;
|
||||
import android.media.AudioAttributes;
|
||||
|
||||
public class NotificationChannel {
|
||||
|
||||
public NotificationChannel(String id, CharSequence name, int importance) {}
|
||||
|
||||
public void setLockscreenVisibility(int a) {}
|
||||
public void setShowBadge(boolean a) {}
|
||||
public void setGroup(String grp) {}
|
||||
public void enableLights(boolean en) {}
|
||||
public void setLightColor(int color) {}
|
||||
public void setVibrationPattern(long[] pattern) {}
|
||||
public void enableVibration(boolean en) {}
|
||||
public void setSound(Uri uri, AudioAttributes attrs) {}
|
||||
public boolean shouldShowLights() { return false; }
|
||||
public int getLightColor() { return 0; }
|
||||
public boolean shouldVibrate() { return false; }
|
||||
public Uri getSound() { return null; }
|
||||
}
|
||||
|
|
6
src/api-impl/android/app/NotificationChannelGroup.java
Normal file
6
src/api-impl/android/app/NotificationChannelGroup.java
Normal file
|
@ -0,0 +1,6 @@
|
|||
package android.app;
|
||||
|
||||
public class NotificationChannelGroup {
|
||||
public NotificationChannelGroup(String a, CharSequence b) {
|
||||
}
|
||||
}
|
|
@ -1,6 +1,8 @@
|
|||
package android.app;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
|
@ -106,4 +108,14 @@ public class NotificationManager {
|
|||
protected native void nativeShowMPRIS(String packageName, String identiy);
|
||||
protected native void nativeCancel(int id);
|
||||
protected native void nativeCancelMPRIS();
|
||||
|
||||
public void createNotificationChannelGroup(NotificationChannelGroup v) {}
|
||||
|
||||
public List<NotificationChannel> getNotificationChannels() {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
public List<NotificationChannelGroup> getNotificationChannelGroups() {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,6 +3,9 @@ package android.app.job;
|
|||
import android.content.ComponentName;
|
||||
|
||||
public class JobInfo {
|
||||
|
||||
public JobInfo() {}
|
||||
|
||||
public static final class Builder {
|
||||
public Builder(int jobId, ComponentName jobService) {}
|
||||
|
||||
|
@ -13,5 +16,13 @@ public class JobInfo {
|
|||
public Builder setRequiredNetworkType(int networkType) {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setOverrideDeadline(long a) {
|
||||
return this;
|
||||
}
|
||||
|
||||
public JobInfo build() {
|
||||
return new JobInfo();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,4 +13,8 @@ public class JobScheduler {
|
|||
public List<JobInfo> getAllPendingJobs() {
|
||||
return new ArrayList<JobInfo>();
|
||||
};
|
||||
|
||||
public int enqueue(JobInfo job, JobWorkItem work) {
|
||||
return 1; //RESULT_SUCCESS
|
||||
}
|
||||
}
|
||||
|
|
9
src/api-impl/android/app/job/JobWorkItem.java
Normal file
9
src/api-impl/android/app/job/JobWorkItem.java
Normal file
|
@ -0,0 +1,9 @@
|
|||
package android.app.job;
|
||||
|
||||
import android.content.Intent;
|
||||
|
||||
final public class JobWorkItem {
|
||||
public JobWorkItem(Intent intent) {
|
||||
}
|
||||
}
|
||||
|
|
@ -15,6 +15,7 @@ import android.bluetooth.BluetoothManager;
|
|||
import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.PackageParser;
|
||||
import android.content.pm.ShortcutManager;
|
||||
import android.content.res.AssetManager;
|
||||
import android.content.res.Configuration;
|
||||
import android.content.res.Resources;
|
||||
|
@ -39,6 +40,7 @@ import android.os.Handler;
|
|||
import android.os.Looper;
|
||||
import android.os.ParcelFileDescriptor;
|
||||
import android.os.PowerManager;
|
||||
import android.os.UserManager;
|
||||
import android.os.Vibrator;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.util.AttributeSet;
|
||||
|
@ -386,6 +388,10 @@ public class Context extends Object {
|
|||
return prefs_dir;
|
||||
}
|
||||
|
||||
public File[] getExternalMediaDirs() {
|
||||
return getExternalFilesDirs("media");
|
||||
}
|
||||
|
||||
public File getDir(String name, int mode) {
|
||||
File dir = new File(getFilesDir(), name);
|
||||
if (!dir.exists()) {
|
||||
|
@ -656,4 +662,11 @@ public class Context extends Object {
|
|||
public void revokeUriPermission(Uri uri, int mode) {
|
||||
System.out.println("revokeUriPermission(" + uri + ", " + mode + ") called");
|
||||
}
|
||||
|
||||
public String getAttributionTag() {
|
||||
return null;
|
||||
}
|
||||
public boolean isDeviceProtectedStorage() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -364,4 +364,8 @@ public class Intent implements Parcelable {
|
|||
public byte[] getByteArrayExtra(String name) {
|
||||
return extras.getByteArray(name);
|
||||
}
|
||||
|
||||
public void removeExtra(String name) {
|
||||
extras.remove(name);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -243,4 +243,10 @@ public class PackageInfo {
|
|||
public int describeContents() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public long getLongVersionCode() {
|
||||
return versionCode;
|
||||
}
|
||||
|
||||
public SigningInfo signingInfo = new SigningInfo();
|
||||
}
|
||||
|
|
15
src/api-impl/android/content/pm/ShortcutManager.java
Normal file
15
src/api-impl/android/content/pm/ShortcutManager.java
Normal file
|
@ -0,0 +1,15 @@
|
|||
package android.content.pm;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class ShortcutManager {
|
||||
public void removeAllDynamicShortcuts() {
|
||||
}
|
||||
|
||||
public List getShortcuts(int matchFlags) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
public void removeLongLivedShortcuts(List<String> shortcutIds) {
|
||||
}
|
||||
}
|
7
src/api-impl/android/content/pm/SigningInfo.java
Normal file
7
src/api-impl/android/content/pm/SigningInfo.java
Normal file
|
@ -0,0 +1,7 @@
|
|||
package android.content.pm;
|
||||
|
||||
public final class SigningInfo {
|
||||
public Signature[] getApkContentsSigners() {
|
||||
return null;
|
||||
}
|
||||
}
|
|
@ -1471,6 +1471,8 @@ public class Resources {
|
|||
}
|
||||
|
||||
private final AssetManager mAssets;
|
||||
|
||||
public void rebase() {}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
package android.graphics.drawable;
|
||||
|
||||
import android.graphics.Canvas;
|
||||
|
||||
public class ColorStateListDrawable extends Drawable implements Drawable.Callback {
|
||||
@Override
|
||||
public void draw(Canvas c) {
|
||||
}
|
||||
@Override
|
||||
public void unscheduleDrawable(Drawable who, Runnable what) {
|
||||
}
|
||||
@Override
|
||||
public void scheduleDrawable(Drawable who, Runnable what, long when) {
|
||||
}
|
||||
@Override
|
||||
public void invalidateDrawable(Drawable who) {
|
||||
}
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
package android.net;
|
||||
|
||||
class Network {}
|
||||
import android.os.Handler;
|
||||
|
||||
public class ConnectivityManager {
|
||||
|
||||
|
@ -26,4 +26,11 @@ public class ConnectivityManager {
|
|||
public NetworkInfo[] getAllNetworkInfo() {
|
||||
return new NetworkInfo[] { getActiveNetworkInfo() };
|
||||
}
|
||||
|
||||
public Network getActiveNetwork() {
|
||||
return new Network();
|
||||
}
|
||||
|
||||
public void registerDefaultNetworkCallback(NetworkCallback cb, Handler hdl) {}
|
||||
|
||||
}
|
||||
|
|
8
src/api-impl/android/net/Network.java
Normal file
8
src/api-impl/android/net/Network.java
Normal file
|
@ -0,0 +1,8 @@
|
|||
package android.net;
|
||||
|
||||
public class Network {
|
||||
public long getNetworkHandle() {
|
||||
return 1L;
|
||||
}
|
||||
}
|
||||
|
|
@ -795,4 +795,8 @@ public class Environment {
|
|||
// Unable to translate to internal path; use original
|
||||
return path;
|
||||
}
|
||||
|
||||
public static boolean isExternalStorageLegacy() {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -230,6 +230,10 @@ public class Handler {
|
|||
mAsynchronous = async;
|
||||
}
|
||||
|
||||
public static Handler createAsync(Looper looper) {
|
||||
return new Handler(looper, null, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a string representing the name of the specified message.
|
||||
* The default implementation will either return the class name of the
|
||||
|
|
|
@ -830,4 +830,6 @@ public class Process {
|
|||
*/
|
||||
public boolean usingWrapper;
|
||||
}
|
||||
|
||||
public static final native boolean is64Bit();
|
||||
}
|
||||
|
|
|
@ -76,6 +76,9 @@ public final class StrictMode {
|
|||
public ThreadPolicy build() {
|
||||
return new ThreadPolicy(mask, listener, executor);
|
||||
}
|
||||
public Builder detectUnbufferedIo() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
}
|
||||
public static final class VmPolicy {
|
||||
|
|
13
src/api-impl/android/os/SystemProperties.java
Normal file
13
src/api-impl/android/os/SystemProperties.java
Normal file
|
@ -0,0 +1,13 @@
|
|||
package android.os;
|
||||
|
||||
public class SystemProperties {
|
||||
public static String get(String prop) {
|
||||
android.util.Log.i("SystemProperties", "Grabbing prop " + prop);
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean getBoolean(String prop, boolean def) {
|
||||
android.util.Log.i("SystemProperties", "Grabbing prop " + prop + ", default " + def);
|
||||
return def;
|
||||
}
|
||||
}
|
|
@ -4,4 +4,7 @@ public class UserManager {
|
|||
public boolean isUserUnlocked() {
|
||||
return true;
|
||||
}
|
||||
public static boolean supportsMultipleUsers() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
7
src/api-impl/android/os/ext/SdkExtensions.java
Normal file
7
src/api-impl/android/os/ext/SdkExtensions.java
Normal file
|
@ -0,0 +1,7 @@
|
|||
package android.os.ext;
|
||||
|
||||
public class SdkExtensions {
|
||||
public static int getExtensionVersion(int extension) {
|
||||
return 0;
|
||||
}
|
||||
}
|
6
src/api-impl/android/telecom/ConnectionService.java
Normal file
6
src/api-impl/android/telecom/ConnectionService.java
Normal file
|
@ -0,0 +1,6 @@
|
|||
package android.telecom;
|
||||
|
||||
import android.app.Service;
|
||||
|
||||
public abstract class ConnectionService extends Service {
|
||||
}
|
|
@ -2100,4 +2100,16 @@ public class View implements Drawable.Callback {
|
|||
|
||||
public int getVerticalFadingEdgeLength() {return 0;}
|
||||
public int getVerticalScrollbarWidth() {return 0;}
|
||||
|
||||
public void saveAttributeDataForStyleable(Context ctxt, int[] styleable, AttributeSet attrs, TypedArray t, int defStyleAttr, int defStyleRes) {}
|
||||
|
||||
public final View requireViewById(int id) {
|
||||
View view = findViewById(id);
|
||||
if (view == null)
|
||||
throw new IllegalArgumentException("ID does not reference a View inside this View");
|
||||
return view;
|
||||
}
|
||||
public float getTransitionAlpha() {
|
||||
return 1.0f;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -70,4 +70,8 @@ public class ViewConfiguration {
|
|||
public static int getScrollDefaultDelay() {
|
||||
return 16;
|
||||
}
|
||||
|
||||
public boolean shouldShowMenuShortcutsWhenKeyboardPresent() {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -356,4 +356,14 @@ public class TextView extends View {
|
|||
public int getLineHeight() {
|
||||
return 10; // FIXME
|
||||
}
|
||||
|
||||
public boolean isAllCaps() { return false; }
|
||||
|
||||
public int getAutoSizeStepGranularity() {
|
||||
return -1;
|
||||
}
|
||||
|
||||
public void setAutoSizeTextTypeUniformWithPresetSizes(int[] presetSizes, int unit) {}
|
||||
|
||||
public void setCompoundDrawableTintList(ColorStateList tint) {}
|
||||
}
|
||||
|
|
|
@ -30,6 +30,7 @@ srcs = [
|
|||
'android/app/DatePickerDialog.java',
|
||||
'android/app/Application.java',
|
||||
'android/app/ApplicationErrorReport.java',
|
||||
'android/app/ApplicationExitInfo.java',
|
||||
'android/app/Dialog.java',
|
||||
'android/app/DownloadManager.java',
|
||||
'android/app/Fragment.java',
|
||||
|
@ -42,6 +43,7 @@ srcs = [
|
|||
'android/app/NativeActivity.java',
|
||||
'android/app/Notification.java',
|
||||
'android/app/NotificationChannel.java',
|
||||
'android/app/NotificationChannelGroup.java',
|
||||
'android/app/NotificationManager.java',
|
||||
'android/app/PendingIntent.java',
|
||||
'android/app/ProgressDialog.java',
|
||||
|
@ -56,6 +58,7 @@ srcs = [
|
|||
'android/app/job/JobInfo.java',
|
||||
'android/app/job/JobScheduler.java',
|
||||
'android/app/job/JobService.java',
|
||||
'android/app/job/JobWorkItem.java',
|
||||
'android/app/usage/UsageStatsManager.java',
|
||||
'android/appwidget/AppWidgetManager.java',
|
||||
'android/appwidget/AppWidgetProvider.java',
|
||||
|
@ -106,6 +109,8 @@ srcs = [
|
|||
'android/content/pm/ResolveInfo.java',
|
||||
'android/content/pm/ServiceInfo.java',
|
||||
'android/content/pm/Signature.java',
|
||||
'android/content/pm/SigningInfo.java',
|
||||
'android/content/pm/ShortcutManager.java',
|
||||
'android/content/pm/VerifierInfo.java',
|
||||
'android/content/res/AssetFileDescriptor.java',
|
||||
'android/content/res/AssetManager.java',
|
||||
|
@ -209,6 +214,7 @@ srcs = [
|
|||
'android/graphics/drawable/AnimationDrawable.java',
|
||||
'android/graphics/drawable/BitmapDrawable.java',
|
||||
'android/graphics/drawable/ColorDrawable.java',
|
||||
'android/graphics/drawable/ColorStateListDrawable.java',
|
||||
'android/graphics/drawable/Drawable.java',
|
||||
'android/graphics/drawable/DrawableContainer.java',
|
||||
'android/graphics/drawable/DrawableWrapper.java',
|
||||
|
@ -261,6 +267,7 @@ srcs = [
|
|||
'android/media/session/PlaybackState.java',
|
||||
'android/media/tv/TvInputManager.java',
|
||||
'android/net/ConnectivityManager.java',
|
||||
'android/net/Network.java',
|
||||
'android/net/NetworkInfo.java',
|
||||
'android/net/NetworkRequest.java',
|
||||
'android/net/SSLCertificateSocketFactory.java',
|
||||
|
@ -320,11 +327,13 @@ srcs = [
|
|||
'android/os/StatFs.java',
|
||||
'android/os/StrictMode.java',
|
||||
'android/os/SystemClock.java',
|
||||
'android/os/SystemProperties.java',
|
||||
'android/os/Trace.java',
|
||||
'android/os/UserHandle.java',
|
||||
'android/os/UserManager.java',
|
||||
'android/os/VibrationEffect.java',
|
||||
'android/os/Vibrator.java',
|
||||
'android/os/ext/SdkExtensions.java',
|
||||
'android/os/storage/StorageManager.java',
|
||||
'android/preference/PreferenceActivity.java',
|
||||
'android/preference/PreferenceManager.java',
|
||||
|
@ -333,6 +342,7 @@ srcs = [
|
|||
'android/provider/CalendarContract.java',
|
||||
'android/provider/ContactsContract.java',
|
||||
'android/provider/Settings.java',
|
||||
'android/telecom/ConnectionService.java',
|
||||
'android/telecom/TelecomManager.java',
|
||||
'android/telephony/CellLocation.java',
|
||||
'android/telephony/PhoneNumberUtils.java',
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue