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

Commit 6483cf1e authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Expand all preferences when launch from search."

parents dfdc85c3 9ff1d79e
Loading
Loading
Loading
Loading
+14 −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,17 @@ 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)) {
                final PreferenceScreen screen = getPreferenceScreen();
                if (screen != null) {
                    screen.setInitialExpandedChildrenCount(Integer.MAX_VALUE);
                }
            }
        }
    }

    @Override
@@ -224,9 +235,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();
        }
    }
+34 −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,36 @@ 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);
    }

    @Test
    @Config(shadows = SettingsShadowResources.SettingsShadowTheme.class)
    public void onCreate_noPreferenceScreen_shouldNotCrash() {
        doReturn(mContext.getTheme()).when(mActivity).getTheme();
        doReturn(mContext.getResources()).when(mFragment).getResources();
        doReturn(null).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 */);

        // no crash
    }

    public static class TestFragment extends SettingsPreferenceFragment {

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


}