Loading core/api/system-current.txt +5 −0 Original line number Diff line number Diff line Loading @@ -418,6 +418,7 @@ package android { field public static final int allowClearUserDataOnFailedRestore = 16844288; // 0x1010600 field public static final int gameSessionService = 16844373; // 0x1010655 field public static final int hotwordDetectionService = 16844326; // 0x1010626 field @FlaggedApi("android.companion.virtual.flags.vdm_custom_ime") public static final int isVirtualDeviceOnly; field public static final int isVrOnly = 16844152; // 0x1010578 field public static final int minExtensionVersion = 16844305; // 0x1010611 field public static final int playHomeTransitionSound = 16844358; // 0x1010646 Loading Loading @@ -17290,6 +17291,10 @@ package android.view.displayhash { package android.view.inputmethod { public final class InputMethodInfo implements android.os.Parcelable { method @FlaggedApi("android.companion.virtual.flags.vdm_custom_ime") public boolean isVirtualDeviceOnly(); } public final class InputMethodManager { method @Nullable @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) public android.view.inputmethod.InputMethodInfo getCurrentInputMethodInfoAsUser(@NonNull android.os.UserHandle); } core/java/android/companion/virtual/flags.aconfig +7 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,13 @@ flag { bug: "300905478" } flag { name: "vdm_custom_ime" namespace: "virtual_devices" description: "Enable custom IME API" bug: "287269288" } flag { name: "vdm_custom_home" namespace: "virtual_devices" Loading core/java/android/view/inputmethod/InputMethodInfo.java +37 −7 Original line number Diff line number Diff line Loading @@ -16,9 +16,11 @@ package android.view.inputmethod; import android.annotation.FlaggedApi; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SuppressLint; import android.annotation.SystemApi; import android.annotation.TestApi; import android.compat.annotation.UnsupportedAppUsage; import android.content.ComponentName; Loading Loading @@ -112,6 +114,11 @@ public final class InputMethodInfo implements Parcelable { */ final boolean mIsVrOnly; /** * IME only supports virtual devices. */ final boolean mIsVirtualDeviceOnly; /** * The unique string Id to identify the input method. This is generated * from the input method component. Loading Loading @@ -239,6 +246,7 @@ public final class InputMethodInfo implements Parcelable { String settingsActivityComponent = null; String stylusHandwritingSettingsActivity = null; boolean isVrOnly; boolean isVirtualDeviceOnly; int isDefaultResId = 0; XmlResourceParser parser = null; Loading Loading @@ -277,6 +285,8 @@ public final class InputMethodInfo implements Parcelable { } isVrOnly = sa.getBoolean(com.android.internal.R.styleable.InputMethod_isVrOnly, false); isVirtualDeviceOnly = sa.getBoolean( com.android.internal.R.styleable.InputMethod_isVirtualDeviceOnly, false); isDefaultResId = sa.getResourceId( com.android.internal.R.styleable.InputMethod_isDefault, 0); supportsSwitchingToNextInputMethod = sa.getBoolean( Loading Loading @@ -382,6 +392,7 @@ public final class InputMethodInfo implements Parcelable { mSuppressesSpellChecker = suppressesSpellChecker; mShowInInputMethodPicker = showInInputMethodPicker; mIsVrOnly = isVrOnly; mIsVirtualDeviceOnly = isVirtualDeviceOnly; } /** Loading @@ -399,6 +410,7 @@ public final class InputMethodInfo implements Parcelable { mSuppressesSpellChecker = source.mSuppressesSpellChecker; mShowInInputMethodPicker = source.mShowInInputMethodPicker; mIsVrOnly = source.mIsVrOnly; mIsVirtualDeviceOnly = source.mIsVirtualDeviceOnly; mService = source.mService; mSubtypes = source.mSubtypes; mHandledConfigChanges = source.mHandledConfigChanges; Loading @@ -418,6 +430,7 @@ public final class InputMethodInfo implements Parcelable { mSuppressesSpellChecker = source.readBoolean(); mShowInInputMethodPicker = source.readBoolean(); mIsVrOnly = source.readBoolean(); mIsVirtualDeviceOnly = source.readBoolean(); mService = ResolveInfo.CREATOR.createFromParcel(source); mSubtypes = new InputMethodSubtypeArray(source); mHandledConfigChanges = source.readInt(); Loading @@ -435,7 +448,8 @@ public final class InputMethodInfo implements Parcelable { settingsActivity, null /* subtypes */, 0 /* isDefaultResId */, false /* forceDefault */, true /* supportsSwitchingToNextInputMethod */, false /* inlineSuggestionsEnabled */, false /* isVrOnly */, 0 /* handledConfigChanges */, false /* supportsStylusHandwriting */, false /* isVirtualDeviceOnly */, 0 /* handledConfigChanges */, false /* supportsStylusHandwriting */, null /* stylusHandwritingSettingsActivityAttr */, false /* inlineSuggestionsEnabled */); } Loading @@ -453,8 +467,9 @@ public final class InputMethodInfo implements Parcelable { settingsActivity, null /* subtypes */, 0 /* isDefaultResId */, false /* forceDefault */, true /* supportsSwitchingToNextInputMethod */, false /* inlineSuggestionsEnabled */, false /* isVrOnly */, 0 /* handledConfigChanges */, supportStylusHandwriting, stylusHandwritingSettingsActivityAttr, false /* inlineSuggestionsEnabled */); false /* isVirtualDeviceOnly */, 0 /* handledConfigChanges */, supportStylusHandwriting, stylusHandwritingSettingsActivityAttr, false /* inlineSuggestionsEnabled */); } /** Loading @@ -468,7 +483,8 @@ public final class InputMethodInfo implements Parcelable { this(buildFakeResolveInfo(packageName, className, label), false /* isAuxIme */, settingsActivity, null /* subtypes */, 0 /* isDefaultResId */, false /* forceDefault */, true /* supportsSwitchingToNextInputMethod */, false /* inlineSuggestionsEnabled */, false /* isVrOnly */, handledConfigChanges, false /* inlineSuggestionsEnabled */, false /* isVrOnly */, false /* isVirtualDeviceOnly */, handledConfigChanges, false /* supportsStylusHandwriting */, null /* stylusHandwritingSettingsActivityAttr */, false /* inlineSuggestionsEnabled */); Loading @@ -483,7 +499,7 @@ public final class InputMethodInfo implements Parcelable { boolean forceDefault) { this(ri, isAuxIme, settingsActivity, subtypes, isDefaultResId, forceDefault, true /* supportsSwitchingToNextInputMethod */, false /* inlineSuggestionsEnabled */, false /* isVrOnly */, 0 /* handledconfigChanges */, false /* isVrOnly */, false /* isVirtualDeviceOnly */, 0 /* handledconfigChanges */, false /* supportsStylusHandwriting */, null /* stylusHandwritingSettingsActivityAttr */, false /* inlineSuggestionsEnabled */); Loading @@ -498,6 +514,7 @@ public final class InputMethodInfo implements Parcelable { boolean supportsSwitchingToNextInputMethod, boolean isVrOnly) { this(ri, isAuxIme, settingsActivity, subtypes, isDefaultResId, forceDefault, supportsSwitchingToNextInputMethod, false /* inlineSuggestionsEnabled */, isVrOnly, false /* isVirtualDeviceOnly */, 0 /* handledConfigChanges */, false /* supportsStylusHandwriting */, null /* stylusHandwritingSettingsActivityAttr */, false /* inlineSuggestionsEnabled */); Loading @@ -510,8 +527,8 @@ public final class InputMethodInfo implements Parcelable { public InputMethodInfo(ResolveInfo ri, boolean isAuxIme, String settingsActivity, List<InputMethodSubtype> subtypes, int isDefaultResId, boolean forceDefault, boolean supportsSwitchingToNextInputMethod, boolean inlineSuggestionsEnabled, boolean isVrOnly, int handledConfigChanges, boolean supportsStylusHandwriting, String stylusHandwritingSettingsActivityAttr, boolean isVrOnly, boolean isVirtualDeviceOnly, int handledConfigChanges, boolean supportsStylusHandwriting, String stylusHandwritingSettingsActivityAttr, boolean supportsInlineSuggestionsWithTouchExploration) { final ServiceInfo si = ri.serviceInfo; mService = ri; Loading @@ -528,6 +545,7 @@ public final class InputMethodInfo implements Parcelable { mSuppressesSpellChecker = false; mShowInInputMethodPicker = true; mIsVrOnly = isVrOnly; mIsVirtualDeviceOnly = isVirtualDeviceOnly; mHandledConfigChanges = handledConfigChanges; mSupportsStylusHandwriting = supportsStylusHandwriting; mStylusHandwritingSettingsActivityAttr = stylusHandwritingSettingsActivityAttr; Loading Loading @@ -634,6 +652,16 @@ public final class InputMethodInfo implements Parcelable { return mIsVrOnly; } /** * Returns true if IME supports only virtual devices. * @hide */ @FlaggedApi(android.companion.virtual.flags.Flags.FLAG_VDM_CUSTOM_IME) @SystemApi public boolean isVirtualDeviceOnly() { return mIsVirtualDeviceOnly; } /** * Return the count of the subtypes of Input Method. */ Loading Loading @@ -732,6 +760,7 @@ public final class InputMethodInfo implements Parcelable { pw.println(prefix + "mId=" + mId + " mSettingsActivityName=" + mSettingsActivityName + " mIsVrOnly=" + mIsVrOnly + " mIsVirtualDeviceOnly=" + mIsVirtualDeviceOnly + " mSupportsSwitchingToNextInputMethod=" + mSupportsSwitchingToNextInputMethod + " mInlineSuggestionsEnabled=" + mInlineSuggestionsEnabled + " mSupportsInlineSuggestionsWithTouchExploration=" Loading Loading @@ -851,6 +880,7 @@ public final class InputMethodInfo implements Parcelable { dest.writeBoolean(mSuppressesSpellChecker); dest.writeBoolean(mShowInInputMethodPicker); dest.writeBoolean(mIsVrOnly); dest.writeBoolean(mIsVirtualDeviceOnly); mService.writeToParcel(dest, flags); mSubtypes.writeToParcel(dest); dest.writeInt(mHandledConfigChanges); Loading core/res/res/values/attrs.xml +4 −0 Original line number Diff line number Diff line Loading @@ -3854,6 +3854,10 @@ <!-- Specifies if an IME can only be used while a device is in VR mode or on a dedicated device --> <attr name="isVrOnly" format="boolean"/> <!-- Specifies if an IME can only be used on a display created by a virtual device. @hide @SystemApi @FlaggedApi("android.companion.virtual.flags.vdm_custom_ime") --> <attr name="isVirtualDeviceOnly" format="boolean"/> <attr name="__removed2" format="boolean" /> <!-- Specifies whether the IME supports showing inline suggestions. --> <attr name="supportsInlineSuggestions" format="boolean" /> Loading core/res/res/values/public-staging.xml +3 −0 Original line number Diff line number Diff line Loading @@ -112,6 +112,9 @@ <staging-public-group type="attr" first-id="0x01bd0000"> <!-- @FlaggedApi("android.content.res.default_locale") --> <public name="defaultLocale"/> <!-- @FlaggedApi("android.companion.virtual.flags.vdm_custom_ime") @hide @SystemApi --> <public name="isVirtualDeviceOnly"/> </staging-public-group> <staging-public-group type="id" first-id="0x01bc0000"> Loading Loading
core/api/system-current.txt +5 −0 Original line number Diff line number Diff line Loading @@ -418,6 +418,7 @@ package android { field public static final int allowClearUserDataOnFailedRestore = 16844288; // 0x1010600 field public static final int gameSessionService = 16844373; // 0x1010655 field public static final int hotwordDetectionService = 16844326; // 0x1010626 field @FlaggedApi("android.companion.virtual.flags.vdm_custom_ime") public static final int isVirtualDeviceOnly; field public static final int isVrOnly = 16844152; // 0x1010578 field public static final int minExtensionVersion = 16844305; // 0x1010611 field public static final int playHomeTransitionSound = 16844358; // 0x1010646 Loading Loading @@ -17290,6 +17291,10 @@ package android.view.displayhash { package android.view.inputmethod { public final class InputMethodInfo implements android.os.Parcelable { method @FlaggedApi("android.companion.virtual.flags.vdm_custom_ime") public boolean isVirtualDeviceOnly(); } public final class InputMethodManager { method @Nullable @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) public android.view.inputmethod.InputMethodInfo getCurrentInputMethodInfoAsUser(@NonNull android.os.UserHandle); }
core/java/android/companion/virtual/flags.aconfig +7 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,13 @@ flag { bug: "300905478" } flag { name: "vdm_custom_ime" namespace: "virtual_devices" description: "Enable custom IME API" bug: "287269288" } flag { name: "vdm_custom_home" namespace: "virtual_devices" Loading
core/java/android/view/inputmethod/InputMethodInfo.java +37 −7 Original line number Diff line number Diff line Loading @@ -16,9 +16,11 @@ package android.view.inputmethod; import android.annotation.FlaggedApi; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SuppressLint; import android.annotation.SystemApi; import android.annotation.TestApi; import android.compat.annotation.UnsupportedAppUsage; import android.content.ComponentName; Loading Loading @@ -112,6 +114,11 @@ public final class InputMethodInfo implements Parcelable { */ final boolean mIsVrOnly; /** * IME only supports virtual devices. */ final boolean mIsVirtualDeviceOnly; /** * The unique string Id to identify the input method. This is generated * from the input method component. Loading Loading @@ -239,6 +246,7 @@ public final class InputMethodInfo implements Parcelable { String settingsActivityComponent = null; String stylusHandwritingSettingsActivity = null; boolean isVrOnly; boolean isVirtualDeviceOnly; int isDefaultResId = 0; XmlResourceParser parser = null; Loading Loading @@ -277,6 +285,8 @@ public final class InputMethodInfo implements Parcelable { } isVrOnly = sa.getBoolean(com.android.internal.R.styleable.InputMethod_isVrOnly, false); isVirtualDeviceOnly = sa.getBoolean( com.android.internal.R.styleable.InputMethod_isVirtualDeviceOnly, false); isDefaultResId = sa.getResourceId( com.android.internal.R.styleable.InputMethod_isDefault, 0); supportsSwitchingToNextInputMethod = sa.getBoolean( Loading Loading @@ -382,6 +392,7 @@ public final class InputMethodInfo implements Parcelable { mSuppressesSpellChecker = suppressesSpellChecker; mShowInInputMethodPicker = showInInputMethodPicker; mIsVrOnly = isVrOnly; mIsVirtualDeviceOnly = isVirtualDeviceOnly; } /** Loading @@ -399,6 +410,7 @@ public final class InputMethodInfo implements Parcelable { mSuppressesSpellChecker = source.mSuppressesSpellChecker; mShowInInputMethodPicker = source.mShowInInputMethodPicker; mIsVrOnly = source.mIsVrOnly; mIsVirtualDeviceOnly = source.mIsVirtualDeviceOnly; mService = source.mService; mSubtypes = source.mSubtypes; mHandledConfigChanges = source.mHandledConfigChanges; Loading @@ -418,6 +430,7 @@ public final class InputMethodInfo implements Parcelable { mSuppressesSpellChecker = source.readBoolean(); mShowInInputMethodPicker = source.readBoolean(); mIsVrOnly = source.readBoolean(); mIsVirtualDeviceOnly = source.readBoolean(); mService = ResolveInfo.CREATOR.createFromParcel(source); mSubtypes = new InputMethodSubtypeArray(source); mHandledConfigChanges = source.readInt(); Loading @@ -435,7 +448,8 @@ public final class InputMethodInfo implements Parcelable { settingsActivity, null /* subtypes */, 0 /* isDefaultResId */, false /* forceDefault */, true /* supportsSwitchingToNextInputMethod */, false /* inlineSuggestionsEnabled */, false /* isVrOnly */, 0 /* handledConfigChanges */, false /* supportsStylusHandwriting */, false /* isVirtualDeviceOnly */, 0 /* handledConfigChanges */, false /* supportsStylusHandwriting */, null /* stylusHandwritingSettingsActivityAttr */, false /* inlineSuggestionsEnabled */); } Loading @@ -453,8 +467,9 @@ public final class InputMethodInfo implements Parcelable { settingsActivity, null /* subtypes */, 0 /* isDefaultResId */, false /* forceDefault */, true /* supportsSwitchingToNextInputMethod */, false /* inlineSuggestionsEnabled */, false /* isVrOnly */, 0 /* handledConfigChanges */, supportStylusHandwriting, stylusHandwritingSettingsActivityAttr, false /* inlineSuggestionsEnabled */); false /* isVirtualDeviceOnly */, 0 /* handledConfigChanges */, supportStylusHandwriting, stylusHandwritingSettingsActivityAttr, false /* inlineSuggestionsEnabled */); } /** Loading @@ -468,7 +483,8 @@ public final class InputMethodInfo implements Parcelable { this(buildFakeResolveInfo(packageName, className, label), false /* isAuxIme */, settingsActivity, null /* subtypes */, 0 /* isDefaultResId */, false /* forceDefault */, true /* supportsSwitchingToNextInputMethod */, false /* inlineSuggestionsEnabled */, false /* isVrOnly */, handledConfigChanges, false /* inlineSuggestionsEnabled */, false /* isVrOnly */, false /* isVirtualDeviceOnly */, handledConfigChanges, false /* supportsStylusHandwriting */, null /* stylusHandwritingSettingsActivityAttr */, false /* inlineSuggestionsEnabled */); Loading @@ -483,7 +499,7 @@ public final class InputMethodInfo implements Parcelable { boolean forceDefault) { this(ri, isAuxIme, settingsActivity, subtypes, isDefaultResId, forceDefault, true /* supportsSwitchingToNextInputMethod */, false /* inlineSuggestionsEnabled */, false /* isVrOnly */, 0 /* handledconfigChanges */, false /* isVrOnly */, false /* isVirtualDeviceOnly */, 0 /* handledconfigChanges */, false /* supportsStylusHandwriting */, null /* stylusHandwritingSettingsActivityAttr */, false /* inlineSuggestionsEnabled */); Loading @@ -498,6 +514,7 @@ public final class InputMethodInfo implements Parcelable { boolean supportsSwitchingToNextInputMethod, boolean isVrOnly) { this(ri, isAuxIme, settingsActivity, subtypes, isDefaultResId, forceDefault, supportsSwitchingToNextInputMethod, false /* inlineSuggestionsEnabled */, isVrOnly, false /* isVirtualDeviceOnly */, 0 /* handledConfigChanges */, false /* supportsStylusHandwriting */, null /* stylusHandwritingSettingsActivityAttr */, false /* inlineSuggestionsEnabled */); Loading @@ -510,8 +527,8 @@ public final class InputMethodInfo implements Parcelable { public InputMethodInfo(ResolveInfo ri, boolean isAuxIme, String settingsActivity, List<InputMethodSubtype> subtypes, int isDefaultResId, boolean forceDefault, boolean supportsSwitchingToNextInputMethod, boolean inlineSuggestionsEnabled, boolean isVrOnly, int handledConfigChanges, boolean supportsStylusHandwriting, String stylusHandwritingSettingsActivityAttr, boolean isVrOnly, boolean isVirtualDeviceOnly, int handledConfigChanges, boolean supportsStylusHandwriting, String stylusHandwritingSettingsActivityAttr, boolean supportsInlineSuggestionsWithTouchExploration) { final ServiceInfo si = ri.serviceInfo; mService = ri; Loading @@ -528,6 +545,7 @@ public final class InputMethodInfo implements Parcelable { mSuppressesSpellChecker = false; mShowInInputMethodPicker = true; mIsVrOnly = isVrOnly; mIsVirtualDeviceOnly = isVirtualDeviceOnly; mHandledConfigChanges = handledConfigChanges; mSupportsStylusHandwriting = supportsStylusHandwriting; mStylusHandwritingSettingsActivityAttr = stylusHandwritingSettingsActivityAttr; Loading Loading @@ -634,6 +652,16 @@ public final class InputMethodInfo implements Parcelable { return mIsVrOnly; } /** * Returns true if IME supports only virtual devices. * @hide */ @FlaggedApi(android.companion.virtual.flags.Flags.FLAG_VDM_CUSTOM_IME) @SystemApi public boolean isVirtualDeviceOnly() { return mIsVirtualDeviceOnly; } /** * Return the count of the subtypes of Input Method. */ Loading Loading @@ -732,6 +760,7 @@ public final class InputMethodInfo implements Parcelable { pw.println(prefix + "mId=" + mId + " mSettingsActivityName=" + mSettingsActivityName + " mIsVrOnly=" + mIsVrOnly + " mIsVirtualDeviceOnly=" + mIsVirtualDeviceOnly + " mSupportsSwitchingToNextInputMethod=" + mSupportsSwitchingToNextInputMethod + " mInlineSuggestionsEnabled=" + mInlineSuggestionsEnabled + " mSupportsInlineSuggestionsWithTouchExploration=" Loading Loading @@ -851,6 +880,7 @@ public final class InputMethodInfo implements Parcelable { dest.writeBoolean(mSuppressesSpellChecker); dest.writeBoolean(mShowInInputMethodPicker); dest.writeBoolean(mIsVrOnly); dest.writeBoolean(mIsVirtualDeviceOnly); mService.writeToParcel(dest, flags); mSubtypes.writeToParcel(dest); dest.writeInt(mHandledConfigChanges); Loading
core/res/res/values/attrs.xml +4 −0 Original line number Diff line number Diff line Loading @@ -3854,6 +3854,10 @@ <!-- Specifies if an IME can only be used while a device is in VR mode or on a dedicated device --> <attr name="isVrOnly" format="boolean"/> <!-- Specifies if an IME can only be used on a display created by a virtual device. @hide @SystemApi @FlaggedApi("android.companion.virtual.flags.vdm_custom_ime") --> <attr name="isVirtualDeviceOnly" format="boolean"/> <attr name="__removed2" format="boolean" /> <!-- Specifies whether the IME supports showing inline suggestions. --> <attr name="supportsInlineSuggestions" format="boolean" /> Loading
core/res/res/values/public-staging.xml +3 −0 Original line number Diff line number Diff line Loading @@ -112,6 +112,9 @@ <staging-public-group type="attr" first-id="0x01bd0000"> <!-- @FlaggedApi("android.content.res.default_locale") --> <public name="defaultLocale"/> <!-- @FlaggedApi("android.companion.virtual.flags.vdm_custom_ime") @hide @SystemApi --> <public name="isVirtualDeviceOnly"/> </staging-public-group> <staging-public-group type="id" first-id="0x01bc0000"> Loading