diff options
author | Wale Ogunwale <ogunwale@google.com> | 2019-02-11 03:09:10 -0800 |
---|---|---|
committer | Wale Ogunwale <ogunwale@google.com> | 2019-02-21 20:15:56 -0800 |
commit | 691af68a3c07f0cd5371528cc4ca094f8fa8f505 (patch) | |
tree | 3f953a177acda48551df8859c87f77f5e638d805 | |
parent | f4ac4e7fb1cb13f9c7ef7e683ce3455d99ed028c (diff) |
Added some TestApi that are already used by CTS
Allows us to remove the use of private platform API from CTS.
Bug: 124134247
Test: builds
Change-Id: Iceb81ff7c9385e877d2612fbb7b506245d116928
-rw-r--r-- | api/test-current.txt | 90 | ||||
-rw-r--r-- | config/hiddenapi-greylist.txt | 1 | ||||
-rw-r--r-- | core/java/android/app/ActivityManager.java | 8 | ||||
-rw-r--r-- | core/java/android/app/ActivityView.java | 11 | ||||
-rw-r--r-- | core/java/android/app/ContextImpl.java | 3 | ||||
-rw-r--r-- | core/java/android/content/Context.java | 3 | ||||
-rw-r--r-- | core/java/android/content/ContextWrapper.java | 6 | ||||
-rw-r--r-- | core/java/android/metrics/LogMaker.java | 2 | ||||
-rw-r--r-- | core/java/android/metrics/MetricsReader.java | 2 | ||||
-rwxr-xr-x | core/java/android/os/Build.java | 1 | ||||
-rw-r--r-- | core/java/android/provider/Settings.java | 2 | ||||
-rw-r--r-- | core/java/android/util/TimeUtils.java | 2 | ||||
-rw-r--r-- | core/java/android/view/Display.java | 2 | ||||
-rw-r--r-- | core/res/res/values/public.xml | 2 | ||||
-rw-r--r-- | proto/Android.bp | 1 | ||||
-rw-r--r-- | test-mock/api/test-current.txt | 4 |
16 files changed, 126 insertions, 14 deletions
diff --git a/api/test-current.txt b/api/test-current.txt index 1981d6802bcf..ba497d476ed9 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -17,6 +17,10 @@ package android { field public static final String WRITE_OBB = "android.permission.WRITE_OBB"; } + public static final class R.bool { + field public static final int config_perDisplayFocusEnabled = 17891332; // 0x1110004 + } + public static final class R.string { field public static final int config_defaultAssistant = 17039393; // 0x1040021 field public static final int config_defaultDialer = 17039395; // 0x1040023 @@ -48,6 +52,7 @@ package android.app { method public long getTotalRam(); method @RequiresPermission(android.Manifest.permission.PACKAGE_USAGE_STATS) public int getUidImportance(int); method @RequiresPermission(android.Manifest.permission.PACKAGE_USAGE_STATS) public void removeOnUidImportanceListener(android.app.ActivityManager.OnUidImportanceListener); + method public static void resumeAppSwitches() throws android.os.RemoteException; method @RequiresPermission(android.Manifest.permission.CHANGE_CONFIGURATION) public void scheduleApplicationInfoChanged(java.util.List<java.lang.String>, int); } @@ -94,6 +99,31 @@ package android.app { field public static final int SPLIT_SCREEN_CREATE_MODE_TOP_OR_LEFT = 0; // 0x0 } + public class ActivityView extends android.view.ViewGroup { + ctor public ActivityView(android.content.Context); + ctor public ActivityView(android.content.Context, android.util.AttributeSet); + ctor public ActivityView(android.content.Context, android.util.AttributeSet, int); + ctor public ActivityView(android.content.Context, android.util.AttributeSet, int, boolean); + method public void onLayout(boolean, int, int, int, int); + method public void onLocationChanged(); + method public void performBackPress(); + method public void release(); + method public void setCallback(android.app.ActivityView.StateCallback); + method public void setForwardedInsets(android.graphics.Insets); + method public void startActivity(@NonNull android.content.Intent); + method public void startActivity(@NonNull android.content.Intent, android.os.UserHandle); + method public void startActivity(@NonNull android.app.PendingIntent); + } + + public abstract static class ActivityView.StateCallback { + ctor public ActivityView.StateCallback(); + method public abstract void onActivityViewDestroyed(android.app.ActivityView); + method public abstract void onActivityViewReady(android.app.ActivityView); + method public void onTaskCreated(int, android.content.ComponentName); + method public void onTaskMovedToFront(int); + method public void onTaskRemovalStarted(int); + } + public class AppDetailsActivity extends android.app.Activity { ctor public AppDetailsActivity(); } @@ -518,12 +548,17 @@ package android.content { public abstract class Context { method public android.content.Context createPackageContextAsUser(String, int, android.os.UserHandle) throws android.content.pm.PackageManager.NameNotFoundException; + method public abstract android.view.Display getDisplay(); method public android.os.UserHandle getUser(); method public int getUserId(); method public void setAutofillOptions(@Nullable android.content.AutofillOptions); method public void setContentCaptureOptions(@Nullable android.content.ContentCaptureOptions); } + public class ContextWrapper extends android.content.Context { + method public android.view.Display getDisplay(); + } + } package android.content.pm { @@ -969,6 +1004,50 @@ package android.media.audiofx { } +package android.metrics { + + public class LogMaker { + ctor public LogMaker(int); + ctor public LogMaker(Object[]); + method public android.metrics.LogMaker addTaggedData(int, Object); + method public android.metrics.LogMaker clearCategory(); + method public android.metrics.LogMaker clearPackageName(); + method public android.metrics.LogMaker clearSubtype(); + method public android.metrics.LogMaker clearTaggedData(int); + method public android.metrics.LogMaker clearType(); + method public void deserialize(Object[]); + method public int getCategory(); + method public long getCounterBucket(); + method public String getCounterName(); + method public int getCounterValue(); + method public String getPackageName(); + method public int getProcessId(); + method public int getSubtype(); + method public Object getTaggedData(int); + method public long getTimestamp(); + method public int getType(); + method public int getUid(); + method public boolean isLongCounterBucket(); + method public boolean isSubsetOf(android.metrics.LogMaker); + method public boolean isValidValue(Object); + method public Object[] serialize(); + method public android.metrics.LogMaker setCategory(int); + method public android.metrics.LogMaker setPackageName(String); + method public android.metrics.LogMaker setSubtype(int); + method public android.metrics.LogMaker setType(int); + } + + public class MetricsReader { + ctor public MetricsReader(); + method public void checkpoint(); + method public boolean hasNext(); + method public android.metrics.LogMaker next(); + method public void read(long); + method public void reset(); + } + +} + package android.net { public class CaptivePortal implements android.os.Parcelable { @@ -1313,6 +1392,7 @@ package android.os { public class Build { method public static boolean is64BitAbi(String); + field public static final boolean IS_EMULATOR; } public static class Build.VERSION { @@ -1893,6 +1973,7 @@ package android.provider { field public static final String LOCATION_GLOBAL_KILL_SWITCH = "location_global_kill_switch"; field public static final String LOW_POWER_MODE = "low_power"; field public static final String LOW_POWER_MODE_STICKY = "low_power_sticky"; + field public static final String OVERLAY_DISPLAY_DEVICES = "overlay_display_devices"; field public static final String SMS_ACCESS_RESTRICTION_ENABLED = "sms_access_restriction_enabled"; field public static final String USE_OPEN_WIFI_PACKAGE = "use_open_wifi_package"; } @@ -1911,6 +1992,7 @@ package android.provider { field public static final String CONTENT_CAPTURE_ENABLED = "content_capture_enabled"; field public static final String DISABLED_PRINT_SERVICES = "disabled_print_services"; field @Deprecated public static final String ENABLED_NOTIFICATION_POLICY_ACCESS_PACKAGES = "enabled_notification_policy_access_packages"; + field public static final String ENABLED_VR_LISTENERS = "enabled_vr_listeners"; field public static final String LOCATION_ACCESS_CHECK_DELAY_MILLIS = "location_access_check_delay_millis"; field public static final String LOCATION_ACCESS_CHECK_INTERVAL_MILLIS = "location_access_check_interval_millis"; field public static final String NOTIFICATION_BADGING = "notification_badging"; @@ -2391,6 +2473,10 @@ package android.util { method public E valueAtUnchecked(int); } + public class TimeUtils { + method public static String formatDuration(long); + } + } package android.util.proto { @@ -2612,6 +2698,10 @@ package android.view { field public static final int CALLBACK_ANIMATION = 1; // 0x1 } + public final class Display { + method public boolean supportsSystemDecorations(); + } + public class FocusFinder { method public static void sort(android.view.View[], int, int, android.view.ViewGroup, boolean); } diff --git a/config/hiddenapi-greylist.txt b/config/hiddenapi-greylist.txt index 7f7972a5ce1d..2abb6317702f 100644 --- a/config/hiddenapi-greylist.txt +++ b/config/hiddenapi-greylist.txt @@ -688,7 +688,6 @@ Landroid/os/Build$VERSION;->ACTIVE_CODENAMES:[Ljava/lang/String; Landroid/os/Build;->getLong(Ljava/lang/String;)J Landroid/os/Build;->getString(Ljava/lang/String;)Ljava/lang/String; Landroid/os/Build;->IS_DEBUGGABLE:Z -Landroid/os/Build;->IS_EMULATOR:Z Landroid/os/Bundle;->filterValues()Landroid/os/Bundle; Landroid/os/Bundle;->forPair(Ljava/lang/String;Ljava/lang/String;)Landroid/os/Bundle; Landroid/os/Bundle;->getIBinder(Ljava/lang/String;)Landroid/os/IBinder; diff --git a/core/java/android/app/ActivityManager.java b/core/java/android/app/ActivityManager.java index 5d4f988c3630..ee7288ffd52c 100644 --- a/core/java/android/app/ActivityManager.java +++ b/core/java/android/app/ActivityManager.java @@ -3925,6 +3925,14 @@ public class ActivityManager { /** * @hide */ + @TestApi + public static void resumeAppSwitches() throws RemoteException { + getService().resumeAppSwitches(); + } + + /** + * @hide + */ public static void noteWakeupAlarm(PendingIntent ps, WorkSource workSource, int sourceUid, String sourcePkg, String tag) { try { diff --git a/core/java/android/app/ActivityView.java b/core/java/android/app/ActivityView.java index a4b763dbfa9c..2ef085690f8f 100644 --- a/core/java/android/app/ActivityView.java +++ b/core/java/android/app/ActivityView.java @@ -21,7 +21,7 @@ import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_C import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_PUBLIC; import android.annotation.NonNull; -import android.annotation.UnsupportedAppUsage; +import android.annotation.TestApi; import android.app.ActivityManager.StackInfo; import android.content.ComponentName; import android.content.Context; @@ -59,6 +59,7 @@ import java.util.List; * on VirtualDisplays. * @hide */ +@TestApi public class ActivityView extends ViewGroup { private static final String DISPLAY_NAME = "ActivityViewVirtualDisplay"; @@ -92,7 +93,6 @@ public class ActivityView extends ViewGroup { private Insets mForwardedInsets; - @UnsupportedAppUsage public ActivityView(Context context) { this(context, null /* attrs */); } @@ -151,7 +151,7 @@ public class ActivityView extends ViewGroup { * Called when a task is moved to the front of the stack inside the container. * This is a filtered version of {@link TaskStackListener} */ - public void onTaskMovedToFront(ActivityManager.StackInfo stackInfo) { } + public void onTaskMovedToFront(int taskId) { } /** * Called when a task is about to be removed from the stack inside the container. @@ -195,7 +195,6 @@ public class ActivityView extends ViewGroup { * @see StateCallback * @see #startActivity(PendingIntent) */ - @UnsupportedAppUsage public void startActivity(@NonNull Intent intent) { final ActivityOptions options = prepareActivityOptions(); getContext().startActivity(intent, options.toBundle()); @@ -238,7 +237,6 @@ public class ActivityView extends ViewGroup { * @see StateCallback * @see #startActivity(Intent) */ - @UnsupportedAppUsage public void startActivity(@NonNull PendingIntent pendingIntent) { final ActivityOptions options = prepareActivityOptions(); try { @@ -272,7 +270,6 @@ public class ActivityView extends ViewGroup { * * @see StateCallback */ - @UnsupportedAppUsage public void release() { if (mVirtualDisplay == null) { throw new IllegalStateException( @@ -556,7 +553,7 @@ public class ActivityView extends ViewGroup { // notifying the callback if (stackInfo != null && taskInfo.taskId == stackInfo.taskIds[stackInfo.taskIds.length - 1]) { - mActivityViewCallback.onTaskMovedToFront(stackInfo); + mActivityViewCallback.onTaskMovedToFront(taskInfo.taskId); } } diff --git a/core/java/android/app/ContextImpl.java b/core/java/android/app/ContextImpl.java index b792ad2a745c..b607f9adebbe 100644 --- a/core/java/android/app/ContextImpl.java +++ b/core/java/android/app/ContextImpl.java @@ -19,6 +19,7 @@ package android.app; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; +import android.annotation.TestApi; import android.annotation.UnsupportedAppUsage; import android.content.AutofillOptions; import android.content.BroadcastReceiver; @@ -2283,8 +2284,8 @@ class ContextImpl extends Context { return (mFlags & Context.CONTEXT_IGNORE_SECURITY) != 0; } + @TestApi @Override - @UnsupportedAppUsage public Display getDisplay() { if (mDisplay == null) { return mResourcesManager.getAdjustedDisplay(Display.DEFAULT_DISPLAY, diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java index 1f3a000cea4b..29added9aa51 100644 --- a/core/java/android/content/Context.java +++ b/core/java/android/content/Context.java @@ -5241,9 +5241,10 @@ public abstract class Context { public abstract DisplayAdjustments getDisplayAdjustments(int displayId); /** + * @return Returns the {@link Display} object this context is associated with. * @hide */ - @UnsupportedAppUsage + @TestApi public abstract Display getDisplay(); /** diff --git a/core/java/android/content/ContextWrapper.java b/core/java/android/content/ContextWrapper.java index fac3266e9bf8..40559d31d631 100644 --- a/core/java/android/content/ContextWrapper.java +++ b/core/java/android/content/ContextWrapper.java @@ -919,11 +919,9 @@ public class ContextWrapper extends Context { return mBase.getDisplayAdjustments(displayId); } - /** - * @hide - */ + /** @hide */ + @TestApi @Override - @UnsupportedAppUsage public Display getDisplay() { return mBase.getDisplay(); } diff --git a/core/java/android/metrics/LogMaker.java b/core/java/android/metrics/LogMaker.java index 19848ee6d415..5496e17206d9 100644 --- a/core/java/android/metrics/LogMaker.java +++ b/core/java/android/metrics/LogMaker.java @@ -16,6 +16,7 @@ package android.metrics; import android.annotation.SystemApi; +import android.annotation.TestApi; import android.content.ComponentName; import android.util.Log; import android.util.SparseArray; @@ -31,6 +32,7 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent; * @hide */ @SystemApi +@TestApi public class LogMaker { private static final String TAG = "LogBuilder"; diff --git a/core/java/android/metrics/MetricsReader.java b/core/java/android/metrics/MetricsReader.java index 5f356ca00d88..27f9a5dbf51c 100644 --- a/core/java/android/metrics/MetricsReader.java +++ b/core/java/android/metrics/MetricsReader.java @@ -16,6 +16,7 @@ package android.metrics; import android.annotation.SystemApi; +import android.annotation.TestApi; import android.util.EventLog; import com.android.internal.annotations.VisibleForTesting; @@ -35,6 +36,7 @@ import java.util.concurrent.TimeUnit; * @hide */ @SystemApi +@TestApi public class MetricsReader { private Queue<LogMaker> mPendingQueue = new LinkedList<>(); private Queue<LogMaker> mSeenQueue = new LinkedList<>(); diff --git a/core/java/android/os/Build.java b/core/java/android/os/Build.java index 83a7654d494b..0425c6234a04 100755 --- a/core/java/android/os/Build.java +++ b/core/java/android/os/Build.java @@ -107,6 +107,7 @@ public class Build { * Whether this build was for an emulator device. * @hide */ + @TestApi public static final boolean IS_EMULATOR = getString("ro.kernel.qemu").equals("1"); /** diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 77e896e60170..15306260dcba 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -8131,6 +8131,7 @@ public final class Settings { * * @hide */ + @TestApi public static final String ENABLED_VR_LISTENERS = "enabled_vr_listeners"; private static final Validator ENABLED_VR_LISTENERS_VALIDATOR = @@ -10780,6 +10781,7 @@ public final class Settings { * * @hide */ + @TestApi public static final String OVERLAY_DISPLAY_DEVICES = "overlay_display_devices"; /** diff --git a/core/java/android/util/TimeUtils.java b/core/java/android/util/TimeUtils.java index e4c8eeb3b9b0..f8b38e9d215d 100644 --- a/core/java/android/util/TimeUtils.java +++ b/core/java/android/util/TimeUtils.java @@ -18,6 +18,7 @@ package android.util; import android.annotation.NonNull; import android.annotation.Nullable; +import android.annotation.TestApi; import android.annotation.UnsupportedAppUsage; import android.os.Build; import android.os.SystemClock; @@ -302,6 +303,7 @@ public class TimeUtils { } /** @hide Just for debugging; not internationalized. */ + @TestApi public static String formatDuration(long duration) { synchronized (sFormatSync) { int len = formatDurationLocked(duration, 0); diff --git a/core/java/android/view/Display.java b/core/java/android/view/Display.java index cb5100a4d57a..94a9a1c0ff30 100644 --- a/core/java/android/view/Display.java +++ b/core/java/android/view/Display.java @@ -21,6 +21,7 @@ import static android.Manifest.permission.CONFIGURE_DISPLAY_COLOR_MODE; import android.annotation.IntDef; import android.annotation.Nullable; import android.annotation.RequiresPermission; +import android.annotation.TestApi; import android.annotation.UnsupportedAppUsage; import android.app.KeyguardManager; import android.content.res.CompatibilityInfo; @@ -911,6 +912,7 @@ public final class Display { * @see #FLAG_SHOULD_SHOW_SYSTEM_DECORATIONS * @hide */ + @TestApi // TODO (b/114338689): Remove the method and use IWindowManager#shouldShowSystemDecors public boolean supportsSystemDecorations() { return (mDisplayInfo.flags & FLAG_SHOULD_SHOW_SYSTEM_DECORATIONS) != 0; diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml index e1ce2f69ba70..5a3c536b0042 100644 --- a/core/res/res/values/public.xml +++ b/core/res/res/values/public.xml @@ -2998,6 +2998,8 @@ <public name="config_showDefaultEmergency" /> <!-- @hide @SystemApi --> <public name="config_showDefaultHome" /> + <!-- @hide @TestApi --> + <public name="config_perDisplayFocusEnabled" /> </public-group> <public-group type="dimen" first-id="0x01050007"> diff --git a/proto/Android.bp b/proto/Android.bp index 817a54d93268..7f826b3a9a6f 100644 --- a/proto/Android.bp +++ b/proto/Android.bp @@ -6,6 +6,7 @@ java_library_static { }, srcs: ["src/**/*.proto"], no_framework_libs: true, + sdk_version: "9", // Pin java_version until jarjar is certified to support later versions. http://b/72703434 java_version: "1.8", target: { diff --git a/test-mock/api/test-current.txt b/test-mock/api/test-current.txt index 0cb8f22d8070..6765316a304b 100644 --- a/test-mock/api/test-current.txt +++ b/test-mock/api/test-current.txt @@ -1,6 +1,10 @@ // Signature format: 2.0 package android.test.mock { + public class MockContext extends android.content.Context { + method public android.view.Display getDisplay(); + } + @Deprecated public class MockPackageManager extends android.content.pm.PackageManager { method public boolean arePermissionsIndividuallyControlled(); method public String getDefaultBrowserPackageNameAsUser(int); |