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

Commit 6589a07d authored by Doris Ling's avatar Doris Ling
Browse files

Expand all preferences when launch from search.

- when the fragment is created, checks the argument to see if the extra
fragment arg key is set. If so, do not hide the preferences in the
advanced button.

Change-Id: Id662ae1cec77edad7fcd5d6daa71929a8cb1402c
Fixes: 68988454
Test: make RunSettingsRoboTests
parent b84c1c5a
Loading
Loading
Loading
Loading
+11 −5
Original line number Diff line number Diff line
@@ -150,8 +150,8 @@ public abstract class SettingsPreferenceFragment extends InstrumentedPreferenceF
        }

        // Prepare help url and enable menu if necessary
        Bundle arguments = getArguments();
        int helpResource;
        final Bundle arguments = getArguments();
        final int helpResource;
        if (arguments != null && arguments.containsKey(HELP_URI_RESOURCE_KEY)) {
            helpResource = arguments.getInt(HELP_URI_RESOURCE_KEY);
        } else {
@@ -160,6 +160,14 @@ public abstract class SettingsPreferenceFragment extends InstrumentedPreferenceF
        if (helpResource != 0) {
            mHelpUri = getResources().getString(helpResource);
        }

        // Check if we should keep the preferences expanded.
        if (arguments != null) {
            mPreferenceKey = arguments.getString(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY);
            if (!TextUtils.isEmpty(mPreferenceKey)) {
                getPreferenceScreen().setInitialExpandedChildrenCount(Integer.MAX_VALUE);
            }
        }
    }

    @Override
@@ -224,9 +232,7 @@ public abstract class SettingsPreferenceFragment extends InstrumentedPreferenceF
    public void onResume() {
        super.onResume();

        final Bundle args = getArguments();
        if (args != null) {
            mPreferenceKey = args.getString(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY);
        if (mPreferenceKey != null) {
            highlightPreferenceIfNeeded();
        }
    }
+19 −5
Original line number Diff line number Diff line
@@ -16,9 +16,9 @@

package com.android.settings;


import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceCategory;
import android.support.v7.preference.PreferenceManager;
@@ -39,18 +39,18 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.SettingsShadowResources;

@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O)
public class SettingsPreferenceFragmentTest {

    private static final int ITEM_COUNT = 5;

    @Mock
    private PreferenceManager mPreferenceManager;
    @Mock
    private Activity mActivity;
    @Mock
@@ -142,6 +142,21 @@ public class SettingsPreferenceFragmentTest {
        assertThat(mEmptyView.getVisibility()).isEqualTo(View.GONE);
    }

    @Test
    @Config(shadows = SettingsShadowResources.SettingsShadowTheme.class)
    public void onCreate_hasExtraFragmentKey_shouldExpandPreferences() {
        doReturn(mContext.getTheme()).when(mActivity).getTheme();
        doReturn(mContext.getResources()).when(mFragment).getResources();
        doReturn(mPreferenceScreen).when(mFragment).getPreferenceScreen();
        final Bundle bundle = new Bundle();
        bundle.putString(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY, "test_key");
        doReturn(bundle).when(mFragment).getArguments();

        mFragment.onCreate(null /* icicle */);

        verify(mPreferenceScreen).setInitialExpandedChildrenCount(Integer.MAX_VALUE);
    }

    public static class TestFragment extends SettingsPreferenceFragment {

        @Override
@@ -150,5 +165,4 @@ public class SettingsPreferenceFragmentTest {
        }
    }


}