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

Commit 4cf097cf authored by Abodunrinwa Toki's avatar Abodunrinwa Toki Committed by Android (Google) Code Review
Browse files

Merge "Introduce TextAssistant for Smart Text Share feature."

parents 324e1539 d0d9ceb3
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -3497,6 +3497,7 @@ package android.app {
    method public int getRequestedOrientation();
    method public final android.view.SearchEvent getSearchEvent();
    method public int getTaskId();
    method public android.text.TextAssistant getTextAssistant();
    method public final java.lang.CharSequence getTitle();
    method public final int getTitleColor();
    method public android.app.VoiceInteractor getVoiceInteractor();
@@ -3646,6 +3647,7 @@ package android.app {
    method public final void setResult(int, android.content.Intent);
    method public final deprecated void setSecondaryProgress(int);
    method public void setTaskDescription(android.app.ActivityManager.TaskDescription);
    method public void setTextAssistant(android.text.TextAssistant);
    method public void setTitle(java.lang.CharSequence);
    method public void setTitle(int);
    method public deprecated void setTitleColor(int);
@@ -38988,6 +38990,16 @@ package android.text {
    method public android.text.StaticLayout.Builder setTextDirection(android.text.TextDirectionHeuristic);
  }
  public abstract interface TextAssistant {
    method public abstract void addLinks(android.text.Spannable, int);
    method public abstract android.text.TextSelection suggestSelection(java.lang.CharSequence, int, int);
  }
  public class TextClassification {
    ctor public TextClassification();
    method public java.util.Map<java.lang.String, java.lang.Float> getTypeConfidence();
  }
  public abstract interface TextDirectionHeuristic {
    method public abstract boolean isRtl(char[], int, int);
    method public abstract boolean isRtl(java.lang.CharSequence, int, int);
@@ -39015,6 +39027,13 @@ package android.text {
    field public int linkColor;
  }
  public class TextSelection {
    ctor public TextSelection();
    method public int getSelectionEndIndex();
    method public int getSelectionStartIndex();
    method public android.text.TextClassification getTextClassification();
  }
  public class TextUtils {
    method public static deprecated java.lang.CharSequence commaEllipsize(java.lang.CharSequence, android.text.TextPaint, float, java.lang.String, java.lang.String);
    method public static java.lang.CharSequence concat(java.lang.CharSequence...);
@@ -48487,6 +48506,7 @@ package android.widget {
    method public float getShadowRadius();
    method public final boolean getShowSoftInputOnFocus();
    method public java.lang.CharSequence getText();
    method public android.text.TextAssistant getTextAssistant();
    method public final android.content.res.ColorStateList getTextColors();
    method public java.util.Locale getTextLocale();
    method public android.os.LocaleList getTextLocales();
@@ -48597,6 +48617,7 @@ package android.widget {
    method public final void setText(int, android.widget.TextView.BufferType);
    method public void setTextAppearance(int);
    method public deprecated void setTextAppearance(android.content.Context, int);
    method public void setTextAssistant(android.text.TextAssistant);
    method public void setTextColor(int);
    method public void setTextColor(android.content.res.ColorStateList);
    method public void setTextIsSelectable(boolean);
+21 −0
Original line number Diff line number Diff line
@@ -3614,6 +3614,7 @@ package android.app {
    method public int getRequestedOrientation();
    method public final android.view.SearchEvent getSearchEvent();
    method public int getTaskId();
    method public android.text.TextAssistant getTextAssistant();
    method public final java.lang.CharSequence getTitle();
    method public final int getTitleColor();
    method public android.app.VoiceInteractor getVoiceInteractor();
@@ -3765,6 +3766,7 @@ package android.app {
    method public final void setResult(int, android.content.Intent);
    method public final deprecated void setSecondaryProgress(int);
    method public void setTaskDescription(android.app.ActivityManager.TaskDescription);
    method public void setTextAssistant(android.text.TextAssistant);
    method public void setTitle(java.lang.CharSequence);
    method public void setTitle(int);
    method public deprecated void setTitleColor(int);
@@ -42150,6 +42152,16 @@ package android.text {
    method public android.text.StaticLayout.Builder setTextDirection(android.text.TextDirectionHeuristic);
  }
  public abstract interface TextAssistant {
    method public abstract void addLinks(android.text.Spannable, int);
    method public abstract android.text.TextSelection suggestSelection(java.lang.CharSequence, int, int);
  }
  public class TextClassification {
    ctor public TextClassification();
    method public java.util.Map<java.lang.String, java.lang.Float> getTypeConfidence();
  }
  public abstract interface TextDirectionHeuristic {
    method public abstract boolean isRtl(char[], int, int);
    method public abstract boolean isRtl(java.lang.CharSequence, int, int);
@@ -42177,6 +42189,13 @@ package android.text {
    field public int linkColor;
  }
  public class TextSelection {
    ctor public TextSelection();
    method public int getSelectionEndIndex();
    method public int getSelectionStartIndex();
    method public android.text.TextClassification getTextClassification();
  }
  public class TextUtils {
    method public static deprecated java.lang.CharSequence commaEllipsize(java.lang.CharSequence, android.text.TextPaint, float, java.lang.String, java.lang.String);
    method public static java.lang.CharSequence concat(java.lang.CharSequence...);
@@ -52008,6 +52027,7 @@ package android.widget {
    method public float getShadowRadius();
    method public final boolean getShowSoftInputOnFocus();
    method public java.lang.CharSequence getText();
    method public android.text.TextAssistant getTextAssistant();
    method public final android.content.res.ColorStateList getTextColors();
    method public java.util.Locale getTextLocale();
    method public android.os.LocaleList getTextLocales();
@@ -52118,6 +52138,7 @@ package android.widget {
    method public final void setText(int, android.widget.TextView.BufferType);
    method public void setTextAppearance(int);
    method public deprecated void setTextAppearance(android.content.Context, int);
    method public void setTextAssistant(android.text.TextAssistant);
    method public void setTextColor(int);
    method public void setTextColor(android.content.res.ColorStateList);
    method public void setTextIsSelectable(boolean);
+21 −0
Original line number Diff line number Diff line
@@ -3499,6 +3499,7 @@ package android.app {
    method public int getRequestedOrientation();
    method public final android.view.SearchEvent getSearchEvent();
    method public int getTaskId();
    method public android.text.TextAssistant getTextAssistant();
    method public final java.lang.CharSequence getTitle();
    method public final int getTitleColor();
    method public android.app.VoiceInteractor getVoiceInteractor();
@@ -3648,6 +3649,7 @@ package android.app {
    method public final void setResult(int, android.content.Intent);
    method public final deprecated void setSecondaryProgress(int);
    method public void setTaskDescription(android.app.ActivityManager.TaskDescription);
    method public void setTextAssistant(android.text.TextAssistant);
    method public void setTitle(java.lang.CharSequence);
    method public void setTitle(int);
    method public deprecated void setTitleColor(int);
@@ -39080,6 +39082,16 @@ package android.text {
    method public android.text.StaticLayout.Builder setTextDirection(android.text.TextDirectionHeuristic);
  }
  public abstract interface TextAssistant {
    method public abstract void addLinks(android.text.Spannable, int);
    method public abstract android.text.TextSelection suggestSelection(java.lang.CharSequence, int, int);
  }
  public class TextClassification {
    ctor public TextClassification();
    method public java.util.Map<java.lang.String, java.lang.Float> getTypeConfidence();
  }
  public abstract interface TextDirectionHeuristic {
    method public abstract boolean isRtl(char[], int, int);
    method public abstract boolean isRtl(java.lang.CharSequence, int, int);
@@ -39107,6 +39119,13 @@ package android.text {
    field public int linkColor;
  }
  public class TextSelection {
    ctor public TextSelection();
    method public int getSelectionEndIndex();
    method public int getSelectionStartIndex();
    method public android.text.TextClassification getTextClassification();
  }
  public class TextUtils {
    method public static deprecated java.lang.CharSequence commaEllipsize(java.lang.CharSequence, android.text.TextPaint, float, java.lang.String, java.lang.String);
    method public static java.lang.CharSequence concat(java.lang.CharSequence...);
@@ -48745,6 +48764,7 @@ package android.widget {
    method public float getShadowRadius();
    method public final boolean getShowSoftInputOnFocus();
    method public java.lang.CharSequence getText();
    method public android.text.TextAssistant getTextAssistant();
    method public final android.content.res.ColorStateList getTextColors();
    method public java.util.Locale getTextLocale();
    method public android.os.LocaleList getTextLocales();
@@ -48855,6 +48875,7 @@ package android.widget {
    method public final void setText(int, android.widget.TextView.BufferType);
    method public void setTextAppearance(int);
    method public deprecated void setTextAppearance(android.content.Context, int);
    method public void setTextAssistant(android.text.TextAssistant);
    method public void setTextColor(int);
    method public void setTextColor(android.content.res.ColorStateList);
    method public void setTextIsSelectable(boolean);
+21 −0
Original line number Diff line number Diff line
@@ -74,6 +74,7 @@ import android.service.autofill.AutoFillService;
import android.service.autofill.IAutoFillCallback;
import android.text.Selection;
import android.text.SpannableStringBuilder;
import android.text.TextAssistant;
import android.text.TextUtils;
import android.text.method.TextKeyListener;
import android.transition.Scene;
@@ -783,6 +784,8 @@ public class Activity extends ContextThemeWrapper

    private VoiceInteractor mVoiceInteractor;

    private TextAssistant mTextAssistant;

    private CharSequence mTitle;
    private int mTitleColor = 0;

@@ -1384,6 +1387,24 @@ public class Activity extends ContextThemeWrapper
        }
    }

    /**
     * Sets the default {@link TextAssistant} for {@link android.widget.TextView}s in this Activity.
     */
    public void setTextAssistant(TextAssistant textAssistant) {
        mTextAssistant = textAssistant;
    }

    /**
     * Returns the default {@link TextAssistant} for {@link android.widget.TextView}s
     * in this Activity.
     */
    public TextAssistant getTextAssistant() {
        if (mTextAssistant != null) {
            return mTextAssistant;
        }
        return TextAssistant.NO_OP;
    }

    /**
     * This is called for activities that set launchMode to "singleTop" in
     * their package, or if a client used the {@link Intent#FLAG_ACTIVITY_SINGLE_TOP}
+56 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2016 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.
 */

package android.text;

/**
 * Interface for providing text assistant features.
 */
public interface TextAssistant {

    /**
     * NO_OP TextAssistant. This will act as the default TextAssistant until we implement a
     * TextClassificationManager.
     * @hide
     */
    TextAssistant NO_OP = new TextAssistant() {

        private final TextSelection mTextSelection = new TextSelection();

        @Override
        public TextSelection suggestSelection(
                CharSequence text, int selectionStartIndex, int selectionEndIndex) {
            mTextSelection.mStartIndex = selectionStartIndex;
            mTextSelection.mEndIndex = selectionEndIndex;
            return mTextSelection;
        }

        @Override
        public void addLinks(Spannable text, int linkMask) {}
    };

    /**
     * Returns suggested text selection indices, recognized types and their associated confidence
     * scores. The selections are ordered from highest to lowest scoring.
     */
    TextSelection suggestSelection(
            CharSequence text, int selectionStartIndex, int selectionEndIndex);

    /**
     * Adds assistance clickable spans to the provided text.
     */
    void addLinks(Spannable text, int linkMask);
}
Loading