Updated DisplayHash APIs
Updated the DisplayHash APIs and docs based on API review
Test: Builds
Bug: 183547053
Bug: 185274179
Change-Id: I23e6491341a3f9cac96c704aa0a93d7d3e8dfebb
diff --git a/core/api/current.txt b/core/api/current.txt
index 4b12d54..07dacd7 100644
--- a/core/api/current.txt
+++ b/core/api/current.txt
@@ -48567,7 +48567,7 @@
method public android.view.View focusSearch(int);
method public void forceHasOverlappingRendering(boolean);
method public void forceLayout();
- method @Nullable public void generateDisplayHash(@NonNull String, @Nullable android.graphics.Rect, @NonNull java.util.concurrent.Executor, @NonNull android.view.displayhash.DisplayHashResultCallback);
+ method public void generateDisplayHash(@NonNull String, @Nullable android.graphics.Rect, @NonNull java.util.concurrent.Executor, @NonNull android.view.displayhash.DisplayHashResultCallback);
method public static int generateViewId();
method public CharSequence getAccessibilityClassName();
method public android.view.View.AccessibilityDelegate getAccessibilityDelegate();
diff --git a/core/api/system-current.txt b/core/api/system-current.txt
index 37bc44f..847a5c4 100644
--- a/core/api/system-current.txt
+++ b/core/api/system-current.txt
@@ -40,6 +40,7 @@
field public static final String BIND_CONTENT_CAPTURE_SERVICE = "android.permission.BIND_CONTENT_CAPTURE_SERVICE";
field public static final String BIND_CONTENT_SUGGESTIONS_SERVICE = "android.permission.BIND_CONTENT_SUGGESTIONS_SERVICE";
field public static final String BIND_DIRECTORY_SEARCH = "android.permission.BIND_DIRECTORY_SEARCH";
+ field public static final String BIND_DISPLAY_HASHING_SERVICE = "android.permission.BIND_DISPLAY_HASHING_SERVICE";
field public static final String BIND_DOMAIN_VERIFICATION_AGENT = "android.permission.BIND_DOMAIN_VERIFICATION_AGENT";
field public static final String BIND_EUICC_SERVICE = "android.permission.BIND_EUICC_SERVICE";
field public static final String BIND_EXTERNAL_STORAGE_SERVICE = "android.permission.BIND_EXTERNAL_STORAGE_SERVICE";
@@ -9822,7 +9823,7 @@
public final class DisplayHashParams implements android.os.Parcelable {
method public int describeContents();
method @Nullable public android.util.Size getBufferSize();
- method public boolean isGrayscaleBuffer();
+ method public boolean isUseGrayscale();
method public void writeToParcel(@NonNull android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.service.displayhash.DisplayHashParams> CREATOR;
}
@@ -9831,17 +9832,17 @@
ctor public DisplayHashParams.Builder();
method @NonNull public android.service.displayhash.DisplayHashParams build();
method @NonNull public android.service.displayhash.DisplayHashParams.Builder setBufferSize(int, int);
- method @NonNull public android.service.displayhash.DisplayHashParams.Builder setGrayscaleBuffer(boolean);
+ method @NonNull public android.service.displayhash.DisplayHashParams.Builder setUseGrayscale(boolean);
}
- public abstract class DisplayHasherService extends android.app.Service {
- ctor public DisplayHasherService();
+ public abstract class DisplayHashingService extends android.app.Service {
+ ctor public DisplayHashingService();
method @NonNull public final android.os.IBinder onBind(@NonNull android.content.Intent);
- method @Nullable public abstract void onGenerateDisplayHash(@NonNull byte[], @NonNull android.hardware.HardwareBuffer, @NonNull android.graphics.Rect, @NonNull String, @NonNull android.view.displayhash.DisplayHashResultCallback);
+ method public abstract void onGenerateDisplayHash(@NonNull byte[], @NonNull android.hardware.HardwareBuffer, @NonNull android.graphics.Rect, @NonNull String, @NonNull android.view.displayhash.DisplayHashResultCallback);
method @NonNull public abstract java.util.Map<java.lang.String,android.service.displayhash.DisplayHashParams> onGetDisplayHashAlgorithms();
method @Nullable public abstract android.view.displayhash.VerifiedDisplayHash onVerifyDisplayHash(@NonNull byte[], @NonNull android.view.displayhash.DisplayHash);
- field public static final String SERVICE_INTERFACE = "android.service.displayhash.DisplayHasherService";
- field public static final String SERVICE_META_DATA = "android.displayhash.display_hasher_service";
+ field public static final String SERVICE_INTERFACE = "android.service.displayhash.DisplayHashingService";
+ field public static final String SERVICE_META_DATA = "android.displayhash.display_hashing_service";
}
}
diff --git a/core/java/android/service/displayhash/DisplayHashParams.java b/core/java/android/service/displayhash/DisplayHashParams.java
index fcce91a..2ec9d5d 100644
--- a/core/java/android/service/displayhash/DisplayHashParams.java
+++ b/core/java/android/service/displayhash/DisplayHashParams.java
@@ -28,7 +28,7 @@
import com.android.internal.util.DataClass;
/**
- * Information passed from the {@link DisplayHasherService} to system server about how to get the
+ * Information passed from the {@link DisplayHashingService} to system server about how to get the
* display data that will be used to generate the {@link android.view.displayhash.DisplayHash}
*
* @hide
@@ -38,9 +38,9 @@
public final class DisplayHashParams implements Parcelable {
/**
* The size to scale the buffer to so the hash algorithm can properly generate the hash. The
- * buffer given to the {@link DisplayHasherService#onGenerateDisplayHash(byte[], HardwareBuffer,
- * Rect, String, DisplayHashResultCallback)} will be stretched based on the value set here.
- * If {@code null}, the buffer size will not be changed.
+ * buffer given to the {@link DisplayHashingService#onGenerateDisplayHash(byte[],
+ * HardwareBuffer, Rect, String, DisplayHashResultCallback)} will be stretched based on the
+ * value set here. If {@code null}, the buffer size will not be changed.
*/
@Nullable
private final Size mBufferSize;
@@ -48,7 +48,7 @@
/**
* Whether the content will be captured in grayscale or color.
*/
- private final boolean mGrayscaleBuffer;
+ private final boolean mUseGrayscale;
/**
* A builder for {@link DisplayHashParams}
@@ -56,7 +56,7 @@
public static final class Builder {
@Nullable
private Size mBufferSize;
- private boolean mGrayscaleBuffer;
+ private boolean mUseGrayscale;
/**
* Creates a new Builder.
@@ -68,8 +68,8 @@
* The size to scale the buffer to so the hash algorithm can properly generate the hash.
*/
@NonNull
- public Builder setBufferSize(int w, int h) {
- mBufferSize = new Size(w, h);
+ public Builder setBufferSize(int width, int height) {
+ mBufferSize = new Size(width, height);
return this;
}
@@ -77,15 +77,15 @@
* Whether the content will be captured in grayscale or color.
*/
@NonNull
- public Builder setGrayscaleBuffer(boolean value) {
- mGrayscaleBuffer = value;
+ public Builder setUseGrayscale(boolean useGrayscale) {
+ mUseGrayscale = useGrayscale;
return this;
}
/** Builds the instance. This builder should not be touched after calling this! */
@NonNull
public DisplayHashParams build() {
- return new DisplayHashParams(mBufferSize, mGrayscaleBuffer);
+ return new DisplayHashParams(mBufferSize, mUseGrayscale);
}
}
@@ -109,28 +109,28 @@
*
* @param bufferSize
* The size to scale the buffer to so the hash algorithm can properly generate the hash. The
- * buffer given to the {@link DisplayHasherService#onGenerateDisplayHash(byte[], HardwareBuffer,
- * Rect, String, DisplayHashResultCallback)} will be stretched based on the value set here.
- * If {@code null}, the buffer size will not be changed.
- * @param grayscaleBuffer
+ * buffer given to the {@link DisplayHashingService#onGenerateDisplayHash(byte[],
+ * HardwareBuffer, Rect, String, DisplayHashResultCallback)} will be stretched based on the
+ * value set here. If {@code null}, the buffer size will not be changed.
+ * @param useGrayscale
* Whether the content will be captured in grayscale or color.
* @hide
*/
@DataClass.Generated.Member
public DisplayHashParams(
@Nullable Size bufferSize,
- boolean grayscaleBuffer) {
+ boolean useGrayscale) {
this.mBufferSize = bufferSize;
- this.mGrayscaleBuffer = grayscaleBuffer;
+ this.mUseGrayscale = useGrayscale;
// onConstructed(); // You can define this method to get a callback
}
/**
* The size to scale the buffer to so the hash algorithm can properly generate the hash. The
- * buffer given to the {@link DisplayHasherService#onGenerateDisplayHash(byte[], HardwareBuffer,
- * Rect, String, DisplayHashResultCallback)} will be stretched based on the value set here.
- * If {@code null}, the buffer size will not be changed.
+ * buffer given to the {@link DisplayHashingService#onGenerateDisplayHash(byte[],
+ * HardwareBuffer, Rect, String, DisplayHashResultCallback)} will be stretched based on the
+ * value set here. If {@code null}, the buffer size will not be changed.
*/
@DataClass.Generated.Member
public @Nullable Size getBufferSize() {
@@ -141,8 +141,8 @@
* Whether the content will be captured in grayscale or color.
*/
@DataClass.Generated.Member
- public boolean isGrayscaleBuffer() {
- return mGrayscaleBuffer;
+ public boolean isUseGrayscale() {
+ return mUseGrayscale;
}
@Override
@@ -153,7 +153,7 @@
return "DisplayHashParams { " +
"bufferSize = " + mBufferSize + ", " +
- "grayscaleBuffer = " + mGrayscaleBuffer +
+ "useGrayscale = " + mUseGrayscale +
" }";
}
@@ -164,7 +164,7 @@
// void parcelFieldName(Parcel dest, int flags) { ... }
byte flg = 0;
- if (mGrayscaleBuffer) flg |= 0x2;
+ if (mUseGrayscale) flg |= 0x2;
if (mBufferSize != null) flg |= 0x1;
dest.writeByte(flg);
if (mBufferSize != null) dest.writeSize(mBufferSize);
@@ -182,11 +182,11 @@
// static FieldType unparcelFieldName(Parcel in) { ... }
byte flg = in.readByte();
- boolean grayscaleBuffer = (flg & 0x2) != 0;
+ boolean useGrayscale = (flg & 0x2) != 0;
Size bufferSize = (flg & 0x1) == 0 ? null : (Size) in.readSize();
this.mBufferSize = bufferSize;
- this.mGrayscaleBuffer = grayscaleBuffer;
+ this.mUseGrayscale = useGrayscale;
// onConstructed(); // You can define this method to get a callback
}
@@ -206,10 +206,10 @@
};
@DataClass.Generated(
- time = 1617735166254L,
+ time = 1618436855096L,
codegenVersion = "1.0.23",
sourceFile = "frameworks/base/core/java/android/service/displayhash/DisplayHashParams.java",
- inputSignatures = "private final @android.annotation.Nullable android.util.Size mBufferSize\nprivate final boolean mGrayscaleBuffer\nclass DisplayHashParams extends java.lang.Object implements [android.os.Parcelable]\nprivate @android.annotation.Nullable android.util.Size mBufferSize\nprivate boolean mGrayscaleBuffer\npublic @android.annotation.NonNull android.service.displayhash.DisplayHashParams.Builder setBufferSize(int,int)\npublic @android.annotation.NonNull android.service.displayhash.DisplayHashParams.Builder setGrayscaleBuffer(boolean)\npublic @android.annotation.NonNull android.service.displayhash.DisplayHashParams build()\nclass Builder extends java.lang.Object implements []\n@com.android.internal.util.DataClass(genAidl=true, genToString=true, genParcelable=true, genHiddenConstructor=true)")
+ inputSignatures = "private final @android.annotation.Nullable android.util.Size mBufferSize\nprivate final boolean mUseGrayscale\nclass DisplayHashParams extends java.lang.Object implements [android.os.Parcelable]\nprivate @android.annotation.Nullable android.util.Size mBufferSize\nprivate boolean mUseGrayscale\npublic @android.annotation.NonNull android.service.displayhash.DisplayHashParams.Builder setBufferSize(int,int)\npublic @android.annotation.NonNull android.service.displayhash.DisplayHashParams.Builder setUseGrayscale(boolean)\npublic @android.annotation.NonNull android.service.displayhash.DisplayHashParams build()\nclass Builder extends java.lang.Object implements []\n@com.android.internal.util.DataClass(genAidl=true, genToString=true, genParcelable=true, genHiddenConstructor=true)")
@Deprecated
private void __metadata() {}
diff --git a/core/java/android/service/displayhash/DisplayHasherService.java b/core/java/android/service/displayhash/DisplayHashingService.java
similarity index 84%
rename from core/java/android/service/displayhash/DisplayHasherService.java
rename to core/java/android/service/displayhash/DisplayHashingService.java
index d300cf1..e8bb485 100644
--- a/core/java/android/service/displayhash/DisplayHasherService.java
+++ b/core/java/android/service/displayhash/DisplayHashingService.java
@@ -45,21 +45,21 @@
* @hide
*/
@SystemApi
-public abstract class DisplayHasherService extends Service {
+public abstract class DisplayHashingService extends Service {
/** @hide **/
public static final String EXTRA_VERIFIED_DISPLAY_HASH =
"android.service.displayhash.extra.VERIFIED_DISPLAY_HASH";
/**
- * Name under which a DisplayHasherService component publishes information
+ * Name under which a DisplayHashingService component publishes information
* about itself. This meta-data must reference an XML resource containing a
- * {@link com.android.internal.R.styleable#DisplayHasherService} tag.
+ * {@link com.android.internal.R.styleable#DisplayHashingService} tag.
*
* @hide
*/
@SystemApi
- public static final String SERVICE_META_DATA = "android.displayhash.display_hasher_service";
+ public static final String SERVICE_META_DATA = "android.displayhash.display_hashing_service";
/**
* The {@link Intent} action that must be declared as handled by a service in its manifest
@@ -69,18 +69,18 @@
*/
@SystemApi
public static final String SERVICE_INTERFACE =
- "android.service.displayhash.DisplayHasherService";
+ "android.service.displayhash.DisplayHashingService";
- private DisplayHasherServiceWrapper mWrapper;
+ private DisplayHashingServiceWrapper mWrapper;
private Handler mHandler;
- public DisplayHasherService() {
+ public DisplayHashingService() {
}
@Override
public void onCreate() {
super.onCreate();
- mWrapper = new DisplayHasherServiceWrapper();
+ mWrapper = new DisplayHashingServiceWrapper();
mHandler = new Handler(Looper.getMainLooper(), null, true);
}
@@ -105,7 +105,6 @@
* if successfully generated a DisplayHash or {@link
* DisplayHashResultCallback#onDisplayHashError(int)} if failed.
*/
- @Nullable
public abstract void onGenerateDisplayHash(@NonNull byte[] salt,
@NonNull HardwareBuffer buffer, @NonNull Rect bounds,
@NonNull String hashAlgorithm, @NonNull DisplayHashResultCallback callback);
@@ -125,8 +124,8 @@
* HardwareBuffer, Rect, String, DisplayHashResultCallback)} to
* generate the token.
* @param displayHash The token to verify that it was generated by the system.
- * @return a {@link VerifiedDisplayHash} if the token was generated by the system or null
- * if the token cannot be verified.
+ * @return a {@link VerifiedDisplayHash} if the provided display hash was originally generated
+ * by the system or null if the system did not generate the display hash.
*/
@Nullable
public abstract VerifiedDisplayHash onVerifyDisplayHash(@NonNull byte[] salt,
@@ -150,13 +149,13 @@
callback.sendResult(data);
}
- private final class DisplayHasherServiceWrapper extends IDisplayHasherService.Stub {
+ private final class DisplayHashingServiceWrapper extends IDisplayHashingService.Stub {
@Override
public void generateDisplayHash(byte[] salt, HardwareBuffer buffer, Rect bounds,
String hashAlgorithm, RemoteCallback callback) {
mHandler.sendMessage(
- obtainMessage(DisplayHasherService::onGenerateDisplayHash,
- DisplayHasherService.this, salt, buffer, bounds,
+ obtainMessage(DisplayHashingService::onGenerateDisplayHash,
+ DisplayHashingService.this, salt, buffer, bounds,
hashAlgorithm, new DisplayHashResultCallback() {
@Override
public void onDisplayHashResult(
@@ -179,14 +178,14 @@
public void verifyDisplayHash(byte[] salt, DisplayHash displayHash,
RemoteCallback callback) {
mHandler.sendMessage(
- obtainMessage(DisplayHasherService::verifyDisplayHash,
- DisplayHasherService.this, salt, displayHash, callback));
+ obtainMessage(DisplayHashingService::verifyDisplayHash,
+ DisplayHashingService.this, salt, displayHash, callback));
}
@Override
public void getDisplayHashAlgorithms(RemoteCallback callback) {
- mHandler.sendMessage(obtainMessage(DisplayHasherService::getDisplayHashAlgorithms,
- DisplayHasherService.this, callback));
+ mHandler.sendMessage(obtainMessage(DisplayHashingService::getDisplayHashAlgorithms,
+ DisplayHashingService.this, callback));
}
}
}
diff --git a/core/java/android/service/displayhash/IDisplayHasherService.aidl b/core/java/android/service/displayhash/IDisplayHashingService.aidl
similarity index 98%
rename from core/java/android/service/displayhash/IDisplayHasherService.aidl
rename to core/java/android/service/displayhash/IDisplayHashingService.aidl
index d9dcdca..56e1e0a 100644
--- a/core/java/android/service/displayhash/IDisplayHasherService.aidl
+++ b/core/java/android/service/displayhash/IDisplayHashingService.aidl
@@ -26,7 +26,7 @@
*
* @hide
*/
-oneway interface IDisplayHasherService {
+oneway interface IDisplayHashingService {
/**
* Generates the DisplayHash that can be used to validate that the system generated the token.
*
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index d6b5a2c..a757295 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -30927,7 +30927,6 @@
* @param executor The executor that the callback should be invoked on.
* @param callback The callback to handle the results of generating the display hash
*/
- @Nullable
public void generateDisplayHash(@NonNull String hashAlgorithm,
@Nullable Rect bounds, @NonNull Executor executor,
@NonNull DisplayHashResultCallback callback) {
diff --git a/core/java/android/view/displayhash/DisplayHash.java b/core/java/android/view/displayhash/DisplayHash.java
index 4148486..4ec0a59 100644
--- a/core/java/android/view/displayhash/DisplayHash.java
+++ b/core/java/android/view/displayhash/DisplayHash.java
@@ -16,6 +16,7 @@
package android.view.displayhash;
+import android.annotation.CurrentTimeMillisLong;
import android.annotation.NonNull;
import android.annotation.SystemApi;
import android.graphics.Rect;
@@ -31,6 +32,7 @@
/**
* The timestamp when the hash was generated.
*/
+ @CurrentTimeMillisLong
private final long mTimeMillis;
/**
@@ -73,7 +75,7 @@
* @hide
*/
@SystemApi
- public DisplayHash(long timeMillis, @NonNull Rect boundsInWindow,
+ public DisplayHash(@CurrentTimeMillisLong long timeMillis, @NonNull Rect boundsInWindow,
@NonNull String hashAlgorithm, @NonNull byte[] imageHash, @NonNull byte[] hmac) {
mTimeMillis = timeMillis;
mBoundsInWindow = boundsInWindow;
@@ -92,6 +94,7 @@
* @hide
*/
@SystemApi
+ @CurrentTimeMillisLong
public long getTimeMillis() {
return mTimeMillis;
}
diff --git a/core/java/android/view/displayhash/DisplayHashManager.java b/core/java/android/view/displayhash/DisplayHashManager.java
index 69dfc38..4f5fef6 100644
--- a/core/java/android/view/displayhash/DisplayHashManager.java
+++ b/core/java/android/view/displayhash/DisplayHashManager.java
@@ -35,7 +35,8 @@
import java.util.Set;
/**
- * Utility class for DisplayHash requests.
+ * Manages DisplayHash requests. The manager object can be retrieved by calling
+ * {@code Context.getSystemService(Context.DISPLAY_HASH_SERVICE)}
*/
@SystemService(DISPLAY_HASH_SERVICE)
public final class DisplayHashManager {
@@ -75,7 +76,7 @@
return sSupportedHashAlgorithms;
} catch (RemoteException e) {
Log.e(TAG, "Failed to send request getSupportedHashingAlgorithms", e);
- return Collections.emptySet();
+ throw e.rethrowFromSystemServer();
}
}
}
@@ -93,7 +94,7 @@
return WindowManagerGlobal.getWindowManagerService().verifyDisplayHash(displayHash);
} catch (RemoteException e) {
Log.e(TAG, "Failed to send request verifyImpressionToken", e);
- return null;
+ throw e.rethrowFromSystemServer();
}
}
diff --git a/core/java/android/view/displayhash/VerifiedDisplayHash.java b/core/java/android/view/displayhash/VerifiedDisplayHash.java
index 16a428e..b17c068 100644
--- a/core/java/android/view/displayhash/VerifiedDisplayHash.java
+++ b/core/java/android/view/displayhash/VerifiedDisplayHash.java
@@ -16,6 +16,7 @@
package android.view.displayhash;
+import android.annotation.CurrentTimeMillisLong;
import android.annotation.NonNull;
import android.graphics.Rect;
import android.os.Parcelable;
@@ -30,6 +31,7 @@
/**
* The timestamp when the hash was generated.
*/
+ @CurrentTimeMillisLong
private final long mTimeMillis;
/**
@@ -78,7 +80,7 @@
- // Code below generated by codegen v1.0.22.
+ // Code below generated by codegen v1.0.23.
//
// DO NOT MODIFY!
// CHECKSTYLE:OFF Generated code
@@ -106,11 +108,13 @@
*/
@DataClass.Generated.Member
public VerifiedDisplayHash(
- long timeMillis,
+ @CurrentTimeMillisLong long timeMillis,
@NonNull Rect boundsInWindow,
@NonNull String hashAlgorithm,
@NonNull byte[] imageHash) {
this.mTimeMillis = timeMillis;
+ com.android.internal.util.AnnotationValidations.validate(
+ CurrentTimeMillisLong.class, null, mTimeMillis);
this.mBoundsInWindow = boundsInWindow;
com.android.internal.util.AnnotationValidations.validate(
NonNull.class, null, mBoundsInWindow);
@@ -128,7 +132,7 @@
* The timestamp when the hash was generated.
*/
@DataClass.Generated.Member
- public long getTimeMillis() {
+ public @CurrentTimeMillisLong long getTimeMillis() {
return mTimeMillis;
}
@@ -200,6 +204,8 @@
byte[] imageHash = in.createByteArray();
this.mTimeMillis = timeMillis;
+ com.android.internal.util.AnnotationValidations.validate(
+ CurrentTimeMillisLong.class, null, mTimeMillis);
this.mBoundsInWindow = boundsInWindow;
com.android.internal.util.AnnotationValidations.validate(
NonNull.class, null, mBoundsInWindow);
@@ -228,10 +234,10 @@
};
@DataClass.Generated(
- time = 1613168749684L,
- codegenVersion = "1.0.22",
+ time = 1617747271440L,
+ codegenVersion = "1.0.23",
sourceFile = "frameworks/base/core/java/android/view/displayhash/VerifiedDisplayHash.java",
- inputSignatures = "private final long mTimeMillis\nprivate final @android.annotation.NonNull android.graphics.Rect mBoundsInWindow\nprivate final @android.annotation.NonNull java.lang.String mHashAlgorithm\nprivate final @android.annotation.NonNull byte[] mImageHash\nprivate java.lang.String imageHashToString()\nprivate java.lang.String byteArrayToString(byte[])\nclass VerifiedDisplayHash extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genToString=true, genAidl=true)")
+ inputSignatures = "private final @android.annotation.CurrentTimeMillisLong long mTimeMillis\nprivate final @android.annotation.NonNull android.graphics.Rect mBoundsInWindow\nprivate final @android.annotation.NonNull java.lang.String mHashAlgorithm\nprivate final @android.annotation.NonNull byte[] mImageHash\nprivate java.lang.String imageHashToString()\nprivate java.lang.String byteArrayToString(byte[])\nclass VerifiedDisplayHash extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genToString=true, genAidl=true)")
@Deprecated
private void __metadata() {}
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index 925a212..3d624a6 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -5673,12 +5673,12 @@
<permission android:name="android.permission.CONTROL_DEVICE_STATE"
android:protectionLevel="signature" />
- <!-- Must be required by a
- {@link android.service.displayhash.DisplayHasherService}
+ <!-- @hide @SystemApi Must be required by a
+ {@link android.service.displayhash.DisplayHashingService}
to ensure that only the system can bind to it.
- @hide This is not a third-party API (intended for OEMs and system apps).
+ This is not a third-party API (intended for OEMs and system apps).
-->
- <permission android:name="android.permission.BIND_DISPLAY_HASHER_SERVICE"
+ <permission android:name="android.permission.BIND_DISPLAY_HASHING_SERVICE"
android:protectionLevel="signature" />
<!-- @hide @TestApi Allows an application to enable/disable toast rate limiting.
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
index bd1d848..1d532fc 100644
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
@@ -9577,7 +9577,7 @@
<!-- Perceptual luminance of a color, in accessibility friendly color space. From 0 to 100. -->
<attr name="lStar" format="float"/>
- <declare-styleable name="DisplayHasherService">
+ <declare-styleable name="DisplayHashingService">
<!-- The throttle duration for display hash requests
@hide @SystemApi -->
<attr name="throttleDurationMillis" format="integer" />
diff --git a/services/core/java/com/android/server/wm/DisplayHashController.java b/services/core/java/com/android/server/wm/DisplayHashController.java
index 5a8af45..af0c3e3 100644
--- a/services/core/java/com/android/server/wm/DisplayHashController.java
+++ b/services/core/java/com/android/server/wm/DisplayHashController.java
@@ -16,8 +16,8 @@
package com.android.server.wm;
-import static android.service.displayhash.DisplayHasherService.EXTRA_VERIFIED_DISPLAY_HASH;
-import static android.service.displayhash.DisplayHasherService.SERVICE_META_DATA;
+import static android.service.displayhash.DisplayHashingService.EXTRA_VERIFIED_DISPLAY_HASH;
+import static android.service.displayhash.DisplayHashingService.SERVICE_META_DATA;
import static android.view.displayhash.DisplayHashResultCallback.DISPLAY_HASH_ERROR_INVALID_HASH_ALGORITHM;
import static android.view.displayhash.DisplayHashResultCallback.DISPLAY_HASH_ERROR_TOO_MANY_REQUESTS;
import static android.view.displayhash.DisplayHashResultCallback.DISPLAY_HASH_ERROR_UNKNOWN;
@@ -52,8 +52,8 @@
import android.os.RemoteException;
import android.os.UserHandle;
import android.service.displayhash.DisplayHashParams;
-import android.service.displayhash.DisplayHasherService;
-import android.service.displayhash.IDisplayHasherService;
+import android.service.displayhash.DisplayHashingService;
+import android.service.displayhash.IDisplayHashingService;
import android.util.AttributeSet;
import android.util.Size;
import android.util.Slog;
@@ -79,7 +79,7 @@
import java.util.function.BiConsumer;
/**
- * Handles requests into {@link android.service.displayhash.DisplayHasherService}
+ * Handles requests into {@link DisplayHashingService}
*
* Do not hold the {@link WindowManagerService#mGlobalLock} when calling methods since they are
* blocking calls into another service.
@@ -91,7 +91,7 @@
private final Object mServiceConnectionLock = new Object();
@GuardedBy("mServiceConnectionLock")
- private DisplayHasherServiceConnection mServiceConnection;
+ private DisplayHashingServiceConnection mServiceConnection;
private final Context mContext;
@@ -150,7 +150,7 @@
private boolean mDisplayHashThrottlingEnabled = true;
private interface Command {
- void run(IDisplayHasherService service) throws RemoteException;
+ void run(IDisplayHashingService service) throws RemoteException;
}
DisplayHashController(Context context) {
@@ -233,7 +233,7 @@
(float) size.getHeight() / boundsInWindow.height());
}
- args.setGrayscale(displayHashParams.isGrayscaleBuffer());
+ args.setGrayscale(displayHashParams.isUseGrayscale());
SurfaceControl.ScreenshotHardwareBuffer screenshotHardwareBuffer =
SurfaceControl.captureLayers(args.build());
@@ -405,9 +405,9 @@
}
}
- TypedArray sa = res.obtainAttributes(attrs, R.styleable.DisplayHasherService);
+ TypedArray sa = res.obtainAttributes(attrs, R.styleable.DisplayHashingService);
mThrottleDurationMillis = sa.getInt(
- R.styleable.DisplayHasherService_throttleDurationMillis, 0);
+ R.styleable.DisplayHashingService_throttleDurationMillis, 0);
sa.recycle();
mParsedXml = true;
return true;
@@ -424,7 +424,7 @@
if (DEBUG) Slog.v(TAG, "creating connection");
// Create the connection
- mServiceConnection = new DisplayHasherServiceConnection();
+ mServiceConnection = new DisplayHashingServiceConnection();
final ComponentName component = getServiceComponentName();
if (DEBUG) Slog.v(TAG, "binding to: " + component);
@@ -455,7 +455,7 @@
return null;
}
- final Intent intent = new Intent(DisplayHasherService.SERVICE_INTERFACE);
+ final Intent intent = new Intent(DisplayHashingService.SERVICE_INTERFACE);
intent.setPackage(packageName);
final ResolveInfo resolveInfo = mContext.getPackageManager().resolveService(intent,
PackageManager.GET_SERVICES | PackageManager.GET_META_DATA);
@@ -472,10 +472,10 @@
if (serviceInfo == null) return null;
final ComponentName name = new ComponentName(serviceInfo.packageName, serviceInfo.name);
- if (!Manifest.permission.BIND_DISPLAY_HASHER_SERVICE
+ if (!Manifest.permission.BIND_DISPLAY_HASHING_SERVICE
.equals(serviceInfo.permission)) {
Slog.w(TAG, name.flattenToShortString() + " requires permission "
- + Manifest.permission.BIND_DISPLAY_HASHER_SERVICE);
+ + Manifest.permission.BIND_DISPLAY_HASHING_SERVICE);
return null;
}
@@ -488,7 +488,7 @@
private Bundle mResult;
private final CountDownLatch mCountDownLatch = new CountDownLatch(1);
- public Bundle run(BiConsumer<IDisplayHasherService, RemoteCallback> func) {
+ public Bundle run(BiConsumer<IDisplayHashingService, RemoteCallback> func) {
connectAndRun(service -> {
RemoteCallback callback = new RemoteCallback(result -> {
mResult = result;
@@ -507,9 +507,9 @@
}
}
- private class DisplayHasherServiceConnection implements ServiceConnection {
+ private class DisplayHashingServiceConnection implements ServiceConnection {
@GuardedBy("mServiceConnectionLock")
- private IDisplayHasherService mRemoteService;
+ private IDisplayHashingService mRemoteService;
@GuardedBy("mServiceConnectionLock")
private ArrayList<Command> mQueuedCommands;
@@ -518,7 +518,7 @@
public void onServiceConnected(ComponentName name, IBinder service) {
if (DEBUG) Slog.v(TAG, "onServiceConnected(): " + name);
synchronized (mServiceConnectionLock) {
- mRemoteService = IDisplayHasherService.Stub.asInterface(service);
+ mRemoteService = IDisplayHashingService.Stub.asInterface(service);
if (mQueuedCommands != null) {
final int size = mQueuedCommands.size();
if (DEBUG) Slog.d(TAG, "running " + size + " queued commands");