Move binder call to bg thread

Bug: 221032588
Test: Take perfetto trace of sysui process and verify it's called on
      the SysUIBg thread
Change-Id: I6b621dd74f4f8b2ce2c89fccc846dfa2303692d3
This commit is contained in:
Winson Chung
2022-07-01 18:12:11 +00:00
parent dad802aa6d
commit de97cfd064
2 changed files with 10 additions and 2 deletions

View File

@@ -625,6 +625,7 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
}
}, mainExecutor, bgExecutor);
mView.setBackgroundExecutor(bgExecutor);
mView.setEdgeBackGestureHandler(mEdgeBackGestureHandler);
mNavBarMode = mNavigationModeController.addListener(mModeChangedListener);
}

View File

@@ -88,6 +88,7 @@ import com.android.wm.shell.pip.Pip;
import java.io.PrintWriter;
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.Executor;
import java.util.function.Consumer;
/** */
@@ -97,6 +98,8 @@ public class NavigationBarView extends FrameLayout {
final static boolean ALTERNATE_CAR_MODE_UI = false;
private Executor mBgExecutor;
// The current view is one of mHorizontal or mVertical depending on the current configuration
View mCurrentView = null;
private View mVertical;
@@ -349,6 +352,10 @@ public class NavigationBarView extends FrameLayout {
notifyVerticalChangedListener(mIsVertical);
}
public void setBackgroundExecutor(Executor bgExecutor) {
mBgExecutor = bgExecutor;
}
public void setTouchHandler(Gefingerpoken touchHandler) {
mTouchHandler = touchHandler;
}
@@ -768,8 +775,8 @@ public class NavigationBarView extends FrameLayout {
updateSlippery();
reloadNavIcons();
updateNavButtonIcons();
WindowManagerWrapper.getInstance().setNavBarVirtualKeyHapticFeedbackEnabled(
!mShowSwipeUpUi);
mBgExecutor.execute(() -> WindowManagerWrapper.getInstance()
.setNavBarVirtualKeyHapticFeedbackEnabled(!mShowSwipeUpUi));
getHomeButton().setAccessibilityDelegate(
mShowSwipeUpUi ? mQuickStepAccessibilityDelegate : null);
}