diff --git a/src/com/android/settings/location/LocationSettings.java b/src/com/android/settings/location/LocationSettings.java index a6feacc5c23..13ba8f5eb09 100644 --- a/src/com/android/settings/location/LocationSettings.java +++ b/src/com/android/settings/location/LocationSettings.java @@ -23,7 +23,6 @@ import android.os.Bundle; import android.provider.SearchIndexableResource; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceGroup; - import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.settings.R; import com.android.settings.SettingsActivity; @@ -35,7 +34,6 @@ import com.android.settings.widget.SwitchBar; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.location.RecentLocationApps; - import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -66,16 +64,6 @@ public class LocationSettings extends DashboardFragment { private LocationSwitchBarController mSwitchBarController; - @Override - public int getInitialExpandedChildCount() { - final RecentLocationApps recentLocationApps = new RecentLocationApps(getActivity()); - final int locationRequestsApps = recentLocationApps.getAppList().size(); - final int locationRequestsPrefs = - locationRequestsApps == 0 - ? 1 : (locationRequestsApps > 3 ? 4 : locationRequestsApps); - return locationRequestsPrefs + 1; - } - @Override public int getMetricsCategory() { return MetricsEvent.LOCATION; @@ -89,6 +77,7 @@ public class LocationSettings extends DashboardFragment { switchBar.setSwitchBarText(R.string.location_settings_master_switch_title, R.string.location_settings_master_switch_title); mSwitchBarController = new LocationSwitchBarController(activity, switchBar, getLifecycle()); + switchBar.show(); } @Override diff --git a/src/com/android/settings/location/LocationSwitchBarController.java b/src/com/android/settings/location/LocationSwitchBarController.java index ca1932f9cc6..70ecc1eb850 100644 --- a/src/com/android/settings/location/LocationSwitchBarController.java +++ b/src/com/android/settings/location/LocationSwitchBarController.java @@ -16,7 +16,6 @@ package com.android.settings.location; import android.content.Context; import android.os.UserHandle; import android.widget.Switch; - import com.android.settings.widget.SwitchBar; import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.core.lifecycle.Lifecycle; @@ -48,12 +47,10 @@ public class LocationSwitchBarController implements SwitchBar.OnSwitchChangeList mSwitchBar.addOnSwitchChangeListener(this); mValidListener = true; } - mSwitchBar.show(); } @Override public void onStop() { - mSwitchBar.hide(); if (mValidListener) { mSwitchBar.removeOnSwitchChangeListener(this); mValidListener = false; diff --git a/tests/robotests/src/com/android/settings/location/LocationSettingsTest.java b/tests/robotests/src/com/android/settings/location/LocationSettingsTest.java new file mode 100644 index 00000000000..acb2b84e126 --- /dev/null +++ b/tests/robotests/src/com/android/settings/location/LocationSettingsTest.java @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2018 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.settings.location; + +import android.os.Bundle; +import com.android.settings.SettingsActivity; +import com.android.settings.TestConfig; +import com.android.settings.testutils.SettingsRobolectricTestRunner; +import com.android.settings.widget.SwitchBar; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.robolectric.annotation.Config; + +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.verify; + +@RunWith(SettingsRobolectricTestRunner.class) +@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) +public class LocationSettingsTest { + + @Mock + private SettingsActivity mActivity; + @Mock + private SwitchBar mSwitchBar; + + private LocationSettings mLocationSettings; + + @Before + public void setUp() { + MockitoAnnotations.initMocks(this); + mLocationSettings = spy(new LocationSettings()); + doReturn(mActivity).when(mLocationSettings).getActivity(); + doReturn(mSwitchBar).when(mActivity).getSwitchBar(); + } + + @Test + public void onActivityCreated_shouldShowSwitchBar() { + mLocationSettings.onActivityCreated(new Bundle()); + + verify(mSwitchBar).show(); + } +} diff --git a/tests/robotests/src/com/android/settings/location/LocationSwitchBarControllerTest.java b/tests/robotests/src/com/android/settings/location/LocationSwitchBarControllerTest.java index 4410d6f2c47..88c243b6c8a 100644 --- a/tests/robotests/src/com/android/settings/location/LocationSwitchBarControllerTest.java +++ b/tests/robotests/src/com/android/settings/location/LocationSwitchBarControllerTest.java @@ -71,19 +71,17 @@ public class LocationSwitchBarControllerTest { } @Test - public void onStart_shouldShowSwitchBarAndAddOnSwitchChangeListener() { + public void onStart_shouldAddOnSwitchChangeListener() { mController.onStart(); - verify(mSwitchBar).show(); verify(mSwitchBar).addOnSwitchChangeListener(mController); } @Test - public void onStop_shouldHideSwitchBarAndRemoveOnSwitchChangeListener() { + public void onStop_shouldRemoveOnSwitchChangeListener() { mController.onStart(); mController.onStop(); - verify(mSwitchBar).hide(); verify(mSwitchBar).removeOnSwitchChangeListener(mController); }