From 81aaa265f4c315c31bd93f895a13910d3dd00011 Mon Sep 17 00:00:00 2001 From: vadimt Date: Fri, 15 Jan 2021 18:46:04 -0800 Subject: [PATCH] Resolving a leak of activity via SharedPreferencesImpl.MemoryCommitResult Test: presubmit Bug: 177065099 Change-Id: I751c21d5915d20c1c27dd5f15b5c096e87963103 --- src/com/android/launcher3/states/RotationHelper.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/com/android/launcher3/states/RotationHelper.java b/src/com/android/launcher3/states/RotationHelper.java index ecf4f36c52..ba28e82425 100644 --- a/src/com/android/launcher3/states/RotationHelper.java +++ b/src/com/android/launcher3/states/RotationHelper.java @@ -51,7 +51,7 @@ public class RotationHelper implements OnSharedPreferenceChangeListener { public static final int REQUEST_ROTATE = 1; public static final int REQUEST_LOCK = 2; - private final Activity mActivity; + private Activity mActivity; private final SharedPreferences mSharedPrefs; private boolean mIgnoreAutoRotateSettings; @@ -95,6 +95,7 @@ public class RotationHelper implements OnSharedPreferenceChangeListener { @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String s) { + if (mDestroyed) return; boolean wasRotationEnabled = mHomeRotationEnabled; mHomeRotationEnabled = mSharedPrefs.getBoolean(ALLOW_ROTATION_PREFERENCE_KEY, getAllowRotationDefaultValue()); @@ -141,6 +142,7 @@ public class RotationHelper implements OnSharedPreferenceChangeListener { public void destroy() { if (!mDestroyed) { mDestroyed = true; + mActivity = null; if (mSharedPrefs != null) { mSharedPrefs.unregisterOnSharedPreferenceChangeListener(this); }