Merge "Allow using config to disable creation of navBar and taskBar" into udc-dev

This commit is contained in:
Qijing Yao
2023-03-30 07:22:25 +00:00
committed by Android (Google) Code Review

View File

@@ -226,6 +226,18 @@ public class NavigationBarController implements
}
}
private boolean shouldCreateNavBarAndTaskBar(int displayId) {
final IWindowManager wms = WindowManagerGlobal.getWindowManagerService();
try {
return wms.hasNavigationBar(displayId);
} catch (RemoteException e) {
// Cannot get wms, just return false with warning message.
Log.w(TAG, "Cannot get WindowManager.");
return false;
}
}
/** @see #initializeTaskbarIfNecessary() */
private boolean updateNavbarForTaskbar() {
boolean taskbarShown = initializeTaskbarIfNecessary();
@@ -238,8 +250,8 @@ public class NavigationBarController implements
/** @return {@code true} if taskbar is enabled, false otherwise */
private boolean initializeTaskbarIfNecessary() {
// Enable for large screens or (phone AND flag is set); assuming phone = !mIsLargeScreen
boolean taskbarEnabled = mIsLargeScreen || mFeatureFlags.isEnabled(
Flags.HIDE_NAVBAR_WINDOW);
boolean taskbarEnabled = (mIsLargeScreen || mFeatureFlags.isEnabled(
Flags.HIDE_NAVBAR_WINDOW)) && shouldCreateNavBarAndTaskBar(mContext.getDisplayId());
if (taskbarEnabled) {
Trace.beginSection("NavigationBarController#initializeTaskbarIfNecessary");
@@ -331,23 +343,16 @@ public class NavigationBarController implements
final int displayId = display.getDisplayId();
final boolean isOnDefaultDisplay = displayId == mDisplayTracker.getDefaultDisplayId();
if (!shouldCreateNavBarAndTaskBar(displayId)) {
return;
}
// We may show TaskBar on the default display for large screen device. Don't need to create
// navigation bar for this case.
if (isOnDefaultDisplay && initializeTaskbarIfNecessary()) {
return;
}
final IWindowManager wms = WindowManagerGlobal.getWindowManagerService();
try {
if (!wms.hasNavigationBar(displayId)) {
return;
}
} catch (RemoteException e) {
// Cannot get wms, just return with warning message.
Log.w(TAG, "Cannot get WindowManager.");
return;
}
final Context context = isOnDefaultDisplay
? mContext
: mContext.createDisplayContext(display);