Stash taskbar when software keyboard is docked

Stash taskbar when
1) Software keybaord is docked
2) Input toolbar is placed at the taskbar area (stash so toolbar and taskbar would not overlap)

Testing result:
https://drive.google.com/file/d/1NMDexHl0FgyHFaOUh_GSEEUU2k08STJH/view?usp=sharing

Bug: 317251202
Test: TaplTestsQuickstep#testQuickSwitchToPreviousAppForTablet
Flag: N/A

Change-Id: I90662bc6e68f644e919f5c702059476b02519ed6
This commit is contained in:
helencheuk
2024-02-09 15:36:44 +00:00
parent a6def81654
commit 00ddb5e3a9
11 changed files with 81 additions and 7 deletions
@@ -30,9 +30,12 @@ import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewTreeObserver;
import android.view.WindowInsets;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.graphics.Insets;
import androidx.core.view.WindowInsetsCompat;
import com.android.app.viewcapture.SettingsAwareViewCapture;
import com.android.launcher3.AbstractFloatingView;
@@ -110,6 +113,18 @@ public class TaskbarDragLayer extends BaseDragLayer<TaskbarActivityContext> {
recreateControllers();
}
@Override
public WindowInsets onApplyWindowInsets(WindowInsets insets) {
if (insets != null) {
WindowInsetsCompat insetsCompat = WindowInsetsCompat.toWindowInsetsCompat(insets, this);
Insets imeInsets = insetsCompat.getInsets(WindowInsetsCompat.Type.ime());
if (imeInsets != null) {
mControllerCallbacks.onImeInsetChanged();
}
}
return insets;
}
@Override
public void recreateControllers() {
mControllers = mControllerCallbacks.getTouchControllers();