Merge "Expose API to hide the IME during a recents animation" into pi-dev

This commit is contained in:
Winson Chung
2018-04-23 23:59:54 +00:00
committed by Android (Google) Code Review
3 changed files with 29 additions and 0 deletions

View File

@@ -64,4 +64,9 @@ interface IRecentsAnimationController {
* Informs the system that the primary split-screen stack should be minimized.
*/
void setSplitScreenMinimized(boolean minimized);
/**
* Hides the current input method if one is showing.
*/
void hideCurrentInputMethod();
}

View File

@@ -69,6 +69,14 @@ public class RecentsAnimationControllerCompat {
}
}
public void hideCurrentInputMethod() {
try {
mAnimationController.hideCurrentInputMethod();
} catch (RemoteException e) {
Log.e(TAG, "Failed to set hide input method", e);
}
}
public void finish(boolean toHome) {
try {
mAnimationController.finish(toHome);

View File

@@ -47,7 +47,9 @@ import android.view.IRecentsAnimationRunner;
import android.view.RemoteAnimationTarget;
import android.view.SurfaceControl;
import android.view.SurfaceControl.Transaction;
import android.view.inputmethod.InputMethodManagerInternal;
import com.android.internal.annotations.VisibleForTesting;
import com.android.server.LocalServices;
import com.android.server.wm.SurfaceAnimator.OnAnimationFinishedCallback;
import com.android.server.wm.utils.InsetUtils;
import com.google.android.collect.Sets;
@@ -220,6 +222,20 @@ public class RecentsAnimationController implements DeathRecipient {
Binder.restoreCallingIdentity(token);
}
}
@Override
public void hideCurrentInputMethod() {
final long token = Binder.clearCallingIdentity();
try {
final InputMethodManagerInternal inputMethodManagerInternal =
LocalServices.getService(InputMethodManagerInternal.class);
if (inputMethodManagerInternal != null) {
inputMethodManagerInternal.hideCurrentInputMethod();
}
} finally {
Binder.restoreCallingIdentity(token);
}
}
};
/**