Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8158af53 authored by Abodunrinwa Toki's avatar Abodunrinwa Toki
Browse files

Introduce TextClassificationManager.

This handles smart selection and language detection features.
This CL only contains code to integrate the TextClassificationManager.
Implementation will be added in a follow up CL.

Test: Test will be added when TextClassificationManager is added.
Bug:32503402
Change-Id: I5f22150ff998156fbc91b51c733d93478efaa51f
parent 86009287
Loading
Loading
Loading
Loading
+14 −0
Original line number Original line Diff line number Diff line
@@ -8384,6 +8384,7 @@ package android.content {
    field public static final java.lang.String TELECOM_SERVICE = "telecom";
    field public static final java.lang.String TELECOM_SERVICE = "telecom";
    field public static final java.lang.String TELEPHONY_SERVICE = "phone";
    field public static final java.lang.String TELEPHONY_SERVICE = "phone";
    field public static final java.lang.String TELEPHONY_SUBSCRIPTION_SERVICE = "telephony_subscription_service";
    field public static final java.lang.String TELEPHONY_SUBSCRIPTION_SERVICE = "telephony_subscription_service";
    field public static final java.lang.String TEXT_CLASSIFICATION_SERVICE = "textclassification";
    field public static final java.lang.String TEXT_SERVICES_MANAGER_SERVICE = "textservices";
    field public static final java.lang.String TEXT_SERVICES_MANAGER_SERVICE = "textservices";
    field public static final java.lang.String TV_INPUT_SERVICE = "tv_input";
    field public static final java.lang.String TV_INPUT_SERVICE = "tv_input";
    field public static final java.lang.String UI_MODE_SERVICE = "uimode";
    field public static final java.lang.String UI_MODE_SERVICE = "uimode";
@@ -39243,6 +39244,12 @@ package android.text {
    method public java.util.Map<java.lang.String, java.lang.Float> getTypeConfidence();
    method public java.util.Map<java.lang.String, java.lang.Float> getTypeConfidence();
  }
  }
  public final class TextClassificationManager implements android.text.TextAssistant {
    method public void addLinks(android.text.Spannable, int);
    method public java.util.List<android.text.TextLanguage> detectLanguages(java.lang.CharSequence);
    method public android.text.TextSelection suggestSelection(java.lang.CharSequence, int, int);
  }
  public abstract interface TextDirectionHeuristic {
  public abstract interface TextDirectionHeuristic {
    method public abstract boolean isRtl(char[], int, int);
    method public abstract boolean isRtl(char[], int, int);
    method public abstract boolean isRtl(java.lang.CharSequence, int, int);
    method public abstract boolean isRtl(java.lang.CharSequence, int, int);
@@ -39258,6 +39265,13 @@ package android.text {
    field public static final android.text.TextDirectionHeuristic RTL;
    field public static final android.text.TextDirectionHeuristic RTL;
  }
  }
  public final class TextLanguage {
    ctor public TextLanguage(int, int, java.util.Map<java.lang.String, java.lang.Float>);
    method public int getEndIndex();
    method public java.util.Map<java.lang.String, java.lang.Float> getLanguageConfidence();
    method public int getStartIndex();
  }
  public class TextPaint extends android.graphics.Paint {
  public class TextPaint extends android.graphics.Paint {
    ctor public TextPaint();
    ctor public TextPaint();
    ctor public TextPaint(int);
    ctor public TextPaint(int);
+14 −0
Original line number Original line Diff line number Diff line
@@ -8730,6 +8730,7 @@ package android.content {
    field public static final java.lang.String TELECOM_SERVICE = "telecom";
    field public static final java.lang.String TELECOM_SERVICE = "telecom";
    field public static final java.lang.String TELEPHONY_SERVICE = "phone";
    field public static final java.lang.String TELEPHONY_SERVICE = "phone";
    field public static final java.lang.String TELEPHONY_SUBSCRIPTION_SERVICE = "telephony_subscription_service";
    field public static final java.lang.String TELEPHONY_SUBSCRIPTION_SERVICE = "telephony_subscription_service";
    field public static final java.lang.String TEXT_CLASSIFICATION_SERVICE = "textclassification";
    field public static final java.lang.String TEXT_SERVICES_MANAGER_SERVICE = "textservices";
    field public static final java.lang.String TEXT_SERVICES_MANAGER_SERVICE = "textservices";
    field public static final java.lang.String TV_INPUT_SERVICE = "tv_input";
    field public static final java.lang.String TV_INPUT_SERVICE = "tv_input";
    field public static final java.lang.String UI_MODE_SERVICE = "uimode";
    field public static final java.lang.String UI_MODE_SERVICE = "uimode";
@@ -42431,6 +42432,12 @@ package android.text {
    method public java.util.Map<java.lang.String, java.lang.Float> getTypeConfidence();
    method public java.util.Map<java.lang.String, java.lang.Float> getTypeConfidence();
  }
  }
  public final class TextClassificationManager implements android.text.TextAssistant {
    method public void addLinks(android.text.Spannable, int);
    method public java.util.List<android.text.TextLanguage> detectLanguages(java.lang.CharSequence);
    method public android.text.TextSelection suggestSelection(java.lang.CharSequence, int, int);
  }
  public abstract interface TextDirectionHeuristic {
  public abstract interface TextDirectionHeuristic {
    method public abstract boolean isRtl(char[], int, int);
    method public abstract boolean isRtl(char[], int, int);
    method public abstract boolean isRtl(java.lang.CharSequence, int, int);
    method public abstract boolean isRtl(java.lang.CharSequence, int, int);
@@ -42446,6 +42453,13 @@ package android.text {
    field public static final android.text.TextDirectionHeuristic RTL;
    field public static final android.text.TextDirectionHeuristic RTL;
  }
  }
  public final class TextLanguage {
    ctor public TextLanguage(int, int, java.util.Map<java.lang.String, java.lang.Float>);
    method public int getEndIndex();
    method public java.util.Map<java.lang.String, java.lang.Float> getLanguageConfidence();
    method public int getStartIndex();
  }
  public class TextPaint extends android.graphics.Paint {
  public class TextPaint extends android.graphics.Paint {
    ctor public TextPaint();
    ctor public TextPaint();
    ctor public TextPaint(int);
    ctor public TextPaint(int);
+14 −0
Original line number Original line Diff line number Diff line
@@ -8408,6 +8408,7 @@ package android.content {
    field public static final java.lang.String TELECOM_SERVICE = "telecom";
    field public static final java.lang.String TELECOM_SERVICE = "telecom";
    field public static final java.lang.String TELEPHONY_SERVICE = "phone";
    field public static final java.lang.String TELEPHONY_SERVICE = "phone";
    field public static final java.lang.String TELEPHONY_SUBSCRIPTION_SERVICE = "telephony_subscription_service";
    field public static final java.lang.String TELEPHONY_SUBSCRIPTION_SERVICE = "telephony_subscription_service";
    field public static final java.lang.String TEXT_CLASSIFICATION_SERVICE = "textclassification";
    field public static final java.lang.String TEXT_SERVICES_MANAGER_SERVICE = "textservices";
    field public static final java.lang.String TEXT_SERVICES_MANAGER_SERVICE = "textservices";
    field public static final java.lang.String TV_INPUT_SERVICE = "tv_input";
    field public static final java.lang.String TV_INPUT_SERVICE = "tv_input";
    field public static final java.lang.String UI_MODE_SERVICE = "uimode";
    field public static final java.lang.String UI_MODE_SERVICE = "uimode";
@@ -39342,6 +39343,12 @@ package android.text {
    method public java.util.Map<java.lang.String, java.lang.Float> getTypeConfidence();
    method public java.util.Map<java.lang.String, java.lang.Float> getTypeConfidence();
  }
  }
  public final class TextClassificationManager implements android.text.TextAssistant {
    method public void addLinks(android.text.Spannable, int);
    method public java.util.List<android.text.TextLanguage> detectLanguages(java.lang.CharSequence);
    method public android.text.TextSelection suggestSelection(java.lang.CharSequence, int, int);
  }
  public abstract interface TextDirectionHeuristic {
  public abstract interface TextDirectionHeuristic {
    method public abstract boolean isRtl(char[], int, int);
    method public abstract boolean isRtl(char[], int, int);
    method public abstract boolean isRtl(java.lang.CharSequence, int, int);
    method public abstract boolean isRtl(java.lang.CharSequence, int, int);
@@ -39357,6 +39364,13 @@ package android.text {
    field public static final android.text.TextDirectionHeuristic RTL;
    field public static final android.text.TextDirectionHeuristic RTL;
  }
  }
  public final class TextLanguage {
    ctor public TextLanguage(int, int, java.util.Map<java.lang.String, java.lang.Float>);
    method public int getEndIndex();
    method public java.util.Map<java.lang.String, java.lang.Float> getLanguageConfidence();
    method public int getStartIndex();
  }
  public class TextPaint extends android.graphics.Paint {
  public class TextPaint extends android.graphics.Paint {
    ctor public TextPaint();
    ctor public TextPaint();
    ctor public TextPaint(int);
    ctor public TextPaint(int);
+2 −1
Original line number Original line Diff line number Diff line
@@ -75,6 +75,7 @@ import android.service.autofill.IAutoFillCallback;
import android.text.Selection;
import android.text.Selection;
import android.text.SpannableStringBuilder;
import android.text.SpannableStringBuilder;
import android.text.TextAssistant;
import android.text.TextAssistant;
import android.text.TextClassificationManager;
import android.text.TextUtils;
import android.text.TextUtils;
import android.text.method.TextKeyListener;
import android.text.method.TextKeyListener;
import android.transition.Scene;
import android.transition.Scene;
@@ -1402,7 +1403,7 @@ public class Activity extends ContextThemeWrapper
        if (mTextAssistant != null) {
        if (mTextAssistant != null) {
            return mTextAssistant;
            return mTextAssistant;
        }
        }
        return TextAssistant.NO_OP;
        return getSystemService(TextClassificationManager.class);
    }
    }


    /**
    /**
+8 −0
Original line number Original line Diff line number Diff line
@@ -115,6 +115,7 @@ import android.telecom.TelecomManager;
import android.telephony.CarrierConfigManager;
import android.telephony.CarrierConfigManager;
import android.telephony.SubscriptionManager;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.telephony.TelephonyManager;
import android.text.TextClassificationManager;
import android.util.Log;
import android.util.Log;
import android.view.ContextThemeWrapper;
import android.view.ContextThemeWrapper;
import android.view.LayoutInflater;
import android.view.LayoutInflater;
@@ -221,6 +222,13 @@ final class SystemServiceRegistry {
                return new HdmiControlManager(IHdmiControlService.Stub.asInterface(b));
                return new HdmiControlManager(IHdmiControlService.Stub.asInterface(b));
            }});
            }});


        registerService(Context.TEXT_CLASSIFICATION_SERVICE, TextClassificationManager.class,
                new StaticServiceFetcher<TextClassificationManager>() {
            @Override
            public TextClassificationManager createService() {
                return new TextClassificationManager();
            }});

        registerService(Context.CLIPBOARD_SERVICE, ClipboardManager.class,
        registerService(Context.CLIPBOARD_SERVICE, ClipboardManager.class,
                new CachedServiceFetcher<ClipboardManager>() {
                new CachedServiceFetcher<ClipboardManager>() {
            @Override
            @Override
Loading