Merge "Make clipboard listen to keyboard visibility changes" into tm-dev
This commit is contained in:
@@ -35,6 +35,7 @@ import android.animation.AnimatorSet;
|
|||||||
import android.animation.TimeInterpolator;
|
import android.animation.TimeInterpolator;
|
||||||
import android.animation.ValueAnimator;
|
import android.animation.ValueAnimator;
|
||||||
import android.annotation.MainThread;
|
import android.annotation.MainThread;
|
||||||
|
import android.app.ICompatCameraControlCallback;
|
||||||
import android.app.RemoteAction;
|
import android.app.RemoteAction;
|
||||||
import android.content.BroadcastReceiver;
|
import android.content.BroadcastReceiver;
|
||||||
import android.content.ClipData;
|
import android.content.ClipData;
|
||||||
@@ -44,7 +45,9 @@ import android.content.ContentResolver;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.IntentFilter;
|
import android.content.IntentFilter;
|
||||||
|
import android.content.pm.ActivityInfo;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
|
import android.content.res.Configuration;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
import android.graphics.Insets;
|
import android.graphics.Insets;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
@@ -68,6 +71,7 @@ import android.view.InputMonitor;
|
|||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.MotionEvent;
|
import android.view.MotionEvent;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
import android.view.ViewRootImpl;
|
||||||
import android.view.ViewTreeObserver;
|
import android.view.ViewTreeObserver;
|
||||||
import android.view.WindowInsets;
|
import android.view.WindowInsets;
|
||||||
import android.view.WindowManager;
|
import android.view.WindowManager;
|
||||||
@@ -85,6 +89,7 @@ import android.widget.TextView;
|
|||||||
|
|
||||||
import com.android.internal.logging.UiEventLogger;
|
import com.android.internal.logging.UiEventLogger;
|
||||||
import com.android.internal.policy.PhoneWindow;
|
import com.android.internal.policy.PhoneWindow;
|
||||||
|
import com.android.settingslib.applications.InterestingConfigChanges;
|
||||||
import com.android.systemui.R;
|
import com.android.systemui.R;
|
||||||
import com.android.systemui.broadcast.BroadcastDispatcher;
|
import com.android.systemui.broadcast.BroadcastDispatcher;
|
||||||
import com.android.systemui.broadcast.BroadcastSender;
|
import com.android.systemui.broadcast.BroadcastSender;
|
||||||
@@ -150,6 +155,10 @@ public class ClipboardOverlayController {
|
|||||||
private boolean mBlockAttach = false;
|
private boolean mBlockAttach = false;
|
||||||
private Animator mExitAnimator;
|
private Animator mExitAnimator;
|
||||||
|
|
||||||
|
/** Tracks config changes that require updating insets */
|
||||||
|
private final InterestingConfigChanges mConfigChanges = new InterestingConfigChanges(
|
||||||
|
ActivityInfo.CONFIG_KEYBOARD_HIDDEN);
|
||||||
|
|
||||||
public ClipboardOverlayController(Context context,
|
public ClipboardOverlayController(Context context,
|
||||||
BroadcastDispatcher broadcastDispatcher,
|
BroadcastDispatcher broadcastDispatcher,
|
||||||
BroadcastSender broadcastSender,
|
BroadcastSender broadcastSender,
|
||||||
@@ -232,6 +241,24 @@ public class ClipboardOverlayController {
|
|||||||
mWindow.setContentView(mView);
|
mWindow.setContentView(mView);
|
||||||
updateInsets(mWindowManager.getCurrentWindowMetrics().getWindowInsets());
|
updateInsets(mWindowManager.getCurrentWindowMetrics().getWindowInsets());
|
||||||
mView.requestLayout();
|
mView.requestLayout();
|
||||||
|
mWindow.peekDecorView().getViewRootImpl().setActivityConfigCallback(
|
||||||
|
new ViewRootImpl.ActivityConfigCallback() {
|
||||||
|
@Override
|
||||||
|
public void onConfigurationChanged(Configuration overrideConfig,
|
||||||
|
int newDisplayId) {
|
||||||
|
if (mConfigChanges.applyNewConfig(mContext.getResources())) {
|
||||||
|
updateInsets(
|
||||||
|
mWindowManager.getCurrentWindowMetrics().getWindowInsets());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void requestCompatCameraControl(
|
||||||
|
boolean showControl, boolean transformationApplied,
|
||||||
|
ICompatCameraControlCallback callback) {
|
||||||
|
Log.w(TAG, "unexpected requestCompatCameraControl call");
|
||||||
|
}
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
mTimeoutHandler.setOnTimeoutRunnable(() -> {
|
mTimeoutHandler.setOnTimeoutRunnable(() -> {
|
||||||
|
|||||||
Reference in New Issue
Block a user