Only add divider when it need to show
By previous memory patch, the divider will always call update when
enter split when means it always add divider view when showing. So
we can reduce some update call to avoid any unnecessary surface
memory allocate.
Fix: 150190730
Test: Check split mode rotate normally and dump SF to check divider
memory status
Test: Use forest to test cts/framework/gce-presubmit-wm-cloud-tf-3
Test: Use acloud to test cts/framework/gce-presubmit-wm-cloud-tf-3
Change-Id: I0aa4ad560eff6b64adc20cf2c04c3a61798c56ba
This commit is contained in:
@@ -253,7 +253,9 @@ public class Divider extends SystemUI implements DividerView.DividerCallbacks,
|
||||
mSplitLayout.mSecondary = new Rect(mRotateSplitLayout.mSecondary);
|
||||
mRotateSplitLayout = null;
|
||||
}
|
||||
update(newConfig);
|
||||
if (isSplitActive()) {
|
||||
update(newConfig);
|
||||
}
|
||||
}
|
||||
|
||||
Handler getHandler() {
|
||||
@@ -328,11 +330,6 @@ public class Divider extends SystemUI implements DividerView.DividerCallbacks,
|
||||
mHandler.post(this::removeDivider);
|
||||
}
|
||||
|
||||
void onTasksReady() {
|
||||
mHandler.post(() -> update(mDisplayController.getDisplayContext(
|
||||
mContext.getDisplayId()).getResources().getConfiguration()));
|
||||
}
|
||||
|
||||
private void updateVisibility(final boolean visible) {
|
||||
if (DEBUG) Slog.d(TAG, "Updating visibility " + mVisible + "->" + visible);
|
||||
if (mVisible != visible) {
|
||||
@@ -524,7 +521,7 @@ public class Divider extends SystemUI implements DividerView.DividerCallbacks,
|
||||
|
||||
void ensureMinimizedSplit() {
|
||||
setHomeMinimized(true /* minimized */, mHomeStackResizable);
|
||||
if (!isDividerVisible()) {
|
||||
if (mView != null && !isDividerVisible()) {
|
||||
// Wasn't in split-mode yet, so enter now.
|
||||
if (DEBUG) {
|
||||
Slog.d(TAG, " entering split mode with minimized=true");
|
||||
@@ -535,7 +532,7 @@ public class Divider extends SystemUI implements DividerView.DividerCallbacks,
|
||||
|
||||
void ensureNormalSplit() {
|
||||
setHomeMinimized(false /* minimized */, mHomeStackResizable);
|
||||
if (!isDividerVisible()) {
|
||||
if (mView != null && !isDividerVisible()) {
|
||||
// Wasn't in split-mode, so enter now.
|
||||
if (DEBUG) {
|
||||
Slog.d(TAG, " enter split mode unminimized ");
|
||||
|
||||
@@ -113,8 +113,6 @@ class SplitScreenTaskOrganizer extends TaskOrganizer {
|
||||
t.setColor(mSecondaryDim, new float[]{0f, 0f, 0f});
|
||||
t.apply();
|
||||
releaseTransaction(t);
|
||||
|
||||
mDivider.onTasksReady();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user