Merge "Revert "Avoid IME restart for configChanges"" into sc-dev
This commit is contained in:
@@ -105,7 +105,7 @@ public interface InputMethod {
|
||||
*/
|
||||
@MainThread
|
||||
default void initializeInternal(IBinder token, int displayId,
|
||||
IInputMethodPrivilegedOperations privilegedOperations, int configChanges) {
|
||||
IInputMethodPrivilegedOperations privilegedOperations) {
|
||||
updateInputMethodDisplay(displayId);
|
||||
attachToken(token);
|
||||
}
|
||||
|
||||
@@ -18,23 +18,19 @@ package android.view.inputmethod;
|
||||
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
import android.annotation.TestApi;
|
||||
import android.compat.annotation.UnsupportedAppUsage;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.pm.ActivityInfo;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.PackageManager.NameNotFoundException;
|
||||
import android.content.pm.ResolveInfo;
|
||||
import android.content.pm.ServiceInfo;
|
||||
import android.content.res.Configuration;
|
||||
import android.content.res.Resources;
|
||||
import android.content.res.Resources.NotFoundException;
|
||||
import android.content.res.TypedArray;
|
||||
import android.content.res.XmlResourceParser;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.inputmethodservice.InputMethodService;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
import android.util.AttributeSet;
|
||||
@@ -64,7 +60,6 @@ import java.util.List;
|
||||
* @attr ref android.R.styleable#InputMethod_isDefault
|
||||
* @attr ref android.R.styleable#InputMethod_supportsSwitchingToNextInputMethod
|
||||
* @attr ref android.R.styleable#InputMethod_supportsInlineSuggestions
|
||||
* @attr ref android.R.styleable#InputMethod_configChanges
|
||||
*/
|
||||
public final class InputMethodInfo implements Parcelable {
|
||||
static final String TAG = "InputMethodInfo";
|
||||
@@ -122,12 +117,6 @@ public final class InputMethodInfo implements Parcelable {
|
||||
*/
|
||||
private final boolean mInlineSuggestionsEnabled;
|
||||
|
||||
/**
|
||||
* The flag for configurations IME assumes the responsibility for handling in
|
||||
* {@link InputMethodService#onConfigurationChanged(Configuration)}}.
|
||||
*/
|
||||
private final int mHandledConfigChanges;
|
||||
|
||||
/**
|
||||
* @param service the {@link ResolveInfo} corresponds in which the IME is implemented.
|
||||
* @return a unique ID to be returned by {@link #getId()}. We have used
|
||||
@@ -214,8 +203,6 @@ public final class InputMethodInfo implements Parcelable {
|
||||
false);
|
||||
inlineSuggestionsEnabled = sa.getBoolean(
|
||||
com.android.internal.R.styleable.InputMethod_supportsInlineSuggestions, false);
|
||||
mHandledConfigChanges = sa.getInt(
|
||||
com.android.internal.R.styleable.InputMethod_configChanges, 0);
|
||||
sa.recycle();
|
||||
|
||||
final int depth = parser.getDepth();
|
||||
@@ -300,7 +287,6 @@ public final class InputMethodInfo implements Parcelable {
|
||||
mIsVrOnly = source.readBoolean();
|
||||
mService = ResolveInfo.CREATOR.createFromParcel(source);
|
||||
mSubtypes = new InputMethodSubtypeArray(source);
|
||||
mHandledConfigChanges = source.readInt();
|
||||
mForceDefault = false;
|
||||
}
|
||||
|
||||
@@ -312,22 +298,7 @@ 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 */,
|
||||
0 /* handledConfigChanges */);
|
||||
}
|
||||
|
||||
/**
|
||||
* Temporary API for creating a built-in input method for test.
|
||||
* @hide
|
||||
*/
|
||||
@TestApi
|
||||
public InputMethodInfo(@NonNull String packageName, @NonNull String className,
|
||||
@NonNull CharSequence label, @NonNull String settingsActivity,
|
||||
int handledConfigChanges) {
|
||||
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 */);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -339,7 +310,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 */);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -350,8 +321,7 @@ public final class InputMethodInfo implements Parcelable {
|
||||
List<InputMethodSubtype> subtypes, int isDefaultResId, boolean forceDefault,
|
||||
boolean supportsSwitchingToNextInputMethod, boolean isVrOnly) {
|
||||
this(ri, isAuxIme, settingsActivity, subtypes, isDefaultResId, forceDefault,
|
||||
supportsSwitchingToNextInputMethod, false /* inlineSuggestionsEnabled */, isVrOnly,
|
||||
0 /* handledConfigChanges */);
|
||||
supportsSwitchingToNextInputMethod, false /* inlineSuggestionsEnabled */, isVrOnly);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -361,7 +331,7 @@ 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 isVrOnly) {
|
||||
final ServiceInfo si = ri.serviceInfo;
|
||||
mService = ri;
|
||||
mId = new ComponentName(si.packageName, si.name).flattenToShortString();
|
||||
@@ -373,7 +343,6 @@ public final class InputMethodInfo implements Parcelable {
|
||||
mSupportsSwitchingToNextInputMethod = supportsSwitchingToNextInputMethod;
|
||||
mInlineSuggestionsEnabled = inlineSuggestionsEnabled;
|
||||
mIsVrOnly = isVrOnly;
|
||||
mHandledConfigChanges = handledConfigChanges;
|
||||
}
|
||||
|
||||
private static ResolveInfo buildFakeResolveInfo(String packageName, String className,
|
||||
@@ -520,17 +489,6 @@ public final class InputMethodInfo implements Parcelable {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the bit mask of kinds of configuration changes that this IME
|
||||
* can handle itself (without being restarted by the system).
|
||||
*
|
||||
* @attr ref android.R.styleable#InputMethod_configChanges
|
||||
*/
|
||||
@ActivityInfo.Config
|
||||
public int getConfigChanges() {
|
||||
return mHandledConfigChanges;
|
||||
}
|
||||
|
||||
public void dump(Printer pw, String prefix) {
|
||||
pw.println(prefix + "mId=" + mId
|
||||
+ " mSettingsActivityName=" + mSettingsActivityName
|
||||
@@ -621,7 +579,6 @@ public final class InputMethodInfo implements Parcelable {
|
||||
dest.writeBoolean(mIsVrOnly);
|
||||
mService.writeToParcel(dest, flags);
|
||||
mSubtypes.writeToParcel(dest);
|
||||
dest.writeInt(mHandledConfigChanges);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user