diff options
| -rw-r--r-- | apct-tests/perftests/textclassifier/Android.bp | 25 | ||||
| -rw-r--r-- | apct-tests/perftests/textclassifier/AndroidManifest.xml | 25 | ||||
| -rw-r--r-- | apct-tests/perftests/textclassifier/AndroidTest.xml | 28 | ||||
| -rwxr-xr-x | apct-tests/perftests/textclassifier/run.sh | 4 | ||||
| -rw-r--r-- | apct-tests/perftests/textclassifier/src/android/view/textclassifier/TextClassifierPerfTest.java (renamed from apct-tests/perftests/core/src/android/textclassifier/TextClassifierPerfTest.java) | 6 | ||||
| -rw-r--r-- | api/current.txt | 9 | ||||
| -rw-r--r-- | api/system-current.txt | 24 | ||||
| -rw-r--r-- | api/test-current.txt | 12 | ||||
| -rw-r--r-- | core/java/android/app/AppOpsManager.java | 13 | ||||
| -rw-r--r-- | core/java/android/content/pm/LauncherApps.java | 5 |
10 files changed, 119 insertions, 32 deletions
diff --git a/apct-tests/perftests/textclassifier/Android.bp b/apct-tests/perftests/textclassifier/Android.bp new file mode 100644 index 000000000000..49952dc1d009 --- /dev/null +++ b/apct-tests/perftests/textclassifier/Android.bp @@ -0,0 +1,25 @@ +// Copyright (C) 2019 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +android_test { + name: "TextClassifierPerfTests", + srcs: ["src/**/*.java"], + static_libs: [ + "androidx.test.rules", + "androidx.annotation_annotation", + "apct-perftests-utils", + ], + platform_apis: true, + test_suites: ["device-tests"], +} diff --git a/apct-tests/perftests/textclassifier/AndroidManifest.xml b/apct-tests/perftests/textclassifier/AndroidManifest.xml new file mode 100644 index 000000000000..7cf487f2eb7e --- /dev/null +++ b/apct-tests/perftests/textclassifier/AndroidManifest.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2018 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="com.android.perftests.textclassifier"> + + <application> + <uses-library android:name="android.test.runner" /> + </application> + + <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner" + android:targetPackage="com.android.perftests.textclassifier"/> +</manifest> diff --git a/apct-tests/perftests/textclassifier/AndroidTest.xml b/apct-tests/perftests/textclassifier/AndroidTest.xml new file mode 100644 index 000000000000..29f9f94bcac7 --- /dev/null +++ b/apct-tests/perftests/textclassifier/AndroidTest.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2018 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<configuration description="Runs AutofillPerfTests metric instrumentation."> + <option name="test-suite-tag" value="apct" /> + <option name="test-suite-tag" value="apct-metric-instrumentation" /> + <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller"> + <option name="cleanup-apks" value="true" /> + <option name="test-file-name" value="AutofillPerfTests.apk" /> + </target_preparer> + + <test class="com.android.tradefed.testtype.AndroidJUnitTest" > + <option name="package" value="com.android.perftests.autofill" /> + <option name="hidden-api-checks" value="false"/> + </test> +</configuration> diff --git a/apct-tests/perftests/textclassifier/run.sh b/apct-tests/perftests/textclassifier/run.sh new file mode 100755 index 000000000000..c6782d1a72f2 --- /dev/null +++ b/apct-tests/perftests/textclassifier/run.sh @@ -0,0 +1,4 @@ +set -e +make TextClassifierPerfTests +adb shell cmd package compile -m speed -f com.android.perftests.textclassifier +adb shell am instrument -w -e class android.view.textclassifier.TextClassifierPerfTest com.android.perftests.textclassifier/androidx.test.runner.AndroidJUnitRunner diff --git a/apct-tests/perftests/core/src/android/textclassifier/TextClassifierPerfTest.java b/apct-tests/perftests/textclassifier/src/android/view/textclassifier/TextClassifierPerfTest.java index c5d89b234209..14a121d60c2e 100644 --- a/apct-tests/perftests/core/src/android/textclassifier/TextClassifierPerfTest.java +++ b/apct-tests/perftests/textclassifier/src/android/view/textclassifier/TextClassifierPerfTest.java @@ -13,15 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package android.textclassifier; +package android.view.textclassifier; import android.content.Context; import android.perftests.utils.BenchmarkState; import android.perftests.utils.PerfStatusReporter; -import android.view.textclassifier.ConversationActions; -import android.view.textclassifier.TextClassificationManager; -import android.view.textclassifier.TextClassifier; -import android.view.textclassifier.TextLanguage; import androidx.test.InstrumentationRegistry; import androidx.test.filters.LargeTest; diff --git a/api/current.txt b/api/current.txt index 7c08bb958b08..081792d23b70 100644 --- a/api/current.txt +++ b/api/current.txt @@ -11252,7 +11252,6 @@ package android.content.pm { public class LauncherApps { method public java.util.List<android.content.pm.LauncherActivityInfo> getActivityList(String, android.os.UserHandle); method @NonNull public java.util.List<android.content.pm.PackageInstaller.SessionInfo> getAllPackageInstallerSessions(); - method @Nullable public android.content.pm.LauncherApps.AppUsageLimit getAppUsageLimit(@NonNull String, @NonNull android.os.UserHandle); method public android.content.pm.ApplicationInfo getApplicationInfo(@NonNull String, int, @NonNull android.os.UserHandle) throws android.content.pm.PackageManager.NameNotFoundException; method public android.content.pm.LauncherApps.PinItemRequest getPinItemRequest(android.content.Intent); method public java.util.List<android.os.UserHandle> getProfiles(); @@ -11283,14 +11282,6 @@ package android.content.pm { field public static final String EXTRA_PIN_ITEM_REQUEST = "android.content.pm.extra.PIN_ITEM_REQUEST"; } - public static final class LauncherApps.AppUsageLimit implements android.os.Parcelable { - method public int describeContents(); - method public long getTotalUsageLimit(); - method public long getUsageRemaining(); - method public void writeToParcel(android.os.Parcel, int); - field @NonNull public static final android.os.Parcelable.Creator<android.content.pm.LauncherApps.AppUsageLimit> CREATOR; - } - public abstract static class LauncherApps.Callback { ctor public LauncherApps.Callback(); method public abstract void onPackageAdded(String, android.os.UserHandle); diff --git a/api/system-current.txt b/api/system-current.txt index d31757cf784b..8e3091244881 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -405,9 +405,9 @@ package android.app { method public int describeContents(); method public long getBeginTimeMillis(); method public long getEndTimeMillis(); - method public int getUidCount(); + method @IntRange(from=0) public int getUidCount(); method @Nullable public android.app.AppOpsManager.HistoricalUidOps getUidOps(int); - method @NonNull public android.app.AppOpsManager.HistoricalUidOps getUidOpsAt(int); + method @NonNull public android.app.AppOpsManager.HistoricalUidOps getUidOpsAt(@IntRange(from=0) int); method public void writeToParcel(android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.app.AppOpsManager.HistoricalOps> CREATOR; } @@ -427,8 +427,8 @@ package android.app { public static final class AppOpsManager.HistoricalPackageOps implements android.os.Parcelable { method public int describeContents(); method @Nullable public android.app.AppOpsManager.HistoricalOp getOp(@NonNull String); - method @NonNull public android.app.AppOpsManager.HistoricalOp getOpAt(int); - method public int getOpCount(); + method @NonNull public android.app.AppOpsManager.HistoricalOp getOpAt(@IntRange(from=0) int); + method @IntRange(from=0) public int getOpCount(); method @NonNull public String getPackageName(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.app.AppOpsManager.HistoricalPackageOps> CREATOR; @@ -436,9 +436,9 @@ package android.app { public static final class AppOpsManager.HistoricalUidOps implements android.os.Parcelable { method public int describeContents(); - method public int getPackageCount(); + method @IntRange(from=0) public int getPackageCount(); method @Nullable public android.app.AppOpsManager.HistoricalPackageOps getPackageOps(@NonNull String); - method @NonNull public android.app.AppOpsManager.HistoricalPackageOps getPackageOpsAt(int); + method @NonNull public android.app.AppOpsManager.HistoricalPackageOps getPackageOpsAt(@IntRange(from=0) int); method public int getUid(); method public void writeToParcel(android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.app.AppOpsManager.HistoricalUidOps> CREATOR; @@ -1550,6 +1550,18 @@ package android.content.pm { field @NonNull public static final android.os.Parcelable.Creator<android.content.pm.IntentFilterVerificationInfo> CREATOR; } + public class LauncherApps { + method @Nullable public android.content.pm.LauncherApps.AppUsageLimit getAppUsageLimit(@NonNull String, @NonNull android.os.UserHandle); + } + + public static final class LauncherApps.AppUsageLimit implements android.os.Parcelable { + method public int describeContents(); + method public long getTotalUsageLimit(); + method public long getUsageRemaining(); + method public void writeToParcel(android.os.Parcel, int); + field @NonNull public static final android.os.Parcelable.Creator<android.content.pm.LauncherApps.AppUsageLimit> CREATOR; + } + public class PackageInstaller { method @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public void setPermissionsResult(int, boolean); } diff --git a/api/test-current.txt b/api/test-current.txt index 84e641e0145e..b95fbc88df70 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -238,9 +238,9 @@ package android.app { method public int describeContents(); method public long getBeginTimeMillis(); method public long getEndTimeMillis(); - method public int getUidCount(); + method @IntRange(from=0) public int getUidCount(); method @Nullable public android.app.AppOpsManager.HistoricalUidOps getUidOps(int); - method @NonNull public android.app.AppOpsManager.HistoricalUidOps getUidOpsAt(int); + method @NonNull public android.app.AppOpsManager.HistoricalUidOps getUidOpsAt(@IntRange(from=0) int); method public void increaseAccessCount(int, int, @NonNull String, int, int, long); method public void increaseAccessDuration(int, int, @NonNull String, int, int, long); method public void increaseRejectCount(int, int, @NonNull String, int, int, long); @@ -264,8 +264,8 @@ package android.app { public static final class AppOpsManager.HistoricalPackageOps implements android.os.Parcelable { method public int describeContents(); method @Nullable public android.app.AppOpsManager.HistoricalOp getOp(@NonNull String); - method @NonNull public android.app.AppOpsManager.HistoricalOp getOpAt(int); - method public int getOpCount(); + method @NonNull public android.app.AppOpsManager.HistoricalOp getOpAt(@IntRange(from=0) int); + method @IntRange(from=0) public int getOpCount(); method @NonNull public String getPackageName(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.app.AppOpsManager.HistoricalPackageOps> CREATOR; @@ -273,9 +273,9 @@ package android.app { public static final class AppOpsManager.HistoricalUidOps implements android.os.Parcelable { method public int describeContents(); - method public int getPackageCount(); + method @IntRange(from=0) public int getPackageCount(); method @Nullable public android.app.AppOpsManager.HistoricalPackageOps getPackageOps(@NonNull String); - method @NonNull public android.app.AppOpsManager.HistoricalPackageOps getPackageOpsAt(int); + method @NonNull public android.app.AppOpsManager.HistoricalPackageOps getPackageOpsAt(@IntRange(from=0) int); method public int getUid(); method public void writeToParcel(android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.app.AppOpsManager.HistoricalUidOps> CREATOR; diff --git a/core/java/android/app/AppOpsManager.java b/core/java/android/app/AppOpsManager.java index 5ed4428b729b..a55084bb421a 100644 --- a/core/java/android/app/AppOpsManager.java +++ b/core/java/android/app/AppOpsManager.java @@ -18,6 +18,7 @@ package android.app; import android.Manifest; import android.annotation.IntDef; +import android.annotation.IntRange; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.RequiresPermission; @@ -3114,7 +3115,7 @@ public class AppOpsManager { * * @see #getUidOpsAt(int) */ - public int getUidCount() { + public @IntRange(from = 0) int getUidCount() { if (mHistoricalUidOps == null) { return 0; } @@ -3130,7 +3131,7 @@ public class AppOpsManager { * * @see #getUidCount() */ - public @NonNull HistoricalUidOps getUidOpsAt(int index) { + public @NonNull HistoricalUidOps getUidOpsAt(@IntRange(from = 0) int index) { if (mHistoricalUidOps == null) { throw new IndexOutOfBoundsException(); } @@ -3391,7 +3392,7 @@ public class AppOpsManager { * * @see #getPackageOpsAt(int) */ - public int getPackageCount() { + public @IntRange(from = 0) int getPackageCount() { if (mHistoricalPackageOps == null) { return 0; } @@ -3407,7 +3408,7 @@ public class AppOpsManager { * * @see #getPackageCount() */ - public @NonNull HistoricalPackageOps getPackageOpsAt(int index) { + public @NonNull HistoricalPackageOps getPackageOpsAt(@IntRange(from = 0) int index) { if (mHistoricalPackageOps == null) { throw new IndexOutOfBoundsException(); } @@ -3626,7 +3627,7 @@ public class AppOpsManager { * @return The number historical app ops. * @see #getOpAt(int) */ - public int getOpCount() { + public @IntRange(from = 0) int getOpCount() { if (mHistoricalOps == null) { return 0; } @@ -3640,7 +3641,7 @@ public class AppOpsManager { * @return The op at the given index. * @see #getOpCount() */ - public @NonNull HistoricalOp getOpAt(int index) { + public @NonNull HistoricalOp getOpAt(@IntRange(from = 0) int index) { if (mHistoricalOps == null) { throw new IndexOutOfBoundsException(); } diff --git a/core/java/android/content/pm/LauncherApps.java b/core/java/android/content/pm/LauncherApps.java index 954deac97d6d..037a149bfe37 100644 --- a/core/java/android/content/pm/LauncherApps.java +++ b/core/java/android/content/pm/LauncherApps.java @@ -22,6 +22,7 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SdkConstant; import android.annotation.SdkConstant.SdkConstantType; +import android.annotation.SystemApi; import android.annotation.SystemService; import android.annotation.TestApi; import android.annotation.UnsupportedAppUsage; @@ -782,8 +783,10 @@ public class LauncherApps { * @return an {@link AppUsageLimit} object describing the app time limit containing * the given package with the smallest time remaining, or {@code null} if none exist. * @throws SecurityException when the caller is not the recents app. + * @hide */ @Nullable + @SystemApi public LauncherApps.AppUsageLimit getAppUsageLimit(@NonNull String packageName, @NonNull UserHandle user) { try { @@ -1739,7 +1742,9 @@ public class LauncherApps { * in this class. * * @see #getAppUsageLimit(String, UserHandle) + * @hide */ + @SystemApi public static final class AppUsageLimit implements Parcelable { private final long mTotalUsageLimit; private final long mUsageRemaining; |