Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 81a29144 authored by Amith Yamasani's avatar Amith Yamasani Committed by Android (Google) Code Review
Browse files

Merge "Fix window leak and receiver leak. Bug: 2520143 and Bug: 2517390"

parents 694f79b5 4986044f
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -1320,6 +1320,11 @@ public class Activity extends ContextThemeWrapper
            }
            mManagedCursors.clear();
        }

        // Close any open search dialog
        if (mSearchManager != null) {
            mSearchManager.stopSearch();
        }
    }

    /**
+22 −11
Original line number Diff line number Diff line
@@ -132,6 +132,15 @@ public class SearchDialog extends Dialog implements OnItemClickListener, OnItemS
    // Last known IME options value for the search edit text.
    private int mSearchAutoCompleteImeOptions;

    private BroadcastReceiver mConfChangeListener = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            if (intent.getAction().equals(Intent.ACTION_CONFIGURATION_CHANGED)) {
                onConfigurationChanged();
            }
        }
    };

    /**
     * Constructor - fires it up and makes it look like the search UI.
     * 
@@ -149,16 +158,6 @@ public class SearchDialog extends Dialog implements OnItemClickListener, OnItemS
        mVoiceAppSearchIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
        mVoiceAppSearchIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        mSearchManager = searchManager;
        IntentFilter filter = new IntentFilter();
        filter.addAction(Intent.ACTION_CONFIGURATION_CHANGED);
        context.registerReceiver(new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                if (intent.getAction().equals(Intent.ACTION_CONFIGURATION_CHANGED)) {
                    onConfigurationChanged();
                }
            }
        }, filter);
    }

    /**
@@ -301,6 +300,16 @@ public class SearchDialog extends Dialog implements OnItemClickListener, OnItemS
        return true;
    }

    @Override
    public void onStart() {
        super.onStart();

        // Register a listener for configuration change events.
        IntentFilter filter = new IntentFilter();
        filter.addAction(Intent.ACTION_CONFIGURATION_CHANGED);
        getContext().registerReceiver(mConfChangeListener, filter);
    }

    /**
     * The search dialog is being dismissed, so handle all of the local shutdown operations.
     * 
@@ -311,6 +320,8 @@ public class SearchDialog extends Dialog implements OnItemClickListener, OnItemS
    public void onStop() {
        super.onStop();

        getContext().unregisterReceiver(mConfChangeListener);

        closeSuggestionsAdapter();
        
        // dump extra memory we're hanging on to