aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarthik Mahesh <karthikmahesh@google.com>2023-12-12 18:46:31 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-12-12 18:46:31 +0000
commite3d48a194c38110d01eb43da2239fe10b021e89e (patch)
tree61b8f28ea2f62269186895d6495c6b8258242cc9
parent28ad54cc55276009fed066a597a2ab1d78fee89a (diff)
parent0ee3c006afa9cb4dc2136c79da830c54a3c3e77c (diff)
downloadOnDevicePersonalization-e3d48a194c38110d01eb43da2239fe10b021e89e.tar.gz
Merge "Create WebView in the main thread." into udc-mainline-prod am: 0ee3c006af
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/modules/OnDevicePersonalization/+/25575427 Change-Id: I469100ab179cdbb0737abc542ddd6850795e4df9 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--src/com/android/ondevicepersonalization/services/OnDevicePersonalizationExecutors.java18
-rw-r--r--src/com/android/ondevicepersonalization/services/display/DisplayHelper.java2
-rw-r--r--tests/servicetests/src/com/android/ondevicepersonalization/services/display/OdpWebViewClientTests.java12
3 files changed, 9 insertions, 23 deletions
diff --git a/src/com/android/ondevicepersonalization/services/OnDevicePersonalizationExecutors.java b/src/com/android/ondevicepersonalization/services/OnDevicePersonalizationExecutors.java
index 3d03f785..42be5c41 100644
--- a/src/com/android/ondevicepersonalization/services/OnDevicePersonalizationExecutors.java
+++ b/src/com/android/ondevicepersonalization/services/OnDevicePersonalizationExecutors.java
@@ -18,7 +18,7 @@ package com.android.ondevicepersonalization.services;
import android.annotation.NonNull;
import android.os.Handler;
-import android.os.HandlerThread;
+import android.os.Looper;
import android.os.Process;
import android.os.StrictMode;
import android.os.StrictMode.ThreadPolicy;
@@ -59,9 +59,7 @@ public final class OnDevicePersonalizationExecutors {
createThreadFactory("SCH Thread", Process.THREAD_PRIORITY_BACKGROUND,
Optional.of(getIoThreadPolicy()))));
- private static final HandlerThread sHandlerThread = createHandlerThread();
-
- private static final Handler sHandler = new Handler(sHandlerThread.getLooper());
+ private static final Handler sHandlerForMainThread = new Handler(Looper.getMainLooper());
private OnDevicePersonalizationExecutors() {
}
@@ -101,10 +99,10 @@ public final class OnDevicePersonalizationExecutors {
}
/**
- * Returns a Handler that can post messages to a HandlerThread.
+ * Returns a Handler for the main thread.
*/
- public static Handler getHandler() {
- return sHandler;
+ public static Handler getHandlerForMainThread() {
+ return sHandlerForMainThread;
}
private static ThreadFactory createThreadFactory(
@@ -144,10 +142,4 @@ public final class OnDevicePersonalizationExecutors {
.penaltyLog()
.build();
}
-
- private static HandlerThread createHandlerThread() {
- HandlerThread handlerThread = new HandlerThread("DisplayThread");
- handlerThread.start();
- return handlerThread;
- }
}
diff --git a/src/com/android/ondevicepersonalization/services/display/DisplayHelper.java b/src/com/android/ondevicepersonalization/services/display/DisplayHelper.java
index 90a00847..2a8a50de 100644
--- a/src/com/android/ondevicepersonalization/services/display/DisplayHelper.java
+++ b/src/com/android/ondevicepersonalization/services/display/DisplayHelper.java
@@ -118,7 +118,7 @@ public class DisplayHelper {
SettableFuture<SurfacePackage> result = SettableFuture.create();
try {
sLogger.d(TAG + ": displayHtml");
- OnDevicePersonalizationExecutors.getHandler().post(() -> {
+ OnDevicePersonalizationExecutors.getHandlerForMainThread().post(() -> {
createWebView(html, logRecord, queryId, servicePackageName,
hostToken, displayId, width, height, result);
});
diff --git a/tests/servicetests/src/com/android/ondevicepersonalization/services/display/OdpWebViewClientTests.java b/tests/servicetests/src/com/android/ondevicepersonalization/services/display/OdpWebViewClientTests.java
index 0834c938..11ee7e55 100644
--- a/tests/servicetests/src/com/android/ondevicepersonalization/services/display/OdpWebViewClientTests.java
+++ b/tests/servicetests/src/com/android/ondevicepersonalization/services/display/OdpWebViewClientTests.java
@@ -91,7 +91,7 @@ public class OdpWebViewClientTests {
mDao.insertQuery(mTestQuery);
CountDownLatch latch = new CountDownLatch(1);
- OnDevicePersonalizationExecutors.getHandler().postAtFrontOfQueue(() -> {
+ OnDevicePersonalizationExecutors.getHandlerForMainThread().postAtFrontOfQueue(() -> {
mWebView = new OdpWebView(mContext);
latch.countDown();
});
@@ -156,14 +156,8 @@ public class OdpWebViewClientTests {
CountDownLatch latch = new CountDownLatch(1);
AtomicBoolean result = new AtomicBoolean(false);
- OnDevicePersonalizationExecutors.getHandler().postAtFrontOfQueue(() -> {
- WebViewClient webViewClient = getWebViewClient();
- result.set(webViewClient.shouldOverrideUrlLoading(mWebView, webResourceRequest));
- latch.countDown();
- });
- latch.await();
-
- assertTrue(result.get());
+ WebViewClient webViewClient = getWebViewClient();
+ assertTrue(webViewClient.shouldOverrideUrlLoading(mWebView, webResourceRequest));
assertEquals(landingPage, mOpenedUrl);
assertEquals(1,
mDbHelper.getReadableDatabase().query(EventsContract.EventsEntry.TABLE_NAME, null,