mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-03-01 16:26:47 +00:00
Prevent taskbar on phone from crashing
* Update code behind flag to work with transient taskbar * We explicitly set the mDestroyed flag to false in TaskbarActivityContext because it gets set to true when the flag is on, but nothing resets it unless it gets recreated normally. Bug: 274517647 Flag: persist.wm.debug.hide_navbar_window Test: Enable flag and verify no crash Change-Id: I9a149ffb47a10efedfc9dff8399d12d4c1a31553
This commit is contained in:
@@ -186,7 +186,8 @@ public class TaskbarActivityContext extends BaseTaskbarContext {
|
||||
mRightCorner = display.getRoundedCorner(RoundedCorner.POSITION_BOTTOM_RIGHT);
|
||||
|
||||
// Inflate views.
|
||||
int taskbarLayout = DisplayController.isTransientTaskbar(this)
|
||||
boolean phoneMode = TaskbarManager.isPhoneMode(mDeviceProfile);
|
||||
int taskbarLayout = DisplayController.isTransientTaskbar(this) && !phoneMode
|
||||
? R.layout.transient_taskbar
|
||||
: R.layout.taskbar;
|
||||
mDragLayer = (TaskbarDragLayer) mLayoutInflater.inflate(taskbarLayout, null, false);
|
||||
@@ -254,6 +255,12 @@ public class TaskbarActivityContext extends BaseTaskbarContext {
|
||||
sharedState.systemBarAttrsBehavior);
|
||||
onNavButtonsDarkIntensityChanged(sharedState.navButtonsDarkIntensity);
|
||||
|
||||
if (FLAG_HIDE_NAVBAR_WINDOW) {
|
||||
// W/ the flag not set this entire class gets re-created, which resets the value of
|
||||
// mIsDestroyed. We re-use the class for small-screen, so we explicitly have to mark
|
||||
// this class as non-destroyed
|
||||
mIsDestroyed = false;
|
||||
}
|
||||
|
||||
if (!mAddedWindow) {
|
||||
mWindowManager.addView(mDragLayer, mWindowLayoutParams);
|
||||
@@ -334,7 +341,7 @@ public class TaskbarActivityContext extends BaseTaskbarContext {
|
||||
public WindowManager.LayoutParams createDefaultWindowLayoutParams(int type, String title) {
|
||||
DeviceProfile deviceProfile = getDeviceProfile();
|
||||
// Taskbar is on the logical bottom of the screen
|
||||
boolean isVerticalBarLayout = TaskbarManager.isPhoneMode(deviceProfile) &&
|
||||
boolean isVerticalBarLayout = TaskbarManager.isPhoneButtonNavMode(this) &&
|
||||
deviceProfile.isLandscape;
|
||||
|
||||
int windowFlags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
|
||||
|
||||
Reference in New Issue
Block a user