Merge "Fixed a few memory leaks in SystemUI" into nyc-dev
This commit is contained in:
@@ -360,7 +360,9 @@ public class NotificationContentView extends FrameLayout {
|
||||
|
||||
private void setVisible(final boolean isVisible) {
|
||||
if (isVisible) {
|
||||
|
||||
// This call can happen multiple times, but removing only removes a single one.
|
||||
// We therefore need to remove the old one.
|
||||
getViewTreeObserver().removeOnPreDrawListener(mEnableAnimationPredrawListener);
|
||||
// We only animate if we are drawn at least once, otherwise the view might animate when
|
||||
// it's shown the first time
|
||||
getViewTreeObserver().addOnPreDrawListener(mEnableAnimationPredrawListener);
|
||||
|
||||
@@ -109,9 +109,6 @@ public class HeaderTransformState extends TransformState {
|
||||
@Override
|
||||
public void recycle() {
|
||||
super.recycle();
|
||||
if (mWorkProfileState != null) {
|
||||
mWorkProfileState.recycle();
|
||||
}
|
||||
sInstancePool.release(this);
|
||||
}
|
||||
|
||||
@@ -120,6 +117,10 @@ public class HeaderTransformState extends TransformState {
|
||||
super.reset();
|
||||
mExpandButton = null;
|
||||
mWorkProfileState = null;
|
||||
if (mWorkProfileState != null) {
|
||||
mWorkProfileState.recycle();
|
||||
mWorkProfileState = null;
|
||||
}
|
||||
}
|
||||
|
||||
public void setVisible(boolean visible) {
|
||||
|
||||
@@ -26,9 +26,8 @@ import com.android.systemui.statusbar.EmptyShadeView;
|
||||
import com.android.systemui.statusbar.ExpandableNotificationRow;
|
||||
import com.android.systemui.statusbar.ExpandableView;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.WeakHashMap;
|
||||
|
||||
/**
|
||||
* A state of a {@link com.android.systemui.statusbar.stack.NotificationStackScrollLayout} which
|
||||
@@ -39,12 +38,12 @@ public class StackScrollState {
|
||||
private static final String CHILD_NOT_FOUND_TAG = "StackScrollStateNoSuchChild";
|
||||
|
||||
private final ViewGroup mHostView;
|
||||
private Map<ExpandableView, StackViewState> mStateMap;
|
||||
private WeakHashMap<ExpandableView, StackViewState> mStateMap;
|
||||
private final int mClearAllTopPadding;
|
||||
|
||||
public StackScrollState(ViewGroup hostView) {
|
||||
mHostView = hostView;
|
||||
mStateMap = new HashMap<ExpandableView, StackViewState>();
|
||||
mStateMap = new WeakHashMap<>();
|
||||
mClearAllTopPadding = hostView.getContext().getResources().getDimensionPixelSize(
|
||||
R.dimen.clear_all_padding_top);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user