fdroiddata/metadata/com.android.talkback/370044211-Remove-Google-non-free-dependencies.patch
2024-11-27 19:47:03 +08:00

751 lines
38 KiB
Diff

From 862ede598dacfc555d91c88f5e1267e7de73ffbf Mon Sep 17 00:00:00 2001
From: Oliver Scott <olivercscott@gmail.com>
Date: Tue, 26 Nov 2024 17:40:10 -0500
Subject: [PATCH] Remove Google non-free dependencies
Change-Id: I7eb79930334b12f3c6e34078a45400537bd3c54f
---
.../src/phone/AndroidManifest.xml | 1 -
shared.gradle | 3 -
talkback/src/main/AndroidManifest.xml | 10 -
.../talkback/TalkBackApplication.java | 8 +-
.../talkback/TalkBackService.java | 26 +-
.../talkback/TouchInteractionMonitor.java | 9 +-
.../actor/FocusActorForScreenStateChange.java | 19 +-
.../talkback/actor/ImageCaptioner.java | 66 +--
.../talkback/actor/gemini/GeminiActor.java | 9 -
.../TelevisionNavigationController.java | 10 +-
.../talkback/logging/EventLatencyLogger.java | 6 +-
.../marvin/talkback/TalkBackService.java | 26 +-
16 files changed, 26 insertions(+), 804 deletions(-)
diff --git a/braille/brailledisplay/src/phone/AndroidManifest.xml b/braille/brailledisplay/src/phone/AndroidManifest.xml
index 0d54b3a9..8c011ecb 100644
--- a/braille/brailledisplay/src/phone/AndroidManifest.xml
+++ b/braille/brailledisplay/src/phone/AndroidManifest.xml
@@ -11,7 +11,6 @@
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" android:maxSdkVersion="30" />
<uses-permission android:name="android.permission.BLUETOOTH" android:maxSdkVersion="30" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" android:maxSdkVersion="30" />
- <uses-permission android:name="android.permission.INTERNET" />
<!-- Bluetooth permissions introduced in API level 31. -->
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" android:usesPermissionFlags="neverForLocation" />
diff --git a/shared.gradle b/shared.gradle
index 697cb322..e557e5c9 100644
--- a/shared.gradle
+++ b/shared.gradle
@@ -54,9 +54,7 @@ dependencies {
// Google common
implementation 'com.google.guava:guava:31.0-jre'
- implementation 'com.google.android.gms:play-services-mlkit-text-recognition:17.0.1'
implementation 'com.google.android.material:material:1.5.0'
- implementation 'com.google.android.play:core:1.10.3'
// Support library
implementation 'androidx.annotation:annotation:1.2.0'
@@ -77,10 +75,6 @@ dependencies {
annotationProcessor 'com.google.auto.value:auto-value:1.8.2'
implementation 'javax.annotation:javax.annotation-api:1.3.2'
- implementation 'androidx.wear:wear:1.2.0-rc01'
- implementation 'androidx.wear:wear-remote-interactions:1.0.0'
- implementation 'com.google.android.support:wearable:2.8.1'
-
implementation 'com.google.zxing:core:3.5.1'
// UI understanding
diff --git a/talkback/src/main/AndroidManifest.xml b/talkback/src/main/AndroidManifest.xml
index 93e21e91..6d313e6f 100644
--- a/talkback/src/main/AndroidManifest.xml
+++ b/talkback/src/main/AndroidManifest.xml
@@ -32,21 +32,11 @@
<!-- Required for App Enumeration -->
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>
- <!-- Required for sending data to Google Analytics. -->
- <uses-permission android:name="android.permission.INTERNET" />
- <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
-
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<!-- Required for calling Service.startForeground after API 28. -->
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
- <!-- Required for Primes. -->
- <uses-permission android:name="android.permission.GET_PACKAGE_SIZE" />
-
- <!-- Used to control Primes collection using Gservices flags -->
- <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
-
<!-- Required for posting notifications, beginning in Android T. -->
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
diff --git a/talkback/src/main/java/com/google/android/accessibility/talkback/TalkBackApplication.java b/talkback/src/main/java/com/google/android/accessibility/talkback/TalkBackApplication.java
index 99687d17..1759e7a1 100644
--- a/talkback/src/main/java/com/google/android/accessibility/talkback/TalkBackApplication.java
+++ b/talkback/src/main/java/com/google/android/accessibility/talkback/TalkBackApplication.java
@@ -16,17 +16,17 @@
package com.google.android.accessibility.talkback;
+import android.app.Application;
+
import com.google.android.accessibility.talkback.training.PageConfigMapperImpl;
import com.google.android.accessibility.talkback.training.TrainingConfigMapperImpl;
import com.google.android.accessibility.talkback.trainingcommon.TrainingActivityInterfaceInjector;
import com.google.android.accessibility.utils.FormFactorUtils;
-import com.google.android.play.core.splitcompat.SplitCompatApplication;
/**
- * A top level Application for TalkBack. It extends SplitCompatApplication to enable SplitCompat,
- * which allows our app to access code and resources from a downloaded module.
+ * A top level Application for TalkBack
*/
-public class TalkBackApplication extends SplitCompatApplication {
+public class TalkBackApplication extends Application {
@Override
public void onCreate() {
diff --git a/talkback/src/main/java/com/google/android/accessibility/talkback/TalkBackService.java b/talkback/src/main/java/com/google/android/accessibility/talkback/TalkBackService.java
index f9bca7ab..df03a32e 100644
--- a/talkback/src/main/java/com/google/android/accessibility/talkback/TalkBackService.java
+++ b/talkback/src/main/java/com/google/android/accessibility/talkback/TalkBackService.java
@@ -87,7 +87,6 @@ import com.google.android.accessibility.braille.interfaces.TalkBackForBrailleIme
import com.google.android.accessibility.braille.interfaces.TalkBackForBrailleIme.BrailleImeForTalkBackProvider;
import com.google.android.accessibility.brailleime.BrailleIme;
import com.google.android.accessibility.talkback.Feedback.DeviceInfo.Action;
-import com.google.android.accessibility.talkback.PrimesController.TimerAction;
import com.google.android.accessibility.talkback.TalkBackExitController.TrainingState;
import com.google.android.accessibility.talkback.actor.AutoScrollActor;
import com.google.android.accessibility.talkback.actor.DimScreenActor;
@@ -657,7 +656,6 @@ public class TalkBackService extends AccessibilityService
private GestureShortcutMapping gestureShortcutMapping;
private NodeMenuRuleProcessor nodeMenuRuleProcessor;
- private PrimesController primesController;
private SpeechLanguage speechLanguage;
private ImageCaptioner imageCaptioner;
private TalkBackExitController talkBackExitController;
@@ -982,13 +980,6 @@ public class TalkBackService extends AccessibilityService
protected final boolean onKeyEvent(KeyEvent keyEvent) {
boolean result = onKeyEventInternal(keyEvent);
- if (primesController != null) {
- // We use keyEvent.getEventTime() as starting point because we don't know how long the
- // message was enqueued before onKeyEvent() has started.
- primesController.recordDuration(
- TimerAction.KEY_EVENT, keyEvent.getEventTime(), SystemClock.uptimeMillis());
- }
-
return result;
}
@@ -1121,7 +1112,6 @@ public class TalkBackService extends AccessibilityService
}
Performance perf = Performance.getInstance();
EventId eventId = perf.onGestureEventReceived(gestureId);
- primesController.startTimer(TimerAction.GESTURE_EVENT);
switch (gestureId) {
case GESTURE_FAKED_SPLIT_TYPING:
@@ -1152,7 +1142,6 @@ public class TalkBackService extends AccessibilityService
// Preceding event handling frequently initiates a framework action, which in turn
// cascades a focus event, which in turn generates feedback.
perf.onHandlerDone(eventId);
- primesController.stopTimer(TimerAction.GESTURE_EVENT);
return true;
}
@@ -1340,15 +1329,12 @@ public class TalkBackService extends AccessibilityService
@Override
protected void onServiceConnected() {
LogUtils.v(TAG, "System bound to service.");
- primesController = new PrimesController();
- primesController.initialize(getApplication());
- primesController.startTimer(TimerAction.START_UP);
SharedPreferencesUtils.migrateSharedPreferences(this);
prefs = SharedPreferencesUtils.getSharedPreferences(this);
if (FeatureFlagReader.logEventBasedLatency(getBaseContext())) {
- eventLatencyLogger = new EventLatencyLogger(primesController, getApplicationContext(), prefs);
+ eventLatencyLogger = new EventLatencyLogger(getApplicationContext(), prefs);
}
if (FeatureFlagReader.usePeriodAsSeparator(getBaseContext())) {
@@ -1435,8 +1421,6 @@ public class TalkBackService extends AccessibilityService
Intent intent = new Intent(INTENT_TALKBACK_ENABLED);
intent.setPackage(getPackageName());
sendBroadcast(intent);
-
- primesController.stopTimer(TimerAction.START_UP);
}
/**
@@ -1596,7 +1580,7 @@ public class TalkBackService extends AccessibilityService
imageCaptioner =
new ImageCaptioner(
- this, imageCaptionStorage, accessibilityFocusMonitor, analytics, primesController);
+ this, imageCaptionStorage, accessibilityFocusMonitor, analytics);
GeminiFunctionUtils.setImageCaptioner(imageCaptioner);
// TODO: ScreenState should be passed through pipeline.
@@ -1670,7 +1654,6 @@ public class TalkBackService extends AccessibilityService
new GeminiActor(
this,
analytics,
- primesController,
GeminiConfiguration.useAratea(this)
? new ArateaEndpoint(this, getApplication())
: new GeminiRestEndpoint(
@@ -1720,7 +1703,7 @@ public class TalkBackService extends AccessibilityService
scroller,
focuser,
new FocusActorForScreenStateChange(
- this, inputMethodMonitor, focusFinder, primesController),
+ this, inputMethodMonitor, focusFinder),
new FocusActorForTapAndTouchExploration(),
directionNavigationActor,
new SearchScreenNodeStrategy(/* observer= */ null, labelManager),
@@ -1986,7 +1969,6 @@ public class TalkBackService extends AccessibilityService
/* service= */ this,
accessibilityFocusMonitor,
inputMethodMonitor,
- primesController,
menuManager,
pipeline.getFeedbackReturner(),
TvNavigation.useHandlerThread(/* context= */ this));
@@ -3314,7 +3296,7 @@ public class TalkBackService extends AccessibilityService
}
TouchInteractionMonitor touchInteractionMonitor =
new TouchInteractionMonitor(
- context, touchInteractionController, this, primesController);
+ context, touchInteractionController, this);
touchInteractionMonitor.setMultiFingerGesturesEnabled(true);
touchInteractionMonitor.setTwoFingerPassthroughEnabled(true);
touchInteractionMonitor.setServiceHandlesDoubleTap(true);
diff --git a/talkback/src/main/java/com/google/android/accessibility/talkback/TouchInteractionMonitor.java b/talkback/src/main/java/com/google/android/accessibility/talkback/TouchInteractionMonitor.java
index 9087bb99..b945680f 100644
--- a/talkback/src/main/java/com/google/android/accessibility/talkback/TouchInteractionMonitor.java
+++ b/talkback/src/main/java/com/google/android/accessibility/talkback/TouchInteractionMonitor.java
@@ -27,7 +27,6 @@ import static android.view.MotionEvent.ACTION_DOWN;
import static android.view.MotionEvent.ACTION_MOVE;
import static android.view.MotionEvent.ACTION_POINTER_DOWN;
import static android.view.MotionEvent.INVALID_POINTER_ID;
-import static com.google.android.accessibility.talkback.PrimesController.TimerAction.TOUCH_CONTROLLER_STATE_CHANGE_LATENCY;
import static com.google.android.accessibility.utils.gestures.GestureManifold.GESTURE_FAKED_SPLIT_TYPING;
import static com.google.android.accessibility.utils.gestures.GestureManifold.GESTURE_TOUCH_EXPLORE;
@@ -151,7 +150,6 @@ public class TouchInteractionMonitor
private EventId eventId;
private final int displayId;
private final boolean handleStateChangeInMainThread;
- private final PrimesController primesController;
private final Queue<CallerInfo> callerInfos;
private static class CallerInfo {
@@ -174,13 +172,11 @@ public class TouchInteractionMonitor
public TouchInteractionMonitor(
Context context,
TouchInteractionController controller,
- TalkBackService service,
- PrimesController primesController) {
+ TalkBackService service) {
this.context = context;
this.controller = controller;
receivedPointerTracker = new ReceivedPointerTracker();
this.service = service;
- this.primesController = primesController;
handleStateChangeInMainThread = FeatureFlagReader.handleStateChangeInMainThread(context);
displayId = context.getDisplay().getDisplayId();
mainHandler = new Handler(context.getMainLooper());
@@ -808,8 +804,7 @@ public class TouchInteractionMonitor
if (handleStateChangeInMainThread) {
long currentTime = SystemClock.uptimeMillis();
if (currentTime >= requestStartTime) {
- primesController.recordDuration(
- TOUCH_CONTROLLER_STATE_CHANGE_LATENCY, requestStartTime, currentTime);
+
}
}
}
diff --git a/talkback/src/main/java/com/google/android/accessibility/talkback/actor/FocusActorForScreenStateChange.java b/talkback/src/main/java/com/google/android/accessibility/talkback/actor/FocusActorForScreenStateChange.java
index 47d97a1e..4a91e07f 100644
--- a/talkback/src/main/java/com/google/android/accessibility/talkback/actor/FocusActorForScreenStateChange.java
+++ b/talkback/src/main/java/com/google/android/accessibility/talkback/actor/FocusActorForScreenStateChange.java
@@ -28,8 +28,6 @@ import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
import com.google.android.accessibility.talkback.ActorState;
import com.google.android.accessibility.talkback.Feedback;
import com.google.android.accessibility.talkback.Pipeline;
-import com.google.android.accessibility.talkback.PrimesController;
-import com.google.android.accessibility.talkback.PrimesController.TimerAction;
import com.google.android.accessibility.talkback.actor.helper.FocusActorHelper;
import com.google.android.accessibility.talkback.focusmanagement.NavigationTarget;
import com.google.android.accessibility.talkback.focusmanagement.interpreter.ScreenState;
@@ -83,7 +81,6 @@ public class FocusActorForScreenStateChange {
private Pipeline.FeedbackReturner pipeline;
private ActorState actorState;
- private final PrimesController primesController;
private final InputMethodMonitor inputMethodMonitor;
private final FocusFinder focusFinder;
@@ -96,9 +93,7 @@ public class FocusActorForScreenStateChange {
public FocusActorForScreenStateChange(
@NonNull AccessibilityService service,
@NonNull InputMethodMonitor inputMethodMonitor,
- @NonNull FocusFinder focusFinder,
- @NonNull PrimesController primesController) {
- this.primesController = primesController;
+ @NonNull FocusFinder focusFinder) {
this.focusFinder = focusFinder;
this.service = service;
this.inputMethodMonitor = inputMethodMonitor;
@@ -193,7 +188,6 @@ public class FocusActorForScreenStateChange {
if (lastFocusAction == null) {
return false;
}
- long startTime = primesController.getTime();
AccessibilityNodeInfoCompat nodeToRestoreFocus =
FocusActionRecord.getFocusableNodeFromFocusRecord(root, focusFinder, lastFocusAction);
@@ -223,8 +217,7 @@ public class FocusActorForScreenStateChange {
screenState.consumeInterpretFirstTimeWhenWakeUp();
}
if (success) {
- primesController.recordDuration(
- TimerAction.INITIAL_FOCUS_RESTORE, startTime, primesController.getTime());
+
}
return success;
@@ -252,7 +245,6 @@ public class FocusActorForScreenStateChange {
if (nodeForSync == null) {
return false;
}
- long startTime = primesController.getTime();
boolean firstTime = screenState.isInterpretFirstTimeWhenWakeUp();
boolean forceMuteFeedback =
@@ -269,8 +261,7 @@ public class FocusActorForScreenStateChange {
screenState.consumeInterpretFirstTimeWhenWakeUp();
}
if (success) {
- primesController.recordDuration(
- TimerAction.INITIAL_FOCUS_FOLLOW_INPUT, startTime, primesController.getTime());
+
}
return success;
@@ -365,7 +356,6 @@ public class FocusActorForScreenStateChange {
if (root == null) {
return false;
}
- long startTime = primesController.getTime();
@Nullable CharSequence windowTitle = screenState.getWindowTitle(currentActiveWindow.getId());
@@ -437,8 +427,7 @@ public class FocusActorForScreenStateChange {
screenState.consumeInterpretFirstTimeWhenWakeUp();
}
if (success) {
- primesController.recordDuration(
- TimerAction.INITIAL_FOCUS_FIRST_CONTENT, startTime, primesController.getTime());
+
}
return success;
diff --git a/talkback/src/main/java/com/google/android/accessibility/talkback/actor/ImageCaptioner.java b/talkback/src/main/java/com/google/android/accessibility/talkback/actor/ImageCaptioner.java
index 95ac5958..0672605d 100644
--- a/talkback/src/main/java/com/google/android/accessibility/talkback/actor/ImageCaptioner.java
+++ b/talkback/src/main/java/com/google/android/accessibility/talkback/actor/ImageCaptioner.java
@@ -17,14 +17,6 @@
package com.google.android.accessibility.talkback.actor;
import static com.google.android.accessibility.talkback.Feedback.Focus.Action.MUTE_NEXT_FOCUS;
-import static com.google.android.accessibility.talkback.PrimesController.TimerAction.IMAGE_CAPTION_ICON_LABEL_FAILED;
-import static com.google.android.accessibility.talkback.PrimesController.TimerAction.IMAGE_CAPTION_ICON_LABEL_SUCCEED;
-import static com.google.android.accessibility.talkback.PrimesController.TimerAction.IMAGE_CAPTION_IMAGE_DESCRIPTION_FAILED;
-import static com.google.android.accessibility.talkback.PrimesController.TimerAction.IMAGE_CAPTION_IMAGE_DESCRIPTION_SUCCEED;
-import static com.google.android.accessibility.talkback.PrimesController.TimerAction.IMAGE_CAPTION_IMAGE_PROCESS_BLOCK_OVERLAY;
-import static com.google.android.accessibility.talkback.PrimesController.TimerAction.IMAGE_CAPTION_OCR_FAILED;
-import static com.google.android.accessibility.talkback.PrimesController.TimerAction.IMAGE_CAPTION_OCR_SUCCEED;
-import static com.google.android.accessibility.talkback.PrimesController.TimerAction.LATENCY_BETWEEN_SCREENSHOT_CAPTURE_REQUEST;
import static com.google.android.accessibility.talkback.actor.ImageCaptioner.CaptionNodeType.IMAGE;
import static com.google.android.accessibility.talkback.actor.ImageCaptioner.CaptionNodeType.NONE;
import static com.google.android.accessibility.talkback.actor.ImageCaptioner.CaptionNodeType.UNLABELLED_VIEW;
@@ -92,7 +84,6 @@ import com.google.android.accessibility.talkback.FeatureFlagReader;
import com.google.android.accessibility.talkback.Feedback;
import com.google.android.accessibility.talkback.Feedback.TriggerIntent.Action;
import com.google.android.accessibility.talkback.Pipeline;
-import com.google.android.accessibility.talkback.PrimesController;
import com.google.android.accessibility.talkback.R;
import com.google.android.accessibility.talkback.actor.gemini.GeminiOptInDialog;
import com.google.android.accessibility.talkback.analytics.TalkBackAnalytics;
@@ -106,7 +97,6 @@ import com.google.android.accessibility.talkback.dynamicfeature.ModuleDownloadPr
import com.google.android.accessibility.talkback.focusmanagement.AccessibilityFocusMonitor;
import com.google.android.accessibility.talkback.icondetection.IconAnnotationsDetectorFactory;
import com.google.android.accessibility.talkback.imagecaption.CaptionRequest;
-import com.google.android.accessibility.talkback.imagecaption.CharacterCaptionRequest;
import com.google.android.accessibility.talkback.imagecaption.IconDetectionRequest;
import com.google.android.accessibility.talkback.imagecaption.ImageCaptionConstants.AutomaticImageCaptioningState;
import com.google.android.accessibility.talkback.imagecaption.ImageCaptionConstants.DownloadDialogResources;
@@ -192,7 +182,6 @@ public class ImageCaptioner extends Handler
private final ImageCaptionStorage imageCaptionStorage;
private final AccessibilityFocusMonitor accessibilityFocusMonitor;
private final TalkBackAnalytics analytics;
- private final PrimesController primesController;
private final IconDetectionModuleDownloadPrompter iconDetectionModuleDownloadPrompter;
@VisibleForTesting @Nullable IconAnnotationsDetector iconAnnotationsDetector;
private boolean iconAnnotationsDetectorStarted = false;
@@ -211,8 +200,6 @@ public class ImageCaptioner extends Handler
private int requestId = 0;
private final RequestList<ScreenshotCaptureRequest> screenshotRequests;
- private final RequestList<CharacterCaptionRequest> characterCaptionRequests =
- new RequestList<>(CAPTION_REQUEST_CAPACITY);
private final RequestList<IconDetectionRequest> iconDetectionRequests =
new RequestList<>(CAPTION_REQUEST_CAPACITY);
private final RequestList<ImageDescriptionRequest> imageDescriptionRequests =
@@ -230,8 +217,7 @@ public class ImageCaptioner extends Handler
IconDetectionModuleDownloadPrompter iconDetectionModuleDownloadPrompter,
ImageDescriptionModuleDownloadPrompter imageDescriptionModuleDownloadPrompter,
AccessibilityFocusMonitor accessibilityFocusMonitor,
- TalkBackAnalytics analytics,
- PrimesController primesController) {
+ TalkBackAnalytics analytics) {
super(Looper.myLooper());
this.service = service;
prefs = SharedPreferencesUtils.getSharedPreferences(service);
@@ -240,7 +226,6 @@ public class ImageCaptioner extends Handler
this.accessibilityFocusMonitor = accessibilityFocusMonitor;
this.captionResults = new HashMap<>();
this.analytics = analytics;
- this.primesController = primesController;
this.iconDetectionModuleDownloadPrompter = iconDetectionModuleDownloadPrompter;
this.imageDescriptionModuleDownloadPrompter = imageDescriptionModuleDownloadPrompter;
initialize();
@@ -250,8 +235,7 @@ public class ImageCaptioner extends Handler
AccessibilityService service,
ImageCaptionStorage imageCaptionStorage,
AccessibilityFocusMonitor accessibilityFocusMonitor,
- TalkBackAnalytics analytics,
- PrimesController primesController) {
+ TalkBackAnalytics analytics) {
super(Looper.myLooper());
this.service = service;
prefs = SharedPreferencesUtils.getSharedPreferences(service);
@@ -261,7 +245,6 @@ public class ImageCaptioner extends Handler
this.accessibilityFocusMonitor = accessibilityFocusMonitor;
this.captionResults = new HashMap<>();
this.analytics = analytics;
- this.primesController = primesController;
Downloader downloader = DownloaderFactory.create(service);
downloader.updateAllDownloadStatus();
iconDetectionModuleDownloadPrompter =
@@ -1273,8 +1256,6 @@ public class ImageCaptioner extends Handler
@VisibleForTesting
void onScreenshotCapturePending(boolean scheduled, Duration intervalTime) {
- primesController.recordDuration(
- LATENCY_BETWEEN_SCREENSHOT_CAPTURE_REQUEST, intervalTime.toMillis());
if (scheduled) {
return;
}
@@ -1288,7 +1269,6 @@ public class ImageCaptioner extends Handler
void onCharacterCaptionFinish(
CaptionRequest request, AccessibilityNode node, Result result, boolean isUserRequested) {
if (request.getDurationMillis() != INVALID_DURATION) {
- primesController.recordDuration(IMAGE_CAPTION_OCR_SUCCEED, request.getDurationMillis());
}
analytics.onImageCaptionEvent(IMAGE_CAPTION_EVENT_OCR_PERFORM_SUCCEED);
LogUtils.v(
@@ -1297,7 +1277,6 @@ public class ImageCaptioner extends Handler
+ StringBuilderUtils.joinFields(
StringBuilderUtils.optionalSubObj("result", result.text()),
StringBuilderUtils.optionalSubObj("node", node)));
- characterCaptionRequests.performNextRequest();
handleResult(request.getRequestId(), node, result, isUserRequested);
imageCaptionStorage.updateCharacterCaptionResult(node, result);
@@ -1306,36 +1285,14 @@ public class ImageCaptioner extends Handler
@VisibleForTesting
void addCaptionRequest(
int id, AccessibilityNodeInfoCompat node, Bitmap screenCapture, boolean isUserRequested) {
- characterCaptionRequests.addRequest(
- new CharacterCaptionRequest(
- id,
- service,
- node,
- screenCapture,
- /* onFinishListener= */ this::onCharacterCaptionFinish,
- /* onErrorListener= */ (errorRequest, errorNode, errorCode, userRequest) -> {
- if (errorRequest.getDurationMillis() != INVALID_DURATION) {
- primesController.recordDuration(
- IMAGE_CAPTION_OCR_FAILED, errorRequest.getDurationMillis());
- }
- analytics.onImageCaptionEvent(IMAGE_CAPTION_EVENT_OCR_PERFORM_FAIL);
- LogUtils.v(TAG, "onError(), error= %s", Request.errorName(errorCode));
- characterCaptionRequests.performNextRequest();
- handleResult(
- errorRequest.getRequestId(),
- AccessibilityNode.takeOwnership(node),
- Result.create(OCR, /* result= */ null),
- userRequest);
- },
- isUserRequested));
+
}
@VisibleForTesting
void onIconDetectionFinish(
CaptionRequest request, AccessibilityNode node, Result result, boolean isUserRequested) {
if (request.getDurationMillis() != INVALID_DURATION) {
- primesController.recordDuration(
- IMAGE_CAPTION_ICON_LABEL_SUCCEED, request.getDurationMillis());
+
}
analytics.onImageCaptionEvent(IMAGE_CAPTION_EVENT_ICON_DETECT_SUCCEED);
LogUtils.v(TAG, "onIconDetectionFinish() result=%s node=%s", result.text(), node);
@@ -1358,8 +1315,7 @@ public class ImageCaptioner extends Handler
/* onFinishListener= */ this::onIconDetectionFinish,
/* onErrorListener= */ (errorRequest, errorNode, errorCode, userRequest) -> {
if (errorRequest.getDurationMillis() != INVALID_DURATION) {
- primesController.recordDuration(
- IMAGE_CAPTION_ICON_LABEL_FAILED, errorRequest.getDurationMillis());
+;
}
analytics.onImageCaptionEvent(IMAGE_CAPTION_EVENT_ICON_DETECT_FAIL);
LogUtils.v(TAG, "onError(), error=%s", Request.errorName(errorCode));
@@ -1376,8 +1332,7 @@ public class ImageCaptioner extends Handler
private void onImageDescriptionFinish(
CaptionRequest request, AccessibilityNode node, Result result, boolean isUserRequested) {
if (request.getDurationMillis() != INVALID_DURATION) {
- primesController.recordDuration(
- IMAGE_CAPTION_IMAGE_DESCRIPTION_SUCCEED, request.getDurationMillis());
+
}
analytics.onImageCaptionEvent(IMAGE_CAPTION_EVENT_IMAGE_DESCRIBE_SUCCEED);
LogUtils.v(
@@ -1405,8 +1360,7 @@ public class ImageCaptioner extends Handler
/* onFinishListener= */ this::onImageDescriptionFinish,
/* onErrorListener= */ (errorRequest, errorNode, errorCode, userRequest) -> {
if (errorRequest.getDurationMillis() != INVALID_DURATION) {
- primesController.recordDuration(
- IMAGE_CAPTION_IMAGE_DESCRIPTION_FAILED, errorRequest.getDurationMillis());
+
}
analytics.onImageCaptionEvent(IMAGE_CAPTION_EVENT_IMAGE_DESCRIBE_FAIL);
LogUtils.v(TAG, "onError(), error=%s", Request.errorName(errorCode));
@@ -1495,14 +1449,13 @@ public class ImageCaptioner extends Handler
@VisibleForTesting
void clearRequests() {
screenshotRequests.clear();
- characterCaptionRequests.clear();
iconDetectionRequests.clear();
captionResults.clear();
}
@VisibleForTesting
int getWaitingCharacterCaptionRequestSize() {
- return characterCaptionRequests.getWaitingRequestSize();
+ return 0;
}
@VisibleForTesting
@@ -1708,7 +1661,6 @@ public class ImageCaptioner extends Handler
}
LogUtils.w(TAG, "Caption request is timeout.");
screenshotRequests.clear();
- characterCaptionRequests.clear();
iconDetectionRequests.clear();
imageDescriptionRequests.clear();
captionResults.forEach((key, value) -> value.recycleAndClearScreenshots());
@@ -1723,8 +1675,6 @@ public class ImageCaptioner extends Handler
long startTime = SystemClock.uptimeMillis();
blockedScreenCapture = blockOverlaps(root, node, screenCapture);
- primesController.recordDuration(
- IMAGE_CAPTION_IMAGE_PROCESS_BLOCK_OVERLAY, startTime, SystemClock.uptimeMillis());
if (blockedScreenCapture == null) {
blockedScreenCapture = screenCapture;
} else {
diff --git a/talkback/src/main/java/com/google/android/accessibility/talkback/actor/gemini/GeminiActor.java b/talkback/src/main/java/com/google/android/accessibility/talkback/actor/gemini/GeminiActor.java
index defa22ab..0ae7c1bd 100644
--- a/talkback/src/main/java/com/google/android/accessibility/talkback/actor/gemini/GeminiActor.java
+++ b/talkback/src/main/java/com/google/android/accessibility/talkback/actor/gemini/GeminiActor.java
@@ -16,8 +16,6 @@
package com.google.android.accessibility.talkback.actor.gemini;
-import static com.google.android.accessibility.talkback.PrimesController.TimerAction.GEMINI_ON_DEVICE_RESPONSE_LATENCY;
-import static com.google.android.accessibility.talkback.PrimesController.TimerAction.GEMINI_RESPONSE_LATENCY;
import static com.google.android.accessibility.utils.Performance.EVENT_ID_UNTRACKED;
import android.content.Context;
@@ -28,7 +26,6 @@ import android.os.SystemClock;
import androidx.annotation.StringRes;
import com.google.android.accessibility.talkback.Feedback;
import com.google.android.accessibility.talkback.Pipeline;
-import com.google.android.accessibility.talkback.PrimesController;
import com.google.android.accessibility.talkback.R;
import com.google.android.accessibility.talkback.actor.gemini.AiCoreEndpoint.AiFeatureDownloadCallback;
import com.google.android.accessibility.talkback.analytics.TalkBackAnalytics;
@@ -107,7 +104,6 @@ public class GeminiActor {
private final AiCoreEndpoint aiCoreEndpoint;
private Pipeline.FeedbackReturner pipeline;
private final TalkBackAnalytics analytics;
- private final PrimesController primesController;
// Record the start time of Gemini request, with which TalkBack can measure the latency when the
// Gemini response is received.
private long startTime;
@@ -143,12 +139,10 @@ public class GeminiActor {
public GeminiActor(
Context context,
TalkBackAnalytics analytics,
- PrimesController primesController,
GeminiEndpoint geminiEndpoint,
AiCoreEndpoint aiCoreEndpoint) {
this.context = context;
this.analytics = analytics;
- this.primesController = primesController;
this.geminiEndpoint = geminiEndpoint;
this.mainHandler = new Handler(context.getMainLooper());
this.progressToneDelayed =
@@ -275,12 +269,9 @@ public class GeminiActor {
responseImageCaptionResult(requestId, text, /* isSuccess= */ true, manualTrigger);
}
analytics.onGeminiEvent(TalkBackAnalytics.GEMINI_SUCCESS);
- PrimesController.TimerAction action = GEMINI_RESPONSE_LATENCY;
if (requestIdMap.containsKey(requestId)
&& Objects.equals(requestIdMap.get(requestId), Boolean.FALSE)) {
- action = GEMINI_ON_DEVICE_RESPONSE_LATENCY;
}
- primesController.recordDuration(action, startTime, SystemClock.uptimeMillis());
break;
case ERROR_PARSING_RESULT:
responseImageCaptionResult(
diff --git a/talkback/src/main/java/com/google/android/accessibility/talkback/controller/TelevisionNavigationController.java b/talkback/src/main/java/com/google/android/accessibility/talkback/controller/TelevisionNavigationController.java
index 0090f77d..e8648c90 100644
--- a/talkback/src/main/java/com/google/android/accessibility/talkback/controller/TelevisionNavigationController.java
+++ b/talkback/src/main/java/com/google/android/accessibility/talkback/controller/TelevisionNavigationController.java
@@ -48,8 +48,6 @@ import androidx.core.content.ContextCompat;
import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
import com.google.android.accessibility.talkback.Feedback;
import com.google.android.accessibility.talkback.Pipeline;
-import com.google.android.accessibility.talkback.PrimesController;
-import com.google.android.accessibility.talkback.PrimesController.TimerAction;
import com.google.android.accessibility.talkback.R;
import com.google.android.accessibility.talkback.TalkBackService;
import com.google.android.accessibility.talkback.TvNavigation;
@@ -105,7 +103,6 @@ public class TelevisionNavigationController implements ServiceKeyEventListener {
private final TalkBackService service;
private final AccessibilityFocusMonitor accessibilityFocusMonitor;
private final InputMethodMonitor inputMethodMonitor;
- private final PrimesController primesController;
private final Pipeline.FeedbackReturner pipeline;
private final BroadcastReceiver treeDebugBroadcastReceiver =
new BroadcastReceiver() {
@@ -150,7 +147,6 @@ public class TelevisionNavigationController implements ServiceKeyEventListener {
@NonNull TalkBackService service,
@NonNull AccessibilityFocusMonitor accessibilityFocusMonitor,
@NonNull InputMethodMonitor inputMethodMonitor,
- @NonNull PrimesController primesController,
@NonNull ListMenuManager listMenuManager,
Pipeline.@NonNull FeedbackReturner pipeline,
boolean useHandlerThread) {
@@ -158,7 +154,6 @@ public class TelevisionNavigationController implements ServiceKeyEventListener {
this.accessibilityFocusMonitor = accessibilityFocusMonitor;
this.inputMethodMonitor = inputMethodMonitor;
this.pipeline = pipeline;
- this.primesController = primesController;
this.useHandlerThread = useHandlerThread;
this.listMenuManager = listMenuManager;
@@ -304,10 +299,7 @@ public class TelevisionNavigationController implements ServiceKeyEventListener {
if (eventId != null) {
// We use keyEvent.getEventTime() as starting point because we don't know how long the
// message was enqueued before onKeyEvent() has started.
- primesController.recordDuration(
- TimerAction.DPAD_NAVIGATION,
- eventId.getEventTimeMs(),
- SystemClock.uptimeMillis());
+
}
}
}
diff --git a/talkback/src/main/java/com/google/android/accessibility/talkback/logging/EventLatencyLogger.java b/talkback/src/main/java/com/google/android/accessibility/talkback/logging/EventLatencyLogger.java
index 38313889..feb009d1 100644
--- a/talkback/src/main/java/com/google/android/accessibility/talkback/logging/EventLatencyLogger.java
+++ b/talkback/src/main/java/com/google/android/accessibility/talkback/logging/EventLatencyLogger.java
@@ -19,7 +19,6 @@ package com.google.android.accessibility.talkback.logging;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Handler;
-import com.google.android.accessibility.talkback.PrimesController;
import com.google.android.accessibility.utils.LatencyTracker;
import com.google.android.accessibility.utils.Performance.EventData;
import com.google.android.accessibility.utils.output.FailoverTextToSpeech.FailoverTtsListener;
@@ -27,13 +26,12 @@ import com.google.android.accessibility.utils.output.FailoverTextToSpeech.Uttera
import com.google.android.libraries.accessibility.utils.concurrent.HandlerExecutor;
import java.util.concurrent.Executor;
-/** Logs the event-based latency via {@link PrimesController}. */
+/** Logs the event-based latency */
public class EventLatencyLogger implements LatencyTracker, FailoverTtsListener {
private final Executor executor;
- public EventLatencyLogger(
- PrimesController primesController, Context context, SharedPreferences prefs) {
+ public EventLatencyLogger(Context context, SharedPreferences prefs) {
executor = new HandlerExecutor(new Handler(context.getMainLooper()));
}
diff --git a/talkback/src/wear/java/com/google/android/marvin/talkback/TalkBackService.java b/talkback/src/wear/java/com/google/android/marvin/talkback/TalkBackService.java
index 0a8f694a..dd8d5d86 100644
--- a/talkback/src/wear/java/com/google/android/marvin/talkback/TalkBackService.java
+++ b/talkback/src/wear/java/com/google/android/marvin/talkback/TalkBackService.java
@@ -7,8 +7,6 @@ import android.content.Context;
import android.content.pm.PackageManager;
import android.media.AudioDeviceInfo;
import android.media.AudioManager;
-import android.support.wearable.input.WearableButtons;
-import android.support.wearable.input.WearableButtons.ButtonInfo;
import android.util.Pair;
import android.view.KeyEvent;
import android.view.MotionEvent;
@@ -118,29 +116,7 @@ public class TalkBackService extends com.google.android.accessibility.talkback.T
if (!FormFactorUtils.getInstance().isAndroidWear()) {
return volumeButtons;
}
- if (WearableButtons.getButtonCount(context) != NUM_STEM_BUTTONS_REQUIRED) {
- return volumeButtons;
- }
- ButtonInfo keyCodeStem1Info = WearableButtons.getButtonInfo(context, KeyEvent.KEYCODE_STEM_1);
- ButtonInfo keyCodeStem2Info = WearableButtons.getButtonInfo(context, KeyEvent.KEYCODE_STEM_2);
- if (keyCodeStem1Info == null || keyCodeStem2Info == null) {
- return volumeButtons;
- }
- float x1 = keyCodeStem1Info.getX();
- float x2 = keyCodeStem2Info.getX();
- float y1 = keyCodeStem1Info.getY();
- float y2 = keyCodeStem2Info.getY();
- // Check the X-position is on the same side.
- double center = context.getResources().getDisplayMetrics().widthPixels * 0.5;
- if (!(x1 > center && x2 > center) || (x1 < center && x2 < center)) {
- return volumeButtons;
- }
- // Check the Y-position to determine the top and bottom button.
- if (y1 > y2) {
- return new Pair<>(KeyEvent.KEYCODE_STEM_2, KeyEvent.KEYCODE_STEM_1);
- } else {
- return new Pair<>(KeyEvent.KEYCODE_STEM_1, KeyEvent.KEYCODE_STEM_2);
- }
+ return null;
}
/** Change only the Code and keep all the other values in KeyEvent. */