Commit 71e9abb7 authored by Prabhjyot Singh Sodhi's avatar Prabhjyot Singh Sodhi
Browse files

Bug 1206628 - Fetch the latest search engines each time visibility of the...

Bug 1206628 - Fetch the latest search engines each time visibility of the BrowserSearch Fragment changes. r=mcomella
parent 5112463b
Loading
Loading
Loading
Loading
+31 −5
Original line number Diff line number Diff line
@@ -237,6 +237,14 @@ public class BrowserSearch extends HomeFragment
        mSearchEngines = null;
    }

    @Override
    public void onHiddenChanged(boolean hidden) {
        if (!hidden) {
            GeckoAppShell.sendEventToGecko(GeckoEvent.createBroadcastEvent("SearchEngines:GetVisible", null));
        }
        super.onHiddenChanged(hidden);
    }

    @Override
    public void onResume() {
        super.onResume();
@@ -552,6 +560,22 @@ public class BrowserSearch extends HomeFragment
        mAdapter.notifyDataSetChanged();
    }

    private boolean shouldUpdateSearchEngine(ArrayList<SearchEngine> searchEngines) {
        if (searchEngines.size() != mSearchEngines.size()) {
            return true;
        }

        int size = searchEngines.size();

        for (int i = 0; i < size; i++) {
            if (!mSearchEngines.get(i).name.equals(searchEngines.get(i).name)) {
                return true;
            }
        }

        return false;
    }

    private void setSearchEngines(JSONObject data) {
        ThreadUtils.assertOnUiThread();

@@ -597,15 +621,17 @@ public class BrowserSearch extends HomeFragment
                }
            }

            // checking if the new searchEngine is different from mSearchEngine, will have to re-layout if yes
            boolean change = shouldUpdateSearchEngine(searchEngines);

            if (mAdapter != null && change) {
                mSearchEngines = Collections.unmodifiableList(searchEngines);
                mLastLocale = Locale.getDefault();
                updateSearchEngineBar();

            if (mAdapter != null) {
                mAdapter.notifyDataSetChanged();
            }

            updateSearchEngineBar();

            // Show suggestions opt-in prompt only if suggestions are not enabled yet,
            // user hasn't been prompted and we're not on a private browsing tab.
            if (!mSuggestionsEnabled && !suggestionsPrompted && mSuggestClient != null) {