Example output:
Text classifier constants=null
TextClassifierImpl:
Model file(s):
ModelFile { path=/data/misc/textclassifier/textclassifier.model name=textclassifier.model version=603 locales=en }
ModelFile { path=/etc/textclassifier/textclassifier.universal.model name=textclassifier.universal.model version=6 locales=und }
ModelFile { path=/etc/textclassifier/textclassifier.en.model name=textclassifier.en.model version=6 locales=en }
mFallback=android.view.textclassifier.TextClassifier$1@8269b3
SystemTextClassifier:
mFallback=android.view.textclassifier.TextClassifierImpl@
72dbb70 mPackageName=android mSessionId=null isSystemTextClassifierEnabled=true
TextClassificationConstants:
isLocalTextClassifierEnabled=true isSystemTextClassifierEnabled=true isModelDarkLaunchEnabled=false isSmartSelectionEnabled=true isSmartTextShareEnabled=true isSmartLinkifyEnabled=true isSmartSelectionAnimationEnabled=true getSuggestSelectionMaxRangeLength=10000 getClassifyTextMaxRangeLength=10000 getGenerateLinksMaxTextLength=100000 getGenerateLinksLogSampleRate=100 getEntityListDefault=[address, email, phone, url, date, datetime, flight] getEntityListNotEditable=[address, email, phone, url, date, datetime, flight] getEntityListEditable=[address, email, phone, url, date, datetime, flight]
FIXES:
111434669
Test: adb shell dumpsys textclassification
Change-Id: If0cbc290034ff51ec31fed1ce08e5bc806603549
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.annotations.VisibleForTesting.Visibility;
+import com.android.internal.util.IndentingPrintWriter;
import com.android.internal.util.Preconditions;
import java.util.concurrent.CountDownLatch;
}
}
+ @Override
+ public void dump(@NonNull IndentingPrintWriter printWriter) {
+ printWriter.println("SystemTextClassifier:");
+ printWriter.increaseIndent();
+ printWriter.printPair("mFallback", mFallback);
+ printWriter.printPair("mPackageName", mPackageName);
+ printWriter.printPair("mSessionId", mSessionId);
+ printWriter.decreaseIndent();
+ printWriter.println();
+ }
+
/**
* Attempts to initialize a new classification session.
*
import android.util.KeyValueListParser;
import android.util.Slog;
+import com.android.internal.util.IndentingPrintWriter;
+
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
private static List<String> parseEntityList(String listStr) {
return Collections.unmodifiableList(Arrays.asList(listStr.split(ENTITY_LIST_DELIMITER)));
}
+
+ void dump(IndentingPrintWriter pw) {
+ pw.println("TextClassificationConstants:");
+ pw.increaseIndent();
+ pw.printPair("isLocalTextClassifierEnabled", mLocalTextClassifierEnabled);
+ pw.printPair("isSystemTextClassifierEnabled", mSystemTextClassifierEnabled);
+ pw.printPair("isModelDarkLaunchEnabled", mModelDarkLaunchEnabled);
+ pw.printPair("isSmartSelectionEnabled", mSmartSelectionEnabled);
+ pw.printPair("isSmartTextShareEnabled", mSmartTextShareEnabled);
+ pw.printPair("isSmartLinkifyEnabled", mSmartLinkifyEnabled);
+ pw.printPair("isSmartSelectionAnimationEnabled", mSmartSelectionAnimationEnabled);
+ pw.printPair("getSuggestSelectionMaxRangeLength", mSuggestSelectionMaxRangeLength);
+ pw.printPair("getClassifyTextMaxRangeLength", mClassifyTextMaxRangeLength);
+ pw.printPair("getGenerateLinksMaxTextLength", mGenerateLinksMaxTextLength);
+ pw.printPair("getGenerateLinksLogSampleRate", mGenerateLinksLogSampleRate);
+ pw.printPair("getEntityListDefault", mEntityListDefault);
+ pw.printPair("getEntityListNotEditable", mEntityListNotEditable);
+ pw.printPair("getEntityListEditable", mEntityListEditable);
+ pw.decreaseIndent();
+ pw.println();
+ }
}
import android.view.textclassifier.TextClassifier.TextClassifierType;
import com.android.internal.annotations.GuardedBy;
+import com.android.internal.util.IndentingPrintWriter;
import com.android.internal.util.Preconditions;
import java.lang.ref.WeakReference;
: mContext;
}
+ /** @hide **/
+ public void dump(IndentingPrintWriter pw) {
+ getLocalTextClassifier().dump(pw);
+ getSystemTextClassifier().dump(pw);
+ getSettings().dump(pw);
+ }
+
/** @hide */
public static TextClassificationConstants getSettings(Context context) {
Preconditions.checkNotNull(context);
import android.util.ArrayMap;
import android.util.ArraySet;
+import com.android.internal.util.IndentingPrintWriter;
import com.android.internal.util.Preconditions;
import java.lang.annotation.Retention;
return false;
}
+ /** @hide **/
+ default void dump(@NonNull IndentingPrintWriter printWriter) {
+
+ }
+
/**
* Configuration object for specifying what entities to identify.
*
import android.provider.ContactsContract;
import com.android.internal.annotations.GuardedBy;
+import com.android.internal.util.IndentingPrintWriter;
import com.android.internal.util.Preconditions;
import java.io.File;
return builder.setId(createId(text, start, end)).build();
}
+ @Override
+ public void dump(@NonNull IndentingPrintWriter printWriter) {
+ synchronized (mLock) {
+ listAllModelsLocked();
+ printWriter.println("TextClassifierImpl:");
+ printWriter.increaseIndent();
+ printWriter.println("Model file(s):");
+ printWriter.increaseIndent();
+ for (ModelFile modelFile : mAllModelFiles) {
+ printWriter.println(modelFile.toString());
+ }
+ printWriter.decreaseIndent();
+ printWriter.printPair("mFallback", mFallback);
+ printWriter.decreaseIndent();
+ printWriter.println();
+ }
+ }
+
/**
* Closes the ParcelFileDescriptor and logs any errors that occur.
*/
import android.os.IBinder;
import android.os.RemoteException;
import android.os.UserHandle;
+import android.provider.Settings;
import android.service.textclassifier.ITextClassificationCallback;
import android.service.textclassifier.ITextClassifierService;
import android.service.textclassifier.ITextLinksCallback;
import android.view.textclassifier.SelectionEvent;
import android.view.textclassifier.TextClassification;
import android.view.textclassifier.TextClassificationContext;
+import android.view.textclassifier.TextClassificationManager;
import android.view.textclassifier.TextClassificationSessionId;
+import android.view.textclassifier.TextClassifier;
import android.view.textclassifier.TextLinks;
import android.view.textclassifier.TextSelection;
import com.android.internal.annotations.GuardedBy;
+import com.android.internal.util.DumpUtils;
import com.android.internal.util.FunctionalUtils;
import com.android.internal.util.FunctionalUtils.ThrowingRunnable;
+import com.android.internal.util.IndentingPrintWriter;
import com.android.internal.util.Preconditions;
import com.android.server.SystemService;
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
import java.util.ArrayDeque;
import java.util.Queue;
return mUserStates.get(userId);
}
+ @Override
+ protected void dump(FileDescriptor fd, PrintWriter fout, String[] args) {
+ if (!DumpUtils.checkDumpPermission(mContext, LOG_TAG, fout)) return;
+ IndentingPrintWriter pw = new IndentingPrintWriter(fout, " ");
+ TextClassificationManager tcm = mContext.getSystemService(TextClassificationManager.class);
+ tcm.dump(pw);
+ }
+
private static final class PendingRequest implements IBinder.DeathRecipient {
@Nullable private final IBinder mBinder;