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
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
@@ -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 {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user